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

Configuration

Guisu reads .guisu.toml from the source directory. The file can itself be a template (.guisu.toml.j2), which lets you vary config per machine without committing per-machine files.

Quick start

[general]
color = true
progress = true
editor = "nvim"

[age]
identity = "~/.config/guisu/key.txt"
derive = true

[bitwarden]
provider = "rbw"

[variables]
email = "user@example.com"
editor = "nvim"

[ignore]
global = [".git", ".DS_Store"]
darwin = ["Thumbs.db"]
linux = ["*~"]

Sections

SectionPurpose
[general]Top-level behaviour: paths, output, editor.
[age]Encryption identity and recipients.
[bitwarden]Password-manager provider selection.
[ui]Pager and diff tool overrides.
[ignore]Files to skip, with per-platform variants.
[variables]Free-form key/value map exposed as template variables.
[hooks](Optional) Hook execution defaults.

The full schema with type, default, and notes per key is in Reference — Configuration.

Templated configuration

A .guisu.toml.j2 is rendered with the same context as a regular template. Use this for per-machine values:

[general]
editor = "{{ env("EDITOR") | default(value="nvim") }}"

[variables]
hostname = "{{ hostname }}"

The file is rendered before being parsed, so the resulting TOML is what the rest of the system sees.

Note

Config file is rendered with the same context as templates hostname, os, arch, env vars, and user variables are all available in .guisu.toml.j2. This means a config file can be both a config and a small template at the same time.

Validation

guisu info prints the resolved configuration. Use it to debug:

guisu info --all

guisu info prints the resolved configuration, the version, public keys, and a validation summary. Use --json for machine-readable output. There is no separate guisu config get / guisu config set subcommand — edit .guisu.toml directly.

See also