vm instance is a whole Linux machine with its own kernel, not a sandbox. Everything on this
reference works the same way: the same keys, the same endpoints, the same URLs, the same billing.
What changes is what runs inside.
Reach for it when your workload needs the kernel itself:
- Docker, Compose, and buildx. Build and run containers, including ones that need privileged mode or their own networks.
- Kubernetes. k3s runs with its node Ready and pod networking working.
- Databases. Postgres, MySQL, Redis, anything with its own storage engine.
- Android emulators.
/dev/kvmis present inside the machine, so an AVD boots with hardware acceleration instead of crawling.
Create one
curl
agent37-ubuntu is Ubuntu 26.04 with Docker, Compose, and buildx installed and dockerd already
running. It is built for this type, so it only runs as a vm and a create without
"type": "vm" is a 400.
Your own custom image works too: pass "type": "vm" with any template.
Two things to know first:
- A container runtime inside the machine must keep its data on your billed disk. The writable
root is an overlay, and pulling an image onto one fails. Point Docker at
$HOMEwithdockerd --data-root "$HOME/docker"(or/etc/docker/daemon.json), and k3s with--data-dir "$HOME/k3s".agent37-ubuntualready does this. - Your entrypoint is PID 1, and there is no init system. An image whose entrypoint is systemd is not supported, the same as on Docker. Run your processes from your entrypoint, or install them and start them over SSH.
Getting in
There is no routed web port by default:agent37-ubuntu serves nothing, so its default_port is
null and the bare instance URL has nothing behind it. Use SSH for an
interactive shell (one agent37 ssh setup first), or exec for one-off
commands:
curl
{id}-{port}.agent37.app for your
workspace’s keys, or a public port for an unauthenticated one.
Sizing and price
The same four shapes, and compute meters at 4x the default rate, like a Performance instance: a VM’s RAM is reserved for it alone and its vCPUs are its own. Disk is unchanged at $0.09 per GB per month.
A funded workspace is required: add balance before the first create.
Lifecycle
stop, start, restart, update, and resize all work, and your billed disk survives every
one of them. The machine cold-boots on start and on any resize, so in-memory state is lost:
anything that has to outlive a restart belongs in a file under $HOME.
Growing the disk extends it in place and your filesystem grows into the new space on the next
boot, so the data is kept. Disk only grows, as on every instance.
Backups
Backups work exactly as they do on any other instance: a week of daily restore points plus one you take on demand, listed and restored by id, and a restore replaces the data it finds rather than merging into it. Two things are worth knowing on a VM. A backup is taken from the machine’s disks, so it captures what your programs have written to disk, not what they are still holding in memory: a database is backed up the way pulling the power cord would leave it, and recovers on the next start the same way. That is the same guarantee a VPS snapshot gives you, and it is why a backup that has to be exact should be taken with the machine stopped, or alongside your database’s own dump. And a restore cold-boots the machine, so in-memory state is lost either way.What is not available yet
Everything else on this reference behaves identically: public ports,
domains, SSH keys, logs,
metrics, and exec. Crons post a
prompt to an agent’s chat API, so they need a template that serves one:
agent37-ubuntu does not
and refuses them, while your own image takes them like any other instance.