My terminal setup in 2025 (and the 8 tools that matter)
Drop a screen-recording at public/media/blog/terminal-tour.mp4 and it becomes the hero.
I live in a terminal. Not in a performative, look-at-my-ricing way — it's simply where I'm fastest. Here's the current state of the setup, and the small sharp tools that carry the most weight.
The foundation
WezTerm + tmux + zsh. WezTerm because GPU rendering makes scrollback buttery and the config is Lua (so is my editor config, and consistency is cozy). tmux because sessions-per-project means I never rebuild context after a restart.
# the holy trinity of modern shell ergonomics
eval "$(starship init zsh)"
eval "$(zoxide init zsh)"
source <(fzf --zsh)
The eight that matter
- ripgrep — the fastest way to answer "where did I define that?"
- fd —
findwithout the man page. - fzf — ctrl-r is now a superpower.
- eza —
lswith git status baked in. - bat —
cat, but with syntax highlighting. - zoxide —
z projand I'm home. - lazygit — staging individual hunks without tears.
- jq — because every API returns JSON eventually.
Neovim, briefly
Treesitter for highlighting, LSP for everything else, telescope for finding, and a colorscheme I've tweaked so many times it qualifies as original art. The whole config is in my dotfiles repo.
The real trick isn't any single tool — it's that they're all composable, all scriptable, and all muscle memory by now. Invest in your dotfiles. Future you is lazy and grateful.