macOS companion app
WebChat (macOS)
Застосунок рядка меню macOS вбудовує інтерфейс WebChat як нативне подання SwiftUI. Він підключається до Gateway і за замовчуванням використовує основний сеанс вибраного агента (main або global, коли session.scope має значення global).
Повне вікно чату — це нативне розділене подання:
- Бічна панель сеансів: список сеансів із пошуком, розділами закріплених і нещодавніх сеансів, індикаторами непрочитаного та контекстними меню для закріплення або відкріплення, копіювання ключа сеансу й видалення. Кнопка на панелі інструментів (або Cmd-N) створює справжній новий сеанс через
sessions.create. - Панель інструментів вікна: кільцевий індикатор використання контексту (токени й вартість сеансу, з компактною дією), засіб вибору рівня міркування, засіб вибору моделі та меню дій із сеансом (новий сеанс, оновити, скопіювати ключ сеансу, експортувати стенограму, стиснути, очистити історію).
- Стенограма й редактор повідомлень: повідомлення асистента відображаються як звичайний текст з аватаром, а повідомлення користувача — як акцентовані бульбашки. Введення
/відкриває автодоповнення команд із похилою рискою на основіcommands.listіз навігацією клавішами зі стрілками, Tab, Return і Escape. Клацніть повідомлення правою кнопкою миші, щоб скопіювати його.
Закріплена панель швидкого чату з рядка меню зберігає компактне одноколонкове компонування з вбудованими засобами вибору.
- Локальний режим: підключається безпосередньо до WebSocket локального Gateway.
- Віддалений режим: переспрямовує керувальний порт Gateway через SSH і використовує цей тунель як площину даних.
Запуск і налагодження
-
Вручну: меню Lobster -> "Open Chat".
-
Автоматичне відкриття для тестування:
bash dist/OpenClaw.app/Contents/MacOS/OpenClaw --chat(
--webchatпідтримується як застарілий псевдонім.) -
Журнали:
./scripts/clawlog.sh(підсистемаai.openclaw, категоріяWebChatSwiftUI).
Як це з’єднано
- Площина даних: методи WS Gateway
chat.history,chat.send,chat.abort,chat.injectі подіїchat,agent,presence,tick,health. chat.historyповертає нормалізовану для відображення стенограму: вбудовані теги директив вилучаються з видимого тексту; XML-дані викликів інструментів у звичайному тексті (<tool_call>,<function_call>,<tool_calls>,<function_calls>, зокрема обрізані блоки) і витоки керувальних токенів моделі вилучаються; рядки асистента, що містять лише токен мовчання, як-от точні значенняNO_REPLY/no_reply, пропускаються; надмірно великі рядки можуть замінюватися обрізаним заповнювачем.- Сеанс: за замовчуванням використовується основний сеанс, як зазначено вище; інтерфейс дає змогу перемикатися між сеансами.
- Початкове налаштування використовує окремий сеанс, щоб відокремити налаштування першого запуску.
- Офлайн-кеш: застосунок зберігає невеликий кеш лише для читання з нещодавніми сеансами чатів і стенограмами для кожного Gateway (
~/Library/Application Support/OpenClaw/chat-cache.sqlite): під час холодного запуску остання відома стенограма відображається негайно й оновлюється після відповіді Gateway, а нещодавні чати залишаються доступними для перегляду без підключення (надсилання залишається вимкненим до відновлення з’єднання).
Поверхня безпеки
- Віддалений режим переспрямовує через SSH лише керувальний порт WebSocket Gateway.
Відомі обмеження
- Інтерфейс оптимізовано для сеансів чату, а не для повноцінної браузерної пісочниці.
Пов’язане
Was this useful?