Skip to content

Quick start

Terminal window
anvil init https://github.com/you/dotfiles --no-apply
# If anvil.toml is missing → offered a starter scaffold (Yes by default)
anvil add ~/.zshrc
anvil add ~/.config/nvim
# commit anvil.toml + moved files in the dots repo
anvil apply --dry-run
anvil apply -y
anvil apply --packages -y # official + AUR (helper from local config)
anvil apply --harden # checks; enforce only if harden.mode = "enforce"
anvil status
anvil doctor

The 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 commit
Terminal window
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 error
anvil sync # later: pull + re-apply
anvil apply --dry-run
anvil 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 skipped
Terminal window
anvil init <url> --dir ~/.dotfiles --no-apply -y
anvil apply -y --dry-run
anvil apply -y --force # overwrite conflicts (journal first)
anvil apply -y --packages # pacman + AUR helper (auto/paru/yay)
anvil apply -y --packages --aur-helper anzen
anvil apply --harden # checks; confirm before enforce
anvil undo --list
anvil undo # latest active journal