macOS
brew install ydifflocal Homebrew formula metadata
sudo port install ydiffMacPorts ports tree · textproc/ydiff/Portfile · source: api.github.com
brew
View colored diff with side by side and auto pager support. Version 1.5 via Homebrew; verified from local package data.
install
brew install ydifflocal Homebrew formula metadata
sudo port install ydiffMacPorts ports tree · textproc/ydiff/Portfile · source: api.github.com
sudo apt install python3-cdiffDebian stable package indexes · python3-cdiff · source: deb.debian.org
sudo dnf install python3-ydiffFedora Rawhide package metadata · python3-ydiff · source: dl.fedoraproject.org
nix profile install nixpkgs#ydiffnixpkgs package indexes · ydiff · source: raw.githubusercontent.com
overview
View colored diff with side by side and auto pager support
history
Ydiff is a terminal diff viewer for colored, incremental diffs from version-control workspaces or stdin. It is best known for side-by-side display, automatic pager use, and a single-file Python implementation with no external Python dependencies.
The GitHub repository was created on 2013-01-29, and the changelog begins with early PyPI-era releases in February 2013 under the original `cdiff` name. Within weeks it gained support for patch files, pipes, revision-control output, two-file comparison, color control, logs, and more robust diff parsing.
During 2013 and 2014, the project moved from a small colored-diff helper into a workspace-oriented reviewer: it added Git/SVN/Hg log handling, automatic terminal-width behavior, pager tuning, Python 3.4 support, and fixes for difficult unified diffs.
The 2018 1.1 release renamed the command from `cdiff` to `ydiff` to avoid a binary-name conflict on major distributions. Later releases added Perforce and Windows support, wide-character handling, word-level change blocks, default side-by-side behavior, and customizable themes.
Ydiff adopted well for a small terminal tool because it solved a common packaging pain point: colorful side-by-side diffs without a GUI and without a heavy dependency stack. Its README documents installation from source, PyPI, Homebrew, Fedora, and FreeBSD.
Distribution adoption is visible in Homebrew, Fedora, FreeBSD/OpenBSD, Debian-derived package naming, and Nix-style package indexes. The rename from cdiff to ydiff is especially package-nerd relevant because it was driven by command-name collision management across distributions.
Users run `ydiff` inside Git, Mercurial, Perforce, or Subversion workspaces to view current changes, staged Git changes via passed-through options such as `--cached`, or revision logs via `-l`. It can also consume `git show`, `git log -p`, `svn diff`, `diff -u`, directory diffs, and GitHub pull-request `.diff` URLs from stdin.
The practical attraction is that ydiff wraps ordinary unified diffs with readable terminal presentation: side-by-side or unified layout, automatic width detection, line wrapping controls, pager selection, themes, color modes, and safe redirection back to patch files.
Ydiff is a neat package-manager case study because almost all of its value ships as one Python command. Packaging it is mostly about naming, executable placement, and keeping terminal behavior consistent across Unix-like systems.
The cdiff-to-ydiff rename captures a real packaging concern: a project can be technically simple and still need an upstream identity change once distribution command namespaces collide.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
ydiff | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/ymattw/ydiff
install metadata
| Package key | brew:ydiff |
|---|---|
| Version | 1.5 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/ydiff |
| Homepage | https://github.com/ymattw/ydiff |
| Repository | https://github.com/ymattw/ydiff |
| Upstream docs | https://github.com/ymattw/ydiff#readme |
| License | BSD-3-Clause |
| Source archive | https://files.pythonhosted.org/packages/25/08/93b7e744645d94ae2f5dcddbbd2cfd5ec1420768994987a21a10b226be86/ydiff-1.5.tar.gz |
| Dependencies | python@3.14 |
| Bottle | available (on all) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | ydiff |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
python3-cdiff 1.4.2-1
Colored, incremental diff (transitional package)
sudo apt install python3-cdiffpython3-ydiff 1.4.2-1
Colored, incremental diff with side by side and auto pager support (Python 3)
sudo apt install python3-ydiffydiff
nix profile install nixpkgs#ydiffpython3-ydiff 1.5-8.fc45
View colored, incremental diff
https://github.com/ymattw/ydiff
sudo dnf install python3-ydiffydiff 1.5-8.fc45
View colored, incremental diff
https://github.com/ymattw/ydiff
sudo dnf install ydiffydiff
sudo port install ydiffsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.