TUI (Terminal UI)
快速开始
- 启动 Gateway。
openclaw gateway
- 打开 TUI。
openclaw tui
- 输入消息并按 Enter。
连接远程 Gateway:
openclaw tui --url ws://<host>:<port> --token <gateway-token>
如果你的 Gateway 使用密码认证,用 --password 参数。
界面说明
- 顶部栏:连接 URL、当前 Agent、当前 Session。
- 聊天记录:用户消息、助手回复、系统通知、工具卡片。
- 状态栏:连接/运行状态(连接中、运行中、流式传输中、空闲、错误)。
- 底部栏:连接状态 + Agent + Session + 模型 + think/verbose/reasoning + Token 计数 + deliver。
- 输入框:带自动补全的文本编辑器。
核心概念:Agent + Session
- Agent 是唯一的标识符(例如
main、research)。Gateway 会提供 Agent 列表。 - Session 属于当前 Agent。
- Session 键的存储格式为
agent:<agentId>:<sessionKey>。- 如果你输入
/session main,TUI 会展开为agent:<currentAgent>:main。 - 如果你输入
/session agent:other:main,你会明确切换到那个 Agent Session。
- 如果你输入
- Session 作用域:
per-sender(默认):每个 Agent 有多个 Session。global:TUI 始终使用globalSession(选择器可能为空)。
- 当前 Agent + Session 始终显示在底部栏。
发送 + 投递
- 消息会发送到 Gateway;默认不投递到 Provider。
- 开启投递:
/deliver on- 或在设置面板中开启
- 或启动时使用
openclaw tui --deliver
选择器 + 浮层
- 模型选择器:列出可用模型并设置 Session 覆盖。
- Agent 选择器:选择不同的 Agent。
- Session 选择器:仅显示当前 Agent 的 Session。
- 设置:切换投递、工具输出展开和思考可见性。
键盘快捷键
- Enter:发送消息
- Esc:中止当前运行
- Ctrl+C:清空输入(按两次退出)
- Ctrl+D:退出
- Ctrl+L:模型选择器
- Ctrl+G:Agent 选择器
- Ctrl+P:Session 选择器
- Ctrl+O:切换工具输出展开/折叠
- Ctrl+T:切换思考可见性(重新加载历史记录)
Slash 命令
核心命令:
/help/status/agent <id>(或/agents)/session <key>(或/sessions)/model <provider/model>(或/models)
Session 控制:
/think <off|minimal|low|medium|high>/verbose <on|full|off>/reasoning <on|off|stream>/usage <off|tokens|full>/elevated <on|off|ask|full>(别名:/elev)/activation <mention|always>/deliver <on|off>
Session 生命周期:
/new或/reset(重置 Session)/abort(中止当前运行)/settings/exit
其他 Gateway slash 命令(例如 /context)会转发到 Gateway 并显示为系统输出。参见 Slash 命令。
本地 Shell 命令
- 在行首加
!前缀可在 TUI 主机上运行本地 Shell 命令。 - TUI 会在每个 Session 首次使用时提示允许本地执行;拒绝后该 Session 会禁用
!。 - 命令在 TUI 工作目录的全新非交互式 Shell 中运行(不保留
cd/环境变量)。 - 单独的
!会作为普通消息发送;前导空格不会触发本地执行。
工具输出
- 工具调用显示为卡片,包含参数 + 结果。
- Ctrl+O 在折叠/展开视图之间切换。
- 工具运行时,部分更新会流式传输到同一张卡片。
历史记录 + 流式传输
- 连接时,TUI 加载最新历史记录(默认 200 条消息)。
- 流式响应会就地更新直到完成。
- TUI 还会监听 Agent 工具事件以显示更丰富的工具卡片。
连接详情
- TUI 以
mode: "tui"注册到 Gateway。 - 重新连接会显示系统消息;事件间隙会在日志中显示。
选项
--url <url>:Gateway WebSocket URL(默认为配置文件或ws://127.0.0.1:<port>)--token <token>:Gateway Token(如需要)--password <password>:Gateway 密码(如需要)--session <key>:Session 键(默认:main,或作用域为 global 时为global)--deliver:投递助手回复到 Provider(默认关闭)--thinking <level>:覆盖发送时的思考级别--timeout-ms <ms>:Agent 超时时间(毫秒)(默认为agents.defaults.timeoutSeconds)--history-limit <n>:加载的历史记录条数(默认 200)
故障排除
发送消息后没有输出:
- 在 TUI 中运行
/status确认 Gateway 已连接且处于空闲/忙碌状态。 - 检查 Gateway 日志:
openclaw logs --follow。 - 确认 Agent 可以运行:
openclaw status和openclaw models status。 - 如果你期望在聊天频道中看到消息,启用投递(
/deliver on或--deliver)。
其他问题:
disconnected:确保 Gateway 正在运行,且你的--url/--token/--password正确。- 选择器中没有 Agent:检查
openclaw agents list和你的路由配置。 - Session 选择器为空:你可能处于 global 作用域或还没有 Session。