0
0
via GitHub · Posted Jul 13, 2026 · 1 min read

GCMP: Chinese LLM Provider Integration for VS Code

VicBilibily/GCMP
Tool

通过集成国内主流原生大模型提供商,为开发者提供更加丰富、更适合本土需求的 AI 编程助手选择。 目前已内置支持 智谱AI、MiniMax、MoonshotAI、DeepSeek、阿里云百炼、快手万擎、火山方舟、腾讯云、Xiaomi MiMo、百度千帆、阶跃星辰、蚂蚁百灵 等原生大模型提供商。 此外,扩展插件已适配支持 OpenAI 与 Anthropic 的 A...

390Stars
48Forks
13Open issues
3Watching
TypeScript MIT 0.25.33 Updated 1 week ago
View on GitHub

A VS Code extension that integrates multiple native Chinese AI model providers (Zhipu, DeepSeek, Aliyun, MiniMax, and others) with GitHub Copilot Chat, enabling developers to use localized models and reduce Copilot quota consumption through configurable utility models.

0 comments

README

GCMP - 提供多个国内原生大模型提供商支持的扩展

English | 中文

CI License

通过集成国内主流原生大模型提供商,为开发者提供更加丰富、更适合本土需求的 AI 编程助手选择。 目前已内置支持 智谱AI、MiniMax、MoonshotAI、DeepSeek、阿里云百炼、快手万擎、火山方舟、腾讯云、Xiaomi MiMo、百度千帆、阶跃星辰、蚂蚁百灵、讯飞星辰、LongCat 等原生大模型提供商。 此外,扩展插件已适配支持 OpenAI 与 Anthropic 的 API 接口兼容模型,支持自定义接入任何提供兼容接口的第三方云服务模型

🚀 快速开始

1. 安装扩展

在VS Code扩展市场搜索 GCMP 并安装,或使用扩展标识符:vicanent.gcmp

2. 开始使用

  1. 打开 VS CodeGitHub Copilot Chat 面板
  2. 在模型选择器的底部选择 管理模型,从弹出的模型提供商列表中选择所需的提供商
  3. 若第一次使用,选择提供商后会要求设置 ApiKey,根据提示完成API密钥配置后,即可返回模型选择器添加并启用模型
  4. 在模型选择器中选中目标模型后,即可开始与AI助手进行对话

3. 配置 VS Code 后台实用模型与 GCMP 辅助模型(推荐)

VS Code 1.128+:启动时将自动检测 chat.utilityModelchat.utilitySmallModel 是否已配置。若两者均未配置,会弹窗引导设置。使用非官方 Copilot 模型(BYOK/自定义提供商)时,缺少配置的辅助模型会触发 "No utility model is configured" 报错。

VS Code 在后台使用轻量级模型执行标题生成、提交信息创建、搜索、意图检测等实用任务;GCMP 的提交消息生成、视觉分析等功能也需要独立指定模型。若未手动配置,VS Code 会回退到 Copilot 内置模型,这会消耗月度额度(尤其是免费用户的有限配额);将这些任务指向 GCMP 提供的模型可节省 Copilot 额度给更重要的用途。

💡 快速配置入口:悬停状态栏的 Token 消耗图标,在弹出的每日统计底部文本菜单点击「设置辅助工具模型」,即可打开可视化面板统一配置下列全部模型;也可通过命令面板执行 GCMP: 设置辅助工具模型

{
    // 通用实用任务:标题生成、摘要、意图分类、重命名建议、终端命令/修复/解释、搜索助手、VS Code 问答
    "chat.utilityModel": "gcmp.deepseek/gcmp.deepseek:::deepseek-v4-pro",
    // 轻量实用任务:提交信息、分支名生成、进度消息、待办跟踪(建议用快速低成本模型)
    "chat.utilitySmallModel": "gcmp.deepseek/gcmp.deepseek:::deepseek-v4-flash",
    // 内联聊天(Inline Chat)默认模型
    "inlineChat.defaultModel": "GLM-4.7 (CodingPlan) (gcmp.zhipu)",
    // Agent 模式中的探索/规划子 Agent(如代码库搜索、方案规划)
    "chat.exploreAgent.defaultModel": "GLM-4.7 (CodingPlan) (gcmp.zhipu)",
    "chat.planAgent.defaultModel": "GLM-4.7 (CodingPlan) (gcmp.zhipu)",
    // GitHub Copilot Chat 各专用 Agent(Ask / Implement / Explore)
    "github.copilot.chat.askAgent.model": "GLM-4.7 (CodingPlan) (gcmp.zhipu)",
    "github.copilot.chat.implementAgent.model": "GLM-4.7 (CodingPlan) (gcmp.zhipu)",
    "github.copilot.chat.exploreAgent.model": "GLM-4.7 (CodingPlan) (gcmp.zhipu)",
    // GCMP 内置 Commit 消息生成模型
    "gcmp.commit.model": {
        "provider": "zhipu",
        "model": "glm-4.7"
    },
    // GCMP 内置视觉分析模型(必须支持图像输入)
    "gcmp.vision.model": {
        "provider": "zhipu",
        "model": "glm-4.6v"
    }
}

