Skip to main content
Every box 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

Boxes come in four sizes. Pick one with --type when you create the box: GB means 1,000,000,000 bytes. GiB means 1,073,741,824 bytes. The root disk includes the operating system and pre-installed tools. The user-data restore budget leaves space for that image, filesystem overhead, and restore staging. It is not a filesystem quota or the compressed size of your snapshots. The preinstalled tools take about 20 GB, which is why the free space differs from the disk size. The “free” row is what df reports on a Hetzner box you just created. Public-cloud sizes and restore budgets are unchanged. Hetzner primary placements have 40, 80, and 160 GB roots for small, default, and large, with restore budgets of 12, 50, and 125 GiB. CloudStack has 50 GB roots for small and 100 GB roots for default and large, with restore budgets of 20 and 70 GiB respectively. Emergency Hetzner CPX22 placements have 80 GB roots and a 50 GiB restore budget. Restores with a known larger footprint skip destinations that cannot hold them. Available space depends on the machine you receive and what you have installed. Existing bare-metal disks are not resized. Older large and xlarge machines keep 100 GiB roots and 70 GiB restore budgets until replaced. small and default keep their existing disk sizes and budgets. xlarge remains bare-metal only. xlarge is available on the $100 monthly plan and above. It has no public-cloud placement. An Ascii operator must allocate it on bare metal, so contact us before creating, resuming, forking, or deploying a named snapshot as xlarge.
Stopping, resuming and forking all preserve the type by default, and a fork inherits the type of the box it came from.

Changing size

Pass --type to resume or fork to move a box 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 box in place; fork leaves the source box untouched and applies the new size to the copy.
Growing always works. Shrinking is rejected with type_too_small when the box holds more data than the smaller machine can take, and the box is left exactly as it was, so a refused resize never costs you the box. Delete data and let the box snapshot again if you need to shrink past that point. Size sets the rate you spend machine time, because you are renting more or less machine. See Billing & Limits for what each rate costs.
When a data centre is out of stock for your type, we place the box on the closest machine we can get rather than leave you waiting. That is rare, and it is always the largest available option; if it matters for your workload, stop and start the box to be re-placed.

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. hermes, openclaw and cursor-agent are the exception: the command is on PATH from the start, and the first time you run it the box installs that harness, then keeps it in your snapshots. Measured on a fresh box: cursor-agent 7 s, openclaw 35 s, hermes 43 s the first time, and milliseconds every time after. Each one signs in with its own login command; box 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