Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>Copilot模型配置助手New to Visual Studio Code? Get it now.
Copilot模型配置助手

Copilot模型配置助手

macrowing

|
6 installs
| (0) | Free
无需先登录GitHub Copilot,即可从兼容OpenAI格式的API获取模型并直接写入Copilot自定义模型配置。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Copilot模型配置助手

从兼容OpenAI格式的API获取模型列表,并将模型配置到GitHub Copilot。适合对接 OpenAI、DeepSeek,以及任何实现了 GET /v1/models 的兼容服务。

亮点特色

无需先登录 GitHub Copilot 账号,即可直接配置模型。 插件直接维护本机的 Copilot 自定义模型配置,并将 API Key 安全写入 Copilot 使用的加密存储,不依赖 Copilot 登录状态完成配置。

这不会绕过 GitHub 的授权或订阅校验;配置后的模型能否在 Copilot 中使用,仍取决于本机 VS Code 是否已安装并支持 GitHub Copilot 自定义语言模型能力。

能做什么?

  • 在活动栏打开「Copilot模型配置助手」,填写 Base URL 和 API Key 后拉取模型列表。
  • 按模型 ID 排序展示,点击条目查看接口返回的完整 JSON。
  • 保存过的连接会出现在「连接列表」,可一键恢复、复制地址或复制完整密钥。
  • 把历史连接加入 Copilot:自动写入 chatLanguageModels.json,并按 Copilot 规范保存密钥占位符。
  • 把单个模型加入已同步的 Copilot 连接组,或从组中移除。
  • 已加入 Copilot 的连接和模型显示绿色状态点,并展示组名。
  • 已有 Copilot 自定义连接会在启动或刷新时自动导入为历史记录,无需手工对照配置文件。
  • 连接列表加载完成后,自动检查并补齐用户级 settings.json 中缺失的推荐配置,已存在的配置不覆盖;同时确保状态栏隐藏项包含指定 ID。
  • 启动时可把自定义全局样式和脚本写入 VS Code 的 workbench.html,用于隐藏工作台元素,并在 Markdown 文件大纲中隐藏标题前的 #,保留原有树形层级。

安装与打开

在 VS Code 扩展面板搜索「Copilot模型配置助手」或扩展 ID zhifeiya.copilot-model-config-assistant 安装,也可用命令行:

code --install-extension zhifeiya.copilot-model-config-assistant

安装后左侧活动栏会出现「Copilot模型配置助手」图标。

也可以从本仓库构建开发版:

  1. 安装依赖:npm install
  2. 构建:npm run compile
  3. 在 VS Code 中打开本仓库,按 F5 启动扩展开发主机。
  4. 在新窗口左侧活动栏点击「Copilot模型配置助手」图标。

命令面板也可使用:

  • 刷新模型列表
  • 打开 Copilot模型配置助手设置

使用指南

1. 配置连接并获取模型

  1. 展开「连接配置」。
  2. 填写 Base URL,例如:
    • https://api.openai.com/v1
    • https://api.deepseek.com
    • https://api.deepseek.com/v1
  3. 填写 API Key。界面默认以密码框显示,历史列表只展示脱敏值。
  4. 点击 保存并获取模型。

插件会请求 {规范化后的 Base URL}/models。无论你是否手写 /v1,保存时都会整理成带 /v1 的地址。例如输入 https://api.openai.com,实际请求为 https://api.openai.com/v1/models。

保存成功后:

  • Base URL 写入 VS Code 全局状态。
  • API Key 写入 VS Code 密钥库,不会明文出现在 Webview 或普通日志里。
  • 当前连接进入「连接列表」。同一地址、不同密钥会保存为两条独立记录。

首次打开侧边栏时不会自动请求模型。需要点击某条历史连接,或填写新配置后保存。

2. 使用连接列表

连接列表保存最近使用过的配置,便于在多个服务之间切换。

操作 说明
点击连接 恢复该条 Base URL / API Key,并重新拉取模型
复制地址 复制完整 Base URL
复制密钥 从扩展宿主读取完整 API Key 并写入剪贴板,页面上仍只显示脱敏值
添加到 Copilot 为该连接创建 Copilot 自定义语言模型组
从 Copilot 删除 删除对应 Copilot 组及其全部模型,历史记录保留
删除历史 仅删除插件里的这条记录,不影响 Copilot 配置

