Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Auto Commit ChineseNew to Visual Studio Code? Get it now.
Auto Commit Chinese

Auto Commit Chinese

Auto Commit Chinese

|
21 installs
| (0) | Free
一键使用 AI 根据暂存区改动生成简体中文的 Conventional Commits 提交信息,支持 OpenAI 兼容 / Claude / Gemini 多个供应商预设。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Auto Commit Chinese

一键使用 AI 根据暂存区改动生成简体中文的 Conventional Commits 提交信息,并自动填入 VS Code 源代码管理的提交输入框。

  • 支持 OpenAI 兼容接口(官方 OpenAI / DeepSeek / Kimi / Qwen / Ollama / Grok 等)、Anthropic Claude、Google Gemini
  • 可视化配置多个供应商预设,随时切换当前使用
  • 配置时可自动获取供应商的可用模型列表并下拉选择,也支持手动输入
  • 提交格式:type(scope): subject + 可选 body;type / scope 用英文,subject / body 用简体中文,不使用 emoji
  • 针对大体量改动做裁剪:逐文件 diff、超长截断、二进制占位、跳过锁文件
  • 首次提交单独处理,避免把整个项目塞进提示词
  • 超时时间可配置(默认 10 分钟),生成过程可随时取消

环境要求

  • VS Code 1.85.0 或更高版本
  • Git
  • VS Code 内置 Git 扩展(默认已启用)
  • 可访问所选 AI 服务的网络环境

安装

使用 VSIX 安装

在 VS Code 中打开「扩展」视图,点击右上角 ... → 从 VSIX 安装…,选择 auto-commit-chinese-0.2.0.vsix。

也可以使用命令行:

code --install-extension auto-commit-chinese-0.2.0.vsix

安装后重新加载窗口即可使用。

从源码运行

参见下方开发章节。

快速开始

  1. 打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),运行 Auto Commit Chinese: 管理供应商。
  2. 点击「+ 新增供应商」,填写供应商信息:
    • 例如 DeepSeek:类型选择「OpenAI 兼容」,API 地址填 https://api.deepseek.com/v1,填入 API 密钥后点击「自动获取模型」,选择 deepseek-chat,也可以直接手动输入模型名称。
    • 第一个预设会自动设为当前使用;之后可在列表中点击「设为当前使用」,或运行 Auto Commit Chinese: 选择供应商 快速切换。
  3. 在 Git 仓库中修改代码并暂存(git add)。扩展只读取暂存区改动,不会自动执行 git add。
  4. 打开源代码管理视图(Ctrl+Shift+G / Cmd+Shift+G),点击提交输入框旁或标题栏的 ⚡ 按钮,也可以运行 Auto Commit Chinese: 生成提交信息。
  5. 生成结果会自动填入提交输入框,确认无误后手动提交。扩展不会自动提交。

在输入框中先输入一些文字再点击生成,这些文字会作为额外上下文传给 AI,适合补充改动原因、关联 issue 等信息。上一次生成并填入的内容不会被重复当作上下文。

命令

命令 命令 ID 入口
Auto Commit Chinese: 生成提交信息 autocommit.generate 源代码管理标题栏 / 提交输入框 ⚡ 按钮、命令面板
Auto Commit Chinese: 管理供应商 autocommit.manageProviders 命令面板
Auto Commit Chinese: 选择供应商 autocommit.selectProvider 命令面板

支持的供应商

类型 说明 Base URL 模型示例
openai OpenAI 兼容接口 留空表示官方 OpenAI;也可填任意兼容端点 gpt-4o、deepseek-chat、moonshot-v1-8k、qwen-max
anthropic Anthropic Claude 留空表示官方 Anthropic claude-sonnet-4-5、claude-opus-4-5
gemini Google Gemini 留空表示官方 Gemini gemini-2.0-flash、gemini-1.5-pro

OpenAI 兼容端点的 Base URL 示例:

