Sprites vs Freestyle
Sprites gives each agent a fixed 8 vCPU Firecracker microVM that sleeps about 30 seconds after work stops and bills only the CPU and memory it really uses. Freestyle gives each agent a full KVM machine with systemd, Docker and nested virtualization, which can pause with its memory, fork while running and wake on the next request, but bills the vCPU and RAM you allocate, busy or idle.
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
Freestyle
Freestyle sells full Linux virtual machines for AI agents, built for long running, complex tasks.
Each Freestyle VM is a KVM virtual machine with its own kernel, booted from an Ubuntu base snapshot with systemd, Docker and coding agent CLIs preinstalled. VMs can be paused with their memory, snapshotted while running, forked and woken by the next request, and every VM starts behind a default-deny firewall. It is built for teams that give each agent or each user its own machine, driven from a TypeScript SDK, a CLI or an API.
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 | Freestyle: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Full-stack builds often need systemd and /dev/kvm, which Freestyle and boat have and Sprites does not; boat adds faster CPUs and 50 HTTPS ports. | 66th of 367, with limits $546 a month | 241st of 367, with limits $3,311 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 157th of 366, with limits $1,166 a month | 263rd of 366, with limits $4,195 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 fit short code runs: Sprites sleeps and bills only real use, while Freestyle pauses with memory and resumes the same processes. | 93rd of 345, with limits $140 a month | 40th cheapest of 345 $482 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 Freestyle Pro allows 400 VMs at once, while Sprites does not publish a cap for pay as you go, so 300 user sandboxes at once are not confirmed there. | 56th of 361, with limits $428 a month | 16th cheapest of 361 $1,358 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 Freestyle can snapshot a running VM with its memory and boot copies from it; Sprites has no fork, so each rollout starts from a checkpoint restore. | 105th of 360, with limits $6,540 a month | 107th of 360, with limits $6,600 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 | 53rd cheapest of 364 $1,046 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 Sprites bills only CPU it really uses, which suits bursty CI; Freestyle's docs say CPU-heavy jobs are better served elsewhere, and boat did 2.8 times Freestyle's CPU work. | 63rd cheapest of 377 $476 a month | 168th of 377, with limits $625 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A 24/7 dev box wants SSH and systemd: Freestyle and boat have both, while Sprites tunnels SSH through its CLI and does not run systemd. | 213th of 368, with limits $27 a month | 98th cheapest of 368 $151 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 Neither Sprites nor Freestyle ships a desktop; boat streams a 60fps desktop with Chromium and computer use built in. | 85th of 369, with limits $136 a month | 234th of 369, with limits $940 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 On Sprites you run a headless browser yourself and Freestyle has guides to install Chromium and a display; boat has Chromium on a desktop you can watch. | 171st of 367, with limits $122 a month | 257th of 367, with limits $482 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 | 278th of 346, with limits $482 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 | 183rd of 338, with limits $6,560 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 | 210th of 360, with limits $223 a month | 272nd of 360, with limits $482 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 | Freestyle | boat |
|---|---|---|---|
| Isolation | Firecracker microVM with its own kernel | Full KVM VM with its own kernel | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Machine size | Fixed 8 vCPU and 100 GB disk; memory managed and scaled by the platform | Up to 4 vCPU / 8 GiB on Free, 32 / 64 on Pro, 64 / 128 with custom limits | You choose; up to 16 vCPU / 32 GB on the $100 plan and above |
| Inside the machine | Root and Docker (with rough edges users report); no systemd, no /dev/kvm in the docs | Root, systemd as pid 1, Docker from boot, full KVM support | Root, Docker, systemd and /dev/kvm for emulators and VMs |
| CPU benchmark (4 vCPU / 8 GB) | Not measured | 9.64 runs/s | 26.69 runs/s |
| Idle behavior | Pauses about 30 seconds after activity stops; wakes on the next request in 100 to 500 ms | No idle timeout unless you set one; a VM paused by idle timeout wakes on the next traffic | Runs until you stop it or its time to live ends; a stopped sandbox costs nothing |
| Pause with memory | Yes on a warm pause; processes are still in memory when it wakes | Yes; pause saves memory and disk and the same processes resume | No; disk saved every minute and on stop, resume boots again |
| Fork | No fork; checkpoints restore in place | Clone a running VM without pausing it; snapshots capture memory and disk | Fork a running sandbox with its disk into a new one |
| Reaching the sandbox | One HTTPS URL to one HTTP port; other ports and SSH only through the sprite proxy CLI | HTTPS on style.dev names or your own domain, forward auth, SSH and other public protocols | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6; SSH |
| Outbound rules | Optional DNS-based domain allowlist; private IPs always blocked | Default-deny firewall with allow rules by IP, VM, VPC or exact domain | Open internet, no provider-side allowlist |
| Keeping keys out of the sandbox | Connectors gateway holds tokens for any HTTP API, with path allow and block lists | Credentials injected at the edge for HTTPS headers, Postgres and S3 | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Coding agents | Claude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec or a console | claude, codex, opencode and openclaw preinstalled, run through exec or a terminal | Seven agents preinstalled, with a prompt, steer and events API to drive them from outside |
| Desktop and browser | Headless; no desktop or browser product | Guides to install GNOME or Xvfb, VNC and Chromium yourself | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Idle billing | Bills only CPU and memory actually used while awake, plus storage | Bills allocated vCPU, RAM and disk while running; a paused VM bills for storage | Per second while running; a stopped sandbox costs nothing and keeps its disk |
| Regions | Not selectable | Not listed; the docs name a San Jose, US data center | EU only (Germany, Finland, France), with EU data residency |
Every feature Battleships tracks (43)
| Feature | Sprites | Freestyle | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | No | Yes | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | 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 | Yes | 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 | Yes | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | Yes | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | Yes | 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 | Yes | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Not published | No |
| HIPAA | Yes | Not published | No |
| EU data residency | No | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
Freestyle did 9.64 runs per second on the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, and boat did 26.69, about 2.8 times as much CPU work in the same time. Sprites has no comparable measurement: it is not in those results, and a Sprite always has 8 vCPU, so a fair test would need a matching shape.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Sprites 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 | Sprites, a month | Freestyle, 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 | $27 · Free | $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 | $159 · Free | $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 | $2,139 · Pro | $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 | $581 · Pro | $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 | $1,305 · Pro · with limits | $2,000 · $2000/mo · with limits |
Sprites: Sprites bills CPU time actually used at $0.0385 per CPU-hour and actual memory at $0.021875 per GB-hour, only while the Sprite is awake, plus storage on the bytes you write. Optional plans such as Hero at $100 a month buy fixed CPU, memory and storage allowances that are not credit.
Freestyle: Freestyle bills per second for the vCPU, RAM and disk allocated to a VM, busy or idle, after monthly allowances of 200 vCPU-hours, 400 GiB-hours of RAM and 60,000 GiB-hours of storage. On Free those allowances are hard stops; Hobby and Pro set a $50 or $500 monthly minimum that counts as usage.
Freestyle: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Sprites does not publish how many Sprites can run at once on pay as you go, so 300 sandboxes for your users and 1,000 jobs at once are not confirmed; its optional plans list running caps. Freestyle Pro allows 400 concurrent VMs, so it fits 300 user sandboxes but not 1,000 jobs at once, and on Free the monthly allowances are hard stops. A Sprite stays billed only while something keeps it awake, and open connections drop on every pause, while a Freestyle VM bills until you pause it or set an idle timeout. boat has no session cap on paid plans, but at 1,000 short jobs at once even the $2,000 plan queues starts above 90 a minute.
| Scenario | Sprites | Freestyle | boat |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops | None that bite | None that bite | None that bite |
| 50 agents in parallel |
| None that bite | 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 Sprites when
your agents or apps sit idle most of the day and should wake on a request, and you want to pay only for the CPU and memory they really use.
- Pay only for real use. For agents that sit idle most of the day: a Sprite sleeps after about 30 seconds and bills only the CPU and memory it really used.
- Wakes on the next request. For apps and agents reached over HTTPS: a sleeping Sprite wakes on the next request in 100 to 500 ms.
- Plugs into agent platforms. For teams on Claude Managed Agents or Cursor Cloud Agents: Sprites can be the machine behind them, with a remote MCP server.
Use Freestyle when
you need a full Linux machine with systemd and KVM that can pause with its memory, fork while running and start behind a default-deny firewall.
- A full Linux machine. For stacks that expect a normal server: Freestyle runs systemd as pid 1, Docker from boot and nested virtualization.
- Memory pause and live fork. For branching work: Freestyle can clone a running VM without pausing it and resume paused VMs with the same processes.
- Strict network controls and big VMs. For locked-down agents: every VM starts with no network access, and Pro VMs go up to 32 vCPU / 64 GiB.
Where boat fits
If your agents do real work for hours, such as installs, builds, tests and browsing, look at boat. It gives each agent a full machine like Freestyle does, on CPUs that did 2.8 times Freestyle's work in our benchmark, and adds a desktop, a browser and an API to drive the agents inside from outside, which neither Sprites nor Freestyle has.
Fast CPUs on a full machine
Sprites has no systemd or /dev/kvm in its docs, so emulators and service stacks need rework. Freestyle has both, but did 9.64 runs/s against boat's 26.69, so every build and test waits almost three times as long.
A desktop and browser, ready
Sprites is headless, and on Freestyle you install GNOME or Xvfb, VNC and Chromium into your own snapshot and build the screenshot and click layer yourself. boat streams a 60fps desktop with Chromium and computer use in every sandbox.
Agents you drive from outside
Both preinstall coding agent CLIs, but you start them through exec and parse their output yourself. boat has an API to prompt, steer and follow the agents inside, and its credentials proxy switches to another account when credits run out.
Use boat when your agents need a full machine for hours on fast CPUs, with Docker, emulators, many ports, a desktop and browser, forks, and an API to drive the agents inside from outside. Compare it one to one: boat vs Sprites and boat vs Freestyle.
Questions people ask
Is Sprites cheaper than Freestyle?
In all five scenarios we priced, Sprites comes out lower: one agent that never stops is $92 a month on Sprites against $159 on Freestyle, and 50 agents in parallel are $1,120 against $2,139. boat is lower than both in four of the five, at $26 and $317 a month for those two. Sprites bills real CPU use, so a mostly idle workload can cost even less there.
Which is faster, Sprites or Freestyle?
Freestyle did 9.64 runs per second on the hpc-sandbox-benchmarks CPU test at 4 vCPU / 8 GB. Sprites has no comparable result. boat did 26.69 on the same test, about 2.8 times Freestyle.
Can Sprites and Freestyle run Docker and systemd?
Freestyle runs systemd as pid 1, Docker from boot and full KVM, so emulators work. Sprites runs Docker, with rough edges users report, but its docs say Sprites don't run systemd and do not mention /dev/kvm. boat runs Docker, systemd and /dev/kvm in every sandbox.
Do Sprites and Freestyle stop when idle?
A Sprite pauses about 30 seconds after activity stops and wakes on the next request. A Freestyle VM has no idle timeout unless you set one, so it bills until you pause it, and a VM paused by idle timeout wakes on the next traffic. A boat sandbox runs until you stop it.
Can I fork a running sandbox on Sprites or Freestyle?
Freestyle can clone a running VM without pausing it and snapshot memory and disk. Sprites has no fork; its checkpoints restore the disk in place. boat can fork a running sandbox with its disk into a new one.
Where do Sprites and Freestyle run?
Sprites does not let you choose a region, and Freestyle does not list regions; its docs name a San Jose, US data center. 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