Skip to content
vic

dlvhdr/diffnav

A git diff pager based on delta but with a file tree, à la GitHub.

dlvhdr/diffnav.json
{
"createdAt": "2024-09-18T14:41:16Z",
"defaultBranch": "main",
"description": "A git diff pager based on delta but with a file tree, à la GitHub.",
"fullName": "dlvhdr/diffnav",
"homepage": "",
"language": "Go",
"name": "diffnav",
"pushedAt": "2025-09-22T10:14:16Z",
"stargazersCount": 418,
"topics": [
"cli",
"delta",
"diff",
"git",
"github",
"golang",
"tui"
],
"updatedAt": "2025-11-25T09:51:47Z",
"url": "https://github.com/dlvhdr/diffnav"
}

A git diff pager based on delta but with a file tree, à la GitHub.

[!CAUTION] This is early in development, bugs are to be expected.

Feel free to open issues.

Demo

Homebrew:

Terminal window
brew install dlvhdr/formulae/diffnav

Go:

Terminal window
go install github.com/dlvhdr/diffnav@latest

[!NOTE] To get the icons to render properly you should download and install a Nerd font from https://www.nerdfonts.com/. Then, select that font as your font for the terminal.

You can install these with brew as well: brew install --cask font-<FONT NAME>-nerd-font

  • git diff | diffnav
  • gh pr diff https://github.com/dlvhdr/gh-dash/pull/447 | diffnav
Terminal window
git config --global pager.diff diffnav
KeyDescription
jNext file
kPrevious file
Ctrl-dScroll the diff down
Ctrl-uScroll the diff up
eToggle the file tree
tSearch/go-to file
yCopy file path
qQuit

diffnav uses:

Screenshots use: