← All integrations

Blacksmith integration

Route jobs between Blacksmith, your machines and GitHub.

Blacksmith runs GitHub Actions jobs on its own machines, under your Blacksmith account. Jobs go to your machines first and to Blacksmith when they're busy. You change the order from the dashboard, not your workflows.

Get started with GitHub

With routing

Blacksmith on its own, or in your runner order

Blacksmith on its own

  1. Each workflow names a Blacksmith label, so every job runs on Blacksmith.
  2. Your own machines sit idle while Blacksmith bills you.
  3. Trying another host means editing every workflow again.
  4. Each host shows its own job times in its own dashboard.

In your runner order

  1. Jobs run on your machines first, and on Blacksmith when your machines are busy.
  2. GitHub-hosted runners stay as the fallback after Blacksmith.
  3. Move Blacksmith up, down or out from the dashboard. No workflow edits.
  4. The Performance page compares Blacksmith's job times with your machines and GitHub-hosted runners.

Setup

How to set up Blacksmith

  1. Set up your Blacksmith account

    Sign up for Blacksmith and install its GitHub App on your organization.

  2. Add Blacksmith to your runner order

    On the Router page, put Blacksmith where you want it. A common order is your machines, then Blacksmith, then GitHub-hosted.

  3. Add relays to your jobs

    Run npx relayrunner init in your repo. It adds a relay to each job you pick and keeps the label the job uses today as its fallback.

.github/workflows/ci.yml
jobs:
  relay-test:
    uses: relayrunner/actions/.github/workflows/relay.yml@v1
    with:
      machine: self-hosted
      blacksmith: blacksmith-4vcpu-ubuntu-2404
      github: ubuntu-latest
  test:
    needs: relay-test
    runs-on: ${{ needs.relay-test.outputs.runner }}

The relay

Name a Blacksmith label in the relay.

The relay answers in about a second and uses no minutes. It returns the label of the first runner in your order that can take the job, and the job runs there.

Read how routing works →

Details

Blacksmith at a glance

What it is
Hosted runners for GitHub Actions.
Labels
blacksmith-*
Example
runs-on: blacksmith-4vcpu-ubuntu-2404
Relay input
blacksmith
Links

List prices

Linux x64 $0.002/min per vCPU
Linux Arm $0.00125/min per vCPU
Windows $0.004/min per vCPU
macOS $0.01333/min per vCPU

As of November 2026, from Blacksmith's price page. Blacksmith bills you directly, so your plan and credits apply.

Common questions

How is this different from using Blacksmith directly?

Used directly, every job that names a Blacksmith label runs on Blacksmith. In a runner order, jobs go to your own machines first and to Blacksmith only when they're busy, and you can move Blacksmith up, down or out from the dashboard without editing workflows.

Do I have to change my workflows to use Blacksmith?

Once. Run npx relayrunner init in your repo and it adds a relay to each job you pick. After that, you move Blacksmith up or down in the dashboard.

Which jobs go to Blacksmith?

Jobs whose relay names a Blacksmith label, when nothing above Blacksmith in your runner order is free.

Who bills me for Blacksmith?

Blacksmith does. Jobs run under your own Blacksmith account, so your plan, credits and discounts still apply.

Do public repos run on Blacksmith?

Yes. Your own machines skip public repos' jobs, but hosted providers like Blacksmith run them.

Add Blacksmith to your runner order.

Add relays once. After that, change the order in the dashboard.

  1. 1. In your repo, add relays to the jobs you want to route
    npx relayrunner init
  2. 2. Optionally, turn this computer into a runner
    npx relayrunner connect