
yoloai v0.11.0
O seu agente é um risco de segurança, então trate-o como tal. O yoloAI faz sandboxing de agentes de IA corretamente.
yoloAI
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 │
Por quê?
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:
- Seus arquivos estão seguros. O agente trabalha em uma cópia isolada do seu projeto. O
diffmostra exatamente o que mudou, oapplyaplica patches no seu projeto real preservando commits individuais, e seus originais nunca mudam até você aplicar. - Seus segredos estão seguros. O sandbox inicia a partir de um ambiente mínimo, construído localmente; as variáveis de ambiente do host permanecem no host. As credenciais chegam como montagens de arquivos somente leitura, nunca como variáveis de ambiente. Quando o broker de credenciais se aplica (Claude, Gemini e Codex hoje, ativado por padrão), a chave de API permanece inteiramente no lado do host: um proxy local a injeta no caminho até o provedor, então mesmo um agente totalmente comprometido não tem nada para exfiltrar.
- Sua rede é sua.
--network-isolatedrestringe a saída aos endpoints da API do agente mais os domínios que você permitir.--network-noneremove a rede completamente. - Sua máquina está isolada. Escolha seu nível de conforto, desde namespaces do Linux até gVisor e VMs de hardware.
Consulte Segurança para o modelo completo, incluindo limitações honestas.
Instalação
Binário pré-compilado (recomendado)
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.
Homebrew (macOS / Linux)
brew install --cask kstenerud/tap/yoloai
Usando 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).
A partir do código-fonte
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).
Início rápido
Não interativo
# 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
Interativo
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.
Iterando
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.
Demonstração
Criando um sandbox, enviando um prompt ao agente e aplicando os resultados:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Recursos
Sandboxing
- Seis backends: Docker, Podman, containerd (Kata), Apple Container, Tart e Seatbelt. Funciona em Linux, macOS e Windows (WSL2).
- Força de isolamento selecionável por sandbox, de runc a gVisor até VMs Kata (QEMU ou Firecracker).
- Política de rede por sandbox: aberta, lista de permissões ou nenhuma.
- Ambiente mínimo dentro do sandbox. Qualquer coisa do host é um opt-in explícito (
--env,--dir). - Limites de recursos (
--cpus,--memory) e encaminhamento de portas (--port). - Cópias baratas do diretório de trabalho: clones de árvore inteira no macOS (APFS
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. .gitignorerespeitado: qualquer coisa ignorada NÃO é copiada para o sandbox (prática de segurança para credenciais de desenvolvimento em disco).
Credenciais