
Agents de codage IA qui ne peuvent pas exfiltrer de secrets ni fusionner leurs propres PRs.
Vous êtes un ingénieur responsable. Vous ne laisseriez jamais une IA piétiner vos systèmes et codebases les plus sensibles.
C'est pourquoi vous ne désactiveriez jamais les protections d'un outil comme Claude Code. Il demande la permission pour chaque action dangereuse ! Sécurisé !
Alors vous attendez. Et vous répondez. La fatigue décisionnelle s'installe. Et c'est là que ça arrive.
Les invites de permission négligent la partie la plus faible du modèle de menace : un utilisateur fatigué. Et si nous pouvions habiliter l'agent tout en limitant son rayon d'explosion, reportant ainsi vos décisions jusqu'à la revue de PR ?
Ce serait génial ! Et ce serait yolo-cage.
curl -fsSL https://github.com/borenstein/yolo-cage/releases/latest/download/yolo-cage -o yolo-cage
chmod +x yolo-cage && sudo mv yolo-cage /usr/local/bin/
yolo-cage build --interactive --up
Créez ensuite un sandbox et commencez à coder :
yolo-cage create feature-branch
yolo-cage attach feature-branch # Attach to agent in tmux
Prérequis : Vagrant avec libvirt (Linux) ou QEMU (macOS, expérimental), 8 Go de RAM, 4 CPU, jeton GitHub PAT (scope repo), compte Claude. Voir la documentation d'installation pour les détails.
Secrets dans HTTP/HTTPS - egress proxy analyse les corps de requêtes, les en-têtes, les URLs :
sk-ant-*, AKIA*, ghp_*, clés privées SSH, motifs génériques d'identifiantsOpérations Git - dispatcher applique branch isolation :
git remote, git clone, git config, git credentialGitHub CLI - dispatcher bloque les commandes dangereuses :
gh pr merge, gh repo delete, gh apiGitHub API - proxy bloque au niveau HTTP :
PUT /repos/*/pulls/*/merge, DELETE /repos/*, modifications de webhooksSites d'exfiltration : pastebin.com, file.io, transfer.sh, etc.
Voir Architecture pour le modèle de menace complet.
┌──────────────────────────────────────────────────────────────────────────┐
│ Runtime (Vagrant VM + MicroK8s) │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ Sandbox │ │
│ │ │ │
│ │ Agent (Claude Code in YOLO mode) │ │
│ │ │ │ │
│ │ ├── git/gh ──▶ Dispatcher ──▶ GitHub │ │
│ │ │ • Branch isolation enforcement │ │
│ │ │ • TruffleHog pre-push scanning │ │
│ │ │ │ │
│ │ └── HTTP/S ──▶ Egress Proxy ──▶ Internet │ │
│ │ • Secret scanning (LLM-Guard) │ │
│ │ • Domain blocklist │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
Un sandbox par branche. Les agents ne peuvent pousser que vers leur branche assignée. Tout le trafic sortant est filtré.
Accédez aux applications web s'exécutant dans un sandbox :
yolo-cage port-forward feature-x 8080 # localhost:8080 → sandbox:8080
yolo-cage port-forward feature-x 9000:3000 # localhost:9000 → sandbox:3000
yolo-cage port-forward feature-x 8080 --bind 0.0.0.0 # Accessible sur le LAN
Voir Configuration pour le contournement du proxy, les hooks et les limites de ressources.
Cela réduit le risque. Cela ne l'élimine pas.
Utilisez des identifiants à portée limitée. N'utilisez pas de secrets de production là où l'exfiltration serait catastrophique. Voir Security Audit pour le tester vous-même.
MIT. Voir LICENSE.
| Commande | Description |
|---|
create <branch> | Créer un sandbox |
attach <branch> | Attacher (Claude dans tmux) |
shell <branch> | Attacher (bash) |
list | Lister les sandbox |
delete <branch> | Supprimer un sandbox |
port-forward <branch> <port> | Transférer un port depuis le sandbox |
up / down | Démarrer/arrêter la VM |
upgrade [--rebuild] | Mettre à niveau vers la dernière version |
version | Afficher la version |