{
  "title": "WebChat (macOS app)",
  "content": "The macOS menu bar app embeds the WebChat UI as a native SwiftUI view. It\nconnects to the Gateway and defaults to the **main session** for the selected\nagent (with a session switcher for other sessions).\n\n* **Local mode**: connects directly to the local Gateway WebSocket.\n* **Remote mode**: forwards the Gateway control port over SSH and uses that\n  tunnel as the data plane.\n\n## Launch & debugging\n\n* Manual: Lobster menu → “Open Chat”.\n* Auto‑open for testing:\n  \n* Logs: `./scripts/clawlog.sh` (subsystem `bot.molt`, category `WebChatSwiftUI`).\n\n* Data plane: Gateway WS methods `chat.history`, `chat.send`, `chat.abort`,\n  `chat.inject` and events `chat`, `agent`, `presence`, `tick`, `health`.\n* Session: defaults to the primary session (`main`, or `global` when scope is\n  global). The UI can switch between sessions.\n* Onboarding uses a dedicated session to keep first‑run setup separate.\n\n* Remote mode forwards only the Gateway WebSocket control port over SSH.\n\n* The UI is optimized for chat sessions (not a full browser sandbox).",
  "code_samples": [],
  "headings": [
    {
      "level": "h2",
      "text": "Launch & debugging",
      "id": "launch-&-debugging"
    },
    {
      "level": "h2",
      "text": "How it’s wired",
      "id": "how-it’s-wired"
    },
    {
      "level": "h2",
      "text": "Security surface",
      "id": "security-surface"
    },
    {
      "level": "h2",
      "text": "Known limitations",
      "id": "known-limitations"
    }
  ],
  "url": "llms-txt#webchat-(macos-app)",
  "links": []
}