.\" Generated by scdoc 1.11.4 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "ijq" "1" "2026-03-04" .PP .SH NAME .PP ijq - interactive jq .PP .SH SYNOPSIS .PP \fBijq\fR [\fB-cnsrjaRMCSV\fR] [\fB-f\fR \fIfile\fR] [\fIfilter\fR] [\fIfiles .\&.\&.\&\fR] .PP .SH DESCRIPTION .PP \fBijq\fR is a near drop-in replacement for \fBjq\fR that allows you to interactively see the results of your filter as you construct it.\& .PP \fBijq\fR contains two panes and an input field: the left pane is the original, unmodified input data and the right pane contains the filtered output.\& When you are finished, press Return or Ctrl-C to exit.\& The filtered output will be written to standard output and the filter itself will be written to standard error.\& .PP \fBijq\fR maintains a history of used filters unless disabled via \fBhistory-file\fR in the config file.\& Delete all text in the filter field to browse any available history.\& .PP If \fIfiles\fR is omitted then \fBijq\fR reads data from standard input.\& .PP All of the options mirror their counterparts in \fBjq\fR.\& The options are: .PP \fB-c\fR .RS 4 Use compact instead of pretty-printed output.\& .PP .RE \fB-n\fR .RS 4 Don'\&t read any input.\& Useful for using \fBijq\fR as a calculator or to construct JSON data from scratch.\& .PP .RE \fB-s\fR .RS 4 Read all input into a single array and apply the given filter to it.\& .PP .RE \fB-r\fR .RS 4 If the filter output is a string it will be written directly to standard output rather than being formatted as a JSON string with quotes.\& Useful for using \fBijq\fR in a pipeline with other programs that expect normal string input.\& .PP .RE \fB-j\fR .RS 4 Implies \fB-r\fR and outputs without a trailing newline after each result.\& .PP .RE \fB-a\fR .RS 4 Output strings by using only ASCII characters and escape sequences.\& .PP .RE \fB-R\fR .RS 4 Don'\&t parse the input as JSON, instead passing each line of input to the filter as a string.\& If combined with \fB-s\fR then the entire input is passed to the filter as a single long string.\& .PP .RE \fB-M\fR .RS 4 Disable colored output.\& .PP .RE \fB-C\fR .RS 4 Force colored output.\& .PP .RE \fB-S\fR .RS 4 Output the fields of each object with the fields in sorted order.\& .PP .RE \fB-f\fR \fIfile\fR .RS 4 Read the filter from \fIfile\fR.\& When this option is used, all positional arguments (if any) are interpreted as input files.\& .PP .RE .SH CONFIG FILE .PP \fBijq\fR reads configuration from \fI$XDG_CONFIG_HOME/ijq/config\fR.\& If \fI$XDG_CONFIG_HOME\fR is not set, then the fallback path is \fI\(ti/.\&config/ijq/config\fR.\& .PP The file format is \fBscfg\fR.\& All settings are optional.\& If a setting is present both in the config file and on the command line, the command-line value takes precedence.\& .PP \fBhistory-file\fR \fIfile\fR .RS 4 Path to the history file.\& If set to '\&'\& then history is disabled.\& .PP .RE \fBjq-bin\fR \fIfile\fR .RS 4 Name of or path to the \fBjq\fR binary to use.\& .PP .RE \fBhide-input-pane\fR \fIbool\fR .RS 4 If true, start with the input (left) viewing pane hidden.\& .PP .RE \fBkeymaps\fR .RS 4 Section containing key bindings.\& Any entry not set keeps its built-in default value.\& .PP Bindings are written as key names (\fBCtrl+N\fR, \fBShift+Up\fR, \fBReturn\fR) or single runes (\fBu\fR, \fBG\fR).\& \fI+\fR and \fI-\fR can both be used between modifiers and key names, for example \fBCtrl+N\fR and \fBCtrl-N\fR.\& .PP When the filter input field has focus, printable runes are always treated as text input.\& To bind a global command while editing the filter, use a non-printable key or a modifier combination.\& .PP Available entries are: \fBsubmit-filter\fR, \fBmove-down\fR, \fBmove-up\fR, \fBpage-down\fR, \fBline-start\fR, \fBline-end\fR, \fBhalf-page-up\fR, \fBhalf-page-down\fR, \fBfilter-cursor-right\fR, \fBfilter-cursor-left\fR, \fBfocus-input-pane-up\fR, \fBfocus-input-pane-left\fR, \fBfocus-output-pane\fR, \fBfocus-filter-input\fR, \fBnext-focus\fR, \fBprevious-focus\fR, \fBtoggle-input-pane\fR, \fBsave-filter-history\fR, \fBtoggle-menu\fR, \fBtextview-page-up\fR, \fBtextview-page-down\fR, and \fBtextview-end\fR.\& .PP .RE .SH KEY BINDINGS .PP These are the default key bindings.\& They can be overridden in the \fBkeymaps\fR section of the config file.\& .PP \fBShift + Up\fR, \fBShift + Left\fR .RS 4 Focus the input (left) viewing pane.\& .PP .RE \fBShift + Right\fR .RS 4 Focus the output (right) viewing pane.\& .PP .RE \fBShift + Down\fR .RS 4 Focus the text input field.\& .PP .RE \fBTab\fR .RS 4 When the text input field has focus, navigate between the autocompletion list.\& When one of the viewing panes has focus, toggle between the different views.\& .PP .RE \fBShift-Tab\fR .RS 4 Like \fBTab\fR, but moves in the opposite direction.\& .PP .RE \fBCtrl-A\fR .RS 4 When the text input field has focus, move the cursor to the beginning of the input.\& When one of the viewing panes has focus, set the column offset to 0.\& .PP .RE \fBCtrl-E\fR .RS 4 When the text input field has focus, move the cursor to the end of the input.\& When one of the viewing panes has focus, set the column offset to view the longest visible line.\& .PP .RE \fBCtrl-F\fR .RS 4 When the text input field has focus, move the cursor one character forward.\& When one of the viewing panes has focus, scroll down one page.\& .PP .RE \fBCtrl-B\fR .RS 4 When the text input field has focus, move the cursor one character backward.\& When one of the viewing panes has focus, scroll up one page.\& .PP .RE \fBCtrl-D\fR .RS 4 When the text input field has focus, delete the character under the cursor.\& When one of the viewing panes has focus, scroll down one half page.\& .PP .RE \fBCtrl-U\fR .RS 4 When the text input field has focus, delete all of the text from the cursor to the beginning of the field.\& When one of the viewing panes has focus, scroll up one half page.\& .PP .RE \fBCtrl-O\fR .RS 4 Toggle visibility of the input (left) viewing pane.\& .PP .RE \fBCtrl-S\fR .RS 4 Save the current filter to history and show a confirmation popup.\& .PP .RE \fBCtrl-/\fR, \fBCtrl-?\&\fR, \fBCtrl-_\fR .RS 4 Open or close the overlay menu.\& .PP .RE \fBSpace\fR .RS 4 When the overlay root menu is open, activate the selected menu entry.\& When the Configure subview is open, toggle the selected option.\& .PP .RE \fBEnter\fR .RS 4 When the Configure subview is open, toggle the selected option.\& When the Manage history subview is open, apply the selected history entry to the filter and close the overlay.\& .PP .RE \fBx\fR .RS 4 When the Manage history subview is open, delete the selected history entry after confirmation.\& .PP .RE \fB/\fR .RS 4 When the Manage history subview is open, open a filter input for history entries.\& .PP .RE \fBEsc\fR, \fBCtrl-C\fR, \fBq\fR .RS 4 When overlay is open, go back to the root menu or close overlay.\& .PP .RE \fBu\fR, \fBd\fR, \fBf\fR, \fBb\fR .RS 4 When one of the viewing panes has focus, scroll a half/full page up/down.\& .PP .RE \fBLeft\fR, \fBDown\fR, \fBUp\fR, \fBRight\fR \fBh\fR, \fBj\fR, \fBk\fR, \fBl\fR .RS 4 When one of the viewing panes has focus, move the view left/down/up/right.\& .PP .RE \fBReturn\fR .RS 4 Close \fBijq\fR.\& Write the contents of the output pane to stdout and the current input filter to stderr.\& The current input filter is also saved to the history file.\& .PP .RE \fBCtrl-C\fR .RS 4 When overlay is open, close overlay.\& Otherwise, exit \fBijq\fR immediately, discarding all state.\& .PP .RE .SH DEMO .PP See https://asciinema.\&org/a/496932 for a demo.\& .PP .SH SEE ALSO .PP jq(1) .PP .SH AUTHOR .PP Gregory Anders