GitHub Codespaces vs Azure Container Apps Sandboxes
GitHub Codespaces is a dev environment for people: a container opened from a repository in VS Code, that stops after 12 hours at most. Azure Container Apps Sandboxes is a sandbox for code: microVMs you create through an SDK, with no session cap, that suspend with their memory and wake on traffic.
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 boat: 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.
Azure Container Apps Sandboxes
Azure Container Apps Sandboxes is a service inside Microsoft Azure that gives each agent or user an isolated microVM you create, suspend and resume through an SDK.
It is part of Azure Container Apps, the hyperscaler's serverless container platform, and lives in your Azure subscription as a sandbox group resource. Each sandbox boots from an OCI image or a snapshot, has its own kernel, and can be suspended with its memory and resumed in under a second. It is built for teams already on Azure that want stateful code execution with Azure networking, identity and billing.
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 | Azure Container Apps Sandboxes: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Both are a compromise for a software factory: Codespaces stops every 12 hours, Azure has no SSH or desktop, and neither documents /dev/kvm, while boat gives each agent all of these. | 274th of 367, with limits $4,618 a month | 288th of 367, with limits $5,276 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 stop on Codespaces, and on Azure it bills every running second; boat keeps it running with a desktop and SSH. | 309th of 366, with limits $6,970 a month | 302nd of 366, with limits $6,544 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 Azure fits short code runs best of the three: sandboxes suspend with their memory, resume in under a second and wake on traffic, while each codespace builds a dev container on a new VM. | 288th of 345, with limits $619 a month | 34th cheapest of 345 $354 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 Azure fits sandboxes for your users, with a published quota of 500 active cores; GitHub does not publish how many codespaces can run at once, and boat gives each user a full VM. | 281st of 361, with limits $1,964 a month | 22nd cheapest of 361 $2,260 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 | 153rd of 360, with limits $10,740 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 | 75th cheapest of 364 $1,728 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 Azure can start runs from a memory snapshot of a warm sandbox, while Codespaces starts each one from a repo or a prebuild; boat adds /dev/kvm for Android and VM builds. | 314th of 377, with limits $909 a month | 103rd cheapest of 377 $1,046 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Codespaces is the better dev box of the two, with VS Code and SSH, but it stops after 12 hours; Azure has no SSH, and boat is a full VM that keeps running. | 130th of 368, with limits $270 a month | 322nd of 368, with limits $262 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 Neither has a graphical desktop: a codespace has an editor and a terminal and Azure's sandboxes are headless, while boat streams a 60fps desktop with Chromium. | 267th of 369, with limits $1,367 a month | 279th of 369, with limits $1,573 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 | 288th of 367, with limits $795 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 | 284th of 346, with limits $561 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 | 239th of 338, with limits $10,956 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 boat forks one prepared machine into many while it runs; Azure can seed sandboxes from a memory snapshot, and Codespaces creates every copy again from the repository. | 267th of 360, with limits $445 a month | 278th of 360, with limits $517 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 | Azure Container Apps Sandboxes | boat |
|---|---|---|---|
| What it is | A cloud dev environment per GitHub repository, opened in VS Code, the browser or the GitHub CLI | A compute type inside Azure Container Apps: microVMs you create, suspend and resume through an SDK | A sandbox API for agents: full VMs you create, fork and drive from code |
| Isolation | A Docker container on its own newly built VM, with its own virtual network | A microVM per sandbox with its own kernel | A 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; auto-suspends after an idle timeout (5 minutes by default) | Runs until you stop it; no session cap on paid plans |
| Docker and nested virtualization | Docker and sudo inside the dev container; /dev/kvm not documented | Docker in images that ship it, like azure-dev; the default ubuntu image has only Buildah; /dev/kvm not documented | Docker, root, systemd and /dev/kvm on every machine |
| Getting a shell | SSH through the GitHub CLI, plus VS Code and the browser terminal | Interactive shell through the aca CLI, SDK or portal; no SSH | SSH, plus CLI and API exec |
| Desktop and computer use | VS Code, JupyterLab and a terminal; no graphical desktop | Headless; no desktop or managed browser | Linux desktop streamed at 60fps, Chromium and computer-use tools preinstalled |
| Suspend and resume | Files are kept on stop; running processes end and a restart boots again | Suspend with memory and disk; resume in under a second with processes running | Disk saved every minute and on stop; a stopped sandbox costs nothing and boots again on start |
| Fork and snapshots | No copy or snapshot endpoint; new codespaces start from a repo, branch, pull request or prebuild | Snapshot a running sandbox with its memory and create new sandboxes from it | 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 | Copilot CLI and Claude Code images, run through the exec API | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping keys out of the sandbox | Secrets are copied into the codespace as environment variables | Group secrets usable in egress header rules; Copilot and Anthropic tokens are injected into the sandbox at startup | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Inbound access | A URL per forwarded port, private, organization or public; no public IP | Public HTTPS routes per published port; private endpoint from your VNet; no public IP | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Open internet; GitHub says there is no way to restrict it | Egress policy with allow, deny, rewrite and header rules by host, path and method; VNet integration | Open internet, no provider-side allowlist |
| Starting point | Dev container config in the repository, with prebuilds built by GitHub Actions | An OCI image or a snapshot | Named snapshots (templates), shareable by code; no Dockerfile builds |
| Regions | US East, US West, Europe West and Southeast Asia | 40 Azure regions, 9 of them in the EU | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | GitHub Codespaces | Azure Container Apps Sandboxes | 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 | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | No | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | Yes | 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 | No | Yes |
| MCP server | No | No | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | No | 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 | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Yes | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | No | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for GitHub Codespaces or for Azure Container Apps Sandboxes: neither was in the public benchmark runs we use. boat 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. So this page makes no speed claim between the three.
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 Azure Container Apps Sandboxes 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 | Azure Container Apps Sandboxes, 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 | $51 · Personal account: GitHub Free | $68 · 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 | $262 · 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 | $3,019 · Personal account: GitHub Free | $3,421 · Pay-as-you-go | $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 | $989 · 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 | $2,148 · Pay-as-you-go | $2,000 · $2000/mo · with limits |
GitHub Codespaces: Codespaces bills $0.09 per core-hour while a codespace is active, plus $0.07 per GB-month of storage while it exists, stopped too. There is no 4-core machine with 8 GB, so 4 vCPU / 8 GB jobs are priced on the 4-core 16 GB machine; personal accounts get a free monthly quota and organizations do not.
Azure Container Apps Sandboxes: Azure bills per second on the Container Apps Consumption meters for the vCPU and memory of the sandbox's tier while it runs, idle time before auto-suspend included. There is no plan fee, and some regions such as West Europe and UK South charge more per second.
Azure Container Apps Sandboxes: 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 does not fit the always-on scenario because every codespace stops after 12 hours, and GitHub does not publish how many can run at once, so 300 user sandboxes and 1,000 short jobs show as not confirmed. Azure has no session cap, but it bills every running second, so the always-on scenario only gets close with a 3-year commitment. Azure's default quota is 500 active cores, raised by support request. boat fits every scenario but the 1,000-job burst, where its start limits queue the jobs.
| Scenario | GitHub Codespaces | Azure Container Apps Sandboxes | boat |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops |
|
| 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 GitHub Codespaces when
your developers want a ready VS Code environment for a GitHub repository, opened from a branch or pull request, for work sessions under 12 hours.
- Built into GitHub. For teams on GitHub: open a ready VS Code environment from any repo, branch or pull request, set up by the dev container config.
- Made for people at an editor. For developers who want VS Code, JupyterLab or SSH from their own editor, with prebuilds so every contributor starts from the same setup.
- Free hours for personal accounts. For occasional personal work: a GitHub Free account includes 120 core-hours and 15 GB-month of storage each month.
Use Azure Container Apps Sandboxes when
your team runs on Azure and your code needs short stateful sandboxes that suspend with their memory, wake on traffic or sit behind strict egress rules.
- Memory suspend and wake on traffic. For stateful jobs that sleep between requests: a sandbox suspends with its memory and resumes in under a second.
- Fine-grained outbound rules. For agents you want to fence in: allow, deny or rewrite each outbound request by host, path and method, with VNet integration.
- Inside Azure, in 40 regions. For teams already on Azure: Entra ID, Azure billing and your VNets, with sandboxes in 40 regions.
Where boat fits
Codespaces is a dev environment for people and Azure is a code sandbox inside your Azure account. If what you are really running is agents that work for hours on real software, with Docker, emulators, a browser and open ports, boat gives each one a full VM built for that. It is a sandbox you drive from code, not a team IDE, and it does not suspend memory like Azure.
A whole computer with /dev/kvm and a desktop
Neither Codespaces nor Azure documents /dev/kvm, so Android emulators and nested VMs are out, and neither has a graphical desktop. On both you build your own virtual display and browser stack for a computer-use agent.
Machines that keep running and keep their work
A codespace stops after 12 hours even while in use, so a long agent task needs a restart script and loses its processes. boat runs until you stop it, saves its disk every minute, and a stopped sandbox costs nothing.
Agents driven from outside, keys kept outside
Codespaces copies secrets in as environment variables, and Azure injects Copilot and Anthropic tokens into the sandbox at startup, where code the agent runs can read them. boat keeps keys in a proxy and drives agents through a prompt, steer and events API.
Use boat when your agents need a whole computer for hours or days: SSH, Docker, /dev/kvm, a desktop and open ports, with coding agents and a credentials proxy built in. Compare it one to one: boat vs GitHub Codespaces and boat vs Azure Container Apps Sandboxes.
Questions people ask
Is GitHub Codespaces cheaper than Azure Container Apps Sandboxes?
In most scenarios we priced, a little: one coding agent on workdays is $51 a month on Codespaces against $68 on Azure, and 50 agents in parallel come to $3,019 against $3,421. Running all month, Azure is $262 against $270, and neither fits as priced. boat comes to $20, $317 and $26 for the same three.
Which is faster, Codespaces or Azure Container Apps Sandboxes?
We have no comparable CPU measurement for either, so we make no speed claim. Azure resumes a suspended sandbox in under a second with its processes running, while a stopped codespace boots again on restart.
Can I run an AI agent 24/7 on either?
Not on Codespaces without restarts: a codespace stops after 12 hours at most, even while in use. Azure has no session cap, but it bills every second a sandbox runs. A boat sandbox runs until you stop it, with no session cap on paid plans.
Can they run Docker?
Codespaces runs Docker inside the dev container, and you have sudo. On Azure, Docker comes with images that ship it, like azure-dev, while the default ubuntu image has only Buildah. Neither documents /dev/kvm; every boat machine has Docker, systemd and /dev/kvm.
Can I SSH into them?
Codespaces supports SSH through the GitHub CLI. Azure gives an interactive shell through the aca CLI, the SDK or the portal, with no SSH. Every boat sandbox has an SSH endpoint.
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 GitHub Codespaces
- boat vs Azure Container Apps Sandboxes
- 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