Pi Session Manager

会话查看器

查看会话对话,支持树形导航、流程可视化和子代理会话。

会话查看器将 Pi 的 JSONL 会话文件渲染为丰富的交互式对话。支持分支对话、可折叠区块和多种可视化模式。

树形视图

左侧边栏以树形结构展示对话。每个节点代表一条消息,在对话分叉的决策点处形成分支。

导航

  • 点击任意节点跳转到该消息
  • 树形视图采用"最新叶节点"策略——点击节点会导航到该分支中最新的后代
  • 分支点(有多个子节点的节点)显示折叠/展开切换

过滤器

树形视图工具栏提供过滤器,控制哪些节点可见:

过滤器显示内容
默认用户 + 助手消息
无工具隐藏工具调用节点
用户仅用户消息
全部所有条目(包括元数据)
Read仅 read 工具调用
Edit仅 edit 工具调用
Write仅 write 工具调用

流程可视化

切换到流程视图,获得基于 React Flow 的图形化可视化。该模式:

  • 将对话渲染为紧凑树形布局的有向图
  • 将线性工具调用链折叠为边标签(如 bash ×2, read, edit
  • 使用基于角色的节点图标:用户 / 机器人 / 工具 / 设置
  • 包含带角色着色的 MiniMap
  • 点击任意节点导航到对应的对话分支

流程工具栏

  • 放大 / 缩小
  • 适应视图(自动缩放以显示所有节点)
  • 聚焦当前节点

流程视图与树形视图共享同一过滤栏。

可折叠区块

工具调用

工具调用(bash、read、edit、write 等)渲染为可折叠卡片。按 Cmd/Ctrl + O 切换所有工具调用的展开/折叠。

每个工具调用显示:

  • 工具名称和参数
  • 执行结果(可展开)
  • 语法高亮的代码块,带复制按钮

思考块

AI 的思考/推理块默认折叠。按 Cmd/Ctrl + T 切换。

会话内消息搜索

打开会话后,按 Cmd/Ctrl + F 或使用工具栏中的搜索按钮,即可打开内联消息搜索栏。

搜索栏提供:

  • 紧凑的范围过滤器,支持 全部用户 + 助手消息用户消息 三种模式;其中纯消息范围在显示思考块时仍会包含可见的思考内容
  • 当前渲染的用户/助手消息历史中的全部命中高亮;当范围为 全部 时,也包含助手消息中显示的通用/自定义工具结果输出
  • 当前 / 总数 计数器的上一个/下一个结果导航(Enter / Shift+EnterCmd/Ctrl + G / Shift + Cmd/Ctrl + G
  • 即使消息列表使用虚拟滚动,也能精确滚动到当前命中
  • 通过关闭按钮或 Esc 完整重置,清空查询、恢复默认范围并移除高亮

可配置的 Cmd+F 行为

Cmd/Ctrl + F 快捷键行为可在 设置 → 会话 → Cmd+F 行为 中自定义:

模式Cmd/Ctrl + FCmd/Ctrl + Shift + F
会话内搜索(默认)打开会话内搜索切换会话树侧边栏
切换会话树切换会话树侧边栏打开会话内搜索

习惯旧版 Cmd/Ctrl + F = 切换侧边栏行为的用户可以在此恢复。

子代理会话

当会话使用子代理(通过 Pi 的 subagent 工具)时,查看器会渲染可点击的卡片,显示每次子代理运行的信息:

  • 代理名称和模型
  • 运行时长和 Token 使用量
  • 任务预览

点击卡片可在模态窗口中打开完整的子代理对话。模态窗口复用相同的消息渲染组件(UserMessage、AssistantMessage、ToolCallList),并支持:

  • 嵌套子代理(堆叠模态窗口,递增 z-index)
  • 思考/工具切换(Cmd/Ctrl + T / Cmd/Ctrl + O
  • 单次、并行、链式和管理操作模式

子代理产物存储在 session-dir/subagent-artifacts/,使用与主会话相同的 JSONL 格式。查看器通过回退逻辑解析产物路径。

会话内容缓存

基于文件路径 + 修改时间戳的 LRU 缓存(5 个条目)加速了回退导航。缓存命中时完全跳过文件读取。

快捷键

快捷键操作
Cmd/Ctrl + T切换思考块
Cmd/Ctrl + O切换工具调用展开
Cmd/Ctrl + F在当前会话中搜索消息(或切换侧边栏,可配置)
Cmd/Ctrl + Shift + F切换会话树侧边栏(或搜索消息,可配置)
Cmd/Ctrl + G下一个会话内搜索结果
Shift + Cmd/Ctrl + G上一个会话内搜索结果
Cmd/Ctrl + E导出并在浏览器中打开
Cmd/Ctrl + R在终端中恢复会话

目录