jnv is an interactive terminal application for querying and filtering JSON data using jq expressions. It combines a keyboard-driven JSON browser with a real-time jq filter editor, allowing users to navigate, expand, and collapse JSON structures while simultaneously writing and previewing filter results. The tool reads JSON from files or standard input, including JSON Lines format, and provides immediate visual feedback as filters are typed.
The application distinguishes itself by integrating jq filter development with live preview and auto-completion, suggesting completions for identifiers, object keys, and array indices based on the current JSON structure. It also offers clipboard integration, enabling users to copy either the current filter expression or the filtered JSON output with a single key press. The interface is fully customizable through a TOML configuration file, allowing adjustments to key bindings, editor appearance, viewer styling, and debounce timing without recompilation.
jnv supports writing filtered results to standard output on exit for piping to other commands, and its event-driven pipeline processes filter changes asynchronously to maintain responsiveness. The tool is built around a tree-based JSON viewer with collapsible nodes and keyboard navigation, making it suitable for exploring complex nested data structures directly in the terminal.