Infra Atlas · Toolbox

Shell & Productivity.

The modern shell stack. Pick three of these and your $PATH stops feeling like 1995. Most are single binaries, most are written in Rust or Go, all replace something you have been quietly tolerating for a decade. ★ marks the picks that change the way you work the moment you install them.

Form
Language
Maturity
Picks
fzf replaces nothing — it adds fuzzy finding to everything

The fuzzy finder. Bind to Ctrl-R and your shell history becomes searchable. Compose with anything that pipes — files, git branches, kubernetes contexts. The single most life-changing CLI tool on this list.

CLI Go mature
junegunn/fzf
ripgrep (rg) replaces grep

Recursive grep, ~10× faster, ignores .gitignore by default. Coloured output, smart-case search, Unicode. Once installed, you alias grep=rg and forget grep exists.

CLI Rust mature
BurntSushi/ripgrep
fd replaces find

fd '\.py$' instead of find . -name '*.py'. Sane defaults, regex, colourised, parallel. Pairs naturally with fzf.

CLI Rust mature
sharkdp/fd
zoxide replaces cd

A cd that learns your habits. After visiting ~/work/projects/infraatlas a few times, z infra takes you there from anywhere. Sounds trivial, ends up saving a minute every hour.

CLI Rust mature
ajeetdsouza/zoxide
atuin replaces shell history (.bash_history / .zsh_history)

SQLite-backed shell history with sync across machines. Search by command, host, directory, exit code. Replaces Ctrl-R with something searchable and shareable across laptops.

CLI Rust mature
atuinsh/atuin
starship replaces handcrafted PROMPT scripts

Cross-shell prompt — shows git branch, dirty state, kubernetes context, AWS profile, language version, all conditionally. TOML config. Fast (Rust), portable across bash / zsh / fish.

CLI Rust mature
starship/starship
mise replaces asdf + nvm + pyenv + rbenv + tfenv

One version manager for every runtime — Node, Python, Go, Ruby, Java, Terraform, kubectl. Per-project .mise.toml auto-switches versions on cd. Fast (Rust). The asdf successor everyone is migrating to.

CLI Rust mature
jdx/mise
direnv replaces manually exporting env vars per project

Auto-loads .envrc when you cd into a directory, unloads on exit. AWS profiles, secrets, language paths — anything env-shaped. Pairs naturally with mise.

CLI Go mature
direnv/direnv
chezmoi replaces a bare git repo of dotfiles

Dotfile manager with templates, secrets integration, per-machine variations. chezmoi apply on a new laptop bootstraps your shell, editor, git config, ssh keys. Supports Go templates, age/PGP encryption.

CLI Go mature
twpayne/chezmoi
zellij replaces tmux

Modern terminal multiplexer — sane defaults, layouts, plugin system. The status bar tells you the keybindings, so you do not need to memorise Ctrl-B the hard way. Strong choice for tmux refugees.

TUI Rust emerging
zellij-org/zellij
lazygit replaces tig / git CLI for daily ops

Git TUI — stage hunks, amend, rebase, cherry-pick, squash. Everything is one key press. Once installed, the pattern of "git status / git add / git commit" gets replaced by lg.

TUI Go mature
jesseduffield/lazygit
helix replaces neovim for the no-config crowd

Modal editor inspired by vim and Kakoune. Selection-first model (verb after noun, reading more like English). Built-in LSP, tree-sitter, no plugins required out of the box.

TUI Rust emerging
helix-editor/helix
yazi replaces ranger / nnn

Fast file manager TUI with image previews (in Kitty / iTerm / wezterm) and async I/O. Vim-style keys, plugin system. If you do enough work in directory trees to want a TUI for it, this is the modern pick.

TUI Rust emerging
sxyazi/yazi
gum replaces read / select / printf in shell scripts

TUI building blocks from Charm. gum input, gum choose, gum spin turn shell scripts into something that looks like an application. Especially useful for bootstrappers and CLI prompts.

CLI Go mature
charmbracelet/gum
bat replaces cat

cat with syntax highlighting, git diff markers, line numbers, paging. alias cat=bat and read source files like a civilised human.

CLI Rust mature
sharkdp/bat
delta replaces git's default diff viewer

Syntax-highlighted, side-by-side diffs as your git pager. Drop two lines into ~/.gitconfig and every git diff / git log -p becomes readable.

CLI Rust mature
dandavison/delta
*

This department leans heavily Rust — that is not ideology, it is just where the shell-tool renaissance has happened over the last few years. Most of these tools have direct GNU/BSD ancestors and improve on them in measurable ways (speed, defaults, output). Try one a week; you will not roll any back.