← Back to archive

Repo of the Day

orhun/git-cliff

Published: Nov 10, 2026

Open repository ↗

A highly customizable Changelog Generator that follows Conventional Commit specifications ⛰️

Summary

git-cliff is a Rust changelog generator that turns Git history into changelog files. It understands Conventional Commits and can use regex-powered custom parsers, while a configuration file lets teams customize the changelog template and format.

What it is useful for

Use git-cliff when a project needs changelog or release-note content derived from commits instead of maintaining it by hand. It fits three concrete cases:

  • A team follows Conventional Commits and wants its existing history converted into a changelog.
  • A repository contains another commit-message convention and the team needs to describe that format with a custom regular-expression parser.
  • Different projects or teams require different changelog layouts; the template is controlled through configuration rather than being fixed by the tool.

It can also serve projects evaluating monorepo changelog generation: the README links a community introduction specifically to git-cliff and monorepos, although configuration details are not included in the supplied README.

The supplied README does not state explicit limitations. It shows that parsing and presentation are configuration-driven, and it documents changelog generation—not version calculation, release publishing, or artifact uploads. Engineers should therefore verify current command behavior and required inputs in the official usage documentation rather than assume a particular release workflow.

How engineers can use it

  1. Install it using the documented path. The README links the official installation documentation but does not provide a complete installation command, so use that page for the current instructions.

  2. Choose a commit parser. If the team uses Conventional Commits, ensure the commits being parsed follow that format. For other message patterns, define a regex-powered custom parser using the Git configuration documentation.

  3. Create a configuration file. Use the configuration guide and templating documentation to select the parser and define the desired changelog format.

  4. Generate and review the result. Follow the README’s linked usage examples for the exact invocation, run the generator against the repository, and inspect the resulting changelog before including it in a release.

For an initial adoption, start with one repository, keep its configuration with the project, and compare the generated output with the team’s expected release-note format. The README does not document a separate validation command, so none is assumed here.