A complete git client, made for the Mac.
Boughwright is a native SwiftUI app. It finds your repositories, handles your GitHub accounts, and covers the git work you do every day, with colour that tells you what's going on at a glance.
See your history as a branch graph
Every branch gets its own colour, and merges show where work came back together. Refs sit right on the commits they point to: your current branch, remote branches and release tags.
Right-click any commit to check it out, start a branch or tag there, cherry-pick it onto your current branch, revert it, or reset to it.
Changes and commits
Staged and unstaged lists
Every changed file with a coloured status letter: added, modified, deleted, renamed, new or conflicted.
Hunk staging
Stage, unstage or discard a single hunk straight from the diff, not just whole files.
Commit, amend, commit & push
Write a summary and description, amend the last commit, or commit and push in one step with ⇧⌘↩.
Discard and ignore
Throw away changes to a file or add it to .gitignore from the context menu.
History
Commit graph
Branches and merges drawn as coloured lanes, with branch, remote and tag labels on each commit.
Commit details
Message, author, date and every changed file with its diff and line counts.
Act on any commit
Check it out, branch or tag from it, cherry-pick it, revert it, or reset to it (soft, mixed or hard).
Search
Filter history by message, author or SHA.
Branches, stashes, tags and remotes
Branches
Create, switch, rename, delete, merge, rebase and publish. Check out remote branches as tracking branches.
Stashes
Stash with a message and new files, preview a stash's diff, then apply, pop or drop it.
Tags
Create lightweight or annotated tags on any commit and push them.
Remotes
Add, remove and fetch remotes, open them on GitHub, and see which of your accounts owns each.
Syncing and safety
Fetch, pull and push
Pull with merge, rebase or fast-forward only. Force push uses --force-with-lease.
Conflict handling
A banner shows when a merge, rebase, cherry-pick or revert is in progress. Take ours or theirs per file, then continue or abort.
Confirmations
Anything that throws work away asks first.
Your git
Runs the git you already have, so hooks, LFS, signing and aliases behave exactly as in Terminal.
And the details
Branches
Create, switch, rename, delete, publish. Track remote branches and see ahead/behind for each one.
Stashes
Stash with a message, include new files, and preview a stash's diff before you apply or pop it.
Tags
Lightweight or annotated tags on any commit, pushed with the right account.
Clone & init
Clone from any URL with the account you choose, or turn a folder into a new repository.
Remotes
Add and remove remotes, fetch one at a time, and see which of your accounts owns each.
Keyboard first
⌘1–⌘6 switch views, ⇧⌘F fetches, ⇧⌘P pulls, ⇧⌘U pushes.
Menu bar
A leaf in your menu bar lists every repo that needs a commit, push or pull.
Your tools
Open any repo in VS Code, Cursor, Zed, Xcode, Terminal, iTerm, Warp or Ghostty.
Keep reading
Tidy up your git.
Download Boughwright free, point it at your code folder, and connect your accounts. It takes about a minute.