Cross-platform dotfiles managed with chezmoi.
| Category | macOS | Windows | Both |
|---|---|---|---|
| Shell | Fish, Zsh | PowerShell | — |
| Prompt | — | — | Starship |
| Terminal | Ghostty, iTerm2 | Windows Terminal (pwsh default) | — |
| Version mgmt | — | — | mise (Python, Node) |
| Editor | — | — | VSCode, EditorConfig |
| Git | 1Password SSH signing | Credential Manager | Common config |
| SSH | 1Password agent (socket) | 1Password agent (named pipe) | — |
brew install chezmoi
chezmoi init --apply --ssh kelchmOr as a one-liner on a fresh machine:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply --ssh kelchmwinget install twpayne.chezmoi
chezmoi init --apply --ssh kelchmOr as a one-liner:
irm get.chezmoi.io/ps1 | powershell -c - -- init --apply --ssh kelchmchezmoi edit ~/.config/starship.toml # edit a managed file
chezmoi diff # preview pending changes
chezmoi apply # apply changes to home directory
chezmoi cd # cd into source directory
chezmoi add ~/.some/new/file # start managing a new file- Files are stored in chezmoi's source format (
dot_prefix replaces leading.) - Files ending in
.tmplare Go templates with OS-conditional logic .chezmoiignorecontrols which files deploy on which OSfish_variablesis intentionally not managed — Fish manages it automatically; important variables are set inconfig.fish