# Install yq with Homebrew, chocolatey, apt, dnf, MacPorts, Nix, pacman, scoop, winget, zypper

Process YAML, JSON, XML, CSV and properties documents from the CLI. Version 4.53.3 via Homebrew; verified 2026-06-07.

## Install

```sh
sudo av install brew:yq
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install yq
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install yq
```

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

### Linux

- Debian apt (92%):

```sh
sudo apt install yq
```

  Evidence: Debian stable package indexes: yq from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install yq
```

  Evidence: Fedora Rawhide package metadata: yq from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#yq
```

  Evidence: nixpkgs package indexes: yq from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S yq
```

  Evidence: Arch Linux sync databases: yq from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install yq
```

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

### Windows

- Chocolatey (92%):

```sh
choco install yq
```

  Evidence: Chocolatey community package catalog: yq from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','wiztree'

- Scoop (92%):

```sh
scoop install main/yq
```

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

- winget (92%):

```sh
winget install --id MikeFarah.yq -e
```

  Evidence: Windows Package Manager source index: MikeFarah.yq from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:yq
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/yq>
- **Version:** 4.53.3
- **Source summary:** Process YAML, JSON, XML, CSV and properties documents from the CLI
- **Homepage:** <https://github.com/mikefarah/yq>
- **Repository:** <https://github.com/mikefarah/yq>
- **Upstream docs:** <https://github.com/mikefarah/yq#readme>
- **License:** MIT
- **Source archive:** <https://github.com/mikefarah/yq/archive/refs/tags/v4.53.3.tar.gz>
- **Last updated:** 2026-06-07T02:03:08Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- yq (cli)
- yq (alias)

## Build dependencies

- go
- pandoc

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 4.53.3
- Package-manager updated: 2026-06-07
- Local data: ok
- Upstream repository: https://github.com/mikefarah/yq
- Upstream latest detected: v4.53.3 (current)
## Project history and usage

Mike Farah’s yq is a portable Go command-line processor for YAML and neighboring structured formats, best understood as the “jq-shaped” tool package users reach for when sed, awk, or ad hoc Python would be too brittle for configuration files.

### Project history

The mikefarah/yq repository was created in 2015 and grew out of a very practical niche: manipulating YAML from shell scripts. Older v3 documentation described the goal as being the jq or sed of YAML files; the modern README broadens that into a lightweight processor for YAML, JSON, INI, XML, TOML, properties, CSV, and TSV while retaining jq-like expression syntax.

The v4 line became the modern identity of the project: a dependency-free Go binary, installable through package managers or containers, with a richer expression language for reading, updating, merging, converting, and editing files in place. That v3-to-v4 split is historically important because many examples, packages, and user questions distinguish Mike Farah’s yq from both older yq syntax and the separate kislyuk/yq wrapper around jq.

### Adoption history

Adoption followed the rise of YAML-heavy infrastructure work: Kubernetes manifests, CI configuration, GitHub Actions workflows, Helm and Kustomize adjunct scripts, and release automation. The project documents Homebrew, snap, Docker/Podman, GitHub Action, and direct binary installation, and its repository badges track Docker pulls and GitHub release downloads.

The tool also became popular enough to create name-collision folklore: multiple unrelated tools are called yq, and users often have to verify whether their package manager installed Mike Farah’s Go implementation, kislyuk’s Python/jq wrapper, or an older major version.

### How it is used

Typical usage is one-liner data surgery: read nested fields, update YAML in place, inject environment variables, merge files, convert YAML to JSON or XML to YAML, and compose expressions in CI scripts. Package users value that yq ships as a static-style Go binary, so it works well in minimal containers and build agents.

In package-nerd workflows, yq often sits next to jq: jq remains the canonical JSON processor, while yq handles the messy real-world files that package manifests, deployment descriptors, and CI systems store in YAML or adjacent formats.

### Why package nerds care

yq is one of the canonical examples of a small CLI becoming infrastructure glue. It saves package maintainers from writing custom parsers for YAML edits, and its availability across Homebrew, Linux distributions, Windows package managers, containers, and GitHub Actions makes it a dependable assumption in cross-platform scripts.

Its significance is also social: when someone says “install yq,” package nerds immediately ask which yq and which major version. That ambiguity is part of the package’s history.

### Timeline

