
Il tuo agente è un rischio per la sicurezza, quindi trattalo come tale. yoloAI gestisce correttamente il sandboxing degli agenti AI.
Esecutore in sandbox per agenti di codifica AI. Nessuna stanchezza da permessi, nessuna credenziale nella sandbox, nessuna modifica al tuo progetto finché non le approvi.
Gli agenti di codifica AI funzionano al meglio con i blocchi di sicurezza disattivati, e questo è un modo terribile di eseguirli sulla tua macchina reale. yoloAI offre all'agente una sandbox usa e getta dove può modificare qualsiasi cosa ed eseguire qualsiasi cosa, senza supervisione. Il tuo progetto, le tue credenziali e la tua rete restano sotto il tuo controllo. Quando l'agente ha finito, esamina il diff e applica ciò che vuoi conservare.
Tu Sandbox Il tuo progetto
│ │ │
├─ yoloai new fix-bug . ├─ copia del progetto in sandbox │
│ │ │
├─ << i tuoi prompt >> ├─ l'agente lavora liberamente │
│ │ (nessuna richiesta di permessi)│
│ │ │
├─ yoloai diff fix-bug ├─ mostra cosa è cambiato │
│ │ │
├─ yoloai apply fix-bug │ ├─ patch applicate
│ (scegli tu quali) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ distrugge la sandbox │
Le richieste di permesso esistono perché gli agenti commettono errori. Dopo la centesima approvazione/negazione smetti di leggerle, e --dangerously-skip-permissions è a un agente confuso di distanza da una giornata molto brutta. yoloAI riduce il raggio d'esplosione finché le richieste di permesso non sono più necessarie:
diff mostra esattamente cosa è cambiato, apply applica le patch al tuo progetto reale preservando i singoli commit, e i tuoi originali non cambiano mai finché non applichi.--network-isolated limita il traffico in uscita agli endpoint API dell'agente più i domini che permetti. --network-none rimuove la rete completamente.Vedi Sicurezza per il modello completo, incluse le limitazioni oneste.
Scarica l'archivio per la tua piattaforma dall'ultima release, estrai il binario yoloai e mettilo nel tuo PATH:
# Linux x86-64 (sostituisci con linux_arm64 / darwin_amd64 / darwin_arm64 se necessario).
# Imposta VERSION sul tag mostrato nella pagina dell'ultima release linkata sopra, senza
# la "v" iniziale — es. VERSION=1.2.3 per il 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/
Ogni archivio include anche i completamenti per la shell, la LICENSE e il changelog. Le release sono firmate con cosign (checksums.txt) e portano la provenienza di build GitHub (gh attestation verify yoloai_… --repo kstenerud/yoloai). Anche i pacchetti Debian/RPM sono allegati a ogni release.
brew install --cask kstenerud/tap/yoloai
go install# Ultima release
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# Ultima versione di sviluppo (instabile)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Richiede Go 1.26+. Il binario viene posizionato in $GOPATH/bin (tipicamente ~/go/bin).
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # tag dell'ultima release; oppure resta su main per la versione di sviluppo
make build
sudo install yoloai /usr/local/bin/
È un singolo binario Go senza dipendenze runtime oltre al backend che scegli. Al primo avvio, yoloAI costruisce la sua immagine base e crea ~/.yoloai/ (o la directory che indichi con --data-dir).
# Autenticazione (yoloAI rileva automaticamente le credenziali esistenti)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# Oppure lascia che rilevi la tua sessione già autenticata
# 1. Avvia una sandbox. L'agente inizia a lavorare immediatamente quando fornisci un prompt
yoloai new fix-bug ./my-project --prompt "correggi i test che falliscono"
# 2. Vedi cosa ha cambiato l'agente
yoloai diff fix-bug
# 3. Applica le parti buone al tuo progetto reale
yoloai apply fix-bug
# 4. Elimina la sandbox
yoloai destroy fix-bug
yoloai new exploration ./my-project -a
# Sei dentro l'agente, in esecuzione in tmux nella sandbox.
# Ctrl-B, D per scollegarti.
# yoloai attach exploration per ricollegarti.
Per sessioni più lunghe, lavora in un ciclo: di' all'agente di fare commit man mano che procede, ed esegui yoloai apply da un altro terminale ogni volta che vuoi portare i commit finiti nel tuo progetto reale. Ogni apply porta solo i nuovi commit dall'ultima volta. Quando sei soddisfatto del risultato, fai push come al solito e distruggi la sandbox. Vedi la Guida all'uso per il flusso di lavoro completo.
Creazione di una sandbox, invio del prompt all'agente e applicazione dei risultati:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Sandboxing
--env, --dir).--cpus, --memory) e port forwarding (--port).clonefile), reflink per file su filesystem Linux che li supportano (btrfs, XFS). I filesystem senza reflink (ext4) ricevono una copia normale..gitignore rispettato: qualsiasi cosa ignorata NON viene copiata nella sandbox (pratica di sicurezza per le credenziali di sviluppo su disco).Credenziali
Flusso di lavoro
.patch, seleziona commit per ref, oppure --dry-run prima.yoloai run --prompt ... --rm, con output --json su ogni comando.Integrazione
shell per qualsiasi altra cosa.--vscode-tunnel).yoloai mcp serve permette a un agente esterno di pilotare le sandbox come strumenti; yoloai mcp proxy esegue server MCP dentro una sandbox.yoloai x).~/.yoloai/ (spostabile con --data-dir).Nota: Tart fornisce una VM macOS completa, permettendoti di eseguire simulatori dentro la sandbox.
Opzionalmente aggiorna il runtime OCI per un isolamento più forte. Le modalità gVisor sono disponibili su docker e podman; le modalità VM arrivano con il backend containerd.
# Usa gVisor per tutte le nuove sandbox
yoloai config set isolation container-enhanced
# Oppure per sandbox
yoloai new task . --isolation container-enhanced
Usa yoloai system agents per elencare gli agenti disponibili.
Beta pubblica. Il flusso di lavoro principale è stabile e usato quotidianamente; le interfacce possono ancora cambiare tra le release 0.x, e ogni modifica che rompe la compatibilità è documentata in BREAKING-CHANGES. Il feedback è benvenuto.
| Backend | Host supportati | Dipendenze |
|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop, o OrbStack |
| podman | Linux, macOS | Podman (brew install podman su macOS) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (qualsiasi) | Nessuna (usa sandbox-exec integrato) |
| Modalità | Descrizione |
|---|
container | runc di default: namespace Linux standard e cgroups |
container-enhanced | Kernel in userspace (gVisor/runsc): intercettazione delle syscall, nessun KVM necessario |
container-privileged | Tutte le capability, seccomp/AppArmor non confinati. Usa per Docker-in-Docker e Compose |
vm | Kata Containers (QEMU): isolamento con VM hardware |
vm-enhanced | Kata + Firecracker microVM: isolamento con VM leggera |
| Modalità | Descrizione |
|---|
claude | Esegue Claude Code tramite chiave API o credenziali di abbonamento (default) |
codex | Esegue Codex tramite chiave API o credenziali di abbonamento |
gemini | Esegue Gemini CLI tramite chiave API o credenziali di abbonamento |
aider | Esegue Aider (la tua configurazione viene copiata dentro) |
opencode | Esegue OpenCode (la tua configurazione viene copiata dentro) |
shell | Esegue una shell tmux con tutte le credenziali dell'agente pre-caricate |
idle | Esegue un processo inattivo per consentire il proxying MCP |