📅 28 Temmuz 2026 Lokasyon: --permission-mode auto, Shift+Tab Anthropic docs ↗

Best Practice Blog

Claude Code, bir dosyayı düzenlemeden, shell komutu çalıştırmadan veya ağ isteği yapmadan önce durup sizden onay ister. İzin modları (permission modes), bu onayın ne sıklıkta bekleneceğini kontrol eder. Seçtiğiniz mod, bir oturumun akışını şekillendirir: Manuel mod her eylemi tek tek incelemenizi sağlarken, daha gevşek modlar Claude'un kesintisiz uzun süreler çalışmasına ve bittiğinde rapor vermesine izin verir. Hassas işlerde daha fazla denetim, güvendiğiniz yönlerde ise daha az kesinti için uygun modu seçin.

Mevcut modlar (Available modes)

Her mod, kullanım kolaylığı ve denetim arasında farklı bir denge kurar. Aşağıdaki tablo, her modda Claude'un izin istemeden neler yapabileceğini gösterir.

Mod İzin istemeden çalışanlar En iyi kullanım alanı
default (Manuel) Yalnızca okuma Başlangıç, hassas işler
acceptEdits Okuma, dosya düzenleme ve yaygın dosya sistemi komutları (mkdir, touch, mv, cp vb.) İncelediğiniz kod üzerinde yineleme yapmak
plan Okuma ve sınıflandırıcı (classifier) tarafından onaylanan komutlar (auto mode mevcut olduğunda) Değişiklik yapmadan önce kod tabanını keşfetmek
auto Arka plan güvenlik kontrolleriyle her şey Uzun görevler, komut yorgunluğunu azaltmak
dontAsk Yalnızca önceden onaylanmış araçlar Kilitli CI ve script'ler
bypassPermissions Her şey Yalnızca izole edilmiş konteynerler ve VM'ler

Not: Her eylemi inceleyen mod, CLI'da, claude --help çıktısında, VS Code ve JetBrains eklentilerinde ve masaüstü uygulamasında Manual olarak adlandırılır. Yapılandırma değeri default'dur. CLI, değer girdiğiniz yerde manual takma adını kabul eder (örn. claude --permission-mode manual veya "defaultMode": "manual"). Manual etiketi ve manual takma adı, Claude Code v2.1.200 veya sonrasını gerektirir.

Korunan yollara (protected paths) yazma işlemleri, bypassPermissions modu ve bypass permissions mevcut olan planlama oturumları dışında asla otomatik olarak onaylanmaz. Bu, depo durumunu ve Claude'un kendi yapılandırmasını yanlışlıkla bozulmaya karşı korur.

Modlar temel seviyeyi belirler. Belirli araçları önceden onaylamak veya engellemek için üzerine izin kuralları (permission rules) ekleyin. Bu kontroller bypassPermissions dahil her modda geçerlidir: deny kuralları, açık ask kuralları, organizasyon ask ayarı ve requiresUserInteraction işareti. bypassPermissions modunda allow kurallarının hiçbir etkisi yoktur çünkü diğer her şey zaten onaylanmıştır.

İzin modlarını değiştirmek (Switch permission modes)

Oturum sırasında, başlangıçta veya kalıcı bir varsayılan olarak mod değiştirebilirsiniz. Mod, Claude'a sohbet içinde sorarak değil, bu kontroller aracılığıyla ayarlanır.

CLI

VS Code

JetBrains

JetBrains eklentisi Claude Code'u IDE terminalinde çalıştırır, bu nedenle mod değiştirme CLI ile aynıdır: Shift+Tab ile geçiş yapın veya başlatırken --permission-mode iletin.

Masaüstü (Desktop)

Web ve Mobil

claude.ai/code veya mobil uygulamadaki istem kutusunun yanındaki mod açılır menüsünü kullanın. Hangi modların göründüğü, oturumun nerede çalıştığına bağlıdır:

acceptEdits modu

acceptEdits modu, Claude'un çalışma dizininizdeki dosyaları sormadan oluşturmasına ve düzenlemesine izin verir. Durum çubuğu ⏵⏵ accept edits on gösterir. Dosya düzenlemelerine ek olarak, yaygın dosya sistemi Bash komutlarını da otomatik olarak onaylar: mkdir, touch, rm, rmdir, mv, cp ve sed. Bu komutlar, LANG=C veya NO_COLOR=1 gibi güvenli ortam değişkenleri veya timeout, nice, nohup gibi işlem sarmalayıcıları ile ön eklendiğinde de otomatik onaylanır. Otomatik onay yalnızca çalışma dizininiz veya additionalDirectories içindeki yollar için geçerlidir. Bu kapsamın dışındaki yollar, korunan yollara yazmalar ve yerleşik salt okunur küme dışındaki tüm diğer Bash komutları yine de onay ister.

PowerShell aracı etkinleştirildiğinde, acceptEdits modu kapsam dahilindeki yollarda Set-Content, Add-Content, Clear-Content ve Remove-Item komutlarını ve bunların yaygın takma adlarını da otomatik onaylar.

