I spend 80% of my day in the terminal.
Over the years, I've collected tools that save me hours every week — but when I mention them to other developers, most have never heard of them.
Here are 7 terminal tools that feel like cheat codes. All free. All game-changers.
1. fzf — Fuzzy Finder (The One Tool to Rule Them All)
What it does: Fuzzy search for literally anything — files, command history, git branches, processes, you name it.
Why it's life-changing:
Forget typing exact file paths. Just type a few letters and fzf finds it.
# Find any file in your project
find . | fzf
# Search command history (replace Ctrl+R forever)
history | fzf
# Checkout a git branch interactively
git branch | fzf | xargs git checkout
# Kill a process without remembering the PID
ps aux | fzf | awk '{print $2}' | xargs kill
Before fzf: "What was that config file called again? Where did I put it?"
After fzf: Type 3 letters. Found it. Done.
📦 Install: brew install fzf or apt install fzf
2. lazydocker — Docker Dashboard in Your Terminal
What it does: A beautiful terminal UI for managing Docker containers, images, volumes, and logs.
Why it's life-changing:
If you're tired of typing docker ps, docker logs, docker stats over and over, this is your new best friend.
# Just run it
lazydocker
You get:
- Live container stats (CPU, memory, network)
- Logs with search and filtering
- One-key restart, stop, remove
- Bulk cleanup of unused images/volumes
It's like having Docker Desktop — but in your terminal, on your server, with zero overhead.
📦 Install: brew install lazydocker or go install github.com/jesseduffield/lazydocker@latest
3. bat — cat But Beautiful
What it does: Like cat, but with syntax highlighting, line numbers, and git diff integration.
Why it's life-changing:
# Instead of:
cat index.js
# Use:
bat index.js
You get:
- Automatic syntax highlighting for 100+ languages
- Line numbers
- Git changes highlighted in the margin
- Automatic paging for long files
Once you use bat, going back to plain cat feels like reading code on a typewriter.
📦 Install: brew install bat or apt install bat
4. tldr — Man Pages for Humans
What it does: Simplified, practical man pages with real examples.
Why it's life-changing:
Be honest — when was the last time you read a man page and immediately understood what to do?
# Instead of:
man tar # 500 lines of dense text
# Use:
tldr tar
Output:
tar
Archiving utility.
- Create an archive from files:
tar cf target.tar file1 file2 file3
- Extract an archive:
tar xf source.tar
- Create a gzipped archive:
tar czf target.tar.gz file1 file2
That's it. No PhD required.
📦 Install: npm install -g tldr or brew install tldr
5. ncdu — Where Did My Disk Space Go?
What it does: Interactive disk usage analyzer. Find what's eating your storage in seconds.
Why it's life-changing:
Every developer has had that moment: "Disk full? But I barely have anything on here!"
# Scan current directory
ncdu
# Scan entire server
ncdu /
You get an interactive file tree sorted by size. Navigate with arrow keys, press d to delete. Boom — 20GB of old Docker images found and removed.
I once found a log file that was 47GB. On a 50GB server. Without ncdu, I'd still be running du -sh * in every directory.
📦 Install: brew install ncdu or apt install ncdu
6. lazygit — Git UI Without Leaving the Terminal
What it does: A full Git interface in your terminal. Stage, commit, push, rebase, resolve conflicts — all with keyboard shortcuts.
Why it's life-changing:
I love Git. I hate typing Git commands.
# Just run it in your repo
lazygit
You get:
- Visual diff viewer
- Interactive staging (stage individual lines!)
- One-key commit, push, pull
- Branch management with visual graph
- Conflict resolution side-by-side
It's the speed of the terminal with the clarity of a GUI. Best of both worlds.
📦 Install: brew install lazygit or go install github.com/jesseduffield/lazygit@latest
7. httpie — cURL for Humans
What it does: A user-friendly HTTP client. Like cURL, but you can actually read the commands.
Why it's life-changing:
# cURL way (what even is this):
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token123" \
-d '{"name": "John", "email": "john@example.com"}'
# httpie way (ah, I can read this):
http POST api.example.com/users \
name=John \
email=john@example.com \
Authorization:"Bearer token123"
You also get:
- Colorized and formatted JSON output
- Built-in JSON support (no
-H "Content-Type"needed) - Sessions for authenticated APIs
- Download files with progress bar
📦 Install: brew install httpie or pip install httpie
Bonus: My .bashrc Aliases
Here are the aliases I use to make these tools even faster:
# Replace defaults with better alternatives
alias cat='bat --paging=never'
alias top='htop'
alias du='ncdu'
alias find='fd' # another great tool
alias grep='rg' # ripgrep - blazing fast
# Quick shortcuts
alias lg='lazygit'
alias ld='lazydocker'
alias ll='ls -la'
alias ..='cd ..'
alias ...='cd ../..'
# Git shortcuts
alias gs='git status'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline -10'
The Full List
| Tool | Replaces | Install |
|---|---|---|
fzf |
Ctrl+R, find | brew install fzf |
lazydocker |
docker CLI | brew install lazydocker |
bat |
cat | brew install bat |
tldr |
man | npm install -g tldr |
ncdu |
du | brew install ncdu |
lazygit |
git CLI | brew install lazygit |
httpie |
curl | brew install httpie |
One More Thing
The best part about all these tools? They're all free, open source, and work on any Linux/Mac machine. You can SSH into your server and have the same setup everywhere.
My rule: if I do something more than 3 times a day in the terminal, there's probably a tool that does it better.
What are YOUR must-have terminal tools? Drop them in the comments — I'm always looking for new ones to add to my toolkit.
Top comments (0)