A tool for streamlined commit messaging using AI
Project description
Cactus: AI-Powered Commit Message Generator
Cactus is an command-line tool that leverages AI to automate and enhance the process of creating Git commit messages. By analyzing staged changes, Cactus Automates Commits Through Uncomplicated Suggestions.
Demo
https://github.com/user-attachments/assets/bb3553db-78d5-42b1-888c-9e9e6a4edb77
Features
- AI-Powered Commit Generation: Utilizes OpenAI's GPT models or Google's Gemini models to analyze code changes and generate appropriate commit messages.
- Customizable Commit Grouping: Allows specifying the number of commits to generate, intelligently grouping related changes.
- Interactive Changelog Creation: Generates comprehensive changelogs between specified Git commits.
- Multi-Model Support: Compatible with various AI models, including GPT-3.5, GPT-4, and Gemini.
- Conventional Commits: Adheres to the Conventional Commits standard for consistent, readable commit histories.
Installation
Install Cactus using pip:
$ pip install cactus-commit
Set up your API key(s):
$ cactus setup OpenAI # For OpenAI API
# or
$ cactus setup Gemini # For Google Gemini API
Usage
Generate Commit Messages
Add the files you want to create commits for to the staging area:
$ git add myfile1.py myfile2.py
Anything left unstaged will be ignored when generating commit messages.
Run cactus
to generate commit messages:
$ cactus
If you want to force a specific number of commits, pass the number as an argument:
cactus 3 # Will generate 3 commits
Create a Changelog
cactus changelog [SHA] [-p PATHSPEC]
SHA
: The starting commit hash for the changelog.
Additional Options
-d, --debug
: Enable debug logging.-c, --context-size
: Set the context size for git diff (default: 1).-m, --model
: Specify the AI model to use (e.g., "gpt-4", "gemini-1.5-pro").
How It Works
- Cactus analyzes staged Git changes.
- It uses AI to understand the context and significance of the changes.
- Based on the analysis, it generates commit messages or changelogs.
- Users can interactively accept, regenerate, or adjust the number of commits.
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
Built Distribution
File details
Details for the file cactus_commit-4.4.0.tar.gz
.
File metadata
- Download URL: cactus_commit-4.4.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bba4f5b741ca5023fd0fb9d57f7babd27e9a5e007b011dd1f1dc3dd3bac9cdf6 |
|
MD5 | 2f82b3bb804bef979128aa784980bae5 |
|
BLAKE2b-256 | 267598f5e5c99c35957d6e19b47d4a479501d2927db0d351b6cb5d83d35e4741 |
File details
Details for the file cactus_commit-4.4.0-py3-none-any.whl
.
File metadata
- Download URL: cactus_commit-4.4.0-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da2bf75a702ecaf0dbc06b97d46b3c1cae21811d84a56e978df4a54f3c21366b |
|
MD5 | 44a1de85cf3050bed09d70d99f37d591 |
|
BLAKE2b-256 | dd9b717d0898a4456d963ba4680995ec6b29b63b6cf4ce06cf525c919d15bb64 |