GitHub Actions free minutes: what each plan includes and what a quota buys on every runner
How many GitHub Actions minutes are free?
GitHub Actions includes 2,000 minutes a month on GitHub Free, 3,000 on Pro and Team and 50,000 on Enterprise Cloud, for standard runners on private repositories, read September 13, 2026. GitHub publishes no minute multiplier, so one billed minute draws one minute of quota on Linux, Windows, macOS and arm64 alike; only the rate after the quota differs, from $0.002 to $0.062 a minute. Standard runners are free and unlimited on public repositories, and larger runners never draw on the quota.
Last checked September 13, 2026: every quota, rate and rule on this page was read that day from GitHub's own Actions billing documentation, runner pricing reference, hosted-runner reference, Actions limits reference and budgets documentation, and is quoted here so you do not have to go and find it.
How many GitHub Actions minutes are included with each plan?
2,000 a month on GitHub Free and on GitHub Free for organizations, 3,000 on GitHub Pro and GitHub Team, and 50,000 on GitHub Enterprise Cloud, read from GitHub's Actions billing documentation on September 13, 2026. The minutes are for standard GitHub-hosted runners on private repositories; public repositories and self-hosted runners never touch them.
| Plan | Minutes per month | Artifact and Packages storage | Cache storage per repository | Custom image storage |
|---|---|---|---|---|
| GitHub Free | 2,000 | 500 MB | 10 GB | Not applicable |
| GitHub Pro | 3,000 | 1 GB | 10 GB | Not applicable |
| GitHub Free for organizations | 2,000 | 500 MB | 10 GB | Not applicable |
| GitHub Team | 3,000 | 2 GB | 10 GB | 75 GB |
| GitHub Enterprise Cloud | 50,000 | 50 GB | 10 GB | 150 GB |
The allowance resets rather than accumulates. GitHub's sentence, read September 13, 2026, is “At the start of each month, the minutes used by the account are reset to zero,” so an account that spent 500 of its 3,000 minutes starts the next month with 3,000 and not with 5,500. The storage allowances behave differently from each other: artifact storage is shared, because “your total storage across Actions artifacts and GitHub Packages storage cannot exceed the included amount for your plan,” while “Cache storage and custom image storage are separate allowances.” Custom image storage exists only on GitHub Team and GitHub Enterprise Cloud because custom images run only on larger runners.
Your plan also decides how many of those minutes you can spend at once, which is the quota nobody reads until a release is queued behind itself. The concurrency limits below are from GitHub's Actions limits reference, read September 13, 2026, and GitHub Support can raise them on a ticket.
| Plan | Concurrent jobs, standard runners | Concurrent macOS jobs | Concurrent jobs, larger runners |
|---|---|---|---|
| GitHub Free | 20 | 5 | Larger runners not offered |
| GitHub Pro | 40 | 5 | Larger runners not offered |
| GitHub Team | 60 | 5 | 1,000, of which 100 GPU |
| GitHub Enterprise Cloud | 500 | 50 | 1,000, of which 100 GPU |
The macOS column is a single pool: GitHub notes that “The maximum concurrent macOS jobs is shared across standard GitHub-hosted runners and GitHub-hosted larger runners,” so buying a macOS larger runner does not add a sixth concurrent macOS job on GitHub Team. A hosted job also has a hard ceiling of 6 hours of execution time, and a matrix can generate at most 256 jobs per workflow run.
How many minutes does my quota buy on Linux, Windows, macOS and arm64?
The same number of minutes on every standard runner: one billed minute draws one minute of quota, whichever operating system or architecture it ran on, read September 13, 2026. What changes with the runner is the rate charged after the quota is gone, and therefore what the quota is worth, which ranges from $0.002 to $0.062 a minute across the standard runners.
| Standard runner | Billing SKU | Per minute (USD) | Quota drawn per billed minute | Minutes a 3,000-minute quota buys | What those 3,000 minutes are worth |
|---|---|---|---|---|---|
Linux 1-core, x64 (ubuntu-slim) | actions_linux_slim | $0.002 | 1 minute | 3,000 | $6.00 |
Linux 2-core, x64 (ubuntu-latest) | actions_linux | $0.006 | 1 minute | 3,000 | $18.00 |
Linux 2-core, arm64 (ubuntu-24.04-arm) | actions_linux_arm | $0.005 | 1 minute | 3,000 | $15.00 |
Windows 2-core, x64 (windows-latest) | actions_windows | $0.010 | 1 minute | 3,000 | $30.00 |
Windows 2-core, arm64 (windows-11-arm) | actions_windows_arm | $0.010 | 1 minute | 3,000 | $30.00 |
macOS 3-core M1 or 4-core Intel (macos-latest) | actions_macos | $0.062 | 1 minute | 3,000 | $186.00 |
| Any larger runner, from 4 cores up | Its own SKU | From $0.005 | None | 0 | $0.00 |
The precise state of the multiplier question, because it is the part most pages get wrong: GitHub publishes no minute multiplier anywhere in its billing documentation as read on September 13, 2026. Its runner pricing reference gives each standard runner one flat per-minute rate. Its Actions billing documentation states each plan's allowance as “Minutes (per month)” and says those minutes “are reset to zero” at the start of the month. Neither document, in the GitHub Free, Pro and Team version or the GitHub Enterprise Cloud version, says that a Windows, macOS or arm64 minute draws more than one minute from the allowance.
One sentence of the old vocabulary survives, in one place, and it is worth knowing about because it is what an out-of-date answer is usually built on. GitHub's Actions billing and usage concept page, read the same day, says that usage metrics “do not apply minute multipliers to the metrics displayed” and tells the reader to see GitHub Actions billing “for more information about minute multipliers.” That page, read the same day, contains no multiplier and no multiplier table: it has a section called “Baseline minute costs” holding the flat per-minute rates instead. So the published mechanism today is one flat rate per runner and one minute of quota per billed minute. If your month is heavily macOS and the exact figure matters to an invoice, read the metered usage view for the account rather than computing it from an older page.
The consequence is about value rather than length. The quota does not stretch or shrink with the operating system, but it is worth ten times more when it is spent on macOS: on GitHub Free the same 2,000 included minutes are worth $4.00 on the 1-core Linux runner, $12.00 on standard Linux 2-core, $20.00 on Windows and $124.00 on macOS. A team that moves its macOS build inside the quota and pushes a cheap Linux job outside it is better off by the difference, and nothing in the quota rules stops them doing it. Every published rate for every runner size is on the GitHub Actions pricing page, and the cost calculator applies the quota and the rates to your own minutes.
Is GitHub Actions free for public repositories?
Yes, and without a minute limit: GitHub's hosted-runner reference, read September 13, 2026, says “Use of the standard GitHub-hosted runners is free and unlimited on public repositories.” A public repository also gets a larger machine than a private one for the same workflow label, at that same price of nothing.
| Workflow label | On a public repository | On a private repository | Cost on a public repository |
|---|---|---|---|
ubuntu-latest, ubuntu-24.04 | 4 cores, 16 GB memory, 14 GB SSD | 2 cores, 8 GB memory, 14 GB SSD | Free and unlimited |
windows-latest, windows-2025 | 4 cores, 16 GB memory, 14 GB SSD | 2 cores, 8 GB memory, 14 GB SSD | Free and unlimited |
ubuntu-24.04-arm | 4 cores, 16 GB memory, 14 GB SSD | 2 cores, 8 GB memory, 14 GB SSD | Free and unlimited |
windows-11-arm | 4 cores, 16 GB memory, 14 GB SSD | 2 cores, 8 GB memory, 14 GB SSD | Free and unlimited |
macos-latest, macos-26 | 3 cores (M1), 7 GB memory, 14 GB SSD | Same machine | Free, up to the macOS concurrency limit |
macos-15-intel, macos-26-intel | 4 cores (Intel), 14 GB memory, 14 GB SSD | Same machine | Free, up to the macOS concurrency limit |
ubuntu-slim | 1 core, 5 GB memory, 14 GB SSD, in a container | Same machine | Free and unlimited |
| Any larger-runner label | Charged from the first minute | Charged from the first minute | Not free |
Three more things are free and are easy to forget when reading a quota. GitHub's Actions billing documentation, read September 13, 2026, lists the use of standard GitHub-hosted runners as free “In public repositories,” “For GitHub Pages” and “For Dependabot,” and self-hosted runner usage is free as well. Copilot code review is metered on private repositories but, in GitHub's words, “For public repositories, GitHub Actions minutes remain free.”
The exception is worth stating twice, because it is the one that produces an unexpected invoice on an open-source project: “The larger runners are not free for public repositories,” and they are “always charged for, even when used by public repositories or when you have quota available from your plan.” A public repository that switches a slow build from ubuntu-latest to a 4-core larger runner goes from $0.00 a minute to $0.012 a minute, and it also gives up nothing in machine size, because the public-repository ubuntu-latest is already a 4-core, 16 GB machine.
Do larger runners use my free minutes?
No, never, on any plan and on any repository: “Included minutes cannot be used for larger runners,” says GitHub's runner pricing reference read September 13, 2026, and the Actions billing documentation adds that larger runners are “always charged for, even when used by public repositories or when you have quota available from your plan.” The cheapest larger runner is $0.005 a minute and it bills from its first minute.
| What it never gets | GitHub's sentence, read September 13, 2026 |
|---|---|
| Included minutes | “Included minutes cannot be used for larger runners.” |
| Free use on a public repository | “The larger runners are not free for public repositories.” |
| Any use before a card is on file | “Usage of larger runners is always blocked until you set up a payment method.” |
| Availability on GitHub Free or GitHub Pro | “Larger runners are only available for organizations and enterprises using the GitHub Team or GitHub Enterprise Cloud plans.” |
| A charge for standing idle | “There is no cost associated with creating a larger runner that is not being used by a workflow.” |
| Free custom image storage | Custom images run only on larger runners, and their storage is “billed separately through GitHub Actions storage based on the amount of stored image data over time” |
The rule turns one sensible engineering decision into a new invoice line. A GitHub Team account running 3,000 standard Linux 2-core minutes a month pays $0.00, because the quota covers all of them. Move exactly that workload to a 4-core Linux larger runner at $0.012 a minute and it pays $36.00, because the quota stops applying at the moment the label changes and the rate doubles at the same time. The 8-core is $0.022 and the 16-core $0.042, so the same 3,000 minutes are $66.00 and $126.00. Nothing about the job changed except the line that chose the machine.
Two of the rows above are in your favour and are worth using. An idle larger runner costs nothing, so a pool sized for a busy Tuesday does not bill on a quiet Sunday, and the “Advanced” 2-core larger runner is $0.006 a minute, the same rate as the standard Linux 2-core runner it replaces — it simply cannot draw on the quota.
What happens when my GitHub Actions minutes run out?
On an account with no valid payment method, hosted-runner usage stops that minute: “If your account does not have a valid payment method on file, usage is blocked once you use up your quota,” read September 13, 2026. On an account with a card, nothing visible happens at all — the next minute is billed at its runner's rate and the workflow keeps running.
| Situation | What happens the minute the quota is gone |
|---|---|
| No payment method on file | Hosted-runner usage is blocked until the quota resets or a payment method is added |
| Payment method on file, no budget | Usage continues and every further minute is billed at its runner's rate |
| Payment method on file, budget with the hard stop | Usage continues until the budget's dollar threshold, then is prevented |
| Larger runners, no payment method | Blocked at all times, quota or no quota |
| Jobs on public repositories | Unaffected: free and unlimited on standard runners |
| Jobs on self-hosted runners | Unaffected: self-hosted usage is free |
| GitHub Pages builds and Dependabot jobs | Unaffected: standard-runner use is free for both |
| Artifact, cache and custom image storage | Unaffected: separate allowances on a separate meter |
| The first of the next month | Minutes are reset to zero and the full allowance is available again |
Two properties of that block are worth planning around. It is abrupt and it is account-wide: it lands on whichever pull request happens to be running when the last minute goes, in every private repository the account owns, and it lasts until the cycle rolls over or a payment method is added. And it is the default state of a free account, not a setting somebody chose — on an account with no card, the included minutes are the spending limit, which is the safest configuration there is until the month it stops a release.
You can be warned before it happens. GitHub can send email when included usage reaches 90% and 100% of the allowance during a billing period, for GitHub Actions minutes and GitHub Actions storage among other products, but these included-usage alerts are opt-in from the Included usage alerts control on the Budgets and alerts page. Turning them on costs nothing and is the single cheapest thing on this page.
How do included minutes work with a GitHub Actions budget?
A budget counts dollars and the quota counts minutes, so a budget only begins to count after the included minutes are gone, read September 13, 2026. GitHub's budgets documentation states that “For metered products such as GitHub Actions, Copilot AI credits, or cloud sandboxes, you can set budgets to prevent usage once the budget threshold is reached,” and that stop applies to metered usage, which is by definition the usage beyond the allowance.
| Question | Included minutes | A budget |
|---|---|---|
| What is counted | Minutes of standard-runner execution | Dollars of metered usage |
| When it applies | From the first minute of the month | Only after the allowance is spent |
| Who sets it | Your plan; it cannot be changed | You, per account, organization, cost centre, user or repository |
| Alert thresholds | 90% and 100% of the allowance, opt-in | 75%, 90% and 100% of the dollar amount |
| Does it stop jobs? | Only when no payment method is on file | Only with “Stop usage when budget limit is reached” enabled |
| Does it reset? | Reset to zero at the start of each month | Monthly, and counts only from the date it was created |
The two alert families are genuinely different things and GitHub says so directly, read September 13, 2026: “Budget threshold alerts notify you when spending reaches a percentage of a dollar budget you have set. Included usage alerts notify you when your plan's free usage allowance is approaching depletion, regardless of whether you have set a budget.” A team that sets a $50 budget and nothing else will hear nothing at all while it burns through 3,000 free minutes, then hear at $37.50.
One detail catches everyone once. A new budget “applies only to metered usage from the date of its creation onwards,” so a budget created on the 20th of a month has not seen the first nineteen days, and the first cycle can overshoot even with the hard stop enabled. Set budgets at the start of a cycle, or expect the first one to be wrong. An account may hold up to 10,000 budgets, so there is no reason to have only one. How a budget is created, and what the hard stop does at the moment it fires, is worked through on the GitHub Actions billing explainer.
How do I see how many GitHub Actions minutes I have left?
In the billing settings of the account that owns the repositories, in the usage summary and then the Metered usage view, read September 13, 2026. Which of the five surfaces below you want depends on the question: the summary answers “how much is left”, the metered usage view answers “on what”, and only the downloaded report answers “in which repository and which workflow file”.
| What you want to know | Where it is | What it gives you |
|---|---|---|
| How much of my allowance is left | The billing overview page in your account settings | A tabbed summary of consumed use per product, with View details for more |
| The same, for an organization or enterprise | Billing & Licensing: under Access in organization settings, a tab of its own for enterprises | The same summary for the account that actually owns the repositories |
| Which product and SKU is spending it | The Usage or Metered usage view | A filterable chart and breakdown table, with Group and Time Frame controls and a download button |
| Which repository, user and workflow file | Get usage report, then Email me the report | A CSV by email; the download link expires after 24 hours |
| What one workflow run cost | The run's own page, under job execution time | The billable job execution minutes for that individual run |
| Which workflow and job is heaviest | The Insights tab, then Actions Usage Metrics | Minutes by workflow, job, repository, runtime operating system and runner type |
Two warnings come from GitHub's own pages and both cost people an afternoon. The dashboard may not show you minutes at all: “The billing dashboard may show your Actions usage as a dollar amount (‘spend’) rather than raw minutes. This amount already reflects any applicable minute costs.” And the metrics view is not the bill: “GitHub Actions usage metrics do not apply minute multipliers to the metrics displayed,” which is GitHub's own residual phrasing for the fact that the metrics count wall-clock job minutes per runner type and leave the money to the billing page.
If the number you want is “are we going to run out this month”, the quickest honest answer is the usage summary plus the opt-in alerts at 90% and 100%, and not a spreadsheet. If the number you want is “why did we run out”, it is the emailed report, grouped by workflow file. The four-pass version of that diagnostic is on the billing explainer, and what a self-hosted machine would have cost instead is worked through in what a self-hosted runner really costs.
What if your team runs past the included minutes?
Then every extra minute is billed at GitHub’s rate, and every 4 or 8 vCPU minute is billed from the first. Sengi runs the same Linux jobs for up to 74% less per build: they finish up to 1.9× faster, at $0.003 a minute for 2 vCPU with 8 GB, $0.006 for 4 vCPU with 16 GB and $0.012 for 8 vCPU with 32 GB. That buys bare-metal desktop CPUs boosting past 5 GHz, with up to 2.75× the multi-core CPU of GitHub’s 2 vCPU runner, and a fresh VM for every job.
No subscription, no minimum, cache included. Change runs-on to sengi-standard-2-ubuntu-2404 and merge, or give your coding agent the Sengi prompt and it opens the pull request for you. To try it, Sengi adds 3,000 free minutes of its own every month, no card required.
Frequently asked questions
How many free GitHub Actions minutes do I get each month?
2,000 a month on GitHub Free and on GitHub Free for organizations, 3,000 on GitHub Pro and GitHub Team, and 50,000 on GitHub Enterprise Cloud, read September 13, 2026. They apply to standard GitHub-hosted runners on private repositories, they are reset to zero at the start of each month, and they do not carry over. Public repositories and self-hosted runners do not draw on them at all.
Is GitHub Actions free?
It is free without a minute limit on public repositories with standard runners, and free on self-hosted runners. On private repositories it is free up to your plan's included minutes: 2,000 a month on GitHub Free, 3,000 on Pro and Team, 50,000 on Enterprise Cloud. Larger runners are charged from their first minute on every plan, public repositories included. Read September 13, 2026.
Are GitHub Actions free for public repositories?
Yes, and without a cap on minutes. GitHub's hosted-runner reference, read September 13, 2026, says "Use of the standard GitHub-hosted runners is free and unlimited on public repositories." A public repository also gets a bigger machine for the same labels: 4 cores and 16 GB of memory on Linux and Windows, where a private repository gets 2 cores and 8 GB. Larger runners are the exception and are never free.
How much does a macOS runner cost on GitHub Actions?
$0.062 a minute for the 3-core M1 or 4-core Intel standard macOS runner, read from GitHub's runner pricing reference on September 13, 2026. The 12-core macOS larger runner is $0.077 a minute and the 5-core M2 Pro larger runner is $0.102. macOS jobs are free on public repositories, and on private repositories they draw one minute of quota per billed minute, the same as Linux.
How much does a Windows runner cost on GitHub Actions?
$0.010 a minute for the standard Windows 2-core runner, on x64 and on arm64 alike, read September 13, 2026. Windows larger runners run from $0.022 a minute at 4 cores to $0.552 at 96 cores, and none of them draws on included minutes. A Windows minute costs 1.7 times a standard Linux 2-core minute at $0.006, but it uses the same one minute of quota.
How much does an arm64 runner cost on GitHub Actions?
$0.005 a minute for the standard Linux 2-core arm64 runner and $0.010 for the standard Windows 2-core arm64 runner, read September 13, 2026. arm64 Linux larger runners run from $0.008 a minute at 4 cores to $0.098 at 64 cores. The standard arm64 runners are ordinary standard runners: free on public repositories, and one minute of quota per billed minute on private ones.
Do macOS and Windows minutes use up my included minutes faster?
GitHub publishes no minute multiplier as of September 13, 2026. Its runner pricing reference gives each standard runner one flat per-minute rate, and its Actions billing documentation states each plan's allowance as a number of minutes that is reset to zero each month, with no per-operating-system conversion published anywhere. What changes with the operating system is the rate you pay after the quota is gone, not the rate the quota is drawn down.
Do larger runners use my included minutes?
No, never. GitHub's runner pricing reference, read September 13, 2026, states that "Included minutes cannot be used for larger runners," and its Actions billing documentation that they are "always charged for, even when used by public repositories or when you have quota available from your plan." The cheapest larger runner is $0.005 a minute and it bills from its first minute.
What happens when my GitHub Actions minutes run out?
Without a valid payment method on file, hosted-runner usage stops: GitHub's Actions billing documentation, read September 13, 2026, says "If your account does not have a valid payment method on file, usage is blocked once you use up your quota." With a card on file the next minute is simply billed at its runner's rate, unless a budget with "Stop usage when budget limit is reached" stops it first. Public-repository and self-hosted jobs are unaffected.
Do unused GitHub Actions minutes roll over?
No. GitHub's Actions billing documentation, read September 13, 2026, says that "At the start of each month, the minutes used by the account are reset to zero," which resets the allowance to the full amount rather than adding what you did not spend. An account that used 500 of 3,000 minutes in one month starts the next month with 3,000, not 5,500.
How do I see how many GitHub Actions minutes I have left?
Open the billing settings of the account that owns the repositories and use the tabbed usage summary, then the Usage or Metered usage view for detail by date and SKU, read September 13, 2026. Be aware that the dashboard may show Actions as a dollar amount rather than raw minutes. For a row-level answer, click Get usage report and then Email me the report; the download link expires after 24 hours.
Can I set a spending limit on GitHub Actions minutes?
You set a budget, and it limits money rather than minutes. GitHub's budgets documentation, read September 13, 2026, says that "For metered products such as GitHub Actions, Copilot AI credits, or cloud sandboxes, you can set budgets to prevent usage once the budget threshold is reached." Included minutes are not spending, so a budget neither extends the quota nor stops a job that is still inside it.
Cut your GitHub Actions bill by up to 74%.
Up to half GitHub’s price per minute, on 5 GHz bare metal. Builds finish up to 1.9× faster than on GitHub’s runners, so together you pay up to 74% less per build. Change one runs-on line, or give your coding agent one prompt and it opens the pull request for you.
3,000 free minutes a month, no card. See how switching works
