Personal dotfiles managed with chezmoi.
This repo uses chezmoi's templating to manage different configurations for home vs work environments. Templates (.tmpl files) conditionally include settings based on the .environment variable:
{{- if eq .environment "home" }}
# Home-specific config
{{- else }}
# Work-specific config
{{- end }}
The environment is set in ~/.config/chezmoi/chezmoi.yaml or prompted during chezmoi init.
# Install chezmoi and apply dotfiles
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply $GITHUB_USERNAME
# Or if chezmoi is already installed
chezmoi init --apply $GITHUB_USERNAME./install # Bootstrap Homebrew, Fisher, shell, and macOS preferences├── home/ # Chezmoi source (maps to ~)
│ ├── dot_config/ # → ~/.config/
│ │ ├── fish/ # Shell config
│ │ ├── zed/ # Zed editor
│ │ ├── ghostty/ # Terminal
│ │ ├── zellij/ # Multiplexer
│ │ ├── starship.toml # Prompt
│ │ └── ...
│ ├── dot_claude/ # Claude Code settings
│ └── dot_Brewfile.tmpl # Templated Brewfile (→ ~/.Brewfile)
└── .macos # macOS system preferences
| Category | Tool |
|---|---|
| Shell | Fish |
| Prompt | Starship |
| Editor | Zed |
| Terminal | Ghostty |
| Multiplexer | Zellij |
| Version Manager | mise |
| Secrets | 1Password (SSH signing & auth) |
# Chezmoi
chezmoi apply # Apply changes to home directory
chezmoi diff # Preview pending changes
chezmoi add <file> # Track a new file
chezmoi manage <file> # Add an existing file to chezmoi-managed files
# Packages (uses templated ~/.Brewfile)
brew bundle --global # Install from ~/.Brewfile- SSH authentication and commit signing use 1Password
- Pi agent configuration moved to separate repo:
~/dev/pi-config - See
AGENTS.mdfor AI assistant guidance