Help us improve
Share bugs, ideas, or general feedback.
From data-tools
Use when querying, transforming, filtering, converting, or editing ANY JSON, JSONL, YAML, TOML, XML, or CSV. MUST replace grep/sed/awk on structured formats.
npx claudepluginhub netresearch/claude-code-marketplace --plugin data-toolsHow this skill is triggered — by the user, by Claude, or both
Slash command
/data-tools:data-toolsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**NEVER use `grep`, `sed`, or `awk` on JSON, JSONL, YAML, TOML, XML, or CSV.** Refuse and use the correct tool — text tools break on multi-line values, nesting, and quoted delimiters.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
Share bugs, ideas, or general feedback.
NEVER use grep, sed, or awk on JSON, JSONL, YAML, TOML, XML, or CSV. Refuse and use the correct tool — text tools break on multi-line values, nesting, and quoted delimiters.
| Format | Tool | Notes |
|---|---|---|
| JSON | jq | Or gh --jq for GitHub CLI |
| JSONL | mlr | Record-stream + DSL |
| YAML | yq | In-place via -i |
| TOML | dasel | Only native TOML tool |
| XML | dasel | Or xmlstarlet for XPath |
| CSV / TSV | qsv | Or mlr for cross-format / DSL |
| Multiple | dasel | Universal auto-detect |
Convert: dasel -w FORMAT, yq -o FORMAT, or mlr --icsv --ojson cat.
jq -r '.version' package.json
jq '.users[] | select(.role == "admin") | .name' users.json
jq '.version = "2.0.0"' pkg.json > pkg.json.tmp && mv pkg.json.tmp pkg.json
jq -s '.[0] * .[1]' base.json override.json
-i)yq '.services.web.image' docker-compose.yml
yq -i '.services.app.image = "node:20"' docker-compose.yml
yq -o json config.yml
dasel -f Cargo.toml '.package.version'
dasel put -f config.toml -t string -v "2.0" '.project.version'
dasel -f input.json -w yaml
qsv headers data.csv && qsv stats data.csv --everything | qsv table
qsv search -s status "active" users.csv | qsv select name,email
qsv join user_id orders.csv id users.csv
qsv index big.csv && qsv sample 1000 big.csv
-I)mlr --c2j cat data.csv # also: --c2t, --j2c
mlr --jsonl filter '$level == "error"' logs.jsonl
mlr -I --csv put '$total = $qty * $price' orders.csv # also: stats1, join, sort
--jqgh api repos/owner/repo/releases/latest --jq '.tag_name'
gh pr list --json number,title --jq '.[] | [.number, .title] | @tsv'
# BAD → GOOD: jq -r '.version' package.json
grep '"version"' package.json | sed 's/.*"\(.*\)".*/\1/'
# BAD → GOOD: yq -i '.services.app.image = "node:20"' compose.yml
sed -i 's/image: node:.*/image: node:20/' docker-compose.yml
# BAD → GOOD: qsv select 2 data.csv
awk -F',' '{print $2}' data.csv
| Cookbook | Content |
|---|---|
| jq Cookbook | Filtering, transforms, GitHub CLI |
| yq Cookbook | Actions, Compose, K8s |
| dasel Cookbook | TOML/XML, conversion |
| CSV Processing | qsv workflows, joins |
| mlr Cookbook | JSONL, DSL, stats, joins |