Core workflows for keeping your dotfiles running across platforms.
Primary manager: Homebrew
chezmoi update
This runs brew bundle install behind the scenes to reconcile against the declared Brewfiles.
sudo chown -R $(whoami) $(brew --prefix)/*brew bundle cleanup to remove unmanaged packages.Primary manager: apt-get / snap
sudo apt update && sudo apt upgrade -y
chezmoi update
On Linux, chezmoi focuses on configuration. Package updates work best through the OS package manager to avoid sudo conflicts.
./install/provision/run_onchange_50-install-fonts.sh.tmpl manually via chezmoi apply or source directly with bash.Primary manager: apt-get (inside WSL)
win32yank.exe automatically for clipboard sharing.~/projects), not in /mnt/c/, for dramatically better IO.After editing any config file:
dot apply
Triggers dot_zshrc reload and audit logging.
git pull
DOTFILES_NONINTERACTIVE=1 dot apply --force
dot doctor
dot apply includes post-apply checks that:
~/.config/shell/*.zwc, ~/.config/zsh/**/*.zwc)dot resolves to ~/.local/bin/dot in a fresh login shellFinish by reloading your session (exec zsh) or restarting the terminal.
Run updates in the background; you’ll get a status banner on the next shell launch:
dot update --async
If an update breaks your setup:
cd ~/.dotfiles
git reset --hard HEAD@{1}
chezmoi apply
# 1. On a connected machine, bundle your setup:
dot bundle ~/Downloads
# 2. Transfer the archive to the offline machine, then:
tar --zstd -xf dotfiles_offline_bundle_*.tar.zst -P
cd ~/.dotfiles
./install.sh --force
Regenerate all tool caches to eliminate shell startup latency:
dot prewarm
If something’s slow or broken:
dot doctor
dot health --fix
dot smoke-test
dot scorecard
dot chaos --force
dot heal --force
dot perf --profile
dot verify
dot aliases list
dot aliases why dprune
DOTFILES_ALIAS_POLICY=strict bash ~/.dotfiles/scripts/diagnostics/alias-governance.sh
DOTFILES_DEBUG=1 dot apply
Destructive aliases are disabled by default. Enable only when needed:
export DOTFILES_ENABLE_DANGEROUS_ALIASES=1
Core aliases load eagerly. Ecosystem aliases are lazy-loaded and can be filtered:
export DOTFILES_ALIAS_ECOSYSTEMS=python,node
Valid ecosystem tags: python, node, rust, network, legacy.