My personal dotfiles managed with Ansible.
brew install ansibleYou also need a .vault_pass file at the repo root containing the password for provision/secrets.yml (used to decrypt API tokens during provisioning).
User information is configured in provision/group_vars/all.yml:
user_name— Your full name for git configuser_email— Your email for git config
Secrets (API keys, tokens) live in provision/secrets.yml, encrypted with Ansible vault. To edit:
ansible-vault edit provision/secrets.yml --vault-password-file .vault_passFull setup (installs homebrew packages and configures all tools):
make installUpdate specific tools only:
make install tags=zsh,vim
make install tags=brew # Install/update homebrew packages only
make install tags=git # Configure git onlyAvailable tags: brew, git, zsh, vim, nvim, kvim, tmux, helix, ghostty, starship, devtools, claude.
The claude tag installs and configures Claude Code:
- Symlinks
~/.claude/settings.jsonand~/.claude/CLAUDE.mdfromdotfiles/claude/ - Renders
~/.mcp.jsonfrom the Jinja template, with Trello/Datadog secrets pulled from the vault - Installs RTK (Rust Token Killer) and runs
rtk init -gto install the token-saving hook into Claude Code (idempotent — skipped if~/.claude/RTK.mdalready exists)
Create ~/.zshrc.secrets for any environment variables that should not be committed to git.