One command to rule them all - Complete terminal and development setup for macOS
Transform your Mac into a powerful development machine with a single command. This dotfiles repository sets up everything you need for modern software development.
- Zsh with Oh My Zsh framework
- Powerlevel10k theme with instant prompt
- Nerd Fonts with icons and powerline symbols
- Syntax highlighting and auto-suggestions
- Node.js with NVM version management
- Python 3.12 for data science and automation
- Ruby with rbenv for gem management
- Swift tools for iOS/macOS development
- Git with advanced aliases and workflows
- bat - Better
catwith syntax highlighting - eza - Modern
lsreplacement with colors - fd - Fast alternative to
find - ripgrep - Lightning fast search
- fzf - Fuzzy finder for everything
- jq/yq - JSON/YAML processors
- htop - System monitoring
- tmux - Terminal multiplexer
- Amazon Q - AI assistant for development
- Tuist - Swift project generator and manager
- GitHub CLI - Git workflow automation (CLI tool)
- Docker CLI - Containerization (command-line only)
These can be enabled by uncommenting in the Brewfile:
- iTerm2 - Advanced terminal emulator
- Visual Studio Code - Code editor
- Docker Desktop - Docker with GUI
git clone https://github.com/cameroncooke/dotfiles.git ~/.dotfiles && cd ~/.dotfiles && script/bootstrap# Clone the repository
git clone https://github.com/cameroncooke/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Run the installation
script/bootstrap- β Prerequisites check - Verifies Xcode Command Line Tools
- β Git configuration - Sets up your Git identity
- β Homebrew - Installs package manager (if needed)
- β Oh My Zsh - Installs framework and plugins
- β Fonts - Downloads and installs Nerd Fonts
- β Symlinks - Links configuration files to your home directory
- β Dependencies - Installs all packages via Homebrew
- β Components - Runs additional installers (NVM, development tools)
- β Validation - Checks everything installed correctly
# Update everything (run periodically)
script/update
# Or use one of these aliases (after sourcing ~/.zshrc)
dot # Short alias
dotfiles-update # Full command name
df-update # Alternative aliasThis updates:
- Dotfiles repository
- Homebrew and all packages
- Oh My Zsh and themes
- Global npm packages
- Ruby gems
- Restart your terminal or run
source ~/.zshrc - Configure iTerm2 font: Preferences β Profiles β Text β Font β "MesloLGS Nerd Font"
- Customize prompt: Run
p10k configure - Add local settings: Edit
~/.localrcfor machine-specific configuration
Create ~/.localrc for private/local settings:
# API keys and secrets
export GITHUB_TOKEN="your-token-here"
export AWS_PROFILE="your-profile"
# Local paths
export PATH="/your/custom/path:$PATH"
# Custom aliases
alias myproject="cd ~/Developer/my-project"- Homebrew packages: Add to
Brewfile - Custom scripts: Place in
bin/directory - Shell configuration: Create
component/*.zshfiles - Install scripts: Add
component/install.shfor setup logic
~/.dotfiles/
βββ script/
β βββ bootstrap # Main installation script
β βββ update # Update all components
β βββ uninstall # Remove dotfiles (for testing)
βββ Brewfile # Homebrew packages and apps
βββ bin/ # Custom scripts (added to PATH)
βββ zsh/ # Zsh configuration and plugins
βββ git/ # Git configuration and aliases
βββ fonts/ # Font installation
βββ nvm/ # Node.js version management
βββ devtools/ # Development tools setup
βββ */ # Component directories
βββ *.symlink # Files linked to ~/.*
βββ *.zsh # Shell configuration
βββ install.sh # Component installer
- Safe to run multiple times - Won't break existing setup
- Incremental updates - Only installs missing components
- Conflict resolution - Handles existing files gracefully
- Easy to extend - Add new components without touching core
- Topic-based organization - Related files grouped together
- Automatic loading - Zsh files loaded automatically
- Graceful failures - Continues if individual components fail
- Clear feedback - Shows what's working and what isn't
- Validation - Checks installation at the end
| Command | Description |
|---|---|
script/bootstrap |
Full installation from scratch |
script/update |
Update all components |
script/uninstall |
Remove dotfiles (keeps software) |
dot |
Quick update (alias) - use after sourcing ~/.zshrc |
dotfiles-update |
Main update command (avoids graphviz conflict) |
df-update |
Alternative update alias |
p10k configure |
Customize Powerlevel10k theme |
brew bundle |
Install/update Homebrew packages |
git st # status
git co # checkout
git br # branch
git ci # commit
git df # diff
git lg # beautiful log graph
git up # pull and rebase
git promote # push and set upstream
git wtf # what the fudge (detailed status)Installation hangs or fails:
- Cancel with Ctrl+C and re-run
script/bootstrap - Check internet connection for downloads
- Ensure you have admin privileges
Terminal looks broken:
- Install and configure the Nerd Font in your terminal
- Run
p10k configureto fix Powerlevel10k - Restart terminal application
Command not found errors:
- Run
source ~/.zshrcto reload configuration - Check if tools are in PATH:
echo $PATH - Re-run
script/bootstrapto fix missing installs
Permission errors:
- Some Homebrew operations may require password
- Ensure you're an admin user on the system
# Check what's installed
brew list
npm list -g --depth=0
which node python3 ruby
# Validate installation
script/bootstrap # Safe to re-run
# Start fresh
script/uninstall && script/bootstrap- macOS 10.15+ (Catalina or later)
- Xcode Command Line Tools (
xcode-select --install) - Admin privileges (for Homebrew installation)
- Internet connection (for package downloads)
This is a personal dotfiles setup, but feel free to:
- Fork for your own use
- Open issues for bugs
- Submit PRs for improvements
- Share your own customizations
MIT License - Use it however you want!
π‘ Pro Tip: After installation, explore the bin/ directory for useful scripts and check out the Git aliases in git/aliases.zsh for productivity boosts!