-
Notifications
You must be signed in to change notification settings - Fork 105
Command Reference
Tier: Beginner
Every qsv command, grouped by category. This page is the index — each row links to the category page (workflow-level discussion + non-trivial real-world example) and to the canonical per-command help in /docs/help/ (flags, arguments, full examples).
The exact set of commands in your binary depends on the variant and its enabled feature flags — run qsv --list to see what's available.
How to read this table. The category page tells you when to reach for a command and how it composes. The
/docs/help/<cmd>.mdpage tells you exactly which flags exist. Use both.
Commands inherit symbols from the README legend. The most useful ones to know:
- 📇 Faster with an index. Create one with
qsv index <file>. - 🚀 Multithreaded by default (even without an index).
- 🏎️ Multithreaded when an index exists.
- 🐻❄️ Powered/accelerated by Polars.
- 🤯 Loads entire file into memory (consider streaming alternatives for huge files).
- 🪄 "Automagical" — uses the stats / frequency cache to work smarter.
- 📚 Supports runtime lookup tables.
- 🌐 Has remote / URL options.
- 🔣 Requires UTF-8 input.
- 👆 Has the powerful column selector syntax — see
select. - ✨ Behind a feature flag — see Binary Variants and
docs/FEATURES.md.
Selection & Inspection — category page
Daily-driver commands for looking at and slicing a CSV.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| headers | 🗄️ | Show column names (and union across many files) | docs/help |
| count | 📇🐻❄️🏎️ | Row count (instant with an index) | docs/help |
| sample | 📇🏎️🌐 | Random sample with 8 methods (reservoir, indexed, bernoulli, systematic, stratified, weighted, cluster, timeseries) | docs/help |
| slice | 📇🗃️🏎️ | Slice by row range | docs/help |
| select | 👆 | Pick / re-order / drop columns | docs/help |
| search | 📇🏎️👆 | Filter rows by regex | docs/help |
| searchset | 📇🏎️👆 | Run many regexes in a single pass (PII scanning) | docs/help |
| flatten | Show one record per line (vertical view) | docs/help | |
| table | 🤯 | Elastic-tab table view + leftendtab / Fixed-Width output | docs/help |
| lens | ✨🗃️🐻❄️🖥️ | Interactive viewer (csvlens) — CSV, Parquet, Arrow, JSONL | docs/help |
| clipboard | ✨🖥️ | Read from / write to OS clipboard | docs/help |
| sniff | 📇🤖🌐 | Infer delimiter, headers, schema, MIME type — even for remote files | docs/help |
Transform & Reshape — category page
Clean, rename, sort, reshape — the pre-analysis layer.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| apply | ✨📇🧠🤖🚀🔣👆 | String/date/math/currency/NLP transformations | docs/help |
| applydp | 📇🚀🔣👆 | Slim apply for DataPusher+ (qsvdp only) |
docs/help |
| behead | Drop the header row | docs/help | |
| cat | 🗄️ | Concatenate CSVs by row or column | docs/help |
| datefmt | 📇🚀👆 | Reformat dates (19 input formats recognized) | docs/help |
| edit | Update a single cell at row × column | docs/help | |
| enum | 👆 | Add a row-number / UUID / constant column | docs/help |
| explode | 🔣👆 | Split a multi-valued column into multiple rows | docs/help |
| fill | 👆 | Fill missing values (forward, backward, constant) | docs/help |
| fixlengths | Pad or truncate ragged rows | docs/help | |
| fmt | Reformat delimiters / terminators / quoting | docs/help | |
| implode | 😣👆 | Inverse of explode — collapse rows by key | docs/help |
| input | Normalize: encoding, comments, trim, skip preamble | docs/help | |
| pseudo | 🔣👆 | Pseudonymize a column with incremental IDs | docs/help |
| rename | Rename columns | docs/help | |
| replace | 📇🏎️👆 | Regex replace across fields | docs/help |
| reverse | 📇🤯 | Reverse row order (constant memory with index) | docs/help |
| safenames | Make column names DB-/CKAN-safe | docs/help | |
| sort | 🤯🚀👆 | Lex / natural / numeric / unique / random sort | docs/help |
| sortcheck | 👆 | Verify sort order; report duplicates and breaks | docs/help |
| transpose | 🤯👆 | Swap rows ↔ columns | docs/help |
Aggregation & Statistics — category page
Numbers, distributions, dedup, ext-* commands.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| stats | 📇🤯🏎️👆🪄 | 47 summary stats + guaranteed type inference | docs/help |
| moarstats | 📇🏎️ | +55 more stats (outliers, robust, bivariate) | docs/help |
| frequency | 📇😣🏎️👆🪄 | Frequency distribution per column | docs/help |
| pragmastat | 📇🤯🪄 | Pragmatic stats (date/datetime aware) | docs/help |
| dedup | 🤯🚀👆 | Drop duplicate rows (streaming & full) | docs/help |
| extdedup | 👆 | On-disk dedup for files > RAM | docs/help |
| extsort | 📇🚀👆 | Multithreaded external merge sort | docs/help |
Joins & Set Ops — category page
Combine, exclude, partition, split.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| join | 📇😣👆 | In-memory inner/outer/cross/anti/semi joins | docs/help |
| joinp | ✨🐻❄️🚀🪄 | Polars-powered: non-equi, asof, larger-than-RAM | docs/help |
| exclude | 📇👆 | Remove rows of one CSV from another | docs/help |
| partition | 👆 | Split into one file per value of a column | docs/help |
| split | 📇🏎️ | Split by rows / chunks / size (multithreaded with index) | docs/help |
SQL & Polars — category page
Polars LazyFrame, SQL, pivots, score-before-run.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| sqlp | ✨📇🗄️🐻❄️🚀🪄 | Polars SQL across CSVs/Parquet/JSONL/Arrow | docs/help |
| joinp | ✨🐻❄️🚀🪄 | Polars joins (see Joins category) | docs/help |
| pivotp | ✨🐻❄️🚀🪄 | Pivot with smart aggregation auto-selection | docs/help |
| scoresql | ✨🐻❄️🪄 | Score a SQL query BEFORE running it (Polars / DuckDB modes) | docs/help |
Validation & Schema — category page
Infer, validate, sniff.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| validate | 📇🗄️🚀🌐📚 | JSON Schema 2020-12 validation (up to 780k rows/sec) | docs/help |
| schema | 📇😣🐻❄️🏎️👆🪄 | Infer JSON Schema 2020-12 or Polars schema | docs/help |
| sniff | 📇🤖🌐 | Quick metadata inference (see Selection category) | docs/help |
Conversion & I/O — category page
Move between formats: Parquet, Excel, ODS, JSON, JSONL, SQLite, Postgres, GeoJSON, Snappy.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| excel | 🚀 | Export Excel/ODS sheets to CSV | docs/help |
| to | ✨🗄️🐻❄️🚀 | CSV → Parquet, SQLite, Postgres, Excel, ODS, Data Package | docs/help |
| json | 👆 | JSON array → CSV | docs/help |
| jsonl | 🚀🔣 | JSONL → CSV | docs/help |
| tojsonl | 📇😣🗃️🚀🔣🪄 | CSV → JSONL with smart type inference | docs/help |
| snappy | 🚀🌐 | Streaming Snappy compress/decompress | docs/help |
| geoconvert | ✨🌎 | Spatial formats ↔ CSV (GeoJSON, SHP, SVG…) | docs/help |
| prompt | ✨🐻❄️🖥️ | OS file-picker dialog | docs/help |
| clipboard | ✨🖥️ | OS clipboard I/O (see Selection category) | docs/help |
Geospatial — category page
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| geocode | ✨📇🧠🚀🌐🔣👆🌎 | Forward / reverse geocode (Geonames + Maxmind), 360k/sec | docs/help |
| geoconvert | ✨🌎 | Spatial format conversions | docs/help |
HTTP & Web — category page
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| fetch | ✨📇🧠🌐 | HTTP GET per row, HTTP/2 flow control, jaq, Redis/disk cache | docs/help |
| fetchpost | ✨📇🧠🌐⛩️ | HTTP POST per row, MiniJinja body templating | docs/help |
Scripting (Luau / Python) — category page
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| luau | ✨📇🌐🔣📚 | Luau 0.720 DSL: BEGIN/MAIN/END, lookup tables, random access | docs/help |
| py | ✨📇🔣 | Python expression per row (requires Python 3.10+) | docs/help |
| foreach | ✨ | Run a shell command per row | docs/help |
| template | 📇🚀🔣📚⛩️ | MiniJinja-render CSV rows into any text format | docs/help |
Indexing, Compression & Diff — category page
Performance primitives.
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| index | Build an index for instant random access | docs/help | |
| diff | 🚀 | Diff two CSVs (1M × 9 in <600 ms) | docs/help |
| blake3 | 🚀 | BLAKE3 hash for cache keys / pipeline gating | docs/help |
| extsort | 📇🚀👆 | External merge sort (see Aggregation category) | docs/help |
| extdedup | 👆 | On-disk dedup (see Aggregation category) | docs/help |
| snappy | 🚀🌐 | Streaming Snappy compression (see Conversion category) | docs/help |
AI & Documentation — category page
| Command | Symbols | One-liner | Help |
|---|---|---|---|
| describegpt | 📇🗃️🤖🌐🪄📚⛩️ | Neuro-symbolic data dictionary + SQL RAG via any OpenAI-compatible LLM | docs/help |
| color | ✨🤯🐻❄️🖥️ | Pretty colorized table that fits the terminal | docs/help |
| pro | Bridge to the qsv pro API | docs/help |
| Command | One-liner |
|---|---|
help |
Show qsv's top-level usage (run qsv help or qsv --help) |
- README — full command catalog with legend
-
/docs/help/TableOfContents.md— alphabetical command index - Cookbook — task-oriented recipes
- Binary Variants — which commands exist in which build
- Performance Tuning
- Environment Variables
qsv — GitHub · Releases · Discussions · qsv pro · Try it online · Benchmarks · datHere · DeepWiki · Dual-licensed MIT / Unlicense
Edit this page: Contributing to the Wiki
Home · Why qsv? · Tier legend
- All Commands (index)
- Selection & Inspection
- Transform & Reshape
- Aggregation & Statistics
- Joins & Set Ops
- SQL & Polars
- Validation & Schema
- Conversion & I/O
- Geospatial
- HTTP & Web
- Scripting (Luau / Python)
- Indexing, Compression & Diff
- AI & Documentation