Sandal vs Blacksmith
Blacksmith made the one-line runs-on switch the standard move for faster Actions, on high-clock CPUs across Linux, Windows and macOS. Sandal makes the same move, bills by the second at a lower published rate, and is one surface of three, the same account also runs agent sandboxes and mobile simulators.
- $ / min · Linux 2 vCPU
- 0.004Blacksmith0.003Sandal
- $ / min · macOS
- 0.080Blacksmith0.060Sandal
- Billing granularity
- MinuteBlacksmithSecondSandal
- Also on the account
- , BlacksmithSandboxes · simulatorsSandal
Two good answers. Here is which one is yours.
- You want a CI-only vendor with no SDK to learn and nothing else on the bill.
- Their observability and job analytics are the reason you moved.
- Their runner catalog has the exact shape you need today.
- You want per-second billing at a lower published rate on comparable hardware.
- The same team also needs agent sandboxes, Xcode builds or iOS simulators.
- You want native ARM runners on the same meter.
Many teams run both. runs-on is per job and a sandbox is per task; nothing here is all or nothing.
What each one actually ships.
Documented capability as of August 2026. Where the honest answer is a qualifier rather than yes or no, the qualifier is printed. Scroll sideways on a small screen.
| Area | Blacksmith | Sandal | Why it matters |
|---|---|---|---|
| Runtime | |||
| Hardware | High-clock CPUs on dedicated hardware. | Dedicated cores on 4.5 GHz EPYC with local NVMe. | Both are a real speedup over shared hosted runners. |
| Cache | Sticky disks and a Docker layer cache. | Sticky disks restored just in time, no cap, delta-committed at teardown. | Both fix the 10 GB problem. |
| Isolation | |||
| Tenancy | Ephemeral runner per job. | Single-tenant microVM per job, destroyed on exit. | A fork PR cannot touch your release job. |
| Pricing | |||
| Billing | Per minute. | Per second; queue time free. | Short jobs pay for seconds, not minutes. |
| Surfaces | |||
| Operating systems | Linux, Windows, macOS. | Linux, Windows, macOS and native ARM. | ARM without emulation. |
| Beyond CI | CI only. | Sandboxes, iOS and Android simulators, Xcode builds, Windows and macOS machines. | One vendor for the whole loop. |
Capabilities change and rates change. If something here is out of date, tell us and we will fix it the same week.
Same shape. Two meters.
Published rates, August 2026. macOS on Apple silicon: Blacksmith $0.080, Sandal $0.060 per minute. Blacksmith bills by the minute; Sandal by the second.
- BlacksmithLinux · 2 vCPU
- 0.004$ / minute
- SandalLinux · 2 vCPU · paused = $0
- 0.003$ / minute
Five real job lengths on the published 2 vCPU Linux rates. A 71-second job bills as two minutes on a per-minute meter; times thousands of jobs a month, that is the difference.
One label changes.
Sandal registers as a self-hosted runner, so GitHub keeps orchestrating. Every action, cache, secret and reusable workflow keeps working.
- 01≈ 2 min
Install the app
Grant Actions and workflow read on the repos you want to move.
- 02≈ 5 min
Swap the label
npx sandal migrate rewrites runs-on for every job and opens a PR.
- 03≈ 1 week
Watch a week of jobs
Compare wall-clock time and the two invoices; change the label back if it is not better.
What we would rather you read here than find later.
A comparison page where the vendor wins every row is a brochure. These are real, and we would rather you land on the right tool than land on us and leave in a month.
- 01
A CI-only product.
If you want a vendor that does runners and nothing else, with job analytics built around that, Blacksmith is focused where we are broad.
Questions teams ask before moving off Blacksmith.
Yes. Both are self-hosted runners from GitHub’s point of view; change the runs-on label and everything else keeps working.
The rest of the field in ci runners.
Run the same job twice.
Point one workload at Sandal and one at Blacksmith. The numbers on this page are ours; the ones that matter are yours.