#+TITLE: Modern CLI Tool Replacements — 2026 Evaluation #+DATE: 2026-06-10 #+DESCRIPTION: Survey of modern Unix-tool replacements; what to adopt, what to skip. Adoption decisions pending. * Current state Arch + Hyprland/foot/zsh, Emacs-centric. Already adopted: eza, zoxide, ripgrep, fd, duf, difftastic, fzf, plus btop (installed already — counts as adopted). bat is in the repos but not installed. Nothing in the adopted set has been superseded as of mid-2026; no replacements recommended there. * Candidates | tool | replaces | verdict | why | packaging | |------------+-----------------+-----------+-------------------------------------------------------------+---------------| | bat | cat/less-ish | adopt | syntax-highlit file views, git diff gutter, fzf previews | extra 0.26.1 | | dust | du | adopt | instant visual tree of what's eating disk | extra 1.2.4 | | dua-cli | du/ncdu | optional | interactive variant of the same job; dust covers most of it | extra 2.34.0 | | hyperfine | time loops | adopt | statistical benchmarking with warmup; ideal for scripts | extra 1.20.0 | | tealdeer | man (lookup) | adopt | <15ms tldr pages; active releases into 2026 | extra 1.8.1 | | doggo | dig/dog | adopt | DoH/DoT/DoQ, table output; dog itself is dead (2020) | extra 1.1.7 | | xh | curl/httpie | optional | httpie syntax, single fast binary; only if you do API work | extra 0.25.3 | | jless | less+jq viewing | optional | great JSON pager; upstream quiet since ~2023 (fx is active) | extra 0.9.0 | | sd | sed (simple) | optional | sane find/replace syntax; stable but low-activity upstream | extra 1.1.0 | | bottom | top | skip | btop already installed and more polished | extra 0.12.3 | | procs | ps | skip | maintained, but btop + pgrep covers it | extra 0.14.11 | | yazi | ranger/mc | skip | excellent and very active, but dired owns this workflow | extra 26.5.6 | | broot | tree/cd-nav | skip | overlaps dired + zoxide + eza --tree | extra 1.57.0 | | gping | ping | skip | a graph adds little over ping/mtr | extra 1.20.1 | | choose | cut/awk fields | skip | tiny win; awk muscle memory already there | extra 1.3.7 | | television | fzf | skip | active and interesting, but no reason to leave fzf | extra 0.15.7 | | ouch | tar/unzip/etc. | optional | one verb for all archive formats; small quality-of-life win | extra 0.8.0 | * Top recommendations - bat — the one gap in the current stack. Highlighted file views with line numbers and git markers, and it slots straight into fzf preview windows and as a MANPAGER/git pager. sharkdp maintains it actively (0.26.x, 2026). Works fine in foot; set BAT_THEME to match the dupre palette once. - dust — answers "what filled this disk" in one command with a proportional tree, where du -sh * | sort needs piping and rereading. Complements duf (filesystems) exactly: duf for mounts, dust for directories. - hyperfine — statistically sound benchmarking (warmup runs, outlier detection, comparison mode). Directly useful for timing archsetup script changes and shell startup (hyperfine 'zsh -i -c exit'). - tealdeer — tldr pages with ~15ms startup, so it's actually faster than recalling a flag. Active through 2026 (1.8.1, fixes landing Jan 2026). Pairs with man rather than replacing it. - doggo — dig with readable output plus DoH/DoT/DoQ support, useful when debugging resolution across wireguard/tailscale where the resolver path is the question. The Rust "dog" it descends from is unmaintained since 2020; doggo is the live one. * Skip list - bottom/procs — btop is already installed and covers both niches better. - yazi — superb tool, wrong user: file management lives in dired. (If ever adopted, previews work in foot via sixel.) - broot — tree navigation already covered by zoxide + dired + eza --tree. - gping — novelty over ping/mtr, no daily win. - choose — not enough over cut/awk to earn a new habit. - television — fzf is adopted, deeply integrated (zoxide, shell widgets), and still the ecosystem default; no migration payoff. - jless — fine to install ad hoc, but upstream is quiescent; fx (v39, active) is the better bet if JSON browsing becomes frequent. - sd — works and is stable, but Emacs query-replace + sed cover the use case. * Sources - https://github.com/tealdeer-rs/tealdeer - https://github.com/mr-karan/doggo - https://github.com/ogham/dog - https://github.com/aristocratos/btop - https://github.com/chmln/sd - https://github.com/PaulJuliusMartinez/jless - https://github.com/alexpasmantier/television - https://itsfoss.com/rust-alternative-cli-tools/ - https://sumguy.com/btop-vs-htop-vs-bottom-top-replacements/ - Local verification: pacman -Si on all candidates (all in Arch extra, 2026-06-10)