bochka vs Modal
bochka gives each agent a full VM that keeps its disk, stops for free and comes back days later. Modal gives you fast serverless sandboxes inside a big AI compute platform, with GPUs and regions around the world.
Where bochka stands out
A computer that keeps its work
A bochka sandbox saves its disk every minute and when it stops. Stopped, it costs nothing, and it comes back days later with every package and file in place. Modal sandboxes have no paused state and last at most 24 hours, so anything outside a Volume is lost when they end.
Desktop, browser and agents ready to go
Every bochka sandbox has a 60fps desktop, Chromium and a computer-use API, plus Claude Code, Codex and other agents you can drive from outside through one API. A credentials proxy keeps your real API keys out of the sandbox. On Modal you install and connect these pieces yourself.
More CPU work per hour
In the same public benchmark run at 4 vCPU / 8 GB, bochka finished 26.69 Node.js build-and-test runs per second. Modal's default sandbox did 12.79 and its VM runtime 15.54. Each bochka VM runs on dedicated AMD Ryzen 9 9950X hosts.
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
Modal
Modal is a serverless cloud for AI work: inference, training, batch jobs and sandboxed code, all driven from Python, TypeScript or Go code.
Modal Sandboxes are containers you create from code, run commands in, and then terminate. By default they run under gVisor, a user-space kernel from Google; since October 2026 you can also pick a VM runtime with its own Linux kernel for Docker and FUSE (Battleships tracks that as a separate card, Modal VM Sandboxes). It suits teams that already run models on Modal and want short-lived, scalable code execution next to their GPUs.
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 | Modal: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Software factories need Docker, a desktop and a disk that survives between sessions, and bochka has all three in every sandbox while Modal's sandboxes reset their root disk when they end. | 3rd cheapest of 367 $634 a month | Can't run it |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An always-on agent hits Modal's 24-hour sandbox limit, while a bochka sandbox can run with no session cap on paid plans. | 5th cheapest of 366 $657 a month | 196th of 366, with limits $1,924 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month For huge numbers of short code runs, Modal's fast starts and high concurrency fit better than bochka's per-plan start limits. | 186th of 345, with limits $2,000 a month | 19th cheapest of 345 $181 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Giving each of your users a sandbox that they come back to works well on bochka, because a stopped sandbox keeps its disk and costs nothing. | Cheapest of 361 $209 a month | 11th cheapest of 361 $811 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month RL rollouts launch many short sandboxes at once, which is what Modal is built for. | 34th of 360, with limits $2,000 a month | 5th cheapest of 360 $19,038 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 | 59th cheapest of 364 $1,244 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI jobs that build Docker images run in every bochka sandbox; on Modal they need the VM runtime. | 4th cheapest of 377 $86 a month | 126th cheapest of 377 $1,793 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 18th cheapest of 368 $26 a month | 138th of 368, with limits $23 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month bochka ships a 60fps desktop, Chromium and a computer-use API; on Modal you install and wire up the desktop yourself. | 6th cheapest of 369 $200 a month | 98th of 369, with limits $183 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 7th cheapest of 367 $200 a month | 177th of 367, with limits $136 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 | 267th of 346, with limits $394 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 | 223rd of 338, with limits $8,795 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 | Can't run it |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month Modal has GPUs from T4 to B300 and bochka has none, so Modal is the pick for GPU jobs. | Can't run it | 19th cheapest of 98 $1,187 a month |
| 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 | Modal |
|---|---|---|
| Isolation | Full VM with its own kernel, every sandbox | gVisor by default; VM runtime available (Modal VM Sandboxes) |
| Docker inside | Yes, in every sandbox | Only with the VM runtime |
| Nested virtualization | Yes (/dev/kvm, Android emulator) | VM runtime only, Team and Enterprise plans, on request |
| Desktop, browser, computer use | 60fps desktop, Chromium and computer-use API built in | Not offered; an example shows how to set up VNC yourself |
| Stop and resume | Stop for free, resume later with the whole disk | No paused state; a finished sandbox is gone, only Volumes keep files |
| Longest session | No cap on paid plans (default TTL 1 h, changeable) | 24 hours (default 5 minutes) |
| Fork | Fork a running sandbox without stopping it | Snapshot the filesystem into an image and boot new sandboxes from it |
| Memory snapshots | No (resume reboots the VM) | Yes, in alpha: snapshotting ends the sandbox, snapshots expire after 7 days |
| Custom images | Named snapshots used as templates; no Dockerfile builds | Build images in code or pull any linux/amd64 registry image |
| GPUs | None | T4 to B300; 10 at once on Starter, 50 on Team |
| Outbound network rules | No provider-side allowlist | Block all, IP-range allowlist, domain allowlist (beta) |
| Regions | EU only: Germany, Finland, France | US, EU and Asia-Pacific plus narrower regions, pinning costs 1.15x to 1.75x |
| Coding agents and key proxy | Claude Code, Codex and others preinstalled, with an API to prompt them; real API keys never enter the sandbox | Examples only; secrets are environment variables, or you run your own proxy in a sidecar |
| Hosting ports | HTTPS URLs for up to 50 ports, token-protected by default, plus raw TCP | Encrypted and raw TCP tunnels, connect tokens, inbound IP allowlist |
| 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 | Modal |
|---|---|---|
| Full VM (own kernel) | Yes | No |
| Docker inside | Yes | No |
| Nested virtualization | Yes | No |
| Root | Yes | Yes |
| Systemd | Yes | Yes |
| Desktop GUI | Yes | No |
| Browser | Yes | No |
| Computer-use API | Yes | No |
| SSH | Yes | Yes |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | No |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | Yes |
| Live fork (no pause) | Yes | No |
| Memory fork | No | Yes |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | Yes |
| Wake on request | No | No |
| HTTPS preview URLs | Yes | Yes |
| Raw TCP inbound | Yes | Yes |
| Public IPv4 | No | No |
| Egress allowlist | No | Yes |
| Secret proxy | Yes | No |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | No |
| Agent harness API | Yes | No |
| MCP server | No | No |
| GPU | No | Yes |
| Windows | No | No |
| Arm64 | No | No |
| 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 | Not published |
| Audit logs | No | Yes |
| SSO | No | Yes |
| SOC 2 | No | Yes |
| HIPAA | No | Yes |
| EU data residency | Yes | Yes |
| Zero data retention | Yes | Not published |
Performance
The hpc-sandbox-benchmarks Node.js build-and-test loop ran on both at 4 vCPU / 8 GB in the same run on 29 September 2026. bochka finished 26.69 runs per second. Modal's default gVisor sandbox finished 12.79 and its VM runtime 15.54, so bochka did about twice the work of the default sandbox and about 1.7 times the work of the VM runtime.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Modal measured on: Sandbox (gVisor), request = size, any region.
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 | Modal, 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 | $15 · Starter · with limits |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $178 · Starter · with limits |
| 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 | $2,229 · Starter · 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 | $792 · Team |
| 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 | $3,193 · Team · with limits |
bochka: bochka charges one hourly rate per machine size, by the second, only while the sandbox runs. Plans start at $20 a month and the whole fee becomes usage credit; a stopped sandbox costs nothing.
Modal: Modal bills by the second for whichever is higher, the CPU and memory you request or what you use, and an idle sandbox pays until it is terminated. Starter is free with $30 of monthly credit and Team is $250 a month with $100 of credit; pinning a region multiplies the price by 1.15x to 1.75x, and egress above the free allowance costs $0.04 per GiB.
Modal: Modal prices CPU per physical core and says one core equals two vCPUs. In tests, asking for 4 cores gave the guest 4 CPUs and the measured speed, so the table prices a 4 vCPU sandbox as 4 Modal cores.
Limits in those scenarios
On Modal, a sandbox lives at most 24 hours and its root disk is wiped when it ends, so the workday, always-on and fleet scenarios only keep files you put in a Volume. Docker needs the VM runtime, which is why the 50-agent fleet does not fit the default sandbox. On bochka, the limit that bites is start speed: even the $2,000 plan starts 90 sandboxes a minute, so 1,000 jobs at once queue for several minutes and exceed the daily start limit.
| Scenario | bochka | Modal |
|---|---|---|
| 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 | None that bite |
| 1,000 short jobs at once |
|
|
Which one should you use?
Use Modal when
your sandboxes need GPUs, must run outside Europe, or are huge bursts of short jobs that finish in minutes.
- GPUs next to your sandboxes. Useful if your agent trains or runs models: Modal rents GPUs from T4 to B300 on the same platform as its sandboxes.
- More regions and outbound rules. Modal runs in the US, EU and Asia-Pacific, and can block a sandbox's outbound traffic or allow only chosen domains.
- Memory snapshots and very large fleets. Useful for huge bursts of short jobs: Modal runs up to 5,000 containers on Team, and memory snapshots are in alpha.
Use bochka when
your agents work for hours or days: installs, builds, tests, Docker and a desktop, on a fast machine that keeps its disk and never cuts them off.
- A computer that keeps its work. On Modal a sandbox ends within 24 hours and its root disk goes with it, so an agent reinstalls everything each session unless you write code to save files to a Volume.
- Desktop, browser and agents ready to go. Without a screen an agent cannot open the app it built and check it. On Modal you set up VNC and the agent harness yourself, and by default real keys sit in environment variables an injected prompt can read.
- More CPU work per hour. Agents spend most of their time waiting on installs, builds and tests. Each of those waits about twice as long on Modal's default sandbox and 1.7 times as long on its VM runtime, and you pay for the waiting.
Questions people ask
Is bochka cheaper than Modal?
In most of our scenarios, yes: one always-on agent costs $26 a month on bochka against $178 on Modal, and 50 parallel agents cost $317 against $2,229. For one agent on workdays Modal is a little cheaper ($15 against $20), but its files reset between days unless you use a Volume.
Can Modal sandboxes run Docker?
Only with the VM runtime, which you choose with runtime="vm". The default gVisor sandbox does not document Docker support. Every bochka sandbox runs Docker with no extra setting.
How long can a Modal sandbox run?
The default timeout is 5 minutes and the maximum is 24 hours. For longer work, Modal suggests taking a filesystem snapshot and starting a new sandbox from it. bochka has no session cap on paid plans.
What is the difference between Modal Sandboxes and Modal VM Sandboxes?
Both use the same API and prices. Modal Sandboxes run under gVisor and can use GPUs; VM Sandboxes give a real Linux kernel for Docker and FUSE but no GPUs. Battleships compares them as two separate cards.
Does bochka have GPUs?
No. bochka sandboxes are CPU machines. If your workload needs a GPU in the sandbox, Modal is the better fit.
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 Vercel Sandbox
- bochka vs Blaxel
- bochka vs Runloop
- bochka vs Tensorlake
- bochka vs Cloudflare Sandbox
- bochka vs Agent 37
- bochka vs exe.dev
- bochka vs Oracle Cloud
- bochka vs IONOS Cloud
- bochka vs Browser Use
- E2B vs Modal
- Daytona vs Modal
- Modal vs Vercel Sandbox
- Modal vs Cloudflare Sandbox
- Modal vs Blaxel
- Modal vs Runloop
- Modal vs Tensorlake
- Modal vs Morph Cloud