跳到主要内容
返回ClaudeCode
工具教程

02|16 小时 Claude Code:安装、API、第三方模型与 Coding Plan

星核工具箱编辑部约 37 分钟阅读

02 · 安装与使用

说个常见的糗事。很多人第一次装 Claude Code,随手搜了篇老教程,照着敲 npm install -g @anthropic-ai/claude-code,卡在权限报错上。一着急直接 sudo 怼上去——装是装上了,后面自动更新天天失败,claude doctor 一片红。折腾快一个钟头才反应过来:官方早已把原生脚本列为首选,npm 那条路坑更多,一行 curl 脚本三十秒搞定的事,却硬走了最绕、最容易踩坑的那条道。

说白了,装 Claude Code 本身不难,难的是没人告诉你哪条路是坑。这篇就把每个平台的正路标清楚,让你别重蹈覆辙。

看完这一篇,你会拿到:

  • 一条命令在 Mac / Windows / Linux / WSL 上把 Claude Code 装好(带预期输出,能自己验证装没装成功)
  • 三种安装方式(官方脚本 / 包管理器 / npm)的对比,知道自己该选哪个
  • 登录、升级、卸载的完整操作
  • 一份「报错 → 怎么修」的速查表,覆盖九成新手会撞上的坑

01 装之前先搞清楚三件事

别急着敲命令。太多人装到一半才发现「哦这账号还不能用」,白折腾。三件事先确认一下。

第一件:你的电脑够不够格

Claude Code 对机器要求不高,但有几条硬线(以官方为准):

项目要求
操作系统macOS 13.0+ / Windows 10 1809+ / Ubuntu 20.04+ / Debian 10+ / Alpine 3.19+
内存4 GB 以上可用 RAM
处理器x64 或 ARM64
网络需要联网
终端Bash、Zsh、PowerShell 或 CMD 任一

macOS 低于 13.0 的注意:装是能装,但一跑就崩,报 dyld: cannot load 之类的错——老系统不支持二进制用的指令,没有绕过办法,只能升级系统(在还停留在 macOS 12 的机器上,它死活跑不起来,升到 14 才好)。

第二件:你得有个能用的账号

新手最容易忽略的一条:免费版 Claude.ai 账号用不了 Claude Code。

官方要求是 Pro、Max、Team、Enterprise 或 Console(API)账号之一。你平时用网页版 Claude 聊得挺欢,不代表账号能驱动 Claude Code——免费档就是不行。

想用国产模型(DeepSeek、GLM、Minimax)省钱的,账号这步先放着,第 05 篇专门讲接第三方模型。本篇默认你用官方账号。

第三件:你打算从哪儿用它

Claude Code 有三种用法:CLI(命令行) 功能最全、最贴近设计初衷;桌面 App 不用碰终端、下载即用;编辑器集成(VS Code / JetBrains)融进现有开发流。

我的建议:直接学 CLI。 这篇也以 CLI 为主线——它最稳、最通用,学会它后面桌面 App 和编辑器插件都是几分钟的事(第 08-10 篇会讲)。实在抵触终端的,去 https://claude.com/download 下桌面 App,点点就能用。

💡 一句话总结:开装前确认三件事——系统版本够、账号是付费档或 Console、用法选 CLI,这三关过了再敲命令。


02 装好它:每个平台一条命令

先给结论:所有平台都优先用官方安装脚本(官方叫「原生安装 / Native Install」,现在最推荐)。最大好处是——装完后台自动更新,基本不用再操心版本

类比:原生安装就像应用商店装 App。 点一下「安装」,它自己下载、自己装好、以后自己后台更新;老的 npm 方式更像「下个安装包手动点下一步」——能装,但更新得你亲自来,还容易因权限出岔子。

macOS / Linux / WSL

打开终端,粘这一行:

curl -fsSL https://claude.ai/install.sh | bash

国内网络提示:claude.ai 和下载服务器 downloads.claude.ai 多数情况下需要魔法上网才能稳定访问。装的时候挂上代理,能省掉一大半「卡住 / 超时」的报错。

Windows(原生,不用 WSL)

先确认你在哪个终端里——这是 Windows 用户最常翻车的点,PowerShell 和 CMD 命令不一样:

PowerShell(提示符长这样 PS C:\>):

irm https://claude.ai/install.ps1 | iex

CMD(提示符是 C:\>,没有前面的 PS):

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

怎么分辨? 看提示符开头有没有 PS:有就是 PowerShell,没有就是 CMD。在 PowerShell 里跑 CMD 那条带 && 的命令会报 The token '&&' is not a valid statement separator,反过来在 CMD 里跑 irm 会报 'irm' is not recognized——看到这俩报错换对应命令即可。

开着魔法上网,在 CMD 里装还是卡住 / 超时? 这是个真坑:多数代理客户端默认的「系统代理」模式,CMD 里的 curl 根本不认——它不读 Windows 的系统代理设置,照样直连,所以代理开了等于没开。装之前先在同一个 CMD 窗口里手动设代理(7890 换成你代理客户端实际的 HTTP 端口,在客户端设置里能看到):

set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890

设完再跑上面那条安装命令。嫌麻烦还有两条路:换 PowerShell 跑 irm 那条(它默认走系统代理,没这毛病),或在代理客户端里打开 TUN 模式(有的叫「增强模式」「虚拟网卡」),让全部流量强制过代理。

另外,Windows 原生环境推荐顺手装个 Git for Windows,它给 Claude Code 提供 Git Bash;不装会改用 PowerShell 跑命令(也能用,只是部分 Bash 脚本受限)。WSL 则不需要它。

Windows 选 WSL 还是原生?

做 Linux 工具链开发、或想用沙箱功能就走 WSL。官方对照表:

选项需要什么支持沙箱什么时候用
原生 Windows啥都不用(Git for Windows 可选)Windows 原生项目和工具
WSL 2启用 WSL 2Linux 工具链或要用沙箱
WSL 1启用 WSL 1WSL 2 用不了时的退路

走 WSL 的话,在 WSL 终端里跑上面 macOS/Linux 那条 curl 脚本就行——是在 WSL 里装,不是在 PowerShell 里。

不想碰终端?还有别的路

官方脚本之外还有几条备选道,列个对比按需挑:

安装方式命令自动更新我的建议
官方脚本curl ... | bash✅ 后台自动首选,省心
Homebrew(macOS)brew install --cask claude-code❌ 手动已经重度用 brew 管软件的人
WinGet(Windows)winget install Anthropic.ClaudeCode❌ 手动习惯用 WinGet 的人
npmnpm install -g @anthropic-ai/claude-code❌ 手动最后才考虑,要先装 Node.js 18+

几个坑提前说:

  • Homebrew 有两个 caskclaude-code 是稳定版(慢一周、跳过有重大回归的版本),claude-code@latest 是最新版,升级各对应 brew upgrade claude-code / brew upgrade claude-code@latest
  • WinGet 不自动更新:需定期手动跑 winget upgrade Anthropic.ClaudeCode
  • npm 千万别加 sudo。官方明确警告 sudo npm install -g 会引发权限问题和安全风险——这正是开头那个最常见的坑。遇到权限报错,正解是改用官方脚本。npm 升级也要用 npm install -g ...@latest,别用 npm update -g

💡 一句话总结:闭眼选官方脚本就对了,一条 curl(或 Windows 的 irm)解决战斗,还自带后台更新;npm 是下下策,且永远别 sudo


03 验证装没装成功

装完别急着用,花十秒确认一下。打开一个新终端窗口,敲:

claude --version

预期输出是一个版本号,类似(你看到的数字会更新,正常):

2.1.81 (Claude Code)

看到版本号 = 装成功了。 如果报 command not found: claude 或 Windows 上的 'claude' is not recognized,先别重装——九成是 PATH 没配好(安装目录没进系统搜索路径),第 06 节有修法。

想更详细,官方还给了个体检命令:

claude doctor

它会把安装情况、配置、最近一次更新结果都列出来。装完新机器或遇到抽风,第一反应就该是先跑一遍 claude doctor——比自己瞎猜快多了。

💡 一句话总结:claude --version 出版本号就成了;有任何不对劲,claude doctor 是你的第一诊断工具。


04 登录:让它认得你

装好的 Claude Code 还是个「不认识你」的空壳,得登录绑上账号才能干活。在你的项目目录里启动它:

claude

首次启动它会自动引导你登录,也可以进界面后手动触发:

