macOS dotfiles managed with GNU Stow and Homebrew Bundle.
git clone https://github.com/AndrewPalet/dotfiles ~/Repos/personal/dotfiles
cd ~/Repos/personal/dotfiles
./bootstrap.sh| Package | Files | Description |
|---|---|---|
| ghostty | .config/ghostty/config |
Snazzy theme, Display P3, copy-on-select, block cursor |
| cmux | .config/cmux/settings.json |
Notification sound, external URL whitelist, sidebar prefs |
| zsh | .zshrc |
Oh My Zsh (robbyrussell), rbenv, Android SDK paths |
| git | .gitconfig |
Name and email |
~/.config/cmux/cmux.json— workspace commands with machine-specific project paths. Create per-machine.~/.ssh/config— auto-managed by OrbStack on install.- Secrets —
LINEAR_API_KEYis read from macOS Keychain at runtime, not stored in dotfiles.
All apps installed via brew bundle:
Formulae: gh, git, helm, jq, pre-commit, rbenv, sops, stow, uv, yarn, zplug
Casks: 1password-cli, android-studio, claude-code, cmux, notion, obsidian, orbstack, postman, proxyman, reactotron, rectangle, sublime-text
- Create a stow package directory:
mkdir -p newpkg/.config/newapp - Move your config in:
mv ~/.config/newapp/config newpkg/.config/newapp/config - Add the package name to
PACKAGESinbootstrap.sh - Stow it:
stow -t ~ newpkg - Commit and push
| Task | Command |
|---|---|
| Update a config | Edit the file in this repo (symlink reflects instantly) |
| Re-stow after structure changes | stow --restow <package> |
| Remove a package's symlinks | stow -D <package> |
| Add a new brew package | Add to Brewfile, run brew bundle |
| Update all brew packages | brew bundle |
MIT