一键切换多厂商 AI 模型,打破 Copilot 套餐限制。
支持智谱、Kimi、讯飞、火山引擎、MiniMax、百度千帆、腾讯云、京东云、快手 KAT、X-AIO、Compshare、阿里云、小米 MiMo、DeepSeek 等国产大厂,以及任何兼容 OpenAI Chat、OpenAI Responses 或 Anthropic 接口风格的供应商。无需改变使用习惯,直接在 VS Code Copilot Chat 中无缝调用。
- 多协议统一接入:支持 OpenAI Chat(
/chat/completions)、OpenAI Responses(/responses)、Anthropic(/messages)三种协议风格,适配任意兼容供应商。 - Anthropic 兼容优先:内置供应商默认使用 Anthropic 兼容端点(
/messages),无缝接入各类模型。 - 零学习成本:完全集成到 VS Code Copilot Chat,不改变任何操作习惯。
- 灵活模型管理:支持动态拉取
/models端点,也可自定义模型列表。 - 智能 Commit 生成:基于 Git 变更自动生成符合 Conventional Commits 规范的提交消息。
- 编码套餐看板:访问 GitHub Pages 看板 查看多家编码套餐月费与权益,以及 OpenRouter 供应商性能指标。看板每日自动更新,支持多维度筛选与 URL 状态同步。
- 密钥安全:API Key 使用 VS Code Secret Storage 本地保存,不上云不共享。
推荐方式:在 VS Code 扩展市场搜索「编码套餐」或 Coding Plans for Copilot 直接安装。
- 打开 VS Code
- 按
Ctrl+Shift+X打开扩展面板 - 在搜索框中输入
Coding Plans for Copilot或编码套餐 - 点击 Install 安装
- 安装完成后,按
Ctrl+Shift+P输入编码套餐即可看到相关命令
code --install-extension techfetch-dev.coding-plans-for-copilot点击市场页面上的 Install 按钮,会自动在 VS Code 中打开扩展并安装。
前置条件:需要 VS Code ≥ 1.109.0,且已安装 GitHub Copilot 扩展。
- 按
Ctrl+Shift+P,输入Coding Plans: Manage Vendor Configuration - 选择「Select Vendor」,选择你已注册的平台(如智谱、Kimi、火山引擎等)
- 选择「Set API Key」,粘贴你的 API Key
- 打开 Copilot Chat(
Ctrl+L),切换到「Coding Plans」提供商
也可以直接编辑 settings.json,插件会打开设置页并定位到 coding-plans.vendors。
以下供应商已内置默认配置,安装后即可使用:
| 供应商 | 默认端点(内置) | 其他兼容端点 |
|---|---|---|
| 智谱(zhipu) | https://open.bigmodel.cn/api/coding/paas/v4 |
https://open.bigmodel.cn/api/anthropic(Claude Code) / https://open.bigmodel.cn/api/paas/v4(通用) |
| z.ai | https://api.z.ai/api/anthropic |
https://api.z.ai/api/coding/paas/v4 |
| 火山引擎 | https://ark.cn-beijing.volces.com/api/coding |
https://ark.cn-beijing.volces.com/api/coding/v3 |
| Volcengine Overseas | https://ark.ap-southeast.bytepluses.com/api/coding |
https://ark.ap-southeast.bytepluses.com/api/coding/v3 |
| Kimi | https://api.kimi.com/coding/v1 |
https://api.kimi.com/coding/v1 |
| 阿里云(Aliyun) | https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic |
https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1 |
| 腾讯云 | https://api.lkeap.cloud.tencent.com/plan/anthropic |
https://api.lkeap.cloud.tencent.com/plan/v3 |
| 小米 MiMo | https://token-plan-cn.xiaomimimo.com/anthropic |
https://token-plan-cn.xiaomimimo.com/v1 |
| DeepSeek | https://api.deepseek.com/anthropic |
https://api.deepseek.com/v1 |
| OpenRouter | https://openrouter.ai/api |
https://openrouter.ai/api/v1 |
Anthropic 风格示例
{
"coding-plans.vendors": [
{
"name": "my-anthropic-vendor",
"baseUrl": "https://api.example.com/anthropic",
"defaultApiStyle": "anthropic",
"useModelsEndpoint": false,
"models": [
{
"name": "my-model",
"capabilities": { "tools": true, "vision": false },
"contextSize": 128000
}
]
}
]
}OpenAI Chat 风格
{
"coding-plans.vendors": [
{
"name": "my-openai-vendor",
"baseUrl": "https://api.example.com/v1",
"defaultApiStyle": "openai-chat",
"useModelsEndpoint": true,
"models": []
}
]
}OpenAI Responses 风格
{
"coding-plans.vendors": [
{
"name": "openai-responses-demo",
"baseUrl": "https://api.openai.com/v1",
"defaultApiStyle": "openai-responses",
"useModelsEndpoint": false,
"models": [
{
"name": "gpt-5",
"capabilities": { "tools": true, "vision": false },
"contextSize": 400000
}
]
}
]
}| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
coding-plans.logLevel |
string |
info |
日志级别:debug / info / warn / error。 |
coding-plans.vendors |
array |
内置供应商模板 | 供应商配置列表。 |
coding-plans.vendors[].name |
string |
必填 | 供应商唯一名称。 |
coding-plans.vendors[].baseUrl |
string |
必填 | API 基础地址。 |
coding-plans.vendors[].usageUrl |
string |
空 | 套餐 usage 接口地址,配置后状态栏显示额度百分比。 |
coding-plans.vendors[].defaultApiStyle |
string |
openai-chat |
协议风格:openai-chat / openai-responses / anthropic。 |
coding-plans.vendors[].defaultTemperature |
number |
0.2 |
供应商默认 temperature。 |
coding-plans.vendors[].defaultTopP |
number |
0 |
供应商默认 topP;0 表示不发送 top_p。anthropic 风格请求始终忽略该值,不发送 top_p。 |
coding-plans.vendors[].useModelsEndpoint |
boolean |
false |
是否从 /models 拉取模型列表。 |
coding-plans.vendors[].models[].name |
string |
必填 | 模型名称。 |
coding-plans.vendors[].models[].description |
string |
空 | 模型描述。 |
coding-plans.vendors[].models[].apiStyle |
string |
继承供应商 | 模型级协议风格覆盖。 |
coding-plans.vendors[].models[].temperature |
number |
继承供应商 | 模型级 temperature 覆盖。 |
coding-plans.vendors[].models[].topP |
number |
继承供应商 | 模型级 topP 覆盖;0 表示不发送 top_p。anthropic 风格请求始终忽略该值,不发送 top_p。 |
coding-plans.vendors[].models[].capabilities |
object |
{ tools: true, vision: false } |
模型能力声明。 |
coding-plans.vendors[].models[].contextSize |
number |
空 | 模型总上下文窗口;未显式设置 maxOutputTokens 时,运行时会基于它动态推导隐式输出预留。 |
coding-plans.vendors[].models[].maxInputTokens |
number |
空 | 已废弃,建议使用 contextSize。 |
coding-plans.vendors[].models[].maxOutputTokens |
number |
0 |
已废弃,建议使用 contextSize。0 表示未设置,此时运行时默认按总上下文的 20% 推导隐式输出预留,并收敛到 4096-30000。 |
coding-plans.advanced.defaultReservedOutput |
number |
60000 |
请求侧默认输出 token 预算;仅作为发送请求时的预算覆盖值,最终仍会按模型输出上限收敛。 |
coding-plans.commitMessage.showGenerateCommand |
boolean |
true |
是否显示"生成 Commit 消息"命令。 |
coding-plans.commitMessage.language |
string |
en |
提交消息语言:en / zh-cn。 |
coding-plans.commitMessage.useRecentCommitStyle |
boolean |
false |
是否参考最近 20 条 commit 风格。 |
coding-plans.commitMessage.modelVendor |
string |
空 | 生成提交消息时优先使用的供应商名。 |
coding-plans.commitMessage.modelId |
string |
空 | 生成提交消息时优先使用的模型名。 |
coding-plans.commitMessage.options.prompt |
string |
内置提示词 | 覆盖生成提示词。 |
coding-plans.commitMessage.options.maxDiffLines |
number |
3000 |
读取 diff 的最大行数。 |
coding-plans.commitMessage.options.pipelineMode |
string |
single |
生成管线:single / two-stage / auto。 |
coding-plans.commitMessage.options.maxBodyBulletCount |
number |
7 |
正文 bullet 最大数量。 |
coding-plans.commitMessage.options.subjectMaxLength |
number |
72 |
标题最大长度。 |
coding-plans.commitMessage.options.requireConventionalType |
boolean |
true |
是否强制 Conventional Commits 类型。 |
coding-plans.commitMessage.options.warnOnValidationFailure |
boolean |
true |
校验失败时是否提示告警。 |
API Key 不在 settings.json 明文存储,请通过「设置 API Key」写入 VS Code Secret Storage。
受限于 VS Code 公开 API,本扩展额外实现了上下文窗口展示:
- System Instructions:System 类提示词占用(系统提示、模式说明、策略提示等),属于 prompt tokens。
- Tool Definitions:工具定义占用(工具名、描述、参数 JSON Schema),属于 prompt tokens。
- Reserved Output:为本轮回答预留的输出 token 预算,非已生成的回复内容。
- Context Window:分母优先使用模型配置中的
contextSize。当前公开 API 不提供将上游 usage 明细分发回原生 Context Window 的接口,因此本扩展自行维护上下文窗口的分子展示。 - 状态栏显示统一的
CodingPlans条目:正文以简洁百分比展示套餐 usage 与 context 占比,悬浮查看详细信息。 - 若供应商配置了
usageUrl,会额外展示套餐额度百分比。
- 按
Ctrl+Shift+P,输入Coding Plans: Generate Commit Message - 插件会分析当前 Git 变更,自动生成符合规范的提交消息
- 可选择使用的模型(默认使用当前配置的供应商)
供应商配置可按工作区/文件夹保存;API Key 按供应商名保存在 VS Code Secret Storage(本地)。
编码套餐看板是一个部署在 GitHub Pages 上的实时数据面板,聚合了国内主流 AI 编码套餐的月费与权益信息,以及 OpenRouter 供应商的性能指标。数据通过定时任务每日自动抓取,无需手动维护。
| 标签页 | 内容 | 数据源 | 更新频率 |
|---|---|---|---|
| 📦 大陆套餐 | 人民币月费套餐(智谱、Kimi、火山引擎等 20+ 供应商) | 供应商官网抓取 | 每日 10:00 |
| 🌍 海外套餐 | 美元计价套餐(Cerebras、Synthetic 等) | OpenRouter API + 官网 | 每日 16:00 |
| 📊 Provider 指标 | 可用率、延迟(p50/p90/p99)、吞吐(RPS) | OpenRouter API | 每日 16:00 |
| 特性 | 说明 |
|---|---|
| 三标签视图 | 大陆套餐、海外套餐、OpenRouter 性能指标独立切换,互不干扰 |
| 自动抓取 | 每日定时抓取供应商定价与性能指标,数据实时可靠 |
| 多维筛选 | 支持按模型厂商、模型名称、供应商、缓存优惠等维度交叉筛选 |
| 实时指标 | 展示最近 30 分钟供应商可用率、延迟分位(p50/p90/p99)、每秒请求数(RPS) |
| 失败追踪 | 抓取失败项单独展示在折叠区,便于排查问题 |
| URL 状态同步 | 筛选条件自动同步到 URL hash,支持分享链接和浏览器回退 |
| 响应式设计 | 完美适配桌面端和移动端浏览 |
| 零后端 | 纯静态页面 + JSON 数据文件,部署简单,访问快速 |
graph TB
subgraph 定时任务["⏰ 定时任务 (GitHub Actions)"]
direction LR
T1["pricing:fetch"]
T2["metrics:fetch"]
T3["openrouter:plans:fetch"]
end
subgraph 数据文件["📁 assets/"]
D1["provider-pricing.json"]
D2["openrouter-provider-metrics.json"]
D3["openrouter-provider-plans.json"]
end
subgraph 看板["🌐 GitHub Pages 看板"]
P1["📦 大陆套餐"]
P2["🌍 海外套餐"]
P3["📊 Provider 指标"]
end
T1 --> D1
T2 --> D2
T3 --> D3
D1 --> P1
D2 --> P3
D3 --> P2
- 覆盖范围:智谱、Kimi、讯飞、火山引擎、MiniMax、百度千帆、腾讯云、京东云、快手 KAT、X-AIO、Compshare、阿里云、Infini、小米 MiMo、摩尔线程、阶跃星辰、联通云、国家超算互联网等 20+ 供应商
- 计价方式:人民币(CNY)
- 筛选规则:仅展示标准月费套餐(不含年费、季费与首月特惠价)
- 展示内容:套餐名称、价格、包含额度、有效期、购买链接
- 异常处理:抓取失败项在底部折叠区展示
- 覆盖范围:Cerebras Code、Synthetic、Chutes、Kilo Pass 等 OpenRouter 供应商
- 计价方式:美元(USD)
- 数据来源:OpenRouter API + 供应商官网 Playwright 抓取
- 展示内容:套餐名称、价格、包含额度、OpenRouter 链接、官方定价页
- 异常处理:访问受限或解析失败项放入
Pending折叠区
- 可用率:供应商最近 30 分钟的成功请求比例
- 延迟指标:
- p50:中位延迟(50% 请求不超过该值)
- p90:90 分位延迟
- p99:尾部延迟(最慢 1% 请求)
- 吞吐指标:每秒处理的请求数(RPS)
- 筛选维度:
- 按模型厂商(DeepSeek、Qwen、MoonshotAI、ByteDance 等)
- 按模型名称(deepseek-chat、qwen-max 等)
- 按供应商(Cerebras、Chutes、Kilo 等)
- 按缓存优惠(有/无 prompt cache 折扣)
# 安装依赖
npm install
# 抓取最新数据(按顺序执行)
npm run pricing:fetch # 抓取大陆供应商定价
npm run metrics:fetch # 抓取 OpenRouter 性能指标
npm run openrouter:plans:fetch # 抓取海外供应商套餐
# 启动本地预览服务
npm run serve:page
# 访问 http://127.0.0.1:4173看板使用以下核心数据文件(位于 assets/ 目录):
// provider-pricing.json — 大陆供应商月费套餐
{
"generatedAt": "2026-05-06T12:00:00+08:00",
"providers": [
{
"provider": "zhipu-ai",
"sourceUrls": ["https://bigmodel.cn/glm-coding"],
"plans": [
{ "name": "GLM Coding 套餐", "price": 199, "currency": "¥", ... }
]
}
],
"failures": []
}// openrouter-provider-metrics.json — 供应商性能指标
{
"generatedAt(Beijing)": "2026-05-06 12:00:00",
"captureWindow": "30 minutes",
"models": [
{
"id": "deepseek/deepseek-chat",
"organization": "deepseek",
"providers": [
{ "provider_name": "Cerebras", "uptime": 99.9, "latency_p50": 120, ... }
]
}
]
}// openrouter-provider-plans.json — 海外供应商套餐
{
"providers": [ ... ],
"pending": [ ... ],
"summary": { "total": 12, "withPricing": 10 },
"generatedAt(Beijing)": "2026-05-06 16:00:00"
}详细的开发文档请查看 DEV.md。
查看 CHANGELOG.md 了解版本更新详情。
- 功能建议:提交 Issue
- 使用问题:在 Issue 中附上错误日志和
settings.json相关配置片段(隐去敏感信息) - 厂商接入:欢迎提交 Pull Request
MIT License
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交变更 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
