Skip to main content

控制界面(浏览器)

控制界面是一个由网关提供服务的小型 Vite + Lit 单页应用。
  • 默认地址:http://<host>:18789/
  • 可选前缀:设置 gateway.controlUi.basePath
直接通过同一端口连接网关的 WebSocket

快速打开(本地)

如果网关运行在同一台电脑上,打开:

设备配对(首次连接)

当你从新的浏览器或设备连接控制界面时,网关需要进行一次性配对批准 你将看到的提示:“disconnected (1008): pairing required” 批准设备的方法:
# 列出待处理请求
openclaw devices list

# 通过请求 ID 批准设备
openclaw devices approve <requestId>
批准后,设备信息将被记住,除非你通过 openclaw devices revoke 撤销它。 注意事项:
  • 本地连接(127.0.0.1)自动批准
  • 远程连接需要明确批准
  • 每个浏览器配置文件会生成唯一设备 ID

语言支持

控制界面首次加载时根据浏览器语言自动本地化,之后可以在设置中手动切换。 支持的语言:enzh-CNzh-TWpt-BRdees

当前功能

  • 聊天:通过网关 WebSocket 聊天模型
  • 流式工具调用:实时工具结果卡片
  • 频道:WhatsApp/Telegram/Discord/Slack 状态、二维码登录、配置
  • 实例:在线列表及刷新
  • 会话:列表 + 每会话思考/详细信息重写
  • 定时任务:列表 / 新增 / 编辑 / 运行 / 启用 / 禁用 + 运行历史
  • 技能:状态,启用/禁用,安装,API 密钥更新
  • 节点:列表 + 权限
  • 执行审批:编辑网关或节点允许列表
  • 配置:查看/编辑 ~/.openclaw/openclaw.json
  • 调试:状态 / 健康 / 模型快照 + 事件日志
  • 日志:网关文件日志实时追踪
  • 更新:执行包或 Git 更新 + 重启

聊天行为

  • chat.send非阻塞:立即返回 { runId, status: "started" }
  • 使用相同的 idempotencyKey 重新发送时,正在运行返回 { status: "in_flight" }
  • chat.history 响应大小有限,超大消息会被占位符替代
  • chat.inject 会将助手消息追加到会话记录,并广播 chat 事件

停止方式

  • 点击“停止”按钮(调用 chat.abort
  • 输入 /stop
  • chat.abort 支持 { sessionKey } 参数,用于终止该会话的所有活动运行

Tailnet 访问(推荐)

集成 Tailscale Serve(首选)

保持网关监听 loopback,由 Tailscale Serve 代理并提供 HTTPS:
openclaw gateway --tailscale serve
打开:https://<magicdns>/

绑定 Tailnet + 令牌

openclaw gateway --bind tailnet --token "$(openssl rand -hex 32)"
然后打开:http://<tailscale-ip>:18789/ 将令牌粘贴到 UI 设置中。

HTTP 非安全访问

如果你通过明文 HTTP 打开仪表盘,浏览器将处于非安全上下文并阻止 WebCrypto。 **推荐解决方案:**使用 HTTPS(Tailscale Serve)或在本地打开 UI。

构建 UI

网关静态托管 dist/control-ui 下的文件。构建方式:
pnpm ui:build
本地开发:
pnpm ui:dev

调试/测试:开发服务器 + 远程网关

  1. 启动 UI 开发服务器:pnpm ui:dev
  2. 访问如下 URL:
http://localhost:5173/?gatewayUrl=ws://<gateway-host>:18789
可选一次性认证:
http://localhost:5173/?gatewayUrl=wss://<gateway-host>:18789&token=<gateway-token>

相关文档