Skip to content
Latchkey

jnv: Interactive jq Filter Builder

jnv gives you a live editor where you type a jq expression and immediately see the filtered result, so you can build a query interactively before committing it to a script.

Writing a gnarly jq filter blind is slow. jnv shows the input, a query box, and the live output side by side, then lets you copy the finished expression into your pipeline.

What it does

jnv loads a JSON document, presents a jq-style query prompt with autocompletion of object keys, and re-evaluates as you type so the result pane updates live. When you are done you copy the query out and run it with jq in CI.

Common usage

Terminal
jnv response.json
curl -s https://api.example.com/data | jnv
cat data.json | jnv --edit-mode vi

Options

FlagWhat it does
--edit-mode <insert|vi>Choose the query editor keybindings
--indent <n>Indentation width for the rendered JSON
--no-hintHide the interactive hint line
--suggestion-list-length <n>How many key suggestions to show

In CI

Like jless, jnv is interactive and needs a terminal, so it never runs in a headless job. Its value is building the jq filter you then hardcode into the pipeline. Prototype in jnv locally, paste the expression into jq, and let CI run jq non-interactively.

Common errors in CI

In a non-TTY environment jnv exits with a terminal initialization error rather than producing output. If the input is not valid JSON it reports a parse error on startup; validate the payload with jq . file.json first. jnv also requires a jq-compatible engine present; a missing engine surfaces as a runtime error on launch.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →