Modal vs Agent 37

Modal runs short-lived sandboxes next to GPUs, built for big bursts of jobs that end within 24 hours. Agent 37 gives each agent its own instance that stays around, sleeps when idle and wakes with its memory kept.

The companies and products

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.

Agent 37

Agent 37 hosts AI agents, one isolated, always-on sandbox per user, behind one API.

You create an instance from a template (Hermes, OpenClaw, Claude Code, Codex, OpenCode, Pi, Grok or your own Docker image) and talk to it through a chat API, files, exec, SSH and HTTPS URLs. The default instance is a container enforced by gVisor; a VM type gives a full Linux machine with its own kernel for Docker, Kubernetes and Android emulators. It is built for companies that give each of their customers an agent.

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. “19th cheapest of 345” means 18 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 workloadModal: price rankAgent 37: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Agent 37 ranks 2nd and bochka ranks 3rd; Modal has no match because its sandboxes end within 24 hours and reset their root disk.
Can't run it2nd cheapest of 367
$551 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Agent 37 ranks 1st here because its instances sleep when idle and keep their memory, while Modal's 24-hour sandbox limit makes an always-on assistant a compromise.
196th of 366, with limits
$1,924 a month
Cheapest of 366
$279 a month
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
Agent 37 ranks 1st and Modal ranks 19th for short code runs; bochka's start limits make large bursts of short jobs a poor fit.
19th cheapest of 345
$181 a month
Cheapest of 345
$22 a month
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
bochka ranks 1st and Modal ranks 11th; Agent 37 is a compromise because its top self-serve tier holds 200 instances, counting sleeping and stopped ones.
11th cheapest of 361
$811 a month
30th of 361, with limits
$79 a month
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
Modal ranks 5th and Agent 37 ranks 6th, since both start many short sandboxes, though Agent 37 caps how many instances you hold.
5th cheapest of 360
$19,038 a month
6th of 360, with limits
$363 a month
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
59th cheapest of 364
$1,244 a month
90th of 364, with limits
$58 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
Agent 37 ranks 2nd and bochka ranks 4th, while Modal ranks 126th because Docker builds need its VM runtime.
126th cheapest of 377
$1,793 a month
2nd cheapest of 377
$84 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
138th of 368, with limits
$23 a month
3rd cheapest of 368
$12 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
Agent 37 ranks 1st with a noVNC desktop template and bochka ranks 6th with a 60fps desktop built in; on Modal you set up VNC yourself.
98th of 369, with limits
$183 a month
Cheapest of 369
$53 a month
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
177th of 367, with limits
$136 a month
48th of 367, with limits
$29 a month
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
267th of 346, with limits
$394 a month
Cheapest of 346
$32 a month
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
223rd of 338, with limits
$8,795 a month
36th of 338, with limits
$648 a month
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
Can't run itCheapest of 360
$43 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Modal is the only one of the three with GPUs, from T4 to B300.
19th cheapest of 98
$1,187 a month
Can't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureModalAgent 37bochka
IsolationgVisor by default; VM runtime with its own kernel availablegVisor by default; full VM as an opt-in instance typeEvery sandbox is a full VM with its own kernel
Docker insideOnly with the VM runtimeOnly on the VM type, at 2.5x the default compute rateYes, in every sandbox
Nested virtualizationVM runtime only, Team and Enterprise plans, on request/dev/kvm on the VM type, with a ready Android template/dev/kvm in every sandbox, Android emulator works
Longest session24 hours (default 5 minutes)No documented maximum; runs until stopped or put to sleepNo cap on paid plans (default time limit 1 hour, changeable)
Idle and resumeNo paused state; a finished sandbox is gone, only Volumes keep filesOpt-in auto-sleep after a quiet period, memory checkpointed, wakes on the next requestStop for free and resume with the whole disk; resume reboots the machine
ForkSnapshot the filesystem into an image and boot new sandboxes from it; memory snapshots in alphaNo fork; daily backups plus one on-demand backup, restored in place onlyFork a running sandbox without stopping it
Custom imagesBuild images in code or pull any linux/amd64 registry imageYour own linux/amd64 Docker image as a templateNamed snapshots used as templates; no Dockerfile builds
GPUsT4 to B300; 10 at once on Starter, 50 on TeamNoneNone
Desktop and computer useNot offered; an example shows how to set up VNC yourselfnoVNC desktop through a template build or the Ubuntu VM template60fps desktop, Chromium and computer-use API in every sandbox
Built-in coding agentsExamples onlyHermes, OpenClaw, Claude Code, Codex, Grok, OpenCode, Pi, with a chat API per instanceClaude Code, Codex, pi, OpenCode and others, with a prompt, steer and events API
Keys kept out of the sandboxSecrets are environment variables, or you run your own proxy in a sidecarManaged LLM, search and Composio through a per-instance token; your own keys go in as env varsProxy for model providers and any HTTPS API you register
Outbound network rulesBlock all, IP-range allowlist, domain allowlist (beta)No outbound allowlistNo provider-side allowlist
RegionsUS, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75xUnited StatesEU only (Germany, Finland, France), EU data residency
CPU speed (4 vCPU / 8 GB)12.79 runs/s on the default sandboxNo published result26.69 runs/s on dedicated AMD Ryzen 9 9950X hosts
Every feature Battleships tracks (43)
FeatureModalAgent 37bochka
Full VM (own kernel)NoNoYes
Docker insideNoNoYes
Nested virtualizationNoNoYes
RootYesYesYes
SystemdYesNot publishedYes
Desktop GUINoYesYes
BrowserNoYesYes
Computer-use APINoYesYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeNoYesYes
Automatic snapshotsNoYesYes
Fork/cloneYesYesYes
Live fork (no pause)NoYesYes
Memory forkYesNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestNoYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundYesNot publishedYes
Public IPv4NoNoNo
Egress allowlistYesNoNo
Secret proxyNoYesYes
Secret proxy for any APINoNoYes
Preinstalled agentsNoYesYes
Agent harness APINoYesYes
MCP serverNoNoNo
GPUYesNoNo
WindowsNoNoNo
Arm64NoNoNo
Self-hostingNoNoNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedYesYes
Usage per sandbox (API)Not publishedYesYes
Audit logsYesNot publishedNo
SSOYesNoNo
SOC 2YesYesNo
HIPAAYesNoNo
EU data residencyYesNoYes
Zero data retentionNot publishedNot publishedYes

Performance

Modal12.79 runs/s
Agent 37Not measured
bochka26.69 runs/s

On the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, bochka finished 26.69 runs per second and Modal's default gVisor sandbox 12.79, so bochka did about twice the work. Agent 37 has no published result on that benchmark, so there is no comparable measurement for it; its default instances share host resources, and its Performance type runs on dedicated cores.

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. Agent 37 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.

ScenarioModal, a monthAgent 37, a monthbochka, 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
$15 · Starter · with limits$6 · Wallet (any top-up)$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$178 · Starter · with limits$12 · Wallet (any top-up)$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,229 · Starter · with limits$329 · Wallet ($100 lifetime top-ups)$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
$792 · Team$33 · Wallet ($250 lifetime top-ups) · with limits$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
$3,193 · Team · with limits$73 · Wallet ($250 lifetime top-ups) · with limits$2,000 · $2000/mo · with limits

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.

Agent 37: Agent 37 uses a prepaid wallet with no plan fee, metered per minute: $0.80 per vCPU and $0.70 per GB of RAM per month while running, and $0.09 per GB of disk per month even while asleep. Performance compute costs 4x and VM compute 2.5x the default rate.

Agent 37: 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.

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 50-agent scenarios only keep files you put in a Volume, and the fleet needs Docker, which the default sandbox lacks. Agent 37 holds at most 200 instances on its top self-serve tier, counting sleeping and stopped ones, so 300 user sandboxes at once and 1,000 short jobs at once do not fit, and its egress price is not published. bochka's limit is start speed: even the $2,000 plan starts 90 sandboxes a minute, so the 1,000-job burst queues and passes the daily start limit.

ScenarioModalAgent 37bochka
One coding agent, workdays
  • files survive a stop only in Volumes: packages installed elsewhere reset
  • egress price not published
