These tools are not in tools.md. Each one covers a blind spot that standard tooling handles badly. If you have the basics down, these are the next tier.
What it does: Runs a command whenever watched files change.
Killer use case: ls *.go | entr -cr go run . -- restarts your server on every save. -c clears the screen, -r kills and restarts the process.
Install: pacman -S entr
What it does: Language-agnostic file watcher with gitignore support and sane defaults.
Killer use case: watchexec -e rs cargo test -- reruns tests on any .rs change, without listing files manually.
Install: pacman -S watchexec
What it does: Loads and unloads .envrc files automatically when you enter or leave a directory.
Killer use case: Store export DATABASE_URL=... in .envrc; it activates on cd and disappears when you leave. No more forgotten env vars polluting other projects.
Install: pacman -S direnv
Note: Already listed in tools.md under Navigation but omitted from the install line. Details added here.
What it does: Universal version manager (the actively maintained asdf successor). Handles Node, Python, Ruby, Go, Rust toolchains, and 500+ more.
Killer use case: mise use node@22 python@3.12 in a project root writes a .mise.toml that any teammate with mise will honor automatically.
Install: pacman -S mise
What it does: Frecency-based cd -- tracks which directories you visit and weights by frequency and recency.
Killer use case: z proj jumps to ~/dev/some-deep/project/path without typing the full path. Already in tools.md; included here for the workflow detail.
Install: pacman -S zoxide
What it does: Replaces shell history with a SQLite database; adds fuzzy search, timestamps, exit codes, and optional cross-machine sync.
Killer use case: atuin search --exit 1 -- find every command that ever failed. Already in tools.md; included here for the exit-code filter detail.
Install: pacman -S atuin
What it does: Interactive cheatsheet browser. You write .cheat files in a simple syntax and navi gives you a fuzzy-searchable menu that fills in placeholders.
Killer use case: Store your ffmpeg and openssl incantations as cheat entries. navi surfaces them and drops the filled command into your prompt.
Install: pacman -S navi
What it does: Flattens JSON into grep-able assignments (path.to.key = "value"), then reverses the process.
Killer use case: gron api.json | grep '"error"' | gron --ungron -- find and extract any nested key without knowing the schema.
Install: pacman -S gron
What it does: Single binary that queries and mutates JSON, YAML, TOML, XML, and CSV with one unified selector syntax.
Killer use case: dasel -f config.yaml 'server.port' works the same whether the file is YAML or TOML. Stop context-switching between jq/yq/tomlq.
Install: pacman -S dasel
What it does: jq for YAML (and JSON, TOML, XML, CSV).
Killer use case: yq '.services.web.image' docker-compose.yml -- read a Compose file without writing a Python script.
Install: pacman -S yq
What it does: awk/sed/cut/join/sort for CSV, TSV, JSON, and other structured formats in a single tool.
Killer use case: mlr --csv sort -f name then filter '$age > 30' data.csv -- SQL-style operations on flat files without spinning up a database.
Install: pacman -S miller
What it does: jq for HTML. Parses HTML and lets you select elements with CSS selectors.
Killer use case: curl -s https://example.com | pup 'a[href] attr{href}' -- extract all links from a page without BeautifulSoup.
Install: pacman -S pup
What it does: Like pup but closer to the jq interface. More actively maintained.
Killer use case: curl -s https://news.ycombinator.com | htmlq '.storylink' -- scrape headlines from any site.
Install: pacman -S htmlq
What it does: Fast CSV toolkit. xsv is the original; qsv is the maintained fork with more commands.
Killer use case: xsv stats data.csv prints min/max/mean/stddev for every column instantly on a million-row file where Excel would crash.
Install: pacman -S xsv (or build qsv from AUR)
What it does: Syntax-aware structural diff. Understands the grammar of 30+ languages and ignores formatting-only changes.
Killer use case: Rename a variable across a file. Regular diff shows every line changed; difftastic shows only the semantic change.
Install: pacman -S difftastic
Wire it into git: git config diff.external difft
What it does: Batch find-and-replace across files with a live preview before writing.
Killer use case: sad 'OldName' 'NewName' -- **/*.go shows a side-by-side diff of every planned change; you confirm before it touches disk.
Install: yay -S sad (AUR)
What it does: Simpler sed. Uses regex by default, supports literal strings without escaping, reads from file or stdin.
Killer use case: sd 'foo(\w+)' 'bar$1' file.txt -- no doubled backslashes, no cryptic flags.
Install: pacman -S sd
What it does: Simpler cut and awk field selector. Zero-indexed, supports negative indices, handles any whitespace delimiter.
Killer use case: ps aux | choose 10 -- grab the last column. choose 0 2 for first and third.
Install: pacman -S choose
What it does: Shows real-time network bandwidth broken down by process and remote host.
Killer use case: Run it during a slow deploy to see which process is saturating the link and where the traffic is going.
Install: pacman -S bandwhich
What it does: Modern dig replacement. Human-readable output, supports DoH and DoT, colored tables.
Killer use case: doggo krisyotam.com MX @1.1.1.1 -- readable DNS debug without decoding dig's wire-format output.
Install: pacman -S doggo
What it does: Bidirectional data relay between almost any two endpoints (TCP, UDP, Unix sockets, files, serial ports, TLS).
Killer use case: socat TCP-LISTEN:8080,fork TCP:localhost:3000 -- forward a port without iptables. Also useful for poking Unix sockets directly.
Install: pacman -S socat
What it does: Monitors data passing through a pipe and shows throughput, elapsed time, ETA, and a progress bar.
Killer use case: cat huge.sql | pv | mysql mydb -- finally know how far along that import is.
Install: pacman -S pv
What it does: A command queue. Submit jobs; they run one at a time (or N at a time). Jobs persist even if you close the terminal.
Killer use case: Queue five long ffmpeg encodes with tsp ffmpeg ... each. They run sequentially; tsp -l shows the queue.
Install: pacman -S task-spooler
What it does: Wraps any program's stdin with readline editing, history, and tab completion.
Killer use case: rlwrap sqlite3 mydb gives you arrow-key history in sqlite3 without patching sqlite3 itself. Works on any REPL that lacks readline.
Install: pacman -S rlwrap
What it does: Scripted automation for interactive programs. Watches for patterns in output and sends input in response.
Killer use case: Automate an SSH login to a device that requires password auth and then runs a fixed sequence of commands. Where shell scripts give up, expect continues.
Install: pacman -S expect
A collection of small Unix tools that fill gaps in coreutils. Install the whole package: pacman -S moreutils
| Tool | What it does | Killer use case | ||
|---|---|---|---|---|
sponge |
Soaks up stdin, then writes to file | `grep -v bad file | sponge file` -- edit a file in-place without a temp file | |
ts |
Prepends timestamps to each line of stdin | `tail -f app.log | ts '[%Y-%m-%d %H:%M:%S]'` -- timestamped live logs | |
chronic |
Runs a command silently, but shows output if it fails | chronic rsync -av src/ dst/ -- cron jobs that email only on failure |
||
vipe |
Inserts your editor into a pipeline | `curl api | vipe | jq .` -- edit the JSON before passing it downstream |
vidir |
Opens a directory listing in your editor for batch rename/delete | vidir ~/downloads -- rename 40 files as text editing |
||
ifne |
Runs a command only if stdin is non-empty | `find . -name '*.tmp' | ifne mail -s "Stale files" me@me.com` | |
pee |
Sends stdin to multiple commands (tee for pipelines) | pee 'wc -l' 'grep error' < log.txt |
||
combine |
Combines two files line-by-line with a set operation | combine list-a.txt and list-b.txt -- intersection without awk |
||
errno |
Looks up errno values by name or number | errno ENOENT -- readable error reference without man pages |
These ten cover the highest-leverage gaps:
sponge, ts, chronic, and vidir alone are worth the installInstall: pacman -S entr mise difftastic miller gron sd pv socat moreutils navi