Problem
Currently, runners can only be added interactively via the CLI (mac-runner add) or GUI. There's no way to declaratively define a set of runners and have them automatically provisioned. This makes it harder to:
- Reproduce a runner setup on a new machine
- Version-control your runner configuration alongside your repos
- Onboard new team members with a consistent runner setup
Proposed Solution
Support a declarative config file (e.g., ~/.mac-runner/config.yml or .mac-runner.yml in a repo) that defines runners:
runners:
- repo: omniaura/mac-runner
name: mac-runner-ci
labels: [macos, swift]
isolation: user
- repo: omniaura/other-project
name: other-ci
labels: [macos, node]
isolation: container
enable-gui: false
A new CLI command (mac-runner apply or mac-runner sync) would reconcile the running state with the config — adding missing runners, removing ones no longer defined, and updating changed settings.
Acceptance Criteria
Problem
Currently, runners can only be added interactively via the CLI (
mac-runner add) or GUI. There's no way to declaratively define a set of runners and have them automatically provisioned. This makes it harder to:Proposed Solution
Support a declarative config file (e.g.,
~/.mac-runner/config.ymlor.mac-runner.ymlin a repo) that defines runners:A new CLI command (
mac-runner applyormac-runner sync) would reconcile the running state with the config — adding missing runners, removing ones no longer defined, and updating changed settings.Acceptance Criteria
mac-runner applyreads the config and reconciles runner statemac-runner exportgenerates a config file from existing runners