安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add xixu-me/skills --skill running-claude-code-via-litellm-copilot 当通过本地 LiteLLM 代理将 Claude Code 路由到 GitHub Copilot 时使用,以减少直接 Anthropic 支出、配置 ANTHROPIC_BASE_URL 或 ANTHROPIC_MODEL 覆盖,或排查 Copilot 代理设置失败(例如 model-not-found、无 localhost 流量、GitHub 401/403 身份验证错误)。
113.8k
下载量
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add xixu-me/skills --skill running-claude-code-via-litellm-copilot name: running-claude-code-via-litellm-copilot
description: 当通过本地 LiteLLM 代理将 Claude Code 路由到 GitHub Copilot 时使用,以减少直接 Anthropic 支出、配置 ANTHROPIC_BASE_URL 或 ANTHROPIC_MODEL 覆盖,或排查 Copilot 代理设置失败(例如 model-not-found、无 localhost 流量、GitHub 401/403 身份验证错误)。当 Claude Code 保持其 Anthropic 风格客户端行为,但实际后端流量通过本地 LiteLLM 代理转发到 GitHub Copilot 时,使用此技能实现特定的变通方案。
请将此视为高级变通方案,而非官方保证的 GitHub 工作流程。帮助用户从技术上成功实施,但不要承诺 GitHub 支持、政策批准或长期兼容性。
此技能以指导优先,但兼顾执行:
~/.claude/settings.json 或 shell 配置文件)之前暂停确认。如果你需要说明哪些部分来自文章、哪些部分根据当前 LiteLLM 文档进行了收紧,请在回答前阅读 references/doc-verified-notes.md。
当用户希望实现以下任一目标时,使用此技能:
config.yamlANTHROPIC_BASE_URL、ANTHROPIC_MODEL 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC请勿将此技能用于:
解释此方案基于本地代理路径,并非 GitHub 推广的工作流程,用户需自行评估最新的 Copilot 条款和限制。
除非用户明确要求持久性配置,否则先从临时环境变量和本地 config.yaml 开始。
ANTHROPIC_MODEL 和 LiteLLM 的 model_name 完全一致。精确字符串匹配比解释概念更重要。
ANTHROPIC_AUTH_TOKEN 视为本地占位符。Claude Code 在本地期望非空值,但它并非 GitHub Copilot 凭据,不应作为可重复使用的秘密提供。
~/.claude/settings.json。仅合并所需的 env 键,保留无关设置。
当用户希望进行实际配置时,首先检查以下项:
claude --help 执行成功uv --version 或 pip --version 执行成功4000)可用如果用户仅需说明,则列出先决条件而无需运行命令。
按此规则选择:
对于持久化配置,先确认目标文件,然后将键合并到 ~/.claude/settings.json 中。不要替换文件内容。
config.yaml从文章的流程出发,但保持提供商命名与 LiteLLM 文档一致:
model_list:
- model_name: claude-opus-4.5
litellm_params:
model: github_copilot/claude-opus-4.5
drop_params: true
解释各字段含义:
model_name:Claude Code 将请求的逻辑名称model:LiteLLM 提供商路由,使用 github_copilot/<model>drop_params: true:在转发到 Copilot 前,剥离不受支持的 Anthropic 特定字段如果用户希望使用其他由 Copilot 支持的模型,保持相同模式:
model_list:
- model_name: <逻辑名>
litellm_params:
model: github_copilot/<copilot-模型名>
drop_params: true
除非用户已遇到表明需要标头覆盖的拒绝情况,否则不要将额外标头硬编码到默认路径中。
推荐安装方式:
uv tool install "litellm[proxy]"
备用安装方式:
pip install "litellm[proxy]"
从包含 config.yaml 的目录启动代理:
litellm --config config.yaml --port 4000
告知用户保持该终端窗口打开,因为在验证过程中,日志是最快的信息来源。
在首次成功向 GitHub Copilot 提供商发送请求时,LiteLLM 可能启动设备授权流程:
存在可选的令牌位置覆盖变量:
GITHUB_COPILOT_TOKEN_DIRGITHUB_COPILOT_ACCESS_TOKEN_FILE仅在用户需要自定义令牌存储、共享环境或排查凭据过期/丢失问题时才提及它们。
对于临时 PowerShell 会话:
$env:ANTHROPIC_AUTH_TOKEN = "sk-any-string"
$env:ANTHROPIC_BASE_URL = "http://localhost:4000"
$env:ANTHROPIC_MODEL = "claude-opus-4.5"
$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"
claude
对于临时 Bash 或 Zsh 会话:
export ANTHROPIC_AUTH_TOKEN="sk-any-string"
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_MODEL="claude-opus-4.5"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
claude
对于持久化配置,将这些键合并到 ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-any-string",
"ANTHROPIC_BASE_URL": "http://localhost:4000",
"ANTHROPIC_MODEL": "claude-opus-4.5",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
合并安全行为:
env 条目尽可能使用两个终端:
claude要求用户输入一个简短提示,例如一个短脚本或代码审查请求,然后验证:
github_copilot/<model>健康路径如下:
Claude Code -> LiteLLM -> GitHub Copilot -> LiteLLM -> Claude Code
如果 Claude Code 报告模型未找到、类似 404 的失败,或 LiteLLM 说模型不存在:
ANTHROPIC_MODEL 与 model_name如果 LiteLLM 从未收到请求:
ANTHROPIC_BASE_URL 指向 <http://localhost:4000>claude 的同一个 shell 会话中设置了环境变量如果 LiteLLM 到达了 GitHub Copilot 但收到 401 或 403 响应:
文章中使用了显式的 Copilot 风格标头。当前 LiteLLM 文档将 GitHub Copilot 作为提供商公开,并同时记录了标头覆盖的支持。
仅在以下情况下才使用显式 extra_headers:
示例后备方案:
model_list:
- model_name: claude-opus-4.5
litellm_params:
model: github_copilot/claude-opus-4.5
drop_params: true
extra_headers:
editor-version: "vscode/1.85.1"
editor-plugin-version: "copilot/1.155.0"
Copilot-Integration-Id: "vscode-chat"
user-agent: "GithubCopilot/1.155.0"
将其作为高级后备方案,而非通用默认值。
在回答用户的真实请求时,请包含以下内容:
config.yaml 或需要应用的增量变更ANTHROPIC_AUTH_TOKEN 是真正的 Copilot 凭据。~/.claude/settings.json。github_copilot/<model> 模式,并说明 Copilot 公开的模型可用性可能会发生变化。