Changelog Generator
Turn a list of Conventional Commits into a Keep a Changelog release entry. Groups feat, fix, perf and revert into sections and flags breaking changes.
CHANGELOG.md
# Changelog All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.4.0] - 2026-08-24 ### Breaking Changes - drop support for Node 16 ### Added - **api:** add cursor-based pagination to /users ### Changed - **db:** memoise permission lookups - **ui:** extract the toolbar into its own component ### Removed - revert "enable the beta banner" ### Fixed - reject empty search queries with a 400
Types map to sections as follows: feat to Added; fix to Fixed; perf, refactor, style and build to Changed; revert to Removed. Anything marked with ! or carrying a BREAKING CHANGE: footer is promoted to its own Breaking Changes block.
What is the Changelog Generator?
Paste your commit subjects and this tool writes the release section of a CHANGELOG. md for you.
- Parses the full Conventional Commits form: type(scope)!: subject
- Groups commits into Added, Changed, Deprecated, Removed, Fixed and Security sections
- Promotes ! and BREAKING CHANGE commits into a dedicated Breaking Changes block
- Strips leading bullets and commit hashes so pasted git log output just works
- Optional compare link between the previous tag and this version
- Counts entries, breaking changes and unparsed lines so nothing is silently lost
How to use the Changelog Generator
- 1
Paste your commit subjects, one per line — output from git log --pretty=format:%s works directly.
- 2
Enter the version number and release date for this entry.
- 3
Optionally add the previous tag and repository URL to generate a compare link.
- 4
Toggle whether to include chore, ci, test and docs commits, and whether to emit the file header.
- 5
Check the counts and any unrecognised lines, then copy or download CHANGELOG.md.
About the Changelog Generator
Paste your commit subjects and this tool writes the release section of a CHANGELOG.md for you. Each line is parsed as a Conventional Commit — type, optional scope, optional breaking-change marker and subject — and sorted into the sections Keep a Changelog defines.
feat becomes Added, fix becomes Fixed, perf, refactor, style and build become Changed, and revert becomes Removed. Anything marked with an exclamation mark or carrying a BREAKING CHANGE footer is promoted into its own Breaking Changes block at the top, where readers will actually see it.
Housekeeping commits like chore, ci, test and docs are hidden by default and can be switched back on. Leading bullets and abbreviated commit hashes are stripped automatically, so output pasted straight from git log works. Everything runs locally in your browser.
Frequently asked questions
What are Conventional Commits?
A convention for writing commit messages as type(scope): subject — for example feat(api): add pagination. Because the type is machine-readable, tools can group changes and work out the next semantic version automatically.
How do I mark a breaking change?
Put an exclamation mark before the colon, as in feat!: drop Node 16 support, or add a BREAKING CHANGE: footer to the commit body. Either form moves the entry into the Breaking Changes section here.
How do I get a list of commits to paste in?
Run git log v1.3.0..HEAD --pretty=format:%s to print just the subject lines since your last tag. Bullets and short hashes are stripped automatically, so slightly messier output is fine too.
What is the Keep a Changelog format?
A widely used convention where each release gets a heading with its version and date, and changes sit under Added, Changed, Deprecated, Removed, Fixed and Security headings. It is written for humans reading release notes rather than for machines parsing diffs.
Why were some of my lines skipped?
They did not match the Conventional Commits pattern — usually a missing type prefix or colon. The tool reports how many lines it skipped and shows an example, so you can fix or rewrite them rather than losing them quietly.
Are my commit messages uploaded?
No. Parsing and formatting happen entirely in your browser, so internal ticket numbers and project names in your commit subjects stay on your machine.
Related tools
README Generator
Build a professional README.md from a form: badges, features, install and usage code blocks, options and environment tables, and an auto-generated table of contents.
GitHub Actions Workflow Generator
Build a .github/workflows CI file from a form: triggers, runner OS, language version matrix, dependency caching, permissions and lint, test and build steps.
Unified Diff Generator
Compare two texts and generate a real unified diff patch with @@ hunk headers and configurable context, ready to save as .patch and apply with git apply.
EditorConfig Generator
Generate an .editorconfig file with per-language sections for indent style and size, line endings, charset, trailing whitespace and max line length.