jq

What jq is
jq is a free command-line processor for working with JSON data. Its filters can select values, access nested attributes, build objects, collect results into arrays, and slice, map or transform content. Filters can be combined; each takes input and produces output, with an expression able to yield zero or more results per value. jq reads whitespace-separated JSON values and writes serialized output separated by whitespace. For very large inputs, the --stream option parses incrementally. Output controls include compact, raw, ASCII, sorted-key and colored formats. jq is written in portable C and has no runtime dependencies; a binary can be copied to another machine of the same type. Standalone executables are available for Linux, macOS and Windows, with packages listed for several distributions and package managers, plus a Docker image. Release binaries have SHA-256 checksums and signed release artifacts use jq release keys. The code is MIT-licensed, while its documentation uses CC-BY-3.0. The project news page lists jq 1.8.2 as released on June 20, 2026.
Who it suits
jq suits developers and other command-line users who need to query or reshape JSON streams. The incremental streaming option may be useful when processing very large inputs.
What it does well
- Free software with MIT-licensed code.
- No runtime dependencies.
- Supports incremental parsing with --stream.
- Standalone executables cover Linux, macOS and Windows.
What to know first
- It is a command-line tool.
- Its input and output are JSON streams.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| jq | MIT-licensed software · standalone binaries for Linux, macOS, and Windows | Free |
As jqlang.org lists them, read 2 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the jq website.
- Choose a standalone executable for Linux, macOS, or Windows, or install through a listed package manager.
- Alternatively, build jq from source on Linux, macOS, Cygwin, or another POSIX-like operating system.
- Run jq filters against JSON input; combine filters to create the output you need.
Overview
jq is a free command-line processor for querying and reshaping JSON. It suits developers and other users who are comfortable composing filters in a terminal, especially when the same operation needs to run across a stream of values or in batch work. Its appeal is a flexible filter model in a portable, dependency-free program; its trade-off is that the interface is built around expressions rather than a visual workspace.
Key features
Composable filters
A jq program takes an input value and produces zero or more outputs. Filters can be combined to select data, reach nested attributes, construct objects and collect results into arrays. That makes jq useful for turning a query into a repeatable transformation, though users need to express the work as filters rather than point-and-click actions.
Streams and large inputs
jq reads whitespace-separated JSON values and emits newline-separated output, applying an expression to each input. This is well suited to processing batches and joining serialized results into a stream. For very large inputs, the --stream option parses incrementally, reducing the need to handle the input as one whole document.
Output controls
Options cover compact, raw, ASCII, sorted-key and colored output. These controls let users adapt results to different reading or downstream-output needs without changing jq's core filter model.
Portable deployment
jq is written in portable C with no runtime dependencies, and a standalone binary can be copied to another machine of the same type. That makes it a practical choice where a small terminal utility is preferable to installing a larger application environment.
Pricing
jq — free. The free plan is MIT-licensed software and includes standalone binaries for Linux, macOS and Windows. There is no paid tier or trial to weigh against it; users give up a graphical interface, not a cheaper feature tier. The project licenses its documentation separately under CC-BY-3.0.
Platforms
Official standalone executables are available for Linux, macOS and Windows. jq is also distributed through Debian, Ubuntu, Fedora, openSUSE, Arch, Homebrew, MacPorts, Fink, winget, Scoop and Chocolatey, with a Docker image on GitHub Container Registry. Source builds are supported on Linux, macOS, Cygwin and other POSIX-like systems. The project provides SHA-256 checksums for release and pre-release binaries and signs release artifacts with jq release keys.
Who it's for
jq is a strong fit for people who need to query, validate or transform JSON from the command line, including repeatable batch tasks and very large inputs. Its streams and composable filters reward users who want precise control over how data is selected and reshaped. Readers who mainly want to explore JSON through a graphical viewer or a browser-based formatter may prefer a visual alternative.
Pros and cons
- Pros: Filters combine selection, nested-data access and transformation, so complex JSON work can be expressed as reusable operations.
- Pros: Incremental parsing with --stream is useful when inputs are very large.
- Pros: Zero runtime dependencies, portable binaries and broad package distribution make deployment flexible across supported systems.
- Pros: Checksums and signed release artifacts provide concrete ways to verify downloads.
- Cons: The command-line filter approach is less suitable for users who want to inspect and edit JSON through a graphical interface.
- Cons: Its stream-oriented input and output model expects users to work with expressions and serialized values, which can be a poor fit for occasional visual inspection.
Alternatives
Choose Dadroit JSON Viewer instead if you want a graphical JSON viewer with support for files up to 50 MB on its free non-commercial plan, or JSON-to-CSV/XML conversion. BracketView is another option. For a hosted API rather than a local command-line processor, consider jsonfmt.dev. JSONLint offers a macOS app for users seeking that format. JSONZen is an alternative with API and web platforms. For a free browser-based choice, JSON Formatter offers tools without sign-up or a hard file-size limit, subject to the machine. jless and JSON Crack are also alternatives. Browse more options in JSON Tools or Data Transformation Tools.
Verdict
Choose jq if you want a free, portable command-line tool for composing JSON queries and transformations, particularly across streams, batches or very large inputs. Look elsewhere if visual exploration is central to your workflow; jq's strength is filter-driven processing, not a graphical interface.
Verdict
jq provides a flexible filter model for selecting and transforming JSON, with options for output formatting and large inputs. Its command-line approach suits users comfortable working with streams and filters.
Questions
Is jq free?
Yes. The jq plan costs nothing, and the code is MIT-licensed.
Which operating systems does jq support?
Standalone executables are available for Linux, macOS, and Windows. jq can also be built from source on Linux, macOS, Cygwin, and other POSIX-like operating systems.
Can jq process large JSON inputs?
Yes. Its --stream option parses input incrementally and is useful for very large inputs.
What can jq do with JSON?
Its filters can select data, access nested attributes, build objects, collect results into arrays, and transform values.
Does jq have runtime dependencies?
No. jq is written in portable C and has zero runtime dependencies.
What license does jq use?
The jq code is licensed under MIT, and its documentation is licensed under CC-BY-3.0.
Facts from jq's own pages
- Artifact verification
- Release binaries have SHA-256 checksums and signed release artifacts with jq release keys. · jqlang.org, 1 Oct 2026
- Binary portability
- A single jq binary can be copied to another machine of the same type and run. · jqlang.org, 1 Oct 2026
- Container
- A Docker image is available from GitHub Container Registry. · jqlang.org, 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, 2 Oct 2026
- Data operations
- jq can slice, filter, map and transform JSON data. · jqlang.org, 1 Oct 2026
- Desktop platforms
- Official standalone executables are available for Linux, macOS and Windows. · jqlang.org, 1 Oct 2026
- Distribution
- The download page lists installation through Linux distribution repositories, Homebrew, MacPorts, Fink, winget, Scoop, and Chocolatey. · jqlang.org, 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, 1 Oct 2026
- Implementation
- jq is written in portable C and has zero runtime dependencies. · jqlang.org, 2 Oct 2026
- Large inputs
- The --stream option parses input incrementally and is useful for very large inputs. · jqlang.org, 1 Oct 2026
- License
- jq code is licensed under the MIT license, while its documentation is licensed under CC-BY-3.0. · jqlang.org, 2 Oct 2026
- Licensing
- jq code is licensed under MIT and its documentation under CC-BY-3.0. · jqlang.org, 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, 2 Oct 2026
- Output controls
- jq provides options for compact, raw, ASCII, sorted-key and colored output. · jqlang.org, 1 Oct 2026
- Output format
- JSON values in jq streams are serialized with whitespace separators, so streams can be joined together. · jqlang.org, 2 Oct 2026
- Package integrations
- jq is available through Debian, Ubuntu, Fedora, openSUSE, Arch, Homebrew, MacPorts, Fink, winget, Scoop and Chocolatey. · jqlang.org, 1 Oct 2026
- Platforms
- The download page links standalone executables for Linux, macOS, and Windows, and describes building jq for nearly any platform. · jqlang.org, 2 Oct 2026
- Purpose
- jq is a lightweight, flexible command-line JSON processor for slicing, filtering, mapping, and transforming structured data. · jqlang.org, 2 Oct 2026
- Release
- The project news page lists jq 1.8.2 as released on June 20, 2026. · jqlang.org, 2 Oct 2026
- Security
- SHA-256 checksums are provided for release and pre-release binaries, and release artifacts are signed by a jq release key. · jqlang.org, 2 Oct 2026
- Security reporting
- The jqlang/jq repository has GitHub private vulnerability disclosure enabled. · github.com, 1 Oct 2026
- Source builds
- jq can be built from source on Linux, macOS, Cygwin and other POSIX-like operating systems. · jqlang.org, 1 Oct 2026
- Streaming
- jq reads whitespace-separated JSON values and writes newline-separated JSON output. · jqlang.org, 1 Oct 2026
- Support
- The project points users to Stack Overflow, the #jq Libera.Chat channel, and its Discord server for questions and discussion. · jqlang.org, 2 Oct 2026
Where jq stands on Freedom251
- Cli Tools#7 of 32
- JSON Tools#8 of 29
- Command Line Tools#8 of 27
- Data Transformation Tools#15 of 37