Claude Code bypass permissions: o que muda e como usar

Entenda o bypass de permissões do Claude Code, quais proteções continuam ativas e como reduzir confirmações ou usar um devcontainer com isolamento.

Publicado em

Claude Code bypass permissions: o que muda e como usar

Usar Claude Code bypass permissions dispensa as aprovações rotineiras, mas dá para reduzir as interrupções sem liberar toda chamada de ferramenta. O comando claude --dangerously-skip-permissions seleciona bypassPermissions e elimina essas aprovações, inclusive as verificações normais que protegem arquivos de configuração sensíveis. Reserve esse modo para um ambiente isolado. Se o problema do dia a dia é o excesso de pedidos de confirmação, comece pelo modo automático ou por regras de permissão bem delimitadas.

Claude Code bypass permissions: o que esse parâmetro desativa?

--dangerously-skip-permissions e --permission-mode bypassPermissions selecionam o mesmo modo. O Claude pode alterar arquivos, executar comandos no shell e fazer outras chamadas de ferramentas sem as pausas habituais para aprovação. Esse modo também permite gravar em caminhos protegidos. Na primeira execução interativa, aparece um aviso de responsabilidade; se você não aceitar, o Claude Code é encerrado. Documentação da Anthropic sobre bypass

Imagine que as permissões sejam um balcão de aprovação, e o isolamento, as paredes de uma oficina. Tirar o balcão não ergue paredes. Na prática, você ganha uma sessão de trabalho sem interrupções, mas perde a oportunidade de barrar uma ação ruim antes que ela seja executada.

A lógica do trabalho muda: em vez de aprovar cada operação, você prepara o ambiente antes e revisa o resultado depois. Isso não garante que o código esteja correto nem torna inofensivas as instruções maliciosas.

Fluxo arquitetônico com uma solicitação de ferramenta, bloqueios explícitos, confirmações rotineiras dispensadas e um espaço de trabalho isolado à parte
Regras de aprovação e isolamento têm funções diferentes. O bypass elimina aprovações rotineiras; cabe ao ambiente conter a execução.

Quais controles continuam valendo?

O termo “skip” não significa que todos os controles desaparecem. As diferenças abaixo explicam por que uma execução que deveria seguir sozinha ainda pode parar ou recusar uma ação:

ControleO que continua valendo
Regras explícitas de denyAs chamadas que correspondem à regra continuam bloqueadas em todos os modos de permissão. Uma lista de allow não restringe o bypass aos itens que ela contém.
Regras explícitas de askAs chamadas que correspondem à regra continuam exigindo aprovação.
Interação obrigatóriaAskUserQuestion, ferramentas MCP marcadas com requiresUserInteraction e ferramentas de conectores controladas pela organização e configuradas como ask mantêm suas exigências de interação.
Verificações de remoção em caminhos críticosrm e rmdir direcionados a locais como a raiz do sistema de arquivos, o diretório pessoal ou o diretório de trabalho continuam recebendo tratamento especial.
Outros limitesAs proteções para mensagens entre sessões e a restrição configurada para leitura fora do diretório de trabalho continuam valendo.

Na última linha, a configuração exata de leitura é permissions.blockReadsOutsideWorkingDirectories: true. Comandos Bash reconhecidos como comandos de leitura de arquivos ainda podem pedir confirmação fora dos diretórios permitidos; bloqueios impostos pelo sandbox se comportam de outra forma. Em uma execução não interativa com -p e bypass, as chamadas que ainda exigiriam confirmação são negadas. Ações que nenhum modo aprova automaticamente, configuração de leitura fora do diretório

Hooks de bloqueio em PreToolUse também continuam participando da aprovação de ferramentas. Há uma exceção específica para EndConversation: regras de negação e de solicitação de aprovação não o restringem enquanto houver outra ferramenta disponível. Mods instalados podem substituir algumas decisões de permissão que não vêm de políticas gerenciadas. Por isso, os controles obrigatórios de uma equipe devem ficar nessas políticas. Administradores podem proibir o bypass com "permissions": {"disableBypassPermissionsMode": "disable"}. Uma sessão iniciada com --restricted também recusa o modo bypass. Precedência de hooks e regras, configuração para desativar o bypass

O modo bypass permite gravar em caminhos protegidos

Não presuma que alterações em .git ou .claude continuarão exigindo confirmação. O modo bypass permite gravar em caminhos protegidos. Essa proteção é diferente das verificações de exclusão de diretórios críticos descritas acima.

A lista de caminhos protegidos da Anthropic inclui:

GrupoCaminhos
Diretórios do repositório e do editor.git, .config/git, .vscode, .idea, .husky
Diretórios de build e ambiente.cargo, .devcontainer, .yarn, .mvn
Configuração do Claude e extensões executáveis.claude, diretórios carregados com --plugin-dir, ~/.claude/dev-mods/ ou o dev-mods/ correspondente dentro de CLAUDE_CONFIG_DIR
Arquivos do Git e do shell.gitconfig, .gitmodules, .bashrc, .bash_profile, .bash_login, .bash_aliases, .bash_logout, .zshrc, .zprofile, .zshenv, .zlogin, .zlogout, .profile, .envrc
Arquivos de pacotes e build.npmrc, .yarnrc, .yarnrc.yml, .pnp.cjs, .pnp.loader.mjs, .pnpmfile.cjs, bunfig.toml, .bunfig.toml, .bazelrc, .bazelversion, .bazeliskrc
Hooks e wrappers.pre-commit-config.yaml, lefthook.yml, lefthook.yaml, .lefthook.yml, .lefthook.yaml, gradle-wrapper.properties, maven-wrapper.properties
Outras configurações.devcontainer.json, .ripgreprc, pyrightconfig.json, .mcp.json, .claude.json e destinos de arquivos de configuração acessados por links simbólicos

Há exceções com escopo limitado dentro de .claude, como os worktrees do próprio Claude, os arquivos do plano atual, o espaço temporário de sessões em segundo plano e certos arquivos Markdown de memória. Em sessões comuns nos modos Manual e acceptEdits, gravações em caminhos protegidos pedem confirmação; o modo automático as encaminha ao classificador. Uma regra de permissão em um arquivo de configuração não pode pré-aprovar essas gravações. Caminhos protegidos e exceções

Quatro alternativas mais seguras para reduzir as interrupções

Escolha o controle de acordo com a interrupção. Para a maioria dos desenvolvedores, vale ajustar a política de aprovação antes de recorrer ao bypass.

Use o modo automático para programar no dia a dia

Inicie uma sessão com claude --permission-mode auto. Um classificador — um modelo separado que analisa as ações propostas — cuida das decisões rotineiras de aprovação. Para tornar esse modo o padrão persistente no terminal, incorpore "permissions": {"defaultMode": "auto"} a ~/.claude/settings.json.

Colocar esse valor em .claude/settings.json ou .claude/settings.local.json não ativa o modo. O modo automático também depende dos modelos compatíveis e das configurações da organização, e regras explícitas de solicitação de aprovação continuam pedindo confirmação. Ele reduz interrupções, mas não garante segurança. Configuração do modo padrão, requisitos do modo automático

Nosso guia do modo automático do Claude Code explica quando esse modelo de revisão se encaixa no seu fluxo de trabalho.

Libere tarefas rotineiras e bloqueie ações específicas

Use permissions.allow para comandos que você já revisou e permissions.deny para operações que quer bloquear. O Claude Code avalia primeiro as regras de negação, depois as de solicitação de aprovação e, por último, as de permissão. Uma permissão ampla não anula uma negação que corresponda à chamada. Regras de permissão

Para um repositório confiável, o exemplo abaixo combina permissões específicas com um hook de bloqueio. Incorpore-o a .claude/settings.json, preservando as chaves existentes. Ele inicia deliberadamente as sessões de terminal no modo Manual, para que as permissões listadas controlem as aprovações. Confira o que os scripts de teste e lint do projeto executam antes de autorizá-los.

JSON
{
  "permissions": {
    "defaultMode": "default",
    "allow": ["Bash(npm test)", "Bash(npm run lint)"],
    "deny": ["Bash(git push *)", "Read(./.env)", "Read(./.env.*)"]
  },
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "if": "Bash(rm *)",
        "command": "echo 'Use the approved cleanup task instead.' >&2; exit 2"
      }]
    }]
  }
}

Use .claude/settings.local.json para ajustes pessoais do projeto; se criar o arquivo por conta própria, adicione-o a .gitignore. Abra /permissions para consultar as regras ativas e os arquivos de origem. Escopo das configurações

