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
jnv response.json
curl -s https://api.example.com/data | jnv
cat data.json | jnv --edit-mode viOptions
| Flag | What it does |
|---|---|
| --edit-mode <insert|vi> | Choose the query editor keybindings |
| --indent <n> | Indentation width for the rendered JSON |
| --no-hint | Hide 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.