b2KIT

Changelog Generator

Create structured changelog entries following Keep a Changelog format with version, date, and change categories.

Tested tool guide Tested browser tools Checked August 16, 2026

What Changelog Generator does, with a checked example

This tool assembles a changelog entry in Keep a Changelog format. You supply a version number, a release date, and change descriptions assigned to categories; it returns a block with a `## [1.2.0] - 2026-08-16` heading and `###` category headings, ready to paste into CHANGELOG.md. Everything runs in the browser; nothing you type is uploaded. The usual mistake is loose categorization: the six categories are fixed and narrower than everyday usage, so a bug fix belongs under Fixed, not Changed, and a still-present but superseded feature under Deprecated, not Removed. The date is the release date in ISO 8601 form, not today's date.

Worked example

A concrete input and expected output from the current implementation.

Input

Version: 1.2.0
Date: 2026-08-16

Added
- Support for dark mode
- Export to CSV

Fixed
- Saved dates displayed one day early

Expected output

## [1.2.0] - 2026-08-16

### Added
- Support for dark mode
- Export to CSV

### Fixed
- Saved dates displayed one day early

Each entered item becomes a `- ` bullet under its category heading, and only the categories you used appear, in the canonical template order (Added, Changed, Deprecated, Removed, Fixed, Security), so Fixed follows Added. The heading joins the version and the ISO date in the spec's `## [version] - date` form.

How the result is produced

1

Six fixed categories

Every item lands under one of the format's six headings: Added, Changed, Deprecated, Removed, Fixed, Security. The output lists the sections you used in the canonical template order, with items under each heading kept in the order you entered them. Sections you left empty do not appear at all.

2

Header assembly

The entry opens with a level-2 heading joining the version and the date: `## [1.2.0] - 2026-08-16`. The date is the release date, and the format requires ISO 8601 order, year-month-day; an entry dated 16-08-2026 or Aug 16, 2026 would be out of spec. The heading anchors everything below it, so it is the first thing to check before pasting.

Good uses

  • After tagging a release, generate the `## [x.y.z] - date` block and paste it at the top of CHANGELOG.md, directly under the file's title and format paragraph.
  • Before a release, assemble all merged changes into their categories in one pass so the entry is ready to paste when you tag, instead of reconstructing it from git history later.
  • Standardize an existing free-form changelog: recast ad-hoc notes like 'updates and bugfixes' into the six canonical categories so the file actually conforms to Keep a Changelog.

Limits and checks

  • You get the entry, not the file. The surrounding scaffolding - the `# Changelog` title, the paragraph crediting Keep a Changelog and Semantic Versioning, the comparison links at the bottom such as `[1.2.0]: <url>/compare/...`, and older releases - is maintained by hand around the generated block.
  • Wrong input produces plausible output. A future date, a non-ISO date, or a wrong version number yields a well-formed entry that is nevertheless incorrect, and nothing in the result flags it. Verify the header before pasting.
  • Categorization is your judgment, and the format's definitions are narrower than everyday usage: a bug fix belongs under Fixed, not Changed; a vulnerability under Security; a feature that still works but is superseded under Deprecated, not Removed. A misplaced item reads as a deliberate statement about your release.

Common questions

Does the generated block replace my whole CHANGELOG.md?

No. The tool outputs the entry for one release: the heading, category sections, and bullets. The surrounding scaffolding stays your responsibility: the `# Changelog` title, the paragraph crediting Keep a Changelog and Semantic Versioning, the bottom comparison links such as `[1.2.0]: https://github.com/you/repo/compare/v1.1.0...v1.2.0`, and all older releases. Paste the block directly under the title paragraph, above the previous version.

Will the tool sort my entries into the right categories for me?

No, categorization is your call; the tool formats what you assign. When in doubt, use the spec's definitions: Added is new behavior, Changed is altered existing behavior, Deprecated is still present but on the way out, Removed is gone, Fixed is bug fixes, and Security is vulnerabilities. If a change fits two categories, pick the more specific one and mention the other in the item text.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools