From cli-power-skills
Use when working with structured data files (CSV, JSON, YAML, TOML, Parquet) — querying, transforming, filtering, aggregating, or converting between formats
How this skill is triggered — by the user, by Claude, or both
Slash command
/cli-power-skills:data-processingThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- Querying, filtering, or transforming JSON files
| Tool | Purpose | Structured output |
|---|---|---|
| jq | Query and transform JSON | Native JSON |
| yq | Query and transform YAML, TOML, XML | -o json for JSON output |
| gron | Flatten JSON into greppable path.to.key = value lines | --ungron to reverse back to JSON |
| miller (mlr) | Transform CSV/JSON/TSV records with awk-like verbs | --json for JSON output |
| xsv | Fast CSV slicing, searching, joining, statistics | CSV native (pipe to xsv table for display) |
| DuckDB | SQL queries on CSV, JSON, Parquet files | -json flag for JSON output |
jq '.items[] | select(.status == "active")' data.json
jq '[.users[] | {name: .name, email: .email}]' data.json
jq '[.events[] | .type] | group_by(.) | map({type: .[0], count: length})' data.json
yq '.spec.containers[0].image' deployment.yaml
yq -o json config.yaml
yq -p toml '.database.host' config.toml
gron data.json | grep -i "error"
xsv stats data.csv | xsv table
xsv search -s status "active" data.csv
xsv select name,email,created_at users.csv
xsv sort -s revenue -R sales.csv
duckdb -c "SELECT department, COUNT(*) as cnt, AVG(salary) as avg_sal FROM 'employees.csv' GROUP BY department ORDER BY avg_sal DESC"
duckdb -c "SELECT * FROM read_json_auto('events.json') WHERE type = 'error' LIMIT 20"
duckdb -c "SELECT * FROM 'data/*.parquet' WHERE created_at > '2026-01-01'"
mlr --csv filter '$revenue > 1000' then sort-by -nr revenue sales.csv
mlr --icsv --ojson cat data.csv
yq -o json config.yaml | duckdb -c "SELECT key, value FROM read_json_auto('/dev/stdin') WHERE env = 'production'"
Each stage: yq converts YAML to JSON, DuckDB runs SQL on the JSON stream.
gron large.json | grep "\.errors\[" | gron --ungron
Each stage: gron flattens JSON to paths, grep filters, ungron reconstructs valid JSON from matches.
xsv search -s region "EU" sales.csv | duckdb -c "SELECT product, SUM(revenue) as total FROM read_csv_auto('/dev/stdin') GROUP BY product ORDER BY total DESC"
Each stage: xsv filters rows by region, DuckDB aggregates the filtered stream.
duckdb -c "SELECT u.name, u.email, o.total, o.date FROM 'users.csv' u JOIN 'orders.csv' o ON u.id = o.user_id ORDER BY o.date DESC"
jq -r '.records[] | [.name, .score] | @csv' data.json | xsv stats
Each stage: jq extracts fields to CSV format, xsv computes statistics.
json module for one-off JSON transforms — single pipeline vs. multi-line scriptawk/cut for CSV operations — correct CSV parsing, handles quoted fields and escapesawk for format-aware record transformations — understands CSV/JSON headers nativelynpx claudepluginhub ykotik/cli-power-skills --plugin cli-power-skillsParse, transform, clean, and analyze CSV files: auto-detect formats, filter/sort/merge/pivot, generate stats/outliers, with Python (pandas) and JavaScript examples.
Runs SQL queries on CSV/TSV/Excel files using Polars engine via qsv_sqlp. Provides stats, frequency analysis, indexing, search, select, and Parquet export for efficient data exploration.
Processes JSON with jq and YAML/TOML with yq to filter, transform, and query data from configs like Docker Compose, Kubernetes manifests, GitHub Actions workflows, and package.json.