difit
yoshiko-pg/difit
Ask the user for a code review through difit after code changes.
...Expand allAbout difit
The difit skill requests a code review from the user through difit, a local diff-viewing tool, after code changes have been made. It solves the problem of getting human review feedback into the agent workflow: the agent launches difit against a chosen diff target, the user leaves review comments in the difit UI, and those comments are printed to stdout when difit exits so the agent can continue work and address them. If the server is shut down without comments, the agent treats that as no review comments provided.
The skill defines a small command surface. It selects the difit binary if available, otherwise falls back to npx difit, and if the npx fallback would require network access in a sandboxed environment it requests escalated permissions and user approval first rather than proceeding silently. Review targets include uncommitted changes, the HEAD commit, staged changes, unstaged changes, a single commit, or a comparison between two commits or branches. Optional startup comments can be attached via --comment as JSON thread objects pinned to file paths and line ranges, useful for surfacing review findings directly on the diff, and untracked files can be included with --include-untracked. It can only be used inside a Git-managed directory.
Target users are developers who want a human-in-the-loop review checkpoint after the agent edits code. The skill is security-conscious: it explicitly instructs never copying secrets, tokens, passwords, API keys, private keys, or other credential-like material from the diff into comment bodies or command-line arguments. Its actions are limited to running a local review tool over Git diffs, making it benign.
FAQ
How does the review feedback reach the agent?
When the user leaves comments in difit, they are printed to stdout as the difit command exits, and the agent then continues work to address them. If difit is closed without comments, it's treated as no review comments provided.
What if difit isn't installed?
The skill uses difit if command -v difit succeeds, otherwise falls back to npx difit. If that npx fallback would need network access in a sandbox without permission, it requests escalated permissions and user approval before running.
What can I review with it?
Uncommitted changes, the HEAD commit, staged changes, unstaged changes, a single commit, or a comparison between two commits or branches, optionally including untracked files with --include-untracked.
Are there any usage constraints?
Yes, it can only be used inside a Git-managed directory since it operates on Git diffs.
How does it handle sensitive data in diffs?
It explicitly instructs never copying secrets, tokens, passwords, API keys, private keys, or other credential-like material from the diff into --comment bodies or any command-line arguments.
All Files
2 filesagents/openai.yaml0.2 KBViewSKILL.md2.6 KBViewOverview
This skill requests a code review from the user using difit.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.
If the user leaves review comments, they are printed to stdout when the chosen difit command exits.When review comments are returned, continue work and address them.If the server is shut down without comments, treat it as "no review comments were provided." Restarting it is unnecessary.Manual verification of whether the page launched correctly is also unnecessary.
Commands
- Review uncommitted changes before commit:
<difit-command> . - Review the HEAD commit:
<difit-command> - Review staging area changes:
<difit-command> staged - Review unstaged changes only:
<difit-command> working
Basic Usage:
<difit-command> <target> # View single commit diff. ex: difit 6f4a9b7<difit-command> <target> [compare-with] # Compare two commits/branches. ex: difit feature main
Optional Startup Comments
If there is something you want to tell the user when difit opens, attach it as startup comments with --comment.This is useful for review findings, explanations, and any context the user should see directly on the diff.
<difit-command> <target> [compare-with] \ --comment '{"type":"thread","filePath":"src/foobar.ts","position":{"side":"old","line":102},"body":"line 1line 2"}' \ --comment '{"type":"thread","filePath":"src/example.ts","position":{"side":"new","line":{"start":36,"end":39}},"body":"Range comment for L36-L39"}'
- 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.
Including Untracked Files
For uncommitted changes, if files not yet added to git should also appear in the diff, add --include-untracked.
<difit-command> . --include-untracked
Constraints
Can only be used inside a Git-managed directory.
All Files
0 filesInstall difit
Download and extract the skill files to your .claude/skills/ directory.
Download ZIPClone the repository and copy the skill files to your project.
git clone https://github.com/yoshiko-pg/difit/blob/main/skills/difit/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copy





Home
