Skip to content
Joel Natividad edited this page May 13, 2026 · 4 revisions

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>.md page tells you exactly which flags exist. Use both.

Legend

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

Built-in

Command One-liner
help Show qsv's top-level usage (run qsv help or qsv --help)

See also

Clone this wiki locally