boat vs Buildkite
Buildkite is a CI platform, and its hosted agents are machines that run one pipeline job each and are then destroyed. boat is built for AI agents that work for hours or days on one full Linux VM, with a disk that persists, a desktop, and coding agents you drive from outside.
Where boat stands out
One machine that keeps its state
A boat sandbox runs as long as the work does on paid plans, and its whole disk is saved every minute and on stop, so it starts again with every package and file in place. A Buildkite hosted agent is destroyed after each job, which can last 8 hours on Linux and 4 on macOS.
Coding agents you drive from outside
boat ships Claude Code, Codex and five other agents in each sandbox, and you drive agents inside from outside with a prompt, steer and events API. The credentials proxy keeps real keys for any HTTPS API out of the machine, and can switch a credential to another account when credits run out.
A full Linux computer, reachable from outside
Every boat sandbox has root, systemd, Docker and /dev/kvm, a 60fps desktop with Chromium for computer use, and HTTPS URLs on up to 50 ports plus raw TCP. Buildkite hosted agents expose no ports, and their desktop access is for a person debugging a macOS job.
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
Buildkite
Buildkite is a CI and software delivery platform, and hosted agents are the build machines it runs for you.
You write Buildkite pipelines, and each job runs on a fresh virtual machine that Buildkite starts for that job and destroys when it ends; only cache volumes carry files to the next job. Hosted agents come in Linux and macOS on Apple M4, with Windows in private preview, and you can also run Buildkite's agent on your own machines. It is a CI service, not an agent sandbox, so this page compares the part where they overlap: a machine where an agent or a job does its work.
- Where it runs
- Hosted agents run only in US East Coast data centers
- Compliance
- Maintains a SOC 2 Type II report
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 | Buildkite: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month A coding agent that builds a whole app needs the same machine for hours with its files intact; a Buildkite job VM is destroyed when the job ends, and only cache volume paths carry over. | 3rd cheapest of 367 $634 a month | 43rd of 367, with limits $11,648 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month does not fit a CI job that stops after 8 hours; boat has no session cap on paid plans. | 5th cheapest of 366 $657 a month | 351st of 366, with limits $17,564 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 | 315th of 345, with limits $1,587 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Your users' sandboxes need a URL they can reach; Buildkite hosted agents expose no ports, while boat gives each sandbox HTTPS on up to 50 ports and raw TCP. | Cheapest of 361 $209 a month | 326th of 361, with limits $4,984 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 | 316th of 360, with limits $23,881 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 | 324th of 364, with limits $3,884 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI is what Buildkite is built for, with pipelines, cache volumes and test tooling; boat runs CI jobs on full VMs with Docker and /dev/kvm for Android emulators. | 4th cheapest of 377 $86 a month | 203rd of 377, with limits $2,318 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A dev box has to stay up and keep its installed packages; on Buildkite everything outside cache volumes resets with each job. | 18th cheapest of 368 $26 a month | 354th of 368, with limits $715 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Buildkite's macOS desktop access is for a person debugging a job, with no API for an agent to click; boat streams a 60fps Linux desktop with computer use. | 6th cheapest of 369 $200 a month | 70th of 369, with limits $3,500 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 7th cheapest of 367 $200 a month | 142nd of 367, with limits $1,772 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 | 142nd of 346, with limits $2,354 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 | 317th of 338, with limits $46,814 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 2nd cheapest of 360 $200 a month | 85th of 360, with limits $1,184 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month Neither fits: all of Buildkite's hosted shapes and all of boat's are CPU only. | 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 Buildkite fits here: it runs macOS on Apple M4 with Xcode, and boat runs Linux only. | Can't run it | 35th of 36, with limits $2,310 a month |
Key features
| Feature | boat | Buildkite |
|---|---|---|
| Kind of product | Agent sandboxes you create and drive by API, CLI or SDK | CI build machines that run jobs from Buildkite pipelines |
| Isolation | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X (Zen 5) hosts | A virtual machine per job; Apple Virtualization framework on macOS |
| How long a machine runs | No session cap on paid plans; you set the time to live | Up to 8 hours per job on Linux and 4 on macOS, longer on request |
| Files after a run | The whole disk is saved every minute and on stop; a stopped sandbox costs nothing | The VM and its data are destroyed; cache volumes keep chosen paths after successful jobs, best effort, up to 14 days |
| Fork | Fork a running sandbox with its disk | Each job gets its own copy of the last committed cache volume |
| Docker, root and nested virtualization | Docker, root, systemd and /dev/kvm on every machine | Docker on Linux; macOS has the Docker CLI but no daemon; /dev/kvm not documented |
| Desktop and computer use | 60fps Linux desktop with Chromium, computer use and browser control, embeddable stream | Browser-based desktop access to debug a running macOS job; no computer-use API |
| Reaching the machine | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6 | No exposed ports; a terminal into a running job through Buildkite's UI or bk job ssh |
| Coding agents | Claude Code, Codex and five more preinstalled, with a prompt, steer and events API | You install Claude Code in your image or step and run it as a pipeline job |
| Keeping API keys out | Credentials proxy for model providers and any HTTPS API you register; switch a credential to another account when credits run out | Anthropic proxy: jobs call it with the job token and Buildkite sets the API key header |
| Operating systems | Linux only | Linux (AMD64, ARM64 on Enterprise), macOS on Apple M4 with Xcode, Windows Server 2022 in private preview |
| Biggest machine | Up to 16 vCPU / 32 GB on the $100 plan and above | Linux up to 8 vCPU / 32 GB on Pro and 64 vCPU / 256 GB on Enterprise; macOS up to 12 vCPU / 56 GB |
| CI pipelines | No pipeline service; run CI jobs on a sandbox yourself | Full CI platform with pipelines, test tooling and your own self-hosted agents |
| Regions | EU only (Germany, Finland, France), with EU data residency and zero data retention | US East Coast only |
| Compliance and transparency | SOC 2 is in progress. We're open about where we stand: live status and data retention policy. | SOC 2 |
Every feature Battleships tracks (43)
| Feature | boat | Buildkite |
|---|---|---|
| Full VM (own kernel) | Yes | Yes |
| Docker inside | Yes | Yes |
| Nested virtualization | Yes | No |
| Root | Yes | Not published |
| Systemd | Yes | No |
| Desktop GUI | Yes | Yes |
| Browser | Yes | Yes |
| Computer-use API | Yes | No |
| SSH | Yes | Yes |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | No |
| Automatic snapshots | Yes | Yes |
| Fork/clone | Yes | Yes |
| Live fork (no pause) | Yes | No |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | No |
| 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 | No |
| Secret proxy | Yes | Yes |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | No |
| Agent harness API | Yes | No |
| MCP server | No | Yes |
| 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 | No |
| EU data residency | Yes | No |
| Zero data retention | Yes | Not published |
Performance
We have no comparable measurement for Buildkite hosted agents: they were not part of the StarSling hpc-sandbox-benchmarks run. On that Node.js build-and-test benchmark at 4 vCPU / 8 GB, boat did 26.69 runs per second on dedicated AMD Ryzen 9 9950X (Zen 5) hosts.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Buildkite 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 | Buildkite, 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 | $166 · Pro · with limits |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $715 · Pro · 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 | $7,677 · Pro · 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 | $2,204 · Pro · 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 | $4,787 · Pro · 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.
Buildkite: Pro costs $30 per active user a month and includes 4,000 Linux vCPU minutes; after that Linux is $0.004 per vCPU minute and macOS $0.02, metered to the second with no minimums. A 4 vCPU / 16 GB Linux agent comes to $0.96 an hour, and Enterprise pricing is custom.
Limits in those scenarios
The limit that bites most on Buildkite is the job itself: a hosted agent stops after 8 hours on Linux, and everything outside cache volume paths is gone, so the agent that never stops and the coding agent that installs packages have to rebuild each run. Pro shares one pool of 256 Linux vCPU across all running agents, so 1,000 short jobs at once mostly wait in the queue. On boat the limits are a sandbox count per plan and starts per minute, so the same burst is queued and needs more starts per day than the $2,000 plan allows.
| Scenario | boat | Buildkite |
|---|---|---|
| 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 Buildkite when
you need a CI platform with pipelines, macOS on Apple M4 for iOS builds, Windows, or Linux build machines larger than 16 vCPU.
- macOS on Apple M4, and Windows. Useful if you build iOS or Mac apps: Buildkite runs macOS on Apple M4 with current Xcode, and Windows in preview.
- A whole CI platform. Useful if you want managed CI: pipelines, test tooling and cache volumes, mixing hosted and your own self-hosted agents.
- Bigger build machines. Useful for heavy builds: Enterprise Linux shapes go up to 64 vCPU and 256 GB, with ARM64 shapes too.
Use boat when
your agents work on Linux for hours or days: one full VM that keeps its disk, Docker and /dev/kvm, a 60fps desktop, URLs you can reach, and coding agents you drive from outside.
- One machine that keeps its state. An agent on Buildkite loses everything outside its cache volumes when the job ends, and those volumes are best effort and only saved after a successful exit. Your code has to rebuild the machine and its context every run.
- Coding agents you drive from outside. On Buildkite an agent is a pipeline step you start and read through logs, with no way to send it a new instruction mid-run. Its key proxy covers Anthropic only, so other keys sit inside the job.
- A full Linux computer, reachable from outside. An agent that runs a preview server, an Android emulator or a browser it clicks through has nowhere to show it on a Buildkite agent, and no display API to drive.
Questions people ask
Is boat cheaper than Buildkite hosted agents?
In the scenarios we priced, yes: one coding agent on workdays comes to $20 a month on boat and $166 on Buildkite, and one agent running all month to $26 versus $715. 50 agents in parallel come to $317 versus $7,677. For 1,000 short jobs at once neither fits as priced, at $2,000 on boat and $4,787 on Buildkite.
Can I run Claude Code on Buildkite hosted agents?
Yes, as a pipeline step: you install it in your image or step, and Buildkite's Anthropic proxy lets it call the API with the job token. The run ends when the job ends. On boat Claude Code is preinstalled, and you prompt and steer it through an API while it works.
How long can a Buildkite hosted agent run?
Up to 8 hours per job on Linux and 4 hours on macOS, and support can allow longer runs. After the job, the machine is destroyed. boat has no session cap on paid plans.
Do files survive between Buildkite jobs?
Only in cache volumes: paths you declare are saved when a job exits successfully and handed to the next job, on a best-effort basis for up to 14 days. Everything else is deleted with the VM. boat saves the whole disk every minute and on stop.
Does boat run macOS like Buildkite?
No. boat runs Linux VMs on dedicated AMD Ryzen 9 9950X (Zen 5) hosts. If you need macOS with Xcode, Buildkite's Mac hosted agents run it on Apple M4.
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. Buildkite maintains a SOC 2 Type II report.
Start a sandbox
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Bitrise
- boat vs Blacksmith
- boat vs CircleCI
- boat vs GitHub Actions
- boat vs Codemagic
- boat vs Depot
- boat vs GitLab.com hosted runners
- boat vs WarpBuild
- boat vs E2B
- boat vs Daytona
- boat vs Modal
- boat vs Vercel Sandbox
- GitHub Actions vs Buildkite
- CircleCI vs Buildkite
- Blacksmith vs Buildkite
- Depot vs Buildkite
- WarpBuild vs Buildkite
- Buildkite vs GitLab.com hosted runners
- Buildkite vs Bitrise
- Buildkite vs Codemagic