# Changelog generator from commits

- Human page: https://happytails.ai/en/developer-tools/changelog-generator-from-commits/
- Markdown: https://happytails.ai/en/developer-tools/changelog-generator-from-commits.md
- Structured JSON: https://happytails.ai/agents/en/developer-tools/changelog-generator-from-commits/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `changelog-generator-from-commits` |
| Category | developer-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Paste a JSON array of objects with message and optional hash fields. Each message must be a valid Conventional Commit. Hashes, when supplied, are 7–64 hexadecimal characters and must be unique. Every commit appears once in an editable Markdown download, grouped as breaking changes, features, fixes or other changes. Invalid commits block generation. Up to 1,000 commits; title up to 80 characters. Runs on your device. No remote configuration, repository or credentials are queried. Up to 1,000,000 input characters; output files are limited to 4,000,000 characters each.

### Inputs and settings

Text input: Commit records.

Example or placeholder shown in the interface (not a validated fixture):

```text
[{"hash":"abcdef012345","message":"feat(search): add saved filters"},{"hash":"123456789abc","message":"fix: preserve empty results"},{"message":"docs: update examples"}]
```

Paste text to process locally. Review the supported syntax and the result before downloading. Results update as you type. Up to 1,000,000 characters.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `title` | Release heading | text | "Unreleased" |  |
| `date` | Release date (optional) | text | "" |  |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Up to 1,000 commits and an 80-character release heading. Optional date must be a valid YYYY-MM-DD date. Markdown special characters are escaped. Runs on your device with no configuration, repository or credential lookups. Up to 1,000,000 input characters and 4,000,000 characters per output file.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "changelog-generator-from-commits",
  "category": "developer-tools",
  "built": true,
  "requirements": "Up to 1,000 commits and an 80-character release heading. Optional date must be a valid YYYY-MM-DD date. Markdown special characters are escaped. Runs on your device with no configuration, repository or credential lookups. Up to 1,000,000 input characters and 4,000,000 characters per output file.",
  "implementation": {
    "fields": [
      {
        "key": "title",
        "label": "Release heading",
        "value": "Unreleased",
        "type": "text"
      },
      {
        "key": "date",
        "label": "Release date (optional)",
        "value": "",
        "type": "text",
        "placeholder": "YYYY-MM-DD"
      }
    ],
    "live": true,
    "presentation": "metrics",
    "note": "Paste a JSON array of objects with message and optional hash fields. Each message must be a valid Conventional Commit. Hashes, when supplied, are 7–64 hexadecimal characters and must be unique. Every commit appears once in an editable Markdown download, grouped as breaking changes, features, fixes or other changes. Invalid commits block generation. Up to 1,000 commits; title up to 80 characters. Runs on your device. No remote configuration, repository or credentials are queried. Up to 1,000,000 input characters; output files are limited to 4,000,000 characters each.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Commit records",
      "placeholder": "[{\"hash\":\"abcdef012345\",\"message\":\"feat(search): add saved filters\"},{\"hash\":\"123456789abc\",\"message\":\"fix: preserve empty results\"},{\"message\":\"docs: update examples\"}]",
      "help": "Paste text to process locally. Review the supported syntax and the result before downloading. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Create an editable Markdown changelog from structured Conventional Commits. Include every supplied commit once and carry over breaking-change explanations.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Changelog generator from commits

1. Paste a JSON array of commit message objects.
2. Set the release heading and optional date, then resolve invalid records.
3. Download and edit CHANGELOG.md before publishing it.

## Useful next steps

- [Conventional commit checker](https://happytails.ai/en/developer-tools/conventional-commit-checker/) ([Markdown](https://happytails.ai/en/developer-tools/conventional-commit-checker.md))

## Supply the commits you want in the release

Paste a JSON array of objects with message and an optional hash. Messages must use Conventional Commits syntax. Optional hashes are 7 to 64 hexadecimal characters and must be unique. No repository or hosting account is queried.

### Group changes without dropping less common types

The draft groups breaking changes, features, fixes and other changes. Every accepted commit appears once, keeping source order within its group. Breaking-change footer explanations become migration notes. Invalid messages block the draft and are identified by their input record number.

### Edit the draft before publishing

Choose a release heading and an optional calendar date. Download CHANGELOG.md and edit it in any text editor. The suggested impact summarizes the declarations in the messages; it does not set a version or verify the actual code changes. The generator does not publish a release.
