Cloudflare Sandbox vs exe.dev

Cloudflare Sandbox gives you a container inside the Workers platform that sleeps when idle, wakes on the next request and starts from a fresh disk. exe.dev gives you a Linux VM that keeps its disk and runs until you stop it, billed mostly as a reserved pool.

The companies and products

Cloudflare Sandbox

Cloudflare Sandbox SDK runs untrusted or AI-generated code in Linux containers on Cloudflare's network, driven from a Cloudflare Worker.

Each sandbox is a Cloudflare Container backed by a Durable Object, and each container runs in its own Firecracker microVM with its own kernel and network. You build a linux/amd64 image, pick an instance type of up to 4 vCPU and 12 GiB, and reach the sandbox through your own Worker. It suits teams already on Workers who want short-lived sandboxes that sleep when idle; for code that only calls known methods, Cloudflare also offers Dynamic Workers, which run JavaScript in V8 isolates.

exe.dev

exe.dev, made by Bold Software, Inc., rents Linux VMs for developers and AI agents that you reach over SSH and HTTPS.

You reserve a pool of vCPUs and memory, and your VMs share it; you can also start standalone VMs billed by the second. Each VM is KVM-isolated (they use Cloud Hypervisor), boots from a container image in about two seconds, and has root, systemd and Docker. It comes with Claude Code, Codex, Pi and exe.dev's own Shelley agent, and is aimed at developers who want a persistent dev box or a sandbox for their agents.

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “13th cheapest of 345” means 12 of the other 344 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadCloudflare Sandbox: price rankexe.dev: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs big disks, full Docker and a screen for checking UIs; Cloudflare caps disk at 20 GB by default, exe.dev is headless, and boat has both.
162nd of 367, with limits
$1,543 a month
253rd of 367, with limits
$3,701 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Always-on assistants need files that stay put; exe.dev and boat keep the disk, while Cloudflare wipes it when the container sleeps.
207th of 366, with limits
$2,188 a month
15th cheapest of 366
$3,833 a month
5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
For many short code-interpreter calls Cloudflare fits best of the three: it wakes on the next request and bills CPU only while busy, while exe.dev pools bill whether used or not.
13th cheapest of 345
$144 a month
235th of 345, with limits
$175 a month
186th of 345, with limits
$2,000 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
For sandboxes you hand to your users, Cloudflare fits and exe.dev's Personal plan stops at 50 VMs at once; boat fits too, with per-sandbox usage and spend limits.
9th cheapest of 361
$731 a month
257th of 361, with limits
$1,226 a month
Cheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
144th of 360, with limits
$9,428 a month
265th of 360, with limits
$5,250 a month
34th of 360, with limits
$2,000 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
45th cheapest of 364
$818 a month
283rd of 364, with limits
$1,050 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
CI that builds Docker images needs room and full Docker; Cloudflare limits both and exe.dev pools bill idle time, while boat bills per second while running.
301st of 377, with limits
$704 a month
288th of 377, with limits
$504 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box should keep its files when you log off; exe.dev and boat both do, and Cloudflare starts from a fresh disk after sleep.
70th cheapest of 368
$93 a month
25th cheapest of 368
$35 a month
18th cheapest of 368
$26 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Computer-use agents need a screen; neither Cloudflare nor exe.dev ships a desktop, while boat streams a 60fps desktop.
166th of 369, with limits
$460 a month
240th of 369, with limits
$1,055 a month
6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
210th of 367, with limits
$233 a month
130th of 367, with limits
$530 a month
7th cheapest of 367
$200 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
250th of 346, with limits
$286 a month
124th of 346, with limits
$278 a month
6th cheapest of 346
$90 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
169th of 338, with limits
$5,741 a month
166th of 338, with limits
$5,490 a month
71st of 338, with limits
$1,800 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
Red-team runs often want raw networking; Cloudflare containers cannot change iptables, exe.dev has no raw TCP inbound, and boat gives raw TCP and /dev/kvm.
239th of 360, with limits
$325 a month
60th of 360, with limits
$263 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Can't run itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureCloudflare Sandboxexe.devboat
IsolationFirecracker microVM per container, own kernel and networkKVM VM with Cloud Hypervisor; you can't choose the kernelFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Files between sessionsFresh disk after sleep; snapshots (public beta, 30 days) or R2 backups when your code saves themDisk persists and is streamed to a second server; no snapshotsDisk kept; snapshot every minute and on stop; a stopped sandbox costs nothing
Largest machine4 vCPU / 12 GiB / 20 GB disk by default (can be raised)Pools up to 16 vCPU on Personal; larger on Work with approvalUp to 16 vCPU / 32 GB, depending on plan
ForkNo fork; restore a saved snapshot or backup into a new sandboxcp copies a VM's disk and config into a new VMFork a running sandbox without stopping it; named snapshots as templates
Docker insidedocker:dind with iptables and IP forwarding turned offDocker with root and systemdFull Docker, root and systemd
Nested virtualizationNot documentedEnterprise onlyYes, /dev/kvm on every plan
Desktop and computer useBuilt-in desktop removed in SDK 0.10.2; bring your ownHeadless; no desktop or screen streaming60fps desktop and Chromium, computer-use API, embeddable stream
Inbound trafficHTTP and WebSocket previews routed through your Worker; no raw TCP or public IPHTTPS proxy for ports 3000 to 9999, one of them public; SSH; no public IP or raw TCPHTTPS URLs for up to 50 ports, token-protected; raw TCP; own IPv6 or IPv4
Egress controlallowedHosts deny-by-default list plus outbound handlers you write in Worker codeNo provider-side allowlistNo provider-side allowlist
Keeping keys out of the sandboxYour outbound handler adds the token for any HTTP or HTTPS host; you write the codeIntegrations inject secrets at the network edge for any HTTP host, S3, GitHub and moreManaged proxy for model providers and any HTTPS API you register; switch a credential to another account
Coding agentsRun Claude Code, Codex, OpenCode or Pi in your image; OpenCode has an SDK helperClaude Code, Codex, Pi and Shelley preinstalled; only Shelley takes prompts through the APIClaude Code, Codex, pi, OpenCode and more built in, with a prompt, steer and events API
Custom imagesYour own linux/amd64 container imageBoot from your own Docker imageTemplates from named snapshots; no Dockerfile or OCI images
Idle behaviorStops after inactivity and wakes on the next requestRuns until you stop it; pools bill whether busy or idleTTL based (1 h default, changeable); a stopped sandbox costs nothing
RegionsSeveral regions across Cloudflare's network9 regions in the US, Europe, Asia and AustraliaEU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureCloudflare Sandboxexe.devboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNot publishedYesYes
Desktop GUINoNoYes
BrowserNoYesYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskNoYesYes
Pause/resumeNoYesYes
Automatic snapshotsNoNoYes
Fork/cloneNoYesYes
Live fork (no pause)NoYesYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesNoNo
Wake on requestYesNoNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistYesNoNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsYesYesYes
Agent harness APIYesYesYes
MCP serverNoYesNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoNoNo
Self-hostingNoNoNo
BYOCNoYesNo
Open sourceYesNoNo
Scoped API keysNot publishedYesYes
Spend limitsNoNot publishedYes
Usage per sandbox (API)Not publishedYesYes
Audit logsYesNot publishedNo
SSOYesYesNo
SOC 2YesNoNo
HIPAAYesNoNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Cloudflare SandboxNot measured
exe.devNot measured
boat26.69 runs/s

boat scores 26.69 runs/s on the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB. Neither Cloudflare Sandbox nor exe.dev has a result on that benchmark, so there is no comparable CPU number for them, and we don't guess.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Cloudflare Sandbox and exe.dev have no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

ScenarioCloudflare Sandbox, a monthexe.dev, a monthboat, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$39 · Workers Paid · with limits$35 · Personal$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$148 · Workers Paid · with limits$35 · Personal$26 · $20/mo
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$1,660 · Workers Paid · with limits$1,848 · Personal$317 · $20/mo × 3 seats
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$476 · Workers Paid$530 · Personal · with limits$200 · $100/mo × 2 seats
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$1,889 · Workers Paid · with limits$1,050 · Personal · with limits$2,000 · $2000/mo · with limits

Cloudflare Sandbox: You need Workers Paid ($5 a month minimum). CPU is billed only while busy; memory and disk are billed on the instance size, in 10 ms steps, until the container sleeps, and 4 vCPU always comes with 12 GiB.

exe.dev: Pools are reserved capacity your VMs share and bill the same whether busy or idle; the Personal 4 vCPU / 8 GiB pool is $35 a month. Standalone VMs bill per second at $0.105 per 2 vCPU / 4 GiB per hour.

exe.dev: Your monthly plan fee, from $20, is all usage credit, billed per second while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Cloudflare's disk resets after sleep and tops out at 20 GB by default, so the scenarios that keep 50 GB of files between days do not fit without your own snapshot or backup code, and an account runs 1,500 vCPU at once by default, short of the 1,000-job burst. exe.dev Personal stops at 50 VMs at once, so the 300-at-once and 1,000-at-once scenarios do not fit there. boat hits start-rate limits on that burst: the top plan allows 600 starts an hour and queues bursts above 90 starts a minute.

ScenarioCloudflare Sandboxexe.devboat
One coding agent, workdays
  • missing persistent disk
  • flat pool: the tier is billed whether used or not
None that bite
One agent that never stops
  • missing persistent disk
  • flat pool: the tier is billed whether used or not
None that bite
50 agents in parallel
  • missing persistent disk
None that biteNone that bite
Sandboxes for your usersNone that bite
  • Personal: max 50 concurrent
None that bite
1,000 short jobs at once
  • Workers Paid: max 1,500 vCPU running at once (needs 2,000)
  • Personal: max 50 concurrent
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use Cloudflare Sandbox when

your app already runs on Workers and you want short sandboxes that sleep when idle, wake on the next request and follow egress rules you write.

  • Sleeps when idle, wakes on request. Useful for many short, spiky sessions: a sandbox sleeps when idle, wakes on the next request, and bills CPU only while busy.
  • Egress rules you can program. Cloudflare can block every host except the ones you list, and run your own code on each outbound request.
  • Next to the rest of Workers. If your app already runs on Workers, sandboxes sit next to Durable Objects and R2, in several regions.

Use exe.dev when

you want a VM that keeps its disk and runs until you stop it, in a region outside Europe or booted from your own Docker image.

  • A VM that keeps running. Useful for a dev box or a long agent: each VM keeps its disk and runs until you stop it.
  • Regions around the world. Useful if your users are far from Europe: exe.dev runs in nine regions across the US, Europe, Asia and Australia.
  • Team controls and an MCP server. Its Work plan covers a whole team with SSO and roles, and it serves an MCP server for controlling VMs.

Where boat fits

Cloudflare suits short sandboxes that sleep, and exe.dev suits VMs that stay up. If your agents work for hours on builds, Docker, emulators and UIs, boat gives them a full VM that keeps its files like exe.dev, adds a desktop and saved state neither one has, and stops at no cost.

State saved every minute

On Cloudflare a sleeping sandbox wakes with an empty disk unless your code saves a snapshot or backup. exe.dev keeps the disk but has no snapshots, so one bad agent step can cost a session's work. boat snapshots every minute and forks running sandboxes.

A screen and a full machine

Neither ships a desktop, so computer-use agents have nothing to look at until you build one. Cloudflare also runs Docker with iptables off, and exe.dev keeps /dev/kvm for Enterprise. boat has a 60fps desktop, full Docker and /dev/kvm on every plan.

Agents driven from outside

On Cloudflare you bake each agent into your image and write the outbound code that adds every token. On exe.dev only Shelley takes prompts by API. boat lets you prompt, steer and stream built-in agents, with keys kept outside.

Use boat when your agents do real work for hours: builds, tests, full Docker, emulators and a desktop, with state saved every minute and one API to drive agents inside from outside. Compare it one to one: boat vs Cloudflare Sandbox and boat vs exe.dev.

Questions people ask

Is Cloudflare Sandbox cheaper than exe.dev?

It depends on the shape. For one agent that never stops, exe.dev's flat pool is $35 against $148 on Cloudflare, and Cloudflare does not keep the disk. For 30,000 ten-minute user sandboxes Cloudflare is $476 and fits, while exe.dev Personal is $530 and stops at 50 at once. boat is lower than both in four of the five scenarios.

Which is faster?

We can't say: neither Cloudflare Sandbox nor exe.dev has a result on the hpc-sandbox-benchmarks run. boat scores 26.69 runs/s there at 4 vCPU / 8 GB.

Does Cloudflare Sandbox keep my files like exe.dev?

No. A Cloudflare sandbox starts from a fresh disk after it sleeps, unless your code saved a snapshot (public beta, kept 30 days) or a backup to R2. exe.dev keeps each VM's disk until you delete it, and boat keeps the disk and snapshots it every minute.

Can Cloudflare Sandbox and exe.dev run Docker?

Yes, both. Cloudflare supports docker:dind with iptables and IP forwarding turned off, because containers cannot change iptables. exe.dev VMs run Docker with root and systemd, and boat runs full Docker too.

Do either of them have a desktop for computer use?

No. Cloudflare removed its built-in desktop in SDK 0.10.2, and exe.dev VMs are headless. boat gives every sandbox a 60fps desktop with Chromium and a computer-use API.

Where do they run?

Cloudflare places containers in several regions of its network, and exe.dev has nine regions in the US, Europe, Asia and Australia. boat runs only in the EU, in Germany, Finland and France.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons