Skip to content
SPECIFICTION
Get listed

jq

jqlang.org

Free plan WebWindowsmacOSLinuxSelf-hosted
Visit jqlang.org
Spec score 8.8 #2 of 29 in JSON Tools

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

jq Free MIT-licensed software · standalone binaries for Linux, macOS, and Windows Read 2 Oct 2026 · jqlang.org

Every jq plan and price →

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

Alternatives to jqAll alternatives →