GitHub Actions runners

GitHub Actions runners, without the machines

Managed, ephemeral runners that replace ubuntu-latest with one line of YAML, at $0.0025 a minute against a GitHub-hosted list price of $0.006, and that repair transient failures while the job is still running.

30 days free · No credit card required · Up to 6,000 free runner minutes

Three kinds of runner, and what each one costs you

The choice is usually framed as a price comparison, which hides the real trade. What actually differs is how much of the machine you are responsible for.

GitHub-hosted
Nothing to operate, $0.006 a minute for a 2-core Linux runner, and free without limit on public repositories. The default, and the most expensive per minute of the three.
Self-hosted
No per-minute charge from GitHub, and every other cost transfers to you: AMI patching, autoscaling, idle capacity, and a security review of machines that check out your source.
Managed
Someone else provisions ephemeral machines and you keep GitHub-hosted semantics. One line of YAML changes; the operational work does not come back.

The four sizes

LabelSpecRate
latchkey-small2 vCPU / 8 GB$0.0025/min
latchkey-medium4 vCPU / 16 GB$0.0050/min
latchkey-large8 vCPU / 32 GB$0.0100/min
latchkey-xlarge16 vCPU / 64 GB$0.0200/min

All Ubuntu 24.04 x86-64, one job per machine, destroyed afterwards. Cold start is about ten seconds; a warm machine picks a job up in seconds.

The switch is one line

jobs:
  build:
-   runs-on: ubuntu-latest
+   runs-on: latchkey-small

Steps, actions, secrets, services and matrix strategies are untouched, and GitHub-hosted labels keep working alongside Latchkey labels in the same workflow. Migrating one job is a one-line diff, and so is reverting it.

How the rates compare

FeatureLatchkeyBlacksmithGitHub Hosted
Price per minutefrom $0.0025/minfrom $0.0040/minfrom $0.0060/min
Savings vs GitHub-60%-33%Baseline
Free minutes/mo (mid tier)4,0003,0003,000
Cold start speed~10s~10s30-60s
AI optimization insights
Cost performance analytics
Dependency cachingBuilt-in S3 streaming25 GB/repo10 GB/repo
AI scan runner images

Frequently asked questions

What are GitHub Actions runners?

A runner is the machine that executes the steps in a workflow job. GitHub-hosted runners are provisioned and destroyed by GitHub and billed per minute. Self-hosted runners are machines you provide and register yourself, free of per-minute charges but yours to patch, scale and secure. Managed runners such as Latchkey are a third option: someone else provisions ephemeral machines and you change only the runs-on line.

How do I switch to a Latchkey runner?

Change one line: set runs-on to a Latchkey label such as latchkey-small. Steps, actions, secrets, services and matrix strategies stay exactly as they are, and GitHub-hosted labels keep working in the same workflow, so you can move one job at a time and roll back by reverting a single line.

What sizes are available, and what do they cost?

Four Ubuntu 24.04 x86-64 sizes: small at 2 vCPU for $0.0025 a minute, through xlarge at 16 vCPU for $0.0200 a minute. GitHub publishes $0.006 a minute for its comparable 2-core Linux runner. Every plan includes 2,000 to 6,000 free runner minutes a month.

Are Latchkey runners ephemeral?

Yes. One job per machine, single-use credentials issued just in time, and the machine is destroyed when the job ends. Nothing carries between jobs, so a build result describes your code rather than the state a previous job left on a shared host.

What happens when a job fails on a Latchkey runner?

A self-healing agent on the machine diagnoses the failure and, when it is transient or environmental, applies a fix and retries the step during the same run. Registry timeouts, out-of-memory kills, disk-full errors and missing tools are repaired without a person. Failing tests, compile errors and lint violations are not: those fail normally with their original logs.

Do Latchkey runners support Windows, macOS or ARM?

Not today. Latchkey runners are Linux x86-64 only. Jobs needing another OS or architecture can stay on GitHub-hosted or other runners inside the same workflow, so this does not block adoption for the rest of the pipeline.

Keep reading

We use cookies to improve your experience. Privacy Policy