Claude Code pediu permissão para rodar um comando: quando aprovar e quando negar?

prompt de permissões do Claude Code pedindo aprovação pra rodar um comando
Resposta rápida

As permissões do Claude Code funcionam assim: leitura é livre por padrão e tudo que muda estado (editar arquivo, rodar teste, executar comando) pede aprovação explícita. O prompt te dá três saídas: Yes, Yes don’t ask again e No. A segunda grava a regra em .claude/settings.local.json na raiz do repositório e passa a valer em sessões futuras. Antes de aprovar, olhe três coisas: o comando inteiro, se a ação é reversível e se o alvo está dentro da pasta da sessão. E se liga: a partir de 14 de agosto de 2026 o auto mode vira o padrão em novas sessões nos planos Pro, Max e Team

Fala aí, beleza? Aquela caixinha do Claude Code pedindo pra rodar um comando não é um obstáculo no seu caminho

Ela é a última decisão humana antes da máquina mexer na sua máquina

Por padrão o Claude Code trabalha com permissões restritas pra tudo que muda estado: ler ele lê à vontade, mas quando precisa editar arquivo, rodar teste ou executar comando, ele PARA e pergunta

E aí você decide se aprova uma vez ou libera de vez

O problema é que a maioria da galera (eu incluído, em dia corrido) bate o olho no verbo do comando e clica em aprovar no automático

Este post é sobre separar as duas pilhas: o que dá pra liberar sem medo e o que merece leitura linha a linha antes do sim

O que o Claude Code está perguntando de verdade

Antes de decidir, entende o que tem dentro do prompt

Ele te oferece três saídas: Yes, Yes, don’t ask again e No

A primeira aprova só aquela chamada, agora

A segunda é a que pesa: ao escolher Yes, don't ask again para um comando Bash, a regra é gravada permanentemente em .claude/settings.local.json na raiz do repositório git

E ela passa a valer em sessões futuras em qualquer ponto daquele repositório, inclusive subdiretórios e worktrees

Ou seja: não é "pra esta conversa", é "pra sempre neste repo"

Domine o Claude Code do básico ao avançado
Pré-inscrição Formação Claude Code

Domine o Claude Code do básico ao avançado

Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!

Onde as regras moram:

O Claude Code lê três arquivos de configuração, em escopos diferentes:

  • ~/.claude/settings.json: nível usuário, vale pra todo projeto seu
  • .claude/settings.json: nível projeto, aquele que vai versionado no repo e vale pro time
  • .claude/settings.local.json: pessoal daquele projeto, fora do git

Dentro deles as regras ficam no objeto permissions, com as categorias allow, deny e ask, mais um defaultMode pro que não foi nomeado:

