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.

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 workloadboat: price rankAzure 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 itCan'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 it31st of 36, with limits
$1,938 a month

Key features

FeatureboatAzure Pipelines
What you getA VM you start, stop, fork and reach from code, for agents and anything they runA pipeline service: YAML jobs triggered by pushes or pull requests, each on a fresh agent VM
IsolationEvery sandbox is a full VM with its own kernelEvery job runs in its own Azure VM, one agent per VM, reimaged after each run
Machine size4 vCPU / 8 GB by default; up to 8 vCPU on the $20 plan and 16 vCPU / 32 GB from the $100 planHosted agents are fixed at 2 cores / 7 GB with about 10 GB free disk; bigger machines through GitHub-hosted 8 and 16 core agents (per minute) or Managed DevOps Pools
How long a machine runsNo session cap on paid plans; an agent can run for days60 minutes per job on the free tier, 6 hours on paid jobs, up to two days on Managed DevOps Pools
Files after a stopThe disk persists, with snapshots every minute and on stop; a stopped sandbox costs nothingThe VM is discarded after one job; Managed DevOps Pools can keep stateful agents for up to seven days
ForkFork a running sandbox into copiesNo way to copy a running agent; state moves between jobs through caches and artifacts
Reaching the machineSSH; HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv6 or IPv4No remote connection and no public IP: external entities cannot reach a hosted agent
Docker and nested virtualizationDocker, root, systemd and /dev/kvm on every machineDocker and container jobs, passwordless sudo on Linux; no documented /dev/kvm on hosted agents
Desktop and browser60fps desktop and Chromium, computer use and browser control, embeddable streamHeadless: Chrome, Edge, Firefox and their WebDrivers preinstalled for tests, no desktop to watch or drive
Keeping keys out of the machineAI credentials proxy for model providers and any HTTPS API you register; real keys never enter the sandboxSecret variables are encrypted at rest and made available on the agent, mapped into environment variables and masked in logs
Coding agentsClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events APINone built in; you install an agent in a pipeline step. The REST API and Azure DevOps MCP server manage pipeline runs, not an agent inside a job
Operating systemsLinux only; Wine for Windows appsUbuntu, Windows Server with Visual Studio, and macOS with Xcode
RegionsEU only: Germany, Finland, FranceYour organization's geography across the US, Europe, UK, Canada, Asia Pacific, Australia and India; EU organizations stay in the EU
Your own machines and networkRuns on boat's hosts only; open internet, no provider-side egress allowlistSelf-hosted agents on any Linux, macOS or Windows machine; Managed DevOps Pools in your own virtual network with firewall rules
Compliance and transparencySOC 2 is in progress. We're open about where we stand: live status and data retention policy.SOC 2
Every feature Battleships tracks (43)
FeatureboatAzure Pipelines
Full VM (own kernel)YesYes
Docker insideYesYes
Nested virtualizationYesNo
RootYesYes
SystemdYesNot published
Desktop GUIYesNo
BrowserYesYes
Computer-use APIYesNo
SSHYesNo
Persistent diskYesYes
Pause/resumeYesNo
Automatic snapshotsYesNo
Fork/cloneYesNo
Live fork (no pause)YesNo
Memory forkNoNo
Custom image (Docker or snapshot)YesYes
≥24 h sessionsYesYes
Idle auto-stopNoYes
Wake on requestNoNo
HTTPS preview URLsYesNo
Raw TCP inboundYesNo
Public IPv4NoNo
Egress allowlistNoYes
Secret proxyYesNo
Secret proxy for any APIYesNo
Preinstalled agentsYesNo
Agent harness APIYesNo
MCP serverNoNo
GPUNoNo
WindowsNoYes
Arm64NoYes
Self-hostingNoYes
BYOCNoNo
Open sourceNoNo
Scoped API keysYesNot published
Spend limitsYesNot published
Usage per sandbox (API)YesNo
Audit logsNoNot published
SSONoYes
SOC 2NoYes
HIPAANoYes
EU data residencyYesYes
Zero data retentionYesNot published

Performance

boat26.69 runs/s
Azure PipelinesNot measured

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.

Scenarioboat, a monthAzure 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.

ScenarioboatAzure Pipelines
One coding agent, workdaysNone that bite
  • Basic: sessions capped at 6 h
  • adjacent product, not a like-for-like sandbox
  • different kind of product: app platform
  • beta / preview pricing: may change
One agent that never stopsNone that bite
  • Basic: sessions capped at 6 h
  • adjacent product, not a like-for-like sandbox
  • different kind of product: app platform
  • beta / preview pricing: may change
50 agents in parallelNone that bite
  • Basic: sessions capped at 6 h
  • adjacent product, not a like-for-like sandbox
  • different kind of product: app platform
  • beta / preview pricing: may change
Sandboxes for your usersNone that bite
  • adjacent product, not a like-for-like sandbox
  • different kind of product: app platform
  • smallest size offered is 8 vCPU / 32 GiB
  • beta / preview pricing: may change
1,000 short jobs at once
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)
  • adjacent product, not a like-for-like sandbox
  • different kind of product: app platform
  • smallest size offered is 8 vCPU / 32 GiB
  • beta / preview pricing: may change

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

More comparisons