Terminal Tools Every Developer Needs in 2026
/ 3 min read
Table of Contents
The terminal is where developers live. A well-configured terminal isn’t just faster — it changes how you think about problems. Here are the tools I use daily and can’t imagine working without.
File Navigation: Beyond cd and ls
zoxide — Smarter Directory Jumping
Stop typing full paths. zoxide learns your habits and jumps to directories by partial match:
# Instead of: cd ~/projects/hexink-blog/src/contentz hexink content
# It learns from frequency and recencyz blog # → jumps to your most-used "blog" directoryInstall it once, alias it to cd, and never look back.
eza — ls But Better
eza (the maintained fork of exa) adds icons, git status, and tree views:
# Beautiful file listing with git statuseza -la --git --icons
# Tree view with depth limiteza --tree --level=2 --icons drwxr-xr-x src├── components│ ├── Header.astro│ ├── Footer.astro (modified)│ └── PostCard.astro (staged)├── content│ └── blog└── lib └── utils.tsGit Workflow
lazygit — Git TUI That Actually Works
If you find yourself running git status, git add, git commit in a loop, lazygit replaces the entire cycle with a single interactive UI:
lazygit# Opens a full terminal UI:# - Stage/unstage with spacebar# - Commit with 'c'# - Push with 'P'# - Interactive rebase with drag-and-dropThe killer feature: interactive rebase without fear. You can reorder, squash, and edit commits visually, with undo at every step.
delta — Beautiful Git Diffs
Replace the default git diff output with syntax-highlighted, side-by-side diffs:
[core] pager = delta
[delta] navigate = true side-by-side = true line-numbers = trueOnce you see diffs with proper syntax highlighting, you can’t go back.
Text Processing
ripgrep (rg) — Faster Than grep
ripgrep respects .gitignore, uses smart case, and is absurdly fast:
# Search for a pattern across your projectrg "useState" --type tsx
# Replace across files (with confirmation)rg "oldFunction" --files-with-matches | xargs sed -i 's/oldFunction/newFunction/g'On a large monorepo, rg returns results before grep finishes reading the directory tree.
fzf — Fuzzy Find Everything
The Swiss Army knife of CLI tools. fzf adds fuzzy search to any list:
# Search filesfzf --preview 'bat --color=always {}'
# Search git branchesgit branch | fzf | xargs git checkout
# Search command historyhistory | fzfCombine fzf with rg for a search experience that rivals any IDE:
# Interactive project-wide search with previewrg --line-number . | fzf --delimiter ':' --preview 'bat --color=always --highlight-line {2} {1}'Monitoring & System
btop — System Monitor
Forget htop. btop provides CPU, memory, disk, and network monitoring with a polished UI:
btop# Shows:# - Per-core CPU usage with history graphs# - Memory and swap with process breakdown# - Disk I/O per device# - Network up/down with historydust — Disk Usage, Visualized
Find what’s eating your disk space:
dust ~/projects# Shows a bar chart of directory sizes, sorted by size# Way more intuitive than du -shMy Setup
Here’s the relevant section of my shell config:
# ~/.zshrc (relevant aliases)alias ls="eza --icons"alias ll="eza -la --git --icons"alias tree="eza --tree --icons"alias cat="bat"alias cd="z"alias diff="delta"alias top="btop"alias du="dust"alias find="fd"alias grep="rg"The theme: replace every default tool with a modern alternative that has better defaults, better output, and better performance.
The Compound Effect
No single tool here is life-changing. But together, they compound. You navigate faster, search faster, commit faster, and debug faster. Over a year, the time savings are measured in weeks.
Start with one — I’d recommend zoxide — and add others as you feel the friction.
This is part 2 of the Notion-Powered Blog series. Part 1 covers how to set up Notion as your blog’s CMS.