Sprites vs Docker Cloud Sandboxes
Both give a coding agent its own small Linux VM in the cloud. A Sprite lives for as long as you keep it, sleeps when idle and wakes on the next request, while a Docker cloud sandbox is the same sbx microVM you run on your laptop, sized as you like, but it ends 24 hours after creation and runs 10 at a time by default.
The companies and products
Sprites
Sprites is Fly.io's product for agents: persistent Linux computers you create by API or CLI, which sleep when idle and wake on the next request.
Each Sprite is a Firecracker microVM with 8 vCPU, memory the platform manages, and a 100 GB ext4 disk that syncs to object storage. It runs one managed Ubuntu image with Claude Code, Codex, Gemini CLI and Cursor preinstalled, gets an HTTPS URL that wakes it, and bills only for the CPU and memory it actually uses while awake. It is built for coding agents, dev environments and user code that sit idle most of the time.
- Isolation
- Firecracker microVM per Sprite
- Regions
- Not selectable for Sprites
- Free start
- $30 trial credit per organization
Docker Cloud Sandboxes
Docker Cloud Sandboxes runs Docker's sbx coding-agent microVMs on Docker-managed compute instead of your laptop.
Each sandbox is a microVM with its own Linux kernel and its own Docker Engine, started from the same sbx CLI you use locally, with Claude Code, Codex and other agents ready to run. You can move a sandbox from your laptop to the cloud and back, publish HTTPS ports and SSH in. It launched on September 24, 2026, is billed pay-as-you-go on a personal Docker account, and is built for developers who want their local agent sandboxes to keep going off their machine.
- Launched
- September 24, 2026
- Session length
- 1 hour by default, extendable to 24 hours from creation
- Default quota
- 10 concurrent and 50 stored sandboxes per account
- Regions
- Not published
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. “63rd cheapest of 377” means 62 of the other 376 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 | Sprites: price rank | Docker Cloud Sandboxes: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A software factory runs many agents for days; Sprites has no session cap, while Docker ends each sandbox at 24 hours and runs 10 at a time, and bochka adds systemd, /dev/kvm and many ports. | 66th of 367, with limits $546 a month | 280th of 367, with limits $4,928 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An always-on assistant drops its connections each time a Sprite pauses and cannot live in one Docker session past 24 hours; bochka just keeps the machine running. | 157th of 366, with limits $1,166 a month | 276th of 366, with limits $5,110 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 Short code runs suit both: Sprites bills only real CPU and memory and sleeps about 30 seconds after the last command, and Docker bills small sandboxes by the second. | 93rd of 345, with limits $140 a month | 119th of 345, with limits $233 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 Serving your users needs many sandboxes at once; Sprites does not publish a pay-as-you-go cap, Docker defaults to 10, and bochka runs 100 on its $20 plan. | 56th of 361, with limits $428 a month | 136th of 361, with limits $1,628 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 | 105th of 360, with limits $6,540 a month | 114th of 360, with limits $7,000 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 | 125th of 364, with limits $545 a month | 167th of 364, with limits $1,400 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 Sprites fits plain CI runs, but neither documents /dev/kvm for Android or VM image builds, which bochka exposes. | 63rd cheapest of 377 $476 a month | 172nd of 377, with limits $672 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A dev box on all month needs no session cap, which rules out one Docker session; on Sprites you reach SSH only through its proxy CLI, while bochka has SSH and systemd. | 213th of 368, with limits $27 a month | 127th of 368, with limits $204 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; both Sprites and Docker are headless, while bochka streams a 60fps desktop with Chromium. | 85th of 369, with limits $136 a month | 268th of 369, with limits $1,400 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 Neither Sprites nor Docker ships a browser in the sandbox; bochka has Chromium on a desktop you can watch. | 171st of 367, with limits $122 a month | 277th of 367, with limits $700 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 | 229th of 346, with limits $206 a month | 262nd of 346, with limits $350 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 | 141st of 338, with limits $4,113 a month | 190th of 338, with limits $7,000 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 | 210th of 360, with limits $223 a month | 248th of 360, with limits $350 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 | Sprites | Docker Cloud Sandboxes | bochka |
|---|---|---|---|
| Isolation | Firecracker microVM with its own kernel | MicroVM with its own Linux kernel; hypervisor not named | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Machine size | Fixed 8 vCPU and 100 GB disk; memory managed and scaled by the platform | 1 vCPU / 2 GiB up to 16 vCPU / 32 GiB, amd64 or arm64 by account | You choose; up to 16 vCPU / 32 GB on the $100 plan and above |
| Session length | No time cap; a Sprite lives until you delete it | 1 hour by default, at most 24 hours from creation; resuming starts a new timer | No cap on paid plans; you set the time to live |
| Idle behavior | Pauses about 30 seconds after activity stops and wakes on the next request in 100 to 500 ms; open connections drop | Runs until you stop it or its timer ends; stop keeps memory and files | Runs until you stop it or its time to live ends; disk saved every minute and on stop |
| Sandboxes at once | Not published on pay as you go; optional plans list 20 up to 2,000 running | 10 by default; no published way to raise it | 100 on the $20 plan, up to 2,000 on higher plans, self-serve |
| Fork | No fork; checkpoints restore the disk in place | Snapshot a running sandbox with disk or disk and memory, then restore it as a new sandbox | Fork a running sandbox with its disk into a new one |
| Inside the machine | Root and Docker (with rough edges users report); no systemd, and no /dev/kvm in the docs | Its own Docker Engine; agent runs as a non-root user with sudo; no nested virtualization documented | Root, Docker, systemd and /dev/kvm for emulators and VMs |
| Desktop and browser | Headless; no desktop or browser product | Terminal sessions only | 60fps desktop with Chromium, computer use and browser control, embeddable stream |
| Reaching the sandbox | One HTTPS URL to one HTTP port, private by default; other ports and SSH only through the sprite proxy CLI | Public HTTPS URL per published port, not protected by Docker sign-in; SSH with Docker-issued certificates | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6; SSH |
| Outbound rules | Optional DNS-based domain allowlist set from outside; private IPs always blocked | Allow and deny rules by host at a proxy, with allow-all, balanced and deny-all presets | Open internet, no provider-side allowlist |
| Keeping API keys out of the sandbox | Connectors hold the token for GitHub, Slack or any HTTP API, with path allow and block lists | Cloud proxy sets the auth header for built-in AI services and custom hosts; the sandbox sees a placeholder | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Coding agents | Claude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec or a console | Claude Code, Codex, Copilot, OpenCode and more, run and attached to from the sbx CLI | Seven agents preinstalled, with a prompt, steer and events API to drive them from outside |
| Works with | Remote MCP server, agent plugins, and backends for Claude Managed Agents and Cursor Cloud Agents | The same microVM and CLI on your laptop; move a sandbox between laptop and cloud | REST API, CLI and SDKs |
| Regions | Region not selectable | Not published | EU only (Germany, Finland, France), with EU data residency |
Every feature Battleships tracks (43)
| Feature | Sprites | Docker Cloud Sandboxes | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | No | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | No | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | No | No |
| Wake on request | Yes | Not published | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | Not published | 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 | No | No | Yes |
| MCP server | Yes | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | No | No |
| HIPAA | Yes | No | No |
| EU data residency | No | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable CPU measurement for Sprites or Docker Cloud Sandboxes: neither is in the hpc-sandbox-benchmarks runs we use, and Docker does not say what hardware it runs on. bochka did 26.69 runs per second on the Node.js build-and-test benchmark at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Sprites and Docker Cloud Sandboxes 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.
| Scenario | Sprites, a month | Docker Cloud Sandboxes, a month | bochka, 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 | $23 · Pay-as-you-go | $49 · Docker Agentic Platform (pay-as-you-go) | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $92 · Pay-as-you-go | $204 · Docker Agentic Platform (pay-as-you-go) · with limits | $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,120 · Pay-as-you-go | $2,464 · Docker Agentic Platform (pay-as-you-go) · with limits | $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 | $314 · Pay-as-you-go · with limits | $700 · Docker Agentic Platform (pay-as-you-go) · 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,134 · Pay-as-you-go · with limits | $1,400 · Docker Agentic Platform (pay-as-you-go) · with limits | $2,000 · $2000/mo · with limits |
Sprites: Sprites bills measured CPU time at $0.0385 per CPU-hour and actual memory at $0.021875 per GB-hour, only while the Sprite is awake, plus storage on the bytes you write. Optional plans buy fixed CPU, memory and storage allowances that are not credit.
Docker Cloud Sandboxes: Docker bills per second for the size you pick, from $0.07 an hour for 1 vCPU / 2 GiB to $1.12 an hour for 16 vCPU / 32 GiB, with no monthly fee. A stopped sandbox costs nothing, and volumes and egress are free.
Docker Cloud Sandboxes: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Docker ends every sandbox 24 hours after creation and runs 10 at a time by default, so one agent that never stops, 50 agents in parallel, sandboxes for your users and 1,000 short jobs at once do not fit. Sprites fits the always-on agent and 50 agents in parallel, but it does not publish how many can run at once on pay as you go, so 300 user sandboxes and 1,000 jobs at once are not confirmed, and creation is 10 a minute without a plan. bochka fits every scenario except the 1,000-job burst, where even the $2,000 plan queues starts.
| Scenario | Sprites | Docker Cloud Sandboxes | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops | None that bite |
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
|
| None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Sprites when
your agents or apps sit idle most of the day, should wake on a request, and need to keep their machine for weeks.
- Sleeps when idle, wakes on request. For agents and apps idle most of the day: a Sprite pauses on its own and wakes on the next request.
- Lives as long as you keep it. A Sprite has no session cap, so a project's machine stays put for weeks, unlike Docker's 24-hour limit.
- Bills what you actually use. For bursty work: Sprites bills measured CPU time and real memory only while awake, not the full machine size.
Use Docker Cloud Sandboxes when
you already run agents in sbx on your laptop and want a few to keep going in the cloud for up to a day, with memory kept across stops.
- Stop and fork with memory. For agents that pause between steps: a stopped sandbox resumes with memory, and a running one can be forked with it.
- The same sandbox on your laptop. If you already use sbx locally, the cloud runs the same microVM and CLI, and you can move work between them.
- Pick the size and get SSH. Teams that want a set machine size, from 1 to 16 vCPU, and plain SSH get both without a local proxy.
Where bochka fits
Sprites and Docker Cloud Sandboxes are both good at a small agent VM that runs some of the time. If your agents run for days, by the dozen, need emulators, a screen or many open ports, or have to be driven from your own app, bochka gives each one a full machine that keeps running.
Runs as long as the work
A Sprite pauses about 30 seconds after activity stops and drops open connections unless a task hold, renewed each hour, keeps it awake. Docker ends a sandbox 24 hours after creation. bochka has no session cap on paid plans.
A whole machine, screen included
Neither documents /dev/kvm, Sprites has no systemd, and both are headless, so emulators fail and a browser agent runs blind unless you add a display, browser and stream yourself. bochka ships systemd, /dev/kvm and a 60fps desktop with Chromium.
Drive agents inside from outside
On Sprites you start agents through exec, and on Docker you attach to their terminal, so you write a wrapper and parse text to know when they finish. bochka has a prompt, steer and events API for seven agents.
Use bochka when your agents run for days or by the dozen, need systemd, Android emulators, a desktop or a browser, or have to be driven from your own app through an API. Compare it one to one: bochka vs Sprites and bochka vs Docker Cloud Sandboxes.
Questions people ask
Is Sprites cheaper than Docker Cloud Sandboxes?
In our scenarios, yes: one coding agent on workdays is $23 a month on Sprites and $49 on Docker, and one agent that never stops is $92 against $204, though Docker cannot run that in one session. bochka comes to $20 and $26 for the same two.
Which is faster, Sprites or Docker Cloud Sandboxes?
We have no comparable CPU measurement for either. bochka did 26.69 runs per second on the Node.js build-and-test benchmark at 4 vCPU / 8 GB.
Can a sandbox run longer than 24 hours?
On Docker, not in one session: it expires after one hour by default and cannot be extended past 24 hours from creation. A Sprite has no time cap but pauses when idle unless a task hold keeps it awake. bochka has no session cap on paid plans.
Can Sprites and Docker Cloud Sandboxes run Docker?
Both run Docker inside the sandbox. Docker gives each sandbox its own Docker Engine, while users report that docker exec fails on Sprites for containers whose main process is not root. bochka runs Docker with root, systemd and /dev/kvm.
How many can I run at once?
Docker's default is 10 concurrent and 50 stored sandboxes per account. Sprites does not publish a pay-as-you-go cap, and its optional plans list running limits from 20 up to 2,000. bochka's $20 plan runs 100 at once.
Can I SSH into each?
Docker cloud sandboxes take SSH with Docker-issued certificates. On Sprites you install an SSH server yourself and tunnel it through the sprite proxy CLI. bochka sandboxes have SSH, raw TCP and a dedicated IP.
Try bochka
Install the CLI, then run bochka new.
Product preview