
O seu agente é um risco de segurança, então trate-o como tal. O yoloAI faz sandboxing de agentes de IA corretamente.
Executor em sandbox para agentes de codificação com IA. Sem fadiga de permissões, sem credenciais no ambiente, sem alterações no seu projeto até você aprová-las.
Agentes de codificação com IA funcionam melhor com as proteções desativadas, e essa é uma péssima forma de executá-los na sua máquina real. O yoloAI oferece ao agente um sandbox descartável onde ele pode editar qualquer coisa e executar qualquer coisa, sem supervisão. Seu projeto, suas credenciais e sua rede permanecem sob seu controle. Quando o agente terminar, revise o diff e aplique o que deseja manter.
Você Sandbox Seu projeto
│ │ │
├─ yoloai new fix-bug . ├─ cópia do projeto no sandbox │
│ │ │
├─ << seus prompts >> ├─ agente trabalha livremente │
│ │ (sem prompts de permissão) │
│ │ │
├─ yoloai diff fix-bug ├─ mostra o que mudou │
│ │ │
├─ yoloai apply fix-bug │ ├─ patches aplicados
│ (você escolhe quais) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ destrói o sandbox │
Os prompts de permissão existem porque os agentes cometem erros. Após a centésima aprovação/negação, você para de lê-los, e --dangerously-skip-permissions está a um agente confuso de distância de um dia muito ruim. O yoloAI reduz o raio de impacto até que os prompts se tornem desnecessários:
diff mostra exatamente o que mudou, o apply aplica patches no seu projeto real preservando commits individuais, e seus originais nunca mudam até você aplicar.--network-isolated restringe a saída aos endpoints da API do agente mais os domínios que você permitir. --network-none remove a rede completamente.Consulte Segurança para o modelo completo, incluindo limitações honestas.
Baixe o arquivo para sua plataforma na última versão, extraia o binário yoloai e coloque-o no seu PATH:
# Linux x86-64 (substitua por linux_arm64 / darwin_amd64 / darwin_arm64 conforme necessário).
# Defina VERSION como a tag mostrada na página da última versão vinculada acima, sem
# o "v" inicial — ex.: VERSION=1.2.3 para a tag v1.2.3.
VERSION=X.Y.Z
curl -fsSL "https://github.com/kstenerud/yoloai/releases/download/v${VERSION}/yoloai_${VERSION}_linux_amd64.tar.gz" \
| tar -xz yoloai
sudo install yoloai /usr/local/bin/
Cada arquivo também inclui completions de shell, o LICENSE e o changelog. As versões são assinadas com cosign (checksums.txt) e possuem proveniência de build do GitHub (gh attestation verify yoloai_… --repo kstenerud/yoloai). Pacotes Debian/RPM também são anexados a cada versão.
brew install --cask kstenerud/tap/yoloai
go install# Última versão
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# Última versão de desenvolvimento (instável)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Requer Go 1.26+. O binário é colocado em $GOPATH/bin (normalmente ~/go/bin).
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # tag da versão mais recente; ou permaneça na main para a versão de desenvolvimento
make build
sudo install yoloai /usr/local/bin/
É um único binário Go sem dependências de runtime além do backend escolhido. Na primeira execução, o yoloAI constrói sua imagem base e cria ~/.yoloai/ (ou o diretório que você apontar com --data-dir).
# Autentique-se (o yoloAI capta credenciais existentes automaticamente)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# Ou apenas deixe-o captar sua sessão já autenticada
# 1. Crie um sandbox. O agente começa a trabalhar imediatamente quando você fornece um prompt
yoloai new fix-bug ./my-project --prompt "corrija os testes que estão falhando"
# 2. Veja o que o agente mudou
yoloai diff fix-bug
# 3. Aplique as partes boas ao seu projeto real
yoloai apply fix-bug
# 4. Descarte o sandbox
yoloai destroy fix-bug
yoloai new exploration ./my-project -a
# Você está dentro do agente, executando em tmux no sandbox.
# Ctrl-B, D para desconectar.
# yoloai attach exploration para reconectar.
Para sessões mais longas, trabalhe em um loop: diga ao agente para fazer commits conforme avança e execute yoloai apply de outro terminal sempre que quiser trazer os commits concluídos para o seu projeto real. Cada apply traz apenas os novos commits desde o último. Quando estiver satisfeito com o resultado, faça push como de costume e destrua o sandbox. Consulte o Guia de Uso para o fluxo de trabalho completo.
Criando um sandbox, enviando um prompt ao agente e aplicando os resultados:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Sandboxing
--env, --dir).--cpus, --memory) e encaminhamento de portas (--port).clonefile), reflinks por arquivo em sistemas de arquivos Linux que os suportam (btrfs, XFS). Sistemas de arquivos sem reflink (ext4) recebem uma cópia normal..gitignore respeitado: qualquer coisa ignorada NÃO é copiada para o sandbox (prática de segurança para credenciais de desenvolvimento em disco).Credenciais
Fluxo de trabalho
.patch, selecione commits por ref ou use --dry-run primeiro.yoloai run --prompt ... --rm, com saída --json em todos os comandos.Integração
shell para qualquer outra coisa.--vscode-tunnel).yoloai mcp serve permite que um agente externo controle sandboxes como ferramentas; yoloai mcp proxy executa servidores MCP dentro de um sandbox.yoloai x).~/.yoloai/ (realocável com --data-dir).Nota: O Tart fornece uma VM macOS completa, permitindo executar simuladores dentro do sandbox.
Opcionalmente, atualize o runtime OCI para um isolamento mais forte. Os modos gVisor estão disponíveis no docker e no podman; os modos de VM vêm com o backend containerd.
# Use gVisor para todos os novos sandboxes
yoloai config set isolation container-enhanced
# Ou por sandbox
yoloai new task . --isolation container-enhanced
Use yoloai system agents para listar os agentes disponíveis.
Beta público. O fluxo de trabalho principal é estável e exercitado diariamente; as interfaces podem mudar entre versões 0.x, e toda mudança que quebra compatibilidade é documentada em BREAKING-CHANGES. Feedback é bem-vindo.
| Backend | Hosts suportados | Dependências |
|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop ou OrbStack |
| podman | Linux, macOS | Podman (brew install podman no macOS) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (qualquer) | Nenhuma (usa o sandbox-exec integrado) |
| Modo | Descrição |
|---|
container | runc padrão: namespaces e cgroups padrão do Linux |
container-enhanced | Kernel em userspace (gVisor/runsc): interceptação de syscalls, sem necessidade de KVM |
container-privileged | Todas as capabilities, seccomp/AppArmor sem confinamento. Use para Docker-in-Docker e Compose |
vm | Kata Containers (QEMU): isolamento por VM de hardware |
vm-enhanced | Kata + Firecracker microVM: isolamento por VM leve |
| Modo | Descrição |
|---|
claude | Executa o Claude Code via chave de API ou credenciais de assinatura (padrão) |
codex | Executa o Codex via chave de API ou credenciais de assinatura |
gemini | Executa o Gemini CLI via chave de API ou credenciais de assinatura |
aider | Executa o Aider (sua configuração é copiada) |
opencode | Executa o OpenCode (sua configuração é copiada) |
shell | Executa um shell tmux com todas as credenciais do agente semeadas |
idle | Executa um processo ocioso para permitir proxy MCP |