会话
Pi 将对话保存为会话,以便你可以继续工作、从较早的轮次分支,并回顾之前的路径。
会话自动保存到 ~/.pi/agent/sessions/,按工作目录组织。每个会话是一个具有树结构的 JSONL 文件。
pi -c # 继续最近的会话pi -r # 浏览并选择过去的会话pi --no-session # 临时模式;不保存pi --name "my task" # 启动时设置会话显示名称pi --session <path|id> # 使用特定会话文件或部分会话 IDpi --fork <path|id> # 将会话文件或部分会话 ID 分叉到新会话在交互模式下使用 /session 查看当前会话文件、会话 ID、消息数、token 和费用。
有关 JSONL 文件格式和 SessionManager API,请参阅 Session Format。
| 命令 | 描述 |
|---|---|
/resume | 浏览并选择之前的会话 |
/new | 开始新会话 |
/name <name> | 设置当前会话显示名称 |
/session | 显示会话信息 |
/tree | 导航当前会话树 |
/fork | 从之前的用户消息创建新会话 |
/clone | 将当前活动分支复制到新会话 |
/compact [prompt] | 摘要较旧上下文;请参阅 Compaction |
/export [file] | 将会话导出为 HTML |
/share | 上传为私有 GitHub gist 并生成可分享的 HTML 链接 |
恢复和删除会话
Section titled “恢复和删除会话”/resume 为当前项目打开交互式会话选择器。pi -r 在启动时打开相同的选择器。
在选择器中你可以:
- 通过输入搜索
- 用 Ctrl+P 切换路径显示
- 用 Ctrl+S 切换排序模式
- 用 Ctrl+N 筛选已命名会话
- 用 Ctrl+R 重命名
- 用 Ctrl+D 删除,然后确认
如果可用,pi 使用 trash CLI 删除而不是永久移除文件。
使用 /name <name> 设置可读会话名称:
/name Refactor auth module启动时用 --name 或 -n 设置名称:
pi --name "Refactor auth module"pi --name "CI audit" -p "Review this build failure"已命名会话在 /resume 和 pi -r 中更容易找到。
使用 /tree 分支
Section titled “使用 /tree 分支”会话以树形式存储。每个条目都有 id 和 parentId,当前位置是活动叶节点。/tree 让你跳转到任意之前的点并从那里继续,而无需创建新文件。

示例结构:
├─ user: "Hello, can you help..."│ └─ assistant: "Of course! I can..."│ ├─ user: "Let's try approach A..."│ │ └─ assistant: "For approach A..."│ │ └─ user: "That worked..." ← active│ └─ user: "Actually, approach B..."│ └─ assistant: "For approach B..."| 按键 | 操作 |
|---|---|
| ↑/↓ | 导航可见条目 |
| ←/→ | 向上/向下翻页 |
| Ctrl+←/Ctrl+→ 或 Alt+←/Alt+→ | 折叠/展开或在分支段之间跳转 |
| Shift+L | 为所选条目设置或清除标签 |
| Shift+T | 切换标签时间戳 |
| Enter | 选择条目 |
| Escape/Ctrl+C | 取消 |
| Ctrl+O | 循环筛选模式 |
筛选模式包括:default、no-tools、user-only、labeled-only 和 all。在 Settings 中用 treeFilterMode 配置默认值。
选择用户或自定义消息时:
- 将叶节点移动到所选消息的父节点。
- 将所选消息文本放入编辑器。
- 允许你编辑并重新提交,创建新分支。
选择助手、工具、压缩或其他非用户条目时:
- 将叶节点移动到该条目。
- 编辑器留空。
- 允许你从该点继续。
选择根用户消息会将叶节点重置为空对话,并将原始提示放入编辑器。
/tree、/fork 和 /clone
Section titled “/tree、/fork 和 /clone”| 功能 | /tree | /fork | /clone |
|---|---|---|---|
| 输出 | 同一会话文件 | 新会话文件 | 新会话文件 |
| 视图 | 完整树 | 用户消息选择器 | 当前活动分支 |
| 典型用途 | 原地探索替代方案 | 从较早提示开始新会话 | 在继续前复制当前工作 |
| 摘要 | 可选分支摘要 | 无 | 无 |
当你想将替代方案保持在一起时,使用 /tree。当你想要单独的会话文件时,使用 /fork 或 /clone。
当 /tree 从一个分支切换到另一个分支时,pi 可以摘要被放弃的分支,并将该摘要附加到新位置。这保留了离开路径的重要上下文,而无需重放整个分支。
出现提示时,选择以下之一:
- 无摘要
- 使用默认提示摘要
- 使用自定义焦点说明摘要
有关分支摘要内部机制和扩展钩子,请参阅 Compaction。
会话文件是 JSONL,包含消息条目、模型变更、思考级别变更、标签、压缩、分支摘要和扩展条目。
有关解析器、扩展、SDK 用法和完整 SessionManager API,请参阅 Session Format。