Get started
Quick start
Connect GitHub, pair a Mac, and route your first Actions job.Before you start
You need a private GitHub repository and an Apple-silicon Mac running macOS 26.
1. Connect GitHub
- Open Mirage setup and continue with GitHub.
- Install the GitHub App on a personal account or organization.
- Select the private repositories Mirage may administer.
- In Settings, enable the installation and then enable Local Mac for the repository.
GitHub repository access and Mirage routing consent are separate. Newly discovered repositories stay disabled until you opt them in.
2. Pair a Mac
- Install and open the signed Mirage menu-bar app.
- Choose the intended GitHub installation in the dashboard.
- Select Pair Mac and copy the one-use code.
- Paste the code into the menu-bar app.
3. Route a job
Use an attempt-aware expression. Attempt 1 targets the Local Mac scale set; attempt 2 targets the GitHub-hosted fallback.
.github/workflows/ci.yml
name: CI
on:
push:
pull_request:
jobs:
tests:
runs-on: ${{ github.run_attempt == '1' && 'mirage-linux-arm64' || 'ubuntu-24.04-arm' }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- run: pnpm install --frozen-lockfile
- run: pnpm test4. Verify the run
Push the workflow, then open Runs in Mirage. A healthy first run should show:
- the selected GitHub installation and repository;
- a Local Mac provider decision;
- one workflow attempt; and
- the paired machine and runner timing after assignment.
Turn off local capacity to test fallback. Mirage should cancel attempt 1 and GitHub should create attempt 2 under the same run ID.