[English](./README.md) | [中文](./README_CN.md)
# 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.
[![aicmt](https://asciinema.org/a/695352.svg)](https://asciinema.org/a/695352/?autoplay=1)
## 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)
```bash
pip install aicmt
```
or use brew to install
```bash
brew install versun/tap/aicmt
```
## Quick Start
1. Create configuration file `.aicmtrc`
Reference the template file [`.aicmtrc.template`](./.aicmtrc.template) and create `.aicmtrc` in your home directory.
```bash
cp .aicmtrc.template ~/.aicmtrc
```
You can also create `.aicmtrc` in the current directory, which will override the global configuration file (~/.aicmtrc)
```bash
cd /path/to/git/repo
touch .aicmtrc
```
2. Add OpenAI API and other information in the configuration file.
3. Enter your git repository directory and run the `aicmt` command to automatically analyze changes and generate commit messages.
## Help
```bash
$ 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
1. Clone the repository:
```bash
git clone https://github.com/versun/aicmt.git
```
2. Install dependencies:
```bash
cd aicmt
pip install -e ".[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!
Please submit an issue before submitting a pull request, to avoid duplicate submissions.
## 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.
<p align="center">
<a href="https://github.com/versun/sponsors/">
<img src='https://raw.githubusercontent.com/versun/sponsors/main/sponsors.svg'/>
</a>
</p>
Become a Sponser on [Github](https://github.com/sponsors/versun) / [爱发电](https://afdian.com/@versun) / [微信](https://github.com/versun/sponsors/blob/b11431cb1302a4605f8e92447aaa061cbe704b68/wechat.jpg)
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=versun/aicmt&type=Date)](https://star-history.com/#versun/aicmt&Date)
Raw data
{
"_id": null,
"home_page": null,
"name": "aicmt",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Versun <aicmt@versun.me>",
"keywords": "ai, ai commit, ai git commit, aicmt, assistant, automated, change, code, commit, git, intelligence, intelligent, message",
"author": null,
"author_email": "Versun <aicmt@versun.me>",
"download_url": "https://files.pythonhosted.org/packages/9d/d4/8cf64e346de75f6bf4e92d0f39b8a97b76fb59ab830518b31e5b74f19b44/aicmt-0.1.0.tar.gz",
"platform": null,
"description": "[English](./README.md) | [\u4e2d\u6587](./README_CN.md)\n# AI Commit (aicmt)\n\nAn 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.\n\n[![aicmt](https://asciinema.org/a/695352.svg)](https://asciinema.org/a/695352/?autoplay=1)\n\n## Features\n\n- **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\n- **Flexible Control**: You can let AI decide the optimal number of commits, or specify exactly how many commits you want\n- **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\n\n## Installation\n\nUse pip to install (Python >=3.10)\n\n```bash\npip install aicmt\n```\nor use brew to install\n```bash\nbrew install versun/tap/aicmt\n```\n\n## Quick Start \n\n\n1. Create configuration file `.aicmtrc`\n\nReference the template file [`.aicmtrc.template`](./.aicmtrc.template) and create `.aicmtrc` in your home directory.\n```bash\ncp .aicmtrc.template ~/.aicmtrc\n```\nYou can also create `.aicmtrc` in the current directory, which will override the global configuration file (~/.aicmtrc)\n```bash\ncd /path/to/git/repo\ntouch .aicmtrc\n```\n\n2. Add OpenAI API and other information in the configuration file.\n\n3. Enter your git repository directory and run the `aicmt` command to automatically analyze changes and generate commit messages.\n\n## Help\n```bash\n$ aicmt -h\nusage: aicmt [-h] [-v] [-n N]\n\n<<< AICMT (AI Commit) - AI-powered Git commit assistant >>>\n\noptions:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n -n, --num-commits N Number of commits to generate (default: AI decides)\n```\n\n## Development\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/versun/aicmt.git\n```\n\n2. Install dependencies:\n```bash\ncd aicmt\npip install -e \".[dev]\"\n```\n\n## Having Issues?\nAll 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). \nIf the issue persists, please submit an issue, and I will consult AI to resolve it.\n\n## Contributing\n\nPull requests are welcome!\nPlease submit an issue before submitting a pull request, to avoid duplicate submissions.\n\n## A Big Thank You to My Sponsors\nI am deeply grateful to my amazing supporters and sponsors who have made my open source journey possible. \n<p align=\"center\">\n <a href=\"https://github.com/versun/sponsors/\">\n <img src='https://raw.githubusercontent.com/versun/sponsors/main/sponsors.svg'/>\n </a>\n</p>\n\nBecome a Sponser on [Github](https://github.com/sponsors/versun) / [\u7231\u53d1\u7535](https://afdian.com/@versun) / [\u5fae\u4fe1](https://github.com/versun/sponsors/blob/b11431cb1302a4605f8e92447aaa061cbe704b68/wechat.jpg)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=versun/aicmt&type=Date)](https://star-history.com/#versun/aicmt&Date)",
"bugtrack_url": null,
"license": "MIT License",
"summary": "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.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/versun/aicmt",
"Issues": "https://github.com/versun/aicmt/issues",
"Repository": "https://github.com/versun/aicmt.git"
},
"split_keywords": [
"ai",
" ai commit",
" ai git commit",
" aicmt",
" assistant",
" automated",
" change",
" code",
" commit",
" git",
" intelligence",
" intelligent",
" message"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0fc8ee1c31ebe85f30a3483317410f9010b765ef1928b7962304a778364a3a6a",
"md5": "ec1d310994eb13b940d37d73abaf7e44",
"sha256": "16a7c7bb36d03c491c2224282136cc8df0b84ff192a9704d4b813d5d105e3cbb"
},
"downloads": -1,
"filename": "aicmt-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ec1d310994eb13b940d37d73abaf7e44",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 17124,
"upload_time": "2024-12-22T07:55:32",
"upload_time_iso_8601": "2024-12-22T07:55:32.710365Z",
"url": "https://files.pythonhosted.org/packages/0f/c8/ee1c31ebe85f30a3483317410f9010b765ef1928b7962304a778364a3a6a/aicmt-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9dd48cf64e346de75f6bf4e92d0f39b8a97b76fb59ab830518b31e5b74f19b44",
"md5": "facd741b391953ed2541db6820b7f1ac",
"sha256": "4620e3f727aa1d7be1504758562e2884f811cbe354227f9bac756bf866f45baf"
},
"downloads": -1,
"filename": "aicmt-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "facd741b391953ed2541db6820b7f1ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 26000,
"upload_time": "2024-12-22T07:55:34",
"upload_time_iso_8601": "2024-12-22T07:55:34.276282Z",
"url": "https://files.pythonhosted.org/packages/9d/d4/8cf64e346de75f6bf4e92d0f39b8a97b76fb59ab830518b31e5b74f19b44/aicmt-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-22 07:55:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "versun",
"github_project": "aicmt",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "aicmt"
}