Agent skill

Wiff Review

by wez in wez/wiff

Read and annotate a wiff code-review session from the command line.

Apache-2.0Auto-check passedDevelopment

Install Wiff Review

skills CLI
$ npx skills add wez/wiff --skill wiff-review -a claude-code

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

GitHub CLI
$ gh skill install wez/wiff wiff-review --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/wez/wiff.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/wiff-review .claude/skills/wiff-review && 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
wiff-review
GitHub stars
119
Token cost
~2.2k tokens
SKILL.md length
1,198 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Read and annotate a wiff code-review session from the command line.

  • Asked to review a diff and leave comments in wiff
  • SKILL.md covers Opening or refreshing a review…, Selecting the session, Exploring existing code and Reading a review, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Read and address the comments already left in a wiff review

What it does

Wiff Review is an agent skill from wez/wiff. Read and annotate a wiff code-review session from the command line. Use when asked to review a diff and leave comments in wiff, or to read and address the comments already left in a wiff review.

Its SKILL.md is about 2.2k 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, covering Code review. The repository describes itself as: sniff out the wiff in your diff, from the comfort of your terminal. wiff is a terminal-centric code review tool. The licence is Apache-2.0.

When your agent uses it

  • Asked to review a diff and leave comments in wiff
  • Read and address the comments already left in a wiff review

Example prompts

  • “/wiff-review”

What it can do on your machine

Read from SKILL.md and the folder at commit be2ceb5. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

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

  • Network

    No URLs in SKILL.md.

    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

Wiff Review loads about 2.2k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 1,198 words of instructions outside code blocks.

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

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 wez/wiff at commit be2ceb5, republished under its Apache-2.0 licence (© wez). 1,198 words, ~2,215 tokens.

