autoMode para dizer ao classificador quais repositórios, buckets e domínios sua organização confia, para que ele pare de bloquear operações internas rotineiras.
Modo automático está disponível para todos os usuários em todos os provedores, incluindo a API Anthropic, Claude Platform on AWS, Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e sessões do gateway de aplicativos Claude conectadas. Se Claude Code relatar que o modo automático não está disponível para sua conta, verifique os requisitos completos, que também cobrem os modelos suportados e o controle no nível da organização em planos Team e Enterprise. Nas versões v2.1.158 a v2.1.206, o modo automático no Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e sessões do gateway de aplicativos Claude exigiam a definição de
CLAUDE_CODE_ENABLE_AUTO_MODE=1; v2.1.207 removeu o requisito.autoMode.environment.
Para saber como as sessões acabam em modo automático e o que o classificador bloqueia por padrão, consulte modo automático na página Modos de permissão. Esta página é a referência de configuração.
Esta página cobre como:
- Adicionar um checkpoint humano para pushes e pull requests com
permissions.ask - Escolher onde definir regras em CLAUDE.md, configurações do usuário e configurações gerenciadas
- Definir infraestrutura confiável com
autoMode.environment - Gerar entradas de ambiente com
/auto-mode-setup - Substituir as regras de bloqueio e permissão quando os padrões não se adequam ao seu pipeline
- Editar regras de
/permissionssem abrir um arquivo de configurações - Rotear todos os comandos shell através do classificador com
autoMode.classifyAllShell - Inspecionar sua configuração efetiva com os subcomandos
claude auto-mode - Revisar negações para saber o que adicionar a seguir
Limites comuns
O modo automático permite pushes para qualquer branch do repositório em que você está trabalhando, incluindo a branch padrão, e criação de pull request por padrão. Uma branch não padrão cujo nome a marca como alvo de deploy ou publicação, comoproduction, release ou gh-pages, não é coberta por esse padrão: o classificador julga um push lá em seus próprios termos, incluindo como um deploy de produção. O conteúdo do push ainda é verificado, portanto um force push, um segredo entrando no commit ou uma mudança que enviaria segredos fora do repositório quando CI ou um pipeline de deploy o executa permanece bloqueado.
Antes da v2.1.211, o classificador permitia pushes apenas para sua branch de trabalho, branches que Claude criou e pushes rotineiros para a branch padrão.
Adicionar um checkpoint humano
O mecanismo mais direto épermissions.ask. Regras ask com escopo de conteúdo como as abaixo são avaliadas antes do classificador e sempre forçam um prompt de permissão, mesmo em modo automático, porque uma regra ask explícita é sua intenção declarada de ser solicitado para essa ação. Adicione as regras em suas settings:
git push ou gh pr create. Um push que Claude escreve de outra forma, como git -C <dir> push ou git -c <key>=<value> push, não corresponde à regra, portanto não é checkpointed. Para um checkpoint que inspeciona o texto completo do comando, adicione um hook PreToolUse.
Escolha o mecanismo que corresponde ao quão firme o limite precisa ser:
Onde o classificador lê a configuração
O classificador lê o mesmo conteúdo CLAUDE.md que o próprio Claude carrega, portanto uma instrução como “nunca force push” no CLAUDE.md do seu projeto orienta tanto Claude quanto o classificador ao mesmo tempo. Comece lá para convenções de projeto e regras de comportamento. Para regras que se aplicam em todos os projetos, como infraestrutura confiável ou regras de negação em toda a organização, use o bloco de configuraçõesautoMode. O classificador lê autoMode dos seguintes escopos:
O classificador não lê
autoMode das configurações do projeto em .claude/settings.json ou .claude/settings.local.json. Ambos os arquivos residem no diretório do repositório, portanto um repositório verificado ou uma etapa de compilação poderia injetar suas próprias regras de permissão. Antes da v2.1.207, o classificador também lia .claude/settings.local.json; mova qualquer bloco autoMode nesse arquivo para ~/.claude/settings.json. Excluir .claude/settings.local.json também fecha o caso em que um repositório confirma o arquivo ou uma ferramenta local ou etapa de compilação o escreve.
As entradas de cada escopo são combinadas. Um desenvolvedor pode estender environment, allow, soft_deny e hard_deny com entradas pessoais, mas não pode remover entradas que as configurações gerenciadas fornecem. Como as regras de permissão atuam como exceções às regras de bloqueio suave dentro do classificador, uma entrada allow adicionada pelo desenvolvedor pode substituir uma entrada soft_deny da organização: a combinação é aditiva, não um limite de política rígida.
O classificador é um segundo portão que é executado após o sistema de permissões. Para ações que nunca devem ser executadas independentemente da intenção do usuário ou da configuração do classificador, use
permissions.deny nas configurações gerenciadas, que bloqueia a ação antes do classificador ser consultado e não pode ser substituída.Defina infraestrutura confiável
Para a maioria das organizações,autoMode.environment é o único campo que você precisa definir. Ele informa ao classificador quais repositórios, buckets e domínios são confiáveis: o classificador o usa para decidir o que significa “externo”, portanto qualquer destino não listado é um alvo potencial de exfiltração.
A partir do Claude Code v2.1.198, claude auto-mode defaults imprime três tipos de entrada de ambiente. Versões anteriores à v2.1.195 imprimem apenas os primeiros cinco slots de confiança.
- Context slots: descrevem sua organização, stack e postura de segurança para que o classificador leia as outras regras em seu contexto. Cada um é padronizado para
None configuredou para a suposição conservadora nomeada ao lado:- Organization
- Primary use of Claude Code: padronizado para desenvolvimento de software
- Cloud provider(s)
- Repository visibility: um repositório é assumido como privado a menos que seu host remoto e nome indiquem o contrário, ou uma verificação de visibilidade anterior na conversa que o classificador lê mostre que é público. O classificador lê suas mensagens e os comandos que Claude executa, não sua saída, portanto a evidência deve ser algo que ele possa ler, como sua própria mensagem nomeando o repositório como público; a saída de um
gh repo viewpor si só não o alcança. A verificação de evidência de transcrição requer Claude Code v2.1.200 ou posterior - Internal sharing / snippet hosting: serviços públicos de paste e gist são tratados como fora do limite de confiança até você nomear um
- Org-specific CLIs
- Secrets management
- CI/CD deploy targets
- Network posture
- Host containment: padronizado para uma máquina de desenvolvedor comum ou executor de CI com internet aberta. Se Claude Code é executado em um container, VM ou pod com uma lista de permissão de egresso ou vizinhos que não deve tocar, nomeie os hosts permitidos, se o endpoint de metadados da nuvem deve ser alcançável e qual projeto de nuvem, cluster ou registro a tarefa usa e sob qual identidade. Até que esta entrada nomeie essa identidade, o classificador bloqueia solicitações pelas credenciais do próprio host. Requer Claude Code v2.1.257 ou posterior
- Protected deployment namespaces / environments: volta para a heurística de Sensitive remote targets até você nomeá-los
- Data retention / declassification
- Trust slots: nomeiam o que o classificador trata como dentro de seu limite. Os slots são Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services e Internal package registry. As entradas de repo e source-control são padronizadas para o repositório de trabalho e seus remotes configurados. Todos os outros slots de confiança são padronizados para
None configured, portanto nada mais é confiável até você adicioná-lo. A visibilidade de um repositório abrange apenas material confidencial: um repositório privado é um destino aceitável para material confidencial, mas tornar um repositório privado nunca limpa segredos ou dados pessoais ou confiados nele, e o classificador trata o conteúdo portado, repontado ou lido pela primeira vez de fora do repositório de trabalho como não sendo trabalho do próprio repositório. Este escopo requer Claude Code v2.1.203 ou posterior. - Sensitivity slots: nomeiam o que as regras de proteção tratam como alto risco. Os slots são Sensitive data locations & audiences, Sensitive remote targets e Protected IaC scopes. Cada um é padronizado para uma heurística ampla, como tratar qualquer host ou namespace cujo nome carregue
prodouproductioncomo um alvo remoto sensível, portanto as regras de proteção estão ativas antes de você configurar qualquer coisa. Nomear destinos concretos em um slot de sensibilidade faz com que essas regras se apliquem aos destinos nomeados em vez da heurística.
Antes da v2.1.211, os context slots também incluíam uma entrada Default / protected branches que tratava
main e master como protegidos até você nomear outros. v2.1.211 removeu: pushes para qualquer branch do repositório em que você está trabalhando são permitidos por padrão, portanto não há padrão de branch protegido para configurar."$defaults" no array. As entradas padrão são inseridas nessa posição, portanto suas entradas personalizadas podem ir antes ou depois delas.
O exemplo a seguir mantém as entradas padrão e adiciona repositórios, buckets, domínios e serviços de uma organização.
claude auto-mode config para confirmar que as regras efetivas incluem suas entradas.
As entradas são prosa, não regex ou padrões de ferramenta. O classificador as lê como regras em linguagem natural. Escreva-as da forma como você descreveria sua infraestrutura para um novo engenheiro. Uma seção de ambiente completa cobre:
- Organization: o nome da sua empresa e para o que Claude Code é principalmente usado, como desenvolvimento de software, automação de infraestrutura ou engenharia de dados
- Source control: cada GitHub, GitLab ou Bitbucket org para o qual seus desenvolvedores fazem push
- Cloud providers and trusted buckets: nomes ou prefixos de bucket que Claude deve ser capaz de ler e escrever
- Trusted internal domains: nomes de host para APIs, dashboards e serviços dentro de sua rede, como
*.internal.example.com - Key internal services: CI, registros de artefatos, índices de pacotes internos, ferramentas de incidentes
- Internal package registry: o registro npm, PyPI ou outro privado que as instalações devem rotear, para que instalações que o contornem para um registro público sejam bloqueadas
- Sensitive data locations & audiences: os buckets, bancos de dados ou caminhos que contêm dados pessoais, dados comerciais confidenciais, credenciais, dados regulados ou material similarmente sensível, e os públicos com os quais os dados em cada local podem ser compartilhados, para que o classificador proteja esses locais em vez de adivinhar pelo conteúdo. Claude Code v2.1.195 através v2.1.197 nomeiam esta entrada PII / regulated-data locations e cobrem apenas locais que contêm dados pessoais ou regulados, sem a dimensão de público
- Sensitive remote targets: os namespaces, hosts ou containers que contam como produção, portanto shells remotos e port-forwards neles precisam de sua aprovação explícita
- Protected IaC scopes: os recursos de infraestrutura cujo apply ou destroy sempre deve exigir que você nomeie a mudança
- Additional context: restrições de indústria regulada, infraestrutura multi-tenant ou requisitos de conformidade que afetam o que o classificador deve tratar como arriscado
Gerar entradas de ambiente com /auto-mode-setup
Execute /auto-mode-setup para que Claude Code elabore entradas de autoMode.environment e, às vezes, também entradas de regras, a partir do seu projeto e de suas sessões recentes nele. Se você aceitar o rascunho, Claude Code o escreve em ~/.claude/settings.json.
/auto-mode-setup requer um plano Pro, Max ou Team e Claude Code v2.1.228 ou posterior. No Windows nativo, requer v2.1.233 ou posterior. Você não pode executá-lo em Claude Code na web. Ele também precisa de busca de sinalizadores de recurso, portanto você não pode executá-lo em uma sessão onde você desativou a busca de sinalizadores.O que /auto-mode-setup lê
Se ~/.claude/settings.json já contiver entradas de autoMode, Claude Code começa perguntando se deve adicionar à sua lista de ambiente ou substituí-la, e mantém as regras que você escreveu de qualquer forma. Claude Code então pergunta como você usa este projeto e oferece duas verificações opcionais antes de verificar qualquer coisa. Na verificação, Claude Code sempre lê estas fontes:
CLAUDE.md,README.md, arquivos de configuração e remotes git do projeto- Suas configurações de
autoModeepermissions.allow - Os hosts, buckets e nomes de comando dos comandos que Claude executou em suas sessões recentes neste projeto, nunca suas mensagens
- A primeira palavra de cada comando no seu histórico de shell
- Os hosts remotos e nomes dos repositórios sob seu diretório home
Revisar e salvar o rascunho
Claude Code verifica em segundo plano e então mostra o rascunho. Você o aceita ou descarta como um todo, portanto edite~/.claude/settings.json depois para ajustar entradas individuais. Quando você aceita, Claude Code escreve o rascunho e o reconcilia com as configurações que você já tem:
- Claude Code escreve a lista de
environmentsem"$defaults", porque o rascunho especifica as entradas integradas que deixou inalteradas - Claude Code inclui
"$defaults"em cada uma das listasallow,soft_denyehard_denyàs quais o rascunho adiciona entradas, a menos que você já tenha escrito uma listaallowsem ela, portanto as regras integradas que você não substituiu permanecem em vigor - Após salvar, Claude Code oferece remover regras de
permissions.allowem~/.claude/settings.jsonque o modo automático ignora, comoBash(*), ou que aprovam automaticamente comandos destrutivos
claude auto-mode config para ver o resultado efetivo.
Desativar /auto-mode-setup
Depois que o modo automático bloqueou várias ações e você ainda não tem entradas de autoMode.environment, Claude Code mostra um diálogo intitulado “Ensinar ao modo automático sobre seu ambiente?” no final de um turno e oferece executar /auto-mode-setup para você. Para parar a oferta mas manter o comando, selecione Não mostrar novamente naquele diálogo.
Para desativar tanto o comando quanto a oferta, adicione esta entrada skillOverrides a ~/.claude/settings.json:
/auto-mode-setup é um comando integrado em vez de um skill agrupado, portanto esta entrada skillOverrides ainda se aplica a ele, mas disableBundledSkills não o desativa.
Substituir as regras de bloqueio e permissão
Três campos adicionais permitem que você substitua as listas de regras integradas do classificador:autoMode.hard_deny: limites de segurança incondicionaisautoMode.soft_deny: ações destrutivas que a intenção do usuário pode contornarautoMode.allow: exceções às regras de bloqueio soft
permissions.deny.
Dentro do classificador, a precedência funciona em quatro camadas:
- Regras
hard_denybloqueiam incondicionalmente. A intenção do usuário e exceçõesallownão se aplicam. - Regras
soft_denybloqueiam em seguida. A intenção do usuário e exceçõesallowpodem substituir estas. - Regras
allowentão substituem regrassoft_denycorrespondentes como exceções. - A intenção explícita do usuário substitui os bloqueios soft restantes: se a mensagem do usuário descreve direta e especificamente a ação exata que Claude está prestes a executar, o classificador a permite mesmo quando uma regra
soft_denycorresponde.
allow quando o classificador sinalizar repetidamente um padrão rotineiro que as exceções padrão não cobrem. Para apertar, adicione a soft_deny para riscos destrutivos específicos do seu ambiente que os padrões perdem, ou a hard_deny para limites de segurança que nunca devem ser ultrapassados.
Para manter as regras integradas enquanto adiciona as suas próprias, inclua a string literal "$defaults" na matriz. As regras padrão são inseridas nessa posição, portanto suas regras personalizadas podem vir antes ou depois delas, e você continua a herdar atualizações conforme a lista integrada muda entre versões.
O exemplo a seguir mantém os padrões em todas as quatro listas e adiciona regras específicas da organização a cada uma.
Definir qualquer um de
environment, allow, soft_deny ou hard_deny sem "$defaults" substitui a lista padrão inteira para essa seção. Se você definir uma matriz sem "$defaults", descartará as regras integradas para essa seção:soft_deny: todas as regras de bloqueio soft integradas, incluindo force push,curl | bash, implantações em produção e bypass de auto-modehard_deny: a regra integrada de exfiltração de dados
environment sozinho deixa as listas padrão allow, soft_deny e hard_deny intactas.
Omita "$defaults" apenas quando você pretender assumir a propriedade total da lista. Para fazer isso com segurança, execute claude auto-mode defaults para imprimir as regras integradas, copie-as para seu arquivo de configurações e depois revise cada regra em relação ao seu próprio pipeline e tolerância ao risco.
Editar regras de /permissions
Para visualizar e editar regras do classificador sem abrir um arquivo de configurações, execute /permissions e selecione a aba Auto mode. A aba requer Claude Code v2.1.246 ou posterior, e aparece apenas quando o modo automático está disponível para sua sessão.
A aba lista as entradas allow, soft_deny, hard_deny e environment de cada um dos escopos que o classificador lê, e mostra se as regras integradas estão em vigor para cada seção. Claude Code mostra entradas de configurações gerenciadas ou a flag --settings como somente leitura, e salva todas as alterações que você faz na aba em ~/.claude/settings.json. A partir da aba você pode:
- Adicionar, editar ou excluir regras nas seções
allow,soft_denyehard_deny. Quando você adiciona a primeira regra a uma seção, Claude Code também insere"$defaults"para que as regras integradas permaneçam em vigor. - Desativar ou reativar as regras integradas para
allow,soft_denyouhard_deny. Claude Code registra a escolha adicionando ou removendo"$defaults"em sua lista para essa seção, portanto uma seção precisa de pelo menos uma regra sua antes que você possa desativar suas regras integradas. - Editar as entradas
environmentcomo um documento em seu editor. Se você ainda não configurou nenhuma entradaenvironment, Claude Code primeiro pergunta se deseja substituir o ambiente integrado, depois abre o editor no texto integrado completo. Quando você salva, Claude Code substitui sua matrizautoMode.environmentpelo documento. Inclua a linha"$defaults"para manter as entradas integradas.
Rotear todos os comandos shell através do classificador
Por padrão, as regras estreitas de Bash e PowerShell, comoBash(npm test), permanecem em vigor no modo automático, e Claude Code as resolve antes do classificador ser executado. Claude Code suspende apenas as regras amplas que concedem execução arbitrária de código, como Bash(*) ou intérpretes com caracteres curinga, juntamente com cada regra que nomeia Monitor, porque os comandos Monitor são executados através do shell. Isso significa que uma regra estreita ainda pode deixar um argumento destrutivo passar sem o classificador vê-lo, por exemplo um caminho de script ou sinalizador que o prefixo da regra não antecipou.
Defina autoMode.classifyAllShell como true para suspender cada regra de permissão de Bash e PowerShell enquanto o modo automático estiver ativo, para que o classificador avalie cada comando shell independentemente da sua lista de permissões.
autoMode.classifyAllShell requer Claude Code v2.1.193 ou posterior. Versões anteriores ignoram a chave e continuam a levar regras de permissão de shell estreitas para o modo automático.Inspecione os padrões e sua configuração efetiva
Os subcomandosclaude auto-mode ajudam você a inspecionar, validar e redefinir sua configuração.
Imprima as regras environment, allow, soft_deny e hard_deny integradas como JSON:
jq, passe --label com o início do rótulo da regra, como claude auto-mode defaults --label 'Git Destructive'. A correspondência é um prefixo case-insensitive no rótulo de cada regra, e seções sem correspondência são impressas como listas vazias. Requer Claude Code v2.1.208 ou posterior.
Imprima o que o classificador realmente usa como JSON, com suas configurações aplicadas onde definidas e padrões caso contrário:
defaults quanto config imprimem as quatro listas de regras como um único objeto JSON, com cada regra como uma string em prosa. Este é um exemplo truncado:
allow, soft_deny e hard_deny:
claude auto-mode config após salvar suas configurações para confirmar que as regras efetivas são o que você espera, com "$defaults" expandido no lugar. Se você escreveu regras personalizadas, claude auto-mode critique as revisa e sinaliza entradas que são ambíguas, redundantes ou provavelmente causarão falsos positivos.
Para descartar suas personalizações e retornar aos padrões integrados, execute o subcomando reset. Requer Claude Code v2.1.212 ou posterior e remove a seção autoMode do seu arquivo de configurações do usuário:
Reset auto mode configuration to defaults? antes de escrever; passe --yes para pular a confirmação. Reset altera apenas ~/.claude/settings.json: regras autoMode de managed settings ou a flag --settings ainda se aplicam.
Revisar negações
Para revisar e tentar novamente ações que o classificador do modo automático negou, abra/permissions e selecione a aba Recently denied, onde Claude Code registra cada negação. Pressione r em uma ação negada para marcá-la para retry: quando você sair do diálogo, Claude Code envia uma mensagem informando ao modelo que ele pode tentar novamente essa chamada de ferramenta e retoma a conversa.
Quando o classificador produz nenhum veredicto sobre a ação, porque uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador ou sua resposta não foi analisada, Claude Code nega a ação sem registrá-la em Recently denied. A entrada de erro vinculada cobre o que Claude é informado e como executar a ação se você precisar dela.
Corrigir uma negação com uma regra de permissão, uma entrada de ambiente ou um retry
Para ver o que o classificador bloqueou, encontre a chamada de ferramenta na conversa. Se a chamada aparecer encurtada ou dobrada em uma linha de resumo comoRan 3 shell commands, pressione Ctrl+O para abrir o visualizador de transcrição, que a expande.
Dois outros lugares na tela que relatam negações omitem o comando ou URL: o aviso perto da caixa de entrada, como bash denied by auto mode · [Data Exfiltration] · /permissions, fornece a ferramenta e o motivo, e a aba Recently denied lista um comando shell pela descrição que Claude escreveu para ele. Para capturar a entrada exata dessas negações programaticamente, adicione um hook PermissionDenied, que a recebe como tool_input.
O texto sob a chamada informa se há algo a corrigir. Texto que relata um problema com o próprio classificador, como um modelo que is temporarily unavailable ou um erro do classificador, significa que Claude Code bloqueou a chamada sem um veredicto final do classificador; veja Auto mode cannot determine the safety of an action para saber o que fazer. Caso contrário, uma linha lendo Denied by auto mode classifier com um motivo como [Production Deploy] ou Blocked by classifier significa que o classificador julgou a chamada insegura, então escolha a correção do que a chamada estava tentando alcançar ou fazer:
- Um destino que Claude precisa durante toda a tarefa, como um registro de pacotes, um domínio interno ou um host de repositório: adicione-o a
autoMode.environment. - Um comando que você deseja executar sem revisão a partir de agora: adicione uma regra
allow. - Uma ação única que você pretendia: declare essa intenção em sua próxima mensagem e deixe Claude tentar novamente.
allow a partir da aba Auto mode do diálogo /permissions.
Na maioria das sessões o nome do motivo nomeia a regra que o classificador correspondeu, entre colchetes, como [Data Exfiltration] ou [Production Deploy], e algumas sessões executam um modelo classificador que adiciona uma breve explicação. Claude Code seleciona o modelo classificador, então qual forma você vê não é algo que você configura.
Corrigir negações repetidas
Negações repetidas para o mesmo destino geralmente significam que o classificador está perdendo contexto. Adicione esse destino aautoMode.environment, ou execute /auto-mode-setup para que Claude Code rascunhe as entradas, depois execute claude auto-mode config para confirmar que a mudança entrou em vigor.
Para reagir a negações programaticamente, use o hook PermissionDenied.
Veja também
- Modos de permissão: o que é o modo automático, o que ele bloqueia por padrão e quais sessões começam nele
- Configurações gerenciadas: implante a configuração
autoModeem toda a sua organização - Permissões: regras de permitir, perguntar e negar que se aplicam antes do classificador ser executado
- Todas as configurações: todas as chaves de configurações, incluindo
autoMode