Abdiev003/git-axiom

Repository files navigation

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

npm versionnpm downloadsnpm total downloadsLicense: ISCNode.js VersionCICodeQLCoverage StatusKnown Vulnerabilities

  • πŸ€– 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
  • Node.js 14.0.0 or higher
  • Git repository
  • OpenAI API key
npm install -g git-axiom
# Clone the repository
git clone https://.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
  1. Visit OpenAI Platform
  2. Create a new API key
  3. Copy your API key
# 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-..."
git-axiom init
  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
  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
$ 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"
$ # 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!

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

Initialize Git Axiom and check setup.

git-axiom init

Show help information and available commands.

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

Axiom automatically generates commit messages following the Conventional Commits specification:

<type>(<scope>): <subject>
  • 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
feat(auth): add OAuth2 authentication
fix(api): resolve user data validation error
docs(readme): update installation instructions
refactor(utils): simplify helper functions
VariableDescriptionDefault
OPENAI_API_KEYYour OpenAI API key (required)-
AI_MODELOpenAI model to usegpt-3.5-turbo
AI_BASE_URLCustom API endpointhttps://api.openai.com/v1
export OPENAI_API_KEY="sk-..."

"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
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
  • Commander.js - CLI framework
  • Axios - HTTP client for API calls
  • Inquirer - Interactive prompts
  • Ora - Loading spinners
  • Chalk - Terminal colors

GitHub starsGitHub forksGitHub watchersGitHub contributors

FeatureGit AxiomTraditional CommitsOther AI Tools
AI-Generated Messagesβœ…βŒβœ…
Smart Branch Namingβœ… ✨ NEW❌❌
Conventional Commitsβœ…βŒβš οΈ
Interactive CLIβœ…βŒβš οΈ
Multi-Type Branchesβœ…βŒβŒ
Error Handlingβœ…βŒβš οΈ
Free to UseβŒβœ…βŒ
Offline ModeβŒβœ…βŒ
  • 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

For detailed changes, see CHANGELOG.md.

  • 🌟 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
  • πŸ› Fixed error handling for network timeouts
  • πŸ“ Improved commit message generation accuracy
  • 🎨 Enhanced UI with better spinner animations
  • πŸŽ‰ Initial release
  • ✨ AI-powered commit message generation
  • 🎯 Conventional commits support
  • 🎨 Interactive CLI interface

See full changelog β†’

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

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

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

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

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

Made with ❀️ by Ali Abdiyev(https://.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

Security policy

Stars

Watchers

Forks

Packages

No packages published