Автор работает исключительно в терминале — Git, kubectl, tmux открыты почти круглосуточно. Поэтому его shell Zsh стартует за 30 миллисекунд. Это время меньше одного кадра 30 FPS. Никаких масштабных оптимизаций не было — просто привычка держать оболочку минимальной.
Главный приём — отсутствие фреймворка. Ни oh-my-zsh, ни prezto, ни менеджера плагинов. Автор честно не понимает их смысла: люди ставят сотни плагинов, используют 5% функций и платят за остальные 95% при каждом открытии shell. В его .zshrc всего три hand-picked плагина: fzf-tab, zsh-autosuggestions и zsh-syntax-highlighting. Они склонированы git-ом один раз при установке, и source файла с диска практически бесплатен.
Вторая важная вещь — кеширование compinit. По умолчанию compinit аудирует каждый файл с подсказками при каждом запуске. Автор делает полный запуск только если кешу .zcompdump больше 24 часов, иначе прогоняет с флагом -C. Получается один полноценный запуск в день, остальное — чтение из кеша.
Третье — ленивая загрузка. Самый известный убийца скорости — nvm. Простое source nvm.sh может добавить полсекунды. Автор оборачивает nvm в функцию, которая при первом вызове удаляет заглушку, подгружает настоящий nvm с флагом --no-use и передаёт аргументы. То же самое с kubectl: его подсказки генерируются только после первого реального вызова. Паттерн универсален: всё, что требует eval "$(tool init zsh)" — кандидат на ленивую загрузку.
Четвёртое — асинхронный промпт. Команда git status, выполняющаяся синхронно, тормозит каждый Enter в большом репозитории. Автор использует pure — промпт рендерится мгновенно, а git-информация подгружается асинхронно.
На уровне эмулятора — Ghostty с GPU-ускорением и конфигом из семи строк. Аlias t на tmux new -A -s main мгновенно возвращает в существующую сессию.
Для диагностики автор советует hyperfine для точных замеров, встроенный zprof (сортирует, на что ушло время), а для гранулярного трейсинга — zsh -ixc exit c ts -i. Если промпт тормозит — зайти в большой git-репозиторий и нажать Enter.
Суть подхода в том, чтобы осознанно добавлять только то, что реально используется. Сотни мгновенных сессий в день — non-negotiable для инструмента, с которым проводишь всё время. Весь код лежит в dotfiles-репозитории автора.