An independent record of CI runner prices
Every figure dated · No affiliate links

RunnerBench

The ten best-known managed GitHub Actions runner platforms, priced, graded and dated

30 Aug 2026 · 10 platforms, graded

Every figure is read from the provider's own pricing page, dated, and carries the date it was last checked, which is why GitHub appears here at $0.006 rather than the $0.008 most comparisons still quote.

The grades are arithmetic on one printed rubric applied identically to every platform, and where a figure is not published the cell is a dash rather than a guess.

Best overall

Blacksmith

Top of the rubric at $0.004 per minute, 33% less than GitHub. Bare-metal gaming CPUs in Firecracker microVMs, optimised for single-core speed.

A
Best value

Latchkey

The most grade per dollar in the table, compared like for like at 8 GB: A at $0.0025 per minute, 58% less than GitHub.

$0.0025/min

I · The report card

10 platforms, graded on what they publish

Order by

Each grade is computed from the vendor's own published record by the rubric printed below. No platform is adjusted by hand, including the one the owner founded. Hover a column for what it measures.

Platform
Price/min
Cost
Performance
VM support
Build reliability
Overall
01
$0.004
A
A+
A+
C-
A
02
$0.0025
A+
B
C
A+
A
03
$0.002
A
B
A+
C-
B+
04
$0.004
A
B
A+
C-
B+
05
$0.004
A
A+
C
C-
B+
06
$0.006
B
B+
A+
C-
B+
07
$0.004
A
B
B
C-
B
08
$0.004
A
C
C
B
B
09
$0.0075
C+
B
A
C-
B-
10
$0.008
C-
C
B
C-
C
Prices are Linux x64 at two vCPU, from each vendor's own page. A dash means the dimension is not published, so it is left out of that platform's average rather than guessed.
The rubric, in full
DimensionWeightWhat scores what
Cost35%Cheapest published Linux rate at 2 vCPU with at least 8 GB of RAM, against the GitHub-hosted baseline. Like for like: where a vendor ties memory to cores, the shape that actually has 8 GB is the one priced.
Performance25%What the vendor publishes about the machine and its cache. Dedicated, bare-metal or single-tenant compute adds most; named local storage (RAM disk, NVMe, SSD) adds a little; a cache described as co-located, uncapped or with a published throughput adds a little. Publishing no cache at all deducts, and a hard cap deducts less. This grades the published specification, not a benchmark: no independent runner benchmark with an open corpus exists, so no measured speed figure is used here or anywhere on this site.
VM support20%How many operating-system families the vendor publishes a rate for: Linux x64, Linux arm64, Windows and macOS. A provider that only publishes Linux scores lowest, whatever else it does well.
Build reliability20%Published automation that keeps a build green without a human. On-runner detection and repair of failing jobs scores highest; published agents that raise pull requests about the pipeline score partial; no published automation scores lowest. Not claiming a feature is an absence, not a defect.

Each dimension scores 0 to 4. The overall grade is the weighted average, banded: A+ from 3.35, A from 3.1, A- from 2.85, B+ from 2.6, B from 2.35, B- from 2.1, C+ from 1.85, C from 1.6, C- from 1.2, D+ from 0.9, D from 0.6, F below. Dimensions a vendor does not publish are excluded from that vendor's average, never guessed.

Performance grades the published specification, not a benchmark. No independent runner benchmark with an open corpus exists, so this site does not publish a speed figure and does not repeat vendor speed claims as measurements. What the column grades is what the vendor states about the machine and its cache.

II · Prices

Price, like for like

Linux x64 at two vCPU with 8 GB, USD per minute. Lower is better.

$0.0025
$0.004
$0.004
$0.004
$0.004 8 GB shape
$0.004
$0.004
$0.006 baseline
$0.0075
$0.016 8 GB shape
$0.006
The baseline

GitHub-hosted Linux at two vCPU. Every comparison on this page is measured against it.

6.4×
The spread

Between the dearest and cheapest published like-for-like rate (Buildkite at $0.016 against Latchkey at $0.0025).

The 2 vCPU row is not one shape. Namespace ties memory to core count, so its 2 vCPU shape has 4 GB rather than the 8 GB most of this table lists at that size. Its 2 vCPU shape with 8 GB is a separate, dearer one at $0.004/min. Buildkite ties memory to core count, so its 2 vCPU shape has 4 GB rather than the 8 GB most of this table lists at that size. Its 2 vCPU shape with 8 GB is a separate, dearer one at $0.016/min. The bars above price the 8 GB shape for exactly this reason.

