Personal dotfiles for macOS. Configuration for zsh, neovim, git, tmux, and various CLI tools.
Note: These are my personal dotfiles. Feel free to read and take inspiration, but make your own edits - there's a lot of me-specific configuration here.
# Clone to home directory
git clone https://github.com/chetmancini/dotfiles.git ~/dotfiles
# Run install script
cd ~/dotfiles
./install.sh --plan
./install.sh
# Verify the installed state
doctor| Tool | Config | Description |
|---|---|---|
| zsh | .zshrc |
Shell with oh-my-zsh, aliases, functions |
| neovim | nvim/ |
LazyVim-based config |
| git | .gitconfig |
Aliases, delta pager, conventional commits |
| tmux | .tmux.conf |
Terminal multiplexer |
| yazi | yazi/ |
File browser |
| ghostty | ghostty/ |
Terminal emulator |
All packages are managed via Brewfile:
# Install all packages
brew bundle --file=~/dotfiles/Brewfile
# See what would be installed
brew bundle check --file=~/dotfiles/Brewfile
# Update Brewfile from installed packages
brew bundle dump --file=~/dotfiles/Brewfile --force
# Remove packages not in Brewfile
brew bundle cleanup --file=~/dotfiles/Brewfile- CLI Tools: eza, bat, fzf, zoxide, jq, htop, yazi
- Development: neovim, gh, git-delta, awscli
- Kubernetes: kubectl, kubectx, k9s, helm
- Languages: pyenv, n, openjdk, bun
- Databases: postgresql, redis, sqlite
- Apps: Ghostty, Arc, Zed, JetBrains Toolbox, Slack, Discord
- Fonts: Monaspace, Hack (+ Nerd Font variants)
- Custom theme with git status (
chetmancini.zsh-theme) - Lightweight shell startup that sources only the needed oh-my-zsh components
- Vi mode with visual cursor indicator
- Lazy-loaded pyenv and streamlined Node setup (
n) for fast startup - zoxide for smart directory jumping
- fzf integration for fuzzy finding
install.shsupports interactive, preview, and headless installs (--plan,--yes,--skip-brew, etc.)doctorverifies symlinks, theme wiring, TPM, and repo health checks- GitHub Actions smoke-tests the installer and doctor in a temporary
HOME make formatformats shell scripts withshfmt;make checkruns formatting, syntax, ShellCheck, TOML, and zsh checks
- Conventional commit aliases:
git cc <type>,git feat,git fix,git chore, etc. - Conditional includes for work vs personal repos
- git-delta for beautiful diffs
gs # git status -sb
ll # eza with icons and git status
vi # neovim
y # yazi file browser (with cd on exit)
cd # zoxide (smart directory jumping)
fzfp # fzf with bat preview- Add to
Brewfile - Run
brew bundle - If config needed, add symlink to
install.sh - Add validation to
doctor - Add any shell integration to
.zshrc
~/dotfiles/
├── .zshrc # Main shell config
├── .gitconfig # Git config (uses conditional includes)
├── .tmux.conf # tmux config
├── Brewfile # Homebrew packages
├── install.sh # Setup script
├── chetmancini.zsh-theme # Custom oh-my-zsh theme
├── bin/ # Custom scripts (see bin/README.md)
├── nvim/ # Neovim (LazyVim)
├── vim/ # Legacy Vim runtime
├── yazi/ # Yazi file browser
├── ghostty/ # Ghostty terminal
├── oh-my-zsh/ # Cloned install dependency
└── api_keys.sh # API keys (gitignored)
MIT - do whatever you want with it.
-Chet