GitHub Codespaces vs Unikraft Cloud

GitHub Codespaces is a dev environment: a Linux dev container on its own VM, opened from a GitHub repository, that stops after 12 hours at most. Unikraft Cloud turns a Dockerfile into a small Firecracker microVM that boots in milliseconds, sleeps when idle and wakes on the next request.

The companies and products

GitHub Codespaces

GitHub Codespaces is GitHub's cloud development environment: a ready-to-code Linux machine for a repository, opened in the browser, VS Code or the GitHub CLI.

Codespaces is a different kind of product from boat: a dev environment for people working on a GitHub repository, not a sandbox API for agents. Each codespace is a Docker container built from the repo's dev container config, running on its own newly built VM on Azure, with 2 to 32 cores. It is built for developers and teams who want every contributor to start from the same setup, with prebuilds, port forwarding and GitHub billing.

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. “274th cheapest of 367” means 273 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 workloadGitHub Codespaces: price rankUnikraft Cloud: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Codespaces gives you Docker inside a dev container but stops at 12 hours, Unikraft documents no container runtime inside an instance, and boat is a full VM with Docker and /dev/kvm.
274th of 367, with limits
$4,618 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 hits the 12-hour cap on Codespaces and the shared 8 GiB Team pool on Unikraft, while a boat sandbox runs until you stop it.
309th of 366, with limits
$6,970 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 runs that sleep between calls are the shape Unikraft is built for, though self-serve plans cap you at 24 running instances; each codespace builds a dev container on a new VM.
288th of 345, with limits
$619 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 on a published self-serve plan: GitHub does not publish how many codespaces can run at once, and Unikraft Pro holds 24 running instances.
281st of 361, with limits
$1,964 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
282nd of 360, with limits
$9,489 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
295th of 364, with limits
$1,519 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
Codespaces has no fork or snapshot API, and on Unikraft nested virtualization is Enterprise only, so CI jobs that need copies of a warm machine or /dev/kvm fit boat better.
314th of 377, with limits
$909 a month
Can't run it4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Unikraft keeps a box around all month on its $39 Team pool but has no SSH yet, while Codespaces is a polished VS Code box that stops after 12 hours.
130th of 368, with limits
$270 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 has a graphical desktop built in; boat streams a 60fps desktop with Chromium for computer use.
267th of 369, with limits
$1,367 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
Unikraft can run your own headless Chrome from a Dockerfile, Codespaces has no browser built in, and boat gives each sandbox Chromium on a desktop.
275th of 367, with limits
$678 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
310th of 346, with limits
$922 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
280th of 338, with limits
$18,637 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
267th of 360, with limits
$445 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

FeatureGitHub CodespacesUnikraft Cloudboat
What it isA cloud dev environment for a GitHub repository, opened in VS Code, the browser or JupyterLabA microVM cloud that runs Dockerfile-based workloads with millisecond cold starts and scale-to-zeroA sandbox you drive from code: full VMs with coding agents and a desktop built in
IsolationA Docker container on its own newly built VM, with its own virtual networkMinimal Linux microVM on a customized Firecracker VMM; full VMs on EnterpriseFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
How long it runsStops after 30 idle minutes by default and after 12 hours at most, even while in useNo published session cap; goes into standby when idle and wakes on trafficRuns until you stop it; no session cap on paid plans
Machine size2, 4, 8, 16 or 32 cores, with 4 GB of memory per corePlan 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
Docker insideDocker and sudo inside the dev containerThe Dockerfile becomes the VM image; no container runtime inside documentedDocker, systemd and root, like any Ubuntu machine
Nested virtualization/dev/kvm is not documentedYes, with a per-instance flag and permission, Enterprise only/dev/kvm on every plan, for Android emulators and VMs
Logging inSSH and the GitHub CLI, plus VS Code and the browserNo SSH yet; commands and files go through the sandbox plugin and CLISSH into every sandbox, or drive it through the API
Idle and wakeStops when idle; you start it again from the editor, CLI or APIStandby after a 1 second idle cooldown by default; incoming traffic wakes it in milliseconds, with memory kept in stateful modeDisk saved every minute and on stop; a stopped sandbox costs nothing and is started by API
Fork and checkpointsNo copy or snapshot endpoint; new codespaces start from a repo, branch, pull request or prebuildCheckpoint memory and volumes of a running microVM, then start new instances from itFork a running sandbox with its disk; named snapshots as templates
Desktop and browserEditor and terminal; no graphical desktopNone built in; you can run your own headless browser from a Dockerfile60fps Linux desktop with Chromium, computer use and browser control
Coding agentsGitHub Copilot as a VS Code extension; other agents you install yourselfNone preinstalled; you bring the agent in your own imageClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API
Keeping API keys outSecrets are copied into the codespace as environment variablesNetwork shield can inject secrets into traffic, Enterprise only, limited accessCredentials proxy for model providers and any HTTPS API, on every plan
Inbound accessA URL per forwarded port, private, organization or public; no public IPServices 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
RegionsUS East, US West, Europe West and Southeast AsiaDallas, Frankfurt, San Francisco, Singapore and Washington DC, more on requestEU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureGitHub CodespacesUnikraft Cloudboat
Full VM (own kernel)YesYesYes
Docker insideYesNoYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNot publishedNot publishedYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHYesNoYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsNoYesYes
Fork/cloneNoYesYes
Live fork (no pause)NoYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsNoYesYes
Idle auto-stopYesYesNo
Wake on requestNoYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNot publishedYes
Public IPv4NoNoNo
Egress allowlistNoYesNo
Secret proxyNoYesYes
Secret proxy for any APINoYesYes
Preinstalled agentsNoNoYes
Agent harness APINoNoYes
MCP serverNoNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoYesNo
BYOCNoYesNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsYesYesNo
SSOYesNoNo
SOC 2YesYesNo
HIPAANoYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

