
Sandbox basé sur Docker pour agents de codage avec environnements isolés, outils d'agent préinstallés, contrôle des services et amorçage d'espace de travail pour un développement sécurisé multi-session.

Il n'existe pas de moyen parfait pour mettre en bac à sable les agents (pour l'instant), mais les conteneurs constituent un point de départ pratique.
Agentbox est un bac à sable pour agents de codage basé sur Docker, initialement inspiré de Batrachian Toad, et maintenant généralisé à davantage d'outils.
Il fournit un environnement isolé qui fonctionne bien avec webterm pour exécuter plusieurs sessions d'agents.
Le conteneur par défaut fournit :
lazygit, killalluv et Buntoad, opencode, gemini et vibe via make -C ~ ...ENABLE_DOCKER, ENABLE_SSH et ENABLE_RDPENABLE_SSH=true) et support mosh/home/agent/workspace-skelAgentbox utilise des variables d'environnement pour contrôler quels services démarrent au lancement du conteneur :
ENABLE_DOCKER=true - Démarrer le daemon Docker (pour le support Docker-in-Docker)ENABLE_SSH=true - Démarrer le serveur SSH (port 22)ENABLE_RDP=true - Démarrer le serveur RDP (port 3389)AGENTBOX_ENVIRONMENT=cli|gui - Marqueur d'environnement fourni par l'image (cli pour headless/CLI, gui pour les images de bureau)Comportement par défaut : Tous les services sont désactivés sauf s'ils sont explicitement activés.
# Default - all services disabled
docker run -d agentbox
# Enable only Docker daemon
docker run -d -e ENABLE_DOCKER=true agentbox
# Enable Docker and SSH for development
docker run -d -e ENABLE_DOCKER=true -e ENABLE_SSH=true -p 22:22 agentbox
# Full desktop experience with all services (GUI image)
docker run -d -e ENABLE_DOCKER=true -e ENABLE_SSH=true -e ENABLE_RDP=true -p 22:22 -p 3389:3389 agentbox:gui
À l'intérieur du conteneur, l'utilisateur agent est livré avec un ~/Makefile qui peut installer des outils supplémentaires.
Agents de codage/CLI que vous pouvez installer via make -C ~ … :
toad — installe Batrachian Toad (via uv tool)opencode — installe OpenCode (via Bun)gemini — installe Gemini CLI (via Homebrew)vibe — installe mistral-vibe (via uv tool)Cibles de commodité :
tools — installe node, go, gemini, vibenode, go — installe les chaînes d'outils de langage (prérequis pour certains agents)Agentbox est livré avec un squelette de projet intégré à /home/agent/workspace-skel.
Pour le copier dans votre répertoire /workspace actuel sans écraser les fichiers existants :
make init-workspace
Voir docs/workspace-skeleton.md pour plus de détails.
La version GUI est publiée sous le tag :gui (également <release>-gui) et inclut XFCE, XRDP et VS Code.
Flux de travail recommandé :
make up
make enter-toad # or: make enter-copilot
make down
Si vous avez besoin de surcharger les services, créez docker-compose.override.yml :
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Ensuite, exécutez :
docker compose up -d
# Build the headless image
docker build -t agentbox .
# Build the GUI image
docker build -t agentbox:gui --target gui .
# Run the container with selected services (GUI image)
docker run -d \
--name agentbox \
--privileged \
-e ENABLE_DOCKER=true \
-e ENABLE_SSH=true \
-e ENABLE_RDP=true \
-p 22:22 \
-p 3389:3389 \
-v $(pwd):/workspace \
agentbox:gui
Une fois connecté au conteneur :
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Ce projet est librement basé sur mon ancien rcarmo/docker-templates/desktop-chrome avec un userland mis à jour.
MIT