Free & open source · macOS 14+

Commit messy. Push clean.

A menu bar app that keeps an eye on your git projects and commits them with AI-written messages from opencommit, in one click. Save your work with a quick WIP, and let Magic Commit rewrite every WIP into a real message before you push.

Universal app for Apple silicon and Intel · MIT licensed

The Magic Commit panel open under the menu bar, listing several git projects with their branch, changes and actions
Screenshot: the panel open under the menu bar
→ site/screenshots/panel.png

Everything a project needs, one row at a time

Each project shows its branch, changed files, WIP commits and ahead/behind counts, with only the actions that make sense right now. The menu bar icon counts how many projects have something to commit or push.

Commit

Stages everything (unless you've already staged something) and runs oco --yes for a descriptive message.

A project row with uncommitted changes and the Commit button
→ site/screenshots/commit.png

WIP

An instant commit with the message WIP, with no AI call. Save often, think later.

A project row showing a count of WIP commits
→ site/screenshots/wip.png

Batch oco

Gives each unpushed WIP commit a real message generated from its own diff. Other commits keep their messages, empty WIPs are dropped, and author dates are kept.

The Batch oco button on a project with several WIP commits
→ site/screenshots/batch-oco.png

Push

Runs git push, setting the upstream for new branches, and warns you first if WIP commits are still in there.

The warning shown when pushing with WIP commits
→ site/screenshots/push.png

Rewriting history, carefully

Batch oco never touches your branch until it has proven the result is identical.

  1. Replay in a worktreeCommits from the oldest unpushed WIP up to HEAD are replayed in a temporary git worktree, away from your files.
  2. Rename only the WIPsEach WIP commit is re-staged and oco --yes writes its message. Every other commit is re-committed unchanged.
  3. Verify, then moveThe branch moves to the new history only if the final content is identical and HEAD hasn't moved in the meantime.

Install in a minute

Requires macOS 14 Sonoma or later and opencommit. Magic Commit reads your PATH from your login shell, so oco from nvm or Homebrew is found.

1. Set up opencommit

npm install -g opencommit
oco config set OCO_API_KEY=<your key>

2. Install the app

  1. Download MagicCommit.zip, unzip it and move Magic Commit.app to Applications.
  2. The app isn't notarized yet, so right-click it and choose Open the first time, or run:
    xattr -dr com.apple.quarantine "/Applications/Magic Commit.app"

Prefer building it yourself? See Build from source.