Modal vs Modal VM Sandboxes

Modal Sandboxes and Modal VM Sandboxes share one API and one price list. The default gVisor runtime can use GPUs, while the VM runtime gives each sandbox its own Linux kernel so Docker, FUSE and systemd work, but has no GPUs.

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.

Modal VM Sandboxes

Modal is a serverless cloud for AI work, and VM Sandboxes are the version of its sandboxes that run in a virtual machine with their own Linux kernel.

You create a VM Sandbox from Python, TypeScript or Go code with runtime="vm", run commands in it, and terminate it when the job is done. Modal built the runtime on the Rust-based Cloud Hypervisor, so Docker, FUSE, systemd and nested cgroups work, with the same API, images and prices as its gVisor sandboxes. It became generally available on 1 October 2026 and suits teams that want many short-lived agent machines next to Modal's inference and training.

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 rankModal VM Sandboxes: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Software factories need Docker, so only the VM runtime fits among the two, and it still loses its root disk within 24 hours; boat keeps its disk and has a desktop to check the app.
Can't run it84th of 367, with limits
$759 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Both Modal runtimes stop a sandbox at 24 hours, while a boat sandbox has no session cap on paid plans.
196th of 366, with limits
$1,924 a month
Can't run it5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Short code runs rarely need Docker, so Modal's default gVisor sandbox with its fast starts fits them well.
19th cheapest of 345
$181 a month
Can't run it186th 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 Modal runtimes cost the same here; users who come back to the same sandbox fit boat, because a stopped boat sandbox keeps its disk and costs nothing.
11th cheapest of 361
$811 a month
Can't run itCheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
Huge bursts of short rollouts are what Modal is built for, on either runtime, while boat's per-plan start limits queue large bursts.
5th cheapest of 360
$19,038 a month
171st of 360, with limits
$16,322 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
Can't run it10th 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 need Modal's VM runtime; every boat sandbox runs Docker and has /dev/kvm on every plan.
126th cheapest of 377
$1,793 a month
188th of 377, with limits
$1,064 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
Can't run it18th 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 runtime ships a desktop, so you set up Xvfb and VNC yourself; boat has a 60fps desktop, Chromium and a computer-use API built in.
98th of 369, with limits
$183 a month
Can't run it6th 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
Can't run it7th 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
Can't run it6th 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
Can't run it71st 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 it294th of 360, with limits
$642 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
Only Modal's default gVisor runtime has GPUs; Modal VM Sandboxes and boat have none.
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

FeatureModalModal VM Sandboxesboat
IsolationgVisor, a user-space kernel from GoogleVM with its own Linux 7.2 kernel on Cloud HypervisorFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Docker insideNot documented on gVisorYes; start dockerd yourself as the entrypointYes, in every sandbox
FUSE and kernel featuresNoYes: FUSE, eBPF, systemd and nested cgroupsYes: own kernel with Docker and systemd
Nested virtualizationNoTeam and Enterprise plans only, on requestYes, /dev/kvm on every plan
GPUsT4 to B300; 10 at once on Starter, 50 on TeamNone; GPU sandboxes need gVisorNone
CPU benchmark (4 vCPU / 8 GB)12.79 runs/s15.54 runs/s26.69 runs/s
Longest session24 hours (default 5 minutes)24 hours (default 5 minutes)No cap on paid plans; you set the time to live
Stop and resumeNo paused state; only Volumes keep filesNo paused state; only Volumes and snapshots keep filesStop for free, resume later with the whole disk; saved every minute
Memory snapshotsYes, in alpha: snapshotting ends the sandbox, snapshots expire after 7 daysYes, in alpha, with the same limits, and such a VM cannot mount VolumesNo; resume boots the VM again
ForkSnapshot the filesystem into an image and boot new sandboxes from itSnapshot the filesystem into an image and boot new sandboxes from itFork a running sandbox with its disk, without stopping it
Desktop, browser, computer useNot offered; an example shows how to set up VNC yourselfNot offered; an example shows how to set up Xvfb and VNC yourself60fps desktop, Chromium and computer-use API built in
Coding agents and key proxyExamples only; secrets are environment variables or your own sidecar proxyExamples only; secrets are environment variables or your own sidecar proxyClaude Code, Codex and others preinstalled, driven from outside; real API keys never enter the sandbox
Outbound network rulesBlock all, IP-range allowlist, domain allowlist (beta)Block all, IP-range allowlist, domain allowlist (beta)Open internet, no provider-side allowlist
RegionsUS, EU and Asia-Pacific; pinning costs 1.15x to 1.75xUS, EU and Asia-Pacific; pinning costs 1.15x to 1.75xEU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureModalModal VM Sandboxesboat
Full VM (own kernel)NoYesYes
Docker insideNoYesYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdYesYesYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeNoNoYes
Automatic snapshotsNoNoYes
Fork/cloneYesYesYes
Live fork (no pause)NoYesYes
Memory forkYesYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestNoNoNo
HTTPS preview URLsYesYesYes
Raw TCP inboundYesYesYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyNoNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsNoNoYes
Agent harness APINoNoYes
MCP serverNoNoNo
GPUYesNoNo
WindowsNoNoNo
Arm64NoNoNo
Self-hostingNoNoNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)Not publishedNot publishedYes
Audit logsYesYesNo
SSOYesYesNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Modal12.79 runs/s
Modal VM Sandboxes15.54 runs/s
boat26.69 runs/s

