boat vs Modal
boat 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 boat stands out
A computer that keeps its work
A boat 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 boat 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, boat 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 boat VM runs on dedicated AMD Ryzen 9 9950X hosts.
The companies and products
boat
boat.dev 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.
- Isolation
- Full VM per sandbox, own kernel
- Regions
- EU: Germany, Finland, France
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. “2nd cheapest of 366” means 1 of the other 365 providers runs 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 | boat: price rank | Modal: 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 boat has all three in every sandbox while Modal's sandboxes reset their root disk when they end. | 2nd cheapest of 366 $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 boat sandbox can run with no session cap on paid plans. | 4th cheapest of 362 $657 a month | 184th of 362, 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 boat's per-plan start limits. | 183rd of 342, with limits $2,000 a month | 12th cheapest of 342 $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 boat, because a stopped sandbox keeps its disk and costs nothing. | Cheapest of 361 $209 a month | 8th 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. | 33rd of 358, with limits $2,000 a month | 5th cheapest of 358 $19,038 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month | 9th cheapest of 363 $200 a month | 52nd cheapest of 363 $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 boat sandbox; on Modal they need the VM runtime. | 4th cheapest of 377 $86 a month | 120th cheapest of 377 $1,793 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 17th cheapest of 369 $26 a month | 132nd of 369, with limits $23 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month boat ships a 60fps desktop, Chromium and a computer-use API; on Modal you install and wire up the desktop yourself. | 5th cheapest of 367 $200 a month | 94th of 367, with limits $183 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 5th cheapest of 363 $200 a month | 168th of 363, with limits $136 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 4th cheapest of 341 $90 a month | 255th of 341, 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 | 65th of 337, with limits $1,800 a month | 216th of 337, with limits $8,795 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 3rd cheapest of 357 $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 boat has none, so Modal is the pick for GPU jobs. | Can't run it | 19th cheapest of 97 $1,187 a month |
| 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 |
Key features
| Feature | boat | Modal |
|---|---|---|
| Isolation | Full VM with its own kernel, every sandbox | gVisor by default; VM runtime available (Modal VM Sandboxes) |
| Docker inside | Yes, in every sandbox | Only with the VM runtime |
| Nested virtualization | Yes (/dev/kvm, Android emulator) | VM runtime only, Team and Enterprise plans, on request |
| Desktop, browser, computer use | 60fps desktop, Chromium and computer-use API built in | Not offered; an example shows how to set up VNC yourself |
| Stop and resume | Stop for free, resume later with the whole disk | No paused state; a finished sandbox is gone, only Volumes keep files |
| Longest session | No cap on paid plans (default TTL 1 h, changeable) | 24 hours (default 5 minutes) |
| Fork | Fork a running sandbox without stopping it | Snapshot the filesystem into an image and boot new sandboxes from it |
| Memory snapshots | No (resume reboots the VM) | Yes, in alpha: snapshotting ends the sandbox, snapshots expire after 7 days |
| Custom images | Named snapshots used as templates; no Dockerfile builds | Build images in code or pull any linux/amd64 registry image |
| GPUs | None | T4 to B300; 10 at once on Starter, 50 on Team |
| Outbound network rules | No provider-side allowlist | Block all, IP-range allowlist, domain allowlist (beta) |
| Regions | EU only: Germany, Finland, France | US, EU and Asia-Pacific plus narrower regions, pinning costs 1.15x to 1.75x |
| Coding agents and key proxy | Claude Code, Codex and others preinstalled, with an API to prompt them; real API keys never enter the sandbox | Examples only; secrets are environment variables, or you run your own proxy in a sidecar |
| Hosting ports | HTTPS URLs for up to 50 ports, token-protected by default, plus raw TCP | Encrypted and raw TCP tunnels, connect tokens, inbound IP allowlist |
| Compliance and transparency | SOC 2 is in progress. We're open about where we stand: live status and data retention policy. | SOC 2 |
Every feature Battleships tracks (43)
| Feature | boat | Modal |
|---|---|---|
| Full VM (own kernel) | Yes | No |
| Docker inside | Yes | No |
| Nested virtualization | Yes | No |
| Root | Yes | Yes |
| Systemd | Yes | Yes |
| Desktop GUI | Yes | No |
| Browser | Yes | No |
| Computer-use API | Yes | No |
| SSH | Yes | Yes |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | No |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | Yes |
| Live fork (no pause) | Yes | No |
| Memory fork | No | Yes |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | Yes |
| Wake on request | No | No |
| HTTPS preview URLs | Yes | Yes |
| Raw TCP inbound | Yes | Yes |
| Public IPv4 | No | No |
| Egress allowlist | No | Yes |
| Secret proxy | Yes | No |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | No |
| Agent harness API | Yes | No |
| MCP server | No | No |
| GPU | No | Yes |
| Windows | No | No |
| Arm64 | No | No |
| Self-hosting | No | No |
| BYOC | No | No |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | Not published |
| Usage per sandbox (API) | Yes | Not published |
| Audit logs | No | Yes |
| SSO | No | Yes |
| SOC 2 | No | Yes |
| HIPAA | No | Yes |
| EU data residency | Yes | Yes |
| Zero data retention | Yes | Not published |
Performance
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. boat finished 26.69 runs per second. Modal's default gVisor sandbox finished 12.79 and its VM runtime 15.54, so boat 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.
| Scenario | boat, a month | Modal, 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 |
boat: 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.
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 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 for several minutes and exceed the daily start limit.
| Scenario | boat | Modal |
|---|---|---|
| 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 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 boat 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 boat cheaper than Modal?
In most of our scenarios, yes: one always-on agent costs $26 a month on boat 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 boat 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. boat 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 boat have GPUs?
No. boat sandboxes are CPU machines. If your workload needs a GPU in the sandbox, Modal is the better fit.
Is boat SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at https://status.ascii.dev and our data retention policy at https://docs.boat.dev/data-retention.
Start a sandbox
Install the CLI, then run boat new.
7-day free trial