Introduction
aiod is the AIO Sandbox daemon. It serves the sandbox tools API over HTTP and WebSocket — commands, files, terminals, code execution, browser control, and MCP.
The design keeps dependencies minimal:
- static musl builds on Linux
- a native Windows build
- graceful degradation — browser, interpreters, and the desktop GUI worker are optional backends, detected at runtime
Linux builds cover x86_64, arm64, and riscv64 (static musl). Windows builds cover x86_64 (aiod.exe, computer-use.exe).
daemon capability scope
-
Commands — runs a shell command as a process (
POST /v2/commandsPOST /v1/bash/exec), or opens a persistent PTY-backed terminal (/v2/pty/v1/shell). -
Files — reads, writes, searches, and watches files on disk (
/v2/fs,/v2/watch/v1/file/*). -
Code — executes Python or JavaScript snippets, with optional sessions (
POST /v2/code/executePOST /v1/code/execute). -
Browser — connects to a Chromium listening on its debug port (default
127.0.0.1:9222) and exposes navigate, click, fill, screenshot, and more over REST (/v2/browser/*/v1/browser/*). -
Desktop — a separate
computer-useworker;/v2/computer/*is proxied to it for GUI control: screenshots, mouse and keyboard, clipboard, and the accessibility tree. -
MCP —
POST /mcpserves the built-in tools as one stateless JSON-RPC endpoint:- run a command
- run code
- file operations
- browser info
- load a skill
It can also aggregate other MCP servers.
aiod detects its optional backends, the browser, the interpreters, and the desktop GUI worker, and GET /v1/capabilities reports what is actually available.
Against the 1.x Python server on the same host, the daemon process idles at far less memory and answers common calls faster; the chart has the numbers. Image boot figures are on Quick Start.
API planes: v1 and v2
/v1/* is compatible with the 1.x Python server. /v2/* is the current, path-keyed surface for new integrations.
Both are served by default (AIO_API_SURFACE=full). Set AIO_API_SURFACE=v2 to serve only the modern surface. See the API reference.
Related
- Quick start — download the binary, start it, and make the first calls.
- Migration from 1.x — for a deployment coming from a 1.x AIO image.