Skip to content

Hooks

chezmoi runs hooks before and after each chezmoi command as specified by the hooks configuration variable.

Before running command, chezmoi runs hooks.command.pre.command with the arguments hooks.command.pre.args. Similarly, after running command, chezmoi runs hooks.command.post.command with hooks.command.post.args.

When running hooks, the CHEZMOI=1 and CHEZMOI_* environment variables will be set. Notably, CHEZMOI_COMMAND is set to the chezmoi command being run and CHEZMOI_ARGS contains the full arguments to chezmoi, starting with the path to chezmoi's executable.

Unlike scripts, hooks are always run, irrespective of whether --dry-run is specified or not.

Example

~/.config/chezmoi/chezmoi.toml
[hooks.add.pre]
command = "echo"
args = ["pre-add-hook"]

[hooks.apply.post]
command = "echo"
args = ["post-apply-hook"]