Repository navigation
FAQ
GitRunnerManager is a menu bar / tray application that manages local GitHub Actions self-hosted runners. It provides visual status indicators, one-click controls, automatic mode based on network and battery conditions, and resource monitoring.
| Aspect | SwiftUI | Avalonia |
|---|---|---|
| Platform | macOS only | macOS, Windows, Linux |
| Focus | Lightweight native macOS experience | Full cross-platform feature set |
| Runner profiles | Single runner | Multiple runner profiles |
| GitHub integration | Not implemented | Full GitHub Actions dashboard |
| Runner setup wizard | Not implemented | 5-step guided wizard |
| Runner binary updates | Not implemented | Automatic update service |
- If you are on macOS and want a lightweight native app, use the SwiftUI implementation.
- If you need cross-platform support or advanced features like multi-runner management and GitHub Actions integration, use the Avalonia implementation.
When you manually click Stop, the runner is terminated immediately. In Automatic mode, the Avalonia implementation includes job safety: if a job is actively running (detected by Runner.Worker process presence), battery-aware and metered-network-aware stops are skipped to prevent interrupting in-progress work.
The SwiftUI implementation does not include job safety checks in automatic stops.
The stop sequence uses a graded shutdown (SIGINT --> SIGTERM --> SIGKILL) to allow graceful cleanup first. Force kill (SIGKILL) is only used as a last resort after the runner fails to respond to earlier signals. However, abrupt termination may leave the runner in an inconsistent state on the GitHub side, requiring manual cleanup.
The runner process continues running independently of the app. The app does not manage the runner's lifecycle outside of explicit start/stop commands. If the app crashes, you will need to stop the runner manually (via the runner directory or process manager).
- SwiftUI: No, the SwiftUI implementation supports a single runner directory.
- Avalonia: Yes, the Avalonia implementation supports multiple runner profiles, each with its own directory, settings, and independent control.
- SwiftUI: Change the runner directory in Settings under the Runner section.
- Avalonia: Select the desired runner profile from the profile list in the tray menu or Settings.
CPU and memory values are aggregated across all runner-related processes (Runner.Listener and Runner.Worker).
- CPU%: Percentage of total CPU used by runner processes. A busy job typically shows elevated CPU usage.
- Memory (RSS): Resident Set Size in MB. This is the actual physical memory used by runner processes.
Values near zero indicate the runner is idle (listening for jobs). Higher values indicate active job execution.
CPU spikes are normal when:
- A new job is starting
- The runner is processing a job with computational tasks
- The runner is updating itself
Spikes should return to near-zero when the runner returns to idle.
In Automatic mode, the runner is stopped when the network becomes offline. When the network returns to an unmetered state, the runner is automatically restarted.
-
macOS (SwiftUI): Cellular connections or personal hotspots detected via
NWPathMonitor. -
Avalonia (macOS): Determined via
scutil --nwioutput. -
Avalonia (generic): Determined via
NetworkInterface.GetAllNetworkInterfaces().
When on a metered connection, the runner is stopped in Automatic mode to avoid consuming mobile data.
If the "Stop on Battery" setting is enabled, the runner is stopped when the system switches to battery power. When AC power is restored, the runner is automatically restarted (in Automatic mode).
Yes. Disable the "Stop on Battery" toggle in Settings under General. Alternatively, switch to Force Running mode to keep the runner running regardless of battery state.
- See Troubleshooting for solutions to common problems
- See Automation for details on automatic mode behavior
- See Settings for configuration options
GitRunnerManager Wiki · Lightweight tray/menu bar app for managing local GitHub Actions self-hosted runners.
Home · Getting Started · Installation · Usage · Architecture · Troubleshooting
Project: GitRunnerManager
Organization: HunKonTech
Documentation is based on the project blueprint and may evolve with the SwiftUI and Avalonia implementations.
© 2026 HunKonTech. All rights reserved.