O modo de permissão do Claude Code define quais ações rodam sem pedir sua confirmação. default (exibido como Manual) pergunta antes de edições e comandos de shell. acceptEdits também libera edições de arquivos e comandos comuns de arquivo. plan deixa o Claude ler e propor um plano, mas não editar. auto deixa um classificador em segundo plano aprovar as ações no seu lugar. dontAsk nega tudo que geraria uma pergunta. bypassPermissions, ativado por --dangerously-skip-permissions, pula quase todas as confirmações e serve apenas para containers ou VMs isolados. Pressione Shift+Tab para alternar entre os modos, ou inicie com claude --permission-mode <mode>.
Este guia se baseia na documentação de modos de permissão da Anthropic. O Claude Code muda com frequência, então confira lá para a versão que você usa.
01Os seis modos em resumo
default (Manual)Somente leiturasRevisar cada ação, trabalho sensívelacceptEditsLeituras, edições de arquivos e comandos comuns de sistema de arquivos, como mkdir, touch, mv e cp, dentro do diretório de trabalhoIterar em código que você está acompanhandoplanLeituras; edições ficam bloqueadas até você aprovar o planoExplorar antes de alterar qualquer coisaautoTudo, com um classificador verificando cada ação antesTarefas longas com menos promptsdontAskLeituras nos diretórios de trabalho e ferramentas pré-aprovadas; todo o resto é negadoCI e scripts restritosbypassPermissionsTudo, com poucas exceçõesSomente containers e VMs isoladosdefault é o nome usado nas configurações, nos hooks e na flag --permission-mode. A CLI, as extensões de IDE e o app desktop o chamam de Manual, e a CLI aceita manual como alias.
02Como trocar de modo
No terminal, pressione Shift+Tab. O ciclo passa por default, acceptEdits, plan e depois pelos modos opcionais que sua sessão permitir. dontAsk nunca aparece no ciclo; ele só é definido pela flag.
Para iniciar uma sessão em um modo:
claude --permission-mode plan
Para tornar um modo o seu padrão, defina-o em ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
A flag tem prioridade sobre a configuração, e a configuração tem prioridade sobre o padrão embutido. Vale conhecer uma restrição: auto e bypassPermissions não têm efeito quando definidos no .claude/settings.json ou no .claude/settings.local.json de um projeto. Um repositório não pode colocar você em modo bypass sem você perceber. Defina esses dois nas suas configurações de usuário ou passe a flag.
Em que modo uma nova sessão começa
Versões recentes do Claude Code (v2.1.283 ou posterior) iniciam sessões interativas no terminal e no VS Code em auto quando o modo auto está disponível, a menos que suas configurações digam o contrário. Execuções com claude -p e com o Agent SDK começam em default. Se você nunca escolheu um modo e se pergunta por que vê tão poucos prompts, é por isso.
03Os modos em detalhes
default (Manual)
O Claude pode ler arquivos sem pedir permissão. Edições, comandos de shell e acesso à rede mostram um prompt cada. Em um prompt de Bash, "Yes, and don't ask again" salva uma regra de permissão em .claude/settings.local.json para que esse comando não pergunte de novo neste repositório. Aprovações de edição de arquivos valem até o fim da sessão.
acceptEdits
Edições e comandos simples de arquivo (mkdir, touch, rm, rmdir, mv, cp, sed) dentro do diretório de trabalho rodam sem prompt. Outros comandos de shell ainda pedem confirmação. Um bom meio-termo quando você está acompanhando o diff em tempo real.
plan
O Claude explora com leituras e comandos somente leitura e depois apresenta um plano. Nada no seu código é editado até você aprová-lo. Use para código desconhecido ou mudanças arriscadas.
auto
Um modelo separado revisa cada ação antes de ela rodar e bloqueia as que vão além do seu pedido, miram infraestrutura que ele não reconhece ou parecem motivadas por conteúdo malicioso. Regras ask explícitas ainda geram prompt. Se o classificador bloquear três ações seguidas ou vinte em uma sessão, o modo auto é pausado e os prompts normais voltam. Nas palavras da própria Anthropic, o modo auto "reduz os prompts de permissão, mas não garante segurança".
dontAsk
Tudo o que geraria um prompt é negado. Só rodam as regras de permissão e as ações que nunca precisam de aprovação. Ele existe para scripts e CI, onde não há ninguém para responder.
bypassPermissions e --dangerously-skip-permissions
--dangerously-skip-permissions equivale a --permission-mode bypassPermissions. Os prompts são ignorados, inclusive para escritas em caminhos protegidos como .git e .claude. Algumas coisas ainda geram prompt ou são negadas em qualquer modo, incluindo regras ask explícitas, AskUserQuestion e alguns comandos rm perigosos. Regras de negação continuam bloqueando.
A recomendação da Anthropic é usá-lo apenas em containers, VMs ou dev containers sem acesso à internet. No Mac e no Linux, o Claude Code se recusa a iniciar nesse modo como root ou com sudo fora de um sandbox reconhecido. Se você só quer o bypass disponível, e não ativado, --allow-dangerously-skip-permissions o adiciona ao ciclo do Shift+Tab sem ativá-lo.
04Regras ficam por cima dos modos
Os modos definem a base. As regras de permissão nas configurações fazem o ajuste fino:
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
As regras são verificadas na ordem deny, depois ask, depois allow, e a primeira correspondência decide. Regras deny bloqueiam em qualquer modo, inclusive bypassPermissions. Regras allow não têm efeito em bypassPermissions, porque lá tudo já é permitido. Rode /permissions para ver todas as regras e o arquivo de onde cada uma veio.
Hooks também podem participar. Um hook PreToolUse pode bloquear uma chamada de ferramenta em qualquer modo. Um hook PermissionRequest pode responder a um prompt por você, mas não pode sobrepor uma regra deny. O guia de PermissionRequest mostra como.
05Escolhendo um modo quando você se afasta
O motivo mais comum para usar --dangerously-skip-permissions é querer deixar o Claude rodando sem voltar e encontrar a sessão travada num prompt. O problema é real, mas o modo bypass resolve isso eliminando totalmente a sua supervisão, na sua própria máquina.
Algumas combinações mais seguras:
- Regras de allow para os comandos rotineiros. Adicione seus comandos de teste, lint e build em
allow, mantenhaaskparagit pushe deploys, e fique emdefaultouacceptEdits. - Modo auto para tarefas longas em que você aceita o julgamento de um classificador sobre ações rotineiras.
- Leve o prompt até onde você estiver. Mantenha um modo que pergunta e responda pelo celular os poucos prompts que importam.
A última opção é o que o Claude Code Notifier faz. É uma ferramenta independente, não criada pela Anthropic. A ferramenta de linha de comando, ccn, roda como hooks do Claude Code no Mac, Windows e Linux. Quando o Claude Code está prestes a pedir permissão e você está longe do teclado, a solicitação vai para o seu iPhone ou Android pareado, onde você pode permitir uma vez, permitir para a sessão ou negar. Ela só vê os prompts que o Claude Code já ia mostrar, então o modo e as suas regras continuam decidindo o que precisa de confirmação. No modo auto você recebe menos solicitações; em bypassPermissions não recebe nenhuma, embora os alertas de "Claude terminou" e as perguntas continuem chegando. O guia de aprovação pelo celular explica a configuração, e É seguro aprovar pelo celular? aborda os riscos.
06Perguntas frequentes
Qual é a diferença entre default e acceptEdits?
default pergunta antes de cada edição de arquivo e comando de shell. acceptEdits deixa edições de arquivo e comandos comuns de arquivo, como mkdir, mv e cp, rodarem sem perguntar dentro do diretório de trabalho. Os demais comandos de shell continuam pedindo confirmação nos dois modos.
--dangerously-skip-permissions é o mesmo que bypassPermissions?
Sim. A flag equivale a --permission-mode bypassPermissions. A Anthropic recomenda usá-la apenas em containers ou VMs isolados, de preferência sem acesso à internet.
Como faço o Claude Code parar de pedir permissão para um comando?
Escolha "Yes, and don't ask again" no prompt ou adicione uma regra de allow como "Bash(npm test)" em permissions.allow nas suas configurações. Isso é mais seguro do que mudar o modo inteiro.
As configurações de um projeto podem me colocar no modo bypassPermissions?
Não. bypassPermissions e auto em .claude/settings.json ou .claude/settings.local.json não têm efeito. Eles só valem a partir das configurações de usuário ou gerenciadas, ou da flag de linha de comando.
Os hooks continuam rodando no modo bypassPermissions?
Sim. Os hooks rodam em todos os modos, e um hook PreToolUse que nega uma chamada de ferramenta a bloqueia mesmo em bypassPermissions. Um hook PermissionRequest só roda quando há um prompt a responder, então no modo bypass ele raramente é disparado.