sankalp 09151decad feat(root): Prepare for new devgen_cli component
*   **New Features**
    *   Add `devgen_cli.egg-info/` to `.gitignore` to exclude build artifacts for the new `devgen_cli` component from version control.
2025-12-12 19:11:43 +05:45
2025-12-12 11:10:30 +05:45
2025-12-12 11:10:30 +05:45
2025-06-04 09:22:01 +05:45
2025-12-12 18:46:48 +05:45
2025-12-12 18:46:48 +05:45
2025-12-12 19:04:42 +05:45
2025-12-12 11:10:30 +05:45
2025-12-12 18:46:48 +05:45

DevGen

PyPI Python License

DevGen is an AI-powered developer toolkit that automates common Git and project management tasks. Generate semantic commit messages, changelogs, release notes, .gitignore files, and licenses—all from a single unified CLI.

✨ Features

  • 🚀 AI-Powered Commit Messages - Automatically generate semantic commit messages from your staged changes using AI
  • 📝 Changelog Generation - Create changelogs from git history using conventional commits
  • 🚀 Release Notes - Generate clean, emoji-enhanced release notes for your releases
  • 🙈 Gitignore Templates - Generate .gitignore files from GitHub's official templates
  • 📄 License Generation - Quickly generate open source licenses with interactive setup
  • ⚙️ Multi-Provider AI Support - Works with Gemini, OpenAI, Anthropic, HuggingFace, and OpenRouter

📦 Installation

# Stable release from PyPI
pip install devgen-cli

# Using pipx (recommended for isolated CLI)
pipx install devgen-cli

# Using uv (fast Python package manager)
uv tool install devgen-cli

🚀 Quick Start

1. Initial Setup

Configure your AI provider and API key:

devgen setup config

This will create a configuration file at ~/.devgen.yaml with your preferred AI provider, model, and API key.

2. Generate Commit Messages

Stage your changes and let DevGen generate semantic commit messages:

# Dry run to preview commit messages
devgen commit run --dry-run

# Actually commit with AI-generated messages
devgen commit run

# Commit and automatically push
devgen commit run --push

# Force regeneration of commit messages
devgen commit run --force-rebuild

How it works:

  • DevGen detects all staged and unstaged changes
  • Groups files by directory
  • Generates semantic commit messages for each group using AI
  • Follows Conventional Commits format

Additional commit commands:

# View cached commit messages
devgen commit list-cached

# Clear the commit cache
devgen commit clear-cache

# Check what files are staged
devgen commit validate

3. Generate Changelogs

Create changelogs from your git history:

# Generate changelog from last tag to HEAD
devgen changelog generate

# Generate from a specific reference
devgen changelog generate --from v1.0.0

# Output to a custom file
devgen changelog generate --output CHANGES.md

The changelog follows Semantic Release conventions, categorizing commits into:

  • BREAKING CHANGES
  • Features
  • Bug Fixes
  • Documentation
  • Other Changes

4. Generate Release Notes

Create release notes for your releases:

# Generate release notes
devgen release notes --version 1.4.0

# Custom output file
devgen release notes --version 1.4.0 --output RELEASE.md

# From a specific reference
devgen release notes --version 1.4.0 --from v1.3.0

5. Generate .gitignore Files

Create .gitignore files from GitHub templates:

# Interactive mode (search and select templates)
devgen gitignore generate

# Specify templates directly
devgen gitignore generate Python Node Docker

# List available templates
devgen gitignore list

# Use cached templates (offline mode)
devgen gitignore generate --offline Python

Options:

  • --append / --overwrite - Append to or overwrite existing .gitignore
  • --output - Specify output file path (default: .gitignore)
  • --offline - Use only cached templates

6. Generate Licenses

Generate open source licenses interactively:

devgen license generate

This will:

  1. Show available licenses (MIT, Apache-2.0, GPL-3.0, etc.)
  2. Prompt for author name
  3. Prompt for year (defaults to current year)
  4. Generate the license file

Available licenses:

  • MIT
  • Apache-2.0
  • GPL-2.0, GPL-3.0
  • LGPL-2.1
  • AGPL-3.0
  • BSD-2-Clause, BSD-3-Clause
  • MPL-2.0
  • EPL-2.0
  • BSL-1.0
  • CC0-1.0
  • Unlicense

⚙️ Configuration

Configuration is stored in ~/.devgen.yaml. You can edit it manually or use the interactive setup:

devgen setup config

Configuration options:

  • provider - AI provider: gemini, openai, anthropic, huggingface, or openrouter
  • model - Model name (e.g., gemini-2.5-flash, gpt-4, claude-3-opus)
  • api_key - Your API key
  • emoji - Enable/disable emojis in commit messages (default: true)

📋 Command Reference

Commit Commands

devgen commit run [--dry-run] [--push] [--debug] [--force-rebuild]
devgen commit validate
devgen commit list-cached
devgen commit clear-cache

Changelog Commands

devgen changelog generate [--output FILE] [--from REF]

Release Commands

devgen release notes [--version VERSION] [--output FILE] [--from REF]

Gitignore Commands

devgen gitignore generate [TEMPLATES...] [--output FILE] [--append/--overwrite] [--offline]
devgen gitignore list [--cached]

License Commands

devgen license generate [--output FILE]

Setup Commands

devgen setup config

🎯 Use Cases

  • Automated Commit Workflow: Let AI analyze your changes and generate meaningful commit messages
  • Release Preparation: Automatically generate changelogs and release notes from git history
  • Project Setup: Quickly add .gitignore and license files to new projects
  • CI/CD Integration: Use in scripts to automate documentation generation

🔧 Requirements

  • Python 3.10 or higher
  • Git repository (for commit/changelog/release features)
  • API key for your chosen AI provider

📝 License

This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

🙏 Acknowledgments

S
Description
AI-powered CLI for semantic commits, changelogs, and automated project essentials.
https://pypi.org/project/devgen-cli/
Readme GPL-3.0
935 KiB
0 Stars 1 Watchers 0 Forks
V 0.3.0
Latest
2026-07-03 13:23:50 +00:00
Languages
Python 100%