Together Code Sandbox vs OpenAI Containers

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 you. OpenAI Containers are boxes the model runs code in during an API call, and they are deleted after 20 minutes without use.

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.

OpenAI Containers

OpenAI Containers are the sandboxes OpenAI runs for its own model tools: Code Interpreter, Hosted Shell and the Agents API's hosted sandbox.

This is a different kind of product from boat: a tool inside OpenAI's model API, not a machine you rent. You create a container through the API or let a Responses call make one, and the model runs Python or shell commands in it on a fixed Debian 12 image without sudo, until it expires after 20 minutes without use. It is built for apps that already call OpenAI models and want them to run code, read files and make charts without running any servers.

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 rankOpenAI Containers: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs root, Docker and a disk that stays; Together runs commands as a normal user unless you ask for root, OpenAI gives no sudo at all, and boat has root, Docker and /dev/kvm on every machine.
65th of 367, with limits
$528 a month
356th of 367, with limits
$17,371 a month
3rd 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 a disk that survives; an OpenAI container is deleted after 20 idle minutes, Together has no idle detection or wake on request, and boat keeps the disk and costs nothing while stopped.
152nd of 366, with limits
$1,095 a month
341st of 366, with limits
$13,140 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
Short Python runs are what both are built for: OpenAI runs the code inside the model call and bills by the minute, Together's Code Interpreter bills per 60-minute session.
326th of 345, with limits
$2,190 a month
194th of 345, with limits
$6,000 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
Giving each user a private app is hard on both: every Together port is public with preview URLs still coming soon, OpenAI containers take no inbound connections, and boat serves token-protected HTTPS URLs.
234th of 361, with limits
$900 a month
361st of 361, with limits
$3,780 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 from it, which suits rollouts that branch from one warm state; OpenAI containers have no snapshots.
315th of 360, with limits
$21,900 a month
191st of 360, with limits
$30,000 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
360th of 364, with limits
$5,760 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 need Docker and open internet; Together does not document Docker inside, and OpenAI Code Interpreter and Hosted Shell containers start with no internet at all.
251st of 377, with limits
$180 a month
345th of 377, with limits
$1,728 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Neither has SSH; a dev box you SSH into and keep all month is what boat is.
210th of 368, with limits
$22 a month
362nd of 368, with limits
$1,051 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
OpenAI has a hosted browser for the Agents API computer_use tool, Together has no desktop or browser, and boat streams a full 60fps desktop with Chromium.
184th of 369, with limits
$600 a month
351st of 369, with limits
$5,280 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
328th of 367, with limits
$1,440 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
328th of 346, with limits
$1,755 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
311th of 338, with limits
$35,100 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
308th of 360, with limits
$870 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

