Fair Warning: These dotfiles are highly opinionated and tailored for my specific macOS development workflow. They showcase patterns and automation that might be useful, but you'll likely want to fork and heavily customize rather than use directly.
A clean, simple dotfiles management system built on Chezmoi following Tom Payne's philosophy of declarative configuration and natural tool idempotency.
This repository follows Tom Payne's "simple and declarative" approach:
- Leverage each tool's natural idempotency instead of fighting it with custom logic
- Use direct
onepasswordReadcalls in templates for secrets - Simple brew bundle for package installation (naturally idempotent)
- Minimal scripts focused only on macOS defaults configuration
- No complex detection logic or backup mechanisms
The goal is a clean, maintainable setup that gets you from zero to productive development environment in minutes.
- 1Password integration with direct
onepasswordReadtemplate calls - SSH keys managed by 1Password with automatic agent configuration
- Git signing through 1Password SSH keys
- Dynamic SSH config stored in 1Password notes for ultimate flexibility
- 90+ applications installed via brew bundle
- Development tools managed by mise (Node.js, Python, Ruby, etc.)
- Comprehensive shell setup with Zsh, Starship, and productivity tools
- macOS system configuration via simple defaults commands
- Before scripts: Package installation (brew bundle, mise)
- Templates: Declarative config using direct
onepasswordRead - After scripts: Minimal macOS defaults configuration
- Dynamic configs: Stored in 1Password for flexibility without code changes
curl -sfL https://raw.githubusercontent.com/jarodtaylor/dotfiles/refactor-simplify/install.sh | bashThis will:
- Install Xcode Command Line Tools (with GUI prompts)
- Install and run chezmoi with my dotfiles
- Install 90+ applications via Homebrew
- Configure development tools with mise
- Apply all configurations and settings
- Perfect shell with AI-powered tools and productivity enhancements
- 90+ applications ready to use (VS Code, Docker, browsers, etc.)
- Development environment with Node.js, Python, Ruby, Go, etc.
- All configurations tuned for maximum productivity
- 1Password integration for secure SSH and Git operations
The install script handles these, but for manual setup:
# Install Xcode Command Line Tools
xcode-select --install
# Install 1Password app and CLI (optional but recommended)
# Download from App Store or:
brew install --cask 1password 1password-cli# Fork this repository on GitHub, then:
git clone https://github.com/YOURUSERNAME/dotfiles.git
cd dotfiles
# Customize the package lists:
# - home/.chezmoiscripts/run_onchange_before_10-install-packages.sh.tmpl
# Remove 1Password references if not using:
# - home/.chezmoi.toml.tmpl
# - home/private_dot_ssh/config.tmpl
# - home/dot_gitconfig.tmpl# Initialize chezmoi with your repository
chezmoi init https://github.com/YOURUSERNAME/dotfiles.git
# Review what will be applied
chezmoi diff
# Apply (start with --dry-run to be safe)
chezmoi apply --dry-run
chezmoi applyDevelopment Tools:
- VS Code, Cursor, Neovim
- Docker, Postman, GitHub Desktop
- Terminal apps (Ghostty, Wezterm)
Productivity:
- 1Password, Raycast, CleanShot
- Notion, Obsidian, Todoist
- Slack, Discord, Zoom
System Tools:
- Aerospace (window management)
- Karabiner Elements (keyboard customization)
- Various fonts and utilities
- mise for runtime management (Node.js, Python, Ruby, Go, etc.)
- Comprehensive CLI tools (bat, eza, fzf, ripgrep, lazygit, etc.)
- Database tools (PostgreSQL, Redis, pgcli)
- Modern shell with Zsh, Starship prompt, and abbreviations
- Git with Delta diff viewer and 1Password SSH signing
- SSH with 1Password agent integration
- Zsh with organized functions and productivity aliases
- Neovim with modern configuration
- macOS system preferences and defaults
βββ home/ # Files applied to ~
β βββ .chezmoiscripts/ # Setup scripts
β β βββ run_onchange_before_10-install-packages.sh.tmpl # Brew + mise
β β βββ run_onchange_after_10-configure-macos.sh # System defaults
β βββ .chezmoitemplates/ # Reusable snippets
β βββ .config/ # App configurations
β β βββ zsh/ # Shell setup
β β βββ git/ # Git configuration
β β βββ nvim/ # Neovim config
β β βββ [other apps]/ # Tool configs
β βββ private_dot_ssh/ # SSH configuration
β βββ dot_gitconfig.tmpl # Git global config
βββ install.sh # One-line installer
βββ README.md # This file
Edit home/.chezmoiscripts/run_onchange_before_10-install-packages.sh.tmpl:
{{ $brews := list
"your-brew-packages"
"here" -}}
{{ $casks := list
"your-cask-apps"
"here" -}}If not using 1Password, remove references in:
home/.chezmoi.toml.tmplhome/private_dot_ssh/config.tmplhome/dot_gitconfig.tmpl
Customize system settings in:
home/.chezmoiscripts/run_onchange_after_10-configure-macos.sh
- Hundreds of lines of detection logic
- Multiple backup and restore mechanisms
- Complex 1Password setup scripts
- Conditional environment variables
- Timeout-based package installation
- Direct
onepasswordReadcalls in templates - Single brew bundle for packages
- Minimal scripts for macOS defaults only
- Leverages natural tool idempotency
- Clean, declarative configuration
While this repository is highly personal, I'm happy to:
- Answer questions about the simplified patterns used
- Review suggestions for better organization
- Help troubleshoot issues when adapting the setup
- macOS-focused: Assumes macOS with Homebrew
- 1Password optimized: Many features work best with 1Password
- Opinionated choices: Specific tools and configurations for my workflow
This simplified approach is heavily inspired by:
- Tom Payne's dotfiles - The creator of chezmoi's own clean approach
- Chezmoi documentation - Best practices and patterns
- MasahiroSakoda's dotfiles - Multi-platform simplicity
Remember: The best dotfiles are simple, maintainable, and match your workflow. This repository shows how to achieve a lot with very little complexity!