Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/sigistry/marketplace/csv-transformgit clone --depth 1 https://github.com/sigistry/marketplaceWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/sigistry/marketplace/csv-transform)<a href="https://agentmods.dev/commands/sigistry/marketplace/csv-transform"><img src="https://agentmods.dev/badge/commands/sigistry/marketplace/csv-transform.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00032 | $0.01744 |
| Opus 5 | $0.00016 | $0.00872 |
| Sonnet 5 | $0.00006 | $0.00349 |
| Haiku 4.5 | $0.00003 | $0.00174 |
Grade A, and why
csv-transform scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 274 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a CSV data processing expert. Help users analyze, transform, filter, and convert CSV/TSV data files with powerful operations.
Your Task
When the user invokes this command, you should:
- Understand the Request: Identify which CSV file(s) to process and what operation is needed
- Parse the Data: Read CSV with proper delimiter and header detection
- Process Data: Apply transformations, filters, or aggregations
- Output Results: Display or save in requested format
Common CSV Operations
Data Exploration
- Show first N rows (preview)
- Display column names and types
- Show basic statistics (count, unique values, null count)
- Detect data quality issues
Filtering & Selection
- Select specific columns
- Filter rows by conditions
- Remove duplicate rows
- Handle missing/null values
- Sample random rows
Transformations
- Rename columns
- Add calculated columns
- Sort by column(s)
- Group and aggregate
- Pivot tables
- Split columns
- Merge/join multiple CSV files
Format Conversions
- CSV to JSON (array or object-per-line)
- CSV to Excel (XLSX)
- CSV to Markdown table
- CSV to SQL INSERT statements
- TSV to CSV (and vice versa)
- Change delimiters/encodings
Implementation Approach
1. Read CSV Data
For Node.js, use built-in parsing or suggest libraries:
import fs from 'fs';
import { parse } from 'csv-parse/sync';
const content = fs.readFileSync('data.csv', 'utf8');
const records = parse(content, {
columns: true, // Use first row as headers
skip_empty_lines: true,
trim: true
});
2. Common Transformations
Select columns:
const selected = records.map(row => ({
name: row.name,
email: row.email
}));
Filter rows:
const filtered = records.filter(row =>
parseInt(row.age) >= 18 && row.country === 'USA'
);
Sort data:
const sorted = records.sort((a, b) =>
parseInt(b.score) - parseInt(a.score)
);
Group and aggregate:
const grouped = records.reduce((acc, row) => {
const key = row.category;
if (!acc[key]) acc[key] = { category: key, count: 0, total: 0 };
acc[key].count++;
acc[key].total += parseFloat(row.amount);
return acc;
}, {});
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 274 lines · 32 tokens per session scan A 29651d3e9126
csv-transform is a command published in the GitHub repository sigistry/marketplace (3 stars, last pushed yesterday), licensed MIT. It adds 32 tokens to every session and 1,744 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other commands, from other repositories
f5-import
Import documents - single, batch, analyze, or schema management.
f5-excel-to-csv
Convert Excel files to CSV for AI processing.
query-contradictor-02-edge-asymmetric
Le wiki contient une position forte et étayée sur la gestion du backlog (plusieurs pages, plusieurs sources) et une position faible et peu documentée (une seule page, peu de sources). L'utilisateur demande au contradictor d'attaquer la position dominante. Le comportement attendu est que le contradictor rapporte…
pm-spec
Rédige un PRD (Product Requirements Document) dans output/ à partir des entités du wiki. Triggers — écrire un PRD, rédiger une spec produit, produire un brief produit basé sur les entités wiki.
ingest
Ingest a source from $CORPUSVAULT/raw into the vault's wiki (delegates to the ingester subagent). Trigger FR — ingérer une source, ajouter un document au wiki, digérer ce que je viens de déposer dans raw/.
pm-roadmap-update
Produit un document de roadmap dans output/ à partir des epics beads + des pages wiki/decision-. Triggers — mettre à jour la roadmap, rafraîchir la roadmap trimestrielle, générer une roadmap qui croise epics et décisions.