# qsv

> Rust CLI toolkit of composable commands for querying, transforming, validating, joining, and describing CSV, Excel, and other tabular data.

Stars: 3.8k · Language: Rust · Categories: Data

- Repository: https://github.com/dathere/qsv
- Website: https://qsv.dathere.com
- Page: https://www.trmn.sh/tools/qsv

## Overview

qsv is a command-line data-wrangling toolkit for tabular data, mainly CSV and its dialects, plus Excel and other formats. It provides many subcommands for querying, slicing, sorting, filtering, joining, transforming, validating, formatting, and converting data. Commands are meant to be composed in pipelines. The README presents speed as a core goal and links to published benchmarks.

The command list includes `cat` (concatenate by row or column), `dedup`, `datefmt` (reformats dates recognized from 19 formats), `count`, `blake3` (file hashing), `clipboard`, `diff`, and `color` (prints a colorized table that fits the terminal, with Arrow, Avro/IPC, Parquet, and JSON/JSONL input when the "polars" feature is enabled). `count` is documented as taking 11.87 seconds on a 15 GB, 28M-row file without an index, and it is instantaneous with one. `clean` removes qsv-generated cache files. `denull` detects text null sentinels such as `NULL` or `N/A`, and `--apply` blanks them.

qsv also has data-enrichment and AI-assisted commands. `apply` runs string, date, math, and currency transformations on columns. It also offers NLP functions such as similarity, sentiment analysis, profanity detection, and language and name-gender detection. Its `summarize` subcommand and `describegpt` use any OpenAI API-compatible LLM, local or commercial. `describegpt` infers a data dictionary, description, and tags, or answers questions about a CSV using configurable MiniJinja prompt files. Output can be Markdown, JSON, TOON, or JSON Schema. For questions, it can generate SQL queries.

Beyond the CLI, the README lists an MCP server and a Cowork plugin as installation options, and it notes that Datapusher+ and CKAN integration is available through the `qsvdp` binary variant. The likely users are data analysts, data engineers, and open-data publishers who work with large CSV files from the terminal.

## Alternatives

- [angle-grinder](https://www.trmn.sh/tools/angle-grinder.md): Command-line log analysis tool that parses, filters, and aggregates log data with a pipeline query language and a live-updating terminal UI. (Rust, 3.8k stars)
- [jless](https://www.trmn.sh/tools/jless.md): Command-line JSON viewer with syntax highlighting, collapsible sections, and vim-inspired navigation commands (Rust, 5.5k stars)
- [jnv](https://www.trmn.sh/tools/jnv.md): Interactive terminal JSON viewer and jq filter editor with auto-completion, using the built-in jaq engine; reads files or stdin. (Rust, 6.1k stars)
- [alphai-tui](https://www.trmn.sh/tools/alphai-tui.md): Terminal stock dashboard with watchlists, candlestick charts, portfolio tracking, news, and company filings. (Rust, 88 stars)
- [htmlq](https://www.trmn.sh/tools/htmlq.md): HTML parser that uses CSS selectors to extract content from HTML files, similar to jq for JSON (Rust, 7.6k stars)

---

Canonical: https://www.trmn.sh/tools/qsv
