Agent Sandboxes Need Undo Buttons, Not Just Walls
Arrakis is a clean reference for making joelclaw agent workloads rewindable: MicroVM isolation plus snapshot/restore exposed through REST, Python, and MCP.
Arrakis is a Go service for running agent sandboxes as cloud-hypervisor MicroVMs, with an Ubuntu guest, command execution, VNC, Chrome for computer use, a REST API, py-arrakis, and an MCP server. It’s Linux only because cloud-hypervisor needs /dev/kvm. That constraint is a feature, not a cute abstraction leak: this is a real machine boundary, not another Docker wrapper pretending hostile code is fine.
The clever bit is undo. Agents make plans, mutate state, spawn processes, and then discover the path was trash. Arrakis snapshots and restores the whole sandbox so a client can checkpoint a MicroVM, wreck it, destroy it, and come back to the exact earlier state. That maps cleanly to Monte Carlo Tree Search, agent explainability, and boring-but-useful reviewer loops where you want proof of what changed instead of vibes.
For joelclaw, the interface shape is the thing to steal: lifecycle, file upload, command execution, GUI port metadata, and snapshots exposed through REST, Python, and Model Context Protocol. I wouldn’t drop it in blindly: AGPL-3.0, iptables, root needs, Linux KVM, and host port forwarding all matter. But the agent-facing seam is sharp as hell.
Key Ideas
- Arrakis uses cloud-hypervisor MicroVMs, not containers, so untrusted agent code gets a stronger isolation boundary.
- Each sandbox boots Ubuntu with a command execution service, VNC, and Chrome for browser-based computer use.
- Snapshot and restore are first-class operations, so agents can checkpoint mid-plan and roll back files, processes, and guest state.
- arrakis-restserver manages sandbox lifecycle and host port forwarding, so GUI and code-service ports show up in sandbox metadata instead of manual tunnel glue.
- py-arrakis and arrakis-mcp-server make the runtime usable from Python clients and MCP clients like Claude Desktop, Cursor, and Windsurf.
- Customization runs through a Dockerfile-built rootfs,
config.yaml, prebuilt kernel/image assets from arrakis-images, and a real Linux KVM host. - The useful comparison for joelclaw is the agent API: sandbox lifecycle, command execution, GUI access, and rewindable state as one service boundary.
Links
- Arrakis repo
- Arrakis README
- Arrakis detailed README
- Arrakis REST API spec
- Arrakis config.yaml
- Arrakis setup script
- Arrakis GCP setup notes
- py-arrakis on PyPI
- arrakis-mcp-server
- arrakis-images
- Arrakis demo video
- abshkbh on GitHub
- cloud-hypervisor
- Firecracker MicroVMs
- Model Context Protocol
- noVNC
- GNU Affero General Public License v3.0