You probably don't need Oh My Zsh
- Oh My Zsh (OMZ) adds unnecessary bloat, slowing shell startup to ~0.38 seconds due to script interpretation on every new terminal tab.
- Author opens hundreds of tabs daily via tmux and tools like lazygit/yazi, making startup time critical; OMZ updates also delay prompts.
- Recommends minimal Zsh config: large history (HISTSIZE=1000000000), EXTENDED_HISTORY, autocd, compinit for completions.
- Uses Starship prompt (single binary, fast): disables cloud/lang segments, shows git/Python/Rust, command duration; startup drops to 0.07s.
- History search via fzf (Ctrl+R) instead of zsh-autosuggestions; optional vi mode for Vim users.
- Workflow: tmux popups/splits for git/files/tests; adapted in days, add plugins only as needed.
Hacker News Discussion
- Many defend OMZ for ease/convenience (single install, plugins like git/fzf), argue 0.3-0.4s startup unnoticeable unless opening hundreds of tabs; some stripped it to essentials.
- Alternatives praised: Fish (better defaults, syntax, ~0.2s startup; use bash shebangs for scripts), Zimfw/Zinit (fast frameworks), Nushell/Oilsh, bare Zsh with plugins (fast-syntax-highlighting, zsh-autosuggestions).
- Starship popular but critiqued for bloat (Node/Python versions, AWS), empty segments, config effort vs Powerlevel10k wizard; some prefer custom prompts or none.
- Benchmark debates: zsh -ic exit flawed (use zsh-bench for prompt/input lags); git plugin slows in big repos; tips like zprof, lazy loading (nvm/mise), share_history.
- Fish/Zsh vs Bash: Fish nicer interactively but scripting needs porting; Bash universal/lean; some revert to Bash, others tmux/multiple shells.
- Tools: Atuin (history), Zoxide (cd), Mise (asdf), fzf-tab; AI (Claude/GPT) helps migrate configs quickly.