İ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
defaultManuel mod. Claude serbestçe okuyor, düzenlemeden ve komut çalıştırmadan önce soruyor.acceptEditsdosya düzenlemelerini sormadan onaylıyor. Çalışma dizini içindemkdir,touch,rm,rmdir,mv,cpvesedkomutlarını da otomatik onaylıyor. Listedermolduğuna dikkat edin.planClaude'un okumasına ve öneri sunmasına izin veriyor. Siz planı onaylayana kadar düzenlemeler engelli.autokararı, her önemli eylemi inceleyen bir sınıflandırıcı modele bırakıyor. Varsayılan sınıflandırıcı Claude Sonnet 5.dontAskgözetimsiz script'ler için,--allowedToolsile birlikte kullanılıyor.bypassPermissionsistemleri 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.
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
/diffile 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
--allowedToolsiledontAsk.
İ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.
Claude'un asla git push çalıştırmayacağına dair garanti istiyorsunuz. Nereye koyarsınız?
Bölüm tamamlandı
Claude Code temelleri kursunun 6 bölümünden 3. bölümü bitirdiniz.
Plan modunda Claude okuyup öneri sunuyor, düzenlemeler ise engelli kalıyor. Yaklaşım riskliyse işe yarıyor, diff tek cümleyse zaman kaybı.
Sonraki bölüm