安装方式
命令行安装
在项目根目录执行以下命令,完成 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 代理设置失败问题(例如模型未找到、无 localhost 流量、GitHub 401/403 认证错误)。
113.9k
下载量
命令行安装
在项目根目录执行以下命令,完成 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 代理设置失败问题(例如模型未找到、无 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:4000claude 的同一个 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 或需要应用的差值(delta)ANTHROPIC_AUTH_TOKEN 是真正的 Copilot 凭证。~/.claude/settings.json。github_copilot/<model> 模式,并指出 Copilot 暴露的模型可用性可能发生变化。