
Docker-basierte Sandbox für Codierungs-Agenten mit isolierten Umgebungen, vorinstallierten Agenten-Tools, Dienststeuerung und Workspace-Bootstrap für sichere Multi-Session-Entwicklung.

Es gibt (noch) keinen perfekten Weg, Agents zu sandboxen, aber Container sind ein praktischer Anfang.
Agentbox ist eine Docker-basierte Coding-Agent-Sandbox, ursprünglich inspiriert von Batrachian Toad und inzwischen für weitere Tools verallgemeinert.
Sie bietet eine isolierte Umgebung, die gut mit webterm zusammenarbeitet, um mehrere Agent-Sitzungen auszuführen.
Der Standard-Container bietet:
lazygit, killalluv und Bun; Container-Builds installieren die neuesten verfügbaren Pakete ohne exakte Versions-Pinstoad, opencode, gemini und vibe via make -C ~ ... installierenENABLE_DOCKER, ENABLE_SSH und ENABLE_RDP umschaltenENABLE_SSH=true) und mosh-Unterstützung/home/agent/workspace-skelAgentbox verwendet Umgebungsvariablen, um zu steuern, welche Dienste beim Start des Containers gestartet werden:
ENABLE_DOCKER=true - Docker-Daemon starten (für Docker-in-Docker-Unterstützung)ENABLE_SSH=true - SSH-Server starten (Port 22)ENABLE_RDP=true - RDP-Server starten (Port 3389)AGENTBOX_ENVIRONMENT=cli|gui - Vom Image bereitgestellter Umgebungsmarker (cli für Headless/CLI, gui für Desktop-Images)Standardverhalten: Alle Dienste sind deaktiviert, sofern sie nicht explizit aktiviert werden.
# 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
Im Container verfügt der Benutzer agent über ein ~/Makefile, mit dem zusätzliches Tooling installiert werden kann.
Coding-Agents/CLIs, die du via make -C ~ … installieren kannst:
toad — installiert Batrachian Toad (via uv tool)opencode — installiert OpenCode (via Bun)gemini — installiert Gemini CLI (via Homebrew)vibe — installiert mistral-vibe (via uv tool)Praktische Targets:
tools — installiert node, go, gemini, vibenode, go — installiert Sprach-Toolchains (Voraussetzungen für einige Agents)Agentbox liefert ein integriertes Projekt-Skelett unter /home/agent/workspace-skel.
Um es in dein aktuelles /workspace zu kopieren, ohne vorhandene Dateien zu überschreiben:
make init-workspace
Siehe docs/workspace-skeleton.md für Details.
Der GUI-Build wird als Tag :gui veröffentlicht (auch <release>-gui) und enthält XFCE, XRDP und VS Code.
Empfohlener Workflow:
make up
make enter-toad # or: make enter-copilot
make down
Wenn du Dienst-Overrides benötigst, erstelle docker-compose.override.yml:
services:
toad:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
copilot:
environment:
ENABLE_DOCKER: "true"
ENABLE_SSH: "true"
Führe dann aus:
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
Sobald du mit dem Container verbunden bist:
make -C ~ toad
toad
toad /workspace
toad -a open-hands
Dieses Projekt basiert lose auf meinem alten rcarmo/docker-templates/desktop-chrome mit einer aktualisierten Userland-Umgebung.
MIT