Sprites vs Unikraft Cloud

Both run each workload in its own Firecracker microVM that sleeps when idle. Sprites gives each agent a ready Ubuntu computer with a 100 GB disk and bills the CPU and memory it really uses, while Unikraft Cloud turns your Dockerfile into a tiny VM that wakes in milliseconds, sold as flat plans that cap how much can run at once.

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.

Unikraft Cloud

Unikraft Cloud is a microVM cloud from Unikraft Inc. that runs any Dockerfile-based workload as a minimal Linux microVM with millisecond cold starts and scale-to-zero.

Your Dockerfile becomes the VM image at build time, and each instance runs on a heavily customized Firecracker VMM, so it boots in milliseconds and can go into standby when no traffic arrives. It is a general compute platform built for dense, bursty work such as HTTP services, headless browsers and agent fleets, sold as flat self-serve plans plus Enterprise dedicated hosts, on-prem and bring your own cloud. It is not a dev machine you log into: instances are reached through services, the CLI and a sandbox plugin for commands and files.

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 rankUnikraft Cloud: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Sprites gives an agent a ready Ubuntu machine with Docker and a 100 GB disk, while Unikraft builds your Dockerfile into the VM and documents no container runtime inside; boat adds systemd and /dev/kvm on top.
66th of 367, with limits
$546 a month
Can't run it3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An always-on assistant drops its open connections on every Sprite pause, and on Unikraft it shares a Team pool of 8 GiB with every other running instance; boat just keeps the machine running.
157th of 366, with limits
$1,166 a month
Can't run it5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Short code runs suit both: Sprites bills only real CPU and memory while awake, and Unikraft wakes in milliseconds, though its self-serve plans stop at 24 running instances.
93rd of 345, with limits
$140 a month
Can't run it186th 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
Neither fits 300 user sandboxes at once as published: Sprites does not confirm that many running, and Unikraft Pro runs 24, so you need a plan or contract from sales.
56th of 361, with limits
$428 a month
Can't run itCheapest 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
Can't run it34th 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
Can't run it10th 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 builds Android apps or VM images needs /dev/kvm: the Sprites docs do not mention it, Unikraft keeps it for Enterprise, and boat has it on every plan.
63rd cheapest of 377
$476 a month
Can't run it4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
For a 24/7 dev box, Sprites comes to $27 a month and Unikraft to $39, but neither offers direct SSH; boat comes to $26 with SSH and systemd.
213th of 368, with limits
$27 a month
219th of 368, with limits
$39 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
Both are headless, so a computer-use agent needs a display and browser you build yourself; boat streams a 60fps desktop with Chromium.
85th of 369, with limits
$136 a month
Can't run it6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
Teams run their own headless Chrome on Unikraft at scale, and on Sprites you install one yourself; boat ships Chromium on a desktop you can watch.
171st of 367, with limits
$122 a month
Can't run it7th 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
Can't run it6th 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
Can't run it71st 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
Can't run it2nd 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

FeatureSpritesUnikraft Cloudboat
IsolationFirecracker microVM with its own kernelMinimal Linux microVM on a customized Firecracker VMM; full VMs on EnterpriseFull 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 platformPlan pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB per sandbox on the $100 plan and above
ImageOne managed Ubuntu image; you install on top of itYour Dockerfile becomes the VM imageFull Ubuntu machine you install on; named snapshots to start new sandboxes from
Docker and systemd insideRoot and Docker (with rough edges users report); no systemdRuns as root; no container runtime inside documentedRoot, Docker and systemd, like any Ubuntu machine
Nested virtualizationNo /dev/kvm in the docsYes, with a per-instance flag, Enterprise onlyYes, /dev/kvm for Android emulators and VMs on every plan
SSHOnly through the sprite proxy CLI, with an SSH server you installNot yet; commands and files go through the sandbox plugin and CLIYes, into every sandbox
Idle and wakePauses about 30 seconds after activity stops; wakes on the next request in 100 to 500 ms with memoryStandby after a 1 second idle cooldown by default; wakes on traffic in milliseconds with memory restoredRuns until you stop it or its time to live ends; a stopped sandbox costs nothing and starts again by API
Fork and checkpointsFilesystem checkpoints that restore in place; no forkCheckpoint memory and volumes of a running microVM, then start new instances from itFork a running sandbox with its disk; disk saved every minute and on stop
Inbound accessOne HTTPS URL to one HTTP port; other ports only through the sprite proxy CLIServices on its load balancer: HTTP, HTTPS and TLS-wrapped TCP; no public IP per instanceHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6
Outbound rulesDNS-based domain allowlist set from outside; private IPs always blockedNetwork shield filters traffic, Enterprise only, limited accessOpen internet, no provider-side allowlist
Keeping API keys out of the sandboxConnectors gateway holds the token for any HTTP API, with path allow and block listsNetwork shield can inject secrets, Enterprise only, limited accessCredentials proxy for model providers and any HTTPS API on every plan; switch to another account when credits run out
Coding agentsClaude Code, Codex, Gemini CLI and Cursor preinstalled, run through exec or a consoleNone preinstalled; you bring the agent in your own imageSeven agents preinstalled, with a prompt, steer and events API to drive them from outside
Desktop and browserHeadless; no desktop or browser productNone built in; you can run your own headless browser60fps desktop and Chromium, computer use and browser control
RegionsRegion not selectableDallas, Frankfurt, San Francisco, Singapore and Washington DC, more on requestEU only (Germany, Finland, France), with EU data residency
Every feature Battleships tracks (43)
FeatureSpritesUnikraft Cloudboat
Full VM (own kernel)YesYesYes
Docker insideYesNoYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNoNot publishedYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHNoNoYes
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 inboundNoNot publishedYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsYesNoYes
Agent harness APINoNoYes
MCP serverYesNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoYesNo
BYOCNoYesNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedYesNo
SSOYesNoNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyNoYesYes
Zero data retentionNot publishedNot publishedYes

Performance

SpritesNot measured
Unikraft CloudNot measured
boat26.69 runs/s

There is no comparable measurement for Sprites or Unikraft Cloud: neither is in the hpc-sandbox-benchmarks results we use. boat did 26.69 runs per second on the Node.js build-and-test test at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. Unikraft states cold starts under 10 ms and Sprites states wakes of 100 to 500 ms, but those measure start time, not CPU speed.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Sprites and Unikraft Cloud 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.

ScenarioSprites, a monthUnikraft Cloud, 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$39 · Hobby$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$39 · Hobby$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-goCan't run it$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 limitsCan't run it$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 limitsCan't run it$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 the Sprite is awake, plus storage on the bytes you write. Optional plans add fixed CPU-hour, memory-hour and storage allowances, and usage above them bills at the normal rates.

Unikraft Cloud: Unikraft charges a flat monthly fee for a pool of running capacity: free for 2 vCPU / 4 GiB, $39 for 8 vCPU / 8 GiB and $199 for 24 vCPU / 32 GiB, with sleeping instances not counted. It publishes no per-hour rate, so anything bigger is an Enterprise quote.

Unikraft Cloud: 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

Unikraft's limits are pools that every running instance shares: one 4 vCPU / 8 GB agent fills the Team plan, so 50 agents, 300 user sandboxes and 1,000 short jobs fit no self-serve plan. Sprites does not publish how many machines can run at once on pay as you go, so 300 user sandboxes and 1,000 jobs at once are not confirmed, and an always-on agent needs a task hold renewed every hour. boat has no session cap on paid plans, but at 1,000 short jobs at once even its $2,000 plan queues starts above 90 a minute.

ScenarioSpritesUnikraft Cloudboat
One coding agent, workdaysNone that bite
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
None that bite
One agent that never stopsNone that bite
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
None 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)
  • no pool tier with 200 vCPU / 400 GiB for 50 VMs
  • no published per-resource rate
None that bite
Sandboxes for your users
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
  • no pool tier with 600 vCPU / 1,200 GiB for 300 VMs
  • no published per-resource rate
None 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)
  • no pool tier with 2,000 vCPU / 4,000 GiB for 1,000 VMs
  • no published per-resource rate
  • 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

