Sandbox CLI
Manage Docker-based sandbox containers for isolated agent execution.
Overview
Edwin can run agents in isolated Docker containers for security. The sandbox commands help you manage these containers, especially after updates or configuration changes.
Commands
edwin sandbox explain
Inspect the effective sandbox mode/scope/workspace access, sandbox tool policy, and elevated gates (with fix-it config key paths).
edwin sandbox explain
edwin sandbox explain --session agent:main:main
edwin sandbox explain --agent work
edwin sandbox explain --jsonedwin sandbox list
List all sandbox containers with their status and configuration.
edwin sandbox list
edwin sandbox list --browser # List only browser containers
edwin sandbox list --json # JSON outputOutput includes:
- Container name and status (running/stopped)
- Docker image and whether it matches config
- Age (time since creation)
- Idle time (time since last use)
- Associated session/agent
edwin sandbox recreate
Remove sandbox containers to force recreation with updated images/config.
edwin sandbox recreate --all # Recreate all containers
edwin sandbox recreate --session main # Specific session
edwin sandbox recreate --agent mybot # Specific agent
edwin sandbox recreate --browser # Only browser containers
edwin sandbox recreate --all --force # Skip confirmationOptions:
--all: Recreate all sandbox containers--session <key>: Recreate container for specific session--agent <id>: Recreate containers for specific agent--browser: Only recreate browser containers--force: Skip confirmation prompt
Important: Containers are automatically recreated when the agent is next used.
Use Cases
After updating Docker images
# Pull new image
docker pull edwin-sandbox:latest
docker tag edwin-sandbox:latest edwin-sandbox:bookworm-slim
# Update config to use new image
# Edit config: agents.defaults.sandbox.docker.image (or agents.list[].sandbox.docker.image)
# Recreate containers
edwin sandbox recreate --allAfter changing sandbox configuration
# Edit config: agents.defaults.sandbox.* (or agents.list[].sandbox.*)
# Recreate to apply new config
edwin sandbox recreate --allAfter changing setupCommand
edwin sandbox recreate --all
# or just one agent:
edwin sandbox recreate --agent familyFor a specific agent only
# Update only one agent's containers
edwin sandbox recreate --agent alfredWhy is this needed?
Problem: When you update sandbox Docker images or configuration:
- Existing containers continue running with old settings
- Containers are only pruned after 24h of inactivity
- Regularly-used agents keep old containers running indefinitely
Solution: Use edwin sandbox recreate to force removal of old containers. They'll be recreated automatically with current settings when next needed.
Tip: prefer edwin sandbox recreate over manual docker rm. It uses the Gateway’s container naming and avoids mismatches when scope/session keys change.
Configuration
Sandbox settings live in ~/.edwin/edwin.json under agents.defaults.sandbox (per-agent overrides go in agents.list[].sandbox):
{
"agents": {
"defaults": {
"sandbox": {
"mode": "all", // off, non-main, all
"scope": "agent", // session, agent, shared
"docker": {
"image": "edwin-sandbox:bookworm-slim",
"containerPrefix": "edwin-sbx-",
// ... more Docker options
},
"prune": {
"idleHours": 24, // Auto-prune after 24h idle
"maxAgeDays": 7, // Auto-prune after 7 days
},
},
},
},
}See Also
- Sandbox Documentation
- Agent Configuration
- Doctor Command - Check sandbox setup
