Blacksmith vs GitHub-Hosted Runners: Real Cost and Speed
Blacksmith runs GitHub Actions on bare-metal gaming CPUs at $0.004/min against GitHub-hosted list of $0.006/min. Whether that is worth switching depends on one thing most comparisons skip: whether your repository is public.
Blacksmith is a drop-in replacement for GitHub-hosted runners: you install a GitHub App, change the runs-on label, and your jobs execute on Blacksmith hardware instead of GitHub infrastructure. The pitch is that CI is mostly single-threaded, so raw clock speed beats core count, and Blacksmith buys clock speed by running bare-metal consumer gaming CPUs rather than the shared server parts most clouds rent.
Before the comparison, the caveat that decides this for a large share of readers: standard GitHub-hosted runners are free and unlimited on public repositories, and on a public repo they give you 4 vCPU and 16 GB of RAM. No paid runner can beat free. If your repository is public and standard runners are fast enough, this comparison is academic and you should stay where you are.
For private repositories the arithmetic changes completely. There you get 2 vCPU and 8 GB, you are billed $0.006 per minute after your plan allowance, and a faster or cheaper runner is worth real money. Everything below assumes a private repository. Prices were verified against vendor pages on 2026-08-20.
Published figures, private repository, Linux
| GitHub-hosted | Blacksmith | |
|---|---|---|
| Linux x64 rate | $0.006/min (2-core) | $0.004/min |
| Linux arm64 rate | $0.005/min (2-core) | $0.0025/min |
| Standard spec, private repo | 2 vCPU / 8 GB / 14 GB SSD | Bare-metal gaming CPU |
| Windows x64 | $0.010/min (2-core) | $0.008/min |
| macOS | $0.062/min (3-4 core) | $0.08/min (M4) |
| Free minutes/month | 2,000 Free, 3,000 Pro and Team, 50,000 GHEC | 3,000 |
| Public repositories | Free and unlimited, 4 vCPU / 16 GB | Billed normally |
| Job boot time | Not published | Under 3 seconds (Firecracker microVM) |
| Automatic failure recovery | No | No |
If your repository is public, stay on GitHub-hosted
GitHub documents that use of standard GitHub-hosted runners is free and unlimited on public repositories, and public repos get the larger 4 vCPU / 16 GB configuration rather than the 2 vCPU / 8 GB private-repo one. That is a better machine than the private-repo default, at no cost.
- The one exception is larger runners: GitHub bills those even on public repositories and even when you still have plan quota.
- So the honest rule is that a public repo on standard runners has nothing to gain financially by moving, and something to gain only if wall-clock speed is the pain.
The price difference, in actual dollars
At published Linux x64 rates, per 10,000 private-repo minutes per month:
| Runner | Rate | Cost per 10,000 min | Difference vs GitHub-hosted |
|---|---|---|---|
| GitHub-hosted, 2-core | $0.006/min | $60.00 | baseline |
| Blacksmith, Linux x64 | $0.004/min | $40.00 | -$20.00 |
| Blacksmith, Linux arm64 | $0.0025/min | $25.00 | -$35.00 |
Why Blacksmith is faster: clock speed, not core count
The architectural bet is specific. Most CI critical paths are one process doing one thing: a tsc invocation, a Rust or Kotlin compile, a Webpack bundle, a single-threaded test runner. Those workloads do not get faster when you add vCPUs; they get faster when the core runs at a higher clock. Blacksmith buys that by running consumer gaming CPUs on bare metal instead of server SKUs.
- Blacksmith cites a single-thread PassMark score of 4484, which the independent RunsOn benchmark ranks highest among managed GitHub Actions runner providers.
- Jobs boot into an ephemeral Firecracker microVM in under three seconds, so queue-to-start latency is not where the time goes.
- Published workload results: Node.js builds 5.9x, Rust 4x, Docker 3x, and Android 2.3x faster than GitHub-hosted.
- A co-located cache and Docker layer caching sit next to the compute, with sticky disks and static IPs as add-ons.
What GitHub-hosted still does better
A fair comparison has to name what you give up, because a drop-in swap is not free of consequences.
- Zero vendors. No extra GitHub App, no second status page, no second invoice, no second support relationship.
- Runner images are the reference implementation. Third-party providers track them, so on a new image release there is a window where behaviour can differ.
- Free and unlimited on public repositories, which no paid provider can match.
- GitHub-hosted is the environment every action, every marketplace step, and every Stack Overflow answer assumes.
The switch, and the switch back
Both directions are one line, which is the strongest practical argument for trying it: the cost of being wrong is a revert commit.
jobs:
build:
# GitHub-hosted
runs-on: ubuntu-latest
# Blacksmith
runs-on: blacksmith-4vcpu-ubuntu-2404
# Latchkey
runs-on: latchkey-smallThe failure mode neither one addresses
Blacksmith competes on making a passing job finish sooner. It does not change what happens when a job fails for a reason unrelated to your code: a registry timeout, a browser binary that did not install, a transient dependency resolution error, a network mount that blipped. On GitHub-hosted and on Blacksmith alike, that job fails, both the failed minutes and the re-run minutes are billed, and the pipeline waits for a human to notice and click.
- A 2x faster runner does not fail less often. It fails just as often, sooner.
- The expensive part is rarely the minutes. It is the hours between the failure at 02:00 and the engineer who sees it at 09:00.
Decide with your own repository
- Both tools in a mature category can do the job. What differs is behaviour on your codebase, which takes an afternoon to measure and beats any feature table.
- Benchmark the cold path with no cache. Warm local runs favour whatever you already have cached, which is the one condition CI never has.
- Price the switching cost honestly: lockfile or config format, stricter resolution surfacing latent bugs, and every developer plus every runner having to move together.
The verdict
Public repository on standard runners: stay on GitHub-hosted. It is free, unlimited, and gives you a bigger machine than the private-repo default. Nothing here beats that.
Private repository, CPU-bound builds: Blacksmith has a real and measurable case. It is 33% under GitHub-hosted list on Linux x64, and its bare-metal high-clock architecture targets exactly the single-threaded compile and bundle steps that dominate most critical paths. If your builds run on ARM, the $0.0025/min rate is a 58% saving on list and the strongest number on this page.
Either way, benchmark one job for two weeks before migrating a pipeline. Both the switch and the revert are a single runs-on line, so the honest test costs almost nothing.
Frequently asked questions
Is Blacksmith cheaper than GitHub Actions?
How much faster is Blacksmith than GitHub-hosted?
What hardware do GitHub-hosted runners actually give you?
Do I have to rewrite my workflows to use Blacksmith?
runs-on label. Your steps, actions, secrets, and matrix stay the same. Reverting is the same one-line change, which makes a two-week trial on a single job a low-risk way to get real numbers.