Skip to content
Latchkey

Depot vs Blacksmith: Managed GitHub Actions Runners Compared

Depot and Blacksmith charge the same per minute at every comparable runner size. The real choice is architectural: Blacksmith optimizes single-core wall-clock, Depot optimizes disk and cache throughput.

Depot and Blacksmith are the two managed GitHub Actions runner providers teams shortlist most often, and almost every comparison of them leads with price. That is the one thing that will not decide it. As of 2026-08-20 their published Linux x64 rates are identical at every size that both sell: $0.004/min at 2 vCPU, $0.008 at 4 vCPU, $0.016 at 8 vCPU, and $0.032 at 16 vCPU. You cannot pick between them on the rate card.

What actually differs is the machine underneath and what it is tuned for. Blacksmith runs jobs on bare-metal gaming CPUs inside Firecracker microVMs, chasing the highest single-thread performance available in the category. Depot runs each job on a single-tenant EC2 instance with a RAM disk mounted by default and a cache tier rated to 1,000 MiB/s, chasing I/O throughput. Those are different bets, and which one pays off depends entirely on where your pipeline spends its minutes.

This page compares them on published, dated figures, then gives you a way to measure which bottleneck you have before you commit. Every price and claim below is sourced from the vendor pricing or product pages and was verified on 2026-08-20.

Depot vs Blacksmith at a glance

DepotBlacksmith
Linux x64, 2 vCPU$0.004/min$0.004/min
Linux x64, 4 vCPU$0.008/min$0.008/min
Linux x64, 8 vCPU$0.016/min$0.016/min
Linux arm64, 2 vCPUNot published as a separate rate$0.0025/min
Compute substrateSingle-tenant EC2 instance per jobBare-metal gaming CPU, Firecracker microVM
Optimized forDisk and cache throughputSingle-core wall-clock speed
CacheUnlimited storage, up to 1,000 MiB/sCo-located cache, sticky disks
Billing granularityPer secondPer minute
Free tier$20/mo Developer plan includes minutes3,000 minutes/month
Boot timeNot publishedUnder 3 seconds (published claim)
Automatic failure recoveryNoNo

They cost the same, so price cannot decide it

Set the two rate cards side by side and the Linux x64 columns match exactly. This is not a coincidence: both vendors anchor to the same competitive reference point, and both undercut GitHub-hosted, which lists Linux 2-core x64 at $0.006/min as of 2026-08-20.

Linux x64 sizeGitHub-hostedDepotBlacksmith
2 vCPU$0.006$0.004$0.004
4 vCPU$0.012$0.008$0.008
8 vCPU$0.022$0.016$0.016
16 vCPU$0.042$0.032$0.032

Blacksmith: buy single-core speed

Blacksmith runs on bare-metal consumer-grade gaming CPUs rather than the server parts most clouds rent. The point is clock speed and single-thread throughput: 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.

  • Published workload claims: Node.js builds 5.9x, Rust 4x, Docker 3x, and Android 2.3x faster than GitHub-hosted.
  • Co-located CI cache and Docker layer caching, with sticky disks and static IPs as add-ons.
  • Installed as a GitHub App, selected with runs-on labels.
  • 3,000 free minutes per month.

Depot: buy I/O and billing precision

Depot came to runners from Docker build acceleration, and the runner product carries that heritage. Each job gets a single-tenant EC2 instance with a RAM disk mounted by default, which Depot rates at 3x faster disk access than the standard runner filesystem. Cache storage is unlimited rather than capped, and rated to 1,000 MiB/s in both directions.

  • Unlimited cache storage, against the 10 GB per-repository ceiling on GitHub-hosted cache.
  • RAM disks on by default, so heavy write workloads never touch a network volume.
  • Billed per second rather than rounded up to the minute.
  • No concurrency cap on simultaneous jobs.
  • Runner images track GitHub-hosted definitions, updated within one to two weeks of a release.

Which bottleneck do you actually have?

The honest answer is that most teams do not know, and pick on brand impression. You can find out in one job. Add this step to a representative workflow on your current runners and read the split between CPU time and wall-clock time.

Measure before you choose (GitHub Actions step)
- name: Where does this job spend its time
  run: |
    /usr/bin/time -v ./your-build-command 2>&1 | tee timing.txt
    echo "--- cache restore ---"
    du -sh ~/.cache 2>/dev/null || true

# In the output:
#   "Percent of CPU this job got"  near 100% (or N x 100% when parallel)
#     -> CPU-bound. A faster core wins. Favor Blacksmith.
#   "Percent of CPU this job got"  well under 100%
#     -> the job is waiting on disk or network. Favor Depot.
#   "Elapsed (wall clock) time"  dominated by actions/cache restore
#     -> cache throughput is your ceiling. Favor Depot.

The decision rule

Once you know the split, the choice is mechanical.

If your pipeline is dominated byPickBecause
TypeScript, Rust, Kotlin, or C++ compilationBlacksmithCompilation critical paths are single-threaded; clock speed is the lever
Docker image builds with large layersDepotLayer cache throughput and RAM disk dominate build time
actions/cache restore of large dependency treesDepotUnlimited cache at 1,000 MiB/s versus a 10 GB cap
A single-threaded test runnerBlacksmithSame reason as compilation: one core does the work
Many short jobs in a large matrixDepotPer-second billing stops you paying for unused rounding
ARM64 buildsBlacksmithPublished ARM rate of $0.0025/min; Depot publishes no separate ARM rate
Jobs that fail intermittently and get re-runNeither solves thisBoth bill the re-run at full rate

What neither of them does

Both vendors compete on making a successful job finish sooner. Neither changes what happens when a job fails for a reason that has nothing to do with your code: a registry timeout, a flaky network mount, a transient dependency resolution failure, a browser binary that did not install. On both platforms that job fails, a human notices, and someone clicks re-run. You pay for the failed minutes and the replacement minutes, and the merge waits on a person being awake.

  • The failed run is billed. So is the re-run. Neither vendor discounts a transient failure.
  • The wall-clock cost is not the runner minutes, it is the gap between the failure and the human who noticed it.
  • Flake rate is independent of runner speed. A 2x faster runner fails just as often, only sooner.

How to evaluate a managed runner honestly

Runner vendors compete on a headline per-minute rate, and the rate is rarely what decides the bill. Measure the whole job, on your own pipeline, before committing.

  • Compare at equal machine shape. A cheaper per-minute rate on fewer vCPUs or less RAM is not cheaper per unit of work.
  • Check billing granularity. Per-minute rounding costs real money on a wide matrix of short jobs; per-second does not.
  • Include queue and boot time. A runner that is cheaper per minute but slower to start can cost more per merge.
  • Count your re-runs. If a meaningful share of your runs are retries of a failed job, you are paying for the same work twice at whatever rate you negotiated, and no rate card prices that.
  • Verify the free tier is recurring. A one-time credit is not a free tier.

The verdict

Do not choose on price, because there is no price difference to choose on. At every Linux x64 size both vendors publish the same rate, and both undercut GitHub-hosted list price by the same margin.

Choose Blacksmith if your critical path is a single core working hard: compilation, bundling, a single-threaded test runner, or ARM64 builds where its published $0.0025/min rate has no Depot equivalent. Choose Depot if your critical path is I/O: large Docker layers, big cache restores against the 10 GB GitHub ceiling, or a wide matrix of short jobs where per-second billing stops the rounding tax.

Measure first. The step above tells you which you are in a single run, and it is the difference between a decision and a guess.

Frequently asked questions

Is Depot or Blacksmith cheaper?
Neither. As of 2026-08-20 their published Linux x64 rates are identical at every size both sell: $0.004/min at 2 vCPU, $0.008 at 4, $0.016 at 8, and $0.032 at 16. The only published rate that differs is Linux arm64, where Blacksmith lists $0.0025/min and Depot publishes no separate ARM rate.
Which is faster, Depot or Blacksmith?
It depends on what your job does. Blacksmith is faster on CPU-bound work because it runs bare-metal gaming CPUs with a cited single-thread PassMark of 4484. Depot is faster on I/O-bound work because it mounts a RAM disk by default and serves cache at up to 1,000 MiB/s with no storage cap. A compile-heavy pipeline favors Blacksmith; a Docker or cache-heavy pipeline favors Depot.
How do I switch to either one?
Both are drop-in: install the GitHub App and change the runs-on label in your workflow. Your YAML, actions, and steps are otherwise untouched. That also means switching away is equally cheap, so neither choice locks you in.
Does Depot or Blacksmith retry failed jobs automatically?
No. Neither product includes automatic detection and repair of transient failures. A job that fails on a registry timeout or a missing browser binary fails on both platforms, is billed on both platforms, and waits for a human to press re-run. Automatic on-runner repair is the gap both leave open.
What is the free tier for each?
Blacksmith publishes 3,000 free minutes per month. Depot bundles minutes into paid plans instead, starting with the $20/month Developer plan which includes 2,000 GitHub Actions minutes, 500 Docker build minutes, and 25 GB of cache.
Why does per-second billing matter?
Because GitHub Actions matrices produce many short jobs. A job that takes 70 seconds is billed as 2 minutes by a per-minute biller and as 70 seconds by a per-second one. Across a 40-job matrix that is roughly a 15% difference on the same work. Depot bills per second; Blacksmith bills per minute.
Do either of them lift the 10 GB GitHub Actions cache limit?
Depot does, explicitly: cache storage is unlimited, with overage billed at $0.20/GB/month beyond plan inclusions. Blacksmith provides a co-located cache and optional sticky disks but does not publish a storage cap figure, so confirm it against your working set before you migrate a large cache.
Can I run both?
Yes, and for a large monorepo it can be the right answer. Because runner selection is per job, you can point compile-heavy jobs at one provider and Docker-heavy jobs at another using different runs-on labels in the same workflow file. The cost is two vendor relationships and two bills.

Related guides

References

Latchkey runs the same jobs at $0.0025/min against $0.004/min, and repairs transient failures. Start free → 30-day trial · No credit card