Developer Tools

Changelog Generator

Generate beautiful changelogs from git commits or PR titles using conventional commit format.

What Is a Changelog Generator?

A changelog generator transforms raw git commit messages and PR titles into beautifully formatted, categorized release notes. Instead of manually writing changelogs for each release, you paste your commit history and get a structured Markdown document organized by category — features, bug fixes, documentation, performance improvements, and more.

Well-maintained changelogs are essential for open-source projects, internal libraries, and any software with external users. They communicate what changed between versions, highlight breaking changes, and help developers decide whether to upgrade. The Keep a Changelog format and Conventional Commits specification have become industry standards for structuring this information.

This changelog generator parses conventional commit messages (like feat(auth): add OAuth2 login), automatically categorizes them into sections with emoji labels, and outputs clean Markdown. You can adjust categories, toggle emoji, include commit hashes, and configure version/date — all in your browser with no server required.

How to Generate a Changelog

  1. Paste your commit messages — Copy output from git log --oneline, PR titles, or any list of changes (one per line). The tool accepts conventional commit format and plain messages.
  2. Click "Parse & Categorize" — The tool parses each line, extracts commit hashes, scopes, and categories based on conventional commit prefixes (feat:, fix:, docs:, etc.).
  3. Review and re-categorize — Each entry shows its detected category. Click the dropdown to reassign entries to different categories if the auto-detection was wrong.
  4. Configure settings — Set the version number, release date, toggle emoji icons, enable/disable category grouping, and choose whether to include commit hashes.
  5. Copy the Markdown — Switch between Markdown source and rendered preview. Click "Copy Markdown" to grab the formatted changelog for your CHANGELOG.md file.

Key Features

  • Conventional Commits parsing — Automatically recognizes prefixes like feat, fix, docs, refactor, perf, test, build, ci, chore, and style, plus breaking changes.
  • Commit hash extraction — Detects short and long git hashes from git log output and optionally includes them in the changelog.
  • Scope support — Parses scoped commits like feat(api): ... and renders them as bold scope prefixes in the output.
  • Breaking change detection — Identifies breaking changes via the ! suffix (feat!:) or "BREAKING CHANGE" in the message, and groups them prominently.
  • Emoji categories — Optional emoji prefixes (✨ Features, 🐛 Bug Fixes, ⚡ Performance, etc.) for scannable, visually appealing changelogs.
  • 100% client-side — Your commit messages stay in your browser. Nothing is sent to any server.

Common Use Cases

  • Open-source releases — Generate release notes from your git history for GitHub Releases, CHANGELOG.md, or documentation sites.
  • Sprint retrospectives — Quickly summarize what was shipped in a sprint by pasting the merged PR titles or commit messages.
  • Internal release communication — Create formatted change summaries for stakeholders, QA teams, or product managers who need to know what changed.
  • Migration guides — Identify breaking changes across releases by filtering for breaking change entries and building upgrade documentation.
  • Monorepo changelogs — Use scope-based commits to track changes per package, then generate per-package or combined changelogs.

Frequently Asked Questions

🔒 This tool runs entirely in your browser. No data is sent to any server.