Features

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.

ChangesHistoryBranches
mainMerge branch 'feat/graph'Isuru · 2h
feat/graphColour lanes by branchIsuru · 3h
Fix fetch prune on detached HEADMara · 5h
origin/fix/sshRoute SSH remotes over HTTPSMara · 6h
Lay out commit graph lanesIsuru · 1d
Add per-account credential helperMara · 1d
v0.9.0Release 0.9.0Isuru · 3d
Scan folders for repositoriesIsuru · 1w

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.

Boughwright app icon

Tidy up your git.

Download Boughwright free, point it at your code folder, and connect your accounts. It takes about a minute.