subagent-ledger
Bir işi beş subagent'a dağıtırsın, sonunda /cost tek bir toplam verir: hangi agent'ın bütün repository'yi okuduğu, hangisinin dört dakika çalıştığı görünmez. Bu mod session'daki her subagent'ın ne harcadığını gösterir: turn sayısı, geçen gerçek süre ve token'ları; agent başına bir satır, en pahalısı önce.
Ne yapar
Mod
agent.spawn'ı hook'lar; bu olay subagent'ın ne olduğunu söyler: agent type'ı (Explore,general-purpose, bir plugin'in agent'ı,fork) ve görevinin tek satırlık açıklaması. Mod bunları, spawn'ın çözdüğü modelle birlikte, spawn'ın cevapladığı agent id'si altında tutar ve satırı hemen çalışıyor olarak çizer.Her subagent loop'unun
turn.complete'ini hook'lar. O turn subagent'ın cevabıdır, yani çalışmayı bitirir: turn bir cevapla bittiysedone, kesildiyse, reddedildiyse ya da bir API hatasıyla bittiysestopped. Bu turn'lerin her biri deftere bir turn, kendidurationMs'ini ve token'larını ekler: engine'in o turn için bildirdiği input, output, cache okumaları ve cache yazmaları. Turn ayrıca onu cevaplayan modeli söyler; bu model spawn'ın modelinin yerine geçer ve vendor ön eki ile tam bir id'nin tarihi olmadan çizilir, yaniclaude-haiku-4-5-20251001haiku-4-5olarak okunur. Bir ana loop turn'ü sayılmaz.Bir model isteği olan
turn.step'i hook'lar. Cevap vermiş bir subagent'ın loop'u yeniden çalışırsa, örneğin SendMessage onu devam ettirirse, satır yeniden çalışıyor olarak çizilir. Bir ana loop adımı okunmaz.sidebar açıkken defter session boyunca duran tek bir
subagentssection'ıdır; her spawn'da, her subagent turn'ünde ve bir subagent yeniden çalıştığında yeniden yazılır:subagents port the config loader to the new schem… · opus-5 · 7 turn · 4m 10s · T 260k · I 5k · O 9k · CR 210k · CW 36k · running find the parser · haiku-4-5 · 3 turn · 42s · T 81k · I 2k · O 1k · CR 70k · CW 8k · done read the tests · haiku-4-5 · 1 turn · 9s · T 30k · I 1k · O 500 · CR 24k · CW 5k · stopped 2 more · 150kBir satırın adı görevinin açıklamasıdır ve 40 karakterde kesilir; açıklama vermeyen bir spawn'ın satırında onun yerine agent type'ı yazar. Token'lar şöyle okunur:
Ttoplam,Icache'in karşılamadığı input,Ooutput,CRcache okumaları,CWcache yazmaları; son dördünün toplamıT'dir. Satır durum kelimesiyle biter: subagent çalışırken sarırunning, cevap verince yeşildone, çalışması cevapsız bittiğinde solukstopped. Model ailesine göre renklidir (opus kırmızı, fable sarı, sonnet yeşil, haiku soluk).Ttoplamı her durumda, sınırın (varsayılan 200k token) %80'inden itibaren sarı, subagent sınıra ulaşınca kırmızıdır. Ad, turn'ler, süre ve türe göre token'lar varsayılan renkte kalır. Üçüncüden sonraki satırlar, token'ları toplanmış soluk tek bir satırdır; yani yirmi agent'lık bir dağıtım da dört satır tutar.Sidebar kapalıysa ya da kurulu değilse toplamlar status line'a gider:
subagent-ledger: 4 subagent · 12 turn · 3m 10s · 210k/subagent-ledger, sidebar ne gösterirse göstersin, toplamları ve session'ın her subagent'ını en pahalısı önce yazar.
Komut
/subagent-ledger açık mı kapalı mı, sınır, toplamlar ve her subagent
/subagent-ledger on | off varsayılan açık
/subagent-ledger limit 500 500k token'ı aşan bir subagent kırmızı çizilir; 1 ile 10000 arası, varsayılan 200, session'lar arasında saklanır
Kurulum
claude plugin marketplace add KilimcininKorOglu/claude-code-mods
claude plugin install subagent-ledger@kilimcininkoroglu-mods
Function hook'lar henüz early access aşamasında. Claude Code 2.1.288 ve üzerinde varsayılan olarak yüklenir, açılacak bir ayar yok.
Kurulumdan sonra
- Claude Code'u yeniden başlat.
- Agent başına satırlar için sidebar mod'unu kur. O olmadan mod toplamları status line'da gösterir.
Nereye uzanır
Claude Code 2.1.283 üzerinde claude plugin validate ile doğrulandı:
❯ ./register.ts hooks: session.start, command.run{command=subagent-ledger}, agent.spawn, turn.step, turn.complete
❯ ./register.ts calls: $.command.register, $.sidebar.clear (via clearShown), $.sidebar.set (via show), $.store.get (via readLimit, readSettings), $.store.set (via setEnabled, setLimit), $.ui.status (via clearShown, show)
Reach L0: çizer ve hatırlar.
1. Okur: her spawn'ın agent type'ını, açıklamasını ve çözülmüş modelini, her subagent turn'ünün id'sini, süresini, bitiş sebebini, modelini ve token sayılarını ve her model isteğinin agent id'sini. Hiçbir prompt, cevap, dosya ve tool sonucu okumaz.
2. Çalıştırır: hiçbir şey
3. Gönderir: modele hiçbir şey; satırlar ve status line yalnız kişi içindir
4. Saklar: $.store içinde on/off ayarını ve limiti; defterin kendisi bellekte durur ve session'la birlikte gider
5. Düşman girdi: çizilen tek metin agent type'ı, spawn'ın kendi açıklaması (40 karaktere kesilmiş) ve engine'in bildirdiği model id'sidir
Sınırlar
- Defter turn'leri bittikçe sayar. Hâlâ çalışan bir subagent satırlarda sarı olarak, o ana kadar harcadığıyla durur.
- Bir çalışma defterde yalnız subagent'ın
turn.complete'iyle biter. Çalışması bu olay olmadan biten bir subagent sarı kalır. Her bitiş türünün (birTaskStop, öldürülen bir background agent) bu olayı tetikleyip tetiklemediği ölçülmedi. - Bu mod'un spawn'ını görmediği bir subagent (mod yüklenmeden önce başlamış biri)
agentetiketiyle sayılır, çünkü type'ı yalnız spawn söyler. Turn'lerinden biri bir model söyleyene kadar modeli boştur; modelsiz bir satır o alan olmadan çizilir. - Token'lar engine'in turn başına kendi sayımlarıdır. Cevap almamış bir turn hiçbir şey taşımaz ve sıfır ekler.
- Token dolar değildir. Bir cache okumasının bir subscription'ın limitlerinden ne kadar yediği belgelenmemiştir.
- Defter session başınadır. Yeniden başlatınca boş başlar, sayımlar diske yazılmaz.
Geliştirme
make install # eslint, typescript-eslint, typescript
make lint # complexity sınırı 10; aşılırsa build kırılır
make typecheck # /plugin-types çıktısı olan .claude/types/ gerekir
make validate
make test # claude plugin test