Cross-platform CLI data transformer — JSON, CSV, YAML, XML. Filter, sort, map, pick, omit, unique and convert between formats. Zero dependencies, runs anywhere Node.js runs (macOS, Windows, Linux).
Transmute is also a cross-platform desktop app (macOS, Windows, Linux) with a visual pipeline builder — free tier: 3 transformations per launch, $19 one-time license.
npx @mahope/transmute people.csv --output jsonOr clone and run locally:
git clone https://github.com/mahope/transmute.git
cd transmute
npm link # makes `transmute` available globallytransmute <file> [options]
cat <file> | transmute [options]Options:
-f, --format <type>— input format: json, csv, yaml, xml (auto-detected)-p, --pipe <json>— transformation pipeline as a JSON array-o, --output <type>— output format: json, csv, yaml, xml, table (default: table)
# CSV → JSON with type coercion (numbers stay numbers)
transmute people.csv -o json
# Filter and sort in one pass
transmute people.csv --pipe '[{"op":"filter","expr":"item.age > 26"},{"op":"sort","by":"age","dir":"desc"}]' -o csv
# YAML → JSON from stdin
cat config.yaml | transmute --format yaml --output json
# JSON → XML
echo '{"a":1}' | transmute --output xml| Op | Example |
|---|---|
| filter | {"op":"filter","expr":"item.age > 18"} |
| map | {"op":"map","expr":"({...item, active: true})"} |
| pick | {"op":"pick","fields":["name","email"]} |
| omit | {"op":"omit","fields":["password"]} |
| sort | {"op":"sort","by":"name","dir":"asc"} |
| unique | {"op":"unique","by":"email"} |
| group | {"op":"group","by":"city"} |
| add | {"op":"add","fields":{"total":"item.price * item.qty"}} |
| join | {"op":"join","on":"id","keep":"left","with":[...]} |
| rename | {"op":"rename","mapping":{"qty":"quantity"}} |
| flatten | {"op":"flatten","field":"items"} |
| head / tail / count | {"op":"head","n":5} · {"op":"count"} |
node test/test.js- Private by default — everything runs locally, your data never touches a server
- Zero dependencies — one Node.js file, no install bloat
- Pipelines — chain filter → map → sort → convert in a single pass
- Cross-platform — macOS, Windows, Linux
MIT