The hpc-sandbox-benchmarks Node.js build-and-test loop ran on all three at 4 vCPU / 8 GB in the same run on 29 September 2026. Modal's default gVisor sandbox finished 12.79 runs per second and its VM runtime 15.54, so the VM runtime did about 1.2 times the work. boat finished 26.69, about twice the gVisor sandbox and about 1.7 times 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. Modal VM Sandboxes measured on: VM Sandbox, request = size.

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 monthModal VM Sandboxes, a monthboat, 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$15 · Starter · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$178 · Starter · with limits$178 · Starter · with limits$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$2,229 · Starter · with limits$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$792 · 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$3,193 · Team · 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, until the sandbox 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.

Modal VM Sandboxes: VM Sandboxes use the same rates and plans as the gVisor sandboxes, so every scenario costs the same on both. Egress above the free allowance costs $0.04 per GiB on either runtime.

Modal VM Sandboxes: 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 and keeps its disk.

Limits in those scenarios

On both Modal runtimes a sandbox lives at most 24 hours and its root disk is gone when it ends, so the workday, always-on and fleet scenarios keep only files you put in a Volume and do not fit. The 50-agent fleet also needs Docker, which the gVisor sandbox lacks and the VM runtime has. The 1,000-job burst is priced on Team with a small CPU request whose extra CPU is shared, on either runtime. On boat the limit that bites is start speed: even the $2,000 plan starts 90 sandboxes a minute, so 1,000 jobs at once queue.

ScenarioModalModal VM Sandboxesboat
One coding agent, workdays
  • files survive a stop only in Volumes: packages installed elsewhere reset
  • files survive a stop only in Volumes: packages installed elsewhere reset
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
  • Starter: sessions capped at 24 h
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
50 agents in parallel
  • missing Docker inside
  • files survive a stop only in Volumes: packages installed elsewhere reset
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
Sandboxes for your usersNone that biteNone that biteNone 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
  • shared vCPUs on this tier (Modal (VM Sandboxes) sells dedicated cores separately as “VM Sandbox, request = size”): heavy, sustained CPU use can be slowed by other tenants
  • 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, or run short code that needs no Docker, FUSE or nested virtualization.

  • GPUs in the sandbox. If your sandbox must run models itself, only the gVisor runtime can attach GPUs, from T4 up to B300.
  • The default that just works. For short code runs that need no Docker or FUSE, leaving the runtime at gVisor keeps setup simple.
  • Memory snapshots with Volumes. If you need alpha memory snapshots and Volumes together, the gVisor runtime avoids the VM rule that blocks Volumes.

Use Modal VM Sandboxes when

your short-lived agents need Docker, FUSE or systemd, and you want the faster CPU at the same price.

  • Docker, FUSE and systemd. If your agent builds images or mounts filesystems, the VM runtime gives it a real Linux kernel to do it.
  • Faster CPU for the same price. In the same benchmark run, the VM runtime did 15.54 runs per second against 12.79 for gVisor, at the same rates.
  • Nested virtualization on request. Teams on Team or Enterprise can ask Modal for nested virtualization, which the gVisor runtime does not offer.

Where boat fits

Choosing between Modal's runtimes means trading GPUs for Docker, and both still end every sandbox within 24 hours. If your agents work for hours or days in a machine they come back to, boat gives every sandbox a full VM with Docker, /dev/kvm and a desktop, on a faster CPU, with a disk that survives free stops. boat has no GPUs, so GPU work still belongs on Modal.

A disk that survives the day

Both Modal runtimes end a sandbox within 24 hours and drop its root disk, so you write code to snapshot the filesystem or keep files in a Volume. boat saves the disk every minute, stops for free and has no session cap on paid plans.

Docker and /dev/kvm in every sandbox

On Modal, gVisor has no documented Docker and the VM runtime offers nested virtualization only on Team or Enterprise after you ask. Every boat sandbox runs Docker and systemd and exposes /dev/kvm for Android emulators on every plan.

A desktop and agents ready to drive

Neither Modal runtime ships a desktop or agent harness, and by default keys sit in environment variables. boat has a 60fps desktop, Claude Code and Codex driven from outside, and a credentials proxy for any HTTPS API.

Use boat when your agents work for hours or days in a machine they come back to: Docker, emulators and a desktop, on a faster VM that keeps its disk. Compare it one to one: boat vs Modal and boat vs Modal VM Sandboxes.

Questions people ask

Is Modal cheaper than Modal VM Sandboxes?

No, they share one price list, so every scenario costs the same. One always-on agent costs $178 a month on either, against $26 on boat, and 50 parallel agents cost $2,229 a month on either, against $317 on boat.

Which is faster, Modal or Modal VM Sandboxes?

On the hpc-sandbox-benchmarks CPU test at 4 vCPU / 8 GB, the VM runtime did 15.54 runs per second and the default gVisor runtime 12.79. boat did 26.69 in the same run.

Can Modal run Docker?

Only with the VM runtime, which you choose with runtime="vm" and then start dockerd yourself. The default gVisor sandbox does not document Docker support. Every boat sandbox runs Docker with no extra setting.

Can Modal VM Sandboxes use GPUs?

No. Modal says GPU sandboxes are only supported with the gVisor runtime. boat has no GPUs either.

How long can each run?

Both runtimes default to 5 minutes and stop at 24 hours; for longer work Modal suggests a filesystem snapshot and a new sandbox. boat has no session cap on paid plans.

Which runtime do I get by default?

If you leave the runtime unset, Modal picks one for you. Set runtime="vm" for VM Sandboxes or runtime="gvisor" for GPUs.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons