Modal vs Beam
Modal and Beam are both serverless clouds for AI work that run gVisor sandboxes next to their GPUs. Modal runs in more regions and caps a sandbox at 24 hours, while Beam is US only, lets a sandbox run until you stop it and can be self-hosted.
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.
Beam
Beam is a serverless cloud for GPU inference, sandboxes and background jobs, built on its open-source runtime Beta9.
Beam runs functions, REST endpoints, task queues, pods, sandboxes and VMs on CPUs and GPUs, all from a Python or TypeScript SDK. A sandbox is a container isolated with gVisor that starts in a second or two, lives until you terminate it or its time to live runs out, and can be saved as a filesystem image or a memory snapshot. Beam VMs are a separate CPU product: a microVM with its own kernel, systemd and a root disk that stays when it stops. Much of Beam is a GPU serverless platform for AI teams.
- Bring your own cloud
- Management fee per vCPU and GB of RAM, on top of your own cloud bill
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 | Beam: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month | Can't run it | 69th of 367, with limits $551 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An agent that lives on its machine all month hits Modal's 24-hour cap; Beam has no published cap, and boat adds a desktop, agents and a credentials proxy. | 196th of 366, with limits $1,924 a month | 115th of 366, with limits $651 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 Both fit short code runs well: each starts gVisor sandboxes quickly and bills by the second, and Beam's lower rates put it ahead of Modal here. | 19th cheapest of 345 $181 a month | 8th cheapest of 345 $117 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 Both can give each of your users a sandbox; boat gives each one a full VM whose disk is kept for free while stopped. | 11th cheapest of 361 $811 a month | 3rd cheapest of 361 $290 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 RL rollouts need huge bursts of short sandboxes, which Modal is built for with 5,000 containers on Team, while Beam's Team plan stops at 1,000. | 5th cheapest of 360 $19,038 a month | 341st of 360, with limits $939 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 | 13th cheapest of 364 $251 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 CI jobs that build Docker images run in a Beam sandbox with docker_enabled, while Modal needs its VM runtime; boat runs Docker in every sandbox. | 126th cheapest of 377 $1,793 a month | 12th cheapest of 377 $171 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A dev box must keep its files: a Modal sandbox ends within 24 hours, while a Beam VM keeps its root disk while stopped, and boat saves the disk every minute. | 138th of 368, with limits $23 a month | 13th cheapest of 368 $21 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 Neither Modal nor Beam has a desktop or browser product, so you build one yourself; boat ships a 60fps desktop with Chromium and computer use. | 98th of 369, with limits $183 a month | 111th of 369, with limits $237 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 | 195th of 367, with limits $176 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 | 200th of 346, with limits $131 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 | 42nd of 338, with limits $923 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 | 175th of 360, with limits $155 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 Both rent GPUs next to their sandboxes, Modal from T4 to B300 and Beam from T4 and RTX 4090 to B200; boat has no GPUs. | 19th cheapest of 98 $1,187 a month | Cheapest of 98 $458 a month | 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 | Beam | boat |
|---|---|---|---|
| Isolation | gVisor by default; VM runtime with its own kernel available | gVisor container by default, opt-in microVM mode for CPU sandboxes; separate Beam VMs | Full VM with its own kernel in every sandbox, on dedicated AMD Ryzen 9 9950X hosts |
| Docker inside | Only with the VM runtime | Yes, in sandboxes with docker_enabled | Yes, in every sandbox, with systemd and root |
| Nested virtualization | VM runtime only, Team and Enterprise plans, on request | Not documented | Yes, /dev/kvm for Android emulators and VMs |
| Longest session | 24 hours (default 5 minutes) | No published cap; default 10 minutes, set -1 to run until you terminate it | No cap on paid plans; you set the time to live |
| Disk between runs | No paused state; a finished sandbox is gone, only Volumes keep files | A sandbox ends with its time to live unless you save an image or use a volume; a Beam VM keeps a 50 GiB root disk while stopped | Disk saved every minute and on stop; a stopped sandbox keeps it for free |
| Snapshots and fork | Filesystem snapshots into images; memory snapshots in alpha end the sandbox and expire after 7 days | Memory snapshot of a running sandbox with its processes, restored into new sandboxes | Fork a running sandbox with its disk; no memory snapshots |
| GPUs | T4 to B300; 10 at once on Starter, 50 on Team | T4 and RTX 4090 up to H100, H200 and B200 | None, CPU only |
| CPU speed (4 vCPU / 8 GB) | 12.79 runs/s on the default sandbox | No result on the same test | 26.69 runs/s |
| Desktop, browser, computer use | Not offered; an example shows how to set up VNC yourself | No desktop or browser product | 60fps desktop, Chromium and a computer-use API built in |
| Coding agents | Examples only | None preinstalled; you install and run them through process exec | Seven agents preinstalled, with a prompt, steer and events API |
| Keeping API keys out of the sandbox | Secrets are environment variables, or you run your own proxy in a sidecar | Secrets are environment variables inside the sandbox | Credentials proxy for model providers and any HTTPS API |
| Inbound access | Encrypted and raw TCP tunnels, connect tokens, inbound IP allowlist | HTTPS only: a public URL per exposed port with no built-in auth; no raw TCP | HTTPS URLs for up to 50 ports, token-protected by default, plus raw TCP and a dedicated IPv4 or IPv6 |
| Outbound rules | Block all, IP-range allowlist, domain allowlist (beta) | Block all, or allow up to 10 CIDR ranges, changeable while running | Open internet, no provider-side allowlist |
| Regions and self-hosting | US, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75x; no self-hosting | US only; Beta9 runtime is AGPL-3.0 and free to self-host, or bring your own cloud for a fee | EU only (Germany, Finland, France); no self-hosting |
Every feature Battleships tracks (43)
| Feature | Modal | Beam | boat |
|---|---|---|---|
| Full VM (own kernel) | No | No | Yes |
| Docker inside | No | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | No | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | No | No | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | Yes | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | No | No |
| Wake on request | No | No | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | No | No | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | No | Yes | No |
| GPU | Yes | Yes | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | Yes | No |
| BYOC | No | Yes | No |
| Open source | No | Yes | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | Not published | No | Yes |
| Audit logs | Yes | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Not published | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
On the StarSling hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, run on 29 September 2026, boat finished 26.69 runs per second and Modal's default gVisor sandbox 12.79, so boat did about twice the work. Beam has no result on that test, so we cannot say how fast it is at CPU work. Beam's own guide says its sandboxes cold-boot in 1 to 3 seconds.
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. Beam 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 | Beam, 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 | $5 · Developer | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $178 · Starter · with limits | $22 · Developer | $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 | $410 · Team | $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 | $191 · Team | $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 | $259 · Team | $2,000 · $2000/mo · with limits |
Modal: Modal bills by the second for the higher of 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, Team is $250 a month with $100 of credit, and pinning a region multiplies the price by 1.15x to 1.75x.
Beam: Beam sandboxes bill by the second for each CPU core and GiB of RAM you request until you terminate them or their time to live ends, so an idle tail is billed too. Developer has no fee, Team is $89 a month plus usage with no credit, and there are no egress fees.
Beam: boat charges one hourly rate per machine size, by the second, only while a 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 keeps only files in a Volume, so the workday, always-on and 50-agent scenarios do not fully fit, and the 50-agent fleet also lacks Docker in the default sandbox. For 1,000 short jobs at once, Modal's Team tier is flagged for shared vCPUs that other tenants can slow. Beam fits every scenario, but it publishes no price for disk beyond what a VM includes, and its Developer plan allows only 30 CPU containers at once, so 50 agents need Team. boat's limit is start speed: 1,000 jobs at once queue on its $2,000 plan.
| Scenario | Modal | Beam | 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 must run outside the US, need domain-level outbound rules, or come in huge bursts of short jobs next to GPUs up to B300.
- Regions around the world. For teams that need sandboxes outside the US, Modal runs in the US, the EU and Asia-Pacific, while Beam lists only the US.
- Finer outbound rules. Modal can limit a sandbox's outbound traffic to chosen domains, not only IP ranges, which helps when an agent may call only a few APIs.
- Very large bursts. For RL rollouts and other huge bursts, Modal's Team plan runs 5,000 containers at once, against 1,000 on Beam's Team plan.
Use Beam when
you want sandboxes with no 24-hour cap, Docker in a normal sandbox, low per-second rates in the US, or a runtime you can self-host.
- No 24-hour cutoff. For long jobs, a Beam sandbox can run until you terminate it, and Beam VMs keep their root disk while stopped.
- Docker without a special runtime. Agents that build images can run Docker in a normal Beam sandbox with docker_enabled, while Modal needs its VM runtime.
- Open source and your own cloud. Teams that must run on their own machines can self-host Beam's AGPL-3.0 Beta9 runtime for free, or use bring your own cloud.
Where boat fits
Modal and Beam are GPU platforms first, with sandboxes built for short code runs. If what you are really running is coding agents that work for hours or days, with Docker, emulators and a browser, look at boat: every sandbox is a full VM that keeps its disk and comes with agents and a desktop.
A full VM with /dev/kvm
Both default to gVisor containers. On Modal, Docker needs the VM runtime and /dev/kvm is on request for Team plans; Beam sandboxes have no systemd and neither Beam product documents /dev/kvm, so Android emulators and nested VMs fail.
Work that is still there tomorrow
A Modal sandbox ends within 24 hours and loses everything outside a Volume. A Beam sandbox ends with its time to live unless you save an image, and its idle tail is billed. boat saves the disk every minute and stops for free.
Agents, desktop and keys built in
Neither Modal nor Beam ships coding agents, a desktop or a browser, so you build that harness yourself. Both put secrets in environment variables an injected prompt can read; boat keeps real keys outside the sandbox in a credentials proxy.
Use boat when your agents work for hours or days: installs, builds, Docker, emulators and a browser on a full VM that keeps its disk and stops for free. Compare it one to one: boat vs Modal and boat vs Beam.
Questions people ask
Is Modal cheaper than Beam?
Not in our scenarios. One agent that never stops costs $22 a month on Beam against $178 on Modal, and 50 parallel agents cost $410 against $2,229. On boat those two cost $26 and $317.
Which is faster, Modal or Beam?
We cannot compare them at CPU work: Modal's default sandbox did 12.79 runs per second on the hpc-sandbox-benchmarks test and Beam has no result on it. boat did 26.69 on the same test. Beam says its sandboxes cold-boot in 1 to 3 seconds.
Can Modal and Beam sandboxes run Docker?
Beam supports Docker inside a sandbox with docker_enabled. Modal runs Docker only with its VM runtime, not in the default gVisor sandbox. Every boat sandbox runs Docker with no extra setting.
How long can a sandbox run on Modal and on Beam?
Modal's default timeout is 5 minutes and its maximum is 24 hours. Beam's default is 10 minutes, and setting it to -1 lets a sandbox run until you terminate it. boat has no session cap on paid plans.
Do Modal and Beam both have GPUs?
Yes. Modal rents GPUs from T4 to B300 and Beam from T4 and RTX 4090 up to H100, H200 and B200. boat is CPU only, so pick one of them for work that needs a GPU.
Where do Modal and Beam run?
Modal runs in the US, the EU and Asia-Pacific, and pinning a region costs 1.15x to 1.75x. Beam lists only the US, but its Beta9 runtime can be self-hosted. boat runs in the EU, in Germany, Finland and France.
Try boat
Install the CLI, then run boat new.
7-day free trial