GitHub at a glance, from your browser menu bar.

RepoBar is a native macOS menu bar app for keeping GitHub work visible without living in tabs. CI status, open issues and pull requests, releases, traffic, local Git state, and rate-limit health — for every repository you care about, one click away.

  • 01Real-time CI state with one-click jump to Actions or Checks.
  • 02Issues, PRs, releases, branches, tags, commits — all browsable inline.
  • 03Local checkout status: branch, ahead/behind, dirty files, worktrees.
  • 04Persistent SQLite cache with offline reads from gitcrawl-format archives.

Everything that matters about a repo, visible at once.

One menu, multiple repositories, every signal that drives day-to-day work — without jumping between tabs, dashboards, or the GitHub CLI.

01

CI status

Green/red/yellow indicator per repository with click-through to Checks or the Actions run.

02

Issues & pull requests

Open counts, recent lists, draft state, labels, and authors — corrected so PRs never leak into issue counts.

03

Releases & tags

Latest release name, date, and click-through. Inline preview of a local CHANGELOG.md when present.

04

Activity heatmap

Per-repo blocky commit heatmap plus a header showing your overall GitHub contribution graph.

05

Local Git state

Branch, upstream, ahead/behind, dirty files, worktrees. Optional auto fast-forward on a cadence — never destructive.

06

Rate-limit meter

Live REST + GraphQL bucket meter in the menu bar, with grouped resources, progress bars, and reset times.

Built for people who actually clone their repositories.

RepoBar can scan a projects folder such as ~/Projects and match local checkouts to GitHub. Local state appears next to remote state — no second tool, no IDE switch.

  • BranchCurrent branch and upstream tracking ref.
  • SyncAhead/behind counts versus the upstream branch.
  • DirtyStaged, unstaged, and untracked file summary.
  • WorktreesAll worktrees with their checked-out branches.
  • Auto syncOptional fetch + fast-forward on a cadence. Never force-pushes, never resets.
  • OpenOpen in Finder, Terminal, or your editor — straight from the submenu.

Repository browser, not picker.

Preferences › Repositories searches every repository RepoBar can access and lets you tag each one as Visible, Pinned, or Hidden. Manual rules survive even when a token rotation drops a repo from view, so access problems become legible.

Authentication uses the RepoBar GitHub App for GitHub.com, with PAT fallback for SAML SSO and Enterprise. Tokens land in the macOS Keychain on release builds.

Syncs with the gitcrawl.sh archive format.

RepoBar opens from local data first and spends GitHub requests carefully. It keeps a persistent SQLite cache for ETags, response bodies, GraphQL responses, recent lists, and rate-limit state — and it can read GitHub backups in the same Git-backed snapshot format that gitcrawl.sh publishes.

Compatible with gitcrawl.sh

One archive, two readers.

gitcrawl is a local-first GitHub crawler that publishes a portable SQLite database via Git. RepoBar reads the same Discrawl-style snapshot shape — manifest.json plus per-table tables/<table>/*.jsonl(.gz) files — and imports them into its own SQLite cache.

When GitHub is rate-limited, offline, or temporarily unavailable, RepoBar falls back to the imported archive automatically. Issue and PR lists keep answering; CI status keeps loading from cache; the menu does not go blank.

RepoBar owns its own cache and archive configuration. It does not modify gitcrawl databases or read gitcrawl config — point it at any compatible snapshot Git repository and it imports cleanly.

gitcrawl.sh publishes a portable SQLite snapshot to a Git repo.
RepoBar clones it and imports manifest.json into ~/Library/Application Support/RepoBar.
Live GitHub requests are preferred while the budget is healthy and ETags are fresh.
If GitHub is rate-limited or offline, archive reads serve issue/PR lists seamlessly.
repobar archives update pulls the snapshot Git repo and re-imports on demand.

A first-class CLI.

RepoBar ships repobar alongside the app — same auth, same cache, same archive paths. Use it for scripts, agents, diagnostics, or just because you live in the terminal.

~ — repobar
$ repobar repos --owner openclaw --sort prs --plainopenclaw/openclaw    issues 12   prs  4   ★ 412   pushed 24m agoopenclaw/gitcrawl    issues  3   prs  1   ★  68   pushed  3h ago$ repobar rate-limits --plaincore    4983 / 5000   resets in 53mgraphql  984 / 5000   resets in 47msearch    24 /   30   resets in  1m$ repobar archives add openclaw \    --repo ~/Backups/github-openclaw \    --db   ~/Library/Application Support/RepoBar/Archives/openclaw.sqliteadded source 'openclaw' (format: discrawlSnapshot)$ repobar archives update openclaw --json{"source":"openclaw","manifestVersion":1,"importedTables":7,"totalRows":48211}

Three paths, one menu bar app.

RepoBar is free and open source under the MIT license. Sparkle handles updates on release builds. macOS Sonoma or later, Apple Silicon and Intel.

Recommended

Homebrew

The fastest path. Updates with the rest of your Brew apps.

brew install --cask repobar
Direct

Download release

Signed and notarised .dmg on every release. Pinned to GitHub.

Latest release → All releases →
For hackers

Build from source

SwiftPM with pnpm wrapper scripts. Xcode 26 / Swift 6.2.

git clone https://github.com/steipete/RepoBar && cd RepoBar && pnpm start

Common questions.

Does RepoBar need access to all my repositories?
No. RepoBar uses the RepoBar GitHub App for GitHub.com, which only sees what you let it see. Private organization repos require the App to be installed on that org. If you need access outside the App boundary (SAML SSO, fine-grained constraints, enterprise hosts), use a Personal Access Token with repo and read:org.
How is data cached, and what's the gitcrawl.sh integration?
RepoBar persists REST ETags and bodies, GraphQL responses, recent lists, and rate-limit state to its own SQLite database. It can also import GitHub backup archives that follow the gitcrawl.sh portable-store shape — a Git-backed SQLite snapshot with manifest.json and tables/<table>/*.jsonl(.gz). When GitHub is rate-limited or offline, archive reads keep the menu answering. RepoBar never writes to gitcrawl databases or reads gitcrawl config.
Will it auto-sync my local checkouts?
Optionally. RepoBar can fetch and fast-forward clean repositories on a cadence. It never force-pushes, hard-resets, or discards local changes. The reposync doc has the full rules.
Does it support GitHub Enterprise?
Yes. Configure the enterprise host and OAuth settings in Preferences › Accounts. TLS is required.
Where do tokens live?
Release builds store tokens in the macOS Keychain. Debug builds and SwiftPM CLI and test runs default to file-backed auth storage so local development does not trigger Keychain prompts. Details in auth-storage.md.
Is it free?
Yes. MIT licensed, free forever, no telemetry, no analytics, no account.