Gateway auf macOS (externer launchd)

OpenClaw.app bündelt weder Node/Bun noch die Gateway-Runtime. Die macOS-App erwartet eine externe openclaw-CLI-Installation, startet das Gateway nicht als Child-Prozess und verwaltet einen benutzerspezifischen launchd-Service, um das Gateway am Laufen zu halten (oder verbindet sich mit einem bereits laufenden lokalen Gateway).

CLI installieren (erforderlich für den lokalen Modus)

Node 24 ist die Standard-Runtime auf dem Mac. Node 22 LTS, aktuell 22.16+, wird weiterhin zur Kompatibilität unterstützt. Installiere dann openclaw global:

npm install -g openclaw@<version>

Der CLI installieren-Button der macOS-App führt denselben Flow via npm/pnpm aus (Bun wird für die Gateway-Runtime nicht empfohlen).

Launchd (Gateway als LaunchAgent)

Label:

  • ai.openclaw.gateway (oder ai.openclaw.<profile>; Legacy com.openclaw.* kann bestehen bleiben)

Plist-Speicherort (benutzerspezifisch):

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

Manager:

  • Die macOS-App verwaltet die LaunchAgent-Installation/Updates im lokalen Modus.
  • Die CLI kann ihn ebenfalls installieren: openclaw gateway install.

Verhalten:

  • „OpenClaw Active” aktiviert/deaktiviert den LaunchAgent.
  • Beenden der App stoppt das Gateway nicht (launchd hält es am Leben).
  • Wenn ein Gateway bereits auf dem konfigurierten Port läuft, verbindet sich die App damit, statt ein neues zu starten.

Logging:

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

Versionskompatibilität

Die macOS-App prüft die Gateway-Version gegen ihre eigene Version. Falls sie inkompatibel sind, aktualisiere die globale CLI auf die App-Version.

Smoke-Check

openclaw --version

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

Dann:

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