状态说明:

  • 绿色小圆点:该连接已加入 Copilot。
  • 「组 xxx」:当前 Copilot 组名。组名只用于显示,真正的关联依据是连接地址 + API Key。
  • 已加入 Copilot 时,删除历史的「×」会隐藏,避免误删仍在生效的配置。
  • 从 Copilot 删除后,「×」重新出现。

删除历史前会弹出确认。若连接仍在 Copilot 中,插件会要求先执行「从 Copilot 删除」。

3. 浏览模型

保存或选中连接后,「可用模型」会显示接口返回的模型,并按 ID 排序。

如果 Copilot 配置中仍保留某个但接口已不再返回的模型,该模型也会继续显示,前面的状态点为红色,并且只能点击「从 Copilot 删除」。

  • 点击模型:下方展开详情,展示接口原始 JSON。
  • 复制按钮:复制模型 ID。
  • ↻ 刷新:重新请求当前连接的模型列表,并重新读取 Copilot 配置。

如果当前连接已经加入 Copilot,每条模型还会出现「添加到 Copilot / 从 Copilot 删除」:

  1. 只有连接已加入 Copilot 时,模型行才显示该按钮。
  2. 点击添加后,模型写入对应组的 models 数组。
  3. 已添加的模型显示绿色状态点,按钮变为「从 Copilot 删除」。
  4. 同一连接组内重复添加同一模型 ID 是幂等的,不会产生重复项。
  5. 不同连接可以添加相同的模型 ID,互不影响。

写入 Copilot 的模型字段规则:

  • id、name 都使用接口返回的模型 ID,两者相同。
  • url 使用当前连接地址,并只去掉结尾的 /v1 和多余斜杠,不会误删路径中间的 v1。
  • toolCalling、vision、上下文长度、推理力度等其余字段按 Copilot 自定义端点的固定值写入。

4. 同步到 Copilot

添加连接组

  1. 在连接列表点击「添加到 Copilot」。
  2. 输入组名。组名必须包含字母或数字,只能使用字母、数字、下划线或横线,例如 deepseek、my-openai。
  3. 确定后,插件在 chatLanguageModels.json 根数组中新增一组:
    • vendor 固定为 customendpoint
    • apiType 固定为 chat-completions
    • apiKey 只写占位符,例如 ${input:chat.lm.secret.xxxxxxxx}
    • models 初始为空数组
  4. 真实 API Key 写入 Copilot 实际使用的加密存储,不会写进 JSON。

组名不能重复。添加成功后,请到 Copilot 中选择该组模型并实际发起一次对话,确认密钥可用。

从 Copilot 删除连接组

点击「从 Copilot 删除」会弹出确认:该组下的全部 Copilot 模型都会被移除,但插件历史记录会保留。只有这一步才会改 Copilot 配置;删除历史记录不会自动删组。

旧配置导入

如果 chatLanguageModels.json 里已经有合规的自定义连接,而插件历史中还没有对应记录,启动或刷新时会自动导入:

  • 只导入 vendor 为 customendpoint、apiType 为 chat-completions 的组。
  • 必须能解析合法的密钥占位符。
  • 其他供应商或 API 类型会保留,但不会变成插件历史。
  • 导入后会显示组名、绿色状态点和对应模型状态。

5. 自动补齐推荐设置

扩展启动时,以及每次连接列表加载后,插件都会按内置清单逐项检查用户级 settings.json:

  • 配置项不存在:写入插件内置的推荐值。
  • 配置项已存在:无论取值是否与推荐值一致,都保持原样,不做覆盖。
  • 逐项独立进行,某一项写入失败不会影响其余配置。

清单内容与仓库根目录 test.txt 一致,涵盖提交信息生成说明以及若干 chat.*、workbench.*、terminal.*、update.* 开关。读写全部通过 VS Code 配置 API 完成,由当前实例自行定位用户设置文件,因此 macOS、Windows、Linux 以及 Stable / Insiders / Portable 都无需额外适配,也不会改动工作区级或文件夹级配置。

已补齐的配置在下一次加载时会被识别为“已存在”而跳过;若你手工删除了某一项,重新加载窗口后会再次补上。个别配置项在当前 VS Code 版本中无法写入时,插件只在输出通道记录一条包含键名的日志,其余项照常处理。

