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

セッションを再開する

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

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

セッションはプロジェクトディレクトリごとに保存されます。デフォルトでは、セッションピッカーは現在の worktree からのインタラクティブセッション、および /add-dir で現在のディレクトリを追加した他の場所で開始されたセッションを表示します。Ctrl+W を使用してリポジトリのすべての worktree に拡張するか、Ctrl+A を使用してこのマシン上のすべてのプロジェクトに拡張します。 v2.1.169 以降、/cdでセッションを移動すると、新しいディレクトリのプロジェクトストレージに再配置されるため、その後そのディレクトリのピッカーに表示されます。v2.1.196 以降、移動されたセッションはクラッシュまたは強制終了後も古いディレクトリのピッカーから除外されたままになります。以前のバージョンでは、古いパスにアンダースコアなどの特殊文字が含まれている場合、クリーンでない終了後に古いディレクトリのリストに再度表示される可能性がありました。 同じリポジトリの別の worktree からセッションを選択すると、そこで再開されます。関連のないプロジェクトからセッションを選択すると、cd と再開コマンドがクリップボードにコピーされます。 名前で再開する場合は、現在のリポジトリとその worktree 全体で解決されます。どちらの形式も完全一致を探し、別の worktree に存在する場合でも直接再開します。

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

セッションに説明的な名前を付けて、セッションピッカーで見つけやすく、名前で再開できるようにします。これは複数のタスクを並行して処理している場合に最も重要です。 セッションに名前が付けられたら、claude --resume <name> または /resume <name> で再開できます。worktree 全体での名前解決の動作については、セッションを再開するを参照してください。 名前を付けないインタラクティブセッションでも、起動時にデフォルトの表示名が自動的に付けられます。Claude Code v2.1.196 以降が必要です。デフォルト名は、作業ディレクトリの名前と 2 文字のサフィックスを組み合わせたもので、例えば my-app-3f のようになり、agent viewclaude agents --json 出力などの実行中セッションのリストでセッションを識別します。 デフォルト名は再開ハンドルではありません。claude --resume <name>/resume <name>、およびセッションピッカーは、設定した名前のみと一致します。セッションに名前を付けるとデフォルト名が置き換わります。

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

セッション内で /resume を実行するか、引数なしで claude --resume を実行して、インタラクティブセッションピッカーを開きます。これらのキーボードショートカットを使用して、ナビゲート、検索、リストを拡張します。 各行は、セッション名が設定されている場合はそれを表示し、そうでない場合は会話の概要または最初のプロンプト、最後のアクティビティからの経過時間、メッセージ数、および git ブランチを表示します。Ctrl+A ですべてのプロジェクトに拡張した後、プロジェクトパスが表示されます。 /branch/rewind、または --fork-session で作成されたフォークされたセッションはルートセッションの下にグループ化されます。グループを展開するには を押します。

セッションを分岐させる

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

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

これらのコマンドは、セッションを離れることなくコンテキストウィンドウ内の内容を制御します。
  • /clear:空のコンテキストで新たに開始します。以前の会話は保存され、/resume で再開可能です。または、同じ Claude Code プロセス内では、rewind メニューの前のセッションエントリから再開できます
  • /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/projects/<project>/<session-id>.jsonl に JSONL として保存されます。ここで <project> は作業ディレクトリパスで、英数字以外の文字が - に置き換えられています。各行はメッセージ、ツール使用、またはメタデータエントリの JSON オブジェクトです。エントリ形式は Claude Code の内部形式であり、バージョン間で変更されるため、これらのファイルを直接解析するスクリプトはリリースごとに破損する可能性があります。セッションデータを構築するには、代わりに /export または スクリプトインターフェース を使用してください。 場所、保持期間、および書き込み動作は設定可能です。

関連項目

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