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.
| How | Machines | Tool’s charge | 100,000 minutes a month |
|---|---|---|---|
| GitHub-hosted larger runner, for comparison | GitHub’s | $0.012 a minute | $1,200 |
| Your own always-on machines | Yours, running all month | None | The machines, busy or idle |
| Actions Runner Controller | Pods in your Kubernetes cluster | None (open source) | Your cluster’s share |
| terraform-aws-github-runner | EC2 machines per job | None (open source) | About $140 on spot, plus Lambda and upkeep |
| RunsOn | EC2 machines per job, mostly spot | €300 to €3,600 a year | About $150 on spot, plus €25 to €300 and about $7 for its control plane |
| WarpBuild BYOC | Machines in your AWS, GCP or Azure account | $0.002 a minute | Your machines plus $200 |
| SuperCI | Machines per job in your AWS, Cloudflare or Modal account | None (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.
- The Register on GitHub’s self-hosted runner charge: the announcement, its scope and the postponement, with GitHub’s words.
- GitHub’s runner pricing: hosted runner prices.
- Security hardening for GitHub Actions: self-hosted runners and public repositories.
- RunsOn pricing: licences, spot prices and the control plane’s cost.
- WarpBuild pricing: the BYOC price.
- SuperCI: SuperCI vs the Terraform module, SuperCI vs Actions Runner Controller, Cheaper GitHub Actions runners on AWS spot for a month’s sum with the disk and address.