A CLI tool that uses AI to generate meaningful commit messages by analyzing your git diff. Powered by OpenAI's GPT-4.
- 🤖 Generates commit messages using AI analysis of your code changes
- 🎯 Follows conventional commits format
- 🚀 Simple and easy to use CLI interface
- 🔄 Option to automatically stage changes
- ✅ Option to automatically commit with generated message
- 🐛 Debug mode for troubleshooting
- 🔒 Security check for sensitive information in changes
⚠️ Prevents commits containing sensitive data- 🔍 Code review between branches
https://github.com/user-attachments/assets/dbbc3815-0c27-4ff3-87fd-bd280f7b758e
Install globally using npm:
npm install -g @phungbaluan/commit-ai
After installation, run the setup to configure your OpenAI API key:
commit-ai --setup
# or use the shorter alias
cai --setup
You'll be prompted to enter your OpenAI API key. You can get one at: https://platform.openai.com/api-keys
# See suggested commit message for staged changes
commit-ai
# or
cai
# Review code differences between branches
commit-ai review <source-branch> <target-branch>
# or
cai r <source-branch> <target-branch>
# Stage all changes and see suggested message
commit-ai --stage
# or
cai -s
# Stage and commit automatically
commit-ai --stage --commit
# or
cai -sc
# See debug information
commit-ai --debug
# or
cai -d
# Update your OpenAI API key
commit-ai --setup
# or
cai --setup
The tool automatically scans your changes for sensitive information such as:
- API keys
- Access tokens
- Private keys
- Passwords
- Database credentials
- Environment variables
If sensitive information is detected:
- A warning message will be displayed in red
- The specific sensitive content will be identified
- Automatic commits (--commit flag) will be blocked
- You'll be prompted to remove the sensitive information before committing
- -d, --debug: Output debug information
- -s, --stage: Automatically stage all changes
- -c, --commit: Automatically commit with generated message
- -f, --force: Commit even if review issues are found
- --setup: Configure or update OpenAI API key
- review (r): Review code differences between two branches
Note: The --commit option will be blocked if sensitive information is detected or if review issues are found (unless --force is used)
- The tool gets the git diff of staged changes
- Sends the diff to OpenAI's API for analysis
- AI performs two tasks in parallel:
- Security check for sensitive information
- Code review for potential issues
- Generation of a meaningful commit message
- If sensitive information is found:
- Displays warnings
- Blocks automatic commits
- Returns a conventional commit message
- Optionally commits the changes (if no sensitive info detected)
- OpenAI - For AI-powered commit message generation
- Commander.js - For CLI argument parsing
- simple-git - For Git operations
- chalk - For colored console output
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
- [x] Support different OpenAI models
- [x] Add code review between 2 branches
- [ ] Add -h, --help flag
- [ ] Add support for different commit message formats
- [ ] Add Custom instructions for Open AI
This project is licensed under the MIT License - see the LICENSE file for details.