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
- Architectures
- x86_64 and arm64 base blueprints
- Own-cloud deploy
- Deploy to VPC on AWS, GCP and Azure (Enterprise)
- Regions
- Not documented or selectable
- Company
- Runloop AI, Inc.
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
- Investors shown
- Redpoint and Amplify Partners
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 workload | Runloop: price rank | Tensorlake: price rank | boat: 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; boat 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 boat 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 boat'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 boat'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; boat 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; boat 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 it | 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 | Runloop | Tensorlake | boat |
|---|---|---|---|
| Isolation | Micro-VM on a custom bare-metal hypervisor, plus a container layer | Firecracker and Cloud Hypervisor microVMs; GPU sandboxes use gVisor | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Nested virtualization | Not documented; Docker-in-Docker blueprints only | No: sandboxes set SANDBOX_KVM_AVAILABLE=0 | Yes: /dev/kvm, Android emulators and VMs inside |
| Docker inside | Yes, on the dnd blueprints, as root | Yes, on the tensorlake/ubuntu-systemd image | Yes, with root and systemd |
| CPU architecture | x86_64 and arm64 | x86_64 only | x86_64 only |
| Memory snapshots | No: disk snapshots only | Yes: suspend and memory snapshots keep running processes and restore warm | No: disk is kept, resume reboots the machine |
| Clone a running sandbox | Fork a running devbox (disk) | Copy a running or suspended sandbox into N warm clones with memory | Fork a running sandbox (disk) |
| Keeping files | Kept through suspend (Pro plan) or manual disk snapshots; shutdown ends the devbox | Named sandboxes suspend with memory; ephemeral ones end on idle timeout | Snapshot every minute and on stop, on every plan; a stopped sandbox costs nothing |
| Long runs | Fixed lifetime 1 hour by default, 48 hours max; an idle policy replaces it | No duration cap on Pro; 24 hours on prepaid credits; idle timeout 600 s by default | No session cap on paid plans; default TTL 1 hour, changeable |
| Idle sleep and wake | Suspend after idle, wake on an HTTP request to the tunnel (Pro) | Suspend or terminate after idle; named sandboxes wake with memory | No idle timer; TTL based |
| Built-in agents | Claude Code, Codex, OpenCode, Gemini CLI, DeepAgents, driven through Axons and Broker | You bring and run your own agent; managed images are plain OS bases | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Hidden API keys | Agent gateways for any API endpoint with bearer, header or basic auth | Stored secrets are injected into the sandbox | Credentials proxy for model providers and any HTTPS API; real keys never enter the sandbox |
| Inbound networking | One HTTPS tunnel per devbox; SSH through a TLS proxy; no public IP | HTTP, WebSocket and gRPC through an authenticated proxy; no public IP | HTTPS URLs for up to 50 ports, token-protected, raw TCP, dedicated IPv6 or IPv4 |
| Outbound rules | Hostname allowlist with wildcards, or block all | allow_out and deny_out by domain, IP or CIDR, or no internet | No provider-side allowlist; you set your own firewall as root |
| GPUs | None | GPU sandboxes by request (H100 shown in the docs) | None |
| Where it runs | Regions 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 account | EU only (Germany, Finland, France), EU data residency |
Every feature Battleships tracks (43)
| Feature | Runloop | Tensorlake | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Not published | Yes | Yes |
| Desktop GUI | Yes | Yes | Yes |
| Browser | Yes | Yes | Yes |
| Computer-use API | Yes | Yes | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | No | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | Yes | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | No | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | No | Yes |
| Agent harness API | Yes | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | Yes | No |
| Windows | No | No | No |
| Arm64 | Yes | No | No |
| Self-hosting | No | No | No |
| BYOC | Yes | Yes | No |
| Open source | No | No | No |
| Scoped API keys | Yes | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Not published | Yes | No |
| EU data residency | No | Yes | Yes |
| Zero data retention | Not published | Yes | Yes |
Performance
On the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB (run 36498291449, 2026-09-29), boat 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.
| Scenario | Runloop, a month | Tensorlake, a month | boat, 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. boat'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.
| Scenario | Runloop | Tensorlake | boat |
|---|---|---|---|
| One coding agent, workdays |
| None that bite | None that bite |
| One agent that never stops |
| None that bite | None that bite |
| 50 agents in parallel |
| None that bite | None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
| None that bite |
|
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 boat fits
If your agents do long, heavy work, such as installs, builds, tests, Docker and emulators, boat 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. boat 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. boat exposes /dev/kvm in every sandbox.
Builds finish sooner
On the same Node.js build-and-test benchmark, boat 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. boat saves the disk every minute and gives 50 HTTPS ports plus raw TCP.
Use boat 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: boat vs Runloop and boat 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. boat 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; boat 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 boat keeps the disk but reboots on resume.
Which one has GPUs?
Tensorlake offers GPU sandboxes by request, running on gVisor. Runloop and boat 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. boat runs only in its own EU data centers.
Try boat
Install the CLI, then run boat new.
7-day free trial