Sandboxes aren't hard. Stop renting them at 10×.

Firecracker microVMs in 38 ms at $0.009/hr — about a tenth of the going rate. On ten thousand RL rollouts, that markup is the bill. Self-host it with one command.

hosted demo: $0.50 in credits · npm i @mv37/workdir · pip install mv37-workdir · or just curl
hot boot, p50 38ms
typical create 45ms
1 vCPU · 2 GB $0.009/hr
self-hosting free · one command
// the numbers 01

Measured, not marketed.

A sandbox starts one of three ways. Every one tells you which you got, and exactly how long it took.

base shape 1 vCPU · 2 GB · 8 GB disk $0.009 / hr ≈ $0.0000025 / second
metering per second no minimum meter stops at delete
bigger shapes linear in resources 2× memory ≈ 2× price quote returned on every create

$0.009/hr is what the hardware costs, not what the market bears. and don't take our word for the speed — every sandbox you create reports its own timings and price.

// perpetual standby 02

Idle costs nothing. Waking costs nothing extra.

Leave a sandbox alone and it parks itself: saved to disk, meter stopped at $0. The next call wakes it in ~50 ms with everything intact. Your code never knows it slept.

other clouds make you choose: pay to keep a sandbox warm, or lose it to a timeout. standby is the third option. the demo loops on its own — idle times are compressed, the money math is real.

// build on it 03

Don't read the feature list. Watch it.

The six features people use most, playing themselves. Real behavior, real timings — nothing dramatized.

instant fork

sb_9f3ka2 · running

clone a running sandbox into identical copies in ~45 ms. built for fan-out and branch-and-try.

network control

"network": { "policy": "default" }
sandbox → github.com:443
sandbox → registry.npmjs.org:443
sandbox → 203.0.113.7:8080
sandbox → telemetry.evil.example

decide at create time what a sandbox can reach — everything, nothing, or a list you control.

background jobs

start a long job, get a handle back in milliseconds, check on it whenever. nothing to babysit.

agent PR runs

an agent, a repo, a prompt — a draft PR comes back. see what people run with it →

templates

template: ci-runner repo mv37-org/api · node 20 · 2 vCPU · 4 GB
port 5173 · secret NPM_TOKEN

save a setup once, spawn any number of identical sandboxes by name.

live metrics

reserved 2048 MB in use 142 MB

what a sandbox actually uses vs. what it reserves — live, per sandbox.

the rest of the box
browser desktopsa real Chrome your agent can drive, watch live, or screenshot.
private previewsevery sandbox gets its own preview URL, locked to you by default.
persistent disksdelete the sandbox, keep the data, re-attach it to the next one.
secretsstored once, encrypted, injected by name. never shown again.
real terminala live terminal in every sandbox — job control, ^C, vim, the lot.
docker, insiderun Docker inside the sandbox — never on the host.
bucket mountsmount S3 or R2 buckets straight into the filesystem.
custom imagesbring your own image, or spin up short-lived throwaway ones.
dense by designsandboxes share read-only memory — more per server, same isolation.

standby keeps a running sandbox cheap; disks keep its data after it's gone.

// the field 04

The markup, itemized.

Their published prices for the closest shape to 1 vCPU · 2 GB, rounded in their favor. Same job, different margin — and at fleet scale, the margin is the bill.

workdir e2b modal fly machines
isolation firecracker microVM firecracker microVM gVisor container firecracker microVM
create → ready 38 ms ~150 ms ~1 s ~300 ms
idle sandbox $0 · auto-resumes killed on timeout scales to zero auto-stop, you wire it
1 vCPU · 2 GB $0.009 / hr ~$0.13 / hr ~$0.15 / hr ~$0.015 / hr
× the workdir price ~14× ~17× ~1.7×
boot path disclosed every create
self-host one command diy cluster
open source AGPL-3.0, all of it infra only

1,000 sandboxes for a day: ~$216 here, ~$3,120 at e2b's price. mid-2026 list prices. spot an error? open an issue — the table gets fixed, not defended.

// self-host 05

We'd rather you self-host.

Sandboxes aren't hard. Firecracker solved the hard part years ago, and it's free. One command turns any KVM box into a sandbox fleet — the same binary our cloud runs.

Your agents, on your metal. Read every line they run on, cap their network, add capacity by plugging in another server. No quotas, no markup.

The hosted cloud exists for the impatient — same code, same prices, zero setup. A convenience, not a moat.

agpl-3.0 · single binary · no phone-home · gpu shapes next release
ubuntu 24.04 / debian 12 · kvm required
curl -fsSL https://workdir.dev/install.sh | sudo bash

impatient? take a hosted key → first sandbox in under a minute.