CompareSources read on

Self-hosted GitHub Actions runner pricing (2026)

GitHub charges nothing for self-hosted runners. The cost is the machines and whatever starts them: from about $140 for 100,000 minutes on spot, against $1,200 on GitHub's runners.

GitHub charges nothing for jobs on self-hosted runners. In December 2025 it announced a $0.002-a-minute charge for self-hosted runners on private repositories from March 2026, then postponed it, saying it would “re-evaluate our approach”; it has not taken effect. What a self-hosted runner costs is the machine it runs on, plus whatever tool starts and stops those machines.

What it costs, by way of running them

Prices are per minute for Linux on x64 with 4 vCPUs. The last column is a month of 100,000 such minutes.

HowMachinesTool’s charge100,000 minutes a month
GitHub-hosted larger runner, for comparisonGitHub’s$0.012 a minute$1,200
Your own always-on machinesYours, running all monthNoneThe machines, busy or idle
Actions Runner ControllerPods in your Kubernetes clusterNone (open source)Your cluster’s share
terraform-aws-github-runnerEC2 machines per jobNone (open source)About $140 on spot, plus Lambda and upkeep
RunsOnEC2 machines per job, mostly spot€300 to €3,600 a yearAbout $150 on spot, plus €25 to €300 and about $7 for its control plane
WarpBuild BYOCMachines in your AWS, GCP or Azure account$0.002 a minuteYour machines plus $200
SuperCIMachines per job in your AWS, Cloudflare or Modal accountNone (MIT)About $140 on AWS spot; between jobs only a small function waits

The spot figures are about $0.0014 to $0.0015 a minute for 4 vCPUs in us-east-1 in October 2026, with the disk and public address counted in. Spot prices move through the day and by region.

What the price leaves out

Someone has to look after it. Hosted runners need nothing. Self-hosted ones need machine images kept current, quotas raised, and someone to look when a job waits for a runner. The tools above differ mostly in how much of that they do for you.

Idle time. Machines that run all month cost the same whether jobs run or not. Starting a machine per job, as the per-job tools do, means paying only while jobs run, at the cost of a start-up wait.

Security. A self-hosted runner runs the job’s code with the job’s secrets on your machine. GitHub advises against self-hosted runners on public repositories, where anyone can open a pull request; per-job machines that are thrown away afterwards limit the damage a job can do.

Questions

Does GitHub charge for self-hosted runners?

Not now. The $0.002-a-minute charge announced for March 2026 was postponed and has not taken effect. GitHub did not say it would never charge; check its billing documentation for the current state.

What is the cheapest way to self-host GitHub Actions runners?

Machines started per job on spot capacity, with a free tool: about $0.0014 a minute for 4 vCPUs on AWS, against GitHub’s $0.012. The terraform module and SuperCI charge nothing; RunsOn adds a yearly licence; WarpBuild BYOC adds $0.002 a minute.

Are self-hosted runners cheaper than Blacksmith or other hosted services?

Per minute, yes: about $0.0015 on spot against $0.0025 to $0.012 for hosted services. Hosted services include the upkeep and their own caches, and several have free minutes, so for small workloads they can cost less overall.

Sources

Read on 27 October 2026.