Esses padrões não isolam o sistema de arquivos nem a rede. Variações na forma de escrever um comando podem escapar de um padrão Bash, e scripts arbitrários podem ler arquivos indiretamente mesmo com regras de negação para as ferramentas de arquivo. Mantenha segredos fora do ambiente e use controles de sandbox quando o acesso precisar ser impossível. Limites das regras de Bash, limites das regras de arquivo

Use o modo de planejamento antes de uma mudança ampla

Comece com claude --permission-mode plan ou defina "permissions": {"defaultMode": "plan"} nas configurações do projeto. O Claude explora o projeto e propõe o trabalho antes que as edições no código-fonte sejam aprovadas. A configuração de nível superior "useAutoModeDuringPlan": false desativa a aprovação de comandos de planejamento pelo classificador. Assim, comandos que não fazem parte do conjunto integrado de operações somente de leitura precisam da sua aprovação. Configuração do modo de planejamento

Inicie uma nova sessão de planejamento sem parâmetros que habilitem o bypass. Em uma sessão interativa de terminal na qual o bypass está disponível, o modo de planejamento não aplica seus bloqueios habituais de edição e comandos. Isso inclui a disponibilidade criada por --allow-dangerously-skip-permissions, que permite selecionar o bypass depois, sem ativá-lo imediatamente. Modo de planejamento e disponibilidade do bypass

Use hooks para bloquear comandos específicos

O handler de hooks.PreToolUse do exemplo usa matcher: "Bash", type: "command" e if: "Bash(rm *)". Quando a condição corresponde à chamada, o comando de shell exibe um motivo e encerra com o status 2, bloqueando a chamada da ferramenta. Não é necessário um script separado. Esse pequeno comando de shell é um exemplo nosso, construído com os campos de hook e o status de saída de bloqueio documentados pela Anthropic. Configuração de hooks, códigos de saída que bloqueiam a execução

Isso bloqueia chamadas de rm que correspondam ao padrão, mas não todas as formas possíveis de excluir um arquivo. Uma equipe pode substituí-lo por um validador revisado para seus próprios comandos de deploy ou limpeza. Mantenha as verificações específicas o bastante para serem compreendidas e testadas. Nossa página sobre hooks do Claude Code aborda configuração e depuração de hooks.

Quatro faixas arquitetônicas identificadas como Auto, Rules, Plan e Hooks, mostrando revisão de ações, regras de permissão ou negação, exploração e bloqueio de comandos
Escolha o controle adequado à tarefa: revisar ações automaticamente, aprovar operações específicas, planejar antes ou bloquear um comando.

Em quais ambientes a Anthropic permite o bypass?

A tabela de configurações comuns da Anthropic exige um contêiner, uma VM ou um ambiente de execução com sandbox, com um usuário sem privilégios de root no Linux e no macOS. A seção sobre bypass descreve ambientes isolados que não podem danificar o sistema hospedeiro e destaca ambientes sem acesso à internet. Já o guia de devcontainer apresenta uma configuração conectada, com acesso de saída restrito aos serviços necessários ao Claude. Trate o acesso irrestrito à rede como uma exposição à parte. Isolamento exigido, restrições de rede do devcontainer

No Linux e no macOS, iniciar o bypass como root ou por meio de sudo normalmente é recusado. A documentação registra uma exceção automática dentro de um sandbox reconhecido; a abordagem documentada com devcontainer usa uma conta sem privilégios de root. Não resolva um erro relacionado a root enfraquecendo esse limite.

Como preparar o devcontainer de referência

Use uma cópia de trabalho descartável de um repositório confiável. Com Docker, VS Code e a extensão Dev Containers instalados, comece pelo projeto de referência da Anthropic:

Bash
git clone https://github.com/anthropics/claude-code.git claude-code-isolated
code claude-code-isolated
  1. No VS Code, execute Dev Containers: Reopen in Container. A referência combina a CLI, volumes persistentes e um firewall de saída. Confira se remoteUser indica uma conta sem privilégios de root.
  2. No terminal do contêiner, execute id -u e confirme que o resultado não é 0. Execute claude para fazer login e, depois, encerre essa sessão.
  3. No mesmo terminal do contêiner, execute claude -p "Inspect this repository and summarize its structure. Do not change files." --dangerously-skip-permissions.
  4. Para usar seu próprio projeto, copie o diretório .devcontainer/ da referência para uma cópia de trabalho descartável e adapte o Dockerfile às ferramentas do projeto. Revise o diff do espaço de trabalho após cada tarefa.

Esse procedimento segue o fluxo do contêiner de referência da Anthropic. A referência é um exemplo funcional, não uma imagem-base com manutenção contínua. Mantenha as restrições de saída ou forneça controles de rede equivalentes.

O espaço de trabalho montado continua permitindo gravação de dentro do contêiner, e essas alterações chegam ao sistema hospedeiro. Evite montar ~/.ssh, arquivos de credenciais de nuvem ou diretórios sem relação com a tarefa. Um projeto malicioso ainda pode vazar tudo o que estiver acessível ali dentro, inclusive credenciais do Claude. Use repositórios confiáveis e acompanhe o trabalho. Limites do devcontainer

Sessões na nuvem ignoram o bypass definido como padrão

Sessões na nuvem ignoram silenciosamente defaultMode: "bypassPermissions" e defaultMode: "dontAsk" em arquivos de configuração. Elas começam no modo exibido no seletor de modos da nuvem. Uma configuração JSON versionada no repositório não consegue forçar uma sessão na nuvem a usar bypass. Comportamento dos modos na nuvem

Seu arquivo local ~/.claude/settings.json não é levado para uma sessão na nuvem hospedada pela Anthropic. As configurações do repositório também têm limites: sessões que abrangem vários repositórios não carregam as regras de permissão e os hooks de cada um. Verifique a política que está de fato ativa no ambiente de nuvem, em vez de presumir que a configuração do terminal foi transferida. Configurações em sessões na nuvem

Escolha o modo de acordo com o trabalho

Em geral, a mudança que mais compensa é eliminar aprovações repetitivas de um fluxo de trabalho que já existe. Estas são escolhas práticas, na ordem em que eu começaria:

SituaçãoFluxo de trabalho indicadoGanho
Um desenvolvedor corrigindo um bug em um app conhecidoModo automático, seguido da revisão do diff e dos resultados dos testesMenos atenção gasta aprovando etapas rotineiras
Uma pessoa responsável pela manutenção executando testes confiáveis repetidamenteRegras de permissão exatas para os comandos de teste e lintAprovações previsíveis sem liberar qualquer comando de shell
Uma equipe planejando uma refatoração que envolve vários módulosNova sessão de planejamento, revisão da proposta e, depois, aprovação da implementaçãoIdentificar erros de escopo antes que as edições se espalhem
Uma equipe de plataforma protegendo um comando de deployUm validador PreToolUse testado, combinado com uma política gerenciadaAplicar a mesma regra de bloqueio em todas as execuções
Uma pessoa responsável pelo CI com uma tarefa bem definidadontAsk e uma lista explícita de permissõesOperações inesperadas falham em vez de aguardar uma pessoa
Uma pessoa responsável pela manutenção executando tarefas sem supervisão em um ambiente descartávelContêiner sem privilégios de root e com rede restrita; bypass apenas dentro deleConcluir a tarefa delimitada e, depois, revisar ou descartar a cópia de trabalho

Para o caso de CI, claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" é o ponto de partida documentado pela Anthropic. Ele nega operações que, de outra forma, pediriam confirmação. Configurações comuns

Consulte nossas boas práticas de Claude Code junto com o modo escolhido. As permissões controlam a execução; a verificação determina se vale a pena manter o resultado.

Duas ferramentas úteis que uma equipe poderia criar

Um verificador de configuração de permissões é a oportunidade mais promissora. O DataForSEO estima 720 buscas mensais nos EUA por “claude code permissions”. Isso indica uma dificuldade para encontrar informações, não uma intenção de compra comprovada. Uma equipe de plataforma para desenvolvedores poderia criar um pequeno verificador que explicasse o escopo das configurações, sinalizasse valores de defaultMode ignorados e mostrasse o alcance de regras amplas de comandos antes de integrar colegas ao fluxo. A primeira entrega útil seria um relatório com sugestões de ajuste. O desafio é mantê-lo atualizado à medida que o comportamento das configurações do Claude Code muda.

Uma ferramenta para iniciar execuções descartáveis poderia atender equipes com tarefas recorrentes sem supervisão. A mesma consulta de demanda estima 260 buscas mensais nos EUA por “claude code docker”. Um MVP poderia validar um modelo de contêiner revisado, as montagens permitidas, a execução sem privilégios de root e a política de saída de rede. Depois, reuniria o diff e os logs resultantes para a pessoa responsável pela manutenção. Seu valor estaria na consistência da configuração. O limite é que essa ferramenta não torna seguro o código de um repositório não confiável nem garante isolamento só porque o Docker está presente.

Ambas são oportunidades de ferramentas internas que precisam ser validadas com usuários reais. Nenhuma exige transformar o bypass no padrão das máquinas dos desenvolvedores.

O que dangerously skip permissions faz no Claude?

Seleciona bypassPermissions, elimina aprovações rotineiras de ferramentas e permite gravar em caminhos protegidos. Bloqueios explícitos e as proteções documentadas de interação obrigatória continuam relevantes. Confira as distinções detalhadas acima antes de presumir que uma execução não pode parar.

Como fazer o Claude parar de pedir permissão?

Para programar no dia a dia, experimente claude --permission-mode auto. Para um fluxo previsível, pré-aprove comandos revisados com permissions.allow, mantenha bloqueios específicos e use hooks quando precisar verificar comandos. O modo de planejamento serve para explorar o projeto antes das edições.

Como ignorar as permissões no Claude Code?

Só depois de preparar o ambiente isolado, execute claude --dangerously-skip-permissions dentro dele. claude --permission-mode bypassPermissions é equivalente. Siga a configuração de devcontainer sem privilégios de root descrita acima; não adicione ao shell do dia a dia um alias que ative o bypass de forma irrestrita.

Para colocar em prática na segunda-feira: escolha um fluxo de trabalho repetitivo, revise os comandos que ele realmente executa e configure a política de aprovação mais restrita que permita concluí-lo. Passe para um contêiner descartável apenas quando a tarefa exigir execução sem supervisão além do que essa política permite.

Se sua equipe precisa criar e manter esse fluxo de trabalho, podemos ajudar com sistemas de IA em produção.

Publicado
Categoria
Build
Artigos relacionados
Cursor IDE ou VS Code: vale a pena trocar de editor em 2026?

Cursor IDE ou VS Code: vale a pena trocar de editor em 2026?

Cursor IDE ou VS Code? Compare agentes, extensões, privacidade e preços para decidir se a experiência do Cursor justifica trocar seu editor de código.18 de out. de 2026Build
n8n: o que é, preços e quando vale a pena

n8n: o que é, preços e quando vale a pena

Entenda o que é o n8n, para quem vale a pena e como escolher entre Cloud e hospedagem própria. Veja preços, agentes de IA e limites de colaboração.18 de out. de 2026Build
Render vs Railway: qual vale mais para seu app em 2026?

Render vs Railway: qual vale mais para seu app em 2026?

Compare Render e Railway para hospedar seu app, API, workers e Postgres. Veja preços, recuperação de dados e limites para decidir com base no seu uso.18 de out. de 2026Build
Pydantic AI: quando usar agentes inteligentes em Python

Pydantic AI: quando usar agentes inteligentes em Python

Entenda quando usar Pydantic AI em Python, como validar saídas e integrar ferramentas, e o que avaliar ao comparar LangGraph, LangChain e chamadas de API.17 de out. de 2026Build
Guardrails LLM: como controlar o que a IA pode fazer

Guardrails LLM: como controlar o que a IA pode fazer

Entenda onde aplicar guardrails LLM, compare ferramentas e veja os controles de dados, respostas e ações para começar com uma equipe pequena.17 de out. de 2026Build
Alucinação de IA: por que acontece e como barrar os erros

Alucinação de IA: por que acontece e como barrar os erros

Entenda por que LLMs inventam fatos, números e citações e como usar fontes, validações e avaliações para barrar erros antes que eles cheguem ao cliente.17 de out. de 2026Build
System prompt: como funciona, exemplos e modelo para usar

System prompt: como funciona, exemplos e modelo para usar

Entenda o system prompt, compare seu uso no Claude, na OpenAI e no Gemini e saiba o que incluir nas instruções. Veja exemplos e um modelo pronto para adaptar.17 de out. de 2026Build
Tool calling: como conectar modelos de IA às suas funções

Tool calling: como conectar modelos de IA às suas funções

Entenda como o tool calling conecta modelos de IA ao software. Veja um exemplo completo, compare APIs e saiba quando usar ferramentas ou saídas estruturadas.17 de out. de 2026Build
Newsletter

Uma carta, todo domingo.Sistemas que funcionam, não hot takes.

Semanal. Sem spam. Cancele quando quiser.