Pi の設定、拡張、プラットフォーム設定、API リファレンス。

セッション

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、メッセージ数、トークン、コストが表示されます。

JSONL ファイル形式と SessionManager API については、Session Format を参照してください。

セッションコマンド

指示 説明
/resume 以前のセッションを参照して選択する
/new 新しいセッションを開始する
/name <name> 現在のセッションの表示名を設定します
/session セッション情報を表示
/tree 現在の session tree をナビゲートします
/fork 以前のユーザー メッセージから新しいセッションを作成する
/clone 現在のアクティブなブランチを新しいセッションに複製します。
/compact [prompt] 古いコンテキストを要約します。 Compactionを参照
/export [file] セッションをHTMLにエクスポート
/share 共有可能な HTML リンクを使用してプライベート GitHub 要点としてアップロードします

セッションの再開と削除

/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"

名前付きセッションは、/resumepi -r で見つけやすくなります。

/treeで分岐

セッションはツリーとして保存されます。すべてのエントリには idparentId があり、現在の位置がアクティブ リーフになります。 /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+→ または Alt+←/Alt+→ 分岐セグメント間を折りたたむ/展開する、またはジャンプする
Shift+L 選択したエントリのラベルを設定またはクリアします
Shift+T ラベルのタイムスタンプを切り替えます
入力 エントリを選択
エスケープ/Ctrl+C キャンセル
Ctrl+O サイクルフィルターモード

フィルター モードは、デフォルト、ツールなし、ユーザーのみ、ラベル付きのみ、およびすべてです。 SettingstreeFilterModeでデフォルトを設定します。

選択動作

ユーザーまたはカスタム メッセージの選択:

  1. リーフを選択したメッセージの親に移動します。
  2. 選択したメッセージ テキストをエディタに配置します。
  3. 新しいブランチを作成して、編集して再送信できます。

アシスタント、ツール、圧縮、またはその他の非ユーザー エントリの選択:

  1. リーフをそのエントリに移動します。
  2. エディターを空のままにします。
  3. その時点から続行できます。

root ユーザーのメッセージを選択すると、リーフが空の会話にリセットされ、元のプロンプトがエディターに表示されます。

/tree/fork/clone

特徴 /tree /fork /clone
出力 同じセッションファイル 新しいセッションファイル 新しいセッションファイル
ビュー 完全なツリー ユーザーメッセージセレクター 現在アクティブなブランチ
一般的な使用方法 代替案を検討する 以前のプロンプトから新しいセッションを開始する 続行する前に現在の作業を複製してください
まとめ オプションのブランチの概要 なし なし

代替案をまとめたい場合は、/tree を使用します。別のセッション ファイルが必要な場合は、/fork または /clone を使用します。

ブランチの概要

/tree があるブランチから別のブランチに切り替えると、pi は放棄されたブランチを要約し、その要約を新しい位置に添付できます。これにより、ブランチ全体を再生することなく、離れたパスからの重要なコンテキストが保持されます。

プロンプトが表示されたら、次のいずれかを選択します。

  1. 要約なし
  2. デフォルトのプロンプトで要約する
  3. カスタムフォーカス命令で要約する

branch summarization の内部構造と拡張フックについては、Compaction を参照してください。

セッション形式

セッション ファイルは JSONL で、メッセージ エントリ、モデルの変更、思考レベルの変更、ラベル、圧縮、ブランチの要約、および拡張エントリが含まれます。

パーサー、拡張機能、SDK の使用法、および完全な SessionManager API については、Session Format を参照してください。