One line in your workflowruns-on: ciproxy
Pay less for CI. Keep your jobs fast.
ciproxy runs your GitHub Actions jobs on your own machines first, and starts runners in your Boat account only when they are full.
Free for one machine and 2,000 starts a month.
Your machines18 of 18 slots busy
- hetzner-ax42-1
- hetzner-ax42-2
- hetzner-ax42-3
12 jobs wait for a slot. Each starts on Boat after 30 seconds.
Boat this month$61.20 of $200
Running64
- build (linux-x64)mokly v0.19.0hetzner-ax42-13m 02s
- build (linux-arm64)mokly v0.19.0hetzner-ax42-23m 01s
- e2e (chromium) 1/4mokly #1544Boat1m 12s
- e2e (chromium) 2/4mokly #1544Boat1m 12s
- test (rust)mokly #1544hetzner-ax42-32m 40s
- clippymokly #1544Boat58s
- unit (node 24)mokly-cloud #319Boat44s
How it works
Set up once. Change one line.
ciproxy registers every runner for you. Your workflows keep their YAML, apart from one line.
Install the GitHub App
Pick your organization and its repositories on GitHub. ciproxy asks to manage runners and to read your workflow runs.
Add your machines
Run one command on each Linux machine. The agent connects out to ciproxy and keeps warm runners ready.
curl -fsSL https://get.ciproxy.dev \ | sudo sh -s -- install \ --token …
Change runs-on
Point a workflow at ciproxy. Its jobs start on your machines, and on Boat when they are full.
jobs: test:- runs-on: ubuntu-latest+ runs-on: ciproxy
Features
Your machines first. The cloud when they are full.
ciproxy decides where each runner starts, so your hardware stays busy and no job waits for long.
Own machines first
Jobs with runs-on: ciproxy start at once on warm runners on your machines, each in a fresh VM.
Overflow on demand
When every slot is busy, ciproxy starts runners in your Boat account, billed by the second, up to the limit you set.
Transparent cache
actions/cache reads and writes on the local disk of the machine. Your workflows stay as they are.
Savings report
See what your jobs cost each day, next to the same jobs on GitHub-hosted runners and Blacksmith.
Secure by default
A fresh VM for every job, an agent that only connects out, and a GitHub App with three permissions.
Open-source agent
Read and audit the code that runs on your machines. The agent is open source under Apache-2.0.
Cost
The same jobs for up to 80% less
Your own machine against the same job minutes on Blacksmith and on GitHub-hosted runners.
$838.80a month less than Blacksmith
- Hetzner AX42
- $119.00
- ciproxy Team with 30,000 extra starts
- $79.00
- Total with ciproxy
- $198.00
One new Hetzner AX42 at its list price runs jobs in every minute of a 30-day month, at 5 minutes a job. See the calculation
Pricing
Start free. Upgrade when your CI grows.
Plans count the jobs that ciproxy starts. Every limit is soft, so your jobs keep running past it.
Security
Your code stays in your accounts
Jobs run on your machines and in your Boat account. Code and secrets go from GitHub straight to the runner; ciproxy decides only where the runner starts.
A fresh VM for every job
Each job starts in a new VM, so it never reads the files or secrets of another job.
An agent that connects out
Your machines open no inbound ports. The agent connects out to ciproxy.
Three GitHub permissions
The GitHub App manages self-hosted runners, lists your repositories, and reads the branch and the event of each run.
Trusted cache writes
Only jobs on the default branch write to shared caches, so a pull request cannot poison them.
Run your next job on your own machine
Free for one machine and 2,000 starts a month.