boat vs Blacksmith
Blacksmith is a fast, drop-in replacement for GitHub Actions runners, where each job gets a fresh machine that is destroyed when it ends. boat gives each agent its own full VM that you start by API, keep for as long as you like and reach from outside.
Where boat stands out
A machine that stays
A boat sandbox runs until you stop it, with no session cap on paid plans. Its whole disk is saved every minute and on stop, a stopped sandbox costs nothing, and you can fork a running one. On Blacksmith the microVM is destroyed when the job ends, and only sticky disk folders carry over.
Reach in: hosting and a desktop
boat gives each sandbox HTTPS URLs on up to 50 ports, raw TCP and a dedicated IP, so an agent can run an app and you can open it. It also streams a 60fps Linux desktop with Chromium for computer use.
Agents you drive from outside, keys kept out
Claude Code, Codex and five other agents come preinstalled, and you prompt, steer and follow them through one API from your own backend. Real API keys stay outside the sandbox in a credentials proxy, and a credential can switch to another account when it 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
Blacksmith
Blacksmith is a CI service: it runs your GitHub Actions jobs on its own faster, cheaper runners instead of GitHub's.
You change the runner label in your workflow file, and each job runs in a fresh Firecracker microVM that boots in under 3 seconds and is destroyed when the job ends. It adds Docker layer caching and sticky disks that carry chosen folders from one run to the next, plus a Testbox CLI in early beta that lets a local coding agent run commands inside a CI job. It is built for teams that want quicker, cheaper GitHub Actions, not as a general sandbox you drive by API; a separate Sandboxes product is marked coming soon.
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 | Blacksmith: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Agents that build and run whole apps need hosting, a kept disk and forks, which boat has; Blacksmith only runs the CI part of that loop. | 3rd cheapest of 367 $634 a month | 248th of 367, with limits $3,607 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month needs a disk that survives and a way to reach it, which boat gives and a CI job does not. | 5th cheapest of 366 $657 a month | 78th of 366, with limits $5,463 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 | 281st of 345, with limits $488 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Giving each of your users a sandbox means starting machines from your own backend, which boat does by API and Blacksmith does only through GitHub workflows. | Cheapest of 361 $209 a month | 268th of 361, with limits $1,563 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 | 276th of 360, with limits $7,488 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 | 354th of 364, with limits $1,188 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month Both fit; Blacksmith is the easy pick if you already use GitHub Actions and want faster jobs by changing one label, while boat fits CI you drive by API or that needs a machine to stay up. | 4th cheapest of 377 $86 a month | 78th cheapest of 377 $708 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB A dev box has to keep its files and stay reachable, but a Blacksmith machine is destroyed when its job ends and keeps only sticky disk folders. | 18th cheapest of 368 $26 a month | 180th of 368, with limits $207 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 to look at; boat streams a 60fps Linux desktop, and Blacksmith runners are headless. | 6th cheapest of 369 $200 a month | 243rd of 369, with limits $1,088 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 | 131st of 367, with limits $588 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 | 130th of 346, with limits $719 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 | 262nd of 338, with limits $14,613 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 | 64th of 360, with limits $350 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 Blacksmith has macOS runners on Apple Silicon, and boat runs Linux only. | Can't run it | 28th of 36, with limits $1,508 a month |
Key features
| Feature | boat | Blacksmith |
|---|---|---|
| What it is | A full VM per agent that you create, stop and start by API | GitHub Actions runners; each machine lives for one workflow job |
| Isolation | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts | Firecracker microVM with its own kernel on gaming CPUs |
| How a machine starts | One API call, SDK or CLI, from anywhere | A GitHub Actions job; Testbox warmup dispatches a workflow |
| How long it lives | Until you stop it; no session cap on paid plans | Until the job ends, then the microVM is destroyed; Testbox stops after 30 idle minutes by default |
| What survives a stop | The whole disk, saved every minute and on stop; a stopped sandbox costs nothing | Only sticky disk folders, up to 5 per job, evicted after 7 days unused |
| Fork | Fork a running sandbox with its disk | No; every machine starts fresh from a job |
| Nested virtualization | Yes, /dev/kvm for Android emulators and VMs | Yes on x64 Linux runners, not on ARM |
| Operating systems | Linux (x64) | Ubuntu x64 and ARM, Windows Server 2025 (beta), macOS on Apple Silicon |
| Biggest machine | Up to 16 vCPU / 32 GB on the $100 plan and above | Up to 32 vCPU / 128 GB on Ubuntu x64 |
| Inbound access | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IP | Opt-in debug SSH, only for the user who triggered the job; no ports or URLs |
| Desktop and computer use | 60fps Linux desktop with Chromium and computer use | Headless runners |
| Coding agents | Seven agents preinstalled, with a prompt, steer and events API | Its own [code]smith agent, used from Slack, GitHub or a web UI; Testbox CLI for local agents |
| Keeping API keys out of the machine | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out | GitHub Actions secrets and OIDC tokens available inside the job |
| Regions | EU only (Germany, Finland, France) | US east, US west, Amsterdam and Frankfurt |
| 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 | Blacksmith |
|---|---|---|
| Full VM (own kernel) | Yes | Yes |
| Docker inside | Yes | Yes |
| Nested virtualization | Yes | Yes |
| Root | Yes | Yes |
| Systemd | Yes | No |
| Desktop GUI | Yes | No |
| Browser | Yes | Yes |
| Computer-use API | Yes | No |
| SSH | Yes | Yes |
| 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 | No |
| ≥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 | No |
| 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 | No |
| BYOC | No | No |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | Not published |
| Usage per sandbox (API) | Yes | Yes |
| Audit logs | No | Not published |
| SSO | No | No |
| SOC 2 | No | Yes |
| HIPAA | No | No |
| EU data residency | Yes | Yes |
| Zero data retention | Yes | Not published |
Performance
There is no comparable measurement for Blacksmith: it was not part of the same CPU benchmark run. boat did 26.69 runs per second on the StarSling hpc-sandbox-benchmarks Node.js loop at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. Blacksmith says its runners use fast gaming CPUs, but we have no number measured the same way to set beside it.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Blacksmith 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 | Blacksmith, 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 | $36 · Pay-as-you-go · with limits |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $207 · Pay-as-you-go · 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 | $2,364 · Pay-as-you-go · 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 | $663 · Pay-as-you-go · 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 | $1,488 · Pay-as-you-go · with limits |
boat: 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.
Blacksmith: Blacksmith bills per minute of job time, scaled by vCPU and OS: Ubuntu x64 is $0.004 a minute for 2 vCPU, ARM $0.0025, Windows $0.008 and macOS $0.08 for 6 vCPU, with 3,000 free minutes a month. Sticky disks cost $0.50 per GB a month and a static IP $100 a month.
Limits in those scenarios
None of these scenarios fit Blacksmith cleanly, because it is a CI runner: a machine only exists while a GitHub Actions job runs, and only sticky disk folders survive between runs, so packages installed anywhere else are gone. Its prices here use the cheapest shape, ARM runners. For the 1,000 short jobs at once, boat's $2,000 plan queues starts above 90 per minute; Blacksmith's docs say it has no concurrency limit, but each start still has to be a workflow job.
| Scenario | boat | Blacksmith |
|---|---|---|
| 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 Blacksmith when
you want your GitHub Actions jobs to run faster and cheaper by changing one label, or need macOS or Windows runners.
- macOS and Windows runners. Teams that build or test iOS, macOS or Windows apps can run those jobs on Apple Silicon and Windows Server runners.
- A drop-in for GitHub Actions. If your CI already lives in GitHub Actions, you switch by changing a runner label and get caching and unlimited concurrency.
- US regions and bigger machines. It runs in the US as well as the EU, with Linux runners up to 32 vCPU and 128 GB.
Use boat when
your agents need their own machine outside CI: one you start by API, that keeps its disk, hosts what it builds, shows a desktop and runs coding agents you drive from outside.
- A machine that stays. An agent that installs tools, clones repos and builds up state loses all of it outside sticky disk folders when a Blacksmith job ends, so every run starts by setting the machine up again.
- Reach in: hosting and a desktop. A Blacksmith runner has no ports or URLs, only opt-in SSH for the person who started the job, so you cannot preview what an agent built or let a computer-use agent see a screen.
- Agents you drive from outside, keys kept out. Blacksmith machines start from GitHub workflows and its own agent is used from Slack or a web UI, so you would build the start, prompt and stream loop yourself, with real keys sitting inside the job.
Questions people ask
Is boat cheaper than Blacksmith?
For agent work, yes in four of the five scenarios on this page, for example $26 against $207 a month for one always-on machine and $317 against $2,364 a month for a fleet of 50. For 1,000 short jobs at once neither fits cleanly, and Blacksmith's estimate is lower. For plain GitHub Actions CI, Blacksmith is built for it and priced per minute of job time.
Can I run an AI agent on Blacksmith?
Partly. Its Testbox CLI, in early beta, lets a coding agent on your laptop run commands inside a CI job, and its own [code]smith agent works from Slack, GitHub or a web UI. Its Sandboxes product for coding agents is marked coming soon and has no published price.
Does Blacksmith keep files between runs?
Only in sticky disks: up to 5 folders per job, saved when the job ends and evicted after 7 days unused. The rest of the machine is destroyed after each job. boat saves a sandbox's whole disk every minute and when it stops.
Can boat run my GitHub Actions jobs?
A boat sandbox is a full Linux VM with root, so you can install the GitHub Actions self-hosted runner on it and keep caches on its disk. Blacksmith does that work for you as a managed drop-in, and also offers macOS and Windows runners.
Do both support Docker and nested virtualization?
Yes on Linux x64. Both run Docker, and both expose KVM for emulators and VMs; Blacksmith supports nested virtualization on x64 Linux runners but not on ARM, and its Windows runners cannot run Linux containers.
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
- boat vs Bitrise
- boat vs Buildkite
- 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 Blacksmith
- CircleCI vs Blacksmith
- Blacksmith vs Depot
- Blacksmith vs WarpBuild
- Blacksmith vs Buildkite
- Blacksmith vs GitLab.com hosted runners
- Blacksmith vs Bitrise
- Blacksmith vs Codemagic