
Claude Code 有多狠不用我多说了。作为 Anthropic 官方的终端编程代理它在真实仓库里改代码、跑测试、提 PR 的表现确实比很多 IDE 插件更像一个“靠谱同事”。但它最劝退普通人的点不在学习曲线而在账单官方 API 按 token 计费一个重度使用者一天跑十几个会话一个月烧掉几百上千美元非常正常。于是社区里开始找订阅制入口其中一条被反复验证的路就是把 GitHub Copilot 订阅里包含的 Claude 模型额度通过 LiteLLM 代理给 Claude Code 用。整体下来每月成本压到一份 Copilot 订阅的价格模型照样是 Claude代码能力不缩水这就是我标题里说的“低成本运行”。这篇我把自己踩过的配置坑、token 坑、限流坑全部写出来给想低成本跑 Claude Code 的人一条能直接照抄的路线。1. 这套方案凭什么省钱计费逻辑与原理拆解1.1 Claude Code 官方计费为什么这么贵先算一笔账。Claude Code 本质是一个安装在终端里的客户端所有推理都发生在模型侧。它每次干活的时候会把当前仓库的目录结构、相关文件内容、Git 状态、工具返回值全部塞进上下文里一个稍微大点的项目很容易就有几万行代码进去token 消耗量比你在网页上聊天大得多。举个具体例子假设一个中等仓库跑一次比较大的重构任务消耗 20 万 input token 加 3 万 output token。按 Claude Sonnet 4 的价格粗略算20 万输入大约 0.6 美元3 万输出大约 0.5 美元单次任务就是 1 美元上下。一天来回 30 次就是 30 美元一个月 900 美元。如果换成 Opus 系列单价直接翻好几倍账单会更刺激。所以官方 API 不是不好用而是用起来像打车——每一公里都有计价器在跳。对于每天要长时间挂着 Claude Code 干活的重度用户来说这个费用很难扛住。而 Anthropic 官方虽然也有按月的订阅套餐但对 Claude Code 的高频并发调用限制比较多并不适合当作一个“随便跑”的后端。1.2 GitHub Copilot 订阅为什么能成为“便宜入口”GitHub Copilot 是另一种定价逻辑包月。个人版 Pro 订阅大概 10 美元一个月早年更便宜现在分档之后 Pro 也就 39 美元左右。它本身在 Chat 功能里集成了多款模型包括 OpenAI 的 GPT 系列也包括 Anthropic 的 Claude 系列。关键点在于Copilot 的计费是订阅制不是 token 计费。只要你在合理用量范围内重复调用不会像官方 API 那样一个 token 一个 token 地算钱。于是如果你已经有一份 Copilot 订阅同时你又希望在自己的 CLI 工具里用底层的 Claude 模型自然就会想办法把 Copilot 的模型能力“借出来”。这里要先说清楚我不是在教你绕过付费。整条链路的前提是你本来就订阅了 GitHub Copilot并且用自己的订阅额度做事。但客观上GitHub Copilot 为 VSCode、JetBrains 提供的 Chat 功能走的是 HTTP API这个接口本质上是一个 OpenAI 兼容的聊天补全服务。社区在很早之前就把这个入口封装成了可复用的工具我们只是把自己的 Claude Code 请求引导到这个入口上让同一份订阅额度服务于自己的终端工作流。1.3 LiteLLM 在中间扮演的角色那能不能直接让 Claude Code 连 Copilot不行因为两边说话的方式不一样。Claude Code 默认说 Anthropic Messages 协议请求要发到/v1/messages参数格式是 Anthropic 那一套。而 Copilot 的 Chat API 走的是 OpenAI 格式路径是/v1/chat/completions。LiteLLM 就是中间的“翻译兼调度员”。它是一个开源的 Python API 代理网关支持一百多家模型供应商。你要做的就是把 Copilot 的 API 配置成一个openai/开头的模型LiteLLM 对外暴露它自己的统一端点。Claude Code 连上 LiteLLM 之后LiteLLM 可以用/v1/messages接住 Anthropic 格式的请求翻译成 OpenAI 格式发给 Copilot再把响应包装回 Anthropic 格式返回给 Claude Code。协议不对齐的问题就这么解决了。第二个好处是控制。LiteLLM 自带请求日志、限流、预算设置、模型路由和重试机制。Copilot 这种上游服务不会给你看详细配额所以你自己在 LiteLLM 里设好 rpm每分钟请求数和 tpm每分钟 token 数限制特别重要能有效防止账号被风控。1.4 三种方案横向对比我用自己的体验做了个对比表方便你选方案每月成本模型能力稳定性主要风险官方 API 按量计费重度使用几百到上千美元官方全套最强很稳有 SLA账单失控Anthropic 订阅 Claude Code中高受公平使用限制官方模型比较稳高频长任务容易被限Copilot 订阅 LiteLLM一份 Copilot 订阅的价格Copilot 网关提供的 Claude 等模型中上看 token 服务稳定性违反服务条款风险、token 会过期比较下来Copilot 这条路的性价比确实突出但代价是需要自己维护中转链路也始终带一点灰色风险。这点我在后面避坑清单里会讲得更细。2. 动手前的准备账号、环境与安装2.1 前置条件速查开始之前建议先对照一下自己的环境一个活跃的 GitHub 账号并且已经开通 Copilot 订阅Pro、Pro 或企业版都行。电脑上装了 Node.js 18 以上。Claude Code 是 npm 包没有 Node 环境跑不起来。Python 3.9 以上。LiteLLM 和大部分 Copilot 转换工具都是 Python 写的。一个趁手的终端Windows 建议直接用 WSL2我在后面会解释为什么。装了 Git虽然不强制但克隆开源工具时需要。如果你是那种不想在自己主力环境里折腾的人建议先弄一台云服务器或者一个临时虚拟机把整套链路跑通之后再决定要不要搬到主力机器上。2.2 安装 Claude Code含 Windows 注意事项安装命令很简单npm install -g anthropic-ai/claude-code装完验证一下版本claude --version有一点我觉得很重要这套方案里不要急着登录官方的 Claude 账号。因为你一旦在claude里登录了 Anthropic 账号它之后会优先走官方逻辑再切环境变量容易混。正确做法是装完先不登录或者干脆把配置清了等环境变量就位之后再跑。Windows 用户可能会遇到比较奇葩的报错比如“Claude Code 由于与 64 位版本的 Windows 不兼容”之类。这不是你电脑坏了多半是 Node 版本太老或者 npm 全局路径没进 PATH。更省心的做法是直接用 WSL2里面装 Ubuntu所有命令都按 Linux 方式跑经验和网上教程也完全对得上。另外如果你遇到internetopenurl() failed. 0x800...这种错误先检查系统代理设置很多时候关掉代理或者重置一下 WinINET 就好了别一上来就重装。2.3 搞定 GitHub Copilot 订阅GitHub Copilot 的订阅入口在 GitHub 的 Settings - Billing - Plans and usage 里选 Copilot Pro 或 Pro 开通就行。个人开发者用 Pro 其实就够基础额度Pro 能用的模型多些限流也松点。这里有个常见问题有人走 GitHub 全球校园教师认证去申请免费 Copilot结果被拒。我自己见过的情况是材料不清晰、学校邮箱不在库、或者提交的学籍证明有效期太短这几类占了大头。被拒之后别疯狂重试按照邮件提示补材料比反复申诉有效得多。如果你是企业或组织账号还要留意管理员有没有在后台把 Copilot 里的 Claude 模型关掉。社区里常有人报错your organization has disabled claude subscription access for claude code实际上就是组织策略限制了 Claude 模型的访问这种情况你自己配置再完美也没用要么找管理员开权限要么在个人设备上换个人订阅。2.4 准备 LiteLLM 环境LiteLLM 的安装推荐用litellm[proxy]pip install litellm[proxy]装完检查一下litellm --versionLiteLLM 以 proxy 模式启动后会在本地开一个 HTTP 服务默认端口是 4000。它不只是个命令行工具更像一个可以独立运行的网关进程。后面 Claude Code 的所有请求都会打到这个端口上。3. 完整实操LiteLLM 接入 Copilot Chat API3.1 方案一用开源转换服务打开 Copilot API 入口让 Claude Code 能用到 Copilot 模型中间要先有一个“Copilot 接入层”负责处理 GitHub 登录、token 刷新、以及把 Copilot 的接口包装成标准的 OpenAI 兼容服务。社区里这类项目有不少常见的名字就是copilot-api去 GitHub 能搜到好几个实现选 star 多、最近还在维护的就行。基本用法都差不多。克隆下来之后安装依赖然后启动服务git clone https://github.com/你的仓库地址/copilot-api cd copilot-api pip install -r requirements.txt python main.py --host 127.0.0.1 --port 8080它第一次启动会引导你完成 GitHub 登录授权通常采用设备码流程终端显示一个 code浏览器打开github.com/login/device输入确认然后服务就拿着你的授权去获取 Copilot 的 chat token。之后它在本地127.0.0.1:8080开放一个 OpenAI 兼容接口路径是/v1/chat/completions。验证方式很简单curl http://127.0.0.1:8080/v1/models如果返回一列模型名说明接入层已经通了。常见能看到gpt-4o、claude-3.7-sonnet、claude-sonnet-4-20250514之类的名字。记下你打算用的 Claude 模型名后面 LiteLLM 的配置要用。3.2 方案二不依赖第三方服务手动获取 Copilot Token如果你不想引入第三方封装也可以手动把 token 拿下来。大致流程是先用 GitHub OAuth 的设备授权流程拿到一个 GitHub access token再用这个 token 去请求 Copilot 内部的 token 接口拿到一个专门用于 chat 补全的 token。最后用这个 token 直接请求https://api.githubcopilot.com/chat/completions。这个方法的问题在于Copilot chat token 有效期非常短通常只有几十分钟。你手动 curl 一次没问题但要持续给 Claude Code 用就得不停地刷新 token。所以除非你只是做技术验证否则我不推荐生产环境用手动方式。想要稳定还是用 3.1 里那种会自动 device flow 登录并周期性刷新 token 的服务更省心。3.3 用 LiteLLM 做统一代理并暴露给 Claude Code当本地已经有 Copilot 的 OpenAI 兼容服务后LiteLLM 的责任就是把它再包装一层同时提供 Claude Code 需要的那套 Anthropic 协议入口。创建一个配置文件config.yamlmodel_list: - model_name: claude-sonnet-4-20250514 litellm_params: model: openai/claude-sonnet-4-20250514 api_base: http://127.0.0.1:8080/v1 api_key: dummy rpm_limit: 20 tpm_limit: 100000 max_retries: 3说明几个关键字段model_name显示给 Claude Code 看的名字你可以随便起但建议和真实模型保持对应。litellm_params.modelLiteLLM 内部真正调用的模型标识openai/前缀是告诉它走 OpenAI 兼容格式。api_base上游 Copilot 转换服务的地址。api_keydummy 就行真正的认证发生在 Copilot 转换服务那边。rpm_limit和tpm_limit限流参数非常重要。Copilot 的订阅额度不是无限的你不设限很容易触发 429。然后启动 LiteLLMlitellm --config config.yaml --port 4000看到类似Uvicorn running on http://0.0.0.0:4000的日志就说明起来了。3.4 让 Claude Code 识别模型环境变量与模型映射接下来就是剪最后一段线让 Claude Code 知道别去连官方 API而是连本地的 LiteLLM。在终端里设置这几个环境变量export ANTHROPIC_BASE_URLhttp://127.0.0.1:4000 export ANTHROPIC_API_KEYsk-ant-dummy export ANTHROPIC_MODELclaude-sonnet-4-20250514 export ANTHROPIC_SMALL_FAST_MODELclaude-haiku-4-5解释一下每个是干什么的ANTHROPIC_BASE_URLClaude Code 所有 API 请求的根地址。指到 LiteLLM 之后它发的请求就全走本地了。ANTHROPIC_API_KEY因为不走官方这里给个占位符就行不能为空。ANTHROPIC_MODEL指定默认模型。这个名字必须和 LiteLLMmodel_list里的model_name对上。ANTHROPIC_SMALL_FAST_MODELClaude Code 内部有一些轻量任务比如生成标题、总结信息可以指定一个更小更快的模型别名。你要是用的是 Fish Shell 或者 Windows语法稍作调整就行。为了方便我会把这四行写进~/.bashrc或者用 direnv 放到项目目录里效果更好。3.5 验证链路是否打通配置完别急着让 Claude Code 做复杂任务先做最小验证。先直接测 LiteLLM 的 Anthropic 入口curl http://127.0.0.1:4000/v1/messages \ -H x-api-key: dummy \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:50,messages:[{role:user,content:直接回复OK不要加任何解释}]}如果返回正常的文本响应说明整个链条已经通了。再在终端里跑一句claude -p 列出当前目录里的文件这时候看 LiteLLM 的日志应该能看到请求从POST /v1/messages进然后转成POST /chat/completions出去再回来。如果 Claude Code 能正确列出文件说明工具调用也正常。到这一步整套链路就算跑通了。4. 常见问题与排查实录4.1 令牌类问题401、403、token 过期最常遇到的就是 401 Unauthorized。出现这个优先看 Copilot 转换服务的日志里面会写是 GitHub token 失效了还是 Copilot chat token 失效了。如果是 GitHub 登录态过期重新走一次设备码授权就行。如果你用的是手动获取 token 的方案那基本就是 token 半小时过期别犹豫换成 3.1 的自动刷新方案。还有个小坑有些人会在 LiteLLM 的api_key里填一个以sk-开头的假 key以为能骗过认证实际上 Copilot 转换服务根本不认这个它只认它自己维护的 GitHub 会话。我自己的习惯是每天早上跑一次claude之前先 curl 一下/v1/models如果返回 200说明 token 服务还活着如果返回 401就直接重启转换服务别等到任务跑一半才报错。4.2 限流与并发问题429、频繁重试Copilot 底层限流一直存在。刚开始用的时候我开过一个比较大的仓库然后让 Claude Code 并行分析多个文件结果十分钟内连续 429后面直接整个会话被冷却。现在我的做法是两层限流第一层在 LiteLLM 配置里给每个模型设rpm_limit和tpm_limit比如rpm_limit: 20就是每分钟最多 20 个请求第二层在 Claude Code 侧控制并发把并发数调小export CLAUDE_CODE_MAX_CONCURRENCY2另外如果你在终端里跑特别长的任务可以顺带关闭遥测减少无关请求export DISABLE_TELEMETRY1这一步不是必须的但实测下来请求数确实会干净一些。4.3 模型能力问题工具调用失效、回答截断Claude Code 非常依赖工具调用。它要让模型输出“调用某命令”的 JSON 结构如果模型不支持或者参数在中转时被吞了你会看到“does not support the tools parameter”之类的报错或者模型只会说话不会动手。最常见的起因是模型映射错了。比如你让 Claude Code 走gpt-4o而 Copilot 网关把工具参数过滤了一部分就会这样。解决方法是把ANTHROPIC_MODEL和 LiteLLMmodel_name都对齐到真实的 Claude 模型名不要映射到 GPT 模型上。还有一个小点LiteLLM 配置里drop_params默认会丢弃它认为上游不支持的参数如果你发现工具参数被吞可以显式把drop_params关掉确保完整的 tool use 结构透传到上游。回答截断则是另一个常见现象。Copilot 的上下文窗口有上限一个超大型仓库塞进去很容易触顶。我建议把仓库按目录拆开处理不要一次让 Claude Code 扫描整个 monorepo。LiteLLM 里也可以给定max_tokens但注意别超过上游允许的最大值否则会被直接拒绝。4.4 环境与兼容性问题Windows、网络错误、企业策略Windows 的问题我在前面提过最稳的办法就是 WSL2。如果你坚持在原生 Windows 下跑不要用太老的 Node装完后确认npm global bin目录在 PATH 里。遇到internetopenurl() failed. 0x800...这种大概率是系统代理或者 WinINET 设置出问题可以试试在管理员 PowerShell 里重置 WinINETnetsh winhttp reset proxy如果你是公司电脑还可能遇到“组织禁用”类的提示。这里其实有两层一是你们组织的 GitHub Copilot 策略关掉了 Claude 模型的入口二是 Claude Code 官方对某些企业策略很敏感。遇到这种情况最佳路径是联系组织管理员开通相关模型权限如果管理员不给开那就别死磕用个人订阅账号跑。还有一类问题是服务都正常但模型回答总是延时很高。排查顺序是先 ping 一下 Copilot 转换服务再用curl -w查看单个请求耗时逐步定位是 LiteLLM 转发慢还是上游慢。通常上游慢就换一个模型别名或者错峰使用。5. 避坑清单与使用建议5.1 账号安全与合规风险怎么避这条我必须放在最前面说。这套方案本质上是把 Copilot 订阅的模型额度引到非官方客户端严格来讲存在违反 GitHub Copilot 服务条款的可能性。我不是法律顾问也没法替你做决定但有几个原则可以帮你把风险降到可控范围别用你的主力 GitHub 账号跑。开个小号专门做测试和日常辅助就算被风控也不至于影响主账号。不要把 token 写进任何公开仓库和 dotfiles。转换服务存 token 的方式也要看清楚优先选内存保存、配置目录可隔离的项目。别拿它做商业化服务或大量对外接口。自己终端里写代码、跑脚本是一码事做成 Web 服务给团队或用户用完全是另一码事。准备好切换路径。Copilot 上游变动很快一旦接口收紧或者账号被限制你要能快速切回官方 API 或者本地模型别让自己卡死。我自己的心态是把它当一个“低成本体验和高频个人辅助工具”不是生产环境的唯一依赖。5.2 从 Copilot 扩展到 DeepSeek、GLM、本地模型的切换思路选 LiteLLM 还有一个好处是切换模型非常容易。不少人一提到 Claude Code就以为它只能接 Anthropic 和 Copilot其实通过 LiteLLM 你还能接 DeepSeek、通义千问、GLM 等第三方模型甚至接本地模型。比如你想接 DeepSeek只需要在config.yaml里加一个模型项model_list: - model_name: deepseek-chat litellm_params: model: deepseek/deepseek-chat api_key: ${DEEPSEEK_API_KEY}然后 Claude Code 那边把ANTHROPIC_MODEL改成deepseek-chat就行。本地模型也一样LM Studio 或 Ollama 起的服务通常就是 OpenAI 兼容格式LiteLLM 里写- model_name: llama3-local litellm_params: model: ollama_chat/llama3 api_base: http://127.0.0.1:11434社区里的ccswitch类工具本质上就是帮你管理这一套环境变量和 LiteLLM 配置的切换入口。装好之后你可以给不同 provider 建 profile比如“copilot”、“deepseek”、“qwen”、“glm”、“local”一键切换非常方便。如果你不想记命令这类工具绝对是提升效率的好选择。5.3 我测下来最舒服的日常配置跑了一段时间之后我现在的日常配置长这样主力模型用 Claude Sonnet 系列的 4 代或 3.7不用 Opus。Opus 虽然更强但在 Copilot 订阅下更容易触发限流而且日常改代码用 Sonnet 足够。小任务模型固定用 Haiku 系列比如ANTHROPIC_SMALL_FAST_MODELclaude-haiku-4-5。标题生成、摘要这类轻量任务不会占用主力额度。LiteLLM 端口固定在 4000转换服务端口固定在 8080两个进程常驻。我会在.bashrc里写个函数一条命令拉起整条链路cc-copilot() { cd ~/apps/copilot-api python main.py /tmp/copilot.log 21 litellm --config ~/litellm/config.yaml /tmp/litellm.log 21 export ANTHROPIC_BASE_URLhttp://127.0.0.1:4000 export ANTHROPIC_API_KEYsk-ant-dummy export ANTHROPIC_MODELclaude-sonnet-4-20250514 export ANTHROPIC_SMALL_FAST_MODELclaude-haiku-4-5 echo copilot litellm ready }大项目开工前先用claude -p快速测试角色再进入交互模式。这样可以在不占用任务时间的前提下快速发现链路问题。另外有人会拿它和 VSCode 里内置的 Copilot Chat 对比。内置的 Copilot Chat 走的是官方认证插件限流相对温和功能集成度高而我们这套自建链路换来的是 CLI 自动化、批量跑脚本、以及把同一模型额度用到 Anthropic 生态工具里的自由。代价就是所有中间环节都要自己维护。鱼与熊掌按需取舍。我个人在实际操作中的体会是这套方案最香的时刻不是省了一大笔 API 费用而是心里有底了——不管白天怎么折腾月底账单永远是固定的订阅费。踩过几次坑之后我现在对限流、token 刷新、协议转换这些细节已经形成肌肉记忆周末开工前五分钟就能把所有服务拉起来。最后再分享一个小技巧如果你发现某一次 Claude Code 的对话变得奇慢无比先别急着怀疑模型把 LiteLLM 的请求日志打开看一轮很多时候都是 Copilot 转换服务里的 token 快到期了整个请求在等待刷新。给它手动重启一下速度立刻就回来。这套链路不复杂但每个环节都可能掉链子只要一步一步排查稳定运行完全是可能的。