Claude Code --dangerously-skip-permissions com segurança

O que a flag --dangerously-skip-permissions do Claude Code pula, o que ainda a para, os riscos reais e jeitos mais seguros de cortar prompts: modos, regras, sandbox.

Solviera Teknoloji 11 min de leitura

A --dangerously-skip-permissions inicia o Claude Code no modo bypassPermissions, então as chamadas de ferramentas rodam sem perguntar antes. É o jeito mais rápido de acabar com os prompts, e também o mais arriscado. A própria documentação da Anthropic diz para usá-la só em ambientes isolados, como containers ou VMs. Geralmente você não precisa dela. Algumas regras allow, o auto mode ou um sandbox eliminam a maioria dos prompts e mantêm as proteções.

Este post explica o que a flag pula, o que ela não pula, onde as coisas dão errado e as opções mais seguras. No fim, mostra como o AgentVera lida com o mesmo problema quando vários agentes rodam ao mesmo tempo.

O que a flag realmente faz

O Claude Code tem modos de permissão. A flag é um atalho para um deles:

claude --dangerously-skip-permissions
# same as
claude --permission-mode bypassPermissions

Nesse modo, o Claude edita arquivos, roda comandos de shell e chama ferramentas sem parar. Segundo a documentação de modos de permissão, algumas coisas ainda o param:

  • Regras deny. Uma regra deny nas suas configurações bloqueia uma ferramenta em qualquer modo, inclusive no bypass.
  • Regras ask explícitas. Se você escreveu uma regra ask, ela continua perguntando.
  • Perguntas que o Claude faz a você. O Claude ainda pode pausar para fazer uma pergunta.
  • Remoção de caminhos críticos. rm ou rmdir na raiz do sistema de arquivos, em pastas de nível superior, na sua pasta home ou no diretório de trabalho e seus pais ainda pede confirmação.

Regras allow não têm efeito no modo bypass, porque tudo já está permitido. Gravações em caminhos protegidos como .git e .claude também são permitidas.

Mais alguns detalhes importam na prática:

  • Na primeira vez que você usa a flag de forma interativa, o Claude Code mostra uma caixa de aviso. Aceitar grava skipDangerousModePermissionPrompt: true em ~/.claude/settings.json.
  • Numa execução não interativa (claude -p), não há caixa de aviso.
  • No Linux e no macOS, a flag se recusa a rodar como root ou com sudo. A verificação é pulada dentro de um sandbox reconhecido.
  • Você não consegue entrar no bypass numa sessão que não começou com ele. A --allow-dangerously-skip-permissions adiciona o modo ao ciclo do Shift+Tab sem ativá-lo.
  • Admins podem desativar o modo para todo mundo com permissions.disableBypassPermissionsMode: "disable" nas configurações gerenciadas.

Os riscos

A documentação é direta: o modo bypass “não oferece proteção contra prompt injection nem contra ações não intencionais”. Veja o que isso significa no dia a dia.

Prompt injection

O Claude lê arquivos, páginas web, textos de issues e saídas de ferramentas. Se algo disso contiver instruções, o modelo pode segui-las. Com os prompts ligados, você vê aquele curl estranho para um host desconhecido antes de ele rodar. No modo bypass, você descobre depois.

Comandos destrutivos que não estão na lista crítica

A verificação de caminhos críticos cobre o rm da sua pasta home ou da raiz do projeto. Ela não cobre git reset --hard, git clean -fd, uma tabela de banco de dados apagada, um force push ou uma migration rodada no ambiente errado. Tudo isso roda sem prompt.

Segredos e o resto da sua máquina

No seu notebook, o Claude roda como você. Ele pode ler suas chaves SSH, credenciais de nuvem e arquivos .env, e pode acessar a rede. Um erro ou uma instrução injetada tem a sua conta inteira à disposição.

Checkpoints não cobrem tudo

O Claude Code cria um checkpoint antes de cada prompt, e o /rewind (ou Esc duas vezes) restaura o código, a conversa ou os dois. Mas a documentação de checkpoints diz que mudanças feitas por comandos Bash como rm, mv e cp não são rastreadas, nem mudanças de fora da sessão. O rewind não substitui o git.

Jeitos mais seguros de cortar prompts de permissão

A maioria das pessoas recorre à flag porque os prompts estão atrasando o trabalho. Estas opções resolvem os prompts e mantêm as proteções.

1. Escolha o modo de permissão certo

ModoRoda sem perguntarBom para
default (Manual)Só leiturasCódigo desconhecido, repositórios sensíveis
acceptEditsLeituras, edições de arquivos, comandos de arquivo comuns como mkdir, mv, cpProgramação do dia a dia em que você revisa o diff
planSó leituras, sem editar o código-fonteExplorar e planejar antes de uma mudança
autoTudo, com um classificador verificando cada ação antesTarefas longas em que você confia na direção
dontAskSó ferramentas pré-aprovadas; o resto é negadoCI e scripts
bypassPermissionsTudo, exceto os casos acimaSó containers e VMs isolados

