Mainline — a lightweight native macOS menu bar app that notifies you about your GitHub pull requests
Swift
3
257 commits
updated Sep 16, 2026
A lightweight macOS menu bar app that keeps you on top of your GitHub pull requests.
PR view made simple, focused and always available.
Mainline lives in your menu bar and watches the pull requests you care about — the ones you opened and the ones waiting on your review. It notifies you when something changes: a PR turns green, a review lands, or CI breaks. It groups every PR by what needs your attention, and lets you approve, merge, or snooze straight from the keyboard. No browser tabs, no refreshing GitHub by hand.
Jump to: Install · Get started · Features · Screenshots · Docs
Mainline is distributed through a Homebrew tap.
brew tap mthines/mainline
brew install --cask mainline
Then open Mainline from Spotlight or your Applications folder. A menu bar icon appears — click it to open the panel.
Beta builds are published on demand: comment /beta on a pull request to cut a beta from it.
brew tap mthines/mainline
# Latest beta
brew install --cask --force mthines/mainline/mainline-beta
# A specific pinned beta version
brew install --cask --force mthines/mainline/mainline-beta@1.2.3-beta.42.1
--force is required because beta and stable share /Applications/Mainline.app.
To roll back to stable: brew install --cask --force mthines/mainline/mainline.
Requirements: macOS 13 Ventura or later, and a GitHub account.
Mainline needs a GitHub token to read your pull requests. Pick whichever option fits how you already work.
If you use the GitHub CLI and have run gh auth login, open Mainline Settings and click Import from gh.
Mainline reuses your existing gh token, which is already authorized for any SAML SSO organizations you belong to.
repo and read:org scopes.Note: a fine-grained token with only "read" access is usually not enough for org repos. Prefer a classic token with
repo+read:org, or use Import from gh.
Your token is stored in the macOS Keychain — never in a plain file or in app preferences.
A curated set of relevant PR's in your Inbox, or dedicated For me / Created tabs.
Not relevant, hover and press Q. For later, press S.
J/K to move, Space to peek, ↩ to open, M to merge, S to postpone, E to open the preview, N to mark seen, X to dismiss, V for multi-select, D to toggle drafts, Q to mute (Inbox), R to refresh, ⌘Z to undo. Every key is rebindable in Settings → Keyboard.Space opens a glance card with the PR's changed-files list.1; customizable in Settings).See the keyboard reference for the full list and how to rebind.
is:open is:pr author:@me and is:open is:pr review-requested:@me.docs/telemetry.md).Mainline is a native SwiftUI app. To build it from source:
git clone https://github.com/mthines/mainline.git
cd mainline
xcodebuild -scheme Mainline -configuration Debug -destination "platform=macOS" build
The built app lands in ~/Library/Developer/Xcode/DerivedData/Mainline-*/Build/Products/Debug/Mainline.app.
Building requires Xcode 15+.
Releases run through GitHub Actions: a push to main publishes a stable build automatically, and commenting /beta on a pull request publishes a beta on demand (PRs otherwise run a compile-only smoke check).
For code signing, notarization, the release pipeline, and Homebrew tap internals, see docs/release.md.
MIT — see LICENSE.
142 commits
107 commits
6 commits
2 commits
Swift
94.3%
Shell
5.3%
Mainline — a lightweight native macOS menu bar app that notifies you about your GitHub pull requests
Swift
3
257 commits
updated Sep 16, 2026
A lightweight macOS menu bar app that keeps you on top of your GitHub pull requests.
PR view made simple, focused and always available.
Mainline lives in your menu bar and watches the pull requests you care about — the ones you opened and the ones waiting on your review. It notifies you when something changes: a PR turns green, a review lands, or CI breaks. It groups every PR by what needs your attention, and lets you approve, merge, or snooze straight from the keyboard. No browser tabs, no refreshing GitHub by hand.
Jump to: Install · Get started · Features · Screenshots · Docs
Mainline is distributed through a Homebrew tap.
brew tap mthines/mainline
brew install --cask mainline
Then open Mainline from Spotlight or your Applications folder. A menu bar icon appears — click it to open the panel.
Beta builds are published on demand: comment /beta on a pull request to cut a beta from it.
brew tap mthines/mainline
# Latest beta
brew install --cask --force mthines/mainline/mainline-beta
# A specific pinned beta version
brew install --cask --force mthines/mainline/mainline-beta@1.2.3-beta.42.1
--force is required because beta and stable share /Applications/Mainline.app.
To roll back to stable: brew install --cask --force mthines/mainline/mainline.
Requirements: macOS 13 Ventura or later, and a GitHub account.
Mainline needs a GitHub token to read your pull requests. Pick whichever option fits how you already work.
If you use the GitHub CLI and have run gh auth login, open Mainline Settings and click Import from gh.
Mainline reuses your existing gh token, which is already authorized for any SAML SSO organizations you belong to.
repo and read:org scopes.Note: a fine-grained token with only "read" access is usually not enough for org repos. Prefer a classic token with
repo+read:org, or use Import from gh.
Your token is stored in the macOS Keychain — never in a plain file or in app preferences.
A curated set of relevant PR's in your Inbox, or dedicated For me / Created tabs.
Not relevant, hover and press Q. For later, press S.
J/K to move, Space to peek, ↩ to open, M to merge, S to postpone, E to open the preview, N to mark seen, X to dismiss, V for multi-select, D to toggle drafts, Q to mute (Inbox), R to refresh, ⌘Z to undo. Every key is rebindable in Settings → Keyboard.Space opens a glance card with the PR's changed-files list.1; customizable in Settings).See the keyboard reference for the full list and how to rebind.
is:open is:pr author:@me and is:open is:pr review-requested:@me.docs/telemetry.md).Mainline is a native SwiftUI app. To build it from source:
git clone https://github.com/mthines/mainline.git
cd mainline
xcodebuild -scheme Mainline -configuration Debug -destination "platform=macOS" build
The built app lands in ~/Library/Developer/Xcode/DerivedData/Mainline-*/Build/Products/Debug/Mainline.app.
Building requires Xcode 15+.
Releases run through GitHub Actions: a push to main publishes a stable build automatically, and commenting /beta on a pull request publishes a beta on demand (PRs otherwise run a compile-only smoke check).
For code signing, notarization, the release pipeline, and Homebrew tap internals, see docs/release.md.
MIT — see LICENSE.
142 commits
107 commits
6 commits
2 commits
Swift
94.3%
Shell
5.3%