Kullanım: Değişiklikleri satır içinde onaylamak yerine, sonradan düzenleyicinizde veya git diff ile incelemek istediğinizde acceptEdits kullanın. Manuel moddan bir kez Shift+Tab yaparak veya doğrudan claude --permission-mode acceptEdits ile başlatın.

plan modu

Plan modu, Claude'a değişiklik yapmadan araştırma yapmasını ve değişiklik önermesini söyler. Claude dosyaları okur, keşfetmek için shell komutları çalıştırır ve bir plan yazar, ancak kaynağınızı düzenlemez. bypass permissions mevcut olan oturumlar hariç, planı onaylayana kadar düzenlemeler engellenir.

Auto mod mevcut olduğunda ve useAutoModeDuringPlan ayarı açık olduğunda (varsayılan), sınıflandırıcı planlama sırasında shell komutlarını sormak yerine inceler. Onaylanan komutlar çalışır, reddedilenler engellenir. Aksi takdirde, yerleşik salt okunur küme dışındaki komutlar onay ister.

Plan moduna girmek için Shift+Tab yapın veya tek bir istemi /plan ile ön ekleyin. Ayrıca CLI'dan da başlatabilirsiniz: claude --permission-mode plan. Planı onaylamadan plan modundan çıkmak için tekrar Shift+Tab yapın.

Planı inceleme ve onaylama (Review and approve a plan)

Plan hazır olduğunda, Claude onu sunar ve nasıl devam edileceğini sorar. Buradan şunları seçebilirsiniz:

Planı onaylamak, plan modundan çıkar ve oturumu, her onay seçeneğinin tanımladığı izin moduna geçirir, böylece Claude düzenlemeye başlar. Tekrar planlamak için Shift+Tab ile plan moduna dönün veya bir sonraki isteminizi /plan ile ön ekleyin. Ctrl+G tuşlarına basarak önerilen planı varsayılan metin düzenleyicinizde açabilir ve Claude devam etmeden önce doğrudan düzenleyebilirsiniz.

Plan modunu varsayılan yapma

Bir proje için plan modunu varsayılan yapmak üzere .claude/settings.json dosyasında defaultMode değerini ayarlayın:

{
  "permissions": {
    "defaultMode": "plan"
  }
}

Auto modu

Auto modu, Claude'un rutin izin istemleri olmadan çalışmasını sağlar. Ayrı bir sınıflandırıcı model, eylemleri çalıştırılmadan önce inceler ve talebinizin ötesine geçen, tanınmayan altyapıyı hedef alan veya Claude'un okuduğu düşmanca içerik tarafından yönlendirilen her şeyi engeller. Açık ask kuralları yine de bir istemi zorunlu kılar.

Auto modu, izin istemlerini azaltır ancak güvenliği garanti etmez. Hassas işlemlerde incelemenin yerine geçecek bir şey değil, genel yöne güvendiğiniz görevler için kullanın.

Auto modu gereksinimleri

Auto modu yalnızca hesabınız tüm bu gereksinimleri karşıladığında kullanılabilir:

Sınıflandırıcının varsayılan olarak engelledikleri (What the classifier blocks by default)

Sınıflandırıcı, çalışma dizininize ve oturum başladığında onun için yapılandırılmış uzak depolara (remotes) güvenir. Oturum sırasında git remote add veya git remote set-url ile eklenen veya yeniden yönlendirilen bir uzak depo güvenilmez olarak kabul edilir.

Varsayılan olarak engellenenler:

Varsayılan olarak izin verilenler:

Auto modun geri dönüşü (When auto mode falls back)

Engellenen her eylem bir bildirim gösterir ve /permissions altında "Recently denied" sekmesinde görünür. Buradan r tuşuna basarak manuel onayla yeniden deneyebilirsiniz. Sınıflandırıcı bir eylemi art arda 3 kez veya toplamda 20 kez engellerse, auto mod duraklar ve Claude Code tekrar sormaya başlar. Onaylanan eylem, art arda sayacını sıfırlar. Etkileşimli olmayan modda (-p bayrağı ile), tekrarlanan engellemeler oturumu sonlandırır.

Maliyet ve gecikme (Cost and latency)

Sınıflandırıcı varsayılan olarak sizin /model seçiminiz yerine Claude Sonnet 5 üzerinde çalışır. Sınıflandırıcı çağrıları, token kullanımınıza dahildir. Her kontrol, transkriptin bir kısmını ve bekleyen eylemi gönderir ve yürütmeden önce bir gidiş-dönüş ekler. Okuma ve çalışma dizini düzenlemeleri (korunan yollar dışında) sınıflandırıcıyı atlar, bu nedenle ek yük esas olarak shell komutları ve ağ işlemlerinden gelir.

dontAsk modu

