# Buildhound vs RunsOn

> RunsOn sets up GitHub Actions runners in your own AWS account and charges a yearly licence; AWS bills the machines. Buildhound runs your jobs on machines you already have, for a flat price per machine.

## Choose RunsOn when

- Your team already runs on AWS.
- You want runners of any size there, Linux, Windows or GPU.
- You want compute at AWS's own price, with no per-minute fee on top.

## Choose Buildhound when

- Your CI includes macOS, which RunsOn does not run yet.
- You would rather use machines you already have than pay for instances.
- You want GitHub-hosted kept as the fallback when no machine can take a job.

## Side by side

RunsOn's side is from its own pages ([source](https://runs-on.com/pricing)), checked 16 October 2026.

### Price

| | Buildhound | RunsOn |
| --- | --- | --- |
| How it is priced | Flat, 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. | A yearly licence. €300 to €3,600 by jobs a month, free for non-commercial open source, plus your AWS bill at spot prices. |
| macOS | Your Mac. A fresh macOS VM per job; Apple allows two per Mac. | Not yet. AWS's Mac instances have a 24-hour minimum. |
| Linux | Your Mac or Linux box. A fresh Linux VM per job, arm64 on a Mac. | About $0.0009 a minute. 2 vCPU at AWS spot, x64 or arm64. |
| Windows | Not yet. Windows jobs stay on GitHub-hosted. | Windows Server. 2022 and 2025, on your AWS bill. |

### Where it runs

| | Buildhound | RunsOn |
| --- | --- | --- |
| Machines | Yours. A spare Mac, a Linux box, or a laptop while plugged in and not in use. | Your AWS account. Set up with CloudFormation. |
| Each job | A fresh VM, destroyed after. It reaches the internet and never your network. | One EC2 instance. Per job, terminated at the end. |
| Secrets | On your hardware. Only on a machine a person marked Trusted. | In your AWS account. |

### When things change

| | Buildhound | RunsOn |
| --- | --- | --- |
| Setup | One prompt to your coding agent. Or two commands by hand. | A CloudFormation stack. And a private GitHub App. |

## One line in runs-on

RunsOn:

```yaml
runs-on: runs-on=${{ github.run_id }}/runner=2cpu-linux-x64
```

Buildhound, on your machine while one can take the job and on GitHub-hosted when none can:

```yaml
runs-on: ${{ vars.BUILDHOUND_LINUX || 'ubuntu-latest' }}
```

Buildhound has no referral agreement with RunsOn. Source: https://buildhound.sh/compare/runs-on.
