Personal macOS dotfiles managed with GNU Stow.
bootstrap/ # Initial system setup (Xcode, Homebrew, etc.)
install/ # Modular installation scripts
10-cli.sh # CLI tools (tmux, fzf, ripgrep, etc.)
40-languages.sh # Language managers (fnm, pyenv, php)
41-languages-work.sh # Work specific languages (Python 3.9/3.11/3.12, Hasura, Poetry)
42-languages-node.sh # Node/Bun tools (pnpm, bun)
50-apps-dev.sh # Development apps (WebStorm, Docker, Postman)
51-apps-browsers.sh # Web browsers (Chrome, Firefox)
52-apps-productivity.sh # Productivity apps
53-apps-vpn.sh # VPN clients
54-apps-ai.sh # AI tools (Claude Code, ChatGPT, Ollama, PAI)
55-apps-comms.sh # Communication apps (WhatsApp, Slack, Teams)
56-apps-password-managers.sh # Password managers (Keeper)
60-experiments.sh # Experimental apps and tools
90-all.sh # Run all installers in order
stow/ # Configuration files for symlinking
.stow-local-ignore # Files to exclude from symlinking
stow.sh # Symlink script
git/ # Git config
idea/ # IdeaVim config
ssh/ # SSH config
starship/ # Starship prompt config
tmux/ # Tmux config
zsh/ # Zsh config
Run the bootstrap script first:
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
./bootstrap/macos.shThis will:
- Install Xcode Command Line Tools
- Install Homebrew
- Install git and stow
- Configure Dock settings
Run all installers and symlink dotfiles:
./install/90-all.shOr run individual installers:
./install/10-cli.sh # CLI tools only
./install/40-languages.sh # Language managers only
./stow/stow.sh # Symlink dotfiles onlyCopy the example config and add your email:
cp stow/git/.gitconfig.local.example ~/.gitconfig.local
vim ~/.gitconfig.local # Add your emailAfter running the installers:
- Node.js: Install a Node version with
fnm install <version>andfnm use <version> - SSH Keys: Add your SSH keys to
~/.ssh/ - Git Email: Update
~/.gitconfig.localwith your email address
To re-symlink dotfiles after making changes:
cd ~/dotfiles/stow
stow -R -t ~ <folder> # Re-stow a specific configOr run the stow script:
./stow/stow.shMIT