What's new in 6.20.2
- Miller now treats AI agents as first-class users
- There is shell tab-completion for
bashandzsh - There is a new
bytesdatatype, along with base64 encode/decode support
(Note: versions 6.20.0 and 6.20.1 were in error and are not released.)
Miller and AI
Miller now treats AI agents as first-class users. Everything an agent needs to drive Miller well --
discovering what exists, learning your data's shape, validating expressions before running them, and
recovering from errors -- is now a built-in, structured feature of the mlr binary, packaged for
MCP-speaking agents (Claude Code, Claude Desktop, Cursor, ...) via a one-line setup. Your choice of
# Claude
mlr skill install ~/.claude/skills/miller
# Codex and Gemini
mlr skill install ~/.agents/skills/miller
or
# Claude
claude mcp add miller -- mlr mcp
# Codex
codex mcp add miller -- mlr mcp
# Gemini
gemini mcp add miller mlr mcp
See the new Miller and AI docs page for the quick start.
Reference pages:
- https://miller.readthedocs.io/en/latest/ai
- https://miller.readthedocs.io/en/latest/agent-skill
- https://miller.readthedocs.io/en/latest/mcp-server
- https://miller.readthedocs.io/en/latest/ai-support
PRs:
- Machine-readable help catalog,
mlr help --as-json: by @johnkerl in #2099, #2106 - JSON capability index and
mlr whichintent router by @johnkerl in #2107 - Structured verb options, with enum value-sets by @johnkerl in #2111
- Structured error output,
--errors-json, with hints and did-you-mean suggestions by @johnkerl in #2113 - DSL validate/dry-run,
mlr put --explain/mlr filter --explainby @johnkerl in #2131 - New
mlr describeverb: field names, types, cardinality, and value domains of your data in one pass by @johnkerl in #2132 - New
mlr mcpMCP server and agent playbook, with a--no-shellsandbox flag by @johnkerl in #2133 - Roadmap doc by @johnkerl in #2103; "Miller and AI" docs page by @johnkerl in #2134
Shell tab-completion for bash and zsh
Documentation:
https://miller.readthedocs.io/en/latest/shell-completion/
PR:
A first-class bytes type in the DSL
Docs:
- https://miller.readthedocs.io/en/latest/reference-main-data-types/
- https://miller.readthedocs.io/en/latest/reference-dsl-builtin-functions/#base64_encode
- https://miller.readthedocs.io/en/latest/reference-dsl-builtin-functions/#base64_decode
PR:
More features
- New
tail -n +Nandhead -n -Noptions by @farnoy in #2071 - Long-overdue
--mdflag by @johnkerl in #2100 - Windows-arm64 releases by @teo-tsirpanis in #2127
Bug fixes
Documentation
- CSV and JSON troubleshooting tips by @dashitongzhi in #2123, with page-refactor by @johnkerl in #2128
- Document time-conversion thread safety by @dashitongzhi in #2115
- PNG graphics in perf docs for issue-2084 perf mods by @johnkerl in #2095
Internals
- golangci-lint CI workflow by @dashitongzhi in #2076
- Lint fixes bringing staticcheck and errcheck to zero by @johnkerl in #2108, #2110, #2112, #2130
- Strip dead code from pkg/ by @johnkerl in #2121
- CI/actions updates by @johnkerl in #2119 and by @dependabot in #2101, #2102, #2104, #2105, #2114, #2116, #2118, #2124, #2125, #2126
- Dependency bumps by @dependabot in #2117, #2120
New Contributors
- @farnoy made their first contribution in #2071
- @dashitongzhi made their first contribution in #2076
- @teo-tsirpanis made their first contribution in #2127
Full Changelog: v6.19.0...v6.20.0