Loading...
Preparing your workspace
Loading...
Preparing your workspace
Generate changelogs from Git commit messages, version tags, or manual entries. Create formatted changelogs following Keep a Changelog format, group changes by type, include version numbers, dates, and links. Supports Markdown and other formats.
Note: AI can make mistakes, so please double-check it.
Learn what this tool does, when to use it, and how it fits into your workflow.
The Changelog Generator turns your Git commit messages into organized changelog documents. You paste a list of commit messages, and the tool automatically groups them by type, formats them according to your preferences, and creates a changelog ready to share with your team or users. It follows the Keep a Changelog format and supports both Markdown and plain text output.
Creating changelogs manually is time-consuming and inconsistent. You need to read through many commits, categorize them, write clear descriptions, and format everything properly. Different team members might organize changes differently, making changelogs hard to read. This generator handles the categorization and formatting automatically, so you can focus on reviewing the content instead of organizing it.
The tool is designed for developers, project maintainers, and release managers. Beginners can learn changelog structure by seeing how commits become organized documents. Experienced users can quickly generate changelogs without manual formatting. Teams benefit from consistent changelogs that make releases easier to communicate.
A changelog is a document that lists changes made to a project over time, usually organized by version or date. Good changelogs group changes by type such as new features, bug fixes, improvements, and breaking changes. They help users understand what is new, what is fixed, and what might require action when upgrading.
Many teams struggle with changelogs because they are written after work is done, when details might be forgotten. They might miss important changes, group things inconsistently, or write descriptions that are too technical or too vague. Without a standard format, changelogs become hard to read and less useful.
The Changelog Generator addresses this by reading your actual commit messages and applying consistent rules. It recognizes conventional commit patterns like feat, fix, perf, and breaking change indicators. It groups similar changes together and formats them according to your chosen style. This means the changelog reflects what actually happened in your commits, organized in a clear, consistent way.
A release manager prepares release notes for version 2.0. They run git log to get all commits since the last release, copy the commit messages, and paste them into the generator. The tool categorizes features, fixes, and breaking changes, and generates a Markdown changelog. They review it, enable AI enhancement for a User audience, and copy the polished result into their release documentation.
A developer wants to document changes in a pull request. They list the commit messages from the PR, paste them into the generator, and select Developer audience with Markdown format. The tool creates a changelog showing what the PR adds, fixes, and improves. They copy it and add it to the PR description.
A team lead needs to communicate updates to stakeholders. They gather commit messages from the last sprint, paste them into the generator, choose User audience and Plain Text format, and enable emojis. The tool creates a user-friendly changelog that highlights new features and fixes. They use AI enhancement to make the language more accessible, then copy it into an email.
An open source maintainer updates their project changelog file. They collect commits from the latest release, paste them into the generator, and generate a Markdown changelog with emojis. They review the categorization, make minor edits, and copy the result into their CHANGELOG.md file.
The Changelog Generator processes commit messages through parsing and formatting steps. First, it validates that the input is a non-empty string. If the input is empty or invalid, it returns an empty ParseResult with no items in any category.
Next, it splits the input by newlines and processes each line. It trims whitespace from each line and filters out completely empty lines. It also limits each line to 500 characters, truncating longer lines and adding an ellipsis to prevent display issues.
For each non-empty line, the parser removes common prefixes like bullet points, numbers, dashes, and parentheses. This cleaning step ensures that formatted lists or numbered commits produce clean output without extra characters.
The parser then categorizes each cleaned line by examining its content. It converts the line to lowercase for case-insensitive matching. It checks for breaking change indicators first, including the word break, exclamation marks, or prefixes like breaking: or !breaking. If found, the line goes into the breaking array.
If not a breaking change, the parser checks for feature indicators. It looks for lines starting with feat or feature, or containing keywords like added, add, new, or implement. Matching lines go into the features array.
If not a feature, it checks for bug fix indicators. It looks for lines starting with fix or bugfix, or containing keywords like bug, patch:, resolve, or correct. Matching lines go into the fixes array.
If not a fix, it checks for improvement indicators. It looks for lines starting with perf, refactor, improve, optimize, style:, or chore:, or containing the word enhance. Matching lines go into the improvements array.
Any line that does not match the above patterns goes into the other array. This ensures that all commits are included in the changelog, even if they do not follow conventional commit format.
To generate the changelog, the formatter creates section objects for Breaking Changes, New Features, Bug Fixes, Improvements, and Other Changes. Each section includes a title, the array of items from parsing, and an emoji. Sections with no items are filtered out, so empty categories do not appear.
For Markdown format, the generator creates a header, then iterates through sections. For each section, it writes a level 2 header with optional emoji, then lists items as bullet points. For Plain Text format, it uses uppercase headers with underlines, then lists items with bullet characters.
The final output is trimmed to remove trailing whitespace and returned as a single string. This string appears in the preview panel and can be copied or enhanced with AI.
For AI enhancement, the tool sends the generated changelog and audience type to a backend service. The service validates input length and audience, then returns an enhanced version. If the service fails or returns invalid data, the tool falls back to the original changelog, ensuring you never lose your work.
Use conventional commit format in your commit messages for best results. Messages that start with feat, fix, perf, or include breaking change indicators are categorized more accurately. If your team does not use conventional commits, you can still use the tool, but you might need to review categorization more carefully.
Keep commit messages clear and descriptive. Vague messages like updated code or fixed stuff produce vague changelog entries. More specific messages like fix: resolve memory leak in image processing create better changelog content.
Review the generated changelog before using it. The parser uses pattern matching, so it might occasionally miscategorize commits. Check that breaking changes are highlighted, features are grouped correctly, and important changes are not lost in the other category.
Use AI enhancement when you want more polished language, especially for User audiences. The AI can make technical descriptions more accessible and improve overall clarity. However, always verify that enhanced content accurately reflects your changes.
Consider splitting very large changelogs. If you have hundreds of commits, the generated changelog might be too long to be useful. Consider generating changelogs for specific time periods or versions instead of one massive document.
Use the appropriate audience setting. Developer changelogs can be more technical, while User changelogs should focus on benefits and avoid jargon. The AI enhancement adapts to your audience choice, so make sure it matches your intended readers.
Finally, remember that changelogs are communication tools. Even with automatic generation, take time to ensure the final document clearly communicates what changed and why it matters. A well-written changelog helps users understand updates and makes your project more professional.
Summary: Generate changelogs from Git commit messages, version tags, or manual entries. Create formatted changelogs following Keep a Changelog format, group changes by type, include version numbers, dates, and links. Supports Markdown and other formats.
Try a sample:
Output will appear here
Paste commits or try a sample
Common questions about this tool
Provide Git commit messages, version tags, or manually enter changes. The generator groups changes by type (Added, Changed, Fixed, Removed), formats them according to Keep a Changelog format, includes version numbers and dates, and creates a formatted changelog.
The generator supports Markdown format (recommended), plain text, and other formats. It follows the Keep a Changelog specification with sections for Added, Changed, Deprecated, Removed, Fixed, and Security.
Yes, you can paste Git commit messages or connect to a repository. The generator parses conventional commits, groups them by type, filters by version tags, and creates organized changelogs automatically.
Yes, you can customize section names, change grouping, add custom sections, modify formatting, include links to commits/issues, and adjust the changelog structure to match your project's style and requirements.
Yes, the generator works with semantic versioning (MAJOR.MINOR.PATCH). It can group changes by version, detect breaking changes, and format changelogs according to semantic versioning principles.
Stay tuned for helpful articles, tutorials, and guides about this tool. We regularly publish content covering best practices, tips, and advanced techniques to help you get the most out of our tools.