Intelligent changelog automation powered by AI
AutoScribe is a modern, AI-powered changelog generation tool designed to transform your git history into beautiful, meaningful documentation. It leverages the power of Large Language Models to understand your commits and create structured, readable changelogs following the Keep a Changelog format.
Managing changelogs is a critical but often overlooked aspect of software development:
- Manual changelog maintenance is time-consuming
- Conventional commit messages don't always translate well to user-friendly changes
- Maintaining consistency across versions is challenging
- Legacy changelog tools lack modern features and intelligence
AutoScribe solves these challenges by:
- Automatically generating structured changelogs from git history
- Using AI to translate technical commits into user-friendly descriptions
- Following Keep a Changelog format consistently
- Integrating seamlessly with existing workflows
- Install AutoScribe via pip:
pip install autoscribe
- Set up your OpenAI API key:
export OPENAI_API_KEY=your-api-key
# or create a .env file with OPENAI_API_KEY=your-api-key
- Generate your changelog:
# Basic usage
scribe
# With AI enhancement
scribe --ai
# Specific version
scribe --version 1.2.3
- 🤖 AI Enhancement: Uses LLMs to improve changelog readability and clarity
- 🎯 Smart Categorization: Automatically groups changes by type and impact
- 📝 Keep a Changelog: Follows the Keep a Changelog format
- 🔄 Version Management: Automatic version bumping and tag creation
- 🔍 Conventional Commits: Full support for conventional commit messages
- 🌐 GitHub Integration: Automatic release notes and tag creation
- 💡 Intelligent Parsing: Understands various commit message formats
- 📈 Breaking Changes: Automatic detection and highlighting of breaking changes
AutoScribe can be configured through multiple methods:
Create pyproject.toml
or .autoscribe.toml
:
[tool.autoscribe]
# Output configuration
output = "CHANGELOG.md"
# Version management
version_file = "pyproject.toml"
version_pattern = "version = '{version}'"
# Content configuration
categories = [
"Added",
"Changed",
"Deprecated",
"Removed",
"Fixed",
"Security"
]
# GitHub integration
github_release = true
github_token = "env:GITHUB_TOKEN"
# AI configuration
ai_enabled = true
ai_model = "gpt-4o-mini"
openai_api_key = "env:OPENAI_API_KEY"
Configure via environment variables:
AUTOSCRIBE_OUTPUT=CHANGELOG.md
AUTOSCRIBE_AI_ENABLED=true
AUTOSCRIBE_GITHUB_TOKEN=your-token
Override settings via CLI:
scribe --output CHANGELOG.md \
--ai \
--github-release
When AI enhancement is enabled, AutoScribe:
- Improves Readability: Transforms technical commit messages into user-friendly descriptions
- Detects Impact: Analyzes changes to determine their impact level
- Groups Related Changes: Intelligently groups related commits
- Suggests Version Bumps: Recommends version changes based on commit content
- Generates Summaries: Creates concise version summaries
Model | Cost | Best for |
---|---|---|
gpt-4o-mini | Low | Most cases |
gpt-4o | Medium | Complex analysis |
gpt-3.5-turbo | Lowest | Basic enhancement |
Enable automatic GitHub releases:
# Configure GitHub token
export GITHUB_TOKEN=your-token
# Create release on version bump
scribe --version minor --github-release
# Create draft release
scribe --version patch --github-release --draft
AutoScribe fully supports the Conventional Commits specification:
feat(api): add new endpoint
fix(core): resolve memory leak
docs(readme): update installation steps
BREAKING CHANGE: remove legacy support
- ✅ Core Features: Changelog generation, version management
- ✅ AI Integration: OpenAI support, customizable prompts
- ✅ Quality:
- Comprehensive test suite
- Static type checking with mypy
- Code formatting with ruff
- Documentation with autodoc
- 🚧 In Progress:
- Additional AI models support
- Enhanced GitHub integration
- Plugin architecture
Contributions are welcome! Please read our Contributing Guidelines before submitting pull requests.
Areas we'd love help with:
- AI model integrations
- GitHub integration improvements
- Documentation enhancement
- Bug fixes and testing
This project is licensed under the MIT License - see the LICENSE file for details.
Crafted with ❤️ by @Arakiss