Documentation menu
Getting started
Dashboard & analytics
- Dashboard at a glance
- Cost analysis
- Pipeline performance
- Optimization insights
- Knowledge Base
- Connect your AI agent
Managed runners
- Runners overview
- Run your first job
- The Runners page
- Custom runners (AI Scan)
- Self-healing
- Runner image & software
- Limits & concurrency
Caching
Team & notifications
Billing & plans
Help
Runner usage and free minutes
How managed runner minutes are metered, what the free tier covers, where usage appears, and what happens when free minutes run out.

How metering works#
- Usage is billed per minute, rounded up per job. A 90-second job on
latchkey-smallis 2 minutes. - Each size has its own rate: small $0.0025, medium $0.0050, large $0.0100, xlarge $0.0200 per minute. Custom-configuration runners bill at the xlarge rate.
- Only time your job actually holds the runner is billed; jobs are capped by the 4-hour runner lifetime.
- Self-healing carries no separate fee: extra runtime during a heal bills at the runner's standard per-minute rate.
- Overage lands as metered line items on the same monthly Stripe invoice as your plan.
Rounding happens per job, not per month, which matters when jobs are short: a 61-second job bills as 2 minutes, so a workflow that fans out into many one-minute jobs consumes minutes noticeably faster than its total wall-clock time suggests. If that ever becomes visible on your gauge, consolidating very short jobs is the lever.
The free tier#
| Plan | Free runner minutes per month |
|---|---|
| Developer | 2,000 |
| Launch | 4,000 |
| Scale | 6,000 |
| Enterprise | Custom |
Free minutes reset on the first of each calendar month. Minutes within the free tier cost nothing; only usage beyond it is billed at the per-minute rates.
A worked example#
The numbers below are illustrative; the rates and allowances are the real ones. Say a team on Launch (4,000 free minutes) runs 6,000 minutes of latchkey-small in a month:
| Line | Amount |
|---|---|
Minutes metered on latchkey-small | 6,000 |
| Launch free tier | First 4,000 minutes at no cost |
| Billable minutes | 6,000 - 4,000 = 2,000 |
| Overage at $0.0025/min | 2,000 x $0.0025 = $5.00, as metered line items on the monthly invoice |
Size scales this linearly: the same 6,000 minutes on latchkey-medium ($0.0050/min) would come to $10.00 of overage, and on latchkey-large ($0.0100/min) to $20.00. The calculator below runs the same arithmetic with your own numbers.
Estimate your cost#
Estimate your monthly runner cost
Estimates only. GitHub comparison uses the $0.008/min 2-vCPU Linux list price; larger sizes scale proportionally. Your invoice is based on actual metered usage.
Where to see usage#
- The Billing modal shows a free-tier progress bar, this period's total and billable minutes, and the estimated runner cost so far.
- The Latchkey Runners page shows fleet-level cost, estimated savings versus GitHub-hosted, and free-tier consumption.
- The Cost Analysis page tracks Latchkey runner spend alongside your GitHub spend, including free-tier gauges for both.
Running out of free minutes#
- You are warned at 80% and again at 100% of your included minutes.
- With a subscription on file: jobs keep running and the overage is metered to your invoice. There is no hard spend cap.
- On a card-less trial: once free minutes are exhausted, new managed-runner jobs are blocked until you subscribe. Blocked jobs stay queued on GitHub (no error in the GitHub UI) and a "Managed runner blocked" notification is sent.
The timeline at a glance#
Treat the 80% warning as the decision point rather than the 100% one: a fifth of the tier is still left, which is room to either trim usage (the Cost Analysis page shows where the spend is coming from) or accept the overage knowingly. With a subscription on file there is no hard spend cap, so accepting is a perfectly valid answer; it should just be a chosen one.
If launches are blocked#
Confirm it is the free-minute gate
Blocked jobs sit in queued on GitHub with no error, and a "Managed runner blocked" notification is sent. The free-tier gauge (in the billing modal or on the Runners page) confirms the state: 100% used on a card-less trial.
Subscribe to lift the block
New managed-runner jobs are blocked until you subscribe, so adding a subscription is the direct fix; with one on file, usage beyond the free tier simply meters to your invoice instead of blocking.
Or bridge to the monthly reset
Free minutes reset on the first of the calendar month. Until then, urgent workflows can point back at GitHub-hosted labels, which keep working side by side with latchkey-* labels the whole time.