Use CLI like a modern tech bro
CLI is bland as hell. Total boomer energy. If you live in the terminal, boost your QoL 2000% by adopting these CLI tools in your daily workflow.
If you are still using stock GNU tools and macOS Terminal.app, you are voluntarily slower than necessary.
Modern CLI tooling is faster, clearer, and built for how developers actually work.
This is the pragmatic stack. No fluff. No legacy baggage. CLI only.
1. Core Command Replacements
These replace what you type hundreds of times per week.
grep → ripgrep (rg)

Install
brew install ripgrep
Old
grep -r "foo" .
Modern
rg foo
Why rg:
- Respects
.gitignoreautomatically - Recursive by default
- Extremely fast
- Clean colored output
Stop waiting on grep -r.
find → fd

Install
brew install fd
Old
find . -type f -name "*.ts"
Modern
fd -e ts
Why fd:
- Human-readable syntax
- Parallel execution with
x - Colorized output
- Much faster
find syntax is archaeology.
cd → zoxide

Install
brew install zoxide
Add to .zshrc:
eval "$(zoxide init zsh)"
Now:
z backend
Instead of:
cd ~/projects/company/backend/src
Why zoxide:
- Tracks where you go
- Uses frecency (frequency + recency)
- Instantly jumps to likely targets
This is filesystem teleportation.
ls → eza

Install
brew install eza
Add:
alias ls='eza --icons'
Why eza:
- File icons
- Git status indicators inline
- Better tree views
- Clear color coding
Plain ls feels blind after this.
cat → bat

Install
brew install bat
Add:
alias cat='bat'
Why bat:
- Syntax highlighting
- Line numbers
- Git diff indicators
- Auto paging
cat is for pipes. bat is for humans.
2. The Glue Tool: fzf (Mandatory)

If you are on macOS and not using fzf, you are playing on Hard Mode.
Install
brew install fzf
$(brew --prefix)/opt/fzf/install
Enable keybindings during install.
What You Get
CTRL-R→ Fuzzy search shell historyCTRL-T→ Fuzzy insert file pathALT-C→ Fuzzy-find directory and cd into it
This alone upgrades your shell UX.
fzf + bat Preview (File Browser Mode)
Add this alias:
alias p='fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'
Now:
fd | p
You scroll files and see live syntax-highlighted previews.
This is what file navigation should feel like.
3. Git Diff Upgrade: delta

bat is good for files.
delta is king for diffs.
Install
brew install git-delta
Add to ~/.gitconfig:
[core]
pager = delta
Why delta:
- Syntax-highlighted diffs
- Side-by-side mode
- Word-level diffing
- Smooth navigation in large PRs
After this, raw git diff looks primitive.
4. System & Disk Tools
top → btop

Install
brew install btop
Run:
btop
Why:
- CPU, memory, disk, network graphs
- Mouse support
- Clean UI
- Replaces both
topandhtop
du → dust

Install
brew install dust
Run:
dust
Why:
- Visual tree of disk usage
- Quickly find what is eating your SSD
- Actually readable output
man → tldr

Install
brew install tldr
Use:
tldr tar
Why:
- Shows common examples
- No 50-page manuals
- Gets you unstuck fast
Alias it:
alias help='tldr'
5. Practical Alias Layer (Make It Stick)
If you do not override muscle memory, you will revert to defaults.
Add to .zshrc:
alias ls='eza --icons'
alias cat='bat'
alias grep='rg'
alias find='fd'
alias cd='z'
alias help='tldr'
fzf-Powered Workflow Aliases
Fuzzy Open File with Preview
alias v='fd --type f | fzf --preview "bat --color=always {}"'
Fuzzy Kill Process
killf() {
ps -ef | fzf --header "Select process to kill" | awk "{print \\$2}" | xargs kill -9
}
6. The Modern CLI Stack Summary
| Legacy | Modern | Why |
|---|---|---|
| grep | rg | Faster + git-aware |
| find | fd | Human syntax |
| cd | zoxide | Intelligent jumping |
| ls | eza | Git-aware listings |
| cat | bat | Highlighted + paged |
| top | btop | Visual dashboard |
| du | dust | Disk tree view |
| man | tldr | Example-driven help |
| git diff | delta | Proper diff UI |
| history search | fzf | Fuzzy interactive |
Minimal macOS Install (All at Once)
brew install ripgrep fd zoxide eza bat fzf git-delta btop dust tldr
Then configure:
zoxidefzf- Git pager →
delta - Aliases in
.zshrc
That is the baseline.
Everything else is optional.