This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is an Ansible-based dotfiles repository that sets up a complete macOS development environment. The repository is structured around Ansible roles, each responsible for configuring specific tools and applications.
curl -fsSL https://github.com/woodrowpearson/dotfiles/raw/main/bin/dot-install | bash- One-command fresh macOS setup./bin/dot-bootstrap- Initial setup of local environment (runs all roles)./bin/dot-configure- Interactive post-setup configuration (API keys, SSH, GPG)dot-update- Update local environment (skips bootstrap-tagged roles)dot-update <role>- Update specific role(s), e.g.,dot-update git python
newproject <language> <name>- Create new project with templates (python, node, rust, go, web)code ~/code/.env- Edit global environment variables- Various Mac-CLI aliases:
sysinfo,speedtest,gitlog,updateall
backup-create- Create new configuration backup with encryption supportbackup-list- List available backups and checkpoints with filtering optionsbackup-restore- Restore from backups with integrity verificationbackup-checkpoint- Create bootstrap phase checkpoints for rollback capabilitybackup-verify- Verify backup integrity and test restore proceduresbackup-rollback- Rollback to previous checkpoint or backup statebackup-monitor- Monitor backup system health and status
ansible-playbook -i hosts local_env.yml --tags <tag>- Run specific tagged rolesansible-playbook -i hosts remote_env.yml- Set up remote environment
local_env.ymlandremote_env.yml- Main playbooks defining role execution orderroles/- Individual Ansible roles for each tool/applicationgroup_vars/localandgroup_vars/remote- Configuration variableshosts- Ansible inventory file
Each role in roles/ may contain:
*.zshfiles - Automatically loaded into zsh environmentbin/directories - Contents added to$PATH- Standard Ansible directories (tasks, files, templates, defaults, etc.)
backup- Comprehensive backup system with encrypted checkpoints and graceful failure handlingpackage_manager- Homebrew setup and package installationmacos- macOS system settings (Dock, Finder, trackpad, screenshots)git- Git configuration and aliaseszsh- Shell configuration with Prezto, syntax highlighting, autosuggestionsstarship- Next-generation shell prompt with git integration, icons, and dynamic coloringdev-environment- ~/code directory with API key stubsmise- Multi-language runtime management (Node.js 20, Go)python- Python environment with uv and tools (pytest, ruff, black, mypy, poetry, pyright, jupyterlab)rust- Rust toolchain via rustupalacritty- Terminal emulator with custom theme and Hack Nerd Fontvscode- VS Code configuration with Claude Code extensionvim- Vim configuration with vim-plug
Primary configuration in group_vars/local:
full_name,git_user,git_email- Personal information (woodrow pearson, woodrowpearson@gmail.com)mac_homebrew_packages- Modern CLI tools (eza, bat, ripgrep, fzf, etc.)mac_cask_packages- Essential apps (Chrome, VS Code, Alacritty, Spotify, OrbStack, BetterTouchTool, Tailscale)icloud_enabled: true- Enable iCloud Drive symlink
- Comprehensive Backup System: Encrypted backpoints, graceful failure handling, Time Machine integration
- Bootstrap Checkpoints: Automatic recovery points with rollback capability during setup
- Project Scaffolding:
newproject python my-apicreates fully configured projects with CI/CD - Interactive Setup: Guided configuration of API keys, SSH, and GPG with
dot-configure - One-Command Install: From fresh macOS to fully configured in minutes with backup safety
- Modern CLI Tools: 15+ replacements with intuitive aliases (ls→eza, cat→bat, grep→rg)
- Custom Terminal: Alacritty with pastel theme, Hack Nerd Font, Starship prompt with git integration and icons
- Smart Secrets: Global .env template, per-project configurations, direnv integration
- Enhanced VS Code: Language-specific settings, recommended extensions, integrated terminal
- CI/CD Templates: GitHub Actions workflows for Python, Node.js, Rust
- Pre-commit Hooks: Automated code quality checks
- Mac-CLI Integration: System management shortcuts and developer utilities
- Zero-to-Productive: Complete setup from fresh macOS in under 30 minutes
- Project Creation:
newprojectprovides language-specific scaffolding with CI/CD - Secrets Management: Global defaults, per-project overrides, secure configuration
- Code Quality: Pre-commit hooks, formatters, linters configured by default
- All roles are tagged for selective execution
- Bootstrap-tagged roles only run during initial setup
- Templates directory provides CI/CD and configuration templates
- Scripts in
bin/are automatically added to PATH - Remote setup supports server configurations
- Self-documenting with comprehensive
CLAUDE.md - Modular, composable Ansible roles
- Safe defaults with easy customization
- Automated testing via GitHub Actions templates
- Security-conscious (SSH keys, GPG, API key management)