AI-powered changelog generator from git commits
Project description
brose-changelog-cli
An AI-powered changelog generator that creates structured, user-friendly changelogs from your git history. Built as a developer-friendly tool that simplifies changelog creation and maintenance.
Why This Approach?
I built this tool with two key principles in mind:
-
Developer Experience: The CLI interface makes it seamless to integrate into existing workflows. Developers can generate changelogs with a single command, right where they work - in the terminal.
-
User-Centered Design: The web viewer provides a clean, organized view of changes that end-users care about, similar to Stripe's changelog. Changes are categorized and scored by relevance to ensure the most important updates are highlighted.
Features
- 🤖 AI-powered analysis of git commits
- 📝 Structured changelog generation
- 🌐 Clean, minimal web viewer for changelogs
- 🔍 Smart filtering of relevant changes
- 🎯 Relevance scoring (1-10) to highlight important updates
- 🚫 Automatic exclusion of non-essential files (tests, docs, configs)
- 📊 Weekly organization of changes
- 🏷️ Automatic categorization (Added, Fixed, Changed, Removed)
Installation
uv install brose-changelog-cli
Usage
Generate Changelog
Create or update your changelog based on new git commits:
changelog generate
This will:
- Analyze new commits in your repository
- Generate structured changelog entries
- Create/update
changelog/changelog.json - Generate a formatted
CHANGELOG.md
Web Viewer
Launch a clean, minimal web interface to view your changelog:
changelog web
By default, the web viewer runs at http://127.0.0.1:8000. You can customize the host and port:
changelog web --host 0.0.0.0 --port 3000
Configuration
- Create a
.envfile:
OPENAI_API_KEY=your-api-key
- Optionally, set up your OpenAI API key:
export OPENAI_API_KEY=your-api-key
How It Works
-
Commit Analysis: The tool analyzes your git commits, excluding non-essential files like documentation, tests, and configuration files.
-
AI Processing: Each commit is processed through OpenAI's GPT-4 model to:
- Categorize changes (Added, Fixed, Changed, Removed)
- Generate user-friendly descriptions
- Assign relevance scores (1-10)
- Filter out changes that aren't relevant to end users
-
Changelog Generation: Changes are organized by:
- Week
- Commit
- Change category
- Relevance (prioritizing high-impact changes)
Technical Choices
- CLI Tool: Built as a command-line tool for seamless integration into developer workflows
- GPT-4: Chosen for its superior understanding of code changes and ability to generate human-friendly descriptions
- Web Interface: Built with FastAPI and React for a responsive, modern changelog viewing experience
- JSON Storage: Structured data storage enables easy updates and flexible rendering
AI Tools Used
- Cursor: Assisted with code completion during development
Requirements
- Python ≥ 3.12
- Git repository
- OpenAI API key
Demo
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brose_changelog_cli-1.0.0.tar.gz.
File metadata
- Download URL: brose_changelog_cli-1.0.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4b0940387125b34f947bc81bb09a70ba4816ff2da0a4a025665f773f3397856
|
|
| MD5 |
5aaa3604df2818cd365fab7375f649dc
|
|
| BLAKE2b-256 |
fdfd2e044b2aa3aef6be8dd73bd64cb5c579fe29319fa981ea09473c27705dd7
|
File details
Details for the file brose_changelog_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: brose_changelog_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5968e6826d552da63def8ae39dcfd3283017fc7fe65597471bcdadbe6bbcc7e
|
|
| MD5 |
26425c3d282b794c381a1f12a2b427c0
|
|
| BLAKE2b-256 |
fefc57f9769b5976986521bee306fbf2431351b5c096ec112c0c6e8b095d5c26
|