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.
- Where it runs
- Dedicated servers in the United States
- Instance types
- Default (shared), Performance (dedicated cores), VM
- Compliance
- SOC 2 Type I, Type II in progress
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 workload | Modal: price rank | Agent 37: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Agent 37 ranks 2nd and boat ranks 3rd; Modal has no match because its sandboxes end within 24 hours and reset their root disk. | Can't run it | 2nd 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; boat'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 boat 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 boat 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 boat 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 it | Cheapest 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 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 | Modal | Agent 37 | boat |
|---|---|---|---|
| Isolation | gVisor by default; VM runtime with its own kernel available | gVisor by default; full VM as an opt-in instance type | Every sandbox is a full VM with its own kernel |
| Docker inside | Only with the VM runtime | Only on the VM type, at 2.5x the default compute rate | Yes, in every sandbox |
| Nested virtualization | VM 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 session | 24 hours (default 5 minutes) | No documented maximum; runs until stopped or put to sleep | No cap on paid plans (default time limit 1 hour, changeable) |
| Idle and resume | No paused state; a finished sandbox is gone, only Volumes keep files | Opt-in auto-sleep after a quiet period, memory checkpointed, wakes on the next request | Stop for free and resume with the whole disk; resume reboots the machine |
| Fork | Snapshot the filesystem into an image and boot new sandboxes from it; memory snapshots in alpha | No fork; daily backups plus one on-demand backup, restored in place only | Fork a running sandbox without stopping it |
| Custom images | Build images in code or pull any linux/amd64 registry image | Your own linux/amd64 Docker image as a template | Named snapshots used as templates; no Dockerfile builds |
| GPUs | T4 to B300; 10 at once on Starter, 50 on Team | None | None |
| Desktop and computer use | Not offered; an example shows how to set up VNC yourself | noVNC desktop through a template build or the Ubuntu VM template | 60fps desktop, Chromium and computer-use API in every sandbox |
| Built-in coding agents | Examples only | Hermes, OpenClaw, Claude Code, Codex, Grok, OpenCode, Pi, with a chat API per instance | Claude Code, Codex, pi, OpenCode and others, with a prompt, steer and events API |
| Keys kept out of the sandbox | Secrets are environment variables, or you run your own proxy in a sidecar | Managed LLM, search and Composio through a per-instance token; your own keys go in as env vars | Proxy for model providers and any HTTPS API you register |
| Outbound network rules | Block all, IP-range allowlist, domain allowlist (beta) | No outbound allowlist | No provider-side allowlist |
| Regions | US, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75x | United States | EU only (Germany, Finland, France), EU data residency |
| CPU speed (4 vCPU / 8 GB) | 12.79 runs/s on the default sandbox | No published result | 26.69 runs/s on dedicated AMD Ryzen 9 9950X hosts |
Every feature Battleships tracks (43)
| Feature | Modal | Agent 37 | boat |
|---|---|---|---|
| Full VM (own kernel) | No | No | Yes |
| Docker inside | No | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Not published | Yes |
| Desktop GUI | No | Yes | Yes |
| Browser | No | Yes | Yes |
| Computer-use API | No | Yes | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | No | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | Yes | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | No | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | No | No |
| Secret proxy | No | Yes | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | Yes | Yes |
| Agent harness API | No | Yes | Yes |
| MCP server | No | No | No |
| GPU | Yes | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | Not published | Yes | Yes |
| Audit logs | Yes | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | No | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
On the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, boat finished 26.69 runs per second and Modal's default gVisor sandbox 12.79, so boat 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.
| Scenario | Modal, a month | Agent 37, a month | boat, 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: boat 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. boat'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.
| Scenario | Modal | Agent 37 | boat |
|---|---|---|---|
| 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 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 boat 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, boat 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 boat 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. boat's proxy covers any HTTPS API you register.
Use boat 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: boat vs Modal and boat 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 boat 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 boat 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. boat 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 boat 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. boat runs only in the EU, in Germany, Finland and France.
Try boat
Install the CLI, then run boat new.
7-day free trial