GitHub CodespacesNot measured
Unikraft CloudNot measured
boat26.69 runs/s

There is no comparable CPU measurement for GitHub Codespaces or Unikraft Cloud: neither was in the public benchmark runs we use. boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in StarSling's run of 2026-09-29. Unikraft states cold starts under 10 ms, which is its own figure and measures 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. GitHub Codespaces 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.

ScenarioGitHub Codespaces, 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
$51 · Personal account: GitHub Free$39 · Hobby$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$270 · Personal account: GitHub Free · 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
$3,019 · Personal account: GitHub FreeCan'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
$850 · Personal account: GitHub Free · 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,889 · Personal account: GitHub Free · with limitsCan't run it$2,000 · $2000/mo · with limits

GitHub Codespaces: Codespaces bills $0.09 per core-hour while a codespace is active, plus $0.07 per GB-month of storage while it exists, stopped too. Personal accounts get a free monthly quota and organizations do not.

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. 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 spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Every codespace stops after 12 hours at most, so it does not fit the always-on scenario without a restart script, and GitHub does not publish how many can run at once, so 300 user sandboxes and 1,000 short jobs are not confirmed. Unikraft's limits are shared pools: the Team plan's 8 vCPU and 8 GiB hold one 4 vCPU / 8 GB agent, so 50 agents, user sandboxes and the burst need an Enterprise contract. boat has no session cap on paid plans, but at 1,000 short jobs at once its $2,000 plan queues starts.

ScenarioGitHub CodespacesUnikraft 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 stops
  • Personal account: GitHub Free: sessions capped at 12 h
  • 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 GitHub Codespaces when

your developers want a ready VS Code environment for a GitHub repository, opened from a branch or pull request, in the US, EU or Asia.

  • Built into GitHub. Useful if your team lives on GitHub: open a ready dev container from any repo, branch or pull request.
  • A full editor with big machines. Useful for developers who want VS Code in the browser on up to 32 cores, with SSH and port forwarding.
  • Free hours for personal accounts. Useful for occasional personal work: a GitHub Free account includes 120 core-hours and 15 GB-month each month.

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.

  • Millisecond starts and scale-to-zero. Best for many small services that sleep most of the time and must answer the next request in milliseconds.
  • A flat monthly price. Useful if you want a fixed bill: a pool of running capacity for a flat fee, with sleeping instances not counted.
  • GPUs, arm64 and your own hardware. Enterprise customers can get NVIDIA GPUs, arm64 hosts, egress filtering, dedicated hosts, on-prem or their own cloud.

Where boat fits

If what you are really running is AI agents that work for hours, neither is built for it: Codespaces is a dev box for people that stops at 12 hours, and Unikraft is tuned for small services that sleep. boat gives each agent a full VM that keeps running, with Docker, /dev/kvm, a desktop and coding agents you drive from outside.

Machines that keep running and fork

A codespace stops at 12 hours even in use, so you need a restart script, and it cannot be copied. Unikraft can checkpoint, but its Team pool of 8 GiB fits one 4 vCPU / 8 GB agent. boat runs until you stop it and forks while running.

A whole machine: Docker, /dev/kvm and a desktop

Codespaces documents no /dev/kvm and no desktop; Unikraft documents no Docker inside, has no SSH yet and keeps nested virtualization for Enterprise. Every boat sandbox has root, systemd, Docker, /dev/kvm, SSH and a 60fps desktop with Chromium.

Agents driven from outside, keys kept out

On Codespaces your API key sits in an environment variable any code can read; on Unikraft secret injection is Enterprise only. boat ships Claude Code, Codex and more with a prompt, steer and events API, and keeps real keys in a credentials proxy.

Use boat when your agents need a real machine that keeps running: Docker, /dev/kvm, a desktop and a browser, coding agents you drive from outside, and fleets of full-size sandboxes without a sales call. Compare it one to one: boat vs GitHub Codespaces and boat vs Unikraft Cloud.

Questions people ask

Is GitHub Codespaces cheaper than Unikraft Cloud?

For one coding agent on workdays, Codespaces comes to $51 a month and Unikraft's Team pool to $39 a month, with boat at $20. For one agent that never stops, Unikraft stays at $39 against $270 on Codespaces, which also needs a restart every 12 hours; boat is $26. For 50 agents, Codespaces is $3,019 a month and no self-serve Unikraft plan is big enough.

Which is faster?

Neither has a comparable CPU measurement in the benchmarks we use. Unikraft is far faster to start: its microVMs cold boot in milliseconds and wake on the next request, while a codespace builds a dev container on a new VM, which prebuilds speed up.

Can I run Docker in GitHub Codespaces or Unikraft Cloud?

In Codespaces, yes: Docker works inside the dev container and you have sudo. Unikraft uses your Dockerfile to build the VM image and does not document a container runtime inside a running instance. Every boat sandbox has Docker, systemd and /dev/kvm.

Can I SSH into them?

You can SSH into a codespace through the GitHub CLI. Unikraft has no SSH yet; you run commands and move files through its sandbox plugin and CLI. You can SSH into every boat sandbox.

Can I run an AI agent 24/7 on either?

Not on Codespaces without restarts, since every codespace stops after 12 hours at most. Unikraft has no published session cap, but a 4 vCPU / 8 GB agent fills its Team pool. A boat sandbox runs until you stop it, with no session cap on paid plans.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons