
Sandbox basato su Docker per agenti di codifica con ambienti isolati, strumenti per agenti preinstallati, controllo dei servizi e bootstrap dell'area di lavoro per uno sviluppo sicuro multi-sessione.

Non esiste ancora un modo perfetto per isolare gli agent, ma i container sono un inizio pratico.
Agentbox è una sandbox per agent di codifica basata su Docker, originariamente ispirata da Batrachian Toad, e ora generalizzata per più strumenti.
Fornisce un ambiente isolato che funziona bene con webterm per eseguire più sessioni di agent.
Il container predefinito fornisce:
lazygit, killalluv e Buntoad, opencode, gemini e vibe tramite make -C ~ ...ENABLE_DOCKER, ENABLE_SSH e ENABLE_RDPENABLE_SSH=true) e mosh/home/agent/workspace-skelAgentbox utilizza variabili d'ambiente per controllare quali servizi avviare all'avvio del container:
ENABLE_DOCKER=true - Avvia il demone Docker (per supporto Docker-in-Docker)ENABLE_SSH=true - Avvia il server SSH (porta 22)ENABLE_RDP=true - Avvia il server RDP (porta 3389)AGENTBOX_ENVIRONMENT=cli|gui - Indicatore ambiente fornito dall'immagine (cli per headless/CLI, gui per immagini desktop)Comportamento predefinito: Tutti i servizi sono disabilitati a meno che non siano esplicitamente abilitati.
# 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
All'interno del container, l'utente agent include un ~/Makefile che può installare strumenti aggiuntivi.
Agenti di codifica/CLI che puoi installare tramite make -C ~ …:
toad — installa Batrachian Toad (tramite uv tool)opencode — installa OpenCode (tramite Bun)gemini — installa Gemini CLI (tramite Homebrew)vibe — installa mistral-vibe (tramite uv tool)Target di convenienza:
tools — installa node, go, gemini, vibenode, go — installa le toolchain linguistiche (prerequisiti per alcuni agent)Agentbox include uno scheletro di progetto integrato in /home/agent/workspace-skel.
Per copiarlo nella tua directory corrente /workspace senza sovrascrivere file esistenti:
make init-workspace
Vedi docs/workspace-skeleton.md per dettagli.
La build GUI è pubblicata con il tag :gui (anche <release>-gui) e include XFCE, XRDP e VS Code.
Flusso di lavoro consigliato:
make up
make enter-toad # or: make enter-copilot
make down
Se hai bisogno di sovrascritture dei servizi, crea docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Quindi esegui:
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
Una volta connesso al container:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Questo progetto è liberamente basato sul mio antico rcarmo/docker-templates/desktop-chrome con un userland aggiornato.
MIT