A highly customizable Changelog Generator that follows Conventional Commit specifications ⛰️
12k
Stars
303
Forks
145
Open issues
30
Contributors
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.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
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.
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 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.
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.
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.
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.
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.
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
- 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.
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.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Website
- https://git-cliff.org
- Language
- Rust
- License
- Apache-2.0
- Last updated
- 1w ago
- Created
- 62mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Similar repos
conventional-changelog/conventional-changelog
Conventional Changelog generates changelogs and release notes automatically...
unhappychoice/gitlogue
Gitlogue is a terminal-based Git commit replay tool that animates code changes...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
12k | +16 | Rust | 8/10 | 1w ago |
|
|
8.5k | — | TypeScript | 8/10 | 14h ago |
|
|
1.1k | — | Rust | 7/10 | 3mo ago |
|
|
4.8k | — | Rust | 8/10 | 5d ago |
|
|
18.6k | — | TypeScript | 8/10 | 21h ago |
|
|
7.5k | — | Ruby | 8/10 | 4mo ago |
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.
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 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.
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.
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.

