GitSynth 🚀
An intelligent CLI tool for automated Git commits, documentation, and changelog management with LLM support.
Features 🎯
Smart Commit Messages
- Automatic detection of commit types based on https://www.conventionalcommits.org/en/v1.0.0/
- Context-aware commit descriptions
- Git history-based suggestions
Changelog Management
- Automatic CHANGELOG.md generation
- Categorized changes
- Commit linking
Tech Stack 🛠
Core
- LangChain: LLM Integration and Tools
- LangGraph: Agent Orchestration
- Ollama: Local LLM (Mistral or Llama2)
- Chroma: Vector store for Embeddings
- HuggingFace Embeddings (BAAI/bge-small-en-v1.5)
Development
- Poetry: Dependency Management
- Typer: CLI Framework
- GitPython: Git Integration
- Rich: Terminal Formatting
Quick Start 🏃♂️
The core/commit_agent.py script is the heart of the application. Unfortunately, tools with Ollama didn't work, so it's a Chain. For a detailed description, see Domain Documentation.
Installation
Prerequisites
- Python 3.11+
- Poetry
- Git
- Ollama (for local LLM)
Development Setup
-
Clone repository:
git clone https://github.com/yourusername/gitsynth.git cd gitsynth -
Set Python version:
# If using Conda, deactivate first conda deactivate # Set Python 3.11 for Poetry poetry env use python3.11
-
Install dependencies:
-
Activate development environment:
-
Switch to any repo and stage changes:
-
Start Gitsynth:
Usage
After activating the Poetry shell:
# Create commit with changelog gitsynth agent commit # Analyze changes gitsynth analyze # Debug analysis gitsynth debug or gitsynth agent commit --debug # TODO: Show help gitsynth --help
Features
- 🤖 AI-powered commit analysis
- 📝 Intelligent commit messages
- 🎯 Conventional Commits support
- 🎨 Beautiful terminal output
Troubleshooting
- "Command not found: poetry": Reinstall Poetry or set PATH
- Conda conflicts: Run
conda deactivatebefore using Poetry - Ollama errors: Ensure Ollama is running (
ollama run llama3.2)
Architecture 🏗
Agents
- CommitAgent: Analyzes changes & generates commits
📋 Usage
# See the flow
gitsynth agent commitRoadmap 🗺
- [✅] Basic CLI Setup with Poetry & Typer
- [✅] Git Integration & Diff Analysis
- [✅ ❌] LangChain/LangGraph Agent System
- [✅] Chroma Vector Store Integration
- [✅] Ollama LLM Integration
- [✅] Initial Commit Message Generation
- [✅] Documentation Synchronization
- [❌] Changelog Management
Contributing 🤝
Contributions are welcome!
License 📄
MIT