Skip to main content

A CLI tool to generate commit messages using AI models

Project description

Git Commit Message Generator with AI

中文文档

PyPI version License: MIT Python 3.7+

A CLI tool that generates commit messages using AI models based on your git repository changes.

Features

  • 🤖 Wide Model Support:
    • OpenAI
    • Anthropic
    • Google
    • 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

  1. Initialize with your preferred model and API key:
acmt init
  1. Stage your changes and generate commit message:
git add .
acmt commit
  1. 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:

  1. Project-level .env file (highest priority)
ACMT_API_KEY=your_api_key
ACMT_API_BASE=your_api_base
ACMT_MODEL=your_model
ACMT_PROMPT=your_prompt
  1. 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
  1. 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

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

acmt-0.3.1.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

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

acmt-0.3.1-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file acmt-0.3.1.tar.gz.

File metadata

  • Download URL: acmt-0.3.1.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for acmt-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f606d7387161872c6c44fafc1fd248e74ce6ea50629089437620af52692b4802
MD5 1564077e3c6a2a6dc4a6cb101a91a339
BLAKE2b-256 a9c54f85fc3790e2f959427297d5d2dfd1a4a6f6a37ae142a4161a14a640db0b

See more details on using hashes here.

File details

Details for the file acmt-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: acmt-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for acmt-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 23034e2ec581b9e9ffc29e30fac8c372e81e95c1d20622a124039705b073532d
MD5 772fcc810d731da2a89523d1b7f5785c
BLAKE2b-256 c8113414c2353409f81c133b3268dff303f788e05cbda4eef09305ffeb6f067b

See more details on using hashes here.

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