Skip to main content

Changelog Generator

New

Paste conventional-commit-style messages and generate a Keep a Changelog formatted release section, grouped by type.

changelogconventional commitsrelease notesgitkeep a changelog
Read the guide
Shortcuts:⌘ KSearch
—

Recognizes conventional-commit prefixes: feat → Added, fix → Fixed, docs → Documentation, perf → Performance, refactor/style → Changed, chore/build/ci → Internal, test → Tests, ! or a BREAKING CHANGE: line → Breaking Changes. Unrecognized lines are grouped under "Other".

Continue with:

Frequently Asked Questions

What commit prefixes does it recognize?

The standard Conventional Commits types: feat → Added, fix → Fixed, docs → Documentation, perf → Performance, refactor/style → Changed, chore/build/ci → Internal, test → Tests, and revert → Reverted. A "!" after the type or scope, or a "BREAKING CHANGE:" marker, routes the entry to its own Breaking Changes section regardless of type.

What happens to commit messages that don't follow conventional-commit format?

They're placed in an "Other" section at the bottom rather than being dropped, so nothing you paste in silently disappears from the output.

Is the output format compatible with the real Keep a Changelog spec?

Yes — it produces a version heading in the "## [x.y.z] - YYYY-MM-DD" form with "### Added / Fixed / Changed" etc. subsections underneath, matching the structure described at keepachangelog.com, ready to paste into an existing CHANGELOG.md.

Does it call git or read my actual commit history?

No — this tool has no repository access. You paste commit subject lines (for example, copied from `git log --oneline`) directly into the textarea, and everything happens in your browser.

How are commit scopes handled, like feat(api): ...?

The scope in parentheses is preserved and shown in bold at the start of the changelog line (for example, "**api:** Add pagination to /users"), so readers can still see which part of the codebase a change touched.

Related Tools