Skip to main content

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

English | 中文

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

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

  1. Create configuration file .aicmtrc

Reference the template file .aicmtrc.template and 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
  1. Add OpenAI API and other information in the configuration file.

  2. Enter your git repository directory and run the aicmt command 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

  1. Clone the repository:
git clone https://github.com/versun/aicmt.git
  1. Install dependencies:
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.

Become a Sponser on Github / 爱发电 / 微信

Star History

Star History Chart

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

aicmt-0.1.1.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

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

aicmt-0.1.1-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file aicmt-0.1.1.tar.gz.

File metadata

  • Download URL: aicmt-0.1.1.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for aicmt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0a03a80e5be2e5a0673e9a25a4c953d8f0935052870c736ba2ca8479223567e9
MD5 26aa61e9abfd5a81ea12da53dffd371a
BLAKE2b-256 60a631aff7e401fef9b86a81918c2d707705e83658fe976b9086442ceb8dc972

See more details on using hashes here.

Provenance

The following attestation bundles were made for aicmt-0.1.1.tar.gz:

Publisher: publish.yml on versun/aicmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aicmt-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aicmt-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for aicmt-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 935d576145b2be214d1a4ab04960b0565c92a985f66dc1ee8140b97ec2e030cc
MD5 719bd7775797b989106bfb102c3dd612
BLAKE2b-256 4ca947e2af3939277fa509d896f03ffd4db9725e48444e0007d777434c97a81c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aicmt-0.1.1-py3-none-any.whl:

Publisher: publish.yml on versun/aicmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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