- 2015-09-26: The mikefarah/yq GitHub repository is created.
- 2019-2020: v3 documentation describes yq as a lightweight portable YAML processor aiming to be the jq or sed of YAML files.
- 2021: The v4 release line is active, with GitHub releases such as v4.9.0 and v4.10.0 published in May and July 2021.
- 2020s: The project expands its documented format support beyond YAML and JSON to XML, INI, properties, CSV, TSV, TOML, and related structured data.

### Related projects

- Related projects include jq, kislyuk/yq, gojq, dasel, Kubernetes, Helm, Kustomize, GitHub Actions, Docker, and Podman.

### Sources

- <https://api.github.com/repos/mikefarah/yq>
- <https://github.com/mikefarah/yq>
- <https://hub.docker.com/r/mikefarah/yq>
- <https://mikefarah.gitbook.io/yq>
- <https://mikefarah.gitbook.io/yq/usage/github-action>
- <https://mikefarah.gitbook.io/yq/v3.x>


## Security Notes

narrow executable package without higher-risk signals.

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

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** yq
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Conflicts With:** python-yq
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - yq - 3.4.3-2: normalized package name match | Debian stable package indexes: yq from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Command-line YAML processor - jq wrapper for YAML documents | https://github.com/kislyuk/yq
- Nix - yq: normalized package name match | nixpkgs package indexes: yq from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - yq - 3.1.0-3: normalized package name match | Ubuntu 24.04 LTS package indexes: yq from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Command-line YAML processor - jq wrapper for YAML documents | https://github.com/kislyuk/yq
- dnf - yq - 4.47.1-5.fc44: normalized package name match | Fedora Rawhide package metadata: yq from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor | https://github.com/mikefarah/yq
- pacman - yq - 3.4.3-3: normalized package name match | Arch Linux sync databases: yq from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents | https://github.com/kislyuk/yq
- zypper - yq - 4.53.2-2.1: normalized package name match | openSUSE Tumbleweed package metadata: yq from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A portable command-line YAML processor | https://github.com/mikefarah/yq
- zypper - yq-bash-completion - 4.53.2-2.1: normalized package name match | openSUSE Tumbleweed package metadata: yq-bash-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Bash Completion for yq | https://github.com/mikefarah/yq
- zypper - yq-fish-completion - 4.53.2-2.1: normalized package name match | openSUSE Tumbleweed package metadata: yq-fish-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Fish Completion for yq | https://github.com/mikefarah/yq
- zypper - yq-zsh-completion - 4.53.2-2.1: normalized package name match | openSUSE Tumbleweed package metadata: yq-zsh-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Zsh Completion for yq | https://github.com/mikefarah/yq
- MacPorts - yq: normalized package name match | MacPorts ports tree: textproc/yq/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - yq: normalized package name match | Chocolatey community package catalog: yq from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','wiztree'
- Scoop - main/yq: normalized package name match | Scoop official bucket manifest trees: bucket/yq.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - MikeFarah.yq: normalized package name match | Windows Package Manager source index: MikeFarah.yq from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [pandoc](https://www.automicvault.com/pkg/brew/pandoc/) - Build dependency declared by Homebrew.
- [dasel](https://www.automicvault.com/pkg/brew/dasel/) - Shares av.db curated category or tags: cli, csv, data-processing, developer-tools, json.
- [python-yq](https://www.automicvault.com/pkg/brew/python-yq/) - Shares av.db curated category or tags: cli, data-processing, developer-tools, json, toml.
- [gron](https://www.automicvault.com/pkg/brew/gron/) - Shares av.db curated category or tags: cli, data-processing, developer-tools, json.
- [jaq](https://www.automicvault.com/pkg/brew/jaq/) - Shares av.db curated category or tags: cli, data-processing, developer-tools, json.
- [otree](https://www.automicvault.com/pkg/brew/otree/) - Shares av.db curated category or tags: cli, developer-tools, json, toml, xml.
- [config-file-validator](https://www.automicvault.com/pkg/brew/config-file-validator/) - Shares av.db curated category or tags: cli, developer-tools, json, toml, yaml.
- [jsongrep](https://www.automicvault.com/pkg/brew/jsongrep/) - Shares av.db curated category or tags: cli, developer-tools, json, toml, yaml.
- [oq](https://www.automicvault.com/pkg/brew/oq/) - Shares av.db curated category or tags: cli, data-processing, developer-tools, json.

## Combined YAML source

View the package source record on GitHub. [combined/yq.yml](https://github.com/automic-vault/db/blob/main/combined/yq.yml)


## Sources

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