Control UI и Dashboard

Control UI — веб-интерфейс для управления OpenClaw. Это одностраничное приложение (Vite + Lit), которое Gateway отдаёт с того же порта, что и WebSocket.

  • По умолчанию: http://:18789/
  • С TLS: https://:18789/
  • Свой префикс: gateway.controlUi.basePath (например /openclaw)
  • Быстрый старт

    
    openclaw dashboard
    

    Копирует ссылку, открывает браузер (если возможно), показывает SSH-подсказку для headless-серверов.

    Или вручную: http://127.0.0.1:18789/

    Если страница не загружается — Gateway не запущен. Запустите: openclaw gateway.

    Авторизация

    Control UI подключается к Gateway через WebSocket. Авторизация происходит при подключении:

    Способ Как работает
    Token gateway.auth.token — вставьте в настройки UI
    Password gateway.auth.password — вставьте в настройки UI
    Tailscale Serve Заголовки идентичности, если gateway.auth.allowTailscale: true
    Trusted Proxy Заголовки reverse proxy, если gateway.auth.mode: "trusted-proxy"

    Важно:

  • Localhost (127.0.0.1 / localhost) — автоматическое одобрение
  • UI хранит token в sessionStorage (текущая вкладка), пароли не сохраняются
  • При смене браузера или очистке данных — нужно заново вводить auth
  • Первое подключение (Device Pairing)

    При первом подключении с нового браузера Gateway требует одобрение:

  • Вы увидите: disconnected (1008): pairing required
  • На машине с Gateway:
  • 
    openclaw devices list
    openclaw devices approve 
    

    Если браузер переподключается с другими параметрами — старый requestId становится невалидным. Запустите devices list заново.

    Каждый браузерный профиль генерирует уникальный device ID. Смена браузера = повторный pairing.

    Что умеет

    Чат и Talk

  • Чат — общение с моделью через WebSocket (chat.send, chat.history, chat.abort)
  • Загрузка файлов — изображения + другие файлы (не видео). Изображения показываются inline
  • Talk Mode — голос через WebRTC напрямую в OpenAI Realtime. Gateway выдаёт временный клиентский секрет, браузер отправляет аудио напрямую в OpenAI
  • Стриминг — tool calls и результаты инструментов показываются в реальном времени
  • Steer — если запрос выполняется, можно отправить follow-up и нажать «Steer» для инъекции в текущий turn
  • Abort — кнопка Stop или /stop в чате. Частичный ответ сохраняется в истории
  • Каналы и сессии

  • Каналы — статус всех подключённых каналов, QR-логин, настройка каждого канала
  • Сессии — список всех сессий с настройками: модель, thinking level, verbose, trace
  • Dreams — статус, включение/отключение, чтение Dream Diary
  • Instances — список активных инстансов
  • Конфигурация

  • Редактор конфига — форма + raw JSON-редактор для openclaw.json
  • Schema — автоматический рендеринг схемы с title/description/hints
  • Валидация — inline ошибки, блокировка сохранения при невалидных данных
  • Base-hash guard — защита от перезаписи параллельных правок
  • SecretRef — структурированные значения показываются как read-only (защита от случайной порчи)
  • Cron, ноды, инструменты

  • Cron-задачи — список/добавление/редактирование/запуск/включение-отключение + история запусков
  • Ноды — список подключённых устройств с capabilities
  • Exec approvals — редактирование allowlists для gateway и нод
  • Skills — статус, включение/отключение, установка, обновление API-ключей
  • Debug и логи

  • Status/Health/Models — снимки состояния
  • Логи — live tail с фильтрами и экспортом
  • Обновление — запуск update.run + restart, проверка версии после reconnect
  • PWA и Web Push

    Control UI можно установить как PWA (manifest + service worker). Web Push позволяет будить установленное PWA уведомлениями даже когда вкладка закрыта.

    Компонент Назначение
    manifest.webmanifest PWA манифест — браузер предложит «Установить приложение»
    sw.js Service worker для push-событий и кликов по уведомлениям
    push/vapid-keys.json Автогенерированная VAPID-ключи для подписи Web Push

    Настройка VAPID-ключей (для multi-host или ротации):

    
    export OPENCLAW_VAPID_PUBLIC_KEY="..."
    export OPENCLAW_VAPID_PRIVATE_KEY="..."
    export OPENCLAW_VAPID_SUBJECT="mailto:you@example.com"
    

    Встроенный контент (Embeds)

    Сообщения агента могут содержать встроенный веб-контент через :

    Режим `gateway.controlUi.embedSandbox` Что разрешено
    strict Скрипты заблокированы
    scripts (по умолчанию) Интерактивные виджеты, изоляция по origin
    trusted + allow-same-origin для same-site документов

    Внешние http(s) URL заблокированы по умолчанию. Разрешить: gateway.controlUi.allowExternalEmbedUrls: true.

    Удалённый доступ

    SSH-туннель (простой способ)

    
    ssh -N -L 18789:127.0.0.1:18789 user@server
    

    Открыть: http://127.0.0.1:18789/

    Tailscale Serve (рекомендуется)

    
    openclaw gateway --tailscale serve
    

    Открыть: https:///

    При gateway.auth.allowTailscale: true — Tailscale Serve автоматически авторизует через заголовки идентичности (без token/password). Browser device identity при этом пропускает pairing round trip.

    Tailscale Funnel (публичный доступ)

    
    {
      "gateway": {
        "bind": "loopback",
        "tailscale": { "mode": "funnel" },
        "auth": { "mode": "password" }
      }
    }
    

    ⚠️ Funnel требует gateway.auth.mode: "password".

    Язык интерфейса

    Control UI автоматически определяет язык браузера. Сменить: Overview → Gateway Access → Language.

    Поддерживаемые языки: en, zh-CN, zh-TW, pt-BR, de, es, ja-JP, ko, fr, tr, uk, id, pl, th.

    Безопасность

  • Control UI — это admin-поверхность (чат, конфиг, exec approvals). Не публикуйте её в интернет
  • Для не-localhost развёртываний — установите gateway.controlUi.allowedOrigins (полные origins)
  • Non-loopback binds требуют авторизацию (token/password/trusted-proxy/Tailscale)
  • HTTP без TLS блокирует WebCrypto. По умолчанию OpenClaw блокирует подключения без device identity на insecure HTTP
  • Что дальше

  • Конфигурация Gateway — настройки сервера
  • Сеть и удалённый доступ — подключение извне
  • TUI и WebChat — терминальный и чат-интерфейсы
  • Безопасность и доступ — авторизация и защита