Back to browse
spreadsheet-tools
officialplatinum (7/8)Clean scan
Spreadsheet data processing — CSV, TSV, JSON with miller and xsv
Install
mayros skill install spreadsheet-tools
mayros skill install [email protected]
README
name: spreadsheet-tools description: Spreadsheet data processing — CSV, TSV, JSON with miller and xsv type: semantic user-invocable: true semantic: skillVersion: 1 permissions: graph: [read, write] memory: [recall, remember] assertions: - predicate: "data:processed" requireProof: false queries: - predicate: "data:processed" scope: agent - predicate: "data:context" scope: agent allowedTools: ["*"] metadata: mayros: requires: bins: [mlr]
spreadsheet-tools
CSV/TSV/JSON data processing with miller (mlr) and xsv. Filter, sort, aggregate, join, and convert structured data files from the command line.
Installation
- macOS:
brew install miller(providesmlrcommand) and optionallybrew install xsv - Ubuntu:
sudo apt install milleror download from https://miller.readthedocs.io - xsv:
cargo install xsvor download binaries from https://github.com/BurntSushi/xsv
miller (mlr) -- Swiss army knife for structured data
# Preview CSV (pretty print)
mlr --icsv --opprint head -n 10 data.csv
# Convert CSV -> JSON
mlr --icsv --ojson cat data.csv
# Convert JSON -> CSV
mlr --ijson --ocsv cat data.json
# Convert CSV -> TSV
mlr --icsv --otsv cat data.csv
# Filter rows
mlr --csv filter '$age > 30' data.csv
# Select columns
mlr --csv cut -f name,email,age data.csv
# Sort by multiple fields (e.g. department ascending, then salary descending)
mlr --csv sort-by -f department -nr salary data.csv
# Group by and aggregate
mlr --csv stats1 -a count,mean,sum -f salary -g department data.csv
# Add computed column
mlr --csv put '$total = $price * $quantity' data.csv
# Rename columns
mlr --csv rename old_name,new_name data.csv
# Remove duplicates
mlr --csv uniq -f email data.csv
# Join two files
mlr --csv join -j id -f lookup.csv data.csv
# Chain operations
mlr --csv filter '$status == "active"' then sort-by -f department -nr salary then cut -f name,department,salary data.csv
# Statistics summary
mlr --csv stats1 -a min,max,mean,median,count -f salary data.csv
xsv (fast CSV toolkit, optional)
# Preview
xsv table data.csv | head -20
# Get stats
xsv stats data.csv | xsv table
# Search
xsv search -s name "Smith" data.csv
# Select columns
xsv select name,email data.csv
# Sort
xsv sort -s salary -N -R data.csv
# Count rows
xsv count data.csv
# Frequency analysis
xsv frequency -s department data.csv
# Join files
xsv join id data.csv id lookup.csv
# Sample random rows
xsv sample 100 data.csv
# Split into chunks
xsv split -s 1000 output_dir data.csv
Safety
- Show row and column counts before processing large files
- For write operations, confirm the output file path before proceeding
- Show a preview of the first 5 rows to verify the data looks correct
- Warn if the output file already exists
Semantic Integration
- Use
skill_assertwithdata:processedto record each completed data operation - Use
skill_memory_contextto recall previous data processing history - Query
data:contextfor metadata about processed datasets (row counts, column names)
Versions
Comments
Sign in to leave a comment.
Loading comments...