跳到主要内容

TUI 参考手册

常见任务的操作流程请参阅交互式 TUI。本页记录快捷键与界面行为细节。

不带任何提示词直接启动 Ante 即可进入交互式 TUI 界面:

ante

概览​

Ante 的 TUI 基于 ratatui 构建,在终端中直接提供现代化的富文本对话界面。默认采用内联渲染(最多 24 行)并以约 100fps 的防抖帧率渲染。若终端会丢失内联滚动历史,可运行 ante --fullscreen 或在 /config 中切换 Render mode;全屏模式使用备用屏幕并由 Ante 管理滚动,可实时切换。

核心特性​

聊天交互界面​

主视图显示您与智能体之间的实时对话。在底部输入框中键入提示词并按 Enter 发送。智能体的回复以流式 Markdown 实时呈现。工具调用之前的模型中间思考与旁白叙述采用柔和的暗色调呈现,为最终回答与回复保留高亮明朗文本。

Markdown 渲染原生支持 LaTeX 数学公式:$...$、$$...$$、\(...\) 或 \[...\] 中的表达式会自动转换为终端 Unicode 优雅呈现(如 \alpha → α,x^2 → x²,\frac{1}{2} → ½),并支持 aligned 和 pmatrix 等多行数学矩阵排版。

思考推理过程在主对话流中保持折叠。无论模型思考多久,当前轮次均显示为一行简洁指示器:

✻ Thinking… (ctrl+o expand)

当思考内容正在流式接收时,符号会呈现动态呼吸动画;流式结束后变为静态。如果同一轮次中经历了“思考 → 调用工具 → 再次思考”,则会为每个片段显示对应标记。完整的思考独白可随时在完整记录视图中实时查看。

工具审批​

当智能体尝试调用需要授权的工具(如 Bash 或 Write)时,界面会弹出交互式审批提示。使用数字键或方向键 + Enter 进行确认:

  • Yes — 仅允许本次单次调用
  • Yes, allow … for this session — 在当前会话生命周期内保持允许(作用域泛化而非无边界放行)
  • Yes, always allow … (save to settings) — 将允许规则永久持久化到 settings.json
  • No — 拒绝本次调用;智能体会调整策略寻找其他方案

在决定前按 Tab 键可预览生成的代码 Diff 或请求详细参数。

结构化提问交互​

当智能体需要进一步明确意图或在多个设计方案间进行权衡时,会在输入框区域以交互组件形式呈现 1 到 4 个结构化的多选题。每个选项均配有详细说明,必要时还提供代码或配置预览。按 Enter 键确认选中推荐选项,方向键切换选项,按 Esc 跳过以交由智能体自行判断,点击“继续讨论”可返回正常对话输入自由文本。

提醒​

在用户设置中配置 "attention": { "enabled": true },即可为完成或失败的轮次、审批提示和问题启用终端响铃与桌面通知。响铃不受焦点影响;桌面通知要求终端已报告失去焦点。参见提醒设置与终端配置。

自 v0.3.1 起,Ante 还会通过 OSC 7501 报告轮次状态:空闲、工作中、等待权限或回答、完成及错误。支持该协议的终端可显示这些状态,包括通过 tmux 运行时;不支持的终端会忽略它们。状态报告自动启用,无需打开提醒通知。

全屏 Diff 代码审查视图​

当智能体提议修改文件时,Ante 会切换至全屏 Diff 视图(在终端 Alternate 备用屏幕上渲染)。您可以在批准前逐行审查变动。Diff 视图提供行号槽、全宽增删背景色块以及顶部的 +N -M 改动统计。对话流中已完成的编辑结果采用 32 行内联预算,按文件顺序完整保留 diff hunk,超出部分汇总显示并可通过 Ctrl+O 完整记录视图查看完整改动。 连续超过三行的未改动上下文仅保留首尾行,不再显示“未改动 N 行”占位行;行号仍反映真实位置。

完整记录视图​

按 Ctrl+O 打开全屏完整记录视图:展示完整的历史对话记录以及展开的工具调用输出(包含主聊天视图中被截断的长文本)。使用 j/k 或 PgUp/PgDn 滚动,使用 g/G 快速跳转到顶部/底部,按 Ctrl+O 或 q 退出。

