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.
- Largest instance
- 4 vCPU, 12 GiB memory, 20 GB disk (defaults, can be raised)
- Account limits
- 1,500 vCPU, 6 TiB memory and 30 TB disk running at once
- Compliance
- Cloudflare holds a SOC 2 Type II report
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
- Architectures
- x86_64 and arm64 base blueprints
- Own-cloud deploy
- Deploy to VPC on AWS, GCP and Azure (Enterprise)
- Regions
- Not documented or selectable
- Company
- Runloop AI, Inc.
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 workload | Cloudflare Sandbox: price rank | Runloop: price rank | boat: 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 it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Cloudflare Sandbox | Runloop | boat |
|---|---|---|---|
| Isolation | Firecracker microVM per container, own kernel and network | Micro-VM on a custom hypervisor, plus a container layer | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Largest machine | 4 vCPU / 12 GiB / 20 GB disk by default (can be raised) | Sizes include 4 vCPU / 8 GiB; disk up to 64 GiB | Up to 16 vCPU / 32 GB, depending on plan |
| Files between sessions | Fresh disk after sleep; snapshots (public beta, 30 days) or R2 backups when your code saves them | Disk kept through suspend (Pro plan) or disk snapshots; shutdown ends the devbox | Snapshot every minute and on stop, on every plan; a stopped sandbox costs nothing |
| Long runs | No fixed maximum runtime, but no guaranteed runtime; host restarts wipe state | Lifetime 1 hour by default, 48 hours max; an idle policy replaces it | No session cap on paid plans; TTL 1 hour by default, changeable |
| Sleep when idle, wake on request | Stops after inactivity and wakes on the next request, on Workers Paid | Suspend after idle, wake on an HTTP request to the tunnel (Pro plan) | No idle timer; TTL based |
| Docker inside | docker:dind with iptables and IP forwarding turned off | Yes, on the Docker-in-Docker blueprints, as root | Full Docker, root and systemd |
| Nested virtualization | Not documented | Not documented; Docker-in-Docker only | Yes, /dev/kvm (Android emulators, VMs) |
| Desktop and browser | Built-in desktop removed in SDK 0.10.2; bring your own | Desktop and browser your agent can control | 60fps desktop and Chromium, computer-use API, embeddable stream |
| Inbound traffic | HTTP and WebSocket previews routed through your Worker; no raw TCP or public IP | One HTTPS tunnel per devbox; SSH through a TLS proxy; no public IP | HTTPS URLs for up to 50 ports, token-protected; raw TCP; own IPv6 or IPv4 |
| Egress control | allowedHosts deny-by-default list plus outbound handlers you write in Worker code | Hostname allowlist with wildcards, or block all | Open internet, no provider-side allowlist |
| Keeping keys out of the sandbox | Your outbound handler adds the token for any HTTP or HTTPS host; you write the code | Agent gateways for any API endpoint with bearer, header or basic auth | Managed proxy for model providers and any HTTPS API; switch a credential to another account |
| Coding agents | Run Claude Code, Codex, OpenCode or Pi in your image; OpenCode has an SDK helper | Claude Code, Codex, OpenCode, Gemini CLI, DeepAgents, driven through Axons and Broker | Claude Code, Codex, pi, OpenCode and more built in, with a prompt, steer and events API |
| CPU architecture | linux/amd64 images | x86_64 and arm64 | x86_64 only |
| Where it runs | Several regions across Cloudflare's network, nearest free one picked | Regions not documented; deploy into your own AWS, GCP or Azure (Enterprise) | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Cloudflare Sandbox | Runloop | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Not published | Not published | Yes |
| Desktop GUI | No | Yes | Yes |
| Browser | No | Yes | Yes |
| Computer-use API | No | Yes | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | No | Yes | Yes |
| Pause/resume | No | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | Yes | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | Yes | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | Yes | Yes | Yes |
| MCP server | No | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | No | No | No |
| BYOC | No | Yes | No |
| Open source | Yes | No | No |
| Scoped API keys | Not published | Yes | Yes |
| Spend limits | No | Not published | Yes |
| Usage per sandbox (API) | Not published | No | Yes |
| Audit logs | Yes | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Not published | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
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.
| Scenario | Cloudflare Sandbox, a month | Runloop, a month | boat, 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.
| Scenario | Cloudflare Sandbox | Runloop | boat |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users | None that bite |
| None that bite |
| 1,000 short jobs at once |
|
|
|
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
- boat vs Cloudflare Sandbox
- boat vs Runloop
- E2B vs Cloudflare Sandbox
- Daytona vs Cloudflare Sandbox
- Modal vs Cloudflare Sandbox
- Vercel Sandbox vs Cloudflare Sandbox
- Cloudflare Sandbox vs Blaxel
- Cloudflare Sandbox vs Tensorlake
- Cloudflare Sandbox vs Morph Cloud
- Cloudflare Sandbox vs CodeSandbox SDK
- Cloudflare Sandbox vs Northflank
- Cloudflare Sandbox vs Fly.io Machines