Claude Code'un izin modu, hangi işlemlerin size sormadan çalışacağını belirler. default (Manual olarak gösterilir) düzenlemelerden ve shell komutlarından önce sorar. acceptEdits ayrıca dosya düzenlemelerine ve yaygın dosya komutlarına izin verir. plan, Claude'un okuyup plan önermesine izin verir ama düzenleme yaptırmaz. auto, işlemleri sizin yerinize arka planda çalışan bir sınıflandırıcının onaylamasını sağlar. dontAsk, prompt gerektirecek her şeyi reddeder. --dangerously-skip-permissions ile açılan bypassPermissions ise prompt'ları neredeyse tamamen atlar ve yalnızca izole container'lar veya VM'ler için tasarlanmıştır. Modlar arasında geçiş için Shift+Tab tuşuna basın ya da claude --permission-mode <mode> ile başlatın.
Bu rehber, Anthropic'in izin modları dokümantasyonuna dayanır. Claude Code sık değiştiği için kullandığınız sürümü oradan kontrol edin.
01Bir bakışta altı mod
default (Manuel)Yalnızca okumaHer işlemi gözden geçirmek, hassas işleracceptEditsÇalışma dizini içinde okuma, dosya düzenleme ve mkdir, touch, mv ve cp gibi yaygın dosya sistemi komutlarıTakip ettiğiniz kod üzerinde yineleme yapmakplanOkuma; planı onaylayana kadar düzenlemeler engellenirHerhangi bir değişiklik yapmadan önce keşifautoHer şey; ancak her işlem önce bir sınıflandırıcı tarafından kontrol edilirDaha az prompt ile uzun görevlerdontAskÇalışma dizinlerinde okuma ve önceden onaylanmış araçlar; geri kalan her şey reddedilirCI ve kısıtlı script'lerbypassPermissionsBirkaç istisna dışında her şeyYalnızca izole container'lar ve VM'lerdefault, ayarlarda, hook'larda ve --permission-mode flag'inde kullanılan addır. CLI, IDE eklentileri ve masaüstü uygulaması bunu Manuel olarak gösterir; CLI ayrıca manual takma adını da kabul eder.
02Modlar arasında nasıl geçiş yapılır
Terminalde Shift+Tab tuşuna basın. Döngü sırasıyla default, acceptEdits, plan ve ardından oturumunuzun izin verdiği isteğe bağlı modlar şeklinde ilerler. dontAsk döngüde hiçbir zaman yer almaz; yalnızca flag ile ayarlanır.
Bir oturumu belirli bir modda başlatmak için:
claude --permission-mode plan
Bir modu varsayılanınız yapmak için ~/.claude/settings.json dosyasında ayarlayın:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Flag ayarı, ayar da yerleşik varsayılanı geçersiz kılar. Bilmeniz gereken bir kısıtlama var: auto ve bypassPermissions, bir projenin .claude/settings.json veya .claude/settings.local.json dosyasından ayarlandığında etkili olmaz. Yani bir repository sizi fark ettirmeden bypass moduna sokamaz. Bu ikisini kullanıcı ayarlarınızda tanımlayın ya da flag ile verin.
Yeni bir oturum hangi modda başlar
Claude Code'un güncel sürümleri (v2.1.283 veya üzeri), auto modu kullanılabiliyorsa ve ayarlarınızda aksi belirtilmemişse etkileşimli terminal ve VS Code oturumlarını auto modunda başlatır. claude -p ve Agent SDK çalıştırmaları default modunda başlar. Hiç mod seçmediyseniz ve neden bu kadar az prompt gördüğünüzü merak ediyorsanız sebebi budur.
03Modlara daha yakından bakış
default (Manuel)
Claude dosyaları sormadan okuyabilir. Düzenlemeler, shell komutları ve ağ erişimi için ayrı ayrı prompt gösterilir. Bir Bash prompt'unda "Yes, and don't ask again" seçeneği .claude/settings.local.json dosyasına bir allow kuralı kaydeder; böylece o komut bu repository'de bir daha sormaz. Dosya düzenleme onayları oturum bitene kadar geçerlidir.
acceptEdits
Çalışma dizininizdeki düzenlemeler ve basit dosya komutları (mkdir, touch, rm, rmdir, mv, cp, sed) prompt olmadan çalışır. Diğer shell komutları yine onay ister. Diff'i anlık olarak takip ettiğiniz durumlar için iyi bir orta yoldur.
plan
Claude okuma ve salt okunur komutlarla keşif yapar, ardından bir plan sunar. Siz onaylayana kadar kaynak kodunuzda hiçbir şey düzenlenmez. Tanımadığınız kodlarda veya riskli değişikliklerde kullanın.
auto
Ayrı bir model her işlemi çalışmadan önce inceler; isteğinizin ötesine geçen, tanımadığı altyapıyı hedefleyen veya kötü niyetli içerik tarafından yönlendirilmiş gibi görünen işlemleri engeller. Açıkça tanımlanmış ask kuralları yine prompt gösterir. Sınıflandırıcı art arda üç işlemi ya da bir oturumda yirmi işlemi engellerse auto modu duraklar ve normal prompt'lar geri gelir. Anthropic'in kendi ifadesiyle auto modu "izin prompt'larını azaltır ancak güvenliği garanti etmez."
dontAsk
Prompt gerektirecek her şey reddedilir. Yalnızca allow kuralları ve hiç onay gerektirmeyen işlemler çalışır. Yanıt verecek kimsenin olmadığı script'ler ve CI için tasarlanmıştır.
bypassPermissions ve --dangerously-skip-permissions
--dangerously-skip-permissions, --permission-mode bypassPermissions ile aynıdır. .git ve .claude gibi korumalı yollara yazma dahil prompt'lar atlanır. Yine de bazı şeyler her modda prompt gösterir veya reddedilir; açıkça tanımlanmış ask kuralları, AskUserQuestion ve bazı tehlikeli rm komutları bunlara örnektir. Deny kuralları da engellemeye devam eder.
Anthropic, bu modu yalnızca internet erişimi olmayan container'larda, VM'lerde veya dev container'larda kullanmanızı önerir. Mac ve Linux'ta Claude Code, tanınan bir sandbox dışında root olarak veya sudo altında bu modda başlamayı reddeder. Bypass'ın açık olmasını değil yalnızca kullanılabilir olmasını istiyorsanız, --allow-dangerously-skip-permissions onu etkinleştirmeden Shift+Tab döngüsüne ekler.
04Kurallar modların üzerinde çalışır
Modlar temel davranışı belirler. Ayarlardaki izin kuralları ise bunu ince ayarlar:
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
Kurallar deny, ask, allow sırasıyla kontrol edilir ve ilk eşleşen kural karar verir. Deny kuralları bypassPermissions dahil her modda engeller. Allow kurallarının bypassPermissions modunda bir etkisi yoktur, çünkü orada zaten her şeye izin verilir. Tüm kuralları ve geldikleri dosyayı görmek için /permissions komutunu çalıştırın.
Hook'lar da sürece dahil olabilir. Bir PreToolUse hook'u her modda bir araç çağrısını engelleyebilir. Bir PermissionRequest hook'u bir prompt'u sizin yerinize yanıtlayabilir, ancak bir deny kuralını geçersiz kılamaz. Nasıl yapılacağını PermissionRequest rehberinde bulabilirsiniz.
05Bilgisayardan uzaklaşırken mod seçimi
İnsanların --dangerously-skip-permissions seçeneğine başvurmasının olağan nedeni, Claude'u çalışır halde bırakıp geri döndüklerinde bir prompt'ta takılı kalmış bir oturumla karşılaşmak istememeleridir. Bu gerçek bir sorun, ancak bypass modu bunu kendi makinenizde denetiminizi tamamen ortadan kaldırarak çözer.
Daha güvenli bazı kombinasyonlar:
- Sıkıcı komutlar için allow kuralları. Test, lint ve build komutlarınızı
allowlistesine ekleyin,git pushve deploy'lar içinaskkalsın vedefaultya daacceptEditsmodunda kalın. - Rutin işlemlerde bir sınıflandırıcının kararını kabul ettiğiniz uzun görevler için auto modu.
- Prompt'u nerede olursanız olun size ulaştırın. Onay isteyen bir modda kalın ve önemli olan birkaç prompt'u telefonunuzdan yanıtlayın.
Sonuncusu, Claude Code Notifier'ın yaptığı şeydir. Anthropic tarafından geliştirilmemiş, bağımsız bir araçtır. Komut satırı aracı ccn, Mac, Windows ve Linux üzerinde Claude Code hook'ları olarak çalışır. Claude Code izin istemek üzereyken siz klavyenin başında değilseniz, istek eşleştirilmiş iPhone ya da Android telefonunuza gelir; burada bir kez izin verebilir, oturum boyunca izin verebilir veya reddedebilirsiniz. Yalnızca Claude Code'un zaten göstereceği prompt'ları görür; dolayısıyla neyin sorulacağına yine mod ve kurallarınız karar verir. auto modunda daha az istek alırsınız; bypassPermissions modunda hiç almazsınız, ancak "Claude bitirdi" bildirimleri ve sorular yine gelir. Kurulum telefondan onay rehberinde, riskler ise Telefondan onay vermek güvenli mi? yazısında anlatılıyor.
06SSS
default ile acceptEdits arasındaki fark nedir?
default, her dosya düzenlemesinden ve shell komutundan önce sorar. acceptEdits ise çalışma dizini içindeki dosya düzenlemelerinin ve mkdir, mv, cp gibi yaygın dosya komutlarının sormadan çalışmasına izin verir. Diğer shell komutları her iki modda da onay ister.
--dangerously-skip-permissions ile bypassPermissions aynı şey mi?
Evet. Bu flag, --permission-mode bypassPermissions ile eşdeğerdir. Anthropic bunu yalnızca izole container'larda veya VM'lerde, tercihen internet erişimi olmadan kullanmanızı önerir.
Claude Code'un tek bir komut için izin istemesini nasıl durdururum?
Prompt'ta "Yes, and don't ask again" seçeneğini seçin veya ayarlarınızda permissions.allow altına "Bash(npm test)" gibi bir allow kuralı ekleyin. Bu, tüm modu değiştirmekten daha güvenlidir.
Bir projenin ayarları beni bypassPermissions moduna geçirebilir mi?
Hayır. .claude/settings.json veya .claude/settings.local.json içindeki bypassPermissions ve auto etkili olmaz. Bunlar yalnızca kullanıcı veya yönetilen ayarlardan ya da komut satırı flag'inden uygulanır.
bypassPermissions modunda hook'lar yine çalışır mı?
Evet. Hook'lar her modda çalışır ve bir tool çağrısını reddeden PreToolUse hook'u, bypassPermissions modunda bile onu engeller. PermissionRequest hook'u ise yalnızca yanıtlanacak bir prompt olduğunda çalışır, bu yüzden bypass modunda nadiren tetiklenir.