relnote docs · Compare · Offline notes · CHANGELOG.md · Next version

gh relnote: release notes from conventional commits, inside the GitHub CLI

gh-relnote is a GitHub CLI extension that bundles relnote. It reads commit messages in your clone, groups feat, fix, and breaking changes, and hands the result to gh release create.

Install

gh extension install loki-inu/gh-relnote
gh relnote --help

Needs gh, git, and Python 3.11+ on PATH. No pip install and no third-party packages: relnote v0.2.0 is vendored in the extension. Set PYTHON=/path/to/python3 to pick an interpreter. Upgrade with gh extension upgrade relnote.

Preview the notes

gh relnote                          # latest tag → HEAD
gh relnote --since v1.2.0 --no-bots
gh relnote --output notes.md --quiet

Output is Markdown for a GitHub Release body, grouped as Features, Fixes, Breaking, and Other. Merge commits are skipped by default, --no-bots drops dependabot and renovate, and subjects that look like tokens or keys are never printed.

Create the release in one step

gh relnote create v1.3.0 --draft
gh relnote create v1.3.0 --title "v1.3.0" -- --no-bots --max 50
gh relnote create v1.3.0 -- --changelog CHANGELOG.md --changelog-title v1.3.0

create runs relnote for the latest tag to HEAD, writes the notes to a temp file, then runs gh release create TAG … --notes-file. Flags before -- go to gh release create (--draft, --prerelease, --title, --target, asset paths). Flags after -- go to relnote.

gh relnote vs gh release create --generate-notes

gh relnote--generate-notes
SourceCommit messages in your local cloneMerged pull requests on GitHub
GroupingConventional Commit type (feat, fix, breaking)PR labels via .github/release.yml
Works for direct-to-main reposYesLists little or nothing without PRs
Preview before pushing a tagYes, offlineOnline only, via the GitHub API
Contributor and PR linksAuthor names and short SHAsYes, with @-mentions and PR links

If your team merges through PRs with good labels, --generate-notes is the better default. If your history already speaks Conventional Commits, or you push straight to main, gh relnote gives a cleaner body.

Not using gh?

The same notes are available as a plain CLI (pip install git+https://github.com/loki-inu/relnote.git) and as a GitHub Action (loki-inu/relnote@v0.3.0). See the relnote docs.