Command Equivalence¶
Quick reference mapping chezmoi commands to their haven equivalents.
Daily workflow¶
| What you want to do | chezmoi | haven |
|---|---|---|
| Apply all config | chezmoi apply |
haven apply |
| Preview changes | chezmoi diff |
haven diff |
| Summary of drift | chezmoi status |
haven status |
| See tracked files | chezmoi managed |
haven list |
| Find untracked dotfiles | — | haven unmanaged |
| Track a new file | chezmoi add ~/.foo |
haven add ~/.foo |
| Re-track a changed file | chezmoi re-add ~/.foo |
haven add ~/.foo --update |
| Stop tracking a file | chezmoi forget ~/.foo |
haven remove ~/.foo |
| Edit source file | chezmoi edit ~/.foo |
$EDITOR $(haven source-path)/source/dot_foo |
| Go to source dir | chezmoi cd |
cd $(haven source-path) |
| Dry run | chezmoi apply --dry-run |
haven apply --dry-run |
| Check for drift (CI) | chezmoi verify |
haven diff (exits 1 on drift) |
Migration and updates¶
| What you want to do | chezmoi | haven |
|---|---|---|
| Import from chezmoi | — | haven import --from chezmoi |
| Pull latest + apply | chezmoi update |
cd ~/.local/share/haven && git pull && haven apply |
| Upgrade the binary | chezmoi upgrade |
haven upgrade |
| Clone + apply on new machine | chezmoi init --apply gh:you/dotfiles |
haven init gh:you/my-env --apply |
Templates and data¶
| What you want to do | chezmoi | haven |
|---|---|---|
| Check template variables | chezmoi data |
haven data |
| Preview a rendered template | chezmoi cat ~/.foo |
haven apply --dry-run --dest /tmp/staging |
| Evaluate template expression | chezmoi execute-template '{{ .chezmoi.os }}' |
(not available) |
Secret management¶
| What you want to do | chezmoi | haven |
|---|---|---|
| Read from 1Password | {{ onepasswordField "..." "..." }} |
{{ op(path="op://...") }} |
| Read from environment | {{ env "VAR" }} |
{{ get_env(name="VAR") }} |
| Bitwarden / LastPass / Vault | Built-in integrations | Not supported |
| age / GPG encryption in repo | Supported | Not supported |
Features unique to haven¶
These don't have chezmoi equivalents:
haven brew install ripgrep # install + add to Brewfile
haven brew uninstall ripgrep # uninstall + remove from Brewfiles
haven apply --profile work # apply a named profile
haven ai add gh:owner/repo # add an AI skill
haven apply --ai # deploy AI skills
haven security-scan # scan tracked files for secrets
haven unmanaged # find untracked dotfiles
haven vcs # show active VCS backend (git or jj)
The chezmoi cd equivalent¶
# Go to source dir
cd $(haven source-path)
# Or set a shell alias
alias hcd='cd $(haven source-path)'
# Edit haven.toml directly
$EDITOR $(haven source-path)/haven.toml