Switch Commit

Switch Commit

Local menu bar app and switch-commit CLI for macOS. Switch Git identity globally or per folder — no telemetry, no automatic network calls.

$2.50 $1 launch price
macOS 14+ Apple Silicon CLI · switch-commit per-folder Git Sparkle updates

Inside the app

Menu bar identity switching, Settings, and per-folder rules.

Install

  1. 01Open the DMG and drag Switch Commit.app to Applications.
  2. 02Eject the DMG after installing.
  3. 03Launch — the icon appears in the menu bar.
  4. 04Updates: Settings → Check for Updates.

macOS blocks the first launch? Dismiss the dialog, then in Finder Control-click the app → Open → confirm Open. This build is not notarized by Apple yet.

Changelog

// v0.4.0 · 6 Aug 2026

Highlights

  • Landing offers Buy & Download via Polar (Merchant of Record) at a $1 launch price (compare-at $2.50), with a free secondary link to the public GitHub Releases DMG (soft paywall).
  • After payment, Polar File Downloads deliver the DMG; each version tag can upload the new DMG and refresh the Polar downloadables benefit via CI (Scripts/polar-sync-dmg.mjs).
  • Post-checkout thank-you page at thanks.html for the Polar Checkout Success URL.
  • Landing screenshot carousel uses styled CSS mocks until product GIFs are dropped into site/images/screenshots/.
  • Optional agent plugin under agent-plugins/switch-commit/ teaches Claude Code and Codex safe CLI use (inspect identity, switch profiles, manage folder rules — not create/edit/delete profiles or update).

Documentation

  • README documents the Polar soft-paywall operator secrets/variables and Checkout Success URL.
  • SUPPORT pricing points at the live landing Buy flow instead of “checkout not wired yet.”
// v0.3.9 · 2 Aug 2026

Documentation

  • Adds community and governance docs at the repo root: license, code of conduct, contributing guide, security policy, and support channels (paid product ~$2.50; community Issues for bugs).
  • Adds GitHub issue forms (bug, feature, custom) and a pull request template.
  • Consolidates historical release notes into root CHANGELOG.md as the single source of truth for Sparkle notes and the landing changelog (replacing docs/release-notes/).
// v0.3.8 · 2 Aug 2026

Highlights

  • Settings → Check for Updates also syncs/repairs /usr/local/bin/switch-commit to the CLI inside the current app bundle (including when the app is already up to date).
  • switch-commit update still installs the app and repairs the CLI, and now restarts a running Switch Commit menu bar app when possible.

Fixes

  • Settings uses a custom HStack sidebar instead of NavigationSplitView, so switching to Updates no longer blanks the detail pane.
  • Managed-file backups no longer collide when the CLI or app reapplies config concurrently (unique backup names).
  • Rewriting a managed file with identical content skips the backup and write, so read-heavy CLI commands stop growing the backups folder unnecessarily.
// v0.3.7 · 1 Aug 2026

Highlights

  • Selecting Updates in Settings no longer blanks the whole window (sidebar and content stay usable).
  • Closing and reopening Settings recovers without quitting the app — each open installs a fresh Settings view.
  • The Settings window is freely resizable, with a wider default size so Accounts labels and actions fit better.
// v0.3.6 · 1 Aug 2026

Highlights

  • Switching profiles surgically removes unmanaged url.*.insteadOf keys in ~/.gitconfig that reverse the active profile rewrite (after backup); doctor still warns about remaining conflicts outside that file.
  • SSH profiles no longer force ssh -F ~/.ssh/config, so a missing SSH config file no longer breaks Git push.
  • switch-commit update checks the public appcast live, downloads the DMG (SHA-256 verified when available), installs the app, and repairs the CLI; other CLI commands can print a 12-hour cached update notice.
  • Settings uses a sidebar (NavigationSplitView) so section tabs are no longer clipped by the title bar.
  • Settings and the menu bar app reload folder rules from disk when opening Settings or becoming active, and before each Settings write, so switch-commit folder add / folder remove stay in sync and are not overwritten.