Use AI to generate commit message for your staged changes.
- Use local models (via Ollama) or remote models (with OpenAI API compatible providers like:
openai
,groq
,gemini
,togetherai
,deepseek
,qwen
) or your custom provider. - Regenerate commit messages until you find the perfect one
- In-place editing of generated commit
- Define your custom commit message format
- Simple CLI interface with debug mode
pip install ai-gen-commit
In any git directory with staged changes, run:
aic
aic -d
aic -m <model-name>
aic -m "llama3.2:3b"
# OR
export OLLAMA_MODEL="llama3.2:3b"
To run in remote mode, export your API keys as:
export OPENAI_API_KEY=<your-api-key>
Specify which remote provider to use:
export AI_COMMIT_PROVIDER="gemini" or "openai" or "togetherai" or "groq" or "deepseek"
then enable remote mode:
aic -r
Specify the model to use based on the provider:
export AI_COMMIT_PROVIDER="groq"
export AI_COMMIT_MODEL="qwen-2.5-32b" # pass the model as env var
aic -r
# ---
export AI_COMMIT_PROVIDER="openai"
aic -r -m "gpt-4o-2024-11-20" # pass the model as flag
# ---
export AI_COMMIT_PROVIDER="gemini"
aic -r -m "gemini-1.5-flash"
You can use any OPENAPI compatible provider/server for commit generation.
export AI_COMMIT_PROVIDER=custom # should be set to custom
export AI_COMMIT_MODEL=llama3.2:3b # example
export AI_COMMIT_PROVIDER_BASE_URL=http://localhost:11434/v1 # example
export OPENAI_API_KEY=<your-api-key> # if your custom provider requires one
Set your editor environment variable:
export EDITOR=vim
export EDITOR=nvim
# For VSCode
export EDITOR='code --wait'
After commit message is generated, press e
to edit using the defined $EDITOR
.
Defaults to using vi
.
Users can generate commit messages based on the format and instructions defined in the system prompt.
To define system prompt on project level
- Create a
.ai-commit
file in your git repository's root directory (same location as the.git
folder) - Add your system prompt to this file
To define a global system prompt
- Create a file on
~/.$HOME/.ai-commit
- Add your system prompt to this file
| Project-level System Prompt > Global System Prompt > Built-in system prompt.
aic -h
make setup