CLI que analiza tu repositorio Git y genera commits profesionales con IA (Conventional Commits).
Project description
AutoGit AI
AutoGit AI analiza automáticamente los cambios de tu repositorio Git, los agrupa de forma inteligente y usa IA para generar mensajes de commit profesionales siguiendo Conventional Commits.
autogit commit # o el alias corto: ag commit
⚠️ Proyecto en desarrollo temprano (Alpha). La API y los comandos pueden cambiar.
Características
- Detecta el repositorio Git actual y lee su estado (añadidos, modificados, eliminados, renombrados y sin seguimiento).
- Construye el contexto (diffs y estadísticas por archivo) y lo envía a la IA.
- Genera el mensaje, muestra una vista previa y te deja confirmar, editar o cancelar.
- Configuración flexible por capas y varios proveedores de IA intercambiables.
Instalación
Requisitos: uv y Git.
git clone https://github.com/OptimScul/autogit-ai.git
cd autogit-ai
uv sync --extra dev
uv run autogit version
Una vez publicado en PyPI podrás instalarlo con pip install autogit-ai.
Uso rápido
autogit status # ver los cambios del repositorio
autogit analyze # analizar y previsualizar el mensaje sin commitear
autogit commit # generar el commit con IA (menú Sí / Editar / Cancelar)
autogit commit -p # además hacer push tras el commit
Comandos
| Comando | Descripción |
|---|---|
autogit commit |
Analiza los cambios y genera el commit con IA |
autogit status |
Estado del repositorio en formato enriquecido |
autogit analyze |
Analiza y previsualiza el mensaje sin hacer commit |
autogit config |
Gestiona proveedor, modelo, API key, idioma, etc. |
autogit doctor |
Diagnóstico del entorno (git, config, proveedor de IA) |
autogit version |
Muestra la versión instalada |
Configuración
La configuración se resuelve combinando, de menor a mayor prioridad:
- Valores por defecto.
- Archivo global del usuario:
~/.autogit/config.toml. - Archivo del proyecto:
.autogit.tomlen la raíz del repo. - Variables de entorno:
AUTOGIT_PROVIDER,AUTOGIT_MODEL,AUTOGIT_API_KEY,AUTOGIT_LANGUAGE,AUTOGIT_COMMIT_STYLE,AUTOGIT_MAX_MESSAGE_LENGTH.
autogit config show # ver la configuración efectiva
autogit config path # ver dónde viven los archivos
autogit config set provider ollama # fijar un valor (se valida antes de guardar)
autogit config set model llama3
La API key es más segura como variable de entorno (
AUTOGIT_API_KEY) que escrita en un archivo.
Proveedores de IA
| Proveedor | Estado | Notas |
|---|---|---|
fake |
✅ Disponible | Determinista y offline (desarrollo) |
ollama |
✅ Disponible | Modelos locales, sin API key |
openai |
⏳ Planificado | |
claude |
⏳ Planificado | |
gemini |
⏳ Planificado | |
openrouter |
⏳ Planificado |
Desarrollo
uv run pytest # tests
uv run ruff check . # lint
uv run ruff format . # formato
uv run mypy # tipado estático
Arquitectura
Clean Architecture con capas desacopladas:
src/autogit/
├── cli/ # Interacción de terminal (Typer + Rich)
├── commands/ # Un módulo por subcomando
├── core/ # Casos de uso y reglas de negocio (dominio)
├── git/ # Adaptador sobre el binario git
├── ai/ # Interfaz AIProvider + implementaciones + fábrica
├── config/ # Carga y validación de configuración (Pydantic)
├── models/ # Modelos de datos tipados
└── utils/ # Utilidades transversales
Licencia
MIT
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 autogit_ai-0.1.0.tar.gz.
File metadata
- Download URL: autogit_ai-0.1.0.tar.gz
- Upload date:
- Size: 80.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53f4582b496c9819da95a172c5f804c1464b4f5bf7f4fbbec7f947272902d32f
|
|
| MD5 |
a9abaecf0c2a6489467f2788a557129b
|
|
| BLAKE2b-256 |
ff4c34dfdae04ff715e82c2041fa953ff583e1b1b37548fd8380087d86a07b75
|
File details
Details for the file autogit_ai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: autogit_ai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 37.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a58f8d432a6a29bcd6d6152bb2949631bab3ac8f6438aa635155cea867542545
|
|
| MD5 |
d164b0ffaf5b3a75ca5432dd1fb9649d
|
|
| BLAKE2b-256 |
0864b04911ad63e1d3e2f37a214fa1209605b7e8decea50533b6496b8520140b
|