Skip to main content
Hand your agent a full Linux machine and walk away. Each task runs in its own boxd VM with root, internet, a public HTTPS URL, and a 100 GB disk that survives whatever the agent does to it. If a run goes sideways, fork the pre-task state and try again.

How it works

Every boxd VM is a KVM microVM with its own kernel, network stack, and disk. Not a container. The agent can run Docker, install kernel modules, edit /etc, restart systemd, open ports, and break the OS without taking down anything else. Fresh boots take ~30ms. Forks land in ~160ms and inherit the parent’s exact disk, processes, and memory. Resume from suspend is sub-millisecond. So the loop “snapshot, hand off, fork on retry, destroy when done” actually feels instant. Inside the VM the agent has the boxd CLI on its PATH, already authenticated. It can create siblings, exec into them, manage proxies, and list VMs without needing a key or a token. JSON output everywhere so the agent can parse what it ran. The SDKs work the same way in there — new Boxd() in TypeScript, Boxd() in Python, no API key and no configuration. That’s the whole pitch. The setup is one command.

Run a task

Boot a sandbox, hand a job to Claude Code non-interactively, get a structured result back:
The agent’s working directory is on a 100 GB disk that persists across reboots. The build is live at https://task-1.boxd.sh the moment a port opens. To take over interactively, connect and resume the session (<session_id> comes from the result above):
When you’re done, boxd machine remove task-1 -y and the disk goes with it.

Patterns

Fork before risky ops

Snapshot the VM before the agent does something destructive. If the run fails, fork the parent again and retry. The parent never changes.

Fan out across many VMs

Run the same task in parallel and pick the best output. Every result has its own URL.

Destroy on completion

Wire the destroy step into your PR-close hook or the agent’s exit path. You’re billed for what you run, so kill VMs you don’t need.

FAQ

The microVM boundary is the same one your laptop’s hypervisor uses. The agent has root inside its VM, no path to the host or to other VMs. Internet egress is the only shared surface.
Ten VMs by default, extendable on request. Each gets 2 vCPU, 8 GiB RAM, 100 GB disk.
Yes. Real kernel, real systemd, real Docker. Nesting works because there’s no container in the way.
If you forked from a golden, just boxd machine remove the bad fork and fork again. The golden is untouched.

Next

Fork from a golden

Warm copies of your app in ~160ms. The sandbox source.

Fix-on-issue loop

The full end-to-end agent loop on GitHub issues.