
3k stars · Apache-2.0 · v4.4.5 (2026-10-11) · Track this in Scout
A wrapper that lets `jq` read and write YAML, XML and TOML as well as JSON.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It converts the input document to JSON, runs your jq expression over it, and converts the result back. Three commands are installed: yq for YAML, xq for XML and tomlq for TOML. The jq expression syntax is unchanged, so anything you already know works. By default it prints JSON; -y prints YAML and -t prints TOML, which is what you want when editing a file in place rather than reading from it. It handles multi-document YAML files, the kind with --- between sections, and it preserves comments and key order on round trips when you ask it to. Because it is a thin layer, every jq feature is available, including functions, variables and --arg. It needs jq installed separately and it is a Python program, so starting it is slower than starting a compiled tool. It does not implement a query language of its own.
Why it matters
Who it suits. Anyone who already uses jq and keeps hitting YAML files — container definitions, continuous integration configuration, infrastructure descriptions. The appeal is not learning anything new. Skip it if you have never used jq, because then you are learning a query language anyway and the compiled alternative below is the better place to start.
Verdict. Two minutes to install, and then it quietly removes a daily annoyance, which is why it is one of today's three. The decision is between this and mikefarah/yq, which Edition 41 covered, and the rule is simple. If you already know jq and want exactly that syntax, this one. If you want a single compiled program with no dependencies and do not mind a dialect that is close to jq but not identical, that one — and it is the better choice inside a container image, where a Python runtime and a separate jq are two installs you did not want. Version 4.3.0 landed on 26 September 2026 and code was pushed on 11 July 2026. With 2,963 stars against the other one's 15.9k it is the quieter option, and the difference is distribution rather than quality.
- Real
jqsyntax, not an imitation. Everything you know transfers. - Three commands for YAML, XML and TOML, with one mental model.
- Round-trips back to YAML or TOML, so it edits files as well as reading them.
- Needs
jqinstalled separately. Two things to get onto a machine instead of one. - A Python program, so each invocation starts slower. Noticeable inside a loop.
- Quieter project and fewer examples online than the compiled alternative.
mikefarah/yqA single compiled program for YAML, JSON, XML, CSV and TOML with no dependencies, using a syntax close to jq but its own; the better fit inside a container image. Covered in Edition 41.
Track this in Scout- jqlang/jq
The JSON processor this wraps, and the reason the syntax is worth learning once.
Track this in Scout
TomWright/daselCovers more formats with one selector language of its own design, rather than reusing jq.
Track this in Scout
# macOS brew install jq # Debian or Ubuntu sudo apt install jq
