Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Commands

This page enumerates every guisu subcommand. Run guisu <subcommand> --help for the authoritative flag list; this page is the curated overview.

Note

How the page is organised Top-level commands first, then sub-commands grouped under their parents (age, ignored, templates, hooks). Flags shown are the curated highlights; the full set comes from --help.

Top-level commands

CommandPurpose
guisu init [TARGET]Clone a dotfiles repo or initialise a new one locally.
guisu add PATH...Copy files from the destination into the source repo.
guisu apply [PATH]...Render the source state and write to the destination.
guisu diffShow the differences between target and destination.
guisu statusPer-file status (Synced / Added / Modified / Removed / Conflict).
guisu cat PATHPrint the rendered (target) content of a file.
guisu edit PATHOpen the source file in $EDITOR with transparent decrypt/encrypt.
guisu updateFetch, merge, and apply.
guisu infoPrint resolved source / destination / version / configuration.
guisu variablesPrint all template variables available in the current context.
guisu ageSee age subcommand group.
guisu ignoredSee ignored subcommand group.
guisu templatesSee templates subcommand group.
guisu hooksSee hooks subcommand group.

guisu init

guisu init [PATH_OR_REPO] [FLAGS]
FlagEffect
--apply / -aApply changes after initialisation (default behaviour for cloned repos).
--depth NShallow clone with the given commit depth.
--branch NAMEClone the specified branch.
--sshUse SSH instead of HTTPS when guessing the GitHub URL.
--recurse-submodulesClone submodules recursively.

PATH_OR_REPO accepts a local path, a GitHub username (shorthand for github.com/username/dotfiles), or a full URL. Defaults to ~/.local/share/guisu.

guisu add

guisu add PATH... [FLAGS]
FlagEffect
--encryptStore the file as <name>.age in the source.
--templateStore the file as <name>.j2 for Jinja rendering.
--privateForce mode 0600 (or 0700 for directories).
--executableForce mode 0755.
--exactPreserve the source filename as-is; do not infer attributes.
--forceOverwrite an existing source entry.
--no-gitSkip the git add step.

guisu apply

guisu apply [PATH]... [FLAGS]
FlagEffect
--dry-runShow planned changes without writing.
--forceOverwrite destination without prompting.
--interactiveOpen the TUI for every conflict.
--include PATTERNOnly apply files matching the pattern.
--exclude PATTERNSkip files matching the pattern.
--no-apply(Used by init.) Skip the apply step.

guisu diff

guisu diff [PATH]... [FLAGS]

Shows a unified diff between target and destination. Honours --include / --exclude and the same source/destination overrides as apply.

guisu status

guisu status [PATH]... [FLAGS]

Per-file status output, one line per entry. --json emits machine-readable output.

guisu cat

guisu cat PATH

Print the rendered (decrypted + templated) target content to stdout. Useful for debugging templates without applying.

guisu edit

guisu edit PATH

Decrypt (if .age), open in $EDITOR, re-encrypt on save. Temp file is 0600 and securely deleted on editor exit.

guisu update

guisu update [FLAGS]

Fetch from the source repo’s remote, merge (or rebase with --rebase), and run apply. --no-apply skips the apply step.

guisu info

guisu info [FLAGS]

Print the resolved source directory, working tree, destination directory, and version. With --all, also print build info, public keys, and configuration. With --json, machine-readable.

Tip

Use info for first-time setup debugging If guisu apply cannot find your source dir, run guisu info --all to see what Guisu resolved. Most “why is nothing happening?” questions answer themselves in this output.

guisu variables

guisu variables [FLAGS]

Print every variable available in the current template context: system, guisu, user-defined, and platform-specific. --builtin shows only system + guisu; --user shows only user-defined; --json emits machine-readable.

Subcommand groups

guisu age

SubcommandPurpose
guisu age generate -o FILECreate a new age identity.
guisu age encrypt FILEEncrypt a file with the configured recipients.
guisu age decrypt FILEDecrypt a file with the configured identities.
guisu age encrypt --inline VALUEEmit an inline-encrypted string for use in templates.
guisu age decrypt --inline VALUEDecrypt an inline-encrypted string.
guisu age recipientsList the configured recipients.

guisu ignored

SubcommandPurpose
guisu ignored listList currently ignored files and the patterns that matched.
guisu ignored add PATTERNAdd a pattern to .guisu.toml [ignore].
guisu ignored remove PATTERNRemove a pattern.

guisu templates

SubcommandPurpose
guisu templates execute PATHRender a template with the current context (no apply).

guisu hooks

SubcommandPurpose
guisu hooks run PHASEManually execute pre or post hooks for the given phase.
guisu hooks listList all discovered hooks with their resolved mode.
guisu hooks show HOOKShow the script path and the environment variables it would receive.

Global flags

Most top-level commands accept:

FlagEffect
--source DIROverride the source directory. Also reads GUISU_SOURCE_DIR.
--dest DIROverride the destination directory. Also reads GUISU_DEST_DIR.
--config FILEOverride the config file path. Also reads GUISU_CONFIG.
--log-file FILEMirror logs to this file. Also reads GUISU_LOG_FILE.
--color WHENauto / always / never.
--progress WHENauto / always / never.