dontAsk modu ayarlandığında, Claude Code aksi takdirde sizi uyaracak her araç çağrısını otomatik olarak reddeder. Claude yalnızca permissions.allow kurallarınızla eşleşen eylemleri, salt okunur Bash komutlarını ve bir PreToolUse hook'u tarafından onaylanan çağrıları çalıştırır. Oturum asla girdi beklemez. Durum çubuğu ⏵⏵ don't ask on gösterir.

Kullanım: Claude'un tam olarak ne yapmasına izin verildiğini önceden tanımladığınız CI hatları veya kısıtlı ortamlar için idealdir. Başlangıçta bayrakla ayarlayın: claude --permission-mode dontAsk

bypassPermissions modu

bypassPermissions modu, izin istemlerini ve güvenlik kontrollerini devre dışı bırakır, böylece araç çağrıları korunan yollara yazmalar da dahil olmak üzere hemen yürütülür. Açık ask kuralları ve kuruluşunuzun ask olarak ayarladığı bağlayıcı araçlar bu modda yine de bir istemi zorunlu kılar. Kök veya ana dizini hedef alan silme işlemleri (rm -rf /, rm -rf ~), model hatasına karşı bir devre kesici olarak yine de onay ister.

Bu modu yalnızca Claude Code'un ana sisteminize zarar veremeyeceği konteynerler, VM'ler veya internet erişimi olmayan geliştirme konteynerleri gibi izole ortamlarda kullanın. bypassPermissions moduna, etkinleştirilmeden başlatılan bir oturumdan girilemez. Başlatma sırasında claude --permission-mode bypassPermissions veya --dangerously-skip-permissions bayrağı ile etkinleştirin.

Korunan yollar (Protected paths)

Küçük bir yol kümesine yazma işlemleri, bypassPermissions modu ve bypass permissions mevcut olan planlama oturumları dışında asla otomatik olarak onaylanmaz. Bu, depo durumunun ve Claude'un kendi yapılandırmasının yanlışlıkla bozulmasını önler.

Korunan dizinler: .git, .config/git, .vscode, .idea, .husky, .cargo, .devcontainer, .yarn, .mvn, .claude (.claude/worktrees hariç)

Korunan dosyalar: .gitconfig, .gitmodules, .bashrc, .bash_profile, .bash_login, .bash_aliases, .bash_logout, .zshrc, .zprofile, .zshenv, .zlogin, .zlogout, .profile, .envrc, .npmrc, .yarnrc, .yarnrc.yml, .pnp.cjs, .pnp.loader.mjs, .pnpmfile.cjs, bunfig.toml, .bunfig.toml, .bazelrc, .bazelversion, .bazeliskrc, .pre-commit-config.yaml, lefthook.yml, lefthook.yaml, .lefthook.yml, .lefthook.yaml, gradle-wrapper.properties, maven-wrapper.properties, .devcontainer.json, .ripgreprc, pyrightconfig.json, .mcp.json, .claude.json

Ayrıca bakınız (See also)

Örnek kullanım senaryosu

Bir geliştirici, büyük bir açık kaynak JavaScript kütüphanesine katkıda bulunuyor. Kütüphanenin test altyapısını iyileştirmek ve birkaç hata düzeltmesi yapmak istiyor. İş akışı şöyle olabilir:

  1. Depoyu klonla ve keşfet: Geliştirici, depoyu klonlar ve claude --permission-mode plan ile plan modunda bir oturum başlatır. Claude'a "Mevcut test yapısını analiz et ve iyileştirme önerileri sun" der. Claude, Shift+Tab ile plan modunda çalışır, dosyaları okur, find ve grep gibi salt okunur komutlar çalıştırır ve bir plan sunar.

  2. Planı incele ve onayla: Geliştirici planı okur, Ctrl+G ile düzenleyicide açar ve küçük bir düzeltme yapar. Ardından "Evet ve auto modu kullan" seçeneğini seçer. Oturum auto moda geçer.

  3. Auto modda çalış: Claude, auto modda test dosyalarını düzenlemeye başlar. Sınıflandırıcı, her npm test veya jest komutunu inceler. Geliştirici, Claude'un curl | bash gibi güvensiz bir komut çalıştırmaya çalışması durumunda sınıflandırıcının bunu engelleyeceğini bilir. Bir noktada Claude, git push yapmayı dener; sınıflandırıcı, push'un hassas veri içermediğini doğrular ve izin verir.

  4. Bir engelle karşılaş: Claude, rm -rf /tmp/test-cache komutunu çalıştırmaya çalışır. Sınıflandırıcı, /tmp içindeki dosyaları joker karakterle silmeyi engeller. Geliştirici, /permissions altında "Recently denied" sekmesine gider, r tuşuna basarak komutu manuel olarak onaylar ve auto mod devam eder.

  5. İşlemi tamamla: Tüm değişiklikler tamamlandığında, Claude bir PR oluşturmayı önerir. Sınıflandırıcı, PR'ın hassas veri içermediğini ve geliştiricinin isteğiyle uyumlu olduğunu doğrular. Geliştirici, PR'ı inceler ve gönderir.