MCPcopy Index your code
hub / github.com/dandavison/delta

github.com/dandavison/delta @0.19.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.19.2 ↗ · + Follow
1,087 symbols 2,723 edges 83 files 125 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

image

CI Coverage Status Gitter

Get Started

Install it (the package is called "git-delta" in most package managers, but the executable is just delta) and add this to your ~/.gitconfig:

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true  # use n and N to move between diff sections
    dark = true      # or light = true, or omit for auto-detection

[merge]
    conflictStyle = zdiff3

Or run:

git config --global core.pager delta
git config --global interactive.diffFilter 'delta --color-only'
git config --global delta.navigate true
git config --global delta.dark true  # or `delta.light true`, or omit for auto-detection
git config --global merge.conflictStyle zdiff3

Delta has many features and is very customizable; please see delta -h (short help) or delta --help (full manual), or the online user manual.

Features

  • Language syntax highlighting with the same syntax-highlighting themes as bat
  • Word-level diff highlighting using a Levenshtein edit inference algorithm
  • Side-by-side view with line-wrapping
  • Line numbering
  • n and N keybindings to move between files in large diffs, and between diffs in log -p views (--navigate)
  • Improved merge conflict display
  • Improved git blame display (syntax highlighting; --hyperlinks formats commits as links to hosting provider etc. Supported hosting providers are: GitHub, GitLab, SourceHut, Codeberg)
  • Syntax-highlights grep output from rg, git grep, grep, etc
  • Support for Git's --color-moved feature.
  • Code can be copied directly from the diff (-/+ markers are removed by default).
  • diff-highlight and diff-so-fancy emulation modes
  • Commit hashes can be formatted as terminal hyperlinks to the hosting provider page (--hyperlinks). File paths can also be formatted as hyperlinks for opening in your OS.
  • Stylable box/line decorations to draw attention to commit, file and hunk header sections.
  • Style strings (foreground color, background color, font attributes) are supported for >20 stylable elements, using the same color/style language as git
  • Handles traditional unified diff output in addition to git output
  • Automatic detection of light/dark terminal background

A syntax-highlighting pager for git, diff, and grep output

Code evolves, and we all spend time studying diffs. Delta aims to make this both efficient and enjoyable: it allows you to make extensive changes to the layout and styling of diffs, as well as allowing you to stay arbitrarily close to the default git/diff output.

image delta with line-numbers activated
image delta with side-by-side and line-numbers activated

Here's what git show can look like with git configured to use delta:

image image
"Dracula" theme "GitHub" theme

Syntax-highlighting themes

All the syntax-highlighting color themes that are available with bat are available with delta:

image image
delta --show-syntax-themes --dark delta --show-syntax-themes --light

Side-by-side view

[User manual]

[delta]
    side-by-side = true

By default, side-by-side view has line-numbers activated, and has syntax highlighting in both the left and right panels: [config]

image

Side-by-side view wraps long lines automatically:

image

Line numbers

[User manual]

[delta]
    line-numbers = true
image

Merge conflicts

[User manual]

image

Git blame

[User manual]

image

Ripgrep, git grep

[User manual]

image

Installation and usage

Please see the user manual and delta --help.

Maintainers

Extension points exported contracts — how you extend this code

GetOptionValue (Interface)
(no doc) [5 implementers]
src/options/get.rs
GitConfigGet (Interface)
(no doc) [5 implementers]
src/git_config/mod.rs
CenterRightNumbers (Interface)
(no doc) [4 implementers]
src/format.rs
ProcActions (Interface)
(no doc) [2 implementers]
src/utils/process.rs
ProcessInterface (Interface)
(no doc) [2 implementers]
src/utils/process.rs
FromAnsiTermStyle (Interface)
(no doc) [2 implementers]
src/utils/syntect.rs
FromAnsiTermColor (Interface)
(no doc) [1 implementers]
src/utils/syntect.rs
FromDeltaStyle (Interface)
(no doc) [1 implementers]
src/utils/syntect.rs

Core symbols most depended-on inside this repo

clone
called by 79
src/git_config/mod.rs
strip_ansi_codes
called by 57
src/ansi/mod.rs
next
called by 46
src/ansi/iterator.rs
git_config
called by 42
src/cli.rs
get
called by 33
src/utils/process.rs
fatal
called by 31
src/main.rs
paint
called by 27
src/style.rs
style_from_str
called by 24
src/parse_styles.rs

Shape

Function 747
Method 241
Enum 46
Class 45
Interface 8

Languages

Rust100%

Modules by API surface

src/tests/test_example_diffs.rs128 symbols
src/utils/process.rs58 symbols
src/edits.rs42 symbols
src/paint.rs38 symbols
src/tests/integration_test_utils.rs36 symbols
src/features/line_numbers.rs36 symbols
src/wrapping.rs34 symbols
src/handlers/diff_header.rs34 symbols
src/handlers/grep.rs33 symbols
src/handlers/hunk_header.rs30 symbols
src/align.rs30 symbols
src/features/side_by_side.rs27 symbols

For agents

$ claude mcp add delta \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact