Open source · Apache-2.0
GitHub Actions runners in your own AWS account.
hatchrun starts a fresh EC2 instance for every job and terminates it when the job ends. Your instances, your VPC, your prices. A job starts about 30 seconds after launch.
- 0.0sinstance launchedt4g.medium, arm64
- 6.2skernel startedUbuntu 26.04 arm64
- 18.2shatchrun-agent startedrunner config claimed
- 24.0srunner connectedgithub.com
- 29.5sjob runningsmoke
Fast boot
Boot is paid on every job, so we made it short.
Launch to job start, same instance type, same smoke test. The runner image skips cloud-init, reads the runner's files ahead of time and starts Docker while the runner connects to GitHub.
How it works
Three steps, then change one line.
- 01
Install the GitHub App
On your organization. It lets hatchrun register just-in-time runners for your jobs.
- 02
Launch the stack
One CloudFormation stack creates the IAM role, launch template and security group in your account.
- 03
Point jobs at hatchrun
Each queued job gets its own instance, which runs the job and terminates.
.github/workflows/ci.yml
jobs:
test:
runs-on: hatchrun-linux-arm64
steps:
- uses: actions/checkout@v7
- run: make testWhy hatchrun
Self-hosted runners without running the fleet yourself.
Your account, your prices
Runners are EC2 instances in your AWS account. Your discounts, Savings Plans and Spot prices apply to CI like to everything else.
A clean machine per job
Every job gets a new instance that terminates when the job ends. Nothing carries over: no files, no processes, no credentials.
Inside your network
Runners start in the subnets you choose, next to your databases and registries. Their security group allows no inbound traffic.
Single-use runner configs
The config that registers a runner is claimed once with a random ticket. It never sits in user data and job steps never see it.
Scanned, attested images
Ubuntu 26.04 AMIs for amd64 and arm64, built from pinned inputs, scanned with Trivy and published with an SBOM and provenance.
Open source, end to end
Scaler, agent and images are Apache-2.0. Use the hosted control plane or run every part of it yourself.
Pricing
Free during the beta.
You pay AWS for the instances your jobs use. After the beta, the hosted control plane becomes a flat subscription per GitHub organization. Self-hosting stays free.