macOS 上的 Gateway(外部 launchd)

OpenClaw.app 不再内置 Node/Bun 和 Gateway 运行时。macOS 应用依赖外部安装的 openclaw CLI,不会以子进程方式启动 Gateway,而是通过用户级 launchd 服务来保持 Gateway 运行(如果本地已有 Gateway 在运行,则直接连接)。

安装 CLI(本地模式必须)

Mac 上默认运行时为 Node 24。Node 22 LTS 目前 22.16+ 也可兼容使用。然后全局安装 openclaw

npm install -g openclaw@<version>

macOS 应用中的 Install CLI 按钮执行的是同样的 npm/pnpm 安装流程(不建议用 bun 运行 Gateway)。

Launchd(Gateway 作为 LaunchAgent)

标签名:

  • ai.openclaw.gateway(或 ai.openclaw.<profile>;旧版 com.openclaw.* 可能仍存在)

Plist 位置(用户级):

  • ~/Library/LaunchAgents/ai.openclaw.gateway.plist (或 ~/Library/LaunchAgents/ai.openclaw.<profile>.plist

管理者:

  • macOS 应用在 Local 模式下负责 LaunchAgent 的安装和更新。
  • CLI 也可以安装:openclaw gateway install

行为:

  • “OpenClaw Active” 切换会启用/禁用 LaunchAgent。
  • 退出应用不会停止 Gateway(launchd 持续维护)。
  • 如果配置端口上已有 Gateway 在运行,应用会直接连接而非启动新实例。

日志:

  • launchd stdout/err:/tmp/openclaw/openclaw-gateway.log

版本兼容性

macOS 应用会检查 Gateway 版本是否与自身版本匹配。如果不兼容,更新全局 CLI 使其与应用版本一致。

冒烟测试

openclaw --version

OPENCLAW_SKIP_CHANNELS=1 \
OPENCLAW_SKIP_CANVAS_HOST=1 \
openclaw gateway --port 18999 --bind loopback

然后:

openclaw gateway call health --url ws://127.0.0.1:18999 --timeout 3000