orhun

orhun/git-cliff

Rust Apache-2.0 Dev Tools

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

12k stars
303 forks
recent
GitHub +16 / week

12k

Stars

303

Forks

145

Open issues

30

Contributors

v2.13.1 26 Apr 2026

AI Analysis

git-cliff is a changelog generator written in Rust that parses Git history according to Conventional Commits specifications and custom regex patterns to automatically produce formatted changelog files. It serves teams and projects that want to automate changelog generation as part of their release workflow, particularly those already following or willing to adopt conventional commit conventions. It is not a general-purpose Git tool but a specialized utility for release management automation.

Dev Tools CLI Tool Discovery value: 5/10
Documentation 9/10
Activity 10/10
Community 9/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

changelog-generation conventional-commits rust-tool git-automation release-management
Actively maintained Well documented Popular Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
2w ago

Rust-powered changelog generator with deep customization and conventional commit support

git-cliff generates structured changelogs from Git history, supporting both conventional commits and regex-based custom parsers. Built primarily for developers and release engineers who need reproducible, templatable changelogs without being locked into a JavaScript toolchain. With ~12k GitHub stars, a dedicated website, Docker image, and library crate, it has matured well beyond a personal project. It appears particularly popular in the Rust ecosystem and among teams wanting a single compiled binary with no runtime dependency.

Origin

Created in May 2021 by Orhun Parmaksiz, a prolific Rust open source author. It evolved from a CLI-only tool into a project with library crates, a documentation website, CI/CD integrations, and community tooling around it.

Growth

Growth appears driven by the Rust ecosystem's need for native tooling, frustration with Node.js-based alternatives like standard-version (now deprecated), and the author's visibility in the Rust community (RustLab 2023 talk, Console newsletter). The project gained critical mass as conventional commits became mainstream and teams sought lighter, faster, cross-platform alternatives. A KaiCode 2024 second-place win added credibility. Growth has likely plateaued into steady organic accumulation rather than rapid acceleration.

In production

Used by release-plz (a widely used Rust release automation tool) and cliff-jumper (a Node.js CLI integrating git-cliff). Community blog posts, a YouTube conference talk, and a Discord/Matrix community exist. The crates.io publication with docs.rs support indicates library-level adoption. Exact production deployment numbers are not publicly documented, but signals are stronger than most comparable niche tools.

Code analysis
Architecture

Appears to be structured as a workspace with a core library crate (git-cliff-core, published to crates.io with docs.rs docs) and a CLI binary. Likely uses Tera or similar Rust templating for changelog output. Configuration is file-based (cliff.toml). README implies support for monorepos, multiple output formats, and remote repository integrations. Docker image availability suggests it is self-contained.

Tests

Codecov badge is present in the README with an active link to codecov.io, indicating automated test coverage tracking exists. Exact coverage percentage not documented in README.

Maintenance

Last push was June 20, 2026 — 3 days before the evaluation date. CI and CD workflows are both shown as active in badges. This is one of the most actively maintained projects in its category. No signs of stagnation.

Honest verdict

ADOPT IF: you want a fast, dependency-free changelog tool with deep template customization and your team uses conventional commits — especially in Rust, Go, or any non-JS project. AVOID IF: you need integrated version bumping and semantic release automation in a single tool, or your workflow is already deeply embedded in the Node.js semantic-release/conventional-changelog ecosystem. MONITOR IF: you are evaluating it for large monorepo use cases — the feature exists but maturity at scale is not well-documented publicly.

Independent dimensions

Mainstream potential

6/10

Technical importance

7/10

Adoption evidence

6/10

Risks
  • Single primary maintainer: the project's pace and direction depend heavily on one author, creating bus-factor risk despite community contributions.
  • No native version bumping: teams that need coordinated changelog generation AND semver version management must pair git-cliff with another tool, adding workflow complexity.
  • Tera templating has a learning curve: highly customized output requires understanding a Rust-native template language that is less familiar than Handlebars or Jinja2.
  • Monorepo support is documented but real-world scale experience is not well-publicized, so complex multi-package repos may encounter edge cases.
  • The market for dedicated changelog tools may consolidate into larger release automation platforms (like release-plz or semantic-release), potentially reducing standalone adoption over time.
Prediction

Likely to remain the leading changelog-only tool in the Rust ecosystem and a strong choice for polyglot teams. Slow but steady growth expected as conventional commits adoption matures globally.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Rust
90.9%
TypeScript
3.7%
CSS
1.7%
JavaScript
1.3%
HTML
1%
Dockerfile
0.4%
Nix
0.4%
Shell
0.3%

Information

Language
Rust
License
Apache-2.0
Last updated
1w ago
Created
62mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

conventional-changelog

conventional-changelog/conventional-changelog

Conventional Changelog generates changelogs and release notes automatically...

8.5k TypeScript Dev Tools
cocogitto

cocogitto/cocogitto

Cocogitto is a Conventional Commits and Semver toolbox written in Rust that...

1.1k Rust Dev Tools
unhappychoice

unhappychoice/gitlogue

Gitlogue is a terminal-based Git commit replay tool that animates code changes...

4.8k Rust Dev Tools
conventional-changelog

conventional-changelog/commitlint

commitlint is a linter for commit messages that enforces the conventional...

18.6k TypeScript Dev Tools
github-changelog-generator

github-changelog-generator/github-changelog-generator

This tool automatically generates changelogs from GitHub tags, issues, labels,...

7.5k Ruby
vs. alternatives
conventional-changelog/standard-version

Standard-version is deprecated; git-cliff is a natural migration target for teams that used it. However, standard-version also handled version bumping, which git-cliff does not do natively.

conventional-changelog/conventional-changelog

The Node.js conventional-changelog suite is deeply integrated into the npm/JavaScript ecosystem and has far more integrations (Lerna, semantic-release). git-cliff is preferred outside the JS ecosystem or when a single binary is required.

github-changelog-generator/github-changelog-generator

github-changelog-generator relies on GitHub API and PR/issue labels rather than commit conventions. git-cliff is more portable and works fully offline. github-changelog-generator suits teams using GitHub-centric workflows without conventional commits.

unjs/changelogen

changelogen is tightly coupled to the UnJS/Nuxt ecosystem and JavaScript projects. git-cliff is language-agnostic and more configurable. changelogen has version-bump integration that git-cliff lacks natively.

pawamoy/git-changelog

git-changelog uses Jinja2 templates in Python; git-cliff uses Rust with Tera templates. Both serve similar customization goals. git-cliff has significantly more traction and a more active maintenance record.