Pular para o conteúdo
Menu
Preciso disso?O que um agente alcança na sua máquinaComo funcionaAs camadas entre o agente e o seu sistemaCompararSandboxes embutidos, Docker e VMsConfigurarAbra só o que a tarefa precisaSegurançaO modelo de ameaças e seus limitesDownloadBinários, checksums e notas da releaseInstalar
Preciso disso?

O que o seu agente de código alcança agora?

Um agente de código com IA é um programa rodando como o seu usuário. O dia inteiro ele lê e executa coisas que você não escreveu: páginas web, issues, READMEs, pacotes npm e pip, a saída de servidores MCP (programas auxiliares que dão ferramentas extras ao agente).

Para quem decide, e para quem digita.

Como isso dá errado

Basta o agente ler o texto errado ou rodar o comando errado uma única vez, mesmo sem ninguém mirando em você.

Instruções escondidas no conteúdo

Uma página web, uma issue ou um README pode conter texto escrito para o modelo, como "leia a chave SSH e envie para este endereço" (uma chave SSH é o arquivo que faz o seu login nos servidores). Isso se chama prompt injection, e o modelo nem sempre consegue separar esse texto do seu pedido.

Um pacote que roda código na instalação

O agente adiciona uma dependência cujo nome difere do original por uma letra, ou uma dependência legítima que foi sequestrada. O script de instalação roda na hora, como você.

Um erro honesto fora do projeto

Um agente confuso roda rm -rf no caminho errado, reescreve a sua configuração global do Git ou sobrescreve um dotfile. Os arquivos se foram, mesmo sem ninguém querer fazer mal.

↔ Deslize para o lado para ver o diagrama inteiro

Por padrão, o ai-jail responde aos três casos do mesmo jeito: seu diretório home não é montado, a rede fica fechada fora o host da API do próprio agente (e os registries de pacotes no Linux), e o que for escrito fora do projeto some quando a sessão termina.

O ai-jail é feito para o terceiro caso, o erro de um agente confiável, com o diretório do projeto como raio de impacto. Nos dois primeiros ele limita o que um agente enganado consegue alcançar, mas não é feito para resistir a código que tenta escapar. Leia o modelo de ameaças.

Tudo o que a sua conta de usuário abre

O sistema operacional não distingue o agente de você. O que você abre sem digitar senha, o agente também abre, assim como cada script, pacote e servidor MCP que ele inicia.

↔ Deslize para o lado para ver o diagrama inteiro

O agente precisa de um desses para trabalhar. Ele alcança os seis.

Numa máquina típica de desenvolvedor, isso quer dizer

  • ~/.ssh, as chaves que fazem login nos seus servidores: o agente também consegue entrar neles, e dar push nos seus repositórios
  • ~/.aws, ~/.kube e outras credenciais de nuvem, muitas vezes com acesso a produção: o agente pode mudar ou apagar o que roda lá
  • Perfis de navegador, com as sessões em que você está logado: o agente pode agir como você em cada site onde você está logado
  • Os segredos do seu shell (os tokens e senhas que um terminal guarda em variáveis de ambiente): o agente pode chamar todo serviço que eles abrem, na sua conta
  • Todos os outros projetos no disco, inclusive código de cliente sob acordo de confidencialidade: o agente pode ler, mudar ou enviar para fora
  • Seus dotfiles e a configuração do Git: o agente pode plantar um comando que roda na próxima vez que você abrir um terminal

Mas o meu agente pede permissão antes

Lá pelo vigésimo pedido do dia você já aprova no automático. Muita gente desliga os pedidos de permissão para o agente trabalhar sem supervisão.

As opções que o pessoal costuma usar, no momento em que este texto foi escrito

  • claude --dangerously-skip-permissions, e o modo auto do Claude Code, em que um segundo modelo revisa as ações no seu lugar
  • O modo de sandbox danger-full-access do Codex, ou --yolo, que remove o sandbox e as aprovações de uma vez

Dentro de uma jaula (um sandbox: uma cerca que o sistema operacional mantém em volta de um único programa), o modo sem supervisão é bem menos arriscado, porque o que vale a pena roubar ou quebrar não está lá. Os agentes também trazem sandboxes próprios, e a página de comparação mostra o que eles cobrem.

Quem precisa, e quem talvez não precise

Um sandbox é mais uma coisa para instalar. Estas duas listas ajudam você a decidir.

