Agent skill

Revdiff

by umputun in umputun/revdiff

Pi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff.

MITAuto-check passedDevelopment

Install Revdiff

skills CLI
$ npx skills add umputun/revdiff --skill revdiff -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install umputun/revdiff revdiff --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/umputun/revdiff.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/pi/skills/revdiff .claude/skills/revdiff && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
revdiff
GitHub stars
918
Token cost
~2.5k tokens
SKILL.md length
1,282 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Pi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff.

  • Works in 8 steps: If any revdiff_review call returns no… → Classify each annotation into → Answer explanation requests first in… → …
  • The user explicitly asks for revdiff
  • SKILL.md covers Agent usage, Annotation handling loop, User commands and Recommended user command…, plus 4 more sections
  • Calls git and gh

What it does

Revdiff is an agent skill from umputun/revdiff. Pi-only interactive diff and file review with revdiff. Use when the user explicitly asks for revdiff, interactive annotations, or captured revdiff comments inside pi.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. It works with Git. The repository describes itself as: TUI for reviewing diffs, files, and documents with inline annotations. The licence is MIT.

When your agent uses it

  • The user explicitly asks for revdiff
  • Interactive annotations
  • Captured revdiff comments inside pi

Example prompts

  • “/revdiff”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. If any revdiff_review call returns no annotations, stop. Do not relaunch revdiff after a no-annotation result unless the user explicitly…
  2. Classify each annotation into
  3. Answer explanation requests first in normal chat. Do not open another revdiff session just to show the explanation.
  4. If all annotations are explanation requests and no repository files change, ask the user to choose between
  5. Before editing repository files, list the planned file/code changes.
  6. Apply code-change directives.
  7. Rerun the original revdiff_review target only after repository files changed or when the user chooses to continue reviewing; preserve the…
  8. Add --untracked on reruns when agent-created files should be included.

What it can do on your machine

Read from SKILL.md and the folder at commit 5200a9f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Revdiff loads about 2.5k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 1,282 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~44
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from umputun/revdiff at commit 5200a9f, republished under its MIT licence (© umputun). 1,282 words, ~2,526 tokens.

Download SKILL.mdSave it as .claude/skills/revdiff/SKILL.md (or your agent's skills folder).
name
revdiff
description
Pi-only interactive diff and file review with revdiff. Use when the user explicitly asks for revdiff, interactive annotations, or captured revdiff comments inside pi.

revdiff for pi

This skill is specific to the pi harness. Use the revdiff pi extension for interactive review sessions.

Agent usage

Call the revdiff_review tool only when the user explicitly asks for revdiff, an interactive annotation pass, or captured revdiff annotations. Do not call it for ordinary autonomous requests like "review the code", "review my changes", or "review the diff"; handle those by inspecting the code directly. Do not tell the user to run /revdiff; slash commands are user-invoked only.

When the user invokes /skill:revdiff <input>, treat <input> as a request to launch revdiff unless it is clearly a usage/configuration question or an existing-history request. First figure out the concrete reference point(s) or file target the user asked for, then call revdiff_review. Do not stop after printing the resolved ref.

Reference resolution rules:

  • Accept natural language. Resolve the user's requested target to concrete revdiff args before launching.
  • If the request identifies another working directory (for example in ~/source/repo), use that directory for any git/ref/path resolution, omit that directory phrase from the revdiff args, and pass the directory as the revdiff_review tool's cwd parameter.
  • For natural-language commit-count requests, use two refs: prev commit, previous commit, last commit → HEAD~1 HEAD; head-3, head 3, previous 3 commits, last 3 commits → HEAD~3 HEAD.
  • For tag requests, resolve the actual tag first. last tag or latest tag → run git describe --tags --abbrev=0, then pass that tag as args.
  • For date requests, resolve the commit first. Examples: 2 weeks ago, yesterday, last Friday → run git rev-list -1 --before=<phrase> HEAD, then pass the resulting commit hash as args.
  • For file targets, use args: "--only <path>".
  • For all-files requests, map excludes explicitly. Example: all files exclude vendor and dist → args: "--all-files --exclude=vendor --exclude=dist".
  • For explicit refs, ranges, flags, or two-ref requests, pass them through as revdiff args.
  • If the requested natural language target cannot be resolved, say what failed and ask for a concrete ref/path. Do not guess silently.

Tool examples:

  • No args: smart detection, same default target as /revdiff
  • args: "main": review the current branch against main
  • args: "--staged": review staged changes
  • args: "--untracked": review untracked files with working-tree changes
  • args: "--only README.md": review one standalone file
  • args: "--all-files --exclude vendor": review all tracked files except vendor
  • args: "--no-tree": review with the file tree pane hidden
  • args: "--filter-unreviewed": show only files not marked reviewed
  • args: "--page-overlap=2": keep 2 lines from the previous screen when paging
  • args: "--start-at-change": position the cursor on the first changed line
  • args: "--cross-file-motion": let cursor motion continue into adjacent files
  • args: "--description='why this refactor matters' main": include review context in the info popup
  • args: "--description-file=/tmp/revdiff-desc.md main": include longer markdown review context
  • args: "--annotations=/tmp/revdiff-review.md main": preload in-session review notes
  • args: "main", cwd: "~/source/repo": run revdiff from a specific working directory when the session was started elsewhere.
  • args: "--stdin" with a unified diff piped to stdin (e.g. gh pr diff 123, git format-patch -1 --stdout, a .patch file): review a multi-file diff that lives outside the working tree — revdiff parses it as a real diff (one tree entry per file, hunk navigation, per-file annotations) instead of a context-only buffer

After revdiff_review returns annotations, address them directly from the tool result content. Do not read revdiff history after a successful captured-annotation result. Exit code 10 is success-with-annotations and is handled by the extension; do not report it as a failure. If it returns no annotations, report that no annotations were captured and stop. Do not relaunch revdiff after any no-annotation result unless the user explicitly asks for another review.

Annotation handling loop

When annotations arrive from /revdiff or revdiff_review:

  1. If any revdiff_review call returns no annotations, stop. Do not relaunch revdiff after a no-annotation result unless the user explicitly asks for another review.
  2. Classify each annotation into:
    • explanation requests: questions or requests to explain/clarify behavior
    • code-change directives: requested repository changes
  3. Answer explanation requests first in normal chat. Do not open another revdiff session just to show the explanation.
  4. If all annotations are explanation requests and no repository files change, ask the user to choose between:
    • Continue review — rerun the original revdiff_review target
    • Done with review — stop
  5. Before editing repository files, list the planned file/code changes.
  6. Apply code-change directives.
  7. Rerun the original revdiff_review target only after repository files changed or when the user chooses to continue reviewing; preserve the original cwd parameter when one was used.
  8. Add --untracked on reruns when agent-created files should be included.

User commands

  • /revdiff [args] — alias for /skill:revdiff [args]; the skill resolves the request and calls revdiff_review.
  • /skill:revdiff <request> — explicit skill command; same behavior as /revdiff <request>.
text
/revdiff
/revdiff HEAD~1
/revdiff HEAD~1 HEAD
/revdiff main
/revdiff --staged
/revdiff --untracked
/revdiff --all-files --include src
/revdiff --all-files --exclude vendor
/revdiff --only README.md
/revdiff --no-tree
/revdiff --page-overlap=2
/revdiff --start-at-change
/revdiff --cross-file-motion
/revdiff HEAD~3 --description="why this refactor matters"
/revdiff HEAD~3 --description-file=/tmp/revdiff-desc.md
/revdiff main --annotations=/tmp/revdiff-review.md
gh pr diff 123 | revdiff --stdin
git format-patch -1 --stdout | revdiff --stdin
Show full SKILL.md (514 more words)Show less
text
/revdiff prev commit
/revdiff last tag
/revdiff 2 weeks ago
/revdiff all files exclude vendor and dist
/revdiff README.md

Behavior:

  • With no arguments, the extension uses smart detection:
    • on main/master with staged-only changes → review staged changes with --staged
    • on main/master with uncommitted changes → review uncommitted changes
    • on main/master with a clean tree → review HEAD~1
    • on a clean feature branch → review against the detected main branch
    • on a dirty feature branch → asks whether to review uncommitted changes or the branch diff; staged-only uncommitted review uses --staged
  • After revdiff exits with annotations, revdiff_review returns them in the tool result; the agent processes that result directly.
  • If revdiff exits without captured annotations, report that no annotations were captured and stop.
  • When recent agent work created new untracked files, include --untracked so those files appear in the review tree.
  • Include --filter-unreviewed only when the user asks for the tree limited to files not marked reviewed; F toggles the same filter during the review.
  • Include --cross-file-motion only when the user asks for cursor motion to continue into adjacent files.
  • When launching after analysis or refactor work, include --description or --description-file so the info popup explains the review context.

Existing review history

If the user says "use my latest revdiff annotations", "pull up my last revdiff review", or similar, do not launch revdiff again. Read the newest markdown file from the revdiff history directory and process its annotations through the same annotation handling loop. Also use history as a fallback only when a revdiff launch reports annotations but the tool did not return annotation text, or when the review did not complete and recent history may contain the saved annotations.

revdiff also writes to history when the process is terminated by a signal (a SIGHUP from a lost connection, or a SIGTERM), saving the current annotations there — never the -o output — so a review cut short mid-session is still recoverable from history.

  • Use $REVDIFF_HISTORY_DIR when set; otherwise use ~/.config/revdiff/history/.
  • Prefer the history subdirectory matching the current repository root name when present.
  • History files contain annotation blocks in ## file:line (type) format, usually followed by captured diff context.

In-session review preload

When the user wants to review comments already present in the current conversation, write those comments to a temporary markdown file using revdiff's annotation output format, then run revdiff_review with --annotations=<tempfile> plus the normal review target args. This preloads the notes into the review session so the user can accept, edit, or add annotations in context.

Notes

  • The extension launches the external revdiff binary in the current terminal session, temporarily suspending pi while revdiff is running.
  • If revdiff is not on PATH, set REVDIFF_BIN to its absolute path.
  • The extension sets REVDIFF_EXIT_CODE_ON_ANNOTATIONS; 10 means annotations were captured, not failure.
  • Inside a review the user can press O to export annotations to --output, --post-flush-command, or both. The pi flow does not need it: pi is suspended until revdiff exits and returns the captured annotations on quit. The keep-open flush loop matters only for standalone use outside pi; a standalone clipboard-only setup can configure post-flush-command = pbcopy without an output file.
  • You can still use revdiff standalone outside pi; the extension is only a convenience layer around the existing binary.

© umputun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/pi/skills/revdiff of umputun/revdiff.

Open the folder on GitHubat commit 5200a9f

Compare with similar skills

Revdiff next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Revdiff compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Revdiff this skillumputun/revdiff918—~2.5kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
Codebase Knowledge Graph Q&AEgonex-AI/Understand-Anything86k1 repos~1.2kAutomated safety check: PassMIT
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone
Understand Diff AnalysisEgonex-AI/Understand-Anything86k1 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Codebase Knowledge Graph Q&A

    Egonex-AI/Understand-Anything

    Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.

    86k GitHub starsUsed in 1 repo~1.2k tokens
    DevelopmentAuto-check passed
  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Understand Diff Analysis

    Egonex-AI/Understand-Anything

    Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.

    86k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Understand Explain

    Egonex-AI/Understand-Anything

    Gives an in-depth explanation of one file, function or module by reading the project's knowledge graph and checking that the graph is still fresh.

    86k GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed

More from umputun/revdiff

  • Revdiff

    umputun/revdiff

    Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings.

    918 GitHub stars~5.5k tokensUpdated today
    Auto-check: notes
  • Revdiff

    umputun/revdiff

    Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings.

    918 GitHub stars~5.6k tokensUpdated today
    Auto-check passed
  • Revdiff Plan

    umputun/revdiff

    Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay.

    918 GitHub stars~1.6k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Revdiff

What does Revdiff do?

Pi-only interactive diff and file review with revdiff. An agent skill from umputun/revdiff. Revdiff is an agent skill from umputun/revdiff. Pi-only interactive diff and file review with revdiff.

When should I use Revdiff?

Revdiff fits situations like: the user explicitly asks for revdiff; interactive annotations; captured revdiff comments inside pi.

How do I install Revdiff in Claude Code?

Run `npx skills add umputun/revdiff --skill revdiff -a claude-code`. Or copy the skill folder (plugins/pi/skills/revdiff in umputun/revdiff) into .claude/skills/revdiff in your project. Claude Code loads it when a task matches its description.

How do I install Revdiff in Codex?

Run `npx skills add umputun/revdiff --skill revdiff -a codex`. Or copy the skill folder (plugins/pi/skills/revdiff in umputun/revdiff) into .agents/skills/revdiff in your project. Codex loads it when a task matches its description.

Can I use Revdiff in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add umputun/revdiff --skill revdiff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/revdiff, .gemini/skills/revdiff, .github/skills/revdiff and .opencode/skills/revdiff in your project.

What does Revdiff need to run?

Going by SKILL.md and its folder, Revdiff needs the command-line tools its instructions call (git and gh).

Does Revdiff access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Revdiff safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Revdiff use?

Revdiff is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Revdiff use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Revdiff?

Skills that share tags, products or a category with Revdiff: Finishing a Development Branch (obra/superpowers, 296k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Codebase Knowledge Graph Q&A (Egonex-AI/Understand-Anything, 86k stars) and Code Design Rationale Investigator (cursor/plugins, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Revdiff?

umputun (a GitHub user) maintains it in umputun/revdiff, which has 918 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.

Source: umputun/revdiff on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.