E2B vs Unikraft Cloud
Both run each workload in its own Firecracker-based microVM. E2B is an API that hands each agent a sandbox with SDKs, a desktop and memory pause, billed per second, while Unikraft Cloud turns a Dockerfile into a tiny microVM that wakes in milliseconds and sells flat pools of running capacity.
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
Unikraft Cloud
Unikraft Cloud is a microVM cloud from Unikraft Inc. that runs any Dockerfile-based workload as a minimal Linux microVM with millisecond cold starts and scale-to-zero.
Your Dockerfile becomes the VM image at build time, and each instance runs on a heavily customized Firecracker VMM, so it boots in milliseconds and can go into standby when no traffic arrives. It is a general compute platform built for dense, bursty work such as HTTP services, headless browsers and agent fleets, sold as flat self-serve plans plus Enterprise dedicated hosts, on-prem and bring your own cloud. It is not a dev machine you log into: instances are reached through services, the CLI and a sandbox plugin for commands and files.
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 | Unikraft Cloud: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month E2B fits a software factory with Docker inside each sandbox; Unikraft documents no container runtime inside an instance, and bochka adds /dev/kvm and about twice E2B's CPU speed. | 16th cheapest of 367 $4,143 a month | Can't run it | 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 all month hits E2B's 24-hour session cap, and Unikraft's Team pool gives every running instance 8 GiB of memory to share; bochka simply keeps running. | 51st of 366, with limits $5,348 a month | Can't run it | 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 that sleep between calls suit both: E2B pauses with memory and wakes on the next call, and Unikraft wakes in milliseconds, though its self-serve plans cap you at 24 running instances. | 37th cheapest of 345 $421 a month | Can't run it | 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 scales to hundreds of running user sandboxes on self-serve plans, while Unikraft Pro holds 5,000 sleeping instances but only 24 running ones. | 23rd cheapest of 361 $2,354 a month | Can't run it | 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's memory forks and high start rate suit many short rollouts that branch from the same state; Unikraft has no self-serve pool big enough for that many at once. | 2nd cheapest of 360 $9,384 a month | Can't run it | 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 | Can't run it | 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 jobs that build Android apps or VM images need /dev/kvm, which E2B does not support and Unikraft keeps for Enterprise; bochka has it on every plan. | 337th of 377, with limits $1,429 a month | Can't run it | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Unikraft's Team pool keeps a box around all month with no session cap but no SSH, E2B stops sessions at 24 hours on Pro, and bochka has neither limit. | 192nd of 368, with limits $358 a month | 219th of 368, with limits $39 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 Unikraft has none built in; bochka streams its desktop at 60fps. | 32nd cheapest of 369 $1,342 a month | Can't run it | 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 | Can't run it | 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 | Can't run it | 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 | Can't run it | 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 | Can't run it | 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 | Unikraft Cloud | bochka |
|---|---|---|---|
| Isolation | Firecracker microVM with its own kernel | Minimal Linux microVM on a customized Firecracker VMM | 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 per sandbox, more on request | Plan pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB | 4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB per sandbox on the $100 plan and above |
| Session length | Up to 1 hour on Hobby, 24 hours on Pro; pausing resets the clock | No published session cap; instances run until stopped or put in standby | No cap on paid plans; you set the time to live |
| Docker inside | Yes, Docker runs inside the sandbox | The Dockerfile becomes the VM image; no container runtime inside documented | Yes, Docker, systemd and root, like any Ubuntu machine |
| Nested virtualization | Not supported | Yes, Enterprise only | Yes, /dev/kvm for Android emulators and VMs on every plan |
| Pause and wake | Pauses with memory and resumes in about 1 second; can wake on the next request | Standby after a 1 second idle cooldown; traffic wakes it in milliseconds, with memory in stateful mode | Disk saved every minute and on stop; a stopped sandbox costs nothing and is started again by API |
| Fork | Fork a running sandbox with its memory, up to 20 copies per call | Checkpoint memory and volumes of a running microVM, then start new instances from it | Fork a running sandbox with its disk |
| Desktop and computer use | Linux desktop for computer-use agents | None built in; you can run your own headless browser from a Dockerfile | Linux desktop streamed at 60fps, Chromium, and a computer-use agent |
| Inbound access | HTTPS URL per port, public by default unless you turn on a token; no dedicated IP | Services on its load balancer: HTTP on 80, HTTPS on 443, TLS-wrapped TCP on other ports; no public IP per instance | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Allow and deny lists by IP, CIDR or domain | Network shield filters traffic, Enterprise only, limited access | Open internet, no provider-side allowlist |
| Keeping API keys out of the sandbox | Secrets injected into outbound HTTPS headers (private beta) | Network shield can inject secrets into traffic, Enterprise only, limited access | Credentials proxy for model providers and any HTTPS API, on every plan; switch a credential to another account when credits run out |
| Coding agents | Templates and guides for many agents, run through the command API | None preinstalled; you bring the agent in your own image | Seven agents preinstalled, with a prompt, steer and events API |
| Regions and self-hosting | US by default, EU and APAC on Pro; open-source runtime and bring your own cloud on Enterprise | Dallas, Frankfurt, San Francisco, Singapore, Washington DC; dedicated hosts, on-prem and your own cloud on Enterprise | EU only (Germany, Finland, France); no self-hosting |
Every feature Battleships tracks (43)
| Feature | E2B | Unikraft Cloud | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Not published | 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 | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | Yes | Yes | 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 | 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 | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | Yes | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | Yes | Yes | No |
| BYOC | Yes | Yes | 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 | Yes | No |
| SSO | No | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
On the StarSling hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, bochka did 26.69 runs per second and E2B did 12.61, so bochka finished about twice as much CPU work in the same time. Unikraft Cloud has no comparable measurement. Its own figure is cold starts under 10 ms, which measures start time, not CPU speed.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Unikraft Cloud 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 | Unikraft Cloud, 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 | $39 · Hobby | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $368 · Pro · with limits | $39 · Hobby | $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 | Can't run it | $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) | Can't run it | $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) | Can't run it | $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.
Unikraft Cloud: Unikraft charges a flat monthly fee for a pool of running capacity: free for 2 vCPU / 4 GiB, $39 for 8 vCPU / 8 GiB, $199 for 24 vCPU / 32 GiB, with sleeping instances not counted. It publishes no per-hour rate, so anything bigger is an Enterprise quote.
Unikraft Cloud: 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 it does not fit the agent that never stops, and Pro includes 20 GiB of disk. Unikraft's limits are pools every running instance shares: one 4 vCPU / 8 GB agent fills the Team plan, so the 50-agent, user-sandbox and burst scenarios fit no self-serve plan. bochka has no session cap, but at 1,000 short jobs at once its start limits are lower than E2B Pro++, which only queues bursts above 300 starts a minute.
| Scenario | E2B | Unikraft Cloud | bochka |
|---|---|---|---|
| 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 |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use E2B when
you run many short agent or code jobs that pause between requests, need hundreds of sandboxes at once on a self-serve plan, or want an open-source runtime.
- Bigger fleets without a sales call. E2B's self-serve plans run 100 to 1,100 sandboxes at once, while Unikraft's largest self-serve pool holds 24 running instances.
- Built for agent sessions. Python and JavaScript SDKs, Docker inside, a Linux desktop and agent templates help teams handing each agent its own sandbox.
- Open-source runtime. E2B's runtime is Apache-2.0 and can run on your own Linux host with KVM, which suits teams that want to self-host.
Use Unikraft Cloud when
you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, or want GPUs, on-prem or your own cloud under an Enterprise contract.
- Millisecond starts and scale-to-zero. Best for many small services that sleep most of the time and must answer the next request in milliseconds.
- No session clock. An instance can keep running all month with no published session cap, so long-lived services need no pause and resume logic.
- GPUs, arm64 and your own hardware. Enterprise customers can get NVIDIA GPUs, arm64 hosts, dedicated hosts, on-prem or their own cloud.
Where bochka fits
If your agents do real work for hours, like installs, builds, tests, Docker, emulators and a browser, look at bochka. E2B cuts sessions off at 24 hours and Unikraft keeps nested virtualization, egress rules and secret injection for Enterprise, while bochka gives every sandbox a full VM with these on self-serve plans.
A whole machine with /dev/kvm
E2B does not support nested virtualization and Unikraft keeps it for Enterprise, so Android emulators and VMs need a contract or cannot start. Unikraft also documents no Docker inside an instance. bochka gives root, systemd, Docker and /dev/kvm on every plan.
Runs as long as the task does
On E2B Pro a session stops at 24 hours, so your code has to pause and resume long agents. Unikraft has no clock, but its Team pool is 8 GiB shared by every running instance. bochka has no session cap on paid plans.
Faster CPU and agents driven from outside
bochka did 26.69 runs per second on the CPU benchmark against E2B's 12.61, and Unikraft was not measured. Seven coding agents come preinstalled, driven from outside, with real keys kept in a credentials proxy instead of a private beta or Enterprise feature.
Use bochka when your agents need a real machine to work in for hours: Docker, emulators, a desktop and a browser, coding agents you drive from outside, on a fast CPU with no session cap. Compare it one to one: bochka vs E2B and bochka vs Unikraft Cloud.
Questions people ask
Is E2B cheaper than Unikraft Cloud?
For one agent, no: one coding agent on workdays or one that never stops costs less on Unikraft's Team pool than on E2B. For 50 agents, sandboxes for your users or 1,000 short jobs, no self-serve Unikraft plan is big enough, so E2B has a published price and Unikraft needs an Enterprise quote.
Which is faster, E2B or Unikraft Cloud?
Unikraft starts faster: its microVMs cold boot in milliseconds and wake on the next request. For CPU work there is no comparable Unikraft measurement; E2B did 12.61 runs per second on the hpc-sandbox-benchmarks test, and bochka did 26.69.
Can E2B and Unikraft Cloud run Docker?
E2B runs Docker inside the sandbox. Unikraft uses your Dockerfile to build the VM's filesystem, and its docs do not describe a container runtime inside a running instance. bochka runs Docker, systemd and /dev/kvm in every sandbox.
Can a sandbox run for days on E2B or Unikraft Cloud?
Not in one E2B session: it stops after 24 hours on Pro and 1 hour on Hobby, though pausing resets the clock. Unikraft publishes no session cap, so an instance runs until stopped. bochka has no session cap on paid plans.
Can I SSH into Unikraft Cloud?
Not yet. Today you run commands and move files through its sandbox plugin and CLI. You can SSH into every bochka sandbox or drive it through its API.
Is bochka SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.bochka.xyz and our data retention policy at docs.bochka.xyz/data-retention.
Try bochka
Install the CLI, then run bochka new.
Product preview