a033bb7c93ef74f1a74dcbe3d052a4c37ce68064
Some checks failed
CI / test (push) Has been cancelled
Git AI Documentation Generator
A privacy-focused CLI tool that analyzes git diffs and generates intelligent commit messages, changelogs, and API documentation using local AI models via Ollama.
Features
- Commit Message Generation: Generate conventional commit messages from staged or all changes
- Changelog Generation: Auto-generate changelogs from git commit history between tags/commits
- API Documentation: Generate OpenAPI-style documentation from code changes
- Privacy-Focused: All processing happens locally using Ollama - no data sent to external APIs
- Multi-Language Support: Supports Python, JavaScript, TypeScript, Go, Rust, and Java
- Framework Detection: Automatically detects FastAPI, Flask, Express, and Django patterns
Installation
# Install from source
pip install -e .
# Or install with dev dependencies
pip install -e ".[dev]"
Prerequisites
- Python 3.9+
- Ollama installed and running locally
- A model pulled (e.g.,
ollama pull llama3.2)
Usage
Generate Commit Messages
Generate a commit message from staged changes:
git add .
git-ai-doc commit
Generate from all changes (including unstaged):
git-ai-doc commit --all
With language context for better results:
git-ai-doc commit --language python
Generate Changelogs
Generate a changelog from commits since a tag:
git-ai-doc changelog --from v1.0.0
Generate between two versions:
git-ai-doc changelog --from v1.0.0 --to v2.0.0
Generate API Documentation
Generate API documentation from changes:
git-ai-doc api-docs --all
With framework hint:
git-ai-doc api-docs --all --framework fastapi
Commands
commit
Generate a commit message from git changes.
Options:
--staged/--all: Use staged changes (default) or all changes--language, -l: Programming language context--model, -m: Ollama model to use
changelog
Generate a changelog from git commit history.
Options:
--from, -f: Starting reference (tag, commit, branch)--to, -t: Ending reference (default: HEAD)--limit, -l: Maximum commits to process (default: 100)--format: Output format (markdown, json)
api-docs
Generate API documentation from code changes.
Options:
--staged/--all: Use staged changes or all changes--ref: Git reference to compare against--framework: Force framework detection
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
OLLAMA_HOST |
Ollama server URL | http://localhost:11434 |
OLLAMA_MODEL |
Default model | llama3.2 |
DEBUG |
Enable verbose logging | false |
Configuration File
Create a .ai-doc-gen.yaml in your project root:
ollama_host: http://localhost:11434
model: llama3.2
debug: false
Or in your home directory:
~/.ai-doc-gen.yaml~/.git-ai-doc.yaml
CLI Options
Override config at runtime:
git-ai-doc commit --model codellama --ollama-host http://custom:11434
Supported Languages
- Python (
.py) - JavaScript (
.js) - TypeScript (
.ts) - Go (
.go) - Rust (
.rs) - Java (
.java) - C/C++ (
.c,.cpp,.h)
Development
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=src --cov-report=term-missing
# Lint code
ruff check src/ tests/
Architecture
src/
├── cli.py # Main CLI entry point
├── config.py # Configuration management
├── git_utils.py # Git operations using GitPython
├── ollama_client.py # Ollama LLM integration
├── output.py # Rich console output formatting
└── commands/
├── commit.py # Commit message generation
├── changelog.py # Changelog generation
└── api_docs.py # API documentation generation
License
MIT
Description
A privacy-focused CLI tool that analyzes git diffs and generates intelligent commit messages, changelogs, and API documentation using local AI models via Ollama.