README.md

October 24, 2025 · View on GitHub

Dish AI Commit Gen

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.

Report Bug · Request Feature

Demo

English | 简体中文

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.

🚀 Core Features Overview

  • 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

🎯 Unique Advantages Over Competitors

1. Most Comprehensive AI Provider Support

  • Support for 10+ mainstream AI services, including free options
  • One-click switching between different AI models to meet various scenario needs

2. Intelligent Semantic Analysis

  • Pioneering code semantic indexing based on tree-sitter
  • Provides more accurate code change understanding and contextual analysis

3. Multi-dimensional Intelligent Generation

  • Not only generates commit messages, but also supports PR summaries, branch names, and weekly reports
  • One-stop solution for developer documentation needs

4. Enterprise-grade Features

  • Support for both SVN and Git version control systems
  • Dynamic configuration interface suitable for team collaboration
  • Comprehensive error handling and user feedback mechanisms

✨ What's New

  • PR Summary Generation: Automatically generate PR titles and descriptions based on Git commit history.
  • Code Semantic Indexing and Search: Utilizes tree-sitter and 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.

Features

🤖 Comprehensive AI Provider Support

Our extension supports 20+ AI providers, making it the most comprehensive AI-powered commit message generator available:

CategoryProvidersKey FeaturesBest For
Premium AIOpenAI (GPT-3.5, GPT-4, GPT-4o, o1-preview, o1-mini)Highest quality, latest modelsProduction use, high-quality requirements
Local DeploymentOllama, LM Studio100+ open-source models, complete privacyData-sensitive environments, offline use
VSCode IntegrationGitHub CopilotBuilt-in VSCode AI serviceCopilot subscribers
Chinese AI ServicesZhipu AI (GLM-4), DashScope (Alibaba), Doubao (ByteDance), Deepseek, Baidu QianfanExcellent Chinese processing, enterprise supportChinese users, enterprise applications
International ServicesGemini AI, Anthropic Claude, Mistral AI, SiliconFlow, OpenRouterGlobal reach, diverse model optionsInternational teams, model flexibility
Enterprise SolutionsAzure OpenAI, Vertex AI, Cloudflare Workers AIEnterprise-grade security and complianceLarge organizations, compliance requirements
Open SourceTogether AI, X.AI (Grok), Groq, Prem AICost-effective, community-drivenBudget-conscious users, open-source projects

🆓 Free AI Models

  • 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

📝 Version Control System Support

  • 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

📊 Weekly Report Generation

  • 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

🌿 Branch Name Generation

  • 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

🧠 Advanced Code Analysis & Semantic Indexing

  • 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

🎨 Modern WebView Interface

  • 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

⚙️ Enterprise-Grade Configuration

  • 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

🌍 Multi-language Commit Message Generation

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 (ไทย)

🎨 Conventional Commits Compliant

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 feature
    • fix: Bug fix
    • docs: Documentation changes
    • style: Code style adjustments
    • refactor: Code refactoring
    • perf: Performance improvements
    • test: Test-related changes
    • build: Build-related changes
    • ci: CI/CD-related changes
    • chore: Other changes
    • revert: 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
  • Intelligent Description Generation:

    • Automatic code change analysis
    • Key modification point extraction
    • Clear and concise description generation

😄 Automatic Emoji Addition

  • 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

📊 Code Analysis Features

  • Intelligent code difference analysis
  • Automatically simplify complex code changes
  • Preserve key context information

🔄 Merge Commit Support

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

📋 Subject-Only Commit Messages

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 Templates

Weekly report generation supports custom templates:

  • Customize prompts via systemPrompt configuration
  • Summarize by project/task
  • Customize report format and key content

🚀 PR Summary Generation

  • 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-sitter and 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.

📞 Function Calling Mode

  • 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 Settings UI

  • Dynamic Generation: The plugin's settings interface is now dynamically generated based on configuration definitions.
  • Flexible Configuration: Offers more flexible and detailed configuration options.

📢 System Notifications

  • Instant Feedback: Receive system-level notifications upon successful generation of commit messages or weekly reports.
  • Cross-Platform: Utilizes node-notifier to 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., SnoreToast on Windows, terminal-notifier on macOS).

Configuration

ConfigurationTypeDefaultDescription
dish-ai-commit.base.languagestringSimplified ChineseCommit message language
dish-ai-commit.base.systemPromptstring""Custom system prompt
dish-ai-commit.base.providerstringOpenAIAI provider
dish-ai-commit.base.modelstringgpt-3.5-turboAI model
dish-ai-commit.providers.openai.apiKeystring""OpenAI API key
dish-ai-commit.providers.openai.baseUrlstringhttps://api.openai.com/v1OpenAI API base URL
dish-ai-commit.providers.zhipu.apiKeystring""Zhipu AI API key
dish-ai-commit.providers.dashscope.apiKeystring""DashScope API key
dish-ai-commit.providers.doubao.apiKeystring""Doubao API key
dish-ai-commit.providers.ollama.baseUrlstringhttp://localhost:11434Ollama API base URL
dish-ai-commit.providers.gemini.apiKeystring""Gemini AI API key
dish-ai-commit.providers.deepseek.apiKeystring""Deepseek AI API key
dish-ai-commit.providers.siliconflow.apiKeystring""SiliconFlow API key
dish-ai-commit.providers.openrouter.apiKeystring""OpenRouter API key
dish-ai-commit.features.codeAnalysis.simplifyDiffbooleanfalseEnable diff content simplification
dish-ai-commit.features.commitFormat.enableMergeCommitbooleanfalseAllow merging multiple file changes into one commit
dish-ai-commit.features.commitFormat.enableEmojibooleantrueUse emoji in commit messages
dish-ai-commit.features.commitFormat.enableBodybooleantrueInclude body content in commit messages
dish-ai-commit.features.weeklyReport.systemPromptstring""Custom system prompt for weekly reports
dish-ai-commit.features.prSummary.systemPromptstring""Custom system prompt for PR summaries
dish-ai-commit.features.codeIndex.enabledbooleanfalseEnable code semantic indexing
dish-ai-commit.features.codeIndex.providerstring"ollama"Embedding provider for code indexing
dish-ai-commit.features.codeIndex.modelstring"nomic-embed-text"Embedding model for code indexing
dish-ai-commit.features.codeIndex.qdrantUrlstring"http://localhost:6333"Qdrant vector database URL

Commands

Command IDCategoryTitleDescription
dish-ai-commit.selectModel[Dish AI Commit]Select the AI ​​model for commit generationSelect the AI ​​model for generating commit messages
dish-ai-commit.generateWeeklyReport[Dish AI Commit]Generate weekly reportGenerate AI-driven weekly work report
dish-ai-commit.generateBranchName[Dish AI Commit]Generate branch nameGenerate standardized branch name based on requirement description
dish-ai-commit.generateCommitMessage[Dish AI Commit]Generate commit messageGenerate a commit message that complies with the specification
dish-ai-commit.reviewCode[Dish AI Commit]Code reviewAI-assisted code review
dish-ai-commit.generatePRSummary[Dish AI Commit]Generate PR SummaryGenerate PR summary based on Git commit history

Configuration Instructions

  1. 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"
}
  1. Ollama Configuration
{
  "dish-ai-commit.base.provider": "ollama",
  "dish-ai-commit.providers.ollama.baseUrl": "http://localhost:11434"
}
  1. VSCode Configuration
{
  "dish-ai-commit.base.provider": "vscode"
}
  1. Deepseek AI Configuration
{
  "dish-ai-commit.base.provider": "deepseek",
  "dish-ai-commit.providers.deepseek.apiKey": "your-api-key"
}
  1. SiliconFlow Configuration
{
  "dish-ai-commit.base.provider": "siliconflow",
  "dish-ai-commit.providers.siliconflow.apiKey": "your-api-key"
}
  1. OpenRouter Configuration
{
  "dish-ai-commit.base.provider": "openrouter",
  "dish-ai-commit.providers.openrouter.apiKey": "your-api-key"
}

📋 How to use

  • 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

📥 Install

  1. Search "Dish AI Commit" from the VS Code extension market
  2. Click to install
  3. Restart VS Code
  4. Configure AI service parameters according to actual needs

📝 Changelog

See CHANGELOG.md for a detailed version history.

📋 Dependency Requirements

  • 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)

💡 Frequently asked questions

  • 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

🛠️ Development Guide

You can use Github Codespaces for online development:

github-codespace

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 install

Open the project folder in VSCode. Press F5 to run the project. A new Extension Development Host window will pop up and start the extension.

🤝 Contribution Guidelines

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:

  1. The code has been tested

  2. Update the relevant documents

  3. Follow the project code specifications

💗 Thanks to our contributors

🙏 Acknowledgments

This project is inspired by and references these excellent open source projects:

📄 License

This project is MIT licensed.