Skip to main content

AI-powered CLI tool for generating git commit messages.

Project description

DiffCraft

Craft the perfect git commit, instantly.

PyPI version License: MIT GitHub Repo

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 diff to 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.

  1. Get your free API key from Google AI Studio.

  2. In the root directory of your git project, create a new file named .env.

  3. 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.

  1. Stage your files as you normally would:
git add README.md
git add .
git add src/
  1. Run the craft command:
craft

This will generate a commit message and present you with the interactive prompt.

Or,

craft README.md
craft .
craft src/

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


Download files

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

Source Distribution

diffcraft-2.1.1.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

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

diffcraft-2.1.1-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file diffcraft-2.1.1.tar.gz.

File metadata

  • Download URL: diffcraft-2.1.1.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for diffcraft-2.1.1.tar.gz
Algorithm Hash digest
SHA256 8b532c8d86612292bb7066824960c3640e1a669f57da0a8a9028782b9956edb5
MD5 1be0b69e966681fac74030b5a2ec74f3
BLAKE2b-256 ceab3b7a593335cd91486d9addb252182d8783c8d3b90ded3d920981c9eaecba

See more details on using hashes here.

File details

Details for the file diffcraft-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: diffcraft-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for diffcraft-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f5e93c6c5e00de3e12994e2271050efceb1eed918ed9c6b32ca74e2eeef191ca
MD5 24a6d2bb89a20ec182c56c217db83b5e
BLAKE2b-256 49bc85473bebd2e0a9391bcdfe3bfc7ffdd04f16cb732ac2ab0822ea6ca3b23b

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