セッション
Pi は会話をセッションとして保存し、作業の続行、以前のターンからの分岐、過去のパスの再訪ができます。
セッションストレージ
Section titled “セッションストレージ”セッションは作業ディレクトリごとに整理され、~/.pi/agent/sessions/ に自動保存されます。各セッションはツリー構造を持つ JSONL ファイルです。
pi -c # 直近のセッションを続行pi -r # 過去のセッションを参照して選択pi --no-session # 一時モード;保存しないpi --name "my task" # 起動時にセッション表示名を設定pi --session <path|id> # 特定のセッションファイルまたは部分セッション ID を使用pi --fork <path|id> # セッションファイルまたは部分セッション ID を新しいセッションにフォーク対話モードでは /session で現在のセッションファイル、セッション ID、メッセージ数、トークン、コストを確認できます。
JSONL ファイル形式と SessionManager API については セッション形式 を参照してください。
セッションコマンド
Section titled “セッションコマンド”| コマンド | 説明 |
|---|---|
/resume | 過去のセッションを参照して選択 |
/new | 新しいセッションを開始 |
/name <name> | 現在のセッション表示名を設定 |
/session | セッション情報を表示 |
/tree | 現在のセッションツリーを操作 |
/fork | 以前のユーザーメッセージから新しいセッションを作成 |
/clone | 現在のアクティブブランチを新しいセッションに複製 |
/compact [prompt] | 古いコンテキストを要約;コンパクション を参照 |
/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 で削除します。
セッションへの命名
Section titled “セッションへの命名”/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 です。デフォルトは 設定 の treeFilterMode で構成します。
選択時の動作
Section titled “選択時の動作”ユーザーメッセージまたはカスタムメッセージを選択した場合:
- リーフを選択メッセージの親に移動。
- 選択メッセージのテキストをエディターに配置。
- 編集して再送信し、新しいブランチを作成。
アシスタント、ツール、コンパクション、その他の非ユーザーエントリを選択した場合:
- リーフをそのエントリに移動。
- エディターを空のままにする。
- その地点から続行。
ルートユーザーメッセージを選択すると、リーフが空の会話にリセットされ、元のプロンプトがエディターに配置されます。
/tree、/fork、/clone
Section titled “/tree、/fork、/clone”| 機能 | /tree | /fork | /clone |
|---|---|---|---|
| 出力 | 同じセッションファイル | 新しいセッションファイル | 新しいセッションファイル |
| 表示 | 完全なツリー | ユーザーメッセージセレクター | 現在のアクティブブランチ |
| 典型的な用途 | 代替案を同じ場所で探索 | 以前のプロンプトから新しいセッションを開始 | 続行前に現在の作業を複製 |
| 要約 | オプションのブランチ要約 | なし | なし |
代替案をまとめて保持したい場合は /tree を使用します。別のセッションファイルが必要な場合は /fork または /clone を使用します。
ブランチ要約
Section titled “ブランチ要約”/tree であるブランチから別のブランチに切り替えると、pi は放棄されたブランチを要約し、その要約を新しい位置に添付できます。これにより、離れたパスの重要なコンテキストを、ブランチ全体を再生せずに保持できます。
プロンプトが表示されたら、以下から 1 つを選択:
- 要約なし
- デフォルトプロンプトで要約
- カスタムフォーカス指示で要約
ブランチ要約の内部と拡張フックについては コンパクション を参照してください。
セッション形式
Section titled “セッション形式”セッションファイルは JSONL で、メッセージエントリ、モデル変更、思考レベル変更、ラベル、コンパクション、ブランチ要約、拡張エントリを含みます。
パーサー、拡張機能、SDK の使用、完全な SessionManager API については セッション形式 を参照してください。