ENTELXCORE
CommitBar icon

Free macOS menu bar app

CommitBar

Stage, commit, and push from the macOS menu bar

Stage, commit, and push without leaving your flow. A lightweight macOS menu bar companion for everyday Git.

v1.2.7 · 13.7 MB · macOS · Apple silicon · free for personal and public use

What it does

Git commits from your menu bar

  • Pick repos once, commit anytime
  • Quick status and push from the menu bar
  • Built for developers who live in the bar

Install

Get CommitBar running in under a minute

Terminal install · CommitBar

After downloading the zip

Ad-hoc signed apps are not Apple-notarized. Paste these commands if Gatekeeper blocks launch — same flow across all tools.

  1. 1. Unzip into Applications

    unzip -o "$HOME/Downloads/CommitBar-1.2.7-macos-arm64.zip" -d /Applications/
  2. 2. Remove Gatekeeper quarantine (if macOS blocks launch)

    xattr -dr com.apple.quarantine "/Applications/CommitBar.app"
  3. 3. Open CommitBar

    open -a "CommitBar"

Version history

CommitBar release notes

Every published version, newest first.

  1. v1.2.7

    Current9 Oct 2026

    Fixed

    • CommitBar quit after a successful push, pull, commit or branch switch — 1.2.6 crashed right when it showed “Push successful.”, “Pull successful.”, “Commit successful.”, “Committed and pushed.” or the create/switch-branch result: those six notices still called rumps' notification function, which 1.2.6 had switched off, and the error it raised on the main thread aborted the app. They now go through the same path as every other notice, and only rumps' launch-time connection to the old notification API is skipped, so a missed call can no longer crash the app.
  2. v1.2.6

    9 Oct 2026

    Changed

    • Menu bar number counts repositories — the number next to the icon is now how many repositories have uncommitted changes, not the total of changed files across them (two repos with 40 edits show 2). With no local changes anywhere it still counts repositories that need a push or pull.

    Fixed

    • Update notice never seen — When the background check finds a new version, the “Update available” dialog (Install & restart… / Not now) now opens by itself, in front of other windows, once per version. Until now it only posted a notification, which macOS never showed.
    • Notifications never shown — Notifications go through Apple's current API (UNUserNotificationCenter). rumps used the deprecated NSUserNotificationCenter, whose notifications current macOS drops without an error. macOS only shows them for Developer ID signed apps; this ad-hoc build logs the reason to its error log instead.
    • Update check failed without Homebrew — Update checks and downloads work on Macs without Homebrew: the bundled OpenSSL only looked for certificates in Homebrew's folder. macOS's own `/etc/ssl/cert.pem` is now trusted as well.
  3. v1.2.5

    9 Oct 2026

    Changed

    • Current dependencies — built with `packaging` 26.3 and PyInstaller hooks 2026.8. `requirements.txt` now allows `packaging` 26.x (was capped below 26).
  4. v1.2.4

    16 Sep 2026

    Added

    • Commit All… and Commit One by One… in the main menu, under the repository list. Both open the same commit window as a repository's Commit…, for every repository that has changes. Commit All opens one window per repository (cascaded); Commit One by One opens them in turn — the title shows “(2 of 5)”, Skip moves on without committing, Cancel stops the sequence.

    Changed

    • Auto update check every 6 hours (was 12). A failed check — offline right after login, server error — is retried up to 3 times, 10 minutes apart, instead of waiting for the next interval.
    • Python 3.10+ for source installs — `install.sh` skips Apple's bundled Python 3.9 and rebuilds a virtualenv that was created with it; the bundled .app is unaffected.

    Fixed

    • Repository order in the menu only changed when a repository was added — the menu now rebuilds whenever the sorted order changes. Repositories with changes to commit come first, then anything else needing attention (ahead/behind, conflicts, detached HEAD), then clean ones, each A–Z.
    • Commit / push / pull errors never showed an alert — every `except … as extra:` handler in `dialogs.py` read `exc`, so a failing git command raised `NameError` inside the background job instead of the alert, and the repository stayed marked `committing…` / `pushing…` until restart.
    • Auto update check ran at launch, twice — rumps timers fire as soon as they start, so the “first check about a minute after launch” happened immediately (often before Wi-Fi was up) and the periodic timer fired once more right behind it. The first check now really waits a minute.
  5. v1.2.3

    13 Sep 2026

    Fixed

    • First changed file lost its first letter — trimming `git status --porcelain` output removed the leading status space, so an unstaged `bun.lock` showed as `un.lock [staged]` (and generated commit messages read `HANGELOG.md`). Staged/modified counts were off by one for the same reason.
  6. v1.2.2

    12 Sep 2026

    Added

    • Auto update check — every 12 hours (first check about a minute after launch). A purple dot on the menu-bar icon plus a notification when a new version is ready; Check for Updates… becomes “Update x.y.z available…”.
  7. v1.2.1

    12 Sep 2026

    Fixed

    • Quit reopened the app — Launch at login used `KeepAlive`, so launchd started CommitBar again after Quit. Match RunBar: `KeepAlive` off, unload the login item on Quit (plist stays for the next login).
  8. v1.2.0

    27 Aug 2026

    Added

    • Switch or create a branch from each repository’s menu (local branches, plus New Branch…)
  9. v1.1.2

    27 Aug 2026

    Changed

    • Menu chrome — Settings…, Check for Updates…, Version, then Quit (same order as the other Bars). Refresh All is now Refresh.

    Fixed

    • Duplicate menu bar icon after update — after `open` of the new app, do not reload the LaunchAgent. KeepAlive would start a second copy because that process is not the launchd job. The plist stays on disk, so Launch at login is unchanged at the next login.
  10. v1.1.0

    19 Aug 2026

    Changed

    • Non-blocking git jobs — commit, push, and pull run in the background so the menu stays usable
    • Push/pull 2–3 repositories in parallel; the same repo still allows only one write at a time
    • Commit window is modeless, with Commit and Commit & Push buttons (no follow-up alert)
    • Menu item shows `pushing…` / `committing…` while that repo is busy
    • Status refresh never runs git on the AppKit main thread, and skips a repo that is currently pushing
  11. v1.0.11

    14 Aug 2026

    Fixed

    • Self-update with launch at login — start the installer script before parking the KeepAlive LaunchAgent, so bootout cannot kill the app before replace/relaunch. Relaunch uses `open` (same path that works for StackBar).
    • Unpack the free-tools zip with `ditto` and skip `__MACOSX/*.app` stubs so the real `Contents/MacOS/CommitBar` is installed
  12. v1.0.10

    13 Aug 2026

    Fixed

    • Relaunch after update — open the new `.app` with LaunchServices instead of treating LaunchAgent bootstrap as a successful start (bootstrap loaded the job but the menu bar icon never came back)
  13. v1.0.9

    13 Aug 2026

    Fixed

    • Check for Updates progress — show the same “Installing update…” percent window as the other bar apps
    • Double reopen after update — park the LaunchAgent before replacing the app so KeepAlive plus `open -n` cannot start both the old and new copies
  14. v1.0.8

    13 Aug 2026

    Changed

    • `install.sh` picks the newest Python 3 from Homebrew or Xcode / CLT (no longer hard-coded to 3.12)
  15. v1.0.7

    9 Aug 2026

    Fixed

    • Check for Updates zlib Error -3 — fetch manifest/zip via stdlib urllib instead of requests/urllib3 so a CDN that wrongly sets `Content-Encoding: gzip` no longer breaks the update check
  16. v1.0.6

    9 Aug 2026

    Fixed

    • Memory leak: rumps retained every rebuilt `NSMenuItem` in a global callback map (~1 GB after days of use)
    • Menu now updates titles in place; full rebuild only when repos / remote / editor layout changes
    • Filesystem watches ignore high-churn dirs (`node_modules`, `dist`, `.venv`, etc.) and unschedule on remove
    • Large git diffs are capped in memory
    • Crash on Commit & Push (SIGSEGV from releasing the commit window too early)
  17. v1.0.5

    20 Jul 2026

    Fixed

    • SSH Keychain setup / Terminal push-pull when `SSH_AUTH_SOCK` is stale after reboot
    • LaunchAgent no longer bakes in a session-specific `SSH_AUTH_SOCK` path
  18. v1.0.4

    18 Jul 2026

    Added

    • Check for Updates… menu item (ENTELXCORE manifest + in-app zip install)
  19. v1.0.3

    18 Jul 2026

    Changed

    • Patch release for ENTELXCORE Free Tools
  20. v1.0.2

    18 Jul 2026

    Fixed

    • `release.sh` always rebuilds before zipping (fixes zip filename vs in-app version mismatch)
    • Launch at login migrates off `run.sh` / dev paths when `/Applications/CommitBar.app` exists

    Changed

    • Menu bar icon uses medium-weight SF Symbol to match the Bars family (RunBar / UsageBar)
    • App logo aligned with ENTELXCORE free-tools product mark
  21. v1.0.1

    18 Jul 2026

    Added

    • Custom app icon (menu bar dev wrapper and installed `.app`)
    • Support for local Git repos without a remote (commit-only flow)

    Changed

    • Release publishes to ENTELXCORE free-tools (`CommitBar-{version}-macos-arm64.zip`)
  22. v1.0.0

    18 Jul 2026

    Added

    • macOS menu bar app for monitoring multiple Git repositories
    • Live status: modified, staged, untracked, ahead/behind, conflicts
    • Commit dialog with scrollable file list and diff preview
    • Push / pull from the menu bar with SSH Keychain support
    • Preferences panel (notifications, refresh interval, SSH setup)
    • PyInstaller `.app` build and install to `/Applications`
    • Release zip script for distribution

    Fixed

    • Menu bar updates after commit/push/pull
    • `git diff` exit code handling
    • Always stage files before commit
    • Main-thread UI refresh from background git operations