v0.15.3 / open source

Review diffs, files, and documents
right in your terminal

Code review for AI agents, Claude Code, and pi. Annotate diffs, plans, and documents in a TUI. Structured output on quit, ready for AI agents, scripts, or any tool.

brew install umputun/apps/revdiff

Built for one thing, done well

Navigate diffs. Annotate lines. Quit. Your annotations go to the AI agent.

+-

Full-file diff view

Syntax-highlighted diffs with added, removed, and context lines. Collapsed mode shows final text with change markers. Git blame gutter shows who wrote each line.

#

Inline annotations

Annotate any line, added, removed, or context. File-level notes too. Annotation list popup to browse all notes across files.

>

Structured output

On quit, annotations go to stdout as structured text. Pipe into Claude, scripts, or any tool. Use --output to write to a file.

/

Search & navigate

Vim-style / search with n/N match navigation. Jump between hunks with [/]. Half-page scroll with Ctrl+d/u.

A

All-files mode

Browse and annotate all git-tracked files with --all-files. Filter with --exclude. Review standalone files with --only or piped output with --stdin.

P

Pi integration

Launch revdiff from pi, keep captured annotations visible in a widget and side panel, then rerun or apply them when you’re ready.

v

Collapsed & wrap modes

Collapsed mode (v) shows final text with change markers. Word wrap (w) for long lines. Line numbers (L) and git blame (B) gutters.

Markdown TOC

Single-file markdown review gets a sidebar with header navigation. Jump between sections, track your position as you scroll. Works with --only and --stdin.

~

Themes & keybindings

7 bundled color themes with interactive selector (T) and live preview. 23 customizable color keys. Full keybinding remapping. Community theme gallery.

The review loop

You annotate. Claude fixes. You verify. Repeat until done.

/revdiff
Launch
revdiff opens as a terminal overlay on top of your Claude Code session
#
Annotate
Navigate the diff, add annotations on lines you want changed
q
Quit
Structured annotations are passed back to Claude automatically
Fix
Claude reads each annotation, plans the changes, and applies fixes
Re-review
revdiff re-launches with the same ref. Verify fixes, add more annotations, or quit clean to finish

Works with your terminal

As a Claude Code plugin, revdiff launches as an overlay on top of your session.

tmux
display-popup
$TMUX
zellij
zellij run --floating
$ZELLIJ
kitty
kitty @ launch --type=overlay
$KITTY_LISTEN_ON
wezterm / kaku
wezterm cli split-pane
$WEZTERM_PANE
cmux
cmux new-split + cmux send
$CMUX_SURFACE_ID
ghostty
AppleScript split + zoom
$TERM_PROGRAM
iTerm2
AppleScript split pane
$ITERM_SESSION_ID
Emacs vterm
New frame via emacsclient
$INSIDE_EMACS

Priority: tmux → zellij → kitty → wezterm/kaku → cmux → ghostty → iTerm2 → Emacs vterm

Installation

Homebrew

brew install umputun/apps/revdiff

Pi package

pi install https://github.com/umputun/revdiff

Download

deb, rpm, archives for linux/darwin amd64/arm64 on GitHub Releases

Claude Code plugin

Interactive code review directly from a Claude session. Annotate, fix, re-review in a loop.

1

Install

/plugin marketplace add umputun/revdiff
/plugin install revdiff@umputun-revdiff
2

Review

/revdiff master

Opens revdiff in an overlay. Reviews current branch against master.

3

Annotate & fix

Add annotations on lines you want changed. Quit. Claude reads them, plans fixes, applies them. Re-launch to verify.

Slash commands

/revdiff -- smart detection: uncommitted, last commit, or branch diff /revdiff HEAD~1 -- review last commit /revdiff main -- review current branch against main /revdiff HEAD~3 -- review last 3 commits /revdiff --staged -- review staged changes only /revdiff all files -- browse all tracked files in the project

Natural language

"review diff" -- same as /revdiff, smart detection "review diff HEAD~1" -- last commit "review diff against main" -- branch diff "review changes from last 2 days" -- Claude resolves the ref "revdiff for staged changes" -- staged only "review all files exclude vendor" -- browse project, skip vendor/ "what themes does revdiff support?" -- ask about config without launching "switch revdiff to dracula theme" -- modify config via conversation

Codex plugin

Same diff review workflow for Codex CLI sessions. Plus plan review via rollout file extraction.

1

Install

cp -r plugins/codex ~/.codex/plugins/revdiff
2

Review

/revdiff
/revdiff-plan

Same /revdiff workflow as Claude Code. /revdiff-plan extracts the last Codex response for annotation.

Output format

Structured, parseable, pipe-friendly.

## handler.go (file-level) consider splitting this file into smaller modules ## handler.go:43 (+) use errors.Is() instead of direct comparison ## handler.go:43-67 (+) refactor this hunk to reduce nesting ## store.go:18 (-) don't remove this validation