Hunk vs delta
delta is a pager. It restyles the text git diff already printed and hands it to less. Hunk is a review UI. It turns the same changeset into one scrollable stream with a file sidebar, split and stack layouts, mouse support, watch mode, and agent notes beside the hunks they explain. Keep delta for everyday diffs. Open Hunk when you sit down to review.
Which to choose
Choose Hunk if
- You review whole changesets and want a sidebar and per-hunk navigation.
- You want to change layout, wrapping, or theme while reading, not in
.gitconfig. - You want more context around a hunk without re-running the diff.
- An agent wrote the change and you want its reasoning next to the code.
- You want the diff to reload as the working tree changes.
Choose delta if
- You want every diff you print to look better, with no change to how you work.
- You want
git blame,git grep, andgit logstyled too, not just diffs. - You want the lowest startup cost on a diff you will glance at and close.
- You already tuned delta and you like reading in a pager.
What delta is
delta is a pager. Git prints a unified diff and pipes it to whatever core.pager points at. delta sits in that pipe and rewrites the text on the way through. Two lines of .gitconfig and every diff you print looks better, including the ones inside git add -p, git log -p, and git show.
It does the job well. Syntax highlighting with bat syntax themes plus its own theme collection, word-level highlighting inside changed lines, an opt-in side-by-side view with wrapping, line numbers, opt-in n/N navigation between files, hyperlinked commit hashes, and styled git blame and git grep. Written in Rust, MIT-licensed, with a --help that runs to about 110 options.
What it does not do is hold a model of your changeset. It sees a stream of text and emits a prettier one. No file list, no selected hunk, no state that survives from one line to the next.
What Hunk does differently
Hunk parses the changeset into a document, then draws a UI over it. Every visible file becomes one continuous review stream, and the sidebar indexes that stream instead of hiding the rest of the change. [ and ] walk hunks across the whole changeset, , and . walk files, and the selection is real state that the sidebar, note cards, and context expansion all follow.
Holding the model in memory makes things easy that a pager cannot do at all. Press z to expand unchanged context around a hunk without re-running the diff. Press 1, 2, or 0 for split, stack, or responsive layout. Press w for wrapping or t for another theme, mid-review. hunk diff --watch reloads as you keep editing.
The part with no delta equivalent is agent context. An agent that wrote the change can attach its reasoning to specific hunks through hunk session, and Hunk renders those notes inline, next to the code, instead of in a pane you correlate by hand.
Use both
There is no conflict. delta is a good default pager, Hunk is a good review session. Leave delta configured and reach for Hunk deliberately.
If you would rather have Git open Hunk for diffs too, point core.pager at hunk pager. Non-patch output still falls through to your normal text pager. Either way hunk diff is the native entry point, and it is the only one that can pull untracked files into the review.
curl -fsSL https://hunk.dev/install.sh | sh
# delta stays exactly as you configured it
git config --global core.pager "delta"
# Hunk is what you open to review
hunk diff # working tree, including untracked files
hunk show HEAD # the last commit
hunk diff --watch # reload as you keep editingHunk vs delta, capability by capability
delta is written in Rust and licensed MIT. Hunk is TypeScript, MIT, and ships as a standalone binary for macOS, Linux, and Windows.
| Capability | Hunk | delta |
|---|---|---|
| Syntax highlighting | Yes | Yes |
ThemesHunk ships 65 bundled themes and takes custom ones. delta pairs bat syntax themes with its own collection, browsable via delta --show-themes. | Yes | Yes |
Side-by-side / split viewdelta opts in with --side-by-side. Hunk's auto layout picks split on wide terminals and stack on narrow ones. | Yes | Yes |
| Word-level highlighting inside a changed line | Yes | Yes |
Moved-line detectionBoth build on Git's --color-moved. Hunk honors diff.colorMoved from your Git config. | Yes | Yes |
| File sidebar you can jump fromdelta emits a linear stream, so navigation is whatever your pager offers. | Yes | No |
Hunk-by-hunk navigation across the whole changesetWith delta.navigate enabled, n/N jump the pager between files, and between commits in log -p. Hunk tracks a selected hunk that the rest of the UI reacts to. | Yes | Partly |
| Mouse: click, wheel, scrollbar, menusdelta leaves scrolling to your pager, which has no file list or clickable chrome. | Yes | Partly |
Change layout, wrapping, and theme mid-reviewdelta's options are fixed for the invocation, set in .gitconfig or on the command line. | Yes | No |
Expand unchanged context in placeMore context around a delta hunk means re-running the diff with a larger -U. | Yes | No |
| Watch mode that reloads the review | Yes | No |
| Inline agent and human annotations on a hunk | Yes | No |
Programmatic session control for coding agentshunk session lets an agent read and navigate the review you have open. | Yes | No |
Works as a Git pager (core.pager) | Yes | Yes |
| Works as a Git difftool | Yes | Yes |
Styles git blame and git grep outputHunk's pager mode opens the review UI for patches and falls back to a plain-text pager for everything else. | No | Yes |
| Native Jujutsu and Sapling supportdelta works wherever a VCS lets you set a pager. Hunk detects jj and Sapling workspaces and takes native revsets. | Yes | Partly |
| TypeScript extension API | Yes | No |
● yes · ◐ partly, see the note · ○ no
Questions people ask
Can I use Hunk and delta at the same time?
Yes. They sit in different slots. delta goes in core.pager and styles everything Git prints. Hunk is a command you run, hunk diff or hunk show, when you want to review. Nothing has to be uninstalled.
Is Hunk a drop-in replacement for delta?
Not quite. hunk pager covers the diff half: set it as core.pager and patch-like output opens in the review UI, while everything else falls through to your plain-text pager. Hunk does not style git blame or git grep, so keep delta if that output matters to you.
Does Hunk support side-by-side diffs like delta --side-by-side?
Yes, and it is the default on wide terminals. Hunk's auto layout picks split on wide terminals and stack on narrow ones. 1 forces split and 2 forces stack, at any point in the review.
Which is faster, Hunk or delta?
delta starts faster, and that is structural: it is a Rust stream filter doing one pass over text. Hunk builds a review model and mounts a terminal UI, which costs more up front and buys navigation, state, and annotations. The experimental hunk --fast offloads eligible syntax highlighting to cut that cost.
Does Hunk need configuration to be useful?
No. hunk diff works with no config file. You can save preferences on quit, and a repository can carry its own .hunk/config.toml, but none of that is required to start.
Sources
Claims about delta were checked against its own documentation in September 2026. If something here has gone stale, open an issue and it gets fixed.