Metadata-Version: 2.4
Name: diffscribe
Version: 0.1.2
Summary: 🧠 AI-powered Git commit message generator using Groq & Gemini
Home-page: https://github.com/sarita044/Diffscribe
Author: Sarita Chaudhary
Author-email: sarita1412.chaudhary@email.com
Project-URL: Source, https://github.com/sarita044/Diffscribe
Project-URL: Bug Tracker, https://github.com/sarita044/Diffscribe/issues
Project-URL: Documentation, https://github.com/sarita044/Diffscribe#readme/
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: altgraph==0.17.4
Requires-Dist: annotated-types==0.7.0
Requires-Dist: beautifulsoup4==4.13.4
Requires-Dist: cachetools==5.5.2
Requires-Dist: certifi==2025.7.14
Requires-Dist: charset-normalizer==3.4.2
Requires-Dist: google==3.0.0
Requires-Dist: google-ai-generativelanguage==0.6.15
Requires-Dist: google-api-core==2.25.1
Requires-Dist: google-api-python-client==2.176.0
Requires-Dist: google-auth==2.40.3
Requires-Dist: google-auth-httplib2==0.2.0
Requires-Dist: google-generativeai==0.8.5
Requires-Dist: googleapis-common-protos==1.70.0
Requires-Dist: grpcio==1.73.1
Requires-Dist: grpcio-status==1.71.2
Requires-Dist: httplib2==0.22.0
Requires-Dist: idna==3.10
Requires-Dist: packaging==25.0
Requires-Dist: proto-plus==1.26.1
Requires-Dist: protobuf==5.29.5
Requires-Dist: pyasn1==0.6.1
Requires-Dist: pyasn1_modules==0.4.2
Requires-Dist: pydantic==2.11.7
Requires-Dist: pydantic_core==2.33.2
Requires-Dist: pyinstaller==6.14.2
Requires-Dist: pyinstaller-hooks-contrib==2025.6
Requires-Dist: pyparsing==3.2.3
Requires-Dist: python-dotenv==1.1.1
Requires-Dist: requests==2.32.4
Requires-Dist: rsa==4.9.1
Requires-Dist: setuptools==80.9.0
Requires-Dist: soupsieve==2.7
Requires-Dist: tqdm==4.67.1
Requires-Dist: typing-inspection==0.4.1
Requires-Dist: typing_extensions==4.14.1
Requires-Dist: uritemplate==4.2.0
Requires-Dist: urllib3==2.5.0
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# 🧠 Diffscribe

**Diffscribe** is an intelligent CLI tool that automatically generates meaningful Git commit messages using your **staged diffs**. It leverages **Gemini (by Google)** and **Groq** APIs to analyze your code changes and produce clean, contextual commit messages — all from the terminal.

---

## ✨ Features

- 📜 AI-generated commit messages based on `git diff --cached`
- 🤖 Supports **Gemini** (Google) and **Groq** AI models
- 🔁 Auto fallback: If Gemini fails, Groq takes over
- 🔐 First-time setup with API key prompts and secure `.env` storage
- 🚫 Your code is never stored — only diff sent securely to model

---

## 📦 Installation

Install directly from PyPI:

```bash
pip install diffscribe
```
Or install locally for development:

```bash
git clone https://github.com/yourusername/diffscribe.git
cd diffscribe
pip install -e .
```

🚀 Usage
Stage your changes as usual:
```bash
git add .
```
Then run:
```bash
diffscribe
```

You’ll see an AI-generated commit message based on your staged diff.

✅ Commit directly

To auto-generate and commit in one step:

```bash
diffscribe --commit
```

Commits the previously generated message if available; otherwise, generates a new commit message and runs: git commit -m "<generated-message>"

🔑 First-Time Setup (API Keys)
When you run diffscribe for the first time, you'll be prompted to enter free API keys for Gemini and Groq.

1. 🌐 Gemini (Google) API Key
🔗 Generate at: https://makersuite.google.com/app/apikey

📌 After login, click on your profile icon > API Keys > Create API key

2. ⚡ Groq API Key
🔗 Generate at: https://console.groq.com/keys

📌 Log in > Go to API Keys tab > Create new key

✅ Once entered, your keys will be saved automatically to a local .env file — no need to enter them again.

If your keys ever expire or are invalid, you'll be prompted to enter new ones on the next run.

🛡️ Security & Privacy
Your .env file is local only and never uploaded.

Only the staged diff is sent securely to Gemini/Groq.

No code or messages are stored by diffscribe.

