# Miller

> BSD-2-Clause named-field CSV/TSV/JSON munging (mlr)

**Category:** DevOps  
**Pricing:** open-source  
**URL:** https://miller.readthedocs.io  
**GitHub:** https://github.com/johnkerl/miller  
**Added:** 2026-09-11

---

## The Hook

Miller is awk/sed/cut/join/sort for name-indexed data when CSV/TSV/JSON lines need verbs, not a database.

## What's Good

BSD-2-Clause. johnkerl/miller (`mlr`). Format-aware pipelines over CSV, TSV, JSON, JSON Lines, and more — put, filter, join, stats, reshape with named fields. Docs at miller.readthedocs.io; source github.com/johnkerl/miller.

## The Catch

Vs jq (JSON filter) and DuckDB (SQL over files): Miller is the *named-field CLI verb chain*, not a full SQL engine and not jq’s JSON DSL. Great for tabular streams; heavy analytics and joins may outgrow mlr into DuckDB/Polars. Distinct from yq’s document-shaped transforms.

## Verdict

BSD-2-Clause tabular CLI. Free forever; munge CSV/TSV/JSON by field name before you open a notebook.