{
  "permissions": {
    "allow": ["Bash(npm run build)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "default"
  }
}

E a ordem de avaliação é a parte que quase ninguém lê: primeiro deny, depois ask, depois allow

A primeira correspondência nessa ordem decide, e especificidade da regra NÃO muda essa ordem

Pra gerir isso dentro da sessão existe o comando /permissions

Tome cuidado com um detalhe: ele não está disponível na aba Code do app Desktop, onde responde que não está disponível nesse ambiente

Nesse caso a edição é pelo CLI ou direto nos arquivos de settings

Se você ainda mistura os conceitos de ferramenta, atalho e agente, dar uma olhada em skills, comandos e subagentes ajuda a entender o que exatamente está sendo autorizado quando o prompt aparece

Como decidir em 5 passos quando o pedido aparecer

A rotina é sempre a mesma, e ela cabe em poucos segundos depois que vira hábito

  1. Leia o comando inteiro, não só o verbo

O risco quase nunca está no começo da linha, está no argumento lá no fim: o caminho, a flag, o pipe

O erro comum deste passo: aprovar porque começou com um comando familiar, sem ver pra onde ele apontava

  1. Pergunte se a ação é reversível

Build quebrou? roda de novo

Arquivo apagado fora do controle de versão? boa sorte

O erro comum deste passo: tratar "eu tenho git" como rede de segurança universal, sendo que o que não está commitado não está protegido por nada

  1. Cheque se o alvo está dentro da pasta da sessão

O Claude Code só escreve na pasta em que foi iniciado e nas subpastas dela, e não modifica arquivos em diretórios pai sem permissão explícita

Então um caminho subindo de nível no pedido é um sinal pra ler com calma

O erro comum deste passo: iniciar a sessão na raiz da home e achar que o escopo está estreito, quando na verdade tudo virou subpasta

  1. Escolha entre aprovar uma vez e gravar regra

Aqui a pergunta certa não é "esse comando é seguro agora?"

É "eu quero que ele rode sem me perguntar daqui a três semanas, em outro ponto deste repo?"

O erro comum deste passo: usar Yes, don't ask again como se fosse um "sim, vai logo", quando ele é permanente naquele repositório

  1. Se for gravar, escreva a regra no escopo certo

A sintaxe é Tool ou Tool(especificador), com curinga em qualquer posição:

Bash(npm run build)
Bash(npm *)
Bash(* install)
Read(./.env)
WebFetch(domain:example.com)

Repare que Bash(npm run build) e Bash(npm *) são universos MUITO diferentes de confiança

O erro comum deste passo: escrever curinga largo demais por preguiça de listar dois ou três comandos

E tem um detalhe fino de caminho de arquivo: ao aprovar um caminho com Yes, don't ask again, o Claude Code escapa caracteres de padrão gitignore no caminho (como [, ] e *) pra que a regra gerada case apenas com o caminho literal aprovado

Isso é proteção, não bug: sem isso, aprovar um arquivo com colchete no nome poderia virar uma regra bem mais ampla do que você quis

O que liberar sem medo e o que ler antes de aprovar

A régua é reversibilidade e escopo, sempre

Libera fácil:

  • Leitura de código do próprio projeto: não muda estado nenhum, e leitura é justamente o que já corre solto por padrão
  • Build e teste do projeto: rodam, quebram, você roda de novo
  • Comandos repetitivos e reversíveis do seu dia a dia, tipo o script de lint que você chama vinte vezes por dia

Esses são os candidatos naturais a virar allow estreito, nomeando o comando inteiro em vez de um * genérico

Lê antes de aprovar:

  • Comandos de rede: curl e wget não são auto aprovados por padrão e pedem permissão como qualquer comando Bash que não seja somente leitura
  • rm e rmdir apontando pra /, pra home ou pra outros caminhos críticos de sistema: eles disparam prompt, ou checagem do classificador no modo auto, e é exatamente aí que o clique automático dói
  • Escrita em diretórios protegidos: a lista inclui .git, .config/git, .vscode, .idea, .husky, .cargo, .devcontainer, .yarn, .mvn e .claude (com exceção de .claude/worktrees)
  • Push: uma regra ask com escopo de conteúdo, tipo Bash(git push *), continua forçando o prompt, e isso é bom, porque push é a ação que sai da sua máquina

E tem o motivo menos óbvio pra ler antes: prompt injection

É quando um atacante tenta sobrescrever ou manipular as instruções por meio de conteúdo em arquivos, páginas web ou entrada do usuário

Ou seja: um README com instruções estranhas pode virar ação do Claude Code, e a própria Anthropic documenta esse risco

O Claude Code aplica análise sensível ao contexto pra detectar instruções potencialmente danosas, sanitiza entrada contra injeção de comando e exige aprovação pra comandos de rede

Mas repara na peça central desse desenho: a aprovação é sua

É literalmente pra esse cenário que o prompt existe

Modos de permissão do Claude Code: o que cada um libera

Os modos são: default (rotulado Manual no CLI e nas extensões de IDE), plan, acceptEdits, auto, dontAsk e bypassPermissions

Modo O que libera Escrita em caminho protegido
default (Manual) só leitura pergunta
plan só leitura pergunta
acceptEdits leituras, edições de arquivo e comandos comuns de sistema de arquivos pergunta
auto tudo, com checagens de segurança em segundo plano vai pro classificador
dontAsk só ferramentas pré-aprovadas negada
bypassPermissions escrita em caminho protegido permitida permitida

Pra alternar, é Shift+Tab no CLI, ou o seletor de modo no VS Code, no Desktop e no claude.ai

E duas regras não mudam com o modo, o que é ótimo saber:

  • Regras deny e regras ask explícitas continuam valendo em todos os modos, inclusive no auto e no bypassPermissions, porque são avaliadas antes do classificador
  • allow não vence caminho protegido: a checagem de segurança roda antes da avaliação das regras, então uma entrada tipo Edit(.claude/**) não muda o resultado

Escritas em caminhos protegidos nunca são auto aprovadas, com exceção do bypassPermissions

Dá pra usar isso a seu favor: em vez de confiar no modo, você fixa no deny o que nunca deve rodar e dorme tranquilo em qualquer modo

O auto mode vira padrão e o prompt aparece menos

Em 7 de agosto de 2026 a Anthropic anunciou que, a partir de 14 de agosto de 2026, o auto mode passa a ser o modo de permissão padrão em novas sessões nos planos Pro, Max e Team

Quem já fixou um padrão próprio pode receber um prompt único perguntando se quer trocar, e não sofre mudança automática

Fora daí ele segue opt-in: Claude Enterprise, Claude API, Claude Platform na AWS, Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, com plano da Anthropic de torná-lo padrão nesses ambientes no mês seguinte

E o que é o auto mode na prática? Ele delega a aprovação a classificadores baseados em modelo, como meio termo entre revisão manual e nenhuma barreira

A proposta declarada é substituir o --dangerously-skip-permissions sem trazer de volta as interrupções

O classificador de transcrição roda no Sonnet 4.6 e avalia cada ação antes da execução, em dois estágios: um filtro rápido de um token e, só se ele sinalizar, um raciocínio em cadeia

Quando o classificador bloqueia, a negação volta como resultado de ferramenta com instrução pro modelo achar um caminho mais seguro em vez de contornar o bloqueio

E a sessão para e escala pro humano após 3 negações consecutivas ou 20 no total

Agora o número que explica a decisão toda: em estudo controlado da Anthropic com 1.053 testadores pagos, revisores humanos pegaram um comando perigoso plantado em 13,6% das vezes, contra 89% do auto mode

Sacou? O ponto não é que a máquina é infalível

É que o humano clicando em Yes no automático é pior do que ele imagina

E o sandbox, entra onde?

O sandbox do Claude Code isola execução de código com controles de sistema de arquivos e de rede, liberando operações seguras, bloqueando as maliciosas e perguntando só quando necessário

Pra começar, é rodar /sandbox no Claude Code

O detalhe que faz ele valer a pena: restrições do sandbox impedem que comandos Bash alcancem recursos fora dos limites definidos, MESMO que um prompt injection contorne a decisão do modelo

É uma camada independente do julgamento do modelo, e no uso interno da Anthropic ela reduziu com segurança os prompts de permissão em 84%

Já o --dangerously-skip-permissions desliga todos os prompts e deixa o Claude agir livremente, o que é inseguro na maioria das situações

Se o seu incômodo é a quantidade de prompt, a saída é regra estreita, modo adequado e sandbox, não a flag

E se estiver de olho em qual plano faz sentido pra rodar isso no dia a dia, tem um material sobre preço do Claude Code em 2026 que ajuda nessa conta

Aprovei o que não devia: como corrigir a regra

Calma que tudo aqui tem conserto 🙂

Sintoma: gravei uma regra sem querer no "Yes, don’t ask again"

Causa: aquela escolha grava a regra permanentemente em .claude/settings.local.json na raiz do repositório, valendo em sessões futuras

Solução: editar ou remover a entrada nesse arquivo, ou abrir /permissions na sessão e ajustar por lá

Sintoma: o comando está no allow e continua bloqueado

Causa: se uma ferramenta é negada em qualquer nível de configuração, nenhum outro nível consegue liberar

Um deny do usuário bloqueia um allow do projeto, e vice versa

E tem o agravante: uma regra deny ampla bloqueia toda chamada que casa com ela, mesmo com uma regra allow mais estreita

O exemplo clássico: deny Bash(aws *) bloqueia até um Bash(aws s3 ls) liberado no allow

Solução: deny não comporta exceções de allowlist, então estreite o próprio deny em vez de tentar furar ele por baixo

Sintoma: ele pergunta mesmo com allow que casa

Causa: ferramentas de conectores que a organização configurou como ask e ferramentas MCP marcadas com requiresUserInteraction perguntam direto ao usuário, mesmo quando existe regra allow que casa

Solução: aqui não é bug de configuração sua, é comportamento esperado, então a decisão é responder o prompt mesmo

Sintoma: /permissions responde que não está disponível

Causa: o comando não está disponível na aba Code do app Desktop

Solução: editar pelo CLI ou direto nos arquivos de settings

Como prevenir:

  • allow com escopo estreito, nomeando o comando (Bash(npm run build)) em vez de abrir a família inteira
  • deny pro que nunca deve rodar, lembrando que ele é avaliado primeiro e sobrevive até em auto e bypassPermissions

Conclusão

O critério pra responder o prompt de permissão cabe em três perguntas: a ação é reversível? o alvo está dentro do escopo da sessão? eu entendi o comando inteiro, e não só o começo dele?

Se as três respostas forem sim, aprovar é decisão consciente

Se alguma for não, aí vale os segundos de leitura

Próximo passo bem concreto: abre o /permissions, revisa o que já foi gravado no seu .claude/settings.local.json e decide em qual modo você quer trabalhar, antes que o auto mode assuma como padrão em novas sessões

Melhor escolher agora do que descobrir no susto depois…

até o próximo post! 😀

Perguntas frequentes

O que acontece se eu clicar em No no pedido de permissão do Claude Code?

A ação específica é bloqueada e nada é gravado em nenhum settings.json, então na próxima vez o mesmo pedido volta a aparecer normalmente. Vale lembrar que a ordem de avaliação é sempre deny, depois ask, depois allow, e um deny de qualquer escopo vence qualquer allow que exista em outro nível.

Como revogar uma permissão que eu liberei sem querer no Claude Code?

A regra fica gravada em .claude/settings.local.json na raiz do repositório, então dá pra editar esse arquivo direto e remover a linha da lista allow. Dentro da sessão também existe o comando /permissions pra gerir isso, mas ele não está disponível na aba Code do app Desktop, que responde que não está disponível nesse ambiente.

O modo auto do Claude Code é seguro o suficiente pra liberar tudo?

Em estudo controlado da Anthropic com 1.053 testadores pagos, revisores humanos pegaram um comando perigoso plantado em 13,6% das vezes, contra 89% do auto mode. O classificador roda em Sonnet 4.6, em dois estágios, e escala pro humano depois de 3 negações consecutivas ou 20 no total, então não é liberdade total, é um filtro em segundo plano.

Por que evitar o –dangerously-skip-permissions no Claude Code?

Essa flag desliga todos os prompts de permissão e deixa o Claude agir livremente, sem checagem nenhuma antes de cada ação. Isso é inseguro na maioria das situações, porque tira justamente a última decisão humana antes de qualquer comando rodar.

Vale a pena ativar o sandbox do Claude Code?

O sandbox isola a execução de código com controles de sistema de arquivos e de rede, liberando o que é seguro e perguntando só quando necessário, e no uso interno da Anthropic ele reduziu os prompts de permissão em 84%. Pra começar, basta rodar /sandbox dentro do Claude Code.

O padrão de permissões do Claude Code muda em agosto de 2026?

Sim: a Anthropic anunciou em 7 de agosto de 2026 que, a partir de 14 de agosto de 2026, o auto mode passa a ser o modo de permissão padrão em novas sessões nos planos Pro, Max e Team. Quem já fixou um padrão próprio pode receber um prompt único perguntando se quer trocar, mas quem tem padrão fixado não sofre mudança automática.



Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares