feat(root): revamp README and add gitignore/license commands

Updated project overview, removed emojis, and introduced new CLI subcommands for managing .gitignore and license templates. Added architecture and custom template documentation.

New Features
- Added `devgen gitignore list` and `devgen gitignore add <name> …` commands.
- Added `devgen license list` and `devgen license add <spdx>` commands.
- Introduced support for custom commit templates via `.tpl` files.

Enhancements
- Rewrote README with clearer description and updated badges.
- Removed emojis and streamlined formatting throughout documentation.
- Added sections for custom templates, architecture overview, and contribution guide.
- Clarified dependency installation and CI workflow references.

Bug Fixes
- Fixed formatting issues in badge links and stray hyphens.
- Resolved truncated documentation sections and improved readability.
This commit is contained in:
sankalp committed 2026-06-06 17:39:25 +05:45
1 parent df1d1765d1
commit 456040ed2b
1 file changed
+83 -88
+83 -88
View File
@@ -2,154 +2,149 @@
<div align="center">
**Your AI Powerhouse for Git & Project Management.**
Stop wasting time on repetitive tasks. Automate your commits, changelogs, and project essentials with a single CLI.
**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
> <a href="https://pypi.org/project/devgen-cli"><img src="https://img.shields.io/pypi/v/devgen-cli?color=blue&label=PyPI&logo=pypi&logoColor=white" alt="PyPI"></a>
> <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white" alt="Python">
> <a href="https://github.com/S4NKALP/DevGen/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-GPL--3.0--or--later-blue.svg" alt="License"></a>
> <a href="https://github.com/S4NKALP/DevGen/actions/workflows/publish.yml"><img src="https://img.shields.io/github/actions/workflow/status/S4NKALP/DevGen/publish.yml?branch=main&label=Build" alt="Build Status"></a>
> <a href="https://github.com/S4NKALP/DevGen/actions/workflows/pre-commit.yml"><img src="https://img.shields.io/github/actions/workflow/status/S4NKALP/DevGen/pre-commit.yml?branch=main&label=Pre-Commit" alt="Pre-Commit Status"></a>
> <a href="https://github.com/S4NKALP/DevGen/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/S4NKALP/DevGen/ci.yml?branch=main&label=CI" alt="CI"></a>
> <a href="https://github.com/S4NKALP/DevGen/actions/workflows/pre-commit.yml"><img src="https://img.shields.io/github/actions/workflow/status/S4NKALP/DevGen/pre-commit.yml?branch=main&label=Pre-Commit" alt="Pre-Commit"></a>
</div>
## Overview
## Why DevGen
DevGen is an innovative CLI tool designed to streamline your development workflow by automating repetitive tasks such as commits, changelogs, and project essentials. Leveraging state-of-the-art AI models, DevGen transforms tedious manual tasks into one-click magic, enabling you to focus on building and improving your projects.
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**: Generate semantic, context-aware commit messages using AI models from Gemini, OpenAI, Anthropic, HuggingFace, OpenRouter, and local Ollama.
- **Battle-Tested**: Produces Conventional Commits and Semantic Versioning compliant changelogs that make sense.
- **Lightning Fast**: Utilizes smart caching and async operations for speedy performance.
- **Project Essentials**: Quickly add `.gitignore` and license files to your projects, with access to cached templates even offline.
- **Zero Friction**: Interactive setup gets you running in seconds.
- **Customizable**: Define your own commit message structure using Jinja2 templates.
- **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** — `.gitignore` and 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 a `BREAKING CHANGES` section.
- **Project Scaffolding** — Pull `.gitignore` from 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 `.tpl` file in your config.
- **Interactive Setup** — `devgen setup` walks you through provider + API key + options.
- **Undo Support** — `devgen commit undo` rolls 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-groups` and `--max-diff-size` hints.
## Tech Stack
## Supported AI Providers
- **Python 3.10+**: The primary programming language.
- **Typer & Rich**: For building the intuitive and responsive CLI interface.
- **Questionary**: For interactive prompts and selection menus.
- **Jinja2**: For the powerful template engine.
- **AI Models**: From Google Gemini, OpenAI, Anthropic, HuggingFace, OpenRouter, and local Ollama.
- **Rich**: For text-based user interfaces.
- **Uv**: For dependency management and installation.
- **OpenAI**: For AI model integration.
- **Anthropic**: For AI model integration.
- **Ruff**: For code linting and formatting.
- **Google GenAI**: For AI model integration.
| 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
Get started with DevGen in seconds using one of the following methods:
```bash
# Recommended: Install via pipx for an isolated environment
# Recommended: isolated environment
pipx install devgen-cli
# Or use uv for blazing speed
# Or use uv for speed
uv tool install devgen-cli
# Standard pip install
# Or plain pip
pip install devgen-cli
# Enable Shell Completion (bash/zsh/fish)
# Shell completion (bash/zsh/fish)
devgen --install-completion
```
## Usage
Requires **Python 3.10 or newer**.
### Initialize & Configure
Tell DevGen which AI provider to use.
## Quick Start
```bash
# 1. Configure a provider and API key
devgen setup config
```
### Stage & Commit
Stage your files and let AI write the message.
```bash
# 2. Stage your work as usual
git add .
# 3. Let DevGen write the commit message
devgen commit run
```
### Preview Commit Message
Preview what DevGen will generate without committing.
```bash
# 4. Or preview first, then commit
devgen commit run --dry-run
```
### Commit and Push
Commit and push in one go.
```bash
devgen commit run --push
```
### Review and Edit
## Commands
Review and edit AI messages before committing.
| 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 |
```bash
devgen commit run --check
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.
```
### Undo Last Commit
## Architecture
Undo the last AI commit and keep changes staged.
DevGen is built around a small set of composable components:
```bash
devgen commit undo
```
- **`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`** — all `subprocess` calls to `git` live here, behind a `GitError` exception.
- **`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.
- **`Section` enum** — single source of truth for changelog ordering and emoji, shared by `ChangelogGenerator` and `ReleaseNotesGenerator`.
## API Documentation
For more detailed API information and available commands, please refer to the [DevGen CLI Documentation](https://devgen.readthedocs.io/).
## Contributing
We welcome contributions! Found a bug? Want a new feature? Open an issue or submit a PR.
The CLI entry point is `devgen.cli.main:app` (Typer), exposed as the `devgen` script.
## Development
To set up the development environment, follow these steps:
```bash
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
```
1. Clone the repository: `git clone https://github.com/S4NKALP/DevGen.git`
2. Install dependencies: `pip install -r requirements.txt`
3. Run tests: `pytest`
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`).
## Deployment
## Contributing
To deploy DevGen, follow these steps:
1. Build the package: `python setup.py sdist`
2. Upload to PyPI: `twine upload dist/*`
## Troubleshooting
If you encounter any issues, please refer to our [Troubleshooting Guide](https://devgen.readthedocs.io/en/latest/troubleshooting.html).
Issues and PRs welcome. Please run `uv run pre-commit run --all-files` before opening a PR so CI stays green.
## License
Proudly open source under the [GPL-3.0-or-later](LICENSE) License.
GPL-3.0-or-later. See [LICENSE](LICENSE).
## Acknowledgments
DevGen wouldn't be possible without these amazing open-source projects and AI providers:
Built on the shoulders of:
- **Typer** & **Rich** for the CLI interface.
- **Questionary** for interactive prompts.
- **Jinja2** for the template engine.
- **Google Gemini**, **OpenAI**, **Anthropic**, **HuggingFace**, **OpenRouter**, and local **Ollama** for the AI models.
- **Typer** & **Rich** — CLI and terminal UI
- **Questionary** — interactive prompts
- **Jinja2** — template rendering under the hood
- **Google Gemini**, **OpenAI**, **Anthropic**, **OpenRouter**, **HuggingFace**, and **Ollama** — AI providers
- **Ruff** — lint and format
<div align="center">
Made with ❤️ by <a href="https://github.com/S4NKALP">Sankalp</a>