NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2290 most downloaded on PyPI
Command-line YAML/XML processor - jq wrapper for YAML/XML documents
Last release 7 days ago
27 Sep 2026
Ships unpredictably
gaps range from 8 days to 2.2 years
Nearly every release is documented
notes for 54 of 55 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
55 releases · first in 2016
Avoid quadratic performance on YAML comment roundtripping
Avoid quadratic performance on YAML comment roundtripping
Implement document streaming
Reuse filehandle for in-place editing to avoid file substitution race
Miscellaneous argument parsing fixes
Miscellaneous small performance fixes
Guard YAML merge expansion during document construction
One column per quarter.
Add YAML frontmatter processing with body passthrough
Fix yq –version
Fix yq –version
xq: support --xml-short-empty-elements to emit self-closing elements instead of the long form
Implement YAML comment roundtripping
Implement TOML comment roundtripping (tomlq -T)
Finish migration to setuptools_scm
Finish migration to setuptools_scm
Constrain setuptools_scm version
Constrain setuptools_scm version
Add module entry points for xq and tomlq
yq -y: Induce quoting of string scalars that start with 08 and 09
Revert "Do not interpret characters that cannot be parsed in octal as int ( #176 )"
Revert "Do not interpret characters that cannot be parsed in octal as int (#176)"
tomlq: Use tomllib on Python 3.11 when not round-tripping
tomlq: Use tomllib on Python 3.11 when not round-tripping
xq: Support in-place XML editing
Do not interpret characters that cannot be parsed in octal as int (#176)
test.py: use valid values for jsonargs. Fixes #172
test.py: use valid values for jsonargs. Fixes #172
Allow editing toml in place (#171)
Documentation improvements
Allow XML documents to be streamed with --xml-item-depth
Relax tomlkit dependency version range to preserve Python 3.6 compatibility
Documentation and release infrastructure improvements
Use tomlkit instead of toml
Add security policy
Documentation and release infrastructure improvements
Handle TOML datetimes. Fixes #160
Handle TOML datetimes. Fixes #160
Use configurable output grammar, compatible with YAML 1.1
Expand merge keys (https://yaml.org/type/merge.html). This is a YAML 1.1 specific behavior, but will be accommodated in yq due to its widespread use a
yq now uses the YAML 1.2 grammar when parsing and rendering YAML documents. This means bare literals like “on”, “no”, and “12:34:56” are interpreted a
Support binary and set tags. Fixes #140
Armor against entity expansion attacks
Armor against entity expansion attacks
Improve YAML loading performance by using CSafeLoader where available
Require PyYAML 5.3.1 or newer
Test and release infrastructure improvements
- Handle -n correctly
Handle -n correctly
Do not close fds on child process
Add TOML support and the tomlq CLI utility to access it
Add TOML support and the tomlq CLI utility to access it
Parse correctly when empty string is passed as jq_filter
Parse correctly when empty string is passed as jq_filter
Better handling of jq_filter and files arguments
Better handling of jq_filter and files arguments (#102)
Add support for xmltodict force_list definition for xq CLI
Add support for xmltodict force_list definition for xq CLI (#95)
Support explicit doc markers (#93)
Ensure proper ordering of help messages (#90)
Add support for in-place editing (yq -yi)
Add support for in-place editing (yq -yi)
Add argcomplete integration
Docs: Migrate from RTD to gh-pages
- Fix interrupted release
Fix interrupted release
Filter out -C and separate commingled yq and jq short options
Set default block sequence indentation to 2 spaces, --indentless for 0
Set default block sequence indentation to 2 spaces, --indentless for 0
Make main body of yq callable as a library function
Test and release infrastructure updates
Support options introduced in jq 1.6. Fixes #46
Support options introduced in jq 1.6. Fixes #46
xq: Introduce --xml-dtd and --xml-root. Fixes #37.
xq: Introduce --xml-dtd and --xml-root. Fixes #37.
TOML support with the tq executable entry point.
TOML support with the tq executable entry point.
Disallow argparse abbreviated options. Fixes #38 on Python 3.5+.
Now available in Homebrew as python-yq.
Packaging: Replace scripts with entry-points
Packaging: Replace scripts with entry-points
Parse unrecognized tags instead of dropping them. Fixes #23
Ignore unrecognized YAML tags instead of crashing
Ignore unrecognized YAML tags instead of crashing
Explicitly disable XML entity expansion and mention in docs
xq -x: Raise understandable error on non-dict conversion failure
Support XML parsing with xmltodict
Fix for the --from-file/-f argument: Re-route jq_filter to files when using --from-file. Fixes #19.
Parse and pass multiple positional-consuming jq args
Support jq arguments that consume subsequent positionals (such as --arg k v) (#16).
Support bare YAML dates and times. Fixes #10
Avoid buffering all input docs in memory with no -y
Avoid buffering all input docs in memory with no -y
- Fix test suite on Python 3
Fix test suite on Python 3
Add support for multiple yaml files in arguments. Thanks to @bubbleattic (PR #7)
Handle multi-document streams. Fixes #6
Handle multi-document streams. Fixes #6
Stringify datetimes loaded from YAML. Fixes #5
Fix ResourceWarning: unclosed file
Fix ResourceWarning: unclosed file
Internal: Make usage of loader argument consistent
Documentation improvements
Fix release script. Release is identical to v2.1.0.
Test and documentation improvements
- Fix description in setup.py
Fix description in setup.py
Begin 2.0.0 release series. This package's release series available on PyPI begins with version 2.0.0. Versions of yq prior to 2.0.0 are distributed b
yq prior to 2.0.0
are distributed by https://github.com/abesto/yq and are not related
to this package. No guarantees of compatibility are made between
abesto/yq and kislyuk/yq. This package follows the Semantic Versioning 2.0.0 <http://semver.org/>_ standard. To ensure proper
operation, declare dependency version ranges according to SemVer.
See the Readme for more information.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →