Skip to main content
The Zsh configuration provides a fast, minimal shell with live autocomplete, syntax highlighting, and lazy-loaded language runtimes.

Plugins

Two plugins are auto-cloned on first shell start: Update plugins with the zsh_plugins_update function. If zsh-autocomplete is missing, the config falls back to native compinit.

History

Completion

  • Sources completions from Homebrew’s site-functions directory.
  • Async autocomplete with 50ms delay and 1 character minimum input.
  • Menu select mode with case-insensitive matching.
  • Cache stored at ~/.zsh/cache.

Keybindings

Syntax Highlighting Colors

Prompt

  • Cursor: solid block
  • Prompt character: % for regular user, # for root

Aliases

0x0

The 0x0 shell function uses the released server binary installed by Homebrew. It keeps editor shortcuts for the Neovim apps:

Lazy-Loaded Runtimes

Language runtimes are lazy-loaded on first use to keep shell startup fast.

NVM (Node.js)

nvm, node, npm, and npx are all shell functions that trigger a one-time load of NVM from Homebrew’s install path. After the first call, the real binaries take over.

GoEnv (Go)

goenv, go, and gofmt work the same way — the first invocation loads GoEnv from ~/.goenv and adds shims to PATH.

PostgreSQL

The libpq client binaries are added to PATH directly (not lazy-loaded):

Shell Options

Local Overrides

Machine-specific settings can go in ~/.zshrc.local — it’s sourced at the end of .zshrc if it exists. This file is not tracked in git.