Source

One command in any repository: the graph, the worktrees, the diffs — live, native, and asking for nothing. No account, no daemon, no configuration.

$ brew install helgesverre/tap/sourcefour

macOS · Windows · Linux · MIT

The Sourcefour window: worktrees, branches and remotes in the sidebar, the commit graph and history in the middle, and the selected commit's message and changed files below.

The graph

Every line of development, drawn properly

Merges show both parents. Octopus merges show all of them. Each line of development keeps its own colour from tip to root, and the commit you have checked out wears a halo.

Lanes are assigned by an incremental algorithm as commits stream in, so the drawing stays correct while history is still loading.

The commit graph beside its commit summaries, with coloured lanes, merge curves, and branch and tag chips.
The sidebar: three worktrees with their checked-out branches, then remotes, then five local branches.

The sidebar

Worktrees are not an afterthought

Linked worktrees sit at the top of the sidebar with the branch each one has checked out — locked, detached, or sitting on a drive you unplugged. Branches carry their ahead/behind counts; remotes carry their tracking branches.

Click a branch to scope history to it. Click again to widen back out.

sourcefour-history ~/code/sourcefour-history
locked
scratch ~/code/scratch
detached
portable /Volumes/T7/portable
missing

The odd states too — a lock, a detached HEAD, a checkout on a drive that left. Straight from the plumbing, never a guess.

Diffs

Read the change without leaving the window

Click any changed file and its diff fills the window, syntax-highlighted and monospaced, with word-level changes and old and new line numbers where Git puts them. Escape closes it.

The scrollbar is a scrubber: grab it and fly through a ten-thousand-line diff without lifting your hand.

The diff overlay showing a unified diff with added and removed lines and hunk headers.

Side by side

Unified or split, whichever you think in

One click swaps the layout, and the choice is remembered the next time you open a diff. Similar additions and deletions are aligned, context folds out of the way, and wrapping is available when a long line needs it.

A change as a unified diff. Unified
The same change side by side, old lines left, new lines right. Split

Images

Image changes you can actually see

PNG, JPEG, GIF, WebP and friends open as pictures, not as a note saying the file is binary. Drag the divider to wipe between before and after, or switch to side by side when you want both at once.

An added or deleted image says so on the missing half rather than showing you an empty box.

An image diff: the old icon on the left of a draggable divider, the new icon on the right.

GitHub Actions

CI failures, explained on arrival

Click a run and the failing job is already selected, the failing step already open, the log already scrolled to the first error. No tabs, no spinners, no digging.

Duration bars show where the minutes went, a timeline shows what ran in parallel, and a run that is still going updates itself every few seconds. Pull requests get chips on their branches; commits get CI dots in the history.

The Actions run overlay: jobs on the left, steps with duration bars on the right, the failing step's log open at the first error, and a timeline of job parallelism below.

Keep the command line

Sourcefour watches the repository itself. Commit, rebase, branch and tag from your terminal — the window follows along, without losing your selection or your scroll. There is no refresh button, because there is nothing to refresh.

What you get

A history browser, complete on the first launch

01

Worktrees out of the box

Every linked worktree appears with its branch, its path and its state — locked, detached, or missing its checkout entirely.

02

Always live

Branches created, tags pushed and commits made outside the app show up on their own, without a poll you can feel.

03

Any size of history

Commits load progressively on a worker thread, so a million-commit repository opens as fast as a ten-commit one.

04

Your Git, your keys

Fetch, pull and push run your own git, so SSH keys, credential helpers and hooks behave exactly as they do in the terminal.

05

Keyboard first

Arrows, Page Up/Down, Home and End drive the list. Cmd+F filters it. Selection follows the commit, not the row number.

06

Make it yours

Drag the panel dividers, reorder the sidebar sections, collapse the details pane. It all comes back the way you left it.

Download

Free, and free of charge

Sourcefour is open source under MIT. Every tagged release is built by CI for all three platforms, after the test suite has passed on each of them. The macOS installer is signed and notarized by Apple.