O Shift+Tab alterna entre os modos numa sessão. A --permission-mode escolhe um na inicialização, e o permissions.defaultMode nas configurações define o seu padrão.

O auto mode é o meio-termo que a maioria quer. Um modelo classificador revisa cada ação antes de ela rodar. Ele bloqueia ações que vão além do seu pedido, miram infraestrutura que ele não reconhece ou parecem guiadas por conteúdo hostil. Se ele bloquear três vezes seguidas ou 20 vezes no total, o auto mode pausa e os prompts normais voltam. Há dois limites: ele precisa de um modelo compatível, e a documentação diz que ele “reduz os prompts de permissão, mas não garante segurança”. Versões recentes do Claude Code iniciam sessões interativas no auto mode por padrão. Confira o /permissions para ver em qual modo você está.

2. Escreva regras allow e deny

As regras de permissão ficam no settings.json e são aplicadas pelo Claude Code, não pelo modelo. Elas são verificadas em ordem: deny, depois ask, depois allow. A primeira que casar vence, então uma regra allow nunca sobrepõe uma deny.

{
  "permissions": {
    "allow": ["Bash(npm run test *)", "Bash(npm run lint)", "Bash(git diff *)"],
    "ask": ["Bash(git commit *)"],
    "deny": ["Bash(git push *)", "Read(./.env)"]
  }
}

Use o /permissions para ver e editar regras numa sessão. Permita os comandos que você roda cinquenta vezes por dia, como testes, lint e git somente leitura. Negue os que você nunca quer que um agente rode. O CLAUDE.md é orientação para o modelo. Ele não muda as permissões.

Para scripts, dontAsk com uma lista allow curta é mais restrito que o bypass:

claude -p "run the test suite and fix failures" \
  --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" "Edit"

3. Ative o sandbox do Bash

A documentação de sandbox descreve um sandbox no nível do sistema operacional que limita quais arquivos e domínios de rede os comandos de shell conseguem acessar. Ative com /sandbox ou sandbox.enabled: true. Funciona no macOS, no Linux e no WSL2. Vale só para comandos de shell. Ferramentas de arquivo, servidores MCP e hooks rodam fora dele.

4. Se for pular as permissões, isole antes

Às vezes o bypass é a escolha certa, como numa execução longa e sem supervisão em código descartável. Nesse caso, siga a configuração da documentação: um container, VM ou dev container, um usuário não root, nenhum segredo montado e, de preferência, sem acesso à internet. A forma comum sem supervisão é:

claude -p "<task>" --dangerously-skip-permissions

Rode dentro do container, não no seu notebook.

5. Trabalhe num worktree e faça commits com frequência

Um git worktree dá ao agente sua própria pasta e branch. Se ele estragar a branch, você apaga o worktree e a main nem fica sabendo. Commits frequentes dão pontos de restauração que também cobrem o que o Bash mudou, algo que os checkpoints não conseguem.

Uma tabela rápida de decisão

SituaçãoO que usar
Você aprova sempre os mesmos comandos de teste e lintRegras allow
Você quer menos prompts, mas ainda quer uma verificação de segurançaAuto mode
Job de CI ou script com um conjunto conhecido de ferramentasdontAsk com --allowedTools
Comandos de shell não devem acessar a rede nem a sua pasta homeSandbox do Bash
Execução longa sem supervisão em código descartávelBypass dentro de um container, como não root
Credenciais de produção na máquinaNunca usar bypass

Como o AgentVera lida com isso

Quando você roda vários agentes, os prompts se multiplicam. Cinco agentes são cinco lugares que podem estar esperando um sim. O AgentVera dá as mesmas opções por agente, além de jeitos de responder aos prompts de qualquer lugar.

Um nível de permissão para cada agente

Na caixa de diálogo do agente e no seletor de modelo há um campo Permissions (permissões) com três opções:

  • Ask: a CLI pergunta como de costume.
  • Auto: o próprio auto mode da CLI. Edições e comandos seguros seguem adiante, os arriscados ainda param. No Claude Code, isso inicia o agente com --permission-mode auto.
  • Full access: nunca pergunta. No Claude Code, isso é --dangerously-skip-permissions. A dica do app diz com todas as letras: “Best in a worktree or container”.

O cabeçalho do agente mostra um selo como “Permissions: Auto”. O Codex e outras CLIs recebem os equivalentes deles. Mudar o nível reinicia o agente, e a conversa continua. Se uma política da equipe limitar as aprovações, os agentes continuam perguntando.

Auto-approve safe requests (Pro e Team)

A aprovação automática é um caminho do meio para agentes Claude Code. Com o Auto-approve safe requests ligado, o AgentVera responde só aos pedidos sobre os quais o Claude perguntaria de qualquer forma, e só aos seguros:

  • ferramentas de leitura como Read, Glob, Grep e LS,
  • comandos de shell e git somente leitura,
  • comandos de teste, lint, typecheck e build para npm, pnpm, yarn, bun, pytest, cargo, go e outros.

Comandos com >, $() ou crases nunca são aprovados automaticamente. As suas próprias regras allow e deny do Claude continuam valendo. O Also approve file edits inside the project vem desligado por padrão. Quando ligado, cobre edições dentro do projeto ou do worktree e nunca mexe em .git ou .env. A lista Never auto-approve começa com git push, npm publish, rm, git reset --hard e git clean, e você pode adicionar os seus. O Recent auto-approvals mostra o que passou na sessão atual.

A opção vem ligada por padrão, mas só tem efeito nos planos Pro e Team. No plano gratuito, os pedidos continuam chegando a você.

Responda aos prompts da mesa, do celular ou do Telegram

Os prompts que restam chegam a você onde estiver. No desktop há uma fila de aprovações na barra de status, o ⇧⌘A pula para o agente que está esperando há mais tempo, e o Dock mostra um selo. Se você deixar uma aprovação esperando, chega um lembrete depois de cinco minutos. Veja notificações e aprovações.

Longe da mesa:

Como responder a um prompt leva segundos, você tem menos motivo para recorrer ao Full access.

Agentes no Docker para isolamento de verdade

Para execuções em que você quer mesmo o Full access, inicie o agente com Run in a Docker container. Funciona para agentes locais do Claude Code e do Codex, e está em todos os planos. Veja agentes no Docker.

  • O container enxerga só a pasta do projeto, não suas chaves SSH nem o resto do seu computador.
  • Quando o agente para, o container é removido. Só ficam as mudanças na pasta do projeto.
  • Você pode definir limites de CPU e memória.
  • Hooks e MCP continuam funcionando.

Precisa do Docker Desktop, do Colima ou do OrbStack. Esse é o ambiente isolado que a documentação do Claude Code pede, sem você escrever um Dockerfile.

Checkpoints a cada turno

Os checkpoints do AgentVera tiram um snapshot da pasta de trabalho numa ref git oculta no início de cada turno, guardando os últimos 60 turnos por agente. Como eles fotografam a própria pasta, também pegam arquivos que um comando de shell mudou. Você pode ver quais arquivos um turno mexeu, desfazer o turno e desfazer o desfazer. Suas branches, o index e o stash ficam intactos.

Checklist antes de pular as permissões

  • Regras allow ou o auto mode poderiam eliminar os prompts no lugar disso?
  • O agente está num container ou VM, e não na sua máquina principal?
  • Ele está rodando como usuário não root?
  • Segredos, chaves SSH e credenciais de produção estão fora de alcance?
  • O acesso à rede está limitado ou desligado?
  • O trabalho está na própria branch ou worktree, com um commit recente para voltar?
  • As regras deny cobrem git push e qualquer outra coisa que você nunca quer?

Conclusão

A --dangerously-skip-permissions é uma ferramenta real com um uso restrito: ambientes isolados e descartáveis. No trabalho do dia a dia, regras allow e deny, o auto mode e o sandbox eliminam a maioria dos prompts e deixam o controle nas suas mãos. Se você roda muitos agentes, dê a cada um o nível de que precisa. Deixe os pedidos seguros passarem sozinhos, responda ao resto pelo celular e coloque num container os agentes que precisam de Full access.

Leia mais:

Para experimentar o AgentVera, comece pela página inicial.

Perguntas frequentes

O que a --dangerously-skip-permissions faz no Claude Code?

Ela inicia a sessão no modo bypassPermissions, o mesmo que --permission-mode bypassPermissions. As chamadas de ferramentas rodam sem prompt, exceto regras ask explícitas, regras deny, perguntas que o Claude faz a você e remoções de caminhos críticos, como a sua pasta home.

É seguro usar a --dangerously-skip-permissions?

Só num ambiente isolado. A documentação da Anthropic diz para usá-la em containers, VMs ou dev containers sem acesso à internet, e observa que ela não oferece proteção contra prompt injection nem contra ações não intencionais.

Por que o Claude Code se recusa a pular permissões como root?

No Linux e no macOS, a flag se recusa a rodar com privilégios de root ou sudo, por motivos de segurança. A verificação é pulada dentro de um sandbox reconhecido. Rode o Claude Code como usuário comum, ou como usuário não root dentro de um container.

Qual é uma alternativa mais segura a pular as permissões?

Regras allow no settings.json para os comandos em que você confia, regras deny para os que você nunca quer, o auto mode com seu classificador de segurança e o sandbox do Bash. Juntos, eles eliminam a maioria dos prompts sem você abrir mão do controle.

Como o AgentVera lida com as permissões do Claude Code?

Cada agente tem uma configuração Permissions: Ask, Auto ou Full access. Nos planos Pro e Team, o Auto-approve safe requests responde por você a comandos somente leitura e de teste. Os agentes também podem rodar num container Docker, e cada turno ganha um checkpoint que você pode desfazer.

Reúna seus agentes em uma só mesa.

Baixe o AgentVera de graça; as CLIs que você já instalou estão prontas para usar.

Mais artigos