Skip to main content

Generate CHANGELOG entries from git history using AI

Project description

changelog-ai

Generate professional CHANGELOG entries from git history — in seconds.

changelog-ai                           # unreleased since last tag
changelog-ai --release-version v1.2.0  # label the release
changelog-ai --format github           # GitHub Releases format
changelog-ai --prepend CHANGELOG.md   # write to file

PyPI version Python 3.9+ License: MIT Tests


The problem

Writing a CHANGELOG is one of the most tedious tasks in software development:

"Okay, I have 43 commits since v1.0.0... let me read each one and figure out what to say."

You already wrote the commits. Why are you also writing about them?

changelog-ai reads your git history and writes the CHANGELOG for you.

Even with messy commit messages. Even without conventional commits.


Why changelog-ai?

git-cliff (3.2k stars) and conventional-changelog are great — if you write perfect conventional commits.

changelog-ai goes further:

Feature changelog-ai git-cliff conv-changelog
Works with messy commits
AI-summarized descriptions
Groups related commits limited limited
Keep a Changelog format
GitHub Releases format
Local LLM support (Ollama)
Breaking change detection

Install

pip install changelog-ai

Or with pipx (recommended):

pipx install changelog-ai

Quick Start

# Auto-detects provider from env (ANTHROPIC_API_KEY or OPENAI_API_KEY)
changelog-ai

# Label the release version
changelog-ai --release-version v1.2.0

# Generate for a specific range
changelog-ai --from v1.0.0 --to v1.1.0

# GitHub Releases format
changelog-ai --format github

# Write to CHANGELOG.md
changelog-ai --release-version v1.2.0 --prepend CHANGELOG.md

# Preview without writing
changelog-ai --prepend CHANGELOG.md --dry-run

# List available tags
changelog-ai --list-tags

# No API key needed
changelog-ai --provider ollama --model llama3.2

Formats

--format keepachangelog (default)

Follows Keep a Changelog spec with Added, Changed, Fixed, Security, Breaking Changes sections.

--format github

GitHub Release Notes style with "What's Changed" summary.

--format minimal

Simple bullet list — great for internal changelogs.


Providers

Provider Flag Requires
Claude (default if key exists) --provider claude ANTHROPIC_API_KEY
OpenAI --provider openai OPENAI_API_KEY
Ollama (local, free) --provider ollama Ollama running

Options

changelog-ai [PATH] [OPTIONS]

Ref range:
  --from REF            Start ref (tag, SHA, branch). Defaults to latest tag.
  --to REF              End ref [default: HEAD]

Release info:
  --release-version VER Version label (e.g. v1.2.0) [default: Unreleased]
  --date DATE           Release date YYYY-MM-DD [default: today]

Format:
  --format              keepachangelog | github | minimal [default: keepachangelog]

Output:
  --prepend FILE        Prepend entry to this file
  --dry-run             Preview without writing
  --raw                 Plain text output (no formatting)

Utilities:
  --list-tags           List recent tags and exit
  --show-commits        Show commits found before generating
  -V, --version         Show version
  -h, --help            Show help

Tips

# Release workflow
changelog-ai --list-tags                                          # see last release
changelog-ai --release-version v1.3.0 --dry-run                  # preview
changelog-ai --release-version v1.3.0 --prepend CHANGELOG.md     # commit it

# GitHub Release automation
changelog-ai --format github --raw > release-notes.txt
gh release create v1.3.0 --notes-file release-notes.txt

Related Tools

gitbrief — Pack the right files from any repo into LLM-ready context.

gpr — AI-powered PR descriptions and commit messages.

standup-ai — Generate daily standups from git commits.

# The complete AI-powered git workflow:
standup-ai --yesterday                                    # 1. morning standup
gitbrief . --changed-only                                # 2. pack context for review
gpr                                                       # 3. generate PR description
gpr --commit-run                                          # 4. commit with AI message
changelog-ai --release-version v1.x.0 --prepend CHANGELOG.md  # 5. update changelog

Development

git clone https://github.com/faw21/changelog-ai
cd changelog-ai
python -m venv .venv && source .venv/bin/activate
.venv/bin/pip install -e ".[dev]"
pytest tests/   # 49 tests, 87% coverage

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

changelog_ai-0.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

changelog_ai-0.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file changelog_ai-0.1.0.tar.gz.

File metadata

  • Download URL: changelog_ai-0.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for changelog_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 597829dedc38088718eab1007ed6c17bf2444531d5bf99fe046f33a6b8c16568
MD5 500902298d2bc2a8785520e1b82758e1
BLAKE2b-256 bac16da168f14d4d1be78646efec994f882777c9e0ceb0fa90ba3c79060f7869

See more details on using hashes here.

File details

Details for the file changelog_ai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: changelog_ai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for changelog_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d53f259cfe26362f8f36d9a4fa8dd4e3c0196dcadaa8f06d1d8f7a91325dfa2
MD5 bf20602584537fb03576d8991e340cbf
BLAKE2b-256 fce328183256c8167deb0ecd3915f72025f782383072a0b03d52a5ece0bd889a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page