文档
GitHub Copilot CLI
Copilot CLI 的 BYOK 方式只需设置四个环境变量;根据 GitHub 自己的文档,完全不需要登录 GitHub。将它指向 Kunavo 后,代理会使用预付余额运行,而非 AI Credits;同时,/delegate、GitHub MCP 服务器和 GitHub Code Search 仍需通过该登录使用。
四个环境变量 — COPILOT_PROVIDER_BASE_URL、COPILOT_PROVIDER_TYPE、COPILOT_PROVIDER_API_KEY 和 COPILOT_MODEL — 将 Copilot CLI 切换到你自己的端点;GitHub 说明 BYOK 无需 GitHub 登录。
# Set before you start Copilot CLI. Variable names and order are GitHub's;
# COPILOT_PROVIDER_BASE_URL and COPILOT_MODEL are the two marked Required.
export COPILOT_PROVIDER_BASE_URL=https://api.kunavo.com/v1 # see the note below
export COPILOT_PROVIDER_TYPE=openai # the default, shown for clarity
export COPILOT_PROVIDER_API_KEY=sk-kn-...
export COPILOT_MODEL=claude-sonnet-5
copilot/v1 是一个操作示例,而不是规则。 BYOK 页面仅将此字段定义为“模型提供商 API 端点的基础 URL”,其示例则指向两种不同格式:远程 OpenAI 兼容端点为 https://api.openai.com/v1,而 Ollama 和 Anthropic 使用不带路径的根地址。此页面采用远程 OpenAI 兼容格式,因为 Kunavo 属于这种情况。如果请求返回 404,说明后缀被重复添加了 — 请删除后缀并使用 https://api.kunavo.com。401 是密钥,而不是 URL;下文的 curl 会说明如何区分两者,然后再调试 CLI。~/.copilot/providers.json 会悄无声息地覆盖这些导出变量。 GitHub 的配置目录参考文档指出,如果该文件声明了任何 provider 或 model,它的优先级就高于 COPILOT_PROVIDER_* 环境变量,并将这些变量称为旧版配置;而 BYOK 操作指南从未提到这个文件。如果 CLI 忽略了你刚导出的基础 URL,请先检查该文件。同一参考文档仅将该文件描述为包含 providers 和 models 键的 JSON 对象,并未公布其架构,因此此处不提供示例;更多信息请参阅 GitHub 指向的 copilot help providers。/delegate 是 BYOK 提供商无法替代的 GitHub 端功能——GitHub 文档说明,未登录时无法使用这些功能;你可以同时登录并配置提供商,以继续使用它们。sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 GitHub Copilot CLI 设置页面。分步操作
- 在
/app/keys创建密钥并复制——它只会显示一次。 - 检查是否存在过时的
~/.copilot/providers.json(或其COPILOT_PROVIDERS_CONFIG指向的文件)。如果其中声明了 provider 或 model,其优先级就高于第 3 步中的所有设置。 - 按上述方式导出
COPILOT_PROVIDER_BASE_URL、COPILOT_PROVIDER_API_KEY和COPILOT_MODEL。COPILOT_PROVIDER_TYPE默认为openai;GitHub 将其描述为适用于“任何其他兼容 OpenAI Chat Completions API 的端点”。 - 从同一个 shell 启动
copilot——这些变量会在启动时读取,因此较早打开的终端仍会使用旧值。 - 给它一个读取并编辑文件的任务。Copilot CLI 要求模型支持工具调用和流式传输,首次运行时同时验证这两项,比发送问候语更有参考价值。若要比较两个 id,可使用
--model在单次运行中覆盖COPILOT_MODEL。
已于 2026年9月21日 对照 GitHub 的《在 GitHub Copilot CLI 中使用自己的 LLM 模型》 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。
调试客户端前先验证
一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 GitHub Copilot CLI 中使用。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."字段中应填写哪个模型 ID
每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。
| 模型 ID | Kunavo 输入 / 输出 | 它在 GitHub Copilot CLI 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 作为文件编辑会话默认工作模型 |
claude-opus-5 | $3.50 / $17.50 | 规划一个出错代价高昂的变更 |
claude-haiku-4-5 | $0.70 / $3.50 | 低成本调用——分诊、摘要,以及全天运行的循环 |
gpt-5-6-sol | $2.00 / $12.00 | 使用相同密钥和基础 URL,获得来自另一模型系列的第二种意见 |
另一种方式:COPILOT_PROVIDER_TYPE=anthropic
GitHub 记录了三种提供商类型,Kunavo 支持其中两种线格式:/v1/chat/completions 对应 openai,/v1/messages 对应 anthropic。GitHub 页面上的 Anthropic 示例包含四条导出命令,其基础 URL 是不带路径的源站地址 https://api.anthropic.com:
COPILOT_PROVIDER_TYPE=anthropicCOPILOT_PROVIDER_BASE_URL——根据 GitHub 示例的形式,应使用不带后缀的https://api.kunavo.com,因为 Anthropic 自身的路由位于该源站地址下的/v1/messages,Kunavo 也与之保持一致。这里同样适用上文的说明:GitHub 展示的是示例,而非规则。COPILOT_PROVIDER_API_KEY——你的sk-kn-密钥。Kunavo 的 Messages 接口 接受x-api-key或Authorization: Bearer格式,因此 CLI 在此选择哪种请求头都可以读取。COPILOT_MODEL——提供商期望的 id。GitHub 示例使用了带连字符的 Anthropic 风格拼写,而其受支持模型列表则用点号书写相同系列;在 BYOK 模式下,id 会传递到你的端点,因此请使用上表中的拼写。
本页为何仍优先介绍 openai 类型:GitHub 文档没有说明 Anthropic BYOK 路径会转发 cache_control、anthropic-beta 还是特定的 anthropic-version。对于重复上下文而言,这会影响账单——参见提示缓存——本页不打算对文档未说明的答案作出假设。openai 类型没有这类未解之处,因此本页为其提供了完整的配置块。
常见问题
如何让 GitHub Copilot CLI 指向自定义 API 端点?
启动 CLI 前设置环境变量。GitHub 的 BYOK 页面将 COPILOT_PROVIDER_BASE_URL 和 COPILOT_MODEL 标记为必填项;对于需要身份验证的端点,还需设置 COPILOT_PROVIDER_API_KEY。COPILOT_PROVIDER_TYPE 默认为 openai;GitHub 将其描述为适用于 OpenAI、Ollama、vLLM、Foundry Local 以及任何其他兼容 OpenAI Chat Completions API 的端点。其他可选值为 azure 和 anthropic。GitHub 在别处记录了一项注意事项:如果 ~/.copilot/providers.json 声明了任何 provider 或 model,其优先级就高于所有这些环境变量。
Copilot CLI 的基础 URL 末尾需要加 /v1 吗?
GitHub 的文档没有明确这一点。该字段仅被定义为“模型提供商 API 端点的基础 URL”,而页面自身的示例指向两种可能:远程 OpenAI 兼容示例为 https://api.openai.com/v1,而 Ollama 和 Anthropic 示例使用不带路径的源站地址。对于 OpenAI 兼容端点,请先采用 GitHub 为该情况展示的形式——https://api.kunavo.com/v1;如果请求失败并返回 404 而不是 401,说明后缀被重复添加了,应将其去掉。404 表示 URL 有误,401 表示密钥有误;在排查 CLI 前,使用相同基础 URL 直接执行一次 curl 即可区分两者。
GitHub Copilot CLI 的 BYOK 是否需要 GitHub 账户?
不需要。GitHub 的身份验证文档指出,使用自有 LLM 提供商 API 密钥配置 Copilot CLI 后,无需 GitHub 身份验证,CLI 会直接连接到你配置的提供商。此时有三项功能不可用:/delegate、GitHub MCP 服务器和 GitHub Code Search。你也可以同时登录并配置提供商,以保留这两种使用方式。GitHub 还记录了 COPILOT_OFFLINE=true,可用于 CLI 完全不联系 GitHub 服务器的环境——不过只有在提供商为本地服务时才能实现网络隔离,因为远程基础 URL 仍会收到你的提示词和代码上下文。
Kunavo 是否已使用其端点测试过 GitHub Copilot CLI?
没有。本页的配置依据页面所示日期的 GitHub BYOK 官方文档整理,文中内容均不是运行时测试结果——没有会话、没有流式交互、没有工具往返调用;本文档系列中的其他客户端也都是如此。GitHub 要求 BYOK 模型支持工具调用和流式传输,否则会返回错误,因此最诚实的第一步是由你自己验证:运行一个读取并编辑文件的任务,并以记录的费用和 CLI 的行为作为证据,而不是以本页面为准。