jiq 2.6.2

Interactive JSON query tool with real-time filtering using jq
jiq-2.6.2 is not a library.
Visit the last successful build: jiq-3.21.0

jiq — Interactive JSON query tool with real-time output

Features

  • Real-time query execution - See results as you type
  • Context-aware autocomplete - Intelligent suggestions with JSON type information for fields and functions
  • Floating error overlay - Syntax errors appear in a non-disruptive overlay (Ctrl+E to toggle)
  • VIM keybindings - VIM-style editing for power users
  • Syntax highlighting - Colorized JSON output and jq query syntax (experimental)
  • Flexible output - Export results or query string

Demo

Installation

Requirements

Install via Script (macOS/Linux)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/bellicose100xp/jiq/releases/latest/download/jiq-installer.sh | sh

Install via Homebrew (macOS)

brew install bellicose100xp/tap/jiq

Install via Cargo

cargo install jiq

Download Binary

Download pre-built binaries from GitHub Releases

git clone https://github.com/bellicose100xp/jiq
cd jiq
cargo build --release
sudo cp target/release/jiq /usr/local/bin/

Quick Start

# From file
jiq data.json

# From stdin
cat data.json | jiq
echo '{"name": "Alice", "age": 30}' | jiq
curl https://api.example.com/data | jiq

Usage

Workflow:

  1. Start typing your jq query (begins in INSERT mode)
  2. Use autocomplete suggestions for functions and fields (Tab to accept)
  3. See results update in real-time
  4. Press Shift+Tab to navigate results
  5. Press Enter to output results, or Ctrl+Q to output query

VIM users: Press ESC to enter NORMAL mode for advanced editing.

Keybindings

Key Action
Shift+Tab Switch focus between Input and Results
Ctrl+E Toggle error overlay (when syntax error exists)
Enter Exit and output filtered JSON
Ctrl+Q Exit and output query string only (Shift+Enter may also work in some modern terminal emulators)
q / Ctrl+C Quit without output
Key Action
Type characters Edit jq query (real-time execution)
Tab Accept autocomplete suggestion
/ Navigate autocomplete suggestions
/ Move cursor
Home / End Jump to line start/end
Backspace / Delete Delete characters
ESC Switch to NORMAL mode / Close autocomplete

Navigation

Key Action
h / Move left
l / Move right
0 / Home Line start
$ / End Line end
w Next word start
b Previous word start
e Word end

Editing

Key Action
i Enter INSERT at cursor
a Enter INSERT after cursor
I Enter INSERT at line start
A Enter INSERT at line end
x Delete char at cursor
X Delete char before cursor

Operators (delete/change + motion)

Key Action
dw / db / de Delete word forward/back/end
d$ / d0 Delete to end/start
dd Delete entire line
D Delete to end of line (same as d$)
cw / cb / ce Change word forward/back/end
c$ / cc Change to end/entire line
C Change to end of line (same as c$)

Undo/Redo

Key Action
u Undo
Ctrl+r Redo
Key Action
j / k / / Scroll 1 line
J / K Scroll 10 lines
Ctrl+d / PageDown Scroll half page down
Ctrl+u / PageUp Scroll half page up
g / Home Jump to top
G Jump to bottom

Examples

Filter active users:

cat users.json | jiq
# Type: .users[] | select(.active == true)
# Press Enter to output results

Extract query for scripts:

cat data.json | jiq
# Experiment with: .items[] | select(.price > 100) | .name
# Press Ctrl+Q to get just the query string

Pipeline integration:

# Build query interactively, then reuse
QUERY=$(echo '{}' | jiq)  # Press Ctrl+Q after building query
echo $QUERY | xargs -I {} jq {} mydata.json

Tips

  • Empty query shows original JSON (identity filter .)
  • Invalid queries display jq errors in red
  • Results auto-scroll to top when query changes

License

Dual-licensed under MIT OR Apache-2.0