All-in-One Sandbox for AI Agents that combines Browser, Shell, File, MCP and VSCode Server in a single Docker container.
docker pull ghcr.io/agent-infra/sandbox
docker run -d -p 8080:8080 --name sandbox ghcr.io/agent-infra/sandbox:latest
docker compose up -d
services:
sandbox:
container_name: aio-sandbox
image: ghcr.io/agent-infra/sandbox:latest
security_opt:
- seccomp:unconfined
extra_hosts:
- "host.docker.internal:host-gateway"
restart: "unless-stopped"
shm_size: "2gb"
mem_limit: "8g"
cpus: "4"
ports:
- "127.0.0.1:${HOST_PORT:-8080}:8080"
environment:
PROXY_SERVER: ${PROXY_SERVER:-}
JWT_PUBLIC_KEY: ${JWT_PUBLIC_KEY:-}
DNS_OVER_HTTPS_TEMPLATES: ${DNS_OVER_HTTPS_TEMPLATES:-"https://cloudflare-dns.com/dns-query{?dns}"}
WORKSPACE: ${WORKSPACE:-"/home/gem"}
HOMEPAGE: ${HOMEPAGE:-}
BROWSER_EXTRA_ARGS: ${BROWSER_EXTRA_ARGS:-}
TZ: ${TZ:-Asia/Singapore}
DISPLAY_WIDTH: ${DISPLAY_WIDTH:-1280}
DISPLAY_HEIGHT: ${DISPLAY_HEIGHT:-1024}
WAIT_PORTS: "8079,8091"
VNC_SERVER_PORT: 5900
PUBLIC_PORT: 8080
AUTH_BACKEND_PORT: 8081
WEBSOCKET_PROXY_PORT: 6080
GEM_SERVER_PORT: 8088
MCP_HUB_PORT: 8079
SANDBOX_SRV_PORT: 8091
JUPYTER_LAB_PORT: 8888
CODE_SERVER_PORT: 8200
MCP_SERVER_BROWSER_PORT: 8100
TINYPROXY_PORT: 8118
MCP_SERVER_MARKITDOWN_PORT: 8101
MCP_SERVER_CHROME_DEVTOOLS_PORT: 8102
BROWSER_REMOTE_DEBUGGING_PORT: 9222
PIP_INDEX_URL: ${PIP_INDEX_URL:-https://pypi.org/simple}
UV_DEFAULT_INDEX: ${UV_DEFAULT_INDEX:-https://pypi.org/simple}
NPM_CONFIG_REGISTRY: ${NPM_CONFIG_REGISTRY:-https://registry.npmjs.org}
# for gh cli
GITHUB_TOKEN: ""
# Claude Skills
AIO_SKILLS_PATH: ${AIO_SKILLS_PATH:-}
# Features
DISABLE_JUPYTER: ${DISABLE_JUPYTER:-false}
DISABLE_CODE_SERVER: ${DISABLE_CODE_SERVER:-false}