跳转到内容
OmniRoute source

VS Code Copilot Chat — OmniCopilot extension (中文 (简体))

  1. 运行 OmniRoute — npm install -g omniroute && omniroute(控制面板位于 http://localhost:20128)。
  2. 安装扩展 — 在扩展视图中搜索“OmniRoute”。
  3. 选择模型 — Copilot Chat → 模型选择器 → 管理模型… → OmniRoute,然后勾选 所需模型。

当 OmniRoute 在默认端口上运行时,无需进行任何配置。对于远程实例,请打开 活动栏中的 OmniRoute 图标(或运行 OmniRoute: Manage Connection),然后设置:

  • 服务器 URL — 服务器根地址,例如 http://192.168.0.15:20128。扩展会自动附加 /v1 后缀;请勿自行添加。
  • API 密钥 — 仅当服务器设置了 REQUIRE_API_KEY 时才需要。通过 VS Code SecretStorage 存储在操作系统密钥链中,绝不会存入 settings.json。

扩展不会直接显示原始的 GET /v1/models 有效负载——它会对其进行整理,而你看到的数量 少于目录大小,原因有两个,这是有意为之。

MODELS_CATALOG_PREFIX_MODE 默认为 dual,这会将每个模型公布两次——一次使用 短别名前缀,另一次使用规范提供程序前缀——以便旧版客户端配置仍可解析任一形式:

cc/claude-sonnet-4-6 ← 别名前缀
claude/claude-sonnet-4-6 ← 规范前缀,同一模型

扩展会请求 GET /v1/models?prefix=alias,从而让每个模型仅返回一个 id,而不会 更改其他客户端所使用的服务器全局设置。在参考实例中,这将 2345 个条目缩减为 1396 个——去除 949 个重复项,未丢失任何模型。

如果你希望在服务器范围内为 每个 客户端解决此问题,请在控制面板中将 MODELS_CATALOG_PREFIX_MODE 功能标志设置为 alias。有关查询参数和各模式表格,请参阅 API_REFERENCE → prefix。

目录中还列出了图像、视频、音频、重排序、嵌入和内容审核模型。无论如何,这些模型 都会拒绝聊天请求:

HTTP 400 — 模型 '<id>' 是图像生成模型,不能用于
/v1/chat/completions。请改用 POST /v1/images/generations。

因此,在这些模型进入选择器之前,会根据其 type 字段将其过滤掉。Responses-API 模型会予以保留——每个 Codex / GPT-5.x 条目都会声明 supported_endpoints: ["responses"], 而 OmniRoute 会为 /v1/chat/completions 转换这些请求,因此它们完全可用。

目录会列出具有活动连接的提供程序中的模型,以及所有 noAuth 提供程序——这些无需密钥的提供程序构成了免费层的很大一部分。这是有意为之。如需 隐藏它们,请在控制面板设置中将其添加到 blockedProviders;扩展中无需进行任何更改。


omnicopilot.dashboardOpen: "editor" 会通过 Simple Browser 在编辑器标签页中呈现 OmniRoute 仪表板,而不是在外部浏览器中打开。嵌入功能需要在服务器端主动启用,方法是设置 DASHBOARD_ALLOW_EMBED=vscode。这样提供 HTML 页面时将使用 frame-ancestors 'self' vscode-webview:,而不是默认的 frame-ancestors 'none' + X-Frame-Options: DENY。无论采用哪种方式,API 接口(/api、/v1、/v1beta、/a2a、/healthz)始终保留严格的响应头。

⚠️ 这是构建时标志,而不是运行时标志。 Next.js 会将 headers() 编译到路由清单中,因此 next.config.mjs 会在构建软件包时读取该变量 (next.config.mjs → resolveDashboardEmbedMode、scripts/build/dashboardEmbed.mjs)。 在已经构建完成的服务器前设置此变量不会产生任何效果——这些响应头已固化在构建产物中。

终端窗口
# 该变量必须在执行 BUILD 命令时存在
DASHBOARD_ALLOW_EMBED=vscode npm run build # 或 npm run build:release
npm start
安装方式 能否启用嵌入?
从源代码安装 ✅ 按上述方式在构建命令中设置该变量
npm install -g omniroute ❌ 已发布的软件包附带预构建的软件包——请改为从源代码构建
Docker 镜像 ✅ docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode -t omniroute:embed .——Docker Hub 上的预构建镜像未启用嵌入功能

如果构建时未启用嵌入,页面会拒绝被嵌入到框架中。扩展会通过响应头检测到这一情况,然后回退到外部浏览器——不会出现任何故障,并且扩展会显示一次相关提示。请参阅 ENVIRONMENT.md 和 issue #10273。


OmniRoute: Configure Coding CLI 会调用 omniroute CLI,为 Codex CLI、Claude Code、Cline、Continue、Cursor、Aider、OpenCode、Goose、Crush、Qwen Code、Kilo 和 Roo 写入可直接使用的配置文件——这些配置与 CLI-INTEGRATIONS.md 中所述的配置相同。API 密钥通过 OMNIROUTE_API_KEY 环境变量传递给 CLI,绝不会出现在命令行中。


症状 原因 / 解决方法
选择器中没有 OmniRoute 模型 无法连接服务器。状态栏圆点会变为灰色;请运行 OmniRoute: Check Connection。模型发现功能按设计不会显示提示,并且在连接失败时不会提供任何模型。
每个模型都出现两次 你使用的 OmniCopilot 版本低于 1.0.1——请更新。扩展现在会请求 ?prefix=alias。
之前列出的图像/音频模型消失了 从 1.0.1 起有意如此——这些模型本来就无法响应聊天请求。
Activity Bar 中缺少面板 VS Code 会将额外的视图容器移至 Activity Bar 底部的 “…” 溢出菜单中,而通过右键菜单隐藏的容器会一直保持隐藏状态。右键单击 Activity Bar → 勾选 OmniRoute,或通过 OmniRoute: Manage Connection 打开它。
尽管使用了 editor 模式,仪表板仍在浏览器中打开 服务器在构建时未设置 DASHBOARD_ALLOW_EMBED=vscode(见上文)——在启动预构建安装时设置该变量不会产生任何效果。该回退行为是有意设计的。
更改提供者后模型列表仍未更新 运行 OmniRoute: Refresh Models,或单击面板中的 ↻ 链接。


OmniRoute 源码 (a58000c7685f)

HagiCode

HagiCode 是一套智能体编码工作台:结构化工作流、多 Agent 并行执行与 Hero Dungeon 视图,把想法变成真正交付的软件。

让想法更快变成好用的软件,让智能编码更聪明、更高效,也更有趣。

HagiCode 浅色主题主界面截图
  • Smart结构化工作流将意图转化为从想法到交付的可执行路径。
  • Efficient多 Agent 工作流让调研、实现与审阅并行推进。
  • FunHero Dungeon 让长时间编码协作更直观、更有参与感。
访问 HagiCode