Together Code Sandbox vs Unikraft Cloud

Together Code Sandbox starts VMs from Docker-image snapshots and can save their memory when they end, but Together has to turn it on for your organization. Unikraft Cloud is self-serve today: it turns a Dockerfile into a tiny microVM that sleeps when idle and wakes in milliseconds on the next request.

The companies and products

Together Code Sandbox

Together AI is a cloud for running and training AI models, and Code Sandbox is its product for running code in isolated VMs.

You build a snapshot from a Docker image or Dockerfile on Together's builder, then start sandboxes from it and run commands and file operations through the together-sandbox SDK or CLI. When a sandbox ends you can save its disk, and its memory too, as a new snapshot to start more sandboxes from. It is aimed at model-generated code, agent tool calls and reinforcement learning rollouts, and it must be enabled for your organization by Together. Together also sells Code Interpreter, a separate API that runs Python code in short sessions.

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. “65th cheapest of 367” means 64 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 workloadTogether Code Sandbox: 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, root and often /dev/kvm; neither Together nor Unikraft documents Docker inside a sandbox, Unikraft keeps nested virtualization for Enterprise, and bochka has all three on every machine.
65th of 367, with limits
$528 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 needs room to work; Unikraft's Team pool is 8 GiB shared by every running instance, and Together's self-serve Code Interpreter ends each session after 60 minutes.
152nd of 366, with limits
$1,095 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 code runs suit both: Together's Code Interpreter runs Python in sessions billed per 60 minutes, while Unikraft wakes a sleeping microVM in milliseconds but caps self-serve plans at 24 running instances.
326th of 345, with limits
$2,190 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
Unikraft Pro holds 5,000 sleeping instances but only 24 running ones, and every Together port is public with preview URLs still coming soon, so bochka's token-protected HTTPS URLs need less work for hundreds of users.
234th of 361, with limits
$900 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
Both can branch runs from a warm state: Together saves a sandbox with its memory when it ends, and Unikraft checkpoints a running microVM, but Together's VMs need Together to enable them and Unikraft's self-serve pools are small.
315th of 360, with limits
$21,900 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
258th of 364, with limits
$450 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 that build Docker images or run Android emulators need a container runtime and /dev/kvm, which bochka has on every plan and which Unikraft offers only on Enterprise.
251st of 377, with limits
$180 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's Team pool keeps one box around all month and Together's priced product is a 60-minute Python session, and neither offers SSH, so on both you work through a CLI or SDK instead of logging in.
210th of 368, with limits
$22 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; bochka streams one at 60fps, while Together and Unikraft both leave you to build your own inside the image.
184th of 369, with limits
$600 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
301st of 367, with limits
$900 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
219th of 346, with limits
$180 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
124th of 338, with limits
$3,600 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
167th of 360, with limits
$150 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

FeatureTogether Code SandboxUnikraft Cloudbochka
IsolationA VM per sandbox on Together's infrastructureMinimal Linux microVM on a customized Firecracker VMMFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Getting startedThe SDK and CLI must be enabled for your organization by Together; only Code Interpreter is self-serveSelf-serve plans, with a free Hobby plan and no cardSign up and start a sandbox from the API, CLI or dashboard
Machine size0.1 to 16 cores, 1 to 8 GB of memory per core; disk size fixedPlan 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, root and systemdCommands run as user 1000 by default, root on request; Docker inside not documentedRuns as root; the Dockerfile becomes the VM image, with no container runtime inside documentedDocker, systemd and root on every machine
Nested virtualizationNot documentedYes, with a per-instance flag and permission, Enterprise onlyYes, /dev/kvm for Android emulators and VMs on every plan
Shell accessCommands, interactive shells and files through the SDK and CLI; no SSHNo SSH yet; commands and files through the sandbox plugin and CLISSH, plus exec and files over the API
Idle and wakeTime to live counts from creation; no idle detection and no wake on requestStandby after a 1 second idle cooldown by default; incoming traffic wakes it in millisecondsRuns until you stop it or its time to live ends; started again by API
Snapshots and forkEnd a sandbox with a snapshot of its disk and memory, then start many sandboxes from it; no live forkCheckpoint memory and volumes of a running microVM with a pause of a few milliseconds, then start new instances from itDisk saved every minute and on stop; fork a running sandbox while the original keeps running
Reaching the sandboxAll ports public; preview URLs coming soon; an experimental inbound allowlist by IP or tokenServices on its load balancer: HTTP on 80, HTTPS on 443, TLS-wrapped TCP on other ports; no public IP per instanceHTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6
Desktop and browserNone; headless command and file access onlyNone built in; you can run your own headless browser from a DockerfileLinux desktop streamed at 60fps, Chromium and computer-use tools
Coding agentsRun your own agent through execs; a Harbor guide for agent evalsNone 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 out of the sandboxNo credentials proxy documentedNetwork shield can inject secrets into traffic, Enterprise only, limited accessCredentials proxy for model providers and any HTTPS API, on every plan
Hosted code interpreterCode Interpreter API runs Python in sessions billed per 60 minutesNoneNo separate product; run code through exec in a sandbox
RegionsNot publishedDallas, Frankfurt, San Francisco, Singapore and Washington DC by default; more on requestEU only (Germany, Finland, France)
Every feature Battleships tracks (43)
FeatureTogether Code SandboxUnikraft Cloudbochka
Full VM (own kernel)YesYesYes
Docker insideNot publishedNoYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdNot publishedNot publishedYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHNoNoYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsNoYesYes
Fork/cloneYesYesYes
Live fork (no pause)NoYesYes
Memory forkYesYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopNoYesNo
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 serverYesNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoYesNo
BYOCNoYesNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)YesNoYes
Audit logsNot publishedYesNo
SSOYesNoNo
SOC 2YesYesNo
HIPAANoYesNo
EU data residencyNot publishedYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Together Code SandboxNot measured
Unikraft CloudNot measured
bochka26.69 runs/s

There is no comparable CPU measurement for Together Code Sandbox or Unikraft Cloud: neither was in the StarSling hpc-sandbox-benchmarks run that measured bochka at 26.69 runs per second 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. Together Code Sandbox 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.

ScenarioTogether Code Sandbox, 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
$5 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limits$39 · Hobby$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$22 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · 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
$264 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · 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
$900 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · 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 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limitsCan't run it$2,000 · $2000/mo · with limits

Together Code Sandbox: Together lists Code Sandbox at $0.0446 per vCPU-hour and $0.0149 per GiB-hour, but the VMs must be enabled for your organization, so the table prices Code Interpreter: $0.03 per 60-minute session from prepaid credits, with a $5 minimum purchase.

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 becomes usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

The Together column is Code Interpreter, and it fits no scenario: sessions last 60 minutes, nothing is kept after a session, it runs only Python, and the machine size is not published. Unikraft fits one agent, since a single 4 vCPU / 8 GB agent fills the Team pool, but 50 agents, sandboxes for your users and 1,000 short jobs are above every self-serve pool and need Enterprise. On bochka the limit that bites is starts: at 1,000 short jobs at once, even the $2,000 plan queues them.

ScenarioTogether Code SandboxUnikraft Cloudbochka
One coding agent, workdays
  • Together pay-as-you-go (prepaid credits; Code Interpreter only): sessions capped at 1 h
  • 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
  • Together pay-as-you-go (prepaid credits; Code Interpreter only): sessions capped at 1 h
  • 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
  • Together pay-as-you-go (prepaid credits; Code Interpreter only): sessions capped at 1 h
  • 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
  • machine size not published
  • different kind of product: code interpreter
  • machine size per session not published
  • egress price not published
  • 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
  • machine size not published
  • different kind of product: code interpreter
  • machine size per session not published
  • egress price not published
  • 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 Together Code Sandbox when

you already run models on Together and want light sandboxes, from a tenth of a core, that you can save with their memory and branch from, or a simple Python runner billed per session.

  • Memory snapshots to branch from. Useful for rollouts and test variants: end a sandbox with its memory saved and start many copies with processes still running.
  • Sandboxes next to your models. Handy if you already run inference or fine-tuning on Together: sandboxes and models share one account and API key.
  • Very small machines and a Python runner. Good for many light jobs: sandboxes start at a tenth of a core, and a Python interpreter API bills per session.

Use Unikraft Cloud when

you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, need US or Asia regions, or want GPUs, on-prem or your own cloud under an Enterprise contract.

  • Millisecond wake and scale-to-zero. Best for many small services that sleep most of the time and must answer the next request in milliseconds.
  • Self-serve from day one. You can sign up and run instances today on a free Hobby plan, without asking anyone to enable your account.
  • 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

Together and Unikraft both run code in small VMs that you drive through an SDK or CLI. If what you are really running is agents that work for hours, install tools, run Docker and serve apps, bochka gives each one a whole machine you can sign up for today, with the agent and its keys already set up.

A whole machine the agent can work in

Neither Together nor Unikraft documents Docker inside a sandbox or offers SSH, and Unikraft keeps /dev/kvm for Enterprise. The workaround is baking every tool into the image up front. bochka has root, systemd, Docker, SSH and /dev/kvm on every plan.

Agents, desktop and keys built in

On both, you build the agent, browser and desktop into your own image. Together has no credentials proxy and Unikraft's secret injection is Enterprise only, so keys sit inside a machine the agent controls. bochka keeps them in a proxy outside.

Big fleets of full-size sandboxes, self-serve

Fifty agents at 4 vCPU / 8 GB are above every Unikraft self-serve pool, and Together's VMs need Together to turn them on. bochka's paid plans run 100 to 2,000 sandboxes at once with no session cap and no sales call.

Use bochka when your agents need a real machine to work in for hours: Docker, emulators, SSH, 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: bochka vs Together Code Sandbox and bochka vs Unikraft Cloud.

Questions people ask

Is Together Code Sandbox cheaper than Unikraft Cloud?

Together's only self-serve price is Code Interpreter at $0.03 per 60-minute session, which keeps no disk and does not fit an agent that works all day. Unikraft's $39 Team pool fits one 4 vCPU / 8 GB agent, but for 50 agents or hundreds of user sandboxes no self-serve Unikraft plan is big enough. On bochka, 50 agents cost $317 a month and sandboxes for your users $200 a month.

Which is faster, Together Code Sandbox or Unikraft Cloud?

Neither has a comparable CPU measurement, so there is no fair speed ratio. Unikraft is built to start fast: its microVMs cold boot in milliseconds and wake on the next request. Together sandboxes have no wake on request, and you start them from snapshots through the SDK.

Can Together Code Sandbox or Unikraft Cloud run Docker?

Both build sandboxes from Docker images, but neither documents running Docker inside a running sandbox. A bochka sandbox is a full Ubuntu VM with Docker, systemd and /dev/kvm ready to use.

Can I SSH into Together Code Sandbox or Unikraft Cloud?

No. Together gives you commands, interactive shells and files through its SDK and CLI, and Unikraft uses its sandbox plugin and CLI. You can SSH into every bochka sandbox or drive it through its API.

Can I start using them today?

Unikraft Cloud yes: the Hobby plan is free with no card. Together's VM sandboxes must be enabled for your organization, so you ask Together first; only Code Interpreter is self-serve on prepaid credits.

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.