Skip to main content

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 (local or cloud)
  • 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 .txt files 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitgossip-0.1.1.tar.gz (77.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitgossip-0.1.1-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

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

Hashes for gitgossip-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5a8415e94c98260ad3f40d7cb2f2f737f705ea76c635a41c995532e5da83b6d5
MD5 4ae30307cb6ac773c09b777c66bdd8cb
BLAKE2b-256 8f66ebf4ba230b146cd63b7e58f0f967b2ac5778576afb284ca5dadae456d5ee

See more details on using hashes here.

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

Hashes for gitgossip-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4d8cb71cdf907b7fe3cf933657627e539d6c28fdad3d8db8eff93d95274d1346
MD5 d899fced5c557342d564468349ad22d6
BLAKE2b-256 38c9dcbaa55560c055ef5a56a4b8e57b5041405fcf9c3dcadf31016c50f2d042

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page