Claude Code 更新日志:新版改了什么,该用哪个版本

A
20 分钟阅读Claude Code

更新日志回答“改了什么”,更新通道决定“装哪一版”。先用 claude --version 确认本机版本、列出之后的改动;新版弄坏了功能时,切到 stable 或装回指定版本。

Claude Code 更新日志封面:版本时间线上 stable 标签位于 2.1.267、latest 位于 2.1.280,两者相差 13 天

Claude Code 的逐版本更新日志只有一个权威来源:官方文档里的 Changelog 页面。它由 GitHub 仓库中的 CHANGELOG.md 生成,内容是英文。能直接读中文的官方内容是每周一期的最新动态,但它只挑重点,每一个修复仍要回到更新日志里查。

截至 2026 年 9 月 23 日,最新版本是 2.1.280(9 月 22 日),stable 通道指向 2.1.267(9 月 9 日),npm 标签与原生安装器读取的版本指针一致。想知道“从我这版到最新版改了什么”,先运行 claude --version,再用下文的命令把之后的条目全部列出来;如果某次更新弄坏了你正在用的功能,可以切到 stable 通道,或者装回指定版本并暂停自动更新。

先确认本机版本

bash
claude --version

输出形如 2.1.267 (Claude Code),前面的数字就是后文命令里要填的版本号。已经在会话里时,输入 /status 也能看到版本、模型、账号和连接状态。

另外两个诊断入口:

  • 终端里的 claude doctor 只读地输出安装诊断,其中包括最近一次自动更新的结果。
  • 会话里的 /doctor 除了检查安装问题,还会看你所在的更新通道上有没有更新的版本。

latest 和 stable 此刻各指向哪个版本,可以查 npm 标签,也可以直接读原生安装器使用的版本指针:

bash
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/latest

2026 年 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,直接翻很难找到自己的位置。下面的命令先把原始文件存到本地,再从最新版一路打印到你的版本号为止(不包含你的版本本身):

bash
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 条改动。

Claude Code 更新日志中从 2.1.280 到 2.1.276 的四节被 awk 打印出来,在你的版本 2.1.275 处停止,共 204 条
Claude Code 更新日志中从 2.1.280 到 2.1.276 的四节被 awk 打印出来,在你的版本 2.1.275 处停止,共 204 条

只想先看有哪些版本,或者先数一数条目,可以把最后一行接到管道里:

bash
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”时,用关键词搜索并带出所在版本,比在页面上逐条翻快得多。关键词写成小写:

bash
awk -v kw="agents.md" '/^## /{v=$2} index(tolower($0), kw){print v": "$0}' CHANGELOG.md

输出如下,一眼就能看到这项变化来自 2.1.277:

text
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”。下面这行把它们连同修复版本一起列出来:

bash
awk '/^## /{v=$2} /regression (introduced )?in v?2\./{print v" 修复 <- "$0}' CHANGELOG.md

输出的前两行:

text
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.1976 月 30 日Sonnet 5 成为默认模型,原生 1M 上下文
2.1.1987 月 1 日子代理(subagent)默认在后台运行;Claude in Chrome 正式可用;npm 包从这一版起要求 Node.js 22 及以上
2.1.2197 月 24 日Opus 5(claude-opus-5)成为默认 Opus 模型
2.1.2248 月 7 日Team 和 Enterprise 可以用 claude self-hosted-runner 接入自托管环境
2.1.2579 月 1 日Fable 5.1(claude-fable-5-1)成为默认 Fable 模型,1M 上下文;每百万 token 输入 $10、输出 $50,缓存读取 $0.25
2.1.2699 月 11 日新增 claude plugin eval
2.1.2779 月 18 日项目里没有 CLAUDE.md 时改读 AGENTS.md(Bedrock、Vertex、Foundry 暂不支持)
2.1.2809 月 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晚大约一周,换来跳过有重大回归问题的版本
某个新版本弄坏了你正在用的功能,修复还没发布临时装回指定版本并暂停自动更新修复发布后再恢复,步骤见下文
组织需要把所有人限制在一个版本范围内在托管设置中使用 requiredMinimumVersionrequiredMaximumVersion版本超出范围时 Claude Code 拒绝启动,更新也不会越过上限

切换方法:在会话里打开 /config → Auto-update channel,或者写进 settings.json:

json
{
  "autoUpdatesChannel": "stable"
}

从 latest 切到 stable 时,/config 会问你是留在当前版本还是允许降级。选择留下,它会把 minimumVersion 设为当前版本;以后切回 latest,这个值会被清除。minimumVersion 只是下限:自动更新和 claude update 不会装比它更低的版本,但也不会阻止升级。也可以手动写一个下限:

json
{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}

Homebrew 不读这个设置,而是看你装的是哪个 cask:claude-code 跟随 stable,claude-code@latest 跟随 latest。apt、dnf、apk 则通过仓库地址里的 stablelatest 区分。

按安装方式更新与切换

更新命令、会不会自动更新,都取决于你当初怎么装的:

安装方式会自动更新吗立即更新通道怎么选
原生安装(install.sh / install.ps1)会。启动时和运行中检查,后台下载,下次启动生效claude updateautoUpdatesChannel;安装时用 bash -s stable 也会把 stable 设为默认
npm 全局安装会(npm 全局目录可写时)npm install -g @anthropic-ai/claude-code@latestautoUpdatesChannel
Homebrew默认不会brew upgrade claude-codebrew 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-codesudo dnf upgrade claude-codeapk update && apk upgrade claude-code仓库地址中的 stablelatest

几个容易出错的地方:

  • 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 更新。

新版弄坏功能时的处理流程:先找到引入问题的版本,修复已发布就 claude update 升级,未发布则装回指定版本、设置 DISABLE_AUTOUPDATER、修复后恢复
新版弄坏功能时的处理流程:先找到引入问题的版本,修复已发布就 claude update 升级,未发布则装回指定版本、设置 DISABLE_AUTOUPDATER、修复后恢复

原生安装的回退步骤:

  1. 选目标版本。用上一节的回归查询确认问题是哪个版本引入的,退到它之前的版本;当时的 stable 版本也是候选。以 2026 年 9 月 23 日为例,stable 的 2.1.267 早于 2.1.269,不包含 2.1.269 引入的那两个问题。

  2. 用原生安装器装这个版本:

    bash
    # macOS / Linux / WSL
    curl -fsSL https://claude.ai/install.sh | bash -s 2.1.267
    powershell
    # Windows PowerShell
    & ([scriptblock]::Create((irm https://claude.ai/install.ps1 ))) 2.1.267

    如果当前版本还能启动,也可以直接运行官方 CLI 命令 claude install 2.1.267,它接受版本号,也接受 stablelatest。npm 安装对应的写法是 npm install -g @anthropic-ai/claude-code@2.1.267(npm 的标准版本语法)。

  3. 运行 claude --version,应输出 2.1.267 (Claude Code)

  4. 暂停后台自动更新。不做这一步,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 doctorAuto-updates 一行应显示 disabled (set by env: DISABLE_AUTOUPDATER)。这个变量只停后台检查,claude updateclaude install 仍然可用;DISABLE_UPDATES 会连手动更新也一并禁止,适合通过自有渠道分发固定版本的团队。

  5. 修复发布后恢复。在更新日志里看到对应的修复条目,删掉 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 个。版本字符串要写完整:
bash
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                                                # Alpine

apt-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