每次校验还会检查当前 profile 状态数据库中的 workbench.statusbar.hidden,把 src/settings/defaults.ts 中 STATUS_BAR_ARRAY 列出的状态栏项追加进去。默认隐藏 Copilot Chat 的 chat.statusBarEntry 和远程主机指示器 status.host;以后想隐藏其他状态栏项,直接往该数组追加对应 ID 即可。

  • 只追加缺失项,保留 VS Code 已有的其他隐藏项和顺序;重复执行是幂等的。
  • 它不是 settings.json 配置项,而是 globalStorage/state.vscdb 的内部状态,因此不使用 VS Code 配置 API。
  • 该状态由 VS Code 主进程缓存,写入后必须完全退出并重新打开 VS Code才会生效;仅重载窗口不会生效。
  • 只在本地桌面窗口执行;Remote SSH、容器、WSL 和网页版会跳过。因此请先在本地窗口完成一次加载并重启,再连接远程主机;同一 profile 的远程窗口会复用已写入的隐藏状态。
  • 数据库缺失、数据损坏或写入失败时,插件只在输出通道记录日志,不会覆盖原内容,也不会弹窗。

同一位置还会检查活动栏左下角账户头像的显示状态 workbench.activity.showAccounts(见 src/settings/defaults.ts 的 ACCOUNTS_VISIBILITY_KEY)。该键同样是 state.vscdb 中的 UI 状态,不是 settings.json 配置项。

  • 你从未调整过账户头像显示状态时写入 false,即隐藏活动栏的账户图标。
  • 你已经在活动栏右键菜单里勾选或取消过“账户”时,记录已存在,插件一律跳过,不改变你的选择(包括你手动重新显示它)。
  • 重复执行是幂等的;数据库缺失、表缺失或写入失败时只记录日志,不覆盖原内容。
  • 与状态栏隐藏项一样由 VS Code 主进程缓存,需完全退出并重新打开 VS Code才生效,只重载窗口可能看不到变化。

6. 全局样式(可选)

扩展启动时以及每次连接列表加载后,都会检查当前 VS Code 安装目录的 workbench.html,把 src/settings/defaults.ts 中的全局样式和脚本写入带标记的块。默认隐藏聊天输入框右上角的下拉操作:

.dropdown-action-container {
  display: none !important;
}

同时,脚本只在当前活动编辑器是 Markdown 文件(.md 或 .markdown)时处理大纲标题,将 ### 标题 显示为 标题。它只修改大纲条目的显示文本,不改变大纲的缩进、父子关系或折叠状态;切换到其他文件类型时会恢复原始标题。脚本兼容不同 VS Code 版本的大纲 DOM 结构,包括旧版的 .outline-element-label 和新版的 .monaco-highlighted-label。

  • 只维护自己的标记块,保留 CSP、VS Code 原有内容以及其他扩展(例如 Custom CSS Hot Reload)的补丁。
  • 不删除 CSP;内联脚本使用随机 nonce,并同步加入当前 workbench.html 的 script-src。
  • 写入的是当前 VS Code 安装目录,属于非官方修改。VS Code 升级会覆盖该文件;扩展会在后续启动或连接列表加载时重新写入,样式在之后的一次重载/重启后生效。
  • 仅本地桌面版执行;Remote SSH、容器、WSL、网页版跳过。
  • 安装目录不可写时会记录日志,不会覆盖原文件,也不会弹窗。
  • 将 WORKBENCH_CUSTOM_CSS 和全局脚本同时设为空字符串可移除已写入的块;卸载扩展不会自动清理该块,需要手动删除标记块,或先用空字符串启动一次。
  • 修改 WORKBENCH_CUSTOM_CSS 或全局脚本后,重载窗口生效。

写入样式后,VS Code 下次启动会检测到 workbench.html 与官方校验值不一致,并弹出“你的 VS Code 安装似乎已损坏”的警告。为避免这个提示,扩展会在成功维护样式块之后,按 VS Code 自身完整性服务的状态格式,向公共状态库(<用户目录>/User/globalStorage/state.vscdb 的 integrityService)预先写入 {"dontShowPrompt":true,"commit":"<当前安装目录 product.json 的 commit>"},效果等价于手动点过该提示里的“不再显示”。

  • 只在样式确实写入过 workbench.html 时处理;WORKBENCH_CUSTOM_CSS 为空时不会改动你的偏好。
  • 只补齐这两个字段,保留该记录里原有的其他字段;数据损坏或数据库不可用时报错且不覆盖原内容,错误只写入输出通道。
  • 该偏好与 commit 绑定,VS Code 升级后 commit 变化会自动重新写入,因此升级后仍然不会弹提示。
  • 由于提示被抑制,安装文件被其他程序意外破坏时也不会再提醒;如需恢复提醒,可在状态库中删除 integrityService 记录。
  • 自定义 profile 下写的是公共的 User/globalStorage/state.vscdb,因为该状态属于 application 作用域。

7. 生效时机与日志

上面三项自动写入的触发条件相同(扩展启动、以及每次连接列表加载后各执行一次),但生效条件不同:

写入内容 生效条件
推荐用户设置(settings.json) 立即生效,无需重启
状态栏隐藏项(state.vscdb) 必须完全退出并重新打开 VS Code;仅重载窗口(Reload Window)不会生效
活动栏账户头像显示状态(state.vscdb) 同上,需完全退出并重新打开 VS Code
全局样式(workbench.html) 需重载窗口才加载;VS Code 升级覆盖该文件后,会在下次启动时重新写入,同样需再重载一次

因此「刚装好插件、只重载了窗口」时,可能只看到推荐设置已写入,而状态栏和全局样式看起来没变化,这属于预期行为。

这些自动写入的失败不会弹窗打扰,统一记录在输出面板的「Copilot模型配置助手」通道里,排查时按 Ctrl+Shift+U(macOS 为 Cmd+Shift+U)选择该通道查看。

数据如何保存

数据 保存位置 说明
Base URL VS Code 全局状态 跨窗口复用当前连接地址
当前 API Key VS Code SecretStorage 扩展私有密钥库
连接历史 VS Code 密钥库 含地址、密钥和稳定 connectionId
Copilot 连接组 chatLanguageModels.json 只写占位符,不写明文密钥
Copilot 真实密钥 Copilot 使用的加密存储 与官方「管理语言模型」写入方式对齐

安全约定:

  • 配置文件、错误提示、普通日志、Webview 消息都不会输出完整 API Key。
  • 复制密钥仍可用,但由扩展宿主直接读取,不会把明文送到页面脚本。
  • 删除 Copilot 组时会清理对应密钥;若密钥仍被其他组使用,则不会误删。
  • 修改配置时只增删本插件管理的组和模型,保留文件中其他供应商配置以及未知字段。
  • 写入采用读取最新内容 + 临时文件再替换,避免中途中断损坏原文件。
  • 文件不是合法 JSON、根节点不是数组、无权限或写入失败时,不会覆盖原文件。

Copilot 配置路径

插件按当前 VS Code 实例定位配置,不会写死普通版 Code 目录。

常见位置:

  • macOS:~/Library/Application Support/Code/User/chatLanguageModels.json
  • Windows:%APPDATA%\Code\User\chatLanguageModels.json
  • Linux:~/.config/Code/User/chatLanguageModels.json
  • Insiders:上述路径中的 Code 替换为 Code - Insiders
  • Portable:{VSCODE_PORTABLE}/user-data/User/chatLanguageModels.json

文件不存在时会自动创建父目录和空数组 []。路径在每次实际操作前重新计算。

当前限制

  • 最低支持 VS Code 1.120.0;低于该版本时 engines.vscode 校验会导致无法安装。
  • 第一版只支持本地桌面版 VS Code 窗口。
  • Remote SSH、容器、WSL、网页版 VS Code 暂不支持管理 Copilot 配置,界面会给出明确提示。
  • 需要本机已安装并可使用 GitHub Copilot 自定义语言模型能力。
  • 模型写入 Copilot 后,部分能力字段(工具调用、视觉、推理力度等)使用固定值,不根据上游接口动态探测。

开发

npm install          # 安装依赖
npm run compile      # 类型检查、lint 与开发构建
npm test             # 运行扩展测试
npm run package      # 生产构建,产物在 dist/
npm run vsix         # 打包 VSIX 安装包到 out/

按 F5 启动扩展开发主机。修改代码后可重新启动调试,或在开发主机中执行 Developer: Reload Window。

生成 VSIX 安装包执行 npm run vsix,产物为 out/<name>-<version>.vsix。打包前会自动执行 vscode:prepublish 生产构建,vsce 已作为开发依赖安装,无需全局安装。安装到其他机器:

code --install-extension out/<name>-<version>.vsix

发布到 VS Code 扩展市场(需要 Azure DevOps Personal Access Token,且 package.json 的 publisher 与已注册的发布者 ID 一致):

npx vsce login zhifeiya   # 只需一次,PAT 存入系统钥匙串
npm run publish:patch     # 或 npm run publish / npm run publish:pre
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft