メインコンテンツへスキップ
セッションはプロジェクトディレクトリに紐付けられた保存済みの会話です。Claude Code はローカルに保存されるため、中断したところから再開したり、別のアプローチを試すために分岐したり、タスク間を切り替えたりできます。 デスクトップアプリWeb 上の Claude Code、および VS Code 拡張機能はそれぞれ独自のセッション履歴を保持しています。このページでは CLI について説明します。

セッションを再開する

セッションは作業中に ローカルトランスクリプトファイルに継続的に保存されるため、終了後または /clear を実行した後に再開できます。これらのエントリポイントを使用します。
コマンド機能
claude --continue現在のディレクトリで最新のセッションを再開します
claude --resumeセッションピッカーを開きます
claude --resume <name>指定されたセッションを直接再開します
claude --from-pr <number>そのプルリクエストにリンクされたセッションを再開します
/resumeアクティブなセッション内から別の会話に切り替えます
claude -pまたは Agent SDKで作成されたセッションはセッションピッカーに表示されませんが、セッション ID を claude --resume <session-id> に渡すことで再開できます。セッションが開始されたディレクトリから実行してください。セッション ID ルックアップは現在のプロジェクトディレクトリとその git worktrees にスコープされているため、他の場所で作成されたセッションは No conversation found with session ID: <session-id> と報告されます。

セッションピッカーが検索する場所

セッションはプロジェクトディレクトリごとに保存されます。デフォルトでは、セッションピッカーは現在の worktree からのインタラクティブセッション、および /add-dir で現在のディレクトリを追加した他の場所で開始されたセッションを表示します。v2.1.169 以降、/cdでセッションを移動すると、新しいディレクトリのプロジェクトストレージに再配置されるため、その後そのディレクトリのピッカーに表示されます。Ctrl+W を使用してリポジトリのすべての worktree に拡張するか、Ctrl+A を使用してこのマシン上のすべてのプロジェクトに拡張します。 同じリポジトリの別の worktree からセッションを選択すると、そこで再開されます。関連のないプロジェクトからセッションを選択すると、cd と再開コマンドがクリップボードにコピーされます。 名前で再開する場合は、現在のリポジトリとその worktree 全体で解決されます。どちらの形式も完全一致を探し、別の worktree に存在する場合でも直接再開します。
コマンド完全一致あいまいな名前
claude --resume <name>直接再開しますセッションピッカーを開き、名前を検索用語として事前入力します
/resume <name>直接再開しますエラーを報告します。セッションピッカーを開くには、引数なしで /resume を実行します

セッションに名前を付ける

セッションに説明的な名前を付けて、セッションピッカーで見つけやすく、名前で再開できるようにします。これは複数のタスクを並行して処理している場合に最も重要です。
時期名前を設定する方法
起動時claude -n auth-refactor
セッション中/rename auth-refactor。名前はプロンプトバーにも表示されます
セッションピッカーからセッションをハイライトして Ctrl+R を押します
プラン受け入れ時Plan Modeでプランを受け入れると、既に設定していない限り、プランコンテンツからセッションに名前が付けられます
セッションに名前が付けられたら、claude --resume <name> または /resume <name> で再開できます。worktree 全体での名前解決の動作については、セッションを再開するを参照してください。

セッションピッカーを使用する

セッション内で /resume を実行するか、引数なしで claude --resume を実行して、インタラクティブセッションピッカーを開きます。これらのキーボードショートカットを使用して、ナビゲート、検索、リストを拡張します。
ショートカットアクション
/ セッション間をナビゲートします
/ グループ化されたセッションを展開または折りたたみます
Enterハイライトされたセッションを再開します
Spaceセッションコンテンツをプレビューします。ターミナルが貼り付けとしてキャプチャしない場合は Ctrl+V も機能します
Ctrl+Rハイライトされたセッションの名前を変更します
/ またはスペース以外の任意の印字可能文字検索モードに入り、セッションをフィルタリングします。GitHub、GitHub Enterprise、GitLab、または Bitbucket のプルまたはマージリクエスト URL を貼り付けて、それを作成したセッションを見つけます
Ctrl+Aこのマシン上のすべてのプロジェクトからセッションを表示します。もう一度押すと現在のリポジトリに戻ります
Ctrl+W現在のリポジトリのすべての worktree からセッションを表示します。もう一度押すと現在の worktree に戻ります。マルチ worktree リポジトリでのみ表示されます
Ctrl+B現在の git ブランチからのセッションにフィルタリングします。もう一度押すとすべてのブランチを表示します
Escセッションピッカーまたは検索モードを終了します
各行は、セッション名が設定されている場合はそれを表示し、そうでない場合は会話の概要または最初のプロンプト、最後のアクティビティからの経過時間、メッセージ数、および git ブランチを表示します。Ctrl+A ですべてのプロジェクトに拡張した後、プロジェクトパスが表示されます。 /branch/rewind、または --fork-session で作成されたフォークされたセッションはルートセッションの下にグループ化されます。グループを展開するには を押します。

