Веб-интерфейсы
Control UI
Control UI — это небольшое одностраничное приложение на Vite + Lit, обслуживаемое Gateway:
- по умолчанию:
http://:18789/ - опциональный префикс: установите
gateway.controlUi.basePath(например,/openclaw)
Он общается напрямую с WebSocket Gateway на том же порту.
Быстрый запуск (локально)
Если Gateway запущен на том же компьютере, откройте:
Если страница не загружается, сначала запустите Gateway: openclaw gateway. Аутентификация передается во время рукопожатия WebSocket через:
connect.params.auth.tokenconnect.params.auth.passwordПанель настроек панели управления позволяет сохранить токен; пароли не сохраняются. Мастер начальной настройки по умолчанию генерирует токен gateway, поэтому вставьте его здесь при первом подключении.
Сопряжение устройства (первое подключение)
Когда вы подключаетесь к Control UI с нового браузера или устройства, Gateway требует однократного подтверждения сопряжения — даже если вы находитесь в той же сети Tailnet с gateway.auth.allowTailscale: true. Это мера безопасности для предотвращения несанкционированного доступа. Что вы увидите: “disconnected (1008): pairing required” Чтобы подтвердить устройство:
# Список ожидающих запросов
openclaw devices list
# Подтвердить по ID запроса
openclaw devices approve <requestId>
После подтверждения устройство запоминается и не потребует повторного подтверждения, пока вы не отзовете его с помощью openclaw devices revoke --device --role . См. Devices CLI для ротации и отзыва токенов. Примечания:
- Локальные подключения (
127.0.0.1) подтверждаются автоматически. - Удаленные подключения (LAN, Tailnet и т.д.) требуют явного подтверждения.
- Каждый профиль браузера генерирует уникальный ID устройства, поэтому смена браузера или очистка данных браузера потребует повторного сопряже ния.
Поддержка языков
Control UI может локализовать себя при первой загрузке на основе языковых настроек вашего браузера, и вы можете изменить язык позже с помощью переключателя в карточке Access.
- Поддерживаемые локали:
en,zh-CN,zh-TW,pt-BR,de,es - Переводы на другие языки загружаются в браузере лениво.
- Выбранная локаль сохраняется в хранилище браузера и используется при последующих посещениях.
- Отсутствующие ключи перевода возвращаются к английскому языку.
Что он может делать (сегодня)
- Чат с моделью через Gateway WS (
chat.history,chat.send,chat.abort,chat.inject) - Потоковые вызовы инструментов + карточки живого вывода инструментов в чате (события агента)
- Каналы: WhatsApp/Telegram/Discord/Slack + плагины каналов (Mattermost и др.) статус + QR-логин + конфигурация на канал (
channels.status,web.login.*,config.patch) - Экземпляры: список присутствия + обновление (
system-presence) - Сессии: список + переопределения thinking/verbose для каждой сессии (
sessions.list,sessions.patch) - Cron-задания: список/добавление/редактирование/запуск/включение/отключение + история запусков (
cron.*) - Навыки: статус, включение/отключение, установка, обновление API-ключей (
skills.*) - Узлы: список + возможности (
node.list) - Одобрения exec: редактирование списков разрешений gateway или узлов + политика запроса для
exec host=gateway/node(exec.approvals.*) - Конфигурация: просмотр/редактирование
~/.openclaw/openclaw.json(config.get,config.set) - Конфигурация: применение + перезапуск с валидацией (
config.apply) и пробуждение последней активной сессии - Запись конфигурации включает защиту base-hash для предотвращения конфликтов при параллельном редактировании
- Схема конфигурации + рендеринг форм (
config.schema, включая схемы плагинов и каналов); редактор Raw JSON остается доступным - Отладка: снимки статуса/здоровья/моделей + журнал событий + ручные RPC-вызовы (
status,health,models.list) - Логи: живой вывод файловых логов gateway с фильтром/экспортом (
logs.tail) - Обновление: запуск обновления пакета/git + перезапуск (
update.run) с отчетом о перезапуске
Примечания к панели cron-заданий:
- Для изолированных заданий доставка по умолчанию — анонс сводки. Вы можете переключить на none, если хотите только внутренние запуски.
- Поля channel/target появляются при выборе announce.
- Режим webhook использует
delivery.mode = "webhook"сdelivery.to, установленным на валидный HTTP(S) URL вебхука. - Для заданий основной сессии доступны режимы доставки webhook и none.
- Расширенные элементы управления редактированием включают delete-after-run, clear agent override, опции cron exact/stagger, переопределения модели/thinking агента и переключатели доставки best-effort.
- Валидация формы встроенная, с ошибками на уровне полей; невалидные значения отключают кнопку сохранения до исправления.
- Установите
cron.webhookToken, чтобы отправлять выделенный bearer-токен; если опущено, вебхук отправляется без заголовка авторизации. - Устаревший фолбэк: сохраненные устаревшие задания с
notify: trueвсе еще могут использоватьcron.webhookдо миграции.
Поведение чата
chat.send— неблокирующий: он немедленно подтверждается с{ runId, status: "started" }, а ответ передается через событияchat.- Повторная отправка с тем же
idempotencyKeyвозвращает{ status: "in_flight" }во время выполнения и{ status: "ok" }после завершения. - Ответы
chat.historyограничены по размеру для безопасности UI. Когда записи транскрипта слишком велики, Gateway может обрезать длинные текстовые поля, опускать тяжелые блоки метаданных и заменять слишком большие сообщения на заглушку ([chat.history omitted: message too large]). chat.injectдобавляет примечание ассистента в тр анскрипт сессии и рассылает событиеchatдля обновлений только в UI (без запуска агента, без доставки в канал).- Остановка:
- Нажмите Stop (вызывает
chat.abort) - Введите
/stop(или отдельные фразы прерывания, такие какstop,stop action,stop run,stop openclaw,please stop) для аборта вне полосы chat.abortподдерживает{ sessionKey }(безrunId) для прерывания всех активных запусков для этой сессии
- Нажмите Stop (вызывает
- Сохранение частичного результата при аборте:
- Когда запуск прерван, частичный текст ассистента все еще может отображаться в UI
- Gateway сохраняет частичный текст ассистента из прерванного запуска в историю транскрипта, если существует буферизованный вывод
- Сохраненные записи включают метаданные аборта, чтобы потребители транскрипта могли отличать частичные результаты аборта от обычного завершенного вывода