Commit Machine
AI-Powered Git Workflow Automation for VS Code
Transform your Git workflow with intelligent commit messages, automated pull requests, and comprehensive repository management—all powered by cutting-edge AI.
Overview
Commit Machine is a professional VS Code extension that leverages AI to streamline your entire Git workflow. Generate meaningful commit messages that follow industry standards, create intelligent pull requests, visualize your repository history, and manage Git operations—all from a unified, intuitive interface.
Why Commit Machine?
- Save Time: Generate contextual commit messages in seconds instead of minutes
- Maintain Standards: Automatic adherence to Conventional Commits specification
- Increase Quality: AI-powered analysis ensures accurate, meaningful descriptions
- Enhance Workflow: Integrated PR creation with smart branch detection
- Stay Secure: Built-in secret detection prevents accidental credential commits
- Work Globally: Support for 10 languages and multiple AI providers
Features
AI-Powered Commit Messages
Generate meaningful, contextual commit messages using your choice of AI provider:
- OpenAI (GPT-5.2, GPT-5.2 Pro, GPT-5 Mini, GPT-4.1)
- Anthropic Claude (Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5)
- Google Gemini (Gemini 3 Pro, Gemini 2.5 Pro/Flash, Gemini 2.0 Flash)
All commit messages automatically follow the Conventional Commits specification with optional GitMoji support for visual categorization.
Pull Request Automation
Create professional pull requests with AI-generated content:
- Auto-Generated Titles: Intelligent PR titles based on commit history
- Smart Descriptions: Comprehensive PR descriptions with context and impact analysis
- Template Integration: Automatically incorporates
.github/PULL_REQUEST_TEMPLATE.md
- Focus Areas: AI-suggested code review focus areas
- Auto-Labels: Smart label suggestions based on commit types (optional)
- Reviewer Suggestions: Integration with CODEOWNERS file (optional)
Branch Flow System
Intelligent branch management with automatic target detection:
Tier-Based Flow:
- Feature branches → Development
- Development → Staging (optional)
- Staging → Main/Master
Configurable Aliases: Customize branch names for your workflow (e.g., develop, dev, development)
Git History Visualization
Interactive commit history with visual graph:
- Branch Visualization: See relationships between commits and branches
- Commit Details: Quick access to commit metadata and changes
- Configurable Display: Adjust graph width, commit count, and panel height
- Real-Time Updates: Automatically refreshes on repository changes
Git Commands Panel
Quick access to common Git operations:
- Fetch: Retrieve updates from remote repositories
- Push: Send commits to remote repositories
- Pull: Fetch and merge remote changes
- Pinned Commands: Save frequently used commands for one-click access
Secret Detection
Prevent accidental exposure of sensitive data:
- Pattern Recognition: Detects API keys, passwords, tokens, and credentials
- File Exclusion: Automatic filtering of sensitive files (
.env, *.pem, etc.)
- Flexible Modes: Block, warn, or disable detection based on your needs
- Customizable Patterns: Add custom file exclusion patterns
Multi-Language Support
Generate commit messages in your preferred language:
English | German | Spanish | French | Italian | Portuguese | Chinese | Japanese | Korean | Russian
File Management
Advanced commit organization:
- Manual Selection: Choose specific files for each commit
- Auto-Grouping: Automatically group related changes into logical commits
- Smart Staging: Optional auto-staging for selected files
Installation
From VS Code Marketplace
- Open VS Code
- Press
Ctrl+Shift+X (Windows/Linux) or Cmd+Shift+X (macOS)
- Search for "Commit Machine"
- Click Install
From VSIX File
- Download the
.vsix file from GitHub Releases
- Open VS Code
- Press
Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)
- Run
Extensions: Install from VSIX...
- Select the downloaded file
Getting Started
- Open Command Palette (
Ctrl+Shift+P / Cmd+Shift+P)
- Run
Commit Machine: Set API Key
- Select your preferred provider:
- Enter your API key (stored securely in VS Code's SecretStorage)
Step 2: Generate Your First Commit
Method 1: Quick Generate
- Make changes to your code
- Click the sparkle icon (✨) in the Source Control panel
- Review the generated commit message
- Commit!
Method 2: Select Files
- Run
Commit Machine: Select Files and Generate Commit
- Choose specific files to include
- Review and commit
Method 3: Auto-Group
- Run
Commit Machine: Auto-Group and Generate Commits
- Extension automatically groups related changes
- Review and commit each logical group
Step 3: Create a Pull Request
- Ensure you're on a feature branch
- Click the PR icon in the Source Control panel, or run
Commit Machine: Create Pull Request
- Review the AI-generated title and description
- Adjust target branch if needed (auto-detected via Branch Flow)
- Create PR directly on GitHub/GitLab/Bitbucket
Commands
Access all commands via Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command |
Description |
| Commit Machine: Generate Commit Message |
Generate a message for currently staged changes |
| Commit Machine: Select Files and Generate Commit |
Choose specific files and generate a commit |
| Commit Machine: Auto-Group and Generate Commits |
Automatically group changes into multiple logical commits |
| Commit Machine: Create Pull Request |
Create a PR with AI-generated title and description |
| Commit Machine: Set API Key |
Configure your AI provider API key |
| Commit Machine: Open Settings |
Quick access to extension settings |
Configuration
Customize Commit Machine via VS Code Settings (Ctrl+, / Cmd+,) → Search "Commit Machine"
AI Provider Settings
| Setting |
Default |
Description |
commitMachine.provider |
openai |
AI provider (openai, anthropic, gemini) |
commitMachine.model.openai |
gpt-5.2 |
OpenAI model to use |
commitMachine.model.anthropic |
claude-sonnet-4-5 |
Anthropic model to use |
commitMachine.model.gemini |
gemini-2.0-flash |
Gemini model to use |
commitMachine.customInstructions |
"" |
Custom instructions for AI (prompt tuning) |
Commit Message Settings
| Setting |
Default |
Description |
commitMachine.language |
en |
Commit message language (en, de, es, fr, it, pt, zh, ja, ko, ru) |
commitMachine.gitmoji.enabled |
false |
Enable GitMoji in commit messages |
commitMachine.gitmoji.position |
prefix |
Emoji position (prefix/suffix) |
commitMachine.includeBody |
true |
Include detailed body in commit messages |
commitMachine.includeScope |
true |
Include scope when detectable |
commitMachine.maxDiffLines |
500 |
Max diff lines to send to AI (controls token usage) |
commitMachine.autoStage |
false |
Auto-stage selected files before generating commit |
commitMachine.showCopyToScm |
false |
Show "Copy to SCM" button in commit preview |
Security Settings
| Setting |
Default |
Description |
commitMachine.security.enabled |
true |
Enable secret detection |
commitMachine.security.mode |
warn |
Secret handling mode (block/warn/off) |
commitMachine.security.excludeFiles |
[".env", "*.pem", ...] |
File patterns to exclude from AI analysis |
Pull Request Settings
| Setting |
Default |
Description |
commitMachine.pullRequest.enabled |
true |
Enable PR features |
commitMachine.pullRequest.generateTitle |
true |
Auto-generate PR title using AI |
commitMachine.pullRequest.generateDescription |
true |
Auto-generate PR description using AI |
commitMachine.pullRequest.useTemplate |
true |
Include PR template from .github/ |
commitMachine.pullRequest.includeFocusAreas |
true |
Include review focus areas in description |
commitMachine.pullRequest.autoLabels |
false |
Auto-suggest labels based on commit types |
commitMachine.pullRequest.reviewerSuggestion |
false |
Suggest reviewers from CODEOWNERS |
Branch Flow Settings
| Setting |
Default |
Description |
commitMachine.pullRequest.branchFlow |
See below |
Branch tier configuration with aliases |
Default Branch Flow Configuration:
{
"tiers": [
{ "tier": "main", "enabled": true, "aliases": ["main", "master"] },
{ "tier": "staging", "enabled": false, "aliases": ["staging", "stage", "uat"] },
{ "tier": "development", "enabled": true, "aliases": ["develop", "dev", "development"] }
],
"featureBranchTarget": "development"
}
Git History Settings
| Setting |
Default |
Description |
commitMachine.gitHistory.enabled |
true |
Show git history panel |
commitMachine.gitHistory.showGraph |
true |
Show visual git graph |
commitMachine.gitHistory.commitCount |
50 |
Number of commits to display (10-200) |
commitMachine.gitHistory.height |
200 |
Panel height in pixels (100-400) |
commitMachine.gitHistory.graphWidth |
80 |
Graph column width in pixels (60-150) |
Git Commands Settings
| Setting |
Default |
Description |
commitMachine.gitCommands.enabled |
true |
Show git commands panel |
commitMachine.gitCommands.pinned |
[] |
Pinned git commands for quick access |
Conventional Commits Reference
Commit Machine generates messages following the Conventional Commits specification:
Commit Types
| Type |
Description |
GitMoji |
Use Case |
feat |
New feature |
✨ |
Add new functionality |
fix |
Bug fix |
🐛 |
Fix a bug |
docs |
Documentation |
📝 |
Update documentation |
style |
Code style |
💄 |
Format code, no logic change |
refactor |
Code refactoring |
♻️ |
Restructure code without changing behavior |
perf |
Performance improvement |
⚡️ |
Optimize performance |
test |
Tests |
✅ |
Add or update tests |
build |
Build system |
📦 |
Modify build configuration |
ci |
CI/CD |
👷 |
Update CI/CD pipelines |
chore |
Maintenance |
🔧 |
Update dependencies, tooling |
revert |
Revert commit |
⏪️ |
Revert previous changes |
<type>(<optional scope>): <description>
[optional body]
[optional footer(s)]
Example with GitMoji:
✨ feat(auth): add OAuth2 authentication
- Implement OAuth2 flow with Google and GitHub providers
- Add user session management
- Include JWT token generation
Closes [#123](https://github.com/goNinoGralla/Conventional-Commit-Helper/issues/123)
Requirements
- VS Code: Version 1.85.0 or higher
- Git: Installed and configured on your system
- API Key: Valid API key for at least one supported AI provider (OpenAI, Anthropic, or Google Gemini)
Privacy & Security
Data Handling
- Local Processing: All Git operations are performed locally
- API Keys: Stored securely using VS Code's SecretStorage API (encrypted)
- Code Analysis: Diff data is sent to your chosen AI provider for analysis
- No Telemetry: Extension does not collect or store any usage data
- No Logging: Sensitive information is never logged
Secret Detection
Commit Machine includes built-in protection against accidental credential commits:
- Pattern Detection: Identifies API keys, tokens, passwords, private keys
- File Filtering: Automatically excludes sensitive files (
.env, *.pem, credentials)
- User Control: Configurable warning or blocking behavior
- Custom Patterns: Add your own file exclusion patterns
Excluded Files by Default:
.env, .env.*, *.pem, *.key, *.p12, *.pfx,
credentials.json, secrets.json, *.secret,
id_rsa, id_ed25519
Keyboard Shortcuts
Commit Machine integrates seamlessly with VS Code's Git workflow. Use these shortcuts for quick access:
Ctrl+Shift+G / Cmd+Shift+G: Open Source Control panel (where Commit Machine icons appear)
Ctrl+Shift+P / Cmd+Shift+P: Open Command Palette (access all Commit Machine commands)
Tip: You can assign custom keyboard shortcuts to any Commit Machine command via VS Code's Keyboard Shortcuts editor (Ctrl+K Ctrl+S / Cmd+K Cmd+S).
Troubleshooting
Common Issues
Problem: "API key not configured"
- Solution: Run
Commit Machine: Set API Key and enter a valid API key
Problem: "No changes detected"
- Solution: Ensure you have unstaged or staged changes in your repository
Problem: "Failed to generate commit message"
- Solution: Check your API key validity and internet connection. Verify your API provider quota.
Problem: "Secret detected" warning
- Solution: Review the flagged files. If false positive, add pattern to
commitMachine.security.excludeFiles or set commitMachine.security.mode to off
Problem: PR creation fails
- Solution: Ensure you have a remote repository configured and proper authentication set up (SSH keys or HTTPS credentials)
Getting Help
- GitHub Issues: Report a bug or request a feature
- Documentation: Check this README, the Docs folder, and extension settings descriptions
- Logs: Open VS Code Output panel (
Ctrl+Shift+U / Cmd+Shift+U) and select "Commit Machine" for debug information
Additional Documentation
Contributing
Contributions are welcome! Whether it's bug reports, feature requests, or code contributions, your input helps make Commit Machine better for everyone.
How to Contribute
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes using Commit Machine (of course!)
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
Development Setup
# Clone the repository
git clone https://github.com/goNinoGralla/Conventional-Commit-Helper.git
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Watch for changes
npm run watch
# Run tests
npm test
Code Standards
- Follow TypeScript best practices
- Maintain test coverage
- Use Conventional Commits for commit messages (use the extension!)
- Update documentation for new features
Publishing
For information on how to publish new versions to VS Code Marketplace and Open VSX, see Docs/PUBLISHING.md.
Roadmap
- [ ] Support for additional AI providers (Mistral, Cohere)
- [ ] Offline mode with local LLM support
- [ ] Commit message templates and customization
- [ ] Team presets for commit message style
- [ ] Integration with issue trackers (Jira, Linear, GitHub Issues)
- [ ] Commit message history and reuse
- [ ] Multi-repository support
- [ ] Advanced analytics and insights
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Support the Project
If you find Commit Machine useful, consider:
- ⭐ Starring the repository on GitHub
- 📝 Writing a review on the VS Code Marketplace
- 🐛 Reporting bugs and suggesting features
- 💻 Contributing code or documentation
Made with ❤️ by Nino Gralla
GitHub •
Issues •
License