relnote
Turn a git range into clean GitHub release notes.
A stdlib Python changelog CLI and GitHub Action for offline conventional-commit release notes. No config file, no GitHub API, no third-party packages.
Install
pip install git+https://github.com/loki-inu/relnote.git
relnote --help
Python 3.11+, git on PATH, no third-party packages. Or run from a checkout: python3 -m relnote.
What it does
relnote is an offline conventional-commits release notes tool in Python. It reads the current repository, from the latest tag (or --since) to HEAD, and prints a GitHub Release body grouped from conventional commits:
- Features —
feat - Fixes —
fix - Breaking —
type!or aBREAKING CHANGE:footer - Other — docs, chore, refactor, and everything else
Merge commits are omitted by default. Bot authors can be dropped with --no-bots. Subjects that look like tokens are never printed. For CI, write a file and stay quiet: relnote --output notes.md --quiet.
GitHub Action for conventional-commit release notes
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: relnote
uses: loki-inu/relnote@v0.1.5
Pin loki-inu/relnote@v0.1.5. The notes output is the Release body. A draft-release workflow is in the repo under examples/.
Compared to the usual tools
Short version below. The full comparison covers a git-cliff alternative, a gh release create --generate-notes alternative, and another stdlib Python CLI (swapnanil/relnotes).
| Tool | Use it when |
|---|---|
| relnote | You want offline, stdlib-only notes grouped by conventional commits, plus a GitHub Action and zero-config CI. |
gh release create --generate-notes |
You want GitHub's official, PR-linked notes and you are already online with gh. |
| git-cliff | You want a full changelog file, Tera templates, and a config. Heavier, more control. |
| swapnanil/relnotes | Another stdlib Python conventional-commit notes CLI. Pick it for optional .relnotes.toml or semver bump inference. Pick relnote for the Action and --quiet / --output. |
Common questions
Is relnote a git-cliff alternative?
Yes, when you want a GitHub Release body from conventional commits and do not need Tera templates or a living CHANGELOG.md. Keep git-cliff when you want a maintained changelog file.
Is relnote a gh release create --generate-notes alternative?
Yes, when you want offline notes grouped by commit type. Keep gh release create --generate-notes when you want official PR-linked notes and the Release created for you.
Can I generate conventional-commit release notes offline in Python?
Yes. relnote is a stdlib Python changelog CLI. It reads local git history only — no GitHub API and no network. Python 3.11+ and git on PATH.
How do I generate conventional-commit release notes in a GitHub Action?
Use loki-inu/relnote@v0.1.5 after actions/checkout with fetch-depth: 0. The action writes grouped notes to an output. A draft-release workflow is in the repo under examples/.