服务 Base URL
OpenAI 留空(默认 https://api.openai.com/v1)
DeepSeek https://api.deepseek.com/v1
Kimi / Moonshot https://api.moonshot.cn/v1
通义千问 https://dashscope.aliyuncs.com/compatible-mode/v1
Ollama(本地) http://localhost:11434/v1
Grok https://api.x.ai/v1

自动获取模型会调用各供应商的模型列表接口(OpenAI 兼容 GET /models、Claude GET /v1/models、Gemini GET /v1beta/models),超时约 20 秒。若供应商不支持该接口,直接手动填写模型名称即可。

配置项

扩展配置保存在用户全局 settings.json 中。

配置键 类型 默认值 说明
autocommit.providers array [] 供应商预设列表,建议通过「管理供应商」面板编辑
autocommit.activeProviderId string "" 当前使用的供应商预设 ID
autocommit.timeout number 600000 AI 请求超时时间(毫秒),最小 10000

每个供应商预设包含以下字段:

字段 类型 必填 说明
id string 是 预设唯一标识,由管理面板自动生成
name string 是 预设名称,如 DeepSeek
type "openai" \| "anthropic" \| "gemini" 是 供应商类型
baseUrl string 否 API 基础地址,留空表示官方端点
apiKey string 是 API 密钥
model string 是 模型名称
temperature number 否 生成温度,默认 0.3。Claude 通常为 0-1,OpenAI 兼容与 Gemini 一般为 0-2

⚠️ 安全提示:API 密钥以明文保存在用户全局 settings.json 中。请勿在共享设备或公开配置中使用长期密钥;建议为扩展单独创建权限受限的密钥。

生成逻辑

常规提交

发送给模型前会对暂存区改动做结构化处理,避免提示词过大:

  • 仅读取暂存区(git diff --cached),未暂存的改动不会发送;暂存区为空时直接提示先 git add。
  • 逐文件收集 diff,同时单独列出文件状态与路径(added / modified / deleted / renamed)。
  • 单文件 diff 超过 4000 字符自动截断,并追加 ... [truncated] 标记。
  • 二进制文件替换为「二进制文件 xxx 已修改」占位文本。
  • 跳过 63 种常见锁文件(如 package-lock.json、yarn.lock、pnpm-lock.yaml、Cargo.lock、poetry.lock、go.sum 等);如果暂存区只有锁文件,则仍会将其纳入,避免误报"没有改动"。
  • 附带当前分支与最近 5 条提交,帮助模型把握提交风格。
  • 输入框中的额外文字会作为「用户补充的上下文」一并发送。

首次提交

当仓库还没有任何提交时:

  • 不发送全部文件改动,只读取仓库根目录的 README(优先暂存区版本,其次工作区文件,超过 8000 字符会截断)以及输入框中的额外文字。
  • 使用首次提交专用提示词;若两者都没有有效信息,提示词要求模型只输出 chore: 初始化项目,避免编造内容。

输出处理

模型返回后会清理代码围栏、<think>...</think> 思考块和外围引号,再写入源代码管理输入框。生成失败时会针对密钥无效(401)、限流(429)、服务端错误(5xx)和超时给出中文提示。

示例输出

feat(docs): 添加对 Claude 和 OpenAI Responses API 的支持

- 在文档中新增 Claude 以及 OpenAI Responses API 相关配置说明
- 更新版本号,优化配置表格以适配新增的 API 参数
- 同步更新简体中文文档中的特性介绍与配置项说明

常见问题

生成时提示「暂存区没有改动」

扩展只读取已暂存的文件。请先执行 git add,或在源代码管理面板中暂存改动后再试。

提示 API 密钥无效或未授权(401)

检查「管理供应商」中的 API 密钥和 Base URL 是否匹配。例如 DeepSeek 的密钥不能用于 OpenAI 官方端点。

提示请求过于频繁(429)

供应商限流,稍后重试即可。

提示请求超时

网络波动较大时,可在设置中调大 autocommit.timeout(单位毫秒,默认 10 分钟)。OpenAI 兼容与 Claude 请求失败时还会自动重试 2 次。

首次提交生成的信息太笼统

首次提交不会读取文件内容,生成效果取决于根目录 README。建议完善 README,或在提交输入框中补充项目简介后再生成。

「自动获取模型」失败

  • 先填写 API 密钥。
  • 出现 404 时,检查 Base URL 是否正确,或该供应商是否提供模型列表接口。
  • 无法自动获取时,直接手动输入模型名称即可。

如何查看日志?

打开「输出」面板,选择 Auto Commit Chinese 频道,可查看配置变更、请求供应商、diff 截断等信息。

开发

npm install

# 构建到 dist/extension.js
npm run compile

# 监听模式
npm run watch

# 打包 VSIX
npm run package

调试:在 VS Code 中打开本项目,按 F5 启动扩展开发宿主。构建配置见 esbuild.js,三个 AI SDK 会全部打包进 dist/extension.js,发布时无需携带 node_modules。

项目结构:

src/
├── extension.ts   # 激活入口,注册命令
├── generate.ts    # 生成流程、SCM 输入框写入、错误提示
├── git-utils.ts   # 仓库定位、暂存区上下文收集
├── prompts.ts     # 常规提交与首次提交提示词
├── providers.ts   # OpenAI / Claude / Gemini 调用与模型列表获取
├── config.ts      # 配置读写与校验
├── webview.ts     # 供应商管理面板
└── logger.ts      # 输出面板日志

致谢

灵感与参考:kilocode(生成效果与交互入口)、ai-commit(可复用的实现细节)。

许可证

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft