boat vs Azure Pipelines
Azure Pipelines is a CI/CD service: each job gets a fresh VM that is thrown away when the job ends, after at most six hours. boat gives each agent its own VM that keeps its files, can be reached from outside and runs for as long as you need.
Where boat stands out
A machine that stays
A boat sandbox keeps its disk, takes a snapshot every minute and on stop, and costs nothing while stopped. Paid plans have no session cap, so an agent can work for days. A Microsoft-hosted agent is a fresh VM that is discarded after one job, and a paid job stops after six hours.
Reach it from outside
Every boat machine has SSH, HTTPS URLs for up to 50 ports with tokens, raw TCP and its own IP address. Azure's docs say hosted agents have no public IP and cannot be reached by anyone outside. You can watch a boat agent's 60fps desktop, open the app it just built, or fork the machine while it runs.
Coding agents you drive from outside
boat ships Claude Code, Codex, OpenCode and other agents inside each sandbox, and you drive them from outside with a prompt, steer and events API. Its AI credentials proxy keeps real keys outside the machine, and can switch a credential to another account when one runs out of credits.
The companies and products
boat
boat.dev runs sandboxes for AI agents: each one is a full Linux VM with its own kernel.
You start a machine with one command or one API call, then SSH in, run Docker, open a desktop, or let a built-in agent (Claude Code, Codex, OpenCode and others) work in it. The disk stays between sessions, and a stopped sandbox costs nothing.
- Isolation
- Full VM per sandbox, own kernel
- Regions
- EU: Germany, Finland, France
Azure Pipelines
Azure Pipelines is the CI/CD part of Microsoft's Azure DevOps: it builds, tests and deploys code each time you push.
You describe a pipeline in YAML, and each job runs on an agent. Microsoft-hosted agents are fresh Azure VMs with Ubuntu, Windows Server or macOS images full of build tools, discarded after one job. You can also run the agent on your own machines, or have Microsoft run pools of bigger VMs for you (Managed DevOps Pools). It is built for teams shipping software, not as a sandbox you start and keep from an API, so this page compares the two where they overlap: running agent and build work on a cloud machine.
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. “3rd cheapest of 367” means 2 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 | boat: price rank | Azure Pipelines: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Only boat fits: a software factory needs machines bigger than 2 vCPU that keep their files between sessions, and a hosted Azure agent is wiped after every job. | 3rd cheapest of 367 $634 a month | 353rd of 367, with limits $15,924 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB Azure Pipelines fits only as a compromise, because each job stops after at most six hours and its machine is discarded, so an always-on assistant has to be restarted and rebuilt again and again. | 5th cheapest of 366 $657 a month | 74th of 366, with limits $2,000 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month | 186th of 345, with limits $2,000 a month | 331st of 345, with limits $4,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Only boat fits: Azure Pipelines starts jobs from a pipeline run, has no public address to reach a machine and caps new organizations at 25 hosted jobs at once. | Cheapest of 361 $209 a month | 346th of 361, with limits $13,860 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month | 34th of 360, with limits $2,000 a month | 332nd of 360, with limits $66,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month | 10th cheapest of 364 $200 a month | 333rd of 364, with limits $5,280 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month boat fits 8 vCPU CI jobs on its $20 plan; standard Azure hosted agents are 2 vCPU, so a job that size runs on its per-minute GitHub-hosted 8-core agents, which are still in preview. | 4th cheapest of 377 $86 a month | 340th of 377, with limits $1,584 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 18th cheapest of 368 $26 a month | 361st of 368, with limits $964 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month | 6th cheapest of 369 $200 a month | 349th of 369, with limits $4,840 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month Azure agents ship Chrome, Edge, Firefox and their WebDrivers for headless tests, but have no desktop to watch; boat streams a 60fps desktop with Chromium. | 7th cheapest of 367 $200 a month | 143rd of 367, with limits $2,000 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 6th cheapest of 346 $90 a month | 140th of 346, with limits $2,000 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 71st of 338, with limits $1,800 a month | 335th of 338, with limits $129 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month Many attackers at once need many parallel jobs on Azure, each stopping after at most six hours, which is why it ranks as a compromise here. | 2nd cheapest of 360 $200 a month | 92nd of 360, with limits $3,190 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 |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month Only Azure Pipelines fits: it has macOS agents with Xcode, and boat has no macOS machines. | Can't run it | 31st of 36, with limits $1,938 a month |
Key features
Every feature Battleships tracks (43)
| Feature | boat | Azure Pipelines |
|---|---|---|
| Full VM (own kernel) | Yes | Yes |
| Docker inside | Yes | Yes |
| Nested virtualization | Yes | No |
| Root | Yes | Yes |
| Systemd | Yes | Not published |
| Desktop GUI | Yes | No |
| Browser | Yes | Yes |
| Computer-use API | Yes | No |
| SSH | Yes | No |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | No |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | No |
| Live fork (no pause) | Yes | No |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | Yes |
| Wake on request | No | No |
| HTTPS preview URLs | Yes | No |
| Raw TCP inbound | Yes | No |
| Public IPv4 | No | No |
| Egress allowlist | No | Yes |
| Secret proxy | Yes | No |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | No |
| Agent harness API | Yes | No |
| MCP server | No | No |
| GPU | No | No |
| Windows | No | Yes |
| Arm64 | No | Yes |
| Self-hosting | No | Yes |
| BYOC | No | No |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | Not published |
| Usage per sandbox (API) | Yes | No |
| Audit logs | No | Not published |
| SSO | No | Yes |
| SOC 2 | No | Yes |
| HIPAA | No | Yes |
| EU data residency | Yes | Yes |
| Zero data retention | Yes | Not published |
Performance
There is no comparable measurement: Azure Pipelines was not 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. A standard hosted Azure agent has 2 cores, so it cannot run that 4 vCPU test shape as is.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Azure Pipelines 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 | boat, a month | Azure Pipelines, 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 | $20 · $20/mo | $209 · Basic · with limits |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $964 · Basic · with limits |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $317 · $20/mo × 3 seats | $10,454 · Basic · with limits |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $200 · $100/mo × 2 seats | $5,940 · Basic · with limits |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $2,000 · $2000/mo · with limits | $13,200 · Basic · with limits |
boat: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Azure Pipelines: Microsoft-hosted agents are sold as parallel jobs: $40 a month for each job that can run at once, with unlimited minutes, after one free job with 1,800 minutes a month. Pipelines itself has no per-user charge; GitHub-hosted bigger agents bill per minute ($1.32 an hour for 8-core Linux, the size the scenarios use), and Managed DevOps Pools bill your Azure VM hours plus $15 a month per extra self-hosted parallel job.
Limits in those scenarios
No scenario here fits Azure as sold. A standard hosted agent is 2 cores / 7 GB, so the table prices the per-minute GitHub-hosted Linux agents, whose smallest size is 8 vCPU / 32 GB, and those are a preview capped at eight agents per size. Every job also stops after six hours and loses its files, and new organizations start at 25 hosted jobs at once, raised by a support request. On boat the limit is a sandbox count (100 to 2,000 by plan) plus starts per minute, so the 1,000-job burst gets queued and needs more starts per day than the top plan allows.
| Scenario | boat | Azure Pipelines |
|---|---|---|
| One coding agent, workdays | 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 Azure Pipelines when
you need CI/CD for a team, Windows or macOS build machines, or agents that run outside the EU or inside your own network.
- Windows and macOS build machines. Useful if you build Windows or Apple apps: hosted agents come with Visual Studio on Windows Server and Xcode on macOS.
- A full CI/CD system. Useful if you want builds on every push: pipelines in YAML, triggers from GitHub or Azure Repos, approvals and deployments.
- Regions, your own machines and network rules. Useful if jobs must run outside the EU, on your own hardware, or inside your company network behind firewall rules.
Use boat when
your agents need a real machine that stays: bigger than 2 vCPU, keeping its files, reachable over HTTPS and SSH, running for days, with coding agents and a desktop built in.
- A machine that stays. An agent that works across days on Azure must rebuild its machine every job and push its state through caches or artifacts. Managed DevOps Pools stretch that to two-day jobs and seven-day agents, but you run and pay for those VMs yourself.
- Reach it from outside. An agent that starts a web app or a dev server on Azure has no URL to show it to you or your users. You only see logs and artifacts after the job ends, and you cannot step in while it runs.
- Coding agents you drive from outside. In Azure Pipelines you install the agent in a script step and hand it secrets as environment variables, so the key sits on the machine the agent controls. You cannot steer it mid-job; you queue a new run.
Questions people ask
Is boat cheaper than Azure Pipelines?
They sell different things, but boat costs less in all five scenarios we priced. One coding agent on workdays comes to $20 a month on boat and $209 on Azure, using its 8-core GitHub-hosted Linux agent billed per minute. Azure's $40 parallel job buys unlimited minutes, but only on a 2 vCPU machine wiped after each job of at most six hours.
Can I run a coding agent inside Azure Pipelines?
Yes, as a pipeline step: install the agent, pass it a key as a secret variable and let it work until the job ends. The job stops after six hours on paid plans, the machine is discarded, and nothing outside can connect to it while it runs. On boat the agent is preinstalled, keeps its machine and is driven through an API.
Can boat replace Azure Pipelines for CI?
boat gives you machines, not pipelines: there are no YAML triggers, approvals or deployment stages. If you want both, Azure lets you install its self-hosted agent on any Linux machine, and the first self-hosted parallel job is free.
Does boat have Windows or macOS like Azure Pipelines?
No. boat runs Linux VMs on dedicated AMD Ryzen 9 9950X (Zen 5) hosts and has Wine docs for Windows apps. If you build with Visual Studio on Windows or Xcode on macOS, Azure Pipelines has hosted agents for both.
Where does my data run?
boat runs only in the EU (Germany, Finland and France), with EU data residency and a zero data retention option. Azure hosted agents run in your organization's geography, and EU organizations are always served from EU regions, but macOS agents always run in the US.
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.
Start a sandbox
Install the CLI, then run boat new.
7-day free trial