Claude Code 的逐版本更新日志只有一个权威来源:官方文档里的 Changelog 页面。它由 GitHub 仓库中的 CHANGELOG.md 生成,内容是英文。能直接读中文的官方内容是每周一期的最新动态,但它只挑重点,每一个修复仍要回到更新日志里查。
截至 2026 年 9 月 23 日,最新版本是 2.1.280(9 月 22 日),stable 通道指向 2.1.267(9 月 9 日),npm 标签与原生安装器读取的版本指针一致。想知道“从我这版到最新版改了什么”,先运行 claude --version,再用下文的命令把之后的条目全部列出来;如果某次更新弄坏了你正在用的功能,可以切到 stable 通道,或者装回指定版本并暂停自动更新。
先确认本机版本
claude --version输出形如 2.1.267 (Claude Code),前面的数字就是后文命令里要填的版本号。已经在会话里时,输入 /status 也能看到版本、模型、账号和连接状态。
另外两个诊断入口:
- 终端里的
claude doctor只读地输出安装诊断,其中包括最近一次自动更新的结果。 - 会话里的
/doctor除了检查安装问题,还会看你所在的更新通道上有没有更新的版本。
latest 和 stable 此刻各指向哪个版本,可以查 npm 标签,也可以直接读原生安装器使用的版本指针:
npm view @anthropic-ai/claude-code dist-tags
curl -fsSL https://downloads.claude.ai/claude-code-releases/stable
curl -fsSL https://downloads.claude.ai/claude-code-releases/latest2026 年 9 月 23 日两边结果一致:stable 为 2.1.267,latest 为 2.1.280。后两个地址是官方安装脚本实际读取的指针,但文档里没有介绍,随时可能调整,只适合作查询参考。每次版本晋升这些值都会变,这组数字只代表这一天。
不同问题去看哪份记录
| 你想知道 | 去看 | 需要注意 |
|---|---|---|
| 某个版本的全部新增、修复和行为变化 | 官方更新日志,或 GitHub 上的 CHANGELOG.md | 只有英文;/docs/zh-CN/changelog 打开后也是同一份英文内容 |
| 最近有什么值得试的新功能,想读中文 | 最新动态 | 按周编排并标出版本范围,例如第 37 周(9 月 7–11 日)对应 v2.1.263–v2.1.269;只收亮点 |
| 不离开终端,直接看某一版的说明 | 会话里输入 /release-notes | 弹出版本选择器,可选单个版本或全部;内容显示在界面上,不进入 Claude 读取的对话上下文 |
| 某个版本的准确发布时间,或想订阅新版本 | GitHub Releases,订阅源是 https://github.com/anthropics/claude-code/releases.atom | 时间是 UTC,例如 v2.1.280 的发布时间为 2026-09-22T16:38:14Z |
| Claude API 本身的变化 | Claude Platform 发布说明 | 这份说明自己也写明,Claude Code 的更新看 CHANGELOG.md |
| Claude 网页版和桌面 App 的变化 | Help Center 发布说明 | 模型从 Claude 和 Claude Code 的模型选择器中下线这类消息会写在这里 |
第三方的中文翻译站和聚合站可以当阅读辅助,但更新节奏各不相同。用之前先对比它最新一条的版本号是否和官方一致。还有些页面虽然叫“更新日志”,记录的却是站点自己的文档变更,页面上看不到 2.1.x 这类 Claude Code 版本号,就不是你要找的内容。
列出“我这版之后改了什么”
官方页面按版本从新到旧排列。截至 2026 年 9 月 23 日一共有 402 个版本条目,从 0.2.21(2025 年 4 月 2 日)一直到 2.1.280,原始 Markdown 约 764 KB,直接翻很难找到自己的位置。下面的命令先把原始文件存到本地,再从最新版一路打印到你的版本号为止(不包含你的版本本身):
mine="2.1.275" # 换成 claude --version 显示的数字
curl -fsSL https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md -o CHANGELOG.md
grep -qx "## $mine" CHANGELOG.md || echo "更新日志里没有 $mine,检查版本号是否写对"
awk -v mine="$mine" '/^## /{ if ($2==mine) exit } {print}' CHANGELOG.md以 2.1.275 为例,2026 年 9 月 23 日运行时输出了 2.1.280、2.1.278、2.1.277、2.1.276 四个版本,一共 204 条改动。

只想先看有哪些版本,或者先数一数条目,可以把最后一行接到管道里:
awk -v mine="$mine" '/^## /{ if ($2==mine) exit } {print}' CHANGELOG.md | grep '^## ' # 只列版本号
awk -v mine="$mine" '/^## /{ if ($2==mine) exit } {print}' CHANGELOG.md | grep -c '^- ' # 统计条目数使用时注意这几点:
- 先下载、再处理。把
curl直接用管道接给会提前退出的命令,会看到curl: (56) Failure writing output报错。 - 版本号要和
claude --version输出的数字完全一致,不带后面的(Claude Code)。写错时 awk 找不到终点,会把整份文件打印出来,第三行的检查就是为这种情况准备的。 - 列表里没有 2.1.279 是正常的。版本号并不连续,2.1.x 区间里有 57 个号码没有对应条目;其中 2.1.262、2.1.264、2.1.279 在 npm 和 GitHub Releases 上都查不到,说明这些号码从未发布。
- 命令用到 curl、awk 和 grep,macOS 与 Linux 自带;Windows 可以在 WSL 里运行。网络连不上 raw.githubusercontent.com 时,改用会话里的
/release-notes逐个版本查看。 - awk 依赖原始文件里
## 2.1.x这种标题格式,官方一旦改变格式,匹配规则也要跟着改。
查某个行为是在哪个版本改的
同事说“新版改了 X”时,用关键词搜索并带出所在版本,比在页面上逐条翻快得多。关键词写成小写:
awk -v kw="agents.md" '/^## /{v=$2} index(tolower($0), kw){print v": "$0}' CHANGELOG.md输出如下,一眼就能看到这项变化来自 2.1.277:
2.1.277: - Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under "Project instructions" in `/config` (not yet on Bedrock, Vertex or Foundry)另一种常见情况是升级后原本正常的功能坏了,也就是回归问题(regression)。更新日志在修复这类问题时,经常注明问题是哪个版本引入的:截至 2026 年 9 月 23 日,有 24 条写成“(regression in 2.1.x)”的形式,另有少数写成“regression introduced in”。下面这行把它们连同修复版本一起列出来:
awk '/^## /{v=$2} /regression (introduced )?in v?2\./{print v" 修复 <- "$0}' CHANGELOG.md输出的前两行:
2.1.275 修复 <- - [VSCode] Fixed renaming a running session reverting to the generated name (regression in 2.1.269)
2.1.270 修复 <- - Fixed read-only git commands in Bash unexpectedly asking for permission after a session had been running for a while (regression in 2.1.269)读法是:2.1.269 引入的两个问题,分别在 2.1.270 和 2.1.275 修好了。如果你停在 2.1.269 并遇到其中之一,升级到修复版本就能解决;修复还没发布时,才需要考虑回退。没有标注不代表没有回归,这个标记只能帮你缩小范围。
2026 年改变使用方式的几个版本
2026 年 1 月 1 日到 9 月 22 日,更新日志一共有 226 个版本条目,每月 20 到 28 个。单个版本的改动从 1 条到 114 条不等:2.1.280 有 114 条,2.1.276、2.1.272、2.1.270 各只有 1 条。下面这些版本改变了默认模型或常用行为,对照自己的版本号,就知道这些变化有没有落到你身上:
| 版本 | 日期 | 变化 |
|---|---|---|
| 2.1.197 | 6 月 30 日 | Sonnet 5 成为默认模型,原生 1M 上下文 |
| 2.1.198 | 7 月 1 日 | 子代理(subagent)默认在后台运行;Claude in Chrome 正式可用;npm 包从这一版起要求 Node.js 22 及以上 |
| 2.1.219 | 7 月 24 日 | Opus 5(claude-opus-5)成为默认 Opus 模型 |
| 2.1.224 | 8 月 7 日 | Team 和 Enterprise 可以用 claude self-hosted-runner 接入自托管环境 |
| 2.1.257 | 9 月 1 日 | Fable 5.1(claude-fable-5-1)成为默认 Fable 模型,1M 上下文;每百万 token 输入 $10、输出 $50,缓存读取 $0.25 |
| 2.1.269 | 9 月 11 日 | 新增 claude plugin eval |
| 2.1.277 | 9 月 18 日 | 项目里没有 CLAUDE.md 时改读 AGENTS.md(Bedrock、Vertex、Foundry 暂不支持) |
| 2.1.280 | 9 月 22 日 | Opus 5.5(claude-opus-5-5)成为默认 Opus 模型,1M 上下文;每百万 token 输入 $4、输出 $20,缓存读取 $0.20 |
表中价格照录自更新日志,能否用上某个模型还取决于你的套餐和接入方式。换到新模型前想确认价格和迁移要点,可以看 Claude Opus 5.5 已发布:API 价格、能力与从 Opus 5 迁移的检查项 和 Claude Fable 5.1:价格、API 变化与迁移指南。
2.1.280 还有几处会直接影响日常使用:
- 在
/effort改为按模型保存之前设置的推理强度(effort),不再套用到 Opus 5.5 这类新发布的模型;新模型先用默认值,直到你重新选择。 - 安全检查拒绝审查某个动作时,auto mode 不再反复重试,而是直接拒绝一次;安全检查没有给出结果时,重试改为逐步退避,连续十次后停止当前回合并给出提示。两种免确认模式各自的边界,见 Claude Code Auto mode 与 bypassPermissions:自动执行不等于无限授权。
- 在 Claude Desktop、VS Code 或 SDK 这类宿主应用里,趁 Claude 工作时切换模型,不再导致下一条提示缓存未命中。缓存未命中为什么会让花费上升,见 Claude Code 缓存未命中 token 成本:一次对话为什么突然变贵。
latest 还是 stable
Claude Code 用 autoUpdatesChannel 设置决定自动更新和 claude update 跟随哪个更新通道(官方安装与更新文档):
"latest"(默认):新版本一发布就收到。"stable":使用通常约一周前的版本,并跳过出现重大回归问题的版本。
“约一周”是常见情况,不是承诺。2026 年 9 月 23 日,原生安装器的 stable 指针和 npm 的 stable 标签都是 2.1.267(9 月 9 日),比 latest 的 2.1.280 晚 13 天,中间隔着 12 个已发布版本。
间隔还可能更长,这也正是 stable 的价值所在。Linux 的 apt stable 仓库保留了历次 stable 版本:2.1.236(8 月 19 日发布)之后,下一个就是 2.1.267,8 月 19 日到 9 月 9 日之间发布的版本一个都没有进入。其中 2.1.257 在 macOS 12 上无法启动(2.1.258 修复),跟随 apt stable 的用户就没有碰到它。需要说明的是,这里的日期是版本发布日期而不是晋升日期,推算假设仓库保留了每一次晋升;原生安装的 stable 通道是否走了完全相同的版本,从仓库里看不出来。
| 你的情况 | 建议 | 理由 |
|---|---|---|
| 个人开发,想尽快用上新模型和新功能 | 留在 latest | 例如 Opus 5.5 从 2.1.280 起才是默认 Opus 模型 |
| 团队共用环境、演示机,或依赖固定行为的自动化脚本 | 切到 stable | 晚大约一周,换来跳过有重大回归问题的版本 |
| 某个新版本弄坏了你正在用的功能,修复还没发布 | 临时装回指定版本并暂停自动更新 | 修复发布后再恢复,步骤见下文 |
| 组织需要把所有人限制在一个版本范围内 | 在托管设置中使用 requiredMinimumVersion 和 requiredMaximumVersion | 版本超出范围时 Claude Code 拒绝启动,更新也不会越过上限 |
切换方法:在会话里打开 /config → Auto-update channel,或者写进 settings.json:
{
"autoUpdatesChannel": "stable"
}从 latest 切到 stable 时,/config 会问你是留在当前版本还是允许降级。选择留下,它会把 minimumVersion 设为当前版本;以后切回 latest,这个值会被清除。minimumVersion 只是下限:自动更新和 claude update 不会装比它更低的版本,但也不会阻止升级。也可以手动写一个下限:
{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.100"
}Homebrew 不读这个设置,而是看你装的是哪个 cask:claude-code 跟随 stable,claude-code@latest 跟随 latest。apt、dnf、apk 则通过仓库地址里的 stable 或 latest 区分。
按安装方式更新与切换
更新命令、会不会自动更新,都取决于你当初怎么装的:
| 安装方式 | 会自动更新吗 | 立即更新 | 通道怎么选 |
|---|---|---|---|
| 原生安装(install.sh / install.ps1) | 会。启动时和运行中检查,后台下载,下次启动生效 | claude update | autoUpdatesChannel;安装时用 bash -s stable 也会把 stable 设为默认 |
| npm 全局安装 | 会(npm 全局目录可写时) | npm install -g @anthropic-ai/claude-code@latest | autoUpdatesChannel |
| Homebrew | 默认不会 | brew upgrade claude-code 或 brew upgrade claude-code@latest | 按 cask 名区分 |
| WinGet | 默认不会 | winget upgrade Anthropic.ClaudeCode | 只有一个包,版本随社区清单更新;2026 年 9 月 23 日最新是 2.1.268,与 stable、latest 都不同 |
| apt / dnf / apk | 不会,随系统升级 | sudo apt update && sudo apt upgrade claude-code、sudo dnf upgrade claude-code、apk update && apk upgrade claude-code | 仓库地址中的 stable 或 latest |
几个容易出错的地方:
- npm 安装不要用
npm update -g升级,它会遵守当初安装时的版本范围,可能升不到最新版。npm 包从 2.1.198 起要求 Node.js 22 及以上;Node 版本更低时 npm 只提示EBADENGINE,安装仍会完成,因为 npm 包装的是同一个原生二进制文件,运行时不用你的 Node.js。 - Homebrew 和 WinGet 用户可以设置环境变量
CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1,让 Claude Code 在有新版本时替你在后台执行升级命令。WinGet 可能因为 Claude Code 正在运行、文件被锁定而升级失败,这时会改为显示手动命令。 - Claude Code 可能先提示有新版本,而包管理器那边还没上架。升级失败就过一段时间再试。
claude update装上新版时输出Successfully updated from <old version> to version <new version>;已经是最新版时输出Claude Code is up to date (<version>),Homebrew、WinGet、apk 安装则显示Claude is up to date!。
还没装好 Claude Code,可以先看 Claude Code 安装教程完整指南:Windows/Mac/Linux 全平台详解(2026年1月)。那篇写于 2026 年 1 月,版本号和更新方式以官方安装文档为准。
回退到指定版本并让它停住
回退只在“问题已经确认、修复还没发布”时才值得做。如果只是想整体慢一步,用 /config 切到 stable 并选择允许降级更省事,之后仍会自动跟随 stable 更新。

原生安装的回退步骤:
-
选目标版本。用上一节的回归查询确认问题是哪个版本引入的,退到它之前的版本;当时的 stable 版本也是候选。以 2026 年 9 月 23 日为例,stable 的 2.1.267 早于 2.1.269,不包含 2.1.269 引入的那两个问题。
-
用原生安装器装这个版本:
bash# macOS / Linux / WSL curl -fsSL https://claude.ai/install.sh | bash -s 2.1.267powershell# Windows PowerShell & ([scriptblock]::Create((irm https://claude.ai/install.ps1 ))) 2.1.267如果当前版本还能启动,也可以直接运行官方 CLI 命令
claude install 2.1.267,它接受版本号,也接受stable或latest。npm 安装对应的写法是npm install -g @anthropic-ai/claude-code@2.1.267(npm 的标准版本语法)。 -
运行
claude --version,应输出2.1.267 (Claude Code)。 -
暂停后台自动更新。不做这一步,latest 通道的后台更新很可能把你装回有问题的版本。官方文档没有直接写这一点,但 GitHub issue #91309 里有用户报告:自动更新把 macOS 12 机器升到无法启动的 2.1.257 后,他们用
bash -s 2.1.252回退,并设置了DISABLE_AUTOUPDATER,因为不设的话下一次后台更新会悄悄装回坏版本;另一位用户也确认了同样的情况。这是两位用户在同一系统上的报告,不是 Anthropic 的说明。在 settings.json 的env里加上:json{ "env": { "DISABLE_AUTOUPDATER": "1" } }再运行
claude doctor,Auto-updates一行应显示disabled (set by env: DISABLE_AUTOUPDATER)。这个变量只停后台检查,claude update和claude install仍然可用;DISABLE_UPDATES会连手动更新也一并禁止,适合通过自有渠道分发固定版本的团队。 -
修复发布后恢复。在更新日志里看到对应的修复条目,删掉
DISABLE_AUTOUPDATER,运行claude update回到你的通道。上面那个 issue 里,2.1.258 修复后报告者就是这样撤掉固定版本和变量的。
如果你还在用 Claude Desktop 应用,它内置的 Claude Code 副本(macOS 上位于 ~/Library/Application Support/Claude/claude-code/<版本>/)走单独的安装和更新路径,DISABLE_AUTOUPDATER 和上面的回退只影响独立安装的命令行版本(用户报告见 issue #92401)。
包管理器安装怎么装回旧版本
Anthropic 文档没有写包管理器的回退方法。下面用的是各包管理器自己的标准语法,版本情况为 2026 年 9 月 23 日所见,命令没有在对应系统上实际运行过:
- Homebrew 只有两个 cask:
claude-code(当天 2.1.267)和claude-code@latest(2.1.280),不能装任意旧版本。想避开刚发布的版本,改用跟随 stable 的claude-code。 - WinGet 只有
Anthropic.ClaudeCode一个包,但社区维护的 winget-pkgs 清单保留了许多旧版本,可以用winget install Anthropic.ClaudeCode --version 2.1.267指定。清单由自动化工具生成,会滞后于官方发布:当天最新的清单是 2.1.268。 - apt、dnf、apk 仓库保留旧构建:apt 的 stable 仓库当天列出 54 个版本(2.1.108 到 2.1.267),latest 仓库列出 134 个。版本字符串要写完整:
sudo apt install claude-code=2.1.267-1 && sudo apt-mark hold claude-code # Debian / Ubuntu
sudo dnf install claude-code-2.1.267 # Fedora / RHEL
apk add claude-code=2.1.267-r1 # Alpineapt-mark hold 让系统升级时跳过这个包,修复发布后用 sudo apt-mark unhold claude-code 解除。
常见问题
Claude Code 更新日志有中文版吗?
逐版本的更新日志只有英文,code.claude.com/docs/zh-CN/changelog 打开后也是同一份英文内容。官方的中文内容是每周一期的“最新动态”,它标出每周覆盖的版本范围,适合了解重点功能,但不包含每一个修复。
为什么版本号从 2.1.278 直接跳到 2.1.280?
2.1.279 从未发布,npm 和 GitHub Releases 上都没有这个版本,更新日志里也就没有它。Claude Code 的版本号本来就不连续,缺号不代表记录丢失。
更新日志上的日期和 GitHub Releases 对不上?
更新日志只写日期、不标时区,GitHub Releases 显示的是 UTC 时间,所以同一个版本的日期可能差一天。
设置了 minimumVersion,为什么还是会升级?
minimumVersion 是下限,只阻止装比它更低的版本,不限制升级。需要上限时,组织管理员可以在托管设置里用 requiredMaximumVersion;个人临时停在某个版本,用上面的 DISABLE_AUTOUPDATER。



