Freestyle vs Azure Container Apps Sandboxes
Both pause a sandbox with its memory, fork it and wake it on traffic. Freestyle gives each agent a full KVM VM with Docker, systemd and nested virtualization, while Azure gives a headless microVM that lives inside your Azure account in 40 regions.
The companies and products
Freestyle
Freestyle sells full Linux virtual machines for AI agents, built for long running, complex tasks.
Each Freestyle VM is a KVM virtual machine with its own kernel, booted from an Ubuntu base snapshot with systemd, Docker and coding agent CLIs preinstalled. VMs can be paused with their memory, snapshotted while running, forked and woken by the next request, and every VM starts behind a default-deny firewall. It is built for teams that give each agent or each user its own machine, driven from a TypeScript SDK, a CLI or an API.
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. “40th cheapest of 345” means 39 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 | Freestyle: price rank | Azure Container Apps Sandboxes: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Freestyle runs Docker and emulators on any VM while Azure needs the right image and has no nested virtualization; bochka adds faster CPUs, a desktop and SSH. | 241st of 367, with limits $3,311 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 | 263rd of 366, with limits $4,195 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 Both fit short code runs well, since each can pause a sandbox with its memory and wake it on the next request. | 40th cheapest of 345 $482 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 Both fit per-user sandboxes that sleep between visits; bochka gives each user a faster machine with a desktop and hosting on up to 50 ports. | 16th cheapest of 361 $1,358 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 Freestyle and Azure can both snapshot a running sandbox with its memory and boot copies from it, which suits rollouts that branch from one state. | 107th of 360, with limits $6,600 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 | 53rd cheapest of 364 $1,046 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 CI that builds Android apps or VM images needs nested virtualization, which Freestyle and bochka have and Azure does not document. | 168th of 377, with limits $625 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 Freestyle offers SSH and raw TCP on a full VM, while Azure gives a shell only through its own CLI, SDK or portal. | 98th cheapest of 368 $151 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 ships a desktop: Freestyle has guides to install one yourself and Azure's sandboxes are headless, while bochka streams a Linux desktop at 60fps. | 234th of 369, with limits $940 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 On Freestyle or Azure you install and run the browser yourself; bochka has Chromium on a desktop in every sandbox. | 257th of 367, with limits $482 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 | 278th of 346, with limits $482 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 | 183rd of 338, with limits $6,560 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 | 272nd of 360, with limits $482 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 | Freestyle | Azure Container Apps Sandboxes | bochka |
|---|---|---|---|
| Isolation | Full KVM VM with its own kernel | MicroVM per sandbox with its own kernel | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| CPU benchmark (4 vCPU / 8 GB) | 9.64 runs/s | Not measured | 26.69 runs/s |
| Nested virtualization | Yes, full KVM support | Not documented | Yes, /dev/kvm for Android emulators and VMs |
| Docker and systemd | systemd is pid 1 and Docker runs from boot on the default image | Depends on the image: azure-dev ships Docker on systemd; the default ubuntu image has only Buildah | Docker, systemd and root on every sandbox |
| Getting a shell | SSH, exec and terminal sessions | Interactive shell through the aca CLI, SDK or portal; no SSH | SSH, plus CLI and API exec |
| Biggest machine | Up to 32 vCPU / 64 GiB on Pro, 64 / 128 with custom limits | Tiers up to 4 cores / 8 GB; up to 16 vCPU / 32 GB by API | Up to 16 vCPU / 32 GB on the $100 plan and above |
| Pause with memory and wake | Pause with memory and disk; a paused VM wakes on its next traffic | Suspend with memory and disk, resume in under a second; traffic or a start command wakes it | Disk is saved every minute and on stop; resume boots the machine again |
| Fork | Clone a running VM without pausing it; snapshots capture memory and disk | Snapshot a running sandbox with its memory and create new sandboxes from it | Fork a running sandbox with its disk |
| Desktop, browser and computer use | Guides to install GNOME or Xvfb, VNC and Chromium yourself | Headless; no desktop or managed browser | Linux desktop streamed at 60fps, Chromium and computer use built in |
| Inbound access | HTTPS on free style.dev names or your own domain, forward auth, other public protocols | Public HTTPS routes per published port; private endpoint from your VNet at extra cost; no public IP | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Default-deny firewall with allow rules by IP, VM, VPC or exact domain | Egress policy with allow, deny, rewrite and header rules by host, path and method; VNet integration | Open internet, no provider-side allowlist |
| Coding agents | claude, codex, opencode and openclaw preinstalled, driven through exec or a terminal | Copilot CLI and Claude Code images, run through the exec API | Seven agents preinstalled, with a prompt, steer and events API |
| Keeping API keys out of the sandbox | Credentials injected at the edge for HTTPS headers, Postgres and S3; the VM must trust the Freestyle CA | Group secrets usable in egress header transforms; 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 |
| Regions | Not listed; the docs name a San Jose, US data center | 40 Azure regions, 9 of them in the EU | EU only (Germany, Finland, France), zero data retention |
Every feature Battleships tracks (43)
| Feature | Freestyle | Azure Container Apps Sandboxes | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | 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 | Yes | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | Yes | Yes | 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 | Yes | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | Yes | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | No | No | Yes |
| MCP server | No | No | No |
| GPU | Yes | 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 | Yes | Not published | Yes |
| Spend limits | Not published | Yes | Yes |
| Usage per sandbox (API) | No | Yes | Yes |
| Audit logs | Yes | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Not published | Yes | No |
| HIPAA | Not published | Yes | No |
| EU data residency | No | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
Freestyle did 9.64 runs per second on the hpc-sandbox-benchmarks Node.js build-and-test loop at 4 vCPU / 8 GB, and bochka did 26.69, about 2.8 times the work. There is no comparable measurement for Azure Container Apps Sandboxes yet, so this page makes no speed claim between Freestyle and Azure.
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 has 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 | Freestyle, a month | Azure Container Apps Sandboxes, 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 | $27 · 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 | $159 · Free | $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 | $2,139 · Pro | $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 | $581 · Pro | $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,305 · Pro · with limits | $2,148 · Pay-as-you-go | $2,000 · $2000/mo · with limits |
Freestyle: Freestyle bills per second for the vCPU, RAM and disk allocated to a VM, busy or idle, after monthly allowances of 200 vCPU-hours, 400 GiB-hours of RAM and 60,000 GiB-hours of storage. Hobby and Pro set a $50 or $500 monthly minimum that counts as usage, and a paused VM bills only for storage.
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, including idle time before auto-suspend. There is no plan fee, and some regions such as West Europe and UK South charge more.
Azure Container Apps Sandboxes: 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
Freestyle has no idle timeout by default, so a VM bills until you pause it, and Azure keeps billing for 5 minutes of idle time before it suspends by default. Freestyle Pro allows 400 concurrent VMs, which is why it does not fit 1,000 short jobs at once, while Azure starts that burst. Azure's default quota of 500 active cores caps a fleet until support raises it, and running one agent all month on Azure only gets close with a savings plan commitment. bochka queues starts above 90 a minute on the $2,000 plan, so it does not fit the burst either.
| Scenario | Freestyle | Azure Container Apps Sandboxes | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops | None that bite |
| None that bite |
| 50 agents in parallel | None that bite | None that bite | None that bite |
| Sandboxes for your users | None that bite | None that bite | None that bite |
| 1,000 short jobs at once |
| None that bite |
|
Which one should you use?
Use Freestyle when
your agents need a full VM with nested virtualization, SSH or more than 16 vCPU, and your VMs sleep between requests and must wake with their memory.
- A full VM with nested virtualization. For agents that run Android emulators or VMs: Freestyle VMs have full KVM support, which Azure's sandboxes do not document.
- Bigger machines. For heavy single jobs: Pro VMs go up to 32 vCPU / 64 GiB, while Azure sandboxes stop at 16 vCPU / 32 GB.
- SSH and your own domains. For tools that expect a server: Freestyle VMs take SSH and serve HTTPS on your own domain, where Azure has no SSH.
Use Azure Container Apps Sandboxes when
your team already runs on Azure and wants short stateful sandboxes with strict egress rules, Entra ID access, or regions outside the US.
- Inside your Azure account. For teams already on Azure: sandboxes use your Entra ID accounts, Azure billing and VNets.
- 40 regions. For users spread around the world: Azure runs sandboxes in 40 regions, while Freestyle names only a San Jose data center.
- Rules for each outbound request. For strict network control: Azure's egress policy can allow, deny or rewrite requests by host, path and method.
Where bochka fits
Freestyle and Azure are both built around sandboxes that sleep with their memory and wake on traffic. If your agents instead work for hours on builds, tests, browsers and desktops, look at bochka: a full VM on fast CPUs with a desktop, hosting and agents you drive from outside built in.
CPU speed for long builds
On the same benchmark bochka did 26.69 runs per second and Freestyle did 9.64, so each install and test takes almost three times as long there. Azure has no comparable measurement.
A screen for computer use
Azure's sandboxes are headless, and on Freestyle you install GNOME or Xvfb, VNC and Chromium yourself and keep them working. bochka streams a Linux desktop at 60fps with Chromium and computer use ready.
Agents you drive from outside
Both run coding agents through raw exec, so you parse their output yourself, and Azure injects model tokens into the sandbox. bochka has a prompt, steer and events API and keeps real keys in a credentials proxy outside.
Use bochka when your agents do real work for hours: builds, tests, Docker, emulators, a desktop and a browser, on fast CPUs, with an API to drive the agents inside from outside. Compare it one to one: bochka vs Freestyle and bochka vs Azure Container Apps Sandboxes.
Questions people ask
Is Freestyle cheaper than Azure Container Apps Sandboxes?
In the scenarios on this page, yes. One coding agent on workdays is $27 on Freestyle against $68 on Azure, and 50 agents in parallel are $2,139 against $3,421. For 1,000 short jobs at once Freestyle Pro caps at 400 concurrent VMs, so Azure fits that one better.
Which is faster, Freestyle or Azure Container Apps Sandboxes?
There is no comparable CPU measurement for Azure yet. Freestyle did 9.64 runs per second on the hpc-sandbox-benchmarks test at 4 vCPU / 8 GB, and bochka did 26.69 on the same test.
Can both run Docker?
Freestyle runs Docker from boot on its default image, with systemd as pid 1. On Azure it depends on the image: azure-dev ships Docker, and the default ubuntu image has only Buildah. bochka runs Docker on every sandbox.
Can I SSH into them?
Freestyle supports SSH into its VMs. Azure does not; it gives you a shell through the aca CLI, the SDK or the portal. Every bochka sandbox has an SSH endpoint.
Can either run a browser or computer-use agent?
Not out of the box. Freestyle has guides to install a desktop, VNC and Chromium yourself, and Azure's sandboxes are headless. bochka ships a 60fps Linux desktop, Chromium and computer use in every sandbox.
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