Skip to content
Latchkey LogoLatchkey home

How GitHub Actions pricing works

How GitHub Actions pricing works comes down to three rules: standard runners are free on public repositories, private repositories get an allowance of included minutes each month, and everything past that allowance is billed per minute at a rate set by the operating system and the machine size. Storage for artifacts and caches is billed separately and by the hour, which is the part that shows up on the invoice without ever appearing in a workflow file.

One thousand minutes costs $2 on a 1-core Linux runner, $6 on 2-core Linux, $10 on Windows, $62 on macOS
The same 1,000 minutes on each standard GitHub-hosted runner, at the per-minute rates published on docs.github.com and read on 20 September 2026.

Actions has no seat fee and no pipeline fee. It has a meter on compute time and a meter on stored bytes, and the rate on the first meter changes by a factor of ten depending on which runner label you typed.

This page states the rules and the rates as GitHub publishes them, with the date each one was read. If you want the arithmetic done for you, the GitHub Actions cost calculator prices your own minute counts at these same rates.

Rule one: standard runners are free on public repositories

GitHub's billing documentation puts this plainly: the use of standard GitHub-hosted runners is free in public repositories, for GitHub Pages and for Dependabot. There is no minute cap attached to that sentence, which is why open source projects run enormous matrices without ever seeing an invoice.

The exception is the one that catches people. Larger runners are always charged for, even when used by public repositories and even when your plan still has included minutes available. A public repository that switches a job to a 16-core runner starts paying $0.042 a minute on a workflow that was free the day before.

Rule two: private repositories get an allowance, and it resets monthly

Every account gets a quota of included minutes for GitHub-hosted runners on private repositories, plus artifact and cache storage allowances. The minutes reset to the full amount at the start of each billing cycle, and usage is charged to the repository owner rather than to the person who triggered the run.

The allowance is generous at the top of the table and thin at the bottom. GitHub Enterprise Cloud includes 50,000 minutes; Team and Pro include 3,000; Free includes 2,000. At the standard Linux rate, a 3,000 minute allowance is $18 of compute, which a single busy repository can spend in a week.

PlanIncluded minutesArtifact storageCache storage per repository
GitHub Free2,000500 MB10 GB
GitHub Pro3,0001 GB10 GB
GitHub Free for organizations2,000500 MB10 GB
GitHub Team3,0002 GB10 GB
GitHub Enterprise Cloud50,00050 GB10 GB

Rule three: past the allowance, you pay by the minute and by the machine

The rate depends on the operating system and the core count, and every job is rounded up to the whole minute. These are the standard runner rates in force since 1 January 2026, when GitHub reduced hosted runner prices by up to 39 percent and folded a $0.002 per minute Actions cloud platform charge into the listed numbers.

Read the last column before you plan anything. A macOS minute is 10.3 times a standard Linux x64 minute, and a Windows minute is 1.7 times one. Those ratios, not the absolute rates, are what decide where your money goes, and they are why a mostly-macOS bill is the most common shape of a large Actions invoice.

Standard runnerPer-minute rateCost of 1,000 minutesAgainst Linux x64
Linux 1-core x64$0.002$2.000.33x
Linux 2-core arm64$0.005$5.000.83x
Linux 2-core x64$0.006$6.001x
Windows 2-core x64$0.010$10.001.7x
Windows 2-core arm64$0.010$10.001.7x
macOS 3-core or 4-core$0.062$62.0010.3x

Larger runners are a separate pricing regime

Larger runners are available to organizations on GitHub Team and GitHub Enterprise Cloud, and they are billed on their own terms: included minutes cannot be used for them, they are not free for public repositories, and the rate scales with the cores. Linux x64 runs from $0.012 at 4 cores to $0.252 at 96 cores, and Windows costs roughly twice the Linux rate at every size.

The arm64 tier is the one worth knowing about, because it is cheaper than x64 at every size rather than more expensive: $0.008 against $0.012 at 4 cores, $0.014 against $0.022 at 8, $0.098 against $0.162 at 64. If your toolchain is already multi-architecture, that is a third off the compute line for a one-word change in the runner label, and the GitHub Actions cost reduction page covers what a cheaper runner changes on top of that.

