AI-powered changelog generator from git history.
Stop spending 30 minutes manually curating release notes. clgen reads your git log, semantically understands your changes using LLMs, and generates professional, audience-specific changelogs in seconds.
Before (Raw, messy git log):
feat: add user authentication
fix: resolve login timeout (#12)
chore: update dependencies
feat!: rename send() to request()
Merge branch 'dev' into main
After (Generated by clgen):
- New Features: Added a secure user authentication system.
- Bug Fixes: Resolved an issue where login requests would occasionally timeout.
- Breaking Changes:
send()has been renamed torequest().- Migration: Update all instances of
send()torequest().
- Migration: Update all instances of
- Features: Implemented
authmodule logic.
- Semantic Understanding: Uses LLMs (OpenAI, Anthropic, DeepSeek, etc.) to distinguish between features, fixes, and breaking changes—even without conventional commit tags.
- Multi-Audience Output: Generates three versions:
- User: Plain language, focused on value.
- Developer: Technical details, API changes, and migration hints.
- Summary: A 2-sentence blurb for announcements.
- Zero Config: Automatically detects your last tag and works out of the box.
- Safety First: Supports
--dry-runto preview before writing to files.
Currently, clgen is officially tested and supported on:
- ✅ Windows
- ✅ Linux
- ⏳ macOS (Support pending/not yet officially verified)
# Recommended (with uv)
uv tool install clgen
# With pip
pip install clgenEnsure you have an API key set (e.g., DEEPSEEK_API_KEY, OPENAI_API_KEY, or ANTHROPIC_API_KEY).
# Generate for all audiences (stdout)
clgen --dry-run
# Append to CHANGELOG.md (auto-detects tag..HEAD)
clgen --append
# Specific version range
clgen v1.0.0..HEAD
# Target a specific model
clgen --model deepseek/deepseek-v4-flashclgen uses litellm for universal provider support.
| Provider | Environment Variable | Model Flag Example |
|---|---|---|
| DeepSeek | DEEPSEEK_API_KEY |
--model deepseek/deepseek-v4-flash |
| OpenAI | OPENAI_API_KEY |
--model openai/gpt-4o |
| Anthropic | ANTHROPIC_API_KEY |
--model anthropic/claude-sonnet-4-20250514 |
You can configure your API keys in several ways:
- Windows System Environment Variables: You can set variables via System Properties > Environment Variables.
clgenwill read these directly. - .env Files:
clgenlooks for environment variables in two locations:%USERPROFILE%\.clgen\.env: Global config (recommended for cross-project use)../.env: Project-local config (overrides global settings).
| Flag | Description | Default |
|---|---|---|
REVISION_RANGE |
Git range (e.g. v1.0.0..HEAD) |
Last tag to HEAD |
-a, --audience |
user, developer, summary, or all |
all |
-o, --output |
Output file path | CHANGELOG.md |
--append |
Prepend to existing content | True |
--no-append |
Overwrite existing file | False |
--dry-run |
Print to stdout only | False |
-m, --model |
LLM model identifier | Auto-detected |
MIT