Flat-price GitHub Actions runners: who sells one, and the break-even in minutes
Of the GitHub Actions runner services checked on their own pages on November 9, 2026, three price by the month or year instead of the minute: Skipbox runs the machines for you for a flat $39, $79, or $149 a month with unlimited minutes; RunsOn charges a flat annual licence and runs the runners in your own AWS account, which AWS bills by usage; and Actuated charges a flat monthly rate per server you supply. Cirrus Runners sold a flat monthly price per runner too, but no longer accepts new customers; GitHub's own runners, Blacksmith, Ubicloud and WarpBuild bill by the minute, and Depot and Namespace by the minute past what a monthly plan includes.
Skipbox publishes this guide and sells one of the runners in it. The table compares how each service bills, not what it charges: every cell comes from the vendor's own page, read on November 9, 2026, and linked under Sources.
How each service bills
| Service | How it bills | Who runs the machines | Free allowance or trial |
|---|---|---|---|
| Skipbox | A flat monthly price per plan ($39, $79, or $149), unlimited minutes, no usage charges | Skipbox, in Finland or Germany (EU) | 7 days or 3,000 job-minutes, whichever comes first, no card |
| RunsOn | A flat annual licence, by jobs a month; compute billed by AWS per second | You, in your AWS account | A 15-day trial; payment details at checkout |
| Actuated | A flat monthly rate per server; "Unlimited build minutes" and "Unlimited concurrency" | You supply the servers; Actuated runs the control plane | – |
| Cirrus Runners | A flat monthly price per runner | Cirrus Labs | "We are no longer accepting new customers for Cirrus Runners" |
| GitHub-hosted runners | Per minute by runner size, rounded up per job, past the compute your plan includes | GitHub | $12 to $300 of compute a month, by plan |
| Blacksmith | Per minute | Blacksmith | "3,000 free min/mo" |
| Depot | A monthly plan that includes minutes, then per minute past them | Depot | A 7-day trial on its Developer and Startup plans |
| Namespace | Per minute, in "unit minutes" (vCPU and memory times minutes); paid plans include unit minutes, and usage past them is billed at overage rates | Namespace | A pay-as-you-go Developer plan |
| Ubicloud | Per minute: "You are billed by the minute" | Ubicloud | A monthly free credit |
| WarpBuild | Per minute: "CI runners are billed on a per-minute basis" | WarpBuild | Start without a payment method, up to its free usage or credit limits |
GitHub has two kinds of runners, GitHub-hosted and self-hosted, so every runner in this table except GitHub's own is a self-hosted runner to GitHub. GitHub bills nothing for self-hosted runner minutes and doesn't count them against your included compute (GitHub Docs, read November 9, 2026). The $0.002-a-minute charge it announced for them was postponed; the self-hosted runner fee guide has the dated timeline.
Per-minute and flat billing, side by side
| Per-minute billing | Flat monthly billing | |
|---|---|---|
| What sets the bill | Minutes × the runner's rate, less the free allowance | The plans you hold |
| A busy month (a release, flaky tests re-run) | The bill grows with every minute | The same bill |
| What the plan limits | Nothing, unless you set a budget | How many jobs run at once, and how large each can be |
| Past the limit | On GitHub, a budget set to stop usage blocks new jobs | Extra jobs wait their turn in a queue |
Per-minute billing has no ceiling unless you set one. Forestwalk wrote on June 8, 2026 about a $1,081.45 invoice after a free tier ran over; the vendor later offered a billing credit for the overage. A ceiling you set has its own cost: on GitHub, an Actions budget with "Stop usage when budget limit is reached" stops your private-repository jobs until the next month or a higher budget (what to do when it happens).
On a flat plan the ceiling is capacity instead of money. Skipbox's plans each add vCPU of capacity: a job runs while it and your running jobs fit, and a job that doesn't fit waits in your account's queue. GitHub cancels a job that has been queued for 24 hours, so a queue can't hold one forever. To run more jobs at once, you add plans, and the bill is the sum of their prices.
Where the flat price is lower: the break-even
A flat price is lower once the same minutes would cost more on the per-minute runner. Against GitHub's own runner of the same size:
break-even, in job-minutes a month = (the flat price + the compute GitHub includes) ÷ GitHub's per-minute rate, rounded up to the hundred.
On GitHub Team, which includes $18 of compute a month, larger runners at GitHub's rates read on November 9, 2026:
| Skipbox plan | Its largest job | GitHub's runner of that size | Skipbox is lower above |
|---|---|---|---|
| S, $39 a month | 4 vCPU, 8 GB | 4-core, 16 GB, $0.012 a minute | about 4,800 job-minutes a month |
| M, $79 a month | 8 vCPU, 16 GB | 8-core, 32 GB, $0.022 a minute | about 4,500 job-minutes a month |
| L, $149 a month | 16 vCPU, 32 GB | 16-core, 64 GB, $0.042 a minute | about 4,000 job-minutes a month |
Two things to weigh with these numbers:
- Memory. GitHub's larger runners have twice the memory per core of Skipbox's VMs. A job limited by memory rather than CPU isn't a like-for-like comparison.
- How many at once. A plan's capacity is a number of vCPU, so it runs a limited number of jobs at once. At high volumes, or when many jobs start together, the cost calculator adds the plans that run your minutes within a working month, and the flat price is their sum.
On private repositories, ubuntu-latest is GitHub's 2-core runner with 8 GB at $0.006 a minute. Against that runner on GitHub Team, plan S, whose jobs get 4 vCPU and 8 GB, is lower above about 9,500 job-minutes a month.
Skipbox's price is the same at any volume, so every minute past the break-even adds nothing to the bill.
Jobs Skipbox doesn't fit
Skipbox runs private-repository Linux jobs. It doesn't fit:
- macOS, Windows or Arm jobs. Skipbox runs Linux x64 VMs only; those jobs stay on GitHub.
- Public repositories. Skipbox runs private repositories only. GitHub warns that self-hosted runners "should almost never be used for public repositories".
- Jobs that talk to servers far from Europe. Every Skipbox job runs in Finland or Germany (EU), so each request to a distant server takes longer.
Two things to size before you move a busy workflow:
- Jobs that start together. Your plans set how many jobs run at once. A workflow that starts 6 jobs of 4 vCPU at the same moment needs plans that add up to 6 × 4 vCPU to run them all at once; with fewer, the rest wait their turn.
- Your volume. Skipbox is $39 a month at any volume; the table above gives the job-minutes a month at which that is lower than GitHub's runner of the same size.
Try one workflow on a flat price
- Sign in at skipbox.dev with GitHub and install the Skipbox CI app on your organization, or the Skipbox (personal) app on your own account.
- Change one job's
runs-online toskipboxand push. - Watch it through the trial. The free trial lasts 7 days or 3,000 job-minutes, whichever comes first, from that first job. It takes no card, so it can't bill you: when it ends, new jobs wait until you choose a plan.
To go back, change the runs-on line back.
FAQ
Is there a GitHub Actions runner with a fixed monthly price?
Yes. Of the services checked on November 9, 2026, Skipbox sells managed runners at a flat monthly price with unlimited minutes. RunsOn charges a flat annual licence and runs the runners in your own AWS account, which AWS bills by usage. Actuated charges a flat monthly rate per server you bring. Cirrus Runners also sold a flat monthly price per runner, but it no longer accepts new customers.
Which GitHub Actions runners have unlimited minutes for a flat price?
Skipbox's plans include unlimited minutes with no usage charges, on machines Skipbox runs. Actuated's per-server plan lists "Unlimited build minutes" on servers you supply. RunsOn's licence isn't priced by minutes, but the compute it starts in your AWS account is billed by AWS.
What's the difference between per-minute and flat-price GitHub Actions runners?
A per-minute runner bills each job's minutes at a rate, less a free allowance, so the bill follows your usage and has no ceiling unless you set one. A flat-price runner bills the same amount every month however many minutes you run; what the plan limits is how many jobs run at once and how large each can be, and extra jobs wait their turn.
At how many minutes a month is a flat-price runner lower than GitHub's?
Skipbox's plans cost the same however many minutes you run. Against GitHub's runner of the same size on GitHub Team, plan S is lower above about 4,800 job-minutes a month, M above about 4,500, and L above about 4,000. Against GitHub's 2-core ubuntu-latest, plan S is lower above about 9,500.
Is Cirrus Runners still taking new customers?
No. Cirrus Labs' site says "We are no longer accepting new customers for Cirrus Runners" (read November 9, 2026); existing customers keep the service until their current contract terms end. Its post of April 7, 2026 says it has agreed to join OpenAI.
What happens when more jobs arrive than a flat plan runs at once?
On Skipbox, the extra jobs wait in your account's queue and start as running jobs finish; the bill doesn't change. GitHub cancels a job that has been queued for 24 hours. To run more jobs at once, add plans.
Does GitHub charge for minutes on a third-party runner?
No. GitHub has two kinds of runners, GitHub-hosted and self-hosted, so a runner service's machines connect to your account as self-hosted runners. GitHub lists self-hosted runners as usage that remains free and doesn't reduce your included compute (read November 9, 2026). The $0.002-a-minute charge GitHub announced for them in December 2025 was postponed the next day.
Sources
All read on 2026-11-09.
- GitHub Docs, GitHub Actions billing: what remains free (self-hosted runners), included compute by plan.
- GitHub Docs, Actions runner pricing: per-minute rates of the 4-, 8- and 16-core Linux runners, rounding up per job.
- GitHub Docs, GitHub-hosted runners reference:
ubuntu-lateston private repositories, its cores and memory. - GitHub Docs, Larger runners reference: their memory.
- GitHub Docs, Actions limits: a job queued for 24 hours is cancelled.
- GitHub Docs, Secure use reference: self-hosted runners and public repositories.
- GitHub Docs, Setting up budgets: the stop-usage option.
- GitHub Changelog, Update to GitHub Actions pricing: the postponed self-hosted runner charge.
- RunsOn, pricing: the flat annual licence, compute billed by AWS, the 15-day trial.
- Actuated, pricing: the flat rate per server, unlimited build minutes and concurrency.
- Cirrus Labs, cirruslabs.org: no new customers for Cirrus Runners, the agreement to join OpenAI. Cirrus Runners, pricing: a monthly price per runner.
- Blacksmith, pricing: per-minute rates, 3,000 free minutes a month.
- Depot, pricing: plans with included minutes, per-minute past them, the 7-day trial.
- Namespace, pricing: unit minutes, included amounts, overage.
- Ubicloud, pricing: billed by the minute, the monthly credit.
- WarpBuild, pricing: billed per minute, starting without a payment method.
- Forestwalk, its post on the invoice (June 8, 2026).
Updated November 9, 2026