Delta
Syntax-highlighting pager for git and diff output
Delta is a command-line tool that improves the display of git, diff and grep output with syntax highlighting, side-by-side views and better navigation. It runs locally as a single binary.
Key features
- Syntax-highlighted diffs
- Side-by-side view
- Git pager integration
- Line numbers and themes
Pros & cons
Strengths
- Rich syntax highlighting
- Side-by-side view
- Single Rust binary
Trade-offs
- Configuration can be involved
- Diff display only
Delta replaces
Last reviewed Aug 26, 2026 · 779 words
Twelve lines in ~/.gitconfig and every git diff, git log -p, git show and git blame on the machine becomes syntax-highlighted, line-numbered and, if you want, side by side. That is Delta, a single Rust binary that sits in the pager slot git already has, and the config below is 90% of everything you will ever set:
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
side-by-side = true
line-numbers = true
[merge]
conflictStyle = zdiff3
[diff]
colorMoved = default
Install it as git-delta from most distro repositories, brew install git-delta on macOS, or cargo install git-delta. There is no server, no daemon and nothing to back up, which is why this guide is about where it fits rather than how to deploy it.
It is a pager, so it changes nothing about git
Delta reads diff output on stdin and writes prettier diff output on stdout. It does not alter commits, rewrite history or touch the repository. If it is missing on a machine, git falls back to less and you get the plain diff you had before. That makes it the safest quality-of-life change on this whole site: nothing that depends on the change can break, because nothing depends on it. The diffFilter line matters more than it looks; without it, git add -p shows raw diffs with escape codes because the interactive hunk selector needs colour-only output.
Side-by-side earns its screen width, until it doesn't
The side-by-side view is the reason most people install Delta and the reason some uninstall it. On a wide terminal it is excellent for reviewing a refactor, because moved code (with colorMoved = default) shows in a distinct colour instead of as a delete plus an add. On a laptop at 120 columns, long lines wrap in both panes and the view becomes harder to read than unified. Delta supports per-invocation overrides, so my working setup is unified by default with an alias:
[alias]
dss = -c delta.side-by-side=true diff
Then git dss for the wide-screen review and plain git diff on the train. The navigate = true setting is the other one to keep: n and N jump between files inside the pager, which is what makes reading a 40-file diff tolerable.
Themes come from bat, and the one that breaks is the default
Delta borrows syntax definitions and colour themes from bat, so any theme bat --list-themes shows works with syntax-theme = Dracula or similar under [delta]. The trap is dark-versus-light detection. Delta cannot reliably know your terminal background, and its default assumes dark; on a light terminal you get grey-on-white diffs and conclude the tool is broken. Set light = true in the [delta] section, or dark = true explicitly if you use both and switch by exporting DELTA_FEATURES. That one setting accounts for most of the "configuration can be involved" complaints in the catalogue entry.
Where it sits in a self-hoster's stack
Delta pairs with two other single-binary Rust tools on this site. Lazygit will use Delta as its diff pager with git.paging.pager: delta --dark --paging=never in its config, which turns a good TUI into the best local code review experience I have used. Atuin does for shell history what Delta does for diffs: replace a 1990s default with a searchable one and keep the rest of the workflow untouched. Both belong in the same dotfiles repository.
It also takes diff and grep output directly. delta old.conf new.conf compares two files outside git, and rg --json pattern | delta turns ripgrep results into highlighted context. That is the whole of what it does; the catalogue's "diff display only" is accurate and not a criticism.
What it is not: a merge tool, a code review server or a replacement for the diff views in Forgejo or Gitea. Those render diffs in a browser for other people. Delta renders them in your terminal for you.
What I'd do
Put the 12-line block above into the gitconfig that lives in your dotfiles repo, add light = true if your terminal is light, and forget about it. Use the alias for side-by-side rather than the global setting. Point Lazygit at it if you use Lazygit. Total time invested is about 10 minutes, the RAM cost rounds to zero, and every diff you read for the rest of your career is easier. Among developer tools worth installing on a new machine before anything else, Delta is in the first 5.
Similar developer tools & git apps
Excalidraw
Developer Tools & GitVirtual hand-drawn style whiteboard
Replaces Miro
lazygit
Developer Tools & GitSimple terminal UI for Git commands
Replaces GitKraken, Sourcetree
Hoppscotch
Developer Tools & GitOpen-source API development ecosystem
Replaces Postman, Insomnia
json-server
Developer Tools & GitFull fake REST API from a JSON file in seconds
Replaces Mockoon, Postman Mock
Strapi
Developer Tools & GitLeading open-source headless CMS
Replaces Contentful
NocoDB
Developer Tools & GitOpen-source Airtable alternative
Replaces Airtable