
Votre agent est un risque de sécurité, alors traitez-le comme tel. yoloAI maîtrise le sandboxing des agents IA.
Exécuteur en bac à sable pour agents de codage IA. Fini la fatigue des autorisations, aucun identifiant dans le bac à sable, aucune modification de votre projet tant que vous ne les approuvez pas.
Les agents de codage IA donnent le meilleur d'eux-mêmes sans garde-fous, et c'est une bien mauvaise façon de les exécuter sur votre vraie machine. yoloAI offre à l'agent un bac à sable jetable où il peut modifier n'importe quoi et exécuter n'importe quoi, sans surveillance. Votre projet, vos identifiants et votre réseau restent sous votre contrôle. Une fois l'agent terminé, examinez le diff et appliquez ce que vous souhaitez conserver.
Vous Bac à sable Votre projet
│ │ │
├─ yoloai new fix-bug . ├─ copie du projet dans le bac │
│ │ │
├─ << vos invites >> ├─ l'agent travaille librement │
│ │ (aucune invite d'autorisation)│
│ │ │
├─ yoloai diff fix-bug ├─ affiche ce qui a changé │
│ │ │
├─ yoloai apply fix-bug │ ├─ correctifs appliqués
│ (vous choisissez lesquels) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ détruit le bac à sable │
Les invites d'autorisation existent parce que les agents font des erreurs. Après la centième approbation/refus, vous arrêtez de les lire, et --dangerously-skip-permissions n'est qu'un agent confus loin d'une très mauvaise journée. yoloAI réduit le rayon d'impact jusqu'à ce que les invites deviennent inutiles :
diff montre exactement ce qui a changé, apply corrige votre vrai projet tout en préservant les commits individuels, et vos originaux ne changent jamais tant que vous n'appliquez pas.--network-isolated restreint le trafic sortant aux points de terminaison API de l'agent plus les domaines que vous autorisez. --network-none supprime complètement le réseau.Consultez Sécurité pour le modèle complet, y compris les limites honnêtes.
Téléchargez l'archive pour votre plateforme depuis la dernière version, extrayez le binaire yoloai et placez-le sur votre PATH :
# Linux x86-64 (remplacez par linux_arm64 / darwin_amd64 / darwin_arm64 selon vos besoins).
# Définissez VERSION sur le tag affiché sur la page de la dernière version liée ci-dessus, sans
# le "v" initial — par ex. VERSION=1.2.3 pour le 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/
Chaque archive inclut également les complétions shell, la LICENSE et le journal des modifications. Les versions sont signées avec cosign (checksums.txt) et portent la provenance de build GitHub (gh attestation verify yoloai_… --repo kstenerud/yoloai). Des paquets Debian/RPM sont également joints à chaque version.
brew install --cask kstenerud/tap/yoloai
go install# Dernière version
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# Dernière version de développement (instable)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Nécessite Go 1.26+. Le binaire est placé dans $GOPATH/bin (généralement ~/go/bin).
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # tag de la version la plus récente ; ou restez sur main pour la version de développement
make build
sudo install yoloai /usr/local/bin/
C'est un binaire Go unique sans dépendances d'exécution au-delà du backend de votre choix. Au premier lancement, yoloAI construit son image de base et crée ~/.yoloai/ (ou le répertoire que vous pointez avec --data-dir).
# Authentification (yoloAI détecte automatiquement les identifiants existants)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# Ou laissez-le simplement détecter votre session déjà authentifiée
# 1. Lancez un bac à sable. L'agent commence à travailler immédiatement lorsque vous fournissez une invite
yoloai new fix-bug ./my-project --prompt "corrigez les tests qui échouent"
# 2. Voyez ce que l'agent a modifié
yoloai diff fix-bug
# 3. Appliquez les bonnes parties à votre vrai projet
yoloai apply fix-bug
# 4. Jetez le bac à sable
yoloai destroy fix-bug
yoloai new exploration ./my-project -a
# Vous êtes dans l'agent, exécuté dans tmux dans le bac à sable.
# Ctrl-B, D pour détacher.
# yoloai attach exploration pour vous reconnecter.
Pour les sessions plus longues, travaillez en boucle : dites à l'agent de faire des commits au fur et à mesure, et exécutez yoloai apply depuis un autre terminal chaque fois que vous souhaitez récupérer les commits terminés dans votre vrai projet. Chaque application ne ramène que les nouveaux commits depuis la dernière. Lorsque vous êtes satisfait du résultat, poussez comme d'habitude et détruisez le bac à sable. Consultez le Guide d'utilisation pour le flux de travail complet.
Création d'un bac à sable, invite de l'agent et application des résultats :
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
Bac à sable
--env, --dir).--cpus, --memory) et redirection de ports (--port).clonefile), reflinks par fichier sur les systèmes de fichiers Linux qui les prennent en charge (btrfs, XFS). Les systèmes de fichiers sans reflink (ext4) obtiennent une copie classique..gitignore respecté : tout ce qui est ignoré n'est PAS copié dans le bac à sable (pratique de sécurité pour les identifiants de développement sur disque).Identifiants
Flux de travail
.patch, sélectionnez des commits par référence, ou --dry-run d'abord.yoloai run --prompt ... --rm, avec sortie --json sur chaque commande.Intégration
shell pour tout le reste.--vscode-tunnel).yoloai mcp serve permet à un agent externe de piloter des bacs à sable comme outils ; yoloai mcp proxy exécute des serveurs MCP dans un bac à sable.yoloai x).~/.yoloai/ (déplaçable avec --data-dir).Remarque : Tart fournit une VM macOS complète, vous permettant d'exécuter des simulateurs dans le bac à sable.
Mettez éventuellement à niveau le runtime OCI pour une isolation plus forte. Les modes gVisor sont disponibles sur docker et podman ; les modes VM sont fournis avec le backend containerd.
# Utilisez gVisor pour tous les nouveaux bacs à sable
yoloai config set isolation container-enhanced
# Ou par bac à sable
yoloai new task . --isolation container-enhanced
Utilisez yoloai system agents pour lister les agents disponibles.
Bêta publique. Le flux de travail principal est stable et utilisé quotidiennement ; les interfaces peuvent encore changer entre les versions 0.x, et chaque changement cassant est documenté dans BREAKING-CHANGES. Les retours sont les bienvenus.
| Backend | Hôtes pris en charge | Dépendances |
|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop ou OrbStack |
| podman | Linux, macOS | Podman (brew install podman sur macOS) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (tous) | Aucune (utilise sandbox-exec intégré) |
| Mode | Description |
|---|
container | runc par défaut : espaces de noms Linux et cgroups standard |
container-enhanced | Noyau en espace utilisateur (gVisor/runsc) : interception des appels système, pas besoin de KVM |
container-privileged | Toutes les capacités, seccomp/AppArmor non confinés. À utiliser pour Docker-in-Docker et Compose |
vm | Kata Containers (QEMU) : isolation par VM matérielle |
vm-enhanced | Kata + microVM Firecracker : isolation par VM légère |
| Mode | Description |
|---|
claude | Exécute Claude Code via clé API ou identifiants d'abonnement (par défaut) |
codex | Exécute Codex via clé API ou identifiants d'abonnement |
gemini | Exécute Gemini CLI via clé API ou identifiants d'abonnement |
aider | Exécute Aider (votre configuration est copiée) |
opencode | Exécute OpenCode (votre configuration est copiée) |
shell | Exécute un shell tmux avec tous les identifiants d'agent préchargés |
idle | Exécute un processus inactif pour permettre le proxy MCP |