# macOS 上的 Gateway 网关(外部 launchd)
OpenSoul.app 不再捆绑 Node/Bun 或 Gateway 网关运行时。macOS 应用期望有一个外部的 opensoul CLI 安装,不会将 Gateway 网关作为子进程启动,而是管理一个每用户的 launchd 服务来保持 Gateway 网关运行(或者如果已有本地 Gateway 网关正在运行,则连接到现有的)。
# 安装 CLI(本地模式必需)
你需要在 Mac 上安装 Node 22+,然后全局安装 opensoul:
bash
npm install -g opensoul@<version>macOS 应用的安装 CLI按钮通过 npm/pnpm 运行相同的流程(不推荐使用 bun 作为 Gateway 网关运行时)。
# Launchd(Gateway 网关作为 LaunchAgent)
标签:
ai.opensoul.gateway(或ai.opensoul.<profile>;旧版com.opensoul.*可能仍然存在)
Plist 位置(每用户):
~/Library/LaunchAgents/ai.opensoul.gateway.plist(或~/Library/LaunchAgents/ai.opensoul.<profile>.plist)
管理者:
- macOS 应用在本地模式下拥有 LaunchAgent 的安装/更新权限。
- CLI 也可以安装它:
opensoul gateway install。
行为:
- "OpenSoul Active"启用/禁用 LaunchAgent。
- 应用退出不会停止 Gateway 网关(launchd 保持其存活)。
- 如果 Gateway 网关已经在配置的端口上运行,应用会连接到它而不是启动新的。
日志:
- launchd stdout/err:
/tmp/opensoul/opensoul-gateway.log
# 版本兼容性
macOS 应用会检查 Gateway 网关版本与其自身版本是否匹配。如果不兼容,请更新全局 CLI 以匹配应用版本。
# 冒烟测试
bash
opensoul --version
OPENSOUL_SKIP_CHANNELS=1 \
OPENSOUL_SKIP_CANVAS_HOST=1 \
opensoul gateway --port 18999 --bind loopback然后:
bash
opensoul gateway call health --url ws://127.0.0.1:18999 --timeout 3000