diffier 0.2.0

Live diff feed for Claude Code edits, fed by hooks, rendered with delta
Documentation

diffier

CI License: MIT

A live diff feed for Claude Code. Run it in a second pane and every Edit, Write, MultiEdit, and NotebookEdit shows up as a full diff the moment it lands, rendered through delta when it is installed.

Install

delta is optional; without it diffs render in a plain built-in style.

cargo install diffier
diffier install

cargo binstall diffier downloads the prebuilt binary for your platform from the releases page instead of compiling; the tarballs there can also be unpacked by hand. To build from the development branch, use cargo install --git https://github.com/spencerjireh/diffier.

The binary lands in ~/.cargo/bin. If diffier is not found afterwards, add that directory to your PATH.

diffier install registers diffier hook in ~/.claude/settings.json by the absolute path of the binary, preserving everything else in that file and writing a one-time settings.json.bak. Restart any running Claude Code session so the hooks load. Run it again if you move the binary; it also removes the ~/.claude/hooks/diffier.sh script that versions before 0.2 installed.

Use

Run diffier in any second terminal, in the repository you run claude in. A tmux pane is one way to get that terminal; a separate window, tab, or editor terminal panel works the same, because the monitor reads a spool file and does not talk to the multiplexer.

cd ~/Projects/some-repo
tmux split-window -h diffier   # then run claude in the other pane

It follows every session in the git repository it started in, including other worktrees and subdirectories, replaying their recent edits before following new ones. Once a second session has made an edit, each card carries a session tag (the last six characters of the session id, prefixed with the worktree name when it differs). Outside a repository, or with --cwd-only, it follows only sessions whose working directory matches its own.

Key Action
j / k, arrows, wheel scroll
Ctrl-d / Ctrl-u, PgDn / PgUp half page / page
g / G top / bottom, and resume follow
p toggle follow
v toggle side-by-side / unified
Tab cycle the session filter: all, then each session
q, Esc, Ctrl-c quit

Diffs are side by side by default and unified with --unified. Side by side needs about 100 columns; below that the feed draws unified until the terminal is wide enough again. Scrolling up pauses follow. Mouse capture is on for the wheel, so select text with tmux copy mode or shift-drag.

The hook records edits whether or not a monitor is running, so you can also skip the live view and print the cards after the fact:

diffier dump             # print the current sessions' cards and exit
diffier dump --session ab12cd   # only one session, by tag or id prefix
diffier dump --side-by-side --width 120   # two columns instead of unified
diffier run --unified    # one column of -/+ lines
diffier run --no-delta   # force the plain renderer
diffier run --cwd-only   # ignore other worktrees of this repository
diffier uninstall        # remove the hook and its settings entries

diffier --help covers the rest.

More