Azure Container Apps Sandboxes vs Agent 37
Azure Container Apps Sandboxes gives each sandbox a microVM with its own kernel inside your Azure account, with memory suspend and strict egress rules in 40 regions. Agent 37 hosts one always-on agent per user in the US, on lighter gVisor sandboxes that sleep with their memory and bill from a prepaid wallet.
The companies and products
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.
Agent 37
Agent 37 hosts AI agents, one isolated, always-on sandbox per user, behind one API.
You create an instance from a template (Hermes, OpenClaw, Claude Code, Codex, OpenCode, Pi, Grok or your own Docker image) and talk to it through a chat API, files, exec, SSH and HTTPS URLs. The default instance is a container enforced by gVisor; a VM type gives a full Linux machine with its own kernel for Docker, Kubernetes and Android emulators. It is built for companies that give each of their customers an agent.
- Where it runs
- Dedicated servers in the United States
- Instance types
- Default (shared), Performance (dedicated cores), VM
- Compliance
- SOC 2 Type I, Type II in progress
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. “34th cheapest of 345” means 33 of the other 344 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 | Azure Container Apps Sandboxes: price rank | Agent 37: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A software factory needs Docker on every machine; Azure needs an image that ships it, Agent 37 needs its VM type at 2.5 times the compute rate, and bochka has it on every sandbox. | 288th of 367, with limits $5,276 a month | 2nd cheapest of 367 $551 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB Agent 37 is built for this: one assistant per user that sleeps when idle, keeps its memory and wakes on the next message; Azure bills each running second until a sandbox suspends. | 302nd of 366, with limits $6,544 a month | Cheapest of 366 $279 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 Both suit short code runs: Azure suspends with memory and resumes in under a second, and Agent 37's small default sandboxes cost little per minute. | 34th cheapest of 345 $354 a month | Cheapest of 345 $22 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 suspends idle user sandboxes and scales past Agent 37's 200-instance self-serve cap; bochka gives each user a full VM with hosting on up to 50 ports. | 22nd cheapest of 361 $2,260 a month | 30th of 361, with limits $79 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 | 153rd of 360, with limits $10,740 a month | 6th of 360, with limits $363 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 | 75th cheapest of 364 $1,728 a month | 90th of 364, with limits $58 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 that builds Android apps needs /dev/kvm, which Agent 37's VM type and bochka have and Azure's sandboxes do not document. | 103rd cheapest of 377 $1,046 a month | 2nd cheapest of 377 $84 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A dev box wants SSH; Agent 37 offers it through a WebSocket tunnel, Azure gives a shell through its own CLI, and bochka has plain SSH and raw TCP. | 322nd of 368, with limits $262 a month | 3rd cheapest of 368 $12 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; Agent 37 adds a noVNC desktop through a template, Azure's sandboxes are headless, and bochka streams a 60fps desktop out of the box. | 279th of 369, with limits $1,573 a month | Cheapest of 369 $53 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 | 288th of 367, with limits $795 a month | 48th of 367, with limits $29 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 | 284th of 346, with limits $561 a month | Cheapest of 346 $32 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 | 239th of 338, with limits $10,956 a month | 36th of 338, with limits $648 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 Azure can snapshot a running sandbox with its memory and start many copies from it; Agent 37 has no fork, and bochka forks a running sandbox with its disk. | 278th of 360, with limits $517 a month | Cheapest of 360 $43 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 | Azure Container Apps Sandboxes | Agent 37 | bochka |
|---|---|---|---|
| Isolation | MicroVM per sandbox with its own kernel | gVisor by default; full VM as an opt-in instance type | Every sandbox is a full VM with its own kernel, on dedicated AMD Ryzen 9 9950X hosts |
| Docker inside | Depends on the image: azure-dev ships Docker on systemd; the default ubuntu image has only Buildah | Only on the VM type, at 2.5x the default compute rate | Docker, systemd and root on every sandbox |
| Nested virtualization | Not documented | /dev/kvm on the VM type, with an Android template | /dev/kvm on every sandbox for Android emulators and VMs |
| Getting a shell | Interactive shell through the aca CLI, SDK or portal; no SSH | SSH through a WebSocket tunnel, plus exec and a chat API | SSH, plus CLI and API exec |
| Idle sleep and memory | Auto-suspend with memory and disk; resumes in under a second, wakes on traffic | Opt-in auto-sleep that checkpoints memory and wakes on the next request | Disk saved every minute and on stop; a stopped sandbox costs nothing but reboots on resume |
| Fork and snapshots | Snapshot a running sandbox with its memory and start new sandboxes from it | No fork; daily backups plus one on-demand backup, restored in place only | Fork a running sandbox with its disk; named snapshots as shareable templates |
| Custom images | OCI images or snapshots | Your own linux/amd64 Docker image as a template | Templates from named snapshots, no Dockerfile builds |
| Desktop and browser | Headless; no desktop or managed browser | noVNC desktop through a template build or the Ubuntu VM template | Linux desktop streamed at 60fps, Chromium and computer-use tools preinstalled |
| Coding agents | Copilot CLI and Claude Code images, run through the exec API | Hermes, OpenClaw, Claude Code, Codex, Grok, OpenCode and Pi, with a chat API | Seven agents preinstalled, driven from outside with a prompt, steer and events API |
| Keeping API keys out of the sandbox | Group secrets usable in egress header rules; Copilot and Anthropic tokens are injected at startup | Managed LLM, search and Composio through a per-instance token; your own keys go in as env vars | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Outbound rules | Egress policy that allows, denies or rewrites requests by host, path and method; VNet integration | Open internet, no egress allowlist | Open internet, no provider-side allowlist |
| Inbound access | Public HTTPS routes per published port; no public IP | HTTPS URL per port, signed URLs, custom domains; no public IP | HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv4 or IPv6 |
| Scaling a fleet | 500 concurrent active cores by default; more by Azure support request | Up to 200 instances on the top self-serve tier, sleeping and stopped ones included | Concurrency set by plan, up to 2,000 sandboxes, self-serve |
| Regions | 40 Azure regions, 9 of them in the EU | United States only | EU only (Germany, Finland, France), EU data residency |
Every feature Battleships tracks (43)
| Feature | Azure Container Apps Sandboxes | Agent 37 | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Not published | Yes |
| Desktop GUI | No | Yes | Yes |
| Browser | No | Yes | Yes |
| Computer-use API | No | Yes | Yes |
| SSH | No | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | Yes | 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 | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | No | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | No | Yes | 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) | Yes | Yes | Yes |
| Audit logs | Yes | 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 | Not published | Not published | Yes |
Performance
Neither Azure Container Apps Sandboxes nor Agent 37 has a comparable measurement yet. bochka did 26.69 runs per second on the StarSling hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. Agent 37 says its default instances share host resources and sells dedicated cores on its Performance type.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Azure Container Apps Sandboxes and Agent 37 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 | Azure Container Apps Sandboxes, a month | Agent 37, 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 | $68 · Pay-as-you-go | $6 · Wallet (any top-up) | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $262 · Pay-as-you-go · with limits | $12 · Wallet (any top-up) | $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,421 · Pay-as-you-go | $329 · Wallet ($100 lifetime top-ups) | $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 | $989 · Pay-as-you-go | $33 · Wallet ($250 lifetime top-ups) · 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 | $2,148 · Pay-as-you-go | $73 · Wallet ($250 lifetime top-ups) · with limits | $2,000 · $2000/mo · with limits |
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.
Agent 37: A prepaid wallet with no plan fee, metered per minute: $0.80 per vCPU and $0.70 per GB of RAM per month while running, and $0.09 per GB of disk per month even while asleep. Performance compute costs 4x and VM compute 2.5x the default rate.
Agent 37: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Agent 37 caps instances at 200 on its top self-serve tier, counting sleeping and stopped ones, so it does not fit 300 user sandboxes at once or 1,000 jobs at once; beyond that you email the company. Its 50 agents in parallel need Docker, so that row is priced on the VM type at 2.5x. Azure has no session cap but bills every running second, so a sandbox that never stops only fits with a 3-year commitment, and its default quota of 500 active cores caps a fleet until support raises it. bochka's start limits stop it in the 1,000-at-once burst, which Azure handles.
| Scenario | Azure Container Apps Sandboxes | Agent 37 | 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 |
| 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 Azure Container Apps Sandboxes when
your team already runs on Azure and wants short stateful sandboxes that suspend with their memory, sit behind strict egress rules, or run in many regions.
- 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. Teams that must hold agents to chosen hosts get egress rules by host, path and method, plus VNet access.
- Inside Azure, in 40 regions. Teams already on Azure keep Entra ID, Azure billing and their networks, in 40 regions on six continents.
Use Agent 37 when
you host one mostly idle assistant per customer in the US that should sleep with its memory kept, wake on the next message and cost little to keep around.
- One cheap assistant per customer. For products that give each user an agent: instances sleep when idle, keep their memory and wake on the next message.
- Bring a Dockerfile, pick dedicated cores. Agent 37 builds templates from your own Docker image, and sells a Performance type on dedicated cores.
- Agent templates and a chat API. Hermes, OpenClaw, Claude Code and others start from a template, and you talk to each instance through one chat API.
Where bochka fits
Azure and Agent 37 both shine when sandboxes sit idle and wake up fast. If your agents do hours of real work, with installs, Docker, emulators, a browser and services to host, bochka gives every one of them a full VM with those built in, in the EU.
A whole computer by default
On Azure, Docker depends on the image and nested virtualization is not documented. On Agent 37, Docker and /dev/kvm need the VM type at 2.5 times the compute rate, still with no systemd. bochka has all of it on every sandbox.
A screen, SSH and open ports
Azure's sandboxes are headless and have no SSH. Agent 37 needs a template build for a noVNC desktop and tunnels SSH over a WebSocket. bochka streams a 60fps desktop and takes SSH, raw TCP and HTTPS on up to 50 ports.
Keys stay outside, for any API
Azure injects Copilot and Anthropic tokens into the sandbox, and Agent 37 puts your own keys in as env vars, where a prompt-injected agent can read them. bochka's credentials proxy keeps real keys outside for any HTTPS API.
Use bochka when your agents do real work for hours: Docker, emulators, a desktop and a browser on a full VM, with SSH, hosting, forks of running machines and keys kept outside for any API. Compare it one to one: bochka vs Azure Container Apps Sandboxes and bochka vs Agent 37.
Questions people ask
Is Azure Container Apps Sandboxes cheaper than Agent 37?
No, Agent 37 costs less in every scenario on this page. For 50 agents in parallel with Docker, Azure comes to $3,421 a month against $329 on Agent 37's VM type, and bochka is $317. Agent 37's 200-instance cap stops it in the two largest scenarios, which Azure fits.
Which is faster, Azure Container Apps Sandboxes or Agent 37?
Neither has a comparable measurement on the hpc-sandbox-benchmarks test yet, so this page makes no speed claim between them. bochka did 26.69 runs per second on that test at 4 vCPU / 8 GB.
Can Azure Container Apps Sandboxes or Agent 37 run Docker?
On Azure it depends on the image: azure-dev ships Docker on systemd, while the default ubuntu image has only Buildah. On Agent 37, Docker runs only on the VM type, which bills compute at 2.5x. bochka runs Docker on every sandbox.
Can I SSH into them?
Azure gives an interactive shell through the aca CLI, the SDK or the portal, with no SSH. Agent 37 offers SSH through a WebSocket tunnel. Every bochka sandbox has an SSH server and endpoint.
Where do they run?
Azure Container Apps Sandboxes runs in 40 Azure regions, 9 of them in the EU. Agent 37 runs on dedicated servers in the United States. bochka runs only in the EU, in Germany, Finland and France.
Do they keep memory when a sandbox sleeps?
Yes, both do. Azure suspends with memory and resumes in under a second, and Agent 37 checkpoints memory on auto-sleep and wakes on the next request. bochka keeps the disk and reboots on resume.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs Azure Container Apps Sandboxes
- bochka vs Agent 37
- E2B vs Azure Container Apps Sandboxes
- Daytona vs Azure Container Apps Sandboxes
- Modal vs Azure Container Apps Sandboxes
- Vercel Sandbox vs Azure Container Apps Sandboxes
- Cloudflare Sandbox vs Azure Container Apps Sandboxes
- Blaxel vs Azure Container Apps Sandboxes
- Runloop vs Azure Container Apps Sandboxes
- Tensorlake vs Azure Container Apps Sandboxes
- Morph Cloud vs Azure Container Apps Sandboxes
- CodeSandbox SDK vs Azure Container Apps Sandboxes