docs/platforms/mac/webchat.md
The macOS menu bar app embeds the WebChat UI as a native SwiftUI view. It connects to the Gateway and defaults to the main session for the selected agent (with a session switcher for other sessions).
Manual: Lobster menu → “Open Chat”.
Auto‑open for testing:
dist/OpenClaw.app/Contents/MacOS/OpenClaw --webchat
Logs: ./scripts/clawlog.sh (subsystem ai.openclaw, category WebChatSwiftUI).
chat.history, chat.send, chat.abort,
chat.inject and events chat, agent, presence, tick, health.chat.history returns display-normalized transcript rows: inline directive
tags are stripped from visible text, plain-text tool-call XML payloads
(including <tool_call>...</tool_call>,
<function_call>...</function_call>, <tool_calls>...</tool_calls>,
<function_calls>...</function_calls>, and truncated tool-call blocks) and
leaked ASCII/full-width model control tokens are stripped, pure
silent-token assistant rows such as exact NO_REPLY / no_reply are
omitted, and oversized rows can be replaced with placeholders.main, or global when scope is
global). The UI can switch between sessions.