WindowsmacOSLinux

Where Does git-cliff Store Its Config?

git-cliff reads cliff.toml in the project (then a per-OS global config), generatable with --init and overridable via --config.

Last updated

git-cliff discovers cliff.toml (plus .cliff.toml and .config/cliff.toml variants) by walking up from the workdir, then falls back to a global file in the OS config dir. No file at all still works: built-in defaults generate a plain changelog.

Env vars punch through any file. GIT_CLIFF_CONFIG picks the file, and friends like GIT_CLIFF_OUTPUT redirect results, which keeps CI invocations explicit without extra committed files.

Where git-cliff stores this, by platform

Windows
[RepoDir]\cliff.toml

Project config plus global fallback in %APPDATA%\git-cliff\cliff.toml. Generate with git-cliff --init; per-run override with --config or GIT_CLIFF_CONFIG.

macOS
[RepoDir]/cliff.toml

Same discovery. Global file at ~/.config/git-cliff/cliff.toml (legacy ~/Library/Application Support path still honored). Templates via --init <name>.

Linux
[RepoDir]/cliff.toml

Same layout with global at ~/.config/git-cliff/cliff.toml. Remote configs work too via --config-url for shared org templates.

Frequently asked questions

How do I create my first cliff.toml?

Run git-cliff --init (optionally with a template name like keepachangelog). It writes cliff.toml to the current directory; edit from there instead of starting blank.

Can I keep the config outside the repo?

Pass --config <path> or set GIT_CLIFF_CONFIG. Project files (cliff.toml, .cliff.toml, .config/cliff.toml) are only auto-discovered, never mandatory.

Notice an outdated path? Let us know.