> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# セッションの管理

> Claude Code の会話に名前を付け、再開し、分岐し、切り替えます。`--continue`、`--resume`、`--from-pr`、`/resume` ピッカー、セッション命名、トランスクリプトのエクスポート、およびトランスクリプトの保存場所について説明します。

セッションはプロジェクトディレクトリに紐付けられた保存済みの会話です。Claude Code はローカルに保存されるため、中断したところから再開したり、別のアプローチを試すために分岐したり、タスク間を切り替えたりできます。

[デスクトップアプリ](/ja/desktop#work-in-parallel-with-sessions)、[Web 上の Claude Code](/ja/claude-code-on-the-web)、および [VS Code 拡張機能](/ja/vs-code#resume-past-conversations)はそれぞれ独自のセッション履歴を保持しています。このページでは CLI について説明します。

<h2 id="resume-a-session">
  セッションを再開する
</h2>

セッションは作業中に [ローカルトランスクリプトファイル](#export-and-locate-session-data)に継続的に保存されるため、終了後または `/clear` を実行した後に再開できます。これらのエントリポイントを使用します。

| コマンド                        | 機能                                        |
| :-------------------------- | :---------------------------------------- |
| `claude --continue`         | 現在のディレクトリで最新のセッションを再開します                  |
| `claude --resume`           | [セッションピッカー](#use-the-session-picker)を開きます |
| `claude --resume <name>`    | 指定されたセッションを直接再開します                        |
| `claude --from-pr <number>` | そのプルリクエストにリンクされたセッションを再開します               |
| `/resume`                   | アクティブなセッション内から別の会話に切り替えます                 |

[`claude -p`](/ja/headless)または [Agent SDK](/ja/agent-sdk/overview)で作成されたセッションはセッションピッカーに表示されませんが、セッション ID を `claude --resume <session-id>` に渡すことで再開できます。セッションが開始されたディレクトリから実行してください。セッション ID ルックアップは現在のプロジェクトディレクトリとその git worktrees にスコープされているため、他の場所で作成されたセッションは `No conversation found with session ID: <session-id>` と報告されます。

<h3 id="where-the-session-picker-looks">
  セッションピッカーが検索する場所
</h3>

セッションはプロジェクトディレクトリごとに保存されます。デフォルトでは、セッションピッカーは現在の worktree からのインタラクティブセッション、および `/add-dir` で現在のディレクトリを追加した他の場所で開始されたセッションを表示します。v2.1.169 以降、[`/cd`](/ja/commands)でセッションを移動すると、新しいディレクトリのプロジェクトストレージに再配置されるため、その後そのディレクトリのピッカーに表示されます。`Ctrl+W` を使用してリポジトリのすべての worktree に拡張するか、`Ctrl+A` を使用してこのマシン上のすべてのプロジェクトに拡張します。

同じリポジトリの別の worktree からセッションを選択すると、そこで再開されます。関連のないプロジェクトからセッションを選択すると、`cd` と再開コマンドがクリップボードにコピーされます。

名前で再開する場合は、現在のリポジトリとその worktree 全体で解決されます。どちらの形式も完全一致を探し、別の worktree に存在する場合でも直接再開します。

| コマンド                     | 完全一致    | あいまいな名前                                         |
| :----------------------- | :------ | :---------------------------------------------- |
| `claude --resume <name>` | 直接再開します | セッションピッカーを開き、名前を検索用語として事前入力します                  |
| `/resume <name>`         | 直接再開します | エラーを報告します。セッションピッカーを開くには、引数なしで `/resume` を実行します |

<h2 id="name-your-sessions">
  セッションに名前を付ける
</h2>

セッションに説明的な名前を付けて、セッションピッカーで見つけやすく、名前で再開できるようにします。これは複数のタスクを並行して処理している場合に最も重要です。

| 時期          | 名前を設定する方法                                                                                                                 |
| :---------- | :------------------------------------------------------------------------------------------------------------------------ |
| 起動時         | `claude -n auth-refactor`                                                                                                 |
| セッション中      | `/rename auth-refactor`。名前はプロンプトバーにも表示されます                                                                                |
| セッションピッカーから | セッションをハイライトして `Ctrl+R` を押します                                                                                              |
| プラン受け入れ時    | [Plan Mode](/ja/permission-modes#analyze-before-you-edit-with-plan-mode)でプランを受け入れると、既に設定していない限り、プランコンテンツからセッションに名前が付けられます |

セッションに名前が付けられたら、`claude --resume <name>` または `/resume <name>` で再開できます。worktree 全体での名前解決の動作については、[セッションを再開する](#resume-a-session)を参照してください。

<h2 id="use-the-session-picker">
  セッションピッカーを使用する
</h2>

セッション内で `/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` で作成されたフォークされたセッションはルートセッションの下にグループ化されます。グループを展開するには `→` を押します。

<h2 id="branch-a-session">
  セッションを分岐させる
</h2>

分岐は、これまでの会話のコピーを作成し、それに切り替え、元のセッションはそのままにしておきます。別のアプローチを試す際に、進めていたパスを失わないようにするために使用します。

セッション内から、オプションの名前を付けて `/branch` を実行します。

```text theme={null}
/branch try-streaming-approach
```

コマンドラインから、`--continue` または `--resume` を `--fork-session` と組み合わせます。

```bash theme={null}
claude --continue --fork-session
```

元のセッションは変更されず、セッションピッカーで利用可能なままです。`/branch` 確認は 2 つのセッション ID を出力します。現在いる新しいブランチと元のセッションです。元のセッションに戻るには、その ID を `/resume` に渡すか、セッションピッカーを使用するか、`/resume <original-name>` を実行します。「このセッションで許可」で承認したアクセス許可は新しいブランチに引き継がれません。2 つのターミナルで分岐せずに同じセッションを再開すると、両方からのメッセージが 1 つのトランスクリプトにインターリーブされます。

単一セッション内のチェックポイントベースの巻き戻しについては、[チェックポイント](/ja/checkpointing)を参照してください。

<h2 id="manage-context-within-a-session">
  セッション内でコンテキストを管理する
</h2>

これらのコマンドは、セッションを離れることなくコンテキストウィンドウ内の内容を制御します。

* **`/clear`**：空のコンテキストで新たに開始します。以前の会話は保存され、再開可能です
* **`/compact [instructions]`**：履歴を概要に置き換え、オプションで指定した内容に焦点を当てます
* **`/context`**：現在コンテキストを消費しているものを表示します

圧縮が CLAUDE.md、スキル、およびルールとどのように相互作用するかについては、[コンテキストウィンドウガイド](/ja/context-window)を参照してください。クリアと圧縮のどちらを使用するかについての戦略については、[ベストプラクティス](/ja/best-practices#manage-your-session)を参照してください。

<h2 id="export-and-locate-session-data">
  セッションデータをエクスポートして見つける
</h2>

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

<h3 id="access-conversations-from-scripts">
  スクリプトから会話にアクセスする
</h3>

`/export` は人が読むためのレンダリングされたトランスクリプトを生成します。以下のインターフェースはスクリプトが解析するための構造化データを生成します。実行からの JSON 結果、セッションのトランスクリプトファイルへのパス、またはイベントのライブストリームです。スクリプトをトリガーするものによって選択してください。

* **Claude を 1 回実行して結果をキャプチャする**: [`--output-format json` または `stream-json`](/ja/headless#get-structured-output) で `claude -p` を呼び出して、非インタラクティブ実行の結果、セッション ID、使用状況、およびコストを構造化 JSON としてキャプチャします。
* **既存のセッションに質問する**: [`claude -p --resume`](/ja/headless#continue-conversations) にセッション ID を渡して、フォローアップ プロンプト（要約リクエストなど）を送信し、構造化された応答をキャプチャします。
* **セッションイベントに反応する**: [hooks](/ja/hooks#common-input-fields) と [status line commands](/ja/statusline#available-data) が入力として受け取る `transcript_path` フィールドを読みます。`SessionEnd` hook はセッションが終了したときにトランスクリプトをアーカイブできます。
* **TypeScript または Python アプリに Claude を埋め込む**: [Agent SDK](/ja/agent-sdk/overview) を使用して、各メッセージをプログラムで受け取ります。

以下の例は 2 番目のインターフェースを使用しています。既存のセッションにフォローアップ プロンプトを送信し、`jq` で答えを読みます。

```bash theme={null}
claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'
```

<h3 id="where-transcripts-are-stored">
  トランスクリプトが保存される場所
</h3>

デフォルトでは、トランスクリプトは `~/.claude/projects/<project>/<session-id>.jsonl` に JSONL として保存されます。ここで `<project>` は作業ディレクトリパスで、英数字以外の文字が `-` に置き換えられています。各行はメッセージ、ツール使用、またはメタデータエントリの JSON オブジェクトです。エントリ形式は Claude Code の内部形式であり、バージョン間で変更されるため、これらのファイルを直接解析するスクリプトはリリースごとに破損する可能性があります。セッションデータを構築するには、代わりに `/export` または [スクリプトインターフェース](#access-conversations-from-scripts) を使用してください。

場所、保持期間、および書き込み動作は設定可能です。

| 目的                        | 設定                                                     | 場所                        |
| ------------------------- | ------------------------------------------------------ | ------------------------- |
| `~/.claude` からストレージを移動する  | [`CLAUDE_CONFIG_DIR`](/ja/env-vars)                    | 環境変数                      |
| 30 日間の保持期間を変更する           | [`cleanupPeriodDays`](/ja/settings#available-settings) | `settings.json`           |
| すべてのモードでトランスクリプト書き込みを抑制する | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ja/env-vars)      | 環境変数                      |
| 1 つの非インタラクティブ実行の書き込みを抑制する | [`--no-session-persistence`](/ja/cli-reference)        | `claude -p` を使用した CLI フラグ |

<h2 id="see-also">
  関連項目
</h2>

これらのページは関連するセッションと並列処理のメカニクスについて説明しています。

* [Worktrees](/ja/worktrees)：別のブランチで分離された並列セッションを実行します
* [Checkpointing](/ja/checkpointing)：コードと会話を以前のポイントに巻き戻します
* [Context window](/ja/context-window)：コンテキストを満たすもの、圧縮後に残るもの
* [Non-interactive mode](/ja/headless)：`claude -p` の下でのセッション動作