在主聊天视图中,连续的静默工具调用(如 Bash、Read、Grep、Glob、WebFetch、WebSearch 及 MCP 工具)默认会被折叠为单个紧凑活动块。调用执行时展示计数、参数与耗时;超长 Shell 命令支持折行跨越最多三行展示并以 … (+N chars) 标示,避免在终端边界生硬截断。完成后折叠为汇总信息(如 Ran 2 shell commands, searched for 3 patterns)。成功的文件读取和失败调用会单独展开在下方 —— 读取显示为 Read (src/main.rs) ·110 lines,失败调用显示为红色 Failed 标题及其错误原因。单独展示的 Bash 调用若有 description,会将其作为固定标题,下面显示 $ command 预览;执行中和完成后保留同一标题,并显示耗时。没有描述时,完成后仍从 Run 切换为 Ran。项目内的工具路径相对于会话目录显示,主目录下其他位置使用 ~,两者之外的路径保留绝对形式。Edit、Write 和 Agent 调用始终保持独立卡片,且全屏记录视图始终保留所有详细调用与输出。可以在 /config 中开关 Group tool activity 或在 ~/.ante/settings.json 中配置 "group_tool_activity": false;修改仅对新调用生效。

执行会话压缩后(通过手动 /compact 或自动压缩),主视图显示折叠的压缩标记。早期历史仍可查看供参考,模型则结合较早上下文的摘要、近期对话与您的消息继续工作。完整记录视图展示完整摘要。若希望摘要聚焦某个主题,可添加指令,例如 /compact focus on the API changes。无需生成摘要时,系统会用信息行报告裁剪过的工具结果。

文本选择与复制​

全屏视图(包括全屏聊天、完整记录视图、Diff 视图和 /diff 输出)捕获鼠标滚轮事件,并内置文本选择机制:拖拽选中文本并在松开鼠标时自动复制,底部状态栏会提示 copied N lines。双击选中单词(智能包含 _-./~+@#$%&=:,确保文件路径或完整 URL 不被截断),三击选中整行。拖拽到可视区域顶部或底部可自动继续滚动选择。在全屏聊天中,PgUp / PgDn 也可滚动对话。向上滚动时,对话下方会显示 Jump to bottom (ctrl+l) ↓ 提示(有新条目到达后显示为 N new messages (ctrl+l) ↓);按 Ctrl+L、点击该提示或发送消息即可重新跟随新增内容。滚动回到底部同样会恢复跟随。

复制时会自动将软折行的文本(包括提示信息与手动运行的 Shell 输出)拼接还原为完整单行,确保长命令和 URL 粘贴时保持完整。工具输出、代码块、表格和 Diff 均按展示格式原样复制。复制内容会同步写入操作系统剪贴板,并通过 OSC 52 转义序列分发(因此支持在 SSH 远程会话和 tmux 中跨端复制;超过 100 KB 的选区会跳过 OSC 52 传输)。点击空白区域可清除选区,仅包含空白字符的选择不会写入剪贴板。

内联模式不拦截鼠标,您可以继续使用系统终端自带的滚动历史、选择和复制功能。

模型与提供商切换​

使用内置选择器在会话中随时切换模型或提供商,无需重启 Ante。

主题选择​

Ante 基于结构化颜色 Token 表管理所有主题色彩,包括与围栏代码块语法高亮深度契合的全新浅色(Light)模式。在不支持 24 位真彩色的终端上,RGB 主题色会自动量化适配到标准 256 色 ANSI 调色板。按 Ctrl+T 或输入 /theme 即可打开主题选择弹窗。

斜杠命令​

输入 / 即可触发内置命令(如 /models、/resume、/compact 等)。完整命令列表请参见斜杠命令手册。

会话消耗统计​

/usage 打开会话消耗面板:按模型细分显示 Token 用量、全会话缓存命中率以及 Turn 和模型调用次数。

Usage by model:
claude-opus-5: 5.0k input, 3.2k output, 1.1m cache read, 45.0k cache write
gpt-5.1: 900 input, 80 output

Cache hit rate: 95%
Turns: 12 · Model calls: 2

数据分为四类:input 仅统计未经缓存的输入 Token,已缓存部分分别计为 cache reads 和 cache writes。缓存命中率为 cache reads 占总输入 Token 的百分比。

TUI 根据分发给客户端的用量事件自行统计。对于 Anthropic 和 ChatGPT 订阅,/usage 还会显示额度进度条与重置时间,每个已保存的账号各一组,包括带标签的第二个账号。OpenAI 窗口名称依据服务端返回的时长(例如七天窗口显示 Weekly limit)。每次打开都会重新获取额度,访问令牌过期时先刷新再重试;无法刷新时才报告凭据过期。Anthropic 套餐名称不再附带速率层级。子智能体的 Token 与缓存用量会转发并计入父会话总计,但其上下文快照保持私有,因此根会话的上下文指示器不会跳变。失败调用与目标判定器若未产生用量事件,仍可能不在统计中。/clear 会重置计数,恢复的会话仅统计回放事件部分。

如需在不启动会话的情况下查询订阅配额,可运行 ante usage。它支持选择单个已存储账户,并为脚本输出 JSON。

目标导向型会话​

使用 /goal <condition> 开启持续自主闭环工作,直到满足验收条件。详见目标导向会话。

会话恢复​

启用会话保存时(默认开启),Ante 会将会话持久化到磁盘中。输入 /resume 即可随时恢复历史会话。

工作流程​

  1. 输入 /resume 打开会话选择器
  2. 按最近使用时间浏览当前工作目录下的历史会话 —— 每条记录显示其标题(未设置标题时显示首条消息),以及所用模型、消息总数、事件日志的磁盘大小与相对时间
  3. 按 Enter 选择恢复,按 Esc 取消
  4. 按 d(或 Delete)删除选中的历史会话 —— 再次按 d 确认。当前正在活跃的会话无法删除

恢复会话时,Ante 会:

  • 完整还原历史对话记录
  • 重新发现当前项目目录中的 Agent 和 Skills(除非会话是以 --no-skills 启动)
  • 保留已保存的系统提示词及提示词模式(包括 --system-prompt、--append-system-prompt 与 --short-prompt),并刷新工具定义
  • 如果本地日期、操作系统或 Shell 改变,在下一轮用一条通知告知模型;环境未变时不发送通知
  • 采纳您当前的权限配置而非历史保存的旧模式(此前在 Yolo 模式下保存的会话在恢复时会遵从您当前的 Strict 或 Auto 规则)
  • 回放完整的持久化事件日志以重建 TUI 对话视图,不再限制为最近 200 条事件

会话保存在 ~/.ante/sessions/{session_id}/,采用原子写入确保崩溃安全性。

提示

运行 ante --resume(或 ante -r)可直接打开当前目录的会话选择器;若没有已保存的会话,Ante 会提示后退出。使用 ante --resume <SESSION_ID> 可在 TUI 或无头模式下直接恢复指定会话;无头模式必须提供 ID。TUI 会话退出时会打印会话 ID。

从终端打开已保存的对话,会恢复其历史记录,让你从上次进度继续:

从终端打开会话选择器并恢复已保存的对话

会话标题​

会话可以带一个标题 —— 由您指定的名称,绝不会从对话内容中推断生成:

/rename auth refactor
/rename # 清除标题

标题会在 /resume 选择器中替代首条消息显示,因此长期运行的会话可以按用途识别,而不是靠它是如何开始的。标题同样会同步到终端标签页,让多个 Ante 窗口一眼可辨;并且在恢复会话后依然保留 —— 重命名一次即可长期生效。

标题两端的空白会被裁剪;裁剪后为空的标题等同于清除标题。

从 Claude Code 或 Codex 迁移接管​

如果在当前目录中 4 小时内曾运行过 Claude Code 或 Codex 会话,Ante 启动时会显示一行轻量提示,询问是否直接接管继续。该提示在每个项目中仅出现一次,在无头运行中不会显示。

内置技能 /resume-claude 与 /resume-codex 可随时调用:它们会在磁盘上定位第三方会话记录,以纯数据方式解析(绝不作为指令执行),重构任务目标、当前进度及下一步计划 —— 并在继续工作前与您确认。传入会话 ID 可恢复特定会话;无参数时使用最近会话。

配合 /import-claude,还可以将 Claude Code 在当前目录下的项目记忆复制到 Ante 的项目记忆库中。已有 Ante 文件绝不会被覆盖。

快捷键参考​

聊天输入框快捷键​

快捷键功能
Enter发送消息(在 Bash 模式 下以 ! 开头时直接执行 Shell 命令)
Alt+Enter换行
Ctrl+Enter / Shift+Enter换行(在支持 kitty 键盘协议的终端中有效,如 kitty、Ghostty、WezTerm、iTerm2 3.5+、Alacritty 0.13+,包括全屏 TUI 模式)
Up / Down移动光标,随后在历史提示词之间导航
Tab补全命令或文件路径;在空输入框时接受下一轮提示词预测建议
Shift+Tab循环切换权限模式:strict → auto → yolo(即时生效,包括正在运行的轮次)
Ctrl+R在提示词历史中启动反向增量搜索(Reverse-i-search)
Ctrl+L全屏模式:跳转到最新输出
Ctrl+C中断当前活跃轮次;连续按两次退出 Ante(或使用 /exit)
Ctrl+S将排队的消息实时注入到正在运行的轮次中(Steer 引导)
Ctrl+V / Ctrl+Shift+V从系统剪贴板粘贴文本或图片
Escape关闭弹窗;无弹窗时中断当前正在执行的轮次
Esc Esc输入框为空且无弹窗时,打开回退选择器

tmux 不支持 kitty 键盘协议,Ante 会请求 xterm 扩展按键。需要 tmux 3.5 或更新版本,在 ~/.tmux.conf 中设置以下选项后重启 tmux 服务:

set -s extended-keys on
set -s extended-keys-format csi-u

终端支持转发修饰键时,Ctrl+Enter 和 Shift+Enter 都可在 tmux 中换行。关闭全屏弹窗后(包括 zellij 中),Ante 会恢复键盘报告模式;Alt+Enter 可作为备用。

单行编辑快捷键​

输入框支持标准 Readline 编辑与多级撤销/重做:

快捷键功能
Ctrl+A / Home跳到行首
Ctrl+E / End跳到行尾
Alt+B / Ctrl+←向前移动一个单词
Alt+F / Ctrl+→向后移动一个单词
Ctrl+W / Alt+Backspace删除光标前的一个单词
Alt+D删除光标后的一个单词
Ctrl+D删除光标所在位置的字符
Ctrl+K剪切从光标处到行尾的内容
Ctrl+U剪切从行首到光标处的内容
Ctrl+Y粘贴最近一次剪切的内容
Ctrl+Z撤销上一步编辑
Alt+Z重做

全局快捷键​

快捷键功能
Ctrl+T打开主题切换弹窗
Ctrl+O打开完整记录视图
Ctrl+E停止正在运行的本地 llama server(离线模式)
Ctrl+G展开/折叠本地推理引擎实时日志面板(离线模式)
Ctrl+K / Ctrl+J在日志面板展开时向上/向下滚动日志

全屏 Diff 视图快捷键​

快捷键功能
j / Down向下滚动
k / Up向上滚动
Page Down / Page Up翻页滚动
Home / End跳到顶部/底部
q / Escape关闭 Diff 视图

工具审批快捷键​

快捷键功能
↑ / ↓(或 k / j)在选项之间移动
1 / 2 / 3 / 4直接选择 Yes / 本次会话允许 / 始终允许 / No
y / Enter确认高亮选项
Esc拒绝本次工具调用
Tab展开预览 Diff 或请求详情

反向搜索快捷键​

快捷键功能
Ctrl+R下一个匹配项
Ctrl+S上一个匹配项
Enter采纳匹配项
Escape / Ctrl+G取消搜索

@ 语法引用文件​

在输入框中输入 @ 可直接引用文件、目录或子智能体,支持实时自动补全:

  • @path/to/file.rs — 将文件全文嵌入消息
  • @path/to/dir/ — 嵌入目录树状列表
  • @"name (agent)" — 委派或引用已配置的子智能体

项目相对路径补全会搜索完整项目树,包括嵌套超过六层的文件,并复用后台构建的索引进行快速模糊匹配。~/、绝对路径、../ 和 ./ 路径同样可用,方便引用项目之外的文件。

提示

直接粘贴多个文件路径时,Ante 会自动为其添加 @ 前缀。

Bash 模式​

在输入内容最前面加上 ! 即可直接作为本地 Shell 命令执行,而不会发送给智能体:

!git status
!cargo build

命令会在您当前的登录 Shell($SHELL -lc,回退为 /bin/sh)中从当前工作目录执行,超时上限为 120 秒。命令一经调用即出现在对话流中,无需等待运行结束;执行结果会自动作为上下文提供给下一轮智能体对话,方便您先手动运行命令,随后让智能体根据输出进行操作。

备注

Bash 模式在本地直接执行,无需权限审批 —— 输入 ! 即代表授权。这与智能体自主发起的 Bash 工具调用不同,后者的执行依然受权限系统约束。单独输入 ! 会作为普通文本消息发送。交互式程序(编辑器、分页器)无法在此模式下工作,因为 Bash 模式没有终端输入交互。

终端会话管理​

编排智能体、分叉对话和管理持久交互式子智能体的图文流程,请参阅使用 /term 编排智能体。

智能体可以通过常驻的命名 tmux 会话(ante-*)驱动交互式程序(如本地 Dev Server、REPL、SSH 或其他 CLI 智能体),使用普通的 tmux 命令配合内置的 tmux 技能进行控制。会话位于 ante- 命名空间下,在 Ante 重启后依然保持存活:后续对话可以随时接管之前留下的服务。您拥有会话的完全生命周期所有权 —— 退出 TUI 时不会杀死后台会话。默认的 terminals 状态栏条目会在底部展示正在运行的会话。

输入 /term <name> [args...] 可打开对应的终端视图(若不存在则自动创建)。如果 <name> 是系统 PATH 中的可执行程序,新创建的会话会自动运行 <name> [args...](例如 /term claude --continue 会拉起运行 claude --continue 的新会话)。若会话已存在则仅执行附加(Attach),后序参数不会重启或替换运行中的程序。再次运行 /term <name> 会分离终端视图并保持后台程序继续运行。会话名称仅限字母、数字、- 和 _。

单独输入 /term 会打开所有运行中 Ante 会话的选择列表。按 Enter 附加/分离,连续按两次 d 或 Delete 杀死会话,或选择 new terminal 创建新会话。

终端分割窗口优先复用当前 Ante 所在环境的原生分屏能力:tmux、zellij、WezTerm、kitty、Ghostty 1.3+ 或 iTerm2。在 tmux 内部,首个视图向右分屏,后续视图在其下方垂直堆叠。Ghostty 和 iTerm2 分屏通过 AppleScript 触发,因此在旧版本或关闭了 AppleScript 的机器上会回退到独立窗口。若无法分屏,Ante 会在检测到的首个可用终端中打开新的系统窗口(kitty、WezTerm、Ghostty、iTerm2、gnome-terminal 或 Terminal.app)。

该功能依赖系统已安装 tmux。

下一轮提示词预测建议​

当一轮对话结束且输入框为空时,Ante 会在后台轻量预测可能的下一步提示词,并以半透明虚字展示。按 Tab 键即可采纳并填入输入框进行编辑修改;按其他任意键会自动取消该建议。

预测使用最廉价的模型在关键路径之外异步生成,绝不拖慢会话响应速度,且若未能及时生成则静默不产生任何操作。默认开启;可在 ~/.ante/settings.json 中配置 "ambient_prompt_suggestion": false 关闭。

动态思考状态语​

在输入较长提示词时,Ante 会在后台预生成与任务相关的简短状态语作为加载动画的标签,替代默认的固定 Running… 标签。与提示词建议类似,它在关键路径之外尽力生成,并自动过滤掉具有破坏性或警告色彩的词汇。默认开启;可在 ~/.ante/settings.json 中配置 "ambient_thinking_phrase": false 关闭。

加载状态技巧提示​

在智能体工作期间,Ante 会在加载动画下方展示一行功能技巧提示:

◆ Thinking
└─ Tip: Press ctrl+r to search your prompt history.

提示内容来自精选的静态列表(功能特性、快捷键、工作流习惯)—— 无需调用大模型。选择算法完全确定:优先展示最久未显示的候选提示,每条提示设有基于应用重启次数的冷却时间,且在单次会话中展示过一次后不会再次重复。加载动画在整个活跃轮次中持续显示,包括流式输出、思考与工具执行;等待审批或问题回答时暂停。活跃执行三秒后显示中断提示与 Token 信息,十秒后显示耗时,五秒后显示技巧提示。新输出不会重置这些等待时间;提示不进入对话记录。

默认开启;可在 ~/.ante/settings.json 中配置 "tips": false 关闭。展示历史存储在 ~/.ante/tip_history.json 中 —— 删除该文件可重置轮播状态。

TUI 模式的命令行参数​

ante --model claude-sonnet-5-5
ante --provider openai
ante --profile work
ante --no-skills
ante --system-prompt "You are a Python expert"
ante --append-system-prompt "Always use type hints"
ante --tools Read,Grep,Glob
ante --include-tools ViewImage
ante --exclude-tools Bash,Write
ante --yolo # 跳过所有工具审批
ante --resume ses_01ARZ3NDEK... # 恢复历史会话