/login

接下来它弹出浏览器页面让你授权,授权完回终端就登录上了。凭据存在本地,下次启动不用再登。换账号再跑一次 /login 即可。

登录卡住了怎么办

最常见的一种:浏览器没自动弹出,或你在远程服务器 / WSL / SSH 里登录——浏览器可能开在另一台机器上,回调回不来。官方办法很简单:

在登录提示界面按 c,把那串 OAuth(开放授权)URL 复制出来,手动粘到浏览器打开,登录完显示一个 code,再把 code 贴回终端即可。

在云服务器上配 Claude Code 时很容易吃这亏,傻等浏览器弹窗半天没反应——远程环境就得走「复制 URL 手动开」这条路。连粘贴都不灵的话,还有个更稳的退路命令:

claude auth login

它从标准输入读取你粘贴的 code,专治交互式提示粘不进去的终端。

一个隐蔽的登录大坑

登录后报 This organization has been disabled,但订阅明明是好的——大概率是 shell 配置里残留了一个旧的 ANTHROPIC_API_KEY,把你的订阅凭据顶掉了。

环境变量里有 API key 时,Claude Code 会优先用 key 而非订阅。解法是清掉它:

unset ANTHROPIC_API_KEY
claude

要永久解决,去翻 ~/.zshrc~/.bashrc~/.profile,把那行 export ANTHROPIC_API_KEY=... 删掉。进 Claude Code 后用 /status 能确认当前在用哪种登录方式。

💡 一句话总结:claude 启动会自动引导登录,远程/WSL 环境记住「按 c 复制 URL 手动开」;登录报组织禁用,先查环境变量里有没有残留的旧 API key。


05 升级与卸载

升级

用官方脚本装的啥都不用做——后台自动更新,下次启动就是新版。想立刻更:

claude update

更新成没成,还是那句 claude doctor。更新渠道可选(写在 settings.json,或在 Claude Code 内用 /config 设):

{
  "autoUpdatesChannel": "stable"
}
  • "latest"(默认):新功能一发布就拿到
  • "stable":用大概一周前的版本,跳过有重大回归的发布——追求稳定选这个

不想要自动更新,在 settings.jsonenv 里设 "DISABLE_AUTOUPDATER": "1" 即可(它只停后台检查,claude update 手动更新仍能用)。Homebrew / WinGet / apt 装的默认都不自动更新,得手动跑对应升级命令(前面坑提示里说了)。

卸载

按你当初的安装方式对应卸载。官方脚本装的:

macOS / Linux / WSL:

rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude

Windows PowerShell:

Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force
Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force

其他方式各自对应:Homebrew 用 brew uninstall --cask claude-code,WinGet 用 winget uninstall Anthropic.ClaudeCode,npm 用 npm uninstall -g @anthropic-ai/claude-code

注意:上面这些只删了程序本体,配置、授权、会话历史还留在 ~/.claude/ 里。如果卸载后 claude 还能跑,多半是你有第二个安装或老版本留下的 shell 别名(第 06 节教你揪出来)。

想彻底清干净(这步不可恢复,设置 / 授权 / MCP 配置 / 会话历史全没):

# 全局用户设置和状态
rm -rf ~/.claude
rm ~/.claude.json

# 当前项目的本地设置(在项目目录里执行)
rm -rf .claude
rm -f .mcp.json

提醒:VS Code 扩展、JetBrains 插件、桌面 App 也会往 ~/.claude/ 写东西,它们还装着这目录就会被重建——要彻底删得先卸了它们。

💡 一句话总结:官方脚本装的升级靠后台自动、claude update 手动催;卸载按当初的装法对应来,配置文件得单独删、且删了不可逆


06 报错速查:九成新手会撞的坑

装这东西报错基本逃不掉,但绝大多数有标准解法。把官方文档里最高频的几类整理成速查表——先对症,再下药,别一报错就重装

你看到的报错真正的原因怎么修
command not found: claude安装目录没进 PATH~/.local/bin 加进 PATH(见下方)
syntax error near unexpected token '<'安装脚本返回了 HTML 不是脚本多半网络/区域问题,换 Homebrew/WinGet 或稍后重试
irm is not recognized你在 CMD 里跑了 PowerShell 命令换成 CMD 安装命令,或打开 PowerShell
'&&' is not valid你在 PowerShell 里跑了 CMD 命令换成 PowerShell 的 irm 命令
bash is not recognized在 Windows 上跑了 Mac/Linux 命令换成 PowerShell 的 irm 命令
开着魔法上网,CMD 里装仍卡住 / 超时CMD 的 curl 不走系统代理,等于直连CMD 里先 set https_proxy=... 再装(见第 02 节),或换 PowerShell / 开 TUN 模式
Linux 安装时 Killed内存不够(OOM 杀进程)加交换空间(见下方),Claude Code 要 4GB+ RAM
Error loading shared library安装器误判了系统 libc 类型,拉了错误变体见官方 musl/glibc 排查
登录后 403 Forbidden订阅无效 / 账号没权限查订阅状态,或确认 Console 账号有对应角色
App unavailable in region你所在区域不支持支持的国家/地区

挑两个最高频的展开说。

坑一:command not found: claude(最常见)

claude 说找不到命令——不是没装上,是装好的目录没进系统搜索路径(PATH)

类比:PATH 就是系统的门牌号清单。 程序装好好比房子盖好了,但系统只会去「门牌号清单」上登记过的地址挨个找。claude 的房子盖在 ~/.local/bin/,这地址没登记进清单,自然找不到。

修法(macOS 默认是 Zsh):

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Linux 大多默认 Bash,把 ~/.zshrc 换成 ~/.bashrc 即可。改完验证:

claude --version

出版本号就修好了。Windows 用户则把 %USERPROFILE%\.local\bin 加进用户 PATH 环境变量,然后重启终端

坑二:揪出「打架」的多个安装

如果先 npm 装过又官方脚本装一遍,可能同时存在好几个 claude,版本对不上、行为诡异。先看看 PATH 上有几个:

which -a claude

列出来不止一个的话,只留官方脚本那个~/.local/bin/claude),其余删掉:

# 卸掉 npm 全局安装
npm uninstall -g @anthropic-ai/claude-code

# 删掉老版本的本地 npm 安装
rm -rf ~/.claude/local

很多时候 which -a claude 一跑,就会发现 npm 和原生各装了一个,删掉 npm 那个、理顺 PATH,瞬间清静。

💡 一句话总结:报错先查表对因,别条件反射重装;找不到命令多半是 PATH,行为诡异多半是装了好几个在打架,which -a claude 一照便知。


07 动手:从零跑通第一次

光装好不算数,实际跑一遍确认链路通。这个最小流程不依赖已有项目,新建个空目录就能做。

第一步,建测试目录并进去,启动 Claude Code:

mkdir claude-test && cd claude-test
claude

第一次启动会引导你登录(按第 04 节走完),登录后看到欢迎界面。

第二步,在输入框里敲 /help,看看有哪些命令:

/help

预期:弹出一份可用命令和功能说明的列表。直接打一个 /,还会弹出所有命令的自动补全。

第三步,让它干件实事——直接用大白话下指令(不用记命令格式):

在 test.py 文件里写一个打印 hello world 的函数

预期行为:Claude Code 会先把要改的代码以 diff(差异对比)摆给你看,等你确认(选 yes)才真正写文件。这是它的核心工作流——先给方案、等你批、再动手,不偷偷改你东西。

确认后,目录里就多了个 test.py。退出:

exit

到这步,你已经完整跑通了「装 → 登录 → 给指令 → 它改文件 → 你确认」的全流程。第一次看到它自己写出代码、还停下来等你点头那一下,挺有「这玩意儿真能干活」的实感——头一回跑通的时候,多少会有点小兴奋。

Claude Code 首次会话全流程图

这张图把上面四步串成一条线:从 claude 启动、登录、/help 看命令、大白话下指令,到最关键的一环——它先把 diff 摆给你看、等你点头(是)才写文件;你说不(否)它就不写,调整后再来一轮,全程绝不偷偷改你的东西。

💡 一句话总结:新建空目录就能跑通全流程——claude 启动登录、/help 看命令、大白话下指令、看 diff 点 yes,这套「先给方案再动手」是它最核心的节奏。


08 小结

