Skip to main content

An AI agent for generating meaningful git commit messages using Google's Gemini AI

Project description

🤖 DiffWhisperer

Your AI-powered Git companion for crafting perfect commit messages

DiffWhisperer is a powerful CLI tool that uses Google's Gemini AI to automatically generate meaningful, conventional commit messages by analyzing your code changes. Say goodbye to vague commit messages and hello to consistent, professional git history!

✨ Why DiffWhisperer?

  • 🎯 Consistent Quality: Follows conventional commits format for clear, structured history
  • 🧠 Smart Analysis: Intelligently analyzes code changes to understand context
  • 🚀 Lightning Fast: Powered by Google's latest Gemini models for quick responses
  • 💰 Cost Effective: Uses Google's free Gemini AI API
  • 🛠️ Flexible: Works with any git repository and supports customization
  • 🔄 Seamless Integration: Easy to add to your existing git workflow

🚀 Quick Start

Installation

pip install diffwhisperer

Setup

  1. Get your free API key from Google AI Studio

  2. Set your API key:

export GOOGLE_API_KEY="your-api-key-here"

Basic Usage

# Stage your changes
git add .

# Generate a commit message
diffwhisperer generate

# Or generate and commit in one go
diffwhisperer commit

🎯 Features

Smart Commit Message Generation

  • Automatically detects the type of changes (feat, fix, docs, etc.)
  • Identifies the scope based on changed files
  • Generates clear, concise descriptions
  • Follows the Conventional Commits specification

Flexible Configuration

# Choose your preferred Gemini model
diffwhisperer generate --model gemini-2.0-flash

# Customize token length for longer messages
diffwhisperer commit --max-tokens 150

# Work with specific repositories
diffwhisperer generate --repo-path /path/to/repo

Multiple Models Support

  • gemini-2.0-flash: Quick, efficient responses (default)
  • gemini-2.5-pro: More detailed analysis
  • Any other Gemini supported model!

📝 Example Outputs

# Feature addition
feat(auth): add google oauth integration

# Bug fix
fix(api): resolve race condition in async requests

# Documentation
docs(readme): update installation instructions and examples

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (use DiffWhisperer itself! 😉)
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

📄 License

MIT - Feel free to use this tool in your projects!


Made with ❤️ by the DiffWhisperer team

PyPI version Build Status

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

diffwhisperer-1.0.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

diffwhisperer-1.0.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file diffwhisperer-1.0.0.tar.gz.

File metadata

  • Download URL: diffwhisperer-1.0.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for diffwhisperer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fae6c6f297f9d7c3fd4f3e6a21857eb7763620a1b2b34d513be5f2448204002b
MD5 43a109fd36d0544d87c849dcd82b2b3c
BLAKE2b-256 4927922d94b1369eef1e15c94214f49ef7c20b1b3b1b1ddf829a622ddbe26c8b

See more details on using hashes here.

File details

Details for the file diffwhisperer-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: diffwhisperer-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for diffwhisperer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a6f170ea2c872768753a8a172c7aae59278704a33c71ea0061a500e17589571
MD5 e37595d76a839a380556b46aae4eef12
BLAKE2b-256 e300a33aa60073a130fe3cfa82a4d6e07b23e7a990b8c53c2d39291fc3a1f72a

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