推荐规格:utilitySmallModel 选择响应快的模型(如 deepseek-v4-flash),可配合 maxInputTokens: 16384 等低规格满足快捷任务即可。通用任务(标题生成、摘要等)使用 chat.utilityModel

settings.json 中编辑时,将光标置于值位置,使用 VS Code 智能提示从已注册的模型中选择即可。若未配置这些设置,VS Code 会使用 Copilot 内置模型执行实用任务,这可能会消耗免费用户的 Copilot 月度额度。推荐配置为 GCMP 模型,可避免实用任务占用 Copilot 配额。

也可通过命令面板执行 GCMP: 设置辅助工具模型,在可视化面板中统一配置上述所有模型。

入口快捷方式:悬停状态栏的 Token 消耗图标,在弹出的每日统计底部文本菜单中点击「设置辅助工具模型」即可进入同一面板。

  • chat.utilitySmallModel:轻量实用任务模型(默认 gpt-4o-mini)。覆盖 chat-title(标题)、git-commit-message(提交信息)、git-branch-name(分支名)、inline-progress-message(进度消息)、prompt-categorizer(意图分类)、todo-tracker(待办跟踪)、rename-suggestions(重命名建议)、terminal-command/quickfix/explain(终端命令/修复/解释)、workspace-search(搜索助手)。
  • chat.utilityModel:通用实用任务模型(默认 CAPI fallback)。覆盖 settings-resolver(设置搜索)、explain-code(代码解释)、vscode-qa(VS Code 问答)。
  • inlineChat.defaultModel:内联聊天(Inline Chat)默认模型,用于编辑器内联对话(Ctrl+I / 右键 "在行内聊天")。
  • chat.exploreAgent.defaultModel:Explore 子 Agent 默认模型,用于 search-subagent 代码库探索与搜索。
  • chat.planAgent.defaultModel:Plan 子 Agent 默认模型,用于 Agent 模式中的方案规划与任务拆解。
  • github.copilot.chat.askAgent.model:Ask Agent 默认模型,用于 Ask 模式问答。
  • github.copilot.chat.implementAgent.model:Implement Agent 默认模型,用于 Implement 模式代码实现。
  • github.copilot.chat.exploreAgent.model:Explore Agent 默认模型,用于 Explore 模式代码库探索。
  • gcmp.commit.model:GCMP 内置提交消息生成模型。
  • gcmp.vision.model:GCMP 内置视觉分析模型,必须选择支持图像输入的模型。

🤖 内置的AI大模型提供商

本扩展仅预置存在自有模型的一线大模型提供商(如具备模型自研能力的主流云厂商),第三方模型接入请使用「OpenAI / Anthropic Compatible」兼容模式。

智谱AI - ZhipuAI

  • 模型列表:详见 config/zhipu.json(Coding Plan / 按量计费 / 免费模型)。
  • 套餐类型Coding Plan
    • 用量查询:已支持状态栏显示周期剩余用量,可查看 GLM Coding Plan 用量信息。
  • 国际站点:已支持 国际站(z.ai) 切换设置。
  • 搜索功能:集成 联网搜索MCPWeb Search API,支持 #zhipuWebSearch 进行联网搜索。
    • 默认启用 联网搜索MCP 模式,编程套餐支持:Lite(100次/月)、Pro(1000次/月)、Max(4000次/月)。
    • 可通过设置关闭 联网搜索MCP 模式以使用 Web Search API 按次计费。

MiniMax

  • 模型列表:详见 config/minimax.json(Token Plan 套餐 / 按量计费)。
  • 套餐类型Token Plan
    • 搜索功能:集成 Token Plan 联网搜索工具,支持通过 #minimaxWebSearch 进行联网搜索。
    • 用量查询:已支持状态栏显示周期剩余用量,可查看 Token Plan 套餐用量信息。
    • 国际站点:已支持国际站 Token Plan 套餐使用。

MoonshotAI

  • 模型列表:详见 config/moonshot.json(会员权益 / 按量计费)。
  • 套餐类型会员权益,Kimi 会员计划 套餐附带的 Kimi For Coding 编程模型权益。
    • 搜索功能:集成 Kimi Search 联网搜索工具,支持通过 #kimiWebSearch 进行联网搜索。
    • 用量查询:已支持状态栏显示周期剩余用量、加油包钱包余额与到期时间,可查看套餐的剩余用量及限频重置时间。
  • 余额查询:已支持状态栏显示当前账户额度,可查看账户余额状况。

DeepSeek

  • 模型列表:详见 config/deepseek.json
  • 余额查询:已支持状态栏显示当前账户额度,可查看账户余额详情。

阿里云百炼 - AliDashScope

快手万擎 - StreamLake

火山方舟 - Volcengine

腾讯云 - Tencent

