Beam vs Unikraft Cloud
Beam is a serverless GPU platform whose sandboxes are gVisor containers billed per second. Unikraft Cloud turns a Dockerfile into a small Firecracker microVM that wakes in milliseconds, sleeps when idle and is sold as flat pools of running capacity.
The companies and products
Beam
Beam is a serverless cloud for GPU inference, sandboxes and background jobs, built on its open-source runtime Beta9.
Beam runs functions, REST endpoints, task queues, pods, sandboxes and VMs on CPUs and GPUs, all from a Python or TypeScript SDK. A sandbox is a container isolated with gVisor that starts in a second or two, lives until you terminate it or its time to live runs out, and can be saved as a filesystem image or a memory snapshot. Beam VMs are a separate CPU product: a microVM with its own kernel, systemd and a root disk that stays when it stops. Much of Beam is a GPU serverless platform for AI teams.
- Bring your own cloud
- Management fee per vCPU and GB of RAM, on top of your own cloud bill
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. “8th cheapest of 345” means 7 of the other 344 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 workload | Beam: price rank | Unikraft Cloud: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A software factory needs Docker, systemd and /dev/kvm in each sandbox; Beam sandboxes have Docker but no systemd, Unikraft documents no container runtime inside, and bochka gives all three. | 69th of 367, with limits $551 a month | Can't run it | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 115th of 366, with limits $651 a month | 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 Beam fits short code runs well, starting in a second or two and billing per second, while Unikraft's largest self-serve plan holds only 24 running instances. | 8th cheapest of 345 $117 a month | 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 Beam's Team plan runs up to 1,000 CPU containers at once, while Unikraft Pro holds only 24 running instances, so hundreds of active users need its Enterprise contract. | 3rd cheapest of 361 $290 a month | 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 | 341st of 360, with limits $939 a month | Can't run it | 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 Both Beam and bochka fit agent evals on self-serve plans; Unikraft's shared pools are too small for a parallel eval run. | 13th cheapest of 364 $251 a month | 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 jobs that build Docker images or Android apps need a container runtime and /dev/kvm; Beam has Docker but no /dev/kvm, Unikraft keeps nested virtualization for Enterprise, and bochka has both. | 12th cheapest of 377 $171 a month | Can't run it | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB All three can keep one box all month; Beam is cheapest at $21 a month, while Unikraft has no SSH yet and its $39 Team pool is the smallest plan that fits. | 13th cheapest of 368 $21 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 Computer-use agents need a desktop to see and click; neither Beam nor Unikraft has one, while bochka streams a Linux desktop at 60fps with Chromium. | 111th of 369, with limits $237 a month | 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 | 195th of 367, with limits $176 a month | 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 | 200th of 346, with limits $131 a month | 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 | 42nd of 338, with limits $923 a month | 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 | 175th of 360, with limits $155 a month | Can't run it | 2nd cheapest of 360 $200 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month Beam offers GPUs from T4 to H100, H200 and B200 on self-serve plans; Unikraft keeps GPUs for Enterprise, and bochka is CPU only. | Cheapest of 98 $458 a month | 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 | Beam | Unikraft Cloud | bochka |
|---|---|---|---|
| Isolation | gVisor container for sandboxes; separate Beam VMs are CPU microVMs with their own kernel | Minimal Linux microVM per instance on a customized Firecracker VMM | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Start time | Sandboxes cold boot in 1 to 3 seconds, by Beam's own guide | Cold boots in milliseconds and wakes on the next request, by Unikraft's own figure | Boots a full machine and starts again from its saved disk |
| Docker and systemd inside | Docker inside sandboxes with docker_enabled; systemd only in Beam VMs | The Dockerfile becomes the VM image; no container runtime inside is documented | Docker, systemd and root, like a normal Ubuntu server |
| Nested virtualization | Not documented | Yes, with a per-instance flag, Enterprise only | Yes, /dev/kvm for Android emulators and VMs on every plan |
| Shell access | Root shell into a sandbox through beam shell | No SSH yet; commands and files go through the sandbox plugin and CLI | SSH into every sandbox, or drive it through the API |
| GPUs | GPU sandboxes and serverless GPUs from T4 up to H100, H200 and B200 | NVIDIA GPUs and vGPUs on Enterprise only | No, CPU only |
| When idle | A sandbox runs and bills until you terminate it or its time to live ends, 10 minutes by default | Goes into standby after 1 second idle by default; sleeping instances do not count toward the pool | Disk saved every minute and on stop; a stopped sandbox costs nothing |
| Snapshots and fork | Memory snapshot of a running sandbox, restored into new sandboxes | Checkpoint memory and volumes of a running microVM, then start new instances from it | Fork a running sandbox with its disk; disk snapshots every minute |
| Inbound access | Public HTTPS URL per exposed port with no built-in auth; no raw TCP or dedicated IP | Services on its load balancer: HTTP, HTTPS and TLS-wrapped TCP; no public IP per instance | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Block all outbound traffic, or allow up to 10 CIDR ranges, changeable while running | Network shield filters traffic, Enterprise only, limited access | Open internet, no provider-side allowlist |
| Keeping API keys out of the sandbox | Secrets are environment variables inside the sandbox | Network shield can inject secrets into traffic, Enterprise only, limited access | Credentials proxy for model providers and any HTTPS API, on every plan |
| Desktop and browser | No desktop or browser product | None built in; you can run your own headless browser from a Dockerfile | Linux desktop streamed at 60fps with Chromium and computer use |
| Coding agents | None preinstalled; you install and run them through process exec | None preinstalled; you bring the agent in your own image | Seven agents preinstalled, with a prompt, steer and events API |
| Regions | United States only | Dallas, Frankfurt, San Francisco, Singapore and Washington DC, more on request | EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | Beam | Unikraft Cloud | bochka |
|---|---|---|---|
| Full VM (own kernel) | No | Yes | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | No | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | No | Yes | Yes |
| Automatic snapshots | No | Yes | 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 | No | Yes | No |
| Wake on request | No | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | No | Yes | Yes |
| Secret proxy for any API | No | Yes | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | Yes | Yes | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | Yes | Yes | No |
| BYOC | Yes | Yes | No |
| Open source | Yes | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Yes | No |
| SSO | No | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Not published | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable CPU measurement for Beam or Unikraft Cloud: neither is in the StarSling hpc-sandbox-benchmarks run that measured bochka at 26.69 runs per second at 4 vCPU / 8 GB. Beam's guide says its sandboxes cold boot in 1 to 3 seconds, and Unikraft states cold starts under 10 ms; both are their own figures 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. Beam 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.
| Scenario | Beam, a month | Unikraft Cloud, a month | bochka, 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 | $5 · Developer | $39 · Hobby | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $22 · Developer | $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 | $410 · Team | Can'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 | $191 · Team | Can'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 | $259 · Team | Can't run it | $2,000 · $2000/mo · with limits |
Beam: Beam bills sandboxes per second for each CPU core (two vCPU) and each GiB of RAM until you terminate them or their time to live ends, with no egress fees. Developer has no fee, and Team costs $89 a month plus usage, with no usage credit.
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 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 every running instance shares: Team has 8 vCPU and 8 GiB in total, so one 4 vCPU / 8 GB agent fills it, and 50 agents, user sandboxes or 1,000 short jobs fit no self-serve plan. Beam's Developer plan allows 30 CPU containers at once, so those three scenarios need its Team plan, and Beam publishes no disk price, so the scenarios count no disk cost for it. bochka fits every scenario but the burst, where its $2,000 plan queues starts.
| Scenario | Beam | Unikraft Cloud | bochka |
|---|---|---|---|
| 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 |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Beam when
your sandboxes need GPUs, when you want large fleets of short-lived sandboxes billed per second on a self-serve plan, or when you want to self-host its open-source runtime.
- GPUs on self-serve plans. Teams whose sandboxes need a GPU can attach one on Beam, from T4 up to H100, H200 and B200, without a sales call.
- Big fleets billed per second. Beam's Team plan runs up to 1,000 CPU containers at once, billed per second, so large parallel runs fit without an Enterprise deal.
- Open source and outbound rules. Its Beta9 runtime is AGPL-3.0 and free to self-host, and any sandbox can be locked to up to 10 CIDR ranges.
Use Unikraft Cloud when
you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, or need regions in the US, EU and Asia.
- Millisecond starts and scale-to-zero. Best for many small services that sleep most of the time and must wake on the next request in milliseconds.
- Regions in the US, EU and Asia. Unikraft runs in Dallas, Frankfurt, San Francisco, Singapore and Washington DC, where Beam lists only the United States.
- A free plan with real VMs. The Hobby plan is free with no card and runs two microVMs, each with its own kernel instead of a shared one.
Where bochka fits
Beam and Unikraft Cloud are both built for short, fast workloads: a container that lives for minutes, or a microVM that sleeps between requests. If what you are really running is coding agents that install, build and test over hours, bochka gives each one a full machine with the agent, desktop and keys already set up.
A whole machine for the agent
A Beam sandbox has no systemd or /dev/kvm, and Beam VMs have no /dev/kvm either. Unikraft has no container runtime inside or SSH, and nested virtualization needs Enterprise. bochka gives Docker, systemd, SSH and /dev/kvm on every plan.
Agents, desktop and keys built in
Neither ships a coding agent or a desktop, so you build the harness yourself. Beam keeps secrets as environment variables the agent can read, and Unikraft's secret injection is Enterprise only. bochka keeps real keys in a credentials proxy outside the sandbox.
Hosting with access control
A Beam preview URL is public with no built-in auth, and neither Beam nor Unikraft gives an instance its own IP. bochka serves HTTPS on up to 50 ports, token-protected by default, plus raw TCP and a dedicated IPv4 or IPv6.
Use bochka when your agents need a real machine to work in for hours: Docker, systemd, emulators, a desktop and a browser, coding agents you drive from outside, and a disk that is still there next time. Compare it one to one: bochka vs Beam and bochka vs Unikraft Cloud.
Questions people ask
Is Beam cheaper than Unikraft Cloud?
In every scenario on this page, yes. One coding agent on workdays costs $5 on Beam against $39 on Unikraft's Team pool, and one that never stops costs $22 against $39. For 50 agents, sandboxes for your users or 1,000 short jobs, Beam's Team plan fits at $410, $191 and $259 a month, while no self-serve Unikraft plan is big enough.
Which is faster, Beam or Unikraft Cloud?
Neither has a comparable CPU measurement, so we cannot say which is faster at CPU work. For start time, Unikraft states cold starts under 10 ms and Beam says its sandboxes cold boot in 1 to 3 seconds; both are the providers' own figures.
Can I run Docker in Beam or Unikraft Cloud?
Beam supports Docker inside a sandbox with docker_enabled. Unikraft uses your Dockerfile to build the VM itself and does not document a container runtime inside a running instance. A bochka sandbox runs Docker, systemd and /dev/kvm on every plan.
Which one has GPUs?
Beam offers GPU sandboxes and serverless GPUs on its self-serve plans, from T4 up to H100, H200 and B200. Unikraft offers NVIDIA GPUs only on Enterprise. bochka is CPU only.
Is a Beam sandbox a VM like Unikraft Cloud?
Not by default. Beam sandboxes are containers using gVisor, and Beam sells separate CPU VMs with their own kernel. Every Unikraft instance is a Firecracker microVM, and every bochka sandbox is a full VM with its own kernel and /dev/kvm.
Try bochka
Install the CLI, then run bochka new.
Product preview