AIDive

Video paketi

Claude Code modları: kaynaklı karar, ölçümler ve pazartesi kontrol listesi

9 dk okuma

TL;DR

  • On modun üçünü tutun: collision-guard, model-router ve auto-handoff. Her biri başsız (headless) bir okuma görevinde ölçülebilir yaklaşık sıfır ek yük gösterdi ve her biri adını koyabileceğiniz bir sorunu çözüyor.
  • next-steps'i silin. Uygun her yanıttan sonra oturumu çatallıyor (fork) ve bizim çalıştırmamızda tur başına +250 çıktı token'ı ve +2850 ms maliyet getirdi; önerilerini hiç çizmeyen yüzeylerde bile.
  • cache-keeper'ı (+1589 ms, ücretli model ping'leri), recording-mode'u (kayıtlı geçmişi değil, ekranı maskeliyor) ve session-bookmarks'ı (modeli çağırabilen, süreç çalıştırabilen ve dosya yazabilen bir yer imi) silin.
  • Görselleri istemiyorsanız goal-meter, repo-heatmap ve flight-recorder'ı da silin. Neredeyse hiçbir şeye mal olmuyorlar ve ölçülebilir bir fayda göstermediler.
  • Her guard mod varsayılan olarak fail open çalışır. .catch işleyicisi yoksa, hata fırlatan bir guard atlanır ve komut çalışır.
  • Modlar sandbox içinde değildir. Bir modu kurmadan önce claude plugin validate çıktısını okuyun.

Ölçümler ne söylüyor

Abartı ve ölçek. Yayın tweet'i, 2026-10-03'te anlık görüntüsünü aldığımızda 4,138,918 görüntülenme, 20,021 beğeni ve 13,440 yer imine sahipti s11. Topluluk kataloğu 873 aday depoda 1018 mod listeliyor; tarama 2026-10-03'te Claude Code 2.1.288 üzerinde yapıldı s9.

Mod, bir olaya bağlanan bir fonksiyondur. Olaydan önce, sonra veya olayın yerine çalışabilir ya da olayı sarmalayabilir s1. Modlar Claude Code v2.1.287 veya üstünü gerektirir ve varsayılan olarak açıktır s2.

Önce güvenlik. Anthropic'in kendi ifadesi: "Mods run with the same access to your machine as Claude Code itself. They aren't sandboxed" s1. Sandbox'ı açsanız bile bir modun başlattığı süreç sandbox dışında çalışır s2. Read(.env) reddedilmiş olsa da bir mod bu dosyayı $.fs.read ile okuyabilir veya bunu yapan bir program başlatabilir s6. Katalog taramasında 409 mod ana makinede süreç çalıştırıyor, 167'si dosya yazıyor, 150'si ağa erişiyor ve 28'i bu sürümde doğrulamadan geçemiyor s9.

Erişim ve vaat. Statik denetimimizde session-bookmarks, $.model.complete, $.process.run ve $.fs.write çağırıyor: bir yer imi özelliği için setteki en geniş erişim. next-steps'in izi en küçüğü: fs yok, process yok, env yok. Bu denetimde kullanılan calls: ve env reads: satırlarını claude plugin validate yazdırır s6.

Amiral gemisi modun tur başına bir maliyeti var. next-steps, turn.complete olayında $.model.fork ile oturumu çatallıyor ve README çatalın "costs about one short reply" olduğunu söylüyor s10. Öneriler yalnızca terminalde çizilir; diğer yüzeyler hiçbir şey göstermez s10. Çatalı kapatacak bir seçenek yok. Başsız çalıştırmamızda +250 çıktı token'ı ve +2850 ms ekledi; çatal oturum kullanımına yazıldı, ekranda ise hiçbir şey gösterilmedi s10.

Belgelenmiş sınırlar. Hook çalışma süresi olay başına 10 saniye ile sınırlı, $.fs okuma ve yazmaları dosya başına 4 MiB, $.store ise toplamda 4 MiB JSON s3.

Guard'lar fail open çalışır. Belgeler, .catch işleyicisi olmayan bir hook hata fırlatırsa, zaman aşımına uğrarsa veya yanlış biçimde dönerse atlandığını ve yerine sıradaki işleyicinin çalıştığını söylüyor s7. Bunu yeniden ürettik: hata fırlatan ve .catch içermeyen bir Bash guard, touch ./marker-failopen.txt komutunun dosyayı oluşturmasına izin verdi. Aynı guard, {deny} döndüren bir .catch ile dosyayı oluşturmadı. Bir saha raporu, etkin ve çalışır görünen ama hiçbir şey yapmayan bir guard buldu; plugin list ise hâlâ "enabled" gösteriyordu s8.

2.1.288'de açık bir hata: await next(e) sonrasında döndürülen deny aracı durdurmuyor ve modele yazmanın başarısız olduğu söylenirken dosya 3 denemenin 3'ünde yazıldı s5.

Modlar ve settings hook'ları. Bir settings hook'u her çağrıda bir süreç başlatır. Başlatma süresini ölçtük: true ikilisi için 2.2 ms, bash -c 'exit 0' için 8.3 ms, python3 -c 'pass' için 26.1 ms ve node -e '' için 43.1 ms. Haftada 5,993 araç çağrısında node hook'u 258 s tutuyor. Süreç içi bir mod bunların hiçbirini ödemez. Belgeler, bir olayı engelleyen, izin veren veya kaydeden bir betiğiniz zaten varsa settings hook'unu öneriyor s2. Bir geçiş raporu 27 shell hook'tan 5 moda indi s8.

Maskeleme yalnızca görüntüde. recording-mode, ui.render'ın çizdiğini yeniden yazar. ~/.claude/history.jsonl istemi yazıldığı gibi tutar ve bir test kullanıcısı canary dizesini transcript'teki queue-operation kayıtlarında 7 kez buldu s5.

Modların çalışmadığı yerler. Başsız claude -p ve Agent SDK hook'ları çalıştırır ama hiçbir şey çizmez; Desktop WSL oturumu ikisini de çalıştırmaz s2.

Katalog güveni. Bir test kullanıcısı, düğmesi $.process.run ile bir program başlatan ve ev dizinine bir dosya yazan bir mod yayımladı. Diğer modlar gibi hiçbir uyarı olmadan kuruldu s5. Bu, kendi yayımladığı bir kavram kanıtıydı; sahada görülmüş bir saldırı değil.

Ölçümler

Korpus: gerçek bir kurulumun son 7 günü, 85 oturum, 4 proje, 882 kullanıcı istemi, 11,010 asistan turu, 5,993 araç çağrısı. Kıyaslama Claude Code 2.1.288 (macOS) üzerinde çalıştırıldı.

yapılandırma süre ms Δsüre çıktı tok Δçıktı görev ok
baseline 3980 0 247 0 3/3
next-steps 6830 +2850 497 +250 3/3
cache-keeper 5569 +1589 367 +120 3/3
recording-mode 8240 +4260* 598 +351* 3/3
goal-meter 3722 -258 244 -3 3/3
collision-guard 4565 +585 376 +129* 3/3
repo-heatmap 4119 +139 257 +10 3/3
flight-recorder 3949 -31 261 +14 3/3
model-router 3698 -282 238 -9 3/3
session-bookmarks 4152 +172 235 -12 3/3
auto-handoff 4051 +71 248 +1 3/3
  • ile işaretli satırlar büyük olasılıkla yanıt varyansıdır. recording-mode çalıştırma sırasında kapalıydı ve kapalıyken hiçbir şey eklemez.

Yeniden çalıştırma protokolü:

  1. Modları tek tek kurun ve claude plugin validate geçtiğini doğrulayın.
  2. Aynı salt okunur görevi haiku üzerinde başsız claude -p ile çalıştırın, yapılandırma başına 3 tekrar, süre ve çıktı token'ı için medyanı alın.
  3. Yalnızca süre ve çıktı token'ı farklarını aktarın. USD maliyeti yapılandırmalar arasındaki önbellek sırasına göre değişir, o yüzden yok sayın.
  4. Başlatma maliyeti için her hook gövdesinin 30 başlatmasını ölçün, medyanı alın ve haftalık araç çağrısı sayınızla çarpın.

