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.
- Funding
- Over $466M raised
- Generally available
- 1 October 2026; early customers launched over 20 million VMs before that
- Session length
- Default 5 minutes, maximum 24 hours
- Compliance
- SOC 2 on every plan; HIPAA on Enterprise
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 workload | Unikraft Cloud: price rank | Modal VM Sandboxes: price rank | boat: 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 it | 84th 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 it | Can't run it | 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 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 it | Can't run it | 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 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 it | Can't run it | 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 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 it | 171st 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 it | Can't run it | 10th 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 it | 188th 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 it | 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 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 it | Can't run it | 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 | Can't run it | Can't run it | 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 | Can't run it | Can't run it | 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 | Can't run it | Can't run it | 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 | Can't run it | 294th 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 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 | Unikraft Cloud | Modal VM Sandboxes | boat |
|---|---|---|---|
| Isolation | Minimal Linux microVM on a customized Firecracker VMM | VM with its own Linux 7.2 kernel on Cloud Hypervisor | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Docker and systemd inside | Runs as root; the Dockerfile becomes the VM image, with no container runtime inside documented | Yes, Docker, FUSE and systemd; you start dockerd yourself as the entrypoint | Yes, Docker, systemd and root, like any Ubuntu machine |
| CPU benchmark (4 vCPU / 8 GB) | Not measured | 15.54 runs/s | 26.69 runs/s |
| Longest session | No published maximum; instances run until stopped or go into standby | 24 hours (default 5 minutes) | No cap on paid plans; you set the time to live |
| Idle and wake | Standby after a 1 second idle cooldown; incoming traffic wakes it in milliseconds | No paused state; a finished sandbox is gone, only Volumes and snapshots keep files | Stop for free and start again by API with the whole disk, saved every minute |
| Snapshots and fork | Checkpoint memory and volumes of a running microVM, then start new instances from it | Filesystem snapshots to boot new sandboxes; memory snapshots in alpha end the sandbox | Fork a running sandbox with its disk; snapshots every minute |
| Nested virtualization | Enterprise only, with a per-instance flag and permission | Team and Enterprise plans only, on request | Yes, /dev/kvm for Android emulators and VMs on every plan |
| SSH | Not yet; commands and files go through the sandbox plugin and CLI | Yes | Yes, into every sandbox |
| Desktop and browser | None built in; run your own headless browser from a Dockerfile | Not offered; an example shows how to set up Xvfb and VNC yourself | Linux desktop streamed at 60fps, Chromium and a computer-use API |
| Coding agents and API keys | No agents preinstalled; secret injection is part of the network shield, Enterprise only | Examples only; secrets are environment variables, or you run your own proxy in a sidecar | Seven agents preinstalled with a prompt, steer and events API; a credentials proxy keeps real keys out of the sandbox |
| Inbound access | Services on its load balancer: HTTP, HTTPS and TLS-wrapped TCP; no public IP per instance | Encrypted and raw TCP tunnels, connect tokens, inbound IP allowlist | HTTPS URLs for up to 50 ports, token-protected by default, plus raw TCP |
| Outbound rules | Network shield filters traffic, Enterprise only, limited access | Block all, IP-range allowlist, domain allowlist (beta), on any plan | Open internet, no provider-side allowlist |
| Self-serve scale | Pools of 2, 8 or 24 running instances sharing 4, 8 or 32 GiB; more needs Enterprise | 100 containers at once on Starter, 5,000 on Team | 100 to 2,000 sandboxes at once on paid plans, up to 16 vCPU / 32 GB each |
| Regions | Dallas, Frankfurt, San Francisco, Singapore and Washington DC; more on request | US, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75x | EU only (Germany, Finland, France) |
| GPUs | NVIDIA GPUs and vGPUs on Enterprise | None on the VM runtime; GPU sandboxes need gVisor | None |
Every feature Battleships tracks (43)
| Feature | Unikraft Cloud | Modal VM Sandboxes | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | No | Yes | Yes |
| Nested virtualization | Yes | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Not published | 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 | No | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | Yes | 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 | No | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Not published | Yes | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | No | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | No | No | No |
| GPU | Yes | No | No |
| Windows | No | No | No |
| Arm64 | Yes | No | No |
| Self-hosting | Yes | No | No |
| BYOC | Yes | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | Not published | Yes |
| Audit logs | Yes | Yes | No |
| SSO | No | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
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.
| Scenario | Unikraft Cloud, a month | Modal VM Sandboxes, 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 | $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.
| Scenario | Unikraft Cloud | Modal VM Sandboxes | boat |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| 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 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
- boat vs Unikraft Cloud
- boat vs Modal VM Sandboxes
- E2B vs Unikraft Cloud
- Daytona vs Unikraft Cloud
- Modal vs Unikraft Cloud
- Vercel Sandbox vs Unikraft Cloud
- Cloudflare Sandbox vs Unikraft Cloud
- Blaxel vs Unikraft Cloud
- Runloop vs Unikraft Cloud
- Tensorlake vs Unikraft Cloud
- Morph Cloud vs Unikraft Cloud
- CodeSandbox SDK vs Unikraft Cloud