Each VM is a microVM with its own kernel, a durable disk, SSH, and a browser desktop. Pause it with memory intact, fork it into a copy, and pay from $0.0306/hr while it runs. Billed per second.
$ beam vm new devbox # 4 CPUs, 8 GiB RAM, 50 GiB disk, desktop
$ beam vm sync devbox ./my-app
$ beam vm ssh devbox
$ beam vm expose devbox 8000 --protected
$ beam vm pause devbox # RAM and processes saved
$ beam vm resume devbox
$ beam vm fork devbox devbox-2Perpetual and stateful VMs
Install once, stop or pause between sessions, and pick up where you left off.
What happens when you stop, pause, or fork a VM
Stopping keeps the disk and drops RAM, so the next start is a fresh boot. Pausing keeps RAM and running processes too, and resuming picks up exactly where the VM left off.
| Operation | Root disk | RAM and processes | Compute afterward |
|---|---|---|---|
| Stop | Saved | Discarded | Released |
| Pause | Saved with a memory checkpoint | Saved | Released |
| Resume a paused VM | Restored with its saved RAM | Restored | Running |
| Snapshot | Captured as a restore point | Not included | VM keeps its current state |
| Fork | Copied to an independent root | New boot | A new VM runs |
Set an idle timeout to pause or stop a VM automatically, and wake it on access. See the lifecycle docs.
How to create a persistent VM
- 01
Create a VM
Run beam vm new or use the Python or JavaScript SDK. Choose CPU, memory, disk, and a Debian or Ubuntu image, or build the image from a Dockerfile.
- 02
Put a project on it
Sync a directory, connect over SSH, run commands, or hand the VM to a coding agent through Beam's MCP server.
- 03
Share, pause, or fork
Publish a port behind a protected URL, let the VM pause after idle minutes and wake on access, or fork it into an independent copy.
# 1. Create a VM: 4 CPUs, 8 GiB RAM, 50 GiB disk, desktop
$ beam vm new devbox
# 2. Put a project on it and work over SSH
$ beam vm sync devbox ./my-app
$ beam vm ssh devbox
# 3. Share a protected URL, sleep when idle, or fork it
$ beam vm expose devbox 8000 --protected
$ beam vm update devbox --ttl 300 --idle-action pause --auto-resume
$ beam vm fork devbox devbox-2Virtual machine pricing
VMs are billed per second while they run, for the CPU and memory you choose. A stopped or paused VM releases its compute, so it stops accruing compute charges.
Smallest VM
1 vCPU and 1 GiB of RAM, with a 50 GiB disk.
Default VM
4 CPUs and 8 GiB of RAM, what beam vm new creates.
A workday dev box
The default VM running 176 hours a month and paused the rest of the time, against $105.12 left on for 730 hours.
Rates are $0.0252 per vCPU-hour and $0.0054 per GiB-hour of memory. See the pricing page for every rate and a cost calculator.
Virtual machines vs sandboxes
Use a VM when the machine should outlive a single task: a dev box, a coding agent's workspace, a CI runner. Use a sandbox when you need a disposable environment for one run, or a GPU.
| Virtual machines | Sandboxes | |
|---|---|---|
| Lifetime | Persistent until you remove it, with a durable root disk | Disposable, with a 600-second default lifetime you can extend |
| Isolation | A microVM with its own kernel | An isolated container |
| GPUs | CPU-only | Attach a GPU |
| Access | SSH, browser terminal, desktop, and stable URLs | Process, filesystem, and networking APIs, plus preview URLs |
| Best for | Dev boxes, coding agents, CI runners, desktop automation | Agent-generated code, parallel rollouts, GPU jobs |
Compare with Beam Sandboxes.
What to run on a persistent VM
Virtual machine questions
Is a Beam VM a microVM?
Yes. Each VM runs in a CPU microVM with its own kernel, systemd, a durable root filesystem, and stable service URLs.
What's the difference between stopping and pausing a VM?
Stopping saves the root disk and discards RAM and processes, so the next start is a fresh boot. Pausing also saves RAM and running processes, and resuming restores them. Both release compute.
Can Beam VMs use GPUs?
No. VMs are CPU-only. For GPU work, use a Beam sandbox or a deployed endpoint.
Which operating systems can a VM run?
VM images must be Debian or Ubuntu. The default is Ubuntu 24.04, the browser desktop supports Ubuntu 24.04 and 22.04, and you can build a custom image from a Dockerfile.
How are VMs billed?
Per second while the VM runs, for the CPU and memory you choose. A stopped or paused VM releases its compute, so it stops accruing compute charges. Current rates are on the pricing page.
Can my coding agent use a Beam VM?
Yes. The Beam installer registers Beam's MCP server with supported coding agents and can create a VM for them. VMs also come with the Claude Code and Codex CLIs, so an agent can run on the VM itself.
Can I run Docker inside a VM?
Yes. Build images and run Docker containers or Compose services inside a persistent VM.
How do I connect to a VM?
Over SSH as root through an authenticated Beam tunnel, or through the browser terminal and desktop, which are protected by default. Published ports get stable URLs.
Give Your Agent Superpowers
Start shipping today and bring your vision to life