Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Difit Review
When to Use This Skill
difit opens an external browser UI and starts a long-running local server, so launching it must be explicit opt-in:
- Use this skill only when the user explicitly names difit, asks to open, show, or annotate the review in the difit viewer, or invokes this skill by name.
- Do NOT use it for ordinary review requests such as "review these changes", "use the reviewer agent", "find problems in this diff", or "review this PR/commit/branch". Perform those reviews normally and report the findings in your response.
- When a request is ambiguous, prefer the non-difit review path.
Overview
This skill launches a requested git diff in a viewer that is easy for humans to read. At the same time, the agent can attach arbitrary comments via the --comment option. This comment mechanism is well suited for code review findings and code explanations. Before running commands, choose <difit-command> using the following rule:
- If
command -v difitsucceeds, usedifit. - Otherwise, use
npx difit. - If falling back to
npx difitwould require network access in a sandboxed environment without network permission, request escalated permissions and user approval before running it.
Steps
The final command typically looks like this:
<difit-command> <target> [compare-with] \
--comment '{"type":"thread","filePath":"src/foobar.ts","position":{"side":"old","line":102},"body":"line 1\nline 2"}' \
--comment '{"type":"thread","filePath":"src/example.ts","position":{"side":"new","line":{"start":36,"end":39}},"body":"Range comment for L36-L39"}'The detailed procedure is as follows.
- Identify the target diff and review its contents.
- Inspect the diff specified by the user. This may be a local git revision, a GitHub URL, a patch file, or something similar.
- Understand the diff normally, inspect surrounding code when needed, and think through the response required by the user's request, whether that is review findings, explanations, or something else.
- For PR reviews, inspect the PR locally and keep the review result limited to difit output. Do not post comments back to remote GitHub.
- Attach the prepared comments and launch difit — or reuse a running server.
- Reuse before launch
- Keep at most one live difit server per Git root and review target. If a difit server you started earlier is still running for the same target, do not launch another or reopen its URL; add the new findings to it with
<difit-command> comment add --port <port> '<json>'(same JSON shape as--comment) and let the open page pick them up. - If review rounds are expected to repeat, launch with
--keep-aliveor--background(a detached keep-alive server that prints JSON connection info such as{"port":4966,"url":"http://localhost:4966","pid":123}without auto-opening a browser), then usecomment add/comment get --port <port>for later rounds. - difit launch options
- Use
<difit-command> <target> [compare-with]to specify the target diff. - For uncommitted changes use
<difit-command> ., for working tree changes use<difit-command> working, and for staged changes use<difit-command> staged. - For stdin input, use a form such as
diff -u file1.txt file2.txt | <difit-command>. - Comment arguments
- Use
type: "thread"for each comment. - Write comment bodies in the language the user is using.
- Use
position.side: "new"for lines that exist on the target side of the diff. - Use
position.side: "old"for lines that exist only on the deleted side. - Use range comments for issues that span multiple lines.
- Never copy secrets, tokens, passwords, API keys, private keys, or other credential-like material from the diff into
--commentbodies or any command-line arguments. - Additional argument for files not yet added to git
- For uncommitted changes, if you decide files not yet added to git should also appear in the diff, add
--include-untracked.
- Share the difit URL and finish the response.
- If there were no comments to attach, explicitly say so.
- No manual verification of the launched difit page is required.
