Calculate GitHub Actions costs by OS type. Estimate Linux, Windows, and macOS runner minutes with free tier deductions.
GitHub Actions billing varies dramatically by runner operating system. Linux runners cost $0.008 per minute, Windows runners cost $0.016, and macOS runners cost $0.08 — a 10× difference between the cheapest and most expensive. This calculator helps you estimate your monthly GitHub Actions bill by OS usage.
GitHub provides free minutes for all accounts: 2,000 minutes on Free plans, 3,000 on Pro, and 50,000 on Enterprise. However, Windows minutes consume 2× and macOS minutes consume 10× from your free allowance, so the effective free allocation shrinks quickly with non-Linux runners.
Understanding these multipliers helps you make strategic decisions about which jobs run on which OS, potentially saving hundreds of dollars per month by moving platform-agnostic work to Linux runners.
By calculating this metric accurately, DevOps and engineering professionals gain actionable insights that drive system reliability, scalability, and operational excellence across environments. Understanding this metric in precise terms allows technology leaders to make evidence-based decisions about scaling, architecture, and infrastructure investment priorities for their organizations.
GitHub Actions costs can surprise teams that use macOS or Windows runners heavily. This calculator shows the true cost after free tier deductions and by OS breakdown, helping you decide where to invest in self-hosted runners or cross-compilation strategies. Precise quantification supports capacity planning and performance budgeting, ensuring infrastructure investments are right-sized for both current workloads and projected future growth.
Linux Cost = linux_minutes × $0.008 Windows Cost = windows_minutes × $0.016 macOS Cost = macos_minutes × $0.08 Free Tier Usage = linux_min + (windows_min × 2) + (macos_min × 10) Billable = max(0, total_cost − free_tier_value)
Result: $47.20/month
Linux: 5,000 × $0.008 = $40.00. Windows: 1,000 × $0.016 = $16.00. macOS: 200 × $0.08 = $16.00. Gross total is $72.00. Free tier covers 3,000 equivalent minutes ($24.00 value). Net billable is $72.00 − $24.00 = $48.00.
GitHub Actions uses a consumption-based pricing model where you pay per minute of runner time. The rates differ significantly by operating system, reflecting the underlying infrastructure costs. Linux runners are cheapest because they run on shared cloud infrastructure, while macOS runners require dedicated Apple hardware.
The most impactful optimization is moving work to Linux runners wherever possible. Cross-compilation, Docker-based builds, and platform-agnostic tasks should all run on Linux. Reserve Windows and macOS runners exclusively for platform-specific testing that cannot run elsewhere.
At approximately 5,000+ macOS minutes per month, a dedicated Mac mini ($599–$799) pays for itself in 1–2 months versus GitHub-hosted macOS runners. For Windows, the break-even point is higher due to the lower per-minute cost, but self-hosted still saves at scale.
GitHub deducts from your free minutes with multipliers: 1× for Linux, 2× for Windows, and 10× for macOS. So 100 macOS minutes consume 1,000 of your free quota. This means free tiers last much shorter with non-Linux runners.
Larger runners (4-core, 8-core) cost more per minute but complete builds faster. If a 2-core build takes 20 minutes and a 4-core build takes 8 minutes, the 4-core option costs 80% as much while finishing 2.5× faster.
Yes, you can set runner labels per job. Many teams use self-hosted for heavy workloads (macOS builds, GPU tasks) and GitHub-hosted for lighter jobs, optimizing cost without managing all infrastructure.
Yes, minutes are billed at the organization or account level, not per repository. All repos under an organization share the same free minute allocation and billing. This enables centralized cost management.
GitHub rounds up each job to the nearest minute. A 30-second job is billed as 1 minute. This makes many short jobs more expensive than fewer longer ones. Consider combining quick checks into single jobs.
Once free minutes are exhausted, all subsequent usage is billed at the per-minute rate for each OS type. GitHub sends email notifications as you approach your free tier limit. You can set spending limits to cap costs.