None that bite
One agent that never stops
  • Starter: sessions capped at 24 h
  • files survive a stop only in Volumes: packages installed elsewhere reset
  • egress price not published
None that bite
50 agents in parallel
  • missing Docker inside
  • files survive a stop only in Volumes: packages installed elsewhere reset
  • egress price not published
None that bite
Sandboxes for your usersNone that bite
  • max 200 concurrent
  • egress price not published
None that bite
1,000 short jobs at once
  • 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
  • max 200 concurrent
  • shared vCPUs on this tier: heavy, sustained CPU use can be slowed by other tenants
  • egress price not published
  • 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)

Which one should you use?

Use Modal when

your sandboxes need GPUs, must run outside the US and Europe, or are huge bursts of short jobs that finish in minutes.

  • GPUs next to your sandboxes. If your agent trains or runs models, Modal rents GPUs from T4 to B300 on the same platform as its sandboxes.
  • 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.
  • Very large bursts of short jobs. For huge fleets of short sandboxes, Modal runs up to 5,000 containers on Team, and memory snapshots are in alpha.

Use Agent 37 when

you host one mostly idle assistant per customer in the US that should sleep with its memory kept and wake on the next message.

  • Sleeps when idle and keeps its memory. For assistants that wait most of the day, an Agent 37 instance sleeps, keeps its memory and wakes on the next message.
  • No 24-hour cutoff. An Agent 37 instance has no documented maximum lifetime, so an always-on agent keeps running until you stop it.
  • Bring a Dockerfile, pick dedicated cores. Agent 37 builds templates from your own Docker image, and sells a Performance type on dedicated cores.

Where bochka fits

Modal is built for short jobs and Agent 37 for mostly idle assistants. If your agents do hours of real work, with installs, builds, Docker and a browser, bochka gives each one a full VM that keeps its disk, can be forked while it runs and has no session cap on paid plans.

Docker and systemd in every sandbox

Both default to gVisor, where Docker does not run. Modal needs its VM runtime, and Agent 37's VM type bills compute at 2.5x and has no init system, so services do not start on their own.

Fork a machine while it runs

Agent 37 has no fork, and its backups restore only in place. Modal makes a filesystem image to boot new sandboxes, and its memory snapshots end the sandbox. On bochka you copy a running agent mid-task and try several paths.

Keys stay outside, for any API

On Modal secrets are environment variables unless you run your own sidecar proxy. Agent 37 keeps only its managed models, search and Composio outside. bochka's proxy covers any HTTPS API you register.

Use bochka when your agents work for hours or days: installs, builds, tests, Docker and a desktop on a fast full VM that keeps its disk, forks while running and keeps your keys outside. Compare it one to one: bochka vs Modal and bochka vs Agent 37.

Questions people ask

Is Modal cheaper than Agent 37?

No, in most of our scenarios Agent 37 is far lower: one always-on agent is $12 a month against $178 on Modal, and 50 parallel agents are $329 against $2,229. Modal fits 300 user sandboxes at once for $792 a month, which Agent 37's 200-instance cap does not allow.

Which is faster, Modal or Agent 37?

Agent 37 has no published result on the hpc-sandbox-benchmarks loop, so they cannot be compared directly. Modal's default sandbox finished 12.79 runs per second at 4 vCPU / 8 GB, and bochka finished 26.69 in the same run.

Can Modal or Agent 37 run Docker?

Both only on their VM options. Modal needs its VM runtime, and Agent 37 needs its VM type, which bills compute at 2.5x the default rate. Every bochka sandbox runs Docker with no extra setting.

How long can a session run on Modal and on Agent 37?

A Modal sandbox has a default timeout of 5 minutes and a maximum of 24 hours. An Agent 37 instance has no documented maximum and runs until you stop it or it sleeps on idle. bochka has no session cap on paid plans.

Do Modal or Agent 37 have GPUs?

Modal does, from T4 up to B300, on its default gVisor runtime. Agent 37 and bochka are CPU machines only.

Where do Modal and Agent 37 run?

Modal runs in the US, the EU and Asia-Pacific, and you can pin a region for 1.15x to 1.75x the price. Agent 37 runs on dedicated servers in the United States. bochka runs only in the EU, in Germany, Finland and France.

Try bochka

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.