Claude Code sürekli izin mi istiyor? --dangerously-skip-permissions olmadan düzelt
npm test komutunu kırkıncı kez onaylamak sadece gürültü. Sıkıcı istemleri susturup tehlikelileri korumak için gereken her şey Claude Code'da var. Sadece üç dosyaya ve altı moda dağılmış durumda.
KISA CEVAP
Her zaman onayladığın komutları permissions.allow içine (örneğin Bash(npm run *)), her zaman durması gerekenleri ask veya deny içine koy ve işe uygun bir izin modu seç: yoğun düzenleme için acceptEdits, rutin işler için auto, okuma için plan. Kurallar deny → ask → allow sırasıyla kontrol edilir, yani bir deny asla geçersiz kılınamaz. Her kuralın nereden geldiğini görmek için /permissions kullan. --dangerously-skip-permissions seçeneğini sadece işin bitince silinecek container'larda kullan.
Claude Code neden bu kadar sık soruyor
Varsayılan modda (CLI'da Manual olarak etiketlenir) Claude Code her aracı ilk kullandığında izin ister ve çalıştırmasına izin verilmemiş her shell komutu için yeniden sorar. İstem, yanlış bir rm komutunu veya kazara yapılan bir git push işlemini durdurabileceğin andır, bu yüzden korumaya değer. Sorun şu: bir ajanın bir oturumda yaptığı yüzlerce zararsız iş için de çıkar.
İstem görüp görmeyeceğini üç şey belirler: ayar dosyalarındaki kurallar, içinde bulunduğun izin modu ve daha önce “Yes, and don’t ask again” ile verdiğin cevaplar. Gürültüden kurtulmak için üçünü de ayarlaman gerekir.
Claude Code v2.1.283 ve sonrası, etkileşimli terminal ve VS Code oturumlarını her planda ve her sağlayıcıda auto modunda başlatır. Auto modunda, rutin işlemler için istem göstermek yerine arka planda çalışan bir sınıflandırıcı komutları ve ağ isteklerini senin istediğin şeyle karşılaştırır. Hâlâ her şey için istem görüyorsan durum çubuğuna bak: “⏸ manual mode on” varsayılan modda olduğun anlamına gelir.
Allow, ask ve deny kuralları
Kurallar bir ayar dosyasında permissions altında bulunur. Bu örnek doğrudan Anthropic'in ayar referansından alınmıştır:
allow: sormadan çalışır.ask: normalde onaylayacak modlarda bile her zaman sorar.deny: asla çalışmaz.
Önemli olan sıradır: önce deny, sonra ask, sonra allow. İlk eşleşme kazanır; kuralın daha spesifik olması bu sırayı değiştirmez. Bir allow kuralı, bir deny kuralından istisna oluşturamaz ve bir araç herhangi bir seviyede reddedilmişse başka hiçbir seviye ona izin veremez. Kuralları modelin kendisi değil Claude Code uygular, yani CLAUDE.md dosyasına “asla push yapma” yazmak bir deny kuralıyla aynı işi görmez.
Kural nasıl yazılır
| Kural | Neyle eşleşir |
|---|---|
Bash(npm run *) | npm run build, npm run test --watch, ama npm install değil |
Bash(git log *) | Sadece git log …. Her git komutuna izin veren Bash(git *) ile karşılaştır. |
Bash(ls:*) | Bash(ls *) ile aynı: :* sondaki joker karakteri yazmanın başka bir yolu |
Read(./.env) | O dosyanın okunması. Read ve Edit kuralları gitignore kalıplarını kullanır |
Edit(//Users/alice/notes/**) | Mutlak bir yol. Başta tek bir / ayar dosyasına göreli olduğu için mutlak yollar // gerektirir |
WebFetch(domain:example.com) | Sadece example.com. Alt alan adları için WebFetch(domain:*.example.com) ekle |
mcp__github__* | github MCP sunucusundaki her araç. mcp__ sonrasında parantez içeren kurallar atlanır |
Windows'ta PowerShell kuralları Bash kurallarıyla aynı yapıyı kullanır.
Hangi ayar dosyasını kullanmalı
| Kapsam | Dosya | Ne için kullanılır |
|---|---|---|
| Kullanıcı | ~/.claude/settings.json (Windows: %USERPROFILE%\.claude\settings.json) | Her projede geçerli kendi alışkanlıkların |
| Proje, paylaşılan | .claude/settings.json | Tüm ekibin alması gereken kurallar (commit'le) |
| Proje, yerel | .claude/settings.local.json | Tek bir repo için kişisel kuralların (commit'lenmez) |
| Yönetilen | managed-settings.json ve diğer yönetilen kaynaklar | Şirket politikası; hiçbir şey onu geçersiz kılamaz |
Öncelik sırası, en yüksekten başlayarak: yönetilen, komut satırı, yerel proje, paylaşılan proje, kullanıcı. permissions.allow gibi liste anahtarları dosyalar arasında değiştirilmez, birleştirilir. İki ayrıntı sık sık sorun çıkarır:
- Ayar dosyaları katı JSON'dur: bir
//yorumu veya sondaki bir virgül söz dizimi hatasıdır ve dosyanın tamamı yok sayılır. - Paylaşılan proje dosyasındaki allow kuralları, ancak her ekip arkadaşı klasöre güvendikten sonra geçerli olur. Deny ve ask kuralları hemen geçerli olur.
permissions ve hooks dahil çoğu değişiklik, çalışan oturuma yeniden başlatma gerekmeden uygulanır. Gerçekte neyin yüklendiğini görmek için /status (Setting sources satırı) veya her kuralı ve geldiği dosyayı listeleyen /permissions komutunu çalıştır.
“Yes, and don’t ask again” gerçekte neyi kaydeder
Bir isteme “don’t ask again” ile cevap vermek, git reposunun kökündeki .claude/settings.local.json dosyasına senin için bir kural yazar. Ne kadar süreceği araca bağlıdır:
| Araç | Hatırlanma süresi |
|---|---|
| Bash komutları | Kalıcı olarak, repo ve komut başına |
| Dosya düzenlemeleri | Oturum bitene kadar |
| WebFetch | Kalıcı olarak, repo ve alan adı başına |
Yani Claude her yeni oturumda dosya düzenlemek için tekrar soruyorsa bu tasarım gereğidir: dosya düzenleme onayları oturum başınadır. Bunun yerine acceptEdits modunu veya bir Edit(...) allow kuralını kullan. Bir komut “don’t ask again” sonrasında bile sormaya devam ediyorsa, bir proje veya yönetilen dosyada ask kuralı ara. Yerel dosyandaki bir allow kuralı onun önüne geçmez.
İzin modları ve hangisi ne zaman kullanılır
| Mod | Ne yapar | Uygun olduğu durum |
|---|---|---|
default (Manual) | Her aracın ilk kullanımında sorar | Tanımadığın repolar, riskli işler |
acceptEdits | Dosya düzenlemelerini sormadan kabul eder | Git'te inceleyeceğin uzun refactor'lar |
plan | Okur ve plan yapar, hiçbir şeyi değiştirmez | Bir kod tabanını keşfetmek, bir değişikliği tasarlamak |
auto | Rutin istem yok; bir sınıflandırıcı komutları ve ağ isteklerini önce kontrol eder | Günlük işler |
dontAsk | Sormaz | Script'ler ve otomasyon |
bypassPermissions | .git ve .claude klasörlerine yazma dahil istemleri atlar | Sadece izole container'lar veya VM'ler |
Modlar arasında geçiş yapmak için Shift+Tab tuşuna bas. Auto modundayken ilk basış default'a geçer, sonra default → acceptEdits → plan. Başlangıç modunu permissions.defaultMode ile ayarla; auto ve bypassPermissions değerlerinin bir proje dosyasından değil, sadece kullanıcı veya yönetilen ayarlardan etkili olduğunu unutma.
Bazı şeyler bypass dahil her modda her zaman sorar: diğerlerinin yanı sıra açık ask kuralları, Claude'un sana sorduğu sorular ve kritik yollarda rm. Yöneticiler riskli modları permissions.disableBypassPermissionsMode veya permissions.disableAutoMode ayarını "disable" yaparak kapatabilir.
--dangerously-skip-permissions hakkında
--dangerously-skip-permissions, --permission-mode bypassPermissions ile aynıdır. Anthropic'in dokümanları bu konuda açık sözlü: sadece container'lar, VM'ler veya internet erişimi olmayan dev container'lar gibi izole ortamlarda kullan. Linux ve macOS'ta root olarak çalışmayı reddeder ve uyarıyı kabul ettiğinde kullanıcı ayarlarına skipDangerousModePermissionPrompt yazar.
Asıl istediğin “sıkıcı şeyleri sormayı bırak” ise auto modu ve birkaç allow kuralı, önemli istemlerden vazgeçmeden seni oraya götürür.
Sandbox: güvenlik ağıyla daha az istem
Claude Code shell komutlarını bir sandbox (korumalı alan) içinde çalıştırabilir. Varsayılan olarak kapalıdır; /sandbox veya sandbox.enabled: true ile aç. Sandbox modlarından biri sandbox içindeki komutları otomatik olarak onaylar, diğeri yine sorar. Sandbox sadece shell komutlarını kapsar: dosya araçları, MCP sunucuları ve hook'lar onun dışında çalışır.
macOS, Linux ve WSL2'de çalışır. Yerel Windows'ta sandbox çalışmaz ve komutlar sandbox olmadan çalışır. Bu, orada kısa bir ask listesi tutmak için bir sebep daha.
İşe yarayan bir kurulum
Bu, bir JavaScript projesi için makul bir başlangıç noktası. Komutları kendi teknoloji yığınına göre ayarla:
- Salt okunur komutlardan ve test komutlarından oluşan bir allow listesiyle başla.
- Makinenden dışarı çıkan her şeyi (push, publish, deploy)
askiçine koy. - Gizli bilgilere (secret'lara) erişimi tamamen reddet.
- Auto veya acceptEdits modunda çalış, keşif yaparken plan moduna geç.
- Birkaç günde bir
.claude/settings.local.jsondosyasını aç ve “don’t ask again” ile eklenen kuralları ayıkla.
Kalan istemler yanlış yerde olduğunda
Bu ayarlardan sonra sana sadece karar vermeyi hak eden şeyler sorulmalı. Geriye kalan sorun, sorunun nerede çıktığı: tarayıcının arkasındaki bir terminal sekmesinde, ajanın sen fark edene kadar yirmi dakika bekleyebileceği bir yerde.
Pet Island bu soruları ekranının üstündeki küçük bir adaya taşır. Claude Code izin istediğinde istek, komut veya diff ile birlikte orada görünür ve pencere değiştirmeden izin verir, reddeder ya da her zaman izin verirsin. Claude Code'un soruları ve planları da adadan çalışır; ada kapalıysa Claude Code doğrudan terminalde sormaya geri döner.
SSS
Claude Code'un her komut için izin istemesini nasıl durdururum?
Güvendiğin komutları ~/.claude/settings.json içindeki permissions.allow listesine ekle, örneğin "Bash(npm run *)", ve auto veya acceptEdits modunu kullan. Riskli komutları yine dursunlar diye permissions.ask içinde tut.
“Don’t ask again” dedikten sonra Claude Code neden dosya düzenlemeleri için yine soruyor?
Dosya düzenleme onayları sadece oturum bitene kadar geçerlidir. Düzenlemelerin oturumlar arasında onaylı kalmasını istiyorsan acceptEdits modunu veya bir Edit(...) allow kuralını kullan.
Bir allow kuralı bir deny kuralını geçersiz kılabilir mi?
Hayır. Kurallar önce deny, sonra ask, sonra allow sırasıyla kontrol edilir ve ilk eşleşme kazanır. Herhangi bir seviyede reddedilen bir araca başka bir yerde izin verilemez.
--dangerously-skip-permissions güvenli mi?
Anthropic bunu sadece container'lar veya internet erişimi olmayan VM'ler gibi izole ortamlarda öneriyor. Ayrıca .git ve .claude klasörlerine yazarken de sormaz.
“Yes, and don’t ask again” kuralı nereye kaydeder?
Git reposunun kökündeki .claude/settings.local.json dosyasına.
Claude Code sandbox'ı Windows'ta çalışır mı?
Yerel Windows'ta çalışmaz; orada komutlar sandbox olmadan çalışır. macOS, Linux ve WSL2'de çalışır.
Kaynaklar
Bu sayfadaki her ayar ve davranış 26 Ekim 2026 tarihinde bu sayfalarla karşılaştırılarak kontrol edildi. Ajanlar hızlı değişir; bir şey artık uyuşmuyorsa geçerli olan resmi sayfadır.
- Claude Code dokümanları: Configure permissions
- Claude Code dokümanları: Permission modes
- Claude Code dokümanları: Settings
- Claude Code dokümanları: Settings reference
- Claude Code dokümanları: Sandboxing