Command-line JSON processor
jq
  • C 79%
  • M4 6.6%
  • Shell 5.5%
  • Yacc 3.4%
  • jq 1.6%
  • Other 3.9%
Find a file
itchyny f58787c418 Detect circular module imports to prevent stack overflow
jq used to recurse without bound on mutual or self-referential
`import` declarations, exhausting the stack. Track each library's
load state with a `loading` flag set before its dependencies are
processed; a recursive reference to an in-progress library now
reports "circular import of X".

Fixes CVE-2026-44777.
2026-05-11 20:41:38 +09:00
.github Fix CI to add artifact-metadata permission for actions/attest (#3530) 2026-05-05 14:06:45 +09:00
build Rake task to build website including source dist and binaries. 2013-05-11 14:57:58 +01:00
config Move closer to the standard autotools idiom. (#3187) 2025-01-25 17:10:05 +09:00
docs docs: fix "happened" spelling in tutorial changelog entries (#3525) 2026-04-24 22:33:53 +09:00
m4 Fix autoreconf warnings 2023-07-16 00:02:46 -05:00
scripts website: deploy website from GitHub Actions (#3237) 2025-01-28 11:40:55 +09:00
sig Update GPG signing key (fix #3381) 2025-07-31 23:00:24 +09:00
src Detect circular module imports to prevent stack overflow 2026-05-11 20:41:38 +09:00
tests Detect circular module imports to prevent stack overflow 2026-05-11 20:41:38 +09:00
vendor Update builtin oniguruma to 6.9.10 to suppress clang warnings (#3258) 2025-05-07 10:50:42 +00:00
.gitattributes Move oniguruma and decNumber to vendor directory (#3234) 2025-02-06 07:49:56 +09:00
.gitignore Revert "Move closer to the standard autotools idiom. (#3187)" (#3255) 2025-05-07 17:26:19 +09:00
.gitmodules Move oniguruma and decNumber to vendor directory (#3234) 2025-02-06 07:49:56 +09:00
AUTHORS Update NEWS.md and AUTHORS for 1.8.1 (#3353) 2025-07-01 19:36:14 +09:00
ChangeLog Fix misspellings (#2609) 2023-06-13 20:01:20 +09:00
compile-ios.sh Update builtin oniguruma to 6.9.10 to suppress clang warnings (#3258) 2025-05-07 10:50:42 +00:00
configure.ac Randomize hash seed to mitigate hash collision DoS attacks 2026-04-13 08:53:26 +09:00
COPYING Add LICENSE notice of NetBSD's strptime() to COPYING (#3344) 2025-06-14 08:01:10 +09:00
Dockerfile Disable Valgrind by default during testing (#3269) 2025-03-04 22:12:25 +09:00
jq.1.prebuilt Fix stder typo (#3446) 2025-12-12 10:54:39 +01:00
jq.spec website: switch to custom domain jqlang.org (#3243) 2025-02-01 11:54:32 +09:00
KEYS Remove David from maintainers 2016-02-24 00:39:56 -08:00
libjq.pc.in website: switch to custom domain jqlang.org (#3243) 2025-02-01 11:54:32 +09:00
Makefile.am Detect circular module imports to prevent stack overflow 2026-05-11 20:41:38 +09:00
NEWS.md Update NEWS.md and AUTHORS for 1.8.1 (#3353) 2025-07-01 19:36:14 +09:00
README.md Replace jqplay.org with play.jqlang.org (#3265) 2025-02-18 08:22:05 +09:00
SECURITY.md Create SECURITY.md 2023-06-19 00:07:29 -05:00

jq

jq is a lightweight and flexible command-line JSON processor akin to sed,awk,grep, and friends for JSON data. It's written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.

Documentation

Installation

Prebuilt Binaries

Download the latest releases from the GitHub release page.

Docker Image

Pull the jq image to start quickly with Docker.

Run with Docker

Example: Extracting the version from a package.json file
docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'
Example: Extracting the version from a package.json file with a mounted volume
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json

Building from source

Dependencies

  • libtool
  • make
  • automake
  • autoconf

Instructions

git submodule update --init    # if building from git to get oniguruma
autoreconf -i                  # if building from git
./configure --with-oniguruma=builtin
make clean                     # if upgrading from a version previously built from source
make -j8
make check
sudo make install

Build a statically linked version:

make LDFLAGS=-all-static

If you're not using the latest git version but instead building a released tarball (available on the release page), skip the autoreconf step, and flex or bison won't be needed.

Cross-Compilation

For details on cross-compilation, check out the GitHub Actions file and the cross-compilation wiki page.

Community & Support

License

jq is released under the MIT License. jq's documentation is licensed under the Creative Commons CC BY 3.0. jq uses parts of the open source C library "decNumber", which is distributed under ICU License