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.

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 workloadbochka: price rankModal: 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 it19th 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 itCan't run it

Key features

FeaturebochkaModal
IsolationFull VM with its own kernel, every sandboxgVisor by default; VM runtime available (Modal VM Sandboxes)
Docker insideYes, in every sandboxOnly with the VM runtime
Nested virtualizationYes (/dev/kvm, Android emulator)VM runtime only, Team and Enterprise plans, on request
Desktop, browser, computer use60fps desktop, Chromium and computer-use API built inNot offered; an example shows how to set up VNC yourself
Stop and resumeStop for free, resume later with the whole diskNo paused state; a finished sandbox is gone, only Volumes keep files
Longest sessionNo cap on paid plans (default TTL 1 h, changeable)24 hours (default 5 minutes)
ForkFork a running sandbox without stopping itSnapshot the filesystem into an image and boot new sandboxes from it
Memory snapshotsNo (resume reboots the VM)Yes, in alpha: snapshotting ends the sandbox, snapshots expire after 7 days
Custom imagesNamed snapshots used as templates; no Dockerfile buildsBuild images in code or pull any linux/amd64 registry image
GPUsNoneT4 to B300; 10 at once on Starter, 50 on Team
Outbound network rulesNo provider-side allowlistBlock all, IP-range allowlist, domain allowlist (beta)
RegionsEU only: Germany, Finland, FranceUS, EU and Asia-Pacific plus narrower regions, pinning costs 1.15x to 1.75x
Coding agents and key proxyClaude Code, Codex and others preinstalled, with an API to prompt them; real API keys never enter the sandboxExamples only; secrets are environment variables, or you run your own proxy in a sidecar
Hosting portsHTTPS URLs for up to 50 ports, token-protected by default, plus raw TCPEncrypted and raw TCP tunnels, connect tokens, inbound IP allowlist
Compliance and transparencySOC 2 is in progress. We're open about where we stand: live status and data retention policy.SOC 2
Every feature Battleships tracks (43)
FeaturebochkaModal
Full VM (own kernel)YesNo
Docker insideYesNo
Nested virtualizationYesNo
RootYesYes
SystemdYesYes
Desktop GUIYesNo
BrowserYesNo
Computer-use APIYesNo
SSHYesYes
Persistent diskYesYes
Pause/resumeYesNo
Automatic snapshotsYesNo
Fork/cloneYesYes
Live fork (no pause)YesNo
Memory forkNoYes
Custom image (Docker or snapshot)YesYes
≥24 h sessionsYesYes
Idle auto-stopNoYes
Wake on requestNoNo
HTTPS preview URLsYesYes
Raw TCP inboundYesYes
Public IPv4NoNo
Egress allowlistNoYes
Secret proxyYesNo
Secret proxy for any APIYesNo
Preinstalled agentsYesNo
Agent harness APIYesNo
MCP serverNoNo
GPUNoYes
WindowsNoNo
Arm64NoNo
Self-hostingNoNo
BYOCNoNo
Open sourceNoNo
Scoped API keysYesNot published
Spend limitsYesNot published
Usage per sandbox (API)YesNot published
Audit logsNoYes
SSONoYes
SOC 2NoYes
HIPAANoYes
EU data residencyYesYes
Zero data retentionYesNot published

Performance

bochka26.69 runs/s
Modal12.79 runs/s

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.

Scenariobochka, a monthModal, 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.

ScenariobochkaModal
One coding agent, workdaysNone that bite
  • files survive a stop only in Volumes: packages installed elsewhere reset
One agent that never stopsNone that bite
  • Starter: sessions capped at 24 h
  • files survive a stop only in Volumes: packages installed elsewhere reset
50 agents in parallelNone that bite
  • missing Docker inside
  • files survive a stop only in Volumes: packages installed elsewhere reset
Sandboxes for your usersNone that biteNone that bite
1,000 short jobs at once
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)
  • shared vCPUs on this tier (Modal sells dedicated cores separately as “Sandbox (gVisor), request = size, any region”): heavy, sustained CPU use can be slowed by other tenants

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 product preview · Pricing, benchmarks and commands are illustrative. Sandbox provisioning is not connected.