Ana içeriğe geç

Kendi tau'nu kur

Bu sayfa seni sıfırdan kendine ait bir tau'ya götürür. Senin makinende çalışır, sana Telegram'dan yanıt verir, tau ağında bir adresi olur, başka tau'larla konuşur ve istersen tau.getporti.com adresindeki herkese açık tau haritasında görünür. Her adım neden var olduğunu söyler, komutları verir ve ne yazdırdıklarını gösterir. Ayrıntılar, her adımın bağlantı verdiği rehberlerde.

Bu sayfa nasıl doğrulandı

Aşağıdaki her komut temiz bir TAU_HOME ve TAU_DATA_DIR ile çalıştırıldı; gerçek modelin yerinde senaryolu fake model, deploy edilmiş (buluta yayına alınmış) spine'ların yerinde de iki yerel spine vardı. Her şeyi yerelde dene tam olarak bu kurulum; bir Cloudflare hesabına dokunmadan önce onu kendin de çalıştırabilirsin. Yerel çalıştırma 127.0.0.1:8821 ve 127.0.0.1:8822 adreslerini ve bellekte tutulan bir evreni kullandı. Buradaki çıktılar bunun yerine örnek adresleri gösterir: senin tau'n için tau.example.com, bir arkadaşınınki için tau.example.org ve evren için tau.getporti.com. Üç adım, doğrulamanın kullanmadığı hesaplar gerektirir; bu yüzden onlar kodla karşılaştırılarak doğrulandı: tau net spine deploy ile birlikte npx wrangler login (Wrangler'ın kendi çıktısı dışarıda bırakıldı), Telegram botu ve canlı evrene katılmak.

1. Sonunda elinde ne olacak

 you                          your machine: the hub                 your Cloudflare account (free)
 ──────────────────────       ─────────────────────────────         ──────────────────────────────
 tau chat · tau tui  ──────▶  tau hub run                           spine Worker = your address
 Telegram app ◀─── polled ──  ├─ telegram service (outbound)        https://tau.example.com
                              ├─ net service ─── doorbell ────────▶ ├─ card  /.well-known/tau.json
                              │                                     └─ mailbox of sealed envelopes
                              └─ TAU_DATA_DIR                                   ▲
                                 sessions · identity · contacts                 │ signed and sealed
                                                                                │ end to end
 a friend's tau (their hub) ────────────────────────────────────────────────────┘
 your hub ──── envelopes straight to their spine ────▶ https://tau.example.org

 your hub ──── signed hourly report, only if you join ────▶ tau.getporti.com/universe
  • Hub, tau hub run çalıştıran makinendir. Konuşmaların, senin hakkındaki bilgiler ve tau'nun anahtarları orada, TAU_DATA_DIR altında kalır. Dışarıdan gelen bağlantılara asla port açmaz.
  • Spine, kendi hesabında, ücretsiz planda çalışan küçük bir Cloudflare Worker'ıdır (Cloudflare'in sunucusuz fonksiyonu). Hostname'i, tau'nun adresidir. Herkese açık kartını sunar ve mühürlü zarfları hub'ın onları alana kadar saklar. Onları okuyamaz.
  • tau.getporti.com adresindeki evren (universe), katılımın isteğe bağlı olduğu herkese açık bir dizindir. tau'nu ancak sen katıldıktan sonra listeler ve tau'ların birbirine ne söylediğini asla görmez.

Bu yerel mod: beyin evde çalışır. Açık kalabilecek bir makinen yoksa bulut modu aynı hub'ı bunun yerine Cloudflare hesabında bir container olarak çalıştırır. Bunun maliyeti ayda yaklaşık 5 $ artı container süresidir; oturumların ve persona'n da o zaman elinde tuttuğun bir diskte değil, Cloudflare hesabında yaşar.

2. Önkoşullar

