Help us improve
Share bugs, ideas, or general feedback.
From hatch3r
Fast CSV toolkit with 80+ commands for slicing, searching, joining, and stats. Streams records lazily for datasets exceeding RAM. Uses `qsv`.
npx claudepluginhub hatch3r/hatch3rHow this skill is triggered — by the user, by Claude, or both
Slash command
/hatch3r:hatch3r-cli-qsvThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
Manipulates CSV data with csvlook, csvsql, csvjoin, csvstat. Streams records lazily; handles datasets larger than RAM. Invoke via csvlook.
Guides qsv-based CSV wrangling with standard workflow order, tool selection matrix for tasks like filtering/joining/aggregating, selection syntax, and pipeline patterns for cleaning/profiling.
Parse, transform, clean, and analyze CSV files: auto-detect formats, filter/sort/merge/pivot, generate stats/outliers, with Python (pandas) and JavaScript examples.
Share bugs, ideas, or general feedback.
Fast CSV toolkit (slice, search, join, stats, 80+ commands) — actively-maintained xsv successor
Reach for qsv when the task is in the data category and the agent would otherwise call an MCP tool or read large outputs into context.
qsv is a drop-in superset of xsv — every xsv sub-command name and flag works under qsv, plus 50+ additional commands (apply, fetch, validate, tojsonl, sqlp, etc.). The upstream BurntSushi/xsv repository was archived on 2025-04-24; jqnatividad/qsv is the active fork with regular releases.
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB. Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
qsv stats huge.csv
Per-column min/max/mean/stddev/cardinality — single streaming pass over the file.
qsv select name,email,active records.csv
Project a subset of columns without rewriting; output stays CSV for downstream tools.
qsv sort -s amount records.csv | qsv slice -e 100
Sort by amount then take the first 100 rows — composable pipe; both stages stream.
qsv frequency -s status events.csv
Tabulate value counts for a column; output is itself CSV, parsable by the next step.
qsv search -s email '@example\.com$' users.csv
Regex-filter a column — much cheaper than loading the whole file into a SQL engine.
qsv join id orders.csv id customers.csv > joined.csv
Hash join two CSVs on a common column without spinning up DuckDB.
qsv join is hash-only and untyped; use DuckDB.jq/DuckDB instead of CSV-converting first.| Tool | When to prefer |
|---|---|
| DuckDB | Aggregations, joins, or non-CSV inputs (Parquet/JSON). |
Miller (mlr) | Need TSV/JSON-Lines support or per-record transforms in the same tool. |
| csvkit | Want CSV-to-SQL or CSV-to-JSON conversions out of the box. |
Verify with:
command -v qsv
Install (mac):
# brew
brew install qsv
Homepage: https://github.com/jqnatividad/qsv