What It Is
diff-so-fancy is a terminal tool for prettier diff output. It makes Git and regular diff output easier for humans to read.
The idea is simple: review quality depends not only on code, but also on how quickly the eye understands a change. Standard diff is accurate, but not always pleasant.
What Is Inside
The project is written in Perl and distributed as a script with a supporting library directory. It can be installed through Homebrew, npm, Linux packages, or manually from a release.
diff-so-fancy adjusts headers, hunk indicators, empty lines, rulers, and other details so the output feels calmer and more structured.
How People Use It
Most users connect it as a Git pager. After that, normal `git diff` and interactive operations show the improved output.
It is useful for developers who inspect changes in the terminal before committing, during review, while comparing branches, or when reading someone else’s patch.
Example
The commands configure Git so diff-so-fancy processes normal diff output and interactive diff filtering.
Git Setup
The example makes diff-so-fancy the default processor for Git diff output.
git config --global core.pager "diff-so-fancy | less --tabs=4 -RF"
git config --global interactive.diffFilter "diff-so-fancy --patch"
Strengths And Limits
diff-so-fancy’s strength is a small change with daily impact. It does not change Git behavior; it makes changes easier to read.
The limitation is taste. Some teams prefer fully standard diff output, especially in documentation or when teaching newcomers.
Project Context
diff-so-fancy is maintained in the so-fancy/diff-so-fancy repository; its public project history starts on 2016-02-04. GitHub reports the primary language as Perl, and the license as MIT.
For a catalog page, this context matters because the reader sees a real project with an owner, license, technical base, and public change history rather than an abstract name.