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

可以。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 就走自带供应商,模型名抄完整。



