Generate a CHANGELOG from your git history (Conventional Commits). Zero dependencies — no Rust, no config file, no GitHub token.
Project description
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.
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)
| 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
pip install changelg # Python >= 3.8
npx changelg # Node >= 18 (byte-for-byte port)
- PyPI: https://pypi.org/project/changelg/
- npm: https://www.npmjs.com/package/changelg
- GitHub: https://github.com/jjdoor/changelg-py · changelg (Node)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file changelg-0.1.0.tar.gz.
File metadata
- Download URL: changelg-0.1.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67bec765fb139fe55963396d1527fd3f9663e643572cf8efdf81e6d5b2b40b91
|
|
| MD5 |
ee7bdc0084fb1fc1a077533128db5197
|
|
| BLAKE2b-256 |
adeffea9bf65e880e74051b875d87cb06ed0fd5dd38684d32c8c39162a85a668
|
File details
Details for the file changelg-0.1.0-py3-none-any.whl.
File metadata
- Download URL: changelg-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b4cbda7e016314886ff6de8e573b33b14e7c6dc96f042c9d8f4d8bb18da0f8c
|
|
| MD5 |
194be7bfd54b55de9da2a20693110b28
|
|
| BLAKE2b-256 |
3bb01cd23672e0b6e22e460aed9f2f3cb7b06d446c0518450e74e2ae0377c7d3
|