Technical Guide
05. CLI 入口:openclaw 命令怎么启动
从 package.json 和 openclaw.mjs 看 OpenClaw CLI 的启动路径、Node 版本检查和源码/打包模式。
这篇解决什么问题
你在终端输入:
openclaw gateway status
或:
openclaw agent --message "Hello"
到底先跑了什么?
这一篇只看入口,不展开每个子命令。
package.json 指向 openclaw.mjs
package.json 里有:
"bin": {
"openclaw": "openclaw.mjs"
}
所以 npm 全局安装后,系统里的 openclaw 命令会指向仓库根目录的 openclaw.mjs。
openclaw.mjs 先检查 Node 版本
源码里有:
MIN_NODE_MAJOR = 22
MIN_NODE_MINOR = 19
也就是至少 Node 22.19。
README 推荐 Node 24,或者 Node 22.19+。
如果版本不够,launcher 会打印升级提示并退出。这就是为什么安装前要先确认 Node 版本。
launcher 不只是转发
openclaw.mjs 做了不少启动前工作:
- Node 版本检查;
- 判断是否是源码 checkout;
- 处理 Node compile cache;
- Windows Node 24 compile cache deadlock 规避;
- 子进程 respawn;
- 打包产物和源码运行路径选择;
- 信号转发和退出处理。
它不是业务逻辑核心,但它决定 CLI 能不能稳定启动。
子命令在哪里
真正命令实现不在 openclaw.mjs。
后面会进入:
src/cli/
src/commands/
常见命令对应:
openclaw onboard → setup / onboard commands
openclaw gateway ... → gateway-cli / gateway commands
openclaw agent ... → commands/agent
openclaw doctor → commands/doctor
openclaw cron ... → cli/cron-cli
具体文件要按命令名再查。
如果 CLI 启动失败怎么查
先按顺序查:
node -v
which openclaw
openclaw --version
openclaw doctor
如果是源码开发:
pnpm install
pnpm build
pnpm openclaw --version
如果连 openclaw --version 都失败,先不要看 Agent Runtime。问题还在 launcher / Node / 安装层。
下一篇看什么
下一篇进入 Agent Runtime。