A powerful VSCode extension that uses AI technology to generate standardized Git/SVN commit messages. Supports multiple AI providers with intelligent code analysis and semantic indexing capabilities.
Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文
💡 Why Choose Us? Compared to other AI commit tools, we provide the most comprehensive AI provider support, pioneering semantic code analysis, and multi-dimensional intelligent generation features, making us the best choice for developers.
- AI-Powered Commit Generation: Intelligent commit message creation from code changes with context-aware analysis
- Multi-VCS Support: Works with both Git and SVN version control systems
- 20+ AI Providers: OpenAI, Ollama, GitHub Copilot, Zhipu AI, DashScope, Gemini, Anthropic Claude, Mistral AI, and more (including free options, local deployment with Ollama, and enterprise solutions like Azure OpenAI, Vertex AI, Cloudflare Workers AI)
- Semantic Code Analysis: Tree-sitter + Qdrant vector database to provide precise context for commit message generation
- Multi-language Support: 19 languages including English and Chinese
- Standardized Commit Format: Follows Conventional Commits specification with intelligent emoji matching
- PR Summary Generation: Auto-generate PR titles and descriptions from commit history
- Branch Name Generation: Smart branch naming based on requirements or code changes
- Weekly Report Generation: AI-powered work summaries and progress tracking
- Code Review: AI-assisted code review with detailed feedback
- Interactive Chat Interface: Real-time commit generation through natural language
- Dynamic Settings UI: Auto-generated configuration interface based on schema
- Cross-repository Support: Handle multiple repositories in single workspace
- Support for 10+ mainstream AI services, including free options
- One-click switching between different AI models to meet various scenario needs
- Pioneering code semantic indexing based on tree-sitter
- Provides more accurate code change understanding and contextual analysis
- Not only generates commit messages, but also supports PR summaries, branch names, and weekly reports
- One-stop solution for developer documentation needs
- Support for both SVN and Git version control systems
- Dynamic configuration interface suitable for team collaboration
- Comprehensive error handling and user feedback mechanisms
- PR Summary Generation: Automatically generate PR titles and descriptions based on Git commit history.
- Code Semantic Indexing and Search: Utilizes
tree-sitterand a vector database (Qdrant) to index the codebase semantically, providing richer context for generating commit messages and code reviews. - Function Calling Mode: An experimental feature that generates structured commit messages through the AI's function-calling capabilities.
- Dynamic Settings UI: The plugin's settings interface is now dynamically generated based on configuration definitions, offering more flexible and detailed options.
Our extension supports 20+ AI providers, making it the most comprehensive AI-powered commit message generator available:
| Category | Providers | Key Features | Best For |
|---|---|---|---|
| Premium AI | OpenAI (GPT-3.5, GPT-4, GPT-4o, o1-preview, o1-mini) | Highest quality, latest models | Production use, high-quality requirements |
| Local Deployment | Ollama, LM Studio | 100+ open-source models, complete privacy | Data-sensitive environments, offline use |
| VSCode Integration | GitHub Copilot | Built-in VSCode AI service | Copilot subscribers |
| Chinese AI Services | Zhipu AI (GLM-4), DashScope (Alibaba), Doubao (ByteDance), Deepseek, Baidu Qianfan | Excellent Chinese processing, enterprise support | Chinese users, enterprise applications |
| International Services | Gemini AI, Anthropic Claude, Mistral AI, SiliconFlow, OpenRouter | Global reach, diverse model options | International teams, model flexibility |
| Enterprise Solutions | Azure OpenAI, Vertex AI, Cloudflare Workers AI | Enterprise-grade security and compliance | Large organizations, compliance requirements |
| Open Source | Together AI, X.AI (Grok), Groq, Prem AI | Cost-effective, community-driven | Budget-conscious users, open-source projects |
- Zhipu AI (GLM-4-Flash): Fixed monthly free quota (Get API Key)
- Gemini AI: 1,500 free requests per day (Get API Key)
- Ollama: Completely free local deployment with 100+ models
- LM Studio: Free local model hosting and management
- Git: Full support for Git repositories with advanced features
- SVN: Complete SVN integration with commit message generation
- Cross-repository: Handle multiple repositories in single workspace
- Mixed Environments: Seamlessly work with both Git and SVN projects
- AI-Powered Summaries: Automatically generate comprehensive weekly work reports
- Progress Tracking: Analyze commit history and code changes to summarize progress
- Customizable Templates: Create personalized report formats and structures
- Multi-Provider Support: Use any supported AI provider for report generation
- Export Options: Generate reports in various formats for sharing
- Smart Branch Naming: Automatically generate standardized branch names based on requirements
- Multiple Input Modes: Generate from feature descriptions or code changes
- Naming Conventions: Support various branch naming patterns and formats
- AI Integration: Seamless integration with all supported AI providers
- Team Consistency: Ensure consistent branch naming across development teams
- Tree-sitter Integration: Deep code parsing and analysis for 30+ programming languages
- Vector Database: Qdrant-powered semantic code indexing for intelligent context understanding
- Semantic Block Extraction: Identify and extract functions, classes, interfaces, and methods
- Intelligent Context Collection: Automatic code change analysis and context building
- Multi-embedding Support: OpenAI, Ollama, and OpenAI-compatible embedding services
- Incremental Indexing: Smart updates only for changed files, improving performance
- Interactive Chat Interface: Real-time commit message generation through natural language conversation
- Dynamic Settings UI: Auto-generated configuration interface based on schema definitions
- Theme Support: Light/dark theme switching with VS Code integration
- Responsive Design: Modern React-based UI with Tailwind CSS styling
- Real-time Preview: Live commit message preview and editing capabilities
- Command Palette Integration: Quick access to all features through VSCode command palette
- Dynamic Configuration: Schema-driven settings with automatic validation
- Model Selection: Quick AI provider and model switching with real-time updates
- Token Statistics: Comprehensive usage tracking and cost monitoring
- Custom Prompts: Personalized system prompts for different scenarios and use cases
- Workspace Integration: Project-specific configuration management and inheritance
- Configuration Validation: Automatic validation of settings and API keys
Supports the following 19 languages:
- Simplified Chinese (简体中文)
- Traditional Chinese (繁體中文)
- Japanese (日本語)
- Korean (한국어)
- Czech (Čeština)
- German (Deutsch)
- French (Français)
- Italian (Italiano)
- Dutch (Nederlands)
- Portuguese (Português)
- Vietnamese (Tiếng Việt)
- English
- Spanish (Español)
- Swedish (Svenska)
- Russian (Русский)
- Bahasa Indonesia
- Polish (Polski)
- Turkish (Türkçe)
- Thai (ไทย)
Generates commit messages following the Conventional Commits specification:
-
Commit Message Format:
<type>[optional scope]: <description> [optional body] [optional footer(s)] -
Supported Commit Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style adjustmentsrefactor: Code refactoringperf: Performance improvementstest: Test-related changesbuild: Build-related changesci: CI/CD-related changeschore: Other changesrevert: Revert commits
-
Automatic Scope Detection:
- Automatically inferred from modified file paths
- Smart categorization for multi-file changes
- Customizable scope rules via configuration
-
Breaking Changes Support:
- Mark breaking changes with
! - Detailed impact description in body
- Example:
feat!: Restructure authentication system
- Mark breaking changes with
-
Intelligent Description Generation:
- Automatic code change analysis
- Key modification point extraction
- Clear and concise description generation
- Automatically adds emojis to commit messages
- Can be enabled/disabled through configuration:
{
"dish-ai-commit.features.commitFormat.enableEmoji": true // Enable emoji
}- Emojis automatically match commit types:
- ✨ feat: New features
- 🐛 fix: Bug fixes
- 📝 docs: Documentation
- 💄 style: Styling
- ♻️ refactor: Refactoring
- ⚡️ perf: Performance
- ✅ test: Testing
- 🔧 chore: Other changes
- Intelligent code difference analysis
- Automatically simplify complex code changes
- Preserve key context information
By enabling the enableMergeCommit option, you can:
- Merge changes from multiple related files into a single commit message
- Automatically analyze file associations
- Generate more concise commit records
By disabling the enableBody option, you can:
- Generate commit messages with only the subject line (without body content)
- Create more concise commit history
- Focus on the essential information
Enable/disable through configuration:
{
"dish-ai-commit.features.commitFormat.enableBody": false // Disable commit message body
}Weekly report generation supports custom templates:
- Customize prompts via systemPrompt configuration
- Summarize by project/task
- Customize report format and key content
- Automatic PR Summary Generation: Automatically generate PR titles and descriptions based on Git commit history.
- Multi-AI Provider Support: Supports multiple AI providers for summary generation.
- Customizable: Customizable summary templates.
- Semantic Indexing: Utilizes
tree-sitterand a vector database (Qdrant) to index the codebase semantically. - Context Enhancement: Provides richer context for generating commit messages and code reviews.
- Multi-embedding Service Support: Supports multiple embedding services like Ollama and Qdrant.
- Structured Commits: An experimental feature that generates structured commit messages through the AI's function-calling capabilities.
- Tool Integration: Allows the AI model to return structured commit message data through specified tools.
- Dynamic Generation: The plugin's settings interface is now dynamically generated based on configuration definitions.
- Flexible Configuration: Offers more flexible and detailed configuration options.
- Instant Feedback: Receive system-level notifications upon successful generation of commit messages or weekly reports.
- Cross-Platform: Utilizes
node-notifierto support native notifications on macOS, Windows, and Linux. - Dependencies: This feature relies on native system libraries. Please ensure your system has the necessary components installed for notifications to work correctly (e.g.,
SnoreToaston Windows,terminal-notifieron macOS).
| Configuration | Type | Default | Description |
|---|---|---|---|
| dish-ai-commit.base.language | string | Simplified Chinese | Commit message language |
| dish-ai-commit.base.systemPrompt | string | "" | Custom system prompt |
| dish-ai-commit.base.provider | string | OpenAI | AI provider |
| dish-ai-commit.base.model | string | gpt-3.5-turbo | AI model |
| dish-ai-commit.providers.openai.apiKey | string | "" | OpenAI API key |
| dish-ai-commit.providers.openai.baseUrl | string | https://api.openai.com/v1 | OpenAI API base URL |
| dish-ai-commit.providers.zhipu.apiKey | string | "" | Zhipu AI API key |
| dish-ai-commit.providers.dashscope.apiKey | string | "" | DashScope API key |
| dish-ai-commit.providers.doubao.apiKey | string | "" | Doubao API key |
| dish-ai-commit.providers.ollama.baseUrl | string | http://localhost:11434 | Ollama API base URL |
| dish-ai-commit.providers.gemini.apiKey | string | "" | Gemini AI API key |
| dish-ai-commit.providers.deepseek.apiKey | string | "" | Deepseek AI API key |
| dish-ai-commit.providers.siliconflow.apiKey | string | "" | SiliconFlow API key |
| dish-ai-commit.providers.openrouter.apiKey | string | "" | OpenRouter API key |
| dish-ai-commit.features.codeAnalysis.simplifyDiff | boolean | false | Enable diff content simplification |
| dish-ai-commit.features.commitFormat.enableMergeCommit | boolean | false | Allow merging multiple file changes into one commit |
| dish-ai-commit.features.commitFormat.enableEmoji | boolean | true | Use emoji in commit messages |
| dish-ai-commit.features.commitFormat.enableBody | boolean | true | Include body content in commit messages |
| dish-ai-commit.features.weeklyReport.systemPrompt | string | "" | Custom system prompt for weekly reports |
| dish-ai-commit.features.prSummary.systemPrompt | string | "" | Custom system prompt for PR summaries |
| dish-ai-commit.features.codeIndex.enabled | boolean | false | Enable code semantic indexing |
| dish-ai-commit.features.codeIndex.provider | string | "ollama" | Embedding provider for code indexing |
| dish-ai-commit.features.codeIndex.model | string | "nomic-embed-text" | Embedding model for code indexing |
| dish-ai-commit.features.codeIndex.qdrantUrl | string | "http://localhost:6333" | Qdrant vector database URL |
| Command ID | Category | Title | Description |
|---|---|---|---|
| dish-ai-commit.selectModel | [Dish AI Commit] | Select the AI model for commit generation | Select the AI model for generating commit messages |
| dish-ai-commit.generateWeeklyReport | [Dish AI Commit] | Generate weekly report | Generate AI-driven weekly work report |
| dish-ai-commit.generateBranchName | [Dish AI Commit] | Generate branch name | Generate standardized branch name based on requirement description |
| dish-ai-commit.generateCommitMessage | [Dish AI Commit] | Generate commit message | Generate a commit message that complies with the specification |
| dish-ai-commit.reviewCode | [Dish AI Commit] | Code review | AI-assisted code review |
| dish-ai-commit.generatePRSummary | [Dish AI Commit] | Generate PR Summary | Generate PR summary based on Git commit history |
- OpenAI Configuration
{
"dish-ai-commit.base.provider": "openai",
"dish-ai-commit.providers.openai.apiKey": "your-api-key",
"dish-ai-commit.providers.openai.baseUrl": "https://api.openai.com/v1"
}- Ollama Configuration
{
"dish-ai-commit.base.provider": "ollama",
"dish-ai-commit.providers.ollama.baseUrl": "http://localhost:11434"
}- VSCode Configuration
{
"dish-ai-commit.base.provider": "vscode"
}- Deepseek AI Configuration
{
"dish-ai-commit.base.provider": "deepseek",
"dish-ai-commit.providers.deepseek.apiKey": "your-api-key"
}- SiliconFlow Configuration
{
"dish-ai-commit.base.provider": "siliconflow",
"dish-ai-commit.providers.siliconflow.apiKey": "your-api-key"
}- OpenRouter Configuration
{
"dish-ai-commit.base.provider": "openrouter",
"dish-ai-commit.providers.openrouter.apiKey": "your-api-key"
}- Select the file to be submitted from the source code manager
- Click the "Dish AI Commit" icon in the source code manager title bar
- Or execute the "Dish AI Commit" command in the command panel
- AI will automatically generate a submission message that meets the specifications
- Search "Dish AI Commit" from the VS Code extension market
- Click to install
- Restart VS Code
- Configure AI service parameters according to actual needs
See CHANGELOG.md for a detailed version history.
- VS Code 1.80.0+
- SVN Command Line Tool
- SVN SCM (Optional) - Install SVN SCM v2.18.1+ if you need to enter commit messages in VSCode's SCM input box
- Download the latest version of the SVN SCM extension from the release page
- Git SCM (Optional) - Install Git SCM if you need to enter commit messages in VSCode's SCM input box
- Valid AI service configuration (OpenAI API Key or Ollama service)
- Ensure that the SVN command line tool is correctly installed and accessible
- Ensure that the SVN SCM extension is correctly installed and enabled
- Configure the correct AI service parameters
- Ensure that the network can access the selected AI service
You can use Github Codespaces for online development:
Alternatively, you can clone the repository and run the following command for local development:
$ git clone https://github.com/littleCareless/dish-ai-commit
$ cd dish-ai-commit
$ npm installOpen the project folder in VSCode. Press F5 to run the project. A new Extension Development Host window will pop up and start the extension.
We welcome all forms of contributions, including but not limited to:
- Submit Issues to report bugs
- Propose new features
- Submit Pull Request to improve the code
- Improve the documentation
Please make sure before submitting a PR:
-
The code has been tested
-
Update the relevant documents
-
Follow the project code specifications
This project is inspired by and references these excellent open source projects:
- svn-scm - SVN source control management for VSCode
- vscode - Visual Studio Code editor
- vscode-gitlens - Git supercharged for VSCode
- ai-commit - AI assisted Git commit message generation
- vscode-copilot-chat - AI chat features powered by Copilot
This project is MIT licensed.