Control UI 是 Gateway 提供的浏览器单页应用(Vite + Lit),默认地址:http://<host>:18789/。

快速访问

本地 Gateway:http://127.0.0.1:18789/

认证通过 WebSocket 握手传递:

  • connect.params.auth.token
  • connect.params.auth.password
  • Tailscale Serve 身份头(gateway.auth.allowTailscale: true)
  • trusted-proxy 身份头(gateway.auth.mode: "trusted-proxy")

设备配对(首次连接)

新浏览器/设备连接时通常需要一次性配对审批:

openclaw devices list
openclaw devices approve <requestId>

本地 loopback(127.0.0.1/localhost)自动审批。每个浏览器 profile 生成唯一设备 ID。

主要功能

功能区能力
Chat & Talk聊天、历史、中止、实时语音(WebRTC/relay)
Channels/Sessions频道状态、会话列表、Dreams 管理
Cron/Skills/Nodes定时任务、技能管理、节点列表、Exec 审批
Config查看/编辑 openclaw.json,带 schema 表单渲染
Debug/Logs状态快照、事件日志、日志实时追踪

PWA 与 Web Push

Control UI 支持安装为 PWA,Gateway 可通过 Web Push 唤醒已安装的 PWA:

  • VAPID 密钥对自动生成,存储在 push/vapid-keys.json
  • 通过 OPENCLAW_VAPID_PUBLIC_KEY/OPENCLAW_VAPID_PRIVATE_KEY 覆盖

Tailnet 访问(推荐)

# 集成 Tailscale Serve(首选)
openclaw gateway --tailscale serve
 
# 绑定到 tailnet + token
openclaw gateway --bind tailnet --token "$(openssl rand -hex 32)"

安全注意事项

  • 非 loopback 部署必须显式设置 gateway.controlUi.allowedOrigins
  • 不安全 HTTP 下浏览器阻断 WebCrypto,默认拒绝无设备身份的连接
  • dangerouslyDisableDeviceAuth: true 是紧急破玻璃选项,用后立即恢复
  • CSP 策略:img-src 仅允许同源、data: 和本地 blob: URL

构建

pnpm ui:build
pnpm ui:dev  # 本地开发服务器

相关页面