Awesome jq
A curated list of awesome things built with the JSON processor and turing-complete functional language jq.
Tools
jq-based JSON visualizers and explorers.
Command-line
- jq (github) – jq itself, the command-line JSON processor.
- gojq – A full jq implementation in Go (yes), also usable as a library.
- jaq – A jq implementation in Rust that misses some small features but is often more correct than the original.
- faq – CLI program that processes BSON, Bencode, JSON, TOML, XML, YAML using libjq.
- jiq – A visual command-line interactive JSON explorer with jq filters.
echo '' | fzf --print-query --preview "cat *.json | jq {q}"
– An fzf hack that turns it into an interactive jq explorer.- jqq – A visual command-line interactive jq explorer written in Ruby.
- yq (and
xq
) – jq wrapper for YAML and XML documents. - yiq – Like
jiq
, but usingyq
instead, so it supports YAML documents. - ijq – jq REPL with automatic variable assignment and global statements support.
- jqsh – An interactive wrapper written in Go.
- jq-zsh-plugin zsh line editor for constructing jq queries interactively.
- fq – jq for binary formats
Web
- jiq-web (github) – jiq, but in a web page.
- jq play (github) – A playground for jq with sharing capabilities.
- jq kung fu – A jq playground in WebAssembly powered by the original jq compiled with emscripten.
- jq-finder (github) – A multipanel, Finder-like, JSON explorer with jq filters instead of paths.
- jqaas – jq as a service, an open HTTP endpoint that executes jq queries.
- jqp – A free serverless proxy for filtering JSON and CSV data using jq.
Desktop
- jqi (github) – The almighty jq processor wrapped in a graphical UI, for Mac OSX.
- jqview – A jq JSON explorer with a minimalist native GUI.
Extensions
- bro/q – A Chrome Extension for JSON formatting and jq filtering.
- virtual-json-viewer – A JSON Chrome/Firefox Extension with virtual DOM, full-text search and jq filtering.
- atom-jq – Interactive jq playground inside the Atom editor.
- jq-mode – A jq mode for Emacs.
- vscode-jq – A jq extension for VS Code.
- vscode-jq-playground – A jq playground notebook extension for VS Code.
- vim-jqplay – Interactive jq playground inside Vim.
:%!jq '.'
is a Vim command that formats JSON in-place with jq (beware of any other tricks you might be thinking of).- @runjqbot – A Telegram bot that executes arbitrary jq code.
Documentation
Readings about jq.
Core documentation
- Manual – jq manual (development version).
- FAQ – jq FAQ.
- Cookbook – jq cookbook.
- Advanced Topics – jq advanced topics.
Good small specific tutorials
- Bash that JSON (with jq).
- JSON on the command line with jq.
- Reshaping JSON with jq.
- jq is sed for JSON.
- Mastering jq: part 1
- An Introduction to JQ
Code examples
- jq at Rosetta Code – Dozens of algorithms written in jq .
- Builtins – jq builtins coded in jq itself, not C.
Use Cases
Apps using jq in the wild.
- jqmd – A "literate devops" tool that allows embedding jq code, shell scripts, YAML, and JSON in a markdown document and making it executable. (A bit like R markdown or IPython notebooks, except with shell/jq/YAML/JSON, and as a CLI scripting tool rather than a GUI.)
- sc – A lightweight SoundCloud client, with a composable api, powered by jq.
- jc – CLI tool that converts the output of popular command-line programs and filetypes to JSON so they can be piped to jq.
- @incomingnotificationbot – A Telegram bot that gives you HTTP endpoints and notifies you when a webhook arrives, filtering and formatting content with jq.
- jqt (github) – A web template engine that uses jq as expression language.
- Vudash – A flexible and JSON-powered configurable open-source dashboard with support for a jq transformer.
- datasette-jq – A plugin that enables jq queries on JSON columns on datasette deployments.
- jtool – jq-based JSON tools for a modern shell.
- just-dashboard – A serverless app for implementing JSON-powered dashboards with JSON or YAML files (and jq filters as strings) serving as the only source of configuration.
- bf.jq – A Brainfuck interpreter written in jq.
- jq-voronoi – Implementation of Fortune’s algorithm to calculate Voronoi diagram on jq.
- etleneum – A centralized smart contract platform that works with sats and uses jq for easing the life of clients that want to fetch JSON states.
Libraries and tools for jq itself
Incrementing jq capabilities.
- jqnpm (github) – A jq package manager that installs modules from GitHub and runs jq scripts.
- JBOL – A collection of utility modules for jq (math, prelude, set, string etc.).
- bigint, array, string and other libraries – jq libraries from the author of jqnpm.
External libraries
Using jq from other languages.
- gojq – A full jq implementation in Go, usable either as a library or as a standalone CLI.
- jq-web – jq itself compiled to JavaScript with emscripten. There's also an alternative at jqdash.
- jq-go – Golang cgo bindings for libjq (jqpipe-go is a CLI wrapper from the same people).
- libjq-go – Golang cgo bindings for libjq. This one works with recent versions of jq: 1.5, 1.6+.
- node-jq – A jq wrapper for Node.js.
- ruby-jq – A jq wrapper for Ruby.
- pyjq – A jq wrapper for Python.
- jq.py – Another jq wrapper for Python.
- php-ext-jq – PHP extension for jq.
- java-jq – A jq wrapper for Java (jackson-jq is a Jackson extension).
- jqr – R interface to jq.
- Ansible jq – A jq filter for Ansible configuration manager.
Contribute
Please contribute! Open an issue or a PR and we’ll discuss it or merge it. If you’re opening a PR, please ensure all formatting is ok (if you’re in a hurry just open an issue).