Changelog Generator from Commits (Free) Build a changelog from commits or entries.
100% offline
Input81 chars · 3 lines
Output159 chars
Changelog · 3 entries
## [Unreleased] - 2026-06-29

### Features

- **auth:** add OAuth login

### Bug Fixes

- **ui:** correct button alignment

### Documentation

- update README

About Changelog Generator from Commits (Free)

A changelog generator turns the raw history of a release into a clean, human-readable summary of what changed. This one follows the "Keep a Changelog" convention: it reads your commit messages, groups Conventional Commit types into sections like Features and Bug Fixes, drops housekeeping noise (chores, CI, build tweaks), and stamps each release with a version and date header.

Paste a list of commit messages — one per line — and it drafts a release section you can drop straight into CHANGELOG.md. Breaking changes are pulled to the top and highlighted so nobody misses them. Everything runs in your browser, so your commit history never leaves your device.

Features

  • Groups Conventional Commits (feat, fix, perf, refactor…) into Keep a Changelog sections
  • Highlights breaking changes from `!` markers or BREAKING CHANGE footers
  • Skips chore, ci, build, test, and style commits automatically
  • Adds a versioned, dated release header — and works completely offline

How to use

  1. Paste your commit messages into the input pane, one per line.
  2. Optionally enter a release version (e.g. 1.2.0) in the toolbar.
  3. Read the grouped Markdown in the output pane.
  4. Copy it into your CHANGELOG.md — or clear and start again.

Frequently asked questions

What is "Keep a Changelog"?

Keep a Changelog is a widely used convention for writing human-readable changelogs. It organizes each release under a version + date header, with grouped sections describing what changed. This tool emits that format as Markdown.

Which commit messages get included?

Conventional Commits like `feat:`, `fix:`, `perf:`, `refactor:`, `revert:`, and `docs:` are grouped into sections. Housekeeping types — `chore`, `ci`, `build`, `test`, and `style` — are skipped, since they rarely matter to users reading release notes.

How are breaking changes detected?

A commit is treated as breaking if its type carries a `!` (for example `feat!: …`) or if its body contains a `BREAKING CHANGE:` footer. Breaking changes are surfaced in a highlighted section at the top of the release.

Does my commit history get uploaded anywhere?

No. All parsing and formatting happens locally in your browser. Nothing you paste is ever sent to a server, which makes it safe to use on private or unreleased work.

Everything runs locally in your browser — your input is never uploaded.