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).
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.