Miller

Miller

A command-line tool that does to CSV, TSV and JSON what awk and sed do to plain text — filter, reshape and transform tabular data without spinning up a Python script.

🔗 Visit Miller
📁 Data & Analytics🗣️ English📅 August 25, 2026

Description

The classic Unix tools awk, sed and cut are fast and universally available, but they treat everything as raw text with no idea what a column header is, which makes them clumsy for structured data like CSV or JSON. Writing a small pandas script instead works, but it's overkill for a quick transformation and pulls in Python plus its dependencies just to reshape a file. Miller sits in between: it's a single, fast command-line binary that understands CSV, TSV and JSON structure natively, so operations like filtering, sorting and joining just work with column names instead of fragile positional indexes.

Miller supports multi-format processing (CSV, TSV, JSON, JSON Lines) with named-field access, format conversion between them, filtering, sorting, aggregation and streaming processing that can handle files larger than available RAM using single-pass algorithms. It ships as a single portable Go binary with zero runtime dependencies. It's free, open source, mature (10,000+ GitHub stars, active commits as recently as this week) and documented at miller.readthedocs.io.

💬 Our review

The short version: if you're stitching together awk, sed, cut and a bit of Python just to filter and reshape a CSV or JSON file, Miller replaces that whole chain with one tool that actually understands column headers and record structure.

What separates Miller from classic Unix text tools is format awareness: instead of treating a CSV as lines of comma-separated text, it operates on named fields, so a filter or sort just references a column name rather than a fragile positional index that breaks if a column gets added. Against pandas or R, Miller's advantage is deployment simplicity — it's a single dependency-free binary you can drop on any server or CI pipeline, with a streaming architecture that can process files bigger than RAM, something pandas struggles with by default. The tradeoff is Miller's own domain-specific language has a real learning curve, and it's not a substitute for a full data-analysis environment when you need statistical modeling, visualization or the breadth of pandas' ecosystem. Excellent for DevOps engineers, data engineers and anyone doing ETL, log processing or database post-processing from the command line; less suited to exploratory data analysis or work needing a rich plotting/statistics ecosystem.

💰 Pricing

GratuitProjet open source, aucune offre payante

📊 Global score

45Average
🌐Availability15/100Faible

1 language · 0 platform

📄Profile75/100Bien

Profile completeness

🤖 AI-enriched data

💰 Pricing model
🆓 Gratuit

Projet open source, aucune offre payante

👥 Target audienceIngénieurs DevOps, ingénieurs et scientifiques data, développeurs faisant de l'ETL, du traitement de logs ou du post-traitement de bases de données
🗣️ Languagesen
🌍 Target countriesInternational (projet open source)
👍

Pros

Comprend nativement la structure CSV/TSV/JSON (colonnes nommées, pas d'index fragile)

Binaire unique sans dépendance, portable sur tout serveur ou pipeline CI

Architecture en streaming, traite des fichiers plus gros que la RAM disponible

Combine les usages d'awk, sed, cut, join et sort en un seul outil

Développement actif (10k+ étoiles, commits récents)

👎

Cons

Langage propre à Miller (DSL) avec une vraie courbe d'apprentissage

Moins riche qu'un environnement complet comme pandas ou R pour l'analyse exploratoire

Pas de calcul distribué natif, traitement sur une seule machine

❓ Frequently asked questions

What is Miller in one sentence?
How much does it cost?
How is it different from awk?
Can it handle files bigger than my RAM?
Does it replace pandas?
Is it worth the money compared to alternatives?
Which tool should you pick for your case?