An AI-powered tool to suggest conventional git commit messages.
Project description
genie-git
An AI-powered CLI tool to suggest conventional commit messages for your staged files.
Why genie-git?
Writing well-formatted, conventional commit messages is a best practice, but it can be tedious. genie-git uses the power of Google's Gemini models to analyze your staged changes and instantly propose a high-quality commit message for you.
Features
- AI-Powered Suggestions: Automatically generates commit messages based on your staged changes.
- Conventional Commits: Enforces a consistent and readable commit history.
- Customizable: Configure the AI model, API key, and message specifications to fit your needs.
- Exclude Files: Easily exclude files from the diff to fine-tune your commit message.
Installation
Install genie-git directly from PyPI:
pip install genie-git
Quick Start
-
Get your Google API Key:
You can generate a free Google Generative AI API key by visiting aistudio.google.com/apikey.
-
Configure
genie-git:Set up your API key with the following command:
genie-git configure --api-key YOUR_API_KEY
That's it! You're now ready to generate commit messages.
Usage
Suggest a Commit Message
To get a commit message suggestion, simply run genie-git in your repository:
genie-git suggest
This will analyze your staged changes and output a suggested commit message.
Advanced Configuration
While only an API key is needed to get started, you can further customize genie-git to fit your workflow:
genie-git configure --model gemini-1.5-pro --message-specifications "My custom instructions"
Available options:
--api-key: Your Google Generative AI API key.--model: The model to use (e.g.,gemini-1.5-flash).--message-specifications: Additional instructions for the AI.--number-of-commits: The number of recent commits to use as a reference.--show: Display the current configuration.
Exclude Files
To exclude files from the diff, use the exclude-files command:
genie-git exclude-files file1.txt path/to/file2.py
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 genie_git-0.1.1.tar.gz.
File metadata
- Download URL: genie_git-0.1.1.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a6d931267159d49513f276d99087d735d06a1b4f250647e3e5f1fa81c44a152
|
|
| MD5 |
8822e85a9da96c8a5a478d4613b30d7b
|
|
| BLAKE2b-256 |
931d403f66c6dac05cd245d626f9ac643045ce883d6fdb31a33286f98d3b9a69
|
Provenance
The following attestation bundles were made for genie_git-0.1.1.tar.gz:
Publisher:
publish.yml on majedlutfi96/genie-git
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
genie_git-0.1.1.tar.gz -
Subject digest:
7a6d931267159d49513f276d99087d735d06a1b4f250647e3e5f1fa81c44a152 - Sigstore transparency entry: 524168598
- Sigstore integration time:
-
Permalink:
majedlutfi96/genie-git@ea925d8e062c0d92cfb8ff361574624d31728dda -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/majedlutfi96
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea925d8e062c0d92cfb8ff361574624d31728dda -
Trigger Event:
release
-
Statement type:
File details
Details for the file genie_git-0.1.1-py3-none-any.whl.
File metadata
- Download URL: genie_git-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58fe3798e102a4faf8ee609acb045b3da0b23366cfabc1d6a54e20a871f88ad8
|
|
| MD5 |
8992e77ff602953556e7dd03a8325026
|
|
| BLAKE2b-256 |
61b624ceecbad38ad36e9bf19a53d53ada332dcdf5d406e480c281d83fafd7ab
|
Provenance
The following attestation bundles were made for genie_git-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on majedlutfi96/genie-git
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
genie_git-0.1.1-py3-none-any.whl -
Subject digest:
58fe3798e102a4faf8ee609acb045b3da0b23366cfabc1d6a54e20a871f88ad8 - Sigstore transparency entry: 524168608
- Sigstore integration time:
-
Permalink:
majedlutfi96/genie-git@ea925d8e062c0d92cfb8ff361574624d31728dda -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/majedlutfi96
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea925d8e062c0d92cfb8ff361574624d31728dda -
Trigger Event:
release
-
Statement type: