Görünüm
Metin boyutu
Yazı tipi
Satır aralığı
3
Bölüm 3 · 3 dk

İzin modları

Altı mod, Claude'un sormadan ne kadarını yapabileceğini belirliyor. Modu, bir hatanın maliyetine göre seçin ve katı kuralları harness'ın zorladığı yere koyun.


Tek ayar, altı konum

Her oturum altı izin modundan birinde çalışıyor: default, acceptEdits, plan, auto, dontAsk ve bypassPermissions. Terminalde Shift+Tab default, acceptEdits ve plan arasında dönüyor. Bypass bu döngüde yalnızca başlangıçta etkinleştirildiyse görünüyor, dontAsk ise orada hiç görünmüyor.

Bir modda başlamak için --permission-mode <mode> kullanabilir ya da ayarlarda permissions.defaultMode tanımlayabilirsiniz. Ayarın arkasındaki soru basit: ne kadar bölünmek istiyorsunuz ve Claude yanılırsa ne olur?

Her mod gerçekte neye izin veriyor

  • default Manuel mod. Claude serbestçe okuyor, düzenlemeden ve komut çalıştırmadan önce soruyor.
  • acceptEdits dosya düzenlemelerini sormadan onaylıyor. Çalışma dizini içinde mkdir, touch, rm, rmdir, mv, cp ve sed komutlarını da otomatik onaylıyor. Listede rm olduğuna dikkat edin.
  • plan Claude'un okumasına ve öneri sunmasına izin veriyor. Siz planı onaylayana kadar düzenlemeler engelli.
  • auto kararı, her önemli eylemi inceleyen bir sınıflandırıcı modele bırakıyor. Varsayılan sınıflandırıcı Claude Sonnet 5.
  • dontAsk gözetimsiz script'ler için, --allowedTools ile birlikte kullanılıyor.
  • bypassPermissions istemleri atlıyor. Yalnızca atılabilir container'larda çalıştırın.

Bazı yollar, düzenlemeler otomatik onaylıyken bile korunuyor: .git, .claude, .vscode, .idea, kabuk rc dosyaları ve .mcp.json gibi yerlere yazma, bypass dışında asla otomatik onaylanmıyor.

Kendinizi deneyin

Daha hızlı ilerlemek için acceptEdits'e geçtiniz. Çalışma dizini içinde başka ne otomatik hale geliyor?

Muhakeme mi, duvar mı

En dikkatli anlaşılması gereken mod auto, çünkü duvar gibi hissettiriyor ama değil. Bir sınıflandırıcı her eylem için bir yargıya varıyor. Üst üste üç engelleme ya da toplamda yirmi engelleme onu duraklatıyor ve istemler geri dönüyor. Auto moda girmek, Bash(*) gibi geniş allow kurallarını da düşürüyor, Bash(npm test) gibi dar olanlar kalıyor.

Sohbette söylediğiniz sınırlar, örneğin "push etme", sınıflandırıcıya sinyal oluyor. Kural olarak saklanmıyorlar, yani compaction onları kaybettirebilir. Her zaman tutması gereken bir kural için deny kuralı ya da hook yazın. Deny kuralları bypass dahil her modda geçerli, allow kuralları ise bypass'ta hiçbir etki yapmıyor.

Rehberden kural sözdizimi örnekleri: Bash(git push *) ve Read(./.env). Bir Read deny kuralı cat .env komutunu da yakalıyor, ama dosyayı açan bir script'i yakalamıyor. /sandbox bu boşluğu işletim sistemi düzeyinde kısıtlamayla kapatıyor.

Nasıl seçilir

Sabrınızdan değil, bir hatanın maliyetinden yola çıkın.

  • Tanımadığınız bir depo ya da geri alınamayacak bir şeye yakın değişiklik: default, ve her istemi okuyun.
  • Sonradan /diff ile gözden geçireceğiniz bir refactor: acceptEdits.
  • Önce yaklaşım üzerinde anlaşmak istediğiniz bir iş: plan (sonraki ders).
  • İstemlerin darboğaz olduğu uzun işler: auto, asla olmaması gerekenler için deny kurallarıyla.
  • İnsansız bir script: sıkı bir --allowedTools ile dontAsk.

İstemler sizi rahatsız ediyorsa modu gevşetmek yerine nedenini giderin. /fewer-permission-prompts transkriptlerinizi tarayıp .claude/settings.json içine salt okunur bir izin listesi yazıyor, /permissions ise engellenen bir eylemi r ile yeniden denediğiniz bir "Recently denied" sekmesi sunuyor.

Kendinizi deneyin

Claude'un asla git push çalıştırmayacağına dair garanti istiyorsunuz. Nereye koyarsınız?

Devamını okuyun