Gitgeist is a comprehensive AI-powered Git management platform that revolutionizes how developers interact with version control. Using local LLMs and advanced semantic analysis, it provides intelligent commit generation, multi-repository management, GitHub integration, and team collaboration tools.
- Semantic Code Analysis: 29+ programming languages with Tree-sitter AST parsing
- RAG Memory System: Learns from your commit history using vector embeddings
- Branch-Aware Commits: Adapts commit styles based on branch patterns
- Smart Templates: Context-aware commit message generation
- Workspace Support: Manage multiple repositories from a single interface
- Cross-Repo Operations: Commit to all repositories simultaneously
- Repository Status Tracking: Monitor changes across all projects
- Team Collaboration: Shared workspace configurations
- GitHub Integration: Automated PR creation and issue management
- VS Code Extension: Native IDE support for commit generation
- Web Dashboard: Visual insights and real-time monitoring
- CLI Interface: Comprehensive command-line tools
- 100% Local Processing: Uses local LLMs (Ollama) - no API costs
- Privacy First: No data sent to cloud services
- Performance Optimization: Intelligent caching and batch processing
- Error Recovery: Comprehensive error handling and system repair
- Git repository
- Python 3.8+
- Ollama with a model (e.g., llama3.2)
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Pull a model
ollama pull llama3.2
# Start Ollama server
ollama serve
# Clone the repository
git clone https://github.com/gitgeistai/gitgeist-ai.git
cd gitgeist-ai
# Install dependencies
pip install -e .
# Or install development version
pip install -e ".[dev]"
# Initialize in your repository
cd /path/to/your/project
gitgeist init --autonomous --model llama3.2
# Basic usage
gitgeist commit --dry-run # Preview commit
gitgeist commit # Interactive commit
gitgeist commit --auto # Auto-commit
# Multi-repository workspace
gitgeist workspace add /path/to/repo
gitgeist workspace commit-all
# GitHub integration
export GITHUB_TOKEN=your_token
gitgeist github pr
# Web dashboard
gitgeist web start
# Access at http://localhost:8080 for visual insights
gitgeist init
- Initialize Gitgeist in repositorygitgeist commit
- Generate and create intelligent commitsgitgeist status
- Show comprehensive system statusgitgeist analyze
- Analyze current changesgitgeist doctor
- Diagnose and fix system issues
gitgeist workspace add <path>
- Add repository to workspacegitgeist workspace list
- List all repositoriesgitgeist workspace status
- Check status of all reposgitgeist workspace commit-all
- Commit to all repositories
gitgeist github pr
- Create pull request from current branchgitgeist github issues
- List repository issuesgitgeist github repo
- Show repository information
gitgeist web start
- Launch web dashboard- Access at
http://localhost:8080
for visual insights
# Initialize with autonomous mode
gitgeist init --autonomous --model llama3.2
# Watch repository (auto-commits changes)
gitgeist watch
# Generate commit message without committing
gitgeist commit --dry-run
# Commit with auto-approval
gitgeist commit --auto
# Show what Gitgeist detected
gitgeist analyze
# View current status
gitgeist status
Configuration is stored in .gitgeist.json
:
{
"autonomous_mode": false,
"commit_style": "conventional",
"llm_model": "llama3.2",
"llm_host": "http://localhost:11434",
"temperature": 0.3,
"log_level": "INFO",
"watch_paths": ["."],
"ignore_patterns": [
".git/*",
"node_modules/*",
"*.pyc",
"__pycache__/*",
".env",
"venv/*",
".venv/*"
]
}
Option | Type | Default | Description |
---|---|---|---|
autonomous_mode |
boolean | false |
Enable automatic commits |
commit_style |
string | "conventional" |
Commit message style (conventional , semantic , default ) |
llm_model |
string | "llama3.2" |
Ollama model to use |
llm_host |
string | "http://localhost:11434" |
Ollama server URL |
temperature |
number | 0.3 |
LLM temperature (0.0-2.0) |
log_level |
string | "INFO" |
Logging level (DEBUG , INFO , WARNING , ERROR ) |
watch_paths |
array | ["."] |
Directories to watch |
ignore_patterns |
array | See above | File patterns to ignore |
- Language Detection: Identifies 29+ programming languages automatically
- AST Parsing: Uses Tree-sitter for deep semantic code understanding
- Change Detection: Identifies functions, classes, and structural modifications
- Context Building: Aggregates changes across multiple files and languages
- RAG Memory: Retrieves similar past commits using vector embeddings
- Template Selection: Chooses appropriate commit style based on branch patterns
- LLM Generation: Uses local Ollama with enhanced context for intelligent messages
- Validation: Ensures commit messages follow project conventions
- Workspace Management: Coordinates operations across multiple repositories
- GitHub Integration: Automates PR creation and issue management
- Performance Optimization: Caches results and processes files in parallel
- Error Recovery: Provides comprehensive diagnostics and auto-repair
# Clone and install in development mode
git clone https://github.com/gitgeistai/gitgeist-ai.git
cd gitgeist-ai
pip install -e ".[dev]"
# Run tests
pytest
# Run tests with coverage
pytest --cov=gitgeist
# Format code
black .
isort .
gitgeist-ai/
โโโ gitgeist/
โ โโโ ai/ # LLM integration
โ โ โโโ llm_client.py # Ollama client
โ โ โโโ commit_generator.py
โ โ โโโ prompts.py # LLM prompts
โ โโโ analysis/ # Code analysis
โ โ โโโ ast_parser.py # Tree-sitter integration
โ โโโ cli/ # Command-line interface
โ โ โโโ commands.py # CLI commands
โ โโโ core/ # Core functionality
โ โ โโโ config.py # Configuration management
โ โ โโโ git_handler.py # Git operations
โ โ โโโ watcher.py # File watching
โ โ โโโ schema.py # Config validation
โ โโโ utils/ # Utilities
โ โโโ logger.py # Logging setup
โ โโโ exceptions.py # Custom exceptions
โโโ tests/ # Test suite
โโโ pyproject.toml # Project configuration
โโโ README.md # This file
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Ollama for local LLM inference
- Tree-sitter for semantic code parsing
- Typer for the CLI framework
- Rich for beautiful terminal output
- โ RAG Memory System: Vector embeddings for commit history learning
- โ GitHub Integration: Automated PR creation and issue management
- โ VS Code Extension: Native IDE support for commit generation
- โ Multi-Repository Support: Workspace management for multiple projects
- โ Team Collaboration: Shared configurations and cross-repo operations
- โ Web Dashboard: Visual insights and real-time monitoring
- โ Performance Optimization: Caching, batch processing, and parallel analysis
- โ Error Handling: Comprehensive diagnostics and auto-repair system
- โ Branch Awareness: Context-sensitive commit strategies
- โ 29+ Language Support: Comprehensive programming language detection
- Advanced team analytics and insights
- Slack/Discord integration for team notifications
- Custom LLM model fine-tuning
- Advanced conflict resolution assistance
- Mobile app for repository monitoring
- Enterprise SSO and user management
Made with โค๏ธ by developers, for developers