jqlang

    jqlang/jq

    #288 this week

    Command-line JSON processor

    cli
    jq
    C
    NOASSERTION
    35.6K stars
    1.8K forks
    35.6K GitHub watchers
    Updated 9/12/2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Use Cases & Benefits

    • Processes and transforms JSON data via a lightweight command-line interface.
    • Offers powerful, flexible JSON manipulation with zero runtime dependencies and portable C implementation.
    • Use for extracting and filtering JSON data directly in shell scripts or command-line workflows.
    • Use for transforming complex JSON structures for data analysis or configuration management.
    • Use for integrating JSON processing in Dockerized environments without installing additional tools.

    About jq

    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

    Discover Repositories

    Search across tracked repositories by name or description