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. 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 tracked files with --all-files (git). Filter with --include and --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.
Launch revdiff from OpenCode via /revdiff command or tool call. Plan-review plugin auto-launches on plan mode idle.
Collapsed mode (v) shows final text with change markers. Word wrap (w) for long lines. Line numbers (L) and 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.
Works with Git and Mercurial repositories. Auto-detects the VCS. Diffs, blame, and untracked file listing work across both backends.
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/revdiffparu -S revdiffsudo dpkg -i revdiff_*.debsudo rpm -i revdiff_*.rpmpi 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.
git clone https://github.com/umputun/revdiff.git
cd revdiff
cp -r plugins/codex/skills/revdiff ~/.codex/skills/revdiff
cp -r plugins/codex/skills/revdiff-plan ~/.codex/skills/revdiff-plan/revdiff
/revdiff-planSame /revdiff workflow as Claude Code. /revdiff-plan extracts the last Codex response for annotation.
Diff review and plan annotation for OpenCode sessions. Wraps the same launcher script used by Claude Code.
cd plugins/opencode && bash setup.sh/revdiff
/revdiff HEAD~3Plan-review plugin auto-launches revdiff when the assistant exits plan mode.
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