セッションを分岐させる

分岐は、これまでの会話のコピーを作成し、それに切り替え、元のセッションはそのままにしておきます。別のアプローチを試す際に、進めていたパスを失わないようにするために使用します。 セッション内から、オプションの名前を付けて /branch を実行します。
/branch try-streaming-approach
コマンドラインから、--continue または --resume--fork-session と組み合わせます。
claude --continue --fork-session
元のセッションは変更されず、セッションピッカーで利用可能なままです。/branch 確認は 2 つのセッション ID を出力します。現在いる新しいブランチと元のセッションです。元のセッションに戻るには、その ID を /resume に渡すか、セッションピッカーを使用するか、/resume <original-name> を実行します。「このセッションで許可」で承認したアクセス許可は新しいブランチに引き継がれません。2 つのターミナルで分岐せずに同じセッションを再開すると、両方からのメッセージが 1 つのトランスクリプトにインターリーブされます。 単一セッション内のチェックポイントベースの巻き戻しについては、チェックポイントを参照してください。

セッション内でコンテキストを管理する

これらのコマンドは、セッションを離れることなくコンテキストウィンドウ内の内容を制御します。
  • /clear:空のコンテキストで新たに開始します。以前の会話は保存され、再開可能です
  • /compact [instructions]:履歴を概要に置き換え、オプションで指定した内容に焦点を当てます
  • /context:現在コンテキストを消費しているものを表示します
圧縮が CLAUDE.md、スキル、およびルールとどのように相互作用するかについては、コンテキストウィンドウガイドを参照してください。クリアと圧縮のどちらを使用するかについての戦略については、ベストプラクティスを参照してください。

セッションデータをエクスポートして見つける

/export を実行して、現在の会話をクリップボードにコピーするか、プレーンテキストファイルとして保存します。メッセージとツール出力は読みやすいテキストとしてレンダリングされます。ファイル名を渡して、そのファイルに直接書き込みます。

スクリプトから会話にアクセスする

/export は人が読むためのレンダリングされたトランスクリプトを生成します。以下のインターフェースはスクリプトが解析するための構造化データを生成します。実行からの JSON 結果、セッションのトランスクリプトファイルへのパス、またはイベントのライブストリームです。スクリプトをトリガーするものによって選択してください。
  • Claude を 1 回実行して結果をキャプチャする: --output-format json または stream-jsonclaude -p を呼び出して、非インタラクティブ実行の結果、セッション ID、使用状況、およびコストを構造化 JSON としてキャプチャします。
  • 既存のセッションに質問する: claude -p --resume にセッション ID を渡して、フォローアップ プロンプト(要約リクエストなど)を送信し、構造化された応答をキャプチャします。
  • セッションイベントに反応する: hooksstatus line commands が入力として受け取る transcript_path フィールドを読みます。SessionEnd hook はセッションが終了したときにトランスクリプトをアーカイブできます。
  • TypeScript または Python アプリに Claude を埋め込む: Agent SDK を使用して、各メッセージをプログラムで受け取ります。
以下の例は 2 番目のインターフェースを使用しています。既存のセッションにフォローアップ プロンプトを送信し、jq で答えを読みます。
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

トランスクリプトが保存される場所

デフォルトでは、トランスクリプトは ~/.claude/projects/<project>/<session-id>.jsonl に JSONL として保存されます。ここで <project> は作業ディレクトリパスで、英数字以外の文字が - に置き換えられています。各行はメッセージ、ツール使用、またはメタデータエントリの JSON オブジェクトです。エントリ形式は Claude Code の内部形式であり、バージョン間で変更されるため、これらのファイルを直接解析するスクリプトはリリースごとに破損する可能性があります。セッションデータを構築するには、代わりに /export または スクリプトインターフェース を使用してください。 場所、保持期間、および書き込み動作は設定可能です。
目的設定場所
~/.claude からストレージを移動するCLAUDE_CONFIG_DIR環境変数
30 日間の保持期間を変更するcleanupPeriodDayssettings.json
すべてのモードでトランスクリプト書き込みを抑制するCLAUDE_CODE_SKIP_PROMPT_HISTORY環境変数
1 つの非インタラクティブ実行の書き込みを抑制する--no-session-persistenceclaude -p を使用した CLI フラグ

関連項目

これらのページは関連するセッションと並列処理のメカニクスについて説明しています。
  • Worktrees:別のブランチで分離された並列セッションを実行します
  • Checkpointing:コードと会話を以前のポイントに巻き戻します
  • Context window:コンテキストを満たすもの、圧縮後に残るもの
  • Non-interactive modeclaude -p の下でのセッション動作