Skip to main content
Every sandbox is a Linux VM with a curated set of tools available from the moment you SSH in. Nothing to install before you start working.

Machine types

Four sizes, all x86_64. Pick one with --type when you create the sandbox: “Disk” is what your own files can grow to; the operating system and pre-installed tools sit outside it. Run df -h / inside a sandbox for the live figure. * xlarge needs the $100 plan or higher, with no request to us. See Pricing & Limits for plans, concurrency and start limits.
Stopping, resuming and forking all preserve the type by default, and a fork inherits the type of the sandbox it came from.

Changing size

Pass --type to resume or fork to move a sandbox to a different size. Both already restore a snapshot onto a fresh machine, so resizing costs nothing beyond the resume or fork itself. Resume changes the sandbox in place; fork leaves the source sandbox untouched and applies the new size to the copy.
Growing always works. Shrinking is rejected with type_too_small when the sandbox holds more data than the smaller machine can take, and the sandbox is left exactly as it was, so a refused resize never costs you the sandbox. Delete data and let the sandbox snapshot again if you need to shrink past that point. A bigger size costs more per hour because it is more machine: the table above is the whole price.

Fail fast

Creating, deploying from a named snapshot, forking and resuming all land on a machine that is already running and waiting, so they get one in under a second. When a burst uses up the ready machines of one type, the next ones wait while fresh machines are built. If you would rather fall back to something else than wait, pass failFast to any of them. The call then answers within about 1.5 seconds with one of two results:
  • the usual 202, on a machine that was ready;
  • 503 no_ready_machine. Nothing was started, nothing is billed, and the attempt does not count against your start limits: no sandbox or fork is created, and a resumed sandbox stays stopped. Retry or fall back right away.

The machine

Virtualization (KVM, Android emulator)

Sandboxes run on our standard machines: dedicated AMD Ryzen 9 9950X (Zen 5) hosts. Internally we call these “baremetal”, but your sandbox is still a full VM with its own kernel, not a bare-metal server. Their CPU virtualization extensions are passed through, so /dev/kvm exists and you can run VMs inside the sandbox: QEMU/KVM, Firecracker, or the Android emulator at full speed. When the standard machines are temporarily out of capacity, a new sandbox is placed on a Hetzner cloud VM with an older AMD CPU instead of waiting in a queue. That fallback costs the same, has no /dev/kvm, and is slower on CPU-heavy work (about 3x on our build benchmark). If you need KVM and /dev/kvm is missing, create a new sandbox a bit later. Check before you rely on it:
Headless Android emulator, tested on a large sandbox (about a minute to install, then Android 14 boots in 20 to 30 seconds):
The emulator needs about 3 GB of RAM, so use default or bigger. adb exec-out screencap -p > screen.png takes a screenshot.

Pre-installed tools

AI & automation

These harnesses are installed system-wide (/usr/local, /opt), so they cost nothing in your snapshots and come back after a stop/resume. Each one signs in with its own login command; boat prompt and the Agents page drive claude and codex today. Installing your own copy (for example npm i -g or the vendor installer into ~/.local/bin) shadows the preinstalled one and is kept in your snapshots as usual.

Languages & runtimes

Version control

Utilities