- Ferramenta para executar agentes de codificação por IA com permissões completas do sistema, ao mesmo tempo em que bloqueia o risco de danos ao diretório home do usuário
- Principais CLIs de IA, como Claude Code, Codex, Gemini CLI e OpenCode, vêm pré-configurados para rodar em “modo YOLO”
- Monta apenas o diretório do projeto dentro de um contêiner Docker ou Podman, excluindo o diretório home por padrão
- Dentro do contêiner, fornece privilégios de sudo e volumes persistentes para manter ferramentas e configurações entre sessões
- Oferece um ambiente sandbox isolado para que desenvolvedores possam experimentar com segurança recursos de automação por IA
Visão geral
- Yolobox é uma ferramenta que executa agentes de codificação por IA dentro de um contêiner, protegendo o sistema enquanto concede permissões completas de execução
- Mesmo que a IA execute por engano um comando destrutivo como
rm -rf ~ durante a execução de comandos, o diretório home não é afetado
- O diretório do projeto é montado em
/workspace, e o diretório home não é montado por padrão
- Ferramentas e configurações são mantidas entre sessões por meio de volumes persistentes
Principais componentes e recursos
- Dentro do contêiner, o agente de IA tem privilégios de sudo e pode executar comandos livremente
- A imagem padrão inclui
- CLI de IA: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (todos configurados em modo de execução automática)
- Ambiente de desenvolvimento: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
- Utilitários: ripgrep, fd, fzf, jq, vim
- Se necessário, o usuário pode instalar pacotes adicionais manualmente com sudo
Execução e comandos
- Entrar no shell sandbox com o comando
yolobox
- É possível executar um único comando com
yolobox run
- São fornecidos comandos de gerenciamento como
yolobox upgrade, yolobox config, yolobox reset --force e yolobox version
- Principais flags
--runtime: escolher entre docker ou podman
--no-network: desativar a rede
--readonly-project: montar o projeto como somente leitura
--claude-config: copiar a configuração do Claude do host para o contêiner
Modelo de segurança
- Usa o isolamento de contêiner como fronteira de segurança
- O contêiner separa sistema de arquivos, processos e rede por meio de namespaces do Linux
- A IA tem privilégios de root dentro do contêiner, mas não pode acessar o sistema externo
- Itens protegidos
- Diretório home, chaves SSH, credenciais, dotfiles, outros projetos e arquivos do sistema do host
- Itens não protegidos
- Diretório do projeto (com leitura/escrita por padrão)
- Acesso à rede (pode ser bloqueado por opção)
- Vulnerabilidades do kernel ou ataques de escape de contêiner
Etapas de reforço de segurança
- Modo padrão: isolamento padrão de contêiner
- Etapa 2: reduzir a superfície de ataque com as opções
--no-network --readonly-project
- Etapa 3: usar Rootless Podman para remover privilégios de root no host
- O root do contêiner é mapeado para um usuário comum do host, minimizando danos em caso de escape
- Etapa 4: executar dentro de uma VM para eliminar o compartilhamento do kernel
- No macOS, usar UTM, Parallels, Lima; no Linux, Podman machine ou uma VM dedicada
Isolamento de rede
- O Rootless Podman usa por padrão a rede slirp4netns, separada da rede do host
- É possível bloquear o acesso à rede local com a configuração
allow_host_loopback=false
Licença e outros
- Disponibilizado sob a licença MIT
- Composição de linguagens do repositório: Go 75.9%, Dockerfile 13.6%, Shell 8.7%, Makefile 1.8%
- O nome “Yolobox” vem do espírito “YOLO (You Only Live Once)” e significa um ambiente em que a IA pode ser executada livremente, mas com isolamento seguro
1 comentários
Comentários no Hacker News
Recentemente criei um projeto parecido chamado Litterbox (site de demonstração)
É só para Linux, porque depende de Podman. Em compensação, tem algumas vantagens que atendem ao meu caso de uso
Eu também estava experimentando algo parecido.
Seria bom explicar claramente no README como isso funciona e quais são as fronteiras de confiança (baseadas em contêiner Docker). Ainda existe risco de fuga do contêiner, já que vulnerabilidades do kernel podem ser exploradas
Estou usando Rootless Podman com
slirp4netnspara minimizar o acesso à rede.Como próximo passo, quero usar Podman machine para isolar completamente o kernel, mas o mount de volumes não está funcionando bem
Sugestão de colocar as Três Leis da Robótica de Asimov em
agents.mdouclaude.mdclaude.mdtem o efeito de “injetar” o conceito na mente do modelo. Modelos antigos, quando recebiam algo como “não use a palavra elefante”, acabavam produzindo resultados estranhos tentando evitar justamente essa palavraRecomendo dar uma olhada no Shai. Ele roda localmente e permite controlar permissões de acesso a diretórios e tráfego de rede
Com
shai -rw .você permite leitura/escrita no diretório atual, e comshai -u rootpode executar como outro usuárioO Shai segue uma filosofia de bloqueio por padrão, permissão explícita (opt-in). Recomendamos compartilhar
.shai/config.yamlno repositório para que toda a equipe use a mesma configuração--no-networkEstou desenvolvendo o yolo-cage. Se o Yolobox foca em proteger a máquina local, o yolo-cage foca em prevenir vazamento de segredos e colaboração entre múltiplos agentes
Ele roda em Kubernetes e inspeciona todo o tráfego de saída para impedir vazamento de chaves de API ou tokens.
Impõe isolamento de branches Git para que agentes não consigam fazer merge do próprio PR — “o agente propõe, o humano aprova”
Também incorpora um framework de testes de fuga, induzindo o Claude a tentar escapar por conta própria. Esses prompts ficam no repositório para verificar se o agente é real
Fiquei curioso por que é necessário marcar commits com “claude”. Ninguém faz isso com versão de OS ou do vim. No fim das contas, LLM é só uma ferramenta que compila inglês em código
Eu também tentei algo parecido. Criei o Toadbox com mais alguns recursos de conveniência
Fala-se muito de sandbox para IA, mas na verdade Claude Code, Codex e Gemini CLI já têm sandbox embutido
Estou implementando algo parecido usando Apple Container Framework. Queria saber se você já analisou isso
Mas ainda faltam compatibilidade com a API do Docker e composabilidade. Resumi a discussão aqui
Eu originalmente queria colocar o Shai sobre Apple Container, mas desisti por causa de problemas de empacotamento
Também estou fazendo algo parecido → sandbox-codex
Ainda está em andamento, e a legibilidade dos logs do tmux não está boa. Como Docker não é um sandbox completo, estou rodando em VirtualBox