Git Release Notes Generator

Paste commit messages or a unified diff to draft release notes. The version-level suggestion follows commit markers and needs a release review.

Runs locally in your browser
This tool processes all data locally in your browser.
Commits or Git diffPaste Conventional Commits, git log subjects, or unified diff text.
Markdown release draft
Run the tool to display the locally processed result here.

How to draft release notes from commits or a diff

Paste Conventional Commit subjects — straight from git log --oneline if you like — or a unified diff, and the page turns them into a Markdown release draft with grouped changes and a suggested major, minor or patch level.

Nothing here touches a repository: the pasted text is parsed inside your browser, the example button fills in a sample, and Copy or Download takes the draft out as release-notes.md.

  1. Paste your text into Commits or Git diff: one Conventional Commit subject per line, a git log --oneline list, or unified diff output with diff --git headers.
  2. Press Generate release notes. Lines that are not commit subjects or diff content — author lines, dates, hunk markers — are skipped.
  3. Read the draft: commits are grouped under Features, Fixes, Performance, Changed, Documentation, Tests and Build and CI, and any commit marked ! or followed by a BREAKING CHANGE footer is flagged.
  4. Check the suggested level: major when a breaking change is marked, minor when a feat is present, patch otherwise. The draft calls it a suggestion because the final version number is your call.
  5. Copy or Download the result; Clear empties both panes.

What this page reads, and what it leaves to you

What gets recognised

Commit subjects may carry an optional short or long hash prefix, so abc1234 feat: … and a full 40-character hash both read as commits. A scope is kept: feat(api): add filters lands under Features with the scope in brackets.

The type list is the Conventional Commits set — feat, fix, docs, style, refactor, perf, test, build, ci, chore — plus revert. Diff input needs real diff --git headers: the changed-file list and the + / − line counts come only from lines after a header, so a stray + in prose is not counted as an addition.

The release level is a suggestion

major = at least one ! marker or BREAKING CHANGE footer; minor = at least one feat; patch = everything else, including docs, tests, style and chore. These rules are mechanical, so read the draft before you tag a release.

The suggestion line is plain text inside the draft and nothing is published anywhere — the output is the only thing this page produces.

What this page does not do

It never reads a Git repository, runs git, or calls a network service: only the text you paste is parsed.

Formats outside these two are reported instead of guessed — an empty box answers with the paste prompt, and text that holds neither a commit subject nor diff content gets its own message. git diff --stat summaries and binary diff bodies are not turned into line statistics.

Recent tools: