Fly.io Machines vs Unikraft Cloud

Both run your Docker image as a Firecracker microVM. Fly.io Machines are the building block of an app platform in 17 regions, billed per second, while Unikraft Cloud turns a Dockerfile into a tiny microVM that wakes in milliseconds and sleeps when traffic stops, sold as flat pools of running capacity.

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.

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. “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 workloadFly.io Machines: price rankUnikraft Cloud: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory runs Docker and test suites inside the sandbox; Fly lets you install Docker yourself, while Unikraft documents no container runtime inside an instance.
92nd of 367, with limits
$836 a month
Can't run it3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
125th of 366, with limits
$816 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: Fly bills per second with no plan fee, and Unikraft sleeps instances between calls, though its self-serve plans stop at 24 running instances.
75th of 345, with limits
$94 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
Fly can host one VM per user but creates about one Machine per second per app; Unikraft Pro runs only 24 instances at once, so hundreds of users need Enterprise.
69th of 361, with limits
$600 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
48th of 360, with limits
$2,838 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
117th of 364, with limits
$457 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 keeps the CPU busy, which drains a shared Fly vCPU's burst balance, and Unikraft's 8 vCPU Team pool is shared by every running job.
152nd of 377, with limits
$288 a month
Can't run it4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
All three can keep one box around all month: about $53 a month on Fly with a 1-year reservation, $39 for Unikraft's Team pool, and $26 on boat, which keeps the whole disk.
118th of 368, with limits
$53 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
Neither Fly nor Unikraft ships a desktop, so you build and stream one yourself; boat gives each machine a 60fps desktop with Chromium and computer use.
95th of 369, with limits
$173 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
160th of 367, with limits
$90 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
161st of 346, with limits
$67 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
Fly ranks well here because it can spread scrapers over 17 regions and bill only the seconds they run; Unikraft's self-serve pools are too small for this scale.
44th of 338, with limits
$1,232 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
118th of 360, with limits
$63 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

FeatureFly.io MachinesUnikraft Cloudboat
Running capacityBilled per Machine, no plan pool; the API creates about one Machine per second per appPlan pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB100 to 2,000 sandboxes at once on paid plans, up to 16 vCPU / 32 GB each
CPUShared vCPUs guarantee 6.25% of a core plus bursts; performance vCPUs get the full core at a higher ratevCPUs come from the plan pool; no CPU class publishedOne CPU class on every plan, with no baseline quota or burst balance
Docker, systemd and rootRoot and Docker you install yourself; Fly's own init, no systemdRuns as root; the Dockerfile becomes the VM image, with no container runtime inside documentedDocker, systemd and root ready, like any Ubuntu machine
Nested virtualization/dev/kvm not offeredYes, with a per-instance flag and permission, Enterprise only/dev/kvm for Android emulators and VMs on every plan
SSHYesNot yet; commands and files go through the sandbox plugin and CLIYes, into every sandbox
Files after a stopRoot file system is ephemeral; one Volume per Machine, billed for its full size around the clockStandby keeps the instance, with standby storage capped by plan (8 GiB, 15 GiB or 1 TiB)The whole disk is kept, with snapshots every minute and on stop; a stopped sandbox costs nothing
Idle and wake on requestFly Proxy stops or suspends idle Machines and wakes them on a request; memory kept only up to 2GBStandby after a 1 second idle cooldown by default, wakes in milliseconds, stateful mode keeps memoryNo wake on request; you start a stopped sandbox through the API and it boots from disk
Fork and checkpointsClone copies a Machine's config; a cloned Volume starts emptyCheckpoint memory and volumes of a running microVM, then start new instances from itFork a running sandbox with its disk; snapshots every minute
Desktop and computer useNone built in; you add a desktop and browser to your own imageNone built in; you can run your own headless browser from a Dockerfile60fps desktop with Chromium, computer use and browser control
Coding agentsNone built in; you install and run agents yourselfNone preinstalled; you bring the agent in your own imageClaude Code, Codex and more preinstalled, with a prompt, steer and events API
Keeping API keys out of the sandboxSecrets arrive as environment variables; Fly's open-source tokenizer proxy can be deployed yourselfNetwork shield can inject secrets into traffic, Enterprise only, limited accessAI credentials proxy for model providers and any HTTPS API on every plan
Inbound accessHTTPS and TCP through Fly Proxy, Anycast IPs, custom domains, private networkLoad balancer services: HTTP on 80, HTTPS on 443, TLS-wrapped TCP on other ports; no public IP per instanceHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6
Outbound rulesNetwork policies allow chosen ports and protocols and deny the restNetwork shield filters traffic, Enterprise only, limited accessOpen internet, no provider-side allowlist
Regions17 regions on six continentsDallas, Frankfurt, San Francisco, Singapore and Washington DC, more on requestEU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureFly.io MachinesUnikraft Cloudboat
Full VM (own kernel)YesYesYes
Docker insideYesNoYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNoNot publishedYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHYesNoYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsYesYesYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundYesNot publishedYes
Public IPv4YesNoNo
Egress allowlistYesYesNo
Secret proxyNoYesYes
Secret proxy for any APINoYesYes
Preinstalled agentsNoNoYes
Agent harness APINoNoYes
MCP serverYesNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoYesNo
BYOCNoYesNo
Open sourceYesNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNoNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedYesNo
SSONoNoNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Fly.io MachinesNot measured
Unikraft CloudNot measured
boat26.69 runs/s

There is no comparable CPU measurement for either: Fly.io Machines and Unikraft Cloud were not in the public StarSling run where boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. Unikraft states cold starts under 10 ms, which measures start time, not CPU speed, and Fly results would depend on whether you pick shared or performance vCPUs.

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 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.

ScenarioFly.io Machines, 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
$15 · Pay As You Go · with limits$39 · Hobby$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$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
$487 · Pay As You Go · with limitsCan'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
$110 · 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
$232 · Pay As You Go · with limitsCan't run it$2,000 · $2000/mo · with limits

Fly.io Machines: Fly bills each Machine per second while it runs, by CPU preset and memory, with no plan fee; stopped Machines pay for their root file system and Volumes bill for their full size all month. The table uses shared vCPUs on a 1-year reservation for 40% off.

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, $199 for 24 vCPU / 32 GiB, with sleeping instances not counted. It publishes no per-hour or egress rate, so anything bigger is an Enterprise quote.

Unikraft Cloud: Plans start at $20 a month, and the whole fee is usage credit spent per second while sandboxes run. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Fly is marked a compromise in every scenario because its lowest figures need a 1-year commitment and use shared vCPUs that guarantee only 6.25% of each core, so long builds get throttled. Unikraft fits only the one-agent scenarios, where a single 4 vCPU / 8 GB agent fills the $39 Team pool; 50 agents, user sandboxes and 1,000 short jobs exceed every self-serve pool. boat fits all but the burst, where starts per minute and per day queue jobs even on the $2,000 plan.

ScenarioFly.io MachinesUnikraft Cloudboat
One coding agent, workdays
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • 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 stops
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • 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
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • no pool tier with 200 vCPU / 400 GiB for 50 VMs
  • no published per-resource rate
None that bite
Sandboxes for your users
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • 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
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • 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 Fly.io Machines when

you host web apps or services that must run near users in many regions, scale past a few machines on per-second billing, and need network policies and private networking.

  • 17 regions worldwide. For apps near users everywhere: Fly runs Machines in 17 regions, from the US to Sydney and Johannesburg.
  • Per-second billing with no pool. For teams that grow past a few machines: Fly bills each Machine per second with no plan fee or shared capacity cap.
  • A full app platform. For hosting whole products: network policies, private networking, Anycast IPs and custom domains come on self-serve.

Use Unikraft Cloud when

you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, or want GPUs, on-prem or your own cloud under Enterprise.

  • Millisecond starts and scale-to-zero. For many small services that sleep most of the time: instances go to standby after a second and wake in milliseconds.
  • Memory checkpoints. For fast copies of warm state: checkpoint a running microVM's memory and volumes, then start new instances from it.
  • GPUs, arm64 and your own hardware. For Enterprise buyers: NVIDIA GPUs, arm64 hosts, dedicated hosts, on-prem or your own cloud.

Where boat fits

Fly.io Machines and Unikraft Cloud are both built to host services that sleep and wake, and both leave you to build an agent's machine inside your own image. If what you are really running is coding or computer-use agents that work for hours, boat gives each one a full VM with its disk kept, a desktop, agents and a keys proxy ready on every plan.

A whole machine to work in

Agents run docker compose, systemd services and emulators. Fly has no systemd or /dev/kvm, and Unikraft documents no container runtime inside and keeps nested virtualization for Enterprise, so you bake tools into the image instead.

Desktop, agents and keys built in

Neither ships a desktop or coding agents. Keeping keys out means running your own tokenizer app on Fly, or Unikraft's network shield, which is Enterprise only. On boat the credentials proxy and preinstalled agents come on every plan.

Full-size fleets with steady CPU

Fifty 4 vCPU / 8 GB agents need 200 vCPU at once. Unikraft's biggest self-serve pool is 24 vCPU, and Fly's lowest rates use shared vCPUs that throttle long builds above a 6.25% baseline.

Use boat when your agents need a real machine for hours: Docker, systemd, /dev/kvm, a desktop and browser, coding agents you drive from outside, a keys proxy, and a disk that survives every stop. Compare it one to one: boat vs Fly.io Machines and boat vs Unikraft Cloud.

Questions people ask

Is Fly.io Machines cheaper than Unikraft Cloud?

For one agent, Fly is lower using its 1-year shared vCPU rate: $15 a month on workdays and $36 running all month, against $39 for Unikraft's Team pool either way. boat is $20 and $26. For 50 agents Fly is $487 and boat $317, while no self-serve Unikraft plan is big enough.

Which is faster, Fly.io Machines or Unikraft Cloud?

Unikraft starts faster: its microVMs cold boot in milliseconds by its own figure and wake on the next request. Neither has a public CPU benchmark to compare. boat measured 26.69 runs per second on a Node.js build-and-test benchmark at 4 vCPU / 8 GB.

Can I run Docker inside Fly.io Machines or Unikraft Cloud?

On Fly you can install and run Docker yourself, since a Machine is a microVM with root, but there is no /dev/kvm. Unikraft builds your Dockerfile into the VM image and does not document a container runtime inside a running instance. boat has Docker, systemd and /dev/kvm ready on every machine.

Do they keep my files when they stop?

A Fly Machine's root file system is ephemeral, so lasting data goes on its one Volume. Unikraft instances go into standby with storage capped by plan, such as 15 GiB on Team. boat keeps the whole disk, with snapshots every minute and on stop.

Can I SSH into them?

You can SSH into a Fly Machine. Unikraft has no SSH yet, so commands and files go through its sandbox plugin and CLI. Every boat sandbox takes SSH or its API.

Where do they run?

Fly runs in 17 regions on six continents. 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