Fly.io Machines vs Agent 37
Fly.io Machines are microVMs for hosting your own apps in 17 regions, and you build any agent setup yourself. Agent 37 is made for agents: one sandbox per user with agents ready, which sleeps when idle and keeps its memory.
The companies and products
Fly.io Machines
Fly.io is an app hosting platform, and Machines are the microVMs underneath it that you can also start and stop through a REST API.
A Fly Machine boots your Docker image as a Firecracker microVM on Fly's own servers, in one of 17 regions. You pick a shared or performance CPU preset, attach at most one Volume for data that must last, and Fly Proxy can stop, suspend and wake Machines as traffic comes and goes. It is built for teams that host web apps and services worldwide; it is not a sandbox product, so this page compares the parts that overlap with agent work.
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. “92nd cheapest of 367” means 91 of the other 366 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 | Fly.io Machines: 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 3rd here; on Fly each agent needs its own Volume because the root disk resets, and there is no /dev/kvm. | 92nd of 367, with limits $836 a month | 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: an always-on assistant per user that sleeps when idle, keeps its memory and wakes on the next message is what it is built for. | 125th of 366, with limits $816 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 | 75th of 345, with limits $94 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; Agent 37 holds at most 200 instances on its top self-serve tier, counting sleeping ones, and Fly's API creates about one Machine per second per app. | 69th of 361, with limits $600 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 | 48th of 360, with limits $2,838 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 | 117th of 364, with limits $457 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 CI keeps the CPU busy, which drains a shared Fly vCPU's burst balance; Agent 37 and boat both fit fully here. | 152nd of 377, with limits $288 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 | 118th of 368, with limits $53 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 adds a noVNC desktop through a template, boat streams a 60fps desktop out of the box, and on Fly you build and stream a desktop yourself. | 95th of 369, with limits $173 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 boat has Chromium and browser control in every machine; on Fly you package the browser into your own image. | 160th of 367, with limits $90 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 | 161st of 346, with limits $67 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 Fly can spread scrapers across 17 regions and pay only for the seconds they run, while Agent 37 runs only in the US. | 44th of 338, with limits $1,232 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 boat can fork a running attempt to try many paths at once; neither Fly nor Agent 37 copies a running machine's disk into a new one. | 118th of 360, with limits $63 a month | 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 | Can't run it | 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 | Fly.io Machines | Agent 37 | boat |
|---|---|---|---|
| Kind of product | App hosting platform; you boot your own image as a microVM | Agent hosting: one isolated sandbox per user behind one API | Agent sandbox: a full VM per agent, ready to use |
| Isolation | Firecracker microVM with its own kernel | gVisor by default; full VM as an opt-in instance type | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Docker inside | You install it yourself in the microVM | Only on the VM type, at 2.5x the default compute rate | Ready in every sandbox |
| systemd and init | Fly's own init, no systemd | Your entrypoint is PID 1 with no init system, even on the VM type | systemd runs as in any Linux server |
| Nested virtualization | /dev/kvm not offered | /dev/kvm on the VM type, with an Android template | /dev/kvm in every sandbox |
| Files after a stop | Root file system is ephemeral; one Volume per Machine, billed for its full size all month | Disk kept, billed per GB even while stopped or asleep | Whole disk kept, snapshots every minute and on stop; a stopped sandbox costs nothing |
| Sleep and wake | Fly Proxy wakes Machines on request; memory kept on suspend only up to 2GB | Opt-in auto-sleep after a quiet period, memory checkpointed, wakes on the next request | No idle timer; resume reboots from disk |
| Fork | Clone copies a Machine's config; a cloned Volume starts empty | No fork; daily backups restored in place only | Fork a running sandbox, disk included |
| Desktop and computer use | None built in; you add it to your image | noVNC desktop through a template build | 60fps desktop and Chromium, computer use, embeddable stream |
| Coding agents | None built in | Hermes, OpenClaw, Claude Code, Codex, Grok, OpenCode, Pi, with a chat API | Claude Code, Codex, OpenCode and more, with a prompt, steer and events API |
| Keys kept out of the sandbox | Secrets as env vars; open-source tokenizer proxy you run yourself | Its managed models, search and Composio via a token; your own keys as env vars | Proxy for model providers and any HTTPS API you register |
| Networking | HTTPS and TCP through Fly Proxy, Anycast IPs, custom domains, private network | HTTPS URL per port, custom domains; no public IP, SSH through a WebSocket tunnel | HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv6 or IPv4 |
| CPU | Shared vCPUs guarantee 6.25% of a core plus bursts; performance vCPUs get the full core | Shared by default; Performance type on dedicated cores at 4x the compute rate | One CPU class, no baseline quota or burst balance |
| Regions | 17 regions on six continents | United States | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Fly.io Machines | Agent 37 | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | No | 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 | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | No | 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 | Yes | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | Not published | Yes |
| Public IPv4 | Yes | 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 | Yes | No | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | Yes | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | No | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | No | 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
There is no comparable measurement for either: neither Fly.io Machines nor Agent 37 was part of the public StarSling run where boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. Both sell shared CPUs by default, Fly with a 6.25% baseline per vCPU, and both sell dedicated cores at a higher rate.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Fly.io Machines and Agent 37 have 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 | Fly.io Machines, 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 · Pay As You Go · 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 | $36 · Pay As You Go · 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 | $487 · Pay As You Go · 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 | $110 · Pay As You Go · with limits | $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 | $232 · Pay As You Go · with limits | $73 · Wallet ($250 lifetime top-ups) · with limits | $2,000 · $2000/mo · with limits |
Fly.io Machines: Fly bills each Machine per second while it runs, with no plan fee; Volumes are billed for their full size all month. The table uses Fly's lowest rate: shared vCPUs bought in 1-year reservation blocks.
Agent 37: A prepaid wallet with no plan fee, metered per minute while running, plus disk per GB even while stopped or asleep. Performance compute costs 4x and VM compute 2.5x the default rate.
Agent 37: A monthly plan from $20, all of it usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Fly is a compromise in all five scenarios: its lowest figures need a 1-year reservation and use shared vCPUs that guarantee only 6.25% of each core, so long builds get throttled. Agent 37 caps instances at 200 on its top self-serve tier, counting sleeping and stopped ones, so it does not fit 300 user sandboxes or 1,000 jobs at once, and it does not publish its egress price. The 50-agent fleet needs Docker, so Agent 37 is priced on its VM type there. boat queues the 1,000-job burst because of its limits on starts per minute and per day.
| Scenario | Fly.io Machines | 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 |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Fly.io Machines when
you host apps or light services that must run near users outside Europe and wake on traffic, and you are happy to build the agent setup yourself.
- 17 regions worldwide. Useful if your users are spread out: Fly runs Machines in 17 regions, from the US to Sydney and Johannesburg.
- A full app platform around each Machine. Useful if you host whole products: Fly adds network policies, a private network, Anycast IPs and custom domains.
- Per-second billing, no plan fee. Useful for short bursts: Fly bills each Machine per second only while it runs, with no plan fee.
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.
- Agents ready to run. Useful if you want agents now: templates for Hermes, OpenClaw, Claude Code, Codex and more, each with a chat API.
- A VM type with /dev/kvm. Useful for Android emulators: Agent 37's VM type has Docker, KVM and a ready Android template, which Fly does not offer.
Where boat fits
Fly gives you a fast microVM and leaves the agent setup to you, and Agent 37 gives you agents in light sandboxes that sleep. If your agents do real work for hours, with installs, builds, Docker and emulators, boat gives each one a full VM with all of that ready, a disk that is always kept, and forks of running machines.
Docker, systemd and /dev/kvm by default
Fly has no systemd or /dev/kvm, and you install Docker yourself. Agent 37's default type cannot run Docker; its VM type can, but at 2.5x the compute rate and with no init system.
A disk that is kept, and forks of running machines
A Fly Machine loses anything outside its one Volume on restart, and a clone gets an empty Volume. Agent 37 has no fork, and its backups restore only onto the same instance.
Keys stay outside for any API
On Fly, keys go in as env vars unless you run your own tokenizer app. Agent 37 keeps only its managed models, search and Composio outside; your own keys sit inside the machine the agent controls.
Use boat when your agents do real work for hours: installs, builds, Docker and emulators on a full VM whose disk is always kept, with forks, a desktop and a keys proxy built in. Compare it one to one: boat vs Fly.io Machines and boat vs Agent 37.
Questions people ask
Is Fly.io Machines cheaper than Agent 37?
No, Agent 37's bill is lower in all five scenarios in the table. One agent on workdays is $6 a month on Agent 37 and $15 on Fly, and 50 agents in parallel are $329 versus $487, with Agent 37 on its VM type because the fleet needs Docker. Fly's figures already use its cheapest rate, shared vCPUs on a 1-year reservation.
Which is faster, Fly.io Machines or Agent 37?
There is no comparable measurement for either one. Both share CPUs by default and sell dedicated cores at a higher rate. boat did 26.69 runs per second on the public StarSling Node.js benchmark at 4 vCPU / 8 GB.
Can Fly.io Machines or Agent 37 run Docker?
On Fly you can install and run Docker yourself, but there is no /dev/kvm for nested VMs. On Agent 37 only the VM type runs Docker, at 2.5x the default compute rate. On boat, Docker, systemd and /dev/kvm are ready in every sandbox.
Do they keep my files when a machine stops?
A Fly Machine keeps only what is on its one Volume; its root file system is ephemeral. Agent 37 keeps the disk and can keep memory on auto-sleep. boat keeps the whole disk, with snapshots every minute and on stop.
Where do Fly.io Machines and Agent 37 run?
Fly runs Machines in 17 regions on six continents. 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.
Which is better as an AI agent sandbox?
Agent 37 is built for it, with agents ready and a chat API, while on Fly you build the image, browser and agent control yourself. boat also ships agents ready, on a full VM with Docker, a desktop and forks of running machines.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Fly.io Machines
- boat vs Agent 37
- E2B vs Fly.io Machines
- Daytona vs Fly.io Machines
- Modal vs Fly.io Machines
- Vercel Sandbox vs Fly.io Machines
- Cloudflare Sandbox vs Fly.io Machines
- Blaxel vs Fly.io Machines
- Runloop vs Fly.io Machines
- Tensorlake vs Fly.io Machines
- Morph Cloud vs Fly.io Machines
- CodeSandbox SDK vs Fly.io Machines