
1. 为什么 Claude Code 接本地模型总在 Key 和配置上翻车Claude Code 是 Anthropic 官方推出的命令行 AI 编程工具能读代码库、改文件、跑命令体验确实顺。但它默认只认 Anthropic 官方接口很多人想把它接到本地跑的模型上省掉每月订阅费结果第一步就卡住环境变量到底设哪个、settings.json 放哪、config.toml 里的 model 名怎么写才不报 404。我自己折腾过好几轮最常见的三个坑是ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 同时存在导致鉴权冲突LiteLLM 的 model_name 和 LM Studio 实际加载的模型 ID 对不上以及 Claude Code 期望的模型名格式和本地模型名不一致工具调用直接失效。这篇就围绕 Claude Code、本地模型、LiteLLM、LM Studio 这条链路把统一 Key 和配置文件一次讲透让你零成本跑通 AI 编程工作流。适合谁看手里有 16GB 以上显存的机器、想用本地开源模型替代付费 API、又不想放弃 Claude Code 交互体验的开发者。下面所有配置都可以直接复制改掉模型路径就能用。2. TaoToken 在本地模型链路里的定位与准备先说清楚 TaoToken 在这里干什么。本地模型LM Studio 跑的 Qwen、DeepSeek 等本身没有 Anthropic 格式的接口LiteLLM 负责把 Anthropic 协议翻译成 OpenAI 兼容协议。而 TaoToken 提供的是一个统一通道当你需要临时切到云端模型、或者团队里有人用云端有人用本地时不用改 Claude Code 的配置只改 LiteLLM 的上游指向即可。TaoToken 的 API 地址是 https://taotoken.net/api官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。它的作用是给你一个稳定的 Key 和统一入口本地模型和云端模型可以挂在同一个 LiteLLM 配置里Claude Code 侧完全无感。准备清单LM Studio本地模型运行平台默认端口 1234LiteLLM协议转换代理pip 安装Claude Codenpm 全局安装TaoToken Key用于云端兜底或统一管理去 console 页面创建安装命令# 安装 Claude Code npm install -g anthropic-ai/claude-code # 安装 LiteLLM 代理 pip install litellm[proxy]LM Studio 去官网下载对应系统版本装好后在模型页搜索 Qwen3-Coder 或 DeepSeek 系列下载完切到 Developer 标签启动服务器。验证本地服务是否起来curl http://localhost:1234/v1/models返回 JSON 里能看到模型 ID比如qwen/qwen3-coder-30b这个 ID 后面要填进 LiteLLM 配置写错就是 404 的根源。3. settings.json 与 config.toml 可复制骨架这一节是核心两个配置文件分别管 Claude Code 和 LiteLLM。先建 LiteLLM 的 config.yaml注意 LiteLLM 用 yamlClaude Code 侧才涉及 settings.json 和 config.toml 的概念别混。model_list: # 本地模型映射成 Claude 官方模型名兼容性最好 - model_name: claude-3-5-haiku-20241022 litellm_params: model: lm_studio/qwen/qwen3-coder-30b api_key: sk-dummy api_base: http://localhost:1234/v1 - model_name: claude-3-5-sonnet-20241022 litellm_params: model: lm_studio/qwen/qwen3-coder-30b api_key: sk-dummy api_base: http://localhost:1234/v1 # 云端兜底走 TaoToken 统一通道 - model_name: claude-3-5-sonnet-cloud litellm_params: model: openai/deepseek-chat api_key: os.environ/TAOTOKEN_API_KEY api_base: https://taotoken.net/api general_settings: master_key: sk-lmstudio-proxy-12345关键点model_name是 Claude Code 看到的名称model是 LiteLLM 实际调用的上游。本地模型用lm_studio/前缀云端走 TaoToken 时用openai/前缀加api_base指向 https://taotoken.net/api。Claude Code 侧的配置有两种方式。环境变量最直接export ANTHROPIC_BASE_URLhttp://localhost:4000 export ANTHROPIC_AUTH_TOKENsk-lmstudio-proxy-12345 unset ANTHROPIC_API_KEY如果你习惯用配置文件Claude Code 支持在项目根目录放.claude/settings.json{ env: { ANTHROPIC_BASE_URL: http://localhost:4000, ANTHROPIC_AUTH_TOKEN: sk-lmstudio-proxy-12345 } }而 config.toml 通常出现在 LiteLLM 的另一种启动方式或团队统一配置里等价写法[general] master_key sk-lmstudio-proxy-12345 [[models]] model_name claude-3-5-haiku-20241022 model lm_studio/qwen/qwen3-coder-30b api_base http://localhost:1234/v1 api_key sk-dummy注意ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 不要同时设前者会覆盖后者导致 401。踩过的坑就是这里排查半天以为是代理没起来。启动 LiteLLMlitellm --config config.yaml看到Uvicorn running on http://0.0.0.0:4000就说明代理起来了。4. 验证请求与成功结果配置写完必须验证分三层查本地模型、LiteLLM 代理、Claude Code。第一层直接打 LM Studiocurl http://localhost:1234/v1/chat/completions \ -H Content-Type: application/json \ -d {model:qwen/qwen3-coder-30b,messages:[{role:user,content:hi}]}第二层打 LiteLLM 代理确认协议转换正常curl http://localhost:4000/v1/messages \ -H x-api-key: sk-lmstudio-proxy-12345 \ -H anthropic-version: 2023-06-01 \ -H Content-Type: application/json \ -d {model:claude-3-5-haiku-20241022,max_tokens:100,messages:[{role:user,content:你好}]}第三层Claude Code 实测echo 请写一个 Python 斐波那契函数 | claude --model claude-3-5-haiku-20241022成功的话你会看到本地模型返回的代码且工具调用读文件、写文件能正常触发。如果模型名用qwen3-coder-30b这种原始名对话能通但工具调用可能退化成直接输出 JSON 字符串这就是为什么推荐映射成 Claude 官方格式的 model_name。想验证云端通道是否通把 model 换成claude-3-5-sonnet-cloud再跑一次请求会经 TaoToken 转发。模型对话页面可以直接在浏览器里试不用写代码就能确认 Key 有效。5. 本篇常见错误排查报 404 model not found九成是 LiteLLM 的model字段和 LM Studio 实际模型 ID 不一致。去 LM Studio Developer 页复制准确 ID注意大小写和斜杠。报 401 unauthorized检查 master_key 和 ANTHROPIC_AUTH_TOKEN 是否一致以及有没有残留的 ANTHROPIC_API_KEY。用env | grep ANTHROPIC看一眼。代理起来了但 Claude Code 连不上确认 ANTHROPIC_BASE_URL 是http://localhost:4000而不是 4000/v1Claude Code 会自己拼路径。工具调用不触发直接吐 JSON模型名没用 Claude 官方格式。把--model换成claude-3-5-haiku-20241022这类映射名。响应特别慢或加载失败显存不够。30B 模型约需 20GB 显存不够就换 7B 或开 LM Studio 的 GPU 加速和 flash attention。这个坑很隐蔽日志里不一定报显存错误只是卡住。端口占用4000 或 1234 被占lsof -i:4000查一下换端口记得同步改配置。接入文档里有更细的参数说明遇到协议层问题可以对照查。长期做编码和 Agent 任务的话Coding Plan 里对并发和模型切换有更完整的方案比单机配置省心。6. 把本地与云端统一到一条通道跑通之后你会发现真正的价值不是省了那点 API 费而是 Claude Code 的交互体验和本地模型的隐私、零边际成本结合到了一起。我的做法是日常编码走本地 Qwen3-Coder遇到本地模型搞不定的复杂推理在 LiteLLM 配置里切到走 TaoToken 的云端模型Claude Code 侧一行不用改。统一 Key 的好处在这里体现得最明显本地和云端挂在同一个 master_key 下团队协作时每人拿自己的 Key上游指向统一管理不用每人配一套环境变量。API Keys 页面可以按项目建多个 Key接入文档里有完整的鉴权说明。最后留一个实用技巧把litellm --config config.yaml写成 systemd 服务或后台进程开机自启Claude Code 随时可用。模型文件放 SSD加载速度差别很明显。配置改完先跑第三节那三条 curl比直接开 Claude Code 试错快得多。