跳到主要内容

TUI

TUI 是 Anyy 的交互式终端应用。不带任何参数运行 anyy 即可启动它: 一个全屏的对话界面,包含多行输入框、斜杠命令、自动补全、实时工具进度、审批卡片 以及一条实用的状态栏。它是常驻的主要使用界面——如果只想获得一次性的非交互回复, 请参阅一次性对话;如需完整的 CLI 子命令与参数,请参阅 CLI 参考

启动 TUI

anyy

不带参数时,anyy 会启动交互式终端应用,并连接到本地 gateway(必要时会自动 启动一个)。有几个入口参数可以改变会话的起始方式:

参数作用
--role ROLE为新会话选择初始 Role。
--resume SESSION_ID恢复已有会话,而非新建。
--profile NAME按名称选择 Anyy profile。
--home PATH使用指定的 Anyy home 目录。
--socket PATH连接到指定的 gateway socket。
--no-color关闭彩色输出。

完整的参数列表以及其他 anyy 子命令,请参阅 CLI 参考。TUI 需要 真实的交互式终端;如果把输入通过管道喂给它(没有 TTY),它会立即退出。

当终端足够高(至少 15 行)且连接到真实 TTY 时,应用会在启动时预先打印若干空行, 使输入框停留在屏幕底部,对话内容向上增长进入其上方的回滚区。它不会接管备用屏幕 (alternate screen)——你的终端回滚内容会被保留。

为什么选择 TUI

TUI 是使用 Anyy 最丰富的方式:

  • 对话式,而非一次性。 持久会话,带完整的对话记录、流式回复,以及可显示或隐藏 的推理 / 工具细节。
  • 真正的多行输入框。 可插入换行、粘贴大段内容(会折叠成简洁的占位符)、调取 历史输入,并使用熟悉的 readline 风格按键编辑。
  • 可在回合中途引导或打断。 由你决定智能体工作时输入会做什么:排队、引导当前 回合,或打断。
  • 就地审批。 审批卡片与 ChangePlan 卡片就地出现在对话中;无需离开对话即可批准 或拒绝。
  • 状态一目了然。 状态栏展示模型、连接、上下文用量与耗时;模型选择器可实时切换 模型。

如果是脚本化场景或只需一个答案,anyy chat 更合适。TUI 适合 你坐下来、与助手一起工作。

快捷键

编辑按键遵循常见的 readline 习惯。输入框是多行的,因此 Enter 用于发送,而由另一 个按键插入换行。

发送与换行

按键操作
Enter发送当前消息(或运行斜杠命令)。
Alt+Enter插入换行(多行输入)。
Ctrl+J插入换行(与 Alt+Enter 相同)。
\ 后接 Enter单独的行尾反斜杠会变成换行,而不是发送。

Shift+Enter 有意绑定:在多数终端上它与 Enter 无法区分,因此换行键以 Alt+Enter / Ctrl+J 为准。

光标移动与编辑

按键操作
Left / Right按字符移动光标(会把粘贴块作为一个整体跨越)。
Home / Ctrl+A移动到输入起始处。
End / Ctrl+E移动到输入结尾处。
Backspace删除光标前的字符(会整块删除一个粘贴块)。
Delete删除光标后的字符。
Ctrl+U从光标删除到输入起始处。
Ctrl+K从光标删除到输入结尾处。
Ctrl+W删除光标前的一个词(一个粘贴块算作一个词)。

历史、补全与导航

按键操作
Up / Down调取上一条 / 下一条已提交的输入(补全菜单关闭时)。
Tab应用高亮的斜杠命令补全项。
Up / Down在打开的补全菜单中移动选择。
PgUp / PgDown滚动对话内容;PgDown 回到最新消息。
Shift+Up / Shift+Down滚动对话内容。

回合控制与退出

按键操作
Esc打断当前回合(仅在智能体工作时有效)。
Ctrl+C工作中:打断回合。否则:清空非空输入框,若已为空则退出。
Ctrl+D立即退出 TUI。
Enter(输入为空且连接已断开)重试 gateway 连接。

斜杠命令

输入 / 打开补全菜单;它把本地 UI 命令(在 TUI 内处理)与 gateway 为该界面 提供的运行时命令(技能、工具、MCP 等)合并在一起。随着输入,匹配项会按前缀 排序;按 Tab 应用高亮项,用 Up/Down 移动选择。

/help 会按分类列出可用命令(Local、Runtime、Session、Model、Skills/Tools、 Debug、Other);/help <name> 显示某个命令的详情。

下面是几个最常用的本地命令:

命令作用
/help显示 TUI 帮助(可针对某个命令)。
/new新建会话。
/resume打开会话选择器,或按 id 恢复。
/model为当前会话打开模型选择器。
/busy设置忙时输入行为:queuesteerinterrupt
/compact切换紧凑对话显示。
/details/reasoning控制工具细节与推理的可见性。
/statusbar切换状态栏。
/copy/paste复制选区 / 助手回复,或附加剪贴板内容。
/queue查看或入队消息。
/undo/retry撤销上一次交互,或重试上一条用户消息。
/quit退出 TUI。