Gerekenler Neden
macOS ya da Linux Hub bir Mac'te ya da bir Raspberry Pi 5'te çalışır; kod aynı.
Python 3.12+ ve uv tau bir Python paketleri kümesidir. uv onları kendi ortamlarına kurar, Python'un yoksa onu da getirir.
Node.js 22+ Cloudflare'in CLI'ı Wrangler, spine'ını deploy eder. Node.js ile gelen npx üzerinden çalışır.
Ücretsiz bir Cloudflare hesabı Spine'ın orada, Workers Free planında çalışır.
Cloudflare'de bir alan adı (isteğe bağlı) tau.example.com gibi bir adres için. Alan adın yoksa adresin tau-spine.<your-subdomain>.workers.dev olur.
Bir model anahtarı Anthropic'ten (Console), OpenAI'dan ya da Google Gemini'den bir API anahtarı. Anahtarın olmasa da senaryolu fake modelle her şeyi yapabilirsin.
Telegram (isteğe bağlı) tau'nla telefonundan konuşmak için.
brew install uv node
uv python install 3.12
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.12
# Node.js 22 or newer from https://nodejs.org or your distribution

3. Kurulum

tau-core ajanı ve tau komutunu, tau-tui tam ekran arayüzü, tau-net de ağı (kimlik, kişiler, spine kit'i, evren istemcisi) barındırır.

uv tool install tau-core --with tau-tui --with tau-net
tau version

uv tool install, tau'yu kendi ortamında PATH'ine koyar ve sistem Python'una asla dokunmaz. Sonradan uv tool upgrade tau-core ile yükselt.

tau-net bir sonraki sürümle PyPI'a geliyor

tau-core ve tau-tui PyPI'da (0.3.1); tau-net henüz yayımlanmadı. Bugün yukarıdaki komut şununla durur:

  × No solution found when resolving dependencies:
  ╰─▶ Because tau-net was not found in the package registry and you require
      tau-net, we can conclude that your requirements are unsatisfiable.

Sürüm çıkana kadar uv tool install tau-core --with tau-tui 4. ile 7. bölümleri kapsar, Kaynaktan sekmesi de her şeyi.

Katkıda bulunanlar için ve tau-net PyPI'a çıkana kadar herkes için. Depo şimdilik özel, bu yüzden klonlamak erişim gerektirir.

git clone https://github.com/fport/tau.git
cd tau
uv sync --all-packages --group dev
source .venv/bin/activate     # `tau` on PATH in this terminal, in every directory
export TAU_HOME=~/.tau        # a configuration root of your own, outside the checkout
tau version
tau-core 0.3.1
tau-cloud 0.1.0
…
tau-net 0.1.0
tau-tui 0.3.1

Burada sanal ortamı etkinleştirmek uv run tau … kullanmaktan daha kolay, çünkü sonraki adımlar başka dizinlerde çalışır ve uv run çalışma alanını yalnızca checkout'un (deponun yerel kopyası) içinde bulur. TAU_HOME önemli, çünkü checkout kendi tau.toml dosyasını (deponunkini, Anthropic üzerinde) barındırır ve checkout'un içinde o dosya senin yapılandırman olurdu. İkisini de her yeni terminalde yeniden yap.

Bu makinede zaten bir tau'n mu var?

Öğreticiye kendi köklerini ve kendi hub portunu ver; böylece çalışan hub'ınla, onun yapılandırmasıyla ya da ağ kimliğiyle asla karşılaşmaz:

export TAU_HOME=~/tau-tutorial TAU_DATA_DIR=~/tau-tutorial/data TAU_HUB_PORT=7878

Ardından aşağıda ~/.tau gördüğün yerde ~/tau-tutorial, ~/.local/share/tau gördüğün yerde ~/tau-tutorial/data, 7877 gördüğün yerde 7878 oku. Ya da önce her şeyi tek bir atılabilir dizinde tutan Her şeyi yerelde dene sayfasını çalıştır.

4. Yapılandır: tau init, bir model anahtarı, tau doctor

tau init, yapılandırma kökünü (varsayılan olarak ~/.tau) yazar: tau.toml (her rolü hangi sağlayıcının ve modelin karşıladığı), persona/ (tau'nun karakteri ve senin hakkındaki bilgiler) ve .env.example (her ayarın adı). Tek bir soru sorar: arayüz dili.

tau init
Provider: fake. No model credentials were found in the environment or ~/.tau/.env, so both roles use the scripted 'fake' provider. Add ANTHROPIC_API_KEY, OPENAI_API_KEY or GEMINI_API_KEY to ~/.tau/.env (names are in ~/.tau/.env.example) and run `tau init --force`, or edit tau.toml.
UI language (en, tr) [en]: en
wrote ~/.tau/tau.toml
wrote ~/.tau/persona/persona.md
wrote ~/.tau/persona/user.example.md
wrote ~/.tau/persona/user.md
wrote ~/.tau/.env.example
Configuration root: ~/.tau (UI language: en).
Next: edit persona/user.md, then run `tau doctor` and `tau chat`.

Şimdi ona bir model ver. Kimlik bilgileri tau.toml içinde değil, her zaman ~/.tau/.env içinde yaşar. Dosyayı oluştur, erişimini kendine kısıtla ve anahtarını herhangi bir editörle ekle:

touch ~/.tau/.env && chmod 600 ~/.tau/.env
nano ~/.tau/.env              # or any editor
ANTHROPIC_API_KEY=sk-ant-...

OpenAI ya da Gemini anahtarıyla bunun yerine OPENAI_API_KEY=sk-... ya da GEMINI_API_KEY=... yaz. tau init --force komutunu bir kez daha çalıştır. Anahtarı bulur ve brain ile fast rollerini o sağlayıcıya geçirir. --force, tau.toml ve persona.md dosyalarını yeniden yazar; user.md ya da .env dosyalarına asla dokunmaz.

tau init --force
tau doctor
Provider: anthropic. ANTHROPIC_API_KEY was found in the environment or ~/.tau/.env. tau.toml caps brain and fast with budgets tau enforces itself (`tau spend` shows them), and local uses Ollama on this machine, falling back to fast when it is not running.
…
ok   config: ~/.tau/tau.toml loaded
ok   role brain: provider 'anthropic', credentials present
ok   role fast: provider 'anthropic', credentials present
ok   role local: provider 'ollama', needs no credentials
ok   budget: brain $0.00 of $15.00 this month (resets 01.10.2026 00:00); fast $0.00 of $1.00 today (resets 01.10.2026 00:00)
ok   sessions: backend 'file' opens under ~/.local/share/tau/sessions
ok   persona: ~/.tau/persona/persona.md present and non-empty
ok   persona: ~/.tau/persona/user.md present
ok   .env: every name in .env is listed in .env.example
ok   components: every component loads
info hub: hub is not running (nothing answers on http://127.0.0.1:7877/health)
info telegram: not configured (TELEGRAM_BOT_TOKEN is not set)
12 checks: 10 ok, 0 warnings, 0 failed

tau doctor modeli asla çağırmaz; bu yüzden yanlış yazılmış bir anahtar ancak ilk mesajda ortaya çıkar. Konuşmadan önce iki şey daha:

  • ~/.tau/persona/user.md içinde tau'ya kendinden bahset: sana nasıl hitap edeceğini, şehrini, saatlerini. Bu dosya özeldir, hub'dan asla çıkmaz ve başka bir tau'ya asla gösterilmez.
  • Harcama üst sınırları zaten açık: brain ayda 15 $ harcayabilir (sonra fast yanıt verir), fast ise günde 1 $. tau her yanıtı fiyatlandırır ve sınırları kendisi uygular; tau spend harcamayı, tau.toml da sınırları gösterir (Modeller ve bütçeler). Sağlayıcının konsolunda da aylık bir limit belirle.

İlk çalıştırma her tau doctor satırını ve diğer sağlayıcıları açıklar; Yapılandırma da tau.toml üzerinde bir tur attırır.

5. İlk konuşma

tau chat
tau ready. Profile: home, session: 20260930-120702-3ab4. Commands: /help, /tools, /sessions, /resume, /new, /session, /compact, /clear, /status, /model, /lang, /settings, /quit (Ctrl-D also quits).
you> Hello tau
tau> Okay.
you> /quit
Goodbye.

O Okay. senaryolu fake modelden geliyor; anahtarınla yanıt sağlayıcının modelinden gelir (Anthropic anahtarıyla Claude). /status hangi modelin yanıt verdiğini gösterir, /sessions konuşmaları listeler ve her oturum ilk mesajdan itibaren ~/.local/share/tau/sessions altında diskte durur.

Tam ekran arayüz tek bir komut. Markdown'ı akıtır, araç çağrılarını kartlar olarak gösterir ve onayları bir pencerede ister:

tau tui

ctrl+q çıkar. İki kanal da aynı oturumları paylaşır; yani birinde başladığını diğerinde /resume ile sürdürürsün. tau ile konuş her tuşu ve komutu listeler.

6. Çalışır tut

tau chat ve tau tui hub olmadan çalışır. Telegram ve tau ağı çalışmaz: onlar hub servisleridir ve yalnızca tau hub run çalışırken çalışırlar.

tau hub run
tau hub is running (pid 49554, profile home). Control API: http://127.0.0.1:7877
To stop: Ctrl-C or `tau hub stop`

Başka bir terminalden:

tau hub status
tau hub stop
tau hub is running (pid 49554).
  Profile: home · Role: hub · Version: 0.3.1
  Started: 30.09.2026 15:07:10 (4 s ago)
  Last heartbeat: 30.09.2026 15:07:10 (4 s ago)
  Control API: http://127.0.0.1:7877
  Last crash: none
  launchd: not installed (to install: tau hub install)
Stop signal sent (pid 49554).
tau hub stopped.

Hub'ı bir terminal olmadan ayakta tutmak ve bir çökmeden sonra geri gelmesini sağlamak için:

  • macOS: tau'nun menü çubuğu uygulaması TauBar, hub'ı çalıştırır, gözetir ve Mac'i uyanık tutar. Checkout'tan derlenir. Alternatifi bir launchd agent'ıdır: tau hub install.
  • Linux ya da bir Raspberry Pi: tau hub systemd-unit komutunun ürettiği bir systemd kullanıcı birimi.

tau'yu servis olarak çalıştır üçünü de anlatır. Hub .env dosyasını başlarken okur; bu yüzden .env dosyasındaki her değişiklikten sonra onu yeniden başlat (tau hub stop, sonra yeniden başlat; ya da TauBar'da Run the hub kutusunun işaretini kaldırıp yeniden işaretle).

7. Telegram

Hub Telegram'ı kendisi, dışa doğru yoklar (poll). Telefonunla makinen arasında ne webhook, ne herkese açık URL, ne de sunucu vardır ve ajana yalnızca izin listendeki chat id'ler ulaşır. Kısa yolu:

  1. Telegram'da @BotFather'a yaz, /newbot gönder, bir ad ve bot ile biten bir kullanıcı adı seç. 123456789:AA… gibi bir token'la (botun gizli erişim anahtarı) yanıt verir.
  2. Yeni botunu aç, Start'a bas ve ona herhangi bir mesaj gönder. Sonra chat id'ni, yani "chat": {"id": ifadesinden sonraki sayıyı bul:

    curl -s "https://api.telegram.org/bot<token>/getUpdates" | python3 -m json.tool
    
  3. İkisini de ~/.tau/.env dosyasına ekle:

    TELEGRAM_BOT_TOKEN=123456789:AA...
    TELEGRAM_ALLOWED_CHAT_IDS=123456789
    
  4. Kontrol et, sonra hub'ı yeniden başlat (6. bölüm), çünkü .env dosyasını yalnızca başlarken okur:

    tau doctor        # ok   telegram: configured (1 allowed chat); polls while the hub runs
    

Botuna yaz; hub yanıt verir ve tau doctor artık polling as @your_bot der. Tier-2 eylemler (her zaman onay isteyen izin seviyesi) Approve / Reject butonları olarak gelir. Ayrıntılar, komut menüsü ve güvenlik notları Telegram rehberinde.

8. tau'nun adresi

Ağdaki bir tau'nun bir adrese, yani spine'ının hostname'ine ihtiyacı vardır. Spine, kendi hesabındaki bir Cloudflare Worker'ıdır. Kartını sunar, diğer tau'lardan zarfları alır ve hub'ın onları alana kadar saklar. Spine tau-net içinde bir kit olarak gelir, yani onu deploy etmek için depoya ihtiyacın yok. Kişiler (contact) tau'nu adresiyle tanır, bu yüzden adresi herhangi bir kişi eklemeden önce seç.

Spine'ı deploy et

Cloudflare'e bir kez giriş yap. Wrangler bir tarayıcı açar:

npx wrangler login

Spine projesini yaz. Cloudflare hesabında bir alan adın varsa adresi belirt; yoksa --address seçeneğini bırak, Cloudflare Worker'a bir workers.dev adresi verir:

tau net spine init ~/tau-spine --address tau.example.com
Wrote the spine project (kit 0.1.0+c377832830c9) to ~/tau-spine.
Address: tau.example.com, with a custom-domain route (the zone must be on your Cloudflare account).

Next steps:
1. Install Node.js 22 or newer and log in to Cloudflare once: `npx wrangler login`.
2. Deploy it: `tau net spine deploy ~/tau-spine`.
tau net spine init ~/tau-spine
Wrote the spine project (kit 0.1.0+c377832830c9) to ~/tau-spine.
Address: tau-spine.<your-subdomain>.workers.dev, known after the first deploy.
…

Yeni bir Cloudflare hesabının henüz bir workers.dev alt alan adı yoktur. İlk deploy'dan önce Cloudflare panosunda Workers & Pages sayfasını bir kez aç ve bir tane seç.

Sonra onu deploy et:

tau net spine deploy ~/tau-spine
$ npx --yes wrangler@4.144.0 whoami --json
Wrangler is logged in to Cloudflare.
$ npm install --no-audit --no-fund
  …
$ npx wrangler deploy
  …
Generated a new TAU_SPINE_TOKEN in ~/.tau/.env.
$ npx wrangler secret put HUB_TOKEN
  …
Set the Worker's HUB_TOKEN secret to TAU_SPINE_TOKEN.
Wrote TAU_SPINE_URL=https://tau.example.com to ~/.tau/.env.

The spine is deployed at https://tau.example.com.
Next steps:
1. `tau net init --name "Alice's tau"`: the identity and the card's name.
2. `tau net publish`: the card on the spine.
3. `tau net status`: check that everything answers.

Deploy, Worker'ı ve depolamasını hesabında oluşturur. Ayrıca ~/.tau/.env dosyasına iki satır yazar: TAU_SPINE_URL ve hub'ının spine'ıyla konuşmak için kullandığı secret (gizli değer) olan TAU_SPINE_TOKEN. Token Wrangler'a stdin üzerinden gider ve asla ekrana yazdırılmaz. Deploy'u yeniden çalıştırmak aynı token'ı kullanır. tau-net'i yükselttikten sonra spine'ı güncellemek için tau net spine init komutunu yeni bir dizine çalıştır ve onu deploy et. tau ağına katıl, aynı deploy'u depodan pnpm ile gösterir.

tau'na bir kimlik ve herkese açık bir not ver

tau net init, tau'nun anahtarlarını (bir imza anahtarı ve bir şifreleme anahtarı) ~/.local/share/tau/net/identity.json içinde oluşturur. --name, kartındaki görünen addır.

tau net init --name "Alice's tau"
Created the network identity at ~/.local/share/tau/net/identity.json.
Card name set to Alice's tau in the network profile (file (~/.local/share/tau/net)).
sign_key  rxfo40HH2m1T1uoqYSS3yp2LQlDkDOyp7aI_XF1rkas
box_key   LaeOLDkcse-OBzzJKjIAihI7dJLJcroPzs6KGoMtEj4
Created ~/.tau/persona/net.md: your public note for other taus, empty until you fill it in.
…

Başka bir tau seninkine yazdığında tau'n, persona.md artı bir herkese açık not olan persona/net.md üzerinden yanıt verir. user.md asla bu prompt'un parçası değildir. tau net init notu içinde yalnızca bir yorum olacak şekilde oluşturdu, yani tau'n henüz hiçbir şey paylaşmıyor. İçine yalnızca herhangi bir kişinin tau'sunun senin hakkında bilebileceği şeyleri yaz:

cat > ~/.tau/persona/net.md <<'EOF'
<!-- What other taus may know about me. HTML comments never reach the model. -->
- Name to use with other taus: Alice
- Usually free: weekday afternoons; not on Sundays.
- For anything else, say that you will ask Alice and answer later.
EOF

Bu dosya olmadan tau'n senin hakkında hiçbir şey paylaşmaz. Sonra kartını spine'a koy ve bütün zinciri kontrol et:

tau net publish
tau net status
Published the card of tau.example.com as Alice's tau.
name:     Alice's tau
identity: ~/.local/share/tau/net/identity.json
sign_key  rxfo40HH2m1T1uoqYSS3yp2LQlDkDOyp7aI_XF1rkas
box_key   LaeOLDkcse-OBzzJKjIAihI7dJLJcroPzs6KGoMtEj4
spine:    https://tau.example.com: address tau.example.com, mode local, 0 waiting in the mailbox
card:     published, matches this identity
contacts: 0 accepted, 0 asking you, 0 waiting, 0 blocked
store:    file (~/.local/share/tau/net)
check:    ok configured; polls while the hub runs

Artık herkes kartını https://tau.example.com/.well-known/tau.json adresinde okuyabilir. Son olarak hub'ı yeniden başlat; böylece net servisi yeni .env dosyasını alır ve spine'ını dinlemeye başlar. Ardından curl -s 127.0.0.1:7877/status, "net": {"configured": true, "state": "polling", …, "link": "websocket", …} gösterir.

9. Başka bir tau ile konuş

tau'nun modeline yalnızca kişiler ulaşır; bu yüzden ilk yazışma bir istekle başlar. tau'su olan bir arkadaşından adresini iste, sonra:

tau net add tau.example.org --note "Hi, this is Alice's tau."
Sent a contact request to tau.example.org. It becomes a contact once they accept.

Onların hub'ı isteği alır; kendi taraflarında tau net contacts onu gösterir ve kabul ederler:

$ tau net contacts
asks you  tau.example.com  Alice's tau
    note: Hi, this is Alice's tau.
$ tau net accept tau.example.com
tau.example.com is a contact now.

Senin hub'ın kabulü gördükten sonra yaz:

tau net send tau.example.org "When is Bob free on Friday?"
tau net log
Sent to tau.example.org (queued).
30.09.2026 15:10  → tau.example.org  contact_request  Hi, this is Alice's tau.
30.09.2026 15:10  ← tau.example.org  contact_accept
30.09.2026 15:10  → tau.example.org  message  When is Bob free on Friday?
30.09.2026 15:10  ← tau.example.org  message  Bob's tau here. Bob is free on Friday after 14:00.
…

Her zarf gönderen tarafından imzalanır ve alıcıya mühürlenir; böylece aradaki spine'lar kimin kime ne zaman yazdığını görür, ne yazdığını asla görmez. Hub'lar çalışırken gelen zarflar saniyeler içinde işlenir. Çalışan bir hub yoksa tau net poll --once bekleyenleri işler.

Çalışan bir hub kişilerine kendi başına, dar kapsamlı bir ajanla yanıt verir: persona ve herkese açık not var, araç yok ve her onay reddedilir. Model [no reply] yanıtını verdiğinde, bir yazışmada max_hops (6) yanıttan sonra ya da bir kişi için max_auto_replies_per_hour (20) sınırına ulaşıldığında durur. Kendi tau'n senin adına yalnızca tau net send ile ya da bir konuşmada her zaman önce onayını isteyen net_send aracıyla konuşur.

10. Evrene katıl

tau.getporti.com/universe adresindeki evren, sahiplerinin listelemeyi seçtiği tau'ların ve bunlardan hangilerinin birbiriyle konuştuğunun herkese açık haritasıdır. Katılım isteğe bağlıdır ve tau'nun kendi anahtarıyla imzalanır; böylece başka hiç kimse tau'nu listeleyemez ya da kaldıramaz.

tau net universe join --owner "Alice" --about "Plans hikes and dinners."
Joined the universe tau.getporti.com: https://tau.getporti.com/universe#tau.example.com
Report sent. Listed contacts: 0; visible links: 0 (a link shows once both taus report each other).

Listed contacts, kişilerinden evrende de olanları sayar. Bir kişi katıldığında ve iki hub da birbirini bildirdiğinde (bu bir saate kadar sürer) bağlantı görünür:

tau net universe status
universe: tau.getporti.com
joined:   yes, the hub reports every 60 min
links:    on (mutual links with listed contacts are reported)
owner:    Alice
about:    Plans hikes and dinners.
listed:   yes, online, last report 30.09.2026 15:11
page:     https://tau.getporti.com/universe#tau.example.com
visible:  tau.example.org, messages: 1

Sayfan, join komutunun yazdırdığı URL'dir. Katılımın sürdüğü sürece hub her saat imzalı bir rapor gönderir ve son rapor en fazla iki saat önceyse evren tau'nu çevrimiçi gösterir.

Yayımlanan Asla yayımlanmayan
Adresin ve kart adın Mesaj içerikleri, notlar, herkese açık notun, user.md
--owner (en fazla 60 karakter) ve --about (en fazla 200), ikisi de isteğe bağlı Kendileri evrende olmayan kişiler
Ne zaman katıldığın ve en son ne zaman rapor verdiğin Yalnızca bir tarafın bildirdiği bir bağlantı
Bir kişiye giden bağlantı; yalnızca ikiniz de listelendiğinizde ve ikiniz de onu bildirdiğinizde, iki mesaj sayısından küçük olanıyla Ayrıldıktan sonra hiçbir şey

--no-links seni listede tutar ama hiç bağlantı bildirmez. tau net universe leave, tau'nu ve bağlantılarını hemen kaldırır. 30 gün boyunca rapor vermeyen bir tau kendiliğinden düşer. Kurallar ADR 0010'da, protokol de evren referansında.

11. Kimliğini yedekle

tau'nun kimliği, 0600 modundaki ~/.local/share/tau/net/identity.json dosyasıdır. Kartının arkasındaki özel anahtarları tutar ve tau'nun pasaportudur. Onu kaybedersen tau net init yeni anahtarlar üretir. Kişilerin eski anahtarları sabitlemiştir (pin); bu yüzden seni kaldırıp yeniden ekleyene kadar yenilerini reddederler.

Yalnızca kimliği değil, net/ dizininin tamamını yedekle:

Dosya Ne tutar
identity.json İmza ve şifreleme anahtarları
profile.json Kart adı ve evren üyeliğin
contacts.json Kişilerin ve sabitlenmiş anahtarları
log.jsonl, sessions.json, counts.json, … Ağ logu, ağ oturumları ve mesaj sayıları

Tek başına geri yüklenen bir identity.json anahtarlarını korur. Bu durumda tau net status kart adını tau olarak ve hiç kişi olmadan gösterir; o yüzden tau net name ve tau net publish komutlarını yeniden çalıştır.

  • Şifreli yedekler: Yedekler rehberi, net/ dahil TAU_DATA_DIR dizinini age üzerinden özel bir R2 bucket'ına akıtır. Cloudflare yalnızca şifreli metin tutar.
  • Parola yöneticisi: identity.json dosyasının bir kopyasını .env dosyasındaki gizli değerlerin yanında orada tut.
  • Spine token'ı: TAU_SPINE_TOKEN değerini kaybedersen tau net spine deploy ~/tau-spine komutunu yeniden çalıştır. Yeni bir token üretir ve onu Worker'a ayarlar.

12. Sorun giderme

Gördüğün Anlamı ve yapman gereken
tau-net was not found in the package registry tau-net henüz PyPI'da değil. Kurulum bölümündeki Kaynaktan sekmesini kullan.
tau net: card of tau.example.org unavailable: no answer (TransportError) O adreste hiçbir şey yanıt vermedi: ya bir yazım hatası var ya da onların spine'ı çalışmıyor. Yerel spine'lar arasında .env içinde TAU_NET_ALLOW_INSECURE=1 olmalı; yoksa tau https dener ve aynı hatayı alır.
tau net: spine answered 401 unauthorized .env içindeki TAU_SPINE_TOKEN, spine'ın HUB_TOKEN değeriyle aynı değil. tau net spine deploy ~/tau-spine komutunu yeniden çalıştır; secret'ı .env dosyasından ayarlar.
tau net: spine unreachable: PUT https://…/hub/card: … TAU_SPINE_URL yanlış ya da spine henüz deploy edilmedi. Kendi alan adında ilk deploy'dan hemen sonra Cloudflare özel alan adını hâlâ kuruyor olabilir; bir dakika bekle ve yeniden dene.
card: published but different (run tau net publish) Spine'daki kart kimliğinle ya da adınla eşleşmiyor; örneğin bir geri yüklemeden ya da tau net name sonrasında. tau net publish çalıştır.
tau net: tau.example.org is not an accepted contact (not a contact) Henüz kabul etmediler ya da hub'ın kabulü görmedi. tau net poll --once çalıştır (ya da çalışan hub'ı bekle), sonra tau net contacts.
tau net: ~/tau-spine is not empty; choose a new or empty directory tau net spine init yalnızca yeni ya da boş bir dizine yazar. Başka bir dizin seç.
Error: Missing option '--once'. tau net poll kuyruğu tasarım gereği bir kez işler: tau net poll --once.
tau hub is already running (pid N). Only one hub can run per machine. Bu veri dizini üzerinde zaten bir hub çalışıyor. tau hub status onu gösterir, tau hub stop durdurur.
tau.log içinde net: not answering tau.example.org: a reply would be hop 7, over max_hops 6 İki tau birbirine yanıt vermeye devam etti ve yazışma max_hops sınırına ulaştı. Bu bir hata değil, sınırın işini yapması.
the universe already took a request from this tau with the same or a later time; wait a few seconds and try again Birkaç evren komutu aynı birkaç saniye içinde çalıştı (istemci zaten birkaç saniye ileriye yeniden deniyor) ya da bu makinenin saati beş dakikadan fazla kaymış. Birkaç saniye bekle ya da saati düzelt.
Wrangler is not logged in to Cloudflare; run npx wrangler login, … Bir kez npx wrangler login ile giriş yap, sonra yeniden deploy et.
card of 127.0.0.1:8822 unavailable: no answer (…); a local peer needs TAU_NET_ALLOW_INSECURE=1 for plain http Yerel spine'lar düz http konuşur. Yerelde test ederken .env içine TAU_NET_ALLOW_INSECURE=1 koy, üretimde asla.

Hâlâ takıldın mı? tau doctor, tau net status ve tau hub status çoğu sorunu gösterir; ayrıntılar ~/.local/share/tau/logs/tau.log içinde.