The Terminal Setup That Made Me 3x Faster
Not a “here’s my perfect dotfiles” post. This is the actual journey — the tools I tried, kept, and dropped, and why.
The Core: zsh + Starship + tmux
Three tools that changed how I interact with the terminal daily:
Starship — the prompt that pays attention
My prompt now shows:
- Current directory (shortened)
- Git branch + status
- Node/Python/Kubectl context
- Command execution time
- Rust toolchain when relevant
Zero config for most languages. It just works.
# ~/.config/starship.toml
[git_branch]
symbol = " "
style = "bold purple"
[cmd_duration]
min_time = 500
format = "took [$duration](bold yellow) "
[python]
symbol = " "
tmux — session persistence
The killer feature nobody talks about: when your laptop dies, your terminal state lives.
# Sessions
tmux new -s project # create
tmux attach -t project # attach
tmux kill-session -t project # destroy
# Windows and panes
Ctrl+b c # new window
Ctrl+b | # split horizontal
Ctrl+b - # split vertical
Ctrl+b d # detach
fzf + ripgrep — the search combo
# Fuzzy find in git history
git log --oneline --all | fzf --preview 'git show {}'
# File search across entire project
rg "function_name" --hidden -l
# Ctrl+R history fuzzy search
bindkey '^R' fzf-history-widget
Aliases That Stuck
# Git — the essentials
alias gs='git status -sb'
alias gc='git commit'
alias gca='git commit --amend'
alias gpf='git push --force-with-lease'
alias gl='git log --oneline --graph --decorate --all'
alias gco='git checkout'
alias gd='git diff'
# Docker — stop all containers, clean up
alias dockstop='docker stop $(docker ps -aq)'
alias dockclean='docker system prune -af --volumes'
# Dev
alias py='python3'
alias ..='cd ..'
alias ...='cd ../..'
alias ports='lsof -i -P -n | grep LISTEN'
# Quick serve current dir
alias serve='python3 -m http.server 8000'
What I Dropped
| Tool | Why I Dropped It |
|---|---|
| Oh My Zsh | Too heavy, too slow startup |
| Powerline | Starship is 10x faster and prettier |
| autojump | z in zsh’s cd history is faster |
| fasd | Overkill; fzf handles most use cases |
| nvm | direnv + asdf for version management |
The Hidden Win: direnv
Drop a .envrc in any project:
# .envrc
use python 3.11
layout poetry
export PYTHONDONTWRITEBYTECODE=1
cd into the project → right Python version activates → leave → everything resets.
The Honest Assessment
My terminal went from “tool I tolerate” to “where I actually want to spend time.” The session persistence alone has saved me hours of lost work.
Start with Starship + tmux. Everything else builds from there.
Next: the VS Code setup that pairs with this terminal workflow.
Enjoying the content? Here are tools I personally use and recommend:
- 🌐 Hosting: Bluehost — what this blog runs on
- 🛒 Tech Gear: My Amazon Store — keyboards, monitors, dev tools I use
Purchases through my links help keep this blog ad-free 💙
Enjoyed this post?
Subscribe to the newsletter or follow on YouTube for more dev content.
🎬 Watch Shorts