低成本运行 Claude Code:通过 LiteLLM 接入 GitHub Copilot Chat API 的完整指南

低成本运行 Claude Code:通过 LiteLLM 接入 GitHub Copilot Chat API 的完整指南

阅读原文

一、背景与动机

Claude Code 是 Anthropic 推出的编程 Agent 工具,很多人会用它做 “vibe coding”:一边写代码一边提问,在对话中重构、重组、查 bug,体验非常接近“和聪明同事结对编程”。

但在实际使用中,它有两个比较现实的问题:

  1. 成本高:频繁的对话请求,会很快消耗你的 Anthropic API 配额;
  2. 网络不稳:在一些网络环境下,直接请求 Anthropic API 可能经常超时或失败。

与此同时,很多开发者已经在使用 GitHub Copilot。GitHub 在 Copilot 背后接入了包括 Claude 在内的多种大模型(具体组合会随时间调整),而你已经为这部分算力付过费了。

于是,一个很自然的问题出现了:

能不能让 Claude Code 直接“吃” GitHub Copilot 的额度?

答案是肯定的。

本文会介绍如何使用 LiteLLM 作为本地中间层,让 Claude Code 对着本地代理讲话,再由本地代理去请求 GitHub Copilot Chat API(下文简称 Copilot API)。

1.1 使用前的合规提示

在继续之前,需要特别说明:

⚠️ 注意:通过中间层将 Claude Code 接入 Copilot API 的方式,并非 GitHub 官方公开文档中主推或保证支持的使用场景。
实际操作前,请自行阅读并评估 GitHub Copilot 的最新服务条款、使用限制与风控策略,确认自己的使用方式是合规且可接受风险的。

如果你清楚了解这一点,并愿意自行承担相应风险,可以继续往下。

二、整体架构

Claude Code 支持通过环境变量配置自定义的 BASE_URL。我们正是利用这一点,将它“接入” LiteLLM,再由 LiteLLM 去调用 Copilot API。

整体流程可以概括为:

  1. 客户端:Claude Code
    • 使用 claude CLI 客户端(本文中的 claude 命令,即 Claude Code 的命令行工具);
    • 配置为向本地 http://localhost:4000 发送请求。
  2. 中间件:LiteLLM 代理
    • 在本地启动一个 LiteLLM 代理服务;
    • 接收来自 Claude Code(Anthropic 风格)的请求;
    • 将请求参数转换为 Copilot API 支持的格式;
    • 添加必要的请求头,将自己伪装成编辑器插件客户端;
    • 将 Copilot API 的返回结果再转回给 Claude Code。
  3. 后端:GitHub Copilot Chat API(Copilot API)
    • 接收 LiteLLM 转换后的请求;
    • 返回模型输出,由 LiteLLM 原样转发给 Claude Code。

通过这种方式,你保留了完整的 Claude Code 交互体验,但实际计算由 GitHub Copilot 提供,从而:

  • 利用现有 Copilot 订阅额度,减少额外 API 支出
  • 通过本地代理和 Copilot 的网络优势,提高请求稳定性

三、准备工作

在开始动手之前,你需要:

  • 一个有效的 GitHub Copilot 订阅
  • 一台可以本地运行以下工具的电脑:
    • uv(推荐)或者 pip
    • claude(Claude Code CLI 工具)。

假设你已经可以在终端中直接运行:

claude --help

并看到正常的帮助信息。

四、第一步:创建 LiteLLM 配置文件

LiteLLM 是整个方案的核心入口。通过它的配置文件,我们将:

  • 定义一个逻辑模型名(Claude Code 将使用这个名字来“选模”);
  • 告诉 LiteLLM,真实的后端模型是 Copilot 提供的哪一个;
  • 配置必要参数和请求头,让 Copilot API 正常响应。

在任意目录下创建一个 config.yaml,内容示例:

model_list:-model_name: claude-opus-4.5litellm_params:# 使用 GitHub Copilot 作为实际提供方model: github_copilot/claude-opus-4.5# 丢弃 Claude Code 发出的非标准参数,避免后端报错drop_params:true# 添加伪装为编辑器客户端的 Headers,确保 Copilot 正常响应extra_headers:Editor-Version:"vscode/1.106.3"Editor-Plugin-Version:"copilot/1.388.0"Copilot-Integration-Id:"vscode-chat"User-Agent:"GithubCopilot/1.388.0"

这里有三个关键点:

  1. model_name
    • 这是暴露给 Claude Code 的“逻辑模型名”;
    • 稍后配置 ANTHROPIC_MODEL 时,需要与这里完全一致。
  2. model
    • 这是 LiteLLM 内部用来识别 Copilot 后端的标识;
    • 示例中使用的是 github_copilot/claude-opus-4.5,你可以根据 LiteLLM 文档和 Copilot 实际支持的模型进行调整。
  3. drop_params: true
    • 很关键;
    • Claude Code 常常会在 Anthropic 协议上附加一些扩展字段,而 Copilot API 未必认识这些字段;
    • 开启 drop_params 后,LiteLLM 会剥掉非标准参数,避免因为字段不兼容导致 Copilot 返回 4xx 错误。
如果你希望在 Claude Code 中切换多个不同模型,可以在 model_list 里再添加多个条目,每个条目的 model_name 不同即可。

五、第二步:安装并启动 LiteLLM 代理

推荐用 uv 安装 LiteLLM。uv 提供了隔离环境和更快的安装体验。如果不熟悉,也可以直接用 pip

5.1 安装 LiteLLM(含代理功能)

# 使用 uv 安装带 proxy 功能的 LiteLLM uv tool install"litellm[proxy]"# 如果你更习惯 pip,也可以:# pip install "litellm[proxy]"

安装完成后,litellm 会作为一个可执行命令出现在你的 PATH 中,可以直接在终端里使用。

5.2 启动 LiteLLM 代理

在包含 config.yaml 的目录下运行:

litellm --config config.yaml --port4000

这是你的 窗口 A,建议保持这个终端一直打开,用来观察日志。

5.3 首次使用 Copilot API 时的设备授权

LiteLLM 第一次调用 Copilot API 时,会引导你走一遍 GitHub 的设备授权流程:

  1. 终端里会打印一个 URL(通常类似 https://github.com/login/device)和一个 8 位设备码;
  2. 打开浏览器,访问这个 URL;
  3. 粘贴设备码,确认授权给相应应用;
  4. 授权成功后,回到终端,LiteLLM 会自动继续刚才的请求。

LiteLLM 会将获得的 token 缓存在本地(通常在你的配置目录下),后续重启代理不需要重复授权,除非 token 失效或手动清除。

六、第三步:配置 Claude Code 使用 LiteLLM

接下来要做两件事:

  1. 让 Claude Code 以为自己仍在访问 Anthropic API;
  2. 实际上把请求转发到本地的 LiteLLM 代理。

可以通过 环境变量(临时)或 Claude Code 配置文件(持久化)来完成。

6.1 环境变量(适合快速测试)

在启动 claude 之前,在 窗口 B 终端中执行:

exportANTHROPIC_AUTH_TOKEN="sk-any-string"# 客户端需要一个非空值,LiteLLM 会忽略它exportANTHROPIC_BASE_URL="http://localhost:4000"exportANTHROPIC_MODEL="claude-opus-4.5"# 必须与 config.yaml 中的 model_name 完全一致exportCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1# 减少遥测和非必要流量

说明:

  • ANTHROPIC_AUTH_TOKEN
    • 对 LiteLLM 无意义,不会被传给 Copilot API;
    • 只是为了满足 Claude Code 客户端自身的基本校验。
  • ANTHROPIC_BASE_URL
    • 将默认的 Anthropic 接口改为本地的 LiteLLM 代理;
    • 端口号需要和你实际启动 LiteLLM 时一致(这里为 4000)。
  • ANTHROPIC_MODEL
    • 字符串必须与 config.yaml 中的 model_name 一模一样;
    • 否则 LiteLLM 会报“模型不存在”或类似错误。
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
    • 把一些非必要请求(如遥测)关掉,减少噪音流量。

6.2 配置文件(适合长期使用)

如果你希望以后每次运行 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"}}

保存后,claude 在启动时会自动加载这些环境变量。

如果你原本就有自己的 settings.json(例如配置了其他集成),记得把上面的字段合并到原有 JSON 中,而不是完全覆盖文件。

七、第四步:启动并验证 Claude Code

现在你应该有两个终端窗口:

窗口 B:运行 Claude Code(CLI)

claude 

窗口 A:运行 LiteLLM 代理

litellm --config config.yaml --port4000

如果一切配置无误:

  • claude 应该能正常启动;
  • 你可以随便发一句话,例如:“帮我写一个 Python 脚本,打印 1 到 10 的平方。”;
  • 此时,看一眼 窗口 A 中 LiteLLM 的日志:
    • 应该能看到来自客户端的请求;
    • 日志中能看到类似 github_copilot/claude-opus-4.5 的调用记录。

如果看到这些,说明整个链路已经打通:

Claude Code → LiteLLM(本地代理) → Copilot API → LiteLLM → Claude Code

7.1 常见问题排查(可快速自检)

如果没有成功,可以按下面几个方向排查:

  1. Claude Code 提示找不到模型 / 报 404 类似错误
    • 检查 ANTHROPIC_MODELconfig.yamlmodel_name 是否完全一致(包括大小写和中划线)。
  2. LiteLLM 看不到任何请求
    • 检查 ANTHROPIC_BASE_URL 是否确实指向 http://localhost:4000
    • 确认 LiteLLM 代理是在同一台机器上运行,且未被防火墙拦截。
  3. LiteLLM 日志中出现 GitHub 相关的 401 / 403
    • 说明 Copilot 授权失败或 token 失效;
    • 重启 LiteLLM,让它重新走一遍设备授权流程;
    • 检查你的 GitHub 账户 Copilot 订阅是否仍然有效。

结语

通过在本地引入 LiteLLM 作为中间层,我们实现了:

  • 用 GitHub Copilot 作为 Claude Code 的“后端算力”
    在你已经订阅 Copilot 的前提下,减少额外购买 Anthropic API 的支出。
  • 通过本地代理提升网络稳定性
    请求只需要稳定访问 GitHub,而不必直接访问 Anthropic 的海外节点,在某些网络环境下会更友好。
  • 保留原汁原味的 Claude Code 使用体验
    对你而言,依然是在终端里运行 claude、打开 familiar 的对话界面,只是背后的算力来源发生了变化。

需要再次强调的是:

这种玩法属于“高级折腾”,并不是 GitHub 官方文档鼓励或保证长期可用的路径。
在正式使用前,请务必自己阅读 Copilot 最新的服务条款和使用规范,并自行评估合规性与风险。

对于那些:

  • 已经是 Claude Code 重度用户
  • 同时有 有效的 GitHub Copilot 订阅
  • 又希望在成本和网络稳定性之间找到平衡点的开发者——

这个方案非常值得折腾和体验一番。

如果你愿意继续深入,还可以在 LiteLLM 上挂接更多模型(如 OpenAI、原生 Anthropic API 等),再通过 Claude Code 的模型选择实现更灵活的编程工作流,这是另一个可以展开写一篇的主题了。

Read more

一步到位!VSCode Copilot 终极魔改:智谱 GLM-4.6 接入 + 任意大模型适配

VSCode Copilot 接入 GLM-4.6 方法 安装 vscode-zhipuai 插件后,在 VSCode 设置中添加以下配置: { "zhipuai.apiKey": "你的API_KEY", "zhipuai.model": "GLM-4" } 通过 Ctrl+Shift+P 调出命令面板,执行 ZhipuAI: Toggle Chat 即可激活对话窗口。该插件支持代码补全、对话和文档生成功能。 任意大模型适配方案 修改 VSCode 的 settings.json 实现通用 API 对接: { "ai.

By Ne0inhk
【人工智能】异构算力重构AIGC | 蓝耘智算平台部署通义万相2.1文生图技术全解析

【人工智能】异构算力重构AIGC | 蓝耘智算平台部署通义万相2.1文生图技术全解析

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 蓝耘智算平台 * 通义万相2.1文生图 * 优势 * 模型效果对比 * 蓝耘智算平台 * 登陆注册 * 蓝耘:通义万相2.1文生图的配置部署 * 使用实例 * 总结 前言:在人工智能(AI)技术日新月异的今天,AIGC(生成式人工智能内容生成)作为新兴领域,正以前所未有的速度改变着内容创作的格局。随着数据规模、算法复杂度的不断攀升,算力需求也呈现出爆发式增长的趋势。在这一背景下,异构算力作为提升算力效率与灵活性的关键手段,正逐渐成为推动AIGC技术发展的核心驱动力。 在AIGC技术指数级进化的浪潮下,文生图模型的参数量已突破千亿级门槛,据Stability AI最新报告显示,单次1080P图像生成的算力消耗较两年前激增320%,传统同构计算架构面临显存墙、能耗比失衡、硬件利用率不足等多重挑战。蓝耘智算平台通过革命性的异构算力重构方案,成功部署通义万相2.1这一业界领先的文生图大模型,开创了"算法-算力-场景"三位一体的AIGC工业化新范式。 蓝耘智算平台

By Ne0inhk

Llama-3.2-3B效果集:Ollama运行下3B模型在中文法律条文理解与类案推荐任务表现

Llama-3.2-3B效果集:Ollama运行下3B模型在中文法律条文理解与类案推荐任务表现 1. 为什么关注Llama-3.2-3B在法律场景的表现 你有没有试过让一个3B大小的模型读懂《民法典》第584条?或者让它从上百个判例中挑出和当前案件最相似的三个?很多人觉得小模型干不了法律这种专业活——毕竟法律文本密、逻辑严、术语多,动不动就是“当事人适格”“要件事实”“证明责任分配”这类词。但Llama-3.2-3B在Ollama本地部署后,真正在中文法律理解任务上交出了一份让人意外的答卷。 这不是理论推演,而是实测结果:它能在不联网、不调用外部API、仅靠本地3B参数量的前提下,准确提取法律条文的核心要件,识别争议焦点,并基于语义相似性给出类案推荐。更关键的是,响应快、资源省、部署简——一台16GB内存的笔记本就能跑起来。本文不讲架构图、不列训练细节,只聚焦一个问题:它在真实法律任务中,到底能做什么、做得怎么样、怎么用才不踩坑。 我们测试了三类典型任务:法律条文释义(比如解释“情势变更原则”的适用条件)、法条关联推理(如“合同解除后,

By Ne0inhk

Z-Image-Turbo极速体验:5分钟生成电影级高清壁纸,新手也能玩转AI绘画

Z-Image-Turbo极速体验:5分钟生成电影级高清壁纸,新手也能玩转AI绘画 引言:一张壁纸,真的要等10分钟吗? 上周我给手机换了新壁纸,想找个“赛博朋克风的雨夜东京街景”,结果在本地跑了一个小时,生成了23张图——其中17张是黑的,4张构图崩坏,剩下2张勉强能用,但分辨率糊得连霓虹灯都像打了马赛克。 直到我点开Z-Image-Turbo极速云端创作室的界面,输入一句英文描述,按下“ 极速生成”按钮,3.2秒后,一张1024×1024、细节拉满、光影如电影镜头般的高清壁纸,直接铺满了整个屏幕。 没有安装、没有报错、没有调参、没有黑图。你不需要懂CFG、不懂采样器、甚至不用记英文单词——只要你会说“我想看什么”,它就能立刻画给你看。 这不是未来,是现在;不是Demo,是开箱即用的生产力工具。今天这篇文章,就带你用5分钟时间,从零开始生成属于你的第一张电影级壁纸,并真正理解:为什么Z-Image-Turbo能让“AI绘画”这件事,第一次变得像发微信一样自然。 1.

By Ne0inhk