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
Navigate diffs. Annotate lines. Quit. Your annotations go to the AI agent.
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.
Annotate any line, added, removed, or context. File-level notes too. Annotation list popup to browse all notes across files.
On quit, annotations go to stdout as structured text. Pipe into Claude, scripts, or any tool. Use --output to write to a file.
Vim-style / search with n/N match navigation. Jump between hunks with [/]. Half-page scroll with Ctrl+d/u.
Browse and annotate all git-tracked files with --all-files. Filter with --exclude. Review standalone files with --only or piped output with --stdin.
Launch revdiff from pi, keep captured annotations visible in a widget and side panel, then rerun or apply them when you’re ready.
Collapsed mode (v) shows final text with change markers. Word wrap (w) for long lines. Line numbers (L) and git blame (B) gutters.
Single-file markdown review gets a sidebar with header navigation. Jump between sections, track your position as you scroll. Works with --only and --stdin.
7 bundled color themes with interactive selector (T) and live preview. 23 customizable color keys. Full keybinding remapping. Community theme gallery.
You annotate. Claude fixes. You verify. Repeat until done.
As a Claude Code plugin, revdiff launches as an overlay on top of your session.
display-popup$TMUXzellij run --floating$ZELLIJkitty @ launch --type=overlay$KITTY_LISTEN_ONwezterm cli split-pane$WEZTERM_PANEcmux new-split + cmux send$CMUX_SURFACE_ID$TERM_PROGRAM$ITERM_SESSION_IDemacsclient$INSIDE_EMACSPriority: tmux → zellij → kitty → wezterm/kaku → cmux → ghostty → iTerm2 → Emacs vterm
brew install umputun/apps/revdiffpi install https://github.com/umputun/revdiffdeb, rpm, archives for linux/darwin amd64/arm64 on GitHub Releases
Interactive code review directly from a Claude session. Annotate, fix, re-review in a loop.
/plugin marketplace add umputun/revdiff
/plugin install revdiff@umputun-revdiff/revdiff masterOpens revdiff in an overlay. Reviews current branch against master.
Add annotations on lines you want changed. Quit. Claude reads them, plans fixes, applies them. Re-launch to verify.
/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"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 conversationSame diff review workflow for Codex CLI sessions. Plus plan review via rollout file extraction.
cp -r plugins/codex ~/.codex/plugins/revdiff/revdiff
/revdiff-planSame /revdiff workflow as Claude Code. /revdiff-plan extracts the last Codex response for annotation.
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