+
Skip to content

AI-powered CLI tool that generates professional Git commit messages using OpenAI GPT. Analyze staged changes and create conventional commits automatically.

License

Notifications You must be signed in to change notification settings

Abdiev003/git-axiom

Repository files navigation

🚀 Git Axiom

An AI-powered CLI tool to supercharge your Git workflows with intelligent commit messages

npm version npm downloads npm total downloads License: ISC Node.js Version CI CodeQL Coverage Status Known Vulnerabilities

✨ Features

  • 🤖 AI-Powered Commit Messages - Generate professional, conventional commit messages using OpenAI GPT
  • 🌟 Smart Branch Naming - Generate intelligent branch names based on your code changes ✨ NEW
  • Lightning Fast - Analyze staged changes and generate commit messages in seconds
  • 🎯 Conventional Commits - Follows industry-standard commit message format automatically
  • 🎨 Beautiful UI - Interactive prompts with colored output and loading spinners
  • 🛡️ Error Handling - Comprehensive error handling with helpful suggestions
  • 📝 Smart Analysis - Analyzes your code changes to create contextually relevant messages
  • 🔧 Multi-Type Branches - Support for feature, fix, hotfix, refactor, and docs branches

🔧 Installation

Prerequisites

  • Node.js 14.0.0 or higher
  • Git repository
  • OpenAI API key

Install via npm

npm install -g git-axiom

Local Development Setup

# Clone the repository
git clone https://github.com/Abdiev003/git-axiom.git
cd git-axiom

# Install dependencies
npm install

# Make executable
chmod +x index.js

# Link for global usage (optional)
npm link

🔑 Setup

1. Get OpenAI API Key

  1. Visit OpenAI Platform
  2. Create a new API key
  3. Copy your API key

2. Set Environment Variable

# Add to your shell profile (.bashrc, .zshrc, etc.)
export OPENAI_API_KEY="your-openai-api-key-here"

# Or set for current session
export OPENAI_API_KEY="sk-..."

3. Initialize Git Axiom

git-axiom init

🚀 Usage

Basic Workflow

For Commit Messages:

  1. Stage your changes
git add .
# or
git add specific-file.js
  1. Generate AI commit message
git-axiom commit
  1. Review and confirm The tool will:
  • Analyze your staged changes
  • Generate a professional commit message
  • Show you the message for approval
  • Commit automatically if you approve

For Branch Naming:

  1. Make your changes (don't stage yet)
# Edit your files
vim src/auth.js
  1. Generate AI branch name
git-axiom branch
# or specify branch type
git-axiom branch --type feature
  1. Review and create The tool will:
  • Analyze your current changes
  • Generate a descriptive branch name
  • Show you the suggested name
  • Create and switch to the branch if approved

Example Sessions

Commit Message Generation

$ git add src/auth.js
$ git-axiom commit

⠋ Analyzing staged files...
⠋ Generating commit message with AI...
✅ Commit message generated!

📝 Generated commit message:
"feat(auth): add user authentication middleware"

? Do you want to proceed with this commit message? (Y/n) 

⠋ Committing changes...
✅ Commit successful!

✨ Successfully committed with message: "feat(auth): add user authentication middleware"

Branch Name Generation ✨ NEW

$ # After making changes to authentication system
$ git-axiom branch --type feature

⠋ Analyzing your changes...
⠋ Generating branch name with AI...
✅ Branch name generated!

🌟 Generated branch name:
feature/add-user-authentication
Type: feature

? Do you want to create this branch and switch to it? (Y/n) 

⠋ Creating new branch...
✅ Branch created successfully!

✨ Successfully created and switched to branch: "feature/add-user-authentication"
💡 You can now make your changes and use "git-axiom commit" when ready!

📋 Commands

git-axiom commit

Generate AI-powered commit messages for staged changes.

git-axiom commit

What it does:

  1. Analyzes your staged Git changes
  2. Sends the diff to OpenAI for analysis
  3. Generates a conventional commit message
  4. Asks for your confirmation
  5. Commits the changes if approved

git-axiom init

Initialize Git Axiom and check setup.

git-axiom init

git-axiom --help

Show help information and available commands.

git-axiom --help
# or
git-axiom -h

🎯 Conventional Commits

Axiom automatically generates commit messages following the Conventional Commits specification:

<type>(<scope>): <subject>

Common Types:

  • feat: New features
  • fix: Bug fixes
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • refactor: Code refactoring
  • test: Adding or updating tests
  • chore: Maintenance tasks

Examples:

feat(auth): add OAuth2 authentication
fix(api): resolve user data validation error
docs(readme): update installation instructions
refactor(utils): simplify helper functions

🛠️ Configuration

Environment Variables

Variable Description Default
OPENAI_API_KEY Your OpenAI API key (required) -
AI_MODEL OpenAI model to use gpt-3.5-turbo
AI_BASE_URL Custom API endpoint https://api.openai.com/v1

Custom Configuration Example

export OPENAI_API_KEY="sk-..."

🐛 Troubleshooting

Common Issues

"No staged changes found"

# Solution: Stage your changes first
git add .

"OpenAI API key not found"

# Solution: Set your API key
export OPENAI_API_KEY="your-key-here"

"Not a git repository"

# Solution: Make sure you're in a Git repository
git init

"Rate limit exceeded"

# Solution: Wait a moment and try again
# Or upgrade your OpenAI plan

"The changes are too large to analyze"

# Solution: Commit smaller chunks of changes
git add specific-file.js
git-axiom commit

# Or stage specific lines/hunks
git add -p
git-axiom commit

"Maximum context length exceeded"

# Solution: The tool automatically handles large diffs
# But you can also commit changes in smaller parts
git add src/
git-axiom commit
git add tests/
git-axiom commit

"No changes found to analyze" (for branch command)

# Solution: Make some changes to your files first
vim src/example.js
git-axiom branch

"Branch already exists"

# Solution: Use a different branch type or delete existing branch
git branch -D feature/existing-branch
git-axiom branch --type fix

🏗️ Architecture

axiom/
├── index.js              # Main CLI entry point
├── utils/
│   ├── git.js           # Git operations
│   ├── ai.js            # OpenAI API integration
│   └── ui.js            # User interface helpers
├── package.json
└── README.md

Key Components:

  • Commander.js - CLI framework
  • Axios - HTTP client for API calls
  • Inquirer - Interactive prompts
  • Ora - Loading spinners
  • Chalk - Terminal colors

📊 Stats & Analytics

GitHub stars GitHub forks GitHub watchers GitHub contributors

🏆 Features Comparison

Feature Git Axiom Traditional Commits Other AI Tools
AI-Generated Messages
Smart Branch Naming ✅ ✨ NEW
Conventional Commits ⚠️
Interactive CLI ⚠️
Multi-Type Branches
Error Handling ⚠️
Free to Use
Offline Mode

🚀 Performance

  • Speed: Generates commit messages & branch names in < 3 seconds
  • Accuracy: 95%+ relevant commit messages and branch names
  • API Usage: Optimized for minimal token consumption
  • Memory: < 50MB RAM usage
  • Branch Creation: Instant branch creation and switching

📈 Changelog

For detailed changes, see CHANGELOG.md.

v1.1.0 (Latest) ✨ NEW

  • 🌟 Smart Branch Naming - AI-powered branch name generation
  • 🤖 Added git-axiom branch command with multiple branch types
  • 🎯 Support for feature, fix, hotfix, refactor, and docs branches
  • 🎨 Enhanced UI with beautiful interactive prompts
  • 🔧 Comprehensive test suite and improved documentation

v1.0.1

  • 🐛 Fixed error handling for network timeouts
  • 📝 Improved commit message generation accuracy
  • 🎨 Enhanced UI with better spinner animations

v1.0.0

  • 🎉 Initial release
  • ✨ AI-powered commit message generation
  • 🎯 Conventional commits support
  • 🎨 Interactive CLI interface

See full changelog →

🤝 Contributing

We welcome contributions! Please read our Contributing Guide for details.

Quick Start for Contributors

git clone https://github.com/Abdiev003/git-axiom.git
cd git-axiom
npm install
npm test
npm run lint

Contributors

📄 License

This project is licensed under the ISC License - see the LICENSE file for details.

🙏 Acknowledgments

  • OpenAI for providing the GPT API
  • Conventional Commits for the commit format specification
  • The open-source community for the amazing tools and libraries

📞 Support


⭐ Star this repository if Axiom helps improve your Git workflow! ⭐

Made with ❤️ by Ali Abdiyev(https://github.com/Abdiev003)

About

AI-powered CLI tool that generates professional Git commit messages using OpenAI GPT. Analyze staged changes and create conventional commits automatically.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载