Buildhound vs GitHub-hosted runners
GitHub-hosted runners are the default: nothing to set up, billed by the minute in private repositories. Buildhound runs the same jobs on machines you already have, for a flat price per machine, and keeps GitHub-hosted as the fallback.
- Checked 15 October 2026
- No referral agreement
What a month costs
- Buildhound Teamone machine you already have$24
- GitHub-hostedmacos-latest, list price$310
One Mac you already have costs $24 a month on Team. GitHub-hosted runners costs $310.
List prices, before free minutes or credits on either side. One machine runs these minutes a job at a time; Personal is $10 a machine on a personal account.
Choose the one that fits
Choose GitHub-hosted runners when
- Your CI fits in the included minutes.
- Nobody on the team has a machine to spare.
- You need Windows, or many jobs at once without owning anything.
Choose Buildhound when
- macOS jobs queue behind the limit of 5 at a time.
- Agents open more pull requests than the included minutes cover.
- You have a recent Mac that runs the same jobs about 3x faster.
Side by side
GitHub-hosted runners from its own pages, checked 15 October 2026
Price
- How it is priced
- BuildhoundFlat, per machine$10 a machine a month on a personal account, $24 in an organisation, counted only on days it runs a job. Public repositories free.
- GitHub-hosted runnersBy the minuteIn private repositories, each job rounded up to the whole minute. Free and Team include 2,000 and 3,000 minutes a month; a macOS minute uses about ten.
- macOS
- BuildhoundYour MacA fresh macOS VM per job; Apple allows two per Mac.
- GitHub-hosted runners$0.062 a minute
macos-latest, 3 vCPU. - Linux
- BuildhoundYour Mac or Linux boxA fresh Linux VM per job, arm64 on a Mac.
- GitHub-hosted runners$0.006 a minute
ubuntu-latest, 2 vCPU x64; arm64 at $0.005. - Windows
- BuildhoundNot yetWindows jobs stay on GitHub-hosted.
- GitHub-hosted runners$0.01 a minute
windows-latest, 2 vCPU.
Where it runs
- Machines
- BuildhoundYoursA spare Mac, a Linux box, or a laptop while plugged in and not in use.
- GitHub-hosted runnersGitHub's machinesHosted by GitHub.
- Each job
- BuildhoundA fresh VM, destroyed afterIt reaches the internet and never your network.
- GitHub-hosted runnersA fresh VMFor each job.
- Secrets
- BuildhoundOn your hardwareOnly on a machine a person marked Trusted.
- GitHub-hosted runnersOn GitHub's machinesLike every hosted runner.
When things change
- Runners unavailable
- BuildhoundNew jobs route to the healthy sideGitHub-hosted, within about two minutes; a stuck job is re-run.
- GitHub-hosted runnersJobs queueUntil GitHub-hosted recovers.
- Jobs at once
- BuildhoundAs many as your machines holdSuch as one macOS and one Linux job on a 24 GB Mac mini. When every machine is busy, new jobs go to GitHub-hosted after two and a half minutes.
- GitHub-hosted runners5 macOS jobs at a timeOn Free, Pro and Team, 50 on Enterprise; the rest queue.
- Setup
- BuildhoundOne prompt to your coding agentOr two commands by hand.
- GitHub-hosted runnersNoneIt is the default
runs-onlabel.
One line in runs-on
Both ask you to change the runner label in your workflow. Your coding agent makes the Buildhound change in a pull request.
runs-on: macos-latestThe job runs where GitHub-hosted runners runs it.runs-on: ${{ vars.BUILDHOUND_MACOS || 'macos-latest' }}The job runs on your machine while one can take it, and on GitHub-hosted when none can.Put the machines you already have to work.
A spare Mac, a Linux box, or the laptop you code on while it is plugged in and not in use. One prompt into Claude Code, Codex or Cursor: Linux jobs run within minutes, macOS jobs once the Mac has built its image.
- The Buildhound agent holds no GitHub credential
- A fresh VM per job, off your network
- Your agent prepares, you approve
- How security works