Xiaomi MiMo

百度千帆 - Baidu Qianfan

阶跃星辰 - StepFun

  • 模型列表:详见 config/stepfun.jsonStep Plan / 按量计费)。
  • 搜索功能:集成 #stepfunWebSearch MCP 联网搜索工具,支持 category 参数过滤。
    • Step Plan 套餐可使用 MCP 调用,非订阅套餐使用标准按次计费接口。

蚂蚁百灵 - Ant Ling

蚂蚁集团开源的 MoE 架构大语言模型家族,采用 Anthropic 模式接入。

讯飞星辰 - XunFei Astron

科大讯飞旗下大模型服务平台,采用 Anthropic SDK 模式接入,支持双套餐密钥管理。

LongCat - LongCat

LongCat API 开放平台的 Agentic 模型,采用 Anthropic SDK 模式接入。

CLI 编程工具 API 提供商

以下提供商本身是开源或商业的 AI 编程 CLI 工具(类似 Claude Code),开放了 API 接口供第三方调用其聚合的模型能力。

OpenCode

Hyper - Charm Hyper

ClinePass - Cline 官方推出的模型订阅服务

  • 模型列表:详见 config/clinepass.json
  • 用量查询:已支持状态栏显示周期剩余用量、重置时间及总利用率。

OAuth 认证编程助手提供商

⚠️ 风险警告:以下提供商通过模拟官方 CLI 工具的 OAuth 身份验证方式来实现对应的 API 访问,可能涉嫌滥用第三方服务条款,存在被官方检测封禁账号的风险。请仅在确保知情并自愿承担风险的前提下使用。

Codex CLI - OpenAI Codex

OpenAI 官方编程助手 Codex 的命令行工具,支持通过 codex CLI 进行身份验证(需要本地安装 codex CLI)。

npm install -g @openai/codex@latest
  • 支持模型:详见 config/codex.json
  • 用量查询:已支持状态栏显示 ChatGPT 订阅周期剩余用量,可查看订阅余量信息。
  • 独立代理设置:Codex CLI 使用自己的代理配置(与扩展全局代理 gcmp.proxy 独立)。可通过 gcmp.providerOverrides.codex.proxy 单独指定 Codex 请求的代理地址。
{
    "gcmp.providerOverrides": {
        "codex": {
            "proxy": "http://127.0.0.1:10808"
        }
    }
}

Grok Build - xAI Grok Build

xAI 官方 Grok Build 编程助手命令行工具,支持通过 grok CLI 进行 OAuth 身份验证(需要本地安装 Grok Build CLI)。

# macOS / Linux
curl -fsSL https://x.ai/cli/install.sh | bash

# Windows PowerShell
irm https://x.ai/cli/install.ps1 | iex

⚙️ 高级配置

GCMP 支持通过 VS Code 设置来自定义AI模型的行为参数,让您获得更个性化的AI助手体验。

📝 提示settings.json 所有参数修改会立即生效。

通用模型参数 及 额外支持功能 配置

{
    "gcmp.retry.enabled": true, // 启用自动重试(默认 true),关闭后请求失败直接停止
    "gcmp.retry.maxAttempts": 3 // 1-10,仅对可重试错误生效
}
  • gcmp.retry.enabled 默认值为 true,开启后自动重试 429 限流、503 服务繁忙等可重试错误。设为 false 可完全禁用重试,请求失败立即停止。
  • gcmp.retry.maxAttempts 默认值为 3,用于控制 429 限流、502/503/504 服务端错误、网络中断等可重试错误的最大自动重试次数。
  • 重试延迟按累加序列递增(1s → 3s → 6s → 10s → 15s),上限 15s。
  • 重试期间状态栏会显示重试进度(如 模型名 retry #2/3 in 3s),模型开始返回数据时自动清除。
  • gcmp.maxTokens 已弃用:此设置不再生效,各模型现在自动使用自身的 maxOutputTokens 配置。

提供商级别重试配置覆盖

通过 gcmp.providerOverrides.{provider}.retry 可为每个提供商独立设置重试策略,覆盖全局 gcmp.retry.* 行为。maxAttempts 不受全局 1-10 上限约束,允许设置为任意正整数或 -1(无限重试)。

{
    "gcmp.providerOverrides": {
        "xfyun": {
            "retry": {
                "enabled": true,
                "maxAttempts": 15, // 不受 1-10 上限约束
                "maxDelayMs": 30000 // 最大延迟上限 30s
            },
            "retry.xfyun-coding": {
                // 子 provider 独立策略(优先级更高)
                "enabled": true,
                "maxAttempts": 20,
                "maxDelayMs": 60000
            }
        }
    }
}

合并优先级(字段级合并,每个字段独立回退):

providerOverrides["retry.{subProvider}"] → providerOverrides.retry → 内置预置 → 全局默认

特殊语义

字段值 含义
maxAttempts = -1 无限重试(仅由可重试错误判断决定退出)
maxAttempts = 0 禁止重试(override 路径,等价于 enabled: false
preset.maxAttempts = 0 不会压低全局 maxAttempts;若需强制禁用应使用 override
enabled = false 按 enabled 字段合并优先级生效

各功能专属设置(如 gcmp.commit.enabledgcmp.vision.modelgcmp.zhipu.search.enableMCP)分别在其对应的功能章节中说明,不在此处展开。

调试与 HAR 录制

{
    "gcmp.debug.captureHar": false, // 是否将所有 HTTP 请求记录为 HAR 文件(默认关闭)
    "gcmp.debug.harRetentionCount": 7 // 每个 VS Code 进程保留的最近 HAR 文件数量(0 表示仅禁用按数量清理,2 小时硬删除仍生效)
}
  • 开启 gcmp.debug.captureHar 后,GCMP 会在 globalStorage/har/ 目录下按 VS Code 实例和日期生成 HAR 1.2 文件,方便排查兼容性与网关问题。
  • FIM / NES 补全、Gist 同步、CLI OAuth 刷新等敏感或高频请求默认不录制,避免敏感凭据和大量重复请求落盘。
  • 写入前会对敏感请求头、URL 查询参数及重定向 URL 中的凭据进行脱敏,但请求体和响应体仍会按原样保存,请妥善保管 HAR 文件。
  • HAR 文件最长每 30 分钟轮换一次;超过 2 小时的旧文件会在新录制或文件轮换时强制删除。
  • harRetentionCount 控制每个进程按数量保留的最近文件数;设为 0 时仅禁用按数量清理,2 小时硬删除仍会继续执行。

代理与系统证书配置

{
    "gcmp.proxy": "http://127.0.0.1:7890", // 全局代理(可选),推荐使用完整 URL
    "gcmp.tls.useSystemCertificates": true // 追加系统根证书(默认开启)
}
  • gcmp.proxy 会作为扩展内所有网络请求的默认代理,包括:聊天请求、FIM / NES 补全、联网搜索、MCP 客户端、状态栏余额/用量查询、Compatible Provider 的"获取模型"请求,以及 CLI OAuth 刷新请求。
  • 代理优先级为:model.proxygcmp.providerOverrides.<provider>.proxygcmp.providerOverrides.compatible.proxy(仅非内置 provider) → gcmp.proxy → VS Code http.proxy → 环境变量(HTTPS_PROXY / HTTP_PROXY)→ 系统代理(自动检测)
  • 代理地址支持 host:port 简写(如 127.0.0.1:7890),但推荐使用完整 URL,如 http://127.0.0.1:7890
  • 填写 noproxy 可显式绕过所有代理(包括系统代理和已配置代理),且在代理链路上任一层次设为 noproxy 时立即短路,不再继续回退。
  • 当无显式代理配置时,扩展会自动检测 Windows 注册表或 macOS scutil 中的系统代理设置并自动沿用。
  • ⚠️ 不支持 PAC (Proxy Auto-Config) 代理协议。若系统代理设为 PAC,扩展将忽略该配置,需要时请改为显式代理地址。

  • gcmp.tls.useSystemCertificates 用于将操作系统信任的根证书追加到 Node.js 默认 CA 列表,适合企业代理、内网网关或本地安装自签根证书场景。
  • 支持带认证的代理 URL,日志中会自动脱敏用户名和密码。

提供商配置覆盖

GCMP 支持通过 gcmp.providerOverrides 配置项来覆盖提供商的默认设置,包括 baseUrlproxycustomHeader 等。

支持范围因提供商类型而异

提供商类型 支持覆盖的字段 models[]
内置提供商(deepseek/zhipu 等) baseUrlcustomHeaderproxyretrymodels[] ✅ 支持新增和覆盖模型
已知提供商(aihubmix/openrouter 等) customHeaderproxyretry ❌ 不支持(走 gcmp.compatibleModels
自定义提供商(compatibleModels 中自定义 provider) customHeaderproxyretry ❌ 不支持(走 gcmp.compatibleModels
compatible 自身 customHeaderproxyretry ❌ 不支持(走 gcmp.compatibleModels

已知/自定义/compatible 提供商不支持 models[],模型定义统一通过 gcmp.compatibleModels 配置。

配置优先级

模型自身设置 > providerOverrides.{provider} > providerOverrides.compatible
  • providerOverrides.compatible 作为全局默认值,对所有 Compatible Provider 下的模型生效
  • 代理地址:model.proxy > providerOverrides.{provider}.proxy > providerOverrides.compatible.proxy(仅非内置 provider) > gcmp.proxy > VS Code http.proxy > 环境变量
  • 自定义 HTTP 头:providerOverrides.{provider}.customHeader > 模型自身 customHeader > providerOverrides.compatible.customHeader
  • 重试配置:providerOverrides["retry.{subProvider}"] > providerOverrides.retry > 内置预置 > 全局 gcmp.retry.*

配置示例

{
    "gcmp.providerOverrides": {
        "dashscope": {
            "proxy": "http://127.0.0.1:7890", // 可选:提供商级默认代理
            "models": [
                {
                    "id": "deepseek-v3.2", // 增加额外模型:不在提示可选选项,但允许自定义新增
                    "name": "Deepseek-V3.2 (阿里云百炼)",
                    "tooltip": "DeepSeek-V3.2是引入DeepSeek Sparse Attention(一种稀疏注意力机制)的正式版模型,也是DeepSeek推出的首个将思考融入工具使用的模型,同时支持思考模式与非思考模式的工具调用。",
                    // "sdkMode": "openai", // 阿里云百炼已默认继承提供商设置,其他提供商模型可按需设置
                    // "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
                    "maxInputTokens": 128000,
                    "maxOutputTokens": 16000,
                    "capabilities": {
                        "toolCalling": true,
                        "imageInput": false
                    }
                }
            ]
        },
        "aihubmix": {
            "proxy": "http://127.0.0.1:7890", // 已知或自定义提供商也支持代理覆盖
            "customHeader": { "X-Custom": "value" },
            "retry": {
                // 提供商级重试覆盖
                "enabled": true,
                "maxAttempts": 5,
                "maxDelayMs": 30000
            }
        },
        "compatible": {
            "proxy": "http://127.0.0.1:7890" // 全局默认代理,所有 Compatible Provider 模型生效
        }
    }
}

🔌 Compatible 自定义模型支持

GCMP 提供 Compatible Provider,用于支持任何 OpenAI 或 Anthropic 兼容的 API。通过 gcmp.compatibleModels 配置,您可以完全自定义模型参数,包括扩展请求参数。

  1. 通过 GCMP: Compatible Provider 设置 命令启动配置向导。
  2. settings.json 设置中编辑 gcmp.compatibleModels 配置项。

自定义模型内置已知提供商ID及显示名称列表

聚合转发类型的提供商可提供内置特殊适配,不作为单一提供商提供。 若需要内置或特殊适配的请通过 Issue 提供相关信息。 已知提供商支持通过 gcmp.providerOverrides.{providerId} 覆盖 customHeaderproxy

提供商ID 提供商名称 提供商描述 余额查询
aiping AI Ping 用户账户余额
aihubmix AIHubMix 可立享 10% 优惠 ApiKey余额
openrouter OpenRouter 用户账户余额
siliconflow 硅基流动 用户账户余额

配置示例

{
    "gcmp.compatibleModels": [
        {
            "id": "glm-4.6",
            "name": "GLM-4.6",
            "provider": "zhipu",
            "model": "glm-4.6",
            "sdkMode": "openai",
            "baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4",
            // "proxy": "http://127.0.0.1:7890", // 可选:仅对该模型生效,也用于“获取模型”探测请求
            // "sdkMode": "anthropic",
            // "baseUrl": "https://open.bigmodel.cn/api/anthropic",
            "maxInputTokens": 128000,
            "maxOutputTokens": 4096,
            "capabilities": {
                "toolCalling": true, // Agent模式下模型必须支持工具调用
                "imageInput": false
                // "editTools": ["multi-find-replace", "find-replace", "code-rewrite"] // 可选:模型偏好的编辑工具,对应 VS Code LanguageModelChatCapabilities.editTools
            },
            // customHeader 和 extraBody 可按需设置
            "customHeader": {
                "X-Model-Specific": "value",
                "X-Custom-Key": "${APIKEY}"
            },
            "extraBody": {
                "temperature": 0.1,
                "top_p": 0.9,
                // "top_p": null, // 部分提供商不支持同时设置 temperature 和 top_p
                "thinking": { "type": "disabled" }
            }
            // "webSearchTool": true, // 可选:启用联网搜索(仅 sdkMode=anthropic / openai-responses 生效)
            // "nativeTools": [{ "type": "web_search" }] // 可选:注入原生工具(仅 sdkMode=openai-responses 生效)
        }
    ]
}
  • gcmp.compatibleModels[*].proxy 仅作用于当前自定义模型;在填写 baseUrl 后点击“获取模型”时,也会使用同一代理设置进行探测。

sdkMode

gcmp.compatibleModels[*].sdkMode 指定请求/流式解析方式,可选值:openai(默认)、openai-sseopenai-responsesanthropic

自定义 provider 余额/用量查询示例:usage + usages 智能合并

对于 Compatible 自定义 provider,可在 gcmp.providerOverrides.{providerId} 下配置:

  • usage:可选;单一余额查询时只配置它即可,也可作为 usages 的公共默认值
  • usages:可选;仅在需要多个命名金额/余额查询模式时使用,每个条目都可在 usage 基础上增量覆盖

也就是说:

  • 只配置 usage:就是单一余额查询
  • 需要多个查询模式时:再通过 usages 做多金额/多余额覆盖查询
  • usageusages 都不配置:就不会注册该自定义 provider 的余额/用量查询

内置已知 provider 的 usage / usages 参考配置方式,可直接查看源码 src/utils/knownProviders.ts

注意:gcmp.providerOverrides 的 provider key 必须与 gcmp.compatibleModels[*].provider 完全一致,包括大小写。

例如,下面这个更贴近实际 settings.jsonNekoCode 相关配置片段表示:

  • gcmp.compatibleModels 下有多个模型共用同一个 provider: "NekoCode"
  • gcmp.providerOverrides.NekoCode.usage 提供默认查询 URL https://api2.nekoapi.ai/v1/usage 和公共字段路径 balance
  • gcmp.providerOverrides.NekoCode.usages.payusage 的最终查询配置等价,只额外提供显示名称 余额
  • gcmp.providerOverrides.NekoCode.usages.sub 复用 usage.fields.balance,但把查询 URL 覆盖为 https://api2.nekoapi.ai/v1/user/balance
{
    "gcmp.compatibleModels": [
        {
            "id": "nekocode:gpt-5.5",
            "name": "GPT-5.5 (NekoCode)",
            "provider": "NekoCode",
            "model": "gpt-5.5",
            "sdkMode": "openai-responses",
            "baseUrl": "https://api2.nekoapi.ai/v1",
            "proxy": "noproxy",
            "maxInputTokens": 272000,
            "maxOutputTokens": 128000,
            "capabilities": {
                "toolCalling": true,
                "imageInput": true
            },
            "reasoningDefault": "xhigh",
            "reasoningEffort": ["none", "low", "medium", "high", "xhigh"],
            "extraBody": {
                "store": false,
                "reasoning": {
                    "effort": "xhigh",
                    "summary": "auto"
                }
            },
            "useInstructions": true,
            "customHeader": {
                "version": "0.134.0",
                "user-agent": "codex-tui/0.134.0 (Windows 10.0.26200; x86_64) unknown (codex-tui; 0.134.0)",
                "originator": "codex-tui"
            }
        }
    ],
    "gcmp.providerOverrides": {
        "NekoCode": {
            "usage": {
                "url": "https://api2.nekoapi.ai/v1/usage",
                "fields": {
                    "balance": "balance"
                }
            },
            "usages": {
                "pay": {
                    "displayName": "余额",
                    "url": "https://api2.nekoapi.ai/v1/usage"
                },
                "sub": {
                    "displayName": "订阅",
                    "url": "https://api2.nekoapi.ai/v1/user/balance",
                    "fields": {
                        "balance": "remaining"
                    }
                }
            }
        }
    }
}

该配置的实际效果是:

  • providerOverrides.NekoCode 会同时作用于所有 provider: "NekoCode" 的兼容模型,例如上面的 GPT-5.4 (NekoCode)GPT-5.5 (NekoCode)
  • pay 会继承 usage.fields.balance = "balance"
  • sub 也会继承 usage.fields.balance = "balance"
  • 因为 payusage 解析出的查询配置等价,所以不会再额外生成一个重复的 default 模式

最终状态栏会按两个命名模式进行查询与展示:

  • NekoCode / 余额
  • NekoCode / 订阅

💡 FIM / NES 内联补全建议功能

  • FIM:根据上下文预测并补全光标处缺失的代码,适合单行/短片段补全。
  • NES:基于编辑上下文提供智能代码建议,支持多行代码生成。

使用前必读:需先在对话模型中配置并验证 ApiKey;在输出面板选择 GitHub Copilot Inline Completion via GCMP 可查看调试信息。接入的是通用大模型,未针对代码补全专门训练,效果可能不及 Copilot 原生 Tab 补全。

FIM / NES 内联补全建议模型配置

FIM 和 NES 补全都使用单独的模型配置,可以分别通过 gcmp.fimCompletion.modelConfiggcmp.nesCompletion.modelConfig 进行设置。

代理配置:FIM 和 NES 支持通过 proxy 字段单独设置代理地址(如 http://127.0.0.1:7890),方便在不同网络环境下调试。支持带认证的代理,日志中会自动脱敏用户凭据。

  • 启用 FIM 补全模式(推荐 DeepSeek、Qwen 等支持 FIM 的模型):
    • 已测试支持 DeepSeek硅基流动,特殊支持 阿里云百炼
{
    "gcmp.fimCompletion.enabled": true, // 启用 FIM 补全功能
    "gcmp.fimCompletion.debounceMs": 500, // 自动触发补全的防抖延迟
    "gcmp.fimCompletion.timeoutMs": 5000, // FIM 补全的请求超时时间
    "gcmp.fimCompletion.modelConfig": {
        "provider": "deepseek", // 提供商ID,其他请先添加 OpenAI Compatible 自定义模型 provider 并设置 ApiKey
        "baseUrl": "https://api.deepseek.com/beta", // ⚠️ DeepSeek FIM 必须使用 beta 端点才支持
        // "baseUrl": "https://api.siliconflow.cn/v1", // 硅基流动(provider:`siliconflow`)
        // "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1", // 阿里云百炼(provider:`dashscope`)
        // "proxy": "http://127.0.0.1:7890", // 可选:单独设置代理地址
        "model": "deepseek-chat",
        "maxTokens": 100
        // "extraBody": { "top_p": 0.9 }
    }
}
  • 启用 NES 手动补全模式
{
    "gcmp.nesCompletion.enabled": true, // 启用 NES 补全功能
    "gcmp.nesCompletion.debounceMs": 500, // 自动触发补全的防抖延迟
    "gcmp.nesCompletion.timeoutMs": 10000, // NES 补全请求超时时间
    "gcmp.nesCompletion.manualOnly": true, // 启用手动 `Alt+/` 快捷键触发代码补全提示
    "gcmp.nesCompletion.modelConfig": {
        "provider": "zhipu", // 提供商ID,其他请先添加 OpenAI Compatible 自定义模型 provider 并设置 ApiKey
        "baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4", // OpenAI Chat Completion Endpoint 的 BaseUrl 地址
        // "proxy": "http://127.0.0.1:7890", // 可选:单独设置代理地址
        "model": "glm-4.6", // 推荐使用性能较好的模型,留意日志输出是否包含 ``` markdown 代码符
        "maxTokens": 200,
        "extraBody": {
            // GLM-4.6 默认启用思考,补全场景建议关闭思考以加快响应
            "thinking": { "type": "disabled" }
        }
    }
}
  • 混合使用 FIM + NES 补全模式
  • 自动触发 + manualOnly: false:根据光标位置智能选择提供者
    • 光标在行尾 → 使用 FIM(适合补全当前行)
    • 光标不在行尾 → 使用 NES(适合编辑代码中间部分)
    • 如果使用 NES 提供无结果或补全无意义,则自动回退到 FIM
  • 自动触发 + manualOnly: true:仅发起 FIM 请求(NES 需手动触发)
  • 手动触发(按 Alt+/):直接调用 NES,不发起 FIM
  • 模式切换(按 Shift+Alt+/):在自动/手动间切换(仅影响 NES)

MistralAI Coding FIM 配置示例

{
    "gcmp.compatibleModels": [
        {
            "id": "codestral-latest",
            "name": "codestral-latest",
            "provider": "mistral",
            "baseUrl": "https://codestral.mistral.ai/v1",
            "sdkMode": "openai",
            "maxInputTokens": 32000,
            "maxOutputTokens": 4096,
            "capabilities": {
                "toolCalling": true,
                "imageInput": false
            }
        }
    ],
    "gcmp.fimCompletion.enabled": true,
    "gcmp.fimCompletion.debounceMs": 500,
    "gcmp.fimCompletion.timeoutMs": 5000,
    "gcmp.fimCompletion.modelConfig": {
        "provider": "mistral",
        "baseUrl": "https://codestral.mistral.ai/v1/fim",
        // "proxy": "http://127.0.0.1:7890", // 可选:单独设置代理地址
        "model": "codestral-latest",
        "extraBody": { "code_annotations": null },
        "maxTokens": 100
    }
}

熔断器(Circuit Breaker)

FIM 与 NES 补全请求连续失败时,熔断器会暂时停止请求,避免无限重试浪费资源和费用。

三态模型

状态 说明
Closed 正常通行,请求通过并累计失败次数
Open 熔断断开,拒绝所有请求,进入冷却倒计时
HalfOpen 冷却结束后允许一次探测请求,成功则恢复 Closed,失败则重新熔断 Open

工作流程

  1. 请求连续失败达到 failureThreshold 后,熔断器从 Closed → Open
  2. Open 状态下所有请求被立即拒绝,等待 cooldownSeconds 秒冷却
  3. 冷却结束后首次 allowRequest() 进入 HalfOpen,发放一次探测请求
  4. 探测成功(recordSuccess())→ 回到 Closed,恢复服务
  5. 探测失败(recordFailure())→ 回到 Open,重新冷却。每冷却周期只重试一次(默认每 30 秒一次),直到成功或用户手动「立即重试」
  6. 请求被用户取消(recordCancellation())→ 不消耗 HalfOpen 探测名额,可重新探测

熔断通知:Open 状态首次触发时弹出通知提示(30 秒内不重复),支持「立即重试」恢复服务或「查看设置」跳转配置页。

配置项

{
    // FIM 熔断器配置(默认启用)
    "gcmp.fimCompletion.circuitBreaker": {
        "enabled": true, // 启用熔断
        "failureThreshold": 10, // 默认 10,范围 2-60
        "cooldownSeconds": 30 // 默认 30,范围 10-300
    },
    // NES 熔断器配置(默认启用)
    "gcmp.nesCompletion.circuitBreaker": {
        "enabled": true, // 启用熔断
        "failureThreshold": 5, // 默认 5,范围 2-20
        "cooldownSeconds": 30 // 默认 30,范围 10-300
    }
}

配置修改即时生效,无需重启 VS Code。

快捷键与操作

快捷键 操作说明
Alt+/ 手动触发补全建议(NES 模式)
Shift+Alt+/ 切换 NES 手动触发模式

🪟 上下文窗口占用比例状态栏

GCMP 提供上下文窗口占用比例状态栏显示功能,以饼图图标直观反映当前会话的上下文窗口占用比例。

主要特性

  • 实时监控:状态栏以饼图图标实时显示当前会话的上下文窗口占用比例(0/1/8 ~ 8/8)
  • 悬停详情:鼠标悬停可查看模型名称、占用百分比、Token 用量及请求来源类型
  • 增量预估:支持基于上一轮 API 实际用量做增量预估,WebView 详细视图中会显示"本次新增"(~+xx)列,帮助追踪长会话中每轮请求的新增 Token 消耗

📊 Token 消耗统计功能

GCMP 内置了完整的 Token 消耗统计功能,帮助您追踪和管理 AI 模型的使用情况。

主要特性

  • 持久化记录:基于文件系统的日志记录,无存储限制,支持长期数据保存
  • 用量统计:记录每次 API 请求的模型和用量信息,包括:
    • 模型信息(提供商、模型 ID、模型名称)
    • Token 用量(预估输入、实际输入、输出、缓存、推理等)
    • 请求状态(预估/完成/失败)
  • 多维度统计:按日期、提供商、模型、小时等多维度查看统计数据
    • 小时统计详情:支持按小时、提供商、模型三层嵌套显示
      • ⏰ 小时级别:显示该小时的总计数据
      • 📦 提供商级别:显示该提供商在该小时的汇总数据
      • ├─ 模型级别:显示该模型在该小时的详细数据
      • 提供商和模型按请求数降序排列,无有效请求的提供商和模型不显示
  • 实时状态栏:状态栏实时显示今日 Token 用量,30秒自动刷新
  • 可视化视图:WebView 详细视图支持查看历史记录、分页显示请求记录
  • 请求来源分类:记录并显示每次请求的 Copilot 请求类型(如主 Agent、标题生成、提交消息、搜索子 Agent、视觉识别等),便于追踪后台实用任务的实际消耗
  • 实时请求指标:流式阶段实时展示首流延迟(TTFT)与输出耗时(TPOT),完成后由真实 usage 自然刷新
  • 实时输出 token 估算:流式阶段基于 tokenizer 实时估算输出 token 与输出速度(tokens/s),输出列以"最近一次接收的预估增量"(+xx tks)形式展示,完成后由真实 usage 覆盖
  • 缓存命中率可视化:输入列合并展示缓存命中数与输入总数,并显示缓存命中率,帮助判断缓存策略效果
  • 客户端成本估算:支持峰谷分档定价、服务等级(serviceTier)计费和上下文大小条件分档,Token 数量下方内联显示预估成本,状态栏、详情页、多日趋势页均集成展示
  • 双币种成本展示:定价配置支持 USD/RMB 双币种并列,按模型原生结算币种标记展示;状态栏(中文环境)、详情页、侧边栏日期列表与会话记录、多日趋势页均支持成本双币显示,并新增 USD/RMB 货币切换视图
  • 多日成本视图:多日趋势图新增成本趋势折线图与成本卡片汇总

使用方式

  • 查看统计:点击状态栏的 Token 用量显示,或通过命令面板执行 GCMP: 查看今日 Token 消耗统计详情 命令
  • 历史记录:在详细视图中可查看任意日期的统计记录
  • 数据管理:支持打开日志存储目录进行手动管理

配置选项

{
    "gcmp.usages.retentionDays": 100 // 历史数据保留天数(0表示永久保留)
}

📝 Commit 生成提交消息功能

GCMP 支持在提交前自动读取当前仓库的改动(已暂存/未暂存/新文件),提取关键 diff 片段并结合相关历史提交与仓库整体提交风格(auto 模式下)来生成更贴合你项目习惯的提交信息。

为避免将无关噪音或潜在敏感内容发送给模型,Commit 消息生成功能会在分析 diff 前做一层过滤:

  • 自动省略 lockfile / snapshot 的大段 diff 内容,例如 package-lock.jsonyarn.lockpnpm-lock.yamlbun.lockb*.snap
  • 自动跳过常见敏感文件,例如 .env*、证书/私钥文件、.aws / .ssh / .gnupg / .docker 目录下的文件
  • 支持通过 gcmp.commit.sensitiveFiles 追加你自己的敏感文件匹配规则

系统要求

  • vscode.git 扩展:该功能依赖 VS Code 内置的 vscode.git 扩展来访问 Git 仓库信息
    • 扩展会自动检测 Git 可用性,当 Git 不可用时相关按钮将自动隐藏
    • 如果你的环境中禁用了 vscode.git 扩展,Commit 消息生成功能将不可用

使用入口:Git仓库管理视图

  • 仓库标题栏按钮:

Comments (0)

Sign in to join the discussion.

No comments yet

Be the first to share your take.