Together Code Sandbox vs Upstash Box
Together Code Sandbox starts VMs from Docker-image snapshots and can save their memory, but Together has to turn it on for you, and its self-serve product is a Python Code Interpreter. Upstash Box is a self-serve container with a coding agent built in that pauses when idle and wakes 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.
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. “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 workload | Together Code Sandbox: 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 Neither fits a software factory fully: Together's new SDK does not document Docker inside, and an Upstash box is itself a container, while boat runs Docker, root and /dev/kvm on every machine. | 65th of 367, with limits $528 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 Upstash can keep an agent on all month in a flat-price keep-alive box, while Together sandboxes have no idle detection or wake on request; boat gives the agent a full machine with systemd and a desktop. | 152nd of 366, with limits $1,095 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 because an idle box costs no CPU, while Together's Code Interpreter runs only Python in 60-minute sessions and keeps nothing after. | 326th of 345, with limits $2,190 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 Upstash wakes a user's paused box on the next request and boat gives each user a full VM with token-protected hosting; on Together every port is public and preview URLs are listed as coming soon. | 234th of 361, with limits $900 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 Together can save a sandbox with its memory and start many copies with processes running, which suits rollouts from one warm state, but the VM product needs Together to enable it. | 315th of 360, with limits $21,900 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 | 258th of 364, with limits $450 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 or Android apps need Docker and /dev/kvm, which boat has and neither Together nor an Upstash container documents. | 251st of 377, with limits $180 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 An Upstash keep-alive box is a light dev box at a flat price, Together's self-serve Code Interpreter is not a dev box at all, and boat's is a full VM with Docker and a 50 GB disk. | 210th of 368, with limits $22 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 Computer-use agents need a screen to look at; Together has no browser or desktop, Upstash has a headless Chromium only, and boat streams a full Linux desktop at 60fps. | 184th of 369, with limits $600 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 | 301st of 367, with limits $900 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 | 219th of 346, with limits $180 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 | 124th of 338, with limits $3,600 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 | 167th of 360, with limits $150 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 | Together Code Sandbox | Upstash Box | boat |
|---|---|---|---|
| Isolation | A VM per sandbox on Together's infrastructure | A Docker container per box on AWS | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Getting started | The VM SDK and CLI must be enabled for your organization by Together; only Code Interpreter is self-serve | Self-serve, with a Free plan and Pay as You Go | Sign up and start a sandbox from the API, CLI or dashboard |
| Machine size | 0.1 to 16 cores, 1 to 8 GB of memory per core | Small 2 vCPU / 4 GB, Medium 4 vCPU / 8 GB, Large 8 vCPU / 16 GB | 2 to 16 vCPU with 2 GB per vCPU, up to 16 vCPU / 32 GB on the $100 plan and above |
| Disk | Disk size is not configurable | 5, 10 or 20 GB by size, billed per GB-month | 50 GB at the default 4 vCPU / 8 GB size, 12 to 251 GB by size |
| Docker, root and systemd | Commands run as user 1000 by default, root on request; Docker inside not documented | Docker inside not documented; the box is itself a Docker container, and custom images are coming soon | Docker, systemd and root on every machine |
| Nested virtualization | Not documented | No; boxes are containers | Yes, /dev/kvm for Android emulators and VMs |
| Saving state | End a sandbox with a snapshot of its disk, or disk and memory; a new sandbox resumes with its processes running | Pauses itself when idle and keeps its files; storage keeps billing while paused | Disk saved every minute and on stop; a stopped sandbox costs nothing; resume boots the machine again |
| Fork | No live fork: the parent stops, then you start many sandboxes from its snapshot | Snapshot a running box and start many new boxes from it | Fork a running sandbox; the original keeps running |
| Idle and wake | Time to live counts from creation; no idle detection and no wake on request | Pauses when idle; a request to a public URL resumes the box | Runs until you stop it or its time to live ends; started again by API |
| Inbound access | All ports public; preview URLs coming soon; an experimental inbound allowlist by IP or token | HTTPS URL per port, public unless you add a token or basic auth; SSH through a gateway; no raw TCP | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; SSH |
| Outbound rules | No outbound allowlist documented | Allow all, deny all, or allow and deny by domain and CIDR, changeable on a running box | Open internet, no provider-side allowlist |
| Desktop and browser | None; headless command and file access only | Managed headless Chromium with AI page actions and CDP; no desktop | Linux desktop streamed at 60fps, Chromium and computer-use tools |
| Coding agents | Run your own agent through execs; a Harbor guide for agent evals | Claude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled prompts | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping API keys out of the sandbox | No credentials proxy documented | Host proxy injects headers into outbound HTTPS on port 443; set when the box is created | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
Every feature Battleships tracks (43)
| Feature | Together Code Sandbox | Upstash Box | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Not published | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Not published | Yes |
| Systemd | Not published | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | Yes | Yes |
| Computer-use API | No | No | Yes |
| SSH | No | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | Yes | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | No | Yes | No |
| Wake on request | No | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | No | 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 | Yes | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Yes | Not published | Yes |
| Usage per sandbox (API) | Yes | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | No | No | No |
| EU data residency | Not published | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
Neither Together Code Sandbox nor Upstash Box has a result in the hpc-sandbox-benchmarks CPU test, so there is no comparable measurement between them. boat did 26.69 runs per second on that Node.js build-and-test loop at 4 vCPU / 8 GB, 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. Together Code Sandbox 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 | Together Code Sandbox, 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 | $5 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limits | $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 | $22 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limits | $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 | $264 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limits | $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 | $900 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limits | $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 | $6,000 · Together pay-as-you-go (prepaid credits; Code Interpreter only) · with limits | $1,822 · Pay as You Go | $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 tables use Code Interpreter: $0.03 per 60-minute session from prepaid credits, with a $5 minimum.
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 for Small, Medium and Large, 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. 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 none of the five scenarios: sessions last 60 minutes, nothing is kept after a session, it runs only Python, and the machine size is not published. Upstash fits four of them but not 50 agents in parallel, because it does not run Docker inside a box; its egress price is not published and keep-alive boxes bill whether used or not. boat fits four too, and queues the 1,000 short jobs at once because even the $2,000 plan starts at most 600 an hour.
| Scenario | Together Code Sandbox | Upstash Box | boat |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
|
| None that bite |
| 1,000 short jobs at once |
|
|
|
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: save a sandbox with its memory 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 Upstash Box when
your agents mostly wait, need to wake on an incoming request, must stay inside a strict outbound allowlist, or must run in the US, and you want to sign up and start today.
- Idle costs no CPU, and a request wakes the box. Good for agents that wait a lot: an idle box costs no CPU, and a request to its URL wakes it.
- Self-serve, with agents built in. Sign up and run Claude Code, Codex or OpenCode in up to 1,000 boxes at once, with no access request.
- Outbound network rules. Useful when an agent may only reach a short list of domains or IP ranges, changeable on a running box.
Where boat fits
If your agents do real work for hours, with installs, builds, Docker, emulators, a browser and servers other people reach, both of these leave gaps. Together's VMs need Together to turn them on and are headless, and Upstash boxes are containers. boat gives each agent a full VM you can start today, with the agent and its keys already set up.
A whole machine with Docker and /dev/kvm
Together's SDK runs commands as a normal user and documents neither Docker inside nor nested virtualization, and an Upstash box is itself a container. So compose stacks and Android emulators do not start, and the 50-agent scenario fits neither.
Hosting that is private by default
On Together every port is public and preview URLs are coming soon; on Upstash each URL is public until you add a token, with no raw TCP. boat token-protects HTTPS on up to 50 ports and takes raw TCP.
A desktop and keys kept outside
Together has no browser or desktop, and Upstash has only a headless Chromium, so computer-use agents have no screen. boat streams a 60fps desktop, and its credentials proxy keeps keys for any HTTPS API out of the sandbox.
Use boat when your agents need a real machine: Docker, emulators, a desktop, a big disk, private hosting and services that keep running, for as long as the work takes. Compare it one to one: boat vs Together Code Sandbox and boat vs Upstash Box.
Questions people ask
Is Together Code Sandbox cheaper than Upstash Box?
Together's only self-serve price is Code Interpreter, which fits none of this page's scenarios. Where they can be compared it costs more: $900 against $306 a month for sandboxes for your users, and $6,000 against $1,822 for 1,000 short jobs at once.
Which is faster, Together Code Sandbox or Upstash Box?
Neither has a result in the hpc-sandbox-benchmarks CPU test, so there is no fair speed comparison. boat did 26.69 runs per second on that test at 4 vCPU / 8 GB.
Can Together Code Sandbox or Upstash Box run Docker?
Together builds sandboxes from Docker images, but its new SDK does not document Docker inside a sandbox. An Upstash box is itself a Docker container and its docs do not offer Docker inside. boat runs Docker, systemd and root on every machine.
Can I sign up for Together Code Sandbox today?
The VM product must be enabled for your organization, so you ask Together for access. Code Interpreter is self-serve from prepaid credits. Upstash Box and boat are both self-serve.
Which one wakes up when a request comes in?
Upstash Box does: a paused box resumes when a request reaches its public URL. Together sandboxes have no idle detection or wake on request, and boat sandboxes are started again by API.
Is boat SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Together Code Sandbox
- boat vs Upstash Box
- E2B vs Together Code Sandbox
- Daytona vs Together Code Sandbox
- Modal vs Together Code Sandbox
- Vercel Sandbox vs Together Code Sandbox
- Cloudflare Sandbox vs Together Code Sandbox
- Blaxel vs Together Code Sandbox
- Runloop vs Together Code Sandbox
- Tensorlake vs Together Code Sandbox
- Morph Cloud vs Together Code Sandbox
- CodeSandbox SDK vs Together Code Sandbox