Skip to main content

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 ⭐ the project!

Ollama provider can be slow without a good GPU or a very large AI model. It's not a Commify optimization problem.


✨ Features

  • AI-Powered Commit Messages: Generate concise and structured commit messages using the ollama local AI provider or G4F AI 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.10+ and ollama (ollama is optional) Run the following:

pip install Commify

Linux

Make sure you have installed Git, python3.10+, 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 (True or False, default: True).
  • --model: AI model to use for generating messages (default: llama3.1). (required)
  • --help: Display all available parameters and their descriptions.
  • --version: Display the installed Commify version.

💡 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).

Commify Providers

Commify currently supports only 2 providers:

  • ollama: Ollama is an open-source project that serves as a powerful and user-friendly platform for running LLMs on your local machine.
  • gpt4free: gpt4free is an AI-Based Software Package that Reverse-Engineers APIs to Grant Anyone Free Access to Popular and powerful AI Models.

Feel free to submit a pull request or open an issue to add more providers!


🧩 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

Let us know if it runs on your machine too!


💻 Developer Information

Commify is developed and maintained by Matuco19.


📑 License

License-MATCO Open Source V1

This project is open-source and available under the MATCO-Open-Source License. See the LICENSE file for details.

Apache License 2.0


👋 Contributions

Contributions are welcome! Feel free to open an issue or submit a pull request on GitHub.


Start making commits with Commify today! :tada:

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

commify-1.4.5.1.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

Commify-1.4.5.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file commify-1.4.5.1.tar.gz.

File metadata

  • Download URL: commify-1.4.5.1.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for commify-1.4.5.1.tar.gz
Algorithm Hash digest
SHA256 47fb586120884ef1e7bf6e6d34ebf5cab7898077598ba94ccfafc61fe75f1a68
MD5 9bc5d956bdcc7736df0a98611a1f9093
BLAKE2b-256 51a2e08dd6a115ab459377a43cc7392bf5dc37128eb1e5f066bfdfc5a88261f3

See more details on using hashes here.

File details

Details for the file Commify-1.4.5.1-py3-none-any.whl.

File metadata

  • Download URL: Commify-1.4.5.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for Commify-1.4.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d561406faba5e3ad26aa315a83adf73cbc2f21535dd9931ed3867346c6a222f
MD5 fcfbc5b6fc44b8104867e14231b3b048
BLAKE2b-256 6fe2583f3593cb0837e7b37870cec3d86778aa26afe10d80257d201e6cec60fc

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