jq
What it is
jq is a free command-line tool for processing JSON. It applies filters to select values, inspect nested attributes, build objects, collect results into arrays or transform data. A filter takes an input and produces output, and multiple filters can be combined. jq reads whitespace-separated JSON values and writes serialized output; each expression can produce zero or more results for an input. For very large inputs, its --stream option parses incrementally. Output controls include compact, raw, ASCII, sorted-key and colored formats. jq is written in portable C without runtime dependencies, and a standalone binary can be copied to another machine of the same type. Executables are available for Linux, macOS and Windows, with packages also listed through Linux distributions and package managers. A Docker image is available. Release binaries have SHA-256 checksums, and signed release artifacts use jq release keys. The code is MIT-licensed, while the documentation is under CC-BY-3.0.
For and against
For
- Free software with no runtime dependencies.
- Filters select, build and transform JSON data.
- Incremental parsing is available through --stream.
- Standalone executables cover Linux, macOS and Windows.
Against
- It is a command-line tool.
- The standalone binary is for the same machine type.
- Documentation uses a separate CC-BY-3.0 license.
The verdict
jq provides composable filters and output controls for command-line JSON processing. Its portable implementation and platform packages offer multiple installation routes.
Who it suits
jq suits developers and other command-line users who need to query or transform JSON streams. Its incremental parsing option may help with very large inputs.
Plans and prices
jq
MIT-licensed software · standalone binaries for Linux, macOS, and Windows
Read 2 Oct 2026 · jqlang.org
On the record
- Artifact verification
- Release binaries have SHA-256 checksums and signed release artifacts with jq release keys.jqlang.org · read 1 Oct 2026
- Binary portability
- A single jq binary can be copied to another machine of the same type and run.jqlang.org · read 1 Oct 2026
- Container
- A Docker image is available from GitHub Container Registry.jqlang.org · read 2 Oct 2026
- Data handling
- jq processes streams of JSON values, with each expression running on each input value and producing zero or more outputs.jqlang.org · read 2 Oct 2026
- Data operations
- jq can slice, filter, map and transform JSON data.jqlang.org · read 1 Oct 2026
- Desktop platforms
- Official standalone executables are available for Linux, macOS and Windows.jqlang.org · read 1 Oct 2026
- Distribution
- The download page lists installation through Linux distribution repositories, Homebrew, MacPorts, Fink, winget, Scoop, and Chocolatey.jqlang.org · read 2 Oct 2026
- Filter model
- A jq program is a filter that takes an input and produces an output, and filters can be combined.jqlang.org · read 1 Oct 2026
- Implementation
- jq is written in portable C and has zero runtime dependencies.jqlang.org · read 2 Oct 2026
- Large inputs
- The --stream option parses input incrementally and is useful for very large inputs.jqlang.org · read 1 Oct 2026
- License
- jq code is licensed under the MIT license, while its documentation is licensed under CC-BY-3.0.jqlang.org · read 2 Oct 2026
- Licensing
- jq code is licensed under MIT and its documentation under CC-BY-3.0.jqlang.org · read 1 Oct 2026
- Maintainers
- The jqlang organization says it is the canonical source for the C implementation of jq and that new maintainers were recruited.github.com · read 2 Oct 2026
- Output controls
- jq provides options for compact, raw, ASCII, sorted-key and colored output.jqlang.org · read 1 Oct 2026
- Output format
- JSON values in jq streams are serialized with whitespace separators, so streams can be joined together.jqlang.org · read 2 Oct 2026
- Package integrations
- jq is available through Debian, Ubuntu, Fedora, openSUSE, Arch, Homebrew, MacPorts, Fink, winget, Scoop and Chocolatey.jqlang.org · read 1 Oct 2026
- Purpose
- jq is a lightweight, flexible command-line JSON processor for slicing, filtering, mapping, and transforming structured data.jqlang.org · read 2 Oct 2026
- Release
- The project news page lists jq 1.8.2 as released on June 20, 2026.jqlang.org · read 2 Oct 2026
The review
Overview
jq is a command-line tool for turning JSON into the particular data a task needs. It suits developers and other terminal users who want a reusable way to query or reshape JSON, especially in scripts and batch workflows. Its strongest case is the combination of composable filters, stream handling and a portable, dependency-free binary; it is less suited to readers looking for a visual JSON editor.
Key features
Filters that combine
A jq program takes an input value and emits zero or more results. Filters can be composed to select data, reach into nested attributes, construct objects and collect results into arrays. That model is a practical strength for repeatable transformations: one expression can both find the relevant values and shape the output, rather than requiring a separate application for each step. The same flexibility puts the burden on the user to express the desired operation as a filter.
Streams and large inputs
jq reads whitespace-separated JSON values and writes newline-separated output, applying the expression to each input value. Results can therefore be handled as a stream rather than requiring one output document. For very large inputs, the --stream option parses incrementally, which makes it the relevant choice when processing the whole input at once is a concern.
Output and portability
Options cover compact, raw, ASCII, sorted-key and colored output, giving terminal users control over whether results are concise, readable or suited to downstream handling. The implementation is portable C with no runtime dependencies, and a standalone binary can be moved to another machine of the same type. This makes jq a strong fit for environments where a small, self-contained command-line utility is preferable to a larger application.
Official standalone executables are provided for Linux, macOS and Windows, alongside package routes including Debian, Ubuntu, Fedora, openSUSE, Arch, Homebrew, MacPorts, Fink, winget, Scoop and Chocolatey. A Docker image is available through GitHub Container Registry, and source builds are supported on Linux, macOS, Cygwin and other POSIX-like systems. Release artifacts have SHA-256 checksums and signed release files. jq also supports schema validation, querying and batch processing.
Pricing
jq is free: its plan costs free and includes MIT-licensed software with standalone binaries for Linux, macOS and Windows. There is no paid tier to trade features against or trial period to evaluate; the project directs users with questions to Stack Overflow, the jq tag, Libera.Chat and Discord. The code is MIT-licensed, while the documentation uses CC-BY-3.0.
Platforms
jq supports Linux, macOS and Windows, with official standalone executables for all three. Distribution packages broaden installation choices, while source builds cover Cygwin and other POSIX-like systems. A Docker image is another option for container workflows. The same-type requirement for copied binaries is worth keeping in mind: portability does not mean a binary can be moved indiscriminately between different machine types.
Who it's for
jq is the right choice for people comfortable working in a terminal who need to query, filter or transform JSON in repeatable workflows. Its stream model and incremental parsing option are especially relevant to batch work and very large inputs, while the binary's lack of runtime dependencies helps where deployment simplicity matters. Readers who want to inspect or edit JSON through a visual interface should look to a viewer or editor instead.
Pros and cons
- Composable filters: selection, nested access, object construction and array collection can be combined in one JSON-processing program.
- Stream-aware processing: whitespace-separated inputs and newline-separated outputs suit repeated values, and --stream parses very large inputs incrementally.
- Portable deployment: portable C, zero runtime dependencies and same-type binary copying reduce the need for a larger runtime environment.
- Many installation paths: standalone executables, package managers, source builds and a Docker image accommodate varied setups.
- Terminal-first approach: users seeking a visual editor will need a different kind of tool.
Alternatives
For a free Android option, consider jidoujisho. Choose JSONBuddy if a Windows tool with a free personal or educational perpetual license and free minor updates better fits your needs. BracketView offers a Linux, web and Windows alternative with a free tier that includes uploads up to 5 MB, five encrypted snapshots per month, 20 AI actions per month and three webhook endpoints with 25 requests each.
Dadroit JSON Viewer has a free non-commercial plan for opening files up to 50 MB and converting JSON to CSV or XML; its Standard plan costs $98 per y. Choose JSON Crack for a free open-source online tool, with an approximate 300 KB limit that depends on data complexity and hardware. JSON Editor is a free MIT-licensed JavaScript library for self-hosted or web use that requires a modern browser.
jsonfmt.dev is an API and web option whose free API key allows 100 requests per minute and 1,000 requests per month. JSONZen offers a free plan with 32 KB share links, three locally stored snippets per device and included tools.
Browse more options in JSON Tools or Data Transformation Tools.
Verdict
Choose jq if you want a free, portable command-line processor for composing JSON queries and transformations, including stream-oriented and large-input work. Its principal advantage is that capable filter-based processing comes in a dependency-free tool with broad installation options. Look elsewhere if a visual interface is central to how you want to work.