openclaw update

安全更新 OpenClaw 并在稳定版 / 测试版 / 开发版通道之间切换。

如果你是通过 npm/pnpm 安装的(全局安装,无 git 元数据),更新走包管理器流程,参见 Updating

用法

openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag beta
openclaw update --dry-run
openclaw update --no-restart
openclaw update --json
openclaw --update

参数

  • --no-restart:更新成功后不重启 Gateway 服务。
  • --channel <stable|beta|dev>:设置更新通道(git + npm;会持久化到配置中)。
  • --tag <dist-tag|version>:本次更新临时覆盖 npm dist-tag 或版本。
  • --dry-run:预览计划的更新操作(通道 / 标签 / 目标 / 重启流程),不写入配置、不安装、不同步插件、不重启。
  • --json:输出机器可读的 UpdateRunResult JSON。
  • --timeout <seconds>:每步超时时间(默认 1200 秒)。

注意:降级需要确认,因为旧版本可能破坏配置。

update status

显示当前的更新通道 + git 标签 / 分支 / SHA(针对源码检出),以及是否有可用更新。

openclaw update status
openclaw update status --json
openclaw update status --timeout 10

参数:

  • --json:输出机器可读的状态 JSON。
  • --timeout <seconds>:检查超时时间(默认 3 秒)。

update wizard

交互式流程,选择更新通道并确认更新后是否重启 Gateway(默认重启)。如果选择 dev 但没有 git checkout,会引导你创建一个。

更新做了什么

显式切换通道(--channel ...)时,OpenClaw 也会同步调整安装方式:

  • dev -> 确保有 git checkout(默认路径:~/openclaw,可通过 OPENCLAW_GIT_DIR 覆盖),更新并从该 checkout 安装全局 CLI。
  • stable / beta -> 使用对应 dist-tag 从 npm 安装。

Gateway 核心的自动更新器(通过配置启用时)也走同样的更新路径。

Git checkout 流程

通道对应的行为:

  • stable:checkout 最新的非 beta 标签,然后 build + doctor。
  • beta:checkout 最新的 -beta 标签,然后 build + doctor。
  • dev:checkout main,然后 fetch + rebase。

总体流程:

  1. 要求工作树是干净的(没有未提交的更改)。
  2. 切换到所选通道(标签或分支)。
  3. 拉取上游更新(仅 dev)。
  4. 仅 dev:在临时 worktree 中做预检(lint + TypeScript build);如果 tip 失败,会往回找最多 10 个 commit 来定位最新的可构建版本。
  5. rebase 到所选 commit(仅 dev)。
  6. 安装依赖(优先 pnpm;回退到 npm)。
  7. 构建 + 构建 Control UI。
  8. 运行 openclaw doctor 作为”安全更新”的最终检查。
  9. 将插件同步到当前通道(dev 用内置扩展;stable / beta 用 npm),并更新 npm 安装的插件。

--update 简写

openclaw --update 会重写为 openclaw update(方便 shell 和启动脚本使用)。

相关文档