Developer Tools
Changelog Generator
Turn a list of Conventional Commits into a grouped Markdown changelog. Features, fixes, breaking changes, scopes, and issue links in your browser.
Release
The release heading, e.g. 1.4.0 or v2.0.0-rc.1.
ISO date (YYYY-MM-DD). Leave blank to omit.
Used to auto-link #123 to /issues/123 and short hashes to /commit.
Preset
Controls which commit types appear in the changelog.
Paste your git log --oneline or a list of commit subjects. Full commits with bodies (separated by blank lines) are also recognized.
Total commits
2
Conventional
1
Unparseable
1
Merge commits
0
Breaking changes
0
Per-type breakdown
Markdown changelog
## 1.4.0 (2026-06-22) ### Features - **api:** add password-less email magic-link login (#412)
Rendered preview
How the changelog will look when rendered as GitHub-flavored Markdown.
1.4.0 (2026-06-22)
Features
- api: add password-less email magic-link login (#412)
Commits without a Conventional Commit type (1)
These commits do not match type(scope)!: subject. Turn on "Include unparseable commits" to push them into an "Other Changes" section.
- BREAKING CHANGE: clients still calling /v1 must move to /v2; see migration guide in docs/migrating-v1-to-v2.md.
How to use
- Paste your commits into the Commits field. The output of `git log --oneline`, `git log --format=%h %s`, a bullet list, or full commit messages separated by blank lines are all recognized.
- Set the Version (for example 1.4.0) and Release date (YYYY-MM-DD). Both appear in the changelog heading.
- Optionally enter the Repo URL (for example https://github.com/owner/repo) so every #123 and short hash auto-links to the right page on GitHub.
- Pick a preset: Standard for conventional-changelog, Keep a Changelog for the Added/Changed/Fixed layout, Compact for Features and Bug Fixes only, or All categories to surface every type.
- Toggle the options as needed: group by scope, show hashes, include merge commits, include unparseable commits in an Other Changes section, or use emoji section headings.
- Read the per-type breakdown and the unparseable-commits list to confirm nothing was missed, then click Copy markdown to paste the changelog into your release, CHANGELOG.md, or pull request body.
About this tool
Changelog Generator turns a flat list of commits into a grouped, ready-to-publish Markdown changelog using the Conventional Commits 1.0.0 specification. Paste the output of `git log --oneline`, `git log --format=%h %s`, a bullet list, or a block of full commit messages with bodies separated by blank lines, and the parser detects each commit's type, scope, subject, and breaking-change marker without a mode switch. Recognized types follow the Angular convention used by conventional-changelog, semantic-release, release-please, commitlint, and commitizen: feat becomes Features, fix becomes Bug Fixes, perf becomes Performance Improvements, revert becomes Reverts, and the extended types (refactor, docs, style, test, build, ci, chore) appear when you select the All categories preset. Breaking changes are detected from both the `type!:` marker in the header and the `BREAKING CHANGE:` trailer in the body, then surfaced in a dedicated section at the top of the changelog so consumers cannot miss them. Choose between three rendering presets: Standard for the conventional-changelog default, Keep a Changelog for the Added/Changed/Fixed/Removed format popular with manually maintained CHANGELOG.md files, and Compact for a Features-and-Bug-Fixes only release note useful for marketing pages and email blasts. Optional toggles let you group bullets by scope inside each section, append the short commit hash, drop or keep merge commits, push commits without a Conventional Commits type into a final Other Changes section, and prefix headings with gitmoji-style emoji icons. A repository URL is optional; when provided, every `#123` and `GH-123` reference auto-links to the issues page and every short hash auto-links to the commit page, matching the format conventional-changelog emits. Live stats show the total commit count, how many were parsed as Conventional Commits, how many were merge commits, and how many were breaking changes, plus a per-type breakdown so you can sanity-check the release shape before shipping. A side-by-side panel shows the raw Markdown and a clean rendered preview. Useful for cutting a release at the end of a sprint, drafting a GitHub release body, populating a CHANGELOG.md, writing release blog posts, generating release notes for a monorepo package, and turning an `npm version` bump into something users will actually read. Everything runs locally in your browser, so private-repo commit messages, internal scopes, and unreleased feature names never leave your device.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Conventional Commits Builder
Generate semantic git commit messages with type, scope, body, breaking change, and footers.
Open tool
DeveloperSemver Comparator
Compare two versions and check if a version satisfies a semver range.
Open tool
ConverterMarkdown to HTML Converter
Convert Markdown to clean HTML with a live preview and copy button.
Open tool
DeveloperMarkdown Cheat Sheet
Searchable Markdown syntax reference with rendered previews and flavor filters.
Open tool
GeneratorMarkdown Table Generator
Editable grid, column alignment, paste from spreadsheet, live preview.
Open tool