Tensorlake vs Upstash Box
Tensorlake gives each sandbox a microVM with its own kernel, Docker inside and memory snapshots that wake up warm. Upstash Box gives each agent a light container with Claude Code, Codex or OpenCode built in, billed only for the CPU it uses.
The companies and products
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
Upstash Box
Upstash Box is a cloud computer for AI agents from Upstash, the company known for serverless Redis, Vector and QStash.
Each box is a Docker container with its own filesystem, shell, git and an optional coding agent such as Claude Code, Codex or OpenCode, which you drive from TypeScript or Python SDKs. A box pauses when it sits idle, keeps its files, and you pay for the CPU it actually uses. Upstash built it to run its own Context7 service and opened it to everyone in March 2026.
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. “5th cheapest of 367” means 4 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 | Tensorlake: price rank | Upstash Box: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Tensorlake fits a software factory because it runs Docker inside, while an Upstash box is itself a container; boat adds /dev/kvm and coding agents built in. | 5th cheapest of 367 $1,010 a month | 61st of 367, with limits $464 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 9th cheapest of 366 $1,381 a month | 103rd of 366, with limits $475 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 Upstash fits short code runs well, since an idle box costs no CPU; Tensorlake also fits, and boat's start-rate limits make big bursts a compromise. | 24th cheapest of 345 $250 a month | 10th cheapest of 345 $119 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 All three fit a sandbox per user through an API; Upstash wakes a paused box on the next request, and boat adds HTTPS URLs and raw TCP per sandbox. | 5th cheapest of 361 $471 a month | 2nd cheapest of 361 $222 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 is built for RL rollouts, with 1,000 sandboxes at once and warm clones from one memory snapshot, which Upstash and boat do not match. | Cheapest of 360 $5,637 a month | 352nd of 360, with limits $8,068 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 | 24th cheapest of 364 $506 a month | 52nd cheapest of 364 $1,011 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 CI jobs that build containers need Docker, which Tensorlake and boat run inside and Upstash does not; boat's Ryzen 9 9950X hosts are the fastest measured. | 54th cheapest of 377 $424 a month | 120th cheapest of 377 $1,520 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Upstash's flat-price keep-alive box suits a light dev box that stays on, while Tensorlake's model is built around suspending idle sandboxes. | 185th of 368, with limits $250 a month | 10th cheapest of 368 $20 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 Tensorlake has an XFCE desktop over VNC and Upstash has only a headless browser; boat streams a full Linux desktop at 60fps. | 9th cheapest of 369 $294 a month | 73rd of 369, with limits $76 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 | 13th cheapest of 367 $250 a month | 49th of 367, with limits $38 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 | 22nd cheapest of 346 $250 a month | 37th cheapest of 346 $400 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 | 121st of 338, with limits $3,484 a month | 200th of 338, with limits $8,000 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 Tensorlake gives root in a real kernel, which a container does not; boat adds raw TCP inbound and nested virtualization. | 4th cheapest of 360 $250 a month | 225th of 360, with limits $259 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 | Tensorlake | Upstash Box | boat |
|---|---|---|---|
| Isolation | Firecracker and Cloud Hypervisor microVMs with their own kernel; GPU sandboxes use gVisor | One Docker container per box on AWS | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Docker inside | Yes, on the tensorlake/ubuntu-systemd image | Not documented; the box is itself a Docker container | Yes, with root and systemd |
| Nested virtualization | No: sandboxes set SANDBOX_KVM_AVAILABLE=0 | No; boxes are containers | Yes, /dev/kvm inside, so Android emulators and VMs run |
| Saving state | Memory snapshots and suspend keep running processes and restore warm | Pauses when idle and keeps its files; filesystem snapshots | Disk saved every minute and on stop; a stopped sandbox costs nothing |
| Clone a running sandbox | Copy a running or suspended sandbox into many warm clones with memory | Snapshot a running box and start many new boxes from it | Fork a running sandbox with its disk |
| Wake on request | Named sandboxes suspend on idle and resume warm with memory | Yes; a request to a public URL resumes a paused box | No; a stopped sandbox is started by API |
| Biggest machine | 16 vCPU / 64 GB RAM on Pro | Large: 8 vCPU / 16 GB | Up to 16 vCPU / 32 GB on the $100 plan and above |
| Disk | 10 to 100 GiB, fixed at creation | 5, 10 or 20 GB by size | 50 GB at the default 4 vCPU / 8 GB size, 12 to 251 GB by size |
| Coding agents | You bring and run your own agent; images are plain OS bases | Claude Code, Codex and OpenCode built in, with run and stream APIs and webhooks | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| API keys | Stored secrets are injected into the sandbox | Host proxy adds headers to outbound HTTPS on port 443, set when the box is created | Credentials proxy for any HTTPS API; switch a credential to another account when credits run out |
| Desktop and computer use | XFCE desktop with Firefox over VNC, with screenshot, mouse and keyboard calls | Managed headless Chromium with AI page actions and CDP; no desktop | 60fps Linux desktop and Chromium, computer-use and browser control, embeddable stream |
| Inbound traffic | HTTP, WebSocket and gRPC through an authenticated proxy | HTTPS URL per port, public unless you add a token; SSH through a gateway | HTTPS URLs for up to 50 ports, token-protected, plus raw TCP and a dedicated IP |
| Outbound rules | Allow and deny by domain, IP or CIDR, or no internet | Allow all, deny all, or allow and deny by domain and CIDR on a running box | No provider-side allowlist; you set your own firewall as root |
| GPUs and regions | GPU sandboxes by request; US and EU, or your own cloud through BYOC | No GPUs; AWS us-east-1 only | No GPUs; EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | Tensorlake | Upstash Box | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Not published | Yes |
| Systemd | Yes | Not published | Yes |
| Desktop GUI | Yes | No | Yes |
| Browser | Yes | Yes | Yes |
| Computer-use API | Yes | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | Yes | No | 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 | No | Yes | Yes |
| Secret proxy for any API | No | Yes | Yes |
| Preinstalled agents | No | Yes | Yes |
| Agent harness API | No | Yes | Yes |
| MCP server | No | Yes | No |
| GPU | Yes | No | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | No | No | No |
| BYOC | Yes | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | No | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Yes | Not published | Yes |
Performance
Neither Tensorlake nor Upstash Box has a result on the hpc-sandbox-benchmarks CPU test, so there is no comparable speed measurement between them. boat did 26.69 runs per second on that Node.js build-and-test loop at 4 vCPU / 8 GB, the fastest result measured, on dedicated AMD Ryzen 9 9950X hosts.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Tensorlake and Upstash Box 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 | Tensorlake, a month | Upstash Box, 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 | $250 · Pro | $21 · Pay as You Go | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $250 · Pro | $21 · Pay as You Go | $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 | $1,030 · Pro | $900 · Pay as You Go · with limits | $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 | $293 · Pro | $306 · Pay as You Go | $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 | $1,127 · Pro | $1,822 · Pay as You Go | $2,000 · $2000/mo · with limits |
Tensorlake: Pro is $250 per billing cycle, which includes $250 of usage, then $0.01 per CU. CPU is billed only while it is working, RAM and disk are billed on what you allocate while running, and small users can buy prepaid packs from $5 instead.
Upstash Box: A standard box is billed for the CPU it actually uses, at $0.10, $0.20 or $0.40 per active CPU hour by size, plus $0.10 per GB-month of storage, and RAM is free. A keep-alive box costs a flat $8, $16 or $32 a month.
Upstash Box: Plans start at $20 a month, and the whole fee becomes usage credit. Running time is billed per second, and a stopped sandbox costs nothing while its disk is kept.
Limits in those scenarios
Upstash has no Docker inside a box, so 50 agents in parallel with Docker does not fit there, its disks stop at 20 GB, and its egress price is not published. Tensorlake fits every scenario here on Pro, with 1,000 sandboxes at once, but its table price starts at the $250 Pro fee and an ephemeral sandbox ends after 10 idle minutes by default. boat's limit is start rate: for 1,000 short jobs at once it starts at most 90 a minute, so the burst is queued.
| Scenario | Tensorlake | Upstash Box | 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 Tensorlake when
you fan out many short rollouts or evals from one warm state, need Docker in a microVM, or need GPUs, an EU region or your own cloud account.
- Memory snapshots and warm clones. For agents that must pick up mid-process, Tensorlake saves a sandbox's memory and copies it into warm clones.
- Docker in a real kernel. For agents that run databases or build images, Tensorlake's microVMs run Docker inside, which an Upstash container does not.
- GPUs, EU and your own cloud. Tensorlake offers GPU sandboxes by request, an EU region, and can run in your own AWS, GCP or Azure account.
Use Upstash Box when
your agents mostly wait, should wake on an incoming request, want a coding agent built in, and run fine in a light container in the US.
- Coding agents built in. Upstash ships Claude Code, Codex and OpenCode in every box, with run and stream APIs, webhooks and scheduled prompts.
- Idle costs no CPU. For agents that wait a lot, Upstash bills only CPU actually used, RAM is free, and a request wakes a paused box.
- A flat price for a box that stays on. A keep-alive box costs a flat $8, $16 or $32 a month by size, with CPU and storage included.
Where boat fits
Tensorlake is strongest at fanning out short rollouts from a warm state, and Upstash at cheap agents that wait. If your agents do long, real work like installs, builds, Docker, emulators and a desktop, boat gives each one a full VM that stays on with no session cap on paid plans.
Docker and /dev/kvm in every sandbox
Upstash boxes are containers with no Docker inside, so the 50-agent scenario does not fit there. Tensorlake runs Docker but sets SANDBOX_KVM_AVAILABLE=0, so neither one can boot an Android emulator or a VM.
A desktop the agent can see
Upstash has only a headless browser, so desktop apps and native dialogs are out of reach. Tensorlake's workaround is an XFCE desktop over VNC; boat streams a full Linux desktop at 60fps that you can embed.
Reach it like a server
Tensorlake's proxy carries only HTTP, WebSocket and gRPC, and Upstash gives HTTPS per port, so a raw TCP service an agent starts can't be reached. boat gives HTTPS on up to 50 ports, raw TCP and a dedicated IP.
Use boat when your agents do real work for hours: Docker, emulators, a 60fps desktop and services that keep running, with coding agents built in and keys kept outside the machine. Compare it one to one: boat vs Tensorlake and boat vs Upstash Box.
Questions people ask
Is Tensorlake cheaper than Upstash Box?
For one agent, no: one coding agent on workdays is $21 a month on Upstash and $250 on Tensorlake Pro. For 1,000 short jobs at once Tensorlake is cheaper, $1,127 against $1,822, and for sandboxes for your users it is $293 against $306. The table prices Tensorlake's Pro plan, so very small workloads can cost less on its prepaid packs.
Which is faster, Tensorlake or Upstash Box?
Neither has a published result on the hpc-sandbox-benchmarks CPU test, so there is no fair speed comparison. Tensorlake's docs say its default image starts in a few hundred milliseconds. boat scored 26.69 runs per second on that test, the fastest measured.
Can Upstash Box or Tensorlake run Docker?
Tensorlake runs Docker inside its microVMs on the tensorlake/ubuntu-systemd image. Upstash's docs do not offer Docker inside a box, which is itself a container. boat runs Docker and systemd in every sandbox.
Which one has coding agents built in?
Upstash Box ships Claude Code, Codex and OpenCode, with run and stream APIs. On Tensorlake you install your own agent. boat preinstalls Claude Code, Codex, OpenCode and more, and you drive agents inside from outside with one API.
Where do Tensorlake and Upstash Box run?
Upstash Box runs only in AWS us-east-1. Tensorlake runs in the US and the EU, and can run in your own cloud account through BYOC. boat runs in the EU, in Germany, Finland and France.
Can either one run a desktop for computer use?
Tensorlake has an XFCE desktop with Firefox over VNC, with screenshot, mouse and keyboard calls. Upstash has a headless Chromium and no desktop. boat streams a full Linux desktop at 60fps with computer-use tools.
Try boat
Install the CLI, then run boat new.
7-day free trial