boat vs Agent 37
boat and Agent 37 both give each agent its own persistent machine. boat makes every sandbox a full VM you can fork while it runs; Agent 37 starts with lighter gVisor sandboxes that sleep when idle and cost less per hour.
Where boat stands out
A full VM is the default, not an add-on
Every boat sandbox is a VM with its own kernel, root, systemd, Docker and /dev/kvm. On Agent 37 the default is a gVisor sandbox that cannot run Docker, and its VM type has no init system and cold-boots on every start.
Fork a machine while it runs
boat can copy a running sandbox into a new one, and save any machine as a named snapshot that others start from. Agent 37 has no fork: its backups belong to one instance and restore only in place.
Keys stay outside, for any API
boat's credentials proxy keeps real keys out of the sandbox for model providers and any HTTPS API you register, and can switch to another account when one runs out of credits. Agent 37 proxies its own managed models, search and Composio; your own keys go inside the instance.
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
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. “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 | Agent 37: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month boat gives every agent Docker, systemd and a desktop on a full VM; on Agent 37 Docker needs the opt-in VM type, which has no init system and bills compute at 2.5 times the default rate. | 2nd cheapest of 366 $634 a month | Cheapest of 366 $551 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB This is what Agent 37 is built for: one always-on assistant per user that sleeps when idle, keeps its memory, and wakes on the next message. | 4th cheapest of 362 $657 a month | Cheapest of 362 $279 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Agent 37's small default sandboxes suit short code runs; boat's start limits make large bursts of one-minute jobs a poor fit. | 183rd of 342, with limits $2,000 a month | Cheapest of 342 $22 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Agent 37 holds up to 200 instances on its top self-serve tier, counting sleeping and stopped ones, and asks you to email for more; boat plans go up to 2,000 at once. | Cheapest of 361 $209 a month | 25th of 361, with limits $79 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month | 33rd of 358, with limits $2,000 a month | 6th of 358, with limits $363 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 | 80th of 363, with limits $58 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month | 4th cheapest of 377 $86 a month | 3rd cheapest of 377 $84 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Both keep a machine and its disk around the clock; boat's full VM has systemd and raw TCP, and Agent 37 is cheaper to keep idle. | 17th cheapest of 369 $26 a month | 3rd cheapest of 369 $12 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Both can drive a browser and a desktop; boat streams a 60fps desktop out of the box, while Agent 37 adds a noVNC desktop through a template build. | 5th cheapest of 367 $200 a month | Cheapest of 367 $53 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 | 44th of 363, with limits $29 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 | Cheapest of 341 $32 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 | 35th of 337, with limits $648 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month boat runs each attempt on its own VM by default and can fork one that is already running to try many paths at once; Agent 37 has no fork. | 3rd cheapest of 357 $200 a month | Cheapest of 357 $43 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min 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 |
Key features
| Feature | boat | Agent 37 |
|---|---|---|
| Isolation | Every sandbox is a full VM with its own kernel | gVisor by default; full VM as an opt-in instance type |
| Docker inside | Yes, in every sandbox | Only on the VM type, at 2.5x the default compute rate; the default gVisor type cannot run a Docker daemon |
| systemd and init | systemd runs as in any Linux server | Your entrypoint is PID 1 with no init system, even on the VM type |
| Nested virtualization | /dev/kvm in every sandbox, Android emulator works | /dev/kvm on the VM type, with a ready Android template |
| CPU | Shared vCPUs on dedicated AMD Ryzen 9 9950X hosts | Shared by default; Performance type on dedicated cores at 4x the compute rate |
| Sleep when idle | No idle timer; a time limit you set (default 1 hour), or no limit | Opt-in auto-sleep after a quiet period (default 15 minutes), wakes on the next request |
| Memory across sleep | Disk kept; a resume reboots the machine | Memory checkpointed on auto-sleep, processes resume when the restore works |
| Fork and snapshots | Fork a running sandbox; snapshots every minute; named snapshots as shareable templates | No fork; daily backups plus one on-demand backup, restored in place only |
| Custom images | Templates from named snapshots, no Dockerfile builds | Your own linux/amd64 Docker image as a template |
| Built-in agents | Claude Code, Codex, pi, OpenCode, Prime Agent, Kimi Code, Mistral Vibe, with a prompt, steer and events API | Hermes, OpenClaw, Claude Code, Codex, Grok, OpenCode, Pi, with a chat API per instance |
| Keys kept out of the sandbox | Proxy for model providers and any HTTPS API you register; switch a credential to another account when one runs out of credits | Managed LLM, search and Composio through a per-instance token; your own keys go in as env vars |
| Desktop | 60fps desktop and Chromium in every sandbox, embeddable stream | noVNC desktop through a template build or the Ubuntu VM template |
| Networking | HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv6 or IPv4 per machine | HTTPS URL per port, signed URLs, public ports, custom domains; no public IP, SSH through a WebSocket tunnel |
| Regions | EU only (Germany, Finland, France), EU data residency | United States |
| 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 | Agent 37 |
|---|---|---|
| Full VM (own kernel) | Yes | No |
| Docker inside | Yes | No |
| Nested virtualization | Yes | No |
| Root | Yes | Yes |
| Systemd | Yes | Not published |
| Desktop GUI | Yes | Yes |
| Browser | Yes | Yes |
| Computer-use API | Yes | Yes |
| SSH | Yes | Yes |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | Yes |
| Automatic snapshots | Yes | Yes |
| Fork/clone | Yes | Yes |
| Live fork (no pause) | Yes | Yes |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | Yes |
| Wake on request | No | Yes |
| HTTPS preview URLs | Yes | Yes |
| Raw TCP inbound | Yes | Not published |
| Public IPv4 | No | No |
| Egress allowlist | No | No |
| Secret proxy | Yes | Yes |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | Yes |
| Agent harness API | Yes | Yes |
| MCP server | No | No |
| GPU | No | No |
| 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 | Yes |
| Usage per sandbox (API) | Yes | Yes |
| Audit logs | No | Not published |
| SSO | No | No |
| SOC 2 | No | Yes |
| HIPAA | No | No |
| EU data residency | Yes | No |
| Zero data retention | Yes | Not published |
Performance
boat is the fastest provider on the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB. Agent 37 has no published result on that benchmark, so there is no comparable measurement. Agent 37 does say its default instances share host resources, and sells a Performance type on dedicated cores for steady speed.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. 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 | boat, a month | Agent 37, 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 | $6 · Wallet (any top-up) |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $12 · Wallet (any top-up) |
| 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 | $329 · Wallet ($100 lifetime top-ups) |
| 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 | $33 · Wallet ($250 lifetime top-ups) · with limits |
| 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 | $73 · Wallet ($250 lifetime top-ups) · with limits |
boat: A monthly plan from $20, and all of it is usage credit for running sandboxes; bigger plans raise how many run at once. A stopped sandbox costs nothing and keeps its disk.
Agent 37: 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 stopped or asleep. Performance compute costs 4x and VM compute 2.5x the default rate; new accounts get a one-time $5 credit after adding a card.
Limits in those scenarios
Agent 37's instance cap is 1 before your first top-up, 10 after it, 50 at $100 of total top-ups and 200 at $250, and it counts sleeping and stopped instances too; beyond 200 you email the founder. The table prices its default gVisor type, except for 50 agents in parallel: that scenario needs Docker, so it is priced on Agent 37's VM type, which bills compute at 2.5x. Each shape also caps disk (a 4 vCPU / 8 GB instance takes at most 20 GB), and creating an instance needs one day of its cost in the wallet. boat's limits are concurrency per plan and a cap on starts, which is what stops it in the 1,000-at-once burst.
| Scenario | boat | Agent 37 |
|---|---|---|
| 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 |
|
| 1,000 short jobs at once |
|
|
Which one should you use?
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. Useful for assistants that sit idle most of the day: an instance sleeps, keeps its memory and wakes on the next message.
- Bring a Dockerfile, pick dedicated cores. Agent 37 builds templates from your own Docker image, and sells a Performance type on dedicated cores.
- Runs in the United States. Agent 37 runs on dedicated servers in the US, closer to US users.
Use boat when
your agents do real work for hours: installs, builds, tests, Docker and emulators on a full VM, with forks of running machines and keys kept outside for any API.
- A full VM is the default, not an add-on. Agents install packages, start databases and run Docker. On Agent 37's default type Docker cannot run at all, and the VM type costs 2.5 times as much and has no systemd, so services do not start on their own.
- Fork a machine while it runs. Without a fork you can't split one half-done task into several tries at once. On Agent 37 each try rebuilds that state from the start, and backups only restore onto the same instance.
- Keys stay outside, for any API. On Agent 37 your own API keys sit as env vars inside a machine the agent controls, where one prompt injection can leak them. Only its managed models, search and Composio stay outside.
Questions people ask
Is boat cheaper than Agent 37?
Mostly no. Agent 37's bill is lower in four of the five scenarios in the table above. For 50 agents in parallel, which need Docker, Agent 37 has to use its VM type at 2.5x the compute rate, and boat comes out slightly lower. Agent 37's self-serve tiers also stop at 200 instances, counting sleeping and stopped ones.
Is an Agent 37 sandbox a VM or a container?
By default it is a container enforced by gVisor, which gives it a user-space kernel. You can ask for the VM type instead, which is a full Linux machine with its own kernel and KVM. Every boat sandbox is a full VM.
Can I run Docker on Agent 37?
Yes, on the VM type, which comes with Docker and Compose running. The default gVisor type cannot run a Docker daemon. On boat, Docker works in every sandbox.
Where does Agent 37 run, and where does boat run?
Agent 37 runs on dedicated servers in the United States. boat runs only in the EU, in Germany, Finland and France, with EU data residency.
Can boat sleep an idle agent and wake it like Agent 37?
Not on its own. boat stops a sandbox when its time limit runs out or when you stop it, and a stopped sandbox costs nothing and keeps its disk, but it reboots on resume. Agent 37 can sleep on idle, keep memory, and wake on the next request.
Is Agent 37 SOC 2 compliant?
Agent 37 says it has SOC 2 Type I, with Type II in progress. For boat, 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