Bunu pazartesi yapın

  • Kurulu her mod için claude plugin validate çalıştırın ve calls: ile env reads: satırlarını okuyun.
  • Erişimi (süreç, fs yazma, model çağrısı) işinden büyük olan her modu devre dışı bırakın.
  • Çoğunlukla başsız çalıştırmalarda, VS Code panelinde veya SDK'da çalışıyorsanız next-steps'i devre dışı bırakın; önerileri orada hiç çizilmez.
  • Güvendiğiniz her guard moda { deny: ... } döndüren bir .catch işleyicisi ekleyin.
  • Her guard'ın fail closed çalıştığını kanıtlayın: hata fırlattırın, işaret dosyası oluşturan bir komut çalıştırın ve dosyanın görünmediğini kontrol edin.
  • Sırları ~/.claude/history.jsonl veya transcript dışında tutmak için bir maskeleme moduna güvenmeyin. İkisini de diskte kontrol edin.
  • Başlatma maliyeti haftalık araç çağrılarınızda birikiyorsa, her çağrıda node veya python çalıştıran shell hook'ları süreç içi bir modla ya da derlenmiş bir ikiliyle değiştirin.
  • Kapatma anahtarlarını öğrenin: bir modu /plugin içinde devre dışı bırakın, tek oturum için --safe-mode, her yer için ~/.claude/settings.json içinde "disableAllHooks": true.

Daha ileri gidin

  • Kendinizinkini yazın: ~80 satırlık bir modun uygulamalı anlatımı ve önemli tuzaklar (modül düzeyindeki durum hot reload'da sıfırlanır, bu yüzden veriyi $.state içinde tutun) s4.
  • Mod, hook, skill veya settings kararını kendi geçmişinize bakarak verin: bir uygulayıcı önce oturum günlüklerinden tekrarlayan sorunları çıkarmayı öneriyor s12.
  • Bir guard yazmadan önce tam olay listesini ve sınırları okuyun s3.
  • Kurum çapında yönetim burada kapsam dışı. Tek başına çalışan geliştirici için tek nokta: sec-default, makinede yönetilen ayarlar olduğunda veya Team ya da Enterprise planıyla oturum açtığınızda yüklenir ve başka kısıtlama eklemez s6.
  • Tasarımın kökeni, 2.1.288'de düzeltilen bir worktree yalıtım hatası ve çalışma zamanı iç yapısı dahil, açık konuda duruyor s5.
  • Anthropic'in örnek modları (token-weather, blast-radius, replay-theater) destek verilmeden paylaşılmış olarak listeleniyor s2.

Kaynaklar

FAQ

Modlar sandbox içinde mi?

Hayır. Anthropic, modların makinenize Claude Code'un kendisiyle aynı erişimle çalıştığını söylüyor s1. Bir modun başlattığı programlar da sandbox dışında çalışır s2.

Guard modum çökerse ne olur?

.catch işleyicisi yoksa atlanır ve komut çalışır s7. Fail closed çalışması için { deny: ... } döndüren bir .catch ekleyin.

Bir mod token harcar mı?

Yalnızca modeli çağırırsa. Çalıştırdığımız on modun içinde next-steps ve cache-keeper ölçülebilir maliyet gösterdi; diğerleri çalıştırmamızda sağlam bir ek yük göstermedi.

Modları hızlıca nasıl kapatırım?

Birini /plugin içinde devre dışı bırakın, oturumu --safe-mode ile başlatın veya ~/.claude/settings.json içinde "disableAllHooks": true ayarlayın s2. Bunların hiçbiri yerleşik modları durdurmaz.

Bir modu kurmadan önce ne yaptığını kontrol edebilir miyim?

Evet. claude plugin validate hook'ları, API çağrılarını ve okuduğu ortam değişkenlerini listeler s6.