Quick start
Empty or non-anvil dots repo
Section titled “Empty or non-anvil dots repo”anvil init https://github.com/you/dotfiles --no-apply# If anvil.toml is missing → offered a starter scaffold (Yes by default)anvil add ~/.zshrcanvil add ~/.config/nvim# commit anvil.toml + moved files in the dots repoanvil apply --dry-runanvil apply -yanvil apply --packages -y # official + AUR (helper from local config)anvil apply --harden # checks; enforce only if harden.mode = "enforce"anvil statusanvil doctorThe scaffold step looks like this:
✓ Cloned into /home/you/.dotfiles ⚠ No anvil.toml found in this repository.? Create a starter anvil.toml so you can bootstrap this machine? (Y/n) ✓ Wrote starter anvil.toml ⚠ No links defined yet — repo is ready for bootstrap. Next steps: 1. cd ~/.dotfiles 2. anvil add ~/.zshrc 3. git add anvil.toml && git commitRepo already has anvil.toml
Section titled “Repo already has anvil.toml”anvil init https://github.com/you/dotfiles# select profiles when prompted, or:anvil init https://github.com/you/dotfiles -p base -p hyprland -y# reuse a checkout only if origin URL matches; otherwise erroranvil sync # later: pull + re-applyanvil apply --dry-runanvil apply -y # non-interactive; conflicts are skipped unless --force? Clone into › ~/.dotfiles ✓ Cloned into /home/you/.dotfiles? Available profiles: (space to select) ❯ base hyprland ✓ Local config written to ~/.config/anvil/config.toml Applying profile: base + hyprland ✓ ~/.zshrc → symlinked Done! 4 linked, 0 skippedNon-interactive / CI-style
Section titled “Non-interactive / CI-style”anvil init <url> --dir ~/.dotfiles --no-apply -yanvil apply -y --dry-runanvil apply -y --force # overwrite conflicts (journal first)anvil apply -y --packages # pacman + AUR helper (auto/paru/yay)anvil apply -y --packages --aur-helper anzenanvil apply --harden # checks; confirm before enforceanvil undo --listanvil undo # latest active journal