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.

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 workloadSprites: price rankFreestyle: price rankboat: 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 itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureSpritesFreestyleboat
IsolationFirecracker microVM with its own kernelFull KVM VM with its own kernelFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Machine sizeFixed 8 vCPU and 100 GB disk; memory managed and scaled by the platformUp to 4 vCPU / 8 GiB on Free, 32 / 64 on Pro, 64 / 128 with custom limitsYou choose; up to 16 vCPU / 32 GB on the $100 plan and above
Inside the machineRoot and Docker (with rough edges users report); no systemd, no /dev/kvm in the docsRoot, systemd as pid 1, Docker from boot, full KVM supportRoot, Docker, systemd and /dev/kvm for emulators and VMs
CPU benchmark (4 vCPU / 8 GB)Not measured9.64 runs/s26.69 runs/s
Idle behaviorPauses about 30 seconds after activity stops; wakes on the next request in 100 to 500 msNo idle timeout unless you set one; a VM paused by idle timeout wakes on the next trafficRuns until you stop it or its time to live ends; a stopped sandbox costs nothing
Pause with memoryYes on a warm pause; processes are still in memory when it wakesYes; pause saves memory and disk and the same processes resumeNo; disk saved every minute and on stop, resume boots again
ForkNo fork; checkpoints restore in placeClone a running VM without pausing it; snapshots capture memory and diskFork a running sandbox with its disk into a new one
Reaching the sandboxOne HTTPS URL to one HTTP port; other ports and SSH only through the sprite proxy CLIHTTPS on style.dev names or your own domain, forward auth, SSH and other public protocolsHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6; SSH
Outbound rulesOptional DNS-based domain allowlist; private IPs always blockedDefault-deny firewall with allow rules by IP, VM, VPC or exact domainOpen internet, no provider-side allowlist
Keeping keys out of the sandboxConnectors gateway holds tokens for any HTTP API, with path allow and block listsCredentials injected at the edge for HTTPS headers, Postgres and S3Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Coding agentsClaude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec or a consoleclaude, codex, opencode and openclaw preinstalled, run through exec or a terminalSeven agents preinstalled, with a prompt, steer and events API to drive them from outside
Desktop and browserHeadless; no desktop or browser productGuides to install GNOME or Xvfb, VNC and Chromium yourself60fps desktop and Chromium, computer use and browser control, embeddable stream
Idle billingBills only CPU and memory actually used while awake, plus storageBills allocated vCPU, RAM and disk while running; a paused VM bills for storagePer second while running; a stopped sandbox costs nothing and keeps its disk
RegionsNot selectableNot listed; the docs name a San Jose, US data centerEU only (Germany, Finland, France), with EU data residency
Every feature Battleships tracks (43)
FeatureSpritesFreestyleboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNoYesYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHNoYesYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsYesYesYes
Fork/cloneNoYesYes
Live fork (no pause)NoYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoYesYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsYesYesYes
Agent harness APINoNoYes
MCP serverYesNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoNoNo
Self-hostingNoNoNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedYesYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedYesNo
SSOYesYesNo
SOC 2YesNot publishedNo
HIPAAYesNot publishedNo
EU data residencyNoNoYes
Zero data retentionNot publishedNot publishedYes

Performance

SpritesNot measured
Freestyle9.64 runs/s
boat26.69 runs/s

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.

ScenarioSprites, a monthFreestyle, a monthboat, 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.

ScenarioSpritesFreestyleboat
One coding agent, workdaysNone that biteNone that biteNone that bite
One agent that never stopsNone that biteNone that biteNone that bite
50 agents in parallel
  • how many machines can run at once: limit not published, probably fine at 50 (the typical published limit is 50)
None that biteNone that bite
Sandboxes for your users
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
None that biteNone that bite
1,000 short jobs at once
  • not confirmed: how many machines can run at once (you need 1,000; the typical published limit is 50)
  • Pro: max 400 concurrent
  • shared vCPUs on this tier”): heavy, sustained CPU use can be slowed by other tenants
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

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

More comparisons