Harbor is a native Rust app for GitHub.com pull request workflows. It helps you review changes, track checks, inspect workflow logs and manage review threads.
It is designed for fast review workflows: repository switching, pull request inboxes, changed file navigation, diff review threads, pending review submission, workflow runs, logs, checks, local PR worktrees, and editor handoff.
Harbor is early software. The core app builds and has a growing test suite, but it is not packaged for end-user installation yet.
Harbor is currently tested and supported on macOS only. Other platforms may build, but they are not tested or supported yet.
- macOS
- Rust
1.90or newer - A working Xcode toolchain for GPUI
- GitHub CLI, if you want to authenticate through
gh
On Xcode versions that ship the Metal compiler as a downloadable component, install it once before building Harbor:
xcodebuild -downloadComponent MetalToolchainHarbor does not have a packaged macOS app release yet. The intended release path
is a zipped Harbor.app that can be copied into /Applications.
Until then, install the command-line launcher from source with Cargo:
cargo install --git https://github.com/kaanbiryol/harbor --locked --bin harbor harbor-appThen run:
harborTo build a local macOS app bundle:
script/package-macos
open target/macos/Harbor.appThe packaging script also creates target/macos/Harbor-0.1.0-macos.zip, which
is the artifact that should be attached to a GitHub release once app signing and
release validation are ready. Public macOS app releases should be signed and
notarized before publishing.
cargo run -p harbor-app --bin harbor --lockedOn first launch, Harbor asks you to connect GitHub.
The easiest path is GitHub CLI auth:
gh auth loginThen choose Use GitHub CLI in Harbor.
OAuth device login is also supported. Choose Continue with GitHub and Harbor will open GitHub's device login flow in your browser.
The OAuth flow requests repo and read:org scopes. Harbor uses its built-in
public OAuth Client ID by default. To test a custom OAuth app, override it with:
HARBOR_GITHUB_OAUTH_CLIENT_ID=your_client_id cargo run -p harbor-appRun the standard checks before handing off changes:
script/fmt
script/test
script/clippyThe same checks run in CI. To run formatting in check mode:
script/fmt -- --checkcrates/app: GPUI application entrypoint and startup wiringcrates/ui: workspace UI, panels, commands, rendering, and interaction statecrates/domain: stable app models independent from GitHub wire formatscrates/github: GitHub REST/GraphQL clients, DTOs, pagination, and transportscrates/git: local Git repository and worktree operationscrates/storage: SQLite cache, recent repositories, and persisted UI statecrates/sync: background refresh policy and inbox change detectioncrates/logs: GitHub Actions log parsing
Harbor is licensed under the MIT License. See LICENSE.
Third-party dependencies and bundled fonts are distributed under their own licenses. See THIRD_PARTY_NOTICES.md.
