A collection of developer tools
Project description
DevGen
AI-Powered Git & Project Workflows in One CLI
Stop wasting time on repetitive tasks. DevGen automates commits, changelogs, .gitignore, and license files using AI — from cloud providers or a local Ollama model.
PyPI didn't allow the original name, so you'll find it as devgen-cli on PyPI
Why DevGen
DevGen is a CLI for the parts of development that should be invisible. It writes Conventional Commits from your diff, drafts SemVer changelogs, fetches .gitignore and license templates, and routes everything through whichever AI provider you prefer — including a fully local Ollama model if you don't want to send code to the cloud.
Features
- AI-Powered Commits — Conventional Commit messages generated from your staged diff, grouped by directory, with optional emoji prefixes.
- Multiple Providers — Google Gemini, OpenAI, Anthropic, OpenRouter, HuggingFace, and local Ollama, all behind one CLI.
- Smart Caching —
.gitignoreand license templates are cached for offline use; AI responses are de-duplicated. - Conventional Changelogs —
feat,fix,refactor,perf,docs,test,build,ci,chore,style, and aBREAKING CHANGESsection. - Project Scaffolding — Pull
.gitignorefrom GitHub's collection and drop in SPDX license files (MIT, Apache-2.0, GPL-3.0, AGPL-3.0, BSD, MPL-2.0, …). - Custom Templates — Override the commit-message prompt via a
.tplfile in your config. - Interactive Setup —
devgen setupwalks you through provider + API key + options. - Undo Support —
devgen commit undorolls back the last AI commit while keeping changes staged. - Token-Limit Aware — When a diff exceeds a model's context window, you get a single actionable error with
--max-groupsand--max-diff-sizehints.
Supported AI Providers
| Provider | Notes |
|---|---|
| Google Gemini | Default-friendly, generous free tier |
| OpenAI | GPT-4o, GPT-4.1, o-series |
| Anthropic | Claude 3.5 / 3.7 / 4 |
| OpenRouter | Single key, many models |
| HuggingFace | Inference API |
| Ollama | Fully local, no API key, no data leaves your machine |
Installation
# Recommended: isolated environment
pipx install devgen-cli
# Or use uv for speed
uv tool install devgen-cli
# Or plain pip
pip install devgen-cli
# Shell completion (bash/zsh/fish)
devgen --install-completion
Requires Python 3.10 or newer.
Quick Start
# 1. Configure a provider and API key
devgen setup config
# 2. Stage your work as usual
git add .
# 3. Let DevGen write the commit message
devgen commit run
# 4. Or preview first, then commit
devgen commit run --dry-run
devgen commit run --push
Commands
| Command | Description |
|---|---|
devgen setup config |
Interactive provider / API key / options wizard |
devgen commit run |
Stage, generate message, commit (optionally --push, --check, --dry-run) |
devgen commit undo |
Undo the last AI commit, keep changes staged |
devgen changelog |
Generate a Conventional Commits changelog from recent history |
devgen release-notes |
Generate release notes for a version range |
devgen gitignore list |
List available GitHub .gitignore templates |
devgen gitignore add <name> … |
Add .gitignore entries to the current project |
devgen license list |
List available SPDX licenses |
devgen license add <spdx> |
Add a LICENSE file to the current project |
Run devgen <command> --help for full options on any subcommand.
Custom Templates
DevGen uses .tpl files for its commit prompt. To override the default, set custom_template in your config (see devgen config info) and point it at a .tpl file with {{ diff_text }}, {{ context }}, {{ group_name }}, and the conditional {% if use_emoji %} block.
Example minimal template:
{{ diff_text }}
Summarize the change above in one Conventional Commit line.
Architecture
DevGen is built around a small set of composable components:
BaseProvider— abstract base for every AI provider; handles API-key validation, token-limit detection, and error wrapping. Adding a new provider is one subclass with a single_generate()method.GitOperator— allsubprocesscalls togitlive here, behind aGitErrorexception.DiffBuilder/FileGrouper/ManifestInspector— split a staged diff into per-directory groups with compact project context, so the model sees a focused slice instead of a wall of text.Sectionenum — single source of truth for changelog ordering and emoji, shared byChangelogGeneratorandReleaseNotesGenerator.
The CLI entry point is devgen.cli.main:app (Typer), exposed as the devgen script.
Development
git clone https://github.com/S4NKALP/DevGen.git
cd DevGen
uv sync --all-extras --dev # install runtime + dev deps
uv run pre-commit run --all-files
uv run devgen --help
The project uses uv for dependency management, ruff for lint + format, and pyright for type checking. CI runs all three on Python 3.10 through 3.13 (see .github/workflows/ci.yml).
Contributing
Issues and PRs welcome. Please run uv run pre-commit run --all-files before opening a PR so CI stays green.
License
GPL-3.0-or-later. See LICENSE.
Acknowledgments
Built on the shoulders of:
- Typer & Rich — CLI and terminal UI
- Questionary — interactive prompts
- Google Gemini, OpenAI, Anthropic, OpenRouter, HuggingFace, and Ollama — AI providers
- Ruff — lint and format
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 devgen_cli-0.2.5.tar.gz.
File metadata
- Download URL: devgen_cli-0.2.5.tar.gz
- Upload date:
- Size: 102.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a20ef620757e0739b7cbcf774d17a7cf1671877d8276973c2f2b784ce87b9db
|
|
| MD5 |
09d12320425179f57de27ae9bf26c8d3
|
|
| BLAKE2b-256 |
b4b1a4b66e18964e2b994d4c765f7b903b0775afd30c3b2b05eac8cb590c6a68
|
File details
Details for the file devgen_cli-0.2.5-py3-none-any.whl.
File metadata
- Download URL: devgen_cli-0.2.5-py3-none-any.whl
- Upload date:
- Size: 121.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7136a0f8142949be5303ad0720b9e7503557acfd39f74a3ca69e6aea1887a3ca
|
|
| MD5 |
5e2a68c4ec04f3ed6a9b814fcb54ad08
|
|
| BLAKE2b-256 |
71fede5c55c787ee2ceea5dcc7e1df6fc71a504d8f7a70df3c335b2178b4474d
|