An intelligent Git commit assistant that not only generates commit messages, but also automatically analyzes and splits your code changes into multiple well-organized commits following best practices.
Project description
AI Commit (aicmt)
An AI-powered Git commit assistant that not only generates commit messages, but also automatically analyzes and splits your code changes into multiple well-organized commits following best practices.
Features
- Intelligent Change Splitting: Unlike traditional commit message generators, aicmt analyzes your code changes and automatically splits them into logical, focused commits following Git best practices
- Flexible Control: You can let AI decide the optimal number of commits, or specify exactly how many commits you want
- Focus on Coding: Make all your changes freely, and let AI handle the commit organization - no need to worry about making perfect atomic commits while coding
Installation
Use pip to install (Python >=3.10)
pip install aicmt
or use brew to install
brew install versun/tap/aicmt
Quick Start
- Create configuration file
.aicmtrc
Reference the template file .aicmtrc.templateand create.aicmtrc` in your home directory.
cp .aicmtrc.template ~/.aicmtrc
You can also create .aicmtrc in the current directory, which will override the global configuration file (~/.aicmtrc)
cd /path/to/git/repo
touch .aicmtrc
-
Add OpenAI API and other information in the configuration file.
-
Enter your git repository directory and run the
aicmtcommand to automatically analyze changes and generate commit messages.
Help
$ aicmt -h
usage: aicmt [-h] [-v] [-n N]
<<< AICMT (AI Commit) - AI-powered Git commit assistant >>>
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-n, --num-commits N Number of commits to generate (default: AI decides)
Development
- Clone the repository:
git clone https://github.com/versun/aicmt.git
- Install dependencies:
cd aicmt
pip install ".[dev]"
Having Issues?
All code in this project is AI-generated, so if you encounter any problems, please first try asking AI for solutions (preferably using the claude-3.5-sonnet model). If the issue persists, please submit an issue, and I will consult AI to resolve it.
Contributing
Pull requests are welcome!
A Big Thank You to My Sponsors
I am deeply grateful to my amazing supporters and sponsors who have made my open source journey possible.
Become a Sponser on Github / 爱发电 / 微信
Star History
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 aicmt-0.0.3.tar.gz.
File metadata
- Download URL: aicmt-0.0.3.tar.gz
- Upload date:
- Size: 22.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61c59a0f2bf5fdb0a9216da3f571872dd498815ee2b4a9275cafce3a495e5a47
|
|
| MD5 |
975e15a8c69bd42968d4c78a80cd2d9f
|
|
| BLAKE2b-256 |
bc7adba43b6e381d1ab756b98bd669485baf8827a8dce27956fcde4e047c6ccd
|
Provenance
The following attestation bundles were made for aicmt-0.0.3.tar.gz:
Publisher:
publish.yml on versun/aicmt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aicmt-0.0.3.tar.gz -
Subject digest:
61c59a0f2bf5fdb0a9216da3f571872dd498815ee2b4a9275cafce3a495e5a47 - Sigstore transparency entry: 156770108
- Sigstore integration time:
-
Permalink:
versun/aicmt@8316f1e992ac1e97768d914a1c0b5c04241809ec -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/versun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8316f1e992ac1e97768d914a1c0b5c04241809ec -
Trigger Event:
release
-
Statement type:
File details
Details for the file aicmt-0.0.3-py3-none-any.whl.
File metadata
- Download URL: aicmt-0.0.3-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ea9468a46201eec63b444cfe55344808baaa9dc7cc0d01814c7cc7f691b7139
|
|
| MD5 |
0d8859326bea3bee66a650823f9259a0
|
|
| BLAKE2b-256 |
2c66d87862b7131bbd403e603cfd9e12802e529f2fe81bd49e5d150b9e0ddd4d
|
Provenance
The following attestation bundles were made for aicmt-0.0.3-py3-none-any.whl:
Publisher:
publish.yml on versun/aicmt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aicmt-0.0.3-py3-none-any.whl -
Subject digest:
2ea9468a46201eec63b444cfe55344808baaa9dc7cc0d01814c7cc7f691b7139 - Sigstore transparency entry: 156770110
- Sigstore integration time:
-
Permalink:
versun/aicmt@8316f1e992ac1e97768d914a1c0b5c04241809ec -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/versun
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8316f1e992ac1e97768d914a1c0b5c04241809ec -
Trigger Event:
release
-
Statement type: