Unikraft Cloud vs Modal VM Sandboxes

Both run each workload in its own VM. Unikraft Cloud turns your Dockerfile into a tiny microVM that sleeps when idle and wakes in milliseconds, while Modal VM Sandboxes are full Linux VMs with their own kernel and Docker that last at most 24 hours.

The companies and products

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.

Modal VM Sandboxes

Modal is a serverless cloud for AI work, and VM Sandboxes are the version of its sandboxes that run in a virtual machine with their own Linux kernel.

You create a VM Sandbox from Python, TypeScript or Go code with runtime="vm", run commands in it, and terminate it when the job is done. Modal built the runtime on the Rust-based Cloud Hypervisor, so Docker, FUSE, systemd and nested cgroups work, with the same API, images and prices as its gVisor sandboxes. It became generally available on 1 October 2026 and suits teams that want many short-lived agent machines next to Modal's inference and training.

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. “2nd cheapest of 367” means 1 of the other 366 providers runs 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 workloadUnikraft Cloud: price rankModal VM Sandboxes: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs Docker inside the sandbox: Modal VM Sandboxes ranks 84th with Docker but a 24-hour cap, Unikraft documents no container runtime inside, and boat ranks 3rd.
Can't run it84th of 367, with limits
$759 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An assistant that lives on its machine all month fits neither: Modal stops at 24 hours and Unikraft's Team pool is 8 GiB shared by every running instance.
Can't run itCan'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: Unikraft instances sleep between calls and wake in milliseconds, and Modal runs thousands of short sandboxes at once on Team.
Can't run itCan'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
Hundreds of active users are beyond every self-serve Unikraft pool, Modal fits them on Team, and boat ranks 1st because a stopped sandbox keeps its disk for free.
Can't run itCan'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
Huge bursts of short rollouts are what Modal is built for, and Unikraft's self-serve plans cap you at 24 running instances.
Can't run it171st of 360, with limits
$16,322 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
Can't run itCan'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 Docker images works on Modal's VM runtime but has no documented container runtime on Unikraft; boat ranks 4th with Docker and /dev/kvm on every plan.
Can't run it188th of 377, with limits
$1,064 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Unikraft Cloud ranks 219th as a box you keep all month, but it has no SSH yet; Modal ends every VM within 24 hours, and boat ranks 18th.
219th of 368, with limits
$39 a month
Can't run it18th 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 ships a desktop: on both you build your own display and browser into the image, while boat streams one at 60fps with a computer-use API.
Can't run itCan'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
Can't run itCan'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
Can't run itCan'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
Can't run itCan'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
Can't run it294th of 360, with limits
$642 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

FeatureUnikraft CloudModal VM Sandboxesboat
IsolationMinimal Linux microVM on a customized Firecracker VMMVM with its own Linux 7.2 kernel on Cloud HypervisorFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Docker and systemd insideRuns as root; the Dockerfile becomes the VM image, with no container runtime inside documentedYes, Docker, FUSE and systemd; you start dockerd yourself as the entrypointYes, Docker, systemd and root, like any Ubuntu machine
CPU benchmark (4 vCPU / 8 GB)Not measured15.54 runs/s26.69 runs/s
Longest sessionNo published maximum; instances run until stopped or go into standby24 hours (default 5 minutes)No cap on paid plans; you set the time to live
Idle and wakeStandby after a 1 second idle cooldown; incoming traffic wakes it in millisecondsNo paused state; a finished sandbox is gone, only Volumes and snapshots keep filesStop for free and start again by API with the whole disk, saved every minute
Snapshots and forkCheckpoint memory and volumes of a running microVM, then start new instances from itFilesystem snapshots to boot new sandboxes; memory snapshots in alpha end the sandboxFork a running sandbox with its disk; snapshots every minute
Nested virtualizationEnterprise only, with a per-instance flag and permissionTeam and Enterprise plans only, on requestYes, /dev/kvm for Android emulators and VMs on every plan
SSHNot yet; commands and files go through the sandbox plugin and CLIYesYes, into every sandbox
Desktop and browserNone built in; run your own headless browser from a DockerfileNot offered; an example shows how to set up Xvfb and VNC yourselfLinux desktop streamed at 60fps, Chromium and a computer-use API
Coding agents and API keysNo agents preinstalled; secret injection is part of the network shield, Enterprise onlyExamples only; secrets are environment variables, or you run your own proxy in a sidecarSeven agents preinstalled with a prompt, steer and events API; a credentials proxy keeps real keys out of the sandbox
Inbound accessServices on its load balancer: HTTP, HTTPS and TLS-wrapped TCP; no public IP per instanceEncrypted and raw TCP tunnels, connect tokens, inbound IP allowlistHTTPS URLs for up to 50 ports, token-protected by default, plus raw TCP
Outbound rulesNetwork shield filters traffic, Enterprise only, limited accessBlock all, IP-range allowlist, domain allowlist (beta), on any planOpen internet, no provider-side allowlist
Self-serve scalePools of 2, 8 or 24 running instances sharing 4, 8 or 32 GiB; more needs Enterprise100 containers at once on Starter, 5,000 on Team100 to 2,000 sandboxes at once on paid plans, up to 16 vCPU / 32 GB each
RegionsDallas, Frankfurt, San Francisco, Singapore and Washington DC; more on requestUS, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75xEU only (Germany, Finland, France)
GPUsNVIDIA GPUs and vGPUs on EnterpriseNone on the VM runtime; GPU sandboxes need gVisorNone
Every feature Battleships tracks (43)
FeatureUnikraft CloudModal VM Sandboxesboat
Full VM (own kernel)YesYesYes
Docker insideNoYesYes
Nested virtualizationYesYesYes
RootYesYesYes
SystemdNot publishedYesYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHNoYesYes
Persistent diskYesYesYes
Pause/resumeYesNoYes
Automatic snapshotsYesNoYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkYesYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesNoNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNot publishedYesYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesNoYes
Secret proxy for any APIYesNoYes
Preinstalled agentsNoNoYes
Agent harness APINoNoYes
MCP serverNoNoNo
GPUYesNoNo
WindowsNoNoNo
Arm64YesNoNo
Self-hostingYesNoNo
BYOCYesNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNot publishedYes
Audit logsYesYesNo
SSONoYesNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Unikraft CloudNot measured
Modal VM Sandboxes15.54 runs/s
boat26.69 runs/s

In the hpc-sandbox-benchmarks run of 29 September 2026 at 4 vCPU / 8 GB, boat finished 26.69 Node.js build-and-test runs per second and Modal's VM runtime 15.54, so boat did about 1.7 times the CPU work. Unikraft Cloud was not in that run, so there is no comparable CPU score; its cold starts under 10 ms are its own figure and 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. Modal VM Sandboxes measured on: VM Sandbox, request = size. Unikraft Cloud 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.

ScenarioUnikraft Cloud, a monthModal VM Sandboxes, 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
$39 · Hobby$15 · Starter · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$39 · Hobby$178 · Starter · with limits$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
Can't run it$2,229 · Starter · with limits$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
Can't run it$792 · Team$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
Can't run it$3,193 · Team · with limits$2,000 · $2000/mo · with limits

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.

Modal VM Sandboxes: Modal bills by the second for the higher of the CPU and memory you request or use, until the sandbox ends. Starter is free with $30 of monthly credit, Team is $250 a month with $100 of credit, and pinning a region multiplies the price by 1.15x to 1.75x.

Modal VM Sandboxes: boat 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 limit is its pools: one 4 vCPU / 8 GB agent fills the Team pool, so 50 agents, sandboxes for 300 users at once and 1,000 short jobs fit no self-serve plan. Modal's limit is time: a VM lives at most 24 hours and loses everything outside a Volume, so the workday, always-on and 50-agent scenarios do not fit, and its 1,000-job burst runs on shared CPU. On boat the limit is start speed: the $2,000 plan queues 1,000 jobs at once.

ScenarioUnikraft CloudModal VM Sandboxesboat
One coding agent, workdays
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
One agent that never stops
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
  • Starter: sessions capped at 24 h
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
50 agents in parallel
  • no pool tier with 200 vCPU / 400 GiB for 50 VMs
  • no published per-resource rate
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
Sandboxes for your users
  • no pool tier with 600 vCPU / 1,200 GiB for 300 VMs
  • no published per-resource rate
None that biteNone that bite
1,000 short jobs at once
  • no pool tier with 2,000 vCPU / 4,000 GiB for 1,000 VMs
  • no published per-resource rate
  • shared vCPUs on this tier (Modal (VM Sandboxes) sells dedicated cores separately as “VM Sandbox, request = size”): 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 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 an Enterprise contract.

  • Sleeps when idle, wakes in milliseconds. Best for many small services or headless browsers that sit idle most of the time and must answer the next request at once.
  • Instances that do not time out. Unikraft publishes no session cap, so an instance can keep running or sleep and wake for weeks, unlike Modal's 24 hours.
  • Your own hardware and GPUs. Enterprise customers can get dedicated hosts, on-prem or their own cloud, plus NVIDIA GPUs and arm64 hosts.

Use Modal VM Sandboxes when

you need Docker inside a real VM for huge bursts of short jobs that finish within a day, want outbound rules on every plan, or already run your models on Modal.

  • A real kernel with Docker. Modal VM Sandboxes run Docker, FUSE and systemd inside, so agents can build images and run compose stacks on any plan.
  • Big fleets without a sales call. Team runs 5,000 containers at once, while Unikraft's largest self-serve plan holds 24 running instances.
  • Outbound rules on every plan. You can block all outbound traffic or allow only chosen IP ranges or domains, which Unikraft keeps for Enterprise.

Where boat fits

If what you are running is coding agents that work for hours or days, neither one fits well: Unikraft gives you tiny sleeping microVMs without Docker inside or SSH, and Modal gives you Docker but ends the VM within 24 hours. boat gives each agent a whole Ubuntu machine that keeps its disk, stops for free and runs as long as you need.

A full machine that keeps its work

Unikraft documents no Docker inside and keeps /dev/kvm for Enterprise; Modal has Docker but no paused state and a 24-hour cap, so you script filesystem snapshots or Volumes. boat has Docker, systemd and /dev/kvm, and saves the disk every minute.

Desktop, agents and keys built in

Neither ships a desktop or coding agents, and keys sit in environment variables unless you pay for Unikraft Enterprise or run a Modal sidecar proxy. boat has a 60fps desktop, seven agents driven from outside and a credentials proxy for any HTTPS API.

Faster CPU and fleets of big VMs

boat did 26.69 runs per second against Modal's 15.54 in the same test, and Unikraft has no measurement. Fifty 4 vCPU / 8 GB agents exceed every Unikraft self-serve pool; boat runs them from a paid plan.

Use boat when your agents need a whole machine for hours or days: Docker, emulators, a desktop and a browser, coding agents you drive from outside, and a faster VM that keeps its disk. Compare it one to one: boat vs Unikraft Cloud and boat vs Modal VM Sandboxes.

Questions people ask

Is Unikraft Cloud cheaper than Modal VM Sandboxes?

For one agent running all month, yes: Unikraft's Team pool costs $39 against $178 on Modal, though Modal also stops at 24 hours. For 50 agents or sandboxes for your users, no self-serve Unikraft plan is big enough, while Modal fits user sandboxes at $792 a month on Team. boat costs $26 and $200 a month for those two.

Which is faster, Unikraft Cloud or Modal VM Sandboxes?

Unikraft starts faster: its microVMs cold boot in milliseconds and wake on the next request. For CPU speed there is no Unikraft measurement; Modal's VM runtime did 15.54 runs per second at 4 vCPU / 8 GB and boat did 26.69 in the same run.

Can I run Docker inside Unikraft Cloud or Modal VM Sandboxes?

On Modal VM Sandboxes, yes: they have a real Linux kernel and you start dockerd yourself. Unikraft uses your Dockerfile to build the VM image, and its docs do not describe a container runtime inside a running instance. A boat sandbox has Docker, systemd and /dev/kvm ready to use.

How long can a sandbox run on each?

A Modal VM Sandbox defaults to 5 minutes and stops after 24 hours at most. Unikraft publishes no session cap, and idle instances go into standby and wake on traffic. boat has no session cap on paid plans.

Can I SSH into Unikraft Cloud or Modal VM Sandboxes?

Unikraft has no SSH yet; you run commands and move files through its sandbox plugin and CLI. Modal VM Sandboxes support SSH. You can SSH into every boat sandbox or drive it through its API.

Is boat SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons