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.

Checked against each project's own docs in September 2026Read as Markdown

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, and git log styled 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.

Keep delta as the pager, add Hunk as the review step
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 editing

Hunk 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.

Hunk compared with delta, capability by capability
CapabilityHunkdelta
Syntax highlightingYesYes
ThemesHunk ships 65 bundled themes and takes custom ones. delta pairs bat syntax themes with its own collection, browsable via delta --show-themes.YesYes
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.YesYes
Word-level highlighting inside a changed lineYesYes
Moved-line detectionBoth build on Git's --color-moved. Hunk honors diff.colorMoved from your Git config.YesYes
File sidebar you can jump fromdelta emits a linear stream, so navigation is whatever your pager offers.YesNo
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.YesPartly
Mouse: click, wheel, scrollbar, menusdelta leaves scrolling to your pager, which has no file list or clickable chrome.YesPartly
Change layout, wrapping, and theme mid-reviewdelta's options are fixed for the invocation, set in .gitconfig or on the command line.YesNo
Expand unchanged context in placeMore context around a delta hunk means re-running the diff with a larger -U.YesNo
Watch mode that reloads the reviewYesNo
Inline agent and human annotations on a hunkYesNo
Programmatic session control for coding agentshunk session lets an agent read and navigate the review you have open.YesNo
Works as a Git pager (core.pager)YesYes
Works as a Git difftoolYesYes
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.NoYes
Native Jujutsu and Sapling supportdelta works wherever a VCS lets you set a pager. Hunk detects jj and Sapling workspaces and takes native revsets.YesPartly
TypeScript extension APIYesNo

● 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.

Other comparisons

Try Hunk on your next changeset.