{"id":22549043,"url":"https://github.com/matuco19/commify","last_synced_at":"2025-04-09T17:41:38.268Z","repository":{"id":266879193,"uuid":"899136734","full_name":"Matuco19/Commify","owner":"Matuco19","description":"Commify: You Should Commit Yourself. Commify is a CLI tool that generates meaningful, structured commit messages for Git repositories using AI.","archived":false,"fork":false,"pushed_at":"2025-03-16T15:01:03.000Z","size":193,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T19:44:38.786Z","etag":null,"topics":["ai","automation","cli","cli-app","commify","commit","deepseek-r1","g4f","git","gpt","gpt-4free","groq","matuco19","ollama","openai","python3"],"latest_commit_sha":null,"homepage":"https://matuco19.com/Commify","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Matuco19.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":"Matuco19","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"matuco19dev","thanks_dev":null,"custom":null}},"created_at":"2024-12-05T17:30:13.000Z","updated_at":"2025-03-16T15:01:06.000Z","dependencies_parsed_at":"2024-12-06T18:39:21.012Z","dependency_job_id":null,"html_url":"https://github.com/Matuco19/Commify","commit_stats":null,"previous_names":["matuco19/commify"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matuco19%2FCommify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matuco19%2FCommify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matuco19%2FCommify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matuco19%2FCommify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Matuco19","download_url":"https://codeload.github.com/Matuco19/Commify/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248079358,"owners_count":21044296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","automation","cli","cli-app","commify","commit","deepseek-r1","g4f","git","gpt","gpt-4free","groq","matuco19","ollama","openai","python3"],"created_at":"2024-12-07T16:07:41.120Z","updated_at":"2025-04-09T17:41:38.253Z","avatar_url":"https://github.com/Matuco19.png","language":"Python","funding_links":["https://patreon.com/Matuco19","https://buymeacoffee.com/matuco19dev"],"categories":[],"sub_categories":[],"readme":"# Commify\n\nCommify 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. \u003c!--See [Commify](https://matuco19.com/Commify) website to know more. --\u003e Don't forget to ⭐ the project!\n\n\u003e[!Caution]\n\u003eOllama provider can be slow without a good GPU or a very large AI model. It's not a Commify optimization problem.  \n\n\u003c!-- space --\u003e\n\u003e [!NOTE]\n\u003e \u003csup\u003e**Latest version:**\u003c/sup\u003e [![PyPI version](https://img.shields.io/pypi/v/Commify?color=blue)](https://pypi.org/project/Commify)  \n\u003e \u003csup\u003e**Stats:**\u003c/sup\u003e [![Downloads](https://static.pepy.tech/badge/Commify)](https://pepy.tech/project/Commify) [![Downloads](https://static.pepy.tech/badge/Commify/month)](https://pepy.tech/project/Commify)  \n\n---\n\n## 📚 Table of Contents\n\n- [Commify](#commify)\n  - [📚 Table of Contents](#-table-of-contents)\n  - [✨ Features](#-features)\n  - [🛠️ Installation](#️-installation)\n    - [Windows](#windows)\n    - [Linux](#linux)\n  - [🏗️ Usage](#️-usage)\n    - [Examples](#examples)\n      - [Basic Usage](#basic-usage)\n    - [Arguments](#arguments)\n  - [💡 Features in Detail](#-features-in-detail)\n    - [Commit Message Review](#commit-message-review)\n    - [Commify Providers](#commify-providers)\n    - [Apikey Saving](#apikey-saving)\n      - [Saving an API Key](#saving-an-api-key)\n      - [Modifying an API Key](#modifying-an-api-key)\n      - [Using a Temporary API Key](#using-a-temporary-api-key)\n  - [🧩 Testing Information](#-testing-information)\n  - [💻 Developer Information](#-developer-information)\n  - [📑 License](#-license)\n  - [👋 Contributions](#-contributions)\n\n---\n\n## ✨ Features\n\n- **AI-Powered Commit Messages:** Generate concise and structured commit messages using the `ollama` local AI provider, `G4F` AI provider, `Pollinations.ai` AI provider or `Openai` AI provider (Openai provider requires an apikey).\n- **Emoji Support:** Optionally include relevant emojis in commit messages.\n- **Language Support:** Generate commit messages in the language of your choice.\n- **Customizable Providers:** Specify the AI provider to use (g4f, ollama or openai).\n- **Interactive Review System:** Review and approve generated messages or request new ones.\n- **Customizable Models:** Specify the AI model to use.\n\n---\n\n## 🛠️ Installation\n\n### Windows\n\nMake sure you have installed `Git`, `python3.10+` and `ollama` (ollama is optional)\nRun the following:\n\n```bash\npip install Commify\n```\n\n### Linux\n\nMake sure you have installed `Git`, `python3.10+`, `pipx` and `ollama` (ollama is optional)\nIf you don't, use this command:\n\n```bash\nsudo apt install git\nsudo apt install pipx\n```\n\nAnd install Commify:\n\n```bash\npipx install Commify\npipx ensurepath\n```\n\nAfter that, restart your terminal and you will already have Commify installed.\n\n---\n\n## 🏗️ Usage\n\nSee the [Commify Documentation](https://github.com/Matuco19/Commify/blob/main/docs/) to see more example usage, milestones, and others.\n\nRun the `commify` CLI with the desired options:\n\n```bash\ncommify \u003cpath_to_repo\u003e [--lang \u003clanguage\u003e] [--emoji \u003cTrue/False\u003e] [--model \u003cAI_model\u003e] [--provider \u003cAI_PROVIDER\u003e] [--apikey \u003cAPI_KEY\u003e]\n```\n\n### Examples\n\n#### Basic Usage\n\nCommify supports multiple AI providers, from locally run (Ollama) to cloud-based (Groq, G4F \u0026 Openai)\n\n\u003e[!NOTE]\n\u003eSee more example usage in documentation [docs/example-usage](https://github.com/Matuco19/Commify/blob/main/docs/example-usage.md)\n\nUsing Ollama Provider:\n\n```bash\ncommify /path/to/repo --lang english --emoji True --model llama3.1 --provider ollama\n```\n\nUsing G4F Provider:\n\n```bash\ncommify /path/to/repo --lang english --emoji True --model gpt-4o --provider g4f\n```\n\nUsing Openai Provider:\n\n```bash\ncommify /path/to/repo --lang english --emoji True --model gpt-4o --provider openai\n```\n\nUsing Groq Provider:\n\n```bash\ncommify /path/to/repo --lang english --emoji True --model llama-3.3-70b-versatile --provider groq\n```\n\nUsing Pollinations.ai Provider:\n\n```bash\ncommify /path/to/repo --lang english --emoji True --model openai-large --provider pollinations\n```\n\n\u003e[!NOTE]\n\u003e All pollinations models can be found [here](https://text.pollinations.ai/models)\n\nWithout Specifying The Repository Path:\n\n```bash\ncd /path/to/repo\ncommify --lang english --emoji True --model llama3.1 --provider ollama\n```\n\n### Arguments\n\n- **`path`:** Path to the Git repository. (If the repository path is not specified, the path Commify is running from will be used)\n- **`--lang`:** Language for the commit message (default: `english`).\n- **`--provider`:** AI provider to use for generating messages (default: `ollama`). (required)\n- **`--emoji`:** Include emojis in the commit message (`True` or `False`, default: `True`).\n- **`--model`:** AI model to use for generating messages (default: `llama3.1`). (required)\n- **`--help`:** Display all available parameters and their descriptions.\n- **`--version`:** Display the installed Commify version.\n- **`--debug`:** Run Commify in Debug Mode. (It is not recommended if you don't know what you are doing.)\n- **`--apikey`:** A temporary apikey use for Openai or Groq API key to use (default: `sk-`).  \n- **`--save-apikey`:** Save API key for a provider. Ex: --save-apikey openai sk-...  \n- **`--mod-apikey`:** Modify API key for a provider. Ex: --mod-apikey groq gsk-...  \n\n---\n\n## 💡 Features in Detail\n\n### Commit Message Review\n\nOnce a message is generated, you'll be prompted to:\n\n- **Accept** the message (`y`).\n- **Reject** the message will be generated again (`n`).\n- **Cancel** the message (`c`).\n\n### Commify Providers\n\nCommify currently supports only5 providers:\n\n- [ollama](https://ollama.com/): ollama is an open-source project that serves as a powerful and user-friendly platform for running LLMs on your local machine.\n- [gpt4free](https://github.com/xtekky/gpt4free): gpt4free is an AI-Based Software Package that Reverse-Engineers APIs to Grant Anyone Free Access to Popular and powerful AI Models.\n- [openai](https://platform.openai.com/): openAI is a cutting-edge research organization that works to push the limits of artificial intelligence in a variety of domains.\n- [groq](https://groq.com): Groq is an extremely fast AI response engine that can write factual and quoted responses in hundreds of words in less than a second.\n- [pollinations.ai](https://pollinations.ai): Pollinations.AI is an open-source gen AI startup based in Berlin, providing the most easy-to-use, free text and image generation API available. No signups or API keys required.\n\nFeel free to submit a pull request or open an issue to add more providers!\n\n### Apikey Saving\n\nCommify allows you to save and modify API keys for certain providers (`openai` and `groq`). This can be useful if you frequently use these providers and want to avoid entering the API key each time you run Commify.\n\n#### Saving an API Key\n\nTo save an API key for a provider, use the `--save-apikey` option followed by the provider name and the API key. For example:\n\n```bash\ncommify --save-apikey openai sk-...\n```\n\nThis will save the API key for the openai provider. You can also save an API key for the groq provider:\n\n```bash\ncommify --save-apikey groq gsk-...\n```\n\nThe saved API key will be stored in a file located at `~/.commify_env` and will be automatically used in future Commify runs.\n\n#### Modifying an API Key\n\nIf you need to update an existing API key, use the `--mod-apikey` option followed by the provider name and the new API key. For example:\n\n```bash\ncommify --mod-apikey openai sk-...\n```\n\nThis will update the saved API key for the openai provider. Similarly, you can update the API key for the groq provider:\n\n```bash\ncommify --mod-apikey groq gsk-...\n```\n\n#### Using a Temporary API Key\n\nIf you prefer not to save the API key, you can provide it directly when running Commify using the `--apikey` option. For example:\n\n```bash\ncommify /path/to/repo --provider openai --apikey sk-...\n```\n\nThis will use the provided API key for the current run without saving it.\n\nFeel free to submit a pull request or open an issue if you have any suggestions or improvements for this feature!\n\n---\n\n## 🧩 Testing Information\n\nConfirmed successful runs (with no errors) on the following:\n\n- **OS:**\n  - Windows 11\n  - Windows 10\n  - Ubuntu24.04.1 LTS\n  - Linux Mint 22\n\n- **Python:**\n  - Python 3.11.9\n  - Python 3.12.3\n\n- **AI Models:**\n  - llama3.2-vision `Ollama`\n  - llama3.1 `Ollama`\n  - dolphin-llama3 `Ollama`\n  - gpt-4o `G4F`\n  - gpt-4o-mini `G4F`\n  - deepseek-r1 `Ollama`\n  - Phi3.5 `Ollama`\n  - llama-3.3-70b-versatile `Groq`\n  - deepseek-r1-distill-llama-70b `Groq`\n  - openai-large (gpt-4o) `Pollinations`\n  - openai-reasoning (openai o3-mini) `Pollinations`\n\nLet us know if it runs on your machine too!\n\n---\n\n## 💻 Developer Information\n\nCommify is developed and maintained by **Matuco19**.\n\n- Matuco19 Website: [matuco19.com](https://matuco19.com)  \n- GitHub: [github.com/Matuco19](https://github.com/Matuco19)\n- Discord Server: [discord.gg/Matuco19Server0](https://discord.gg/hp7yCxHJBw)\n\n---\n\n## 📑 License\n\n![License-MATCO Open Source V1](https://img.shields.io/badge/License-MATCO_Open_Source_V1-blue.svg)\n\nThis project is open-source and available under the [MATCO-Open-Source License](https://matuco19.com/licenses/MATCO-Open-Source). See the `LICENSE` file for details.\n\n---\n\n## 👋 Contributions\n\nContributions are welcome! Feel free to open an issue or submit a pull request on [GitHub](https://github.com/Matuco19/commify).\n\n---\n\nStart making commits with **Commify** today! 🎉\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatuco19%2Fcommify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatuco19%2Fcommify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatuco19%2Fcommify/lists"}