PiPi
快速开始
使用 Pi
  • 简体中文
  • English
快速开始
使用 Pi
  • 简体中文
  • English
  • 从这里开始

    • 快速开始
    • 使用 Pi
    • 提供商
    • 安全
    • 容器化
    • 设置
    • 键位绑定
    • 会话
    • 压缩与分支总结
  • 自定义

    • 扩展
    • 技能
    • 提示词模板
    • 主题
    • Pi 包
    • 自定义模型
    • 自定义提供商
  • 参考

    • 会话文件格式
  • 编程式使用

    • SDK
    • RPC 模式
    • JSON 事件流模式
    • TUI 组件
  • 平台设置

    • Windows 设置
    • Termux(Android)设置
    • tmux 设置
    • 终端设置
    • Shell 别名
  • 开发

    • 开发

会话

Pi 将对话保存为会话,方便你继续工作、从早期轮次分支,并重新访问之前的路径。

会话存储

会话会自动保存到 ~/.pi/agent/sessions/,并按工作目录组织。每个会话都是一个带树结构的 JSONL 文件。

pi -c                  # Continue most recent session
pi -r                  # Browse and select from past sessions
pi --no-session        # Ephemeral mode; do not save
pi --name "my task"    # Set session display name at startup
pi --session <path|id> # Use a specific session file or partial session ID
pi --fork <path|id>    # Fork a session file or partial session ID into a new session

在交互模式中使用 /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 链接

恢复和删除会话

/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 分支

会话以树形式存储。每个条目都有 id 和 parentId,当前位置是活动叶子。/tree 让你跳转到任意之前的位置,并从那里继续,而无需创建新文件。

Tree View

示例形状:

├─ 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+→ or Alt+←/Alt+→折叠/展开,或在分支片段之间跳转
Shift+L设置或清除所选条目的标签
Shift+T切换标签时间戳
Enter选择条目
Escape/Ctrl+C取消
Ctrl+O循环筛选模式

筛选模式包括:default、no-tools、user-only、labeled-only 和 all。可在 Settings 中通过 treeFilterMode 配置默认值。

选择行为

选择用户消息或自定义消息时:

  1. 将叶子移动到所选消息的父级。
  2. 将所选消息文本放入编辑器。
  3. 允许你编辑并重新提交,从而创建新分支。

选择 assistant、tool、compaction 或其他非用户条目时:

  1. 将叶子移动到该条目。
  2. 保持编辑器为空。
  3. 允许你从该点继续。

选择根用户消息会将叶子重置为空对话,并把原始提示放入编辑器。

/tree、/fork 和 /clone

特性/tree/fork/clone
输出同一会话文件新会话文件新会话文件
视图完整树用户消息选择器当前活动分支
典型用法就地探索替代方案从较早提示开始新会话在继续前复制当前工作
摘要可选分支摘要无无

当你希望把替代方案保存在一起时,使用 /tree。当你希望获得单独的会话文件时,使用 /fork 或 /clone。

分支摘要

当 /tree 从一个分支切换到另一个分支时,Pi 可以总结被离开的分支,并将该摘要附加到新位置。这会保留你离开路径中的重要上下文,而无需重放整个分支。

出现提示时,选择以下之一:

  1. 不生成摘要
  2. 使用默认提示生成摘要
  3. 使用自定义重点说明生成摘要

有关分支摘要内部机制和扩展钩子,请参阅 Compaction。

会话格式

会话文件为 JSONL,包含消息条目、模型变更、思考级别变更、标签、压缩、分支摘要和扩展条目。

关于解析器、扩展、SDK 用法和完整 SessionManager API,请参阅 Session Format。

最近更新:: 2026/7/6 09:32
Contributors: seepine
Prev
键位绑定
Next
压缩与分支总结