Download SKILL.mdSave it as .claude/skills/wiff-review/SKILL.md (or your agent's skills folder).
name
wiff-review
description
Read and annotate a wiff code-review session from the command line. Use when asked to review a diff and leave comments in wiff, or to read and address the comments already left in a wiff review.

Wiff Review

wiff is a terminal-first code-review tool. A review lives in a local session that a human browses in the wiff TUI while an agent reads and writes the same session through the wiff command line. The TUI belongs to the human: never launch or drive it. Do all of your work through the wiff subcommands below.

If there is no session to act on, ask the user to start one with wiff first. The exception is when you are the automation that opens reviews (see below).

Opening or refreshing a review from automation

When your job is to trigger reviews rather than review within a session a human opened, create-or-refresh the session for the current changes in one idempotent step:

bash
wiff new --no-tui --if-needed

It creates a session when none exists for these changes, refreshes one in place when the working copy has moved on, and does nothing when it is already current. With no changes and no session yet, it exits non-zero with "no changes to review". By default it reviews the uncommitted working-tree changes; add --from-base to review the whole branch against its trunk instead. Requires --no-tui.

Selecting the session

Every command acts on the active session for the current project by default, so run wiff from inside the checkout being reviewed and you can usually omit any session flag. When the active session is not the one you want, or the project cannot be derived from the working directory, select it explicitly:

bash
wiff session list
wiff render --session 2br8zf30h
wiff comment add --agent --session 2br8zf30h --review --body "..."
  • wiff session list prints the sessions for this project and their ids.
  • --session <id> targets a specific session instead of the active one.
  • --project <name> forces the project when the working directory cannot name it on its own.

Exploring existing code

Not every review is about a change. To annotate existing code, open an explore review: an empty session over the current working copy, to which you add the files you want to comment on.

bash
wiff new --no-tui --explore
wiff explore add src/lib.rs src/parser.rs
  • wiff new --explore creates the review with no files yet. Add --no-tui when you are driving it from the command line rather than handing it to a human.
  • wiff explore add <PATH>... brings files into the review, each captured at its current state. Re-adding a file already under review does nothing.
  • You do not have to add a file before commenting on it: wiff comment add --file F ... on an explore review adds F first when it is not yet present, so --file doubles as the way to bring a file in.

Everything else, reading with wiff render and leaving or revising comments, works the same as on a diff review.

Reading a review

Start here when asked to read a review or to address the comments it holds.

bash
wiff render
wiff render --format json
wiff comment list
  • wiff render prints the review as markdown: comments grouped by file, each led by its number (like #3) and showing its author and kind, target location, resolved or outdated state, body, and a fenced snippet of the surrounding code. This is the one command you need to read the review and to pick up the numbers you act on below.
  • Each comment has a short review-scoped number, shown as #N, and a long ULID. Every command that names a comment (resolve, verdict, rm, --reply-to) accepts either. Prefer the number: pass it as the bare digits N (a leading # starts a comment in the shell, so write 3, not #3, unless you quote it as '#3'). The ULID stays valid and is the durable identity across sessions.
  • When the review has a description (a title and optional body, the same shape as a commit message), wiff render prints it under a ## Description heading and the JSON includes it in a top-level description field. See below to set one.
  • wiff render --format json prints the same folded state as JSON for programmatic use. Each comment reports updated_seq and updated_at. To order changes or find the most recent one, use updated_seq, which always advances; updated_at is a display timestamp and, for a comment imported from a forge, can predate an earlier change.
  • wiff comment list is an optional compact form: one comment per line, number first, with its status and location, when you want a terse pass without the bodies and snippets.

When you finish addressing a comment, resolve it so the human sees it is done. Pass --agent here too, so the resolution is attributed to you rather than the human:

bash
wiff comment resolve --agent 7
Show full SKILL.md (472 more words)Show less

Leaving review comments

Use these when asked to review a change and record your findings. Always pass --agent on every command that writes to the review, so your comments, resolutions, and withdrawals are attributed to you rather than the human.

bash
wiff comment add --agent --file src/lib.rs --line 42 --body "This can overflow."
wiff comment add --agent --file src/lib.rs --line 10-14 --body "Extract this loop."
wiff comment add --agent --file src/lib.rs --line 42 --side before --body "..."
wiff comment add --agent --file src/lib.rs --body "This module needs tests."
wiff comment add --agent --review --body "Overall the change reads well."
wiff comment add --agent --reply-to 3 --body "Agreed, done."
  • --file F --line N comments on a single line; --line N-M on an inclusive range. Line numbers are 1-based.
  • --reply-to <comment> replies to an existing comment, named by its number or ULID, forming a thread. A reply takes its position from the comment it answers, so it needs no file or line. A thread shows as a flat sequence in the order the replies were written; a reply to a withdrawn comment is refused.
  • --side after (the default) refers to the post-change content; --side before refers to the pre-change content.
  • --file F with no --line comments on the whole file; --review comments on the change overall.
  • --verdict approve or --verdict request_changes records a verdict along with the comment. A comment without one is a neutral remark.
  • Provide the body with --body, or pipe it on stdin for anything long or multi-line:
bash
printf '%s\n' 'First point.' 'Second point.' | wiff comment add --agent --file src/lib.rs --line 42

To revise your own comments:

bash
wiff comment list
wiff comment resolve --agent 3
wiff comment resolve --agent --reopen 3
wiff comment verdict --agent 3 request_changes
wiff comment edit --agent 3 --body "Revised wording."
wiff comment rm --agent 3
  • wiff comment resolve <comment> marks a comment resolved; --reopen undoes that. Name the comment by its number or ULID, as everywhere.
  • wiff comment verdict <comment> approve|request_changes|none sets or clears the verdict on your own comment. Only its author may. wiff render reports each actor's current verdict, reduced from their comments, under a ## Verdicts heading and in a top-level verdicts field in the JSON.
  • wiff comment edit <comment> rewrites a comment's body from --body or stdin. You may edit only your own comments.
  • wiff comment rm <comment> withdraws a comment. You may withdraw only your own comments.

Describing the review

A review can carry a description: a one-line title and an optional body, the same shape as a commit message. It is the review's own summary, distinct from any comment.

bash
wiff description show
wiff description set --agent "Tidy the parser"
printf '%s\n\n%s\n' 'Tidy the parser' 'Split the lexer out.' | wiff description set --agent
  • wiff description show prints the current description.
  • wiff description set sets it from the argument, or from piped stdin when no argument is given. The first line is the title; the rest, past a blank line, is the body. Setting it again replaces the previous description.
  • Pass --agent so the description is attributed to you rather than the human.

Guidelines

  • Read the change before commenting. wiff render gives you each comment with its surrounding code; read the diff itself from the checkout as needed.
  • Comment where it matters: intent, correctness, risks, and follow-ups. Do not leave a note on every hunk; highlight what the human would not spot alone.
  • Anchor each comment on the most specific target you can, a line or a range, and fall back to a whole-file or review comment only for points that have no single home.
  • Quote comment bodies in the shell so punctuation is not mangled, or pipe them on stdin.

© wez, Apache-2.0. 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 skills/wiff-review of wez/wiff.

Open the folder on GitHubat commit be2ceb5

Compare with similar skills

Wiff Review 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.

Wiff Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Wiff Review this skillwez/wiff119—~2.2kAutomated safety check: PassApache-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k4 repos~1.1kAutomated safety check: PassMIT
Backend Code Reviewlangflow-ai/langflow155k—~3.5kAutomated safety check: NotesMIT
Mole Bug Patternstw93/Mole70k—~2kAutomated safety check: PassGPL-3.0
Backend Code Reviewlanggenius/dify158k—~676Automated safety check: PassCustom licence

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k 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 4 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Backend Code Review

    langflow-ai/langflow

    Review backend code for quality, security, maintainability, and best practices based on established checklist rules.

    155k GitHub stars~3.5k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.

    70k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • Backend Code Review

    langgenius/dify

    Reviews backend code under api/ for concrete, reproducible defects, routes to rule packs for architecture, schema, repositories and SQLAlchemy, and ranks findings from P0 to P3.

    158k GitHub stars~676 tokensUpdated today
    DevelopmentAuto-check passed
  • WooCommerce Code Review

    woocommerce/woocommerce

    Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.

    11k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed

Categories

Questions about Wiff Review

What does Wiff Review do?

Read and annotate a wiff code-review session from the command line. Wiff Review is an agent skill from wez/wiff. Read and annotate a wiff code-review session from the command line.

When should I use Wiff Review?

Wiff Review fits situations like: asked to review a diff and leave comments in wiff; read and address the comments already left in a wiff review.

How do I install Wiff Review in Claude Code?

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

How do I install Wiff Review in Codex?

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

Can I use Wiff Review 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 wez/wiff --skill wiff-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wiff-review, .gemini/skills/wiff-review, .github/skills/wiff-review and .opencode/skills/wiff-review in your project.

What does Wiff Review need to run?

SKILL.md names no scripts, command-line tools or credentials: Wiff Review is instructions for the agent only.

Does Wiff Review access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Wiff Review 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 Wiff Review use?

Wiff Review is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Wiff Review use?

About 2.2k tokens (SKILL.md is roughly 8.9k 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 Wiff Review?

Skills that share tags, products or a category with Wiff Review: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Backend Code Review (langflow-ai/langflow, 155k stars) and Mole Bug Patterns (tw93/Mole, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Wiff Review?

wez (a GitHub user) maintains it in wez/wiff, which has 119 GitHub stars. The repository was last updated on October 6, 2026.

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