Upstash Box vs Unikraft Cloud
Both let work sleep when idle and wake when it is needed. Upstash Box gives each agent a light container with coding agents built in and bills the CPU it uses, while Unikraft Cloud turns a Dockerfile into a microVM that wakes in milliseconds inside a flat monthly pool.
The companies and products
Upstash Box
Upstash Box is a cloud computer for AI agents from Upstash, the company known for serverless Redis, Vector and QStash.
Each box is a Docker container with its own filesystem, shell, git and an optional coding agent such as Claude Code, Codex or OpenCode, which you drive from TypeScript or Python SDKs. A box pauses when it sits idle, keeps its files, and you pay for the CPU it actually uses. Upstash built it to run its own Context7 service and opened it to everyone in March 2026.
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. “10th cheapest of 345” means 9 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 | Upstash Box: 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 A software factory runs databases and test services in Docker, which neither an Upstash container nor a Unikraft microVM documents, while bochka runs Docker in every sandbox. | 61st of 367, with limits $464 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 fits an Upstash keep-alive box better than Unikraft's Team pool, where 8 GiB of memory is shared by every running instance. | 103rd of 366, with limits $475 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 suit both designs, and Upstash Box ranks 10th because an idle box costs no CPU, while Unikraft's running pool caps how many runs happen at once. | 10th cheapest of 345 $119 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 Upstash Box ranks 2nd here, just behind bochka, because a user's paused box wakes on the next request; Unikraft's self-serve plans hold only 24 running instances, so hundreds of active users need Enterprise. | 2nd cheapest of 361 $222 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 | 352nd of 360, with limits $8,068 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 | 52nd cheapest of 364 $1,011 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 images or boot Android emulators need Docker and /dev/kvm; Upstash offers neither, Unikraft keeps nested virtualization for Enterprise, and bochka has both on every plan. | 120th cheapest of 377 $1,520 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 All three can keep a box on all month: Upstash Box ranks 10th with a flat keep-alive box, bochka ranks 18th with a full VM, and Unikraft ranks 219th because a 4 vCPU / 8 GB box fills its whole Team pool. | 10th cheapest of 368 $20 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 Computer-use agents need a screen to look at; Upstash's browser is headless, Unikraft has none built in, and bochka streams a Linux desktop at 60fps. | 73rd of 369, with limits $76 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 Upstash ships a managed headless Chromium with AI page actions, on Unikraft you build your own browser into the image, and bochka gives the agent a real desktop browser. | 49th of 367, with limits $38 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 | 37th cheapest of 346 $400 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 | 200th of 338, with limits $8,000 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 | 225th of 360, with limits $259 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 | Upstash Box | Unikraft Cloud | bochka |
|---|---|---|---|
| Isolation | One Docker container per box on AWS | Minimal Linux microVM on a customized Firecracker VMM | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Machine size | Small 2 vCPU / 4 GB, Medium 4 vCPU / 8 GB, Large 8 vCPU / 16 GB per box | One pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB by plan | 4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB per sandbox on the $100 plan and above |
| Docker inside | Not documented; the box is itself a Docker container, and custom images are listed as coming soon | Your Dockerfile becomes the VM image; no container runtime inside is documented | Yes, Docker, systemd and root, like any Ubuntu machine |
| Nested virtualization | No VM support documented | Yes, with a per-instance flag, Enterprise only | Yes, /dev/kvm for Android emulators and VMs on every plan |
| SSH | Yes, through a gateway | Not yet; commands and files go through the sandbox plugin and CLI | Yes, into every sandbox |
| Idle behavior | An idle box costs no CPU and pauses itself, keeping its files; storage keeps billing | Standby after a 1 second idle cooldown by default; stateful mode snapshots memory and resumes with warm caches | Disk saved every minute and on stop; a stopped sandbox costs nothing |
| Wake on request | Yes; a request to a public URL resumes a paused box | Yes; incoming traffic wakes a sleeping instance in milliseconds | No; a stopped sandbox is started by API |
| Fork and snapshots | Snapshot a running box's files and start many new boxes from it | Checkpoint memory and volumes of a running microVM, then start new instances from it | Fork a running sandbox with its disk; snapshots every minute |
| Desktop and browser | Managed headless Chromium with AI page actions and CDP; no desktop | None built in; you can run your own headless browser from a Dockerfile | Linux desktop streamed at 60fps, Chromium and computer-use tools |
| Inbound access | HTTPS URL per port, public unless you add a token or basic auth; no raw TCP | 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 all, deny all, or allow and deny by domain and CIDR, changeable on a running box | Network shield filters traffic, Enterprise only, limited access | Open internet, no provider-side allowlist |
| Keeping API keys out of the sandbox | Host proxy injects headers into outbound HTTPS on port 443, set when the box is created | 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 | Claude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled prompts | None preinstalled; you bring the agent in your own image | Seven agents preinstalled, including Claude Code and Codex, with a prompt, steer and events API |
| Regions | US only (AWS us-east-1) | Dallas, Frankfurt, San Francisco, Singapore and Washington DC, more on request | EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | Upstash Box | Unikraft Cloud | bochka |
|---|---|---|---|
| Full VM (own kernel) | No | Yes | Yes |
| Docker inside | No | No | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Not published | Yes | Yes |
| Systemd | Not published | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | Yes | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | 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 | 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 | Yes | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | Yes | No |
| Windows | No | No | No |
| Arm64 | Yes | Yes | No |
| Self-hosting | No | Yes | No |
| BYOC | No | Yes | 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) | Yes | No | Yes |
| Audit logs | Not published | Yes | No |
| SSO | No | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | No | Yes | No |
| EU data residency | No | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
Neither Upstash Box nor Unikraft Cloud has a result in the hpc-sandbox-benchmarks CPU test, so there is no comparable measurement for either. bochka did 26.69 runs per second on that Node.js build-and-test loop at 4 vCPU / 8 GB. Unikraft states cold starts under 10 ms, which is its own figure and 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. Upstash Box and Unikraft Cloud 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 | Upstash Box, 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 | $21 · Pay as You Go | $39 · Hobby | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $21 · Pay as You Go | $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 | $900 · Pay as You Go · with limits | 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 | $306 · Pay as You Go | 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 | $1,822 · Pay as You Go | Can't run it | $2,000 · $2000/mo · with limits |
Upstash Box: Upstash bills the CPU a box actually uses, at $0.10, $0.20 or $0.40 per active CPU hour for Small, Medium and Large, plus $0.10 per GB-month of storage, and RAM is free. A keep-alive box costs a flat $8, $16 or $32 a month with CPU and storage included.
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
Unikraft's limit is its shared pool: on Team, one 4 vCPU / 8 GB agent fills all 8 GiB, so the 50-agent, user-sandbox and burst scenarios fit no self-serve plan. Upstash prices those at $306 a month for user sandboxes and $1,822 a month for the burst, but it cannot run Docker inside a box, so the 50-agent scenario does not fit, and disks stop at 5, 10 or 20 GB. Neither publishes an egress price. bochka runs the 50 agents for $317 a month, but queues the 1,000-job burst at 90 starts per minute.
| Scenario | Upstash Box | 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 Upstash Box when
you want coding agents built in, pay only for CPU actually used, need many light boxes at once or a strict outbound allowlist, and are fine running in the US.
- Coding agents ready to go. For teams that want Claude Code, Codex or OpenCode in a box today, with run and stream APIs, webhooks and scheduled prompts.
- Pay for the CPU you use, at fleet scale. For bursty agent fleets: no monthly fee, RAM is not billed, and Pay as You Go runs 1,000 boxes at once by default.
- Outbound rules without a contract. For agents that may only reach a short list of domains or IP ranges, with rules you can change on a running box.
Use Unikraft Cloud when
you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, need US, EU or Asia regions, or want GPUs or on-prem under Enterprise.
- Millisecond starts with warm memory. For many small services that sleep most of the time and must answer the next request in milliseconds, caches intact.
- A microVM, not a container. For teams that want each instance in its own VM, built straight from the Dockerfile they already have.
- Regions and hardware to grow into. For US, EU and Asia users, with GPUs, arm64, dedicated hosts, on-prem or your own cloud on Enterprise.
Where bochka fits
Upstash Box and Unikraft Cloud are both built around work that sleeps and wakes. If your agents instead need a whole machine to work in for hours, with Docker, emulators, a desktop and full-size fleets, bochka gives each one a full VM with its own kernel on every plan.
Docker and /dev/kvm inside
An Upstash box is itself a container with no Docker inside, and Unikraft bakes your Dockerfile into the image with nested virtualization on Enterprise only. Agents that run docker compose or an Android emulator get stuck on both.
A desktop the agent can see
Upstash gives a headless Chromium with no desktop, and Unikraft has no browser built in. A computer-use agent on either is limited to web pages, while bochka streams a Linux desktop at 60fps.
Fifty full machines without a sales call
Fifty agents at 4 vCPU / 8 GB need 200 vCPU and 400 GiB at once. Upstash can run the boxes but not Docker inside them, and that is above every Unikraft self-serve pool, so it means an Enterprise quote.
Use bochka when your agents need a real machine to work in: Docker, emulators, a desktop, coding agents you drive from outside, and fleets of full-size sandboxes without a sales call. Compare it one to one: bochka vs Upstash Box and bochka vs Unikraft Cloud.
Questions people ask
Is Upstash Box cheaper than Unikraft Cloud?
For one 4 vCPU / 8 GB agent, yes: $21 a month on Upstash against $39 on Unikraft, whether it runs on workdays or never stops. For 50 agents, user sandboxes or 1,000 short jobs, no Unikraft self-serve plan is big enough, so the price is an Enterprise quote. bochka costs $20 and $26 for the two single-agent cases.
Which is faster, Upstash Box or Unikraft Cloud?
Neither has a CPU result in the hpc-sandbox-benchmarks test, so there is no fair speed comparison. For start time, Unikraft states cold boots under 10 ms and wakes instances on the next request. bochka measured 26.69 runs per second at 4 vCPU / 8 GB.
Can Upstash Box or Unikraft Cloud run Docker inside?
Neither documents it. An Upstash box is itself a Docker container, and Unikraft uses your Dockerfile to build the VM image without a container runtime inside. A bochka sandbox is a full Ubuntu VM with Docker, systemd and /dev/kvm ready to use.
Can I SSH into Upstash Box or Unikraft Cloud?
Upstash Box offers SSH through a gateway. Unikraft has not shipped SSH yet, so you run commands and move files through its sandbox plugin and CLI. You can SSH into every bochka sandbox.
Where do Upstash Box and Unikraft Cloud run?
Upstash Box runs only in AWS us-east-1, with more regions planned. Unikraft runs in Dallas, Frankfurt, San Francisco, Singapore and Washington DC, with more metros on request. bochka runs in the EU, in Germany, Finland and France.
Which one comes with coding agents?
Upstash Box has Claude Code, Codex and OpenCode built in, with run and stream APIs. Unikraft has none preinstalled, so you put the agent in your own image. bochka preinstalls seven agents that you prompt and steer from outside through one API.
Try bochka
Install the CLI, then run bochka new.
Product preview