Every size

Provider2 vCPU4 vCPU8 vCPU16 vCPU32 vCPU64 vCPU
Latchkey$0.0025$0.005$0.01$0.02--
Blacksmith$0.004-----
Depot$0.004$0.008$0.016$0.032$0.064$0.128
BuildJet$0.004$0.008$0.016$0.032$0.048-
Namespace$0.002$0.004$0.008$0.016$0.032$0.08
WarpBuild$0.004$0.008$0.016$0.032$0.064-
StarSling$0.004$0.008$0.016$0.032$0.064$0.128
GitHub-hosted$0.006$0.012$0.022$0.042$0.082$0.162
Semaphore$0.0075$0.015----
Buildkite$0.008$0.016$0.032---

Linux x64, price per minute by vCPU count. A dash means the provider does not publish a rate at that size.

III · The providers

Every provider, in full

All 10, in grade order. Open any row for its published record and source link.

+ BlacksmithBare-metal gaming CPUs in Firecracker microVMs, optimised for single-core speed $0.004/min at 2 vCPU A
vs GitHub
33% less
Model
Managed runners, drop-in
Billing
Per minute
Free tier
3,000 min/mo
Cache
Co-located CI cache; sticky disks available. No published size cap.
Memory at 2 vCPU
-
Runs in your cloud
No
Repairs failed jobs
No

Bare-metal gaming CPUs in Firecracker microVMs, optimised for single-core speed.

  • Cites a single-thread PassMark of 4484, the highest among managed providers per the RunsOn benchmark.
  • Publishes sub-3-second job boot into an ephemeral Firecracker microVM.
vCPULinux x64Linux arm64
2 vCPU$0.004$0.0025

Verified 30 Aug 2026 · source

+ LatchkeyManaged runners that detect, repair and retry transient failures on the runner $0.0025/min at 2 vCPU A
vs GitHub
58% less
Model
Managed runners, drop-in
Billing
Per minute
Free tier
2,000 min/mo (Developer), 4,000 (Launch), 6,000 (Scale)
Cache
Dependency and Docker layer caching included
Memory at 2 vCPU
8 GB
Runs in your cloud
No
Repairs failed jobs
Yes, on the runner

Managed runners that detect, repair and retry transient failures on the runner.

  • The only provider in this table that attempts automatic recovery from transient failures.
  • Publishes ~10s cold start and ~5s warm-pool pickup.
vCPULinux x64Linux arm64
2 vCPU$0.0025-
4 vCPU$0.005-
8 vCPU$0.01-
16 vCPU$0.02-

Verified 30 Aug 2026 · source

+ NamespaceBills unit-minutes rather than runner-minutes $0.002/min at 2 vCPU B+
vs GitHub
67% less
Model
Managed runners, drop-in
Billing
Per unit-minute (1 vCPU + 2 GB)
Free tier
Developer plan is $0, pay-as-you-go.
Cache
Volume snapshots at $0.002/GB-hr, 5,000-15,000 GB-hr free by tier
Memory at 2 vCPU
4 GB
Runs in your cloud
No
Repairs failed jobs
No

Bills unit-minutes rather than runner-minutes. One unit is 1 vCPU plus 2 GB.

  • Rates shown are prepaid at $0.001/unit-min. Overage is $0.0015/unit-min, 50% higher.
  • Platform multipliers: Linux 1x, Windows 2x, macOS 10x, Linux on Apple silicon 7x.
  • RAM is fixed at 2 GB per vCPU, so a memory-hungry job must buy cores to get memory. The 2 vCPU shape with 8 GB is a 4-unit shape at $0.004/min, twice the 4 GB one.
  • The 64 vCPU Linux shape bills 80 units, not 64, so it costs $0.08/min rather than the $0.064 the rest of the ladder implies.
vCPULinux x64Linux arm64
2 vCPU$0.002$0.002
4 vCPU$0.004$0.004
8 vCPU$0.008$0.008
16 vCPU$0.016$0.016
32 vCPU$0.032$0.032
64 vCPU$0.08-

Verified 30 Aug 2026 · source

