whatisgithub

What is git-cliff?

orhun/git-cliff — explained in plain English

Analysis updated 2026-06-24

11,841RustAudience · developerComplexity · 2/5LicenseSetup · easy

In one sentence

A command-line tool that automatically generates changelog files from your Git commit history, supporting conventional commits and fully customizable output templates.

Mindmap

mindmap
  root((git-cliff))
    What it does
      Reads git history
      Groups by commit type
      Renders changelog file
    Tech stack
      Rust CLI
      cliff.toml config
      Template engine
    Use cases
      Release notes
      CI automation
      Custom formats
    Audience
      Developers
      Open source maintainers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automatically generate a formatted CHANGELOG.md for your project before each release.

USE CASE 2

Customize which commit types (feat, fix, chore) appear as sections in your changelog.

USE CASE 3

Use regex-based parsers to extract changelog content from non-conventional commit messages.

What is it built with?

Rust

How does it compare?

orhun/git-cliffo2sh/onefetchimsnif/bandwhich
Stars11,84111,78211,739
LanguageRustRustRust
Setup difficultyeasyeasyeasy
Complexity2/51/52/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Dual-licensed under Apache 2.0 and MIT, use freely for any purpose, personal or commercial, with no restrictions beyond keeping the copyright notice.

So what is it?

git-cliff is a command-line tool written in Rust that generates changelog files from a project's Git commit history. Rather than writing release notes by hand each time, you run git-cliff against your repository and it reads through your commits to produce a formatted changelog document automatically. The tool is designed around the conventional commits format, a widely used convention where each commit message starts with a type prefix such as "feat", "fix", or "chore" to indicate what kind of change it represents. git-cliff uses these prefixes to sort and group commits into labelled sections in the generated changelog. If your project does not follow conventional commits, you can configure regex-based custom parsers in the configuration file to pull useful information out of whatever commit message format you use. The output format is controlled by a template system and a cliff.toml configuration file. You can adjust which sections appear, how commits are grouped within each section, what text accompanies each entry, and how the document is structured overall. This flexibility lets teams adapt the output to match their specific changelog conventions or documentation style. The README is brief and points to the official documentation website for detailed setup instructions, usage examples, and templating reference. An Emacs integration called git-cliff.el exists for generating and updating changelogs from within that editor. The tool has appeared in developer conference talks and newsletters. git-cliff is dual-licensed under Apache 2.0 and MIT, meaning you choose whichever license fits your project. Several similar changelog-generation tools are listed in the README for comparison.

Copy-paste prompts

Prompt 1
I have a Rust CLI tool called git-cliff. Write a cliff.toml config that groups commits by type (feat, fix, chore) and formats the changelog with a date header and links to the commit SHA.
Prompt 2
My project uses non-conventional commit messages like 'JIRA-123: fixed login bug'. Write a git-cliff regex parser config that extracts the ticket number and description for changelog entries.
Prompt 3
Show me how to integrate git-cliff into a GitHub Actions workflow that auto-generates a CHANGELOG.md and creates a GitHub release on each tag push.
Prompt 4
I want git-cliff to skip all 'chore' and 'ci' commits from appearing in the changelog. What configuration do I need in cliff.toml?

Frequently asked questions

What is git-cliff?

A command-line tool that automatically generates changelog files from your Git commit history, supporting conventional commits and fully customizable output templates.

What language is git-cliff written in?

Mainly Rust. The stack also includes Rust.

What license does git-cliff use?

Dual-licensed under Apache 2.0 and MIT, use freely for any purpose, personal or commercial, with no restrictions beyond keeping the copyright notice.

How hard is git-cliff to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is git-cliff for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.