bochka vs Upstash Box
Both give an AI agent its own computer in the cloud with a coding agent built in. bochka gives it a full virtual machine that can run Docker, emulators and a desktop, while Upstash Box gives it a light container that pauses when idle and wakes on the next request.
Where bochka stands out
A whole Linux machine, not a container
Every bochka sandbox is a full VM with its own kernel, root, systemd and Docker, plus /dev/kvm for Android emulators and nested VMs. An Upstash box is itself a Docker container, and its docs do not offer Docker inside it.
A desktop the agent can see
bochka streams a full Linux desktop at 60fps with Chromium and computer-use tools preinstalled, and you can embed it in your app. Upstash gives a headless Chromium driven through its SDK, with no desktop or VNC.
Room to work
bochka's default 4 vCPU / 8 GB sandbox has a 50 GB disk, and plans from $100 go up to 16 vCPU / 32 GB. Upstash tops out at 8 vCPU / 16 GB, with a 10 GB disk on its 4 vCPU size. bochka also saves the disk every minute, and stops cost nothing.
The companies and products
bochka
bochka.xyz runs sandboxes for AI agents: each one is a full Linux VM with its own kernel.
You start a machine with one command or one API call, then SSH in, run Docker, open a desktop, or let a built-in agent (Claude Code, Codex, OpenCode and others) work in it. The disk stays between sessions, and a stopped sandbox costs nothing.
- Isolation
- Full VM per sandbox, own kernel
- Regions
- EU: Germany, Finland, France
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.
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. “3rd cheapest of 367” means 2 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 | bochka: price rank | Upstash Box: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A software factory needs Docker for databases and test services, which bochka runs inside every sandbox and an Upstash box, itself a container, does not. | 3rd cheapest of 367 $634 a month | 61st of 367, with limits $464 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB Both can keep an agent on all month; bochka gives it a full machine with systemd services and a desktop, while Upstash keeps it as an always-on container. | 5th cheapest of 366 $657 a month | 103rd of 366, with limits $475 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Upstash fits short code runs well: an idle box costs no CPU, and a paused box wakes when work arrives. | 186th of 345, with limits $2,000 a month | 10th cheapest of 345 $119 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Both fit closely; Upstash wakes a user's paused box on the next request, while bochka gives each user a full VM with Docker and hosting. | Cheapest of 361 $209 a month | 2nd cheapest of 361 $222 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month | 34th of 360, with limits $2,000 a month | 352nd of 360, with limits $8,068 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month | 10th cheapest of 364 $200 a month | 52nd cheapest of 364 $1,011 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI jobs that build containers or Android apps need Docker and /dev/kvm, which bochka has and an Upstash container does not. | 4th cheapest of 377 $86 a month | 120th cheapest of 377 $1,520 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A flat-price keep-alive box on Upstash is a light dev box; bochka's is a full VM with Docker, root and a bigger disk. | 18th cheapest of 368 $26 a month | 10th cheapest of 368 $20 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, and Upstash's browser is headless with no desktop, while bochka streams a full Linux desktop at 60fps. | 6th cheapest of 369 $200 a month | 73rd of 369, with limits $76 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; bochka gives the agent a real desktop browser it can see and click. | 7th cheapest of 367 $200 a month | 49th of 367, with limits $38 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 6th cheapest of 346 $90 a month | 37th cheapest of 346 $400 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 71st of 338, with limits $1,800 a month | 200th of 338, with limits $8,000 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 2nd cheapest of 360 $200 a month | 225th of 360, with limits $259 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 |
| 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 |
Key features
| Feature | bochka | Upstash Box |
|---|---|---|
| Isolation | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts | Docker container per box on AWS |
| Docker inside | Yes, Docker and systemd run as on any Linux server | Not documented; the box is itself a Docker container, and custom images are listed as coming soon |
| Nested virtualization | Yes, /dev/kvm for Android emulators and VMs | No; boxes are containers with no VM support documented |
| Biggest machine | Up to 16 vCPU / 32 GB on the $100 plan and above | Large: 8 vCPU / 16 GB |
| Disk | 50 GB at the default 4 vCPU / 8 GB size, 12 to 251 GB by size | 5, 10 or 20 GB by size, billed per GB-month |
| Stop and resume | Disk saved every minute and on stop; a stopped sandbox costs nothing | Pauses itself when idle and keeps its files; storage keeps billing while paused |
| Wake on request | No; a stopped sandbox is started by API | Yes; a request to a public URL resumes a paused box and waits for the app |
| Fork | Fork a running sandbox with its disk | Snapshot a running box and start many new boxes from it |
| Desktop and browser | Linux desktop streamed at 60fps, Chromium and computer-use tools | Managed headless Chromium with AI page actions and CDP; no desktop |
| Inbound access | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP | HTTPS URL per port, public unless you add a token or basic auth; SSH through a gateway; no raw TCP |
| Outbound rules | Open internet, no provider-side allowlist | Allow all, deny all, or allow and deny by domain and CIDR, changeable on a running box |
| Coding agents | Claude Code, Codex and other agents preinstalled, with a prompt, steer and events API | Claude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled prompts |
| Keeping API keys out of the sandbox | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out | Host proxy injects headers into outbound HTTPS on port 443; set when the box is created |
| Regions | EU only (Germany, Finland, France) | US only (AWS us-east-1) |
| Compliance and transparency | SOC 2 is in progress. We're open about where we stand: live status and data retention policy. | SOC 2 |
Every feature Battleships tracks (43)
| Feature | bochka | Upstash Box |
|---|---|---|
| Full VM (own kernel) | Yes | No |
| Docker inside | Yes | No |
| Nested virtualization | Yes | No |
| Root | Yes | Not published |
| Systemd | Yes | Not published |
| Desktop GUI | Yes | No |
| Browser | Yes | Yes |
| Computer-use API | Yes | No |
| SSH | Yes | Yes |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | Yes |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | Yes |
| Live fork (no pause) | Yes | Yes |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | Yes |
| Wake on request | No | Yes |
| HTTPS preview URLs | Yes | Yes |
| Raw TCP inbound | Yes | No |
| Public IPv4 | No | No |
| Egress allowlist | No | Yes |
| Secret proxy | Yes | Yes |
| Secret proxy for any API | Yes | Yes |
| Preinstalled agents | Yes | Yes |
| Agent harness API | Yes | Yes |
| MCP server | No | Yes |
| GPU | No | No |
| Windows | No | No |
| Arm64 | No | Yes |
| Self-hosting | No | No |
| BYOC | No | No |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | Not published |
| Usage per sandbox (API) | Yes | Yes |
| Audit logs | No | Not published |
| SSO | No | No |
| SOC 2 | No | Yes |
| HIPAA | No | No |
| EU data residency | Yes | No |
| Zero data retention | Yes | Not published |
Performance
Upstash Box has no result in the hpc-sandbox-benchmarks CPU test, so there is no comparable measurement. bochka did 26.69 runs per second on that Node.js build-and-test loop 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. Upstash Box 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 | bochka, a month | Upstash Box, 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 | $20 · $20/mo | $21 · Pay as You Go |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $21 · Pay as You Go |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $317 · $20/mo × 3 seats | $900 · Pay as You Go · with limits |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $200 · $100/mo × 2 seats | $306 · Pay as You Go |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $2,000 · $2000/mo · with limits | $1,822 · Pay as You Go |
bochka: 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.
Upstash Box: A standard box is billed for the CPU it 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 whether it is busy or not, with CPU and storage included.
Limits in those scenarios
Upstash does not run Docker inside a box, so the 50-agent scenario does not fit there, and disks stop at 5, 10 or 20 GB by size. Its egress price is not published, and keep-alive boxes are billed every month whether used or not. bochka's limit is start rate: for 1,000 short jobs at once, even the $2,000 plan starts at most 90 per minute and 2,400 a day, so the burst is queued.
| Scenario | bochka | Upstash Box |
|---|---|---|
| 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
your agents mostly wait, need to wake on an incoming request, must stay inside a strict outbound allowlist, or must run in the US.
- Idle costs no CPU, and a request wakes the box. Good for agents that wait a lot: an idle box costs no CPU, and a request to its URL wakes it.
- Outbound network rules. Useful when an agent may only reach a short list of domains or IP ranges.
- Big bursts and the US. Runs 1,000 boxes at once by default, in AWS us-east-1, close to US services.
Use bochka when
your agents need a real machine: Docker, emulators, a desktop, a big disk and services that keep running, for as long as the work takes.
- A whole Linux machine, not a container. Agents that run a database in Docker, build a container image or boot an emulator get stuck on Upstash. That is why the 50-agent scenario on this page does not fit there.
- A desktop the agent can see. A computer-use agent needs a screen to look at and click. Without one you are limited to web pages over CDP, and desktop apps, native dialogs and a human watching along are out of reach.
- Room to work. A big monorepo with its node_modules, build cache and test data can fill 10 GB fast. On Upstash the only way past that is a larger box at a higher CPU rate, and 20 GB is the ceiling.
Questions people ask
Is bochka cheaper than Upstash Box?
In three of the five scenarios on this page, yes, though for one coding agent on workdays it is close: $20 a month against $21. Upstash costs less for one agent that never stops and for 1,000 short jobs at once, where bochka queues the starts.
Can I run Docker inside Upstash Box?
Its docs do not offer it: each box is itself a Docker container, and custom images are listed as coming soon. bochka sandboxes are full VMs where Docker, docker compose and systemd work as on any Linux server.
Does Upstash Box have a desktop for computer use?
No. Upstash gives each box an optional headless Chromium with AI page actions and a CDP endpoint, and its docs say there is no desktop or VNC. bochka streams a full Linux desktop at 60fps with computer-use tools preinstalled.
Where do bochka and Upstash Box run?
Upstash Box runs in AWS us-east-1 in the US, with more regions planned. bochka runs in the EU, in Germany, Finland and France.
Can an Upstash box run for days?
Yes. A standard box pauses after it sits idle and resumes later with its files, and a keep-alive box stays on all month for a flat price. bochka has no session cap on paid plans and keeps the disk across stops.
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.
Start a sandbox
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs E2B
- bochka vs Daytona
- bochka vs Modal
- bochka vs Vercel Sandbox
- bochka vs Blaxel
- bochka vs Runloop
- bochka vs Tensorlake
- bochka vs Cloudflare Sandbox
- bochka vs exe.dev
- bochka vs Agent 37
- bochka vs Oracle Cloud
- bochka vs IONOS Cloud
- E2B vs Upstash Box
- Daytona vs Upstash Box
- Modal vs Upstash Box
- Vercel Sandbox vs Upstash Box
- Cloudflare Sandbox vs Upstash Box
- Blaxel vs Upstash Box
- Runloop vs Upstash Box
- Tensorlake vs Upstash Box