Сессии
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 в интерактивном режиме, чтобы просмотреть текущий файл сеанса, идентификатор сеанса, количество сообщений, токены и стоимость.
Информацию о формате файла JSONL и SessionManager API см. в Session Format.
Команды сеанса
| Команда | Описание |
|---|---|
/resume |
Просмотрите и выберите предыдущие сеансы |
/new |
Начать новый сеанс |
/name <name> |
Установите отображаемое имя текущего сеанса |
/session |
Показать информацию о сеансе |
/tree |
Навигация по текущему session tree |
/fork |
Создать новый сеанс на основе предыдущего сообщения пользователя. |
/clone |
Дублируйте текущую активную ветку в новый сеанс. |
/compact [prompt] |
Обобщить старый контекст; см. Compaction |
/export [file] |
Экспорт сеанса в HTML |
/share |
Загрузить как частную суть GitHub с общей 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 позволяет перейти к любой предыдущей точке и продолжить оттуда, не создавая новый файл.

Пример формы:
├─ 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+→ | Складывайте/разворачивайте или прыгайте между сегментами ветвей |
| Шифт+Л | Установить или удалить метку для выбранной записи |
| Шифт+Т | Переключить временные метки ярлыков |
| Входить | Выберите запись |
| Выход/Ctrl+C | Отмена |
| Ctrl+О | Режим циклического фильтра |
Режимы фильтрации: по умолчанию, без инструментов, только для пользователя, только с метками и все. Настройте значение по умолчанию с помощью treeFilterMode в Settings.
Поведение выбора
Выбор пользователя или пользовательского сообщения:
- Перемещает лист к родительскому элементу выбранного сообщения.
- Помещает выделенный текст сообщения в редактор.
- Позволяет редактировать и повторно отправлять, создавая новую ветку.
Выбор помощника, инструмента, уплотнителя или другой непользовательской записи:
- Перемещает лист к этой записи.
- Оставляет редактор пустым.
- Позволяет продолжить с этого момента.
Выбор сообщения корневого пользователя сбрасывает лист до пустого разговора и помещает исходное приглашение в редактор.
/tree, /fork и /clone
| Особенность | /tree |
/fork |
/clone |
|---|---|---|---|
| Выход | Тот же файл сеанса | Новый файл сеанса | Новый файл сеанса |
| Вид | Полное дерево | Селектор сообщений пользователя | Текущая активная ветка |
| Типичное использование | Изучите существующие альтернативы | Начать новый сеанс с предыдущего приглашения | Дублируйте текущую работу, прежде чем продолжить |
| Краткое содержание | Необязательная сводка ветвей | Никто | Никто |
Используйте /tree, если хотите объединить альтернативы. Используйте /fork или /clone, если вам нужен отдельный файл сеанса.
Резюме филиалов
Когда /tree переключается с одной ветви на другую, pi может суммировать заброшенную ветвь и прикрепить это резюме к новой позиции. Это сохраняет важный контекст пути, который вы покинули, без повторного воспроизведения всей ветки.
При появлении запроса выберите один из:
- нет резюме
- подвести итоги с помощью подсказки по умолчанию
- подведите итоги с помощью инструкций по индивидуальному фокусу
См. Compaction для branch summarization внутренних деталей и удлинителей.
Формат сессии
Файлы сеансов имеют номер JSONL и содержат записи сообщений, изменения модели, изменения на уровне мышления, метки, уплотнения, сводки ветвей и записи расширений.
Информацию о парсерах, расширениях, использовании SDK и полном сеансе SessionManager API см. в Session Format.