openclaw update
安全地更新 OpenClaw 并在 stable/beta/dev 频道之间切换。
如果你是通过 npm/pnpm 安装的(全局安装,无 git 元数据),更新通过包管理器流程进行,详情请见更新。
用法
选项
--no-restart: 更新成功后跳过重启 Gateway 服务。--channel <stable|beta|dev>: 设置更新频道(同时影响 git 和 npm;会持久化到配置中)。--tag <dist-tag|version>: 仅此次更新覆盖 npm 的 dist-tag 或版本。--dry-run: 预览计划的更新操作(频道/标签/目标/重启流程),但不写入配置、不安装、不同步插件也不重启。--json: 输出机器可读的UpdateRunResultJSON。--timeout <秒>: 每步超时(默认 1200 秒)。
update status
显示当前活动的更新频道 + git 标签/分支/SHA(针对源码检出版本),以及更新可用状态。
--json: 输出机器可读的状态 JSON。--timeout <秒>: 检查超时(默认 3 秒)。
update wizard
交互式流程,用于选择更新频道并确认更新后是否重启 Gateway(默认重启)。如果选择了 dev 频道且无 git 检出版本,会提示创建一个。
功能说明
当你明确切换频道(--channel ...)时,OpenClaw 也会保持安装方式一致:
dev→ 确保存在一个 git 检出版本(默认路径为~/openclaw,可通过OPENCLAW_GIT_DIR覆盖),然后更新,它会从该检出版本安装全局 CLI。stable/beta→ 从 npm 安装对应的 dist-tag 版本。
Git 检出流程
频道:stable:检出最新的非 beta 标签,接着构建并运行 doctor。beta:检出最新的-beta标签,接着构建并运行 doctor。dev:检出main分支,接着执行 fetch 和 rebase。
- 需要工作区干净(无未提交变更)。
- 切换到选定的频道(标签或分支)。
- 拉取上游更新(仅限 dev)。
- 仅 dev:在一个临时工作区中先执行 lint 和 TypeScript 构建;如果最新提交构建失败,则最多回退 10 个提交寻找最新可用构建。
- 仅 dev:基于选定提交执行 rebase。
- 安装依赖(优先 pnpm,若失败则用 npm)。
- 构建并构建控制 UI。
- 运行
openclaw doctor作为最终的“安全更新”检查。 - 同步插件至当前频道(dev 使用内置扩展;stable/beta 使用 npm),并更新 npm 安装的插件。
--update 简写
openclaw --update 等价于 openclaw update(对 shell 脚本和启动器脚本很有用)。