☰
我用free-claude-code开源项目,把NVIDIA免费API接入Claude Code的完整配置记录
2026/10/18 5:19:39 网站建设 项目流程

1. 为什么要把 NVIDIA 免费 API 接进 Claude Code

Claude Code 的工程能力确实好用,上下文管理、记忆系统、Skill 封装、工具调用、Subagent 控制这些机制,用过一段时间就很难回去了。但官方 API 的账单也是真的顶不住,尤其是拿它跑长任务、反复读大文件的时候,token 消耗速度远超预期。很多人想低成本体验 Claude Code,卡点其实不在客户端本身,而在于背后那个 Anthropic 兼容的 endpoint 从哪来。

free-claude-code 这个开源项目解决的正是这个中间层问题。它本质是一个本地代理服务,对外暴露 Anthropic Messages API 的格式,对内把请求翻译成 OpenAI 兼容格式,转发给 NVIDIA NIM 这类提供免费额度的推理服务。Claude Code 完全感知不到背后换了模型,它以为自己还在和 Anthropic 官方通信,于是原生的工具调用、思考链展示、Skill 机制都能继续用。

NVIDIA NIM 的免费层给到每分钟 40 次请求,注册即用,对日常开发来说基本够。配合 free-claude-code 的并发控制和 429 退避,不容易被限流打挂。它支持的模型里,GLM-5.1 中文理解强、长上下文稳,MiniMax M2.7 的 coding 速度不错,Kimi K2 Thinking 的思考链保留得比较完整,这些都能通过.env里的模型映射统一配置。

这篇记录面向的是想低成本体验 Claude Code 的开发者,我会把环境变量、配置文件片段、启动命令、验证请求一步步写清楚,也会说明怎么把 endpoint 改到 TaoToken 的统一 Key/API 通道,方便后续切换模型时不用反复改本地代理。整套流程在 Windows 上实测跑通,Linux/macOS 只需把路径和启动脚本换一下即可。

需要提前说明一点:free-claude-code 是本地代理,它不改变 Claude Code 的调用协议,只是把请求转出去。所以你的settings.json里ANTHROPIC_BASE_URL指向的是http://localhost:8082,而不是任何外部地址。这个认知很关键,后面排查报错时全靠它。

2. 前置准备:NVIDIA Key、uv 与 free-claude-code 项目结构

动手之前先把三样东西备齐:一个 NVIDIA API Key、Python 的 uv 包管理器、以及克隆下来的 free-claude-code 仓库。这三样缺一个后面都会卡住,所以先集中处理。

NVIDIA API Key 去 build.nvidia.com 申请,注册后生成的 Key 以nvapi-开头。免费层每分钟 40 次请求,个人开发足够。拿到 Key 之后先别急着填,等.env文件建好再统一写进去,避免中途改来改去。

uv 是 Python 的现代包管理器,比 pip 快很多,free-claude-code 官方推荐用它。安装命令:

pip install uv

如果你机器上已经有 Python 3.10+,这行就能装上。装完可以用uv --version确认一下。接着克隆项目:

git clone https://github.com/Alishahryar1/free-claude-code.git cd free-claude-code

进入目录后执行依赖同步:

uv sync

这一步会创建.venv虚拟环境并把依赖装进去。实测下来第一次会拉一些包,耐心等它跑完。项目结构里比较关键的几个文件:server.py是代理入口,.env是你的配置,nvidia_nim_models.json列出了 NVIDIA NIM 可用的模型清单。后面改模型名的时候,直接对照这个 json 里的命名空间写,能少踩很多坑。

这里插一句关于模型命名的经验。NVIDIA NIM 的模型名带命名空间,比如z-ai/glm-5.1、minimaxai/minimax-m2.7、moonshotai/kimi-k2-thinking。在.env里配置时要带上nvidia_nim/前缀,写成nvidia_nim/z-ai/glm-5.1这种形式。很多人报 “model may not exist” 就是因为前缀漏了或者命名空间写错。

另外提醒一下,Claude Code 的配置文件在 Windows 上是C:\Users\你的用户名\.claude\settings.json,Linux/macOS 是~/.claude/settings.json。这个文件如果之前配过别的代理,建议先备份一份,免得改乱了回不去。

3. 可复制配置:.env 与 settings.json 片段

这一节是整篇的核心,配置写对了后面基本就顺了。先建.env文件,放在 free-claude-code 项目根目录下:

