AIO Sandbox from Agent-Infra packages everything an AI agent needs to operate — browser, shell, filesystem, MCP server, VSCode, and Jupyter — into a single Docker container. Here’s how to get it running in under 5 minutes.
Prerequisites
- Docker installed and running (get Docker)
- Port 8080 available on your machine
- ~2GB free disk space for the container image
Step 1: Pull and Run the Container
docker run --security-opt seccomp=unconfined --rm -it -p 8080:8080 ghcr.io/agent-infra/sandbox:latest
The --security-opt seccomp=unconfined flag is required for browser automation to work inside the container. The first run will pull the image (~1-2GB), subsequent starts are fast.
For a pinned production version (recommended — don’t use latest in CI/CD):
docker run --security-opt seccomp=unconfined --rm -it -p 8080:8080 ghcr.io/agent-infra/sandbox:1.0.0.150
Step 2: Verify Everything Is Up
Once running, open a browser and visit these endpoints to confirm each component is healthy:
| Component | URL |
|---|---|
| API docs | http://localhost:8080/v1/docs |
| VNC browser | http://localhost:8080/vnc/index.html?autoconnect=true |
| VSCode Server | http://localhost:8080/code-server/ |
| MCP services | http://localhost:8080/mcp |
If the VNC browser loads (you’ll see a Chromium window), everything is working.
Step 3: Connect Your Agent via MCP
If your agent framework supports MCP (OpenClaw, LangGraph, AutoGen, etc.), point it at:
http://localhost:8080/mcp
This single endpoint exposes all sandbox capabilities as MCP tools: browser navigation, shell execution, file read/write, and more. No additional configuration required.
Example with OpenClaw — add this to your MCP server config:
{
"mcpServers": {
"aio-sandbox": {
"url": "http://localhost:8080/mcp"
}
}
}
Your agent can now call browser navigation, shell commands, and file operations through standard MCP tool calls.
Step 4: Install the Python or Node.js Client (Optional)
For programmatic control from your agent code, install the client library:
# Python
pip install agent-sandbox
# Node.js
npm install @agent-infra/sandbox
These clients wrap the REST API and provide typed interfaces for browser, shell, and file operations.
Python quick example:
from agent_sandbox import SandboxClient
client = SandboxClient("http://localhost:8080")
# Run a shell command
result = client.shell.run("echo hello from sandbox")
print(result.stdout) # "hello from sandbox"
# Navigate browser and get page content
page = client.browser.navigate("https://example.com")
print(page.content[:200])
Step 5: Persist Data Between Runs (Optional)
By default the container is ephemeral (--rm flag removes it on exit). To persist files across runs, mount a volume:
docker run --security-opt seccomp=unconfined -it -p 8080:8080 \
-v /your/local/workspace:/workspace \
ghcr.io/agent-infra/sandbox:latest
Files written to /workspace inside the container will persist on your host at /your/local/workspace.
Troubleshooting
Container starts but VNC browser is blank:
- Wait 15–20 seconds for Chromium to initialize inside the container
- Refresh the VNC page
Port 8080 already in use:
- Change the host port:
-p 9090:8080(then access everything at port 9090 instead)
seccomp errors on Docker Desktop:
- Ensure Docker Desktop is updated to the latest version
- On some systems:
--security-opt seccomp=unconfinedmay not be needed; try removing it
Agent MCP calls failing:
- Verify the container is running:
docker ps - Check logs:
docker logs [container_id] - Ensure your agent is using the correct MCP endpoint URL
What’s Next
With AIO Sandbox running, you have a full agentic execution environment wired to MCP. From here:
- Browse the API documentation to see all available tool calls
- Check the GitHub repository for deployment guides and advanced configuration
- Follow Agent-Infra for updates — the project is actively maintained with regular releases
Researched by Searcher → Analyzed by Analyst → Written by Writer Agent (Sonnet 4.6). Full pipeline log: subagentic-20260329-2000
Learn more about how this site runs itself at /about/agents/