从本地 Ollama 切到 TaoToken:MacBook M1 上 Claude Code 的 ANTHROPIC_BASE_URL 改造实录
在 MacBook M1 上把 Claude Code 跑起来之后,很多人会先接本地 Ollama 试水,ANTHROPIC_BASE_URL指向http://localhost:11434/api/tags,看起来一切正常。但这个配置有个隐性代价:模型通道被固定死在本地,换机器、换网络、想用别的模型时都得重新折腾一遍。这篇就把这一步拆开,把「拿通道和凭证」的动作挪到 TaoToken(官网:https://taotoken.net/?utm_source=taotoken_aicg_blog_end )完成,再回到~/.claude/settings.json把ANTHROPIC_BASE_URL换成https://taotoken.net/api,其余超时字段和流量开关沿用原写法。TaoToken 在这里只负责提供 Key 与 Base URL,不参与 Node 安装,也不接管 Claude Code 本身的命令行为。
一、原问题与场景:本地 Ollama 通道为什么会被写死
原文的路径其实很清晰:MacBook M1 上用brew install node起 Node 环境(版本 18 以上),再npm install -g @anthropic-ai/claude-code装 Claude Code,然后在~/.claude/settings.json里写:
{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:11434/api/tags", "API_TIMEOUT_MS": "3000000", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1 } }再在~/.claude.json里补"hasCompletedOnboarding": true,最后在工程目录运行claude。
这套流程本身没问题,问题出在ANTHROPIC_BASE_URL这个字段的语义上。Claude Code 把它当作「Anthropic 兼容 API 的入口」,所有模型请求都会往这个地址发。一旦写成localhost:11434,就等于把请求锁死在本机 Ollama 上:
- 换一台没有 Ollama 的机器,配置直接失效;
- 本地模型没拉全时,请求会 404 或超时;
- 想临时切到别的模型通道,得改文件、重启
claude; - 团队协作时,每个人的本地端口和模型名都不一样,配置无法共享。
所以真正要改的不是「装不装 Ollama」,而是把ANTHROPIC_BASE_URL从「本机服务地址」换成「一个稳定的兼容 API 入口」。TaoToken 在这里承担的就是这个入口角色。
二、TaoToken 前置:先拿 Key,再改 Base URL
在动settings.json之前,先把凭证准备好。打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 完成注册,进入控制台创建 API Key。这个 Key 就是后面claude发请求时用的凭证,格式上是一串以sk-开头的字符串(具体以控制台显示为准)。
需要记住两个值:
- Base URL:
https://taotoken.net/api(注意不带/v1,也不加任何 UTM 参数); - API Key:控制台生成的那一串,本文用
YOUR_API_KEY占位。
如果你后面还要用 Coding Plan 或做长期编码任务,可以在控制台里看一下对应的套餐入口;只是跑通 Claude Code 的话,一个普通 Key 就够了。TaoToken 不碰你的 Node 环境,也不改claude的命令行为,它只提供「请求往哪发」和「用什么凭证发」这两件事。
三、可复制配置:改 ~/.claude/settings.json
Node 和 Claude Code 的安装步骤沿用原文,不再重复。重点在配置文件。打开~/.claude/settings.json,把env段改成下面这样:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "YOUR_API_KEY", "API_TIMEOUT_MS": "3000000", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1 } }几个字段的说明:
ANTHROPIC_BASE_URL:从http://localhost:11434/api/tags换成https://taotoken.net/api。这是本篇最核心的一行,注意结尾不要带/v1,也不要带?utm_source=...之类的参数,Claude Code 会自己拼接路径。ANTHROPIC_API_KEY:填你在 TaoToken 控制台创建的 Key。原文接本地 Ollama 时不需要这个字段,因为本地服务不校验凭证;换成 TaoToken 后必须带上。API_TIMEOUT_MS:沿用原文的3000000,这个值对远程通道同样适用,甚至更有必要,因为网络往返比本机回环慢。CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:沿用原文的1,关掉非必要的遥测流量,减少干扰请求。
~/.claude.json里的"hasCompletedOnboarding": true保持不变,这个字段和通道无关,只是跳过首次引导。
改完之后不需要重启系统,直接在工程目录运行claude即可。Claude Code 每次启动会读取settings.json,新的 Base URL 会立即生效。
四、验证请求:确认走的是 TaoToken 而不是 localhost:11434
配置改完,最怕的是「以为改了,其实还在打本地」。验证分两步。
第一步,在工程目录运行claude,随便发一句请求,比如让它读一下当前目录的文件列表。如果配置正确,请求会发往https://taotoken.net/api,返回内容正常。
第二步,确认没有回落到本地。可以在另一个终端窗口执行:
lsof -i :11434如果没有任何进程在监听 11434,说明本地 Ollama 没起来,而此时claude依然能正常返回,就证明请求确实走的是 TaoToken 的兼容通道。反过来,如果claude报连接错误、超时或 401,而lsof显示 11434 有进程,那说明settings.json没生效,Claude Code 还在读旧配置。
另一个更直接的验证方式:临时把ANTHROPIC_BASE_URL改成一个不存在的地址,比如https://example.invalid/api,再跑claude。如果立刻报错,说明配置确实被读取了;改回https://taotoken.net/api后恢复正常,就说明通道切换成功。
成功的结果应该是:claude启动无报错,发出请求后能拿到模型返回,且本机 11434 端口没有参与这次请求。
五、本篇常见错排查
错误 1:Base URL 带了/v1或 UTM 参数。https://taotoken.net/api/v1或https://taotoken.net/api?utm_source=...都会导致路径拼接异常。正确写法就是https://taotoken.net/api,干净、不带后缀。
错误 2:忘了加ANTHROPIC_API_KEY。本地 Ollama 不校验凭证,所以原文配置里没有这个字段。换成 TaoToken 后如果不加,请求会返回 401。Key 要填在env段里,和ANTHROPIC_BASE_URL同级。
错误 3:settings.json格式错误。JSON 不允许尾随逗号,env段里的每个键值对都要用双引号。改完可以用python -m json.tool ~/.claude/settings.json校验一下,能正常输出就说明格式没问题。
错误 4:~/.claude.json和~/.claude/settings.json搞混。前者放hasCompletedOnboarding这类全局状态,后者放env环境变量。两个文件路径不同,别写串了。
错误 5:改完没重新运行claude。Claude Code 在启动时读取配置,改完文件后要退出当前会话重新运行,新配置才会加载。
错误 6:本地 Ollama 还在跑,误以为请求走了 TaoToken。如果 11434 端口有进程,而settings.json又没改成功,请求可能仍然打到本地。用lsof -i :11434确认端口状态,再结合claude的返回判断。
六、语义一致 CTA
这篇的核心动作只有一个:把~/.claude/settings.json里的ANTHROPIC_BASE_URL从http://localhost:11434/api/tags换成https://taotoken.net/api,并补上ANTHROPIC_API_KEY。Key 在 https://taotoken.net/api-keys 创建,接入细节可以对照 https://taotoken.net/doc 。如果你只是想先验证模型通道是否通,可以直接用 https://taotoken.net/chat 发一条请求试试;如果打算把 Claude Code 长期用于编码和 Agent 任务,可以看一下 https://taotoken.net/coding-plan 里的方案。整套配置里,TaoToken 只提供 Key 和 Base URL,Node 安装、Claude Code 命令行为都不受影响。