# CSV Toolkit

> Manipulate CSV files from the command line — view, filter, sort, select columns, convert CSV to/from JSON, compute statistics, deduplicate, and merge files. Use when the user needs to work with CSV data, inspect a spreadsheet export, clean up tabular data, convert formats, or get quick column stats. Zero external dependencies.

- Skill: `knownasnaffy/csv-toolkit-4` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add knownasnaffy/csv-toolkit-4`
- Raw SKILL.md: https://api.skillmd.com/api/skills/knownasnaffy/csv-toolkit-4/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: knownasnaffy (https://skillmd.com/u/knownasnaffy)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/knownasnaffy/csv-toolkit-4

---


# CSV Toolkit

Command-line CSV manipulation — view, filter, sort, select, convert, stats, dedup, and merge. Pure Python, no dependencies.

## Quick Start

```bash
# View as formatted table
python3 scripts/csv_toolkit.py view data.csv
python3 scripts/csv_toolkit.py view data.csv --head 10

# Filter rows
python3 scripts/csv_toolkit.py filter data.csv -w 'age>30' 'city==Chicago'

# Sort
python3 scripts/csv_toolkit.py sort data.csv --by salary --desc

# Select columns
python3 scripts/csv_toolkit.py select data.csv -c "name,email,salary"

# Convert to JSON
python3 scripts/csv_toolkit.py to-json data.csv -o data.json

# Convert JSON back to CSV
python3 scripts/csv_toolkit.py from-json data.json -o data.csv

# Column statistics
python3 scripts/csv_toolkit.py stats data.csv -c "age,salary"

# Remove duplicates
python3 scripts/csv_toolkit.py dedup data.csv -o clean.csv

# Merge files
python3 scripts/csv_toolkit.py merge file1.csv file2.csv -o combined.csv
```

## Commands

| Command | Description |
|---------|-------------|
| `view` | Display CSV as a formatted table. Use `--head N` / `--tail N` to limit rows. |
| `filter` | Filter rows with `-w` conditions: `col>val`, `col==val`, `col!=val`, `col<=val`. Multiple conditions = AND. |
| `sort` | Sort by column with `--by col`. Add `--desc` for descending. Numeric-aware. |
| `select` | Pick columns with `-c "col1,col2"`. |
| `to-json` | Convert CSV to JSON array of objects. Auto-detects numbers. |
| `from-json` | Convert a JSON array of objects to CSV. |
| `stats` | Column statistics: count, unique values, min/max/mean/median for numeric columns. |
| `dedup` | Remove duplicate rows. |
| `merge` | Concatenate multiple CSV files (same headers). |

## Global Options

| Flag | Description |
|------|-------------|
| `-d, --delimiter` | Field delimiter (default: `,`). Use `-d '\t'` for TSV. |
| `--encoding` | File encoding (default: `utf-8`). |
| `-o, --output` | Write result to file instead of stdout. |