you want a ready Ubuntu computer for a coding agent that sits idle much of the day, billed only for what it uses, with a domain allowlist on self-serve plans.

  • A ready computer for coding agents. Each Sprite is an Ubuntu machine with a 100 GB disk and Claude Code, Codex, Gemini CLI and Cursor already installed.
  • Billed by real use. Sprites bills the CPU time and memory a machine actually uses while awake, so a mostly idle agent costs little.
  • Egress allowlist and connectors, self-serve. Teams that must limit where agents connect get a domain allowlist and API path rules without an Enterprise contract.

Use Unikraft Cloud when

you run many small services or headless browsers from a Dockerfile that must wake in milliseconds, need US or Asia regions, or want GPUs or on-prem under Enterprise.

  • Millisecond starts from your Dockerfile. Best for many small services built from a Dockerfile that sleep most of the time and must answer in milliseconds.
  • Checkpoints you can start new instances from. Unikraft can checkpoint a running microVM's memory and start new instances from it, with warm caches.
  • Regions, GPUs and your own hardware. Unikraft runs in the US, Frankfurt and Singapore, and Enterprise adds GPUs, arm64, on-prem or your own cloud.

Where boat fits

Sprites and Unikraft Cloud are both built around machines that sleep most of the time. If your agents work for hours, run Docker and emulators, need a screen, or run as fleets of 50 or more, look at boat: each sandbox is a full VM that keeps running until you stop it.

A full machine with systemd and /dev/kvm

Sprites has no systemd and no /dev/kvm in its docs, and Unikraft documents no container runtime inside and keeps nested virtualization for Enterprise. On either, Android emulators and stacks built on systemd units need rework or a sales contract.

Agents that keep working, and fleets that fit

A Sprite drops open connections on every pause unless a task hold, renewed each hour, keeps it awake. Unikraft's biggest self-serve pool runs 24 instances, so 50 agents at 4 vCPU / 8 GB need an Enterprise quote. boat runs them with no session cap.

A desktop, SSH and agents driven from outside

Both are headless and neither offers direct SSH, so you build a display, browser and stream yourself and write the code that starts and watches each agent. boat has a 60fps desktop, SSH, 50 HTTPS ports and an API to drive agents inside.

Use boat when your agents need a full machine for hours: Docker, systemd, emulators, SSH, a desktop and browser, forks, and fleets of full-size sandboxes without a sales call. Compare it one to one: boat vs Sprites and boat vs Unikraft Cloud.

Questions people ask

Is Sprites cheaper than Unikraft Cloud?

For one coding agent on workdays, yes: $23 a month on Sprites against the $39 Team pool on Unikraft. For one agent that never stops, Unikraft's flat $39 beats $92 on Sprites. For 50 agents in parallel, Sprites comes to $1,120 and no self-serve Unikraft plan fits; boat comes to $20, $26 and $317 for the same three.

Which one is faster?

Unikraft starts faster: it states cold starts under 10 ms, while a Sprite wakes in 100 to 500 ms. Neither has a CPU speed measurement we can compare. boat did 26.69 runs per second on our Node.js test at 4 vCPU / 8 GB.

Can Sprites or Unikraft Cloud run Docker?

Users run Docker inside Sprites, though some containers hit capability limits, and Sprites does not run systemd. Unikraft uses your Dockerfile to build the VM itself and does not document a container runtime inside. A boat sandbox runs Docker, systemd and /dev/kvm.

Can I SSH into Sprites or Unikraft Cloud?

Not directly. On Sprites you install an SSH server and tunnel it through the sprite proxy CLI, and Unikraft lists SSH as coming soon, with commands going through its sandbox plugin and CLI today. Every boat sandbox has SSH, raw TCP and a dedicated IP.

Which one keeps an agent running all day?

Neither by default. A Sprite pauses about 30 seconds after activity stops unless a task hold keeps it awake for up to an hour at a time, and Unikraft puts idle instances into standby. A boat sandbox keeps running until you stop it.

Where do they run?

Sprites does not let you choose a region. Unikraft runs in Dallas, Frankfurt, San Francisco, Singapore and Washington DC, with more on request. boat runs only in the EU, in Germany, Finland and France.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons