Runloop vs Tensorlake

Both run AI agents in their own microVMs. Runloop builds devboxes from Dockerfiles and adds agent tools like Axons and key-hiding gateways, while Tensorlake saves a sandbox's memory and copies it into warm clones, with GPUs and US or EU regions.

The companies and products

Runloop

Runloop is a US platform of sandboxes, called devboxes, for building, running and testing AI coding agents.

You get Linux devboxes built from Dockerfile-style blueprints, disk snapshots, HTTPS tunnels, agent gateways that hide API keys, and Axons, event streams that drive agents such as Claude Code. Each devbox runs in a micro-VM on Runloop's own bare-metal hypervisor, with a container layer inside. It is built for teams shipping coding agents, plus evaluation and RL fine-tuning work on the Enterprise plan.

Compliance
SOC 2 Type 2

Tensorlake

Tensorlake is a San Francisco company that sells infrastructure for AI agents, with sandboxes as its main product.

Tensorlake Sandboxes are microVMs, backed by Firecracker and Cloud Hypervisor, that you create through an API and that boot in a few hundred milliseconds. Named sandboxes suspend when idle and keep their memory and running processes, and you can copy a running sandbox into several warm clones. Around them Tensorlake sells versioned file systems, hosted Git, an orchestration layer and a bring-your-own-cloud option, aimed at teams running coding agents, evals and RL rollouts.

Headquarters
San Francisco

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. “20th cheapest of 367” means 19 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 workloadRunloop: price rankTensorlake: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
All three fit a software factory; bochka adds nested virtualization for Android emulators and keeps the disk on every plan.
20th cheapest of 367
$8,152 a month
5th cheapest of 367
$1,010 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
Tensorlake keeps an idle agent's memory while it sleeps, Runloop's suspend needs the Pro plan, and bochka keeps the machine on with no session cap.
32nd cheapest of 366
$10,194 a month
9th cheapest of 366
$1,381 a month
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
Both fit many short code runs, and bochka's start-rate limits make large bursts a compromise there.
44th cheapest of 345
$525 a month
24th cheapest of 345
$250 a month
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
26th cheapest of 361
$3,301 a month
5th cheapest of 361
$471 a month
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
Tensorlake ranks first for RL rollouts, with warm clones from one prepared state and 1,000 sandboxes at once on Pro.
4th cheapest of 360
$15,922 a month
Cheapest of 360
$5,637 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
81st cheapest of 364
$2,562 a month
24th cheapest of 364
$506 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
bochka's faster CPUs finish builds sooner; Runloop scored 8.29 runs a second and Tensorlake has no measurement.
121st cheapest of 377
$1,554 a month
54th cheapest of 377
$424 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Tensorlake is a compromise for a box that stays on all month, since its model is built around suspending idle sandboxes.
113th cheapest of 368
$410 a month
185th of 368, with limits
$250 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
All three ship a desktop your agent can control; bochka streams it at 60fps and Tensorlake uses VNC.
39th cheapest of 369
$2,306 a month
9th cheapest of 369
$294 a month
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
40th cheapest of 367
$1,153 a month
13th cheapest of 367
$250 a month
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
68th cheapest of 346
$781 a month
22nd cheapest of 346
$250 a month
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
266th of 338, with limits
$15,611 a month
121st of 338, with limits
$3,484 a month
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
Both let you limit outbound traffic, Tensorlake by domain, IP or CIDR and Runloop by hostname; bochka adds raw TCP and nested virtualization.
10th cheapest of 360
$770 a month
4th cheapest of 360
$250 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 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

FeatureRunloopTensorlakebochka
IsolationMicro-VM on a custom bare-metal hypervisor, plus a container layerFirecracker and Cloud Hypervisor microVMs; GPU sandboxes use gVisorFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Nested virtualizationNot documented; Docker-in-Docker blueprints onlyNo: sandboxes set SANDBOX_KVM_AVAILABLE=0Yes: /dev/kvm, Android emulators and VMs inside
Docker insideYes, on the dnd blueprints, as rootYes, on the tensorlake/ubuntu-systemd imageYes, with root and systemd
CPU architecturex86_64 and arm64x86_64 onlyx86_64 only
Memory snapshotsNo: disk snapshots onlyYes: suspend and memory snapshots keep running processes and restore warmNo: disk is kept, resume reboots the machine
Clone a running sandboxFork a running devbox (disk)Copy a running or suspended sandbox into N warm clones with memoryFork a running sandbox (disk)
Keeping filesKept through suspend (Pro plan) or manual disk snapshots; shutdown ends the devboxNamed sandboxes suspend with memory; ephemeral ones end on idle timeoutSnapshot every minute and on stop, on every plan; a stopped sandbox costs nothing
Long runsFixed lifetime 1 hour by default, 48 hours max; an idle policy replaces itNo duration cap on Pro; 24 hours on prepaid credits; idle timeout 600 s by defaultNo session cap on paid plans; default TTL 1 hour, changeable
Idle sleep and wakeSuspend after idle, wake on an HTTP request to the tunnel (Pro)Suspend or terminate after idle; named sandboxes wake with memoryNo idle timer; TTL based
Built-in agentsClaude Code, Codex, OpenCode, Gemini CLI, DeepAgents, driven through Axons and BrokerYou bring and run your own agent; managed images are plain OS basesClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API
Hidden API keysAgent gateways for any API endpoint with bearer, header or basic authStored secrets are injected into the sandboxCredentials proxy for model providers and any HTTPS API; real keys never enter the sandbox
Inbound networkingOne HTTPS tunnel per devbox; SSH through a TLS proxy; no public IPHTTP, WebSocket and gRPC through an authenticated proxy; no public IPHTTPS URLs for up to 50 ports, token-protected, raw TCP, dedicated IPv6 or IPv4
Outbound rulesHostname allowlist with wildcards, or block allallow_out and deny_out by domain, IP or CIDR, or no internetNo provider-side allowlist; you set your own firewall as root
GPUsNoneGPU sandboxes by request (H100 shown in the docs)None
Where it runsRegions not documented; Deploy to VPC on AWS, GCP or Azure (Enterprise)US and EU, or your own AWS, GCP, Azure, CoreWeave, Nebius or bare-metal accountEU only (Germany, Finland, France), EU data residency
Every feature Battleships tracks (43)
FeatureRunloopTensorlakebochka
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoNoYes
RootYesYesYes
SystemdNot publishedYesYes
Desktop GUIYesYesYes
BrowserYesYesYes
Computer-use APIYesYesYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsYesYesYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesNoYes
Secret proxy for any APIYesNoYes
Preinstalled agentsYesNoYes
Agent harness APIYesNoYes
MCP serverYesNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64YesNoNo
Self-hostingNoNoNo
BYOCYesYesNo
Open sourceNoNoNo
Scoped API keysYesNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)NoNoYes
Audit logsNot publishedNot publishedNo
SSOYesYesNo
SOC 2YesYesNo
HIPAANot publishedYesNo
EU data residencyNoYesYes
Zero data retentionNot publishedYesYes

Performance

Runloop8.29 runs/s
TensorlakeNot measured
bochka26.69 runs/s

On the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB (run 36498291449, 2026-09-29), bochka scored 26.69 runs a second and Runloop 8.29, about 3.2 times apart. Tensorlake has no published result on this benchmark, so there is no comparable CPU measurement for it. The test measures CPU work only, not start time or network speed.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Tensorlake 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.

ScenarioRunloop, a monthTensorlake, 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
$113 · Basic$250 · Pro$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$429 · Basic$250 · Pro$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
$5,268 · Basic$1,030 · Pro$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,441 · Basic$293 · Pro$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
$3,184 · Basic$1,127 · Pro$2,000 · $2000/mo · with limits

Runloop: Runloop bills per second for the CPU and memory you allocate while a devbox starts, runs, suspends or resumes, and bills its disk for the devbox's whole life. Basic has no plan fee; Pro adds $250 a month that is not usage credit and unlocks suspend and resume.

Tensorlake: Tensorlake Pro is $250 per billing cycle, which includes $250 of usage, then $0.01 per CU. CPU is billed only while it is actively working, RAM and disk on what you allocate while running, and a suspended sandbox pays snapshot storage.

Tensorlake: Small users can buy prepaid Usage Credits packs from $5 instead, with no overage: sandboxes stop at zero balance. The table prices the Pro path, so it overstates very small Tensorlake workloads.

Tensorlake: Plans start at $20 a month and the whole fee is usage credit, billed per second while a sandbox runs. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Runloop's fixed lifetime defaults to 1 hour and tops out at 48 hours unless an idle policy replaces it, suspend needs Pro, its egress price is not published and its disk tops out at 64 GiB. Tensorlake Pro allows 1,000 sandboxes at once with no duration cap, but CPU, memory and disk are fixed at creation, disk is 10 to 100 GiB, and an ephemeral sandbox ends after 10 idle minutes by default. bochka's limit that bites is start rate: even the $2,000 plan queues bursts above 90 starts a minute, so 1,000 short jobs at once does not fit.

ScenarioRunloopTensorlakebochka
One coding agent, workdays
  • egress price not published
None that biteNone that bite
One agent that never stops
  • egress price not published
None that biteNone that bite
50 agents in parallel
  • egress price not published
None that biteNone that bite
Sandboxes for your users
  • egress price not published
None that biteNone that bite
1,000 short jobs at once
  • egress price not published
None that bite
  • 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 Runloop when

you want agents and key-hiding gateways ready to use, build images from Dockerfiles, need arm64, or want devboxes inside your own AWS, GCP or Azure account.

  • Agents and key gateways built in. Useful if you want agents ready to drive: Runloop runs Claude Code, Codex and others through Axons, and gateways hide API keys.
  • Dockerfile blueprints and arm64. Useful if your images live in Dockerfiles or you need arm64: Runloop builds blueprints from Dockerfiles on x86_64 or arm64.
  • Wake on a request. On the Pro plan, Runloop suspends an idle devbox and wakes it when an HTTP request reaches its tunnel.

Use Tensorlake when

you fan out many short rollouts from one warm memory state, or need GPUs, US and EU regions, fine outbound rules or sandboxes in your own cloud.

  • Memory snapshots and warm clones. Useful when an agent must pick up mid-process: Tensorlake saves a sandbox's memory and copies it into many warm clones.
  • GPUs and more places to run. Tensorlake offers GPU sandboxes by request, runs in the US and the EU, and can run in your own cloud account.
  • Finer outbound rules. Useful if sandboxes must stay fenced in: Tensorlake allows or denies outbound traffic by domain, IP or CIDR.

Where bochka fits

If your agents do long, heavy work, such as installs, builds, tests, Docker and emulators, bochka gives each one a full VM on faster CPUs that you can reach like a server. Runloop and Tensorlake are both built around short-lived microVMs that sleep when idle. bochka is the weaker pick for 1,000 jobs started at once, where its start-rate limits queue the burst.

Emulators and VMs start

Tensorlake sandboxes report no KVM and Runloop documents only Docker-in-Docker, so an Android emulator or a VM an agent needs does not start on either. bochka exposes /dev/kvm in every sandbox.

Builds finish sooner

On the same Node.js build-and-test benchmark, bochka ran 26.69 loops a second and Runloop 8.29, so each install and test waits about three times longer there. Tensorlake has no published result.

Files kept, machine reachable

On Runloop a shut-down devbox is gone unless you pay for Pro or script snapshots, and neither Runloop nor Tensorlake carries raw TCP. bochka saves the disk every minute and gives 50 HTTPS ports plus raw TCP.

Use bochka when your agents do real work for hours: installs, builds, tests, Docker and emulators, on the fastest measured CPUs, with files kept on every plan and ports you can reach like a server. Compare it one to one: bochka vs Runloop and bochka vs Tensorlake.

Questions people ask

Is Runloop cheaper than Tensorlake?

Only for light use. One coding agent on workdays is $113 a month on Runloop and $250 on Tensorlake Pro, whose fee is a floor. For one agent that never stops it is $429 against $250, and for 50 agents in parallel $5,268 against $1,030.

Which is faster, Runloop or Tensorlake?

We can't say on CPU: Runloop scored 8.29 runs a second on the hpc-sandbox-benchmarks Node.js loop, and Tensorlake has no published result. bochka scored 26.69 on the same test.

Can Runloop or Tensorlake run Docker?

Yes, both. Runloop runs Docker on its dnd blueprints as root, and Tensorlake on its tensorlake/ubuntu-systemd image. Neither offers nested virtualization; bochka exposes /dev/kvm for emulators and VMs.

Which keeps a sandbox's memory when it sleeps?

Tensorlake. Named sandboxes suspend with memory and running processes, and can be copied into warm clones. Runloop keeps the disk through suspend on Pro or disk snapshots, and bochka keeps the disk but reboots on resume.

Which one has GPUs?

Tensorlake offers GPU sandboxes by request, running on gVisor. Runloop and bochka have no GPUs.

Can I run them in my own cloud?

Runloop deploys into your own AWS, GCP or Azure account on Enterprise. Tensorlake BYOC covers AWS, GCP, Azure, CoreWeave, Nebius and bare metal. bochka runs only in its own EU data centers.

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.