Personal dotfiles for macOS.
- zsh —
.zshenv(environment),.zprofile(PATH), and.zshrc(prompt, aliases, functions); API keys stay out of the repo in~/.zsh_secrets - terminal — cmux (primary, Ghostty-based) and Ghostty; config in
config/ghostty/(Inconsolata Mono Nerd Font, Catppuccin Mocha) - tmux —
Ctrl+Spaceprefix, vim-style pane navigation - neovim — full LSP/Treesitter setup, maintained in a separate repo
- oh-my-pi — coding agent config: model roles, themes, and local model servers (
config/omp/); auth stays in omp's own storage - uv — Python package/project manager (standalone installer)
- oMLX — local MLX model server (omlx.ai), installed from the latest GitHub release DMG; its settings stay local (they contain server keys)
- Brewfile — macOS packages via Homebrew
- Claude Code — AI coding assistant
git clone https://github.com/hhheath/dotfiles.git ~/code/dotfiles
cd ~/code/dotfiles
./install.shThe install script is macOS-only. It installs Homebrew, runs brew bundle from the Brewfile (node included), installs uv, bun + oh-my-pi, and oMLX, copies configs, clones the nvim config, sets zsh as the default shell, and installs Claude Code.
- Restart your terminal (or
source ~/.zshrc) - Verify
~/.gitconfigname/email - Open
nvimto auto-install plugins pyenv install 3.12 && pyenv global 3.12- Create
~/.zsh_secrets(chmod 600) with API keys — sourced by.zshenv
dotfiles/
├── config/
│ ├── ghostty/config # Ghostty terminal (cmux is Ghostty-based)
│ └── omp/ # oh-my-pi config + model definitions
├── .zshenv # Zsh environment (all shells)
├── .zprofile # PATH setup (login shells)
├── .zshrc # Zsh interactive config
├── .tmux.conf # Tmux config
├── .gitconfig # Git config
├── Brewfile # Homebrew packages
└── install.sh # Setup script
- Prefix:
Ctrl+Space - Panes:
Alt+hjklto navigate,\horizontal split,-vertical split - Mouse: enabled
brew bundle dump --force --file=~/code/dotfiles/Brewfile