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:

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/.