GitHub Actions pricing
How much do GitHub Actions minutes cost in 2026?
A standard GitHub Actions minute costs between $0.002 and $0.062 depending on the operating system and architecture, with the standard 2-core Linux runner billing at $0.006 per minute. On January 1, 2026, GitHub cut hosted runner rates by up to 39% across machine types, folding a $0.002 per-minute cloud platform charge into all published prices.
If you run private repositories, your account gets a monthly monetary compute pool rather than a set block of minutes ($12 on Free, $18 on Pro and Team, and $300 on Enterprise Cloud). Standard runners stay free on public repositories, while self-hosted runner billing remains on hold.
Standard runner rates and per-minute rounding
GitHub bills every runner job by the minute, and partial minutes never slide by. GitHub rounds the minutes and partial minutes each job uses up to the nearest whole minute. That means a quick test suite that finishes in 61 seconds bills as two full minutes, and a 5-second lint check still costs a full minute of runtime.
For standard GitHub-hosted environments, prices vary by operating system and architecture:
- Linux 1-core (x64), SKU
actions_linux_slim: $0.002 per minute - Linux 2-core (x64), SKU
actions_linux: $0.006 per minute - Linux 2-core (arm64), SKU
actions_linux_arm: $0.005 per minute - Windows 2-core (x64), SKU
actions_windows: $0.010 per minute - Windows 2-core (arm64), SKU
actions_windows_arm: $0.010 per minute - macOS 3-core or 4-core (M1 or Intel), SKU
actions_macos: $0.062 per minute
Why run arm64? Linux arm64 drops your per-minute compute bill from $0.006 to $0.005 compared to the x64 equivalent, which adds up quickly when multiple engineers push commits all day. Windows runners cost almost double the standard Linux machine, while standard macOS runners sit at ten times the price of x64 Linux.
All runner charges in private repositories go directly to the repository owner. It doesn't matter who opened the pull request or triggered the workflow run; the bill lands on the account hosting the repo. If you're looking to clamp down on runaway loops before they trigger multiple rounded-up jobs, check our guide on how to stop a runaway GitHub Actions workflow before it burns minutes.
Included compute pools and storage limits
GitHub does not hand out fixed minute allocations on private accounts anymore. Instead, your plan comes with an included compute usage allowance expressed as a monthly dollar amount.
GitHub Free gives you $12 per month in compute usage. GitHub Pro gives you $18 per month, and GitHub Free for organizations gives you $12 per month. GitHub Team provides $18 per month, while GitHub Enterprise Cloud includes $300 per month. As a benchmark from GitHub's docs, $300 covers 50,000 minutes on a standard 2-core Linux runner at $0.006 per minute.
And storage has its own distinct billing rules. Each tier provides an included allowance for artifacts and package storage, alongside repository cache limits:
- GitHub Free: 500 MB artifact storage, $12 compute usage, 10 GB cache per repo
- GitHub Free for organizations: 500 MB artifact storage, $12 compute usage, 10 GB cache per repo
- GitHub Pro: 1 GB artifact storage, $18 compute usage, 10 GB cache per repo
- GitHub Team: 2 GB artifact storage, $18 compute usage, 10 GB cache per repo, 75 GB custom image storage
- GitHub Enterprise Cloud: 50 GB artifact storage, $300 compute usage, 10 GB cache per repo, 150 GB custom image storage
Shared storage for artifacts and GitHub Packages beyond your plan allowance costs $0.25 per GB per month. Cache storage beyond the included 10 GB per repository costs $0.07 per GB per month. Custom image storage for larger runners over the allowance costs $0.07 per GB per month.
GitHub measures this storage in binary gigabytes (GiB), where 1 GB equals 1,073,741,824 bytes, and calculates billing in GB-Hours divided by the total hours in the month. Artifact usage updates every 6 to 12 hours, rounding to the nearest MB at month's end. Keep in mind that deleting an artifact stops future hourly accruals right away, but it won't erase the accrued storage charges already billed earlier in that billing cycle.
Runner pricing breakdown
The table below outlines the per-minute list prices across standard and larger runners, including Linux, Windows, macOS and GPU instances.
| Runner Specification | Architecture | SKU | Price per Minute (USD) |
|---|---|---|---|
| Linux 1-core standard | x64 | actions_linux_slim | $0.002 |
| Linux 2-core standard | x64 | actions_linux | $0.006 |
| Linux 2-core standard | arm64 | actions_linux_arm | $0.005 |
| Windows 2-core standard | x64 | actions_windows | $0.010 |
| Windows 2-core standard | arm64 | actions_windows_arm | $0.010 |
| macOS 3-core or 4-core standard | x64 / arm64 | actions_macos | $0.062 |
| Linux Advanced 2-core larger runner | x64 | linux_2_core_advanced | $0.006 |
| Linux 4-core larger runner | x64 | linux_4_core | $0.012 |
| Linux 8-core larger runner | x64 | linux_8_core | $0.022 |
| Linux 16-core larger runner | x64 | linux_16_core | $0.042 |
| Linux 32-core larger runner | x64 | linux_32_core | $0.082 |
| Linux 64-core larger runner | x64 | linux_64_core | $0.162 |
| Linux 96-core larger runner | x64 | linux_96_core | $0.252 |
| Windows 4-core larger runner | x64 | windows_4_core | $0.022 |
| Windows 8-core larger runner | x64 | windows_8_core | $0.042 |
| Windows 16-core larger runner | x64 | windows_16_core | $0.082 |
| Windows 32-core larger runner | x64 | windows_32_core | $0.162 |
| Windows 64-core larger runner | x64 | windows_64_core | $0.322 |
| Windows 96-core larger runner | x64 | windows_96_core | $0.552 |
| macOS 12-core larger runner | x64 | macos_l | $0.077 |
| macOS 5-core (M2 Pro) larger runner | arm64 | macos_xl | $0.102 |
| Linux 2-core larger runner | arm64 | linux_2_core_arm | $0.005 |
| Linux 4-core larger runner | arm64 | linux_4_core_arm | $0.008 |
| Linux 8-core larger runner | arm64 | linux_8_core_arm | $0.014 |
| Linux 16-core larger runner | arm64 | linux_16_core_arm | $0.026 |
| Linux 32-core larger runner | arm64 | linux_32_core_arm | $0.050 |
| Linux 64-core larger runner | arm64 | linux_64_core_arm | $0.098 |
| Windows 2-core larger runner | arm64 | windows_2_core_arm | $0.008 |
| Windows 4-core larger runner | arm64 | windows_4_core_arm | $0.014 |
| Windows 8-core larger runner | arm64 | windows_8_core_arm | $0.026 |
| Windows 16-core larger runner | arm64 | windows_16_core_arm | $0.050 |
| Windows 32-core larger runner | arm64 | windows_32_core_arm | $0.098 |
| Windows 64-core larger runner | arm64 | windows_64_core_arm | $0.194 |
| Linux 4-core GPU larger runner | x64 | linux_4_core_gpu | $0.052 |
| Windows 4-core GPU larger runner | x64 | windows_4_core_gpu | $0.102 |
Larger runners and configuration rules
Larger runners cater to heavier compilation tasks, but they operate under strict account restrictions. They are only available to organizations and enterprises on the GitHub Team or GitHub Enterprise Cloud plans. You cannot provision them on personal plans.
Unlike standard runners, larger runners are not free for public repositories. If your open-source repository runs a job on a larger runner, you pay the regular per-minute SKU rate.
There are two major operational benefits with how GitHub prices these larger machines:
- You are only billed at the per-minute rate for the amount of time workflows actually execute on them. There is zero base fee for creating a larger runner that sits idle waiting for a build.
- Assigning public static IP addresses to a larger runner incurs no extra cost.
Eligible larger runner usage can draw down from your monthly included compute allowance ($18 on Team or $300 on Enterprise Cloud). However, larger runners always require a valid payment method on file, regardless of whether you have remaining included credit.
Self-hosted runners and free tiers
Standard GitHub-hosted runners remain completely free for public repositories, GitHub Pages builds, and Dependabot tasks. They do not burn down your plan's included dollar allowance.
Are self-hosted runners free? Yes. Self-hosted runners remain free and do not reduce your included compute balance. GitHub originally announced a $0.002 per minute cloud platform charge for self-hosted runners starting March 1, 2026, but subsequently postponed that billing change to re-evaluate its approach.
Customers using GitHub Enterprise Server were never subject to that proposed charge anyway. They can continue hosting, running and managing Actions on self-hosted instances with no platform fees.
Catching runaway spend and enforcing caps
If your account doesn't have a valid payment method on file, GitHub blocks all Actions jobs the moment you exhaust your monthly compute allowance. If you do have a payment method attached, GitHub bills overages at the standard per-minute rates.
GitHub sends automated email alerts when your included usage hits 90% and 100% during a billing period. But if a broken workflow loops overnight, an email alert might arrive long after you've accumulated unexpected charges. You can review our detailed walkthrough on how to stop GitHub Actions from billing past your budget for step-by-step configuration options.
You can also check your current account login using the GitHub CLI:
gh api user --jq .loginThis is where automated billing tools help. Costbrake connects to GitHub to monitor your billing usage reports and active Actions runs alongside 22 other cloud and SaaS providers. It checks spend every hour on the Free plan and every 5 minutes on paid tiers, alerting on spikes (an hour costing over 3x the 7-day baseline and at least $5 more than usual) and month-end budget forecasts. If an overnight test matrix runs out of control, Costbrake provides a manual brake to disable the offending workflow and cancel queued jobs, or set your organization's Actions budget to $0. You can review Costbrake pricing or run the automated agent setup to connect your workspace.
Questions and answers
Are GitHub Actions free for open-source repositories?
Standard GitHub-hosted runners are free for public repositories, GitHub Pages, and Dependabot runs. Larger runners are never free for public repositories and bill at standard per-minute rates.
How does GitHub calculate fractional minutes?
GitHub rounds the minutes and partial minutes each job uses up to the nearest whole minute. A job running for 10 seconds or 65 seconds bills as one minute and two minutes respectively.
Are self-hosted GitHub Actions runners free in 2026?
Yes. Self-hosted runner usage does not draw from your included compute allowance and carries no per-minute platform fee, as GitHub postponed its previously announced March 2026 platform charge.
What happens when I hit my included compute limit without a credit card?
GitHub automatically blocks further Actions workflow execution once your monthly included compute dollars run out. Adding a valid payment method unblocks execution and allows metered billing.
Do I get billed for larger runners when no jobs are running?
No. Larger runners are only billed at their per-minute rate while workflows actively execute on them, and assigning public static IPs incurs no extra charge.
Sources
Updated