# Install dyff with Homebrew, MacPorts, Nix, zypper, scoop

Diff tool for YAML files, and sometimes JSON. Version 1.12.0 via Homebrew; verified 2026-07-29. Also installable with nix: nix profile install nixpkgs#dyff.

## Install

```sh
sudo av install brew:dyff
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install dyff
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install dyff
```

  Evidence: MacPorts ports tree: textproc/dyff/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#dyff
```

  Evidence: nixpkgs package indexes: pkgs/by-name/dy/dyff/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install dyff
```

  Evidence: openSUSE Tumbleweed package metadata: dyff from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/dyff
```

  Evidence: Scoop official bucket manifest trees: bucket/dyff.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:dyff
- **Package manager:** Homebrew
- **Version:** 1.12.0
- **Source summary:** Diff tool for YAML files, and sometimes JSON
- **Homepage:** <https://github.com/homeport/dyff>
- **Repository:** <https://github.com/homeport/dyff>
- **Last updated:** 2026-07-29T17:00:36+09:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- dyff (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.12.0
## Project history and usage

dyff is Homeport's diff tool for YAML files and sometimes JSON. Its official README says it was inspired by old BOSH v1 deployment output that reported only the changed parts of YAML from one version to another.

### Project history

The official git history starts on 2018-03-09, with early commits adding Cobra-generated command structure and, by 2018-03-11, json, yaml, and between subcommands. Tags begin with v0.1-alpha in April 2018 and continue through v1.12.0 in April 2026.

### Adoption history

dyff spread through infrastructure and configuration workflows rather than general prose diffing. Its README documents FreeBSD ports/packages, Homebrew tap installation, mise, MacPorts, GitHub release binaries, a curl installer, and go install; the batch input also lists Homebrew, MacPorts, Nix, Scoop, and zypper.

### How it is used

dyff compares local files, remote URIs, or stdin; reports differences by YAML document location; can use Spruce dot-style paths or go-patch path syntax; converts YAML and JSON; preserves map order; and can be wired into kubectl diff or Git external diff commands.

### Why package nerds care

dyff is package-nerd relevant because modern infrastructure is YAML-heavy and ordinary line diff is often noisy for structured config. It packages the BOSH/Cloud Foundry style of semantic manifest comparison into a standalone CLI that also fits Kubernetes, Git, CI, and cross-platform binary distribution.

### Timeline

- 2018: Initial git commit and alpha tags.
- 2018: Early subcommands for JSON conversion, YAML conversion, and file comparison land in the official repository.
- 2026: v1.12.0 tagged on 2026-04-26.

### Related projects

- The official README names BOSH v1 as the inspiration and references Spruce path syntax, go-patch paths, kubectl diff integration, cf-deployment examples, Git external diff usage, jq pipelines, and Go installation.

### Sources

- <https://github.com/homeport/dyff#readme>
- <https://github.com/homeport/dyff/blob/main/.docs/commands/dyff.md>
- <https://github.com/homeport/dyff>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Other Package-Manager Records

- Nix - dyff: normalized package name match | nixpkgs package indexes: pkgs/by-name/dy/dyff/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- zypper - dyff - 1.12.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: dyff from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Diff tool for YAML files, and sometimes JSON | https://github.com/homeport/dyff
- MacPorts - dyff: normalized package name match | MacPorts ports tree: textproc/dyff/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/dyff: normalized package name match | Scoop official bucket manifest trees: bucket/dyff.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/dyff.yml](https://github.com/mxcl/pkgdb/blob/main/combined/dyff.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
