Single-file reference for modern CLI tooling, terminal workflow design, installation rules, and maintenance scripts.
- System Principles
- Core CLI Kit
- Experimental Tools
- Terminal & Shell Ecosystem
- Navigation & File Discovery
- Fuzzy Finding & Preview
- History & Completion
- Git & Version Control
- System Monitoring
- Networking & API
- DevOps & Cloud
- Productivity & Automation
- Installation Guide
- Maintenance Scripts
- System tools →
apt(base OS utilities, stable packages) - Official sources → Docker, Cloudflare, Kubernetes, Tailscale, etc. (vendor-managed repos)
mise→ development tool runtime manager (installed via official APT repo)- Developer CLI tools → installed via
mise use -g <tool>
export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" export XDG_STATE_HOME="$HOME/.local/state" export XDG_CACHE_HOME="$HOME/.cache"
fastfetch
htop
fzf (television is also must checkout with some config or default)
fd
sd
ripgrep (rg)
duf
dust
ncdu
age
eza
jq
yq
zoxide
yazi
bat
xh
curlie (optional, curl & xh works)
tldr
delta (optional, hunk alternative if needed)
lazygit
lazydocker (if needed)
zip (ouch a single alternative for all types)
unzip
chezmoi (dotfile manager with templating)
viddy (modern watch replacement)
broot (interactive tree navigation alternative)
jless (JSON viewer)
logdy (log streaming UI)
act (run GitHub Actions locally)
trippy (traceroute + ping TUI)
sshs (tui for ssh configs) atac (posting rust alternative for api testing)
zellij (tmux alternative, modern terminal multiplexer)
stow (dotfile symlinks)
television (fuzzy finder TUI alternative to fzf in some workflows)
gdu (fast disk usage analyzer)
age (modern encryption tool replacing gpg use cases in simple flows)
herdr (agent/AI terminal multiplexer concept tool)
vimium (browser keyboard navigation extension)
shortcat (OS-level keyboard navigation tool)
direnv (auto-load env per directory)
dotenvx (secure env file management with encryption)
sesh (session manager for terminals)
sessionx (session management tooling)
wezterm (GPU-accelerated, highly configurable)
ghostty (modern fast terminal emulator)
Windows Terminal (Microsoft multiplexer terminal UI)
alacritty (minimal GPU terminal)
kitty (feature-rich GPU terminal)
bash (default POSIX-compatible shell)
zsh (feature-rich interactive shell)
fish (user-friendly shell with autosuggestions)
nushell (structured data shell)
pwsh (PowerShell cross-platform shell)
JetBrains Mono Nerd Font (current primary choice)
Hack Nerd Font
Fira Code Nerd Font
starship (cross-shell prompt with git + context awareness)
zoxide (smart directory jumping, learns usage patterns)
fd (fast file search, simpler than find, respects .gitignore)
ripgrep / rg (fast recursive search engine, grep replacement)
eza (modern ls replacement with icons, git status, tree view)
fzf (universal fuzzy finder for files, history, git, processes)
bat (syntax highlighted file viewer, used for previews in fzf)
Key concept: pipe-anything → interactive selection → return result to shell
PSReadLine (PowerShell history + Ctrl+R search)
fzf history search (interactive shell history filtering)
atuin (optional: persistent distributed shell history database)
carapace (unified completion engine across CLI tools)
(for unsupported tools generate bash-completion scripts or use bridge for pwsh)
lazygit (interactive git UI for staging, commits, branches)
gitui (alternative git TUI)
delta (syntax-highlighted diff viewer replacing plain diff)
hunk (experimental diff viewer / patch explorer)
htop (classic process viewer)
btop (modern enhanced system monitor)
procs (modern ps replacement with readable output)
duf (modern df replacement for disks)
dust (modern du replacement for directory sizes)
dozzle (real-time Docker log viewer UI)
xh (HTTP client, curl alternative with better UX)
curlie (curl with HTTPie-style usability)
posting (Postman-like terminal API client)
doggo (DNS lookup tool)
bandwhich (per-process network bandwidth monitor)
tailscale (mesh VPN overlay network)
netbird (alternative mesh VPN with routing + UI features)
trippy (network diagnostics: traceroute + ping combined TUI)
docker + lazydocker (container management + UI)
kubectl + k9s (Kubernetes CLI + terminal dashboard)
aws CLI / azure CLI / gcloud CLI (cloud resource management)
terraform (infrastructure as code)
cloudflared (Cloudflare tunnel agent)
dive (inspect docker image layers)
gh (GitHub CLI)
skopeo (container image inspection without pulling)
direnv (auto environment loading per directory)
dotenvx (secure env file encryption + management)
sd (modern sed replacement for find/replace)
tldr / tealdeer (simplified command help pages)
pueue (background task queue system)
miniserve (quick HTTP file server)
espanso (text expansion system across OS)
sudo apt update && sudo apt install -y \
git curl wget tmux htop bash-completion rsync \
zip unzip tar xz-utils \
build-essential ca-certificates gnupg \
less man-db manpages \
dnsutils lsof strace \
file procps iproute2 iputils-ping \
ncdusudo apt update && sudo apt install -y \
mtr-tiny \
pciutils usbutils \
software-properties-commonDocker
mise
Tailscale / Netbird
Cloudflared
Kubernetes (kubectl)
mise use -g \
fzf fd ripgrep bat eza zoxide neovim yazi \
doggo carapace xh sd yq \
hyperfine watchexec \
github:ouch-org/ouch fastfetch duf dust usage jqInstall jq through apt if needed in scripts or anywhere else instead of mise
mise use -g age lazygit btop gdu trippy aqua:tealdeer-rs/tealdeer github:dalance/procscurl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --python 3.13 posting There exists one rust alternative too
tac "$HISTFILE" | awk '/^#[0-9]+$/{ts=$0;next}!s[$0]++&&!/^(cleawr|cls|l|ls|la|ll|lh|pwd|exit|cd|cd \.\.|history|top|htop|v)$/{if(ts)print ts;print;ts=""}' | tac >"$HISTFILE.tmp" && mv "$HISTFILE.tmp" "$HISTFILE" && history -c && history -rtac "$HISTFILE" | awk '!/^#[0-9]+$/&&!s[$0]++&&!/^(cleawr|cls|l|ls|la|ll|lh|pwd|exit|cd|cd \.\.|history|top|htop|v)$/' | tac >"$HISTFILE.tmp" && mv "$HISTFILE.tmp" "$HISTFILE" && history -c && history -rtac "$HISTFILE" | awk '!/^#[0-9]+$/&&!s[$0]++&&!/^(cleawr|cls|l|ls|la|ll|lh|pwd|exit|history|top|htop|v)$/&&!/^cd($| )/' | tac >"$HISTFILE.tmp" && mv "$HISTFILE.tmp" "$HISTFILE" && history -c && history -r$h=(Get-PSReadLineOption).HistorySavePath;$l=[IO.File]::ReadAllLines($h);$s=@{};$o=for($i=$l.Length-1;$i -ge 0;$i--){if(!$s[$l[$i]] -and $l[$i] -notmatch '^(cleawr|cls|l|ls|la|ll|lh|pwd|exit|cd|cd \.\.|history|top|htop|v)$'){$s[$l[$i]]=$true;$l[$i]}};[array]::Reverse($o);$o|Set-Content $h$h=(Get-PSReadLineOption).HistorySavePath;$l=[IO.File]::ReadAllLines($h);$s=@{};$o=for($i=$l.Length-1;$i -ge 0;$i--){if(!$s[$l[$i]] -and $l[$i] -notmatch '^(cleawr|cls|l|ls|la|ll|lh|pwd|exit|history|top|htop|v)$' -and $l[$i] -notmatch '^cd($| )'){$s[$l[$i]]=$true;$l[$i]}};[array]::Reverse($o);$o|Set-Content $h$h=(Get-PSReadLineOption).HistorySavePath
(Get-Content $h | Sort-Object -Unique) | Set-Content $h