TUI tool for querying JSON, CSV, and TSV data using SQL syntax with interactive exploration and pipeline integration
qo is a terminal-based query interface that enables SQL queries against JSON, CSV, and TSV data files. The tool provides both interactive TUI mode for data exploration and non-interactive command-line mode for direct pipeline integration. Users can examine data structures interactively, refine queries with immediate feedback, then execute the final query to stdout.
The tool uses SQLite as its query engine, supporting the full SQLite syntax including JSON extraction functions for nested data structures. It handles multiple input formats (JSON, JSON Lines, CSV, TSV) and can output to various formats including JSON, CSV, TSV, and formatted tables. The TUI supports standard navigation with tab switching between query and table views, vim-style movement keys, and immediate query execution.
qo integrates directly with Unix pipelines, reading from stdin and writing to stdout. This allows workflows like fetching API data with curl, filtering interactively with qo, then processing results with other tools. The tool supports headerless CSV files, format conversion between data types, and aggregation queries for log analysis and data transformation tasks. It targets developers and data analysts who need to quickly explore and filter structured data using familiar SQL syntax.
# via Homebrew
brew install kiki-ki/tap/qo
# via Shell Script
curl -sfL https://raw.githubusercontent.com/kiki-ki/go-qo/main/install.sh | sh
# via Git Source
git clone --depth 1 https://github.com/kiki-ki/go-qo.git && cd go-qo && make build