这只是一部分示例。完整、权威的斜杠命令列表——包括 gateway 运行时命令——请参阅 斜杠命令参考

状态栏

状态栏默认关闭,用 /statusbar 切换。显示在顶部时,标题栏显示 Anyy (设置了 Role 时附加 Role),回合进行中会显示带 spinner 的运行指示,否则显示当前 状态;当与 gateway 的连接尚未就绪时,会出现 connection <state> 字段。

输入框上方另有一条上下文栏,用 连接显示:

  • 当前模型 id,
  • 上下文用量 used/max [▓▓▓░░░░░░░] NN%(接近上限时百分比变红),
  • 回合计时器(,智能体工作中),或上一回合的耗时(,结束后)。

模型选择器

/model 为当前会话打开模型选择器。用 Up/Down(或 j/k)移动选择,按 Enter 切换,EscCtrl+C 取消。列表末尾是 ← BackCancel 两行。 当某个 provider 提供的模型较多(25 个或以上)时,顶部会出现过滤框:直接输入即可 缩小列表,按一次 Esc 清除过滤(再按一次 Esc 关闭选择器)。切换会作用于当前 会话,并就地确认。

如果该 provider 没有可用模型,选择器会提示你运行 anyy setup model

Profile 面板

/profile 显示当前 profile 详情,/config 显示当前配置,二者均就地渲染在对话中。 它们是只读视图,用于确认当前会话使用的 profile、Role 与设置;要修改它们,请使用 anyy profileanyy role 子命令(参阅 CLI 参考)。

审批卡片

当智能体提出改变状态或需要 root 权限的操作时,对话中会就地出现一张审批卡片——一个 带边框、标题为 需要批准 的方框,显示 Title:、存在时的 Risk: 等级 (■■■ high■■ medium■ low)、一行 Approval ID: <id>Summary:,以及 任何拟议的更改、命令、验证与回滚步骤,底部是 Y/Enter approve N deny 控件:

╭─ 需要批准 ──────────────────────────────────╮
│ Title: restart service │
│ Risk: ■■■ high │
│ Approval ID: approval_1 │
│ │
│ Y/Enter approve N deny │
╰─────────────────────────────────────────────╯

ChangePlan 审批的标题为 ChangePlan Approval,并额外添加一行 ChangePlan ID: <id>; 澄清提示使用相同样式、标题为 需要确认 的方框。卡片处于活动状态时:

按键操作
YEnter批准该操作。
N拒绝该操作。
Esc / Ctrl+C保持卡片活动,并打印按键提示。

澄清提示与之类似,但接受自由文本:输入你的答案(或列出的选项编号)并按 Enter; 输入框提示会就地显示你的草稿。批准 / 拒绝与澄清的决定都会发送给 gateway,由其保留 审批与审计语义。

工具进度显示

智能体运行工具时,每个工具都会显示在对话中,带名称和状态,并根据细节模式显示其 参数、实时进度与结果。你可以控制显示多少内容:

  • /details 调整工具细节的可见性(包括隐藏工具输出,或展开完整的参数 / 进度 / 结果)。
  • /reasoning 显示、隐藏或查看助手的推理。
  • /compact 把每条消息和工具折叠成一行,让对话更紧凑。

回复会实时流式呈现;在回合完成前,会有一个块状光标标记流式位置。

自动重连

TUI 订阅 gateway 的事件流,该事件流是实时回合的权威来源。如果连接断开,应用会打印 connection lost; reconnecting,并以退避策略自动重试。恢复期间,标题栏与屏幕顶部 那行会显示当前的 connection <state>;连接恢复正常后,排队的草稿会自动发出。

如果重连最终失败,应用会显示 connection unavailable; press Enter to retry——在 输入框为空时按 Enter 会立即触发一次重试。连接不可用期间,Ctrl+C 会退出。

TUI 如何与 Gateway 通信

TUI 是常驻 gateway 的客户端,而非智能体循环本身。它只负责本地渲染、输入编辑、补全 以及可见的队列状态;gateway 负责会话、工具、技能、审批、ChangePlan、持久化、 provider/模型解析与后台任务。

两条通道连接二者:

  • RPC 承载你的操作——发送消息、引导或打断回合、运行运行时斜杠命令、切换模型, 以及批准 / 澄清的决定。
  • 事件流 承载会话中发生的一切——流式文本、工具进度、状态变化与审批提示——它是 对话内容渲染所依据的真实来源。

由于 gateway 是常驻的,会话与历史会在 TUI 重启后保留:退出再重新启动(或用 --resume 加会话 id)即可从上次中断处继续。