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.
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.
- 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
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.
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)
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)
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
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
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
Generate commit messages in your preferred language:
English | German | Spanish | French | Italian | Portuguese | Chinese | Japanese | Korean | Russian
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
- Open VS Code
- Press
Ctrl+Shift+X(Windows/Linux) orCmd+Shift+X(macOS) - Search for "Commit Machine"
- Click Install
- Download the
.vsixfile from GitHub Releases - Open VS Code
- Press
Ctrl+Shift+P(Windows/Linux) orCmd+Shift+P(macOS) - Run
Extensions: Install from VSIX... - Select the downloaded file
- Open Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) - Run
Commit Machine: Set API Key - Select your preferred provider:
- OpenAI: Get your key from platform.openai.com
- Anthropic: Get your key from console.anthropic.com
- Google Gemini: Get your key from aistudio.google.com
- Enter your API key (stored securely in VS Code's SecretStorage)
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
- 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
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 |
Customize Commit Machine via VS Code Settings (Ctrl+, / Cmd+,) β Search "Commit Machine"
| 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) |
| 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 |
| 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 |
| 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 |
| 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"
}| 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) |
| Setting | Default | Description |
|---|---|---|
commitMachine.gitCommands.enabled |
true |
Show git commands panel |
commitMachine.gitCommands.pinned |
[] |
Pinned git commands for quick access |
Commit Machine generates messages following the Conventional Commits specification:
| 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
- 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)
- 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
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
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).
Problem: "API key not configured"
- Solution: Run
Commit Machine: Set API Keyand 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.excludeFilesor setcommitMachine.security.modetooff
Problem: PR creation fails
- Solution: Ensure you have a remote repository configured and proper authentication set up (SSH keys or HTTPS credentials)
- 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
| Document | Description |
|---|---|
| CONVENTIONAL_COMMITS.md | Detailed Conventional Commits specification |
| PUBLISHING.md | Guide for publishing to VS Code Marketplace & Open VSX |
Contributions are welcome! Whether it's bug reports, feature requests, or code contributions, your input helps make Commit Machine better for everyone.
- 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
# 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- Follow TypeScript best practices
- Maintain test coverage
- Use Conventional Commits for commit messages (use the extension!)
- Update documentation for new features
For information on how to publish new versions to VS Code Marketplace and Open VSX, see Docs/PUBLISHING.md.
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with VS Code Extension API
- Powered by OpenAI, Anthropic, and Google Gemini
- Follows Conventional Commits specification
- Inspired by GitMoji
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