For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /guide/fun/menu/tree.md.
  • 简体中文
  • /tree

    /tree 用来精确回溯到当前会话中的某个消息节点。这是 Hunea 的一个特色功能,灵感来源于 pi,在此感谢。

    当你想回到某一条用户消息、助手回复,或者某次工具结果附近,从那里接着聊、修改后重发,或者切换到另一条分支,都可以使用它。输入 /tree 确认后,会打开一个全屏的会话树面板,标题是 Session Tree

    默认 esc_rewind_mode = "coarse" 时,斜杠菜单中显示的是 /tree。需要注意:空输入框连按两次 Esc 并不会打开 /tree,而是会进入另一套「按某轮用户消息编辑/重发」的交互(截断该条之后的内容,并将正文回填到输入框,见 /sends-back)。

    只有将 esc_rewind_mode 配置为 "entry" 时,双击 Esc 才会打开 /tree;与此同时菜单会改为显示 /sends-back,二者不会同时出现在斜杠菜单中。也就是说,菜单项与双击 Esc 分别对应两种回溯方式,修改配置只是交换入口。

    简单区分:/tree 用于在会话树上精确选择节点、保留已有内容并创建分支;/sends-back(以及默认 coarse 下的双击 Esc)更偏向按某轮用户消息进行编辑/重发。

    列表概览

    面板展示的是当前会话的逻辑消息树,不是全局历史。

    每一行会展示:

    1. 左侧的树形连线 / 缩进图(有分叉时会更明显)
    2. 消息类型前缀:userassistanttoolreasoning
    3. 该节点的摘要文本(列表里是截断展示;预览时看完整内容)

    标题行会显示当前位置,例如 Session Tree (3 of 12),方便判断“现在在第几条 / 一共多少条”。

    加载时可能会先显示 Loading session tree...;如果当前会话还没有任何可展示消息,则会显示 No messages yet

    默认光标会尽量落在当前相关节点上;如果拿不到“当前行”,则回退到列表里最新的一条。

    大致效果如下图所示:

    tree

    怎么操作(主列表)

    底部会有一行快捷键提示,常用操作如下:

    • / ,或者 j / k:上下移动选中项
    • / ,或者 h / l:按页翻动(节点多的时候比较有用)
    • Space:打开当前选中节点的完整内容预览
    • Tab:若当前节点存在至少两条兄弟分支,则打开分支选择浮窗(Switch branch
    • A:打开完整的分支拓扑视图(Branch Tree
    • Enter:若当前节点可回溯,则精确回溯到该节点
    • Esc:关闭面板

    也可以用鼠标左键点击某一行,把光标移过去;点击本身不会触发回溯。

    页脚提示会随当前选中项变化:

    • 当前行可回溯时,才会出现 Enter rewind
    • 当前行有多条分支可选时,才会出现 Tab branch

    消息预览

    在主列表按 Space 后:

    • EscSpace:退回会话树列表
    • / / / ,以及 h / j / k / l:翻页查看更长内容

    预览里没有 Enter 回溯;要回溯,需要先退回列表再按 Enter

    大致效果如下图所示:

    tree-preview

    回溯之后会发生什么

    在主列表里选中可回溯节点并按 Enter 后,Hunea 会:

    1. 关闭会话树面板
    2. 把当前会话的可见上下文精确切到该节点所对应的恢复点
    3. 已有对话内容会尽量保留在会话树里(更像开分支,而不是把后面全部删掉)
    4. 若该节点带有回填文本(常见于用户消息节点),会把那段正文写回输入框,方便你改完再发

    需要注意:

    • 不是所有行都能 Enter 回溯。例如某些未完成的工具调用批次、或暂时没有恢复目标的 reasoning 行,按 Enter 可能没有效果。
    • 这是会话内的节点回溯 / 分支定位,不是 /resume 那种切换到另一条已保存会话,也不是 /resend 那种只回填全局用户历史。

    分支选择浮窗(Tab)

    当某条节点下已经分出多条路径时,在该行按 Tab,会在列表附近弹出 Switch branch 浮窗,用来在兄弟分支之间切换。

    浮窗里会看到:

    • 表头列:Msgs(消息数)、CreatedUpdated
    • 各分支的摘要;当前分支会带 (current) 标记
    • 底部提示:Enter switch / Space preview branch / Esc back

    操作:

    • / ,或者 j / k:在分支列表里移动
    • Enter:切换到选中分支
    • Space:预览非当前分支的会话树内容(当前分支上通常不会再开预览)
    • Esc:关闭浮窗,回到主会话树

    大致效果如下图所示:

    tree-branch-picker

    浮窗可见行数可用配置调整:

    [tui]
    branch_picker_list_rows = 7
    • 默认 7
    • 可配范围为 314

    完整分支树(A)

    A 会进入 Branch Tree 全屏视图,用来看当前会话里整棵分支拓扑,而不只是某个分叉点附近的兄弟项。

    标题类似 Branch Tree (2 of 5);加载时可能显示 Loading branch tree...,没有分支时则是 No branches yet。列表上方通常还会有类似 N branches, M messages 的汇总。

    操作:

    • / ,或者 j / k:上下移动
    • / ,或者 h / l:按页翻动
    • Enter:切换到选中分支(若已是当前分支,则通常无操作)
    • Space:预览非当前分支
    • Esc:退回主会话树列表

    大致效果如下图所示:

    tree-branch-tree

    分支预览(Space)

    从分支选择浮窗或完整分支树里,对非当前分支按 Space,会打开 Branch Preview

    这里列出的是该分支路径上的消息节点,标题可能还带创建/更新时间,例如:

    Branch Preview (3 of 8 · Created 2h · Updated 5m)

    而且该标题本身也有不同的颜色便于区分。

    在分支预览里:

    • / ,或者 j / k:移动选中节点
    • / ,或者 h / l:按页翻动
    • Space:再打开该节点的消息内容预览
    • Esc:退回来源界面(分支列表或完整分支树)

    分支预览本身不会直接 Enter 回溯/切换;要切换分支,请退回分支列表或 Branch Tree 后按 Enter

    大致效果如下图所示:

    tree-branch-preview

    和相邻命令的区别

    你想做的事更合适的命令
    在当前会话里精确回到某个消息节点 / 开分支/tree
    按某轮用户消息去改/重发(默认 coarse 下双击 Escentry 时菜单显示 /sends-back/sends-back
    只回填以前发过的用户输入,不改会话树/resend
    从当前会话挑用户/助手消息复制出去/copy
    切换到另一条已保存会话/resume

    /sends-back 的菜单互斥关系,也写在斜杠菜单前言里。

    相关配置

    [tui]
    # 默认 coarse:
    # - 菜单显示 /tree
    # - 空输入框连按两次 Esc:进入「按用户消息编辑/重发」(见 /sends-back)
    #
    # 配置为 entry 时:
    # - 菜单显示 /sends-back
    # - 空输入框连按两次 Esc:打开 /tree
    esc_rewind_mode = "coarse"
    
    # /tree 中 Tab 打开的分支浮窗可见行数(3..14,默认 7)
    branch_picker_list_rows = 7

    一点使用建议

    • 只想回到“刚才那一轮附近”:打开 /tree 后光标通常已靠近当前节点,上移到目标行再 Enter 即可。
    • 不确定点没点对:先 Space 预览内容,再退回列表回溯。
    • 同一处分过叉:在分叉节点上按 Tab,用 Msgs / Created / Updated 对照后 Enter 切换。
    • 分支很多、层级也深:用 A 看完整 Branch Tree,比在主列表里找更清楚。
    • 先想确认另一条分支长什么样、还不想切过去:在分支列表或分支树里对非当前项按 Space 预览。