jq
jqlang.org
What it is
jq is a free command-line processor for selecting and transforming JSON data. A jq filter takes an input and produces output; filters can be combined to access nested attributes, construct objects, gather results into arrays, or make other transformations. It reads whitespace-separated JSON values and writes serialized results separated by whitespace. Each expression runs on each input value and may produce zero or more outputs. For very large inputs, the --stream option parses incrementally. Output options include compact, raw, ASCII, sorted-key, and colored forms. Written in portable C, jq has no runtime dependencies, and a standalone binary can be copied to another machine of the same type. Standalone executables are available for Linux, macOS, and Windows, with packages listed for Linux distributions and package managers including Homebrew, MacPorts, winget, Scoop, and Chocolatey. A Docker image is also available. Release binaries have SHA-256 checksums, and signed release artifacts use jq release keys. The code is licensed under MIT; the documentation uses CC-BY-3.0.
Spec sheet
- Purpose
- jq is a lightweight, flexible command-line JSON processor for slicing, filtering, mapping, and transforming structured data.Read 2 Oct 2026 · jqlang.org
- Platforms
- The download page links standalone executables for Linux, macOS, and Windows, and describes building jq for nearly any platform.Read 2 Oct 2026 · jqlang.org
- Security
- SHA-256 checksums are provided for release and pre-release binaries, and release artifacts are signed by a jq release key.Read 2 Oct 2026 · jqlang.org
- Support
- The project points users to Stack Overflow, the #jq Libera.Chat channel, and its Discord server for questions and discussion.Read 2 Oct 2026 · jqlang.org
- License
- jq code is licensed under the MIT license, while its documentation is licensed under CC-BY-3.0.Read 2 Oct 2026 · jqlang.org
- Artifact verification
- Release binaries have SHA-256 checksums and signed release artifacts with jq release keys.Read 1 Oct 2026 · jqlang.org
- Binary portability
- A single jq binary can be copied to another machine of the same type and run.Read 1 Oct 2026 · jqlang.org
- Container
- A Docker image is available from GitHub Container Registry.Read 2 Oct 2026 · jqlang.org
- Data handling
- jq processes streams of JSON values, with each expression running on each input value and producing zero or more outputs.Read 2 Oct 2026 · jqlang.org
- Data operations
- jq can slice, filter, map and transform JSON data.Read 1 Oct 2026 · jqlang.org
- Desktop platforms
- Official standalone executables are available for Linux, macOS and Windows.Read 1 Oct 2026 · jqlang.org
- Distribution
- The download page lists installation through Linux distribution repositories, Homebrew, MacPorts, Fink, winget, Scoop, and Chocolatey.Read 2 Oct 2026 · jqlang.org
- Filter model
- A jq program is a filter that takes an input and produces an output, and filters can be combined.Read 1 Oct 2026 · jqlang.org
- Implementation
- jq is written in portable C and has zero runtime dependencies.Read 2 Oct 2026 · jqlang.org
- Large inputs
- The --stream option parses input incrementally and is useful for very large inputs.Read 1 Oct 2026 · jqlang.org
- Licensing
- jq code is licensed under MIT and its documentation under CC-BY-3.0.Read 1 Oct 2026 · jqlang.org
- Maintainers
- The jqlang organization says it is the canonical source for the C implementation of jq and that new maintainers were recruited.Read 2 Oct 2026 · github.com
- Output controls
- jq provides options for compact, raw, ASCII, sorted-key and colored output.Read 1 Oct 2026 · jqlang.org
- Output format
- JSON values in jq streams are serialized with whitespace separators, so streams can be joined together.Read 2 Oct 2026 · jqlang.org
- Package integrations
- jq is available through Debian, Ubuntu, Fedora, openSUSE, Arch, Homebrew, MacPorts, Fink, winget, Scoop and Chocolatey.Read 1 Oct 2026 · jqlang.org
- Release
- The project news page lists jq 1.8.2 as released on June 20, 2026.Read 2 Oct 2026 · jqlang.org
- Security reporting
- The jqlang/jq repository has GitHub private vulnerability disclosure enabled.Read 1 Oct 2026 · github.com
- Source builds
- jq can be built from source on Linux, macOS, Cygwin and other POSIX-like operating systems.Read 1 Oct 2026 · jqlang.org
- Streaming
- jq reads whitespace-separated JSON values and writes newline-separated JSON output.Read 1 Oct 2026 · jqlang.org
- Transformations
- jq filters can select data, access nested attributes, build objects, and collect results into arrays.Read 2 Oct 2026 · jqlang.org
Plans and prices
Strong points and limits
Strong points
- Combines filters for JSON selection and transformation
- Incremental parsing available for very large inputs
- No runtime dependencies
- Standalone executables for Linux, macOS, and Windows
- Release binaries have SHA-256 checksums
Limits
- Command-line tool rather than a graphical app
- No free trial is listed
Who it suits
jq suits people who need to query or reshape JSON from a command line, including when working with large inputs. Its standalone binaries and package options support Linux, macOS, and Windows users.
jq in depth
Read the full write-up
Overview
jq is a command-line processor for querying and reshaping JSON. It suits people who are comfortable writing filters and want a portable tool for scripts or batch work. Its strength is a focused, dependency-free approach; its command-line model is a poor fit for readers who want a graphical JSON editor.
Key features
Filters that compose
A jq program takes JSON input and produces output, and programs can combine filters to select values, reach into nested attributes, build objects or collect results into arrays. This makes jq useful for turning repeated data operations into a coherent workflow rather than handling each transformation separately. Because a filter can emit zero, one or several results per input, users need to account for that behavior when shaping output.
Streams and large inputs
jq reads whitespace-separated JSON values and writes newline-separated results. Each expression runs on each input value, and the output can itself be treated as a stream. The --stream option parses incrementally, which is useful for very large inputs; it is the relevant choice when loading an entire input at once is impractical.
Output and portability
Output controls cover compact, raw, ASCII, sorted-key and colored output, giving scripts and command-line workflows ways to tailor results without changing the underlying transformation. 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 is a practical advantage for lightweight deployments, though users still need to be comfortable working from a terminal.
Pricing
jq is free: its plan costs nothing and covers MIT-licensed software with standalone binaries for Linux, macOS and Windows. There is no paid tier or free trial to weigh against it. The code uses the MIT license, while the documentation uses 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, and a Docker image is available from GitHub Container Registry. Source builds are supported on Linux, macOS, Cygwin and other POSIX-like systems. Its breadth of distribution makes it a flexible command-line option across common desktop and self-hosted environments.
Release and pre-release binaries have SHA-256 checksums, and release artifacts are signed with jq release keys. The jqlang/jq repository accepts private vulnerability disclosures. For questions and discussion, the project points users to Stack Overflow, the jq tag, Libera.Chat and Discord.
Who it's for
jq is a strong fit for developers, data practitioners and technically confident users who need to query or transform JSON in scripts, pipelines or batch processing. Its filter model also suits users who want to express repeatable transformations and can work with command-line input and output. Readers seeking a visual viewer or a tool centered on interactive editing should consider a different kind of product.
Pros and cons
Pros
Composable filters: selection, nested access and object construction can be combined into reusable transformations.
Incremental parsing:--stream provides an option for very large inputs.
Portable deployment: C implementation, zero runtime dependencies and copyable standalone binaries reduce reliance on a larger runtime.
Free and broadly distributed: no purchase is required, with standalone downloads, package integrations and a container image.
Cons
Command-line first: the filter-based model favors users willing to write expressions, not those who want a graphical interface.
Stream semantics matter: multiple or zero outputs per input can require care when downstream steps expect a particular result shape.
Alternatives
For another free command-line option, choose jaq if its open-source command-line program and Rust library better suit your implementation needs. gojq is another free option across Linux, macOS, self-hosted and Windows platforms.
For a Windows-oriented JSON tool with a free personal and educational license, consider JSONBuddy; it also offers a free trial. If you want a viewer with a non-commercial free tier that opens files up to 50 MB and converts JSON to CSV or XML, Dadroit JSON Viewer is a different fit.
BracketView is a freemium option with a free tier for uploads up to 5 MB and capped snapshots, AI actions and webhook use. For browser-based tools and share links, JSONZen has a free tier with 32 KB share links and three locally stored snippets per device. jsonfmt.dev is an API option, with a free API-key tier capped at 1,000 requests per month. If an online, open-source tool is preferable, JSON Crack is free, with an approximate 300 KB working limit that depends on data complexity and hardware.
Browse more options in JSON Tools and Data Transformation Tools.
Verdict
Choose jq if you want a free, portable command-line processor for repeatable JSON queries and transformations, especially when its incremental option can help with very large inputs. Look elsewhere if your priority is visual inspection or interactive editing rather than building workflows from filters.
Verdict
jq offers focused JSON processing with multiple output controls and an incremental option for large inputs. Its free, portable command-line approach suits users comfortable building workflows from filters.
Where Specifiction places it
- JSON Tools#2 of 298.8
- Cli Tools#4 of 328.6
- Command Line Tools#6 of 278.5
- Data Transformation Tools#9 of 378.6