Changelog Generator — From Conventional Commits to Markdown

Paste your git log and get a tidy CHANGELOG.md section: commits grouped into Features, Bug Fixes, Performance and Breaking Changes, scopes in bold, links to commits — plus the next semantic version.

Runs in your browser
Get commits since the last tag:git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%h %s"
CHANGELOG.md section

Your data never leaves your computer. All processing happens 100% locally in your browser.

How to use the Changelog Generator

  1. Run the git log command shown above in your repository and paste the output (hash + subject per line).
  2. Enter the current version; the release version is suggested from the commits — or type your own.
  3. Choose Conventional or Keep a Changelog headings and add your repository URL to link commit hashes.
  4. Copy the Markdown to the top of your CHANGELOG.md or into a GitHub release.

Conventional Commits in 30 seconds

Each commit subject starts with a type, an optional scope and a description: feat(cart): add coupon field. A ! after the type/scope or a BREAKING CHANGE: note marks a breaking change.

TypeSectionVersion bump
featFeatures / AddedMinor
fixBug Fixes / FixedPatch
perfPerformancePatch
feat!, BREAKING CHANGEBreaking ChangesMajor
refactor, docs, style, test, build, ci, choreOther / hiddenNone
revertRevertsPatch

Keep a Changelog

Keep a Changelog groups entries for humans under Added, Changed, Deprecated, Removed, Fixed, Security, newest release first, with an Unreleased section at the top. Choose that style if your users read the changelog rather than developers.

From changelog to release

Check the suggested version with the Semantic Version Calculator, update version in your package.json, then tag and push the release — the Git Command Generator has the commands. A GitHub Actions workflow can build and publish on every tag.

Tools that pair well with the Changelog Generator

  • README Generator — Fill in a few fields and get a clean, GitHub-ready README.md — badges, installation, usage example, configuration table, environment variables, roadmap and license — with a live preview and a completeness check.
  • .gitignore Generator — Tick your stack — Node, Python, React, Next.js, Docker, macOS, VS Code and 40 more — and get one clean, de-duplicated .gitignore with commented sections, ready to download.
  • .env File Validator — Paste a .env file to find invalid keys, duplicates, empty values and quoting mistakes, compare it with .env.example to spot missing variables, and generate a safe example file.
  • .editorconfig Generator — Make every editor on your team use the same indentation, line endings and charset.

Frequently asked questions

What git log format should I paste?
One commit per line with the short hash first is ideal: git log --pretty=format:"%h %s". Plain subjects without hashes work too. Merge commits are skipped automatically.
How is the next version calculated?
Any breaking change bumps the major version, otherwise any feat bumps the minor version, otherwise fixes and performance improvements bump the patch version. For 0.x versions, breaking changes bump the minor version.
What happens to commits that don’t follow Conventional Commits?
They’re listed under “Other changes” (Conventional style) or “Changed” (Keep a Changelog) so nothing gets lost — delete the lines you don’t want in the output.
Can I generate the changelog automatically in CI?
Yes — tools like release-please, semantic-release or changesets do this on every merge. This generator is handy for small projects, manual releases or checking what those tools will produce.

Related tools