OpenClaw-Admin Web CLI终端完全指南:浏览器内的真实终端、会话持久化与断线重连
- 前端
- 后端
- 人工智能
- AI Agent
【免费下载链接】OpenClaw-Admin
Claw-Admin 是一个基于 Vue 3 构建的现代化 AI 智能体管理平台,同时支持 OpenClaw Gateway 和 Hermes Agent 两大 AI 智能体网关提供完整的 Web 管理界面。通过直观的可视化操作,用户可以轻松管理 AI 智能体、会话、模型、频道、技能等核心功能。
OpenClaw-Admin 是一个基于 Vue 3 构建的 AI 智能体管理平台,支持 OpenClaw Gateway 与 Hermes Agent 双网关。其内置的 Web CLI 终端让你无需 SSH 客户端,直接在浏览器里获得真实终端体验:基于 xterm.js 与 SSE 协议实现,支持会话持久化、断线自动重连、全屏模式与启动参数可视化配置,即使关闭浏览器,后台进程依然存活。
本文带你从零开始掌握 OpenClaw-Admin 的 Web CLI 终端,覆盖两大终端形态、常用配置项、会话持久化与断线重连原理,以及新手常见问题的解决方法。
Web CLI 终端是什么?
简单说,OpenClaw-Admin 的 Web CLI 终端 =浏览器里的 xterm.js 前端+服务端 node-pty 伪终端+SSE 单向输出流。
它有三个核心特点:
- 🖥️真实终端仿真:服务端通过 node-pty 启动真实的 Shell 或 CLI 进程,支持 256 色、ANSI 转义序列,
vim、htop等全屏程序都能正常显示 - 📡纯 SSE + HTTP 双通道,无 WebSocket:输出走 Server-Sent Events 长连接,键盘输入走 HTTP POST,兼容严格的企业网络策略与反向代理
- 🔄会话不随浏览器消失:终端进程托管在服务端,断开连接只是"分离",进程继续运行;重新连接后还能回放输出缓冲区
OpenClaw-Admin 中提供了两种终端,分别服务于两大网关:
| 对比项 | 远程终端(OpenClaw 模块) | Hermes CLI 终端(Hermes 模块) |
|---|---|---|
| 启动对象 | 系统 Shell(bash/powershell) | Hermes CLI 进程 |
| 会话持久化 | 断开即清理,侧重实时操作 | ✅ 关闭浏览器进程不中断,支持重连回放 |
| 多会话管理 | 单会话 | 多会话:重连、分离、重命名、销毁 |
| 启动参数 | Shell、工作目录、尺寸、超时 | 可视化配置 model、skills、yolo 等 10+ 参数 |
| 前端页面 | src/views/terminal/TerminalPage.vue | src/views/hermes/HermesCliPage.vue |
快速上手:3 步进入浏览器内终端
第 1 步:登录管理后台。打开 OpenClaw-Admin 的 Web 界面,使用管理员账号登录。
第 2 步:进入终端页面。在左侧菜单选择"远程终端"(OpenClaw 模块)或 Hermes 模块下的 CLI 终端。路由定义见 src/router/routes.ts,对应路径分别为terminal与hermes/terminal。
第 3 步:点击"连接"按钮。页面顶部的状态标签会从"已断开"变为"已连接",同时显示当前会话 ID 前缀,例如:
✓ Connected to terminal Session: a3f9c2b1...连接成功后,直接在终端窗口里输入命令即可,就像操作本地终端一样。
远程终端配置项速查
点击工具栏的"设置"按钮,可以展开配置面板。注意:修改设置后需重新连接才能生效。
| 配置项 | 默认值 | 范围 | 说明 |
|---|---|---|---|
| 目标节点 | 本地 Gateway | - | 留空连接本地,也可选择远程节点 |
| Shell 路径 | 自动检测 | - | Linux/macOS 默认$SHELL或/bin/bash,Windows 默认powershell.exe |
| 工作目录 (cwd) | 用户主目录 | - | 例如/home/user/projects |
| 列数 (cols) | 120 | 20 ~ 300 | 终端宽度 |
| 行数 (rows) | 36 | 5 ~ 100 | 终端高度 |
| 超时时间 (timeout) | 60 秒 | 10 ~ 600 秒 | 影响心跳间隔与进程闲置策略 |
配置参数的 TypeScript 类型定义在 src/api/types/terminal.ts,服务端按这些参数创建 PTY 的完整逻辑位于 server/index.js。
连接成功后,终端会自动根据浏览器窗口大小自适应(基于@xterm/addon-fit插件),窗口缩放无需手动刷新。
深入理解:会话持久化与断线重连原理
这是 Web CLI 终端最容易被低估的能力,也是它与"普通网页版终端"的最大区别。
会话持久化:关闭浏览器,进程不中断
以 Hermes CLI 终端为例,服务端为每个会话维护一块64KB 环形输出缓冲区(见 server/index.js):
- CLI 进程输出持续写入缓冲区,与浏览器是否在线无关
- 浏览器关闭或网络中断时,只是 SSE 长连接断开,PTY 进程继续运行
- 重新连接时,服务端先把缓冲区中的历史输出回放给你,再无缝衔接实时流
前端通过 30 秒一次的心跳机制(/api/hermes-cli/heartbeat)告知服务端"我还在",实现见 src/stores/hermes-cli.ts。
服务端每 5 分钟执行一次孤儿会话清理:心跳超过30 分钟无更新的会话、或响应流已损坏的会话会被回收,防止资源泄漏(清理逻辑见 server/index.js)。
断线重连:指数退避自动恢复
浏览器端的EventSource本身具备自动重连能力,OpenClaw-Admin 在其上又加了一层指数退避策略(见 src/stores/terminal.ts):
- 首次重连延迟 1 秒
- 每次失败延迟乘以 1.5(1s → 1.5s → 2.25s → …)
- 最多尝试10 次,避免对服务端造成压力
- 重连成功后计数器自动清零
状态标签会实时反映四种状态:已连接(绿色)、连接中...(黄色)、已断开(灰色)、连接错误(红色),排障时一眼可辨。
如果终端长时间"连接错误",建议先到"系统监视器"页面确认 Gateway 实例在线状态,再检查网络是否允许 SSE 长连接(text/event-stream)。
常用终端操作与快捷键
| 操作 | 方式 | 提示 |
|---|---|---|
| 粘贴文本 | 终端内右键 | 自动读取剪贴板并发送,提示"已粘贴" |
| 复制文本 | 鼠标选中即可 | 选中后自动复制到剪贴板,提示"已复制到剪贴板" |
| 进入全屏 | 点击"全屏"按钮 | 终端铺满整个浏览器窗口 |
| 退出全屏 | 按Esc键 | 也可点击"退出全屏"按钮 |
| 清空屏幕 | 点击"清空"按钮 | 仅清屏,不影响会话历史 |
| 断开连接 | 点击"断开"按钮 | 按钮变为红色"停止"态时可用 |
这些交互细节实现于 src/views/terminal/TerminalPage.vue,例如选中自动复制、右键粘贴与Esc退出全屏等。
Hermes CLI 终端:真实 CLI 体验
Hermes CLI 终端是 OpenClaw-Admin 的招牌功能之一,通过 node-pty 启动真实 Hermes CLI 进程,支持全部 CLI 专用命令(/skills、/tools、/cron、/config等)。
展开启动配置面板,即可可视化配置以下参数,无需手敲命令行:
| 参数 | 说明 |
|---|---|
-m/--model | 指定模型,如anthropic/claude-sonnet-4 |
--provider | 指定供应商(auto / openrouter / anthropic / custom 等) |
-s/--skills | 预加载技能(可多个) |
-t/--toolsets | 工具集(逗号分隔) |
-r/--resume | 恢复指定会话 |
--yolo | 跳过危险命令确认 |
--checkpoints | 启用文件系统检查点 |
--max-turns | 最大工具迭代次数 |
-v/-Q | 详细输出 / 安静模式 |
多会话管理方面,你可以创建多个 CLI 会话,并对每个会话执行重连、分离(detach,仅断开 SSE 连接但进程保活)、重命名与销毁操作,状态定义见 src/stores/hermes-cli.ts。
关键源码与资料路径
想进一步了解实现细节,可以从这些文件入手:
- 终端前端页面:src/views/terminal/TerminalPage.vue
- 终端状态管理(连接、心跳、退避重连):src/stores/terminal.ts
- Hermes CLI 状态管理(多会话、分离、重命名):src/stores/hermes-cli.ts
- 服务端 SSE 流与 PTY 管理:server/index.js
- 终端相关类型定义:src/api/types/terminal.ts
- 路由注册:src/router/routes.ts
常见问题解答
Q:终端连接上后输入没有反应?先确认状态标签为"已连接"。若显示"连接中..."说明 SSE 通道尚未建立,通常 1 秒内会自动完成重连。
Q:修改 cols/rows 为什么不生效?设置面板底部有明确提示:修改设置后需重新连接才能生效。
Q:关闭浏览器标签页,正在运行的任务会中断吗?Hermes CLI 终端不会中断——进程托管在服务端,重新打开页面后选择对应会话重连,还能看到缓冲区的历史输出。远程终端(Shell)则会随连接断开而清理,长任务请使用 Hermes CLI 终端或先设置更大的超时时间。
Q:为什么提示"Connection closed"?这是 SSE 通道被服务器或网络中断后的提示,前端会按指数退避策略自动重试;若 10 次均失败,请检查网关进程是否存活(可在系统监视器页面确认)。
总结
OpenClaw-Admin 的 Web CLI 终端把"真实终端"装进了浏览器:xterm.js 提供仿真体验,SSE 保证网络兼容性,node-pty 保证进程真实,而会话持久化与断线重连机制则让长任务不再惧怕网络波动。无论是日常运维、远程排查,还是运行 Hermes CLI 复杂工作流,打开浏览器就能开始工作,无需再记 SSH 地址、装客户端或开堡垒机。
- 前端
- 后端
- 人工智能
- AI Agent
【免费下载链接】OpenClaw-Admin
Claw-Admin 是一个基于 Vue 3 构建的现代化 AI 智能体管理平台,同时支持 OpenClaw Gateway 和 Hermes Agent 两大 AI 智能体网关提供完整的 Web 管理界面。通过直观的可视化操作,用户可以轻松管理 AI 智能体、会话、模型、频道、技能等核心功能。
相关推荐
告别SSH断连烦恼:Kitty终端会话持久化全攻略
告别SSH断连烦恼:Kitty终端会话持久化全攻略 你是否经历过这样的场景:SSH连接远程服务器执行耗时任务,中途网络波动导致连接断开,所有工作成果付诸东流?作
桌面应用告别终端断线焦虑:shpool轻量级会话持久化方案完全指南
告别终端断线焦虑:shpool轻量级会话持久化方案完全指南 为什么需要shpool? 你是否经历过以下场景:SSH连接突然中断导致几小时的工作成果丢失?使用tm
Rustwright 连接云端浏览器实战:connect_over_cdp 驱动 Skyvern 持久化会话完整教程
Rustwright 连接云端浏览器实战:connect_over_cdp 驱动 Skyvern 持久化会话完整教程 Rustwright 是一个用 Rust
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考