DE

Delta

Syntax-highlighting pager for git and diff output

Developer Tools & Git ★ 32.3k stars Easy setup MIT

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