Commify: You Should Commit Yourself.
Project description
Commify
Commify is a command-line interface (CLI) tool that generates meaningful, structured commit messages for Git repositories using AI. By analyzing the staged changes (diff) in your repository, it creates commit messages that follow conventional commit guidelines, optionally including emojis for better context and readability. See Commify website to know more. Don't forget to :star: the project!
Ollama provider can be slow without a good GPU or a very large AI model.
Features
- AI-Powered Commit Messages: Generate concise and structured commit messages using the
ollamalocal AI provider orG4FAI provider. - Emoji Support: Optionally include relevant emojis in commit messages.
- Language Support: Generate commit messages in the language of your choice.
- Customizable Providers: Specify the AI provider to use (g4f or ollama).
- Interactive Review System: Review and approve generated messages or request new ones.
- Customizable Models: Specify the AI model to use.
Installation
Windows
Make sure you have installed Git, python3.8+ and ollama (ollama is optional)
Run the following:
pip install Commify
Linux
Make sure you have installed Git, python3.8+, pipx and ollama (ollama is optional)
If don't, use this command:
sudo apt install git
sudo apt install pipx
And install Commify:
pipx install Commify
pipx ensurepath
After that, restart your terminal and you will already have Commify installed.
Usage
Run the commify CLI with the desired options:
commify <path_to_repo> [--lang <language>] [--emoji <True/False>] [--model <AI_model>] [--provider <AI_PROVIDER>]
Examples
Using Ollama Provider:
commify /path/to/repo --lang english --emoji True --model llama3.1 --provider ollama
Using G4F Provider:
commify /path/to/repo --lang english --emoji True --model gpt-4o --provider g4f
Without Specifying The Repository Path:
cd /path/to/repo
commify --lang english --emoji True --model llama3.1 --provider ollama
Arguments
path: Path to the Git repository. (If the repository path is not specified, the path Commify is running from will be used)--lang: Language for the commit message (default:english).--provider: AI provider to use for generating messages (default:ollama). (required)--emoji: Include emojis in the commit message (TrueorFalse, default:True).--model: AI model to use for generating messages (default:llama3.1). (required)--help: Display all available parameters and their descriptions.
Features in Detail
Commit Message Review
Once a message is generated, you'll be prompted to:
- Accept the message (
y). - Reject the message will be generated again (
n). - Cancel the message (
c).
Testing Information
Confirmed successful runs (with no errors) on the following:
-
OS:
- Windows11
- Windows10
- Ubuntu24.04.1LTS
- Linux Mint 22
-
Python:
- Python 3.11.9
- Python 3.12.3
-
AI Models:
- llama3.2-vision
Ollama - llama3.1
Ollama - dolphin-llama3
Ollama - gpt-4o
G4F - gpt-4o-mini
G4F
- llama3.2-vision
Let us know if it runs on your machine too!
Developer Information
Commify is developed and maintained by Matuco19.
- Matuco19 Website: matuco19.com
- GitHub: github.com/Matuco19
- Discord Server: discord.gg/Matuco19Server0
License
This project is open-source and available under the MATCO-Open-Source License. See the LICENSE file for details.
Contributions
Contributions are welcome! Feel free to open an issue or submit a pull request on GitHub.
Start making commits with Commify today! 🎉
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file commify-1.4.2.tar.gz.
File metadata
- Download URL: commify-1.4.2.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43bee7869c89073305749ed1da959849a144c49c263fd0397dfc96d048c2958c
|
|
| MD5 |
cee0b7e65fa70d750be8214d52ce7a31
|
|
| BLAKE2b-256 |
e06993d0ae4d8802a82984cdd7b8da28d9002ee3c25a2ca92c68328cb2afde5d
|
File details
Details for the file Commify-1.4.2-py3-none-any.whl.
File metadata
- Download URL: Commify-1.4.2-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e7d2c8c80d1672b81d5aec053e0f2abd68ff9229efd9a4a82703fc4b89ef76b
|
|
| MD5 |
85044ef938ab3864b3aa224a4394d43f
|
|
| BLAKE2b-256 |
c042f6360a2885c7a08182c66ae0c8a648a1b074fe176a244219cedc42cd74f9
|