smart-changelog
v1.0.0
Published
AI-powered changelog generator using Gemini API
Downloads
268
Readme
smart-changelog
AI-powered changelog generator that transforms Git commits into structured, readable changelogs using Google's Gemini API.
🔗 Links: GitHub • Documentation • npm
Quick Start
# Run directly with npx (recommended)
npx smart-changelog init # Initialize configuration
npx smart-changelog generate # Generate changelog
# Or install globally
npm install -g smart-changelogUsage
Interactive Setup (First Time)
# Initialize configuration with interactive prompts
npx smart-changelog init
# Force overwrite existing config
npx smart-changelog init --forceGenerate Changelog
# Generate changelog (requires existing config)
npx smart-changelog generate
# With custom config file
npx smart-changelog generate --config ./custom-config.json
# With custom output path
npx smart-changelog generate --output ./dist/changelog.json
# With verbose output
npx smart-changelog generate --verbose
# Start from specific commit hash
npx smart-changelog generate --start-hash abc1234CLI Commands
# Show help
npx smart-changelog --help
# Show version
npx smart-changelog --version
# Initialize configuration
npx smart-changelog init [--force]
# Generate changelog
npx smart-changelog generate [options]Configuration
Environment Variables
Set your Gemini API key (required):
export GEMINI_API_KEY="your-api-key"Configuration File
Use npx smart-changelog init for interactive setup, or create .changelogrc.json manually:
{
"outputPath": "./changelog.json",
"excludePatterns": ["docs:", "chore:", "test:"],
"jsonSchema": {
"type": "daily-groups"
},
"context": "Additional context for AI to consider when generating entries",
"gemini": {
"maxTokens": 2048
}
}Configuration Options
- outputPath: Where to save the changelog file
- excludePatterns: Array of commit message prefixes to exclude
- jsonSchema.type: Format for changelog (
daily-groups,list, orcustom) - context: Optional context to provide to the AI
- gemini.maxTokens: Maximum tokens for AI generation (100-8192)
- lastCommit: Automatically updated with the last processed commit hash
Features
- 🤖 AI-Powered: Uses Google Gemini API for intelligent changelog generation
- 🎯 Interactive Setup: Guided configuration with smart defaults
- 🎨 Beautiful CLI: Colorful output with progress indicators
- ⚙️ Flexible Configuration: Multiple output formats and filtering options
- 🔄 Incremental Updates: Tracks processed commits automatically
- 🚫 Smart Filtering: Exclude commits by pattern (docs, chore, etc.)
- 📝 Multiple Formats: Daily groups, flat lists, or custom schemas
- 🛠️ Developer Friendly: TypeScript, comprehensive error handling
Requirements
- Node.js 18+
- Git repository
- Google Gemini API key (Get one here)
Documentation
For complete documentation, examples, and guides, visit smartchangelog.com/docs.
Contributing
Contributions are welcome! Please see our GitHub repository for issues and contribution guidelines.
License
MIT