NVIDIA_NIM_API_KEY="nvapi-你的Key" MODEL_OPUS="nvidia_nim/z-ai/glm-5.1" MODEL_SONNET="nvidia_nim/z-ai/glm-5.1" MODEL_HAIKU="nvidia_nim/z-ai/glm-5.1" MODEL="nvidia_nim/z-ai/glm-5.1" ENABLE_THINKING=true PROVIDER_RATE_LIMIT=40

这里MODEL_OPUS、MODEL_SONNET、MODEL_HAIKU是 Claude Code 内部三个档位的模型映射,你可以让它们指向同一个模型,也可以分别指向不同模型实现混搭。比如把 Haiku 档位映射到速度快的 MiniMax,Opus 档位映射到思考能力强的 Kimi K2:

MODEL_OPUS="nvidia_nim/moonshotai/kimi-k2-thinking" MODEL_SONNET="nvidia_nim/z-ai/glm-5.1" MODEL_HAIKU="nvidia_nim/minimaxai/minimax-m2.7" MODEL="nvidia_nim/z-ai/glm-5.1"

ENABLE_THINKING=true会让支持思考链的模型把推理过程透传出来,GLM、Kimi K2 这类模型在 Claude Code 里能看到思考过程。PROVIDER_RATE_LIMIT=40对应 NVIDIA 免费层的每分钟 40 次,代理会据此做并发控制。

接着配置 Claude Code 的settings.json。Windows 路径:

{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:8082", "ANTHROPIC_AUTH_TOKEN": "ccnim" } }

Linux/macOS 路径是~/.claude/settings.json,内容一样。注意ANTHROPIC_AUTH_TOKEN这里填的是占位值ccnim,因为真正的鉴权在代理层用 NVIDIA Key 完成,Claude Code 这边只要有个非空 token 就行。

如果你希望后续能统一走 TaoToken 的 Key/API 通道,方便在不同模型之间切换,可以把ANTHROPIC_BASE_URL改成 TaoToken 的 API 地址,把ANTHROPIC_AUTH_TOKEN换成 TaoToken 的 Key:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "你的TaoToken Key" } }

这样 Claude Code 的请求会先到 TaoToken 的统一通道,再由它路由到目标模型。好处是以后换模型只改 TaoToken 后台的配置,不用动本地文件。TaoToken 的 Key 在控制台创建,地址是 https://taotoken.net/api-keys ,接入文档在 https://taotoken.net/doc 。如果你更想先验证模型对话效果,可以直接用 https://taotoken.net/models 试跑。

配置写完后,启动代理:

uv run uvicorn server:app --host 0.0.0.0 --port 8082

Windows 上如果不想每次手动敲,可以建一个启动代理.bat:

@echo off cd /d D:\project2026\free-claude-code start "NVIDIA NIM Proxy" cmd /k ".venv\Scripts\uvicorn.exe server:app --host 0.0.0.0 --port 8082"

双击运行即可。代理起来后,在任意终端执行claude就会自动走这个代理。

4. 验证请求:一次成功的接入演示

配置写完不代表通了,得实际发一次请求确认链路。验证分两步:先确认代理端口在监听,再让 Claude Code 发一条消息看返回。

先检查端口。Windows 上用:

netstat -ano | findstr 8082

Linux/macOS 用:

lsof -i :8082

能看到监听状态说明代理起来了。如果没输出,回去看代理启动那步的终端日志,通常是.env里 Key 没填对或者依赖没装全。

端口正常后,直接启动 Claude Code:

claude

进去之后说一句“你好”,观察返回。如果配置正确,你会看到模型正常回复,而且因为ENABLE_THINKING=true,GLM 或 Kimi K2 这类模型可能会把思考过程也展示出来。这一步成功,说明 Anthropic 格式的请求已经被代理正确翻译并转发到 NVIDIA NIM,返回也正确转换回了 Claude Code 能识别的格式。

想更直接地验证代理本身,可以绕过 Claude Code,用 curl 打一次代理的接口:

curl http://localhost:8082/v1/messages \ -H "Content-Type: application/json" \ -H "x-api-key: ccnim" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 128, "messages": [{"role": "user", "content": "用一句话说明你是什么模型"}] }'

如果返回里有content字段和文本内容,说明代理的 Anthropic 兼容层工作正常。注意这里的model字段填的是 Claude 的模型名,代理会根据.env里的映射把它换成 NVIDIA 的模型名,这正是 free-claude-code 的核心机制。

实测下来,第一次请求可能会慢一点,因为要建立到 NVIDIA 的连接。后续请求会快很多。如果遇到 429,说明触发了免费层的速率限制,代理会自动退避重试,等几秒再发就行。

