命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
更新到最新版本
claude updateclaude updateclaude update 是 Claude Code CLI 的更新子命令,作用是立即把当前安装的 Claude Code 更新到最新版本,而不用等待后台自动更新器的下一次检查周期。
它只对原生安装(native installer,即 curl -fsSL https://claude.ai/install.sh | bash 或对应 PowerShell/CMD 脚本)和 npm 全局安装真正有效。通过 Homebrew、WinGet 或 apk 安装的 Claude Code,claude update 不会真正拉取新版本,只会报告"已是最新";apt、dnf 安装同样不会自动更新,需要用各自包管理器的升级命令(brew upgrade、winget upgrade、apt upgrade 等)来更新。
claude update
该命令不带任何 flag。与之相关的还有 claude install [version],可以指定具体版本号(如 2.1.89)或渠道名 stable / latest 来安装或重装原生二进制文件。
官方文档未给出 claude update 的退出码列表,只描述了它在不同场景下打印的文本消息:
| 场景 | 输出 |
|---|---|
| 存在更新且更新成功 | Successfully updated from <old version> to version <new version> |
| 已是最新版本(原生 / npm 安装) | Claude Code is up to date (<version>) |
| 已是最新版本(Homebrew / WinGet / apk 管理的安装) | Claude is up to date! |
| 约束 | 原因 |
|---|---|
Homebrew / WinGet / apk 安装下,claude update 不会真正升级;apt / dnf 安装同样不会自动更新,需手动升级 | 这些渠道由各自包管理器管理版本,Claude Code 无法接管其升级流程 |
设置 DISABLE_UPDATES 后,claude update 和 claude install 都会被阻止 | 用于自行分发 Claude Code、需要让用户停留在指定版本的场景 |
设置 DISABLE_AUTOUPDATER=1 只停止后台自动检查,不影响 claude update | 二者是两个独立开关,容易被混淆 |
设置了 minimumVersion 时,claude update 拒绝安装低于该版本的版本 | 该设置只约束更新方向,不会导致降级;企业可在 managed settings 中强制统一版本下限 |
| npm 全局安装若 npm 全局目录不可写,自动更新和相关流程会受阻,启动时会有一次性提示 | 权限问题导致无法写入安装目录 |
macOS/Linux 上若把 ~/.local/bin/claude 换成自定义脚本或符号链接,claude update 会保留该启动器不动,只在 ~/.local/share/claude/versions/ 下装入新版本(v2.1.207 之前的版本会用自动更新器自己的符号链接覆盖自定义启动器) | 避免破坏用户自定义的版本选择逻辑;这一行为在 v2.1.207 做了调整(此前会覆盖自定义启动器) |
claude update 可以立刻拉取并应用最新版本。DISABLE_AUTOUPDATER=1 使用:关闭后台自动检查以避免运行中被打断,但仍想在自己选定的时机手动更新时,执行 claude update。claude doctor 排查更新问题:claude doctor 会显示最近一次更新尝试的结果,以及 Auto-updates 的启用/禁用状态,可用来确认 claude update 是否生效或被哪个环境变量拦截。~/.local/bin/claude 被替换成自定义脚本导致 claude doctor 报告"launcher 不是原生安装器创建的",删除该文件后重新执行 claude update 可以让 Claude Code 重新接管启动器管理。claude update,会看到"已是最新"的提示,容易误以为已经升级成功,实际上根本没有执行升级——必须用对应包管理器的升级命令;apt / dnf 安装同样需要手动升级。DISABLE_AUTOUPDATER=1 误当作"彻底关闭更新"来用:它只停掉后台自动检查,claude update 和 claude install 依然可以手动运行成功;真正要连手动更新都禁掉,需要设置 DISABLE_UPDATES。claude update 相关的自动更新路径会因写入失败而受阻,只在启动时给出一次性提示,容易被忽略而误以为更新命令本身有问题。/config 把渠道从 "latest" 切换到 "stable" 时,如果选择保留当前版本而不是降级,minimumVersion 会被自动设为当前版本——如果没意识到这一点,可能会疑惑为什么切换到 stable 渠道后版本没有变化。改变了 `claude install` 和 `claude update` 将待处理的受管设置同意提示延迟到下一个交互式会话
修复了当shell-config路径是目录时无声hanging的问题
改进验证逻辑,等待端点安全扫描新二进制文件而不是 5 秒后失败
修复了 npm 安装时忽略配置的 release channel 版本的问题
修复运行时出现关于另一个进程正在更新的虚假错误(当其他实例已是最新版本时)