allow
Ferramentas que você aprovou de antemão
Uma regra como Bash(git commit:*) deixa esse comando passar sem parar. A regra vale para o comando, não para o que o comando abre depois que roda.
Claude Code
O sistema de permissões decide quais ferramentas o Claude Code pode rodar. Ele não diz nada sobre o que essas ferramentas conseguem alcançar, e o que elas alcançam é todo segredo na sua máquina. O Sallyport tira as chaves para um lugar onde o agente não consegue lê-las.
O Claude Code pergunta antes de rodar uma ferramenta que você não permitiu. As regras ficam no settings.json como listas allow, ask e deny, e vale a pena configurá-las direito.
allow
Uma regra como Bash(git commit:*) deixa esse comando passar sem parar. A regra vale para o comando, não para o que o comando abre depois que roda.
ask
O caso padrão. O Claude Code mostra a chamada da ferramenta e espera. Você está revisando uma ação, na hora, com o contexto que tiver às duas da manhã.
deny
Uma regra deny mantém a ferramenta Read longe do ./.env. Ela não mantém um comando de shell permitido longe do mesmo arquivo, e não tem nada a dizer sobre os processos que suas dependências iniciam.
bypass
A flag --dangerously-skip-permissions elimina a pergunta por completo. Essa tem uma seção só dela mais abaixo.
Todas essas regras governam as ferramentas do agente. Nenhuma governa o arquivo que uma ferramenta lê. Seus tokens de API estão no .env, sua chave SSH em ~/.ssh, e os dois podem ser lidos por qualquer processo rodando como você, com ou sem confirmação.
As pessoas recorrem a isso por bons motivos: refatorações longas e execuções noturnas em que uma caixa de confirmação deixa o trabalho parado até de manhã. Vale saber exatamente o que você trocou por isso.
O Claude Code já conseguia ler seus arquivos, usar seu shell e sair para a rede. A flag remove a pausa em que você teria percebido.
A confirmação era uma chance de pegar o agente abrindo o .env. Nunca foi uma barreira em volta do arquivo. Qualquer processo rodando como você consegue lê-lo, inclusive a dependência que o npm instalou enquanto você lia a confirmação.
Uma injeção de prompt numa página baixada, um README envenenado numa dependência transitiva, e essas instruções caem dentro de uma sessão que tem suas credenciais e não tem mais nenhuma confirmação.
O modo YOLO custa a você a chance de perceber. Não foi ele que colocou as chaves ao alcance; elas já estavam ao alcance no modo padrão.
Revisão de segurança
O Claude Code lê um diff e aponta vulnerabilidades nele, e você deveria deixar. Esse trabalho é sobre o código que você está entregando. Ele não diz nada sobre o que o próprio agente alcança enquanto roda, que é o assunto desta página. São problemas separados, e resolver um não faz nada pelo outro.
O Sallyport guarda a credencial e faz a chamada. O Claude Code pede uma ação e recebe um resultado de volta. Nenhuma chave entra no ambiente dele, então não há nada que uma confirmação pulada, uma dependência envenenada ou uma instrução injetada consiga levar embora.
01
http.request para api.stripe.com, ou ssh.exec no prod-03. Chega por MCP, do mesmo jeito que o Claude Code chama qualquer outra ferramenta.
02
Um cofre trancado nega tudo. Uma chave marcada para aprovação por chamada mostra um cartão toda vez. Fora isso, um cartão por execução do agente, carregando a autoridade de assinatura de código de quem chamou.
03
A credencial é anexada dentro do app, durante a execução. Ela não entra no ambiente do agente, e um redirecionamento para outro host não a leva junto.
04
Criptografado e encadeado por hash enquanto a ação acontece. Você consegue descobrir o que rodou sem depender da versão que o agente conta.
Depois disso, rode o Claude Code do jeito que preferir, com confirmações ou sem. A decisão que importava saiu do agente.
O Sallyport fica na barra de menus e hospeda o cofre no próprio processo. Não tem daemon e não tem conta.
O onboarding cria o cofre e liga o portão de Touch ID dele.
brew install --cask olegsotnikov/tap/sallyportO Claude Code passa a ter http.request, ssh.exec e qualquer servidor MCP upstream que você encaminhar pelo Sallyport.
claude mcp add sallyport -- /Applications/Sallyport.app/Contents/MacOS/sp mcpGuarde a credencial no cofre, vincule ao host dela e tire do .env. Marque para aprovação por chamada as que te dão medo.
stripe → api.stripe.com · aprovação por chamadaCerca de dois minutos. As confirmações que sobram são as do Sallyport, e elas perguntam sobre ações contra infraestrutura real em vez de qual ferramenta pode rodar.
Download grátis. Apple Silicon, macOS 14 ou mais recente. Sem conta, nunca.
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon