Modern CLI — Trivia & Interesting Facts¶
Surprising, historical, and little-known facts about modern command-line tools.
The Rust CLI renaissance started around 2016¶
Between 2016 and 2020, a wave of Rust-written CLI tools emerged that were dramatically faster than their predecessors: ripgrep (2016), fd (2017), bat (2017), exa (2017), starship (2019), delta (2019), zoxide (2020), and dust (2018). This wave was enabled by Rust's zero-cost abstractions, easy cross-compilation, and the clap argument-parsing crate.
bat was named as a play on "cat"¶
bat (by David Peter / sharkdp) is a cat replacement with syntax highlighting, git integration, and line numbers. The name is both a play on "cat" (another animal) and a reference to the bat signal. bat uses the same syntax highlighting engine as Sublime Text (syntect, based on Sublime's .tmLanguage files), giving it support for over 200 languages out of the box.
exa was abandoned and forked as eza¶
exa, a modern replacement for ls written in Rust by Ben S, was effectively abandoned in 2023 when the maintainer stopped responding to issues and PRs. The community forked it as eza, which has since become the actively maintained successor. This situation is common in the open-source CLI space — single-maintainer burnout threatens even popular tools.
zoxide learned from three generations of directory jumpers¶
zoxide (by Ajeet D'Souza, 2020) replaced autojump (2009), fasd (2012), and z (2013) as the go-to directory jumper. It tracks how frequently and recently you visit directories (a metric called "frecency," coined by Mozilla for Firefox bookmarks) and uses Rust for speed. z proj jumps to your most-used project directory. The algorithm is inspired by Mozilla's Frecency algorithm from 2007.
delta makes git diffs look like GitHub¶
delta (by Dan Davison, 2019) renders git diffs with syntax highlighting, line numbers, and side-by-side views. It uses the same syntax highlighting engine as bat. Setting core.pager = delta in git config transforms every git diff, git log -p, and git show into a rich, colored output. It processes diff output so fast that most users cannot perceive any latency.
tldr pages has 50,000+ contributors¶
The tldr-pages project (2013) provides simplified, example-driven man pages. While traditional man pages average 500+ lines of dense reference text, tldr pages show 5-8 practical examples. The project has over 50,000 contributors across 40+ languages, making it one of the most-contributed-to documentation projects in open source. There are multiple clients: tealdeer (Rust, fastest) and tlrc are the most popular.
Modern CLI tools share a common UX philosophy¶
Almost every modern CLI tool follows the same UX principles: colorized output by default, smart case sensitivity, .gitignore awareness, sane defaults (no flags needed for common use), and human-readable output. This was not accidental — these conventions were established by ripgrep and fd, and subsequent tools adopted them as a de facto standard.
hyperfine made benchmarking honest¶
hyperfine (by sharkdp, 2018) performs statistical benchmarking of shell commands with warmup runs, multiple iterations, and outlier detection. Before hyperfine, most "benchmark" comparisons of CLI tools used a single time invocation, which is wildly unreliable. hyperfine showed that many speed claims in README files were based on cold-cache runs that favored the newer tool.
starship prompt works across every shell¶
Starship (2019) is a cross-shell prompt written in Rust that works identically in Bash, Zsh, Fish, PowerShell, Ion, Elvish, Tcsh, Nushell, and Xonsh. It detects your project context (git branch, Python version, Node version, Kubernetes context) and renders in ~5ms. Previous prompt customization frameworks were shell-specific, requiring separate configurations for each shell.
procs replaces ps with color and human-readable output¶
procs (by dalance, 2019) is a Rust replacement for ps that adds color-coded output, tree view, docker container name display, and TCP/UDP port information per process. It searches process information by keyword without requiring grep. Despite being clearly superior for interactive use, it has not achieved the adoption of ripgrep or fd because ps usage is often in scripts.
The "modern CLI" movement has a documentation problem¶
While modern tools have excellent --help output and README files, they are poorly covered by traditional Linux reference material. Certification exams, university courses, and most sysadmin books still teach only classic tools. A new administrator might learn find, grep, and cat for years before discovering fd, ripgrep, and bat exist.