4 hours ago
- The author prioritizes shell speed, with shell starting in about 30 milliseconds including completions, syntax highlighting, autosuggestions, fzf, and direnv.
- Key optimization is avoiding frameworks like oh-my-zsh and plugin managers to reduce overhead; instead, directly source three specific plugins from disk.
- Cache completions by running compinit fully only once per day using a .zcompdump cache check to minimize startup time.
- Lazy-load heavy tools like nvm and kubectl completions by wrapping them in functions that load on first use, avoiding eager sourcing.
- Use an asynchronous prompt (like pure) to prevent lag from synchronous git status operations, especially in large repositories.
- Employ a low-latency terminal emulator (Ghostty) and maintain fast input latency, using tmux for seamless session management.
- Measure shell performance with tools like time, hyperfine, zprof, and timestamp tracing to identify and optimize slow components.
- Overall philosophy emphasizes minimalism, intentional tool selection, and removing unused components to maintain instant shell responsiveness.