🚀 Git Auto Commit (gac)

June 18, 2026 · View on GitHub

🚀 Git Auto Commit (gac)

PyPI version Changelog Python Build Status codecov Ruff mypy Contributions welcome License: MIT

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

¡Mensajes de commit impulsados por LLM que entienden tu código!

¡Automatiza tus commits! Reemplaza git commit -m "..." con uvx gac para obtener mensajes de commit contextuales y bien formateados generados por modelos de lenguaje grandes!


Lo que obtienes

Mensajes inteligentes y contextuales que explican el porqué detrás de tus cambios:

GAC generando un mensaje de commit contextual


Inicio rápido

uvx gac init   # Configura tu proveedor, modelo e idioma
uvx gac  # Genera y hace commit con LLM

¡Eso es todo! Revisa el mensaje generado y confirma con y.


Características principales

33+ Proveedores soportados

  • AnthropicAzure OpenAICerebrasChatGPT (OAuth)Chutes.aiClaude Code (OAuth)
  • Crof.aiDeepInfraDeepSeekFireworksGeminiGitHub Copilot (OAuth)Groq
  • Kimi for CodingLilacLM StudioMiniMax.ioMistral AIMoonshot AINeuralwattOllama
  • Ollama CloudOpenAIOpenCode GoOpenRouterPlexus GatewayQwen Cloud (CN & INTL)
  • ReplicateStreamlake/VanchinSynthetic.newTogether AIWafer.aiZ.AI (API & Coding Plans)
  • Custom Endpoints (Anthropic/OpenAI)

🧠 Análisis inteligente con LLM

  • Entiende la intención: Analiza la estructura del código, lógica y patrones para entender el "porqué" detrás de tus cambios, no solo qué cambió
  • Conciencia semántica: Reconoce refactorizaciones, correcciones de errores, características y cambios rotos para generar mensajes contextualmente apropiados
  • Filtrado inteligente: Prioriza cambios significativos mientras ignora archivos generados, dependencias y artefactos
  • Agrupación inteligente de commits - Agrupa automáticamente cambios relacionados en múltiples commits lógicos con --group

📝 Múltiples formatos de mensaje

  • Una línea (bandera -o): Mensaje de commit de una sola línea siguiendo el formato de commit convencional
  • Estándar (predeterminado): Resumen con viñetas explicando detalles de implementación
  • Detallado (bandera -v): Explicaciones completas incluyendo motivación, enfoque técnico y análisis de impacto
  • Regla 50/72 (bandera --50-72): Aplica el formato clásico de mensaje de commit para legibilidad óptima en git log y GitHub UI
  • DCO/Signoff (bandera --signoff): Agrega línea Signed-off-by para cumplimiento del Developer Certificate of Origin (requerido por Cherry Studio, kernel de Linux y otros proyectos)

🌍 Soporte multilingüe

  • 25+ idiomas: Genera mensajes de commit en inglés, chino, japonés, coreano, español, francés, alemán y 18+ idiomas más
  • Traducción flexible: Elige mantener prefijos de commit convencionales en inglés para compatibilidad de herramientas, o traducirlos completamente
  • Múltiples flujos de trabajo: Establece un idioma predeterminado con uvx gac language, o usa la bandera -l <idioma> para anulaciones de una sola vez
  • Soporte de escritura nativa: Soporte completo para scripts no latinos incluyendo CJK, cirílico, tailandés y más

💻 Experiencia del desarrollador

  • Retroalimentación interactiva: Escribe r para volver a generar, e para editar (TUI in-place por defecto, o tu $GAC_EDITOR si está configurado), o escribe directamente tu retroalimentación como "hazlo más corto" o "enfócate en la corrección del error"
  • Interrogación interactiva: Usa --interactive (-i) para responder preguntas específicas sobre tus cambios para mensajes de commit más contextuales
  • Flujos de trabajo de un comando: Flujos de trabajo completos con banderas como uvx gac -ayp (stage todo, auto-confirmar, push)
  • Integración con Git: Respeta los hooks de pre-commit y lefthook, ejecutándolos antes de operaciones costosas de LLM
  • Servidor MCP: Ejecuta uvx gac serve para exponer herramientas de commit a agentes de IA a través del Model Context Protocol

📊 Estadísticas de Uso

uvx gac stats               # Resumen: gacs totales, rachas, picos diarios/semanales, proyectos y modelos principales
uvx gac stats models        # Desglose por modelo: gacs, tokens, latencia, velocidad, gráficos de latencia por commit
uvx gac stats projects      # Desglose por proyecto: gacs, commits, tokens, archivos promedio por gac en todos los repositorios
uvx gac stats recent        # Historial de gacs recientes: tokens, velocidad, latencia, archivos por gac (-n 20 para más)
uvx gac stats reset         # Restablecer todas las estadísticas (solicita confirmación)
uvx gac stats reset model <model-id>  # Restablecer estadísticas solo para un modelo específico
  • Rastrea tus gacs: Ve cuántos commits has hecho con gac, tu racha actual, pico de actividad diaria/semanal y proyectos principales
  • Seguimiento de tokens: Tokens totales de prompt, output y razonamiento por día, semana, proyecto y modelo — con trofeos de récord también para el uso de tokens
  • Modelos principales: Ve qué modelos usas más y cuántos tokens consume cada uno
  • Celebraciones de récord: 🏆 trofeos cuando estableces nuevos récords diarios, semanales, de tokens o de racha; 🥈 por empatarlos
  • Opt-in durante la configuración: uvx gac init pregunta si deseas activar las estadísticas y explica exactamente qué se almacena
  • Opt-out en cualquier momento: Establece GAC_DISABLE_STATS=true (o 1/yes/on) para desactivar. Establecerlo en false/0/no (o dejarlo sin establecer) mantiene las estadísticas activadas
  • Privacidad primero: Almacenado localmente en ~/.gac_stats.json. Solo conteos, fechas, nombres de proyectos y nombres de modelos — sin mensajes de commit, código ni datos personales. Sin telemetría

🛡️ Seguridad incorporada

  • Detección automática de secretos: Escanea claves de API, contraseñas y tokens antes de hacer commit
  • Protección interactiva: Pregunta antes de hacer commit de datos potencialmente sensibles con claras opciones de remedición
  • Filtrado inteligente: Ignora archivos de ejemplo, archivos de plantilla y texto de marcador de posición para reducir falsos positivos

Ejemplos de uso

Flujo de trabajo básico

# Haz stage de tus cambios
git add .

# Genera y haz commit con LLM
uvx gac

# Revisa → y (commit) | n (cancelar) | r (volver a generar) | e (editar) | o escribe retroalimentación

Comandos comunes

ComandoDescripción
uvx gacGenerar mensaje de commit
uvx gac -yAuto-confirmar (no necesita revisión)
uvx gac -aHacer stage de todo antes de generar mensaje de commit
uvx gac -SSeleccionar archivos interactivamente para staging
uvx gac -oMensaje de una línea para cambios triviales
uvx gac -vFormato detallado con Motivación, Enfoque Técnico y Análisis de Impacto
uvx gac -h "hint"Añadir contexto para LLM (ej., uvx gac -h "corrección de error")
uvx gac -sIncluir alcance (ej., feat(auth):)
uvx gac -iHacer preguntas sobre los cambios para mejor contexto
uvx gac -gAgrupar cambios en múltiples commits lógicos
uvx gac -pHacer commit y push
uvx gac modelCambiar proveedor y modelo de IA
uvx gac statsVer tus estadísticas de uso de gac

Ejemplos para usuarios avanzados

# Flujo de trabajo completo en un comando
# Ver tus estadísticas de commits
uvx gac stats

# Estadísticas de todos los proyectos
uvx gac stats projects

uvx gac -ayp -h "preparación de release"

# Explicación detallada con alcance
uvx gac -v -s

# Mensaje rápido de una línea para cambios pequeños
uvx gac -o

# Generar mensaje de commit en un idioma específico
uvx gac -l es

# Agrupar cambios en commits lógicamente relacionados
uvx gac -ag

# Modo interactivo con salida detallada para explicaciones detalladas
uvx gac -iv

# Depurar lo que el LLM ve
uvx gac --show-prompt

# Omitir escaneo de seguridad (usar con cuidado)
uvx gac --skip-secret-scan

# Agregar signoff para cumplimiento DCO (Cherry Studio, kernel de Linux, etc.)
uvx gac --signoff

Sistema de retroalimentación interactiva

¿No estás contento con el resultado? Tienes varias opciones:

# Volver a generar simple (sin retroalimentación)
r

# Editar el mensaje de commit
e

# ¡O simplemente escribe tu retroalimentación directamente!
hazlo más corto y enfócate en la mejora de rendimiento
usa formato de commit convencional con alcance
explica las implicaciones de seguridad

# Presiona Enter en entrada vacía para ver el prompt nuevamente

La función de edición (e) te permite refinar el mensaje de commit:

  • Por defecto (TUI in-place): Edición multilínea con keybindings vi/emacs — corregir errores tipográficos, ajustar redacción, reestructurar
  • Con GAC_EDITOR: Abre tu editor preferido (code, vim, nano, etc.) — toda la potencia del editor incluyendo buscar/reemplazar, macros, etc.

Los editores GUI como VS Code se manejan automáticamente: gac inserta --wait para que el proceso se bloquee hasta que cierres la pestaña del editor. No se necesita configuración adicional.


Configuración

Ejecuta uvx gac init para configurar tu proveedor interactivamente, o establece variables de entorno:

¿Necesitas cambiar proveedores o modelos más tarde sin tocar la configuración de idioma? Usa uvx gac model para un flujo optimizado que omite los prompts de idioma.

Consulta .gac.env.example para todas las opciones disponibles.

¿Quieres mensajes de commit en otro idioma? Ejecuta uvx gac language para seleccionar entre 25+ idiomas incluyendo Español, Français, 日本語 y más.

¿Quieres personalizar el estilo del mensaje de commit? Consulta docs/CUSTOM_SYSTEM_PROMPTS.md para orientación sobre cómo escribir prompts de sistema personalizados.


Obtener ayuda


⭐ Danos una estrella en GitHub🐛 Reportar problemas📖 Documentación completa