About this project

yq is a lightweight, portable command-line tool written in Go that allows users to process and manipulate various data formats. It employs a syntax similar to the popular jq JSON processor but extends its capabilities to support YAML, JSON, XML, CSV, TSV, TOML, HCL, INI, and properties files. Key capabilities include: - Reading, updating, and merging data structures across multiple files. - In-place file updates and the ability to use environment variables within expressions. - Conversion between different formats (e.g., JSON to YAML, XML to YAML). - Support for multi-document YAML files and front-matter blocks. - Advanced operations such as date/time manipulation, sorting keys, and handling YAML comments, styling, tags, anchors, and aliases. - Base64 encoding and decoding. - Integration as a GitHub Action for automated pipelines. The tool is distributed as a dependency-free binary and is available via various package managers including Homebrew, Snap, Chocolatey, Scoop, and Winget, as well as through Docker and Podman containers.