+ WarpBuildManaged runners plus a bring-your-own-cloud mode that runs inside your own account $0.004/min at 2 vCPU B+
vs GitHub
33% less
Model
Managed runners, drop-in
Billing
Per minute
Free tier
- None published
Cache
Cache storage $0.20/GB-month; write/restore $0.0001 per operation
Memory at 2 vCPU
8 GB
Runs in your cloud
Yes
Repairs failed jobs
No

Managed runners plus a bring-your-own-cloud mode that runs inside your own account.

  • BYOC mode is $0.002/min for the control plane; compute is billed to you by your own cloud provider.
  • arm64 is priced 25% below x64 at every published size.
vCPULinux x64Linux arm64
2 vCPU$0.004$0.003
4 vCPU$0.008$0.006
8 vCPU$0.016$0.012
16 vCPU$0.032$0.024
32 vCPU$0.064$0.048

Verified 30 Aug 2026 · source

+ DepotSingle-tenant EC2 per job with a RAM disk and an uncapped cache tier $0.004/min at 2 vCPU B+
vs GitHub
33% less
Model
Managed runners, drop-in
Billing
Per minute
Free tier
Bundled into plans: Developer $20/mo includes 2,000 Actions minutes and 25 GB cache.
Cache
Unlimited storage, up to 1,000 MiB/s. Overage $0.20/GB/mo.
Memory at 2 vCPU
-
Runs in your cloud
No
Repairs failed jobs
No

Single-tenant EC2 per job with a RAM disk and an uncapped cache tier.

  • Bills per second rather than rounding up to the minute, which matters most on wide matrices of short jobs.
  • Cites 3x faster disk access from RAM disks mounted by default.
vCPULinux x64Linux arm64
2 vCPU$0.004-
4 vCPU$0.008-
8 vCPU$0.016-
16 vCPU$0.032-
32 vCPU$0.064-
64 vCPU$0.128-

Verified 30 Aug 2026 · source

+ GitHub-hostedThe default $0.006/min at 2 vCPU B+
vs GitHub
Baseline
Model
First-party (GitHub)
Billing
Per minute, rounded up
Free tier
2,000 min/mo (Free), 3,000 (Pro/Team), 50,000 (Enterprise Cloud). Private repos only.
Cache
10 GB per repository, hard cap
Memory at 2 vCPU
8 GB
Runs in your cloud
No
Repairs failed jobs
No

The default. Free and unlimited on public repositories; metered on private ones.

  • Larger runners are billed even on public repositories and even while plan minutes remain.
  • Private repositories receive half the vCPU and RAM that public repositories do.
vCPULinux x64Linux arm64
2 vCPU$0.006$0.005
4 vCPU$0.012$0.008
8 vCPU$0.022$0.014
16 vCPU$0.042$0.026
32 vCPU$0.082$0.05
64 vCPU$0.162$0.098

Verified 30 Aug 2026 · source

+ BuildJetLong-running drop-in replacement with a larger cache allowance than GitHub-hosted $0.004/min at 2 vCPU B
vs GitHub
33% less
Model
Managed runners, drop-in
Billing
Per minute
Free tier
One-time $5 credit. No recurring free minutes.
Cache
20 GB per repository, weekly, oldest entries cleared automatically
Memory at 2 vCPU
8 GB
Runs in your cloud
No
Repairs failed jobs
No

Long-running drop-in replacement with a larger cache allowance than GitHub-hosted.

  • ARM shells ship notably less RAM than AMD at the same price: 3 GB vs 8 GB at 2 vCPU.
  • Default concurrency 64 AMD vCPUs / 32 ARM vCPUs; +100 vCPUs costs $300/mo.
vCPULinux x64Linux arm64
2 vCPU$0.004$0.004
4 vCPU$0.008$0.008
8 vCPU$0.016$0.016
16 vCPU$0.032$0.032
32 vCPU$0.048$0.064

Verified 30 Aug 2026 · source

+ StarSlingManaged runners with AI agents that open pull requests to optimize your pipeline $0.004/min at 2 vCPU B
vs GitHub
33% less
Model
Managed runners, drop-in
Billing
Per minute
Free tier
One-time 2,000 free minutes in the first month.
Cache
- Not published
Memory at 2 vCPU
8 GB
Runs in your cloud
No
Repairs failed jobs
No

Managed runners with AI agents that open pull requests to optimize your pipeline.

  • Queue time is never billed, per the published FAQ.
  • Ships AI agents that open pull requests against your repo; the published examples are pipeline optimizations (caching, test sharding, parallelization) rather than repairs of failed jobs.
vCPULinux x64Linux arm64
2 vCPU$0.004-
4 vCPU$0.008-
8 vCPU$0.016-
16 vCPU$0.032-
32 vCPU$0.064-
64 vCPU$0.128-

Verified 30 Aug 2026 · source

+ SemaphoreA full CI platform rather than a drop-in runner $0.0075/min at 2 vCPU B-
vs GitHub
25% more
Model
Full CI platform
Billing
Per minute
Free tier
$15 credits/mo
Cache
9.6 GB per project
Memory at 2 vCPU
-
Runs in your cloud
Yes
Repairs failed jobs
No

A full CI platform rather than a drop-in runner. Adopting it means rewriting pipelines.

  • Self-hosted agents are $0.0025/min on any machine you supply.
  • x64 is more expensive per minute than GitHub-hosted; arm64 is substantially cheaper.
  • 20 concurrent jobs.
vCPULinux x64Linux arm64
2 vCPU$0.0075$0.003
4 vCPU$0.015$0.006
8 vCPU-$0.012

Verified 30 Aug 2026 · source

+ BuildkiteHybrid CI platform $0.008/min at 2 vCPU C
vs GitHub
33% more
Model
Full CI platform
Billing
Per vCPU-minute
Free tier
Free plan: 5 users, 10 concurrent jobs, 2,000 Linux vCPU-min/mo
Cache
- Not published
Memory at 2 vCPU
4 GB
Runs in your cloud
Yes
Repairs failed jobs
No

Hybrid CI platform. Bills per vCPU-minute plus per-seat and per-agent fees.

  • Linux hosted agents are $0.004 per vCPU-minute, so a 4 vCPU agent is $0.016/min.
  • Seat and agent fees usually dominate the compute comparison for teams above about ten people.
  • Self-hosted agents on your own infrastructure are supported.
  • macOS hosted agents are published at $0.02 per vCPU-minute. No per-runner macOS rate is published, so no figure is shown above.
vCPULinux x64Linux arm64
2 vCPU$0.008-
4 vCPU$0.016-
8 vCPU$0.032-

Verified 30 Aug 2026 · source

IV · Method

Arithmetic, not opinion

i.

Primary sources only

Every price is read from the vendor's own published pricing page. Sales quotes, blog posts and third-party summaries are not used.

ii.

Every figure is dated

Each figure carries the date its source page was last read. A price without a date is not a fact, it is a memory.

iii.

Absent means absent

Unpublished figures show as a dash and are left out of the average, never inferred from a plan total or a competitor's claim.

iv.

The rubric is public

Grades are computed from the dataset with no per-provider adjustment. Reweigh it yourself; the data is public.

How the figures are re-checked

Re-checking is a deliberate act, not a schedule. A script re-reads each vendor's own pricing page and asks one question per recorded figure: is that number still present on the page it was read from? It runs when the dataset is reviewed, and the date beside every figure is the date that check last passed.

It deliberately does not try to read the new value. 10 bespoke scrapers against pages that get redesigned without notice is a machine for producing confidently wrong numbers, and a wrong price published automatically is worse than a stale one published honestly. So the script detects the change and a person decides what the new truth is.

  • Every figure still present: the verification dates advance. That is what the date next to each number means.
  • A figure has gone: the run names exactly which, with source links, and the dates do not move. A disappearance is not proof of a price change; a redesign produces the same signal, so a human reads the page.
  • A page cannot be read at all: the run fails loudly rather than leaving stale data looking fresh. A site that appears maintained while going stale is the failure this design exists to prevent.

What is deliberately not here

  • Benchmarks. This site publishes prices, not performance. Vendor speed claims are quoted as claims, attributed, and never presented as measurements. This is also why the report card has no performance dimension.
  • Affiliate links. There are none, on any page, to any provider.
  • Sponsored placement. Table order is by price or by computed grade. It is not for sale.
  • Black-box scores. The one score this site does publish carries its entire rubric next to it.

The GitHub baseline

Comparisons use GitHub-hosted Linux 2-core x64 at $0.006/min as the reference point. GitHub reduced that rate from $0.008, and a large amount of published comparison content still calculates savings against the older figure. A provider charging $0.004 is 33% below current list, not 50%.