AI that spills the tea on your commits โ human-readable Git summaries.
Project description
๐ง GitGossip โ AI-Powered Git Commit Summarizer
GitGossip turns your commit history into human-readable summaries and merge request descriptions โ powered by LLMs like Ollama (local) or OpenAI (cloud).
GitGossip helps developers and managers instantly understand what changed, why it changed, and how large codebases evolve โ without reading every diff manually.
๐ Features
โ
Generate smart commit summaries in natural language
โ
Produce Merge Request (MR) titles & descriptions from code diffs
โ
Quickly list recent commit authors within a sprint window (default: 15 days) you may need them to query ๐
โ
Works with local LLMs (Ollama) or cloud APIs (OpenAI / Anyscale)
โ
Fully offline compatible
โ
Configurable system resource awareness
โ
Clean CLI experience with Rich formatting
โ
Ready for cross-platform use (macOS / Linux)
โ๏ธ Installation (macOS / Linux)
๐งฉ Using uv (recommended)
uv tool install gitgossip
or clone manually:
git clone https://github.com/osmangoninahid/gitgossip.git
cd gitgossip
uv sync
uv run gitgossip --help
๐ณ Optional: Run via Docker (Local LLM mode)
If you prefer not to install Ollama on your host:
docker run -d -p 11434:11434 ollama/ollama
docker exec -it $(docker ps -q -f ancestor=ollama/ollama) ollama pull qwen2.5-coder:1.5b
Then configure GitGossip to connect:
gitgossip init
# โ Choose provider: local
# โ Base URL: http://localhost:11434/v1
# โ Model: qwen2.5-coder:1.5b
๐ง Usage Examples
1๏ธโฃ Initialize configuration
gitgossip init
This will interactively ask for:
- LLM provider (
localorcloud) - Model name (
qwen2.5-coder:1.5b,llama3:8b, etc.) - API key (if using cloud)
- Auto-detects and warns if your hardware has insufficient memory
Example:
Select LLM provider [local/cloud] (local): local
Detected 3 local models from Ollama.
Select or enter model name: qwen2.5-coder:1.5b
โ ๏ธ Warning: Model may require 8 GB RAM. You have 6.2 GB.
Configuration saved successfully!
2๏ธโฃ Summarize commits
gitgossip summarize --path . --since 7days
Example output:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ AI Summary for gitgossip โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ - Added local LLM factory and configuration setup โ
โ - Integrated interactive CLI initialization โ
โ - Improved summarizer to support chunk-based large diff summarization โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
3๏ธโฃ Generate a Merge Request summary
gitgossip summarize-mr main
Example output:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Merge Request Summary โ gitgossip โโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ **Refactor and Optimize LLM Integration** โ
โ โ
โ - Added centralized analyzer factory with memory safety checks โ
โ - Improved configuration for local vs cloud LLMs โ
โ - Enhanced CLI UX with color-coded feedback โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โจ Merge Request summary generated successfully!
4๏ธโฃ List recent commit authors
gitgossip list-authors
By default, this lists all unique authors who have committed within the last 15 days โ a typical sprint window. Authors from the last 15 days Example output:
1. Osman Goni Nahid <osman@os.ai>
2. Alice Smith <alice@company.com>
Total unique authors: 2
Total unique authors: 2
You can customize the time window or include all commit history:
# Show authors from the last 30 days
gitgossip list-authors --since 30days
# Show authors from all commits
gitgossip list-authors --all-commits
๐ก Tip: Use this command to quickly check active contributors before running gitgossip summarize --author ""
โ๏ธ Local vs Cloud Setup
| Mode | Description | Base URL | API Key |
|---|---|---|---|
| Local | Uses Ollama or LM Studio for offline models | http://localhost:11434/v1 |
local |
| Cloud | Uses OpenAI / Anyscale / Groq APIs | https://api.openai.com/v1 |
Required |
Your configuration lives at:
~/.gitgossip/config.yaml
Example:
llm:
provider: local
model: qwen2.5-coder:1.5b
base_url: http://localhost:11434/v1
api_key: local
paths:
prompts: /Users/osman/.gitgossip/prompts (coming soon)
meta:
version: '1.0'
๐งฉ Optional: Customize Prompts (Coming Soon)
GitGossip will soon allow you to customize LLM prompt templates for commit summarization, diff synthesis, and merge request generation.
This feature will let you:
-
Define your own tone (technical, business, casual)
-
Control summary structure (bullet points, prose, etc.)
-
Override system defaults using
.txtfiles under:~/.gitgossip/prompts/ โโโ chunk.txt โโโ synthesis.txt โโโ final.txt
โ๏ธ Status: Under development โ available in an upcoming release (v0.2).
๐งฐ Troubleshooting
| Issue | Cause | Fix |
|---|---|---|
OpenAIError: api_key must be set |
API key missing | Re-run gitgossip init or set api_key: local |
OSError: Connection refused |
Ollama server not running | Run ollama serve or check Docker port 11434 |
| No models found | Ollama empty | ollama pull qwen2.5-coder:1.5b |
| Output too short | Model truncated due to context | Use smaller chunk_size or larger LLM |
| Slow generation | Large diffs or small GPU | Use cloud LLM for faster inference |
๐งโ๐ป Contributing
Contributions are welcome! ๐
If you'd like to improve GitGossip, follow these steps to set up your environment locally.
๐งฉ Developer Setup
Clone and install dependencies using uv:
git clone https://github.com/osmangoninahid/gitgossip.git
cd gitgossip
make install
Once installed, you can use the included Makefile to run all development tasks easily:
| Command | Description |
|---|---|
make install |
Install all dependencies |
make lint |
Run Ruff linter |
make format |
Format code with Black + Ruff |
make test |
Run the full pytest suite |
make run CMD="summarize-mr main --use-mock" |
Run a local CLI command |
make clean |
Clean build/test artifacts |
๐ License
MIT License ยฉ 2025 Osman Goni Nahid
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 gitgossip-0.1.1.tar.gz.
File metadata
- Download URL: gitgossip-0.1.1.tar.gz
- Upload date:
- Size: 77.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a8415e94c98260ad3f40d7cb2f2f737f705ea76c635a41c995532e5da83b6d5
|
|
| MD5 |
4ae30307cb6ac773c09b777c66bdd8cb
|
|
| BLAKE2b-256 |
8f66ebf4ba230b146cd63b7e58f0f967b2ac5778576afb284ca5dadae456d5ee
|
File details
Details for the file gitgossip-0.1.1-py3-none-any.whl.
File metadata
- Download URL: gitgossip-0.1.1-py3-none-any.whl
- Upload date:
- Size: 35.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d8cb71cdf907b7fe3cf933657627e539d6c28fdad3d8db8eff93d95274d1346
|
|
| MD5 |
d899fced5c557342d564468349ad22d6
|
|
| BLAKE2b-256 |
38c9dcbaa55560c055ef5a56a4b8e57b5041405fcf9c3dcadf31016c50f2d042
|