Cloudflare Sandbox vs Runloop

Cloudflare Sandbox runs containers inside the Workers platform that sleep when idle and start again with a fresh disk. Runloop gives each coding agent a devbox with a desktop, a browser and saved disks, built for building and testing agents.

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.

Runloop

Runloop is a US platform of sandboxes, called devboxes, for building, running and testing AI coding agents.

You get Linux devboxes built from Dockerfile-style blueprints, disk snapshots, HTTPS tunnels, agent gateways that hide API keys, and Axons, event streams that drive agents such as Claude Code. Each devbox runs in a micro-VM on Runloop's own bare-metal hypervisor, with a container layer inside. It is built for teams shipping coding agents, plus evaluation and RL fine-tuning work on the Enterprise plan.

Compliance
SOC 2 Type 2

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 rankRunloop: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Runloop fits fully and Cloudflare is a compromise, because its disk resets on sleep and holds 20 GB by default; boat adds nested virtualization and keeps the disk on every plan.
162nd of 367, with limits
$1,543 a month
20th cheapest of 367
$8,152 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
207th of 366, with limits
$2,188 a month
32nd cheapest of 366
$10,194 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
Cloudflare Sandbox ranks 13th here, ahead of Runloop at 44th: CPU is billed only while busy and a container wakes on the next request; boat's start limits queue very large bursts.
13th cheapest of 345
$144 a month
44th cheapest of 345
$525 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
boat ranks 1st, Cloudflare 9th and Runloop 26th; Cloudflare adds egress rules you write as Worker code, and Runloop adds hostname allowlists.
9th cheapest of 361
$731 a month
26th cheapest of 361
$3,301 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
Runloop ranks 4th for RL rollouts: it starts large waves without published start limits, while Cloudflare and boat are only a compromise fit.
144th of 360, with limits
$9,428 a month
4th cheapest of 360
$15,922 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
81st cheapest of 364
$2,562 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
Runloop fits fully and Cloudflare is a compromise, with 20 GB of disk by default and no iptables changes; boat's faster CPUs finish builds and tests sooner.
301st of 377, with limits
$704 a month
121st cheapest of 377
$1,554 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: Runloop keeps them through suspend on Pro, Cloudflare starts from a fresh disk after sleep, and boat stops at no cost and resumes with its disk.
70th cheapest of 368
$93 a month
113th cheapest of 368
$410 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
Runloop ships a desktop and a browser your agent can control, while Cloudflare removed its built-in desktop; boat streams its desktop at 60fps and you can embed it.
166th of 369, with limits
$460 a month
39th cheapest of 369
$2,306 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
40th cheapest of 367
$1,153 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
68th cheapest of 346
$781 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
266th of 338, with limits
$15,611 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
Runloop can lock a devbox to a hostname allowlist, Cloudflare containers cannot change iptables or take raw TCP, and boat gives a full kernel with nested virtualization and raw TCP.
239th of 360, with limits
$325 a month
10th cheapest of 360
$770 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 SandboxRunloopboat
IsolationFirecracker microVM per container, own kernel and networkMicro-VM on a custom hypervisor, plus a container layerFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Largest machine4 vCPU / 12 GiB / 20 GB disk by default (can be raised)Sizes include 4 vCPU / 8 GiB; disk up to 64 GiBUp to 16 vCPU / 32 GB, depending on plan
Files between sessionsFresh disk after sleep; snapshots (public beta, 30 days) or R2 backups when your code saves themDisk kept through suspend (Pro plan) or disk snapshots; shutdown ends the devboxSnapshot every minute and on stop, on every plan; a stopped sandbox costs nothing
Long runsNo fixed maximum runtime, but no guaranteed runtime; host restarts wipe stateLifetime 1 hour by default, 48 hours max; an idle policy replaces itNo session cap on paid plans; TTL 1 hour by default, changeable
Sleep when idle, wake on requestStops after inactivity and wakes on the next request, on Workers PaidSuspend after idle, wake on an HTTP request to the tunnel (Pro plan)No idle timer; TTL based
Docker insidedocker:dind with iptables and IP forwarding turned offYes, on the Docker-in-Docker blueprints, as rootFull Docker, root and systemd
Nested virtualizationNot documentedNot documented; Docker-in-Docker onlyYes, /dev/kvm (Android emulators, VMs)
Desktop and browserBuilt-in desktop removed in SDK 0.10.2; bring your ownDesktop and browser your agent can control60fps desktop and Chromium, computer-use API, embeddable stream
Inbound trafficHTTP and WebSocket previews routed through your Worker; no raw TCP or public IPOne HTTPS tunnel per devbox; SSH through a TLS proxy; no public IPHTTPS 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 codeHostname allowlist with wildcards, or block allOpen internet, no provider-side allowlist
Keeping keys out of the sandboxYour outbound handler adds the token for any HTTP or HTTPS host; you write the codeAgent gateways for any API endpoint with bearer, header or basic authManaged proxy for model providers and any HTTPS API; switch a credential to another account
Coding agentsRun Claude Code, Codex, OpenCode or Pi in your image; OpenCode has an SDK helperClaude Code, Codex, OpenCode, Gemini CLI, DeepAgents, driven through Axons and BrokerClaude Code, Codex, pi, OpenCode and more built in, with a prompt, steer and events API
CPU architecturelinux/amd64 imagesx86_64 and arm64x86_64 only
Where it runsSeveral regions across Cloudflare's network, nearest free one pickedRegions not documented; deploy into your own AWS, GCP or Azure (Enterprise)EU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureCloudflare SandboxRunloopboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoNoYes
RootYesYesYes
SystemdNot publishedNot publishedYes
Desktop GUINoYesYes
BrowserNoYesYes
Computer-use APINoYesYes
SSHYesYesYes
Persistent diskNoYesYes
Pause/resumeNoYesYes
Automatic snapshotsNoYesYes
Fork/cloneNoYesYes
Live fork (no pause)NoYesYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsYesYesYes
Agent harness APIYesYesYes
MCP serverNoYesNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoNoNo
BYOCNoYesNo
Open sourceYesNoNo
Scoped API keysNot publishedYesYes
Spend limitsNoNot publishedYes
Usage per sandbox (API)Not publishedNoYes
Audit logsYesNot publishedNo
SSOYesYesNo
SOC 2YesYesNo
HIPAAYesNot publishedNo
EU data residencyYesNoYes
Zero data retentionNot publishedNot publishedYes