这一篇把「装好并用起来」彻底过了一遍:

  • 装前确认三件事:系统版本够、账号是付费档或 Console、用法选 CLI。
  • 认准官方脚本:Mac/Linux/WSL 用 curl,Windows 分清 PowerShell(irm)和 CMD;npm 是下策,永远别 sudo
  • 验证用 claude --version,体检用 claude doctor;登录报组织禁用先查残留的 ANTHROPIC_API_KEY
  • 报错先查表对因:找不到命令查 PATH,行为诡异查多重安装。

你现在应该能在自己机器上独立装好 Claude Code、登录、跑通第一个例子,遇到常见报错也知道往哪查。

下一篇 03 · Claude Code 如何工作——掀开盖子看里面:你刚那句「写个 hello world 函数」,是怎么从一句话变成一次精准文件修改的?背后是一套叫「代理循环」的机制,搞懂它,你才算真会用 Claude Code,而不只是会敲命令。

留个问题:你刚让它写 test.py 时,它是先看了目录里有什么文件、还是直接动手写的?这个差别,正是下一篇的切入点。


装好只是拿到了工具,会用它的「思路」才是真本事——下一篇见。


04 · API 配置:订阅登录还是 API key,怎么选、怎么切

2026 年 6 月,Claude Code 官方文档里列了整整 6 种身份验证方式,从订阅登录到云厂商凭证,优先级一层压一层。

这里有个很常见的坑,我自己就栽过。我那会儿图省事,早年在 .zshrc 里 export 过一个 ANTHROPIC_API_KEY,后来买了 Max 订阅、/login 登录得好好的,结果某天翻 Console 账单,发现 API 这边在持续扣钱——明明以为自己一直在用订阅额度。查了半天才搞明白:只要环境里有 API key,它的优先级就压过订阅

说白了,「登进去了」不等于「用对了身份」。这一篇就把这件事讲透。

看完这一篇,你会拿到:

  • 订阅登录 vs API key 两条路的适用场景对照表,知道自己该走哪条
  • 三种「在哪配、怎么改」的落地姿势(命令行登录 / 环境变量 / settings.json),以及 Mac / Windows / Linux 的差异
  • 一套自查命令:用 /status 确认「我现在到底在用哪个身份、哪个模型」,再也不糊里糊涂被扣费

01 两种身份:订阅登录 vs API key

先给结论:个人自己用,选订阅登录;要嵌进脚本 / CI / 团队按用量结算,才用 API key。

Claude Code 连模型,本质要回答一个问题:「凭什么让我用?」 这就是身份验证(authentication)——你得证明自己是谁、用谁的额度。官方支持的方式有好几种,但对小白来说,先抓住最主流的两条路就够。

类比:进健身房。 订阅登录就像办了张月卡——刷脸进门,一个月内随便练,不按次计费;API key 则像按次买的门票——每进一次扣一张,用多少付多少。月卡适合天天去的人,门票适合偶尔来一次、或者帮朋友带人进场(脚本、自动化)的场景。

两条路的区别,一张表说清:

