Awesome
Awesome jq <img src="https://jqlang.github.io/jq/jq.svg" width="200" align="right" alt="./jq">
A curated list of awesome things built with the JSON processor and turing-complete functional language jq.
Implementations
Standalone implementations of the jq language.
- jq (github) – The original jq command-line JSON processor.
- gojq – A jq implementation in Go.
- jaq – A jq implementation in Rust that misses some small features but is often more correct than the original.
- query-json (
q
) – query-json is a faster, simpler and more portable implementation of the jq language in Reason. - xq – Pure rust implementation of jq
- jq.js – Pure Javascript implementation of jq
- jqjq – jq implementation of jq
Tools
jq-based JSON visualizers and explorers.
Command-line
- 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
- jq-fish-plugin – Inspired by jq-zsh-plugin, interactively build jq expressions in fish shell.
- jqp – a TUI playground for exploring jq.
- jnv – interactive JSON filter using jq with navigation and autocompletion.
- jqunit – A test framework for JQ, written in Rust, on top of libjq.
- play – A TUI playground to experiment with your favorite programs, such as grep, sed, awk, jq and yq.
Web
- query-json playground – Web playground that uses
query-json
compiled to JavaScript. - jiq-web (github) –
jiq
, but in a web page, usesjq-web
. - 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, uses
jq-web
. - 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.
- jqterm (github) – Online playground - "jq as a service"
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-playground.nvim – Interactive jq playground inside Nvim, written in Lua.
:%!jq '.'
is a Vim command that formats JSON in-place with jq (beware of any other tricks you might be thinking of).- jq-lsp – jq language server. Works with VSCode, neovim and Emacs. Has syntax and scope checking, goto defintion, completion and hover documentation.
- vscode-jq – VSCode jq extension that uses jq-lsp. Has syntax highlight, snippets and everything jq-lsp provides.
- bat syntax highlighting – Syntax file to use bat to syntax highlight jq files
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
- Articles exploring and using jq for data tasks
Code examples
- jq at Rosetta Code – Dozens of algorithms written in jq .
- Builtins – jq builtins coded in jq itself, not C.
- Collection of jq recipes
- Collection of interactive jq examples – Dozens of interactive jq examples (and explanations) in the browser.
- Collection of jq oneliners
Documentation browsers
Use Cases
Apps using jq in the wild.
- liteJQ – jq SQLite extension.
- pgJQ – jq Postgres extension.
- 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.
- jqt (github) – A web template engine that uses jq as expression language.
- 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.
Libraries and tools for jq itself
Incrementing jq capabilities.
- jqnpm – 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.
- jq-jsonpointer – jq module implementing JSON Pointer (RFC 6901)
- tree-sitter-jq – Tree sitter grammar implementation for Jq language
External libraries
Using jq from other languages.
- gojq – A full jq implementation in Go, usable as a library.
- 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.
Podcasts and presentations
- ThePrimeTime - The BEST CLI Tool
- Programming By Stealth (instalments PBS 155 to PBS 167)
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).