E2B vs Sprites
Both give each agent its own Firecracker microVM. E2B is built for many short jobs that pause with their memory, fork and stop after 24 hours on Pro, while a Sprite is a persistent computer that sleeps when idle and bills only the CPU and memory it really uses.
The companies and products
E2B
E2B calls itself the AI agent cloud: an API that gives each agent session its own isolated Linux machine.
Every E2B sandbox is a Firecracker microVM that boots from a snapshot, so it starts fast and can be paused and resumed with its memory. You build custom sandboxes from templates based on a Docker image, and drive them from Python or JavaScript SDKs. It is built for teams that run many short code, data or agent jobs, and its runtime is open source.
- Isolation
- Firecracker microVM per sandbox
- Bring your own cloud
- Enterprise data plane in your AWS, GCP or Azure account
- Compliance
- SOC 2 Type II; HIPAA BAA on request
- Machine size
- 1 to 8 vCPU and 1 to 8 GiB RAM, CPU only
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
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. “16th cheapest of 367” means 15 of the other 366 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 | E2B: price rank | Sprites: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month | 16th cheapest of 367 $4,143 a month | 66th of 367, with limits $546 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine hits E2B's 24-hour cap on Pro, and a Sprite drops open connections each time it pauses unless a task holds it awake; bochka keeps running. | 51st of 366, with limits $5,348 a month | 157th of 366, with limits $1,166 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 Both suit short code runs: E2B pauses with memory and wakes on the next request, and a Sprite sleeps about 30 seconds after the last command and bills only real CPU and memory. | 37th cheapest of 345 $421 a month | 93rd of 345, with limits $140 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 E2B fits 300 user sandboxes at once on Pro+, while Sprites does not publish how many can run at once without a plan; bochka fits with SSH and up to 50 HTTPS ports per user. | 23rd cheapest of 361 $2,354 a month | 56th of 361, with limits $428 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 E2B suits rollouts that branch from one state, since it can fork a running sandbox with its memory; Sprites has no fork. | 2nd cheapest of 360 $9,384 a month | 105th of 360, with limits $6,540 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 | 78th cheapest of 364 $1,975 a month | 125th of 364, with limits $545 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 CI runners as priced here while E2B is a compromise; builds that need Android emulators or VM images need /dev/kvm, which only bochka exposes. | 337th of 377, with limits $1,429 a month | 63rd cheapest of 377 $476 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A Sprite keeps its disk with no session cap but has no systemd and tunnels SSH through its CLI, E2B stops at 24 hours, and bochka has SSH, systemd and a dedicated IP. | 192nd of 368, with limits $358 a month | 213th of 368, with limits $27 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 E2B has a Linux desktop for computer use and Sprites is headless; bochka streams its desktop at 60fps and you can embed it in your app. | 32nd cheapest of 369 $1,342 a month | 85th of 369, with limits $136 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 | 100th of 367, with limits $746 a month | 171st of 367, with limits $122 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 | 57th cheapest of 346 $554 a month | 229th of 346, with limits $206 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 | 227th of 338, with limits $9,223 a month | 141st of 338, with limits $4,113 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 | 11th cheapest of 360 $1,043 a month | 210th of 360, with limits $223 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 | E2B | Sprites | bochka |
|---|---|---|---|
| Isolation | Firecracker microVM with its own kernel | Firecracker microVM with its own kernel | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| CPU benchmark (4 vCPU / 8 GB) | 12.61 runs/s | Not measured | 26.69 runs/s |
| Machine size | 1 to 8 vCPU and 1 to 8 GiB RAM self-serve, more on request | Fixed 8 vCPU and 100 GB disk; memory set and scaled by the platform | You choose; up to 16 vCPU / 32 GB on the $100 plan and above |
| Session length | Up to 1 hour on Hobby, 24 hours on Pro; pausing resets the clock | No cap, but it pauses when idle unless a task holds it awake | No cap on paid plans; you set the time to live |
| Idle behavior | Billed while running, idle included; optional pause with memory, resume in about 1 second, wake on request | Pauses about 30 seconds after activity stops; wakes on the next request in 100 to 500 ms with memory | Runs until you stop it or its time to live ends; a stopped sandbox costs nothing and keeps its disk |
| Fork | Fork a running sandbox with its memory, up to 20 copies per call | No fork in the public API or CLI | Fork a running sandbox with its disk |
| Inside the machine | Root, Docker and systemd; no nested virtualization | Root and Docker with restricted capabilities; no systemd, and no /dev/kvm in the docs | Root, Docker, systemd and /dev/kvm for emulators and VMs |
| Reaching the sandbox | HTTPS URL per port, public unless you turn on a token; no dedicated IP | One HTTPS URL to one HTTP port, private by default; other ports and SSH through the sprite proxy CLI | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6; SSH |
| Outbound rules | Allow and deny lists by IP, CIDR or domain | DNS-based domain allowlist set from outside; private IPs always blocked | Open internet, no provider-side allowlist |
| Keeping keys out of the sandbox | Secrets injected into outbound HTTPS headers (private beta) | Connectors gateway holds the token for any HTTP API, with path allow and block lists | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Desktop and browser | Linux desktop for computer use | Headless; no desktop or browser product | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Coding agents | Templates and guides for many agents, run through the command API | Claude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec or a console | Seven agents preinstalled, with a prompt, steer and events API to drive agents inside from outside |
| Regions | US by default; EU and APAC on Pro and above, enabled by support | Region not selectable | EU only (Germany, Finland, France), with EU data residency |
| Self-hosting | Open-source runtime under Apache-2.0, plus bring your own cloud on Enterprise | No | No |
Every feature Battleships tracks (43)
| Feature | E2B | Sprites | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | No | Yes |
| Desktop GUI | Yes | No | Yes |
| Browser | Yes | No | Yes |
| Computer-use API | Yes | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | Yes |
| Fork/clone | Yes | No | Yes |
| Live fork (no pause) | Yes | No | Yes |
| Memory fork | Yes | 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 | No | No | Yes |
| MCP server | Yes | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | Yes | No | No |
| BYOC | Yes | No | No |
| Open source | Yes | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Yes | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Not published | No |
| SSO | No | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
E2B and bochka were measured in the same StarSling hpc-sandbox-benchmarks run on a Node.js build-and-test loop at 4 vCPU / 8 GB: E2B did 12.61 runs per second and bochka did 26.69, about twice as much CPU work. Sprites is not in these results, and a Sprite always has 8 vCPU, so there is no comparable score for it yet.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Sprites 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 | E2B, a month | Sprites, 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 | $202 · Pro | $23 · Pay-as-you-go | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $368 · Pro · with limits | $92 · Pay-as-you-go | $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 | $2,773 · Pro | $1,120 · Pay-as-you-go | $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 | $1,395 · Pro+ (600 concurrent) | $314 · 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 | $2,797 · Pro++ (1,100 concurrent) | $1,134 · Pay-as-you-go · with limits | $2,000 · $2000/mo · with limits |
E2B: E2B bills per second for the vCPU and RAM you set, idle time included, until you pause or kill the sandbox. Pro costs $150 a month for higher limits with no usage credit, and more concurrency costs $500 a month per 500 slots.
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 include fixed CPU, memory and storage allowances that are not credit.
Sprites: 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
E2B caps a session at 24 hours on Pro, so the agent that never stops does not fit, and its Pro plan includes 20 GiB of disk with no published price beyond that. Sprites does not publish how many Sprites can run at once without a plan, so 300 user sandboxes and 1,000 jobs at once are not confirmed, and creation is 10 a minute. E2B Pro++ fits the 1,000-job burst, only queuing starts above 300 a minute, while bochka's $2,000 plan caps starts per hour and per day.
| Scenario | E2B | Sprites | bochka |
|---|---|---|---|
| One coding agent, workdays |
| 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 E2B when
you run many short jobs that pause with their memory, fork rollouts from one state, need a desktop, or must run in the US or APAC.
- Memory pause and memory forks. For short jobs and rollouts that branch: E2B pauses with memory, resumes in about a second and forks running sandboxes.
- A desktop and custom templates. For computer-use agents and custom stacks: E2B has a Linux desktop and builds sandboxes from your own Docker image.
- More regions and an open runtime. For teams outside the EU or wanting their own cloud: E2B runs in the US, EU and APAC, and its runtime is open source.
Use Sprites when
your agents or apps sit idle most of the day, should wake on a request, and should only bill the CPU and memory they really use.
- Sleeps when idle, keeps its disk. For agents and apps idle most of the day: a Sprite stops billing compute when it sleeps and has no session cap.
- Bills what you really use. For bursty work: Sprites bills measured CPU time and actual memory, not the size you reserved.
- Plugs into agent platforms. For teams on Claude Managed Agents or Cursor Cloud Agents: Sprites can be the machine behind them, with a remote MCP server.
Where bochka fits
Look at bochka when your agents do real work for hours rather than short bursts or long idle stretches. It gives each agent a full VM that keeps running, with systemd, /dev/kvm, many ports and a desktop, and an API to drive agents inside from outside.
Runs as long as the work does
E2B stops a session at 24 hours on Pro, so your code must pause and resume it. A Sprite pauses when idle and drops open connections unless a task holds it awake, for an hour at a time.
A full machine, reachable like a server
Neither E2B nor Sprites offers /dev/kvm, so Android emulators and VMs cannot start, and Sprites has no systemd. Sprites exposes one HTTP port and E2B has no raw TCP or dedicated IP; bochka has all of these.
Agents you drive from outside
E2B runs agents through its command API and Sprites through exec, so you write the code that starts, prompts and watches each one. bochka preinstalls seven agents with a prompt, steer and events API.
Use bochka when your agents need a full, fast machine for hours: systemd, Docker, emulators, many ports, a desktop and browser, forks, and an API to drive agents inside from outside. Compare it one to one: bochka vs E2B and bochka vs Sprites.
Questions people ask
Is E2B cheaper than Sprites?
In the scenarios we priced, Sprites costs less: one agent that never stops is $92 a month on Sprites against $368 on E2B, and 50 agents in parallel are $1,120 against $2,773. E2B bills the size you set while running, and Sprites bills only real use. bochka comes to $26 and $317 for those two.
Which is faster, E2B or Sprites?
We have no comparable score for Sprites. On the hpc-sandbox-benchmarks CPU test at 4 vCPU / 8 GB, E2B did 12.61 runs per second and bochka did 26.69.
Can E2B and Sprites run Docker?
Both run Docker inside the sandbox, though on Sprites users report that docker exec fails for containers whose main process is not root, because capabilities are restricted. Neither offers nested virtualization for Android emulators or VMs. bochka runs Docker, systemd and /dev/kvm.
Can a sandbox run for days on E2B or Sprites?
Not in one E2B session: it stops after 24 hours on Pro, though pausing resets the clock. A Sprite has no session cap and keeps its disk, but pauses about 30 seconds after activity stops unless a task holds it awake for up to an hour at a time. bochka has no session cap on paid plans.
Which one has a desktop for computer use?
E2B has a Linux desktop for computer-use agents, and Sprites is headless. bochka streams a desktop with Chromium at 60fps that you can embed in your app.
Where do E2B and Sprites run?
E2B runs in the US by default, with EU and APAC on Pro and above, enabled by support. Sprites does not let you choose a region. bochka runs only in the EU, in Germany, Finland and France.
Try bochka
Install the CLI, then run bochka new.
Product preview