docs/platforms/mac/bundled-gateway.md
OpenClaw.app no longer bundles Node/Bun or the Gateway runtime. The macOS app
expects an external openclaw CLI install, does not spawn the Gateway as a
child process, and manages a per‑user launchd service to keep the Gateway
running (or attaches to an existing local Gateway if one is already running).
Node 24 is the default runtime on the Mac. Node 22 LTS, currently 22.14+, still works for compatibility. Then install openclaw globally:
npm install -g openclaw@<version>
The macOS app’s Install CLI button runs the same global install flow the app uses internally: it prefers npm first, then pnpm, then bun if that is the only detected package manager. Node remains the recommended Gateway runtime.
Label:
ai.openclaw.gateway (or ai.openclaw.<profile>; legacy com.openclaw.* may remain)Plist location (per‑user):
~/Library/LaunchAgents/ai.openclaw.gateway.plist
(or ~/Library/LaunchAgents/ai.openclaw.<profile>.plist)Manager:
openclaw gateway install.Behavior:
Logging:
/tmp/openclaw/openclaw-gateway.logThe macOS app checks the gateway version against its own version. If they’re incompatible, update the global CLI to match the app version.
openclaw --version
OPENCLAW_SKIP_CHANNELS=1 \
OPENCLAW_SKIP_CANVAS_HOST=1 \
openclaw gateway --port 18999 --bind loopback
Then:
openclaw gateway call health --url ws://127.0.0.1:18999 --timeout 3000