Guide · prices and plan limits checked October 18, 2026

GitHub-hosted, self-hosted or managed runners: how to choose

Three ways to run GitHub Actions jobs, what each asks of you, and a short way to pick.

In short

Stay on GitHub-hosted runners if your usage fits your plan and you need macOS, Windows, Arm or GPU. Run your own if you need your own network or hardware, or your volume is high enough to justify operating machines. Use a managed runner if you want lower cost or faster jobs without operating anything. The options mix: you choose per job with the runs-on line. Vitko sells a managed runner, so read the comparison with that in mind.

The three options side by side

GitHub-hosted, self-hosted and managed runners compared
GitHub-hostedSelf-hostedManaged (third party)
Who runs the machinesGitHubYouThe provider
You payPer minute beyond your plan’s included minutes; each job rounds up to a whole minuteYour cloud or hardware costs, plus your team’s timeThe provider’s price, often per minute
SetupNoneInstall, scale, patch and secure runnersInstall an app, change the label
Operating systemsLinux, Windows, macOS, Arm, larger and GPU sizesWhatever you runVaries; Vitko Runners is Ubuntu 24.04 x64 only
Network and data boundaryGitHub’sYoursThe provider’s

How to pick

  1. Do you need macOS, Windows, Arm or GPU for a job? Keep that job on GitHub-hosted.
  2. Do you need runners inside your own network, or on your own hardware? Self-hosted.
  3. Is your usage inside your plan’s included minutes (2,000 on GitHub Free, 3,000 on Pro and Team, for private repositories)? Then there may be little to save.
  4. Otherwise, price a managed runner on your real usage and try it on one workflow. Switching back is the same one-line change.

Source for plan minutes and rates: About billing for GitHub Actions and GitHub Actions runner pricing (checked October 18, 2026).

Self-hosted cost depends on volume

In the open CI Bench v1 (run by Vitko, measured October 7–11, 2026), self-hosted RunsOn on AWS, priced all-in against GitHub-hosted 2 vCPU, had a cost index of 0.12 at 100,000 jobs a month, against 0.16 for Vitko Runners. At 10,000 jobs a month its index was 0.25 (Vitko Runners 0.16) and at 1,000 it was 1.43 (Vitko Runners 0.16), because fixed costs are spread over fewer jobs. Lower is cheaper. Every configuration

Things to check with any provider

  • Which operating systems, sizes and regions it supports, and whether private repositories are covered.
  • Whether each job runs in a fresh machine, and how secrets reach it.
  • How billing rounds (per second or per minute) and whether you can set a hard spend limit.
  • How you switch back if something goes wrong.

How Vitko Runners answers these: Security, Limits, Spend controls, Fall back to GitHub-hosted.

What is the difference between GitHub-hosted, self-hosted and managed runners?

GitHub-hosted runners are machines GitHub runs and bills per minute. Self-hosted runners are machines you run and maintain yourself, in your cloud account or your own hardware. Managed runners are run for you by a third party: your jobs still appear in GitHub Actions, you change the runs-on label, and the provider operates the machines.

When should I stay on GitHub-hosted runners?

When your usage fits your plan’s included minutes, when you need macOS, Windows, Arm or GPU runners, or when you do not want any other vendor in your pipeline. It is the simplest option and needs no setup.

When do self-hosted runners make sense?

When you need your own network, hardware or compliance boundary, or have high, steady volume and a team to run them. You pay for the machines and for the work of operating and securing them.

When do managed runners make sense?

When you want lower cost or faster jobs than GitHub-hosted runners without operating machines yourself, and the provider supports the operating systems and sizes you use.

Where does Vitko Runners fit?

It is a managed option, in private beta: Ubuntu 24.04 on x64 with up to 2 vCPU and 8 GB, $0.002 a minute billed per second, 2,000 free minutes a month, one runs-on line to switch and the same line to go back.

Join the private betaWhat the same jobs cost