不墨 Router

发布于 2026 年 10 月 25 日 星期日

不买 Copilot 也能用 Copilot CLI:BYOK 接不墨 Router

GitHub Copilot CLI 1.0.103 用四个 COPILOT_PROVIDER_* 环境变量接不墨 Router,无需 GitHub 登录和 Copilot 订阅,两种 wire API 都实测可用。

不买 Copilot 也能用 Copilot CLI:BYOK 接不墨 Router

可以。GitHub Copilot CLI 支持自带模型供应商(BYOK):设置 COPILOT_PROVIDER_BASE_URL 等环境变量后,CLI 直接请求你填的 OpenAI 兼容接口,不需要 GitHub 账号,也不需要 Copilot 订阅。 本次实测用不墨 Router 跑通了对话、文件工具调用和流式输出,Completions 与 Responses 两种 wire API 都通。

核验日期:2026-10-25。实测版本 GitHub Copilot CLI 1.0.103,模型 deepseek/deepseek-flash,测试环境没有登录 GitHub。

先准备一个 Router Key

登录 不墨 Router,在 API Key 页面 创建一个 Key,并给钱包充值。这个 Key 只在 Router 有效,不能拿 GitHub、OpenAI 或 DeepSeek 官方 Key 代替。

安装 Copilot CLI

npm install -g @github/copilot
copilot --version

本机首次安装时,npm 在写 196MB 原生二进制阶段卡在 Text file busy。换成解包方式即可,功能一样:

npm pack @github/copilot-linux-x64@1.0.103
tar xzf github-copilot-linux-x64-1.0.103.tgz
./package/copilot --version

这是本机安装路径的问题,不代表 CLI 本身不能用。正常环境里等 npm 装完就行。

用环境变量切到 Router

Copilot CLI 的 copilot help environment 列出了自带供应商相关变量。最小配置是这五个:

export COPILOT_PROVIDER_BASE_URL=https://router.bumo.cc/v1
export COPILOT_PROVIDER_TYPE=openai
export COPILOT_PROVIDER_API_KEY=sk-...        # 换成你的 Router Key
export COPILOT_MODEL=deepseek/deepseek-flash

# 非交互模式允许工具自动执行
export COPILOT_ALLOW_ALL=true
# 无人值守或离线环境关掉自动更新
export COPILOT_AUTO_UPDATE=false
变量 填什么 说明
COPILOT_PROVIDER_BASE_URL https://router.bumo.cc/v1 停在 /v1,CLI 自己拼后续路径
COPILOT_PROVIDER_TYPE openai 走 OpenAI 兼容协议
COPILOT_PROVIDER_API_KEY Router Key 不是 GitHub Token
COPILOT_MODEL 完整模型 ID 如 deepseek/deepseek-flash
COPILOT_PROVIDER_WIRE_API completions 或 responses 不填默认 Completions

只要 COPILOT_PROVIDER_BASE_URL 存在,CLI 就走自定义供应商。 这时它不会去校验 GitHub 身份,也不会检查你有没有 Copilot 订阅。想让配置长期生效,把上面几行放进 ~/.zshrc 或项目的 .env,不要把 Key 写进代码或提交到仓库。

两种 wire API 都能用

Router 同时提供 /v1/chat/completions 和 /v1/responses,Copilot CLI 两种都能对接:

# 默认:POST /v1/chat/completions,SSE 返回 chat.completion.chunk
export COPILOT_PROVIDER_WIRE_API=completions

# 另一条:POST /v1/responses,SSE 返回 response.created
export COPILOT_PROVIDER_WIRE_API=responses

两条路径本次都返回 200 并正常流式输出。如果你在网关侧看到只有一种协议可用,先确认 COPILOT_PROVIDER_WIRE_API 和实际请求路径是否对应,再排查 Key。

三项实测结果

项 怎么测 结果
对话 copilot -p "Reply with exactly: READY" -s 输出 READY
工具调用 让它用文件工具读 probe2.txt(内容是随机 token) 输出 TOOLTOKEN-I3gWmWDn,与文件一致
流式 主对话请求 200 + SSE,Completions 与 Responses 都通过

工具调用要注意:非交互模式必须让工具能自动执行(COPILOT_ALLOW_ALL=true),否则它会停在确认步骤,看起来像「没有工具能力」。交互模式里则是正常弹确认。

常见问题

现象 先查
还是要求登录 GitHub COPILOT_PROVIDER_BASE_URL 是否在当前 shell 生效;echo $COPILOT_PROVIDER_BASE_URL
401 / Unauthorized Key 是否复制完整、有没有多余空格,确认是 Router Key
404 / model not found COPILOT_MODEL 是否用完整 ID,大小写是否一致
有回复但工具不执行 非交互模式是否设了 COPILOT_ALLOW_ALL=true
responses 报错 改回 completions 再试,或确认 Router 侧该端点可用
启动时卡在自动更新 设 COPILOT_AUTO_UPDATE=false

模型 ID 不要自己缩写。Router 的公开列表里是 deepseek/deepseek-flash,写成 deepseek-flash 或 DeepSeek-Flash 都会找不到。完整列表可以直接看 https://router.bumo.cc/v1/models。

边界

本次只验证了最小对话、一次文件读取工具和流式输出,没有覆盖长上下文、图片输入、并行工具调用和断流重连。Copilot CLI 的环境变量以你安装版本的 copilot help environment 为准,升级后可能新增或改名。本文不承诺具体价格,实际计费以 Router 页面和用量记录为准。

前往不墨 Router 获取 Key。Copilot CLI 这边记住一句就够:有 COPILOT_PROVIDER_BASE_URL 就走自带供应商,模型名抄完整。

继续阅读