Appearance
Dashboard & 聊天界面
Gateway 内置一个浏览器控制界面(Control UI),与 Gateway WebSocket 运行在同一端口,无需额外服务。
快速打开
bash
openclaw dashboard # 自动打开浏览器并复制链接或直接访问(Gateway 运行在本机时):
Control UI 功能
聊天
- 直接与 Agent 对话(通过 Gateway WebSocket)
- 实时显示工具调用和输出
- 支持
/stop中断、/steer引导运行中的 Agent
渠道管理
- 查看 WhatsApp、Telegram、Discord、Slack 等渠道连接状态
- WhatsApp QR 码扫码登录
- 每个渠道的配置编辑
Cron 定时任务
- 创建、编辑、删除、启用/禁用定时任务
- 手动触发任务
- 查看运行历史
Skills 管理
- 查看已加载 Skills 的状态
- 启用/禁用 Skills
- 配置 Skill 的 API Key
配置编辑
- 可视化查看和编辑
~/.openclaw/openclaw.json - 表单验证 + 应用并重启
- 支持 Schema 驱动的表单渲染,也提供原始 JSON 编辑器
诊断与日志
- 实时日志尾随(支持过滤和导出)
- 状态/健康快照
- 手动 RPC 调用(调试用)
节点状态
- 查看已配对的 macOS/iOS/Android 节点
访问认证
Control UI 通过 WebSocket 握手时的 token 进行认证:
首次连接(本地):
- 打开
http://127.0.0.1:18789/ - 在设置面板粘贴 token(引导向导已自动生成)
- token 存储在浏览器
localStorage,后续访问无需重新输入
获取 token:
bash
openclaw config get gateway.auth.token如果看到"unauthorized"或连接断开(1008):
bash
openclaw status # 确认 Gateway 运行中
openclaw doctor --generate-gateway-token # 如果没有 token,生成一个设备配对(首次从新设备访问)
从新浏览器或远程设备首次连接时,需要一次性配对审批:
bash
openclaw devices list # 列出待审批设备
openclaw devices approve <id> # 批准设备- 本机访问(
127.0.0.1)自动审批 - 远程访问(局域网、Tailnet)需要手动审批
- 清除浏览器数据或换浏览器需要重新配对
远程访问
通过 Tailscale Serve(推荐)
Gateway 运行在本机回环,Tailscale 提供 HTTPS 代理:
json5
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}访问:https://<magicDNS>/
Tailscale 身份认证可以免 token(设置 gateway.auth.allowTailscale: true)。
通过 SSH 隧道
bash
ssh -N -L 18789:127.0.0.1:18789 user@server然后访问 http://127.0.0.1:18789/。
Tailnet 直接绑定
json5
{
gateway: {
bind: "tailnet",
auth: { mode: "token", token: "your-token" },
},
}访问:http://<tailscale-ip>:18789/
语言支持
Control UI 根据浏览器语言自动选择语言,也可手动切换:
- 支持:
en、zh-CN、zh-TW、pt-BR、de、es - 语言偏好保存在浏览器存储中
配置选项
json5
{
gateway: {
controlUi: {
enabled: true, // 默认开启
basePath: "/openclaw", // 可选:更改访问路径前缀
allowedOrigins: [ // 非 loopback 部署时必须设置
"http://localhost:5173",
],
allowInsecureAuth: false, // 允许 HTTP(非安全上下文)连接
},
},
}安全提醒
Control UI 是管理员界面(可以聊天、编辑配置、审批 exec 请求):
- 不要将 Control UI 直接暴露到公网
- 推荐使用 Tailscale Serve(HTTPS)或 SSH 隧道
- 使用专用 Gateway token,与 API Key 分开管理
- 非 loopback 部署必须显式设置
gateway.controlUi.allowedOrigins