chezmoi
A multi-machine dotfile manager, written in Go.
TLDR
Initialize chezmoi on your machine
Tell chezmoi to manage a dotfile
Edit the source state of a tracked dotfile
See changes chezmoi would make
Apply the changes
Set chezmoi up on another machine by downloading existing dotfiles from a Git repository
Fetch the latest changes from a remote repository
Help
Manage your dotfiles across multiple diverse machines, securely
Usage:
chezmoi [command]
Available Commands:
add Add an existing file, directory, or symlink to the source state
apply Update the destination directory to match the target state
archive Generate a tar archive of the target state
cat Print the target contents of a file, script, or symlink
cd Launch a shell in the source directory
chattr Change the attributes of a target in the source state
completion Generate shell completion code
data Print the template data
decrypt Decrypt file or standard input
diff Print the diff between the target state and the destination state
docs Print documentation
doctor Check your system for potential problems
dump Generate a dump of the target state
edit Edit the source state of a target
edit-config Edit the configuration file
encrypt Encrypt file or standard input
execute-template Execute the given template(s)
forget Remove a target from the source state
git Run git in the source directory
help Print help about a command
import Import an archive into the source state
init Setup the source directory and update the destination directory to match the target state
managed List the managed entries in the destination directory
merge Perform a three-way merge between the destination state, the source state, and the target state
merge-all Perform a three-way merge for each modified file
purge Purge chezmoi's configuration and data
re-add Re-add modified files
remove Remove a target from the source state and the destination directory
secret Interact with a secret manager
source-path Print the path of a target in the source state
state Manipulate the persistent state
status Show the status of targets
unmanaged List the unmanaged files in the destination directory
update Pull and apply any changes
verify Exit with success if the destination state matches the target state, fail otherwise
Flags:
--cache path Set cache directory (default /home/simon/.cache/chezmoi)
--color bool|auto Colorize output (default auto)
-c, --config path Set config file (default /home/simon/.config/chezmoi/chezmoi.toml)
--config-format json|toml|yaml Set config file format
--debug Include debug information in output
-D, --destination path Set destination directory (default /home/simon)
-n, --dry-run Do not make any modifications to the destination directory
--force Make all changes without prompting
-h, --help help for chezmoi
-k, --keep-going Keep going as far as possible after an error
--mode mode Mode
--no-pager Do not use the pager
--no-tty Do not attempt to get a TTY for reading passwords
-o, --output path Write output to path instead of stdout
--persistent-state path Set persistent state file
-R, --refresh-externals Refresh external cache
-S, --source path Set source directory (default /home/simon/.local/share/chezmoi)
--source-path Specify targets by source path
--use-builtin-age bool|auto Use builtin age (default auto)
--use-builtin-git bool|auto Use builtin git (default auto)
-v, --verbose Make output more verbose
--version version for chezmoi
-W, --working-tree path Set working tree directory
Use "chezmoi [command] --help" for more information about a command.