Automic VaultAutomic Vault

brew

Install ydiff with Homebrew, apt, dnf, MacPorts, Nix

View colored diff with side by side and auto pager support. Version 1.5 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install ydiff

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install ydiff

MacPorts ports tree · textproc/ydiff/Portfile · source: api.github.com

overview

Package summary

View colored diff with side by side and auto pager support

Commands and aliases

  • ydiff

history

Project history and usage

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.

Project history

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.

Adoption history

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.

How it is used

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.

Why package nerds care

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.

Timeline

  • 2013-01-29: The ymattw/ydiff repository is created.
  • 2013-02-04: Early PyPI-oriented changelog entries appear for cdiff.
  • 2013-02-18: The changelog adds log-reading support for SVN and Mercurial patch logs.
  • 2014-06-04: Python 3.4 support appears in the changelog.
  • 2018-06-05: The project is renamed from cdiff to ydiff to avoid binary-name conflicts on major distributions.
  • 2020-08-08: Perforce workspace and pager-customization support are added.
  • 2024-11-13: Word-level change blocks and theme selection land in the 1.4 line.
  • 2025-12-06: The changelog records INI-based custom themes and source/wheel publication changes.

Related projects

  • Related tools include cdiff, colordiff, diff, git diff, git show, git log -p, svn diff, hg log -p, Perforce diff tooling, icdiff, delta, diff-so-fancy, less, patchutils, and terminal pager workflows.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 1 platform targets.
  • Installs with 1 runtime dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
ydiffcliglobal executable

freshness

Version and 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.

page generated2026-07-08
manager version1.5
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://github.com/ymattw/ydiff

  • infoNo package-manager update timestamp was available.low confidence
  • infoNo cached GitHub release or tag data was available.https://github.com/ymattw/ydiffnone confidence

install metadata

Package metadata

Package keybrew:ydiff
Version1.5
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/ydiff
Homepagehttps://github.com/ymattw/ydiff
Repositoryhttps://github.com/ymattw/ydiff
Upstream docshttps://github.com/ymattw/ydiff#readme
LicenseBSD-3-Clause
Source archivehttps://files.pythonhosted.org/packages/25/08/93b7e744645d94ae2f5dcddbbd2cfd5ec1420768994987a21a10b226be86/ydiff-1.5.tar.gz
Dependenciespython@3.14
Bottleavailable (on all)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameydiff
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

python3-cdiff 1.4.2-1

Colored, incremental diff (transitional package)

sudo apt install python3-cdiff
  • Section: python
  • Architecture: all
  • Source Package: ydiff
  • 1 dependencies
  • normalized package name match
  • Matched by: Ydiff
Debian stable package indexes · deb.debian.org · Debian stable package indexes: python3-cdiff from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Debian apt95%

python3-ydiff 1.4.2-1

Colored, incremental diff with side by side and auto pager support (Python 3)

sudo apt install python3-ydiff
  • Section: python
  • Architecture: all
  • Source Package: ydiff
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Ydiff
Debian stable package indexes · deb.debian.org · Debian stable package indexes: python3-ydiff from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

ydiff

nix profile install nixpkgs#ydiff
  • normalized package name match
  • Matched by: Ydiff
nixpkgs package indexes · raw.githubusercontent.com · nixpkgs package indexes: ydiff from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
dnf95%

python3-ydiff 1.5-8.fc45

View colored, incremental diff

https://github.com/ymattw/ydiff

sudo dnf install python3-ydiff
  • License: BSD-3-Clause
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: ydiff
  • 1 dependencies
  • 5 provides
  • normalized package name match
  • Matched by: Ydiff
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: python3-ydiff from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf95%

ydiff 1.5-8.fc45

View colored, incremental diff

https://github.com/ymattw/ydiff

sudo dnf install ydiff
  • License: BSD-3-Clause
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: ydiff
  • 3 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Ydiff
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: ydiff from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
MacPorts95%

ydiff

sudo port install ydiff
  • normalized package name match
  • Matched by: Ydiff
MacPorts ports tree · api.github.com · MacPorts ports tree: textproc/ydiff/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment