跳到主要内容

TUI

TUI 是 Hermes 的现代化前端 —— 一个终端 UI,使用与经典 CLI 相同的 Python 运行时。相同的 Agent、相同的会话、相同的斜杠命令;只是提供了一个更干净、更响应的交互界面。

这是推荐的 Hermes 交互式运行方式。

启动

# 启动 TUI
hermes --tui

# 恢复最近的 TUI 会话(如果没有则回退到最近的经典 CLI 会话)
hermes --tui -c
hermes --tui --continue

# 通过 ID 或标题恢复指定会话
hermes --tui -r 20260409_000000_aa11bb
hermes --tui --resume "my t0p session"

# 直接运行源码 — 跳过预构建步骤(适用于 TUI 贡献者)
hermes --tui --dev

你也可以通过环境变量启用:

export HERMES_TUI=1
hermes # 现在使用 TUI
hermes chat # 同样

经典 CLI 仍作为默认可用。CLI 界面 中记录的所有内容 —— 斜杠命令、快捷命令、Skill 预加载、个性模式、多行输入、中断 —— 在 TUI 中完全相同地工作。

为什么使用 TUI

  • 即时首帧 — 横幅在应用完成加载前就绘制好,终端在 Hermes 启动时不会感觉卡住。
  • 非阻塞输入 — 在会话准备好之前就可以输入和排队消息。你的第一个提示在 Agent 上线时立即发送。
  • 丰富覆盖层 — 模型选择器、会话选择器、审批和澄清提示都渲染为模态面板而非内联流程。
  • 实时会话面板 — 工具和 Skill 在初始化时渐进填充。
  • 鼠标友好选择 — 拖拽高亮使用统一背景而非 SGR 反色。使用终端的正常复制手势复制。
  • 备用屏幕渲染 — 差分更新意味着流式传输时无闪烁,退出后无滚动回溯混乱。
  • 编辑器增强 — 长代码片段的内联粘贴折叠、从剪贴板粘贴图片(Alt+V)、括号粘贴安全。

相同的 Skin个性模式 同样适用。在会话中用 /skin ares/personality pirate 切换,UI 实时重绘。参见 Skin 和主题 了解完整的可自定义键列表以及哪些适用于经典 CLI 和 TUI — TUI 支持 Banner 调色板、UI 颜色、提示符字形/颜色、会话显示、补全菜单、选择背景、tool_prefixhelp_header

要求

  • Node.js ≥ 20 — TUI 作为从 Python CLI 启动的子进程运行。hermes doctor 会验证此要求。
  • TTY — 与经典 CLI 一样,管道 stdin 或在非交互环境中运行会回退到单次查询模式。

首次启动时,Hermes 会将 TUI 的 Node 依赖安装到 ui-tui/node_modules(一次性,几秒钟)。后续启动很快。如果你拉取了新版本的 Hermes,当源文件比 dist 更新时,TUI 包会自动重建。

外部预构建

分发预构建包的发行版(Nix、系统包)可以指向预构建的 TUI:

export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui

该目录必须包含 dist/entry.js 和最新的 node_modules

快捷键

快捷键与经典 CLI 完全一致。唯一的行为差异:

  • 鼠标拖拽 使用统一的选择背景高亮文本。
  • Ctrl+V 直接从剪贴板粘贴文本到编辑器;多行粘贴保持在一行直到你展开。
  • 斜杠自动补全 打开为带描述的浮动面板,而非内联下拉列表。

斜杠命令

所有斜杠命令不变地工作。少数是 TUI 专属的 —— 它们产生更丰富的输出或渲染为覆盖层而非内联面板:

命令TUI 行为
/help覆盖层显示分类命令,支持箭头键导航
/sessions模态会话选择器 — 预览、标题、Token 总计、内联恢复
/model按 Provider 分组的模态模型选择器,带费用提示
/skin实时预览 — 浏览时主题变更即时应用
/details切换详细工具调用信息(全局或按部分)
/usage丰富的 Token / 费用 / 上下文面板

所有其他斜杠命令(包括已安装的 Skill、快捷命令和个性切换)与经典 CLI 完全相同。参见斜杠命令参考

状态栏

TUI 的状态栏实时跟踪 Agent 状态:

状态含义
starting agent…会话 ID 已激活;工具和 Skill 仍在上线。你可以输入 — 消息排队等待就绪后发送。
readyAgent 空闲,接受输入。
thinking… / running…Agent 正在推理或运行工具。
interrupted当前轮次已取消;按 Enter 重新发送。
forging session… / resuming…初始连接或 --resume 握手。

每个 Skin 的状态栏颜色和阈值与经典 CLI 共享 — 参见 Skin 了解自定义。

配置

TUI 遵循所有标准 Hermes 配置:~/.hermes/config.yaml、Profile、个性模式、Skin、快捷命令、凭据池、Memory Provider、工具/Skill 启用。没有 TUI 专属的配置文件。

少数键专门调整 TUI 界面:

display:
skin: default # 任何内置或自定义 Skin
personality: helpful
details_mode: collapsed # hidden | collapsed | expanded — 全局手风琴默认
sections: # 可选:按部分覆盖(任意子集)
thinking: expanded # 始终展开
tools: expanded # 始终展开
activity: collapsed # 选择加入活动面板(默认隐藏)
mouse_tracking: true # 如果终端与鼠标报告冲突则禁用

运行时切换:

  • /details [hidden|collapsed|expanded|cycle] — 设置全局模式
  • /details <section> [hidden|collapsed|expanded|reset] — 覆盖单个部分 (部分:thinkingtoolssubagentsactivity

默认可见性

TUI 附带了按部分的默认设置,将轮次作为实时转录流式传输,而不是一堆尖括号:

  • thinking展开。推理在模型发出时内联流式传输。
  • tools展开。工具调用及其结果渲染为展开状态。
  • subagents — 遵循全局 details_mode(默认折叠在尖括号下 —— 在委托实际发生前保持安静)。
  • activity隐藏。环境元数据(网关提示、终端对等提示、后端通知)对大多数日常使用来说是噪音。工具失败仍在失败工具行上内联渲染;当每个面板都隐藏时,环境错误/警告通过浮动警报后备浮出水面。

按部分覆盖优先于部分默认和全局 details_mode。要重塑布局:

  • display.sections.thinking: collapsed — 将推理放回尖括号下
  • display.sections.tools: collapsed — 将工具调用放回尖括号下
  • display.sections.activity: collapsed — 选择加入活动面板
  • 运行时使用 /details <section> <mode>

任何在 display.sections 中明确设置的内容都会覆盖默认设置,因此现有配置保持不变。

会话

会话在 TUI 和经典 CLI 之间共享 —— 两者都写入相同的 ~/.hermes/state.db。你可以在一个中开始会话,在另一个中恢复。会话选择器显示两个来源的会话,带有来源标签。

参见会话了解生命周期、搜索、压缩和导出。

回退到经典 CLI

运行 hermes(不带 --tui)保持使用经典 CLI。要让机器默认使用 TUI,在 Shell 配置中设置 HERMES_TUI=1。要回退,取消设置即可。

如果 TUI 启动失败(没有 Node、缺少包、TTY 问题),Hermes 会打印诊断信息并回退 — 而不是让你卡住。

另见


📝 本文由 AI 翻译,如有疑问请参考英文原版