Hunk is a review-first terminal diff viewer for agent-authored changesets, built on OpenTUI and Pierre diffs.
- multi-file review stream with sidebar navigation
- inline AI and agent annotations beside the code
- split, stack, and responsive auto layouts
- watch mode for auto-reloading file and Git-backed reviews
- keyboard, mouse, pager, and Git difftool support
Split view with sidebar and inline AI notes |
Stacked view and mouse-selectable menus |
npm i -g hunkdiffRequirements:
- Node.js 18+
- macOS or Linux
- Git recommended for most workflows
hunk # show help
hunk --version # print the installed versionHunk mirrors Git's diff-style commands, but opens the changeset in a review UI instead of plain text.
hunk diff # review current repo changes
hunk diff --staged
hunk diff --watch # auto-reload as the working tree changes
hunk show # review the latest commit
hunk show HEAD~1 # review an earlier commithunk diff before.ts after.ts # compare two files directly
hunk diff before.ts after.ts --watch # auto-reload when either file changes
git diff --no-color | hunk patch - # review a patch from stdinLoad the skills/hunk-review/SKILL.md skill in your coding agent (e.g. Claude, Codex, Opencode, Pi).
Open Hunk in another window, then ask your agent to leave comments.
| Capability | hunk | lumen | difftastic | delta | diff-so-fancy | diff |
|---|---|---|---|---|---|---|
| Review-first interactive UI | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Multi-file review stream + sidebar | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Inline agent / AI annotations | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Responsive auto split/stack layout | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Mouse support inside the viewer | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Runtime view toggles | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Syntax highlighting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Structural diffing | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Pager-compatible mode | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
Hunk is optimized for reviewing a full changeset interactively.
You can persist preferences to a config file:
~/.config/hunk/config.toml.hunk/config.toml
Example:
theme = "graphite" # graphite, midnight, paper, ember
mode = "auto" # auto, split, stack
line_numbers = true
wrap_lines = false
agent_notes = falseSet Hunk as your Git pager so git diff and git show open in Hunk automatically:
git config --global core.pager "hunk pager"Or in your Git config:
[core]
pager = hunk pagerIf you want to keep Git's default pager and add opt-in aliases instead:
git config --global alias.hdiff "-c core.pager=\"hunk pager\" diff"
git config --global alias.hshow "-c core.pager=\"hunk pager\" show"Hunk supports two agent workflows:
- steer a live Hunk window from another terminal with
hunk session ...(recommended) - load agent comments from a file with
--agent-context
Use the Hunk review skill: skills/hunk-review/SKILL.md.
A good generic prompt is:
> Load the Hunk skill and use it for this review
That skill teaches the agent how to inspect a live Hunk session, navigate it, reload it, and leave inline comments.
When a Hunk TUI starts, it registers with a local loopback daemon. hunk session ... talks to that daemon to find the right live window and control it.
Use it to:
- inspect the current review context
- jump to a file, hunk, or line
- reload the current window with a different
difforshowcommand - add, list, and remove inline comments
Most users only need hunk session .... Use hunk mcp serve only for manual startup or debugging of the local daemon.
hunk session list
hunk session context --repo .
hunk session navigate --repo . --file README.md --hunk 2
hunk session reload --repo . -- diff
hunk session reload --repo . -- show HEAD~1 -- README.md
hunk session comment add --repo . --file README.md --new-line 103 --summary "Tighten this wording"
hunk session comment list --repo .
hunk session comment rm --repo . <comment-id>
hunk session comment clear --repo . --file README.md --yeshunk session reload ... -- <hunk command> swaps what a live session is showing without opening a new TUI window.
Use --agent-context to attach agent-written comments or rationale from a JSON sidecar file. For a compact real example, see examples/3-agent-review-demo/agent-context.json.
hunk diff --agent-context notes.json
hunk patch change.patch --agent-context notes.jsonReady-to-run demo diffs live in examples/.
Each example includes the exact command to run from the repository root.
For source setup, tests, packaging checks, and repo architecture, see CONTRIBUTING.md.

