OpenAI Containers vs Unikraft Cloud

OpenAI Containers are a tool inside OpenAI's model API: the model runs code in a short-lived box that is deleted after 20 idle minutes. Unikraft Cloud is a microVM cloud that turns your Dockerfile into a tiny VM that boots in milliseconds, sleeps when idle and keeps running as long as you want.

The companies and products

OpenAI Containers

OpenAI Containers are the sandboxes OpenAI runs for its own model tools: Code Interpreter, Hosted Shell and the Agents API's hosted sandbox.

This is a different kind of product from bochka: a tool inside OpenAI's model API, not a machine you rent. You create a container through the API or let a Responses call make one, and the model runs Python or shell commands in it on a fixed Debian 12 image without sudo, until it expires after 20 minutes without use. It is built for apps that already call OpenAI models and want them to run code, read files and make charts without running any servers.

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. “356th cheapest of 367” means 355 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 workloadOpenAI Containers: price rankUnikraft Cloud: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs Docker and a disk that stays; OpenAI Containers have neither, and Unikraft keeps a disk but documents no container runtime inside.
356th of 367, with limits
$17,371 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 assistant that lives on its machine all month cannot use an OpenAI container that expires, and Unikraft's Team pool is 8 GiB shared by every running instance.
341st of 366, with limits
$13,140 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
OpenAI Containers are built for this: the model writes code and runs it in the same API call, while Unikraft leaves you to build the runner in your own image.
194th of 345, with limits
$6,000 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
OpenAI does not publish how many containers can run at once, and Unikraft's self-serve plans cap you at 24 running instances, so hundreds of active users need more.
361st of 361, with limits
$3,780 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
191st of 360, with limits
$30,000 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
360th of 364, with limits
$5,760 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 jobs need Docker, root and open internet; OpenAI documents no Docker or root, and Unikraft keeps nested virtualization for Enterprise.
345th of 377, with limits
$1,728 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 can keep a box all month and only needs its Team pool, while an OpenAI container is deleted after 20 idle minutes; bochka adds SSH, which neither has.
362nd of 368, with limits
$1,051 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
OpenAI has a hosted browser for the Agents API computer_use tool, Unikraft has no desktop built in, and bochka streams a 60fps desktop.
351st of 369, with limits
$5,280 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
OpenAI's hosted browser is driven by its own Codex harness, while on Unikraft you run your own headless Chrome from a Dockerfile.
328th of 367, with limits
$1,440 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
328th of 346, with limits
$1,755 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
311th of 338, with limits
$35,100 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
308th of 360, with limits
$870 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

FeatureOpenAI ContainersUnikraft Cloudbochka
What it isA sandbox tool the model uses inside OpenAI's APIA general microVM cloud that runs your DockerfileA cloud VM you create, keep, stop and reach from outside
IsolationA fully sandboxed virtual machine; hypervisor not namedMinimal Linux microVM on a customized Firecracker VMMFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Machine size1, 4, 16 or 64 GB of memory; vCPU not publishedPlan 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
Root, Docker and nested virtualizationCommands do not run with sudo; no Docker or /dev/kvm documentedRuns as root; no container runtime inside documented; nested virtualization on Enterprise onlyRoot, systemd, Docker and /dev/kvm on every machine
Files after the sessionData is discarded when the container expiresVolumes, and standby snapshots that keep memory and filesDisk saved every minute and on stop; a stopped sandbox costs nothing and comes back
LifetimeExpires after 20 minutes without useRuns until stopped; goes into standby when idleNo session cap on paid plans; you set the time to live
Starts and wake on requestCreated by the API or a model call; no wake on requestCold boots in milliseconds and wakes on the next requestA stopped sandbox is started by API
Fork and checkpointsNo fork; templates save configuration, not a running workspaceCheckpoint memory and volumes of a running microVM, then start new instances from itFork a running sandbox with its disk; snapshots every minute
Custom imageFixed Debian 12 image; you upload files into each containerYour Dockerfile becomes the VM imageNamed snapshots of a set-up machine, reused as templates
Inbound accessNone; you reach the container only through the APIServices on its load balancer: HTTP, HTTPS and TLS-wrapped TCP; no SSH yetSSH, HTTPS URLs for up to 50 ports, raw TCP
Outbound internetCode Interpreter and Hosted Shell: off until an admin sets a domain allowlistOpen; network shield filtering on Enterprise only, limited accessOpen internet on every plan; no provider-side allowlist
Keeping API keys out of the sandboxdomain_secrets: a sidecar adds the real header for approved domainsNetwork shield can inject secrets, Enterprise only, limited accessCredentials proxy for model providers and any HTTPS API, on every plan
Coding agents and computer useAgents API (beta) drives a managed Codex harness, with a hosted browser for computer useNone preinstalled; no desktop built inClaude Code, Codex and more preinstalled with a prompt, steer and events API; 60fps desktop and computer use
RegionsUS or EU processing for Code Interpreter; Agents API US onlyDallas, Frankfurt, San Francisco, Singapore and Washington DC; more on requestEU only (Germany, Finland, France)
Every feature Battleships tracks (43)
FeatureOpenAI ContainersUnikraft Cloudbochka
Full VM (own kernel)YesYesYes
Docker insideNoNoYes
Nested virtualizationNoYesYes
RootNoYesYes
SystemdNot publishedNot publishedYes
Desktop GUIYesNoYes
BrowserYesNoYes
Computer-use APIYesNoYes
SSHNoNoYes
Persistent diskNoYesYes
Pause/resumeNoYesYes
Automatic snapshotsNoYesYes
Fork/cloneNoYesYes
Live fork (no pause)NoYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)NoYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestNoYesNo
HTTPS preview URLsNoYesYes
Raw TCP inboundNoNot publishedYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsNoNoYes
Agent harness APIYesNoYes
MCP serverNoNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingYesYesNo
BYOCNoYesNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedYesNo
SSOYesNoNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

OpenAI ContainersNot measured
Unikraft CloudNot measured
bochka26.69 runs/s

There is no comparable measurement for either: OpenAI Containers and Unikraft Cloud are not in the hpc-sandbox-benchmarks run, and OpenAI does not publish the vCPU behind each container size. bochka did 26.69 runs per second on its Node.js build-and-test loop at 4 vCPU / 8 GB. 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. OpenAI Containers 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.

ScenarioOpenAI Containers, a monthUnikraft Cloud, a monthbochka, 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
$228 · API 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
$1,051 · API 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
$11,405 · API 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
$1,620 · API 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
$6,000 · API pay as you go · with limitsCan't run it$2,000 · $2000/mo · with limits

OpenAI Containers: OpenAI bills each container session by the minute for the memory size you pick, with a 5-minute minimum, and model tokens are billed on top. There is no plan fee.

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. 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 a sandbox runs. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

OpenAI Containers fit none of the five scenarios as written: no persistent disk, no Docker, no internet in Code Interpreter and Hosted Shell until an admin allows domains, and no published vCPU. Unikraft fits one agent on workdays or all month on its Team pool, which that one agent fills, but no self-serve pool holds 50 agents, 300 user sandboxes or 1,000 jobs at once. bochka fits all but the burst, where the $2,000 plan queues starts.

ScenarioOpenAI ContainersUnikraft Cloudbochka
One coding agent, workdays
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • missing persistent disk
  • machine size not published
  • different kind of product: code interpreter
  • 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
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • missing persistent disk
  • machine size not published
  • different kind of product: code interpreter
  • 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
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • missing persistent disk, Docker inside
  • machine size not published
  • different kind of product: code interpreter
  • no pool tier with 200 vCPU / 400 GiB for 50 VMs
  • no published per-resource rate
None that bite
Sandboxes for your users
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • machine size not published
  • different kind of product: code interpreter
  • 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
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • machine size not published
  • different kind of product: code interpreter
  • 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 OpenAI Containers when

your app already calls OpenAI models and the model only needs to run short pieces of code or shell commands on files you give it.

  • Built into the model call. Best if your app already calls OpenAI models: one tool line in a request gives the model a place to run code.
  • Nothing to run or clean up. OpenAI creates the container, bills it by the minute with your tokens, and it expires on its own.
  • Locked-down network by default. Useful if code must only reach chosen hosts: Code Interpreter and Hosted Shell have no outbound access until an admin allows domains.

Use Unikraft Cloud when

you run many small services or headless browsers from your own Dockerfile that sleep most of the time and must wake in milliseconds, or need US or Asia regions.

  • 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.
  • Your own image that keeps running. Your Dockerfile becomes the VM, it runs as root until you stop it, and checkpoints let you start copies of it.
  • Regions and your own hardware. Runs in the US, Frankfurt and Singapore, and Enterprise adds GPUs, arm64, dedicated hosts, on-prem or your own cloud.

Where bochka fits

If what you are really running is coding agents, neither is a full machine: OpenAI Containers are deleted after 20 idle minutes and have no root, and Unikraft runs your image without SSH or Docker inside. bochka gives each agent a whole Linux VM that keeps its disk, opens ports to the world and comes with the agents preinstalled.

Root, Docker and /dev/kvm

Agents install packages and start databases in Docker. OpenAI runs commands without sudo, and Unikraft documents no container runtime inside, so you bake everything into the image or sign Enterprise for nested virtualization.

A disk that stays and a way in

An OpenAI container loses its clone and installs after 20 idle minutes and takes no inbound connections. Unikraft keeps files but has no SSH yet. bochka saves the disk every minute and gives SSH and HTTPS on 50 ports.

Agents and keys built in, at fleet size

bochka preinstalls Claude Code, Codex and more, drives them from outside, and keeps real keys in a proxy on every plan. Unikraft's secret injection is Enterprise only, and 50 agents at 4 vCPU / 8 GB exceed every self-serve pool.

Use bochka when your agents need a real machine they keep: root, Docker, a disk that persists, SSH and open ports, a desktop, and coding agents you drive from outside. Compare it one to one: bochka vs OpenAI Containers and bochka vs Unikraft Cloud.

Questions people ask

Is OpenAI Containers cheaper than Unikraft Cloud?

For one agent, no: one coding agent on workdays comes to $228 a month on OpenAI and $39 on Unikraft's Team pool, and one that never stops comes to $1,051 against $39. OpenAI also bills model tokens on top. On bochka the same two come to $20 and $26.

Which one is faster?

Neither has a published CPU benchmark, so there is no fair speed comparison. Unikraft is built to start fast: its microVMs cold boot in milliseconds and wake on the next request. bochka measured 26.69 runs per second at 4 vCPU / 8 GB.

Can OpenAI Containers or Unikraft Cloud run Docker?

OpenAI's hosted shell runs without sudo and documents no Docker. Unikraft uses your Dockerfile to build the VM, but its docs do not describe running a container runtime inside a running instance. A bochka sandbox has Docker, systemd and /dev/kvm ready to use.

Do files survive when the session ends?

Not on OpenAI: a container expires after 20 minutes without use, and its data is discarded. Unikraft keeps volumes and can snapshot memory when an instance goes into standby. bochka saves the disk every minute and on stop.

Can I SSH into either one?

No. OpenAI containers are reached only through the API, and Unikraft has announced SSH as coming soon, so today you use its sandbox plugin and CLI. You can SSH into every bochka sandbox.

Is bochka SOC 2 compliant?

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

Try bochka

Install the CLI, then run bochka new.

Product preview

More comparisons

Bochka product preview · Pricing, benchmarks and commands are illustrative. Sandbox provisioning is not connected.