Universal Commit Assistant

Universal AI-powered commit message generator supporting multiple providers and languages directly in VS Code.
✨ Features
- 🤖 Multiple AI Providers: Support for OpenAI, Anthropic, Gemini, Mistral, Ollama, LM Studio, and OpenRouter
- 🌍 Multi-Language Support: Generate commit messages in 8 languages (English, Chinese, Spanish, French, Russian, Japanese, Korean, Vietnamese)
- ⚡ Source Control Integration: One-click button directly in VS Code's source control panel
- 🎯 Flexible Context: Choose to include staged changes only or both staged and unstaged changes
- 📝 Multiple Message Styles: Conventional commits, concise, detailed, or custom prompts
- 🔒 Secure API Key Storage: API keys are stored securely using VS Code's secret storage
- 🏠 Offline Support: Works with local models (Ollama, LM Studio) for privacy-conscious users
- ⚙️ Highly Configurable: Customize temperature, system prompts, token limits, and more
🤖 Supported Providers
Provider |
Models |
Type |
Notes |
OpenAI |
GPT-4o-mini, GPT-4o, GPT-3.5-turbo |
Cloud |
Most popular, reliable |
Anthropic |
Claude 3.5 Haiku, Claude 3.5 Sonnet |
Cloud |
Great for detailed analysis |
Google Gemini |
Gemini 1.5 Flash, Gemini 2.5 Pro |
Cloud |
Fast and efficient |
Mistral |
Mistral Small Latest, Mistral Large |
Cloud |
European AI provider |
Ollama |
Llama 3.2, CodeLlama, Qwen, etc. |
Local |
Privacy-focused, offline |
LM Studio |
Any compatible model |
Local |
User-managed local server |
OpenRouter |
100+ models |
Proxy |
Access to multiple providers |
🚀 Installation
Install from VS Code Marketplace:
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X )
- Search for "Universal Commit Assistant"
- Click Install
Configure your AI provider:
- Open Settings (
Ctrl+, )
- Search for "Universal Commit Assistant"
- Select your preferred provider
- Add API key when prompted (for cloud providers)
Start using:
- Make changes to your code
- Click the ✨ button in the Source Control panel
- Let AI generate your commit message!
📖 Usage
Basic Usage
- Make changes to your code
- Stage your changes (optional - extension works with unstaged changes too)
- Click the "Generate Universal Commit Message" button (✨) in the source control panel
- Review and edit the generated message if needed
- Commit your changes
Advanced Usage
- Custom Prompts: Define your own prompt templates for specific project needs
- Multi-language: Generate commit messages in your preferred language
- Temperature Control: Adjust AI creativity from deterministic (0) to very creative (2)
- Provider Switching: Easily switch between different AI providers based on your needs
⚙️ Configuration
Access settings via File > Preferences > Settings , then search for "Universal Commit Assistant":
Core Settings
- Provider: Choose your AI provider (
openai , anthropic , gemini , mistral , ollama , lmstudio , openrouter )
- Include Unstaged: Whether to include unstaged changes in analysis
- Message Style:
conventional , concise , detailed , or custom
- Language: Select from 8 supported languages
- Temperature: Control AI creativity (0-2, default: 0.3)
- Max Tokens: Maximum length for generated messages (50-500, default: 100)
Provider-Specific Settings
Each provider has its own configuration options for models and endpoints. See the Settings Guide for detailed configuration instructions.
🔧 Requirements
- VS Code: 1.74.0 or higher
- Git: Repository with changes to commit
- API Key: Required for cloud providers (OpenAI, Anthropic, Gemini, Mistral, OpenRouter)
- Local Server: Required for local providers (Ollama, LM Studio)
🛠️ Development
Setup
# Clone the repository
git clone https://github.com/gianged/universal-commit-assistant.git
cd universal-commit-assistant
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Launch Extension Development Host
# Press F5 in VS Code
Available Scripts
npm run compile # Compile TypeScript
npm run watch # Watch mode for development
npm run package # Build production bundle
npm run semantic-release # Automated release (CI/CD)
npm run release:dry-run # Test release process
Project Structure
src/
├── extension.ts # Entry point
├── types/index.ts # TypeScript interfaces
├── providers/ # AI provider implementations
│ ├── baseProvider.ts # Abstract base class
│ ├── aiProviderFactory.ts # Factory pattern
│ └── *Provider.ts # Individual providers
├── services/ # Business logic
│ ├── gitCommitService.ts # Main workflow
│ ├── gitService.ts # Git operations
│ └── secretManager.ts # API key management
└── utils/
└── configurationManager.ts # Settings management
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Commit Convention
This project uses Conventional Commits for automated versioning and changelog generation:
feat: add support for new AI provider
fix: resolve temperature validation issue
docs: update installation instructions
Development Workflow
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature )
- Make your changes following the commit convention
- Push to your branch (
git push origin feat/amazing-feature )
- Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Thanks to all AI providers for their excellent APIs
- VS Code team for the robust extension platform
- Contributors and users who make this project better
📊 Release Process
This project uses semantic-release for automated versioning and publishing:
- Commits trigger automated analysis
- Versions are bumped automatically based on commit types
- Changelog is generated automatically
- Publishing to VS Code Marketplace is automated
- GitHub Releases are created automatically
Made with ❤️ for the developer community
| |