One flat license. Compute at cost.
AWS bills you for the instances at spot prices, with no markup. You pay us one license a year per company, sized by the jobs you run: no seats, no minute-metering.
- Free non-commercial €0 OSS, non-profits get it free →
- Starter < 50k jobs/mo €300 / yr fits ~79% of teams start trial →
- Growth < 200k jobs/mo €900 / yr ~14% of teams start trial →
- Scale < 500k jobs/mo €1,800 / yr ~6% of teams start trial →
- source code Sponsorshipenterprise unlimited jobs
- the full server and agent source, for your own security review
- priority support, Slack Connect
- your logo and link on our homepage, if you want it
Not sure how many jobs you run? Start on Starter. No limit is enforced, so your jobs keep running whatever the volume. Once your numbers are in, we move you to the step that fits.
Every step includes Flex and Fleet , every release and AMI, community Slack (email support on every paid step), and one license for all the GitHub orgs and AWS accounts you own. Short spikes never move you up a step. Sponsorship is also on AWS Marketplace.
Free for open source and non-profits. These run on it:
The full product for non-profit, open-source and personal non-commercial projects, in exchange for a public link back to runs-on.com. Get a free license →
“After benchmarking a lot of tools, it's the best. We run thousands of jobs per day. Costs divided by 4.”
“Less than 10 min to test, install and use. Cache download speed is blazing fast.”
Don’t know your tier yet? Start on Starter: nothing is capped, and we move you to the right one later. Stuck checking out? Email ops@runs-on.com and we’ll help.
Your AWS bill, per minute#
This is your AWS bill, not ours — RunsOn adds no markup. Per-minute rates below fold in a gp3 root volume (set its size and throughput below), compared against the equivalent GitHub-hosted runner. Estimate your own bill in the calculator →
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | t8i.medium | $0.0007 | $0.0020 | 3× | 3,243 | 2,269 | +43% |
| 2cpu | m8a.large | $0.0009 | $0.0060 | 7× | 3,801 | 2,269 | +68% |
| 4cpu | m8a.xlarge | $0.0015 | $0.0120 | 8× | 3,801 | 2,269 | +68% |
| 8cpu | c8id.2xlarge | $0.0023 | $0.0220 | 10× | 3,256 | 2,269 | +43% |
| 16cpu | c8id.4xlarge | $0.0044 | $0.0420 | 10× | 3,256 | 2,269 | +43% |
| 32cpu | c8id.8xlarge | $0.0081 | $0.0820 | 10× | 3,256 | 2,269 | +43% |
| 48cpu | c8a.12xlarge | $0.0108 | — | — | 3,802 | — | — |
| 64cpu | c8i-flex.16xlarge | $0.0145 | $0.1620 | 11× | 3,256 | 2,269 | +43% |
| 96cpu | c8id.24xlarge | $0.0222 | $0.2520 | 11× | 3,256 | 2,269 | +43% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8g.medium | $0.0006 | — | — | 1,938 | — | — |
| 2cpu | m8g.large | $0.0009 | $0.0050 | 6× | 1,938 | 1,874 | +3% |
| 4cpu | m8g.xlarge | $0.0016 | $0.0080 | 5× | 1,938 | 1,874 | +3% |
| 8cpu | c8g.2xlarge | $0.0028 | $0.0140 | 5× | 1,945 | 1,874 | +4% |
| 16cpu | c8g.4xlarge | $0.0047 | $0.0260 | 6× | 1,945 | 1,874 | +4% |
| 32cpu | c8g.8xlarge | $0.0079 | $0.0500 | 6× | 1,945 | 1,874 | +4% |
| 48cpu | c8g.12xlarge | $0.0097 | — | — | 1,945 | — | — |
| 64cpu | c8g.16xlarge | $0.0121 | $0.0980 | 8× | 1,945 | 1,874 | +4% |
| 96cpu | c8g.24xlarge | $0.0160 | — | — | 1,945 | — | — |
| runner | instance | RunsOn / min | GitHub / min | you save |
|---|---|---|---|---|
| 2cpu | m8i.large | $0.0020 | $0.0100 | 5× |
| 4cpu | m8i.xlarge | $0.0037 | $0.0220 | 6× |
| 8cpu | m8i.2xlarge | $0.0071 | $0.0420 | 6× |
| 16cpu | c8i.4xlarge | $0.0138 | $0.0820 | 6× |
| 32cpu | c8i.8xlarge | $0.0273 | $0.1620 | 6× |
| 64cpu | c8i.16xlarge | $0.0544 | $0.3220 | 6× |
| 96cpu | c8i.24xlarge | $0.0814 | $0.5520 | 7× |
| runner | instance | RunsOn / min | GitHub / min | you save |
|---|---|---|---|---|
| 4cpu·T4 | g4dn.xlarge | $0.0048 | $0.0520 | 11× |
| 8cpu·T4 | g4dn.2xlarge | $0.0043 | — | — |
| 16cpu·A10 | g5.4xlarge | $0.0093 | — | — |
| 48cpu·4×T4 | g4dn.12xlarge | $0.0221 | — | — |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | c6i.large | $0.0008 | $0.0060 | 7× | 2,289 | 2,269 | +1% |
| 4cpu | c6i.xlarge | $0.0016 | $0.0120 | 8× | 2,289 | 2,269 | +1% |
| 8cpu | c6i.2xlarge | $0.0028 | $0.0220 | 8× | 2,289 | 2,269 | +1% |
| 16cpu | c6i.4xlarge | $0.0066 | $0.0420 | 6× | 2,289 | 2,269 | +1% |
| 32cpu | c6i.8xlarge | $0.0076 | $0.0820 | 11× | 2,289 | 2,269 | +1% |
| 48cpu | c6i.12xlarge | $0.0117 | — | — | 2,289 | — | — |
| 64cpu | c6i.16xlarge | $0.0129 | $0.1620 | 13× | 2,289 | 2,269 | +1% |
| 96cpu | c6i.24xlarge | $0.0205 | $0.2520 | 12× | 2,289 | 2,269 | +1% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m7a.medium | $0.0007 | $0.0020 | 3× | 2,875 | 2,269 | +27% |
| 2cpu | c7a.large | $0.0009 | $0.0060 | 7× | 2,875 | 2,269 | +27% |
| 4cpu | c7a.xlarge | $0.0017 | $0.0120 | 7× | 2,875 | 2,269 | +27% |
| 8cpu | c7a.2xlarge | $0.0034 | $0.0220 | 6× | 2,875 | 2,269 | +27% |
| 16cpu | c7a.4xlarge | $0.0056 | $0.0420 | 8× | 2,875 | 2,269 | +27% |
| 32cpu | c7a.8xlarge | $0.0086 | $0.0820 | 10× | 2,875 | 2,269 | +27% |
| 48cpu | c7a.12xlarge | $0.0132 | — | — | 2,875 | — | — |
| 64cpu | c7a.16xlarge | $0.0170 | $0.1620 | 10× | 2,875 | 2,269 | +27% |
| 96cpu | c7a.24xlarge | $0.0237 | $0.2520 | 11× | 2,875 | 2,269 | +27% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | c7i.large | $0.0008 | $0.0060 | 8× | 2,955 | 2,269 | +30% |
| 4cpu | c7i.xlarge | $0.0012 | $0.0120 | 10× | 2,955 | 2,269 | +30% |
| 8cpu | c7i.2xlarge | $0.0033 | $0.0220 | 7× | 2,955 | 2,269 | +30% |
| 16cpu | c7i.4xlarge | $0.0046 | $0.0420 | 9× | 2,955 | 2,269 | +30% |
| 32cpu | c7i.8xlarge | $0.0102 | $0.0820 | 8× | 2,955 | 2,269 | +30% |
| 48cpu | c7i.12xlarge | $0.0136 | — | — | 2,955 | — | — |
| 64cpu | c7i.16xlarge | $0.0149 | $0.1620 | 11× | 2,955 | 2,269 | +30% |
| 96cpu | c7i.24xlarge | $0.0194 | $0.2520 | 13× | 2,955 | 2,269 | +30% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8a.medium | $0.0006 | $0.0020 | 4× | 3,801 | 2,269 | +68% |
| 2cpu | c8a.large | $0.0009 | $0.0060 | 7× | 3,802 | 2,269 | +68% |
| 4cpu | c8a.xlarge | $0.0015 | $0.0120 | 8× | 3,802 | 2,269 | +68% |
| 8cpu | c8a.2xlarge | $0.0032 | $0.0220 | 7× | 3,802 | 2,269 | +68% |
| 16cpu | c8a.4xlarge | $0.0044 | $0.0420 | 9× | 3,802 | 2,269 | +68% |
| 32cpu | c8a.8xlarge | $0.0106 | $0.0820 | 8× | 3,802 | 2,269 | +68% |
| 48cpu | c8a.12xlarge | $0.0108 | — | — | 3,802 | — | — |
| 64cpu | c8a.16xlarge | $0.0168 | $0.1620 | 10× | 3,802 | 2,269 | +68% |
| 96cpu | c8a.24xlarge | $0.0204 | $0.2520 | 12× | 3,802 | 2,269 | +68% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | c8i.large | $0.0008 | $0.0060 | 7× | 3,256 | 2,269 | +43% |
| 4cpu | c8i.xlarge | $0.0016 | $0.0120 | 8× | 3,256 | 2,269 | +43% |
| 8cpu | c8i.2xlarge | $0.0030 | $0.0220 | 7× | 3,256 | 2,269 | +43% |
| 16cpu | c8i.4xlarge | $0.0056 | $0.0420 | 8× | 3,256 | 2,269 | +43% |
| 32cpu | c8i.8xlarge | $0.0106 | $0.0820 | 8× | 3,256 | 2,269 | +43% |
| 48cpu | c8i.12xlarge | $0.0136 | — | — | 3,256 | — | — |
| 64cpu | c8i.16xlarge | $0.0156 | $0.1620 | 10× | 3,256 | 2,269 | +43% |
| 96cpu | c8i.24xlarge | $0.0229 | $0.2520 | 11× | 3,256 | 2,269 | +43% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8azn.medium | $0.0007 | $0.0020 | 3× | 4,257 | 2,269 | +88% |
| 2cpu | m8azn.large | $0.0012 | $0.0060 | 5× | 4,257 | 2,269 | +88% |
| 4cpu | m8azn.xlarge | $0.0029 | $0.0120 | 4× | 4,257 | 2,269 | +88% |
| 48cpu | m8azn.12xlarge | $0.0244 | — | — | 4,257 | — | — |
| 96cpu | m8azn.24xlarge | $0.0501 | $0.2520 | 5× | 4,257 | 2,269 | +88% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | t8i.medium | $0.0007 | $0.0020 | 3× | 3,243 | 2,269 | +43% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 2cpu | t4g.large | $0.0007 | $0.0050 | 7× | 1,103 | 1,874 | −41% |
| 4cpu | t4g.xlarge | $0.0012 | $0.0080 | 6× | 1,103 | 1,874 | −41% |
| 8cpu | t4g.2xlarge | $0.0016 | $0.0140 | 9× | 1,103 | 1,874 | −41% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m7g.medium | $0.0006 | — | — | 1,557 | — | — |
| 2cpu | c7g.large | $0.0007 | $0.0050 | 7× | 1,557 | 1,874 | −17% |
| 4cpu | c7g.xlarge | $0.0012 | $0.0080 | 6× | 1,557 | 1,874 | −17% |
| 8cpu | c7g.2xlarge | $0.0026 | $0.0140 | 5× | 1,557 | 1,874 | −17% |
| 16cpu | c7g.4xlarge | $0.0040 | $0.0260 | 7× | 1,557 | 1,874 | −17% |
| 32cpu | c7g.8xlarge | $0.0072 | $0.0500 | 7× | 1,557 | 1,874 | −17% |
| 48cpu | c7g.12xlarge | $0.0086 | — | — | 1,557 | — | — |
| 64cpu | c7g.16xlarge | $0.0113 | $0.0980 | 9× | 1,557 | 1,874 | −17% |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m8g.medium | $0.0006 | — | — | 1,938 | — | — |
| 2cpu | c8g.large | $0.0008 | $0.0050 | 6× | 1,945 | 1,874 | +4% |
| 4cpu | c8g.xlarge | $0.0013 | $0.0080 | 6× | 1,945 | 1,874 | +4% |
| 8cpu | c8g.2xlarge | $0.0028 | $0.0140 | 5× | 1,945 | 1,874 | +4% |
| 16cpu | c8g.4xlarge | $0.0047 | $0.0260 | 6× | 1,945 | 1,874 | +4% |
| 32cpu | c8g.8xlarge | $0.0079 | $0.0500 | 6× | 1,945 | 1,874 | +4% |
| 48cpu | c8g.12xlarge | $0.0097 | — | — | 1,945 | — | — |
| 64cpu | c8g.16xlarge | $0.0121 | $0.0980 | 8× | 1,945 | 1,874 | +4% |
| 96cpu | c8g.24xlarge | $0.0160 | — | — | 1,945 | — | — |
| runner | instance | RunsOn / min | GitHub / min | you save | RunsOn CPU | GitHub CPU | CPU vs GitHub |
|---|---|---|---|---|---|---|---|
| 1cpu | m9g.medium | $0.0005 | — | — | 2,469 | — | — |
| 2cpu | m9g.large | $0.0010 | $0.0050 | 5× | 2,469 | 1,874 | +32% |
| 4cpu | m9g.xlarge | $0.0017 | $0.0080 | 5× | 2,469 | 1,874 | +32% |
| 8cpu | m9g.2xlarge | $0.0035 | $0.0140 | 4× | 2,469 | 1,874 | +32% |
| 16cpu | m9g.4xlarge | $0.0055 | $0.0260 | 5× | 2,469 | 1,874 | +32% |
| 32cpu | m9g.8xlarge | $0.0097 | $0.0500 | 5× | 2,469 | 1,874 | +32% |
| 48cpu | m9g.12xlarge | $0.0123 | — | — | 2,469 | — | — |
| 64cpu | m9g.16xlarge | $0.0149 | $0.0980 | 7× | 2,469 | 1,874 | +32% |
| 96cpu | m9g.24xlarge | $0.0212 | — | — | 2,469 | — | — |
Everything you'll pay, line by line#
Three lines, two of them to AWS. There is no fourth. See the fixed monthly cost and where it breaks even against GitHub →
The license
A flat annual fee to RunsOn, divided however you like. It doesn't move with short spikes — only sustained overage above your tier moves you up a tier, prorated for the rest of the term.
EC2 compute
Spot or on-demand instances and their EBS volumes, billed per second by AWS. You only pay while a job is running.
Control plane
The small Fargate service that launches your runners and the AWS services around it, plus the S3 cache bucket and data transfer, in your region. From about $7 a month; no egress to a third party.
Already a customer?#
Already have a license? Everything you need to manage payment, review invoices, and track your runner volume lives in one of these portals.
The fine print, up front#
- Metered by the minute? No. a flat fee a year
- Priced per seat? No. everyone in the company
- Short spikes charged? Never. only two months over moves you up
- How many AWS accounts? All of them. and every GitHub org you own
Your license
Do you meter minutes or charge per seat?
Which tier am I on?
Starter under 50k (about 79% of teams), Growth under 200k (~14%), and Scale under 500k (~6%). Past 500k jobs a month you're on Sponsorship, our Enterprise plan for sponsors, which has no volume limit. A "runner" is a single ephemeral runner RunsOn launches — one per GitHub Actions job. Not sure where you land? Start on Starter. No limit is enforced: your jobs keep running whatever the volume, and once your numbers are in we move you to the tier that fits. You can follow your monthly runner counts on the license usage page.Who can use the license?
What's a stack deployment?
Paying and trying
Can I pay in USD, or through AWS Marketplace?
How does the free trial work?
Flex vs Fleet — what's the difference?
Flex launches one ephemeral instance per job — the simplest, most isolated mode. Fleet lets a platform team publish runner fleets in Terraform, and pulls jobs from GitHub's runner scale sets with no inbound endpoint. You can run both under one license.Try it on your own AWS account.
The 15-day trial is the real product, running in your account from the first job. After it, Starter is €300 a year, flat, for up to 50k jobs a month.
- 01 Deploy the stack One CloudFormation template in your AWS account, about 10 minutes.
- 02 Change one line
runs-on: runs-on=${{ github.run_id }}/family=m8+r8/cpu=4 - 03 Pay AWS for the minutes Spot prices with no markup; the license stays flat.