GitHub also publishes GPU runners at $0.052 a minute for 4-core Linux and $0.102 for 4-core Windows, and larger macOS runners at $0.077 for the 12-core and $0.102 for the 5-core M2 Pro.

Larger runner sizeLinux x64Linux arm64Windows x64
4-core$0.012$0.008$0.022
8-core$0.022$0.014$0.042
16-core$0.042$0.026$0.082
32-core$0.082$0.050$0.162
64-core$0.162$0.098$0.322
96-core$0.252not published$0.552

The second meter: storage

Storage accrues hourly, not monthly, and it keeps accruing after you stop looking at it. Artifacts and GitHub Packages share one allowance and cost $0.25 per GB-month above it. The Actions cache is a separate 10 GB per repository and costs $0.07 per GB-month above that, measured at the peak usage in each hour. Custom images for larger runners cost $0.07 per GB-month.

The detail that catches teams out is that deleting artifacts stops future charges but does not erase charges already accrued this cycle. GitHub's own example: 10 GB of artifacts held for ten days and then deleted still bills 2,400 GB-hours for the month. Short retention set in the workflow beats a cleanup script run in a panic, and reducing your GitHub Actions costs has that setting alongside six other changes ordered by what they save.

Storage typeIncludedPrice above the allowance
Artifacts and GitHub Packages500 MB to 50 GB by plan, shared$0.25 per GB-month
Actions cache10 GB per repository, every plan$0.07 per GB-month
Custom images for larger runners75 GB on Team, 150 GB on Enterprise Cloud$0.07 per GB-month

What changed in 2026, and what did not

On 16 December 2025 GitHub announced two changes. Hosted runner prices would fall by up to 39 percent on 1 January 2026, and from 1 March 2026 a $0.002 per minute Actions cloud platform charge would apply to self-hosted runner usage in private repositories.

The price cut happened. The self-hosted charge did not: GitHub postponed it, in its own words, "to take time to re-evaluate our approach", and the billing documentation still says Actions usage is free for self-hosted runners. If you are budgeting for next year, the honest position is that self-hosted runners cost you nothing in GitHub fees today and that a $0.002 per minute charge has been drafted, announced and shelved once. What a self-hosted GitHub runner really costs works through the rest of that bill, which is your own compute and the hours someone spends on the fleet.

Key takeaways

  • Standard runners are free on public repositories; larger runners never are.
  • Included minutes are 2,000 to 50,000 a month by plan, and they never apply to larger runners.
  • macOS lists at 10.3 times a standard Linux minute, and arm64 is cheaper than x64 at every larger size.
  • Storage is a second meter: $0.25 per GB-month for artifacts, $0.07 for cache above 10 GB per repository.

Frequently asked questions

Is GitHub Actions really free?
It is genuinely free on public repositories when you use standard GitHub-hosted runners, with no minute cap, and it is free for GitHub Pages and Dependabot builds. On private repositories it is free only up to the included minutes in your plan, which is 2,000 a month on Free and 3,000 on Pro and Team. Larger runners are billed in every case.
How much do GitHub Actions runners cost?
Standard runners cost $0.006 a minute for Linux 2-core x64, $0.005 for Linux 2-core arm64, $0.002 for the 1-core Linux runner, $0.010 for Windows and $0.062 for macOS. Larger Linux runners run from $0.012 a minute at 4 cores to $0.252 at 96 cores. Those were the published rates on 20 September 2026.
What do GitHub Actions larger runners cost?
Between $0.012 and $0.252 a minute on Linux x64, $0.008 to $0.098 on Linux arm64, and $0.022 to $0.552 on Windows, plus $0.077 for the 12-core macOS runner and $0.102 for the 5-core M2 Pro. None of it is covered by included minutes, and it is charged on public repositories as well as private ones.
What will be the impact of the change in Actions pricing?
The January 2026 change cut hosted runner prices by up to 39 percent, so a hosted-only bill went down. The change that would have raised bills, a $0.002 per minute platform charge on self-hosted runner usage announced for 1 March 2026, was postponed and has not taken effect. Budget on the current rates, and keep an eye on the changelog rather than on rumors.

Related guides

References

Same Linux minute, two published rates: $0.006 GitHub-hosted, $0.0025 on Latchkey at 2 vCPU. Start free → 30-day trial · No credit card