FeatureTogether Code SandboxOpenAI Containersboat
Getting startedThe VM SDK and CLI must be enabled for your organization by Together; Code Interpreter is self-serve on prepaid creditsSelf-serve on the API: add Code Interpreter or the shell tool to a requestSign up and start a sandbox from the API, CLI or dashboard
IsolationA VM per sandbox on Together's infrastructureA fully sandboxed virtual machine; hypervisor not namedFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Machine size0.1 to 16 cores, 1 to 8 GB of memory per core; disk size fixed1, 4, 16 or 64 GB of memory; vCPU not published (Agents API sandboxes: 1, 2 or 4 vCPU)4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB
Root, Docker and nested virtualizationCommands run as user 1000 by default, root on request; Docker inside and nested virtualization not documentedCommands do not run with sudo; no Docker or /dev/kvm documentedRoot, systemd, Docker and /dev/kvm on every machine
Custom imageSnapshots built from a Docker image or DockerfileFixed Debian 12 image; you upload files or skills into each containerNamed snapshots of a set-up machine, reused as templates
Shell accessCommands, interactive shells and files through the SDK and CLI; no SSHThe model runs commands through the API; no SSHSSH, plus exec and files over the API
Saving stateEnd a sandbox with a snapshot of its disk, or disk and memory; a new sandbox resumes with its processes runningData is discarded when the container expires; Agents API keeps only files in /workspace/outputsDisk saved every minute and on stop; a stopped sandbox costs nothing; resume boots the machine again
LifetimeVM sandboxes run until you end them or their time to live runs out; Code Interpreter sessions last 60 minutesExpires after 20 minutes without use; Agents API sandboxes after an hour without activityNo session cap on paid plans; you set the time to live
ForkNo live fork: the parent stops, then you start many sandboxes from its snapshotNo fork; templates save configuration, not a running workspaceFork a running sandbox; the original keeps running
Reaching the sandboxAll ports public; preview URLs coming soon; an experimental inbound allowlist by IP or tokenNone; you reach the container only through the APIHTTPS URLs for up to 50 ports, token-protected by default; raw TCP; SSH
Outbound internetOpen internetCode Interpreter and Hosted Shell: off until an admin sets an org domain allowlist; Agents API sandboxes: on by default, can be limited to 1 to 100 hostsOpen internet on every plan; no provider-side allowlist
Keeping API keys out of the sandboxNo credentials proxy documenteddomain_secrets: a sidecar adds the real header for approved domains, the model sees a placeholderCredentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Coding agentsRun your own agent through execs; a Harbor guide for agent evalsAgents API (beta) drives a managed Codex harness from outside, with steering, events and webhooksClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API
Desktop and computer useNone; headless command and file access onlyHosted browser for the Agents API computer_use toolLinux desktop streamed at 60fps, Chromium and computer-use tools, embeddable stream
Every feature Battleships tracks (43)
FeatureTogether Code SandboxOpenAI Containersboat
Full VM (own kernel)YesYesYes
Docker insideNot publishedNoYes
Nested virtualizationNoNoYes
RootYesNoYes
SystemdNot publishedNot publishedYes
Desktop GUINoYesYes
BrowserNoYesYes
Computer-use APINoYesYes
SSHNoNoYes
Persistent diskYesNoYes
Pause/resumeYesNoYes
Automatic snapshotsNoNoYes
Fork/cloneYesNoYes
Live fork (no pause)NoNoYes
Memory forkYesNoNo
Custom image (Docker or snapshot)YesNoYes
≥24 h sessionsYesYesYes
Idle auto-stopNoYesNo
Wake on requestNoNoNo
HTTPS preview URLsYesNoYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistNoYesNo
Secret proxyNoYesYes
Secret proxy for any APINoYesYes
Preinstalled agentsNoNoYes
Agent harness APINoYesYes
MCP serverYesNoNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoNoNo
Self-hostingNoYesNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)YesNoYes
Audit logsNot publishedNot publishedNo
SSOYesYesNo
SOC 2YesYesNo
HIPAANoYesNo
EU data residencyNot publishedYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Together Code SandboxNot measured
OpenAI ContainersNot measured
boat26.69 runs/s

There is no comparable CPU measurement for Together Code Sandbox or OpenAI Containers: neither is in the public benchmark, and OpenAI does not publish how many vCPU each container size gets. boat did 26.69 runs per second on the StarSling hpc-sandbox-benchmarks Node.js test 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 OpenAI Containers 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 monthOpenAI Containers, a monthboat, 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$228 · API pay as you go · with limits$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$1,051 · API pay as you go · with limits$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$11,405 · API 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$1,620 · API pay as you go · with limits$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$6,000 · API pay as you go · with limits$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 need Together to enable them, so the tables price Code Interpreter: $0.03 per 60-minute session from prepaid credits, with a $5 minimum purchase.

OpenAI Containers: OpenAI bills each container session by the minute for the memory size you pick, with a 5-minute minimum, and model tokens are billed separately on top. There is no plan fee.

OpenAI Containers: Plans start at $20 a month, and the whole fee becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Neither fits the scenarios as written. Together's priced product, Code Interpreter, ends each session after 60 minutes and keeps no disk, and its machine size is not published. OpenAI Containers keep no disk, run no Docker, start with no internet in Code Interpreter and Hosted Shell, and OpenAI does not publish how many can run at once, so 300 user sandboxes or a 1,000-job burst are unconfirmed. On boat the burst is limited by starts, so even the $2,000 plan queues them.

ScenarioTogether Code SandboxOpenAI Containersboat
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
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • missing persistent disk
  • machine size not published
  • different kind of product: code interpreter
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
  • no open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • missing persistent disk
  • machine size not published
  • different kind of product: code interpreter
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 open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • missing persistent disk, Docker inside
  • machine size not published
  • different kind of product: code interpreter
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 open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • machine size not published
  • different kind of product: code interpreter
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
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 open internet: sandboxes reach only an allowlist (domains your org admin adds to the allow list)
  • machine size not published
  • different kind of product: code interpreter
  • not confirmed: how many machines can run at once (you need 1,000; the typical published limit is 50)
  • 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: save a sandbox with its memory and start many copies with processes still running.
  • Open network and a machine you shape. Good when code must reach the internet: sandboxes have open egress, start from your own Docker image and can run commands as root.
  • 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.

Use OpenAI Containers when

your app already calls OpenAI models and the model only needs to run short pieces of code or shell commands on files you give it.

  • Built into the model call. Useful if your app already calls OpenAI models: one tool line in a request gives the model a place to run code.
  • Locked-down network by default. Useful if code must only reach chosen hosts: Code Interpreter and Hosted Shell have no outbound access until an admin allows domains.
  • No access request. Self-serve on any API account, with US or EU processing for Code Interpreter, while Together's VMs wait for Together to enable them.

Where boat fits

Both of these are built for short pieces of code: OpenAI runs what the model writes, and Together runs sandboxes you script from your own backend. If what you are really running is agents that work for hours, install things, start servers and come back the next day, boat gives each one a whole machine you can sign up for today.

A whole machine with root

boat has root, systemd, Docker and /dev/kvm. OpenAI gives no sudo and no Docker, and Together runs as a normal user and documents no Docker inside, so compose stacks and emulators stop before they start.

A disk that stays, with no session cap

An OpenAI container deletes its files after 20 idle minutes unless your code keeps touching it. Together can snapshot, but only by ending the sandbox and starting a new one. boat saves the disk every minute.

Private hosting and agents built in

OpenAI containers take no inbound connections, and every Together port is public with no preview URLs yet. boat serves token-protected HTTPS on 50 ports, with coding agents and a 60fps desktop you drive from outside.

Use boat when your agents do real work for hours: root, Docker, a disk that stays, open internet and private ports you can reach, on a full machine with any coding agent built in. Compare it one to one: boat vs Together Code Sandbox and boat vs OpenAI Containers.

Questions people ask

Is Together Code Sandbox cheaper than OpenAI Containers?

In these scenarios, priced with Together's Code Interpreter, yes for long runs: one agent running all month comes to $22 on Together against $1,051 on OpenAI, and 50 agents to $264 against $11,405. For 1,000 short jobs at once both come to $6,000 a month, and neither fully fits these scenarios. boat comes to $26, $317 and $2,000.

Which is faster, Together Code Sandbox or OpenAI Containers?

There is no comparable measurement for either. Neither is in the public CPU benchmark, and OpenAI does not publish the vCPU behind each container size. boat did 26.69 runs per second on the StarSling Node.js test at 4 vCPU / 8 GB.

Can I run Docker in Together Code Sandbox or OpenAI Containers?

Neither documents it. Together builds sandboxes from Docker images and can run commands as root on request, but does not document Docker inside a sandbox. OpenAI's hosted shell runs commands without sudo. boat runs Docker, systemd and root on every machine.

How long does a session last on each?

An OpenAI container expires after 20 minutes without use, and its data is discarded. Together's VM sandboxes run until you end them or their time to live runs out, while Code Interpreter sessions last 60 minutes. boat has no session cap on paid plans and keeps the disk when a sandbox stops.

Can I open a web app running inside the sandbox?

Not on OpenAI: containers have no ports, URLs or SSH. On Together every port is public, and preview URLs are listed as coming soon. boat gives each sandbox HTTPS URLs for up to 50 ports, token-protected by default, plus raw TCP and SSH.

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