changelg
v0.1.0
Published
Generate a CHANGELOG from your git history (Conventional Commits). Zero dependencies — no Rust, no config file, no GitHub token.
Maintainers
Readme
changelg
Generate a CHANGELOG from your git history. Point it at a range of Conventional Commits and it prints a clean, grouped, Markdown changelog. Zero dependencies — no Rust to install, no config file, no GitHub token, no CI integration. One command, on your machine.
npx changelg --release v1.2.0## v1.2.0 (2026-06-15)
### ⚠ BREAKING CHANGES
- **auth:** existing tokens are invalidated on deploy. (6667b72)
### Features
- **api:** add cursor pagination (a1b2c3d)
- **auth:** switch to short-lived tokens (6667b72)
### Bug Fixes
- handle an empty response body (e4f5a6b)Why
You finish a release, mean to write the changelog "later," and three weeks on
you're squinting at git log trying to remember what changed. The existing
tools each ask for something:
- git-cliff is excellent — but it's a Rust binary you have to install via cargo or a release download, with a config file to learn.
- standard-version is deprecated.
- release-please is powerful but wants GitHub Actions and a workflow.
changelg is the small one. If your commits roughly follow
Conventional Commits, it groups them
into sections and writes the Markdown. That's it.
Usage
changelg # changes since the latest tag → HEAD
changelg v1.2.0 # changes since v1.2.0 (→ HEAD)
changelg v1.2.0..v1.3.0 # an explicit range
changelg --release v1.3.0 # set the heading version
changelg -o CHANGELOG.md # write to a file (otherwise: stdout)
changelg --release v1.3.0 | cat - CHANGELOG.md | sponge CHANGELOG.md # prepend| Option | |
|---|---|
| --since <ref> | start ref (instead of a range argument) |
| --release <name> | heading version (default: target tag, else "Unreleased") |
| --all | include docs/refactor/build/ci/test/style/chore + other commits |
| --repo-url <url> | base repo URL for commit links (auto-detected from origin) |
| --no-links | plain short hashes instead of links |
| -o, --output <file> | write to a file instead of stdout |
Sections
feat → Features, fix → Bug Fixes, perf → Performance, and a
! or a BREAKING CHANGE: footer surfaces a ⚠ BREAKING CHANGES section
(showing the breaking note). By default the noisier types
(docs/chore/refactor/...) are hidden; --all brings them in. Commit hashes
become links when an origin remote is detected.
Install
npx changelg # Node >= 18
pip install changelg # Python >= 3.8 (byte-for-byte port)- npm: https://www.npmjs.com/package/changelg
- PyPI: https://pypi.org/project/changelg/
- GitHub: https://github.com/jjdoor/changelg · changelg-py
License
MIT
