AI-powered CLI tool for generating git commit messages.
Project description
DiffCraft
Craft the perfect git commit, instantly.
DiffCraft is a smart command-line tool that uses Google's Gemini to instantly generate high-quality, conventional commit messages from your staged code changes.
Install:
pip install diffcraft
Features:
- 🤖 AI-Powered Commits: Analyzes your
git diffto create meaningful and descriptive commit messages that truly reflect your changes. - ✅ Enforce Best Practices: Automatically follows the Conventional Commits standard, improving your project's readability and making it easier to automate releases.
- ⚙️ You're Always in Control: Interactively [A]ccept the suggestion, [E]dit it in your own editor, [R]egenerate a new one, or [Q]uit.
- 🌍 Flexible & Powerful: Generate commits in different languages (
--lang), provide context from your commit history (--history), and force specific types (--type).
Installation
DiffCraft is available on PyPI and can be installed with a single pip command.
pip install diffcraft
Setup & Configuration
To use DiffCraft, you need a Google Gemini API key.
Method 1: .env File (Recommended)
This method is easy and keeps your API key specific to your project.
-
Get your free API key from Google AI Studio.
-
In the root directory of your git project, create a new file named .env.
-
Add the following line to the .env file, pasting your own key:
GEMINI_API_KEY="YOUR_API_KEY_HERE"
🔒 Important Security Note Remember to add the .env file to your project's .gitignore to ensure your secret API key is never committed to your repository! If your .gitignore doesn't have it, add this line:
.env
Method 2: Environment Variable (Advanced)
This method is ideal for servers, CI/CD pipelines, Docker containers, or any user who prefers to manage API keys globally. DiffCraft will always prioritize a system-wide environment variable over a local .env file. Open your terminal and use the appropriate command for your operating system.
macOS / Linux
export GEMINI_API_KEY="YOUR_API_KEY_HERE"
To make this permanent, add the command to your ~/.zshrc or ~/.bashrc file.
Windows (PowerShell)
$env:GEMINI_API_KEY="YOUR_API_KEY_HERE"
Windows (CMD)
set GEMINI_API_KEY="YOUR_API_KEY_HERE"
For permanent setup on Windows, search for "Edit the system environment variables" in the Start Menu. You will need to close and reopen your terminal for the changes to take effect.
Usage
The workflow is designed to be seamless.
- Stage your files as you normally would:
git add .
- Run the craft command:
craft
This will generate a commit message and present you with the interactive prompt.
Or,
craft .
This will both stage the files and generate a commit message.
Command-Line Options
For a full list of commands and detailed explanations, use the --help flag:
craft --help
Example: Generate a 'fix' commit and edit it immediately
craft --type fix --edit
Example: Generate a commit in Spanish using the last 3 commits for context
craft --lang Spanish --history 3
Contributing
Found a bug or have a feature request? We'd love your help! Please open an issue or submit a pull request on our GitHub Repository
License
This project is licensed under the MIT License. See the LICENSE file for details.
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 diffcraft-0.2.0.tar.gz.
File metadata
- Download URL: diffcraft-0.2.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fcb6d243ea95bd5a7fffe9130dbba25414af3ce91a84badb7a426d77426d318
|
|
| MD5 |
e9a2147465feca556cf5da9da2c46d2a
|
|
| BLAKE2b-256 |
dbb171d4de2233499e7473d08265a0a6c31586a1264411ed131d18fbc2fb9b0c
|
File details
Details for the file diffcraft-0.2.0-py3-none-any.whl.
File metadata
- Download URL: diffcraft-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e3dceebfe0bdb6bdbe364265f0aa2e00b818410384244ca723d14707db65b78
|
|
| MD5 |
40bf27a2b9284301069a05ee1a813337
|
|
| BLAKE2b-256 |
0cc82ef9a82410b89d093fb9f2a8e88486965a53796b3b8364f6a746aaf25dc0
|