AI-powered VS Code extension that analyzes your staged changes and generates conventional commit messages — with optional code review before you commit.
Features
- 🤖 AI Commit Generation — Analyze
git diff --cachedand auto-generatetype(scope): subjectformat following your project's convention - 📋 One-Click Fill — Auto-fills VS Code SCM input box, no copy-paste needed
- 🔧 Project Convention Aware — Reads
.gitmessage,commitlint.config.js, or custom.gitcommithelper.json - 🔌 Multi-Provider — Supports OpenAI, DeepSeek, and custom OpenAI-compatible endpoints
- ⚡ Keyboard Shortcut —
Ctrl+Shift+C(Windows/Linux) /Cmd+Shift+C(Mac) in SCM view - 📊 Status Bar — Quick access from the status bar
- 🔒 Privacy-First — Your code never leaves your machine when using your own API key
Quick Start
- Install the extension from VS Code Marketplace
- Open a Git repository with staged changes
- Generate — Click the "Generate Commit Message" button in Source Control title bar, or press
Ctrl+Shift+C - Enter API Key when prompted (stored securely in VS Code SecretStorage)
- Commit — Review the generated message and commit!
Configuration
| Setting | Description | Default |
|---|---|---|
gitCommitHelper.provider |
LLM provider (openai, deepseek, custom) | openai |
gitCommitHelper.endpoint |
Custom API endpoint URL | "" |
gitCommitHelper.model |
Model name override | "" (provider default) |
gitCommitHelper.configPath |
Path to convention config file | "" |
gitCommitHelper.customPrompt |
Custom prompt template (use {{diff}} and {{convention}}) |
"" |
gitCommitHelper.maxDiffLength |
Max diff characters sent to LLM | 8000 |
gitCommitHelper.showStatusBar |
Show status bar indicator | true |
Supported Providers
| Provider | Default Model | API Key Format |
|---|---|---|
| OpenAI | GPT-4.1-mini | sk-... |
| DeepSeek | DeepSeek V3.2 | sk-... |
| Custom | Configurable | Any |
Convention Config Priority
The extension automatically detects your project's commit convention in this order:
.gitcommithelper.json— Custom config file (project root).gitmessage— Git commit template filecommitlint.config.js— Commitlint configuration- Conventional Commits spec — Default fallback
.gitcommithelper.json Example
{
"types": ["feat", "fix", "docs", "refactor", "test", "chore"],
"scopes": ["api", "web", "core", "cli"],
"subjectMaxLength": 72,
"allowBreakingChanges": true
}
Commands
| Command | Title | Keyboard | Context |
|---|---|---|---|
git-commit-ai-helper.generateCommit |
Generate Commit Message | Ctrl+Shift+C / Cmd+Shift+C |
SCM view |
Architecture
VS Code Extension (TypeScript)
├── src/git.ts — Git diff parsing
├── src/config.ts — Convention detection
├── src/llm.ts — LLM provider abstraction
├── src/commit-gen.ts — Commit generation logic
└── src/extension.ts — VS Code entry point
License
MIT © AnsonCar