Sprites vs Agent 37
Sprites and Agent 37 both give each agent a persistent machine that sleeps when idle and wakes on the next request. Sprites is a fixed 8 vCPU Firecracker microVM billed on the CPU it really uses, while Agent 37 is a gVisor sandbox you size yourself, billed per minute for what you reserve, with a full VM type as an option.
The companies and products
Sprites
Sprites is Fly.io's product for agents: persistent Linux computers you create by API or CLI, which sleep when idle and wake on the next request.
Each Sprite is a Firecracker microVM with 8 vCPU, memory the platform manages, and a 100 GB ext4 disk that syncs to object storage. It runs one managed Ubuntu image with Claude Code, Codex, Gemini CLI and Cursor preinstalled, gets an HTTPS URL that wakes it, and bills only for the CPU and memory it actually uses while awake. It is built for coding agents, dev environments and user code that sit idle most of the time.
- Isolation
- Firecracker microVM per Sprite
- Regions
- Not selectable for Sprites
- Free start
- $30 trial credit per organization
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. “63rd cheapest of 377” means 62 of the other 376 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 | Sprites: 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 Sprites runs Docker in every machine with some rough edges, while Agent 37 needs its VM type for Docker; boat adds systemd, /dev/kvm and many public ports on every sandbox. | 66th of 367, with limits $546 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 is built for one always-on assistant per user that sleeps with its memory kept; a Sprite drops open connections on every pause unless a task holds it awake. | 157th of 366, with limits $1,166 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 Both suit short code runs: Sprites bills only the CPU it really uses, and Agent 37's small default sandboxes cost very little per minute. | 93rd of 345, with limits $140 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 Agent 37 caps self-serve at 200 instances, counting sleeping ones, and Sprites does not publish a pay as you go cap; boat plans run up to 2,000 at once. | 56th of 361, with limits $428 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 | 105th of 360, with limits $6,540 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 | 125th of 364, with limits $545 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 that needs Docker works on a Sprite and on Agent 37's VM type; Android builds need /dev/kvm, which Agent 37's VM type and boat have. | 63rd cheapest of 377 $476 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 Agent 37 has SSH through a tunnel and Sprites tunnels SSH through its CLI; boat gives a dev box direct SSH, systemd and raw TCP. | 213th of 368, with limits $27 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 Sprites is headless, Agent 37 adds a noVNC desktop through a template, and boat streams a 60fps desktop with Chromium in every sandbox. | 85th of 369, with limits $136 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 | 171st of 367, with limits $122 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 | 229th of 346, with limits $206 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 | 141st of 338, with limits $4,113 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 Neither Sprites nor Agent 37 can fork a machine; boat can copy a running sandbox to try many attack paths from one state. | 210th of 360, with limits $223 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 | Sprites | Agent 37 | boat |
|---|---|---|---|
| Isolation | Firecracker microVM with its own kernel | gVisor sandbox by default; full VM as an opt-in type | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Machine size | Fixed 8 vCPU and 100 GB disk; memory managed by the platform | You pick a shape, from 2 vCPU / 4 GB up to 16 vCPU / 32 GB | You choose; up to 16 vCPU / 32 GB on the $100 plan and above |
| Docker inside | Yes, with rough edges users report for non-root containers | Only on the VM type, at 2.5x the default compute rate | Yes, in every sandbox |
| systemd and /dev/kvm | No systemd; /dev/kvm not in the docs | No init system, even on the VM type; /dev/kvm on the VM type | systemd and /dev/kvm in every sandbox |
| Sleep when idle | Pauses about 30 seconds after work stops, wakes in 100 to 500 ms with memory | Opt-in auto-sleep (default 15 minutes), memory checkpointed, wakes in a few seconds | No idle timer; runs until you stop it or its time limit ends, and a stopped sandbox costs nothing |
| Billing basis | CPU time and memory actually used while awake | Reserved vCPU and RAM per minute while running, disk even while asleep | Per second for the size you pick while running; the plan fee is all usage credit |
| Fork and snapshots | Filesystem checkpoints, restored in place; no fork | Daily backups plus one on-demand backup, restored in place; no fork | Fork a running sandbox; disk saved every minute; named snapshots as templates |
| Custom images | One managed Ubuntu image; you install on top | Your own linux/amd64 Docker image as a template | Templates from named snapshots, no Dockerfile builds |
| Reaching the machine | One HTTPS URL to one HTTP port; other ports and SSH through the sprite proxy CLI | HTTPS URL per port, custom domains; SSH through a WebSocket tunnel; no public IP | HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv4 or IPv6, SSH |
| Outbound rules | Optional DNS-based domain allowlist; private IPs always blocked | No provider-side allowlist | Open internet, no provider-side allowlist |
| Keys kept out of the sandbox | Connectors hold tokens for any HTTP API, with path allow and block lists | Managed LLM, search and Composio; your own keys go in as env vars | Credentials proxy for model providers and any HTTPS API; switch to another account when credits run out |
| Coding agents | Claude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec | Templates for Hermes, OpenClaw, Claude Code, Codex and more, with a chat API per instance | Seven agents preinstalled, with a prompt, steer and events API to drive them from outside |
| Desktop and browser | Headless; no desktop or browser product | noVNC desktop through a template build | 60fps desktop with Chromium and computer use, embeddable stream |
| Regions | Not selectable | United States | EU only (Germany, Finland, France), with EU data residency |
Every feature Battleships tracks (43)
| Feature | Sprites | 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 | No | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | 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 | No | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | No | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | 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 | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | No | No |
| EU data residency | No | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
Neither Sprites nor Agent 37 has a result on the hpc-sandbox-benchmarks Node.js build-and-test test we use, so there is no comparable measurement between them. boat did 26.69 runs per second on that test at 4 vCPU / 8 GB. Agent 37's default instances share host resources, and its Performance type runs on dedicated cores.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Sprites 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 | Sprites, 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 | $23 · Pay-as-you-go | $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 | $92 · Pay-as-you-go | $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 | $1,120 · Pay-as-you-go | $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 | $314 · 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 | $1,134 · Pay-as-you-go · with limits | $73 · Wallet ($250 lifetime top-ups) · with limits | $2,000 · $2000/mo · with limits |
Sprites: Sprites bills CPU time at $0.0385 per CPU-hour and actual memory at $0.021875 per GB-hour, only while awake, plus storage on the bytes you write. Optional plans add fixed resource allowances that are not credit.
Agent 37: Agent 37 uses 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 asleep. Performance compute costs 4x and VM compute 2.5x.
Agent 37: Plans start at $20 a month, all of it usage credit, billed per second for the size you pick while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Sprites does not publish how many machines run at once on pay as you go, so 300 sandboxes for your users and 1,000 jobs at once are not confirmed, and an always-on agent needs a task hold renewed every hour. Agent 37 caps instances at 200 on its top self-serve tier, counting sleeping and stopped ones, so neither the 300 nor the 1,000 scenario fits; 50 agents in parallel need Docker and are priced on its VM type. boat has no session cap on paid plans, but at 1,000 short jobs at once its start limits stop it too.
| Scenario | Sprites | Agent 37 | boat |
|---|---|---|---|
| One coding agent, workdays | None that bite |
| None that bite |
| One agent that never stops | None that bite |
| 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 Sprites when
your agents sit idle most of the day, should bill only for CPU they really use, and need a domain allowlist on outbound traffic.
- Bills only what it really uses. For agents that idle between bursts, a Sprite bills measured CPU time and memory, and wakes in under a second.
- Egress allowlist and API connectors. For teams that want to fence an agent in, Sprites limits outbound domains and which API paths a stored token can call.
- Docker in every machine. Each Sprite can run Docker without picking a special type, and plugs into Claude Managed Agents and Cursor Cloud Agents.
Use Agent 37 when
you host one mostly idle assistant per customer in the US, want your own Docker image, and want the lowest bill for sleeping machines.
- Built for one assistant per customer. For products that give each user an agent, Agent 37 sleeps an instance with its memory kept and wakes it on the next message.
- Your own image, your own size. Agent 37 builds templates from your Docker image, lets you pick the shape, and sells dedicated cores on its Performance type.
- Low reserved rates, in the US. For mostly idle machines close to US users, Agent 37's per-minute rates come out lowest in most scenarios we priced.
Where boat fits
Sprites and Agent 37 are both tuned for machines that sleep most of the day. If your agents work for hours, installing, building, running Docker and services, testing in a browser, boat gives each one a full VM that stays up, can be forked while it runs, and is driven from outside.
A full Linux server, every time
Neither runs systemd, so services need rewriting. Docker on a Sprite has capability limits, and on Agent 37 it needs the VM type at 2.5x compute. boat has systemd, Docker and /dev/kvm in every sandbox.
Fork a running machine
Both restore checkpoints or backups in place only, so trying two fixes from one half-done state means rebuilding the second machine from scratch. boat copies a running sandbox into a new one.
A screen, ports and agents you drive
A Sprite is headless with one public HTTP port, and Agent 37's desktop needs a template build. boat streams a 60fps desktop, serves 50 HTTPS ports and raw TCP, and drives agents inside from outside through one API.
Use boat when your agents work for hours on a full VM: systemd, Docker and emulators, a 60fps desktop, many ports, forks of running machines and agents you drive from outside. Compare it one to one: boat vs Sprites and boat vs Agent 37.
Questions people ask
Is Sprites cheaper than Agent 37?
No, in every scenario we priced Agent 37 comes out lower. One coding agent on workdays is $23 a month on Sprites and $6 on Agent 37, one agent that never stops is $92 versus $12, and 50 agents in parallel are $1,120 versus $329. Sprites bills real CPU use, so a mostly idle workload can cost less than these estimates.
Which is faster, Sprites or Agent 37?
There is no comparable measurement: neither is in the hpc-sandbox-benchmarks results we use. A Sprite always has 8 vCPU, while Agent 37 shares cores by default and sells dedicated cores on its Performance type. boat did 26.69 runs per second on that benchmark.
Can Sprites and Agent 37 run Docker?
Sprites runs Docker inside each machine, though users report that docker exec fails for containers whose main process is not root. Agent 37 runs Docker only on its VM type, at 2.5x the compute rate. boat runs Docker in every sandbox.
Is Sprites a VM and Agent 37 a container?
Each Sprite is a Firecracker microVM with its own kernel. Agent 37's default is a container enforced by gVisor, with a full VM type you can ask for instead. Every boat sandbox is a full VM.
Can I SSH into Sprites or Agent 37?
On Sprites you install an SSH server yourself and tunnel it through the sprite proxy CLI. Agent 37 offers SSH through a WebSocket tunnel, with no public IP. boat sandboxes have SSH, raw TCP and a dedicated IP.
Where do Sprites and Agent 37 run?
Sprites does not let you choose a region, and 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.
Try boat
Install the CLI, then run boat new.
7-day free trial