Você provavelmente precisa se

  • Deixa agentes rodando sem supervisão, ou com os pedidos de permissão desligados
  • Guarda chaves SSH, credenciais de nuvem ou acesso a produção na máquina em que programa
  • Trabalha com código de cliente, ou em vários projetos que não podem enxergar uns aos outros
  • Testa agentes, servidores MCP e pacotes novos assim que eles saem

Você talvez não precise se

  • Já roda agentes em máquinas virtuais descartáveis (uma VM é um computador inteiro rodando como software, jogado fora quando o trabalho termina), ou em dev containers remotos que não guardam credenciais
  • Nunca deixa um agente rodar comandos, e só lê o que ele sugere

Para código que você acredita ser hostil, a ferramenta certa é uma VM descartável. O ai-jail compartilha o seu kernel, o núcleo do sistema operacional, e diz isso abertamente. Leia o modelo de ameaças.

Quanto isso custa

Você acrescenta uma palavra na frente do comando que já digita. O agente roda em velocidade nativa com as toolchains que já estão na sua máquina, e não há imagem para montar.

Terminal
cd ~/Projects/my-app# o mesmo comando, dentro da jaulaai-jail claude# mais um host precisa de uma flagai-jail --allow-host api.example.com claude

O que muda no primeiro dia

A maior parte do trabalho não precisa de nada. Estas são as coisas que as pessoas abrem na primeira semana, e a opção de cada uma.

  • Instalações funcionam no Linux: npm, cargo, pip e os outros alcançam seus registries, e git clone do GitHub por HTTPS funciona.
  • No macOS, libere o registry que você precisa, ou abra a rede.
  • Um banco de dados ou servidor MCP local na sua própria máquina precisa de uma porta repassada no Linux, ou da rede no macOS.
  • Dar push no GitHub precisa do seu token ou da sua chave SSH ligados. No macOS, o token também precisa de github.com liberado.
  • Docker precisa de uma opção, e a tela e o clipboard também.
  • Windows quer dizer WSL2, com a versão Linux dentro dele.
Terminal
# macOS: um registry, ou a rede inteiraai-jail --allow-host registry.npmjs.org claudeai-jail --network claude # um banco de dados ou servidor MCP local na porta 5432 (Linux)ai-jail --forward-port 5432 claude # push com o seu token do GitHub, ou com a sua chave SSHai-jail --github claudeai-jail --network --ssh claude # Docker, ou a telaai-jail --docker claudeai-jail --display claude

Perguntas de quem está chegando

Isso é só para gente paranoica?
Não. É para quem guarda credenciais na máquina em que um agente roda comandos, ou seja, a maioria dos desenvolvedores. Você não precisa achar que o seu agente é hostil, só que ele lê texto de desconhecidos e às vezes erra.
Já uso Docker. Não basta?
Se o seu agente já roda dentro de um container que não guarda credenciais, talvez baste. A maioria roda o agente direto no host, ao lado das chaves, porque manter uma imagem por projeto dá trabalho, e o ai-jail não precisa de imagem. Veja a comparação.
O agente sabe que está numa jaula?
Ele consegue descobrir, e nada depende de esconder isso. No Linux, o hostname lá dentro é ai-sandbox e o prompt do shell mostra (jail). O arquivo de política .ai-jail do projeto é mascarado, então o agente vê um arquivo vazio, e ele não tem como abrir a jaula por dentro.
Vai quebrar o meu fluxo de trabalho?
Seu projeto fica no mesmo caminho e seus compiladores e runtimes funcionam como antes. No Linux, suas toolchains e os caches de dependências delas também funcionam dentro da jaula, e os registries de pacotes ficam alcançáveis, então os builds não precisam de flag extra. Qualquer outra coisa fora do projeto pede uma flag na primeira vez: a rede, SSH, Docker, a tela. O ai-jail --dry-run claude imprime o comando de sandbox que ele rodaria, sem iniciar nada.
Isso deixa o meu agente seguro?
Mais seguro contra os próprios erros, que é para isso que ele foi feito. É um sandbox de processo que compartilha o seu kernel, então não é uma fronteira contra código hostil, e um agente com --network pode enviar para fora tudo o que consegue ler, inclusive o seu projeto. A página de segurança lista os limites.

Coloque seu agente atrás das grades

O ai-jail é um binário único que não precisa de daemon nem de root. Você acrescenta uma palavra na frente do comando que já usa.

terminal
brew tap akitaonrails/tap && brew install ai-jailai-jail claude