维度订阅登录(Claude.ai 账户)API key(Console / 环境变量)
怎么连终端跑 claude,浏览器登录ANTHROPIC_API_KEY 环境变量
怎么计费按月订阅(Pro / Max / Team)按 token 用量,从 Console 余额扣
额度有用量上限,到顶要等刷新充多少用多少,无固定上限
适合谁个人日常交互式开发脚本 / CI / 团队按量结算
凭证从哪来/login 浏览器授权Claude Console 创建 key
能否无浏览器默认要浏览器(CI 用 setup-token能,纯环境变量即可

订阅这边再细分一下,因为后面选模型会用到:

  • Claude Pro / Max:个人订阅,用 Claude.ai 账户登录。Pro 偏轻量,Max 额度大、能用上最强模型。
  • Claude for Teams / Enterprise:团队套餐,管理员邀请你,统一计费。Enterprise 还能配 SSO、托管策略。

个人项目一律走 Max 订阅登录,省心、不用盯余额;只有往 GitHub Actions 里塞自动化任务时,才单独搞一个 API key(具体到 CI 的玩法第 44 篇再讲)。日常开发别碰 API key,纯属给自己找扣费焦虑。

💡 一句话总结:订阅 = 月卡(个人日常),API key = 门票(脚本/团队按量),先想清楚自己是哪种人,再去配。


02 订阅登录:最省心的那条路

如果你是个人用户、买了 Pro 或 Max,那配置这事儿基本不用配——跑起来登录一下就行。

操作就一步。 装好 Claude Code 后(装机看 02 篇),在终端敲:

claude

首次启动,Claude Code 会自动打开浏览器让你登录 Claude.ai 账户。登录完浏览器会跳回终端,搞定。

几个真实会撞上的情况,提前说:

  • 浏览器没自动弹出来? 在 Claude Code 界面按 c,它会把登录链接复制到剪贴板,你自己粘到浏览器打开。
  • 浏览器登录后给了一串「登录代码」、没跳回来? 把那串代码粘回终端的 Paste code here if prompted 提示符处。这种情况常见于 WSL2、SSH 远程会话、容器里——因为浏览器连不到本机的回调端口。
  • 想换账号 / 退出登录? 在 Claude Code 里输入 /logout,下次启动重新登。

登进去的凭证存哪了? 这点平台不一样,知道了排查问题才不抓瞎:

平台凭证存储位置
macOS加密的系统钥匙串(Keychain)
Linux~/.claude/.credentials.json(权限 0600
Windows%USERPROFILE%\.claude\.credentials.json(继承用户目录权限)

这些都是 Claude Code 通过 /login / /logout 自动管的,你不用手动碰。我自己在 Mac 上排查登录问题时,照着 Linux 的路子去翻 ~/.claude/.credentials.json,结果死活找不到,一度怀疑没登录成功——原因就在这:macOS 根本没把它放成文件,而是塞进了 Keychain。

💡 一句话总结:订阅用户 「跑 claude → 浏览器登录」就齐活,凭证 Claude Code 自动存好,别手动去翻。


03 API key:脚本和团队的那条路

API key 这条路,适用面其实很窄——你不做自动化、不在团队里按量结算,基本用不上。 但既然要讲清楚「怎么切换」,就得先知道它长什么样。

第一步,拿 key。Claude Console 创建一个 API 密钥(这是 Anthropic 官方的开发者控制台,按 token 用量计费,和 Claude.ai 订阅是两套账)。

第二步,配成环境变量。 平台命令不一样,分开说:

macOS / Linux:

export ANTHROPIC_API_KEY=sk-ant-你的密钥

Windows(PowerShell,永久写入用户环境变量):

[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-你的密钥", [EnvironmentVariableTarget]::User)

⚠️ 密钥就是钱,别乱放。 不要把 key 写进代码、提交进 Git、贴进任何会被分享的文件。临时用 export 设在当前终端最稳,关掉就没了。要持久化就走系统环境变量,别硬编码到项目里。

第三步,启动确认。 设好后跑 claude,交互模式下系统会提示你批准一次这个 key(批准 / 拒绝二选一,选择会被记住)。批准后就用它跑。

这里有个官方明说的关键行为,也就是开头那个坑的根源:

如果你有活跃的 Claude 订阅,但环境里同时设了 ANTHROPIC_API_KEY,那么 API key 在批准后会优先。 如果这个 key 属于已禁用或过期的组织,还会直接导致验证失败。

换句话说,API key 会「盖过」你的订阅。所以才有了下一节要讲的切换问题。

💡 一句话总结:API key 走 Console 拿 key → 配环境变量 → 启动批准 三步;记住它一旦存在就优先于订阅,这是后面所有「切换」问题的根。


04 怎么切换:优先级才是真相

核心结论:你「以为在用哪个身份」不重要,Claude Code 的优先级顺序说了算。 想切换,本质就是去动这个优先级。

类比:插座的接线顺序。 你家墙上有好几个插座(订阅、API key、云凭证……),电器到底从哪个取电,不看你心里想用哪个,看实际插着哪个、谁的位置更靠前。要换电源,就得把更靠前那个拔掉。

官方文档给的身份验证优先级,从高到低 6 层(高的会盖过低的):

优先级凭证来源典型场景
1(最高)云提供商(Bedrock / Vertex / Foundry)企业走云厂商
2ANTHROPIC_AUTH_TOKEN 环境变量走 LLM 网关 / 代理
3ANTHROPIC_API_KEY 环境变量直连 Anthropic API
4apiKeyHelper 脚本输出动态 / 轮换凭证
5CLAUDE_CODE_OAUTH_TOKENCI 里用的长期令牌
6(最低)/login 的订阅凭证个人订阅默认走这层

身份验证优先级栈:Claude Code 从顶往下找第一个有值的层

这张图把上面那张表「立」了起来:6 层凭证从高到低竖直堆叠,Claude Code 从栈顶往下扫,跳过所有「空」的层,停在第一个「有值」的层就用它——个人订阅场景下,上面 5 层都空,于是命中最底层的订阅登录。

看明白没?订阅在最底层。 所以只要上面任何一层有值,它就盖过你的订阅。这就解释了开头那个场景——明明登录了 Max,却在烧 API 的钱——因为第 3 层的 ANTHROPIC_API_KEY 压着第 6 层的订阅。

那怎么切回订阅? 官方给的办法很直接——把更高优先级那层清掉:

unset ANTHROPIC_API_KEY

然后跑 /status 确认。如果是交互模式里临时不想用某个 key,也可以走 /config 里的 「使用自定义 API 密钥」开关 关掉它。

反过来,从订阅切到 API key,就是 export 上 key、批准一次即可(见 03 节)。

几条容易踩的细节,一并记下:

  • ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN 只对终端 CLI 会话生效。 Claude Desktop 桌面端和远程会话只认 OAuth 登录,不读这些环境变量。
  • Claude Code on the Web(网页版)永远用你的订阅凭证,沙箱里的 API key 环境变量盖不过它。
  • ANTHROPIC_AUTH_TOKEN(第 2 层)和 ANTHROPIC_API_KEY(第 3 层)是两个不同的东西:前者作为 Authorization: Bearer 头发送,走网关 / 代理时用;后者作为 X-Api-Key 头发送,直连官方 API 时用。别配混。

💡 一句话总结:切换 = 调优先级。订阅在最底层,上面任何一层有值都会盖过它;切回订阅就 unset 掉高层那个,再用 /status 验。


05 模型选择基础:opus、sonnet 还是 default

身份配好了,还有一件事要拍板:让它用哪个模型干活。

类比:派活儿挑人。 Opus 是组里最强的资深工程师——脑子好、推理深,但慢、贵;Sonnet 是主力干将——日常编程又快又稳,性价比高;Haiku 是跑腿小弟——简单活儿秒回、最省。难题派 Opus,日常派 Sonnet,杂活派 Haiku。

Claude Code 用模型别名让你不用记一长串版本号。常用这几个:

别名用途
default特殊值:清掉手动覆盖,回到你账户层级推荐的模型
opus最新 Opus,复杂推理 / 架构决策
sonnet最新 Sonnet,日常编程
haiku快速高效,处理简单任务
best当前等同于 opus,使用最强大的可用模型
opusplan混合模式:Plan Mode 用 Opus 想,执行时切 Sonnet 干
opus[1m] / sonnet[1m]带 100 万 token 上下文窗口,啃大代码库 / 长会话

注意:别名指向「你的层级推荐的版本」,会随时间更新。具体解析成哪个版本,官方文档以它为准——比如在 Anthropic API 上 opus 当前解析为 Opus 4.8、sonnet 解析为 Sonnet 4.6,但不同提供商(Bedrock / Vertex 等)解析的版本不同(以官方文档为准,可能变化)。

你订阅的层级,决定了默认给你哪个模型:

账户类型default 解析为
Max / Team Premium / Enterprise 按量 / Anthropic APIOpus 4.8
Pro / Team Standard / Enterprise 订阅席位Sonnet 4.6

也就是说,Pro 用户默认是 Sonnet,Max 用户默认能上 Opus——这也是推荐重度用户上 Max 的原因之一。另外,达到 Opus 用量阈值时,Claude Code 可能会自动回退到 Sonnet,这是正常行为,不是 bug。

怎么设模型? 官方按优先级给了四种方式:

# 1. 会话期间临时切(运行不带参数的 /model 会打开选择器)——优先级最高
/model sonnet

# 2. 启动时指定
claude --model opus

# 3. 环境变量(本会话生效)
ANTHROPIC_MODEL=opus
// 4. 写进 settings.json,永久作为新会话默认——优先级最低
{
  "model": "opus"
}

以上按优先级从高到低排列:会话内 /model > 启动时 --model > 环境变量 ANTHROPIC_MODEL > settings 文件。一个实用的习惯:日常 settings.json 里固定 sonnet,碰到需要硬啃的架构问题,对话里临时 /model opus 顶上去,省额度。

关于工作量级别(/effort,控制思考深度)、opusplan 的细节这里先不展开——把模型选对,对小白已经够用。需要深挖时查官方「模型配置」文档。

💡 一句话总结:难题 opus、日常 sonnet、杂活 haikudefault 跟你的订阅层级走,Pro 默认 Sonnet、Max 默认 Opus。


06 动手:3 分钟确认「我在用谁」

光看不练等于没看。下面这套命令,跑一遍你就能彻底搞清楚自己当前的身份和模型状态。全程在终端、然后在 Claude Code 界面里操作,不依赖任何复杂环境。

第一步:进 Claude Code。 随便找个目录,跑:

claude

第二步:查当前状态。 在 Claude Code 输入框里敲:

/status

它会显示你的账户信息当前生效的身份验证方式 / 模型。预期看到类似(具体字段随版本,以实际显示为准):

Account: your@email.com (Max)
Auth: Claude subscription (OAuth)
Model: opus (Opus 4.8)

如果这里 Auth 显示的是 API key、而你以为自己在用订阅——恭喜,你刚抓到了开头说的那个坑。

第三步:看能用哪些模型 / 切一下。 输入:

/model

会弹出模型选择器,列出 opus / sonnet / haiku 等可选项,上下选、回车确认。想直接切就:

/model sonnet

第四步(可选):验证「订阅 vs API key」的优先级。 这一步能让你亲眼看见 04 节讲的规律。先退出 Claude Code,在终端里:

# 看看环境里有没有 API key 在「偷偷」盖过你的订阅
echo $ANTHROPIC_API_KEY
  • 如果输出一串 sk-ant-...:说明它正压着你的订阅。想用回订阅就 unset ANTHROPIC_API_KEY,再进 claude/status 复查,Auth 应该变回订阅。
  • 如果输出为空:你本来就在走订阅(或其它优先级更高的凭证),没问题。

Windows(PowerShell)查环境变量用:

echo $env:ANTHROPIC_API_KEY

验收标准: 你能用 /status 一眼说出「我现在用的是订阅还是 API key、跑的是哪个模型」,并且能通过 unset + 复查,亲手切回订阅。做到了,这篇的核心目标就达成了。


07 小结

这一篇就讲清了一件事:Claude Code 用什么身份连模型,以及这个身份怎么选、怎么切。

你的情况怎么配默认模型
个人 Pro / Maxclaude → 浏览器 /loginPro→Sonnet,Max→Opus
脚本 / CI / 团队按量Console 拿 key → 配 ANTHROPIC_API_KEY看具体设置
想切回订阅unset ANTHROPIC_API_KEY + /status 复查

三个最该记住的点:

  • 订阅在优先级最底层,环境里任何一个 API key / token 都会盖过它——被莫名扣费先查这个。
  • /status 是你的照妖镜:搞不清在用谁,敲它。
  • 模型按活儿挑:难题 opus、日常 sonnetdefault 跟订阅层级走。

你现在应该能:装好后正确登录、看懂自己在用哪个身份和模型、在订阅和 API key 之间来回切,并且不再被「明明登了订阅却扣 API 费」这种事坑到。

下一篇预告

到这儿你连的还是 Claude 官方的模型。但 Claude 在国内用,官方 API 不算友好——能不能让 Claude Code 跑 DeepSeek、通义千问、GLM 这些国产模型?

能。秘密就在这篇反复出现、却一直没展开的那个环境变量——ANTHROPIC_BASE_URL:它不改「用哪个模型」,只改「请求发到哪」。下一篇 05 · 接入第三方 / 国产模型,就用它把 Claude Code 接到国产大模型上,省钱还不用魔法上网。

留个小思考给你:既然 API key 会盖过订阅,那把 ANTHROPIC_BASE_URL 指向国产平台、再配上对应的 key,Claude Code 是不是就「换芯」了?下一篇见分晓。


接好了官方模型这条「主路」,下一篇咱们拐进国产模型这条「岔路」。


05 · 接入第三方 / 国产模型

用 DeepSeek 等国产 / 第三方模型驱动 Claude Code,把账单砍下来

⚠️ 本篇开头先打个预防针:用第三方模型驱动 Claude Code 属于「实验性玩法」。官方文档只正式覆盖到「LLM 网关」和 Bedrock / Vertex 这类托管 Claude,并没有背书任何非 Anthropic 模型。本文凡是官方明确写到的(环境变量含义、默认行为)我都标了来源;DeepSeek 那部分以社区方案加实测为主,接口地址、模型名随时可能变,以 DeepSeek 官方为准

兄弟们,先说一句可能挨骂的话:大多数人根本不需要折腾第三方模型

网上一堆教程把「Claude Code 接 DeepSeek」吹成省钱神器,搞得好像不接就是冤大头。但说句实话——如果你已经买了 Claude 的订阅(Pro / Max),或者一个月 API 花销也就几十块,你折腾半天省下的那点钱,还不够你 debug 环境变量的工夫

那这篇为什么还要写?因为有两种人是真用得上:一种是 API 余额烧得肉疼的重度用户,每天几千万 token 进出,换个便宜十倍的模型一个月省几百上千;另一种是连不上官方、又不想搞魔法上网的国内用户,DeepSeek 这种国内直连的接口反而最省心。

是这两种人——往下看。不是的话,扫一眼原理就够了,别急着动手换

看完这一篇,你会拿到:

  • 一张「官方 API vs 第三方模型」的取舍对照表,先想清楚该不该换
  • 一套照着抄就能跑的 DeepSeek 接入配置(Mac / Windows 分别给)
  • 搞懂 4 个关键环境变量到底在干嘛,换任何第三方模型都通用
  • 几个常见的坑:弃用变量、/status 验证、什么时候别用

01 先搞懂:换模型到底换了什么

先说结论:Claude Code 是「壳」,模型是「大脑」,第三方接入做的事,就是把大脑换成别人家的。

你装的 Claude Code,本质是一个跑在终端里的客户端——它负责读你的代码、调工具、管上下文、跑那个「想 → 做 → 看」的代理循环。但它自己不会思考,每一步都要把请求发给某个大模型,等模型回话。默认这个模型是 Anthropic 的 Claude。

类比:换发动机的车。 Claude Code 是车壳——方向盘、座椅、仪表盘都不变,你的操作习惯一点不用改。模型就是发动机。原厂发动机(Claude)动力最猛但油费贵;你想省钱,可以拆下来塞一台国产发动机(DeepSeek)。车还是那辆车,开起来手感差不多,就是动力和油耗变了

那「换发动机」具体怎么换?靠的不是改代码,而是几个环境变量。其中最核心的一个叫 ANTHROPIC_BASE_URL——它决定 Claude Code 把请求发到哪个地址

这里有个官方文档里特别强调、但九成教程都没讲清的点:

ANTHROPIC_BASE_URL 改变请求发送的位置,而不是哪个模型回答它们。(官方《模型配置》原文)

啥意思?ANTHROPIC_BASE_URL 只是改了「往哪寄信」,不负责「谁来回信」。你把地址改成 DeepSeek 的接口,DeepSeek 那边愿不愿意收、用哪个模型回,是接口地址 + 模型名两个一起决定的。所以光改 URL 不够,模型名也得跟着配——这是后面踩坑的高发区,先记住。

那为什么 DeepSeek 能直接接?因为 DeepSeek 提供了一个「兼容 Anthropic 协议」的接口——地址是 https://api.deepseek.com/anthropic。说白了就是 DeepSeek 把自己伪装成 Anthropic 的样子,让 Claude Code 以为还在跟官方说话,实际背后是 DeepSeek 在算。Claude Code 一行源码都不用改。

💡 一句话总结:换模型 = 改几个环境变量把「发动机」换掉,车壳(Claude Code)不动;ANTHROPIC_BASE_URL 管「寄到哪」,模型名管「谁来答」,两个都得配对


02 该不该换?先看这张表

动手之前,先冷静五分钟。第三方模型不是免费午餐,它省了钱,但也会丢一些东西。

拿一个真实项目对比了两周:同一套代码、同样的活儿,前一周用官方 Sonnet,后一周换 DeepSeek。下面这张表是实际用下来最真实的感受,不是参数表抄的。

维度官方 Claude(Anthropic API)第三方 / 国产模型(如 DeepSeek)
价格贵,Opus 尤其烧钱✅ 便宜,常便宜一个数量级
国内直连多数要魔法上网✅ DeepSeek 等国内直连,零门槛
代码能力✅ 目前第一梯队,复杂重构稳够用,复杂任务偶尔翻车
工具调用 / Agent 能力✅ 原生最稳,多步任务不掉链子⚠️ 看模型,兼容接口偶有边缘行为
配置成本填个 Key 就行要配一组环境变量,易踩坑
官方支持✅ 一等公民❌ 实验性,出问题没人兜底

看明白没?便宜和国内直连是第三方的两张王牌;代价是代码上限、Agent 稳定性和「没人兜底」。

这两周对比下来的真实结论:日常的增删改查、写测试、补文档、解释代码,DeepSeek 完全够用,体感跟 Sonnet 差别不大,但花的钱零头都不到。 可一旦遇到那种「读懂五六个文件的调用关系、跨模块大重构」的活儿,DeepSeek 有两次漏掉了关键依赖,Claude 同样的 prompt 一次就对。

所以更实用的用法是混着来:糙活给便宜模型、硬活切回 Claude——具体怎么分层,第 05 节给一套可直接抄的配置。

一句话判断该不该换:

  • 该换:API 账单一个月几百上千的重度用户;连官方费劲、不想搞魔法上网的国内用户;只想练手、不在乎那点模型差距的人。
  • 别折腾:已经买了 Claude 订阅的(订阅是固定费用,换 API 反而另外花钱,下一篇 06 细讲);主力干复杂架构、疑难调试的(省那点钱不值得拿结果质量换)。

还在犹豫?先让网络说话

上面那条「该不该换」清单里,「国内连官方费不费劲」是最难自己判断的一项——你以为开了魔法上网就稳,结果跑两步 Claude Code 突然 502 或者 400,到底是它抽风还是你网络被风控了?光猜没用,先跑一遍测

ipcheck 是我之前写的网络环境诊断小工具,一条命令测完 IP / DNS / 代理 / 风控,直接告诉你当前网络能不能干净连上官方 API。

  • 测出来一片红 / 黄(DNS 污染、代理识别、风控命中)→ 别犹豫,第三方走起,省掉后面 N 次玄学排查
  • 测出来一片绿→ 老老实实用官方,别为了省那点钱再折腾一套环境变量

💡 一句话总结:第三方模型用「省钱 + 国内直连」换「代码上限 + 兜底」;重度用户和国内直连党该换,订阅党和硬核重构党别凑热闹


03 动手:把 DeepSeek 接进 Claude Code

好,假设你确认要换了。这节给一套照着抄就能跑的配置。

下面用 DeepSeek 举例(国内最省心)。接其他第三方模型(Kimi、智谱、各种聚合中转站……)套路完全一样,只是 ANTHROPIC_BASE_URL 和模型名换成对应平台的——这俩以各自官方文档为准。

前置:拿到一把 DeepSeek API Key

前提是你已经装好了 Claude Code(没装的回去看 02 · 安装与使用)。然后:

  1. 打开 DeepSeek 开放平台,注册 / 登录
  2. 创建一个 API Key,复制出来存好(形如 sk-xxxxxxxx

🔑 API Key 等于你账户的钱包钥匙。别提交到 Git 仓库、别发群里、别写进代码。下面我们用环境变量管它,天然不进代码。

第一步:配环境变量

环境变量就是「写给系统看的一组开关和地址」,Claude Code 启动时会去读它们,决定往哪发、用什么模型。

类比:填快递单。 ANTHROPIC_BASE_URL 是收件地址,ANTHROPIC_AUTH_TOKEN 是你的身份证(验明正身才给寄),后面那串 ANTHROPIC_*_MODEL 是「指定用哪个快递员送」。单子填对,包裹(你的请求)才能到正确的地方、被正确的人处理。

Mac / Linux

打开终端,逐行执行(把 <你的 DeepSeek API Key> 换成真的 Key):

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<你的 DeepSeek API Key>
export ANTHROPIC_MODEL=deepseek-chat
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-chat
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-chat
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-chat
Windows(PowerShell)
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="<你的 DeepSeek API Key>"
$env:ANTHROPIC_MODEL="deepseek-chat"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-chat"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-chat"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-chat"

⚠️ 关于模型名:上面写的 deepseek-chat 是示例占位。DeepSeek 的具体模型名(以及对应哪个能力档位)以 DeepSeek 官方文档 为准,平台升级时名字会变,别照着写死。模型名是「填给快递单的快递员编号」,填错了系统不认,启动就会报错。

一个请求从 Claude Code 经环境变量改写后寄到 DeepSeek 又原路返回的时序图

上图想表达的整条链路:你的指令 → Claude Code 打包成请求 → BASE_URL 把收件地址改成 DeepSeek → AUTH_TOKEN 验明身份 → DeepSeek 模型计算 → 结果原路返回终端。中间 Claude Code 这个「壳」全程没变。

第二步:让配置永久生效(可选但强烈建议)

上面的 export / $env: 只在当前这个终端窗口有效,关掉窗口就没了——这是新手第一个大坑:「我明明配过了,怎么重开终端又不行了?」

要永久生效:

  • Mac(zsh,默认):把那几行 export 追加到 ~/.zshrc 末尾,再执行 source ~/.zshrc
  • Linux(bash):追加到 ~/.bashrc 末尾,执行 source ~/.bashrc
  • Windows:在「系统属性 → 环境变量」里加用户变量,或写进 PowerShell 的 $PROFILE

💡 一句话总结:接 DeepSeek = 拿 Key + 配一组环境变量(地址 + 身份证 + 模型名);临时 export 关窗即失效,要长期用就写进 ~/.zshrc


04 验证:到底接没接上

配完别急着用,先验证。要是没验证就开干,很可能写了半天才发现请求其实还在走官方、根本没切过去——白白浪费时间。

验证就一个命令。进任意项目目录,启动 Claude Code,输入 /status

cd /path/to/your-project
claude

进去之后在对话框敲:

/status

如果接上了,你会在输出里看到类似这样的几行(关注 Base URL 和模型):

Base URL: https://api.deepseek.com/anthropic
Model: deepseek-chat

看到 Base URL 变成了 DeepSeek 的地址,就说明「发动机」真的换上了。 /status 同时会显示你的账户信息和当前模型,是排查这类问题最快的手段——官方文档也专门点名用它「验证你的代理和网关配置是否正确应用」。

如果显示的还是官方地址、或者直接报错,逐项排查这几个高频原因

现象大概率原因怎么修
Base URL 还是官方的环境变量没生效(可能开了新终端)重新 source,或确认写进了配置文件
启动就报模型不存在模型名写错 / 平台改名了去 DeepSeek 官方文档查最新模型名
401 / 鉴权失败API Key 错了或过期重新生成 Key,检查有没有多复制空格
提示要登录 claude.ai客户端还想走官方登录见下方说明

最后那条单独说一句:有些第三方接入场景下,Claude Code 启动还会弹官方登录提示。常见的办法是改 ~/.claude.json,加一行 "hasCompletedOnboarding": true 跳过引导。这属于实验性绕过、不是官方文档记录的标准做法,新版本行为可能变——能不动就不动,真卡住了再试。

💡 一句话总结/status 看一眼 Base URL 变没变,就知道接没接上;接不上别瞎猜,照着排查表一项项过


05 进阶:分层用模型,省钱还不掉链子

这节是最值钱的一招,也是第 02 节说的「混着用」的具体落地。

还记得第 01 节那堆 ANTHROPIC_*_MODEL 变量吗?它们不是随便重复填的——Claude Code 内部把任务分了三个档位,你可以给每个档位指派不同的模型。

变量官方含义适合放什么活
ANTHROPIC_DEFAULT_OPUS_MODELopus 别名解析到的模型最复杂:架构设计、疑难调试
ANTHROPIC_DEFAULT_SONNET_MODELsonnet 别名解析到的模型日常:写功能、改代码
ANTHROPIC_DEFAULT_HAIKU_MODELhaiku 别名 / 后台功能(如自动 title 等)的模型轻量:快速问答、后台杂活
CLAUDE_CODE_SUBAGENT_MODEL所有子代理 / agent team 用的模型子任务,建议给便宜快的

以上含义全部来自官方《模型配置》文档。这套机制不是 DeepSeek 专属,是 Claude Code 原生的——接第三方时,你只是把这几个别名都指向第三方模型而已。

类比:餐厅排班。 大厨(最强模型)工资高,只让他做招牌硬菜;家常小炒交给普通厨师(中档模型);端茶倒水洗菜这种(后台杂活、子任务)派学徒(便宜快模型)就行。全店都用大厨?菜是好吃,但你工资发不起。

所以真正会玩的配法不是「全部填一个模型」,而是分层——假设某平台同时有「强推理款」和「快而便宜款」两个模型:

# 复杂任务用强的
export ANTHROPIC_DEFAULT_OPUS_MODEL=<强推理款模型名>
export ANTHROPIC_DEFAULT_SONNET_MODEL=<强推理款模型名>
# 轻量任务和子代理用便宜快的,省钱
export ANTHROPIC_DEFAULT_HAIKU_MODEL=<快而便宜款模型名>
export CLAUDE_CODE_SUBAGENT_MODEL=<快而便宜款模型名>

这么配的好处:你在 Claude Code 里用 /model opus 切到「重档」时跑强模型,平时默认跑便宜的,子代理这种高频后台调用自动走最便宜的——账单一下就下来了。

还有一个控制「思考深度」的变量 CLAUDE_CODE_EFFORT_LEVEL,官方支持 low / medium / high / xhigh / max / autoauto 表示恢复模型默认档位;具体哪些档可用取决于模型)。想让模型多想一会儿、结果更稳,可以调高;想省 token、要快,就调低。

一种好用的搭法:默认档位填便宜模型 + effort 给 medium 跑日常,遇到硬骨头再 /model 手动切重档 + 临时拉到 high。这么搭一个月 API 账单大概砍到原来的三分之一,日常体感几乎没差。

💡 一句话总结:别把所有档位填一个模型——糙活给便宜的、硬活给强的、子代理走最便宜的,分层之后省钱和质量能兼得。


06 两个新手必踩的坑

最后拎出两个新手普遍会栽的坑,专门说一下。

坑一:抄了已经被官方弃用的变量名

网上(包括一些教程的「参考配置」表里)你会看到一个变量 ANTHROPIC_SMALL_FAST_MODEL,用来指定那个「快速小模型」。

这个变量官方已经标了「已弃用(deprecated)」,正主是 ANTHROPIC_DEFAULT_HAIKU_MODEL。很多人第一次配的时候照着旧教程抄了 ANTHROPIC_SMALL_FAST_MODEL,虽然当时还能跑,但心里一直没底——翻一翻官方《环境变量》文档就会发现它已经被替代了。

结论:新配置一律用 ANTHROPIC_DEFAULT_HAIKU_MODEL,看到老教程里的 ANTHROPIC_SMALL_FAST_MODEL 直接换掉,别留着。

坑二:分不清 AUTH_TOKENAPI_KEY

接第三方模型时,鉴权用哪个变量?这俩长得像,行为完全不同——直接看官方说法:

变量官方行为接第三方该用谁
ANTHROPIC_AUTH_TOKEN作为 Authorization 头发送,值自动加 Bearer 前缀接 DeepSeek 等第三方用这个
ANTHROPIC_API_KEY作为 X-Api-Key 头发送;非交互模式(-p)下只要存在就强制用它走官方 Anthropic API 时用

为啥第三方推荐 ANTHROPIC_AUTH_TOKEN?因为 DeepSeek 这类兼容接口走的是标准 Authorization: Bearer <key> 这套,正好对上。这也是社区方案和实测里都用 ANTHROPIC_AUTH_TOKEN 的原因。

还有个连带的小坑要心里有数:官方文档明确写了,ANTHROPIC_BASE_URL 指向「非第一方主机」(也就是非官方地址)时,MCP 工具搜索默认会被关闭。简单说就是——接了第三方之后,某些依赖官方的高级特性可能行为不一样甚至用不了。这也呼应了第 02 节那句「实验性、没人兜底」。日常编程用不太到,但你要是重度依赖 MCP,心里得有这根弦。

💡 一句话总结:鉴权认准 ANTHROPIC_AUTH_TOKEN、小模型认准 ANTHROPIC_DEFAULT_HAIKU_MODEL老教程里的弃用变量直接换掉,接了第三方部分高级特性会缩水


07 小结

这一篇就干了一件事:把 Claude Code 的「大脑」从官方 Claude 换成更便宜的第三方模型。

串一下要点:

环节关键动作
想清楚重度用户 / 国内直连党才值得换,订阅党别折腾
接上ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN + 模型名
验证/status 看 Base URL 变没变
省到位分层填模型,糙活便宜的、硬活强的、子代理最便宜的
避坑别用弃用的 ANTHROPIC_SMALL_FAST_MODEL;鉴权用 AUTH_TOKEN

你现在应该能:独立把 DeepSeek(或任何兼容 Anthropic 协议的第三方模型)接进 Claude Code,验证接通,并按任务分层配置来压低账单。

再强调一遍那句反共识的话:这是省钱手段,不是必修课。值不值得折腾,取决于你是不是真的在为 API 账单肉疼——多数轻度用户老老实实用官方就挺好。


下一篇 06 · Coding Plan:订阅套餐与计费——既然这篇一直在说「省钱」,那就把账算到底:Claude 的订阅套餐(Pro / Max)和按量付费的 API,到底哪个划算? 留个问题给你先想想:如果你每天都重度用 Claude Code,是该买订阅,还是接第三方 API 更省?看完下一篇你就有答案了。


06 · Coding Plan:订阅套餐与计费

官方文档里有个数字第一眼看到容易愣一下:企业部署里,每个开发者平均每个活跃日烧掉约 13 美元、每月 150–250 美元(来源:官方 costs 文档)。13 美元一天,按汇率就是九十多块,一个月小两千——这还只是「平均」。

我自己刚用 Claude Code 接官方 API(按量计费)那会儿就吃过亏:没装任何用量提示,闷头干了一周。周末打开 Console 一看账单 $40 出头——钱不算多,但我完全说不清是怎么花出去的:哪次对话烧得多?模型选错了还是上下文堆太满?一笔糊涂账。

这一篇就来把账算明白。搞清楚计费逻辑,比盲目找便宜套餐重要得多——同一个套餐,会用的人撑一个月,不会用的人三天触顶。

看完这一篇,你会拿到:

  • 一张「按量计费 vs 订阅套餐 vs 国产 Coding Plan」的对比表,知道自己该选哪条路
  • 看懂 Claude Code 的计费单位(token),知道钱到底花在哪
  • 几个命令(/usage 查用量、/usage-credits 设上限、/status 核配置),自己就能盯住开销
  • 一套实测有效的省钱习惯,同样的活儿,token 能少烧一大截

01 先搞清楚:你在为什么付费

先说结论:Claude Code 本身免费,你付的是「模型算力」的钱

Claude Code 只是个跑在终端里的命令行工具,下载不要钱。真正花钱的是它背后的大模型——你提问、它读文件、它写代码,都要把内容发给模型处理,这个处理量就是计费单位

类比:Claude Code 是出租车,模型是里程。 上车免费、车也免费给你坐,但一开起来跑的每一公里都在跳表——你问得越多、让它读的文件越大、它想得越久,「里程」就越长。

这个「里程」的计量单位叫 token类比:token 就是文字的「计价字数」。 模型把文字切成一小块一小块来数——按 Anthropic 官方平台术语表对于 Claude,1 个 token 大约代表 3.5 个英文字符,确切数字因语言而异(中文未给固定比例);你发出去的算「输入 token」、它回来的算「输出 token」,分别计价、输出通常更贵。

举几个你天天遇到的场景,感受下 token 怎么堆起来:

  • 让它「读一下这个 2000 行的文件再改」——整个文件都变成输入 token 发出去了
  • 一轮对话聊到第 50 条——前面 49 条作为上下文每次都重发一遍(这是大头,第 05 节的 /clear 习惯就是针对这个)
  • 开了扩展思考(extended thinking),它「想」一大段才动手——思考过程算输出 token

所以花钱多少跟「问了几个问题」关系不大,跟「每次塞多少上下文」关系极大——这是后面省钱的核心抓手。

💡 一句话总结:工具免费,你付的是模型按 token 计的算力费——输入 + 输出 + 思考,全都算钱。


02 三条路怎么选:按量计费 / 官方订阅 / 国产 Coding Plan

知道了为 token 付费,下个问题是:这钱通过什么渠道付? 主流就三条路,先上表再说人话。

方案怎么收费月成本(参考)适合谁主要坑
官方按量计费(API / Console)按 token 用量、用多少扣多少浮动,重度用户 $150–250+想用官方原生模型、用量稳定账单浮动、可能超预算;需绑卡(美元)
官方订阅(Pro / Max / Team)固定月费、包含一定额度固定(以官方 pricing 为准)高频用、想要固定支出、用官方模型海外支付、需魔法上网;额度有上限
国产 Coding Plan(方舟 / 百炼 / 讯飞等)固定月费、多工具共享额度低,首月常有促销国内用户、对成本敏感、能接受国产模型模型非 Claude;额度按厂商规则;价格多变

这三条路不是「哪个最好」,是「你是谁」。 表格之外补两点:

官方两条路——按量计费用原生 Claude 模型(编程第一梯队)、最灵活但账单浮动(前面那笔糊涂的 $40 就是它);订阅心理负担最小、Max 适合重度用户,但需要海外支付 + 魔法上网,几档多少钱一律以官方 claude.com/pricing 为准,这里不写死。

国产 Coding Plan 是国内开发者现在最实际的选择。火山方舟、阿里百炼、讯飞星辰都推出了「Coding Plan」——专为 AI 编程工具设计的订阅服务,固定月费、远低于按量计费、兼容 Claude Code,把千问、Kimi、GLM、DeepSeek、豆包、MiniMax 整合进来,多工具(Cursor、Cline 等)共享一份额度

⚠️ 国产 Coding Plan 的价格促销极其频繁,网传「首月 9.9 / 49.9」之类是某时段活动价,随时会变、活动会下架。本文不引用具体金额,请直接到厂商活动页看当前价。

接入方式(Base URL、ANTHROPIC_MODEL)上一篇已讲透,不重复。但有一个计费大坑必须单独拎出来,下一节专门说。

💡 一句话总结:官方原生选订阅或按量,国内省钱选 Coding Plan——先想清楚自己是谁,再挑路,别只看价格。


03 国产 Coding Plan 的计费坑:Base URL 选错,钱白花

单独拎出来,因为太多人栽在这——明明买了 Coding Plan,月底却收到一笔额外账单。根源是:同一个厂商往往有两套 Base URL,一套走套餐额度、一套走按量计费,长得还很像。以火山方舟为例:

Base URL走哪笔钱用途
https://ark.cn-beijing.volces.com/api/coding消耗 Coding Plan 套餐额度接 Claude Code 该用这个
https://ark.cn-beijing.volces.com/api/v3不走套餐,单独按量扣费普通 API 调用

看出来了吗?就差 codingv3 一个词。你买了套餐、本以为固定月费封顶,结果配置时手一抖填成 /api/v3,套餐额度一点没动,所有调用全走了按量计费、月底额外掏钱。阿里百炼也类似——它的 Coding Plan 专属 Key(sk-sp- 开头)和按量计费普通 Key(sk- 开头)不互通,混用同样出问题。

所以接国产 Coding Plan,记住两条铁律:Base URL 必须带 coding 字样API Key 用套餐专属的那把,别拿按量计费的 Key 顶上。上面方舟、百炼的具体地址和 Key 前缀都是第三方厂商的私有规则,会随厂商调整而变,动手前请以各厂商官方文档 / 控制台的当前说明为准。

配火山方舟时一旦填错成 v3,要是当晚习惯性跑了下 /usage 看用量,就会发现「套餐额度怎么没动、Console 按量这边反而有数」,赶紧改回 coding。这种坑靠肉眼查配置很难发现,靠盯用量才抓得出来。

💡 一句话总结:买了套餐 ≠ 走套餐——Base URL 选带 coding 的、Key 用套餐专属的,配完立刻核对,否则钱悄悄从另一个口子流走。


04 怎么查用量:三个命令盯住你的钱包

光交钱不看用量,等于蒙眼开车。Claude Code 内置了几个命令让你随时知道钱花在哪,逐个说。

/usage:最全的用量面板(用得最勤的一个)

在对话框直接敲:

/usage

它顶部的 Session 块显示当前会话的详细 token 用量,长这样(来源:官方 costs 文档):

Total cost:            $0.55
Total duration (API):  6m 19.7s
Total duration (wall): 6h 33m 10.2s
Total code changes:    0 lines added, 0 lines removed

四行是:估算总花销、API 实际处理时长、挂窗口的真实时长、代码改动行数。干完一个任务就随手敲一下,对当次开销有个数。 但官方有个重要提醒:

Session 块里的美元数字是从 token 数本地估算的,可能和实际账单不同。权威计费看 Claude Console 的使用页面。(来源:官方 costs 文档)

如果你用官方 Pro / Max / Team / Enterprise 订阅/usage 还会多一块额度用量明细——把最近消耗按 skills、subagents、plugins、各 MCP server 拆开显示占比,按 d / w 切换「过去 24 小时 / 7 天」。注意这是从本机会话历史算出的近似值,不含其他设备或 claude.ai 的用量。(来源:官方 costs 文档)

/usage-credits:给自己设个月度上限(防超支神器)

这个是官方 Pro / Max 计划专属功能(来源:官方 costs 文档):

/usage-credits

它能让你在使用额度上设一个每月支出上限。一旦花到这个数,Claude Code 会提示你「提高上限还是移除限制」,直接在 CLI 里决定。改这个限制需要账户的计费访问权限(billing access)。

新手强烈建议一上来就用它设个上限——比如预算 100 块一个月,触顶就拦你,比月底看账单吓一跳强太多。我那笔糊涂的 $40,恰恰就是因为当时压根不知道有这命令。

还有个 /status,打开设置界面的 Status 标签,按官方 commands 文档显示 version、model、account、connectivity(版本、模型、账户、连通性)。官方在第三方集成文档里建议「用 /status 验证你的代理和网关配置是否正确应用」——它正是上一节核对接入配置的工具,配完套餐敲一下、确认模型和连通性正常再干活。

命令适用场景注意事项
/usage查当前会话 token 用量与估算花销金额是本地估算,权威账单看 Console
/usage-credits设月度使用上限、防超支仅官方 Pro / Max 计划可用
/status核对 version、model、account、连通性验证接入配置是否生效的第一步

💡 一句话总结:/usage 看明细、/usage-credits 设上限、/status 核配置——三个命令把钱包焊死


05 省钱的真功夫:让同样的活儿少烧 token

换便宜套餐是下策,会用工具才是上策。回到 01 节那句——花钱多少跟你塞进去多少上下文极度相关,所以省钱核心就一句:别让模型读没用的、想没必要的弯路。下面都来自官方 costs 文档,挑的是对新手最立竿见影的几条。

第一,任务之间用 /clear 清空。 这是回报最高的习惯

/clear

我自己以前就是一个窗口从早开到晚,上午修 bug、下午写新功能全挤在一个会话里,图省事懒得切。问题是上下文累积:下午每个问题都把上午那堆早没用的对话重发一遍,token 白白翻倍——后来盯 /usage 才发现下午那几条对话单价明显比上午高,就是这么烧出来的。官方原话:

使用 /clear 在切换到不相关的工作时重新开始。陈旧的上下文会在随后的每条消息上浪费令牌。

养成习惯:一个独立任务做完立刻 /clear,切到不相关的活儿绝不在旧会话里硬接。就这一下,长会话开销砍掉一大块。

第二,选对模型,别拿大炮打蚊子。 官方原则是「Sonnet 处理大多数编程任务都很好、成本低于 Opus,把 Opus 留给复杂架构和多步推理」(来源:costs 文档)。说人话:日常改代码、写函数、调小 bug,Sonnet 完全够;只有「重构整个模块」这种硬骨头才用 /model 切 Opus。更简单的 subagent 任务甚至可以在 subagent 配置里指定 Haiku,单价更低。默认挂 Sonnet,一周也就切两三次

第三,复杂任务先用 plan mode(规划模式)。Shift+Tab 进入,让它先探索代码库、提方案给你批准再动手——方向错了的返工最烧钱。这坑很常见:让它改一个没说清的需求,它埋头改了七八个文件、方向全错,这段 token 全打水漂。

第四,提示写具体点。 你越含糊,它越要满世界翻文件猜你想干嘛,每翻一个都是 token。官方原话对比:「改进此代码库」触发广泛扫描,「给 auth.ts 的登录函数加输入校验」让它以最少文件读取高效工作。

下面这张表可以当成贴在显示器边上的「省钱速查」:

坏习惯 ❌好习惯 ✅省在哪
一个会话从早用到晚任务间 /clear不重发陈旧上下文
全程挂 Opus默认 Sonnet,难题才切 Opus单价更低
含糊需求直接开干复杂任务先 plan mode少返工、少瞎扫
「帮我改进下代码」「给 auth.ts 的登录函数加输入校验」少读无关文件

冷知识(来源:官方 costs 文档):Claude Code 空闲时也会用一点点 token——比如为 claude --resume 后台总结旧对话。但量很小,通常每个会话不到 $0.04,不用担心。

💡 一句话总结:省钱不是换便宜套餐,是 /clear 勤清、Sonnet 兜底、复杂先 plan、提示说清——上下文越小,账单越薄。


06 动手:三步盯住你这周的开销

光看不练等于没看。下面这套动作你现在就能跑一遍,五分钟建立起「用量感知」。

前提:已按前几篇装好并配好 Claude Code(官方订阅或国产 Coding Plan 都行)。在项目目录下启动:

cd path/to/your_project
claude

第一步:核对配置没填错口子。

/status

它会打开设置界面的 Status 标签,按官方 commands 文档显示 version、model、account、connectivity(版本、模型、账户、连通性)——重点确认模型是你想用的那个、连通性正常,否则说明接入没配对。

Base URL 本身不在 /status 的输出里,得回去核对你写的环境变量:国产 Coding Plan 用户确认 ANTHROPIC_BASE_URLcoding 字样(如 .../api/coding),不是 /api/v3 之类的按量地址。填错了回 05 篇那套环境变量里改对、重开终端再启动。

第二步:随便问个问题,看花了多少。 先让它干点小活:

帮我看看当前目录下有哪些文件,简单说下这个项目是干嘛的

等它回完,敲:

/usage

顶部 Session 块预期长这样:

Total cost:            $0.0X
Total duration (API):  Xs
Total duration (wall): Xs
Total code changes:    0 lines added, 0 lines removed

记住这个数。这就是「问一个简单问题 + 读一遍目录」的成本——有了基准,以后哪次对话异常烧钱你一眼能察觉。

第三步:设月度上限(官方 Pro / Max 用户)。

/usage-credits

按提示设一个你能接受的上限。设完触顶它会主动拦你、问要不要提高,等于给钱包上了保险栓

国产 Coding Plan 用户:/usage-credits 针对官方使用额度,不一定适用于你的厂商套餐——额度和用量以厂商控制台为准,但 /usage/clear 这些习惯照样要养成。

跑完这三步,你就从「闷头烧钱」升级成「随时知道烧了多少、还能设闸」。

💡 一句话总结:/status 核口子 → /usage 建基准 → /usage-credits 设上限,五分钟拿回开销掌控权。


07 小结

这一篇把 Claude Code 的「钱」掰开揉碎讲了一遍。

你学到的关键点
为什么付费工具免费,付的是模型按 token 计的算力费
三条路怎么选官方原生→订阅/按量;国内省钱→Coding Plan
国产套餐的坑Base URL 选带 coding 的、Key 用专属的
怎么查用量/usage 看明细、/usage-credits 设上限、/status 核配置
怎么省钱/clear 勤清、Sonnet 兜底、复杂先 plan、提示说清

只记一条的话:花钱多少跟「塞进去多少上下文」极度相关,不是跟「问了几个问题」。吃透这句,省钱的招数你都能自己推导出来——看懂账单逻辑、查清当次开销、设月度上限、把活儿干得更省,到这你都拿下了。

⚠️ 再强调一次准确性:本文涉及的套餐价格、促销、额度规则都会变动,金额一律以官方 claude.com/pricing 或国产厂商活动页为准;/usage-credits 等命令行为以官方 costs 文档为准,可能随版本更新(claude --version 看版本)。


账算明白了,套餐也选好了,下一篇 07「第一次使用:跑通第一个例子」——正式启动 Claude Code,从一个最小的真实项目开始,把「想 → 做 → 看」的代理循环亲手跑一遍。铺垫够多了,是时候动真格了。