Performance

Cloudflare SandboxNot measured
Runloop8.29 runs/s
boat26.69 runs/s

On the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB (run 36498291449, 2026-09-29), boat scored 26.69 runs a second and Runloop 8.29, about 3.2 times apart. Cloudflare Sandbox has no result on that benchmark, so there is no comparable CPU number for it.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Cloudflare Sandbox has 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 monthRunloop, 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$113 · Basic$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$429 · Basic$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$5,268 · Basic$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$1,441 · Basic$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$3,184 · Basic$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 until the container sleeps, and 4 vCPU always comes with 12 GiB.

Runloop: Runloop bills per second for allocated CPU and memory while a devbox starts, runs, suspends or resumes, and bills its disk for the devbox's whole life. Basic has no plan fee; Pro adds $250 a month that is not usage credit.

Runloop: Plans start at $20 a month and the whole fee is 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 holds 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. Its account can run 1,500 vCPU at once by default, short of the 2,000 the 1,000-job burst needs, though Cloudflare says that can be raised. Runloop fits all five scenarios but publishes no egress price. boat runs into start limits on that burst: even the $2,000 plan queues bursts above 90 starts a minute.

ScenarioCloudflare SandboxRunloopboat
One coding agent, workdays
  • missing persistent disk
  • egress price not published
None that bite
One agent that never stops
  • missing persistent disk
  • egress price not published
None that bite
50 agents in parallel
  • missing persistent disk
  • egress price not published
None that bite
Sandboxes for your usersNone that bite
  • egress price not published
None that bite
1,000 short jobs at once
  • Workers Paid: max 1,500 vCPU running at once (needs 2,000)
  • egress price not published
  • 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 program.

  • 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 Worker 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 Runloop when

you build and test coding agents that need a desktop, saved disks, arm64 or devboxes inside your own AWS, GCP or Azure account.

  • A desktop and saved disks for agents. Useful for computer-use agents: each devbox has a desktop and browser, and its disk survives a suspend or a snapshot.
  • Run it in your own cloud. On the Enterprise plan, Runloop can run devboxes inside your own AWS, GCP or Azure account.
  • arm64 and Dockerfile blueprints. Useful for arm64 builds: Runloop offers x86_64 and arm64 machines and builds images from Dockerfiles.

Where boat fits

Both Cloudflare Sandbox and Runloop make you work to keep an agent's files, and neither gives it a full kernel. If your agents run for hours on installs, builds, tests, Docker and emulators, boat gives each one a whole VM that keeps its disk on every plan.

The disk stays put

On Cloudflare a sleeping sandbox wakes with an empty disk unless your code saved a snapshot. On Runloop a shut-down devbox is gone, so keeping work means the $250-a-month Pro plan for suspend, or your own snapshot code.

A full Linux machine

Neither documents /dev/kvm, so Android emulators and VMs do not start. Cloudflare runs Docker with iptables off and 20 GB of disk by default, and both reach a sandbox only through HTTPS, so raw TCP has no way in.

Faster CPUs for builds

On the same Node.js benchmark boat ran 26.69 runs a second and Runloop 8.29, so each build or test waits about three times as long on Runloop. Cloudflare has no measured score and stops at 4 vCPU.

Use boat when your agents do real work for hours: builds, tests, full Docker, emulators and a desktop, on faster CPUs and a machine that keeps its files on every plan. Compare it one to one: boat vs Cloudflare Sandbox and boat vs Runloop.

Questions people ask

Is Cloudflare Sandbox cheaper than Runloop?

Its estimates are lower in all five scenarios, for example $1,660 against $5,268 a month for 50 agents in parallel. But Cloudflare does not fit the scenarios that keep files between days, because its disk resets on sleep. boat costs $317 a month for those 50 agents.

Which is faster, Cloudflare Sandbox or Runloop?

Only Runloop has a score on the hpc-sandbox-benchmarks CPU test: 8.29 runs a second at 4 vCPU / 8 GB. boat scored 26.69 on the same test. Cloudflare has no result, so there is no CPU number to compare.

Can Cloudflare Sandbox and Runloop run Docker?

Both can. Cloudflare supports docker:dind with iptables and IP forwarding turned off, and Runloop runs Docker as root on its Docker-in-Docker blueprints. boat runs full Docker with root and systemd.

Do they keep my files between sessions?

Cloudflare starts from a fresh disk after sleep unless your code saved a snapshot (public beta, kept 30 days) or an R2 backup. Runloop keeps the disk through suspend on the Pro plan or in a snapshot, and deletes it on shutdown. boat keeps the disk on every plan.

Which one has a desktop for computer-use agents?

Runloop ships a desktop and a browser your agent can control. Cloudflare removed its built-in desktop in SDK 0.10.2, so you would add one to your own image. boat streams a desktop at 60fps with a computer-use API.

Where do they run?

Cloudflare places containers in several regions of its network. Runloop does not document regions, but on Enterprise it can deploy into your own AWS, GCP or Azure account. boat runs in the EU only, in Germany, Finland and France.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons