GitHub Codespaces vs Upstash Box
GitHub Codespaces is a dev environment for people: a dev container built from a GitHub repository, opened in VS Code, that stops after 12 hours at most. Upstash Box is a computer for AI agents: a light container with a coding agent built in, driven from an SDK, that pauses when idle and wakes on the next request.
The companies and products
GitHub Codespaces
GitHub Codespaces is GitHub's cloud development environment: a ready-to-code Linux machine for a repository, opened in the browser, VS Code or the GitHub CLI.
Codespaces is a different kind of product from bochka: a dev environment for people working on a GitHub repository, not a sandbox API for agents. Each codespace is a Docker container built from the repo's dev container config, running on its own newly built VM on Azure, with 2 to 32 cores. It is built for developers and teams who want every contributor to start from the same setup, with prebuilds, port forwarding and GitHub billing.
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. “274th cheapest of 367” means 273 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 | GitHub Codespaces: price rank | Upstash Box: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Codespaces runs Docker in its dev container but stops after 12 hours, and an Upstash box offers no Docker inside, so both are a compromise here, while bochka gives agents full VMs with Docker. | 274th of 367, with limits $4,618 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 An always-on assistant hits the 12-hour cap on Codespaces, while an Upstash keep-alive box stays on all month as a container and bochka keeps a full VM running. | 309th of 366, with limits $6,970 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 suits short code runs: an idle box costs no CPU and a paused box wakes when work arrives, while each codespace builds a dev container on a new VM. | 288th of 345, with limits $619 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 and bochka both fit sandboxes for your own users, while Codespaces is made for GitHub users on a repository and does not publish how many can run at once. | 281st of 361, with limits $1,964 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 | 282nd of 360, with limits $9,489 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 | 295th of 364, with limits $1,519 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 a codespace has and an Upstash box does not, but Codespaces has no fork or snapshot API to start from a warm machine. | 314th of 377, with limits $909 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 A flat-price Upstash keep-alive box makes a light 24/7 dev box, Codespaces is a polished VS Code setup that stops after 12 hours, and bochka is a full VM that keeps running. | 130th of 368, with limits $270 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: Codespaces has an editor but no desktop, Upstash has a headless browser, and bochka streams a 60fps Linux desktop. | 267th of 369, with limits $1,367 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 | 275th of 367, with limits $678 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 | 310th of 346, with limits $922 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 | 280th of 338, with limits $18,637 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 Upstash can start many boxes from a snapshot and bochka can fork a running machine, while every codespace is created again from the repository. | 267th of 360, with limits $445 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 | GitHub Codespaces | Upstash Box | bochka |
|---|---|---|---|
| Isolation | A Docker container on its own newly built VM on Azure | One Docker container per box on AWS | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| How long it runs | Stops after 30 idle minutes by default and after 12 hours at most, even while in use | No session cap; a standard box pauses when idle, and a keep-alive box stays on | Runs until you stop it; no session cap on paid plans |
| Docker inside | Yes, Docker and sudo inside the dev container | Not documented; the box is itself a Docker container | Yes, Docker, root and systemd as on any Linux server |
| Nested virtualization | /dev/kvm is not documented | No; boxes are containers with no VM support documented | Yes, /dev/kvm for Android emulators and VMs |
| Machine sizes | 2, 4, 8, 16 or 32 cores, with 4 GB of memory per core | Small 2 vCPU / 4 GB, Medium 4 vCPU / 8 GB, Large 8 vCPU / 16 GB | Up to 16 vCPU / 32 GB on the $100 plan and above |
| Files after a stop | Files are kept and storage is billed; stopped codespaces are deleted after 30 days by default | A paused box keeps its files; storage keeps billing while paused | Disk saved every minute and on stop; a stopped sandbox costs nothing |
| Wake on request | No; you start a stopped codespace from the editor, CLI or REST API | Yes; a request to a public URL resumes a paused box | No; a stopped sandbox is started by API |
| Fork and templates | No copy or snapshot endpoint; new codespaces start from a repo or a prebuild built by GitHub Actions | Snapshot a running box and start many new boxes from it; custom images listed as coming soon | Fork a running sandbox with its disk; named snapshots as templates |
| Coding agents | GitHub Copilot as a VS Code extension; other agents you install yourself | 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 | Secrets are copied in as environment variables | 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 |
| Desktop and browser | VS Code in the browser or on your machine, JupyterLab and a terminal; no graphical desktop | Managed headless Chromium with AI page actions and CDP; no desktop | Linux desktop streamed at 60fps, Chromium and computer-use tools |
| Inbound access | A URL per forwarded port, private, organization or public; SSH; no public IP | 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 |
| Outbound rules | Open internet; GitHub says there is no way to restrict it | Allow all, deny all, or allow and deny by domain and CIDR, changeable on a running box | Open internet, no provider-side allowlist |
| Regions | US East, US West, Europe West and Southeast Asia | US only (AWS us-east-1) | EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | GitHub Codespaces | Upstash Box | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Yes | 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 | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | No | Yes | Yes |
| Idle auto-stop | Yes | 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 | No | 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) | No | Yes | Yes |
| Audit logs | Yes | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | No | No | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable CPU measurement for GitHub Codespaces or Upstash Box: neither was in the public benchmark runs we use. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in StarSling's run of 2026-09-29, 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. GitHub Codespaces 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 | GitHub Codespaces, a month | Upstash Box, a month | bochka, 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 | $51 · Personal account: GitHub Free | $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 | $270 · Personal account: GitHub Free · 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 | $3,019 · Personal account: GitHub Free | $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 | $850 · Personal account: GitHub Free · 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 | $1,889 · Personal account: GitHub Free · with limits | $1,822 · Pay as You Go | $2,000 · $2000/mo · with limits |
GitHub Codespaces: Codespaces bills $0.09 per core-hour for the whole time a codespace is active, used or not, plus $0.07 per GB-month of storage while it exists. There is no 4-core machine with 8 GB, so 4 vCPU / 8 GB work is priced on the 4-core 16 GB machine; personal accounts get a free monthly quota and organizations do not.
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 whether busy or not.
Upstash Box: Plans start at $20 a month, and the whole fee is usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Codespaces stops every codespace after 12 hours, so it does not fit the always-on scenario, and GitHub does not publish how many can run at once, so 300 user sandboxes and 1,000 short jobs are not confirmed there. Upstash runs no Docker inside a box, so the 50-agent scenario does not fit, its egress price is not published, and keep-alive boxes bill every month whether used or not. bochka's limit is start rate: for 1,000 short jobs at once, even the $2,000 plan starts at most 90 a minute and 2,400 a day, so the burst is queued.
| Scenario | GitHub Codespaces | Upstash Box | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite |
| 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 GitHub Codespaces when
your developers want a ready VS Code environment for a GitHub repository, opened from a branch or pull request, in the US, EU or Asia.
- Built into GitHub. Useful if your team lives on GitHub: open a ready dev container from any repo, branch or pull request in VS Code.
- Free hours for personal accounts. Useful for occasional personal work: a GitHub Free account includes 120 core-hours and 15 GB-month of storage each month.
- Big machines in more regions. Useful for heavy builds or teams outside the US: up to 32 cores, in US East, US West, Europe West and Southeast Asia.
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 do not need Docker.
- Idle costs no CPU, and a request wakes the box. Good for agents that wait a lot: you pay only for CPU used, and a request to its URL wakes a paused box.
- Outbound network rules. Useful when an agent may only reach a short list of domains or IP ranges, changeable on a running box.
- Agents and big bursts built in. Claude Code, Codex and OpenCode come built in, and Pay as You Go runs 1,000 boxes at once by default.
Where bochka fits
If what you are really running is coding agents that build, test and keep working for hours, neither fits cleanly: Codespaces is a dev environment that stops at 12 hours, and an Upstash box is a container with no Docker inside. bochka gives each agent a full VM that keeps running, with Docker, a desktop and agents you drive from outside.
A whole Linux machine with Docker and /dev/kvm
An Upstash box offers no Docker inside, so the 50-agent scenario does not fit there. A codespace runs Docker in a dev container but documents no /dev/kvm, so emulators and microVMs are out. bochka has Docker, systemd and /dev/kvm on every machine.
Machines that keep running and keep their work
A codespace stops at 12 hours even while in use, so a long agent task needs a restart script and its processes end. Upstash disks stop at 10 GB on the 4 vCPU size. bochka has no session cap on paid plans, saves the disk every minute and forks running machines.
A desktop the agent can see, and keys kept outside
Codespaces has no desktop and copies secrets in as environment variables. Upstash has only a headless browser, and its header proxy is set when the box is created. bochka streams a 60fps desktop and its credentials proxy can switch accounts when credits run out.
Use bochka when your agents need a real machine: Docker, emulators, a desktop, a big disk and services that keep running for as long as the work takes. Compare it one to one: bochka vs GitHub Codespaces and bochka vs Upstash Box.
Questions people ask
Is GitHub Codespaces cheaper than Upstash Box?
In the scenarios we priced, Upstash costs less: one coding agent on workdays is $21 a month against $51, and one agent running all month is $21 against $270, where Codespaces also needs a restart every 12 hours. 50 agents come to $3,019 on Codespaces, and $900 on Upstash, which does not fit because it has no Docker inside. bochka is $20, $26 and $317 for the same three.
Which is faster, Codespaces or Upstash Box?
We cannot say: neither has a result in the public CPU benchmark we use. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB on dedicated AMD Ryzen 9 9950X hosts.
Can GitHub Codespaces or Upstash Box run Docker?
Codespaces can: Docker works inside the dev container and you have sudo, though /dev/kvm is not documented. Upstash Box does not offer Docker inside, since each box is itself a Docker container. Every bochka machine has Docker, systemd and /dev/kvm.
Can I run an AI agent 24/7 on Codespaces or Upstash Box?
Not on Codespaces without restarts: a codespace stops after 12 hours at most, even while in use. On Upstash a keep-alive box stays on all month for a flat price. bochka has no session cap on paid plans and keeps the disk across stops.
Where do Codespaces and Upstash Box run?
Codespaces runs in US East, US West, Europe West and Southeast Asia. Upstash Box runs only in AWS us-east-1, with more regions planned. bochka runs in the EU, in Germany, Finland and France.
Is bochka SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.bochka.xyz and our data retention policy at docs.bochka.xyz/data-retention.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs GitHub Codespaces
- bochka vs Upstash Box
- E2B vs GitHub Codespaces
- Daytona vs GitHub Codespaces
- Modal vs GitHub Codespaces
- Vercel Sandbox vs GitHub Codespaces
- Cloudflare Sandbox vs GitHub Codespaces
- Blaxel vs GitHub Codespaces
- Runloop vs GitHub Codespaces
- Tensorlake vs GitHub Codespaces
- Morph Cloud vs GitHub Codespaces
- CodeSandbox SDK vs GitHub Codespaces