Gateway on macOS (external launchd)
OpenClaw.app no longer bundles Node/Bun or the Gateway runtime. The macOS app expects an externalopenclaw 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).
Install the CLI (required for local mode)
Node 24 is the default runtime on the Mac. Node 22 LTS, currently22.16+, still works for compatibility. Then install openclaw globally:
Launchd (Gateway as LaunchAgent)
Label:ai.openclaw.gateway(orai.openclaw.<profile>; legacycom.openclaw.*may remain)
~/Library/LaunchAgents/ai.openclaw.gateway.plist(or~/Library/LaunchAgents/ai.openclaw.<profile>.plist)
- The macOS app owns LaunchAgent install/update in Local mode.
- The CLI can also install it:
openclaw gateway install.
- “OpenClaw Active” enables/disables the LaunchAgent.
- App quit does not stop the gateway (launchd keeps it alive).
- If a Gateway is already running on the configured port, the app attaches to it instead of starting a new one.
- launchd stdout/err:
/tmp/openclaw/openclaw-gateway.log