验证通过后,你就可以正常用 Claude Code 的工程能力了。读文件、改代码、跑命令、调 Subagent 这些都不受影响,因为协议层没变,变的只是背后的模型。

5. 常见报错排查:401、local proxy failed 与 model may not exist

接入过程中最容易撞上的几类报错,我按实际遇到的频率排一下,每个都给出定位思路。

第一类是 401 鉴权失败。表现是 Claude Code 里发消息直接返回 401,或者代理终端打印鉴权错误。原因通常是.env里的NVIDIA_NIM_API_KEY没填、填错、或者 Key 已失效。检查三点:Key 是不是nvapi-开头、有没有多余空格、在 build.nvidia.com 后台看 Key 是否还有效。另外settings.json里的ANTHROPIC_AUTH_TOKEN不能为空,虽然它只是占位,但空值会导致 Claude Code 本地就拒绝发送。

第二类是local proxy failed或连接被拒。这通常是代理没起来,或者端口被占用。先确认uvicorn进程在跑,再看 8082 端口是否被别的程序占了。Windows 上可以用netstat -ano | findstr 8082找到占用进程的 PID,任务管理器里结束掉再重启代理。还有一种情况是settings.json里ANTHROPIC_BASE_URL写成了https而不是http,本地代理是 http,写错协议会直接连不上。

第三类是model may not exist或reading choices相关报错。前者是模型名不对,检查.env里的模型名有没有带nvidia_nim/前缀,命名空间是否和nvidia_nim_models.json里一致。后者通常是代理在解析上游返回时出错,可能是上游返回了非预期格式,或者模型不支持当前请求的某些参数。遇到这种先看代理终端的完整日志,里面会打印上游的原始返回,定位起来比在 Claude Code 里猜快得多。

第四类是 OAuth 相关报错。如果你之前用官方账号登录过 Claude Code,本地可能残留了 OAuth 凭证,和现在的 token 配置冲突。解决办法是清理~/.claude下的凭证缓存,或者确认settings.json里的env配置优先级高于残留凭证。实测下来,把ANTHROPIC_AUTH_TOKEN显式写成一个非空值,能覆盖掉大部分 OAuth 残留问题。

第五类是请求超时。NVIDIA 免费层在高峰期可能响应慢,代理默认超时如果设得短就会断。可以在.env里适当调大超时参数,或者错峰使用。如果频繁超时,考虑把模型换成响应更快的 MiniMax M2.7 试试。

排查时有个通用原则:先看代理终端日志,再看 Claude Code 的报错。代理日志里有完整的请求和上游返回,是定位问题的第一现场。Claude Code 那边的报错往往是二次封装过的,信息量不如代理日志。

6. 后续切换模型与统一通道的实践建议

跑通之后,日常使用中切换模型是高频操作。free-claude-code 的方式是改.env里的MODEL值然后重启代理。比如从 GLM-5.1 换到 MiniMax M2.7:

MODEL="nvidia_nim/minimaxai/minimax-m2.7"

改完双击启动代理.bat重启即可。这种方式简单直接,缺点是每次换模型都要动本地文件、重启服务。

如果你希望更省事,可以把 endpoint 统一到 TaoToken 的通道。做法是把settings.json里的ANTHROPIC_BASE_URL指向https://taotoken.net/api,ANTHROPIC_AUTH_TOKEN换成 TaoToken 的 Key。这样 Claude Code 的请求先到 TaoToken,由它统一路由。换模型时只改 TaoToken 后台的配置,本地文件不用动,也不用重启代理。对于需要长期在多个模型之间切换、或者团队协作统一入口的场景,这种方式维护成本更低。

TaoToken 的 Key 在 https://taotoken.net/api-keys 创建,接入细节看 https://taotoken.net/doc 。如果你还在选模型阶段,可以先用 https://taotoken.net/models 做对话验证,确认效果再接到 Claude Code 里。对于长期跑编码任务、Agent 工作流的需求,Coding Plan 会更合适,地址是 https://taotoken.net/coding-plan 。

有一点要提醒:无论走本地 free-claude-code 代理还是走 TaoToken 统一通道,Claude Code 的settings.json里ANTHROPIC_BASE_URL只能指向一个地址。想同时保留两种方式,可以准备两份 settings 文件,用的时候切换,或者用环境变量覆盖。实测下来,环境变量的优先级高于文件配置,临时切换时比较方便。

最后说个实用技巧:把常用的几组模型配置写成.env的注释块,切换时取消注释对应行,比每次手敲模型名快,也不容易写错命名空间。模型名对照nvidia_nim_models.json里的清单,那个文件是权威来源。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询