Escolha um modo de permissão
Controle se Claude pede permissão antes de agir. Alterne modos de permissão com Shift+Tab na CLI, o indicador de modo no VS Code ou o seletor de modo no Desktop.
Um modo de permissão define quais ações Claude pode executar em uma sessão sem pedir sua permissão primeiro. No modo Manual, Claude Code para e pede sua permissão antes da maioria das ações que editam arquivos, executam comandos shell ou acessam a rede. No modo automático, um segundo modelo, o classificador, revisa as ações em vez de você; como o classificador avalia ações lista quais ações ele revisa e quais o ignora.
Com Claude Code v2.1.283 ou posterior, o modo auto é o modo de permissão inicial integrado para sessões de terminal interativo e VS Code. Em versões anteriores, é o modo de permissão inicial integrado apenas nos planos Pro, Max, Ultra e Team. Qual modo uma sessão inicia cobre as superfícies e configurações que alteram o modo de permissão inicial. Você também pode alterar o modo de permissão de uma sessão em execução a qualquer momento.
Modos disponíveis
Cada modo faz uma compensação diferente entre conveniência e supervisão. A tabela abaixo mostra o que Claude pode fazer sem um prompt de permissão em cada modo. O modo Manual aparece sob seu valor de configuração, default.
| Modo | O que é executado sem perguntar | Melhor para |
|---|---|---|
default |
Apenas leituras | Revisar cada ação você mesmo, trabalho sensível |
acceptEdits |
Leituras, edições de arquivo e comandos comuns do sistema de arquivos (mkdir, touch, mv, cp, etc.) |
Iterando sobre código que você está revisando |
plan |
Leituras, mais comandos aprovados pelo classificador quando modo automático está disponível | Explorando uma base de código antes de alterá-la |
auto |
Tudo, com verificações de segurança em segundo plano | Tarefas longas, reduzindo fadiga de prompts |
dontAsk |
Leituras de arquivos dentro dos seus diretórios de trabalho e ferramentas pré-aprovadas; qualquer coisa que geraria um prompt é negada, embora um mod que você instalou ainda possa aprovar algumas dessas chamadas | CI bloqueado e scripts |
bypassPermissions |
Tudo | Apenas contêineres isolados e VMs |
O modo que revisa cada ação é nomeado Manual na CLI, em claude --help, nas extensões VS Code e JetBrains, e no aplicativo de desktop. Seu valor de configuração é default, que é o que hooks e integrações SDK usam. A CLI aceita manual como um alias em qualquer lugar onde você digita o valor, por exemplo claude --permission-mode manual ou "defaultMode": "manual".
As gravações em caminhos protegidos nunca são auto-aprovadas, exceto no modo bypassPermissions e em sessões de modo plan onde permissões de bypass estão disponíveis, significando sessões iniciadas de uma forma que coloca bypassPermissions no ciclo de modo.
Os modos definem a linha de base. Sobreponha regras de permissão no topo para pré-aprovar ou bloquear ferramentas específicas. Regras de negação bloqueiam em todos os modos, incluindo bypassPermissions. Regras de negação e solicitação não se aplicam a EndConversation enquanto Claude ainda tiver pelo menos uma outra ferramenta que possa chamar. Regras de permissão não têm efeito em bypassPermissions.
Ações que nenhum modo auto-aprova
Claude Code não auto-aprova o seguinte em nenhum modo, incluindo bypassPermissions, embora você possa desativar o prompt para comandos rm perigosos no modo bypassPermissions. Cada item vincula à seção que diz o que acontece em vez disso em cada modo:
-
Ferramentas correspondidas por uma regra de solicitação explícita
-
Ferramentas de conector que sua organização definiu como
ask, em sessões onde essa configuração chega a Claude Code -
Ferramentas que requerem interação do usuário: a ferramenta integrada
AskUserQuestione ferramentas MCP marcadasrequiresUserInteraction -
Remoções reconhecidas de
rmermdirem caminhos críticos, que nenhuma regra allow ou"allow"de hookPreToolUseaprova, e comandos Bash sinalizados comDangerous rm operation not ruled out -
Leituras fora dos diretórios de trabalho enquanto
permissions.blockReadsOutsideWorkingDirectoriesestá ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer retry não-sandboxizado que precisa de aprovação para executar fora do sandbox, mesmo em modo automático e modobypassPermissions. Requer Claude Code v2.1.257 ou posterior.Um comando que o analisador de shell não consegue rastrear, como um que muda de diretório mais de uma vez ou executa um subshell, solicita da mesma forma mesmo quando não nomeia nenhum caminho externo. Este prompt não se aplica quando o comando é executado no sandbox e o sandbox impõe o bloqueio.
-
Gravações fora dos diretórios de trabalho enquanto
permissions.blockWritesOutsideWorkingDirectoriesestá ativado: Claude Code recusa chamadas deWrite,EditeNotebookEditnesses locais, exceto para alguns de seus próprios arquivos. A chave não limita comandos de shell, ferramentas MCP ou os programas que os hooks executam, então use sandboxing para limitar onde os comandos de shell gravam. Requer Claude Code v2.1.314 ou posterior.
Configurações comuns
Os modos de permissão decidem se Claude pede antes de uma ação, e o sandbox Bash e os limites de isolamento externos decidem o que uma ação pode alcançar uma vez que é executada. Cada linha abaixo emparelha um objetivo com as flags ou configurações que o levam lá e o isolamento que precisa, como ponto de partida. Modos disponíveis lista o que é executado sem um prompt em cada modo.
| Você quer | Comece com | Isolamento necessário | Notas |
|---|---|---|---|
| Revisar cada ação você mesmo | Modo Manual: claude --permission-mode default |
Nenhum | Trabalho sensível, código desconhecido |
| Iterar localmente com menos prompts, sem um classificador | Modo Manual mais o sandbox Bash em modo auto-allow: claude --permission-mode default, depois execute /sandbox e selecione auto-allow |
O sandbox Bash integrado, em macOS, Linux e WSL2 | Regras de negação ainda se aplicam, e regras de solicitação que nomeiam um comando, como Bash(git push *), ainda solicitam. O modo auto-allow abrange outros comandos que podem solicitar confirmação. Para ativar o sandbox a partir de um arquivo de configurações em vez disso, defina sandbox.enabled como true |
| Explorar antes de alterar qualquer coisa | claude --permission-mode plan |
Nenhum | Claude Code bloqueia edições até que você aprove um plano |
| Trabalhar sem supervisão em modo automático | claude --permission-mode auto, o modo de permissão inicial integrado com v2.1.283 ou posterior |
Nenhum; um sandbox ou contêiner adiciona defesa em profundidade | Requer um modelo suportado, e sua organização pode desativar o modo automático |
| Executar em CI com uma lista de permissões exata | claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" |
Nenhum além do que seu executor de CI fornece | Cloud sessions ignora dontAsk de arquivos de configurações |
| Executar totalmente sem supervisão dentro de um contêiner | claude -p "<prompt>" --dangerously-skip-permissions |
Obrigatório: um contêiner, VM ou o runtime do sandbox; em Linux e macOS, execute como um usuário não-root | Cloud sessions ignora este modo de arquivos de configurações. Nesta execução -p, as poucas chamadas que ainda solicitariam são negadas em vez disso |
O sandbox Bash e o modo automático funcionam independentemente e se combinam, com as exceções listadas em Sandbox modes. Para a interação completa, veja Como sandboxing se relaciona com permissões e modos de permissão e Como isolamento se relaciona com modos de permissão.
Qual modo uma sessão inicia
Quando você inicia uma nova sessão em um terminal, Claude Code pega o modo de permissão do primeiro destes que se aplica:
-
A flag
--permission-modeou--dangerously-skip-permissions -
permissions.defaultModeem um arquivo de configuraçõesSe você definir
"auto"em.claude/settings.jsonou.claude/settings.local.json, o valor não entra em vigor, e Claude Code então usa o padrão integrado em vez de umdefaultModede~/.claude/settings.json. Se você definir"bypassPermissions"nesses dois arquivos, também não entra em vigor, e a sessão inicia no modo Manual. Os outros valores se aplicam de qualquer arquivo de configurações. -
O padrão integrado
Conversas que a extensão VS Code inicia seguem a lista própria da extensão em Alternar modos de permissão. Para o modo de permissão que Claude Code inicia uma sessão retomada, veja modo de permissão ao retomar.
O padrão integrado auto requer Claude Code v2.1.228 ou posterior em macOS, Linux e WSL, e v2.1.233 ou posterior no Windows nativo. Em versões anteriores, o padrão integrado é Manual.
O padrão integrado depende de como você executa Claude Code. A primeira linha que corresponde à sua sessão se aplica. A tabela cobre sessões que você inicia em um terminal ou através da extensão VS Code; para o aplicativo de desktop e claude.ai, veja as abas Desktop e Web em Alternar modos de permissão.
| Como você executa Claude Code | Modo de permissão inicial integrado |
|---|---|
Qualquer arquivo de configurações define disableAutoMode como "disable" |
default |
claude -p ou o Agent SDK |
default |
| Sua organização tem a configuração HIPAA aplicada e a sessão é elegível para ela | default com Claude Code v2.1.285 ou posterior; o modo auto continua disponível para alternar |
| Em um terminal ou através da extensão VS Code | auto com Claude Code v2.1.283 ou posterior; em versões anteriores, auto em planos Pro, Max, Ultra ou Team em sessões que buscam sinalizadores de recurso, e default caso contrário |
Quando a flag, um arquivo de configurações ou o padrão integrado seleciona auto mas o modo auto não está disponível para a sessão, Claude Code inicia a sessão no modo Manual em vez disso. O modo auto não está disponível quando a sessão não atende aos requisitos de disponibilidade, como um arquivo de configurações desativando-o ou um modelo que não o suporta, ou quando Anthropic o desativou temporariamente no lado do servidor.
A primeira vez que o padrão integrado inicia uma de suas sessões em modo auto, Claude Code mostra um aviso que vincula a esta página:
- Em um terminal, uma vez, no topo da sessão
- Na extensão VS Code, como um cartão na tela de nova conversa que permanece até você descartá-lo
Se seu ~/.claude/settings.json define um defaultMode diferente de auto e nenhum outro arquivo de configurações define um, suas sessões continuam iniciando nesse modo.
Nos planos Pro, Max, Ultra e Team, e em sessões que não buscam sinalizadores de recurso, Claude Code pergunta uma vez se você quer alterar a configuração para modo auto. A pergunta aparece no terminal ou na extensão VS Code e, se você recusar, sua configuração permanece como está.
Chamadas de ferramenta negadas em execuções de claude -p e do Agent SDK
No Claude Code v2.1.302 ou posterior, execuções de claude -p e do Agent SDK sem modo de permissão definido iniciam no modo Manual. Esse modo aparece como default nas opções do SDK e nas configurações. Chamadas que precisam de aprovação são negadas, a menos que você as aprove com uma regra de permissão, hook, callback canUseTool ou --permission-prompt-tool.
Para que essas chamadas sejam aprovadas, adicione regras de permissão ou inicie no modo auto:
- Adicionar regras de permissão: Claude executa as chamadas que você listar. Passe
--allowedTools "Bash(npm test)"paraclaude -p, ou defina a opção de ferramentas permitidas do seu SDK. - Iniciar no modo auto: um modelo classificador revisa as chamadas, então você não precisa listar nada antecipadamente. Passe
--permission-mode autoparaclaude -p, ou defina a opção de modo de permissão do seu SDK.
Estes exemplos mostram a forma do modo auto para a CLI e cada SDK:
[tab] CLI
claude -p "Run the test suite and fix any failures" --permission-mode auto
[tab] TypeScript
const options = { permissionMode: "auto" };
[tab] Python
from claude_agent_sdk import ClaudeAgentOptions options = ClaudeAgentOptions(permission_mode="auto")
Antes da v2.1.302, essas execuções podiam iniciar no modo auto se não buscassem sinalizadores de recurso, por exemplo em um provedor de terceiros ou com DISABLE_TELEMETRY.
Inicie em um modo de permissão diferente
Você pode definir o modo de permissão inicial para uma sessão, ou como padrão para cada sessão em uma máquina, projeto ou organização. Quando mais de um arquivo de configurações define permissions.defaultMode, precedência de configurações decide, então um valor de projeto ou gerenciado supera ~/.claude/settings.json. Para alterar o modo de permissão de uma sessão já em execução, veja Alternar modos de permissão.
| Para definir o modo de permissão inicial para | Faça isto |
|---|---|
| Uma sessão que você está prestes a iniciar | Passe o modo de permissão como uma flag, por exemplo claude --permission-mode default |
| Cada sessão de terminal que você inicia nesta máquina | Defina permissions.defaultMode em ~/.claude/settings.json. Para o que a extensão VS Code lê, veja Alternar modos de permissão |
| Cada sessão de terminal que você inicia em um projeto | Defina permissions.defaultMode em .claude/settings.json do projeto. Sessões que você inicia em um terminal honram todos os valores exceto auto e bypassPermissions; sessões que a extensão VS Code inicia não leem configurações de projeto para o modo de permissão inicial |
| Cada sessão de terminal em sua organização | Defina permissions.defaultMode em configurações gerenciadas. Sessões de terminal iniciam nesse modo e as pessoas ainda podem alternar para modo auto; para o que a extensão VS Code lê, veja Alternar modos de permissão. Para remover o modo auto para que ninguém possa selecioná-lo, defina permissions.disableAutoMode como "disable" em vez disso |
Este exemplo faz cada sessão de terminal em sua máquina iniciar no modo Manual, cujo valor de configuração é default. Salve em ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "default"
}
}
A próxima sessão que você inicia mostra ⏸ manual mode on na barra de status.
Modos de permissão com a configuração HIPAA
Em uma organização com a configuração HIPAA aplicada, o padrão integrado auto não se aplica. Uma sessão de terminal ou do VS Code inicia no modo Manual quando nada mais escolhe seu modo de permissão inicial. Uma sessão de terminal também mostra Auto mode isn't the default for your organization · Shift+Tab to switch, e a extensão VS Code não mostra nenhum aviso. Verifique como os desenvolvedores fazem login e se conectam lista as sessões às quais isso se aplica.
O modo auto e bypassPermissions continuam disponíveis:
- Alternar para o modo auto: pressione
Shift+Tabou use o controle da sua interface - Iniciar no modo auto: passe
--permission-mode autoou definapermissions.defaultModecomoautoem suas configurações de usuário, ou em configurações gerenciadas para toda a sua organização. Veja Inicie em um modo de permissão diferente - Remover o modo auto: defina
permissions.disableAutoModecomo"disable"em configurações gerenciadas - Bloquear
bypassPermissions: definapermissions.disableBypassPermissionsModecomo"disable"em configurações gerenciadas
Requer Claude Code v2.1.285 ou posterior, a versão mínima para a configuração HIPAA.
Alternar modos de permissão
Cada interface tem seu próprio controle para alternar modos de permissão durante uma sessão e sua própria forma de escolher o modo de permissão que novas sessões iniciam. Selecione sua interface para ver seus controles.
[tab] CLI
Durante uma sessão: pressione
Shift+Tabpara alternar modos de permissão. Deauto, o primeiro pressionamento alterna paradefault, e o ciclo então executadefault→acceptEdits→plan. Modos opcionais se encaixam apósplan. A barra de status mostra o modo ativo como um⏸ manual mode oncinza paradefault, ou como⏵⏵ accept edits on,⏸ plan mode on,⏵⏵ auto mode on,⏵⏵ don't ask onou⏵⏵ bypass permissions on.Observe a barra de status neste clipe de uma sessão que começou no modo auto. Cada vez que você pressiona
Shift+Tab, ela muda deauto mode onparamanual mode on,accept edits on,plan mode one de volta paraauto mode on.Nem todo modo está no ciclo padrão:
auto: aparece quando modo automático está disponível; alternar para ele alterna modos de permissão sem um prompt de confirmaçãobypassPermissions: aparece depois que você inicia com--permission-mode bypassPermissions,--dangerously-skip-permissions,--allow-dangerously-skip-permissionsoupermissions.defaultMode: "bypassPermissions"em configurações de usuário,--settingsou gerenciadas. A variante--allow-adiciona o modo de permissão ao ciclo sem ativá-lodontAsk: nunca aparece no ciclo; defina-o com--permission-mode dontAskModos opcionais habilitados se encaixam após
plan, combypassPermissionsprimeiro eautopor último. Se você tiver ambos habilitados, você alternará através debypassPermissionsa caminho deauto.De um prompt de permissão Bash: nos modos de permissão Manual e
acceptEdits, quando modo automático está disponível, Claude Code adiciona Sim, e alternar para modo automático ao prompt de permissão de um comando Bash. Selecione-o para aprovar o comando e alternar a sessão para modo automático. Prompts da ferramenta PowerShell não oferecem a opção. Requer Claude Code v2.1.247 ou posterior.Claude Code não adiciona a opção a prompts forçados por uma de suas regras
askou por um hook, porque o modo automático ainda mostra esses prompts, então alternar não os removeria.Na inicialização: passe o modo de permissão como uma flag.
claude --permission-mode planComo padrão: defina
permissions.defaultModeno escopo que você quer, conforme descrito em Inicie em um modo de permissão diferente.A mesma flag
--permission-modefunciona com-ppara execuções não-interativas.
[tab] VS Code
Durante uma sessão: clique no indicador de modo na parte inferior da caixa de prompt. Ele usa estes rótulos para os modos nesta página:
Rótulo da UI Modo Manual defaultEditar automaticamente acceptEditsPlan planAuto autoBypass permissions bypassPermissionsComo padrão: para fixar o modo de permissão que conversas iniciam, defina
claudeCode.initialPermissionModenas configurações de usuário do VS Code comodefault,manual,acceptEdits,planoubypassPermissions. A configuração não aceitaauto; para iniciar em Auto, deixe-a indefinida e escolha Auto no indicador de modo uma vez, como o item 2 abaixo descreve. A extensão inicia cada nova conversa no primeiro destes que se aplica:
claudeCode.initialPermissionMode- O modo que você escolheu por último no indicador de modo, se foi Manual, Editar automaticamente ou Auto. Escolher Plan ou Bypass permissions se aplica apenas a essa conversa
permissions.defaultModede configurações gerenciadas ou~/.claude/settings.json- O padrão integrado para seu plano, provedor e configurações de organização
A extensão nunca lê
.claude/settings.jsonou.claude/settings.local.jsonde um projeto para o modo de permissão inicial. QuandoclaudeCode.claudeProcessWrapperestá definido, os itens 3 e 4 não se aplicam: essas conversas iniciam em Manual a menos que o item 1 ou item 2 defina um modo de permissão.Antes de v2.1.283, o item 3 se aplicava apenas em planos Pro, Max, Ultra e Team em sessões que buscam sinalizadores de recurso.
Auto aparece no indicador de modo quando modo automático está disponível.
Bypass permissions requer o toggle Allow dangerously skip permissions nas configurações da extensão. Sem ele, o modo de permissão não aparece no indicador, e um valor
bypassPermissionsdo item 1 ou item 3 inicia a conversa em Manual em vez disso. Auto de qualquer item também inicia a conversa em Manual quando o modo automático não está disponível.Veja o guia do VS Code para detalhes específicos da extensão.
[tab] JetBrains
O plugin JetBrains executa Claude Code no terminal do IDE, então alternar modos de permissão funciona da mesma forma que na CLI: pressione
Shift+Tabpara alternar, ou passe--permission-modeao iniciar.
[tab] Desktop
Durante uma sessão: na aba Code, use o seletor de modo na linha abaixo da caixa de prompt. Nem todo modo aparece no seletor:
- Auto: aparece quando modo automático está disponível
- Bypass permissions: requer o toggle Allow bypass permissions mode nas configurações do Desktop em planos Pro, Max e Ultra; em planos Team e Enterprise, a política da organização controla isso
O Cowork não usa estes modos. Ele tem seus próprios modos de permissão, habilitados separadamente, e não mostra nenhum seletor de modo até que um modo além de seu padrão seja habilitado para sua conta. Veja a documentação do Cowork.
Para detalhes específicos do desktop, veja Escolha um modo de permissão no guia do Desktop.
Como padrão: defina
defaultModeem configurações. O aplicativo de desktop lê os mesmos arquivos de configurações que a CLI e aplica o modo de permissão a novas sessões locais.Um modo que você escolhe no seletor de modo é lembrado por pasta e tem precedência sobre
defaultModepara essa pasta. Plan é a exceção: escolhê-lo se aplica apenas à sessão atual.Para onde
defaultModevai em um arquivo de configurações, veja o exemplo em Inicie em um modo de permissão diferente.
[tab] Web and mobile
Em claude.ai/code, use o dropdown de modo na linha abaixo da caixa de prompt. No aplicativo móvel, toque no botão + na caixa de prompt e depois em Permission. Sessões na nuvem e sessões de Remote Control oferecem modos de permissão diferentes:
- Sessões na nuvem: Accept edits, Plan e Auto. Accept edits corresponde ao modo
default: sessões na nuvem pré-aprovam edições de arquivo independentemente do modo, então o dropdown mostra Accept edits em vez de Manual. Sessões na nuvem ainda honramdefaultMode: "acceptEdits"de configurações. O modo Auto aparece apenas quando sua organização o permite e o modelo selecionado o suporta. Bypass permissions não está disponível.- Sessões de Remote Control em sua máquina local: Manual, Accept edits, Plan e Auto para uma sessão que você mesmo iniciou, e você não pode selecionar Bypass permissions do aplicativo. Para usar Auto, a sessão precisa atender aos requisitos de disponibilidade do modo auto. Para um thread de projeto executado em seu computador, veja Execute um thread em seu próprio computador.
- Exceto por Bypass permissions, o dropdown mostra o modo de permissão em que a sessão local está, incluindo um definido do terminal. Ele atualiza quando o modo de permissão muda no aplicativo ou no terminal.
- Sessões hospedadas pelo aplicativo de desktop ou pela extensão VS Code relatam mudanças de modo de permissão ao claude.ai conforme acontecem, da mesma forma que sessões hospedadas em um terminal.
Para Remote Control, a máquina local executando a sessão deve estar conectada com sua conta claude.ai; chaves de API não são suportadas. Você também pode definir o modo de permissão inicial ao iniciar essa sessão local:
claude remote-control --permission-mode acceptEdits
Auto-aprovar edições de arquivo com modo acceptEdits
O modo acceptEdits permite que Claude crie e edite arquivos em seu diretório de trabalho sem solicitar. A barra de status mostra ⏵⏵ accept edits on enquanto este modo está ativo.
Além de edições de arquivo, o modo acceptEdits auto-aprova comandos Bash comuns do sistema de arquivos: mkdir, touch, rm, rmdir, mv, cp e sed. Exceto por touch, esses comandos também são auto-aprovados quando prefixados com variáveis de ambiente seguras como LANG=C ou NO_COLOR=1, ou wrappers de processo como timeout, nice ou nohup. Como edições de arquivo, a auto-aprovação se aplica apenas a caminhos dentro de seu diretório de trabalho ou additionalDirectories.
Estes ainda solicitam confirmação:
- Caminhos fora desse escopo
- Gravações em caminhos protegidos
- Remoções de caminho crítico reconhecidas de
rmermdir touchcom qualquer coisa além de caminhos de arquivo simples, por exemplo uma opção, um glob ou um prefixo comotimeout 5ouLANG=C- Todos os outros comandos Bash, exceto o conjunto integrado somente leitura
Cada caminho também passa pela verificação de symlink, portanto uma gravação que se resolve fora desse escopo também não é auto-aprovada.
Quando a ferramenta PowerShell está habilitada, o modo acceptEdits também auto-aprova Set-Content, Add-Content, Clear-Content e Remove-Item em caminhos no escopo, junto com seus aliases comuns. As mesmas regras de escopo e caminho protegido se aplicam, e Remove-Item recebe sua própria verificação. Um argumento posicional que contém um caractere de aspas, como o apóstrofo em Set-Content .\notes.txt "It's done", ainda solicita mesmo em caminhos no escopo, porque Claude Code não consegue validar estaticamente um argumento cujas leituras entre aspas e sem aspas diferem. Passe o conteúdo através de um parâmetro nomeado como -Value para evitar o prompt.
Use acceptEdits quando você quer revisar mudanças em seu editor ou via git diff depois, em vez de aprovar cada edição inline.
Pressione Shift+Tab uma vez a partir do modo Manual para entrar nele, ou comece com ele diretamente:
claude --permission-mode acceptEdits
Analise antes de editar com o modo de planejamento
O modo de planejamento instrui o Claude a pesquisar e propor alterações sem realizá-las. O Claude lê arquivos, executa comandos de shell para explorar e escreve um plano, mas não edita seu código-fonte. Exceto em sessões interativas de terminal com bypass permissions disponível, as edições permanecem bloqueadas até que você aprove o plano.
O que acontece com um comando de shell durante o planejamento depende da sessão, e aplica-se o primeiro dos casos a seguir que corresponder:
- Sessões interativas de terminal com bypass permissions disponível: nem o classificador nem um prompt se aplicam aos comandos de planejamento. Ignore todas as verificações com o modo bypassPermissions aborda as poucas coisas que ainda solicitam confirmação nesse caso.
- Modo auto disponível e a configuração
useAutoModeDuringPlanativada, o que ocorre por padrão: o classificador revisa os comandos de shell, exceto remoções de caminhos críticos, em vez de solicitar sua confirmação. Os comandos aprovados são executados, e os rejeitados são bloqueados. - Modo auto não disponível, ou
useAutoModeDuringPlandesativada: os comandos fora do conjunto somente leitura integrado solicitam aprovação, inclusive quando o modo de permissão automática do sandbox está ativado.
Entre no modo de planejamento pressionando Shift+Tab ou prefixando um único prompt com /plan. Você também pode iniciar no modo de planejamento a partir da CLI:
claude --permission-mode plan
Pressione Shift+Tab novamente para sair do modo de planejamento sem aprovar um plano.
Revise e aprove um plano
Quando o plano estiver pronto, o Claude o apresenta e pergunta como prosseguir. Nesse prompt, você pode escolher:
- Yes, and use auto mode: aprova e inicia no modo auto. Se o modo auto não estiver disponível para sua sessão, por exemplo porque sua organização o desativou, essa opção aparece como Yes, auto-accept edits. Se você iniciou a sessão com bypass permissions ativado, a opção aparece como Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session.
- Yes, manually approve edits: aprova e revisa cada edição individualmente.
- No, keep planning: permanece no modo de planejamento e informa ao Claude o que alterar.
Aprovar um plano sai do modo de planejamento e muda a sessão para o modo de permissão que cada opção de aprovação descreve, de modo que o Claude começa a editar. Para planejar novamente, volte ao modo de planejamento com Shift+Tab ou prefixe seu próximo prompt com /plan.
Pressione Ctrl+G para abrir o plano proposto no seu editor de texto padrão e editá-lo diretamente antes que o Claude prossiga. Quando showClearContextOnPlanAccept está ativada, a lista ganha uma primeira opção que aprova o plano e limpa o contexto de planejamento.
Aceitar um plano também dá à sessão um título gerado com base no plano, a menos que você já tenha nomeado a sessão.
Defina o modo de planejamento como padrão
Para tornar o modo de planejamento o padrão para as sessões de terminal de um projeto, defina defaultMode como plan em .claude/settings.json, posicionado como mostra o exemplo em Inicie em um modo de permissão diferente. As conversas iniciadas pela extensão do VS Code não leem as configurações do projeto para o modo de permissão inicial. Nesse caso, defina claudeCode.initialPermissionMode como plan nas suas configurações de usuário do VS Code.
Elimine prompts de permissão com o modo auto
O modo auto permite que Claude execute sem prompts de permissão rotineiros. Um modelo classificador separado revisa as ações antes de serem executadas, bloqueando qualquer coisa que escale além da sua solicitação, tenha como alvo infraestrutura não reconhecida ou pareça impulsionada por conteúdo hostil que Claude leu. Regras de solicitação explícitas ainda forçam um prompt.
Com Claude Code v2.1.283 ou posterior, o modo auto é o modo de permissão inicial integrado para sessões de terminal interativo e VS Code em todos os planos e provedores. Em versões anteriores, é o modo de permissão inicial integrado apenas nos planos Pro, Max, Ultra e Team.
O classificador também revisa cada mensagem que Claude envia para outro agente com SendMessage, seja texto simples ou uma mensagem estruturada de equipe de agentes, antes que Claude Code a entregue, tanto no modo auto quanto no modo de planejamento enquanto o classificador revisa comandos; a revisão de envio requer Claude Code v2.1.222 ou posterior.
Por padrão, o classificador não revisa remoções reconhecidas de rm e rmdir direcionadas a um caminho crítico, como rm -rf / ou rm -rf ~. Caminhos críticos cobre o que acontece com elas em cada modo de permissão.
O modo auto também incentiva Claude a continuar trabalhando sem parar para fazer perguntas de esclarecimento, embora Claude ainda pergunte quando seu prompt ou uma skill depende explicitamente disso. Para um comportamento mais autônomo em um modo que ainda solicita sua confirmação, defina o estilo de saída Proativo em vez disso.
[!WARNING]
O modo auto reduz prompts de permissão, mas não garante segurança. Use-o para tarefas em que você confia na direção geral, não como substituto para revisão em operações sensíveis.
O modo auto está disponível apenas quando sua conta atende a todos esses requisitos:
- Plano: Todos os planos.
- Organização: em Team e Enterprise, o modo auto está disponível por padrão. Os administradores podem desativá-lo para a organização definindo
permissions.disableAutoModecomo"disable"em configurações gerenciadas. - Modelo: na API Anthropic e Claude Platform on AWS, Claude Opus 4.6 ou posterior, Sonnet 4.6 ou posterior, Haiku 5.5 ou um modelo Fable. No Amazon Bedrock, na Agent Platform do Google Cloud, no Microsoft Foundry e em sessões gateway de aplicativos Claude conectadas, apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior, Haiku 5.5 e os modelos Fable. Modelos mais antigos, incluindo Sonnet 4.5, Opus 4.5, Haiku 4.5 e modelos claude-3, não são suportados em nenhum provedor.
- Provedor: disponível por padrão na API Anthropic, Claude Platform on AWS, Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e sessões gateway de aplicativos Claude conectadas.
Se Claude Code relatar o modo auto como indisponível, primeiro verifique esses requisitos e se algum arquivo de configurações define disableAutoMode. A Anthropic também pode ter desativado o modo auto no servidor, ou o servidor pode ter rejeitado o modo auto para sua conta. Uma sessão que recebeu uma dessas respostas mantém o modo auto desativado até que a sessão termine, então inicie uma nova sessão depois.
Uma mensagem separada que nomeia um modelo e diz que o modo auto "não pode determinar a segurança" de uma ação significa que uma requisição do classificador falhou. Essa falha geralmente é transitória, mas no Amazon Bedrock pode se repetir até que sua conta possa invocar o modelo nomeado. Consulte a referência de erros para as causas e o que fazer.
Se você definir defaultMode: "auto" em configurações e uma sessão de terminal iniciar em modo Manual sem erro, a configuração provavelmente está em .claude/settings.json ou .claude/settings.local.json. auto não entra em vigor a partir desses arquivos. Mova-o para ~/.claude/settings.json. Para uma conversa que a extensão VS Code iniciou, verifique a lista própria da extensão em Alternar modos de permissão em vez disso.
Modo auto em Bedrock, Agent Platform ou Foundry
Em Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e sessões gateway de aplicativos Claude conectadas, o modo auto está disponível por padrão. Se você não definir um modo de permissão nesses ambientes, sessões interativas iniciam no modo auto, e execuções claude -p ou do Agent SDK iniciam no modo Manual, cujo valor de configuração é default:
- Sessões interativas de terminal e VS Code: para iniciá-las em um modo de permissão diferente de auto, defina
permissions.defaultModecomo Iniciar em um modo de permissão diferente descreve, ou escolha um no indicador de modo da extensão VS Code. Em qual modo uma sessão inicia lista as versões de Claude Code que as iniciam no modo auto. - Execuções
claude -pe do Agent SDK: para iniciar uma no modo auto, passe--permission-mode autoparaclaude -p, ou passepermissionMode: "auto"em TypeScript oupermission_mode="auto"em Python. Se você não passar nenhum modo de permissão, consulte Chamadas de ferramenta negadas em execuçõesclaude -pe do Agent SDK, que também cobre versões anteriores de Claude Code.
Apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior, Haiku 5.5 e os modelos Fable são suportados nesses provedores. Em qualquer outro modelo, a sessão inicia em Manual em vez disso. O modo auto com Haiku 5.5 nesses provedores requer Claude Code v2.1.293 ou posterior.
Para impedir que desenvolvedores usem o modo auto, defina disableAutoMode como "disable" em configurações gerenciadas. Isso remove auto do ciclo Shift+Tab e uma sessão iniciada com --permission-mode auto inicia em Manual em vez disso. Uma sessão já em execução no modo auto o deixa quando a configuração chega a essa sessão de uma fonte implantada por administrador e mostra auto mode disabled by settings. Antes de v2.1.251, uma sessão em execução mantinha o modo auto até que terminasse.
Revisão do classificador no servidor
No modo auto, Claude Code pode pedir ao servidor para verificar as ações que a ordem de decisão envia para revisão, como parte das requisições ao modelo da sessão, em vez de enviar suas próprias requisições do classificador. Estas sessões pedem:
- Uma conexão direta com a API Anthropic: em sessões de terminal interativo e em sessões
-p, Agent SDK, extensão VS Code e aplicativo desktop, qualquer que seja seu plano ou tipo de conta, conforme a Anthropic disponibiliza o recurso. Verifique seu tipo de sessão segundo estas versões mínimas de Claude Code:- Em sessões de terminal interativo, pedir ao servidor requer Claude Code v2.1.271 ou posterior nos planos Pro, Max, Ultra e Team. Nos planos Enterprise e contas da API Claude, essas sessões requerem v2.1.278 ou posterior.
- Em sessões
-p, Agent SDK, extensão VS Code e aplicativo desktop, pedir ao servidor requer Claude Code v2.1.281 ou posterior - A partir da v2.1.282, uma sessão que não busca feature flags, por exemplo porque você desativou a telemetria, pede ao servidor por padrão em qualquer tipo de sessão
- Um provedor de nuvem, ou um gateway de LLM ou proxy: em Claude Platform on AWS, Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta
ANTHROPIC_BASE_URLpara um gateway de LLM ou proxy, qualquer que seja seu plano. Pedir por padrão requer Claude Code v2.1.278 ou posterior. - Uma sessão gateway de aplicativos Claude conectada: requer Claude Code v2.1.280 ou posterior
- Uma sessão na nuvem em um ambiente hospedado pela Anthropic: qualquer que seja seu plano, quando você a inicia pela web, pelo aplicativo móvel ou pelo aplicativo desktop com Cloud selecionado. Sessões iniciadas por uma tarefa agendada na nuvem pedem ao servidor conforme a Anthropic disponibiliza o recurso.
Onde o servidor revisa as ações, seus vereditos as decidem. Dois outros resultados são possíveis:
- O servidor não revisa a sessão: uma resposta é concluída sem resultados de revisão, ou o servidor responde que não revisa essa sessão. As causas mais comuns são um gateway de LLM ou proxy que descarta a requisição de revisão ou os resultados, e uma plataforma, região ou credencial que ainda não tem verificações no servidor. Claude Code recorre às suas próprias requisições do classificador. Uma vez que esse fallback se mantém pelo resto da sessão, ele mostra um aviso sobre cobranças de requisições do classificador em contas onde essas requisições são cobradas.
- O servidor não dá veredito para uma ação: Claude Code nega a ação em vez de executá-la sem revisão. Em qualquer conexão, isso acontece quando a resposta termina antes de os resultados de revisão chegarem ou quando os resultados chegam em uma forma que Claude Code não consegue ler. Um gateway de LLM ou proxy que corta respostas ou reescreve os resultados pode causar qualquer um dos dois. Em uma conexão direta com a API Anthropic, também acontece quando a verificação do servidor falha para a ação, por exemplo ao expirar o tempo limite. O servidor não retornou veredito de segurança cobre a mensagem de negação, o que acontece quando negações se repetem e o que fazer.
Para deixar de consultar o servidor e sempre usar as próprias requisições do classificador de Claude Code, defina CLAUDE_CODE_AUTO_MODE_SERVER=0. Em uma conexão direta com a API Anthropic, a variável requer Claude Code v2.1.281 ou posterior. Defini-la como 1 nesse caso ativa a revisão do servidor em uma sessão que ainda não a tem, a menos que você também tenha definido CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Se você definir CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 e deixar CLAUDE_CODE_AUTO_MODE_SERVER indefinido, Claude Code também para de pedir ao servidor, exceto como Desabilitar capacidades de pré-lançamento descreve.
Modelo classificador padrão
Por padrão, as requisições do classificador vão para Claude Sonnet 5. Se /status mostrar Auto mode server como Enabled, elas são enviadas apenas para chamadas fora da revisão do servidor.
Encontre a primeira linha desta tabela que corresponde à sua sessão. Você obtém o modelo dessa linha em vez de Sonnet 5.
| Sua sessão | Modelo classificador |
|---|---|
| Tem um modelo classificador configurado pela Anthropic | O modelo configurado. Verifique o log de depuração para ver qual |
| Executa em Claude Sonnet 4.6 | Sonnet 4.6 |
Tem ANTHROPIC_DEFAULT_SONNET_MODEL definido |
Seu valor, ou Sonnet 5 se seu valor for Claude Sonnet 5.5 ou Claude Opus 5.5 |
Se Sonnet 5 ou o modelo em ANTHROPIC_DEFAULT_SONNET_MODEL não estiver disponível em seu provedor ou for excluído pela política de modelos da sua organização, Claude Code usa um modelo de fallback. Esse é o modelo da sua sessão, ou um modelo Opus em uma sessão Fable.
Escolher o modelo classificador
Com Claude Code v2.1.302 ou posterior, defina CLAUDE_CODE_AUTO_MODE_MODEL como um ID de modelo completo para executar o classificador em um modelo diferente do padrão. Os próprios IDs de modelo completos do seu provedor de nuvem também funcionam. Este exemplo de ~/.claude/settings.json define Claude Sonnet 4.6:
{
"env": {
"CLAUDE_CODE_AUTO_MODE_MODEL": "claude-sonnet-4-6"
}
}
Quando o seu modelo não é o que está revisando
| Situação | O que acontece | O que fazer |
|---|---|---|
| O log de depuração relata um modelo classificador configurado pela Anthropic | Esse modelo revisa | Nada necessário |
| Você definiu Claude Opus 5, Sonnet 5.5, Opus 5.5 ou um modelo que a política de modelos da sua organização exclui | O modelo classificador padrão revisa | Defina outro modelo |
| Seu provedor não consegue servir o modelo | As verificações do classificador falham, então Claude Code nega cada ação que verifica | Defina um modelo que ele serve, ou remova a variável |
Em uma sessão, /status mostra Auto mode server como Enabled |
O servidor revisa sem o seu modelo | Nada necessário |
Se várias situações se aplicarem, siga a primeira listada.
Verificar qual modelo o classificador usou
No seu shell, inicie uma sessão no modo auto com --debug-file:
claude --permission-mode auto --debug-file classifier-debug.log
Peça a Claude para executar um comando de shell que não seja somente leitura e, em seguida, pesquise no log por classifier_request_started:
- Seu modelo após
model=: a variável entrou em vigor - Um modelo diferente após
model=: pesquise no log porignoring CLAUDE_CODE_AUTO_MODE_MODEL, que dá o motivo e qualquer etapa a seguir - Nenhuma linha assim: leia
Auto mode serverem/statusno prompt de Claude Code:Enabled: o servidor está configurado para revisar as chamadas desta sessão.Disabled: certifique-se de que o modo de permissão é auto e, em seguida, peça a Claude para executar outro comando que não seja somente leitura.
O que o classificador bloqueia por padrão
O classificador confia em seu diretório de trabalho e nos remotos que foram configurados para ele quando a sessão iniciou. Um remoto adicionado ou reapontado durante a sessão com git remote add ou git remote set-url não é confiável, e todo o resto é tratado como externo até você configurar infraestrutura confiável.
Bloqueado por padrão:
-
Baixar e executar código, como
curl | bash -
Enviar dados sensíveis para endpoints externos
-
Implantações e migrações de produção
-
Exclusão em massa no armazenamento em nuvem
-
Concessão de permissões IAM ou de repositório
-
Modificação de infraestrutura compartilhada
-
Destruição irreversível de arquivos que existiam antes da sessão
-
Force push
-
Fazer commit ou push de uma alteração que, ao ser executada, enviaria segredos ou dados sensíveis para fora do repositório, ou ampliaria o que uma implantação expõe. Isso cobre um workflow de CI ou configuração de implantação que passa um segredo para um destino que ainda não o recebe, um script ou etapa de setup que lê um armazenamento de segredos e envia os dados para fora, e uma mudança de configuração que amplia o que uma implantação publica, como uma opção de registro, visibilidade, artefato ou sourcemap. A verificação se aplica em qualquer branch, se aplica mesmo quando o repositório é público e dispara quando é feito commit ou push da alteração, independentemente de esse commit ou push disparar o pipeline; liberá-la requer nomear o efeito de execução, não apenas o commit ou push
-
git reset --hard,git checkout -- .,git restore .,git clean -fd,git stash dropougit stash clear, que o classificador presume que descartariam alterações sem commit -
git commit --amendquando o commit no HEAD não foi criado nesta sessão -
A partir da v2.1.198,
git commit --amendquando já foi feito push do commit no HEAD. Uma reescrita apenas da mensagem não é bloqueada:--amend -msem nada recém-adicionado ao stage, em um commit que Claude criou durante esta sessão -
terraform destroy,pulumi destroy,cdk destroyouterragrunt destroy, e aplicar um plano que destrói recursos -
Escrita em um gerenciador de segredos, ou alteração de registros DNS ou certificados TLS
-
Mesclar um pull request que nenhum humano aprovou, aprovar o próprio pull request de Claude ou desabilitar verificações de CI
-
Postagem de um comentário que é em si um comando para automação, como
atlantis applyou/deployou/mergede um bot -
Alternância, aumento gradual ou exclusão de uma feature flag de produção
-
Aplicação de alterações de infraestrutura a um escopo IaC protegido, ou drenagem e remoção de nós de cluster
-
Escritas em um cluster de computação compartilhado que vão além do recurso que você nomeou, como um seletor de rótulo ou
--allque atinge trabalhos de outros usuários -
Criação de recursos Kubernetes que executam em cada nó ou interceptam tráfego de cluster, como DaemonSets e webhooks de admissão
-
Shells interativos ou port-forwards para um alvo remoto sensível
-
Abertura de um túnel ou shell reverso que torna um serviço local acessível pela internet pública
-
Impressão de uma credencial ou token ativo na transcrição ou em um arquivo
-
Acesso a um local listado como local de dados sensíveis em seu ambiente, cópia de dados de um deles, ou envio de dados de um deles para um público que a entrada exclui
-
Roteamento de uma instalação de pacote contornando seu registro de pacotes interno em direção a um registro público. Isso se aplica quando um registro interno ou espelho está listado em seu ambiente ou quando você disse a Claude na conversa que existe um
-
Execução de um comando com uma flag que desativa uma proteção de segurança, como
--insecure -
Lançamento de um loop de agente autônomo que executa sem aprovação humana ou sandbox, como um iniciado com
--dangerously-skip-permissionsou--no-sandbox. Isso inclui a execução de um agente de terceiros ou harness de avaliação com isolamento e aprovação por ação desabilitados, como um runner iniciado com--yes-always -
Ações de navegador do Claude in Chrome que poderiam enviar conteúdo de página, cookies ou credenciais para fora da origem
-
Exclusão de arquivos em
/tmp,$TMPDIRou outro diretório compartilhado de rascunho ou cache por wildcard, glob ou filtro de idade em vez de por um caminho nomeado específico -
Inclusão de detalhes sensíveis em conteúdo enviado, carregado, publicado ou escrito para outras pessoas ou sistemas compartilhados, quando sua própria mensagem não autorizou esses detalhes para esse destinatário. Corpos de PR e issue, mensagens de commit e comentários contam como esse tipo de conteúdo de saída quando o repositório está fora do limite de confiança ou é público, incluindo os próprios repositórios públicos da sua organização; caminhos de arquivo internos, codinomes, dados ativos de respostas de API como emails ou identificadores de conta, e identificadores de infraestrutura contam como detalhes sensíveis. Dados pessoais ativos de uma resposta de API em um corpo de PR ou issue, como um endereço de email, um identificador de conta ou organização ou uma métrica de uso, exigem que você nomeie esses detalhes e o destinatário independentemente da visibilidade ou do limite de confiança do repositório
-
Envio de pressionamentos de tecla para o próprio painel tmux de Claude Code para conduzir sua própria interface, o que o classificador trata como Claude alterando suas próprias permissões ou supervisão
-
Comentar, excluir ou forçar a aprovação de um teste ou asserção que protege comportamento de segurança, como autenticação, controle de acesso, validação de entrada ou sandboxing
-
Exclusão ou desmontagem de um recurso com estado que Claude não criou na sessão, quando nenhuma regra de exclusão mais específica se aplica e você não nomeou esse recurso
-
Reapontamento de uma URL base de API, endpoint de proxy, receptor de webhook ou espelho de registro para um host de terceiros que não se encaixa na tarefa, incluindo em arquivos de exemplo como
.env.example -
Alteração do destino dos pushes com
git remote set-urlougit remote add, a menos que você tenha nomeado o novo remoto -
Push de segredos ou dados pessoais ou confiados para um repositório sabidamente público, ou push para ele de material confidencial que não faz parte do próprio trabalho desse repositório. O próprio assunto de um repositório de dotfiles é a única exceção para dados pessoais ou confiados, e conteúdo de um repositório privado chegando a qualquer superfície pública é bloqueado da mesma forma. Quando a visibilidade de um repositório não está estabelecida, o classificador não bloqueia apenas com base nisso; em vez disso, ele julga o conteúdo segundo as outras regras
-
Abertura de um pull request contra um repositório ou organização diferente, criação de fork com
gh repo forkou push para um repositório de terceiros, a menos que você tenha nomeado esse alvo externo -
Conteúdo de um armazenamento local sensível, ou de um arquivo cujo nome, caminho ou tipo o marca como sensível, entrando em um commit, um push, texto de PR ou issue, um gist ou paste ou uma publicação de pacote, a menos que você tenha nomeado tanto a origem quanto o destino. Transcrições de sessão e logs de conversa, pastas ocultas de credenciais e configuração como chaves SSH, credenciais de nuvem, perfis de navegador e histórico de shell, e exportações de dados de usuário contam, e o fato de o repositório ser privado não libera o bloqueio
-
Escrita em transcrições de sessão de Claude Code, os arquivos de histórico
.jsonlem~/.claude/projects/ou em seu diretório de configuração configurado, seja diretamente ou através de um comando de shell. A regra também cobre as linhas de metadados que Claude Code acrescenta a cada entrada de transcrição para suas próprias verificações. Ler uma transcrição não é bloqueado -
Uma exclusão forçada recursiva como
rm -rf "$VAR"ouRemove-Item -Recurse -Force $dircujo alvo é uma variável de shell que não é atribuída em nenhum lugar da conversa que o classificador vê, ou um glob enraizado em tal variável. O valor veio apenas de saídas de comando anteriores, que o classificador nunca recebe, então o classificador não consegue verificar o alvo da exclusão segundo as outras regras de exclusão. O bloqueio é liberado quando você nomeia o caminho exato sendo excluído, ou quando Claude executa novamente a exclusão com o caminho literal resolvido escrito no comando. Exclusões cujo alvo o classificador consegue resolver não são afetadas.Um glob diretamente sob a variável, como em
rm -rf "$VAR"/*, é em vez disso um caminho crítico. Alvos deRemove-Itemque são um*simples ou terminam em/*ou\*nunca chegam ao classificador: Claude Code os nega imediatamente.
Várias dessas categorias dependem de entradas de ambiente, como alvos remotos sensíveis e escopos IaC protegidos, que você pode restringir a nomes concretos.
Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:
- Solicitação de credenciais do endpoint de metadados da instância de nuvem, como
169.254.169.254, ou autenticação explícita de uma chamada de nuvem, cluster ou registro com a identidade de conta de serviço ou de nó da própria máquina - Acesso a um host público por uma rota diferente de uma requisição direta, como um túnel, um shell reverso ou uma configuração de resolvedor ou proxy reescrita para apontar para fora
- Leitura de credenciais que pertencem ao host em vez de à sua tarefa, como certificados de nó ou a autenticação de registro de contêiner do nó
- Conexão ou varredura de contêineres, pods ou VMs irmãos que Claude não iniciou, ou do nó sob o contêiner
Se Claude Code executar em algum lugar que se destine a permitir um desses, descreva essa configuração em uma entrada Host containment em autoMode.environment.
Claude Code v2.1.261 e posterior também bloqueiam estes por padrão:
- Postagem ou escrita de um link para um serviço público de paste, diagrama ou compartilhamento de dados em uma mensagem, texto de PR ou issue, um documento ou em qualquer outro lugar onde o link será aberto ou buscado, quando a própria URL carrega o conteúdo sendo compartilhado, a menos que você tenha nomeado esse serviço
Permitido por padrão:
-
Operações de arquivo local em seu diretório de trabalho
-
Instalação de dependências declaradas em seus arquivos de lock ou manifestos
-
Leitura de
.enve envio de credenciais para sua API correspondente -
Requisições HTTP somente leitura
-
Push para qualquer branch do repositório em que você está trabalhando, incluindo o branch padrão. Um branch não padrão cujo nome o marca como alvo de implantação ou publicação, como
productionough-pages, não está coberto: o classificador julga um push para ele por seus próprios méritos.O conteúdo de um push ainda é verificado segundo as outras regras do classificador, e regras
permissions.denyainda podem bloquear comandos de push como escritos em todos os modos. A proteção de branch do próprio remoto ainda se aplica. -
Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão
-
Leitura, revisão ou escrita de código, configs e modelos de ameaça relacionados à segurança como parte de sua tarefa
-
Mensagens entre agentes trabalhando juntos na mesma sessão multiagente
-
Envio de dados para os domínios, buckets e serviços confiáveis que você lista em
environment. Isso cobre apenas fluxo de dados, não operações destrutivas ou de credenciais na mesma infraestrutura -
Navegação do Claude in Chrome para um domínio interno confiável, localhost ou uma URL que você nomeou
Comandos em sandbox não obtêm acesso à rede por padrão. Claude nomeia no próprio comando os hosts de que ele precisa, o classificador os revisa junto com o comando, e uma lista aprovada abre esses hosts apenas para esse comando. Domínios permitidos por comando cobre o que uma lista pode e não pode abrir e o que acontece quando um comando tenta alcançar um host não listado.
Execute claude auto-mode defaults para imprimir as listas de regras completas como JSON. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repositórios, buckets e serviços confiáveis por meio da configuração autoMode.environment: consulte Configurar o modo auto.
Push para qualquer branch do repositório em que você está trabalhando e a criação de um pull request que corresponde à sua solicitação executam sem um prompt, a menos que o push ou pull request se enquadre na lista de bloqueios, como segredos ou dados sensíveis saindo do repositório, ou um pull request que tem como alvo um repositório ou organização diferente. Para exigir um checkpoint humano antes desses comandos enquanto permanece no modo auto, adicione regras permissions.ask, que correspondem ao comando como escrito: consulte Limites comuns.
A primeira leitura fora dos diretórios de trabalho
Enquanto permissions.blockReadsOutsideWorkingDirectories estiver desativado, leituras de arquivo que não sejam leituras de caminhos de rede executam sem um prompt no modo auto, incluindo leituras fora dos diretórios de trabalho. Na primeira vez que Claude usa a ferramenta Read, Grep ou Glob em um caminho fora deles, Claude Code pergunta se deve permitir essa leitura.
O prompt não aparece em execuções -p não interativas ou em sessões em segundo plano; leituras nelas executam como antes.
Qualquer que seja sua resposta, Claude continua trabalhando:
- Sim, e continue permitindo qualquer leitura fora dos diretórios de trabalho: a leitura executa, leituras posteriores fora dos diretórios de trabalho executam como antes, e Claude Code registra sua resposta para que o prompt não apareça novamente
- Não, e bloqueie leituras fora dos diretórios de trabalho a partir de agora: a leitura é recusada, e Claude Code define
permissions.blockReadsOutsideWorkingDirectoriescomotrueem suas configurações de usuário, o que faz as ferramentas de arquivo recusarem tais leituras nesta e em cada sessão posterior e em cada modo de permissão. Para suspender o bloqueio, remova a configuração de cada arquivo de configurações que a define e, em seguida, reinicie cada sessão em execução. Para um diretório nesta sessão, use/add-dir. - Não, e pergunte novamente na próxima vez: a leitura é recusada, e a próxima leitura fora dos diretórios de trabalho solicita confirmação novamente
- Sim, mas pergunte novamente na próxima vez: a leitura executa, nada é salvo, e a próxima leitura fora dos diretórios de trabalho solicita confirmação novamente
Limites que você declara na conversa
O classificador trata limites que você declara na conversa como um sinal de bloqueio. Se você disser a Claude "não faça push" ou "espere até eu revisar antes de implantar", o classificador bloqueia ações correspondentes mesmo quando as regras padrão as permitiriam. Um limite permanece em vigor até você suspendê-lo em uma mensagem posterior. O próprio julgamento de Claude de que uma condição foi atendida não o suspende.
Limites não são armazenados como regras. O classificador os relê da transcrição em cada verificação, então um limite pode ser perdido se a compactação de contexto remover a mensagem que o declarou. Para uma garantia rígida, adicione uma regra de negação em vez disso.
Aprovações que você declara na conversa
Se você disser a Claude que uma ação bloqueada é permitida, o classificador lê isso como sua aprovação e pode liberar o bloqueio. A forma como você se expressou decide se a ação executa e até onde a aprovação alcança:
- Nomeie a ação e seus detalhes: sua mensagem tem que nomear a ação e a coisa específica que a torna perigosa, como o branch de um force push. Nomear apenas o verbo não libera nada, então "você pode fazer force-push" mantém o bloqueio em vigor.
- Espere que cubra uma ação: uma aprovação cobre a ação destrutiva que você nomeou, então uma ação posterior é bloqueada novamente a menos que você tenha concedido a aprovação como permanente. Para parar de aprovar um padrão rotineiro uma ação por vez, adicione-o a
autoMode.allow. - Alguns bloqueios permanecem em vigor: a ordem de precedência do classificador estabelece quais bloqueios sua aprovação pode alcançar. Para executar uma etapa que ela não libera, saia do modo auto e responda ao prompt de permissão.
Quando o modo auto recorre a um fallback
Quando o modo auto não consegue aprovar as ações de sua sessão, o que acontece depende do caso:
- Uma ação bloqueada: Claude Code mostra uma notificação e lista a ação em
/permissionsna aba Recently blocked, onde você pode aprovar a ação para que Claude possa tentar novamente. - Bloqueios repetidos: se o classificador bloquear uma ação 3 vezes seguidas ou 20 vezes no total, o modo auto pausa e Claude Code volta a solicitar confirmação. Aprovar a ação solicitada retoma o modo auto. Consulte Limites de bloqueio repetido para saber como os bloqueios são contados.
- Sem veredito do classificador: quando uma verificação de segurança separada do modo auto recusa a própria requisição do classificador, ou a resposta do classificador não pode ser analisada, Claude Code bloqueia a ação sem a notificação ou a entrada em Recently blocked. Consulte Auto mode cannot determine the safety of an action para a mensagem que cada caso mostra e o que fazer.
- Sem veredito do servidor: sob a revisão do classificador no servidor, Claude Code nega uma ação para a qual o servidor não dá veredito, e interrompe o turno após dez respostas seguidas sem veredito. Consulte O servidor não retornou veredito de segurança.
- Uma mudança de modo durante uma verificação: se você mudar de modo de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado. Em vez disso, você recebe um prompt de aprovação, ou a ação é negada automaticamente no modo
dontAsk.
Limites de bloqueio repetido
Os limites de 3 bloqueios seguidos e 20 bloqueios no total não são configuráveis. O contador total persiste durante a sessão e é redefinido apenas quando seu próprio limite dispara um fallback. Claude Code não conta uma negação para nenhum dos limites quando uma verificação de segurança separada do modo auto recusa a própria requisição do classificador.
Uma execução -p não interativa sem um --permission-prompt-tool não tem prompt ao qual recorrer. Quando bloqueios repetidos atingem um limite, a ação não executa e Claude continua trabalhando. Claude Code não interrompe a execução.
Bloqueios repetidos geralmente significam que falta ao classificador contexto sobre sua infraestrutura. Use /feedback para relatar falsos positivos, ou peça a um administrador para configurar infraestrutura confiável.
Como o modo auto avalia ações
As seções a seguir cobrem a ordem em que Claude Code avalia uma ação, como o classificador revisa o trabalho de subagentes e o que as chamadas do classificador adicionam em custo e latência.
[accordion] Como o classificador avalia ações
Cada ação passa por uma ordem de decisão fixa. O primeiro passo correspondente prevalece:
- Ações que correspondem às suas regras de permitir, solicitar ou negar são resolvidas imediatamente, com estas exceções:
- Escritas em caminhos protegidos são roteadas para o classificador mesmo quando uma regra de permitir corresponde. Quando o caminho protegido é o arquivo para o qual um arquivo de configurações com link simbólico aponta, a escrita pode pedir sua confirmação em vez disso, como a lista de caminhos protegidos descreve
- Nenhuma regra de permitir aprova remoções reconhecidas de
rmermdirdirecionadas a um caminho crítico- Ferramentas MCP marcadas com
requiresUserInteractionpedem sua confirmação diretamente mesmo quando uma regra de permitir corresponde, assim como ferramentas de conector que sua organização definiu comoaskem sessões onde essa configuração chega a Claude Code- Um comando de shell que carrega domínios permitidos por comando também é roteado para o classificador mesmo quando uma regra de permitir corresponde, porque uma regra aprova o comando, não seus hosts
- Regras de solicitação que correspondem ao conteúdo de um comando, como
Bash(git push *), recorrem a um prompt de permissão- Uma escrita que a verificação de symlink resolve para um caminho protegido pede sua confirmação quando o caminho que Claude solicitou não é em si protegido
- Uma leitura de um caminho de rede pede sua confirmação mesmo quando uma regra de permitir corresponde
- Ações somente leitura e edições de arquivo em seu diretório de trabalho são aprovadas automaticamente, exceto escritas em caminhos protegidos e a primeira leitura fora dos diretórios de trabalho, que pede sua confirmação
- Em uma sessão com revisão do classificador no servidor, comandos de shell somente leitura e em sandbox esperam por essa revisão e são bloqueados se ela os sinalizar
- Uma escrita dentro de seu diretório de trabalho que a verificação de symlink resolve para um local fora dele pede sua confirmação
- Quando Claude lê um artefato que outra pessoa criou, os casos de aprovação listados nessa seção se aplicam
- Uma leitura de um caminho de rede pede sua confirmação
- Todo o resto vai para o classificador, exceto remoções de caminho crítico sob seu tratamento padrão. As ferramentas de conector e as ferramentas MCP com
requiresUserInteractionque pedem sua confirmação diretamente na etapa 1 também nunca chegam ao classificador, então nem uma aprovação exigida pela organização nem uma etapa de consentimento é aprovada automaticamente- Se o classificador bloquear, Claude recebe o motivo. Na maioria das sessões, o motivo nomeia a regra que o classificador identificou, como
[Data Exfiltration], em vez de dar uma explicação escrita; consulte Revisar negaçõesUm mod que você instala e que trata
tool.checktambém pode aprovar uma ação. Para os casos em que a aprovação dele não passa por suas regras e hooks, consulte Estender permissões com hooks.Para saber como as ações de navegador do Claude in Chrome são aprovadas na extensão VS Code, consulte Prompts de permissão em sessões VS Code.
Ao entrar no modo auto, regras de permitir amplas que concedem execução de código arbitrário são descartadas:
Bash(*)ouPowerShell(*)irrestritos- Intérpretes com wildcard como
Bash(python*)- Comandos de execução do gerenciador de pacotes
- Regras de permitir
Agent- Regras de permitir
Monitor, porque Claude Code executa comandos Monitor através do shellRegras específicas como
Bash(npm test)permanecem em vigor. Claude Code restaura as regras descartadas quando você sai do modo auto. Antes da v2.1.236, Claude Code mantinha regras de permitirMonitorem vigor no modo auto, então uma regra que correspondesse à ferramenta inteira aprovava comandos Monitor sem revisão do classificador.Claude Code também executa
git statuspor conta própria antes de um comando que descartaria trabalho sem commit, comogit reset --hardourm -rf, e mostra ao classificador se há trabalho no stage, modificado ou não rastreado. Claude Code relata arquivos não rastreados nessa verificação mesmo quando a configuração git do repositório definestatus.showUntrackedFiles=no.Nas requisições do classificador enviadas pelo próprio Claude Code, o classificador vê mensagens do usuário, chamadas de ferramenta diferentes de consultas somente leitura como leituras de arquivo e buscas, e seu conteúdo de CLAUDE.md. Resultados de ferramenta são removidos dessas requisições, então conteúdo hostil em um arquivo ou página da web não consegue manipular o classificador diretamente.
Você pode anotar o resultado de uma chamada com o campo
classifierContextde um hook PostToolUse, que o classificador lê como contexto fornecido pela aplicação. O campo requer Claude Code v2.1.236 ou posterior.Uma sonda separada no servidor examina resultados de ferramenta recebidos e sinaliza conteúdo suspeito antes que Claude o leia. Para saber mais sobre como essas camadas funcionam juntas, consulte o anúncio do modo auto e o aprofundamento de engenharia.
[accordion] Como o modo auto lida com subagentes
O classificador verifica o trabalho de subagentes em três pontos:
- Antes de um subagente iniciar, a descrição da tarefa delegada é avaliada, então uma tarefa que parece perigosa é bloqueada no momento da criação.
- Enquanto o subagente executa, cada uma de suas ações passa pela mesma ordem de decisão que na sessão pai, com as mesmas regras de bloqueio e permissão. Qualquer
permissionModeno frontmatter do subagente é ignorado.- Quando o subagente termina, o classificador revisa seu trabalho e seu relatório final antes que o pai leia o relatório. Quando o classificador sinaliza o trabalho ou o relatório do subagente, ou uma verificação de segurança de API separada recusa a revisão, o relatório ainda é entregue, precedido por um aviso de segurança. Quando o classificador não está disponível para a revisão, o relatório chega com uma nota para verificar o trabalho do subagente antes de agir com base nele.
[accordion] Custo e latência
As requisições do classificador de Claude Code podem executar em um modelo diferente da sua seleção de
/model. Consulte em qual modelo elas executam.Em planos Enterprise e em contas que usam a API Claude, Claude Platform on AWS, Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de tokens. Cada verificação envia uma parte da transcrição mais a ação pendente, adicionando uma ida e volta antes da execução. Leituras e edições no diretório de trabalho fora de caminhos protegidos pulam o classificador, então a sobrecarga vem principalmente de comandos de shell e operações de rede. Onde o servidor revisa as ações como parte das requisições ao modelo da sessão, não há chamadas separadas do classificador a contar; consulte Revisão do classificador no servidor.
Acesso à rede em sandbox não adiciona requisições do classificador por conexão. O classificador julga os hosts que um comando nomeia junto com o comando em uma única revisão, e Claude Code verifica cada conexão em relação à lista aprovada sem chamar o classificador novamente.
Permitir apenas ferramentas pré-aprovadas com modo dontAsk
Se você definir o modo dontAsk, Claude Code nega automaticamente toda chamada de ferramenta que de outra forma solicitaria você, embora um mod que você instalou ainda possa aprovar algumas dessas chamadas. Para verificar quais chamadas um mod pode aprovar, veja Estender permissões com hooks.
Claude ainda executa ações que não precisam de aprovação no modo Manual, como leituras de arquivo dentro de seus diretórios de trabalho e comandos Bash somente leitura. Ações que correspondem às suas regras permissions.allow e chamadas aprovadas por um hook PreToolUse também são executadas. Use este modo para pipelines de CI ou ambientes restritos onde você pré-define o que Claude pode fazer; a sessão nunca aguarda entrada. A barra de status mostra ⏵⏵ don't ask on neste modo.
Claude Code nega chamadas que correspondem às suas regras ask explícitas em vez de solicitar. Também nega a ferramenta integrada AskUserQuestion mesmo que suas regras de permissão correspondam a ela, e faz o mesmo para ferramentas de conector que sua organização definiu como ask em sessões onde essa configuração chega a Claude Code. Nega ferramentas MCP marcadas _meta["anthropic/requiresUserInteraction"] da mesma forma, porque seu cartão de aprovação precisa de uma resposta que este modo nunca coleta.
Uma regra de permissão ou um hook PreToolUse não pode aprovar estes:
- Remoções
rmermdirreconhecidas de caminhos críticos, comorm -rf /erm -rf ~ - Leituras de um caminho de rede
Sessões em nuvem em Claude Code na web ignoram defaultMode: "dontAsk"; veja bypassPermissions para detalhes.
Defina-o na inicialização com a flag:
claude --permission-mode dontAsk
Ignorar todas as verificações com modo bypassPermissions
O modo bypassPermissions desativa prompts de permissão e verificações de segurança para que chamadas de ferramentas sejam executadas imediatamente, incluindo gravações em caminhos protegidos.
Mesmo no modo bypassPermissions, cada uma das ações que nenhum modo auto-aprova recebe um prompt ou uma negação, embora você possa desativar o prompt para comandos rm perigosos. Ler o artefato público de outra organização requer sua aprovação, e este modo não a solicita, então Claude não consegue ler um. As Remove-Item no PowerShell negações também se aplicam neste modo.
Duas salvaguardas de mensagens entre sessões ainda se aplicam neste modo, e em sessões de modo plan interativas onde permissões de bypass estão disponíveis:
- O prompt de aprovação
isolatePeerMachinespara mensagens para suas sessões além desta máquina ainda aparece. - Quando nenhum valor
crossSessionInboundse aplica, Claude Code mantém uma mensagem de entrada de outra de suas sessões para sua aprovação, e entrega sem perguntar apenas quando a sessão de envio se identifica como também ignorando prompts de permissão. Se você deixar o modo de permissão enquanto mensagens são mantidas, Claude Code re-aplica as regras de entrada e entrega qualquer mensagem mantida que elas agora aceitam.
Em sessões de terminal interativas com permissões de bypass disponíveis, Claude Code também não impõe os bloqueios do modo de planejamento. Claude ainda é instruído a planejar sem editar, mas uma edição de arquivo ou comando shell que ele tenta durante o planejamento é executado sem solicitar. Regras de solicitação explícitas e remoções de caminhos críticos reconhecidas via rm e rmdir ainda solicitam.
O modo plan mantém seus bloqueios em qualquer lugar onde Claude Code é executado sem um terminal interativo, incluindo execuções não-interativas com -p, sessões do Agent SDK, e conversas no painel de chat da extensão VS Code. Lá, --allow-dangerously-skip-permissions torna bypassPermissions selecionável depois.
[!WARNING]
Use este modo apenas em ambientes isolados como contêineres, VMs ou dev containers sem acesso à internet, onde Claude Code não consegue danificar seu sistema host.
Você não consegue entrar em bypassPermissions a partir de uma sessão que você iniciou sem ele habilitado. Habilite-o na inicialização com permissions.defaultMode: "bypassPermissions" ou com uma flag de habilitação:
claude --permission-mode bypassPermissions
A flag --dangerously-skip-permissions é equivalente.
Claude Code recusa bypassPermissions em uma sessão que você inicia com --restricted. --restricted requer Claude Code v2.1.248 ou posterior.
A primeira vez que você inicia uma sessão interativa com este modo habilitado, Claude Code mostra um diálogo de aviso pedindo que você aceite responsabilidade pelas ações tomadas sem verificações de permissão:
- Se você aceitar: Claude Code define
skipDangerousModePermissionPromptcomotrueem~/.claude/settings.json, para que sessões posteriores ignorem o diálogo. Para ver o diálogo novamente, remova a chave desse arquivo ou defina-a comofalse. A referênciaskipDangerousModePermissionPromptlista os outros arquivos de configurações onde você ou sua organização podem defini-la. - Se você recusar: Claude Code sai.
Em modo não interativo nenhum diálogo é mostrado.
Uma sessão em segundo plano respeita sua aceitação quando ela está registrada nas configurações de usuário ou nas configurações gerenciadas:
-
Sem aceitação registrada,
claude --bg --permission-mode bypassPermissionsé recusado. Aceite o diálogo em uma sessão interativa primeiro. -
Com
skipDangerousModePermissionPromptdefinido apenas em.claude/settings.local.json, a sessão em segundo plano inicia com a requisição de bypass ignorada:- Com
--allow-dangerously-skip-permissionsignorada,bypassPermissionsfica de fora do seu ciclo deShift+Tab. - Com
--permission-mode bypassPermissionsou--dangerously-skip-permissionsignorada, a sessão inicia no modo Manual em vez disso.
Adicione
"skipDangerousModePermissionPrompt": truea~/.claude/settings.jsone, em seguida, inicie uma nova sessão em segundo plano. - Com
Em Linux e macOS, Claude Code recusa iniciar no modo bypassPermissions quando executado como root ou sob sudo:
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons
A verificação é ignorada automaticamente dentro de um sandbox reconhecido. Para executar autonomamente em um contêiner, use a configuração dev container, que executa Claude Code como um usuário não-root.
Sessões em nuvem não honram defaultMode: "bypassPermissions" ou "dontAsk" de seus arquivos de configurações, então as configurações verificadas de um repositório não conseguem iniciar uma sessão em nuvem no modo bypass-permissions. A configuração é ignorada silenciosamente e a sessão inicia no modo de permissão mostrado no dropdown de modo em vez disso. Veja Alternar modos de permissão para quais modos as sessões em nuvem oferecem.
[!WARNING]
bypassPermissionsnão oferece proteção contra injeção de prompt ou ações não intencionais. Para verificações de segurança em segundo plano com muito menos prompts de permissão, use modo automático em vez disso. Administradores podem bloquear este modo definindopermissions.disableBypassPermissionsModecomo"disable"em configurações gerenciadas.
Permissões de bypass ignoradas em uma sessão em segundo plano
Este aviso significa que a sessão em segundo plano não encontrou sua aceitação do aviso de permissões de bypass nas configurações de usuário ou nas configurações gerenciadas, então ela ignorou a requisição de bypass feita na inicialização:
Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true
Adicione "skipDangerousModePermissionPrompt": true a ~/.claude/settings.json e, em seguida, inicie uma nova sessão em segundo plano.
claude agents mostra o aviso de permissões de bypass que as sessões interativas ignoram
Se claude agents mostrar o aviso de permissões de bypass embora suas sessões interativas o ignorem, verifique se skipDangerousModePermissionPrompt está definido em .claude/settings.local.json ou em um arquivo --settings. As sessões interativas consideram a chave ali como sua aceitação do aviso, e claude agents não. Encontrando-a ali ou não, aceite o aviso para adicionar a chave a ~/.claude/settings.json, onde claude agents a procura.
Caminhos protegidos
Gravações em um pequeno conjunto de caminhos nunca são auto-aprovadas, exceto no modo bypassPermissions e em sessões de terminal interativo em modo plan com permissões de bypass disponíveis. Isso evita corrupção acidental do estado do repositório e da configuração própria do Claude.
| Modo | Gravações em caminhos protegidos |
|---|---|
default, acceptEdits |
Solicitado |
plan |
Permitido em sessões de terminal interativo com permissões de bypass disponíveis. Caso contrário, roteado para o classificador quando modo automático está disponível durante o planejamento, e solicitado quando não está |
auto |
Roteado para o classificador |
dontAsk |
Negado |
bypassPermissions |
Permitido |
Em uma sessão iniciada com --restricted, que requer Claude Code v2.1.248 ou posterior, o classificador não consegue aprovar gravações em caminhos protegidos.
Enquanto permissions.blockWritesOutsideWorkingDirectories estiver ativado, Claude Code recusa gravações de Write, Edit e NotebookEdit em arquivos de configurações em todos os modos de permissão.
Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação que a verificação de symlink resolve para um caminho protegido solicita você em vez disso quando o caminho que Claude solicitou não é em si protegido.
Regras permissions.allow em arquivos de configurações não pré-aprovam gravações em caminhos protegidos. A verificação de segurança é executada antes de Claude Code avaliar regras de permissão de arquivos de configurações, então uma entrada como Edit(.claude/**) em ~/.claude/settings.json ou .claude/settings.json não altera o resultado por modo na tabela acima. Em modos que solicitam, o prompt para uma gravação na pasta .claude/ do projeto ou em ~/.claude/ pode oferecer uma destas opções com escopo de sessão:
- Para a pasta
.claude/do projeto: Sim, e permitir que Claude edite arquivos na pasta .claude deste projeto para esta sessão - Para
~/.claude/: Sim, e permitir que Claude edite arquivos em sua pasta ~/.claude para esta sessão
Diretórios protegidos:
.git.config/git.vscode.idea.husky.cargo.devcontainer.yarn.mvn.claude, com algumas exceções, como:- Os próprios git worktrees do Claude em
.claude/worktrees/ - Os próprios arquivos de plano da sessão atual em
~/.claude/plans/, ou noplansDirectoryque você definir - O próprio diretório de rascunho de uma sessão em segundo plano em
~/.claude/jobs/<id>/tmp/ - Arquivos markdown no diretório de memória automática do projeto, como
~/.claude/projects/<project>/memory/, em uma sessão iniciada sem--restricted - Arquivos markdown em um diretório de memória de subagente, como
.claude/agent-memory/, em uma sessão iniciada sem--restricted
- Os próprios git worktrees do Claude em
- Um diretório que você carregou com
--plugin-dir, porque Claude Code recarrega e executa o código de um mod a partir dele quando um arquivo muda ~/.claude/dev-mods/, oudev-mods/no diretório para o qualCLAUDE_CONFIG_DIRaponta, onde Claude salva os mods que ele escreve para você
Arquivos protegidos:
.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.yamlgradle-wrapper.properties,maven-wrapper.properties.devcontainer.json.ripgreprc,pyrightconfig.json.mcp.json,.claude.jsonremote-settings.json, a cópia armazenada das configurações gerenciadas pelo servidor da sua organização, e os arquivos de assinatura, sincronização e consentimento que Claude Code mantém junto com ela, em~/.claudeou no diretório para o qualCLAUDE_CONFIG_DIRaponta- Um arquivo que você passou para
--settings,--mcp-configou--agentsao iniciar a sessão - O arquivo para o qual seu arquivo de configurações de usuário, de projeto ou local aponta quando o próprio arquivo de configurações é um link simbólico, por exemplo, para um repositório de dotfiles. Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação nesse arquivo solicita você em vez disso, mesmo quando uma regra de permissão corresponde. Se o caminho do próprio arquivo também for o de um arquivo de configurações, como
.claude/settings.jsonem outra pasta, a gravação vai para o classificador como as demais gravações em caminhos protegidos
Caminhos críticos
Os caminhos críticos são os diretórios que Claude Code protege dos comandos rm e rmdir, como a raiz do sistema de arquivos, seu diretório home e seu diretório de trabalho. Claude Code verifica esses comandos antes que sejam executados, e nenhuma regra de permissão aprova um comando cujo alvo ele reconhece como um caminho crítico. A verificação pode deixar passar alguns comandos, então ela não substitui um controle do sistema operacional como o sandboxing.
Uma remoção de caminho crítico é um comando rm ou rmdir cujo alvo Claude Code reconhece como um caminho crítico. Nenhum hook PreToolUse que retorna "allow" aprova uma remoção desse tipo. Uma regra de permissão ou um hook PreToolUse não pode aprová-la nem mesmo nos modos de permissão que pulam outros prompts.
[!WARNING]
Um comando que a verificação deixa passar não recebe nenhum tratamento especial, então qualquer coisa que aprove comandos Bash na sua sessão pode aprová-lo sem prompt. Isso inclui uma regra de permissão, o modo
bypassPermissionse o modo de permissão automática do sandbox. A verificação se aplica armermdir, então outros comandos aprovados também podem excluir caminhos críticos.
Estes controles se aplicam independentemente de a verificação reconhecer ou não um comando:
- Regras de negação: uma regra de negação que corresponde ao comando o bloqueia, embora um mod que você instalou ainda possa aprovar algumas dessas chamadas
- Sandboxing: o sandboxing faz com que o sistema operacional limite em quais caminhos os comandos Bash podem gravar. Comandos em sandbox ainda podem excluir seu diretório de trabalho
- Modo de sandbox estrito: por padrão, um comando em sandbox pode ser executado novamente fora do sandbox, e uma regra de permissão ou o modo
bypassPermissionspode aprovar essa nova tentativa sem prompt. O modo de sandbox estrito desativa essa nova tentativa
O que acontece com uma remoção que Claude Code reconhece depende do seu modo de permissão. Remove-Item e os built-ins de remoção cmd têm suas próprias verificações, cobertas em Remove-Item em PowerShell.
Quais caminhos são críticos
Claude Code trata um alvo rm ou rmdir como um caminho crítico quando é qualquer um dos seguintes:
- A raiz do sistema de arquivos
- Diretórios de nível superior, significando qualquer filho direto da raiz, como
/usr,/etcou/data - Seu diretório home. No Windows, seu nome curto 8.3 também conta, como
C:\Users\LONGNA~1 - Raízes de unidade do Windows e seus diretórios de nível superior, como
C:\eC:\Windows. Grafias como\\?\C:\e\\localhost\C$contam comoC:\ - Seu diretório de trabalho e seus pais
- Seus diretórios de trabalho adicionais e seus pais, mas apenas quando a remoção é um glob sob um deles, como
rm -rf <dir>/*.rm -rf <dir>no próprio diretório não dispara essa verificação
Para caminhos de unidades montadas como /mnt/c ou /Volumes/USB, consulte O prompt de unidade montada.
As verificações do nome curto 8.3 do diretório home e das grafias \\?\C:\ e \\localhost\C$ requerem Claude Code v2.1.292 ou posterior.
Outros alvos que contam como caminhos críticos
Claude Code também trata os seguintes alvos rm e rmdir como caminhos críticos. A última coluna diz por que cada um conta.
| Alvo | Exemplo | Por que conta |
|---|---|---|
| Um glob ou barra à direita diretamente sob uma variável de shell | rm -rf "$DIR"/* |
O comando se torna uma remoção da raiz do sistema de arquivos quando a variável está vazia |
A mesma forma sob um parâmetro posicional como $1 ou $@, quando nada no comando lhe dá um valor |
rm -rf "$1"/* |
O comando se expande para uma remoção da raiz |
Uma variável de shell seguida por um nome de diretório de nível superior comum, como mnt, tmp, usr ou Users |
rm -rf "$TMPDIR/mnt" |
Quando a variável se expande vazia, o comando remove /mnt |
Uma variável que o mesmo comando atribui de uma substituição de impressão de diretório, como $(pwd) ou $(git rev-parse --show-toplevel) |
D=$(pwd); rm -rf "$D" |
O valor pode nomear seu diretório de trabalho ou raiz do repositório |
Um alvo que é apenas a saída de uma substituição de comando, quando o rm é recursivo |
rm -rf "$(pwd)" |
Claude Code não pode verificar o alvo antes do comando ser executado |
| Uma substituição de comando à direita após um caminho crítico | rm -rf ~/$(cmd) |
Claude Code verifica o caminho que permaneceria se a substituição se expandisse vazia, aqui seu diretório home |
| Um alvo que é apenas barras invertidas | rm -rf "\\" |
Git Bash no Windows lê uma barra invertida solitária como a raiz da unidade atual, então a verificação se aplica em todas as plataformas |
| Um caminho do Windows que nomeia um volume por GUID em vez de uma letra de unidade | rm -rf '\\?\Volume{GUID}\work\build' |
O caminho não diz em qual unidade está, então pode ser um caminho crítico. Requer Claude Code v2.1.292 ou posterior |
Alguns alvos que terminam em /* ou /*/ |
rm -rf logs/*/*, rm -rf logs/*/, cd logs && rm -rf a/* |
Claude Code não consegue determinar, antes do comando ser executado, quais diretórios eles alcançam |
Para desativar a verificação em um alvo que é apenas saída de substituição de comando, defina CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1 no ambiente que inicia Claude Code.
Remoções dentro de comandos aninhados e scripts inline
Claude Code também procura dentro dessas construções:
- Comandos aninhados: uma subshell com
(...), um grupo de chaves com{ ...; }, substituição de comando com$(...)ou backticks, ou substituição de processo com<(...). Claude Code encontra uma remoção de caminho crítico independentemente de estar dentro da forma aninhada, como em(rm -rf ~)ouecho "$(rm -rf ~)", ou em outro lugar no mesmo comando. - Scripts inline: um script passado para
sh,bash,zshou um shell POSIX semelhante com-c, como embash -c 'rm -rf ~'.- Quando o script está entre aspas duplas, o shell invocador expande suas variáveis antes que o shell interno receba o script. Em
find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;, o comando se expande para uma remoção da raiz do sistema de arquivos uma vez por correspondência, e Claude Code a trata como uma remoção de caminho crítico. - Um script entre aspas simples que vincula
$1a um valor real, comosh -c 'rm -rf "$1"/*' _ {}faz, não é sinalizado.
- Quando o script está entre aspas duplas, o shell invocador expande suas variáveis antes que o shell interno receba o script. Em
Para desativar a verificação em um caminho crítico digitado diretamente em um script -c, como ~, defina CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT=1 no ambiente que inicia Claude Code.
Reescrever um comando sinalizado
Como reescrever um comando para que passe na verificação depende de qual dos outros alvos ele usa:
- Um glob ou barra à direita sob uma variável como
$DIR: proteja cada expansão para que o shell pare com um erro quando a variável não estiver definida ou vazia, como emrm -rf "${DIR:?}"/*, ou use um caminho literal. Uma remoção cujas expansões estão todas protegidas dessa forma passa nessa verificação, então em modobypassPermissionsela é executada sem um prompt, a menos que outra verificação de caminho crítico a sinalize. - Um glob ou barra à direita sob uma variável que normalmente está definida, como
$HOME: use um caminho literal. - Uma variável atribuída de uma substituição de impressão de diretório: use um caminho literal. Uma proteção
"${D:?}"não limpa essa verificação, porque a variável não está vazia. - Um alvo que é apenas saída de substituição de comando: execute a substituição por conta própria primeiro, depois remova os caminhos literais que ela imprime. O prompt diz a Claude para fazer o mesmo.
Para um glob ou barra à direita sob uma variável, o prompt nomeia o rm sinalizado e diz como reescrevê-lo para que a verificação passe.
O prompt Dangerous rm operation not ruled out
O motivo completo diz:
Dangerous rm operation not ruled out — the shell may read this command differently than it was parsed
Esse motivo significa que o shell pode ler o comando de forma diferente de como Claude Code o leu, então uma remoção pode estar em uma parte não verificada, mesmo sem nenhum rm presente. Em modo auto ou bypassPermissions, uma negação com esta frase vem da mesma verificação:
This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.
Você recebe o prompt ou a negação que uma remoção de caminho crítico recebe no seu modo de permissão, incluindo bypassPermissions, embora você possa desativar esse prompt no modo bypassPermissions. Você não pode aprovar o comando com uma regra de permissão Bash ou Bash(*), com o modo de permissão automática do sandbox ou com um hook PreToolUse que retorna "allow". Leia o comando e, em seguida, aprove o prompt ou, após uma negação, execute-o no seu shell.
O prompt de unidade montada
O prompt de unidade montada aparece no macOS, Linux e WSL quando um rm recursivo tem como alvo um caminho de unidade montada listado, como /mnt/c ou /Volumes/USB/build. Seu motivo diz Dangerous rm operation on mounted drive path: <path>. Um alvo /* recebe o prompt sem a flag recursiva, já que Claude Code lê rm /Volumes/USB/build/* como uma remoção de /Volumes/USB/build.
Mesmo com uma regra de permissão para rm, Claude Code trata o comando como uma remoção de caminho crítico: um prompt ou uma negação dependendo do seu modo de permissão. Aprove o prompt para deixar o rm ser executado, ou desative o prompt.
Caminhos que recebem o prompt de unidade montada
Compare o alvo da sua remoção rm recursiva ou /* com estes formatos de caminho, em que cada espaço reservado como <drive> ou <name> representa exatamente um segmento de caminho:
| Sob | Formatos de caminho que recebem o prompt | Exemplos |
|---|---|---|
/Volumes |
/Volumes/<drive>, /Volumes/<drive>/<name> |
/Volumes/USB, /Volumes/USB/build |
/System/Volumes |
/System/Volumes, /System/Volumes/<volume>, /System/Volumes/<volume>/<name> |
/System/Volumes/Data |
/media |
/media/<user>, /media/<user>/<drive>, /media/<user>/<drive>/<name> |
/media/alex |
/run/media |
/run/media, /run/media/<user>, /run/media/<user>/<drive>, /run/media/<user>/<drive>/<name> |
/run/media/alex/USB/build |
/mnt |
/mnt/<name>, e /mnt/<letter>/<name> sob uma montagem de uma letra como /mnt/c do WSL |
/mnt/data, /mnt/c/Users |
Para um rm recursivo ou não recursivo no próprio /Volumes, /media ou /mnt, você vê em vez disso o motivo de caminho crítico Dangerous rm operation on critical path: <path>.
Um alvo relativo conta a partir do seu diretório de trabalho, então rm -rf build enquanto você trabalha em /Volumes/USB tem como alvo /Volumes/USB/build e recebe o prompt.
Desativar o prompt de unidade montada
Para deixar de receber o prompt de unidade montada enquanto os prompts de outras causas permanecem, inicie Claude Code com CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1 em seu ambiente. Por exemplo, defina a variável no seu shell e inicie claude a partir dele:
export CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT=1
claude
Em uma sessão iniciada dessa forma, o prompt de unidade montada deixa de aparecer para uma unidade inteira como /Volumes/USB e para os outros caminhos listados. Se você permitir Bash(rm *), usar o modo Manual e trabalhar em /Volumes/USB, então rm -rf build é executado sem prompt.
Um prompt que ainda mostra Dangerous rm operation on mounted drive path significa que a variável não está chegando à sessão:
- Variável em um arquivo de configurações: Claude Code ignora a variável no bloco
envde um arquivo de configurações, qualquer que seja o tipo de arquivo de configurações, então defina a variável onde você iniciaclaude - Sessão iniciada sem a variável: inicie
claudenovamente a partir de um ambiente em que a variável esteja definida, já que uma sessão em execução não a captura
Remoções que ainda solicitam confirmação com o prompt de unidade montada desativado
No modo Manual com uma regra de permissão para rm, um rm em um caminho de unidade montada ainda pode gerar um prompt, sem o motivo Dangerous rm operation on mounted drive path:
- Alvo fora dos seus diretórios de trabalho:
rm -rf /Volumes/USB/otherenquanto você trabalha em/Volumes/USB/projectrecebe um prompt. Para interromper esse prompt, adicione um diretório que contenha o alvo à sessão - Alvo com um
*:rm -rf build/*recebe um prompt. Aprove esse prompt para executar o comando, ou peça a Claude para nomear cada alvo sem um* - Alvo que é um caminho crítico: o próprio
/mnte o próprio diretório de trabalho continuam sendo caminhos críticos, entãorm -rfem qualquer um deles recebe um prompt. Aprove esse prompt para deixar ormser executado
Remoções de caminho crítico em cada modo de permissão
O que Claude Code faz com uma remoção de caminho crítico depende do seu modo de permissão:
| Modo | Resultado |
|---|---|
default, acceptEdits |
Pede que você o aprove |
plan |
Pede que você o aprove. Quando o classificador revisa comandos durante o planejamento e nenhuma permissão de bypass está disponível, trata como em modo auto |
auto |
Pede que você o aprove no terminal, com um limite de tempo. Em outro lugar, nega-o |
dontAsk |
Nega-o |
bypassPermissions |
No terminal, pede que você o aprove antes que um limite de tempo se esgote. Em outros lugares, consulte o que acontece em cada lugar |
Se uma regra de solicitação explícita corresponder ao comando, Claude Code o solicita em vez disso, mesmo em modo auto e sem um limite de tempo. Em modos que solicitam, um hook PermissionRequest pode responder ao prompt.
Para executar essas remoções sem prompt no modo bypassPermissions, consulte Desativar o prompt de remoção de caminho crítico.
Limites de tempo e negações em modos auto e bypassPermissions
Em modos auto e bypassPermissions, o prompt do terminal para uma remoção de caminho crítico mostra uma contagem regressiva de dois minutos:
- Se a contagem regressiva terminar antes de você responder, Claude Code nega o comando e diz a Claude o que fazer em vez disso, para que uma sessão desatendida continue funcionando.
- Pressione qualquer tecla enquanto o prompt está aberto para parar a contagem regressiva e manter o prompt aguardando sua resposta.
- Após três desses prompts expirarem sem resposta em uma sessão, Claude Code para de mostrá-los e nega remoções de caminho crítico adicionais imediatamente. Enviar uma nova mensagem reinicia a contagem.
O limite de tempo se aplica no Claude Code v2.1.281 e posterior, assim como a negação do modo auto fora do terminal.
Longe do terminal, você não recebe esse prompt:
| Onde | auto |
bypassPermissions |
|---|---|---|
| Painel de chat da extensão VS Code | Nega-o | Nega-o, a menos que um hook PermissionRequest o permita |
| Aplicativo Desktop | Nega-o | Nega-o, a menos que um hook PermissionRequest o permita |
Execução com -p ou sessão do Agent SDK |
Nega-o | Sua --permission-prompt-tool ou seu callback canUseTool decide. Sem nenhum dos dois, ou com --permission-prompts none, nega-o, a menos que um hook PermissionRequest o permita. Para executar essas remoções sem prompt em vez disso, consulte Desativar o prompt de remoção de caminho crítico |
Onde quer que a remoção seja negada, você pode ler o comando inteiro e executá-lo no seu shell.
Para mudar o que você recebe em cada modo, defina CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT como 1:
bypassPermissions: o prompt do terminal não tem limite de tempo, e o painel de chat do VS Code pergunta a vocêauto: o classificador decide, no terminal, no painel de chat do VS Code, em execuções com-pe em sessões do Agent SDK
Defina-a no ambiente que inicia Claude Code, como seu shell ou a opção env do SDK, e não em um arquivo de configurações do Claude Code. Para o painel de chat, adicione-a a claudeCode.environmentVariables no settings.json de usuário do próprio VS Code e, em seguida, inicie uma nova conversa:
{
"claudeCode.environmentVariables": [
{ "name": "CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT", "value": "1" }
]
}
Desativar o prompt de remoção de caminho crítico no modo bypassPermissions
Para executar comandos Bash rm e rmdir que têm como alvo caminhos críticos sem prompt no modo bypassPermissions, inicie Claude Code com CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1 em seu ambiente. Isso requer Claude Code v2.1.311 ou posterior. Claude Code lê a variável apenas do ambiente de inicialização e a ignora no bloco env de um arquivo de configurações. Por exemplo, defina-a no seu shell e inicie claude a partir dele:
[tab] macOS, Linux, WSL
export CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1 claude --permission-mode bypassPermissions
[tab] Windows PowerShell
$env:CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS = "1" claude --permission-mode bypassPermissions
[tab] Windows CMD
set CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1 claude --permission-mode bypassPermissions
[!WARNING]
Com esta variável definida, você perde um prompt de segurança para exclusões destrutivas: um comando como
rm -rf ~pode ser executado sem perguntar a você. Defina-a apenas em um ambiente isolado cujo conteúdo você possa se dar ao luxo de perder.
As remoções são executadas sem prompt apenas no próprio modo bypassPermissions, não no modo de planejamento, e apenas para o que a verificação de caminho crítico sinaliza nas ferramentas Bash e Monitor. Isso inclui comandos que Claude Code não consegue analisar completamente, que também são executados sem prompt.
Avisos de inicialização sobre o prompt de remoção de caminho crítico
Para verificar se CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS está funcionando, leia a linha que Claude Code imprime na inicialização. Em uma execução com -p, ela aparece no stderr. Em um aplicativo do Agent SDK, passe a opção stderr para lê-la. A linha diz uma destas coisas:
is set, so dangerous rm commands can run without a prompt: as remoções podem ser executadas sem prompt depois que as configurações gerenciadas e os hooks de plugins forem carregados. Se as remoções continuarem recebendo um prompt ou uma negação, consulte Por que o prompt de remoção de caminho crítico permanece ativohas no effect in this session: as remoções mantêm seu prompt ou negação habitual durante toda a sessão. Para mudar isso, encontre seu caso em Por que o prompt de remoção de caminho crítico permanece ativohas no effect while the Windows registry cannot be read for managed settings: as remoções mantêm seu prompt ou negação habitual, e a variável entra em vigor sem reinicialização se uma leitura posterior do registro for bem-sucedida. Se as remoções continuarem recebendo um prompt ou uma negação, consulte Por que o prompt de remoção de caminho crítico permanece ativo
A ausência da linha não significa que o prompt está ativo: um aplicativo do Agent SDK sem a opção stderr não vê nenhuma linha, e as remoções ainda podem ser executadas sem prompt. Caso contrário, verifique se você definiu a variável no ambiente de inicialização, se a sessão pode entrar no modo bypassPermissions e se claude não está dentro de outra sessão. Algumas sessões iniciam sem a variável.
Se você vir uma dessas linhas e não tiver definido a variável, encontre onde ela está definida, como no perfil do seu shell, e remova-a.
Por que o prompt de remoção de caminho crítico permanece ativo
Se CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS não tiver efeito e as remoções mantiverem seu prompt ou negação habitual, verifique causas como estas:
- Outra coisa trata os prompts de permissão: uma
--permission-prompt-toolou um callbackcanUseTooldo Agent SDK sem--permission-prompts none, um hookPermissionRequestcom qualquer matcher, ou um mod que trata esse evento. Remova o hook, o mod, a ferramenta ou o callback e reinicieclaude - O painel de chat da extensão VS Code ou o aplicativo Desktop executa a sessão: inicie
claudeem um terminal, como o terminal integrado de um IDE - Uma regra cobre Bash, Edit ou Read: uma regra de negação ou de solicitação que tem como alvo uma dessas ferramentas, na inicialização ou quando Claude Code a lê durante a sessão, mesmo que você a remova depois. Remova a regra e reinicie
claude. Para deixar uma ferramenta de fora, use--toolsem vez de uma regra de negação permissions.blockReadsOutsideWorkingDirectoriesestá ativada: remova a configuração de todos os arquivos de configurações que a definem comotruee, em seguida, reinicieclaudeclaudeé executado dentro de outra sessão: umclaudeiniciado a partir da ferramenta Bash de uma sessão ou de um hook, mesmo com a variável em sua linha de comando. Inicieclaudea partir do seu próprio shell. Não confie nesse limite de sessões aninhadas como uma fronteira de segurança- Um hook
PreToolUserespondeaskpara uma remoção: altere o que o hook retorna - Claude Code inicia a sessão por você: sessões em segundo plano, colegas de uma equipe de agentes em painéis divididos e sessões que um servidor de Remote Control cria iniciam sem a variável. Inicie
claudea partir do seu próprio shell - As configurações gerenciadas não podem ser lidas: Claude Code não conseguiu ler suas fontes de configurações gerenciadas. Se as configurações gerenciadas pelo servidor continuarem falhando ao carregar, consulte Remote managed settings failed to load. Para qualquer outra falha que não seja uma consulta ao registro, peça a quem gerencia essa fonte para corrigi-la
- O registro do Windows não pode ser consultado: no Windows e no WSL, a variável precisa de uma resposta do registro, mesmo quando o WSL não o usa para configurações. A consulta pode falhar durante toda a sessão em um Windows que não está em inglês, no WSL com a interoperabilidade desativada ou em um contêiner em um kernel WSL2. Se a interoperabilidade estiver desativada, ative-a. Caso contrário, execute essas remoções você mesmo
Remove-Item em PowerShell
Quando você habilita a ferramenta PowerShell, Claude Code dá a Remove-Item e aos built-ins cmd rd, rmdir, del e erase suas próprias verificações, separadas da lista de caminhos críticos rm. Para Remove-Item, o resultado depende do alvo, e o primeiro caso correspondente se aplica:
- Caminhos do sistema: a raiz do sistema de arquivos e seus diretórios de nível superior, raízes de unidade e seus diretórios de nível superior, e seu diretório home. Claude Code nega o comando em todos os modos, sem o solicitar.
- Wildcards: um
*nu, ou qualquer alvo terminando em/*ou\*, incluindo um glob sob uma variável de shell como$dir/*. Claude Code nega o comando em todos os modos, sem o solicitar, antes do classificador vê-lo. - Seu diretório de trabalho ou um de seus pais, com
-Recurse: Claude Code trata o comando como qualquer outro que precisa de aprovação em seu modo de permissão, então o solicita em modos que solicitam, envia-o para o classificador em modoautoe o nega em mododontAsk. O modobypassPermissionspula essa verificação.
O caso de caminhos do sistema também se aplica a rd, rmdir, del e erase quando Claude os executa através de cmd, como em cmd /c rd /s /q C:\Users. Por padrão, Claude Code nega tal comando em todos os modos, sem o solicitar. Esta verificação cmd requer Claude Code v2.1.283 ou posterior.
Ao julgar um alvo cmd, Claude Code trata uma variável PowerShell que segue texto literal como vazia. Isso torna cmd /c rd /s /q "C:\$name" uma remoção de C:\, então também é negada. Um wildcard à direita conta como a pasta que esvazia, então cmd /c del /q C:\* é negado e cmd /c del /q dist\* em seu projeto não é.
Para desativar a verificação cmd, defina CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1 no ambiente que inicia Claude Code. Claude Code ignora esta variável no bloco env de um arquivo de configurações. Remove-Item em um caminho do sistema permanece negado de qualquer forma.
Veja também
- Permissões: regras de permissão, solicitação e negação; políticas gerenciadas
- Configurar modo automático: diga ao classificador qual infraestrutura sua organização confia
- Hooks: lógica de permissão personalizada via hooks
PreToolUseePermissionRequest - Segurança: salvaguardas e melhores práticas
- Sandboxing: isolamento de sistema de arquivos e rede para comandos Bash
- Modo não-interativo: execute Claude Code com a flag
-p