This CLI utility automatically creates meaningful git commit messages using local models via ollama/Mistral AI API based on the output of git status
and git diff
commands. It is implemented as a single file for easy conversion into an executable.
- Automatically generates meaningful commit messages in Russian
- Interactive confirmation before creating a commit
- Works with both existing and new Git repositories
- Uses local models/Mistral AI API to generate commit messages based on repository changes
- Git installed on your system
- Mistral API key (for using Mistral AI API)
- Ollama installed on your system (for using local models)
To get a key, go to the Mistral console website Mistral and create an API key. You need a Mistral account to do this.
To install ollama, go to the Ollama website and choose the method suitable for your system.
Install the latest release from PyPI:
# Windows
pip install commit_maker
# Linux/MacOS
pip3 install commit_maker
When installing from source, use the -e
flag to always have the latest version of the utility after git pull
without reinstallation!
git clone https://github.com/Sashayerty/commit_maker
cd ./commit_maker
# Windows
pip install -r requirements.txt
# Linux/MacOS
pip3 install -r requirements.txt
After installing the utility, you must add the MISTRAL_API_KEY
environment variable.
- Open Command Prompt as Administrator
- Set the Mistral API key:
setx MISTRAL_API_KEY "your_api_key_here"
- Restart your terminal/IDE to apply the changes
- Open the terminal
- Add to your shell configuration file (
~/.bashrc
,~/.zshrc
, or~/.bash_profile
):export MISTRAL_API_KEY="your_api_key_here"
- Reload the configuration:
source ~/.bashrc # or whichever file you edited
commit_maker [OPTION] [VALUE]
-h, --help - display help
-l, --local-models - use local models
-m, --max-symbols - limit the length of the commit message
-M, --model - specify which local model to use (with -l)
-d, --dry-run - display the message based on staged changes without creating a commit
-t, --temperature - model temperature when creating the message
-e, --exclude - files to ignore when creating the commit message
-w, --wish - wishes/edits for the message
--version - show version
- Use local models, limit commit message length to 300 characters, use qwen2.5:12b
commit_maker -l -m 300 -M qwen2.5:12b
- Use Mistral, temperature 1.3, dry run
commit_maker -t 1.3 -d
- Local models, interactive model selection
commit_maker -l
- Local models, message length 100 characters, ignore
uv.lock
, wish "Mention the README.md change"commit_maker -l -m 100 -e "./uv.lock" -w "Mention the README.md change"
- To view all possible script execution options, add the
--help
flag - The script will show the generated commit message before creating it
- You can regenerate the message by pressing
r
when prompted for confirmation - By default, messages are generated in Russian (can be changed in the script)
Commit Maker is licensed under MIT