Git Commit Message Generator with AI
A CLI tool that generates commit messages using AI models based on your git repository changes.
Features
- 🤖 Wide Model Support:
- OpenAI
- Anthropic
- DeepSeek
- Aliyun
- iFlytek
- Zhipu
- Baidu
- Moonshot
- Tencent
- ByteDance
- Replicate
- Together AI
- 🔧 Custom API base
- 🔧 Custom Model Integration
- 📝 Conventional Commits Format
- 🎯 Customizable Prompt Templates
- 🔑 Secure Configuration Management
Installation
Using pipx (Recommended)
# Install pipx if you haven't
brew install pipx
pipx ensurepath
# Install acmt
pipx install acmt
# Upgrade acmt
pipx upgrade acmt
Using pip
pip install acmt
Quick Start
- Initialize with your preferred model and API key:
acmt init
- Stage your changes and generate commit message:
git add .
acmt commit
- Get help or version information:
# Show version
acmt --version
# Show all available commands
acmt --help
# Show help for a specific command
acmt model --help
acmt commit --help
# Show current configuration
acmt current
Configuration
Configure acmt in order of priority:
- Project-level
.envfile (highest priority)
ACMT_API_KEY=your_api_key
ACMT_API_BASE=your_api_base
ACMT_MODEL=your_model
ACMT_PROMPT=your_prompt
- Environment variables(Secondary priority)
export ACMT_API_KEY=your_api_key
export ACMT_API_BASE=your_api_base
export ACMT_MODEL=your_model
export ACMT_PROMPT=your_prompt
- Global configuration via
acmt init(lowest priority, default)
acmt init
# Creates ~/.config/acmt/config.json with default settings:
# - model: your_model
# - api_base: your_api_base
# - api_key: your_api_key
# - prompt: default prompt template
# - custom_models: custom model list
Model Management
# List available models
acmt model list
# Add custom model
acmt model add my-model https://api.example.com/v1
# Remove custom model
acmt model remove my-model
Prompt Management
# Customize commit message prompt template
acmt prompt
# Reset to default prompt template
acmt reset-prompt
Default prompt template:
Based on the following git diff, generate a concise and descriptive commit message that follows conventional commits format.
Focus on the "what" and "why" of the changes.
Start with a type (feat, fix, docs, style, refactor, perf, test, build, ci, chore).
Do not include scope.
Limit the first line to 72 characters.
Add a blank line followed by a more detailed description if necessary.
The default prompt template guides the AI to:
- Follow conventional commits format
- Focus on the "what" and "why" of changes
- Keep the first line under 72 characters
- Add detailed description when necessary
Default API Providers
- OpenAI:
https://api.openai.com/v1 - Anthropic:
https://api.anthropic.com/v1 - Google:
https://generativelanguage.googleapis.com/v1 - DeepSeek:
https://api.deepseek.com/v1 - Aliyun:
https://dashscope.aliyuncs.com/api/v1 - iFlytek:
https://spark-api.xf-yun.com/v3.1 - Zhipu:
https://open.bigmodel.cn/api/v1 - Baidu:
https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop - Moonshot:
https://api.moonshot.cn/v1 - Tencent:
https://hunyuan.cloud.tencent.com/hyllm/v1 - ByteDance:
https://api.doubao.com/v1 - Replicate:
https://api.replicate.com/v1 - Together AI:
https://api.together.xyz/v1
License
MIT
Metadata
Release files for acmt 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| acmt-0.3.1.tar.gz | 13.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acmt-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.8 kB
Release files / acmt-0.3.1.tar.gz
| Download URL | acmt-0.3.1.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f606d7387161872c6c44fafc1fd248e74ce6ea50629089437620af52692b4802
|
|
BLAKE2b-256 checksum How to use checksums |
a9c54f85fc3790e2f959427297d5d2dfd1a4a6f6a37ae142a4161a14a640db0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / acmt-0.3.1-py3-none-any.whl
| Download URL | acmt-0.3.1-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
23034e2ec581b9e9ffc29e30fac8c372e81e95c1d20622a124039705b073532d
|
|
BLAKE2b-256 checksum How to use checksums |
c8113414c2353409f81c133b3268dff303f788e05cbda4eef09305ffeb6f067b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Security for acmt 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.