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.

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.
| Plan | Included minutes | Artifact storage | Cache storage per repository |
|---|---|---|---|
| GitHub Free | 2,000 | 500 MB | 10 GB |
| GitHub Pro | 3,000 | 1 GB | 10 GB |
| GitHub Free for organizations | 2,000 | 500 MB | 10 GB |
| GitHub Team | 3,000 | 2 GB | 10 GB |
| GitHub Enterprise Cloud | 50,000 | 50 GB | 10 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 runner | Per-minute rate | Cost of 1,000 minutes | Against Linux x64 |
|---|---|---|---|
| Linux 1-core x64 | $0.002 | $2.00 | 0.33x |
| Linux 2-core arm64 | $0.005 | $5.00 | 0.83x |
| Linux 2-core x64 | $0.006 | $6.00 | 1x |
| Windows 2-core x64 | $0.010 | $10.00 | 1.7x |
| Windows 2-core arm64 | $0.010 | $10.00 | 1.7x |
| macOS 3-core or 4-core | $0.062 | $62.00 | 10.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 size | Linux x64 | Linux arm64 | Windows 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.252 | not 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 type | Included | Price above the allowance |
|---|---|---|
| Artifacts and GitHub Packages | 500 MB to 50 GB by plan, shared | $0.25 per GB-month |
| Actions cache | 10 GB per repository, every plan | $0.07 per GB-month |
| Custom images for larger runners | 75 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?
How much do GitHub Actions runners cost?
What do GitHub Actions larger runners cost?
What will be the impact of the change in Actions pricing?
Related guides
References
- GitHub Actions billing: included minutes, storage and how usage is measured (verified 2026-09-20)
- GitHub: Actions runner pricing, every per-minute rate by runner (verified 2026-09-20)
- GitHub Changelog: update to GitHub Actions pricing, 16 December 2025 (verified 2026-09-20)
- GitHub: about larger runners, availability and billing rules (verified 2026-09-20)
- GitHub Actions documentation