/awesome-jq

A curated list of awesome jq tools and resources.

Awesome jq Awesome ./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 using yq 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.

Web

  • query-json playground – Web playground that uses query-json compiled to JavaScript.
  • jiq-web (github) – jiq, but in a web page, uses jq-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 '.' 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

Good small specific tutorials

Code examples

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

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).

License

CC0