SpyBara
Go Premium

Documentation 2026-10-01 23:59 UTC to 2026-10-02 03:59 UTC

62 files changed +5,567 −2,992. View all changes and history on the product overview
2026
Fri 2 04:57 Thu 1 23:59

accessibility.md +11 −5

Details

44| [`CLAUDE_AX_SCREEN_READER`](/docs/ja/env-vars#variables) | 環境変数 | それを設定したシェルから開始されたセッションのスクリーンリーダーモード。 |44| [`CLAUDE_AX_SCREEN_READER`](/docs/ja/env-vars#variables) | 環境変数 | それを設定したシェルから開始されたセッションのスクリーンリーダーモード。 |

45| [`axScreenReader`](/docs/ja/settings-reference#axscreenreader) | 設定 | `true` の場合、すべてのセッションのスクリーンリーダーモード。 |45| [`axScreenReader`](/docs/ja/settings-reference#axscreenreader) | 設定 | `true` の場合、すべてのセッションのスクリーンリーダーモード。 |

46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/ja/env-vars#variables) | 環境変数 | Claude Code が確認行の後、スクリーンリーダーモードで最初のプロンプトを描画する前に待機する時間。Claude Code v2.1.217 以降が必要です。 |46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/ja/env-vars#variables) | 環境変数 | Claude Code が確認行の後、スクリーンリーダーモードで最初のプロンプトを描画する前に待機する時間。Claude Code v2.1.217 以降が必要です。 |

47| [`CLAUDE_AX_PREPARK_MS`](/docs/ja/env-vars#variables) | 環境変数 | Claude Code が行の開始時にカーソルを置いて、スクリーンリーダーモードで新しい行または変更された行を書き込む前に待機する時間。Claude Code v2.1.233 以降が必要です。 |47| [`CLAUDE_AX_PREPARK_MS`](/docs/ja/env-vars#variables) | 環境変数 | 設定した場合、スクリーンリーダーモードで新しい行または変更された行を書き込む前に、Claude Code がターミナルカーソルを現在の行の先頭に保持するミリ秒数。Claude Code v2.1.233 以降が必要です。 |

48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/ja/env-vars#variables) | 環境変数 | `1` に設定した場合、macOS Zoom などのスクリーン拡大鏡に対して表示されたままのターミナルカーソル。カーソルは入力キャレットに従い、Claude Code v2.1.218 以降では、`/config` や `/plugin` などのメニューとパネルの強調表示された行に従います。 |48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/ja/env-vars#variables) | 環境変数 | `1` に設定した場合、macOS Zoom などのスクリーン拡大鏡に対して表示されたままのターミナルカーソル。カーソルは入力キャレットに従い、Claude Code v2.1.218 以降では、`/config` や `/plugin` などのメニューとパネルの強調表示された行に従います。 |

49| [`prefersReducedMotion`](/docs/ja/settings-reference#prefersreducedmotion) | 設定 | `true` の場合、スピナー、シマー、およびその他のアニメーションが削減または非表示になります。 |49| [`prefersReducedMotion`](/docs/ja/settings-reference#prefersreducedmotion) | 設定 | `true` の場合、スピナー、シマー、およびその他のアニメーションが削減または非表示になります。 |

50| [`theme`](/docs/ja/settings-reference#theme) | 設定 | 色覚異常対応の `dark-daltonized` および `light-daltonized` テーマを含むインターフェースカラー。[`/theme`](/docs/ja/commands#all-commands) で選択することもできます。 |50| [`theme`](/docs/ja/settings-reference#theme) | 設定 | 色覚異常対応の `dark-daltonized` および `light-daltonized` テーマを含むインターフェースカラー。[`/theme`](/docs/ja/commands#all-commands) で選択することもできます。 |


60* 色のみのキューなし60* 色のみのキューなし

61* 変更されていないコンテンツの再描画なし。プログレススピナーは静的テキストとしてレンダリングされます61* 変更されていないコンテンツの再描画なし。プログレススピナーは静的テキストとしてレンダリングされます

62* Claude の返信内のテーブルは、ボックス文字グリッドではなく `Header: value` 文として読み込まれます62* Claude の返信内のテーブルは、ボックス文字グリッドではなく `Header: value` 文として読み込まれます

63* 差分は、追加された行と削除された行を `+` と `-` で示したプレーンテキストとして 1 行ずつ読み上げられるため、ファイル編集の承認プロンプトで回答する前に、提案された変更を聞くことができます

63 64 

64Claude Code は、ターミナルのスクロールバックに印刷するすべてを残すため、スクリーンリーダーのレビューコマンドまたはターミナルの検索を使用して以前のターンを再度読むことができます。Claude Code は、スクリーンリーダーモードで [`tui` 設定](/docs/ja/settings-reference#tui) を無視します。[既知の制限事項](#known-limitations) に記載されている接続されたバックグラウンドセッションを除き、[フルスクリーンレンダリング](/docs/ja/fullscreen) の代わりにスクロールテキストを印刷します。65Claude Code は、ターミナルのスクロールバックに印刷するすべてを残すため、スクリーンリーダーのレビューコマンドまたはターミナルの検索を使用して以前のターンを再度読むことができます。Claude Code は、スクリーンリーダーモードで [`tui` 設定](/docs/ja/settings-reference#tui) を無視します。[既知の制限事項](#known-limitations) に記載されている接続されたバックグラウンドセッションを除き、[フルスクリーンレンダリング](/docs/ja/fullscreen) の代わりにスクロールテキストを印刷します。

65 66 

66Claude Code は、スクリーンリーダーが追いつくことができるように 2 つのポイントで待機します:67Claude Code は起動時に [確認行](#turn-on-screen-reader-mode) を印刷した後、スクリーンリーダーが行を読み終えられるように、プロンプトを描画する前に 3 秒待機します。任意のキーを押すと待機を終了します。待機の長さを変更するには、[`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/ja/env-vars#variables) を設定します。

67 

68* Claude Code が確認行を印刷した後、スクリーンリーダーが行を完了できるようにプロンプトを描画する前に 3 秒待機します。任意のキーを押して待機を終了します。待機の長さを変更するには、[`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/ja/env-vars#variables) を設定します。

69* Claude Code が新しい行または変更された行(ヒントや Claude の返信の詳細など)を書き込む前に、カーソルを行の開始位置に移動して 50 ミリ秒待機します。その後、スクリーンリーダーは最初の文字から行を読み込みます。入力行の末尾に入力または削除した文字は直ちに表示されます。待機の長さを変更するには、[`CLAUDE_AX_PREPARK_MS`](/docs/ja/env-vars#variables) を設定します。

70 68 

71トランスクリプト内の各メッセージは、スクリーンリーダーが発表するラベルで始まり、それが何であるかを名前付けします:あなたのメッセージ、Claude の返信と思考、ツールアクティビティ、エラーと警告、およびプロンプト。ラベルは検索可能でもあるため、ターミナルのスクロールバックを検索してトランスクリプトのセクション間をジャンプできます:69トランスクリプト内の各メッセージは、スクリーンリーダーが発表するラベルで始まり、それが何であるかを名前付けします:あなたのメッセージ、Claude の返信と思考、ツールアクティビティ、エラーと警告、およびプロンプト。ラベルは検索可能でもあるため、ターミナルのスクロールバックを検索してトランスクリプトのセクション間をジャンプできます:

72 70 


94 92 

95[権限モード](/docs/ja/permission-modes) を `Shift+Tab` でサイクルすると、Claude Code は `[plan mode on]` または `[accept edits on]` などのランディングした権限モードを発表します。Claude Code は発表を 1 回印刷し、後の再描画では繰り返しません。93[権限モード](/docs/ja/permission-modes) を `Shift+Tab` でサイクルすると、Claude Code は `[plan mode on]` または `[accept edits on]` などのランディングした権限モードを発表します。Claude Code は発表を 1 回印刷し、後の再描画では繰り返しません。

96 94 

95<h3 id="read-earlier-output-without-losing-your-place">

96 読んでいる位置を失わずに以前の出力を読む

97</h3>

98 

99以前の出力を読んでいる間にスクリーンリーダーがプロンプトに戻ってしまう場合、スクリーンリーダーはターミナルカーソルに追従しています。Claude Code は新しいテキストを書き込むたびに、ターミナルカーソルをプロンプトに戻します。

100 

101読んでいる位置を保つには、スクリーンリーダーがターミナルカーソルに追従しないようにします。NVDA では、`NVDA+6` を押すとレビューカーソルがターミナルカーソルに追従しなくなります。もう一度 `NVDA+6` を押すと、追従が再びオンになります。

102 

97<h3 id="jump-between-turns">103<h3 id="jump-between-turns">

98 ターン間をジャンプする104 ターン間をジャンプする

99</h3>105</h3>

admin-setup.md +22 −1

Details

123 123 

124これらの制御は、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または[AWS 上の Claude Platform](/docs/ja/claude-platform-on-aws)のセッションには到達しません。これらのプロバイダーでは、代わりにマネージド設定を使用してください。制限には `availableModels`、デフォルトには `model`、エフォートキャップには [`maxEffortLevel`](/docs/ja/settings-reference#maxeffortlevel) を使用します。124これらの制御は、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または[AWS 上の Claude Platform](/docs/ja/claude-platform-on-aws)のセッションには到達しません。これらのプロバイダーでは、代わりにマネージド設定を使用してください。制限には `availableModels`、デフォルトには `model`、エフォートキャップには [`maxEffortLevel`](/docs/ja/settings-reference#maxeffortlevel) を使用します。

125 125 

126[Web 上の Claude Code](/docs/ja/claude-code-on-the-web)には独自の管理サーフェスがあります。管理設定のクラウド環境ページで、オーナーは[組織共有環境](/docs/ja/cloud-environments#organization-shared-environments)を作成し、メンバーのクラウドセッションの[ネットワークアクセスレベル](/docs/ja/cloud-environments#network-access)、環境変数、セットアップスクリプトを設定します。オーナーは、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で組織のデフォルト環境を別途選択します。126[クラウドセッション](/docs/ja/claude-code-on-the-web)には、claude.ai 上に独自の管理サーフェスがあります。

127 

128* **クラウド環境ページ**:オーナーは[組織共有環境](/docs/ja/cloud-environments#organization-shared-environments)を作成し、メンバーのクラウドセッションの[ネットワークアクセスレベル](/docs/ja/cloud-environments#network-access)、環境変数、セットアップスクリプトを設定します。

129* **デフォルト環境**:オーナーは、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で組織のデフォルト環境を別途選択します。

130* **GitHub ページ**:組織にリンクされている GitHub アカウントについては、[接続された GitHub アカウント](#connected-github-accounts)を参照してください。

127 131 

128権限ルールとサンドボックスは異なるレイヤーをカバーします。WebFetch を拒否すると Claude のフェッチツールがブロックされますが、Bash が許可されている場合、`curl` と `wget` は依然として任意の URL に到達できます。サンドボックスは、OS レベルで強制されるネットワークドメイン許可リストでそのギャップを閉じます。132権限ルールとサンドボックスは異なるレイヤーをカバーします。WebFetch を拒否すると Claude のフェッチツールがブロックされますが、Bash が許可されている場合、`curl` と `wget` は依然として任意の URL に到達できます。サンドボックスは、OS レベルで強制されるネットワークドメイン許可リストでそのギャップを閉じます。

129 133 

130これらの制御が防御する脅威モデルについては、[セキュリティ](/docs/ja/security)を参照してください。134これらの制御が防御する脅威モデルについては、[セキュリティ](/docs/ja/security)を参照してください。

131 135 

136<h3 id="connected-github-accounts">

137 接続された GitHub アカウント

138</h3>

139 

140Team プランと Enterprise プランでは、[**Admin settings > GitHub**](https://claude.ai/admin-settings/github) に、[Claude GitHub App](https://github.com/apps/claude) を通じて Claude 組織にリンクされている GitHub 組織と個人アカウントが一覧表示されます。Claude Code、[Claude Tag](https://claude.com/docs/claude-tag/admins/configure-github)、Claude Security はこのリストを共有します。このページを開くには、Claude 組織での管理者ロールが必要です。

141 

142アカウントは管理者またはメンバーがリンクできます。

143 

144* **管理者による接続**:管理者がこのページで **Connect** をクリックし、GitHub 組織に Claude GitHub App をインストールします。この方法で組織をリンクするには、GitHub 組織のオーナーであり、かつ Claude 組織の管理者でもある人物が必要です。

145* **メンバーによる接続**:メンバーが GitHub アカウントを Claude に接続すると(たとえば[クラウドセッションのセットアップ](/docs/ja/web-quickstart#connect-github)中など)、Claude は、そのメンバーが所有し、Claude GitHub App が既にインストールされている GitHub アカウントをリンクします。これには、メンバーの個人アカウントや、メンバーが所有する GitHub 組織が含まれる場合があります。

146 

147**Not linked** とマークされた行は、ユーザー自身の GitHub サインインに由来するものです。これは、Claude GitHub App がインストールされている、ユーザーが GitHub 上で参照できるアカウントです。

148 

149Claude 組織からアカウントのリンクを解除するには、その行のメニューを開き、**Unlink from this workspace** を選択します。リンクを解除しても Claude GitHub App は GitHub 上にインストールされたままとなり、そのアカウントのオーナーの誰かが次に GitHub を Claude に接続したときに、アカウントは再びリンクされます。再びリンクされないようにするには、GitHub 上でそのアカウントから Claude GitHub App をアンインストールしてください。

150 

151Enterprise プランでは、リンクおよびリンク解除に対応する [Compliance API](https://platform.claude.com/docs/en/api/compliance/activities/list) のアクティビティタイプは `github_app_installation_linked` と `github_app_installation_unlinked` です。

152 

132<h2 id="set-up-usage-visibility">153<h2 id="set-up-usage-visibility">

133 使用状況の可視性をセットアップする154 使用状況の可視性をセットアップする

134</h2>155</h2>

Details

325 325 

326長時間実行されるエージェントのいくつかの戦略。326長時間実行されるエージェントのいくつかの戦略。

327 327 

328* **サブタスク用にサブエージェントを使用します。** 各サブエージェントは新しい会話で開始されます(以前のメッセージ履歴はありませんが、独自のシステムプロンプトとプロジェクトレベルのコンテキスト(CLAUDE.md など)をロードします)。親のターンは表示されず、最終応答のみが親にツール結果として返されます。メインエージェントのコンテキストは完全なサブタスクトランスクリプトではなく、その要約で増加します。詳細については、[サブエージェントが継承するもの](/docs/ja/agent-sdk/subagents#what-subagents-inherit)を参照してください。328* **サブタスク用にサブエージェントを使用します。** 各サブエージェントは新しい会話で開始されます(以前のメッセージ履歴はありませんが、独自のシステムプロンプトとプロジェクトレベルのコンテキスト(CLAUDE.md など)をロードします)。親のターンは表示されず、最終応答のみが親に返されます。メインエージェントのコンテキストは完全なサブタスクトランスクリプトではなく、その要約で増加します。詳細については、[サブエージェントが継承するもの](/docs/ja/agent-sdk/subagents#what-subagents-inherit)を参照してください。

329* **ツールを選別します。** すべてのツール定義はコンテキストスペースを取ります。[`AgentDefinition`](/docs/ja/agent-sdk/subagents#agentdefinition-configuration)の `tools` フィールドを使用してサブエージェントを必要な最小セットにスコープします。329* **ツールを選別します。** すべてのツール定義はコンテキストスペースを取ります。[`AgentDefinition`](/docs/ja/agent-sdk/subagents#agentdefinition-configuration)の `tools` フィールドを使用してサブエージェントを必要な最小セットにスコープします。

330* **MCP サーバーコストを監視します。** [MCP ツール検索](/docs/ja/agent-sdk/mcp#mcp-tool-search)はデフォルトで MCP ツールスキーマを遅延させ、オンデマンドでロードします。ツール検索がオフの場合またはサポートされていないモデルと特定のプラットフォームでアップフロントロードにフォールバックした場合、各 MCP サーバーはすべてのツールスキーマをすべてのリクエストに追加するため、多くのツールを持つ少数のサーバーは、エージェントが何か作業を行う前に大量のコンテキストを消費できます。完全な構成については、[ツール検索を構成](/docs/ja/agent-sdk/tool-search#configure-tool-search)を参照してください。330* **MCP サーバーコストを監視します。** [MCP ツール検索](/docs/ja/agent-sdk/mcp#mcp-tool-search)はデフォルトで MCP ツールスキーマを遅延させ、オンデマンドでロードします。ツール検索がオフの場合またはサポートされていないモデルと特定のプラットフォームでアップフロントロードにフォールバックした場合、各 MCP サーバーはすべてのツールスキーマをすべてのリクエストに追加するため、多くのツールを持つ少数のサーバーは、エージェントが何か作業を行う前に大量のコンテキストを消費できます。完全な構成については、[ツール検索を構成](/docs/ja/agent-sdk/tool-search#configure-tool-search)を参照してください。

331* **ルーチンタスクに低い努力を使用します。** ファイルを読み取るか、ディレクトリをリストするだけで済むエージェント用に[努力](#effort-level)を `"low"` に設定します。これはトークン使用量とコストを削減します。331* **ルーチンタスクに低い努力を使用します。** ファイルを読み取るか、ディレクトリをリストするだけで済むエージェント用に[努力](#effort-level)を `"low"` に設定します。これはトークン使用量とコストを削減します。

Details

261 261 

262* **トップレベルフィールド**はすべてのイベントで受け入れられます。`systemMessage` はユーザーにメッセージを表示し、`continue`(Python では `continue_`)はこのフック後にエージェントが実行を続けるかどうかを決定します。一部のイベントはこれらを破棄するか、別の場所に配信します。各[イベントのセクション](/docs/ja/hooks#hook-events)はフックページでそれらがどこに着地するかを説明しています。262* **トップレベルフィールド**はすべてのイベントで受け入れられます。`systemMessage` はユーザーにメッセージを表示し、`continue`(Python では `continue_`)はこのフック後にエージェントが実行を続けるかどうかを決定します。一部のイベントはこれらを破棄するか、別の場所に配信します。各[イベントのセクション](/docs/ja/hooks#hook-events)はフックページでそれらがどこに着地するかを説明しています。

263* **`hookSpecificOutput`** は現在の操作を制御します。内部に設定するフィールドはフックイベントタイプに依存します。263* **`hookSpecificOutput`** は現在の操作を制御します。内部に設定するフィールドはフックイベントタイプに依存します。

264 * `PreToolUse` フックの場合、ここで `permissionDecision`(`"allow"`、`"deny"`、`"ask"`、または `"defer"`)、`permissionDecisionReason`、および `updatedInput` を設定します。`"defer"` を返すとクエリが終了し、[後で再開](/docs/ja/hooks#defer-a-tool-call-for-later)できます。264 * `PreToolUse` フックの場合、ここで `permissionDecision`(`"allow"`、`"deny"`、`"ask"`、または `"defer"`)、`permissionDecisionReason`、および `updatedInput` を設定します。`"defer"` を返すと、`stop_reason` が `"tool_deferred"` である結果メッセージでターンが終了するため、[後で呼び出しを再開](/docs/ja/hooks#defer-a-tool-call-for-later)できます。

265 * `PostToolUse` フックの場合、`additionalContext` を設定してツール結果に情報を追加できます。Claude がそれを見る前にツールの出力を置き換えるには、`updatedToolOutput` を設定します。これは両方の SDK のすべてのツールで機能します。古い `updatedMCPToolOutput` フィールドは MCP ツール出力のみを置き換え、非推奨です。265 * `PostToolUse` フックの場合、`additionalContext` を設定してツール結果に情報を追加できます。Claude がそれを見る前にツールの出力を置き換えるには、`updatedToolOutput` を設定します。これは両方の SDK のすべてのツールで機能します。古い `updatedMCPToolOutput` フィールドは MCP ツール出力のみを置き換え、非推奨です。

266 * TypeScript SDK では、`PostToolUse` コールバックは `classifierContext` を返すこともできます。これはツール呼び出しの結果に関する短いメモで、[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)権限分類器用です。コールバックはアプリケーション独自のプロセスで実行されるため、分類器はメモで中継するユーザーステートメントをユーザーの意図として重視する可能性があります。このフィールドは TypeScript Agent SDK v0.3.236 以降が必要です。[自動モード分類器の結果に注釈を付ける](/docs/ja/hooks#annotate-a-result-for-the-auto-mode-classifier)は長さの上限、同期のみのルール、およびメモに何を入れないかをカバーしています。266 * TypeScript SDK では、`PostToolUse` コールバックは `classifierContext` を返すこともできます。これはツール呼び出しの結果に関する短いメモで、[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)の権限分類器用です。コールバックはアプリケーション独自のプロセスで実行されるため、分類器はメモで中継するユーザーステートメントをユーザーの意図として重視する可能性があります。このフィールドは TypeScript Agent SDK v0.3.236 以降が必要です。[auto モード分類器の結果に注釈を付ける](/docs/ja/hooks#annotate-a-result-for-the-auto-mode-classifier)は長さの上限、同期のみのルール、およびメモに何を入れないかをカバーしています。

267 267 

268変更なしで操作を許可するには `{}` を返します。SDK コールバックフックは、[Claude Code シェルコマンドフック](/docs/ja/hooks#json-output)と同じ JSON 出力形式を使用します。これはすべてのフィールドとイベント固有のオプションを文書化しています。SDK 型定義については、[TypeScript](/docs/ja/agent-sdk/typescript#synchookjsonoutput) および [Python](/docs/ja/agent-sdk/python#synchookjsonoutput) SDK リファレンスを参照してください。268変更なしで操作を許可するには `{}` を返します。SDK コールバックフックは、[Claude Code シェルコマンドフック](/docs/ja/hooks#json-output)と同じ JSON 出力形式を使用します。これはすべてのフィールドとイベント固有のオプションを文書化しています。SDK 型定義については、[TypeScript](/docs/ja/agent-sdk/typescript#synchookjsonoutput) および [Python](/docs/ja/agent-sdk/python#synchookjsonoutput) SDK リファレンスを参照してください。

269 269 

Details

1488`ClaudeAgentOptions`の`betas`フィールドで使用して、ベータ機能を有効にします。1488`ClaudeAgentOptions`の`betas`フィールドで使用して、ベータ機能を有効にします。

1489 1489 

1490<Warning>1490<Warning>

1491 `context-1m-2025-08-07`ベータは2026年4月30日の時点で廃止されました。このヘッダーをClaude Sonnet 4.5またはSonnet 4で渡すと効果がなく、標準200kトークンコンテキストウィンドウを超えるリクエストはエラーを返します。1Mトークンコンテキストウィンドウを使用するには、[Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7、またはClaude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview)に移行してください。これらには、ベータヘッダーなしで標準価格で1Mコンテキストが含まれます。1491 Claude API では、`context-1m-2025-08-07` ベータは Claude Sonnet 4.5 と Claude Sonnet 4 で廃止されています。いずれかのモデルでこれをまだ渡している場合、標準の 200K トークンのコンテキストウィンドウを超えるリクエストはエラーを返すため、`betas` から削除してください。1M トークンのコンテキストウィンドウでセッションを実行するには、`claude-sonnet-5-5` や `claude-opus-5-5` など、[デフォルトで 1M ウィンドウで動作する](/docs/ja/model-config#extended-context)モデルを `model` に設定します。`[1m]` バリアントを通じてのみ 1M に到達するモデルの場合は、`claude-opus-4-6[1m]` のように、モデル ID にサフィックスを追加します。

1492</Warning>1492</Warning>

1493 1493 

1494<h3 id="mcpsdkserverconfig">1494<h3 id="mcpsdkserverconfig">

Details

92 Sandbox runtime92 Sandbox runtime

93</h3>93</h3>

94 94 

95コンテナなしで軽量な分離を行うには、[sandbox-runtime](https://github.com/anthropic-experimental/sandbox-runtime) が OS レベルでファイルシステムとネットワークの制限を強制します。95コンテナなしで軽量な分離を行うには、[sandbox-runtime](https://github.com/anthropics/sandbox-runtime) が OS レベルでファイルシステムとネットワークの制限を強制します。

96 96 

97主な利点はシンプルさです。Docker 設定、コンテナイメージ、またはネットワーク設定は必要ありません。プロキシとファイルシステムの制限は組み込まれています。97主な利点はシンプルさです。Docker 設定、コンテナイメージ、またはネットワーク設定は必要ありません。プロキシとファイルシステムの制限は組み込まれています。

98 98 


164 164 

165`--network none` を使用すると、コンテナはネットワークインターフェースを持ちません。エージェントが外部世界に到達する唯一の方法は、マウントされた Unix ソケット経由です。これはホストで実行されているプロキシに接続します。このプロキシはドメイン許可リストを強制し、認証情報を注入し、すべてのトラフィックをログに記録できます。165`--network none` を使用すると、コンテナはネットワークインターフェースを持ちません。エージェントが外部世界に到達する唯一の方法は、マウントされた Unix ソケット経由です。これはホストで実行されているプロキシに接続します。このプロキシはドメイン許可リストを強制し、認証情報を注入し、すべてのトラフィックをログに記録できます。

166 166 

167これは [sandbox-runtime](https://github.com/anthropic-experimental/sandbox-runtime) で使用されるのと同じアーキテクチャです。エージェントがプロンプトインジェクション経由で侵害された場合でも、任意のサーバーにデータを流出させることはできません。プロキシ経由でのみ通信でき、プロキシは到達可能なドメインを制御します。詳細については、[Claude Code サンドボックスブログ投稿](https://www.anthropic.com/engineering/claude-code-sandboxing)を参照してください。167これは [sandbox-runtime](https://github.com/anthropics/sandbox-runtime) で使用されるのと同じアーキテクチャです。エージェントがプロンプトインジェクション経由で侵害された場合でも、任意のサーバーにデータを流出させることはできません。プロキシ経由でのみ通信でき、プロキシは到達可能なドメインを制御します。詳細については、[Claude Code サンドボックスブログ投稿](https://www.anthropic.com/engineering/claude-code-sandboxing)を参照してください。

168 168 

169**追加の強化オプション:**169**追加の強化オプション:**

170 170 


385* [Claude Code セキュリティドキュメント](/docs/ja/security)385* [Claude Code セキュリティドキュメント](/docs/ja/security)

386* [Agent SDK のホスティング](/docs/ja/agent-sdk/hosting)386* [Agent SDK のホスティング](/docs/ja/agent-sdk/hosting)

387* [権限の処理](/docs/ja/agent-sdk/permissions)387* [権限の処理](/docs/ja/agent-sdk/permissions)

388* [Sandbox runtime](https://github.com/anthropic-experimental/sandbox-runtime)388* [Sandbox runtime](https://github.com/anthropics/sandbox-runtime)

389* [AI エージェントの致命的な三つ組](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/)389* [AI エージェントの致命的な三つ組](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/)

390* [OWASP Top 10 for LLM Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/)390* [OWASP Top 10 for LLM Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/)

391* [Docker セキュリティベストプラクティス](https://docs.docker.com/engine/security/)391* [Docker セキュリティベストプラクティス](https://docs.docker.com/engine/security/)

Details

378</h2>378</h2>

379 379 

380<Note>380<Note>

381 プロジェクトおよび個人用 Skills の場合、Claude Code は SDK セッションで [`allowed-tools`](/docs/ja/skills#pre-approve-tools-for-a-skill) フロントマターフィールドを適用します。クエリ設定の `allowedTools` オプション(Python では `allowed_tools`)を通じて、これらの Skills のツールを事前承認することもできます。[claude.ai から同期された](/docs/ja/skills#how-claude-code-handles-the-frontmatter-of-a-synced-skill) Skills は、独自のフロントマタールールに従います。381 SDK セッションでは、プロジェクトまたは個人用のスキルのツールを、スキルの [`allowed-tools`](/docs/ja/skills#pre-approve-tools-for-a-skill) フロントマター、またはクエリ設定の `allowedTools` オプション(Python では `allowed_tools`)で事前承認できます。組織が管理設定で [`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) を設定している場合、Claude Code はその両方を無視します。[claude.ai から同期された](/docs/ja/skills#how-claude-code-handles-the-frontmatter-of-a-synced-skill) Skills は、独自のフロントマタールールに従います。

382</Note>382</Note>

383 383 

384Skills はセッションのツールで実行されます。以下の例は、`allowedTools`(Python では `allowed_tools`)で `Read`、`Grep`、および `Glob` を事前承認するため、Claude は[security-check Skill](#create-and-dispatch-your-first-skill)を実行しながらファイルを検査でき、承認を停止する必要がありません:384Skills はセッションのツールで実行されます。以下の例は、`allowedTools`(Python では `allowed_tools`)で `Read`、`Grep`、および `Glob` を事前承認するため、Claude は[security-check Skill](#create-and-dispatch-your-first-skill)を実行しながらファイルを検査でき、承認を停止する必要がありません:

Details

166 166 

167例を実行すると、TypeScript バージョンは各レスポンスが完了するたびに出力します。Python バージョンの `receive_response()` ループは最初の結果メッセージで終了するため、セキュリティ分析を出力します。両方のレスポンスを読むには、[Python リファレンスの会話を続ける例](/docs/ja/agent-sdk/python#example-continuing-a-conversation)に示されているように、メッセージごとに 1 つの `query()` と `receive_response()` ペアを使用してください。167例を実行すると、TypeScript バージョンは各レスポンスが完了するたびに出力します。Python バージョンの `receive_response()` ループは最初の結果メッセージで終了するため、セキュリティ分析を出力します。両方のレスポンスを読むには、[Python リファレンスの会話を続ける例](/docs/ja/agent-sdk/python#example-continuing-a-conversation)に示されているように、メッセージごとに 1 つの `query()` と `receive_response()` ペアを使用してください。

168 168 

169画像ブロックの `source` が欠落している場合、またはオブジェクトでない場合、SDK はエラーを報告しません。Claude Code は画像の代わりに `[Image could not be processed: image block has no source object]` のようなテキストメモを Claude に送信し、セッションはそのまま継続します。

170 

169<Note>171<Note>

170 TypeScript SDK では、例えば読み込むファイルが見つからない場合など、メッセージジェネレータが例外をスローすると、ストリームは元のエラーではなく「Claude Code process aborted by user」というエラーで終了するため、そのメッセージが表示された場合は、まずジェネレータ内のコードを確認してください。エラーの前に、バンドルされた SDK ソースの長い縮小化された行が表示される場合もあるため、出力の最後まで読んでエラーテキストを確認してください。172 TypeScript SDK では、例えば読み込むファイルが見つからない場合など、メッセージジェネレータが例外をスローすると、ストリームは元のエラーではなく「Claude Code process aborted by user」というエラーで終了するため、そのメッセージが表示された場合は、まずジェネレータ内のコードを確認してください。エラーの前に、バンドルされた SDK ソースの長い縮小化された行が表示される場合もあるため、出力の最後まで読んでエラーテキストを確認してください。

171 173 

Details

204| ツール定義(親から継承、または `tools` のサブセット、[バックグラウンド実行用にフィルタリング](/docs/ja/sub-agents#available-tools)) | 親のシステムプロンプト |204| ツール定義(親から継承、または `tools` のサブセット、[バックグラウンド実行用にフィルタリング](/docs/ja/sub-agents#available-tools)) | 親のシステムプロンプト |

205 205 

206<Note>206<Note>

207 親はサブエージェントの最終メッセージを Agent ツール結果として受け取りますが、独自の応答でそれを要約する場合があります。サブエージェント出力をユーザー向けの応答に逐語的に保持するには、メインの `query()` 呼び出しに渡すプロンプトまたは `systemPrompt` オプションに実行するよう指示を含めてください。207 親はサブエージェントの最終レポートを受け取りますが、独自の応答でそれを要約する場合があります。サブエージェント出力をユーザー向けの応答に逐語的に保持するには、メインの `query()` 呼び出しに渡すプロンプトまたは `systemPrompt` オプションに実行するよう指示を含めてください。

208 208 

209 v2.1.210 以降では、Claude Code は親がそれを読む前に[最終メッセージを指示形パターンについてスキャン](/docs/ja/sub-agents#subagent-output-scanning)します。スキャンは 3 種類のパターンを異なる方法で処理します。209 v2.1.210 以降では、Claude Code は親がそれを読む前に[最終メッセージを指示形パターンについてスキャン](/docs/ja/sub-agents#subagent-output-scanning)します。スキャンは 3 種類のパターンを異なる方法で処理します。

210 210 

Details

1551 1551 

1552`SDKAssistantMessageError` は以下のいずれかです:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'`、または `'unknown'`。これらの値のうち 4 つは名前以上の意味を持ちます:1552`SDKAssistantMessageError` は以下のいずれかです:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'`、または `'unknown'`。これらの値のうち 4 つは名前以上の意味を持ちます:

1553 1553 

1554* `'model_not_found'`:選択されたモデルが存在しないか、アカウントまたはデプロイメントで利用できない1554* `'model_not_found'`:選択されたモデルが存在しないか、アカウントまたはデプロイで利用できない

1555* `'overloaded'`:API がサーバーが容量に達しているため 529 を返した。これは `'rate_limit'` とは異なり、`'rate_limit'` はクォータに対する 429 です1555* `'overloaded'`:サーバーが容量に達しているため API が 529 を返した。これは `'rate_limit'` とは異なり、`'rate_limit'` はクォータに対する 429 です

1556* `'account_on_hold'`:[アカウントが保留中です](/docs/ja/errors#your-account-is-on-hold)1556* `'account_on_hold'`:[アカウントが保留中です](/docs/ja/errors#your-account-is-on-hold)

1557* `'cloud_credential_error'`:Claude Code が実行されているマシンで使用可能な AWS または Google Cloud 認証情報を取得できなかったため、クラウドプロバイダーにリクエストが到達しませんでした。通常の原因は、そのマシンで期限切れまたは完了していないクラウドサインインですが、一時的に到達不可能な認証情報サービスも同じ値を報告します。[AWS または Google Cloud 認証情報を読み込めませんでした](/docs/ja/errors#could-not-load-aws-or-google-cloud-credentials) を参照してください。TypeScript Agent SDK v0.3.267 以降が必要です。これは Claude Code v2.1.267 をバンドルしています1557* `'cloud_credential_error'`:Claude Code が実行されているマシンで使用可能な AWS または Google Cloud 認証情報を取得できなかったため、クラウドプロバイダーにリクエストが到達しませんでした。通常の原因は、そのマシンで期限切れまたは完了していないクラウドサインインですが、一時的に到達不可能な認証情報サービスも同じ値を報告します。[AWS または Google Cloud 認証情報を読み込めませんでした](/docs/ja/errors#could-not-load-aws-or-google-cloud-credentials) を参照してください。TypeScript Agent SDK v0.3.267 以降が必要です。これは Claude Code v2.1.267 をバンドルしています

1558 1558 


1560 1560 

1561Claude Code は [`user_message_uuid`](#user_message_uuid) の条件下で、ターンの最初のアシスタントメッセージに `user_message_uuid` と `user_message_uuids` を設定します。Claude Code が再起動によって中断されたターンを再実行する場合、これらのフィールドを持つ再実行のアシスタントメッセージは [`resume_reason`](#resume_reason) も持ちます。1561Claude Code は [`user_message_uuid`](#user_message_uuid) の条件下で、ターンの最初のアシスタントメッセージに `user_message_uuid` と `user_message_uuids` を設定します。Claude Code が再起動によって中断されたターンを再実行する場合、これらのフィールドを持つ再実行のアシスタントメッセージは [`resume_reason`](#resume_reason) も持ちます。

1562 1562 

1563`timestamp` は、メッセージのコンテンツがそれを生成したプロセスで生成を完了した ISO 8601 時刻です。値はそのマシンのクロックから来ているため、表示用にのみ使用し、メッセージを順序付けないでください。1 つの API ターンは、同じ `message.id` を共有する複数のアシスタントメッセージを生成でき、それぞれが独自の `timestamp` を持ちます。フィールドが存在しない場合は、メッセージを受け取った時刻にフォールバックしてください。1563`timestamp` は、メッセージのコンテンツがそれを生成したプロセスで生成を完了した ISO 8601 時刻です。値はそのマシンのクロックから来ているため、表示用にのみ使用し、メッセージの順序付けには使用しないでください。1 つの API ターンは、同じ `message.id` を共有する複数のアシスタントメッセージを生成でき、それぞれが独自の `timestamp` を持ちます。フィールドが存在しない場合は、メッセージを受け取った時刻にフォールバックしてください。

1564 1564 

1565`context_usage` は `/context` レポートの構造化コピーで、[`SDKContextUsage`](#sdkcontextusage) として型付けされており、Agent SDK v0.3.232 以降が必要です。プロンプトとして `/context` を送信すると、Claude Code はレポートをアシスタントメッセージとして配信し、その `message.content` がマークダウンテーブルを保持し、`context_usage` を同じメッセージに添付します。Claude Code はこのフィールドを他のアシスタントメッセージに設定せず、以前のバージョンは `/context` テーブルなしで配信するため、フィールドが存在する場合は分析を読み取り、存在しない場合はマークダウンテキストにフォールバックしてください。1565`context_usage` は `/context` レポートの構造化コピーで、[`SDKContextUsage`](#sdkcontextusage) として型付けされており、Agent SDK v0.3.232 以降が必要です。プロンプトとして `/context` を送信すると、Claude Code はレポートをアシスタントメッセージとして配信し、その `message.content` がマークダウンテーブルを保持し、`context_usage` を同じメッセージに添付します。Claude Code はこのフィールドを他のアシスタントメッセージに設定せず、以前のバージョンはこのフィールドなしで `/context` テーブルを配信するため、フィールドが存在する場合は内訳をフィールドから読み取り、存在しない場合はマークダウンテキストにフォールバックしてください。

1566 1566 

1567<h3 id="sdkusermessage">1567<h3 id="sdkusermessage">

1568 `SDKUserMessage`1568 `SDKUserMessage`


1587};1587};

1588```1588```

1589 1589 

1590ユーザーがプロンプト UI に貼り付けたコンテンツを送信するには `pasted_content` を設定します。入力ではなく貼り付けたコンテンツを、貼り付けごとに 1 つのエントリで、各エントリは文字列またはコンテンツブロックの配列です。Claude Code は各エントリのテキストを入力されたテキストの後に順番に追加し、各貼り付けを `<pasted_content>` タグでラップする場合があります。テキスト以外のブロックは無視されるため、画像とドキュメントは `message.content` で送信してください。Agent SDK v0.3.277 以降が必要です。1590ユーザーがプロンプト UI に入力ではなく貼り付けたコンテンツを送信するには `pasted_content` を設定します。貼り付けごとに 1 つのエントリで、各エントリは文字列またはコンテンツブロックの配列です。Claude Code は各エントリのテキストを入力されたテキストの後に順番に追加し、各貼り付けを `<pasted_content>` タグでラップする場合があります。テキスト以外のブロックは無視されるため、画像とドキュメントは `message.content` で送信してください。Agent SDK v0.3.277 以降が必要です。

1591 1591 

1592Claude Code がメッセージを処理する方法を変更するには、`shouldQuery` または `client_composed` を設定します:1592Claude Code が送信したメッセージを処理する方法を変更するには、`shouldQuery` または `client_composed` を設定します:

1593 1593 

1594* `shouldQuery`:アシスタントターンをトリガーせずにメッセージをトランスクリプトに追加するには `false` に設定します。メッセージは保持され、ターンをトリガーする次のユーザーメッセージにマージされます。ターンをトリガーせずにコンテキスト(実行したコマンドの出力など)を挿入するために使用します。1594* `shouldQuery`:アシスタントターンをトリガーせずにメッセージをトランスクリプトに追加するには `false` に設定します。メッセージは保持され、ターンをトリガーする次のユーザーメッセージにマージされます。モデル呼び出しを消費せずにコンテキスト(帯域外で実行したコマンドの出力など)を挿入するために使用します。

1595* `client_composed`:Claude Code がメッセージテキストを書かれたとおりに配信するには `true` に設定します。Claude Code は `@path` または [`@server:resource`](/docs/ja/mcp#use-mcp-resources) メンションを展開せず、`/` で始まるテキストをコマンドとして実行しません。[`verbatimPrompts`](#options) オプションがオンの場合、SDK はすべてのメッセージでフィールドを設定します。TypeScript Agent SDK v0.3.280 以降と Claude Code v2.1.248 以降が必要です。1595* `client_composed`:Claude Code がメッセージテキストを書かれたとおりに配信するには `true` に設定します。Claude Code は `@path` または [`@server:resource`](/docs/ja/mcp#use-mcp-resources) メンションを展開せず、`/` で始まるテキストをコマンドとして実行しません。[`verbatimPrompts`](#options) オプションがオンの場合、SDK はすべてのメッセージでフィールドを設定します。TypeScript Agent SDK v0.3.280 以降と Claude Code v2.1.248 以降が必要です。

1596 1596 

1597`tool_result` ブロックを持つメッセージでは、`tool_use_result` はモデルに送信されたテキストではなく、ツールの構造化出力オブジェクトです。その形状は一致する `tool_use` ブロックで指定されたツールに依存するため、フィールドは `unknown` として型付けされます。組み込み形状は [ツール出力タイプ](#tool-output-types) の下にリストされています。1597`tool_result` ブロックを持つメッセージでは、`tool_use_result` はモデルに送信されたテキストではなく、ツールの構造化出力オブジェクトです。その形状は一致する `tool_use` ブロックで指定されたツールに依存するため、フィールドは `unknown` として型付けされます。組み込み形状は [ツール出力タイプ](#tool-output-types) の下にリストされています。

1598 1598 

1599`Agent` ツールの場合、`tool_use_result` は [`AgentOutput`](#agent-2) です。`completed` 結果では、`content` はサブエージェントのレポートを保持し、Claude Code が `tool_result` テキストに追加するエージェント ID と使用状況トレーラーは含みません。そのため、そのテキストを解析する代わりに `tool_use_result` からレンダリングしてください。1599`Agent` ツールの場合、`tool_use_result` は [`AgentOutput`](#agent-2) です。`tool_result` テキストを解析する代わりに、これからレンダリングしてください。`completed` 結果の `content` はサブエージェントのレポートを保持します。ただし、レポートを `SubagentHandback` ツール呼び出しで渡すサブエージェントの場合は、レポートの代わりにその引き渡しに関する短いメモを保持します。Claude Code v2.1.271 以降の [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) では、`completed` 結果を生成するすべてのサブエージェントは、[フォーク](/docs/ja/sub-agents#fork-the-current-conversation) でない限りこの方法でレポートし、Claude はそのレポートをサブエージェントからの別のメッセージとして受け取ります。

1600 1600 

1601結果に `resource_link` ブロックを含む MCP ツールの場合、`tool_use_result` は [`SDKMcpResourceLink`](#sdkmcpresourcelink) エントリの `resourceLinks` 配列を持つオブジェクトです。Claude は各リンクを `tool_result` ブロック内のテキスト行として受け取るため、そのテキストを解析する代わりに `resourceLinks` を読み取り、サーバーが返したファイルをレンダリングしてください。Claude Code は結果にリンクがない場合と、サブエージェントからの結果で `resourceLinks` を省略し、結果ごとに最大 50 リンクを保持し、配列が 64 KiB のシリアル化 JSON に達するとリンクの追加を停止します。`resourceLinks` には Agent SDK v0.3.257 以降が必要です。1601結果に `resource_link` ブロックを含む MCP ツールの場合、`tool_use_result` は [`SDKMcpResourceLink`](#sdkmcpresourcelink) エントリの `resourceLinks` 配列を持つオブジェクトです。Claude は各リンクを `tool_result` ブロック内のテキスト行として受け取るため、そのテキストを解析する代わりに `resourceLinks` を読み取り、サーバーが返したファイルをレンダリングしてください。Claude Code は結果にリンクがない場合と、サブエージェントからの結果で `resourceLinks` を省略し、結果ごとに最大 50 リンクを保持し、配列が 64 KiB のシリアル化 JSON に達するとリンクの追加を停止します。`resourceLinks` には Agent SDK v0.3.257 以降が必要です。

1602 1602 

1603ユーザーが `message.content` のどの部分を入力ではなく貼り付けたかを Claude Code に伝えるには `inline_pastes` を設定します。貼り付けごとに 1 つの文字列です。プロンプトテキストはユーザーが配置した場所に留まります。Claude Code は各リストされた貼り付けを `<pasted_content>` タグでラップする場合があります。プロンプトの最後のテキストブロック内の貼り付けのみがラップされます。TypeScript Agent SDK v0.3.280 以降が必要です。1603ユーザーが `message.content` のどの部分を入力ではなく貼り付けたかを Claude Code に伝えるには `inline_pastes` を設定します。貼り付けごとに 1 つの文字列です。プロンプトテキストはユーザーが配置した場所に留まります。Claude Code はリストされた各貼り付けをその位置で `<pasted_content>` タグでラップする場合があり、これにより Claude は貼り付けられた内容とユーザー自身の言葉を区別できます。プロンプトの最後のテキストブロック内の貼り付けのみがラップされます。TypeScript Agent SDK v0.3.280 以降が必要です。

1604 1604 

1605<h3 id="sdkusermessagereplay">1605<h3 id="sdkusermessagereplay">

1606 `SDKUserMessageReplay`1606 `SDKUserMessageReplay`


1704結果の複数のフィールドは `subtype` を超えた診断詳細を持ちます:1704結果の複数のフィールドは `subtype` を超えた診断詳細を持ちます:

1705 1705 

1706* `api_error_status`:会話を終了した API エラーの HTTP ステータスコード。API エラーなしでターンが終了した場合は存在しないか `null`1706* `api_error_status`:会話を終了した API エラーの HTTP ステータスコード。API エラーなしでターンが終了した場合は存在しないか `null`

1707* `ttft_ms`:最初の完全なアシスタントメッセージが到着したときに測定されたミリ秒単位の最初のトークンまでの時間。成功アームのみに存在1707* `ttft_ms`:最初の完全なアシスタントメッセージが到着したときに測定された、最初のトークンまでのミリ秒単位の時間。成功アームのみに存在

1708* `ttft_stream_ms`:最初の `message_start` ストリームイベントまでのミリ秒単位の時間。応答ストリームが開く時点です。`ttft_ms` より低い。2 つの間のギャップは最初のメッセージをストリーミングするのに費やされた時間です。成功アームのみに存在1708* `ttft_stream_ms`:応答ストリームが開く時点である、最初の `message_start` ストリームイベントまでのミリ秒単位の時間。`ttft_ms` より小さく、2 つの差は最初のメッセージのストリーミングに費やされた時間です。成功アームのみに存在

1709* `user_message_uuid`:このターンが答えた送信したメッセージの `uuid`。どの結果がそれを持つかについては [`user_message_uuid`](#user_message_uuid) を参照してください1709* `user_message_uuid`:このターンが応答した、送信したメッセージの `uuid`。どの結果がこれを持つかについては [`user_message_uuid`](#user_message_uuid) を参照してください

1710* `user_message_uuids`:Claude Code がこのターンで答えたすべての送信したメッセージの `uuid`。[`user_message_uuids`](#user_message_uuids) を参照してください1710* `user_message_uuids`:Claude Code がこのターンで応答した、送信したすべてのメッセージの `uuid`。[`user_message_uuids`](#user_message_uuids) を参照してください

1711* `resume_reason`:再起動によって中断された後、Claude Code がこのターンを再実行した理由。両方のアームに存在し、そのような再実行でのみ存在します。[`resume_reason`](#resume_reason) を参照してください1711* `resume_reason`:再起動によって中断された後、Claude Code がこのターンを再実行した理由。両方のアームに存在し、そのような再実行でのみ存在します。[`resume_reason`](#resume_reason) を参照してください

1712* `local_command`:ターンが `/compact` などのコマンドを完了してエージェントループに入らずに実行したターンの成功結果で、ターンがディスパッチしたコマンドの名前。名前は小文字とアンダースコアに折りたたまれるため、`/reload-plugins` は `reload_plugins` を報告します。MCP サーバーが提供するコマンドと組み込み `/mcp` は `mcp` を報告します。自分で定義したコマンドは `custom` を報告します。引数は含まれません。エージェントループに入ったすべてのターンと、コマンドを実行しなかった送信では存在しません。Agent SDK v0.3.268 以降が必要です1712* `local_command`:`/compact` など、エージェントループに入らずにコマンドが完了したターンの成功結果における、ターンがディスパッチしたコマンドの名前。名前は小文字とアンダースコアに変換されるため、`/reload-plugins` は `reload_plugins` を報告します。MCP サーバーが提供するコマンドと組み込みの `/mcp` は `mcp` を報告します。自分で定義したコマンドは `custom` を報告します。引数は含まれません。エージェントループに入ったすべてのターンと、コマンドを実行しなかった送信では存在しません。Agent SDK v0.3.268 以降が必要です

1713* `request_sent_wall_ms`:Claude Code が API リクエストをディスパッチしたエポックミリ秒。サーバー側のタイムスタンプに対する結合用です。[`user_message_uuid`](#user_message_uuid) と一緒にのみ存在し、`is_error` が false である成功結果で、ターンが API リクエストを送信した場合のみ1713* `request_sent_wall_ms`:Claude Code が API リクエストをディスパッチしたエポックミリ秒。サーバー側のタイムスタンプとの結合用です。[`user_message_uuid`](#user_message_uuid) と一緒にのみ存在し、`is_error` が false である成功結果で、ターンが API リクエストを送信した場合のみ

1714* `first_content_frame_ms`:最初の `content_block_start` または `content_block_delta` ストリームイベントまでのミリ秒単位の時間。思考ブロックをコンテンツとしてカウントします。成功アームのみに存在し、`is_error` が false の場合。Agent SDK v0.3.260 以降が必要です1714* `first_content_frame_ms`:最初の `content_block_start` または `content_block_delta` ストリームイベントまでのミリ秒単位の時間。思考ブロックをコンテンツとしてカウントします。成功アームのみに存在し、`is_error` が false の場合。Agent SDK v0.3.260 以降が必要です

1715* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:ターンの最初のストリームイベントをアップロードするためのタイミング。Claude Code は [クラウドセッション](/docs/ja/claude-code-on-the-web) などの claude.ai にストリーミングするセッションでのみ記録し、`query()` が生成する結果はそれらを持ちません。Agent SDK v0.3.260 以降が必要です1715* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:ターンの最初のストリームイベントをアップロードするためのタイミング。Claude Code は [クラウドセッション](/docs/ja/claude-code-on-the-web) など claude.ai にストリーミングするセッションでのみこれらを記録し、`query()` が生成する結果はこれらを持ちません。Agent SDK v0.3.260 以降が必要です

1716* `usage`:メインエージェントループのみ。サブエージェントと補助モデル呼び出しを除外し、ストリーミング入力セッションではターンごとです。トークン/コスト会計には `modelUsage` を優先してください1716* `usage`:メインエージェントループのみ。サブエージェントと補助モデル呼び出しを除外し、ストリーミング入力セッションではターンごとです。トークン/コスト会計には `modelUsage` を優先してください

1717* `modelUsage`:この `query()` 呼び出し中にクエリパイプラインを通じて行われたすべてのモデル呼び出しのモデルごとの合計。メインループ、サブエージェント、圧縮や Workflow エージェントなどの内部呼び出しを含みます。権限分類器やトークンカウントリクエストなどのパイプライン外のヘルパー呼び出しは除外されます。セッションを再開する呼び出しは、[セッションの以前の呼び出しから復元されたモデルごとの合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) もカウントします。ストリーミング入力セッションでは、合計はターン全体で累積されるため、結果全体を読み取り、結果全体で合計しないでください。リセットについては [ストリーミング入力モードでコストを追跡](/docs/ja/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) を、ゼロ化された結果については [セッションクラッシュ後に合計を復元](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) を参照してください1717* `modelUsage`:この `query()` 呼び出し中にクエリパイプラインを通じて行われたすべてのモデル呼び出しのモデルごとの合計。メインループ、サブエージェント、コンテキスト圧縮や Workflow エージェントなどの内部呼び出しを含みます。権限分類器やトークンカウントリクエストなどのパイプライン外のヘルパー呼び出しは除外されます。セッションを再開する呼び出しは、[セッションの以前の呼び出しから復元されたモデルごとの合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) もカウントします。ストリーミング入力セッションでは、合計はターン全体で累積されるため、結果を合計するのではなく最新の結果を読み取ってください。リセットについては [ストリーミング入力モードでコストを追跡](/docs/ja/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) を、ゼロ化された結果については [セッションクラッシュ後に合計を復元](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) を参照してください

1718* `total_cost_usd`:USD での累積推定コスト。`modelUsage` と同じ呼び出しをカバーし、同じポイントでリセットされます。セッションを再開する呼び出しは、[セッションの以前の呼び出しから復元された合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) もカウントします。これは推定値であり、請求書ではありません。精度に関する注意事項については [コストと使用状況を追跡](/docs/ja/agent-sdk/cost-tracking) を参照してください1718* `total_cost_usd`:USD での累積推定コスト。`modelUsage` と同じ呼び出しをカバーし、同じポイントでリセットされます。セッションを再開する呼び出しは、[セッションの以前の呼び出しから復元された合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) もカウントします。これは推定値であり、請求書ではありません。精度に関する注意事項については [コストと使用状況を追跡](/docs/ja/agent-sdk/cost-tracking) を参照してください

1719* `queued_turn_count`:Claude Code が結果を生成したときに、`origin: { kind: "human" }` で送信した待機中のメッセージの数。`0` と存在しないフィールドが何を示すかについては [`queued_turn_count`](#queued_turn_count) を参照してください1719* `queued_turn_count`:Claude Code が結果を生成したときに、`origin: { kind: "human" }` で送信してまだ待機中のメッセージの数。`0` と存在しないフィールドが何を示すかについては [`queued_turn_count`](#queued_turn_count) を参照してください

1720* `result_index`:このプロセスが書き込むすべての結果全体で 0 からカウントして、実行の配信順序でこの結果がどこに落ちるか。両方のアームに存在します。書き込みが失敗した結果でも番号を消費するため、シーケンスのギャップは結果が失われたことを意味します。Agent SDK v0.3.268 以降が必要です1720* `result_index`:プロセスが書き込むすべての結果について 0 からカウントした、実行の配信順序におけるこの結果の位置。両方のアームに存在します。書き込みが失敗した結果でも番号を消費するため、シーケンスのギャップは結果が失われたことを意味します。Agent SDK v0.3.268 以降が必要です

1721* `startup_failure_reason`:Claude Code が既知のスタートアップ失敗で終了する前に書き込む `error_during_execution` 結果で、Claude Code が起動を拒否した理由。値と失敗がそれを持つかについては [`startup_failure_reason`](#startup_failure_reason) を参照してください。Agent SDK v0.3.274 以降が必要です1721* `startup_failure_reason`:Claude Code が既知の起動失敗で終了する前に書き込む `error_during_execution` 結果における、Claude Code が起動を拒否した理由。値とどの失敗がこれを持つかについては [`startup_failure_reason`](#startup_failure_reason) を参照してください。Agent SDK v0.3.274 以降が必要です

1722* `terminal_reason`:ループが終了した理由。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"`、または `"turn_setup_failed"` のいずれか1722* `terminal_reason`:ループが終了した理由。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"`、または `"turn_setup_failed"` のいずれか

1723* `fast_mode_state`:`"on"`、`"off"`、または `"cooldown"` のいずれか1723* `fast_mode_state`:`"on"`、`"off"`、または `"cooldown"` のいずれか

1724* `fast_mode_disabled_reason`:[高速モード](/docs/ja/fast-mode) が今利用できない理由。高速モードをブロックするものがない場合は存在しませんが、リクエストは標準速度で実行される可能性があります。高速モードレート制限後のクールダウン中、Claude Code は `fast_mode_state: "cooldown"` を報告し、理由コードなしで、クールダウンが期限切れになると高速モードを再度有効にします。Claude Code v2.1.219 以降が必要です1724* `fast_mode_disabled_reason`:[fast mode](/docs/ja/fast-mode) が現在利用できない理由。fast mode をブロックするものがない場合は存在しませんが、それでもリクエストが標準速度で実行される場合があります。fast mode のレート制限後のクールダウン中、Claude Code は理由コードなしで `fast_mode_state: "cooldown"` を報告し、クールダウンが終了すると fast mode を再度有効にします。Claude Code v2.1.219 以降が必要です

1725 1725 

1726理由コードを使用して、独自の UI で高速モードがオフの理由を説明し、可用性を再導出する代わりに説明してください。各コードは高速モードをブロックしたチェックに名前を付けます:1726可用性を独自に再判定する代わりに、理由コードを使用して、独自の UI で fast mode がオフになっている理由を説明してください。各コードは fast mode をブロックしたチェックを示します:

1727 1727 

1728| 理由コード | 意味 |1728| 理由コード | 意味 |

1729| - | - |1729| - | - |

1730| `free` | アカウントが高速モードに必要な有料サブスクリプションまたは使用クレジットを持っていない |1730| `free` | アカウントが fast mode に必要な有料サブスクリプションまたは使用クレジットを持っていない |

1731| `preference` | 組織が高速モードを無効にしている |1731| `preference` | 組織が fast mode を無効にしている |

1732| `extra_usage_disabled` | 使用クレジットがアカウントに対してオフになっている |1732| `extra_usage_disabled` | アカウントの使用クレジットがオフになっている |

1733| `network_error` | [可用性チェック](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) が `api.anthropic.com` に到達できなかった |1733| `network_error` | [可用性チェック](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) が `api.anthropic.com` に到達できなかった |

1734| `unknown` | Claude Code が可用性を判断できなかった |1734| `unknown` | Claude Code が可用性を判断できなかった |

1735| `not_first_party` | セッションが Anthropic API 以外のプロバイダーを使用している |1735| `not_first_party` | セッションが Anthropic API 以外のプロバイダーを使用している |

1736| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/ja/env-vars) が設定されている |1736| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/ja/env-vars) が設定されている |

1737| `model_not_allowed` | 高速モード Opus モデルが組織の [`availableModels`](/docs/ja/model-config#restrict-model-selection) 許可リストにない |1737| `model_not_allowed` | fast mode の Opus モデルが組織の [`availableModels`](/docs/ja/model-config#restrict-model-selection) 許可リストにない |

1738| `sdk_opt_in_required` | セッションが高速モードにオプトインしていない:[`settings`](#options) オプションまたは [`applyFlagSettings()`](#applyflagsettings) を通じて `fastMode: true` を渡す |1738| `sdk_opt_in_required` | セッションが fast mode にオプトインしていない:[`settings`](#options) オプションまたは [`applyFlagSettings()`](#applyflagsettings) を通じて `fastMode: true` を渡す |

1739| `pending` | 可用性チェックがまだ完了していない |1739| `pending` | 可用性チェックがまだ完了していない |

1740 1740 

1741同じフィールドペアが [`SDKSystemMessage`](#sdksystemmessage) と [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) に表示されるため、最初のターンの前に高速モード状態を読み取ることができます。1741同じフィールドペアが [`SDKSystemMessage`](#sdksystemmessage) と [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) に表示されるため、最初のターンの前に fast mode の状態を読み取ることができます。

1742 1742 

1743`origin` フィールドは、この結果をトリガーしたユーザーメッセージの [`SDKMessageOrigin`](#sdkmessageorigin) を転送します。SDK が完了したバックグラウンドタスクなどの合成フォローアップターンを挿入する場合、結果の `SDKResultMessage` は `origin: { kind: "task-notification" }` を持ちます。トリガーが発火し、サーバーが検証したメッセージが他のセッションから到着する場合、各ルーチンはこの種を持ち、[タスク通知サブキンド](#task-notification-subkinds) で説明されている `subkind` を持ちます。`kind` をチェックして、プロンプトに答える結果と挿入されたフォローアップを区別してから、ルーティングまたは抑制してください。アプリケーションが [スケジュール実行を宣言](#declare-a-scheduled-run) する場合、それらの結果も `kind: "task-notification"` を持つため、`kind` だけで抑制しないでください。1743`origin` フィールドは、この結果をトリガーしたユーザーメッセージの [`SDKMessageOrigin`](#sdkmessageorigin) を転送します。完了したバックグラウンドタスクなどのために SDK が合成フォローアップターンを挿入する場合、結果の `SDKResultMessage` は `origin: { kind: "task-notification" }` を持ちます。トリガーが発火したルーティンと、他のセッションからのサーバー検証済みメッセージもこの種類で到着し、それぞれ [タスク通知サブキンド](#task-notification-subkinds) で説明されている `subkind` を持ちます。ルーティングまたは抑制する前に、`kind` をチェックして、プロンプトに応答する結果と挿入されたフォローアップを区別してください。アプリケーションが [スケジュール実行を宣言](#declare-a-scheduled-run) する場合、それらの結果も `kind: "task-notification"` を持つため、`kind` だけで抑制しないでください。

1744 1744 

1745複数のバックグラウンドタスク完了が一緒にキューに入れられている場合、Claude Code は 1 つのターンで 1 つのターンずつではなく、それらに答えることができます。各完了は依然としてこのオリジンを持つ独自の結果を生成します。Claude Code が一緒に答える完了のすべてのうち最後のもの以外は、順番に空の結果を生成し、`num_turns: 0` で、最後のものの結果はそれらすべてに答えるターンを持ちます。1745複数のバックグラウンドタスクの完了がまとめてキューに入っている場合、Claude Code は 1 件ずつ別々のターンで応答する代わりに、1 つのターンでまとめて応答できます。各完了はそれぞれこの origin を持つ独自の結果を生成します。Claude Code がまとめて応答する完了のうち、最後のもの以外は順番に `num_turns: 0` の空の結果を生成し、最後のものの結果がそれらすべてに応答するターンを持ちます。

1746 1746 

1747フィールドは、スタートアップエラーなど、ユーザーターンの前に発行された結果では存在しません。1747フィールドは、起動エラーなど、ユーザーターンの前に発行された結果では存在しません。

1748 1748 

1749`PreToolUse` フックが `permissionDecision: "defer"` を返す場合、結果は `stop_reason: "tool_deferred"` を持ち、`deferred_tool_use` は保留中のツールの `id`、`name`、`input` を持ちます。このフィールドを読み取り、独自の UI でリクエストをサーフェスしてから、同じ `session_id` で再開して続行してください。完全なラウンドトリップについては [ツール呼び出しを後で延期](/docs/ja/hooks#defer-a-tool-call-for-later) を参照してください。1749`PreToolUse` フックが `permissionDecision: "defer"` を返す場合、結果は `stop_reason: "tool_deferred"` を持ち、`deferred_tool_use` は保留中のツールの `id`、`name`、`input` を持ちます。このフィールドを読み取って独自の UI でリクエストを表示し、同じ `session_id` で再開して続行してください。完全なラウンドトリップについては [ツール呼び出しを後で延期](/docs/ja/hooks#defer-a-tool-call-for-later) を参照してください。

1750 1750 

1751<h4 id="user_message_uuid">1751<h4 id="user_message_uuid">

1752 `user_message_uuid`1752 `user_message_uuid`

1753</h4>1753</h4>

1754 1754 

1755ターンが答えている [`SDKUserMessage`](#sdkusermessage) の `uuid`。送信したメッセージに Claude Code の返信をマッチングできるように、エコーバックされます。Claude Code は、メッセージに `uuid` を設定した場合にのみ `uuid` をエコーバックします。フィールドは `SDKUserMessage` でオプションであり、`query()` に渡された文字列プロンプトは何も持ちません。1755ターンが応答している [`SDKUserMessage`](#sdkusermessage) の `uuid`。送信したメッセージに Claude Code の返信をマッチングできるように、エコーバックされます。Claude Code は、メッセージに `uuid` を設定した場合にのみ `uuid` をエコーバックします。フィールドは `SDKUserMessage` でオプションであり、`query()` に渡された文字列プロンプトは何も持ちません。

1756 1756 

1757ターンが答えるメッセージは、ターンの開始方法に依存します:1757ターンがどのメッセージに応答するかは、ターンの開始方法に依存します:

1758 1758 

1759* **送信した通常のメッセージ**(`isSynthetic: true` なし):ターンはその実行全体でそのメッセージに答えます。複数のメッセージを一緒に送信すると、Claude Code はそれらを 1 つのターンにマージでき、フィールドは最後のメッセージの `uuid` のみを持ちます。マージされたメッセージのいずれかに返信をマッチングするには、[`user_message_uuids`](#user_message_uuids) を使用してください1759* **送信した通常のメッセージ**(`isSynthetic: true` のないもの):ターンは実行全体を通じてそのメッセージに応答します。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージでき、その場合フィールドは最後のメッセージの `uuid` のみを持ちます。マージされたメッセージのいずれかに返信をマッチングするには、[`user_message_uuids`](#user_message_uuids) を使用してください

1760* **`isSynthetic: true` で送信したメッセージ**:ターンは最初にそのメッセージに答えます。Claude Code がツール呼び出し間であなたの通常のメッセージを拾う場合、ターンはその時点から拾われたメッセージに答えます。合成メッセージの `uuid` をエコーバックするには Agent SDK v0.3.265 以降が必要です。以前のバージョンは合成ターンで何もエコーバックしません1760* **`isSynthetic: true` で送信したメッセージ**:ターンは最初にそのメッセージに応答します。Claude Code がツール呼び出しの合間に通常のメッセージを取り込んだ場合、ターンはそれ以降、取り込まれたメッセージに応答します。合成メッセージの `uuid` をエコーバックするには Agent SDK v0.3.265 以降が必要です。以前のバージョンは合成ターンで何もエコーバックしません

1761* **Claude Code が [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) の下で中断されたターンを再実行するために生成するプロンプト**:中断されたターンの最後のプロンプトが送信した通常のメッセージである場合、ターンを開いたか、Claude Code がターン中に拾ったかに関わらず、再実行は最初にそのメッセージに答えます。[`resume_reason`](#resume_reason) は中断された試みからの再実行のフレームを示します。最後のプロンプトがあなたの通常のメッセージでない場合、再実行は最初にあなたのメッセージに答えません。Claude Code がツール呼び出し間であなたの通常のメッセージを拾う場合、ターンはその時点からそのメッセージに答えます。中断されたターンのプロンプトをエコーバックするには Agent SDK v0.3.268 以降が必要です1761* **[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) の下で中断されたターンを再実行するために Claude Code が生成するプロンプト**:中断されたターンの最後のプロンプトが送信した通常のメッセージである場合、それがターンを開始したか、Claude Code がターン中に取り込んだかに関わらず、再実行は最初にそのメッセージに応答します。[`resume_reason`](#resume_reason) によって、再実行のフレームと中断された試行のフレームを区別できます。最後のプロンプトが通常のメッセージでない場合、再実行は最初はどのメッセージにも応答しません。Claude Code がツール呼び出しの合間に通常のメッセージを取り込んだ場合、ターンはそれ以降、取り込まれたメッセージに応答します。中断されたターンのプロンプトをエコーバックするには Agent SDK v0.3.268 以降が必要です

1762* **Claude Code が自分で生成した他のプロンプト**:ターンは最初にあなたのメッセージに答えず、そのフレームはエコーを持ちません。Claude Code がツール呼び出し間であなたの通常のメッセージを拾う場合、ターンはその時点からそのメッセージに答えます。ピックアップエコーには Agent SDK v0.3.265 以降が必要です。以前のバージョンはこれらのターンで何もエコーバックしません1762* **Claude Code が自身で生成したその他のプロンプト**:ターンは最初はどのメッセージにも応答せず、そのフレームはエコーを持ちません。Claude Code がツール呼び出しの合間に通常のメッセージを取り込んだ場合、ターンはそれ以降そのメッセージに応答します。取り込み時のエコーには Agent SDK v0.3.265 以降が必要です。以前のバージョンはこれらのターンで何もエコーバックしません

1763 1763 

1764Claude Code は 3 種類のフレームで答えたメッセージの `uuid` をエコーバックします:1764Claude Code は 3 種類のフレームで応答したメッセージの `uuid` をエコーバックします:

1765 1765 

1766* **結果**:送信したメッセージに答えたターンのすべての結果。Agent SDK v0.3.265 以降ではすべてのそのような結果がそれを持ちます。v0.3.265 より前では、通常のメッセージが開始したターンの成功結果は、ターンが API リクエストを送信しなかったか、延期されたツール呼び出しで終了した場合、それを欠いていました。v0.3.246 より前では、エラー結果も欠いていました。v0.3.216 より前ではすべての結果がそうでした1766* **結果**:送信したメッセージに応答したターンのすべての結果。Agent SDK v0.3.265 以降ではそのようなすべての結果がこれを持ちます。v0.3.265 より前では、通常のメッセージが開始したターンの成功結果は、ターンが API リクエストを送信しなかったか、延期されたツール呼び出しで終了した場合、これを欠いていました。v0.3.246 より前では、エラー結果も欠いていました。v0.3.216 より前ではすべての結果が欠いていました

1767* **ターンの最初の返信**:最初の [アシスタントメッセージ](#sdkassistantmessage)、または `includePartialMessages` で最初の [ストリームイベント](#sdkpartialassistantmessage)。`event.type` が `ping` でない場合、結果が到着する前に返信をバインドできます。ターンが何もストリーミングしない場合、Claude Code は代わりに最初のアシスタントメッセージに設定します。最初の返信エコーには Agent SDK v0.3.246 以降が必要です。ターンが答えているメッセージが途中で変わる場合、変更後の最初の返信はフィールドも持ちます。Agent SDK v0.3.265 以降。以前のバージョンはターンごとに 1 つの返信フレームに設定します1767* **ターンの最初の返信**:最初の [アシスタントメッセージ](#sdkassistantmessage)、および `includePartialMessages` を使用する場合は `event.type` が `ping` でない最初の [ストリームイベント](#sdkpartialassistantmessage) も対象となるため、結果が到着する前に返信をバインドできます。最初の返信のエコーには Agent SDK v0.3.246 以降が必要です。v0.3.269 より前では、`includePartialMessages` を使用する場合、Claude Code はその最初のストリームイベントにのみ設定し、ターンが何もストリーミングしなかった場合は最初のアシスタントメッセージに設定していました。Agent SDK v0.3.265 以降では、ターンが応答しているメッセージがターンの途中で変わる場合、変更後の最初の返信もフィールドを持ちます。以前のバージョンはターンごとに 1 つの返信フレームに設定します

1768* **ターンのすべての [`thinking_tokens`](#sdkthinkingtokensmessage) フレーム**:ターンの最初の返信を待たずに、送信したメッセージに思考の進行を属性付けできます。Agent SDK v0.3.260 以降が必要です1768* **ターンのすべての [`thinking_tokens`](#sdkthinkingtokensmessage) フレーム**:ターンの最初の返信を待たずに、思考の進行状況を送信したメッセージに関連付けることができます。Agent SDK v0.3.260 以降が必要です

1769 1769 

1770Claude Code はこれらの場合にフィールドを省略します:1770Claude Code は以下の場合にフィールドを省略します:

1771 1771 

1772* 最初の返信以外の返信フレーム1772* 上記の最初の返信以外の返信フレーム

1773* サブエージェントフレーム1773* サブエージェントのフレーム

1774* あなたのメッセージに答えないターン、または `uuid` なしで送信したメッセージに答えるターン1774* どのメッセージにも応答しないターン、または `uuid` なしで送信したメッセージに応答するターン

1775* 送信したメッセージに答えない結果。クラッシュしたワーカープロセス後のゼロ化された結果など1775* 送信したメッセージに応答しない結果。クラッシュしたワーカープロセス後のゼロ化された結果など

1776 1776 

1777<h4 id="user_message_uuids">1777<h4 id="user_message_uuids">

1778 `user_message_uuids`1778 `user_message_uuids`

1779</h4>1779</h4>

1780 1780 

1781Claude Code がこのターンで答えたすべての送信したメッセージの `uuid`。複数のメッセージを一緒に送信すると、Claude Code はそれらを 1 つのターンにマージでき、`user_message_uuid` はそれらの最後のものだけに名前を付けます。マージされたメッセージのいずれかに返信をマッチングするには、このリストのどこかでそのメッセージの `uuid` を探してください。Agent SDK v0.3.259 以降が必要です。1781Claude Code がこのターンで応答した、送信したすべてのメッセージの `uuid`。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージでき、その場合 `user_message_uuid` はそれらの最後のものだけを示します。マージされたメッセージのいずれかに返信をマッチングするには、このリスト内でそのメッセージの `uuid` を探してください。Agent SDK v0.3.259 以降が必要です。

1782 1782 

1783Claude Code は、そのフィールドを持つ各返信フレームと結果で、`user_message_uuid` と一緒にリストを設定します。答えたメッセージの `uuid` をエコーバックするターンフレームの完全なセットと、各フレームが必要とするバージョンについては、[`user_message_uuid`](#user_message_uuid) を参照してください。リストは常に `user_message_uuid` を含み、最大 64 エントリを保持します。1783Claude Code は、`user_message_uuid` を持つ各返信フレームと結果で、そのフィールドと一緒にリストを設定します。応答したメッセージの `uuid` をエコーバックするターンフレームの完全なセットと、各フレームが必要とするバージョンについては、[`user_message_uuid`](#user_message_uuid) を参照してください。リストには常に `user_message_uuid` が含まれ、最大 64 エントリを保持します。

1784 1784 

1785Claude Code がターンの実行中に送信した通常のメッセージを拾う場合、そのメッセージの `uuid` を結果のリストに追加します。1785Claude Code がターンの実行中に送信した通常のメッセージを取り込んだ場合、そのメッセージの `uuid` を結果のリストに追加します。

1786 1786 

1787最初の返信または結果が `user_message_uuid` をリストなしで持つ場合、それは以前の Claude Code バージョンから来ているため、単一フィールドにフォールバックしてください。1787最初の返信または結果がリストなしで `user_message_uuid` を持つ場合、それは以前の Claude Code バージョンから来ているため、単一フィールドにフォールバックしてください。

1788 1788 

1789<h4 id="resume_reason">1789<h4 id="resume_reason">

1790 `resume_reason`1790 `resume_reason`

1791</h4>1791</h4>

1792 1792 

1793再起動後、Claude Code がこのターンを再実行した理由。Claude Code は [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) の下で再実行したターンでこのフィールドを設定するため、中断された試みから再実行の返信と結果を区別できます。Agent SDK v0.3.268 以降が必要です。1793再起動後、Claude Code がこのターンを再実行した理由。Claude Code は [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) の下で再実行したターンでこのフィールドを設定するため、再実行の返信と結果を中断された試行のものと区別できます。Agent SDK v0.3.268 以降が必要です。

1794 1794 

1795Claude Code は 2 種類のフレームでフィールドを設定します:1795Claude Code は 2 種類のフレームでフィールドを設定します:

1796 1796 

1797* **再実行の結果**:成功アームとエラーアーム両方で、結果が `user_message_uuid` を持つかどうかに関わらず1797* **再実行の結果**:成功アームとエラーアームの両方で、結果が `user_message_uuid` を持つかどうかに関わらず

1798* **再実行の返信フレーム**:[`user_message_uuid`](#user_message_uuid) を持つもの1798* **再実行の返信フレーム**:[`user_message_uuid`](#user_message_uuid) を持つもの

1799 1799 

1800値は、ターンが再実行された理由を名前付けする短い小文字トークン。例えば `interrupted_turn`。フィールドは他のすべてのターンで存在しません。1800値は、ターンが再実行された理由を示す短い小文字のトークンです(例:`interrupted_turn`)。フィールドは他のすべてのターンで存在しません。

1801 1801 

1802<h4 id="queued_turn_count">1802<h4 id="queued_turn_count">

1803 `queued_turn_count`1803 `queued_turn_count`

1804</h4>1804</h4>

1805 1805 

1806Claude Code が結果を生成したときに、[`origin: { kind: "human" }`](#sdkmessageorigin) で送信した待機中のメッセージの数。Agent SDK v0.3.242 以降が必要です。1806Claude Code が結果を生成したときに、[`origin: { kind: "human" }`](#sdkmessageorigin) で送信してまだコマンドキューで待機中のメッセージの数。Agent SDK v0.3.242 以降が必要です。

1807 1807 

1808`0` と存在しないフィールドが何を示すか:1808`0` と存在しないフィールドが何を示すか:

1809 1809 

1810* **`0`**:Claude Code はそのオリジンなしで送信したメッセージをカウントせず、タスク通知もカウントしないため、ターンは依然として続く可能性があります1810* **`0`**:Claude Code はその `origin` なしで送信したメッセージをカウントせず、タスク通知もカウントしないため、それでもターンが続く可能性があります

1811* **存在しない**:Claude Code がクラッシュまたは致命的なスタートアップエラーの後に発行する最終結果はフィールドを省略し、[ゼロ化された合計を持つ可能性があります](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)1811* **存在しない**:Claude Code がクラッシュまたは致命的な起動エラーの後に発行する最終結果はフィールドを省略し、[ゼロ化された合計を持つ可能性があります](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)

1812 1812 

1813<h4 id="startup_failure_reason">1813<h4 id="startup_failure_reason">

1814 `startup_failure_reason`1814 `startup_failure_reason`

1815</h4>1815</h4>

1816 1816 

1817Claude Code が起動を拒否した理由。アプリケーションが再試行の代わりに修正を提供できるようにします。Claude Code は既知のスタートアップ失敗で終了する前に書き込む `error_during_execution` 結果でそれを設定します。その結果はゼロ化された合計を持ち、その `errors` 配列は stderr と同じテキストを持ちます。フィールドは他のすべての結果では存在しません。Agent SDK v0.3.274 以降が必要です。1817Claude Code が起動を拒否した理由。アプリケーションが再試行の代わりに修正方法を提示できるようにします。Claude Code は既知の起動失敗で終了する前に書き込む `error_during_execution` 結果でこれを設定します。その結果はゼロ化された合計を持ち、その `errors` 配列は stderr と同じテキストを持ちます。フィールドは他のすべての結果では存在しません。Agent SDK v0.3.274 以降が必要です。

1818 1818 

1819[`env`](#options) で `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` を `1` に設定して、すべての `SDKStartupFailureReason` 値に対してこの結果を受け取ります。その変数がない場合、Claude Code はこれらの失敗に対してのみ結果を書き込み、残りは stderr 出力、ゼロ以外の終了、結果メッセージなしで終了します:1819すべての `SDKStartupFailureReason` 値に対してこの結果を受け取るには、[`env`](#options) で `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` を `1` に設定します。その変数がない場合、Claude Code は以下の失敗に対してのみ結果を書き込み、残りは stderr 出力とゼロ以外の終了で終わり、結果メッセージはありません:

1820 1820 

1821* Claude Code が [ワークツリーにセッションを返すことができない](/docs/ja/worktrees#the-session-resumes-outside-its-worktree) ため停止する再開。`worktree_unverified` または `worktree_resume_refused`。そのセクションはどのエラーがどの値を持つかを示します1821* Claude Code が [セッションを worktree に戻せない](/docs/ja/worktrees#the-session-resumes-outside-its-worktree) ために停止する再開(`worktree_unverified` または `worktree_resume_refused`)。どのエラーがどの値を持つかはそのセクションで説明しています

1822* バックグラウンドセッションが保持する会話の拒否された [`continue`](#options)。`session_held_by_background`。そのような会話の拒否された [`resume`](#options) については、Claude Code は変数が設定されている場合にのみ結果を書き込みます1822* バックグラウンドセッションが保持している会話の、拒否された [`continue`](#options)(`session_held_by_background`)。そのような会話の拒否された [`resume`](#options) については、Claude Code は変数が設定されている場合にのみ結果を書き込みます

1823 1823 

1824```typescript theme={null}1824```typescript theme={null}

1825type SDKStartupFailureReason =1825type SDKStartupFailureReason =


1842 | "bypass_root";1842 | "bypass_root";

1843```1843```

1844 1844 

1845各値は 1 つの拒否に名前を付けます:1845各値は 1 つの拒否を示します:

1846 1846 

1847| 値 | セッションを停止したもの |1847| 値 | セッションを停止したもの |

1848| :- | :- |1848| :- | :- |

1849| `org_pin_api_key_conflict` | 管理設定が [ファーストパーティまたはクラウドゲートウェイサインイン](/docs/ja/authentication#restrict-login-to-your-organization) を必要とし、Anthropic API キー、認証トークン、または `apiKeyHelper` が代わりに設定されている |1849| `org_pin_api_key_conflict` | 管理設定が [ファーストパーティまたはクラウドゲートウェイでのサインイン](/docs/ja/authentication#restrict-login-to-your-organization) を必要としているが、代わりに Anthropic API キー、認証トークン、または `apiKeyHelper` が設定されている |

1850| `provider_not_allowed` | 管理設定が [このマシンが使用できる API プロバイダーをリストアップ](/docs/ja/settings-reference#allowedproviders) し、セッションがリストされていないプロバイダーまたは設定がピンしていないエンドポイント用に設定されている。Claude Code v2.1.285 以降が必要です |1850| `provider_not_allowed` | 管理設定が [このマシンで使用できる API プロバイダーをリスト](/docs/ja/settings-reference#allowedproviders) しており、セッションがリストにないプロバイダー、または設定で固定されていないエンドポイント用に設定されている。Claude Code v2.1.285 以降が必要です |

1851| `org_verify_failed` | サインインの組織をピンに対して検証できなかった。例えば、ネットワーク障害またはトークンの失効のため |1851| `org_verify_failed` | ネットワーク障害やトークンの失効などにより、サインインの組織を固定設定に対して検証できなかった |

1852| `org_pin_mismatch` | サインインがピンが許可しない組織に属している |1852| `org_pin_mismatch` | サインインが固定設定で許可されていない組織に属している |

1853| `managed_settings_invalid` | 管理ポリシー設定を読み取ることができず、ピンが組織を指定せず、または [管理モデル制限](/docs/ja/errors#managed-settings-block-the-default-model) がデフォルトオプション用に許可されたモデルを残していない |1853| `managed_settings_invalid` | 管理ポリシー設定を読み取れなかった、固定設定が組織を指定していない、または [管理モデル制限](/docs/ja/errors#managed-settings-block-the-default-model) によって Default オプションに許可されたモデルが残っていない |

1854| `remote_settings_required_unavailable` | 組織が必要とする管理設定を読み込むことができなかった |1854| `remote_settings_required_unavailable` | 組織が必要とする管理設定を読み込めなかった |

1855| `gateway_signin_required` | [クラウドゲートウェイ](/docs/ja/claude-apps-gateway) がこのサインインを終了した |1855| `gateway_signin_required` | [クラウドゲートウェイ](/docs/ja/claude-apps-gateway) がこのサインインを終了した |

1856| `gateway_access_denied` | クラウドゲートウェイへの管理設定リクエストが 403 で返された。ゲートウェイの [トラブルシューティングテーブル](/docs/ja/claude-apps-gateway-deploy#troubleshooting) がカバーしている |1856| `gateway_access_denied` | クラウドゲートウェイへの管理設定リクエストが 403 を返した。ゲートウェイの [トラブルシューティングテーブル](/docs/ja/claude-apps-gateway-deploy#troubleshooting) で説明しています |

1857| `proxy_invalid` | プロキシ設定が完全な URL ではない |1857| `proxy_invalid` | プロキシ設定が完全な URL ではない |

1858| `temp_dir_unusable` | ユーザーごとの一時ディレクトリが安全でないか、作成できなかった |1858| `temp_dir_unusable` | ユーザーごとの一時ディレクトリが安全でないか、作成できなかった |

1859| `cwd_unavailable` | 作業ディレクトリが削除、移動、または読み取ることができない |1859| `cwd_unavailable` | 作業ディレクトリが削除、移動された、または読み取れない |

1860| `shell_tool_missing` | Windows では、シェルツールが利用できない:Git Bash がなく、PowerShell がないか `CLAUDE_CODE_USE_POWERSHELL_TOOL` でオフになっている |1860| `shell_tool_missing` | Windows で、シェルツールが利用できない:Git Bash がなく、PowerShell がないか `CLAUDE_CODE_USE_POWERSHELL_TOOL` でオフになっている |

1861| `session_held_by_background` | 再開または続行する会話が [バックグラウンドセッション](/docs/ja/agent-view) として実行されている |1861| `session_held_by_background` | 再開または続行する会話が [バックグラウンドセッション](/docs/ja/agent-view) として実行されている |

1862| `worktree_resume_refused` | セッションのワークツリーが安全性チェックに失敗したか、再開がその内部から起動された。`errors` は同じ再開を再度実行するとワークツリーなしで続くかどうかを示します |1862| `worktree_resume_refused` | セッションの worktree が安全性チェックに失敗したか、再開がその内部から起動された。同じ再開を再度実行すると worktree なしで続行されるかどうかは `errors` に示されます |

1863| `worktree_unverified` | セッションのワークツリーを今検証できず、再試行が成功する可能性がある |1863| `worktree_unverified` | セッションの worktree を現時点で検証できず、再試行すると成功する可能性がある |

1864| `cli_version_too_old` | この Claude Code バージョンが Anthropic が必要とする最小値より下 |1864| `cli_version_too_old` | この Claude Code バージョンが Anthropic が必要とする最小バージョンを下回っている |

1865| `bypass_root` | バイパス権限モードがルートとして実行中にリクエストされた |1865| `bypass_root` | root として実行中にバイパス権限モードがリクエストされた |

1866 1866 

1867<h3 id="sdksystemmessage">1867<h3 id="sdksystemmessage">

1868 `SDKSystemMessage`1868 `SDKSystemMessage`


1907};1907};

1908```1908```

1909 1909 

1910`fast_mode_state` はセッションの [高速モード](/docs/ja/fast-mode) 状態を報告します。何かが高速モードをブロックする場合、`fast_mode_disabled_reason` はそれをブロックしたチェックに名前を付けます。フィールドには Claude Code v2.1.219 以降が必要です。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage) を参照してください。1910`fast_mode_state` はセッションの [fast mode](/docs/ja/fast-mode) の状態を報告します。何かが fast mode をブロックしている場合、`fast_mode_disabled_reason` はそれをブロックしたチェックを示します。このフィールドには Claude Code v2.1.219 以降が必要です。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage) を参照してください。

1911 1911 

1912`terminal_slash_commands` は `slash_commands` のエントリに名前を付けます。そのインターフェースはローカルターミナルにバインドされています。例えば `exit`。他のエントリと同じように送信できます。フィールドは存在するため、リモートまたはモバイルクライアントはコマンドメニューから非表示にできます。フィールドは空でない場合にのみ存在し、Agent SDK v0.3.229 以降が必要です。1912`terminal_slash_commands` は、`exit` など、インターフェースがローカルターミナルにバインドされている `slash_commands` のエントリを示します。これらは `slash_commands` の他のエントリと同じように送信できます。このフィールドは、リモートまたはモバイルクライアントがコマンドメニューからこれらを非表示にできるようにするために存在します。フィールドは空でない場合にのみ存在し、Agent SDK v0.3.229 以降が必要です。

1913 1913 

1914* 各 `mcp_servers` エントリの `source`:サーバーの定義がどこから来たか。[`McpServerStatus`](#mcpserverstatus) の `source` と同じ値。Agent SDK v0.3.274 以降が必要です1914* 各 `mcp_servers` エントリの `source`:サーバーの定義がどこから来たか。[`McpServerStatus`](#mcpserverstatus) の `source` と同じ値。Agent SDK v0.3.274 以降が必要です

1915* `effort`:[努力レベル](/docs/ja/model-config#adjust-effort-level)。Claude Code がセッションの次のリクエストで送信するか、何も送信しない場合は `null`。Claude Code はフィールドを [リモートコントロール](/docs/ja/remote-control) クライアントに送信する init メッセージにのみ設定し、アプリケーションが読み取る init メッセージから省略します。Agent SDK v0.3.234 以降が必要です1915* `effort`:Claude Code がセッションの次のリクエストで送信する [effort レベル](/docs/ja/model-config#adjust-effort-level)。何も送信しない場合は `null`。Claude Code はこのフィールドを [Remote Control](/docs/ja/remote-control) クライアントに送信する init メッセージにのみ設定し、アプリケーションが読み取る init メッセージからは省略します。Agent SDK v0.3.234 以降が必要です

1916 1916 

1917`capabilities` 配列は、この CLI が実装するプロトコル動作に名前を付けるため、`claude_code_version` 文字列を比較する代わりに機能検出できます。これはオープンセットです:認識しない値は無視し、依存する特定の動作の機能をチェックしてください。フィールドには Claude Code v2.1.205 以降が必要で、以前の CLI では存在しません。1917`capabilities` 配列は、この CLI が実装するプロトコル動作を示すため、`claude_code_version` 文字列を比較する代わりに機能検出ができます。これはオープンセットです:認識しない値は無視し、依存する動作に対応する特定の機能をチェックしてください。このフィールドには Claude Code v2.1.205 以降が必要で、以前の CLI では存在しません。

1918 1918 

1919| 機能 | 意味 |1919| 機能 | 意味 |

1920| - | - |1920| - | - |

1921| `interrupt_receipt_v1` | [`interrupt()`](#query-object) は、割り込みが到着したときに保留中だったメッセージをリストする [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) レシートで解決します |1921| `interrupt_receipt_v1` | [`interrupt()`](#query-object) は、割り込みが到着したときに保留中だったメッセージをリストする [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) レシートで解決します |

1922| `interrupt_cancel_queued_v1` | `interrupt` コントロールリクエストは `cancel_queued: true` を尊重し、レシートが `still_queued` の下にリストするメッセージをキャンセルし、代わりに `cancelled` の下にリストします。[`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) を参照してください。Claude Code v2.1.219 以降が必要です |1922| `interrupt_cancel_queued_v1` | `interrupt` コントロールリクエストは `cancel_queued: true` を尊重し、レシートが `still_queued` の下にリストするはずのメッセージをキャンセルし、代わりに `cancelled` の下にリストします。[`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) を参照してください。Claude Code v2.1.219 以降が必要です |

1923 1923 

1924`plugin_errors` 配列はプラグイン読み込み失敗をリストします。エントリは、読み込まれず `plugins` から存在しないプラグイン、または hooks ファイルなどの部分なしで読み込まれたプラグインを説明します。何も失敗しなかった場合、キーは省略されます。`SDKSystemMessage` は Agent SDK v0.3.283 以降で `plugin_errors` を宣言します。1924`plugin_errors` 配列はプラグインの読み込み失敗をリストします。各エントリは、読み込まれず `plugins` に存在しないプラグイン、または hooks ファイルなど一部を欠いた状態で読み込まれたプラグインを説明します。何も失敗しなかった場合、キーは省略されます。`SDKSystemMessage` は Agent SDK v0.3.283 以降で `plugin_errors` を宣言します。

1925 1925 

1926[`plugins` オプション](#options) からのディレクトリまたはアーカイブ自体が読み込みに失敗する場合、エントリの `plugin` フィールドはプラグイン名の代わりに `inline[0]` などの位置タグを保持します。これは、例えば、パスが存在しないか、マニフェストが無効な場合に発生します。そのようなエントリをオプションにマッチングするには、その `path` フィールドを使用してください。1926[`plugins` オプション](#options) で指定したディレクトリまたはアーカイブ自体の読み込みに失敗した場合、エントリの `plugin` フィールドはプラグイン名の代わりに `inline[0]` などの位置タグを保持します。これは、例えば、パスが存在しない場合やマニフェストが無効な場合に発生します。そのようなエントリをオプションとマッチングするには、その `path` フィールドを使用してください。

1927 1927 

1928下の表は、各 `plugin_errors` エントリのフィールドをリストします。1928下の表は、各 `plugin_errors` エントリのフィールドをリストします。

1929 1929 

1930| フィールド | 型 | 説明 |1930| フィールド | 型 | 説明 |

1931| - | - | - |1931| - | - | - |

1932| `plugin` | `string` | 失敗しているプラグインの ID、またはプラグインディレクトリまたはアーカイブ自体が読み込みに失敗した場合の `inline[0]` などの位置タグ |1932| `plugin` | `string` | 失敗したプラグインの ID、またはプラグインディレクトリまたはアーカイブ自体の読み込みに失敗した場合の `inline[0]` などの位置タグ |

1933| `type` | `string` | `path-not-found` または `manifest-validation-error` などのオープンセットからのエラーカテゴリ。認識しない値を汎用失敗として扱う |1933| `type` | `string` | `path-not-found` や `manifest-validation-error` などのオープンセットからのエラーカテゴリ。認識しない値は汎用的な失敗として扱ってください |

1934| `message` | `string` | 失敗を説明する表示テキスト |1934| `message` | `string` | 失敗を説明する表示テキスト |

1935| `path` | `string` | プラグインディレクトリまたはアーカイブ自体が読み込みに失敗した場合にのみ存在します。その絶対パス。`plugins` オプションからの相対パスは [`cwd`](#options) オプションに対して解決されます |1935| `path` | `string` | プラグインディレクトリまたはアーカイブ自体の読み込みに失敗した場合にのみ存在します。その絶対パスで、`plugins` オプションの相対パスは [`cwd`](#options) オプションを基準に解決されます |

1936 1936 

1937<h3 id="sdkpartialassistantmessage">1937<h3 id="sdkpartialassistantmessage">

1938 `SDKPartialAssistantMessage`1938 `SDKPartialAssistantMessage`

1939</h3>1939</h3>

1940 1940 

1941ストリーミング部分メッセージ(`includePartialMessages` が true の場合のみ)。`parent_tool_use_id` フィールドは常に `null` です:ストリームイベントはメインセッションのみに対して発行されます。サブエージェント属性については、完全なメッセージを使用します。これらは `parent_tool_use_id` を持つか、[`forwardSubagentText`](#options) を有効にして、サブエージェントテキストと思考を完全なメッセージとして受け取ります。1941ストリーミング部分メッセージ(`includePartialMessages` が true の場合のみ)。`parent_tool_use_id` フィールドは常に `null` です:ストリームイベントはメインセッションに対してのみ発行されます。サブエージェントへの帰属を判断するには、`parent_tool_use_id` を持つ完全なメッセージを使用するか、[`forwardSubagentText`](#options) を有効にしてサブエージェントのテキストと思考を完全なメッセージとして受け取ってください。

1942 1942 

1943```typescript theme={null}1943```typescript theme={null}

1944type SDKPartialAssistantMessage = {1944type SDKPartialAssistantMessage = {


1954};1954};

1955```1955```

1956 1956 

1957Claude Code は、ターンの最初の非 ping ストリームイベントで、そしてターンが答えているメッセージが変わるときに、[`user_message_uuid`](#user_message_uuid) の条件下で `user_message_uuid` と `user_message_uuids` を設定します。Claude Code が再起動によって中断されたターンを再実行する場合、これらのフィールドを持つ再実行のストリームイベントは [`resume_reason`](#resume_reason) も持ちます。1957Claude Code は、ターンの最初の ping 以外のストリームイベントで、またターンが応答しているメッセージが変わるときに、[`user_message_uuid`](#user_message_uuid) の条件下で `user_message_uuid` と `user_message_uuids` を設定します。Claude Code が再起動によって中断されたターンを再実行する場合、これらのフィールドを持つ再実行のストリームイベントは [`resume_reason`](#resume_reason) も持ちます。

1958 1958 

1959<h3 id="sdkcompactboundarymessage">1959<h3 id="sdkcompactboundarymessage">

1960 `SDKCompactBoundaryMessage`1960 `SDKCompactBoundaryMessage`

1961</h3>1961</h3>

1962 1962 

1963会話圧縮境界を示すメッセージです。1963会話のコンテキスト圧縮境界を示すメッセージです。

1964 1964 

1965```typescript theme={null}1965```typescript theme={null}

1966type SDKCompactBoundaryMessage = {1966type SDKCompactBoundaryMessage = {


1979 `SDKInformationalMessage`1979 `SDKInformationalMessage`

1980</h3>1980</h3>

1981 1981 

1982ループによって発行される汎用テキストバナー。警告、通知、その他の非エラーステータス行 Claude Code が発生させ、`UserPromptSubmit` フックのブロック理由などのフックフィードバックを持ちます。1982ループによって発行される汎用テキストバナー。Claude Code が発生させる警告、通知、その他のエラー以外のステータス行と、`UserPromptSubmit` フックのブロック理由などのフックフィードバックを持ちます。

1983 1983 

1984Claude Code v2.1.227 以降では、フックの [`systemMessage`](/docs/ja/hooks#json-output) はこのメッセージとして到着でき、各行にはフックの名前が前置されます。例えば `PostToolUse:Bash says:`。各 [イベントのセクション](/docs/ja/hooks#hook-events) は hooks ページで出力がどのようにサーフェスされるかを示します。1984Claude Code v2.1.227 以降では、フックの [`systemMessage`](/docs/ja/hooks#json-output) がこのメッセージとして到着する場合があり、各行には `PostToolUse:Bash says:` のようにフックの名前が前置されます。出力がどのように表示されるかは、hooks ページの各 [イベントのセクション](/docs/ja/hooks#hook-events) で説明しています。

1985 1985 

1986`content` をプレーンテキストとして指定された `level` でレンダリングしてください。1986`content` を指定された `level` でプレーンテキストとしてレンダリングしてください。

1987 1987 

1988```typescript theme={null}1988```typescript theme={null}

1989type SDKInformationalMessage = {1989type SDKInformationalMessage = {


2002 `SDKWorkerShuttingDownMessage`2002 `SDKWorkerShuttingDownMessage`

2003</h3>2003</h3>

2004 2004 

2005グレースフルワーカーティアダウンで発行されるため、リモートクライアントはハートビートタイムアウトを待つ代わりに、ワーカーが終了した理由を表示できます。`reason` はホスト CLI によって設定された短い snake\_case 文字列です。例えば `"host_exit"` または `"remote_control_disabled"`。ライブストリーミング時にのみこれに対応してください。再開されたセッションはこのメッセージの過去のインスタンスを再生するため、その場合は無視してください。2005ワーカーの正常な終了処理時に発行されるため、リモートクライアントはハートビートのタイムアウトを待つ代わりに、ワーカーが終了した理由を表示できます。`reason` はホスト CLI によって設定される短い snake\_case 文字列です(例:`"host_exit"` または `"remote_control_disabled"`)。ライブでストリーミングしている場合にのみこれに対応してください。再開されたセッションはこのメッセージの過去のインスタンスを再生するため、その場合は無視してください。

2006 2006 

2007```typescript theme={null}2007```typescript theme={null}

2008type SDKWorkerShuttingDownMessage = {2008type SDKWorkerShuttingDownMessage = {


2018 `SDKPluginInstallMessage`2018 `SDKPluginInstallMessage`

2019</h3>2019</h3>

2020 2020 

2021プラグインインストール進行状況イベント。[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合に発行されるため、Agent SDK アプリケーションは最初のターンの前にマーケットプレイスプラグインインストールを追跡できます。`started` と `completed` ステータスは全体的なインストールをブラケットします。`installed` と `failed` ステータスは個別のマーケットプレイスを報告し、`name` を含みます。2021プラグインのインストール進行状況イベント。[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合に発行されるため、Agent SDK アプリケーションは最初のターンの前にマーケットプレイスプラグインのインストールを追跡できます。`started` と `completed` ステータスはインストール全体の開始と終了を示します。`installed` と `failed` ステータスは個別のマーケットプレイスを報告し、`name` を含みます。

2022 2022 

2023```typescript theme={null}2023```typescript theme={null}

2024type SDKPluginInstallMessage = {2024type SDKPluginInstallMessage = {


2036 `SDKPermissionDeniedMessage`2036 `SDKPermissionDeniedMessage`

2037</h3>2037</h3>

2038 2038 

2039権限システムがインタラクティブプロンプトなしでツール呼び出しを拒否したときに発行されるストリームイベント。結果として続く `is_error` ツール結果のみを観察する代わりに、UI でリアルタイムで拒否をレンダリングするために使用します。どの拒否をレポートするかは、実行が権限プロンプトをどのように処理するかに依存します:2039権限システムがインタラクティブなプロンプトなしでツール呼び出しを拒否したときに発行されるストリームイベント。後に続く `is_error` ツール結果を観察するだけでなく、UI で拒否をリアルタイムにレンダリングするために使用します。どの拒否を報告するかは、実行が権限プロンプトをどのように処理するかに依存します:

2040 2040 

2041* **[`canUseTool`](#canusetool) コールバック**と デフォルト [`permissionPrompts: 'host'`](#options):権限プロンプトはコールバックに移動し、このイベントは Claude Code がコールバックを呼び出さずに決定した拒否をレポートします2041* **[`canUseTool`](#canusetool) コールバック**とデフォルトの [`permissionPrompts: 'host'`](#options) を使用する場合:権限プロンプトはコールバックに送られ、このイベントは Claude Code がコールバックを呼び出さずに独自に決定した拒否を報告します

2042* **どちらでもない**:ベア `-p` 実行、または `canUseTool` も `permissionPromptToolName` も設定しない `query()`。プロンプトが表示されるツール呼び出しを拒否し、このイベントはそれらの拒否と Claude Code が決定した拒否の両方をレポートします。v2.1.223 より前では、Claude Code はコールバックなしの実行でこのイベントを発行しませんでした2042* **どちらもない場合**:ベアの `-p` 実行、または `canUseTool` も `permissionPromptToolName` も設定しない `query()` は、プロンプトが必要になるツール呼び出しをすべて拒否し、このイベントはそれらの拒否と Claude Code が独自に決定した拒否の両方を報告します。v2.1.223 より前では、Claude Code はコールバックなしの実行でこのイベントを発行しませんでした

2043* **MCP プロンプトツール**。`permissionPromptToolName` または [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) フラグで設定され、デフォルト `permissionPrompts: 'host'`:Claude Code はこのイベントをまったく発行しません。ルール拒否でさえ、Claude Code が決定した拒否でさえ2043* **MCP プロンプトツール**を `permissionPromptToolName` または [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) フラグで設定し、デフォルトの `permissionPrompts: 'host'` を使用する場合:Claude Code はこのイベントをまったく発行しません。Claude Code が独自に決定したルールによる拒否についても発行しません

2044* **[`permissionPrompts: 'none'`](#options)**:Claude Code は `canUseTool` または MCP プロンプトツールも設定されている場合でも、プロンプトが表示されるコールを拒否し、このイベントはそれらの拒否と Claude Code が決定した拒否の両方をレポートします。Claude Code v2.1.259 以降が必要です2044* **[`permissionPrompts: 'none'`](#options)** の場合:`canUseTool` または MCP プロンプトツールも設定されている場合でも、Claude Code はプロンプトが必要になる呼び出しを拒否し、このイベントはそれらの拒否と Claude Code が独自に決定した拒否の両方を報告します。Claude Code v2.1.259 以降が必要です

2045 2045 

2046すべての設定で、このイベントは `PreToolUse` フックパスで決定された拒否をスキップします。フックが呼び出しを拒否したか、拒否ルールがフックの許可または質問決定をオーバーライドしたかに関わらず。イベントはベストエフォートでもあります:時々 Claude Code は拒否を記録してこのイベントを発行しないため、[結果メッセージ](#sdkresultmessage) の `permission_denials` は権限のある記録です。2046どの設定でも、このイベントは `PreToolUse` フックのパスで決定された拒否をスキップします。これはフックが呼び出しを自ら拒否した場合も、拒否ルールがフックの allow または ask の決定をオーバーライドした場合も同様です。また、このイベントはベストエフォートです:Claude Code がこのイベントを発行せずに拒否を記録することがまれにあるため、[結果メッセージ](#sdkresultmessage) の `permission_denials` が信頼できる記録です。

2047 2047 

2048```typescript theme={null}2048```typescript theme={null}

2049type SDKPermissionDeniedMessage = {2049type SDKPermissionDeniedMessage = {


2063| フィールド | 型 | 説明 |2063| フィールド | 型 | 説明 |

2064| - | - | - |2064| - | - | - |

2065| `tool_name` | `string` | 拒否されたツールの名前 |2065| `tool_name` | `string` | 拒否されたツールの名前 |

2066| `tool_use_id` | `string` | この拒否が答える `tool_use` ブロックの ID |2066| `tool_use_id` | `string` | この拒否が応答する `tool_use` ブロックの ID |

2067| `agent_id` | `string` | 拒否された呼び出しがサブエージェント内で発生した場合のサブエージェント ID。`can_use_tool` のフィールドをホスト側ルーティング用にミラーリング |2067| `agent_id` | `string` | 拒否された呼び出しがサブエージェント内で発生した場合のサブエージェント ID。ホスト側のルーティング用に `can_use_tool` のフィールドをミラーリング |

2068| `decision_reason_type` | `string` | 決定したコンポーネントの判別式。例えば `"rule"`、`"mode"`、`"classifier"`、または `"asyncAgent"` |2068| `decision_reason_type` | `string` | 決定したコンポーネントの判別子。例えば `"rule"`、`"mode"`、`"classifier"`、または `"asyncAgent"` |

2069| `decision_reason` | `string` | 利用可能な場合、決定したコンポーネントからの人間が読める理由 |2069| `decision_reason` | `string` | 利用可能な場合、決定したコンポーネントからの人間が読める理由 |

2070| `message` | `string` | `tool_result` でモデルに返された拒否メッセージ |2070| `message` | `string` | `tool_result` でモデルに返された拒否メッセージ |

2071 2071 


2087 `SDKContextUsage`2087 `SDKContextUsage`

2088</h3>2088</h3>

2089 2089 

2090`/context` レポートの構造化形式。[`SDKAssistantMessage`](#sdkassistantmessage) で `/context` 結果を配信する `context_usage` として持ちます。Agent SDK v0.3.232 以降は型をエクスポートします。[`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) とは異なり、使用状況分析をレンダリングするために必要なデータのみを持ち、`color` と `gridRows` などの表示フィールドは持ちません。Claude Code はトークンカウント API リクエストで報告を計算します。これはメッセージストリームに表示されません。[これらのリクエストがどのように処理されるか](#sdkcontrolgetcontextusageresponse) を参照してください。2090`/context` レポートの構造化形式で、`/context` の結果を配信する [`SDKAssistantMessage`](#sdkassistantmessage) に `context_usage` として含まれます。Agent SDK v0.3.232 以降はこの型をエクスポートします。[`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) とは異なり、使用状況の内訳をレンダリングするために必要なデータのみを持ち、`color` や `gridRows` などの表示フィールドは持ちません。Claude Code はメッセージストリームに表示されないトークンカウント API リクエストでレポートを計算します。[これらのリクエストがどのように処理されるか](#sdkcontrolgetcontextusageresponse) を参照してください。

2091 2091 

2092```typescript theme={null}2092```typescript theme={null}

2093type SDKContextUsage = {2093type SDKContextUsage = {


2124};2124};

2125```2125```

2126 2126 

2127表は Claude Code が各フィールドに何を入れるかをリストします。`model` から `over_limit` までのフィールドはセッション全体を説明し、コレクションフィールドはトークンを個別のアイテムに属性付けします。2127表は Claude Code が各フィールドに何を入れるかをリストします。`model` から `over_limit` までのフィールドはセッション全体を説明し、コレクションフィールドはトークンを個別の項目に割り当てます。

2128 2128 

2129| フィールド | 型 | 説明 |2129| フィールド | 型 | 説明 |

2130| - | - | - |2130| - | - | - |

2131| `model` | `string` | Claude Code が使用状況を計算したメインループのモデル。サブエージェントではない |2131| `model` | `string` | Claude Code が使用状況を計算したメインループのモデル。サブエージェントのモデルではない |

2132| `total_tokens` | `number` | Claude Code の使用中のトークンの推定値。ウィンドウにクランプされていないため、セッションが制限を超えている場合は `raw_max_tokens` を超える可能性があります |2132| `total_tokens` | `number` | Claude Code による使用中のトークンの推定値。ウィンドウにクランプされていないため、セッションが制限を超えている場合は `raw_max_tokens` を超える可能性があります |

2133| `raw_max_tokens` | `number` | モデルのコンテキストウィンドウ、または設定したものなど、より低い [自動圧縮ウィンドウ](/docs/ja/model-config#context-window-and-auto-compaction)。1M トークンウィンドウを持つ一部のモデルに Claude Code が適用する 200K 境界など。Claude Code は `total_tokens` をこのウィンドウに対して測定します |2133| `raw_max_tokens` | `number` | モデルのコンテキストウィンドウ、または該当する場合はより小さい [自動圧縮ウィンドウ](/docs/ja/model-config#context-window-and-auto-compaction)(自分で設定したものや、1M トークンのウィンドウを持つ一部のモデルに Claude Code が適用する 200K の境界など)。Claude Code は `total_tokens` をこのウィンドウに対して測定します |

2134| `percentage` | `number` | `total_tokens` を `raw_max_tokens` の丸められたパーセンテージとして。セッションが制限を超えている場合は 100 を超える可能性があります |2134| `percentage` | `number` | `raw_max_tokens` に対する `total_tokens` の丸められたパーセンテージ。セッションが制限を超えている場合は 100 を超える可能性があります |

2135| `over_limit` | `object` | `total_tokens` が `raw_max_tokens` を超える場合にのみ存在します。`tokens_over` は超過量で、`kind` は Claude Code がウィンドウをどのように解決したかを示します |2135| `over_limit` | `object` | `total_tokens` が `raw_max_tokens` を超える場合にのみ存在します。`tokens_over` は超過量で、`kind` は Claude Code がウィンドウをどのように決定したかを示します |

2136| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 使用状況別カテゴリ分析の各行に 1 つのエントリ |2136| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | カテゴリ別使用状況の内訳の各行に 1 つのエントリ |

2137| `mcp_tools` | `object[]` | 各 MCP ツールに属性付けされたトークン。ワイヤー名(例えば `mcp__linear__create_issue`)と `server_name` |2137| `mcp_tools` | `object[]` | 各 MCP ツールに割り当てられたトークン。ワイヤー名(例えば `mcp__linear__create_issue`)と `server_name` を含む |

2138| `memory_files` | `object[]` | 読み込まれた各メモリファイルに属性付けされたトークン。`path` と `Project` または `User` などのソースラベル(`type` 内) |2138| `memory_files` | `object[]` | 読み込まれた各メモリファイルに割り当てられたトークン。`path` と、`type` 内の `Project` や `User` などのソースラベルを含む |

2139| `agents` | `object[]` | 各カスタムサブエージェント定義に属性付けされたトークン。`projectSettings`、`userSettings`、または `plugin` などのソース識別子。組み込みサブエージェントはリストされていません |2139| `agents` | `object[]` | 各カスタムサブエージェント定義に割り当てられたトークン。`projectSettings`、`userSettings`、または `plugin` などのソース識別子を含む。組み込みサブエージェントはリストされません |

2140| `skills` | `object[]` | スキルリスト内の各スキルに属性付けされたトークン。ソース識別子と、プラグインスキルの場合、`plugin_name` 内のプラグインの名前。スキルがトークンに貢献しない場合は存在しません |2140| `skills` | `object[]` | スキルリスト内の各スキルに割り当てられたトークン。ソース識別子と、プラグインスキルの場合は `plugin_name` 内のプラグイン名を含む。トークンを消費するスキルがない場合は存在しません |

2141 2141 

2142`over_limit.kind` はウィンドウをどのように解決したかを記録し、API が次のリクエストを受け入れるかどうかではありません:2142`over_limit.kind` は、API が次のリクエストを受け入れるかどうかではなく、Claude Code がウィンドウをどのように決定したかを記録します:

2143 2143 

2144* `hard_limit`:ウィンドウは Claude Code がモデル自体の制限と信じるもの。API がリクエストを拒否する過去2144* `hard_limit`:ウィンドウは Claude Code がモデル自体の制限とみなしているもので、それを超えると API はリクエストを拒否します

2145* `compaction_window`:ウィンドウは圧縮ポリシーウィンドウ。モデルの制限と一致する場合もしない場合もあります2145* `compaction_window`:ウィンドウはコンテキスト圧縮ポリシーのウィンドウで、モデルの制限と一致する場合もしない場合もあります

2146 2146 

2147Claude Code は型を加法的に進化させ、既存のものを再形成する代わりに、新しいデータをオプションフィールドとして追加します。知っているフィールドを読み取り、認識しないものは無視してください。2147Claude Code はこの型を追加的に進化させ、既存のフィールドを再構成するのではなく、新しいデータをオプションフィールドとして追加します。知っているフィールドを読み取り、認識しないものは無視してください。

2148 2148 

2149<h3 id="sdkcontextusagecategory">2149<h3 id="sdkcontextusagecategory">

2150 `SDKContextUsageCategory`2150 `SDKContextUsageCategory`

2151</h3>2151</h3>

2152 2152 

2153`/context` 使用状況別カテゴリ分析の 1 行です。2153`/context` のカテゴリ別使用状況の内訳の 1 行です。

2154 2154 

2155```typescript theme={null}2155```typescript theme={null}

2156type SDKContextUsageCategory = {2156type SDKContextUsageCategory = {


2164 2164 

2165| フィールド | 型 | 説明 |2165| フィールド | 型 | 説明 |

2166| - | - | - |2166| - | - | - |

2167| `name` | `string` | `/context` が印刷する行の表示名。例えば `Messages`。名前ではなく `kind` で行を分類 |2167| `name` | `string` | `/context` が出力する行の表示名(例:`Messages`)。行は名前ではなく `kind` で分類してください |

2168| `tokens` | `number` | 行のトークンカウント。行はゼロトークンを持つことができます |2168| `tokens` | `number` | 行のトークン数。行のトークン数がゼロの場合もあります |

2169| `kind` | `string` | 行が表すもの:`used`、`free`、`buffer`、または `deferred` |2169| `kind` | `string` | 行が表すもの:`used`、`free`、`buffer`、または `deferred` |

2170 2170 

2171各 `kind` 値は行のトークンが何であるかを示します:2171各 `kind` 値は行のトークンが何であるかを示します:

2172 2172 

2173* `used`:コンテキストウィンドウを占有するコンテンツ2173* `used`:コンテキストウィンドウを占有するコンテンツ

2174* `free`:残りのウィンドウ2174* `free`:ウィンドウの残り

2175* `buffer`:圧縮リザーブ2175* `buffer`:圧縮用の予約領域

2176* `deferred`:Claude Code がウィンドウから保持し、使用状況計算から除外するツールスキーマ。認識用にリストされています2176* `deferred`:Claude Code がウィンドウ外に保持し、使用状況の計算から除外するツールスキーマ。参考としてリストされています

2177 2177 

2178<h3 id="sdkmessageorigin">2178<h3 id="sdkmessageorigin">

2179 `SDKMessageOrigin`2179 `SDKMessageOrigin`


2207 2207 

2208| `kind` | 意味 |2208| `kind` | 意味 |

2209| - | - |2209| - | - |

2210| `human` | エンドユーザーからの直接入力。アプリケーションがユーザーが入力したものをユーザーメッセージとして転送する場合、その `origin` を明示的に `{ kind: "human" }` に設定します:Claude Code は `origin` なしのユーザーメッセージを属性なしとして扱い、[`ultracode` ワークフローキーワード](/docs/ja/workflows#ask-for-a-workflow-in-your-prompt) などの人間が入力したプロンプトを必要とするチェックはそれを受け入れません。v2.1.210 より前では、Claude Code はユーザーメッセージの存在しない `origin` を人間入力として扱いました |2210| `human` | エンドユーザーからの直接入力。アプリケーションがユーザーの入力内容をユーザーメッセージとして転送する場合、その `origin` を明示的に `{ kind: "human" }` に設定してください:Claude Code は `origin` のないユーザーメッセージを出所不明として扱い、[`ultracode` ワークフローキーワード](/docs/ja/workflows#ask-for-a-workflow-in-your-prompt) など人間が入力したプロンプトを必要とするチェックはそれを受け入れません。v2.1.210 より前では、Claude Code はユーザーメッセージに `origin` がない場合、人間の入力として扱っていました。 |

2211| `channel` | [チャネル](/docs/ja/channels) に到着するメッセージ。`server` はソース MCP サーバー名 |2211| `channel` | [チャネル](/docs/ja/channels) で到着したメッセージ。`server` はソース MCP サーバー名です。 |

2212| `peer` | 別のエージェントからのメッセージ:プロセス内 [チームメイト](/docs/ja/agent-teams) または [クロスセッションピア](/docs/ja/cross-session-messaging)。別の Claude Code セッション。[ピアオリジンフィールド](#peer-origin-fields) については、フィールドごとのセマンティクスと信頼モデルを参照してください |2212| `peer` | 別のエージェントからのメッセージ:プロセス内の [チームメイト](/docs/ja/agent-teams)、または別の Claude Code セッションである [クロスセッションピア](/docs/ja/cross-session-messaging)。フィールドごとのセマンティクスと信頼モデルについては [ピアオリジンフィールド](#peer-origin-fields) を参照してください。 |

2213| `task-notification` | 完了したバックグラウンドタスクなど、新しいユーザープロンプトなしで配信される合成ターンが挿入されました。[`SDKTaskNotificationMessage`](#sdktasknotificationmessage) をそのアームについて参照してください。アプリケーションが [スケジュール実行を宣言](#declare-a-scheduled-run) するプロンプトもこの種を持ちます。オプションの `subkind` は通知を発生させたものをマークします。[タスク通知サブキンド](#task-notification-subkinds) を参照してください |2213| `task-notification` | 完了したバックグラウンドタスクなど、新しいユーザープロンプトなしで到着する配信のために挿入される合成ターン。そのアームについては [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) を参照してください。アプリケーションが [スケジュール実行として宣言](#declare-a-scheduled-run) するプロンプトもこの種類を持ちます。オプションの `subkind` は通知を発生させたものを示します。[タスク通知サブキンド](#task-notification-subkinds) を参照してください。 |

2214| `coordinator` | [エージェントチーム](/docs/ja/agent-teams) のチームコーディネーターからのメッセージ |2214| `coordinator` | [エージェントチーム](/docs/ja/agent-teams) のチームコーディネーターからのメッセージ。 |

2215| `auto-continuation` | セッションが新しいユーザー入力なしで続く場合に挿入される合成ターン。例えば、フォローアッププロンプトをトリガーするコマンド結果 |2215| `auto-continuation` | フォローアッププロンプトをトリガーするコマンド結果など、セッションが新しいユーザー入力なしで続行する場合に挿入される合成ターン。 |

2216| `unclassified` | 出所を判断できない挿入ターン。Claude Code が [`SDKUserMessage`](#sdkusermessage) を `isSynthetic: true` で受け取り、他の `kind` として分類できない場合、メッセージが到着するときにこの種を設定し、ターンをモデルに非ユーザーソースとしてフレーミングします。人間入力として扱う代わりに。アプリケーションはこの値を設定しないでください |2216| `unclassified` | 出所を判断できなかった挿入ターン。Claude Code v2.1.223 以降が必要です。Claude Code が `isSynthetic: true` の [`SDKUserMessage`](#sdkusermessage) を受け取り、他のどの `kind` にも分類できない場合、メッセージの到着時にこの種類を設定し、人間の入力として扱うのではなく、ユーザー以外のソースとしてモデルにターンを提示します。アプリケーションはこの値を設定しないでください。 |

2217 2217 

2218<h3 id="task-notification-subkinds">2218<h3 id="task-notification-subkinds">

2219 タスク通知サブキンド2219 タスク通知サブキンド

2220</h3>2220</h3>

2221 2221 

2222Claude Code がタスク通知をセッションに配信するとき、Anthropic サーバーがその通知がどこから来たかを検証した場合、通知の `origin` に `subkind` を設定します。アプリケーションが [スケジュール実行を宣言](#declare-a-scheduled-run) する場合も設定します。これには TypeScript Agent SDK v0.3.280 以降が必要です。`subkind` には Claude Code v2.1.213 以降が必要で、2 つの値のいずれかを取ります:2222Claude Code がタスク通知をセッションに配信するとき、Anthropic サーバーがその通知の送信元を検証した場合、通知の `origin` に `subkind` を設定します。アプリケーション自身がメッセージを [スケジュール実行として宣言](#declare-a-scheduled-run) した場合も `subkind` を設定します。これには TypeScript Agent SDK v0.3.280 以降が必要です。`subkind` には Claude Code v2.1.213 以降が必要で、2 つの値のいずれかを取ります:

2223 2223 

2224* `scheduled-trigger`:通知は [ルーチン](/docs/ja/routines) の保存されたプロンプト。ルーチンのトリガーの 1 つが発火したため配信されました:スケジュール、[API トリガー](/docs/ja/routines#add-an-api-trigger)、[GitHub トリガー](/docs/ja/routines#add-a-github-trigger)、または **今すぐ実行**。アプリケーションが [スケジュール実行を宣言](#declare-a-scheduled-run) するプロンプトもこの値を持ちます。Claude Code はこれらをモデルにセッションの割り当てられたタスクとしてフレーミングします。他の [タスク通知が持つ通知](#sdktasknotificationmessage) とは異なる通知で2224* `scheduled-trigger`:通知は [ルーティン](/docs/ja/routines) の保存されたプロンプトで、ルーティンのトリガーの 1 つ(スケジュール、[API トリガー](/docs/ja/routines#add-an-api-trigger)、[GitHub トリガー](/docs/ja/routines#add-a-github-trigger)、または **Run now**)が発火したために配信されたものです。アプリケーションが [スケジュール実行として宣言](#declare-a-scheduled-run) するプロンプトもこの値を持ちます。Claude Code はこれらをセッションに割り当てられたタスクとしてモデルに提示し、[他のタスク通知が持つ通知文](#sdktasknotificationmessage) とは異なる通知文を付けます

2225* `peer-send-message`:通知は別のセッションが [クラウドセッション](/docs/ja/claude-code-on-the-web) が互いにメッセージするために使用する server-side `send_message` ツールで送信したメッセージ。[クロスセッション `SendMessage` ツール](/docs/ja/cross-session-messaging) ではなく、Anthropic サーバーが両方のセッションが同じプライベートセッショングループに属することを検証しました。Claude Code v2.1.224 以降が必要です。サーバーがそのように検証しなかった `send_message` 配信は subkind を取得しません2225* `peer-send-message`:通知は、[クラウドセッション](/docs/ja/claude-code-on-the-web) 同士がメッセージをやり取りするために使用するサーバー側の `send_message` ツール([クロスセッション `SendMessage` ツール](/docs/ja/cross-session-messaging) ではない)で別のセッションが送信したメッセージであり、Anthropic サーバーが両方のセッションが同じプライベートなセッショングループに属することを検証したものです。Claude Code v2.1.224 以降が必要です。サーバーがそのように検証しなかった `send_message` の配信には subkind が付きません

2226 2226 

2227他のすべてのタスク通知には `subkind` がありません。これには [PR アクティビティ](/docs/ja/claude-code-on-the-web#how-claude-responds-to-pr-activity) がセッションに配信されたものと、完了したタスクなどのバックグラウンドイベントが含まれます。[クロスセッション `SendMessage` ツール](/docs/ja/cross-session-messaging) からのメッセージはタスク通知ではありません:同じマシンのセッションから来ようと、別のマシンから Anthropic サーバーを通じて来ようと、Claude Code は `kind: "peer"` を与え、[ピアオリジンフィールド](#peer-origin-fields) を与えます。2227他のすべてのタスク通知には `subkind` がありません。これには、セッションに配信される [PR アクティビティ](/docs/ja/claude-code-on-the-web#how-claude-responds-to-pr-activity) や、完了したタスクなどのバックグラウンドイベントが含まれます。[クロスセッション `SendMessage` ツール](/docs/ja/cross-session-messaging) からのメッセージはそもそもタスク通知ではありません:同じマシン上のセッションから来た場合も、別のマシンから Anthropic サーバーを経由して来た場合も、Claude Code はそれらに `kind: "peer"` と [ピアオリジンフィールド](#peer-origin-fields) を付けます。

2228 2228 

2229`fireReason` は `scheduled-trigger` 通知が発火した理由を示します。`scheduled`、`manual`、`retry`、`catch_up`、または `api` などの短い小文字トークンとして。Anthropic サーバーは [ルーチン](/docs/ja/routines) の配信に設定し、アプリケーションはスケジュール実行を宣言するときに設定します。どちらも送信しなかった場合は存在しません。TypeScript Agent SDK v0.3.280 以降が必要です。2229`fireReason` は `scheduled-trigger` 通知が発火した理由を、`scheduled`、`manual`、`retry`、`catch_up`、`api` などの短い小文字のトークンで示します。Anthropic サーバーは [ルーティン](/docs/ja/routines) の配信にこれを設定し、アプリケーションはスケジュール実行を宣言するときにこれを設定します。どちらも送信しなかった場合は存在しません。TypeScript Agent SDK v0.3.280 以降が必要です。

2230 2230 

2231<h4 id="declare-a-scheduled-run">2231<h4 id="declare-a-scheduled-run">

2232 スケジュール実行を宣言2232 スケジュール実行を宣言

2233</h4>2233</h4>

2234 2234 

2235アプリケーションが独自のスケジュールでプロンプトを実行する場合、各実行を宣言して、Claude Code がターンをモデルにスケジュール済みタスクとしてフレーミングするようにします。ライブユーザー入力ではなく。[`env`](#options) で `CLAUDE_CODE_HOST_SCHEDULED_RUN` を `1` に設定してセッションを開始し、実行の [`SDKUserMessage`](#sdkusermessage) を `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` で送信し、`isSynthetic` なし。Claude Code はその変数なしで開始されたプロセスで宣言を無視します。また、プロセスの環境が [`CLAUDECODE`](/docs/ja/env-vars) または `CLAUDE_CODE_CHILD_SESSION` を持つプロセスでも無視します。Claude Code は `fireReason` を値が 1 ~ 32 の小文字またはアンダースコアの場合にのみ保持します。TypeScript Agent SDK v0.3.280 以降が必要です。2235アプリケーションが独自のスケジュールでプロンプトを実行する場合、各実行を宣言すると、Claude Code はそのターンをユーザーからのライブ入力ではなくスケジュールタスクとしてモデルに提示します。[`env`](#options) で `CLAUDE_CODE_HOST_SCHEDULED_RUN` を `1` に設定してセッションを開始し、実行の [`SDKUserMessage`](#sdkusermessage) を `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 付きで、`isSynthetic` なしで送信します。Claude Code はその変数なしで開始されたプロセスでは宣言を無視します。また、環境に [`CLAUDECODE`](/docs/ja/env-vars) または `CLAUDE_CODE_CHILD_SESSION` を持つプロセスでも無視します。Claude Code は、値が 1 ~ 32 文字の小文字またはアンダースコアである場合にのみ `fireReason` を保持します。TypeScript Agent SDK v0.3.280 以降が必要です。

2236 2236 

2237<h3 id="peer-origin-fields">2237<h3 id="peer-origin-fields">

2238 ピアオリジンフィールド2238 ピアオリジンフィールド

2239</h3>2239</h3>

2240 2240 

2241`peer` オリジンは、メッセージを送信したエージェントを識別します:`SendMessage` で `main` に送信するプロセス内 [チームメイト](/docs/ja/agent-teams)、または [クロスセッションピア](/docs/ja/cross-session-messaging)。別の Claude Code セッション。クロスセッションピアには macOS と Linux で Claude Code v2.1.224 以降が必要です。[クロスセッションメッセージング可用性](/docs/ja/cross-session-messaging#availability) のネイティブ Windows 要件を参照してください。クロスセッションピアは同じマシンで実行でき、または [別のマシン](/docs/ja/cross-session-messaging#message-sessions-on-other-machines) または [クラウド](/docs/ja/claude-code-on-the-web) で、リモートコントロールを通じてメッセージが到着する場合。2 つの種類の送信者はフィールドを異なる方法で埋めます:2241`peer` オリジンは、メッセージを送信したエージェントを識別します:`SendMessage` で `main` に送信するプロセス内の [チームメイト](/docs/ja/agent-teams)、または別の Claude Code セッションである [クロスセッションピア](/docs/ja/cross-session-messaging) です。クロスセッションピアには macOS と Linux で Claude Code v2.1.224 以降が必要です。ネイティブ Windows の要件については [クロスセッションメッセージングの利用可能性](/docs/ja/cross-session-messaging#availability) を参照してください。クロスセッションピアは同じマシン上で実行できるほか、メッセージが Remote Control を通じて到着する場合は [別のマシン](/docs/ja/cross-session-messaging#message-sessions-on-other-machines) や [クラウド](/docs/ja/claude-code-on-the-web) で実行することもできます。2 種類の送信者はフィールドを異なる方法で埋めます:

2242 2242 

2243* `from`:チームメイトの名前、またはクロスセッションピアの送信者アドレス。[一方向クロスマシンメッセージ](/docs/ja/cross-session-messaging#message-sessions-on-other-machines) の場合、送信者は返信アドレスを持たず、`from` は `"unknown"` です。値は送信者が作成したもの。`verifiedPeerPid` は検証された ID です2243* `from`:チームメイトの名前、またはクロスセッションピアの送信者アドレス。[一方向のクロスマシンメッセージ](/docs/ja/cross-session-messaging#message-sessions-on-other-machines) の場合、送信者は返信アドレスを持たず、`from` は `"unknown"` です。値は送信者が作成したものです。検証済みの ID は `verifiedPeerPid` です

2244* `fromMode`:送信セッションの権限クラス。`bypass` または `prompting`。セッション間でピアメッセージをリレーするホストによって宣言されます。例えば [デスクトップアプリ](/docs/ja/desktop#work-across-sessions)。Claude Code は受信セッションでそれを読み取り、[インバウンドコントロール](/docs/ja/cross-session-messaging#control-inbound-messages) を適用するときに。Agent SDK v0.3.234 以降が必要です2244* `fromMode`:送信セッションの権限クラス(`bypass` または `prompting`)。[デスクトップアプリ](/docs/ja/desktop#work-across-sessions) など、セッション間でピアメッセージを中継するホストによって宣言されます。Claude Code は受信セッションで [インバウンドコントロール](/docs/ja/cross-session-messaging#control-inbound-messages) を適用するときにこれを読み取ります。Agent SDK v0.3.234 以降が必要です

2245* `senderTaskId`:チームメイトのタスク ID。クロスセッションピアでは存在しません2245* `senderTaskId`:チームメイトのタスク ID。クロスセッションピアでは存在しません

2246* `name`:送信者の表示名。Claude Code によって正規化されます:Unicode 制御、形式、サロゲート、および行または段落セパレーターコードポイントを削除し、結果をトリミングし、64 コードポイントで上限を設定し、省略記号を付けます。Claude Code v2.1.205 以降が必要です2246* `name`:Claude Code によって正規化された送信者の表示名:Unicode の制御、書式、サロゲート、および行または段落区切りのコードポイントを削除し、結果をトリミングして、省略記号付きで 64 コードポイントに制限します。Claude Code v2.1.205 以降が必要です

2247* `body`:ピアエンベロープが削除された、デコードされたメッセージ本体。モデルが見るものとバイト正確です。チームメイトメッセージの場合は常に存在。クロスセッションピアの場合、ターンが Claude Code によって形成された正確に 1 つのピアエンベロープの場合にのみ存在します。メッセージテキストを再解析する代わりに `name` と `body` をレンダリングしてください。Claude Code v2.1.205 以降が必要です2247* `body`:ピアエンベロープを取り除いたデコード済みのメッセージ本文で、モデルが見るものとバイト単位で一致します。チームメイトのメッセージでは常に存在します。クロスセッションピアの場合は、ターンが Claude Code によって形成されたちょうど 1 つのピアエンベロープである場合にのみ存在します。メッセージテキストを再解析する代わりに `name` と `body` をレンダリングしてください。Claude Code v2.1.205 以降が必要です

2248* `fromSession`:送信者のホストが開くことができるセッション ID。送信者のホストによって設定されるため、UI が送信セッションにリンクバックできます。`from` のように、これは送信者が主張したもの:ナビゲーションターゲットとしてのみ使用し、送信者の ID の証明として扱わないでください。Claude Code v2.1.216 以降が必要です2248* `fromSession`:送信者のホストによって設定される、ホストで開くことができる送信者のセッション ID で、UI から送信セッションにリンクできるようにします。`from` と同様に送信者が主張するものです:ナビゲーション先としてのみ使用し、送信者の ID の証明として扱わないでください。Claude Code v2.1.216 以降が必要です

2249* `verifiedPeerPid`:このセッションのクロスセッションメッセージングソケットに接続したプロセスのプロセス ID。カーネルによって検証され、ペイロードからではなく接続自体から読み取られます。送信者を識別するために `from` ではなくこれを使用してください:`from` は同じユーザープロセスによって偽造可能です。フィールドは Claude Code がそれを検証できない場合に存在しません。例えば Windows または非ソケット入力。存在しない値は送信者が検証されていないことを意味します。リレーされたトラフィックの場合、リレーではなくメッセージの作成者を識別し、プロセス ID は再利用可能であるため、認証トークンではなく出所として扱ってください。Claude Code v2.1.216 以降が必要です2249* `verifiedPeerPid`:このセッションのクロスセッションメッセージングソケットに接続したプロセスのプロセス ID。カーネルによって検証され、ペイロードからではなく接続自体から読み取られます。送信者の識別には `from` ではなくこれを使用してください:`from` は同じユーザーのどのプロセスでも偽造できます。Windows やソケット以外の経路など、Claude Code が検証できない場合はフィールドが存在しないため、値がないことは送信者が検証されていないことを意味します。中継されたトラフィックの場合はメッセージの作成者ではなく中継者を識別し、またプロセス ID は再利用される可能性があるため、認証トークンではなく出所情報として扱ってください。Claude Code v2.1.216 以降が必要です

2250 2250 

2251<h2 id="hook-types">2251<h2 id="hook-types">

2252 フック型2252 フック型


5090```5090```

5091 5091 

5092<Warning>5092<Warning>

5093 `context-1m-2025-08-07` ベータは 2026 年 4 月 30 日時点で廃止されました。Claude Sonnet 4.5 または Sonnet 4 でこの値を渡すと効果がなく、標準の 200k トークンコンテキストウィンドウを超えるリクエストはエラーを返します。1M トークンコンテキストウィンドウを使用するには、[Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7、または Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview) に移行してください。これらは標準価格で 1M コンテキストを含み、ベータヘッダーは不要です。5093 Claude API では、`context-1m-2025-08-07` ベータは Claude Sonnet 4.5 および Claude Sonnet 4 で廃止されています。いずれかのモデルでまだこれを渡している場合、標準の 200K トークンのコンテキストウィンドウを超えるリクエストはエラーを返すため、`betas` から削除してください。1M トークンのコンテキストウィンドウでセッションを実行するには、`model` を [デフォルトで 1M ウィンドウで動作する](/docs/ja/model-config#extended-context) モデル(`claude-sonnet-5-5` や `claude-opus-5-5` など)に設定してください。`[1m]` バリアントを通じてのみ 1M に到達するモデルの場合は、`claude-opus-4-6[1m]` のようにモデル ID にサフィックスを付加してください。

5094</Warning>5094</Warning>

5095 5095 

5096<h3 id="slashcommand">5096<h3 id="slashcommand">


5134| フィールド | タイプ | 説明 |5134| フィールド | タイプ | 説明 |

5135| :- | :- | :- |5135| :- | :- | :- |

5136| `value` | `string` | API 呼び出しで渡すモデル識別子 |5136| `value` | `string` | API 呼び出しで渡すモデル識別子 |

5137| `resolvedModel` | `string \| undefined` | このエントリの `value` が解決される正規のワイヤモデル ID。`sonnet` などのエイリアスエントリは `claude-sonnet-5` などの明示的なモデル ID に解決されるため、ホストは保存された明示的なモデル ID をそれをカバーするエイリアスエントリと照合できます。Claude Code v2.1.197 以降が必要です。 |5137| `resolvedModel` | `string \| undefined` | このエントリの `value` が解決されるモデル ID。例えば、`sonnet` エイリアスエントリの場合は `claude-sonnet-5-5` です。Claude Code v2.1.197 以降が必要です。 |

5138| `displayName` | `string` | 人間が読める表示名 |5138| `displayName` | `string` | 人間が読める表示名 |

5139| `description` | `string` | モデルの機能の説明 |5139| `description` | `string` | モデルの機能の説明 |

5140| `supportsEffort` | `boolean \| undefined` | このモデルが努力レベルをサポートするかどうか |5140| `supportsEffort` | `boolean \| undefined` | このモデルが effort レベルをサポートするかどうか |

5141| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | このモデルが受け入れる努力レベル |5141| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | このモデルが受け入れる effort レベル |

5142| `supportsAdaptiveThinking` | `boolean \| undefined` | このモデルが適応的思考をサポートするかどうか。Claude が何をどの程度考えるかを決定します |5142| `supportsAdaptiveThinking` | `boolean \| undefined` | このモデルが適応的思考をサポートするかどうか。Claude がいつ、どの程度思考するかを決定します |

5143| `supportsFastMode` | `boolean \| undefined` | このモデルが高速モードをサポートするかどうか |5143| `supportsFastMode` | `boolean \| undefined` | このモデルが fast mode をサポートするかどうか |

5144| `supportsAutoMode` | `boolean \| undefined` | このモデルが自動モードをサポートするかどうか |5144| `supportsAutoMode` | `boolean \| undefined` | このモデルが auto モードをサポートするかどうか |

5145 5145 

5146<h3 id="agentinfo">5146<h3 id="agentinfo">

5147 `AgentInfo`5147 `AgentInfo`


5284 5284 

5285`thinkingTokens` はこのモデルが生成した思考トークンをカウントします。`outputTokens` はすでにそれらを含んでいるため、2 つを合計しないでください。フィールドは、ターンが記録するバージョンの Claude Code で実行されるまで存在しません。そのため、以前のバージョンで開始された再開されたセッションは部分的なカウントを報告します。`thinkingTokens` には Agent SDK v0.3.257 以降が必要です。5285`thinkingTokens` はこのモデルが生成した思考トークンをカウントします。`outputTokens` はすでにそれらを含んでいるため、2 つを合計しないでください。フィールドは、ターンが記録するバージョンの Claude Code で実行されるまで存在しません。そのため、以前のバージョンで開始された再開されたセッションは部分的なカウントを報告します。`thinkingTokens` には Agent SDK v0.3.257 以降が必要です。

5286 5286 

5287`canonicalModel` および `provider` フィールドには Claude Code v2.1.218 以降が必要です。`canonicalModel` は価格ルックアップが使用する正規モデル ID です。例えば、その文字列がプロバイダー固有の ID またはエイリアスの場合、生のモデル文字列と異なる場合があります。5287`canonicalModel` および `provider` フィールドには Claude Code v2.1.218 以降が必要です。`canonicalModel` は価格ルックアップが使用する正規モデル ID です。例えば、その文字列がプロバイダー固有の ID またはエイリアスの場合、エントリのキーとなる生のモデル文字列と異なる場合があります。

5288 5288 

5289`provider` は、`firstParty`、`bedrock`、`vertex`、`foundry`、`anthropicAws`、`mantle`、`gateway` など、モデルを提供した API バックエンドに名前を付けます。5289`provider` は、`firstParty`、`bedrock`、`vertex`、`foundry`、`anthropicAws`、`mantle`、`gateway` など、モデルを提供した API バックエンドに名前を付けます。

5290 5290 


5339 5339 

5340`output_tokens_details` は請求された出力をカテゴリ別に分類します。現在、`thinking_tokens: number` という 1 つのフィールドを持ち、モデルが内部推論として生成した出力トークンをカウントします。これには思考ブロック区切り文字が含まれます。`output_tokens_details` フィールドには TypeScript SDK v0.3.228 以降が必要で、これは Claude Code v2.1.228 をバンドルしています。5340`output_tokens_details` は請求された出力をカテゴリ別に分類します。現在、`thinking_tokens: number` という 1 つのフィールドを持ち、モデルが内部推論として生成した出力トークンをカウントします。これには思考ブロック区切り文字が含まれます。`output_tokens_details` フィールドには TypeScript SDK v0.3.228 以降が必要で、これは Claude Code v2.1.228 をバンドルしています。

5341 5341 

5342* **請求**: 観測可能性のために分類を読み、請求のためではありません。`output_tokens` は権限のある合計のままで、`output_tokens - thinking_tokens` は非推論出力を近似します。5342* **請求**: 分類は請求のためではなく、観測可能性のために読んでください。`output_tokens` は引き続き正式な合計であり、`output_tokens - thinking_tokens` は非推論出力を近似します。

5343* **カウントが対象とするもの**: モデルが生成した生の推論。これは応答本文で返された思考テキストより長い場合があります。API はその生テキストを再トークン化することで計算するため、モデルの正確な生成カウントから数トークン異なる場合があります。5343* **カウントが対象とするもの**: モデルが生成した生の推論。これは応答本文で返された思考テキストより長い場合があります。API はその生テキストを再トークン化することで計算するため、モデルの正確な生成カウントから数トークン異なる場合があります。

5344* **ストリーミング**: ストリーミングされたアシスタントメッセージでは、この分類は `output_tokens` と同様に `message_start` プレースホルダーで、実際のカウントを持たないため、[結果メッセージから出力トークンを読む](/docs/ja/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) で説明されているように結果メッセージから読んでください。結果メッセージでは、モデルまたはプロバイダーが分類を報告しない場合、`thinking_tokens` は `0` を読みます。5344* **ストリーミング**: ストリーミングされたアシスタントメッセージでは、この分類は `output_tokens` と同様に `message_start` プレースホルダーで、実際のカウントを持たないため、[結果メッセージから出力トークンを読む](/docs/ja/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) で説明されているように結果メッセージの `usage` から読んでください。結果メッセージでは、モデルまたはプロバイダーが分類を報告しない場合、`thinking_tokens` は `0` になります。

5345* **`null` ケース**: `output_tokens_details` 自体は、Claude Code が合成するアシスタントメッセージ(API エラーメッセージなど)では `null` です。5345* **`null` ケース**: `output_tokens_details` 自体は、Claude Code が合成するアシスタントメッセージ(API エラーメッセージなど)では `null` です。

5346 5346 

5347<h3 id="calltoolresult">5347<h3 id="calltoolresult">


5365 `SDKMcpResourceLink`5365 `SDKMcpResourceLink`

5366</h3>5366</h3>

5367 5367 

5368MCP ツールが参照によって返した 1 つのファイルです。Claude Code は各エントリをツール結果の `resource_link` ブロックから構築し、[`SDKUserMessage.tool_use_result`](#sdkusermessage) の `resourceLinks` として、または [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) の `resource_links` として呼び出しがバックグラウンドで完了したときにリストを配信します。Agent SDK v0.3.257 以降が必要です。5368MCP ツールが参照によって返した 1 つのファイルです。Claude Code は各エントリをツール結果の `resource_link` ブロックから構築し、リストを [`SDKUserMessage.tool_use_result`](#sdkusermessage) の `resourceLinks` として、または呼び出しがバックグラウンドで完了した場合は [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) の `resource_links` として配信します。Agent SDK v0.3.257 以降が必要です。

5369 5369 

5370```typescript theme={null}5370```typescript theme={null}

5371type SDKMcpResourceLink = {5371type SDKMcpResourceLink = {


5483 5483 

5484新しく追加された stdio、HTTP、SSE サーバーが接続または失敗した後、プロミスが解決されるため、接続されたサーバーからのツールは次のターンで利用可能です。5484新しく追加された stdio、HTTP、SSE サーバーが接続または失敗した後、プロミスが解決されるため、接続されたサーバーからのツールは次のターンで利用可能です。

5485 5485 

5486`added` は Claude Code が追加または置き換えたサーバーをリストします。接続したかどうかに関わらず。接続に失敗したサーバーは `added` と `errors` の両方に表示され、失敗テキストは `errors` の下にあり、[`mcpServerStatus()`](#methods) に `failed` 行があります。Claude Code v2.1.257 より前では、接続試行がスローされたサーバーは `errors` の下にのみ報告されました。5486`added` は、接続したかどうかに関わらず、Claude Code が追加または置き換えたサーバーをリストします。接続に失敗したサーバーは `added` と `errors` の両方に表示され、失敗テキストは `errors` の下にあり、[`mcpServerStatus()`](#methods) に `failed` 行があります。Claude Code v2.1.257 より前では、接続試行がスローされたサーバーは `errors` の下にのみ報告されました。

5487 5487 

5488<h3 id="rewindfilesresult">5488<h3 id="rewindfilesresult">

5489 `RewindFilesResult`5489 `RewindFilesResult`


5502};5502};

5503```5503```

5504 5504 

5505`skippedLinks` は、リンク安全性のためにリワインドが復元または削除を拒否した追跡パスをカウントします。追跡パスのシンボリックリンク、ハードリンク、またはその他の非通常ファイル、チェックポイント取得時に指していた場所に解決されなくなった親ディレクトリ、または安全に読み取ることができなかったバックアップ。フィールドには Claude Code v2.1.216 以降が必要です。`rewindFiles(userMessageId, { dryRun: true })` でのプレビュー呼び出しは設定しません。5505`skippedLinks` は、リンク安全性のために巻き戻しが復元または削除を拒否した追跡パスをカウントします。追跡パスのシンボリックリンク、ハードリンク、またはその他の非通常ファイル、チェックポイント取得時に指していた場所に解決されなくなった親ディレクトリ、または安全に読み取ることができなかったバックアップ。フィールドには Claude Code v2.1.216 以降が必要です。`rewindFiles(userMessageId, { dryRun: true })` でのプレビュー呼び出しは設定しません。

5506 5506 

5507<h3 id="sdkstatusmessage">5507<h3 id="sdkstatusmessage">

5508 `SDKStatusMessage`5508 `SDKStatusMessage`


5525 `SDKTaskNotificationMessage`5525 `SDKTaskNotificationMessage`

5526</h3>5526</h3>

5527 5527 

5528バックグラウンドタスクが完了、失敗、または停止したときの通知です。バックグラウンドタスクには `run_in_background` Bash コマンド、[Monitor](#monitor) ウォッチ、バックグラウンドサブエージェントが含まれます。`ambient` フィールドについては、[`SDKTaskStartedMessage`](#sdktaskstartedmessage) を参照してください。これはそれを定義し、そのバージョン要件を定義します。5528バックグラウンドタスクが完了、失敗、または停止したときの通知です。バックグラウンドタスクには `run_in_background` Bash コマンド、[Monitor](#monitor) ウォッチ、バックグラウンドサブエージェントが含まれます。`ambient` フィールドについては、それとそのバージョン要件を定義している [`SDKTaskStartedMessage`](#sdktaskstartedmessage) を参照してください。

5529 5529 

5530```typescript theme={null}5530```typescript theme={null}

5531type SDKTaskNotificationMessage = {5531type SDKTaskNotificationMessage = {


5548};5548};

5549```5549```

5550 5550 

5551Claude Code が [長い MCP ツール呼び出しをバックグラウンドに移動](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) する場合、その呼び出しの `tool_result` ブロックはプレースホルダーのみを保持し、呼び出しの実際の結果はこの通知で到着します。`tool_use_id` で通知を呼び出しと照合してください。5551Claude Code が [長い MCP ツール呼び出しをバックグラウンドに移動](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) する場合、その呼び出しの `tool_result` ブロックはプレースホルダーのみを保持し、呼び出しの実際の結果はこの通知で到着します。`tool_use_id` で通知を呼び出しと照合してください。`completed` 通知では、`resource_links` はツールが参照によって返したファイルを [`SDKMcpResourceLink`](#sdkmcpresourcelink) エントリとしてリストし、[`tool_use_result.resourceLinks`](#sdkusermessage) と同じ 50 リンクおよび 64 KiB の制限があります。Claude Code は、結果にリンクがない場合と、MCP ツール呼び出しではないタスクの通知では `resource_links` を省略します。`resource_links` には Agent SDK v0.3.257 以降が必要です。

5552`completed` 通知では、`resource_links` はツールが [`SDKMcpResourceLink`](#sdkmcpresourcelink) エントリとして参照によって返したファイルをリストし、[`tool_use_result.resourceLinks`](#sdkusermessage) と同じ 50 リンクおよび 64 KiB 制限があります。Claude Code は結果にリンクがなく、MCP ツール呼び出しではないタスクの通知では `resource_links` を省略します。`resource_links` には Agent SDK v0.3.257 以降が必要です。

5553 5552 

5554Claude Code は、[`scheduled-trigger` サブカインド](#task-notification-subkinds) でスタンプされた配信を除き、送信するすべてのタスク通知にモデルへの通知を前置します。これらは代わりに割り当てられたタスクフレーミングを持ちます。通知は、人間の入力が発生していないため、モデルが通知をユーザー指示または承認として扱わないことを述べています。5553Claude Code は、モデルに送信するすべてのタスク通知に告知を前置します。ただし、[`scheduled-trigger` サブカインド](#task-notification-subkinds) でスタンプされた配信は除きます。これらは代わりに割り当てられたタスクとしてのフレーミングを持ちます。告知は人間の入力が発生していないことを述べるため、モデルは通知をユーザーの指示や承認として扱いません。

5555 5554 

5556タスク通知ターンを検出するには、[`SDKUserMessage`](#sdkusermessage) または [`SDKResultMessage`](#sdkresultmessage) で `origin.kind === "task-notification"` をチェックしてください。通知テキストの一致ではなく。必要に応じて同じフィールドから `subkind` を読んで、何がそれを発生させたかを知ってください。v2.1.205 より前では、Claude Code はセッションがアイドル状態の間に到着した通知から通知を除外しました。5555タスク通知ターンを検出するには、告知テキストと照合するのではなく、[`SDKUserMessage`](#sdkusermessage) または [`SDKResultMessage`](#sdkresultmessage) で `origin.kind === "task-notification"` をチェックしてください。何がそれを発生させたかを知る必要がある場合は、同じフィールドから `subkind` を読んでください。v2.1.205 より前では、Claude Code はセッションがアイドル状態の間に到着した通知に告知を付けていませんでした。

5557 5556 

5558<h3 id="sdktoolusesummarymessage">5557<h3 id="sdktoolusesummarymessage">

5559 `SDKToolUseSummaryMessage`5558 `SDKToolUseSummaryMessage`


5666 5665 

5667ツール呼び出しがメイン会話で実行されている間、Claude Code は `heartbeat: true` で 30 秒ごとに `tool_progress` メッセージを発行します。各ハートビートはツール名と経過秒数を持ち、長時間実行される呼び出しを停止したセッションと区別できます。Claude Code はサブエージェント内のツール呼び出しのハートビートを発行しません。`heartbeat` フィールドには Agent SDK v0.3.214 以降が必要です。v2.1.257 より前では、Claude Code はフォアグラウンド Agent ツール呼び出しのハートビートも発行しませんでした。5666ツール呼び出しがメイン会話で実行されている間、Claude Code は `heartbeat: true` で 30 秒ごとに `tool_progress` メッセージを発行します。各ハートビートはツール名と経過秒数を持ち、長時間実行される呼び出しを停止したセッションと区別できます。Claude Code はサブエージェント内のツール呼び出しのハートビートを発行しません。`heartbeat` フィールドには Agent SDK v0.3.214 以降が必要です。v2.1.257 より前では、Claude Code はフォアグラウンド Agent ツール呼び出しのハートビートも発行しませんでした。

5668 5667 

5669ハートビート以外の Agent ツールの `tool_progress` メッセージでは、`subagent_type` は実行中のサブエージェントタイプ(`general-purpose` など)に名前を付けます。`subagent_retry` はそのサブエージェントが API エラーバックオフ(レート制限やオーバーロードなど)を待機している間に存在し、再試行試行ごとに 1 つのメッセージがあります。両方のフィールドには Agent SDK v0.3.214 以降が必要です。5668ハートビート以外の Agent ツールの `tool_progress` メッセージでは、`subagent_type` は実行中のサブエージェントタイプ(`general-purpose` など)に名前を付けます。`subagent_retry` はそのサブエージェントが API エラーバックオフ(レート制限やオーバーロードなど)を待機している間に存在し、再試行ごとに 1 つのメッセージがあります。両方のフィールドには Agent SDK v0.3.214 以降が必要です。

5670 5669 

5671`subagent_retry` から再試行インジケーターをレンダリングするには:5670`subagent_retry` から再試行インジケーターをレンダリングするには:

5672 5671 

5673* `parent_tool_use_id` でインジケーターを追跡します。これはサブエージェントごとに一意です。`tool_use_id` は 1 つのアシスタントターンから並列サブエージェントで共有されるため、それで追跡するとあるサブエージェントの更新が別のサブエージェントのインジケーターをクリアします。5672* `parent_tool_use_id` でインジケーターを追跡します。これはサブエージェントごとに一意です。`tool_use_id` は 1 つのアシスタントターンから並列サブエージェントで共有されるため、それで追跡するとあるサブエージェントの更新が別のサブエージェントのインジケーターをクリアしてしまいます。

5674* 同じ `parent_tool_use_id` の後の `tool_progress` が `subagent_retry` も `heartbeat: true` も持たない場合、またはツールの結果メッセージが到着したときにインジケーターをクリアします。`heartbeat: true` のフレームはライブネスのみを報告するため、1 つが到着したときはインジケーターを保持してください。`attempt` は永続的な再試行の下で `max_retries` を超える可能性があるため、カウンターからクリアを導出しないでください。5673* 同じ `parent_tool_use_id` の後の `tool_progress` が `subagent_retry` も `heartbeat: true` も持たずに到着した場合、またはツールの結果メッセージが到着したときにインジケーターをクリアします。`heartbeat: true` のフレームはライブネスのみを報告するため、それが到着したときはインジケーターを保持してください。`attempt` は永続的な再試行の下で `max_retries` を超える可能性があるため、カウンターからクリアを導出しないでください。

5675* `error_category` を表示テキストではなく、独自のメッセージテキストを選択するためのトークンとして扱います。値は `rate_limit`、`overloaded`、`authentication_failed`、`server_error`、`cloud_credential_error`、`unknown` です。認識しない値を `unknown` と同じ方法で処理してください。後のリリースは値を追加できるためです。5674* `error_category` を表示テキストではなく、独自のメッセージテキストを選択するためのトークンとして扱います。値は `rate_limit`、`overloaded`、`authentication_failed`、`server_error`、`cloud_credential_error`、`unknown` です。後のリリースで値が追加される可能性があるため、認識しない値は `unknown` と同じ方法で処理してください。

5676 5675 

5677<h3 id="sdkauthstatusmessage">5676<h3 id="sdkauthstatusmessage">

5678 `SDKAuthStatusMessage`5677 `SDKAuthStatusMessage`


5720`is_backgrounded` および `spawn_depth` は Claude Code がタスクをどのように開始したかを説明します。両方のフィールドには Agent SDK v0.3.238 以降が必要です。5719`is_backgrounded` および `spawn_depth` は Claude Code がタスクをどのように開始したかを説明します。両方のフィールドには Agent SDK v0.3.238 以降が必要です。

5721 5720 

5722* `is_backgrounded`: Claude Code は `"local_agent"` および `"local_bash"` タスクで設定します。`true` はタスクがバックグラウンドで実行されることを意味します。`false` はタスクがフォアグラウンドで実行され、それを開始したツール呼び出しはタスクが完了するかバックグラウンドに移動するまでブロックされたままであることを意味します。5721* `is_backgrounded`: Claude Code は `"local_agent"` および `"local_bash"` タスクで設定します。`true` はタスクがバックグラウンドで実行されることを意味します。`false` はタスクがフォアグラウンドで実行され、それを開始したツール呼び出しはタスクが完了するかバックグラウンドに移動するまでブロックされたままであることを意味します。

5723* `spawn_depth`: Claude Code は `"local_agent"` タスクのみで設定します。メインスレッドが生成したサブエージェントの深さは `1` です。深さ `1` サブエージェントが生成したサブエージェントの深さは `2` などです。5722* `spawn_depth`: Claude Code は `"local_agent"` タスクのみで設定します。メインスレッドが生成したサブエージェントの深さは `1` です。深さ `1` のサブエージェントが生成したサブエージェントの深さは `2` となり、以下同様です。

5724 5723 

5725[再開されたサブエージェント](/docs/ja/agent-sdk/subagents#resume-subagents) は常に `is_backgrounded: true` を報告します。Claude Code はすべての再開されたサブエージェントをバックグラウンドで実行するためです。フォアグラウンドタスクが後でバックグラウンドに移動する場合、Claude Code は新しい `is_backgrounded` 値を [`task_updated`](#sdktaskupdatedmessage) メッセージで報告し、2 番目の `task_started` を送信しません。5724[再開されたサブエージェント](/docs/ja/agent-sdk/subagents#resume-subagents) は常に `is_backgrounded: true` を報告します。Claude Code はすべての再開されたサブエージェントをバックグラウンドで実行するためです。フォアグラウンドタスクが後でバックグラウンドに移動する場合、Claude Code は 2 番目の `task_started` を送信するのではなく、新しい `is_backgrounded` 値を [`task_updated`](#sdktaskupdatedmessage) メッセージで報告します。

5726 5725 

5727<h3 id="sdktaskprogressmessage">5726<h3 id="sdktaskprogressmessage">

5728 `SDKTaskProgressMessage`5727 `SDKTaskProgressMessage`

5729</h3>5728</h3>

5730 5729 

5731サブエージェントまたはバックグラウンドタスクが実行中に定期的に発行されます。サブエージェントタスクの場合、`summary` フィールドはモデル生成の進捗概要を持ち、[`agentProgressSummaries`](#options) が有効な場合にのみ入力されます。[バックグラウンド化された MCP ツール呼び出し](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) の場合、`summary` は MCP サーバーの最新報告進捗を持ち、そのオプションに依存しません。5730サブエージェントまたはバックグラウンドタスクが実行中に定期的に発行されます。

5731 

5732サブエージェントタスクの場合、`summary` フィールドはモデル生成の進捗概要を持ち、[`agentProgressSummaries`](#options) が有効な場合にのみ入力されます。[バックグラウンド化された MCP ツール呼び出し](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) の場合、`summary` は MCP サーバーが最後に報告した進捗を持ち、そのオプションに依存しません。

5732 5733 

5733```typescript theme={null}5734```typescript theme={null}

5734type SDKTaskProgressMessage = {5735type SDKTaskProgressMessage = {


5778 `SDKBackgroundTasksChangedMessage`5779 `SDKBackgroundTasksChangedMessage`

5779</h3>5780</h3>

5780 5781 

5781ライブバックグラウンドタスクのセットが変わるときに発行されます。タスクが開始、完了、キル、フォアグラウンドエージェントがバックグラウンド化、またはタスクの `description` または `ambient` フィールドが変わるときなど。5782ライブバックグラウンドタスクのセットが変わるたびに発行されます。タスクの開始、完了、キル、フォアグラウンドエージェントのバックグラウンド化、またはタスクの `description` または `ambient` フィールドの変更などです。

5782 5783 

5783`tasks` 配列はライブセット全体です。`task_started` および `task_notification` イベントをペアリングするのではなく、各ペイロードでキャッシュされたセットを置き換えてください。次のメンバーシップ変更は逃したイベントを修正します。5784`tasks` 配列はライブセット全体です。`task_started` および `task_notification` イベントをペアリングするのではなく、各ペイロードでキャッシュされたセットを置き換えてください。そうすれば、次のメンバーシップ変更で逃したイベントが修正されます。

5784 5785 

5785これらのタスクごとのイベントに対する順序付けは指定されていないため、2 つのストリームを相関させないでください。5786これらのタスクごとのイベントに対する順序付けは指定されていないため、2 つのストリームを相関させないでください。

5786 5787 

5787起動時には何も発行されません。セッションの CLI プロセスが開始または再開されるたびに空のセットにリセットし、次のメンバーシップ変更でそれを再入力させてください。5788起動時には何も発行されません。セッションの CLI プロセスが開始または再開されるたびに空のセットにリセットし、次のメンバーシップ変更でそれを再入力させてください。

5788 5789 

5789実行中のセッションに繰り返される `initialize` 制御リクエストを送信する場合(例えば、トランスポートギャップ後の [`reinitialize()`](#query-object))、Claude Code は応答に続いて現在のライブセットのスナップショットを送信します。空の場合でも。再接続ホストは次のメンバーシップ変更を待つことなく何が実行されているかを学習します。Agent SDK v0.3.239 より前では、Claude Code は繰り返された `initialize` の後にスナップショットを送信しませんでした。5790実行中のセッションに繰り返しの `initialize` 制御リクエストを送信する場合(例えば、トランスポートギャップ後の [`reinitialize()`](#query-object))、Claude Code はレスポンスに続いて、空の場合でも現在のライブセットのスナップショットを送信します。そのため、再接続するホストは次のメンバーシップ変更を待つことなく何が実行されているかを把握できます。Agent SDK v0.3.239 より前では、Claude Code は繰り返された `initialize` の後にスナップショットを送信しませんでした。

5790 5791 

5791Claude Code v2.1.203 以降が必要です。5792Claude Code v2.1.203 以降が必要です。

5792 5793 


5809 `SDKThinkingTokensMessage`5810 `SDKThinkingTokensMessage`

5810</h3>5811</h3>

5811 5812 

5812Claude が思考ブロック(編集されたものを含む)を生成している間に発行されます。`estimated_tokens` は現在のブロックで生成された思考トークンの実行推定値で、`estimated_tokens_delta` はこのフレームで持ち込まれた増分です。進捗表示にこれらの推定値を使用してください。5813Claude が思考ブロック(編集されたものを含む)を生成している間に発行されます。`estimated_tokens` は現在のブロックでこれまでに生成された思考トークンの逐次推定値で、`estimated_tokens_delta` はこのフレームが持つ増分です。進捗表示にこれらの推定値を使用してください。

5813 5814 

5814モデルまたはプロバイダーが分類を報告する場合、トップレベルエージェントループの最終カウントは結果メッセージの [`usage.output_tokens_details.thinking_tokens`](#usage) です。これは [サブエージェントトークンを含みません](/docs/ja/agent-sdk/cost-tracking#get-the-total-cost-of-a-query)。5815モデルまたはプロバイダーが分類を報告する場合、トップレベルエージェントループの最終カウントは結果メッセージの [`usage.output_tokens_details.thinking_tokens`](#usage) です。これは [サブエージェントトークンを含みません](/docs/ja/agent-sdk/cost-tracking#get-the-total-cost-of-a-query)。

5815 5816 


5867};5868};

5868```5869```

5869 5870 

5870`errorCode` が `"credits_required"` の場合、拒否は含まれた使用量が枯渇した claude.ai サブスクリプションからのもので、ユーザーが使用クレジットを購入するまでセッションは続行できません。`canUserPurchaseCredits` はアカウントのクレジットを購入できるかどうかを示し、`hasChargeableSavedPaymentMethod` は保存された支払い方法がファイルにあるかどうかを示します。3 つのフィールドすべてはクレジット必須拒否ではないレート制限イベントでは存在しません。Claude Code v2.1.181 以降が必要です。5871`errorCode` が `"credits_required"` の場合、拒否は含まれる使用量を使い切った claude.ai サブスクリプションからのもので、ユーザーが使用クレジットを購入するまでセッションは続行できません。`canUserPurchaseCredits` は認証されたユーザーがアカウントのクレジットを購入できるかどうかを示し、`hasChargeableSavedPaymentMethod` は保存された支払い方法が登録されているかどうかを示します。3 つのフィールドはすべて、クレジット必須の拒否ではないレート制限イベントでは存在しません。Claude Code v2.1.181 以降が必要です。

5871 5872 

5872<h3 id="sdklocalcommandoutputmessage">5873<h3 id="sdklocalcommandoutputmessage">

5873 `SDKLocalCommandOutputMessage`5874 `SDKLocalCommandOutputMessage`


5889 `SDKCommandsChangedMessage`5890 `SDKCommandsChangedMessage`

5890</h3>5891</h3>

5891 5892 

5892利用可能なコマンドのセットがセッション中に変わるときに発行されます。例えば、Claude Code がエージェントがサブディレクトリに入るときにスキルを発見するときなど。`commands` 配列は完全に更新されたリストなため、このペイロードでキャッシュされたコマンドリストを置き換えてください。このメッセージの後に [`supportedCommands()`](#query-object) を呼び出すと、メソッドが最新のプッシュを追跡するため、同じ更新されたリストが返されます。これには Agent SDK v0.3.216 以降が必要です。以前の SDK バージョンでは、`supportedCommands()` は初期化時にキャプチャされたスナップショットを返し、セッション中の変更を反映しません。5893利用可能なコマンドのセットがセッション中に変わるときに発行されます。例えば、エージェントがサブディレクトリに入る際に Claude Code がスキルを発見するときなど。`commands` 配列は完全に更新されたリストなため、このペイロードでキャッシュされたコマンドリストを置き換えてください。このメッセージの後に [`supportedCommands()`](#query-object) を呼び出すと、メソッドが最新のプッシュを追跡するため、同じ更新されたリストが返されます。これには Agent SDK v0.3.216 以降が必要です。以前の SDK バージョンでは、`supportedCommands()` は初期化時にキャプチャされたスナップショットを返し、セッション中の変更を反映しません。

5893 5894 

5894Claude Code はまた、MCP サーバーの [プロンプト](/docs/ja/mcp#use-mcp-prompts-as-commands) がリストに参加または離脱するときにこのメッセージを発行します。例えば、セッション開始後にサーバーが接続を完了するときなど。これには Claude Code v2.1.281 以降が必要です。5895Claude Code はまた、MCP サーバーの [プロンプト](/docs/ja/mcp#use-mcp-prompts-as-commands) がリストに追加または削除されるときにもこのメッセージを発行します。例えば、セッション開始後にサーバーが接続を完了するときなど。これには Claude Code v2.1.281 以降が必要です。

5895 5896 

5896```typescript theme={null}5897```typescript theme={null}

5897type SDKCommandsChangedMessage = {5898type SDKCommandsChangedMessage = {


5907 `SDKPromptSuggestionMessage`5908 `SDKPromptSuggestionMessage`

5908</h3>5909</h3>

5909 5910 

5910[`promptSuggestions`](#options) が有効で Claude Code がそのターンの提案を生成した後、ターンの後に発行されます。予測される次のユーザープロンプトが含まれます。提案を取得しないターンについては、[Claude Code が提案をスキップする場合](/docs/ja/interactive-mode#when-claude-code-skips-suggestions) を参照してください。5911[`promptSuggestions`](#options) が有効で、Claude Code がそのターンの提案を生成した場合に、ターンの後に発行されます。予測される次のユーザープロンプトが含まれます。提案を取得しないターンについては、[Claude Code が提案をスキップする場合](/docs/ja/interactive-mode#when-claude-code-skips-suggestions) を参照してください。

5911 5912 

5912```typescript theme={null}5913```typescript theme={null}

5913type SDKPromptSuggestionMessage = {5914type SDKPromptSuggestionMessage = {


5956class AbortError extends Error {}5957class AbortError extends Error {}

5957```5958```

5958 5959 

5959`AbortError` は SDK の型付き API の唯一のエラークラスです。Claude Code プロセスの終了や起動失敗など、その他の失敗は、SDK クラスと照合するメッセージイテレーションを拒否します。[トラブルシューティング](/docs/ja/agent-sdk/troubleshooting) はそれらのエラーをメッセージでキー付けし、各エラーの原因と修正を示します。5960`AbortError` は SDK の型付き API における唯一のエラークラスです。Claude Code プロセスの終了や起動失敗など、その他の失敗は、照合できる SDK クラスを持たないエラーでメッセージイテレーションを拒否します。[トラブルシューティング](/docs/ja/agent-sdk/troubleshooting) では、それらのエラーをメッセージごとに整理し、各エラーの原因と修正方法を示しています。

5960 5961 

5961<h2 id="sandbox-configuration">5962<h2 id="sandbox-configuration">

5962 サンドボックス設定5963 サンドボックス設定

agent-teams.md +5 −2

Details

195* **In-process モード**:エージェントパネルで上下矢印キーを使用してチームメンバーを選択し、Enter キーを押してそのセッションを表示して、メッセージを入力してください。選択したチームメンバーで `x` を押してそれを停止してください。Ctrl+T を押してタスクリストを切り替えてください。195* **In-process モード**:エージェントパネルで上下矢印キーを使用してチームメンバーを選択し、Enter キーを押してそのセッションを表示して、メッセージを入力してください。選択したチームメンバーで `x` を押してそれを停止してください。Ctrl+T を押してタスクリストを切り替えてください。

196* **分割ペインモード**:チームメンバーのペインをクリックして、セッションと直接対話してください。各チームメンバーは独自のターミナルの完全なビューを持っています。196* **分割ペインモード**:チームメンバーのペインをクリックして、セッションと直接対話してください。各チームメンバーは独自のターミナルの完全なビューを持っています。

197 197 

198In-process チームメンバーを表示している間、プレーンテキストと [skills](/docs/ja/skills) はそのチームメンバーに送信されますが、組み込みコマンドはリーダーのセッションで実行されます。198In-process チームメイトを表示している間、プレーンテキストと[スキル](/docs/ja/skills)はそのチームメイトに送信され、組み込みコマンドはリーダーのセッションに送信されます。ただし、次の安全策があります。

199 199 

200チームメンバーのモデルと高速モードはそれが生成されるときに固定されるため、`/model` と `/fast` はリーダーの設定のみを変更します。v2.1.199 以降、チームメンバーを表示している間にいずれかのコマンドを入力すると、変更がリーダーに適用されることを示す通知が表示されます。それより前のバージョンでは、指示なしでリーダーに適用されました。`/effort` はチームメンバーの後続のターンに適用されます。これはチームメンバーがリーダーの[努力レベル](/docs/ja/model-config#adjust-effort-level)に従うためです。200* `/compact`、`/clear`、`/rewind` はリーダーの会話に作用するため、このビューからいずれかを実行する前に Claude Code が確認を求めます。

201* `/model` と `/fast` はチームメイトではなくリーダーのモデルと fast mode を設定するため、このビューからは実行されません。その理由を示す通知が表示されます。

202 

203チームメイトのモデルと fast mode は、スポーン時に固定されます。`/effort` は引き続き表示中のチームメイトの後続のターンに適用されます。これはチームメイトがリーダーの [effort レベル](/docs/ja/model-config#adjust-effort-level)に従うためです。

201 204 

202<h3 id="assign-and-claim-tasks">205<h3 id="assign-and-claim-tasks">

203 タスクを割り当てて要求する206 タスクを割り当てて要求する

agent-view.md +26 −6

Details

224 224 

225ほとんどの場合、ピークパネルで十分であり、フルトランスクリプトを開く必要はありません。225ほとんどの場合、ピークパネルで十分であり、フルトランスクリプトを開く必要はありません。

226 226 

227ピークパネルに返信を入力して `Enter` を押すと、そのセッションに送信されます。セッションが複数選択肢の質問をしている場合、ピークパネルはオプションを番号付きリストとして表示し、数字キーを押して 1 つを選択できます。許可プロンプトはテキストとして表示され、セッションが実行したいことを説明します。番号付きオプションはありません。返信を入力して答えるか、標準プロンプトで答えるためにアタッチします。他のブロックされたセッションの場合は、`Tab` を押して入力に提案された返信を入力し、送信前に編集できます。返信の前に `!` を付けて Bash コマンドを代わりに送信します。227ピークパネルに返信を入力して `Enter` を押すと、そのセッションに送信されます。返信の先頭に `!` を付けると、代わりに Bash コマンドを送信します。返信がどう扱われるかは、セッションと送信する内容によって異なります:

228 

229* 作業中のセッション:返信は応答を中断せずにセッションの [メッセージキュー](/docs/ja/interactive-mode#queue-messages-while-claude-works) に追加され、[キューに入れた入力が反映されるタイミング](/docs/ja/interactive-mode#when-claude-code-sends-what-you-queued) で反映されます。[コマンド](/docs/ja/commands) は、セッション自体のプロンプトで入力するとすぐに実行されるものであっても、ターンが終了するまで待機します

230* `/stop` だけの返信:セッションに届けられるのではなく、セッションが作業中でもユーザーを待っている状態でも、その場でセッションを停止します

231* [シェルジョブ](#run-a-shell-command):返信は `/stop` も含め、入力としてコマンドのターミナルに送られます

232 

233セッションがユーザーを待っている場合、ピークパネルからの答え方は、セッションが何を待っているかによって異なります:

234 

235* 選択肢が用意された質問:パネルには選択肢が番号付きで表示されます。返信入力が空の状態で選択肢の番号を押すと入力され、`Enter` で送信できます。または、代わりに独自の回答を入力します

236* 選択肢のない質問:回答を入力します。空の入力に返信の候補が表示されている場合は、`Tab` を押して入力し、送信前に編集できます

237* 権限プロンプトまたはその他のダイアログ([サンドボックス](/docs/ja/sandboxing) プロンプトや MCP サーバーの [入力リクエスト](/docs/ja/mcp#respond-to-mcp-elicitation-requests) など):返信してもダイアログには答えられません。返信はキューで待機します。ダイアログに答えるには、`→` でアタッチします

228 238 

229[`PermissionRequest`](/docs/ja/hooks#permissionrequest) または [`PreToolUse`](/docs/ja/hooks#pretooluse) フックが Claude Code がセッションが尋ねている呼び出しに対して検証できない出力を返す場合、行はフックイベントと `hook output invalid:` を検証エラーとともに表示し、その後に保留中のリクエストのテキストを表示します。別の方法で失敗するフックの場合、行はフックが失敗したことを示します。セッションは同じリクエストで待機し続けます。239[`PermissionRequest`](/docs/ja/hooks#permissionrequest) または [`PreToolUse`](/docs/ja/hooks#pretooluse) フックが Claude Code がセッションが尋ねている呼び出しに対して検証できない出力を返す場合、行はフックイベントと `hook output invalid:` を検証エラーとともに表示し、その後に保留中のリクエストのテキストを表示します。別の方法で失敗するフックの場合、行はフックが失敗したことを示します。セッションは同じリクエストで待機し続けます。

230 240 


301* `Ctrl+T` を押してセッションをトップにピン留めし、[アイドル中にそのプロセスを実行し続けます](#the-supervisor-process)311* `Ctrl+T` を押してセッションをトップにピン留めし、[アイドル中にそのプロセスを実行し続けます](#the-supervisor-process)

302* `Shift+↑` または `Shift+↓` を押してセッションを並べ替えます312* `Shift+↑` または `Shift+↓` を押してセッションを並べ替えます

303* `Ctrl+R` を押してセッションの名前を変更します313* `Ctrl+R` を押してセッションの名前を変更します

304* グループヘッダーで `Enter` を押して折りたたみます314* グループヘッダーで `Enter` を押すと、そのグループを折りたたみます。ただし、[フィルター](#filter-sessions) が有効な間は、すべてのグループが展開されたままになります

305 315 

306セッションをリストから削除するには、`Ctrl+X` を押して停止し、2 秒以内に `Ctrl+X` を再度押して削除します。グループヘッダーで `Ctrl+X` を押すと、確認後、そのグループ内のすべてのセッションが削除されます。316セッションをリストから削除するには、`Ctrl+X` を押して停止し、2 秒以内に `Ctrl+X` を再度押して削除します。グループヘッダーで `Ctrl+X` を押すと、確認後、そのグループ内のすべてのセッションが削除されます。

307 317 


324 セッションをフィルタリングする334 セッションをフィルタリングする

325</h3>335</h3>

326 336 

327ディスパッチ入力に入力してディスパッチの代わりにフィルタリングします:337ディスパッチ入力を次のいずれかのフィルターで始めると、入力に合わせてリストが絞り込まれます:

328 338 

329| フィルター | 表示 |339| フィルター | 表示 |

330| :- | :- |340| :- | :- |

331| `a:<name>` | 名前付きエージェントを実行しているセッション |341| `a:<name>` | 名前付きエージェントを実行しているセッション |

332| `s:<state>` | 指定された状態のセッション。例えば `s:working`。また `s:blocked` はあなたを待機しているすべてのセッションを受け入れます |342| `s:<state>` | `s:working` のように指定した状態のセッション、または `Ready for review` に対する `s:ready` のように指定したグループヘッダーの下にあるセッション。`s:blocked` はユーザーを待っているすべてのセッションを表示します |

333| `#<number>` またはプルまたはマージリクエスト URL | そのプルリクエストまたはマージリクエストで作業しているセッション |343| `n:<text>` | 名前または最初のプロンプトにそのテキストを含むセッション。例:`n:login`。Claude Code v2.1.287 以降が必要です |

344| `o:<text>` | 結果にそのテキストを含むセッション。例:`o:merged`。`o:` だけの場合は、結果を報告したすべてのセッションを表示します |

345| `#1234` などのプルリクエストまたはマージリクエストの番号、またはその URL | そのプルリクエストまたはマージリクエストで作業しているセッション |

334| その他の URL | 最初のプロンプトにその URL が含まれていたセッション |346| その他の URL | 最初のプロンプトにその URL が含まれていたセッション |

335 347 

348フィルターを組み合わせるには、`a:`、`s:`、`n:`、または `o:` で始め、スペースで区切って追加します。リストには、そのすべてに一致するセッションが表示されます。たとえば、`s:blocked a:reviewer` は、ユーザーを待っている `reviewer` セッションを表示します。

349 

350フィルターが有効な間は、折りたたんだグループが展開されて一致するセッションが表示され、最初の一致が選択されるため、`Enter` を押すとそのセッションが開きます。入力をクリアするとフィルターが解除され、それらのグループは再び折りたたまれます。

351 

336<h3 id="keyboard-shortcuts">352<h3 id="keyboard-shortcuts">

337 キーボードショートカット353 キーボードショートカット

338</h3>354</h3>


342| ショートカット | アクション |358| ショートカット | アクション |

343| :- | :- |359| :- | :- |

344| `↑` / `↓` | 行間を移動 |360| `↑` / `↓` | 行間を移動 |

345| `Enter` | 選択したセッションにアタッチするか、入力にテキストがある場合はディスパッチ |361| `PgUp` / `PgDn` | 1 画面分の行だけ上または下に移動 |

362| `Home` / `End` | 最初または最後の行にジャンプ |

363| `Enter` | 選択したセッションにアタッチするか、入力のテキストが [フィルター](#filter-sessions) でない場合はそのテキストを送信 |

346| `Space` | 選択したセッションのピークパネルを開くまたは閉じる |364| `Space` | 選択したセッションのピークパネルを開くまたは閉じる |

347| `Shift+Enter` | ディスパッチ入力に改行を挿入します。[メインプロンプトのように](/docs/ja/terminal-config#enter-multiline-prompts) |365| `Shift+Enter` | ディスパッチ入力に改行を挿入します。[メインプロンプトのように](/docs/ja/terminal-config#enter-multiline-prompts) |

348| `Ctrl+Enter` | ディスパッチしてすぐにアタッチします。`?` オーバーレイが `ctrl+enter to start and open` をリストするターミナルで |366| `Ctrl+Enter` | ディスパッチしてすぐにアタッチします。`?` オーバーレイが `ctrl+enter to start and open` をリストするターミナルで |


1068 1086 

1069| バージョン | 変更 |1087| バージョン | 変更 |

1070| - | - |1088| - | - |

1089| v2.1.287 | [`n:<text>` フィルター](#filter-sessions)は、名前または最初のプロンプトでセッションを検索します。いずれかのフィルターが有効な間は、折りたたんだグループが展開されて一致するセッションが表示され、最初の一致が選択されるため、`Enter` でそれを開けます。 |

1090| v2.1.287 | [ピーク返信](#peek-and-reply)として送信されたコマンドは、セッションの現在のターンが終了したときに実行されます。これには、セッション自身のプロンプトで入力するとすぐに実行されるコマンドも含まれます。`/stop` だけの返信は、セッションを直ちに停止します。 |

1071| v2.1.281 | [`--setting-sources`](/docs/ja/cli-reference#cli-flags) 制限は [バックグラウンド化するときに転送されます](#what-carries-over-when-you-background)。`←` または `/bg` でセッションをバックグラウンド化し、agent view からディスパッチするセッションに転送されます。このリリース前は、生成されたセッションはすべての設定ソースを読み込みました。 |1091| v2.1.281 | [`--setting-sources`](/docs/ja/cli-reference#cli-flags) 制限は [バックグラウンド化するときに転送されます](#what-carries-over-when-you-background)。`←` または `/bg` でセッションをバックグラウンド化し、agent view からディスパッチするセッションに転送されます。このリリース前は、生成されたセッションはすべての設定ソースを読み込みました。 |

1072| v2.1.281 | `claude --bg` と、セッションを再開するコマンドは、セッションのディレクトリのワークスペーストラストをまず確認します。そのディレクトリのターミナルから、[信頼ダイアログが表示されます](#from-your-shell)。まだ受け入れていない場合。スクリプトなど、ダイアログが表示できない場所では、コマンドは [`Workspace not trusted`](/docs/ja/errors#workspace-not-trusted-when-dispatching-a-background-session) エラーで終了します。 |1092| v2.1.281 | `claude --bg` と、セッションを再開するコマンドは、セッションのディレクトリのワークスペーストラストをまず確認します。そのディレクトリのターミナルから、[信頼ダイアログが表示されます](#from-your-shell)。まだ受け入れていない場合。スクリプトなど、ダイアログが表示できない場所では、コマンドは [`Workspace not trusted`](/docs/ja/errors#workspace-not-trusted-when-dispatching-a-background-session) エラーで終了します。 |

1073| v2.1.274 | 自動更新後、約 1 時間離れていた agent view は新しいビルドに自身を再起動できます。その場合、それを開いた [ディスパッチデフォルト](#dispatch-defaults)を保持します。`--model`、`--effort`、`--permission-mode`、`--allow-dangerously-skip-permissions`、`--agent`。このリリース前は、再起動されたビューは `--cwd` と `--settings` や `--mcp-config` などの設定フラグのみを保持したため、その後ディスパッチしたセッションはそれらのデフォルトなしで開始されました。 |1093| v2.1.274 | 自動更新後、約 1 時間離れていた agent view は新しいビルドに自身を再起動できます。その場合、それを開いた [ディスパッチデフォルト](#dispatch-defaults)を保持します。`--model`、`--effort`、`--permission-mode`、`--allow-dangerously-skip-permissions`、`--agent`。このリリース前は、再起動されたビューは `--cwd` と `--settings` や `--mcp-config` などの設定フラグのみを保持したため、その後ディスパッチしたセッションはそれらのデフォルトなしで開始されました。 |

Details

527 527 

528組織が [Claude apps gateway](/docs/ja/claude-apps-gateway) ポリシーを通じて guardrail ヘッダーを配信する場合、それらは [承認が必要な設定](/docs/ja/server-managed-settings#environment-variables-and-the-approval-dialog)としてカウントされます。528組織が [Claude apps gateway](/docs/ja/claude-apps-gateway) ポリシーを通じて guardrail ヘッダーを配信する場合、それらは [承認が必要な設定](/docs/ja/server-managed-settings#environment-variables-and-the-approval-dialog)としてカウントされます。

529 529 

530guardrail が応答を途中でブロックした場合、それまでにストリーミングされたテキストはそのまま残り、応答はブロックされた応答用に guardrail で設定されたメッセージで終了します。

531 

530<h2 id="use-the-mantle-endpoint">532<h2 id="use-the-mantle-endpoint">

531 Mantle エンドポイントを使用する533 Mantle エンドポイントを使用する

532</h2>534</h2>

chrome.md +88 −26

Details

10 10 

11Claude はブラウザタスク用に新しいタブを開き、ブラウザのログイン状態を共有するため、既にサインインしているサイトにアクセスできます。ブラウザアクションはリアルタイムで表示される Chrome ウィンドウで実行されます。Claude がログインページまたは CAPTCHA に遭遇した場合、一時停止して手動で処理するよう求めます。11Claude はブラウザタスク用に新しいタブを開き、ブラウザのログイン状態を共有するため、既にサインインしているサイトにアクセスできます。ブラウザアクションはリアルタイムで表示される Chrome ウィンドウで実行されます。Claude がログインページまたは CAPTCHA に遭遇した場合、一時停止して手動で処理するよう求めます。

12 12 

13拡張機能は、Claude が開いたタブをセッションに紐付けられた Chrome タブグループにまとめます。ローカルセッションでは、セッション終了時に Claude Code がそのグループを閉じるかどうかは、セッションの終了方法によって異なります。

14 

15* `/clear` と入力すると、クリア後も継続する作業がまだ実行中でない限り、Claude Code は開いているページを含めてグループを閉じます

16* `/resume` などのコマンドでセッションを切り替えた場合、Claude Code を終了した場合、またはクリア後も継続する作業がまだ実行中の状態で `/clear` を実行した場合、Claude Code はグループに空の新しいタブしか含まれていないときにのみグループを閉じます。そのため、まだ読んでいる可能性のあるページは開いたままになります

17 

13<Note>18<Note>

14 Chrome 統合は Google Chrome と Microsoft Edge で動作します。Brave、Arc、またはその他の Chromium ベースのブラウザではまだサポートされていません。Windows Subsystem for Linux(WSL)でもサポートされていません。19 Chrome 統合は Google Chrome と Microsoft Edge で動作します。Claude Code は、Brave、Arc、Vivaldi、Opera など、その他の Chromium ベースのブラウザでも拡張機能を検出して接続を設定します。Chrome 統合は Windows Subsystem for Linux(WSL)ではサポートされていません。

15</Note>20</Note>

16 21 

17<h2 id="capabilities">22<h2 id="capabilities">


26* **認証済み Web アプリ**:API コネクタなしで、ログインしている Google Docs、Gmail、Notion、またはその他のアプリと対話します31* **認証済み Web アプリ**:API コネクタなしで、ログインしている Google Docs、Gmail、Notion、またはその他のアプリと対話します

27* **データ抽出**:Web ページから構造化情報を取得してローカルに保存します32* **データ抽出**:Web ページから構造化情報を取得してローカルに保存します

28* **タスク自動化**:データ入力、フォーム入力、またはマルチサイトワークフローなどの反復的なブラウザタスクを自動化します33* **タスク自動化**:データ入力、フォーム入力、またはマルチサイトワークフローなどの反復的なブラウザタスクを自動化します

34* **ファイルのアップロード**:マシン上のファイルを Web ページのアップロードフィールドに添付します

29* **セッション記録**:ブラウザインタラクションを GIF として記録して、何が起こったかを文書化または共有します35* **セッション記録**:ブラウザインタラクションを GIF として記録して、何が起こったかを文書化または共有します

30 36 

31<h2 id="prerequisites">37<h2 id="prerequisites">


34 40 

35Claude Code を Chrome で使用する前に、以下が必要です。41Claude Code を Chrome で使用する前に、以下が必要です。

36 42 

37* [Google Chrome](https://www.google.com/chrome/) または [Microsoft Edge](https://www.microsoft.com/edge) ブラウザ43* [Google Chrome](https://www.google.com/chrome/)、[Microsoft Edge](https://www.microsoft.com/edge)、または Brave、Arc、Vivaldi、Opera などのその他の Chromium ベースのブラウザ

38* [Claude in Chrome 拡張機能](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) バージョン 1.0.36 以上(Chrome Web Store で両方のブラウザで利用可能)44* [Claude in Chrome 拡張機能](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) バージョン 1.0.36 以上(Chrome Web Store で入手可能)

39* [Claude Code](/docs/ja/quickstart#step-1-install-claude-code)45* [Claude Code](/docs/ja/quickstart#step-1-install-claude-code)

40* 直接 Anthropic プラン(Pro、Max、Team、または Enterprise)46* 直接 Anthropic プラン(Pro、Max、Team、または Enterprise)

41 47 

48Chrome 統合を使用するには、`/login` でサインインする必要もあります。API キーまたは [`claude setup-token`](/docs/ja/authentication#generate-a-long-lived-token) で発行した長期間有効なトークンで認証している場合、ブラウザ拡張機能はこれらの認証情報では認証できないため、`--chrome` を渡しても Claude Code は Chrome 統合を無効のままにします。v2.1.216 より前のバージョンでは、これらのセッションでも Chrome 統合を有効にできましたが、ブラウザ拡張機能への接続はすべて 403 エラーで失敗していました。

49 

42<Note>50<Note>

43 Chrome 統合は Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry などのサードパーティプロバイダーを通じては利用できません。Claude にサードパーティプロバイダーを通じてのみアクセスする場合、この機能を使用するには別の claude.ai アカウントが必要です。51 Chrome 統合は Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry などのサードパーティプロバイダーを通じては利用できません。Claude にサードパーティプロバイダーを通じてのみアクセスする場合、この機能を使用するには別の claude.ai アカウントが必要です。

44</Note>52</Note>


55 claude --chrome63 claude --chrome

56 ```64 ```

57 65 

58 既存のセッション内から `/chrome` を実行して Chrome を有効にすることもできます。66 Chrome で初めて起動すると、Claude Code は統合の紹介とサイト権限の仕組みを説明する 1 回限りのダイアログを表示します。Enter キーを押して続行します。

67 

68 フラグなしで今後のセッションでも Chrome を有効にするには、[Chrome をデフォルトで有効にする](#enable-chrome-by-default)を参照してください。

59 </Step>69 </Step>

60 70 

61 <Step title="Claude にブラウザを使用するよう依頼する">71 <Step title="Claude にブラウザを使用するよう依頼する">

62 この例は、ページに移動し、それと対話し、ターミナルまたはエディターからすべてを報告します。72 この例では、ページに移動してそのページを操作し、見つけた内容を報告します。これらはすべてターミナルまたはエディターから行えます。

63 73 

64 ```text theme={null}74 ```text wrap theme={null}

65 Go to code.claude.com/docs, click on the search box,75 Go to code.claude.com/docs, click on the search box,

66 type "hooks", and tell me what results appear76 type "hooks", and tell me what results appear

67 ```77 ```

68 78 

69 最初のブラウザアクションは、`claude-in-chrome` スキルを使用する権限を求めます。それを承認すると、Claude は新しいタブを開いてタスクを開始します。79 ブラウザアクションの前に Claude Code が権限を求めた場合は、承認してください。ダイアログは `Claude in Chrome wants to` で始まり、そのサイトでのすべてのアクションをセッション中許可するオプションが表示されます。Claude は新しいタブを開いてタスクを開始します。

70 </Step>80 </Step>

71</Steps>81</Steps>

72 82 

73いつでも `/chrome` を実行して接続ステータスを確認し、権限を管理し、拡張機能を再接続するか、使用する接続されたブラウザを選択できます。ブラウザアクションが開始されるときに複数のブラウザが接続されている場合、Claude はいずれかを選択するよう促します。83いつでも `/chrome` を実行して、接続ステータスの確認、権限の管理、拡張機能の再接続、または使用する接続済みブラウザの選択を行えます。ステータスパネルに「ステータス: 有効」と「拡張機能: インストール済み」が表示されていれば、統合は正常に動作しています。

84 

85複数のブラウザが接続されている場合は、Claude が使用するブラウザを選択します。選択する前にブラウザアクションが開始されると、Claude はいずれかを選択するよう促します。後でブラウザを切り替えるには、`/chrome` を実行して **ブラウザを選択…** を選びます。別のブラウザが接続された場合でも、Claude は選択したブラウザを使い続けます。

74 86 

75VS Code については、[VS Code でのブラウザ自動化](/docs/ja/vs-code#automate-browser-tasks-with-chrome) を参照してください。87VS Code については、[VS Code でのブラウザ自動化](/docs/ja/vs-code#automate-browser-tasks-with-chrome) を参照してください。

76 88 

89<h3 id="install-the-extension-when-claude-asks">

90 Claude から求められたときに拡張機能をインストールする

91</h3>

92 

93対話型セッションで Claude がブラウザを必要とし、Claude Code が拡張機能を検出できない場合、Claude Code は「Claude がブラウザの使用を求めています」というタイトルのインストールプロンプトを表示します。Claude Code が確認するのは 1 セッションにつき最大 1 回です。

94 

95プロンプトには 3 つの選択肢があります。

96 

97* **拡張機能をインストール**: ブラウザで拡張機能のインストールページを開き、ガイド付きセットアップを開始します。Claude Code はインストールを待機し、拡張機能を接続して、同じセッション内でブラウザツールを有効にします。接続の準備ができたら「ブラウザツールを使用して続行」を選択すると、Claude はブラウザでタスクを再開します。「ブラウザツールなしで続行」を選択してセットアップを中断し、後で `/chrome` で完了することもできます。

98* **今はしない**: ブラウザツールなしでタスクを続行します。Claude Code は後のセッションで再度確認することがあります。

99* **今後確認しない**: 今後のセッションでプロンプトを表示しないようにします。`/chrome` を使えば、いつでも統合をセットアップできます。

100 

101次の 2 つの管理 MCP ポリシーによってプロンプトはオフになります。

102 

103* 組織が [`deniedMcpServers` 管理設定](/docs/ja/managed-mcp#policy-based-control-with-allowlists-and-denylists)で `claude-in-chrome` MCP サーバーをブロックしている場合、Claude Code はインストールプロンプトを表示しません。

104* 組織が [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) ファイルをデプロイしており、[管理対象セットと併せて Claude in Chrome を許可](/docs/ja/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set)していない場合、Claude Code はインストールプロンプトを表示しません。

105 

77<h3 id="enable-chrome-by-default">106<h3 id="enable-chrome-by-default">

78 Chrome をデフォルトで有効にする107 Chrome をデフォルトで有効にする

79</h3>108</h3>

80 109 

81各セッションで `--chrome` を渡すことを避けるには、`/chrome` を実行して「デフォルトで有効」を選択します。110各セッションで `--chrome` を渡すことを避けるには、`/chrome` を実行して「デフォルトで有効」を選択します。

82 111 

112Chrome が実行されていない場合でも、Claude Code は通常どおり起動します。v2.1.211 より前では、Chrome 統合が有効で Chrome が実行されていない場合に、起動が停止することがありました。

113 

83[VS Code 拡張機能](/docs/ja/vs-code#automate-browser-tasks-with-chrome) では、Chrome 拡張機能がインストールされている場合、Chrome はいつでも利用可能です。追加のフラグは必要ありません。114[VS Code 拡張機能](/docs/ja/vs-code#automate-browser-tasks-with-chrome) では、Chrome 拡張機能がインストールされている場合、Chrome はいつでも利用可能です。追加のフラグは必要ありません。

84 115 

85<Note>116<Note>


90 サイト権限を管理する121 サイト権限を管理する

91</h3>122</h3>

92 123 

93サイトレベルの権限は Chrome 拡張機能から継承されます。Chrome 拡張機能の設定で権限を管理して、Claude がブラウズ、クリック、入力できるサイトを制御します。124サイトレベルの権限は Chrome 拡張機能から継承されます。Chrome 拡張機能の設定で権限を管理して、Claude がブラウズ、クリック、入力できるサイトを制御します。[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、auto モードの分類器自体があるサイトへのブラウザ呼び出しを承認した場合、権限ルールで Claude in Chrome に対していずれかのサイトを拒否していない限り、拡張機能はその呼び出しについて独自のサイトごとのチェックを省略します。

94 125 

95<h3 id="browser-tools-in-plan-mode">126<h3 id="browser-tools-in-plan-mode">

96 ブラウザツールをプランモードで使用する127 plan モードでのブラウザツール

97</h3>128</h3>

98 129 

99[プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode) では、ページまたはブラウザの状態のみを読み取るブラウザツール呼び出しは権限プロンプトなしで実行され、状態を変更する呼び出しは承認を求めるプロンプトが表示されます。130[plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)では、Claude が GIF を記録する、新しいタブを開く、またはショートカットを実行する前に権限プロンプトが表示されます。セッションで [bypassPermissions モードが利用可能](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)で、かつ[機能フラグの取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)がオフの場合、これらの呼び出しはプロンプトなしで実行されます。

100 

101* **読み取り専用呼び出し**: `read_page`、`get_page_text`、`find`、コンソールメッセージまたはネットワークリクエストの読み取り、およびスクリーンショットの撮影

102* **状態変更呼び出し**: クリック、入力、ナビゲーション、タブとウィンドウ管理、および GIF の記録

103 131 

104v2.1.199 以降、`tabs_context_mcp` の `createIfEmpty`、コンソールおよびネットワークリーダーの `clear`、またはスクリーンショットの `save_to_disk` など、状態変更入力フラグを設定する読み取り専用呼び出しも承認を求めるプロンプトが表示されます。`browser_batch` 呼び出しは、その内部のすべてのアクションが読み取り専用の場合にのみ、プロンプトなしで実行されます。132`createIfEmpty` を設定する `tabs_context_mcp` 呼び出しや、これらのアクションのいずれかを含む `browser_batch` 呼び出しでもプロンプトが表示されます。

105 133 

106<h2 id="example-workflows">134<h2 id="example-workflows">

107 ワークフロー例135 ワークフロー例


115 143 

116Web アプリを開発する場合、変更が正しく機能することを確認するよう Claude に依頼します。144Web アプリを開発する場合、変更が正しく機能することを確認するよう Claude に依頼します。

117 145 

118```text theme={null}146```text wrap theme={null}

119I just updated the login form validation. Can you open localhost:3000,147I just updated the login form validation. Can you open localhost:3000,

120try submitting the form with invalid data, and check if the error148try submitting the form with invalid data, and check if the error

121messages appear correctly?149messages appear correctly?


129 157 

130Claude はコンソール出力を読み取って問題の診断を支援できます。ログが詳細になる可能性があるため、すべてのコンソール出力を要求するのではなく、探すパターンを Claude に伝えます。158Claude はコンソール出力を読み取って問題の診断を支援できます。ログが詳細になる可能性があるため、すべてのコンソール出力を要求するのではなく、探すパターンを Claude に伝えます。

131 159 

132```text theme={null}160```text wrap theme={null}

133Open the dashboard page and check the console for any errors when161Open the dashboard page and check the console for any errors when

134the page loads.162the page loads.

135```163```


142 170 

143反復的なデータ入力タスクを高速化します。171反復的なデータ入力タスクを高速化します。

144 172 

145```text theme={null}173```text wrap theme={null}

146I have a spreadsheet of customer contacts in contacts.csv. For each row,174I have a spreadsheet of customer contacts in contacts.csv. For each row,

147go to the CRM at crm.example.com, click "Add Contact", and fill in the175go to the CRM at crm.example.com, click "Add Contact", and fill in the

148name, email, and phone fields.176name, email, and phone fields.


150 178 

151Claude はローカルファイルを読み取り、Web インターフェースをナビゲートし、各レコードのデータを入力します。179Claude はローカルファイルを読み取り、Web インターフェースをナビゲートし、各レコードのデータを入力します。

152 180 

181<h3 id="upload-files-to-web-pages">

182 Web ページにファイルをアップロードする

183</h3>

184 

185Claude は、マシン上のファイルをページ上のアップロードフィールドに添付できます。Claude Code がファイルを読み取ってその内容をブラウザに送信するため、アップロードはローカルセッションとリモートセッションの両方で機能します。Claude Code v2.1.211 以降が必要です。

186 

187この例では、ログファイルをフォームに添付します。

188 

189```text wrap theme={null}

190Open the bug tracker at bugs.example.com, create a new issue,

191and attach logs/session.log to it

192```

193 

194アップロードには次の 3 つの制限が適用されます。

195 

196* **権限**: Claude がファイルをアップロードできるのは、セッションがそのファイルの読み取りを許可されている場合のみです。そのため、ファイルへの `Read` アクセスを拒否する[権限ルール](/docs/ja/settings-reference#permission-settings)は、そのファイルのアップロードもブロックします。

197* **サイズ**: 1 回のアップロードに含められるファイルは合計 10 MB までです。

198* **ハードリンク**: Claude は複数のハードリンクを持つファイルを拒否します。これは `node_modules` などのパッケージマネージャーのストア内でよく見られます。ファイルをコピーし、そのコピーをアップロードしてください。

199 

153<h3 id="draft-content-in-google-docs">200<h3 id="draft-content-in-google-docs">

154 Google Docs でコンテンツをドラフトする201 Google Docs でコンテンツをドラフトする

155</h3>202</h3>

156 203 

157API セットアップなしで Claude を使用してドキュメントに直接書き込みます。204API セットアップなしで Claude を使用してドキュメントに直接書き込みます。

158 205 

159```text theme={null}206```text wrap theme={null}

160Draft a project update based on the recent commits and add it to my207Draft a project update based on the recent commits and add it to my

161Google Doc at docs.google.com/document/d/abc123208Google Doc at docs.google.com/document/d/abc123

162```209```


169 216 

170Web サイトから構造化情報を取得します。217Web サイトから構造化情報を取得します。

171 218 

172```text theme={null}219```text wrap theme={null}

173Go to the product listings page and extract the name, price, and220Go to the product listings page and extract the name, price, and

174availability for each item. Save the results as a CSV file.221availability for each item. Save the results as a CSV file.

175```222```


182 229 

183複数の Web サイト間でタスクを調整します。230複数の Web サイト間でタスクを調整します。

184 231 

185```text theme={null}232```text wrap theme={null}

186Check my calendar for meetings tomorrow, then for each meeting with233Check my calendar for meetings tomorrow, then for each meeting with

187an external attendee, look up their company website and add a note234an external attendee, look up their company website and add a note

188about what they do.235about what they do.


196 243 

197ブラウザインタラクションの共有可能な記録を作成します。244ブラウザインタラクションの共有可能な記録を作成します。

198 245 

199```text theme={null}246```text wrap theme={null}

200Record a GIF showing how to complete the checkout flow, from adding247Record a GIF showing how to complete the checkout flow, from adding

201an item to the cart through to the confirmation page.248an item to the cart through to the confirmation page.

202```249```

203 250 

204Claude はインタラクションシーケンスを記録し、GIF ファイルとして保存します。251Claude はインタラクションシーケンスを記録し、GIF ファイルとして保存します。記録にはブラウザに表示されるすべてのもの(ログイン済みページのアカウント詳細を含む)が含まれるため、チーム外と共有する前に内容を確認してください。

252 

253<h3 id="save-screenshots-to-disk">

254 スクリーンショットをディスクに保存する

255</h3>

256 

257スクリーンショットをファイルとして保存するよう Claude に依頼します。

258 

259```text wrap theme={null}

260Take a screenshot of the checkout page and save it to disk

261```

262 

263Claude は画像をディスクに保存し、ファイルパスを報告します。v2.1.211 より前では、スクリーンショットツールの `save_to_disk` オプションはファイルを書き込みませんでした。

205 264 

206<h2 id="troubleshooting">265<h2 id="troubleshooting">

207 トラブルシューティング266 トラブルシューティング


221 280 

222Chrome 統合を初めて有効にすると、Claude Code はネイティブメッセージングホスト設定ファイルをインストールします。Chrome はスタートアップ時にこのファイルを読み取るため、最初の試行で拡張機能が検出されない場合、Chrome を再起動して新しい設定を取得します。281Chrome 統合を初めて有効にすると、Claude Code はネイティブメッセージングホスト設定ファイルをインストールします。Chrome はスタートアップ時にこのファイルを読み取るため、最初の試行で拡張機能が検出されない場合、Chrome を再起動して新しい設定を取得します。

223 282 

224v2.1.199 以降、Claude Code は初回インストール時のみ拡張機能の接続を促すブラウザタブを開きます。設定ファイルを書き直す後続セッション(例えば Claude Code ビルドまたは設定ディレクトリを切り替えた後)では、再度開きません。283Claude Code は、初回インストール時にのみ拡張機能の接続を促すブラウザタブを開きます。後続のセッションで設定ファイルが書き直された場合(例えばビルドや設定ディレクトリを切り替えた後)、Claude Code はタブを再度開きません。

225 284 

226接続がまだ失敗する場合、ホスト設定ファイルが以下の場所に存在することを確認します。285接続がまだ失敗する場合、ホスト設定ファイルが以下の場所に存在することを確認します。

227 286 


237* **Linux**:`~/.config/microsoft-edge/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`296* **Linux**:`~/.config/microsoft-edge/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`

238* **Windows**:Windows レジストリで `HKCU\Software\Microsoft\Edge\NativeMessagingHosts\` を確認します297* **Windows**:Windows レジストリで `HKCU\Software\Microsoft\Edge\NativeMessagingHosts\` を確認します

239 298 

299その他の Chromium ベースのブラウザは、ブラウザ名にちなんだ独自の設定ディレクトリから同じファイルを読み取ります。例えば、macOS 上の Brave は `~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/` を使用し、Windows では各ブラウザが `HKCU\Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\` のような独自のレジストリキーを持ちます。

300 

240<h3 id="browser-not-responding">301<h3 id="browser-not-responding">

241 ブラウザが応答しない302 ブラウザが応答しない

242</h3>303</h3>


261 322 

262* **名前付きパイプの競合(EADDRINUSE)**:別のプロセスが同じ名前付きパイプを使用している場合、Claude Code を再起動します。Chrome を使用している他の Claude Code セッションを閉じます。323* **名前付きパイプの競合(EADDRINUSE)**:別のプロセスが同じ名前付きパイプを使用している場合、Claude Code を再起動します。Chrome を使用している他の Claude Code セッションを閉じます。

263* **ネイティブメッセージングホストエラー**:ネイティブメッセージングホストがスタートアップ時にクラッシュする場合、Claude Code を再インストールしてホスト設定を再生成してみてください。324* **ネイティブメッセージングホストエラー**:ネイティブメッセージングホストがスタートアップ時にクラッシュする場合、Claude Code を再インストールしてホスト設定を再生成してみてください。

325* **セットアップページが開かない**:Claude Code を更新します。v2.1.211 より前では、Windows で拡張機能の接続を促すブラウザタブが開かないことがありました。

264 326 

265<h3 id="common-error-messages">327<h3 id="common-error-messages">

266 一般的なエラーメッセージ328 一般的なエラーメッセージ


270 332 

271| エラー | 原因 | 修正 |333| エラー | 原因 | 修正 |

272| - | - | - |334| - | - | - |

273| "Browser extension is not connected" | ネイティブメッセージングホストが拡張機能に到達できない | Chrome と Claude Code を再起動してから、`/chrome` を実行して再接続します |335| "Browser extension is not connected" | ネイティブメッセージングホストが拡張機能に到達できない、または組織の IP 許可リストが `bridge.claudeusercontent.com` への接続を拒否している | Chrome と Claude Code を再起動してから、`/chrome` を実行して再接続します。組織が IP 許可リストを使用しており、エラーが解決しない場合は、[組織の IP 許可リストとプロキシのエグレス](/docs/ja/network-config#organization-ip-allowlists-and-proxy-egress)を参照してください |

274| "Extension not detected" | Chrome 拡張機能がインストールされていないか、無効になっている | `chrome://extensions` で拡張機能をインストールまたは有効にします |336| `/chrome` で拡張機能に「Not detected」と表示される | Chrome 拡張機能がインストールされていないか、無効になっている | `chrome://extensions` で拡張機能をインストールまたは有効にします |

275| "No tab available" | Claude がタブの準備ができる前に動作しようとした | Claude に新しいタブを作成して再度試すよう依頼します |337| "No tab available" | Claude がタブの準備ができる前に動作しようとした | Claude に新しいタブを作成して再度試すよう依頼します |

276| "Receiving end does not exist" | 拡張機能サービスワーカーがアイドル状態になった | `/chrome` を実行して「Reconnect extension」を選択します |338| "Receiving end does not exist" | 拡張機能サービスワーカーがアイドル状態になった | `/chrome` を実行して「Reconnect extension」を選択します |

277 339 

cli-reference.md +15 −7

Details

26| `claude install [version]` | ネイティブバイナリをインストールまたは再インストールします。`2.1.118` のようなバージョン、または `stable` または `latest` を受け入れます。[特定のバージョンをインストール](/docs/ja/setup#install-a-specific-version) を参照してください | `claude install stable` |26| `claude install [version]` | ネイティブバイナリをインストールまたは再インストールします。`2.1.118` のようなバージョン、または `stable` または `latest` を受け入れます。[特定のバージョンをインストール](/docs/ja/setup#install-a-specific-version) を参照してください | `claude install stable` |

27| `claude auth login` | Anthropic アカウントにサインインします。`--email` を使用してメールアドレスを事前入力し、`--sso` を使用して SSO 認証を強制し、`--console` を使用して Claude サブスクリプションの代わりに Anthropic Console で API 使用料金をサインインできます | `claude auth login --console` |27| `claude auth login` | Anthropic アカウントにサインインします。`--email` を使用してメールアドレスを事前入力し、`--sso` を使用して SSO 認証を強制し、`--console` を使用して Claude サブスクリプションの代わりに Anthropic Console で API 使用料金をサインインできます | `claude auth login --console` |

28| `claude auth logout` | Anthropic アカウントからログアウト | `claude auth logout` |28| `claude auth logout` | Anthropic アカウントからログアウト | `claude auth logout` |

29| `claude auth status` | 認証ステータスを JSON として表示します。`--text` を使用して人間が読める形式で表示できます。ログイン済みの場合はコード 0 で終了し、ログインしていない場合は 1 で終了します。JSON には、CLI が使用する [設定ディレクトリ](/docs/ja/claude-directory) の名前を付ける `configDirectory` フィールドが含まれます。このフィールドには Claude Code v2.1.268 以降が必要です | `claude auth status` |29| `claude auth status` | 認証ステータスを JSON として表示します。`--text` を使用して人間が読める形式で表示できます。ログイン済みの場合はコード 0 で終了し、ログインしていない場合は 1 で終了します。JSON には、CLI が使用する [設定ディレクトリ](/docs/ja/claude-directory) の名前を付ける `configDirectory` フィールドが含まれます。このフィールドには Claude Code v2.1.268 以降が必要です。JSON の `authMethod` フィールドは、`none`、`claude.ai`、`oauth_token`、`api_key`、`api_key_helper`、または `third_party` のいずれかです | `claude auth status` |

30| `claude agents` | [エージェントビュー](/docs/ja/agent-view) を開いて、並列バックグラウンドセッションを監視およびディスパッチします。`--cwd <path>` を使用して、そのディレクトリの下で開始されたセッションのみを表示するか、`--json` を使用してアクティブなセッションを JSON 配列として出力してスクリプト作成用にします(`--json --all` は完了したバックグラウンドセッションも含みます)。`--permission-mode`、`--model`、`--effort`、または `--agent` を渡して、[ディスパッチされたセッションのデフォルト](/docs/ja/agent-view#permission-mode-model-and-effort) を設定します。トップレベルの `claude` コマンドと同様に `--settings`、`--add-dir`、`--plugin-dir`、および `--mcp-config` を受け入れます。エージェントビューを開くにはインタラクティブターミナルが必要です | `claude agents --json` |30| `claude agents` | [エージェントビュー](/docs/ja/agent-view) を開いて、並列バックグラウンドセッションを監視およびディスパッチします。`--cwd <path>` を使用して、そのディレクトリの下で開始されたセッションのみを表示するか、`--json` を使用してアクティブなセッションを JSON 配列として出力してスクリプト作成用にします(`--json --all` は完了したバックグラウンドセッションも含みます)。`--permission-mode`、`--model`、`--effort`、または `--agent` を渡して、[ディスパッチされたセッションのデフォルト](/docs/ja/agent-view#permission-mode-model-and-effort) を設定します。トップレベルの `claude` コマンドと同様に `--settings`、`--add-dir`、`--plugin-dir`、および `--mcp-config` を受け入れます。エージェントビューを開くにはインタラクティブターミナルが必要です | `claude agents --json` |

31| `claude attach <id>` | このターミナルで [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) に接続します | `claude attach 7c5dcf5d` |31| `claude attach <id>` | このターミナルで [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) に接続します | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | 組み込み [auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 分類器ルールを JSON として出力します。`claude auto-mode config` を使用して、設定が適用された有効な設定を確認してください。`--label <prefix>` は、ラベルがそのプレフィックスで始まるルールのみを出力します。大文字と小文字を区別しません。Claude Code v2.1.208 以降が必要です | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | 組み込み [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 分類器ルールを JSON として出力します。`claude auto-mode config` を使用して、設定が適用された有効な設定を確認してください。`--label <prefix>` は、ラベルがそのプレフィックスで始まるルールのみを出力します。大文字と小文字を区別しません。Claude Code v2.1.208 以降が必要です | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | ユーザー設定ファイルから `autoMode` セクションを削除して、デフォルト [auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 設定を復元します。書き込み前に確認を求めます。`-y`/`--yes` を渡してプロンプトをスキップします。[管理設定](/docs/ja/server-managed-settings) または `--settings` フラグからのルールは引き続き適用されます。Claude Code v2.1.212 以降が必要です。[デフォルトと有効な設定を検査](/docs/ja/auto-mode-config#inspect-the-defaults-and-your-effective-config) を参照してください | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | ユーザー設定ファイルから `autoMode` セクションを削除して、デフォルト [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 設定を復元します。書き込み前に確認を求めます。`-y`/`--yes` を渡してプロンプトをスキップします。[管理設定](/docs/ja/server-managed-settings) または `--settings` フラグからのルールは引き続き適用されます。Claude Code v2.1.212 以降が必要です。[デフォルトと有効な設定を検査](/docs/ja/auto-mode-config#inspect-the-defaults-and-your-effective-config) を参照してください | `claude auto-mode reset --yes` |

34| `claude daemon status` | バックグラウンドセッション [スーパーバイザー](/docs/ja/agent-view#the-supervisor-process) の状態、バージョン、ソケットディレクトリ、および診断用のワーカー数を出力します。スーパーバイザーが実行されていない場合は 1 で終了します | `claude daemon status` |34| `claude daemon status` | バックグラウンドセッション [スーパーバイザー](/docs/ja/agent-view#the-supervisor-process) の状態、バージョン、ソケットディレクトリ、および診断用のワーカー数を出力します。スーパーバイザーが実行されていない場合は 1 で終了します | `claude daemon status` |

35| `claude daemon stop --any` | バックグラウンドセッション [スーパーバイザー](/docs/ja/agent-view#the-supervisor-process) とそれがホストするセッションを停止します。`--keep-workers` を渡して、バックグラウンドセッションを実行したままにして、次のスーパーバイザーが再接続できるようにします。`--any` はオンデマンドスーパーバイザーの停止を確認します。これはデフォルトです。これを使用して、[応答しないスーパーバイザー](/docs/ja/agent-view#agent-view-says-the-background-service-did-not-respond) から回復します | `claude daemon stop --any --keep-workers` |35| `claude daemon stop --any` | バックグラウンドセッション [スーパーバイザー](/docs/ja/agent-view#the-supervisor-process) とそれがホストするセッションを停止します。`--keep-workers` を渡して、バックグラウンドセッションを実行したままにして、次のスーパーバイザーが再接続できるようにします。`--any` はオンデマンドスーパーバイザーの停止を確認します。これはデフォルトです。これを使用して、[応答しないスーパーバイザー](/docs/ja/agent-view#agent-view-says-the-background-service-did-not-respond) から回復します | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | セッションを開始せずにターミナルから読み取り専用のインストールおよび設定診断を出力します。インストール正常性、設定ファイル検証エラー、およびリモートコントロール適格性を含みます。セッション内のセットアップチェックアップで修正を適用することもできます。[`/doctor`](/docs/ja/commands#all-commands) を実行してください | `claude doctor` |36| `claude doctor` | セッションを開始せずにターミナルから読み取り専用のインストールおよび設定診断を出力します。インストール正常性、設定ファイル検証エラー、および Remote Control 適格性を含みます。セッション内のセットアップチェックアップで修正を適用することもできます。[`/doctor`](/docs/ja/commands#all-commands) を実行してください | `claude doctor` |

37| `claude import [source]` | 他のコーディングエージェントからの設定を Claude Code に取り込むために [`/import`](/docs/ja/commands#all-commands) を実行するインタラクティブセッションを開始します。コマンドと同じ `--dry-run` および `--yes` オプションを受け入れます。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または AWS 上の Claude Platform では利用できません。[機能フラグ取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching) をオフにした場合も利用できません。Claude Code v2.1.213 以降が必要です | `claude import codex --dry-run` |37| `claude import [source]` | 他のコーディングエージェントからの設定を Claude Code に取り込むために [`/import`](/docs/ja/commands#all-commands) を実行するインタラクティブセッションを開始します。コマンドと同じ `--dry-run` および `--yes` オプションを受け入れます。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または AWS 上の Claude Platform では利用できません。[機能フラグ取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching) をオフにした場合も利用できません。Claude Code v2.1.213 以降が必要です | `claude import codex --dry-run` |

38| `claude logs <id>` | [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) からの最近の出力を出力します | `claude logs 7c5dcf5d` |38| `claude logs <id>` | [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) からの最近の出力を出力します | `claude logs 7c5dcf5d` |

39| `claude mcp` | Model Context Protocol(MCP)サーバーを設定 | [Claude Code MCP ドキュメント](/docs/ja/mcp) を参照してください。 |39| `claude mcp` | Model Context Protocol(MCP)サーバーを設定 | [Claude Code MCP ドキュメント](/docs/ja/mcp) を参照してください。 |


43| `claude project purge [path]` | プロジェクトのすべてのローカル Claude Code 状態を削除します:トランスクリプト、タスクリスト、デバッグログ、ファイル編集履歴、プロンプト履歴行、および `~/.claude.json` 内のプロジェクトエントリ。`[path]` を省略して、インタラクティブリストから選択します。フラグ:`--dry-run` でプレビュー、`-y`/`--yes` で確認をスキップ、`-i`/`--interactive` で各項目を確認、`--all` ですべてのプロジェクト。[ローカルデータをクリア](/docs/ja/claude-directory#clear-local-data) を参照してください | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | プロジェクトのすべてのローカル Claude Code 状態を削除します:トランスクリプト、タスクリスト、デバッグログ、ファイル編集履歴、プロンプト履歴行、および `~/.claude.json` 内のプロジェクトエントリ。`[path]` を省略して、インタラクティブリストから選択します。フラグ:`--dry-run` でプレビュー、`-y`/`--yes` で確認をスキップ、`-i`/`--interactive` で各項目を確認、`--all` ですべてのプロジェクト。[ローカルデータをクリア](/docs/ja/claude-directory#clear-local-data) を参照してください | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | [Remote Control](/docs/ja/remote-control) サーバーを開始して、Claude.ai または Claude アプリから Claude Code を制御します。サーバーモード(ローカルインタラクティブセッションなし)で実行されます。[サーバーモードフラグ](/docs/ja/remote-control#start-a-remote-control-session) を参照してください。サーバーを停止した後、サーバーが提供していたセッションを復元できます。[サーバー停止後のセッション再開](/docs/ja/remote-control#resume-sessions-after-stopping-the-server) を参照してください | `claude remote-control --name "My Project"` |44| `claude remote-control` | [Remote Control](/docs/ja/remote-control) サーバーを開始して、Claude.ai または Claude アプリから Claude Code を制御します。サーバーモード(ローカルインタラクティブセッションなし)で実行されます。[サーバーモードフラグ](/docs/ja/remote-control#start-a-remote-control-session) を参照してください。サーバーを停止した後、サーバーが提供していたセッションを復元できます。[サーバー停止後のセッション再開](/docs/ja/remote-control#resume-sessions-after-stopping-the-server) を参照してください | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | 会話を保持したまま、[バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) を再開します。実行中または停止中。`--all` を使用してすべての実行中セッションを再開します。たとえば、更新された Claude Code バイナリを取得するため | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | 会話を保持したまま、[バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) を再開します。実行中または停止中。`--all` を使用してすべての実行中セッションを再開します。たとえば、更新された Claude Code バイナリを取得するため | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) をリストから削除します。削除が [セッションのワークツリーを介して拒否](/docs/ja/agent-view#what-deleting-a-session-removes) され、2 番目の `claude rm` で解決できる場合、拒否は渡すべき正確なフラグと値を出力します:`--discard-unpushed <commit>@<worktree-id>` はプッシュされていないコミットを持つワークツリーをそれらのコミットとともに破棄し、`--force-remove-worktree <worktree-id>` は git または `WorktreeRemove` フックが削除できなかったワークツリーディレクトリを削除します。`--discard-unpushed` には Claude Code v2.1.260 以降が必要です。また、`--force-remove-worktree` には v2.1.268 以降が必要です。会話トランスクリプトはローカルマシンに残り、`claude --resume` を通じて利用可能です | `claude rm 7c5dcf5d` |46| `claude rm <id>` | [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) をリストから削除します。削除が [セッションの worktree を理由に拒否](/docs/ja/agent-view#what-deleting-a-session-removes) され、2 回目の `claude rm` で解決できる場合、拒否は渡すべき正確なフラグと値を出力します:`--discard-unpushed <commit>@<worktree-id>` はプッシュされていないコミットを持つ worktree をそれらのコミットとともに破棄し、`--force-remove-worktree <worktree-id>` は git または `WorktreeRemove` フックが削除できなかった worktree ディレクトリを削除します。`--discard-unpushed` には Claude Code v2.1.260 以降が必要です。また、`--force-remove-worktree` には v2.1.268 以降が必要です。会話トランスクリプトはローカルマシンに残り、`claude --resume` を通じて利用可能です | `claude rm 7c5dcf5d` |

47| `claude self-hosted-runner` | このマシンまたはコンテナを [自己ホスト環境](/docs/ja/self-hosted-environments) に登録し、Claude Code クラウドセッションをインフラストラクチャ上でホストするランナープロセスを開始します。`claude self-hosted-runner setup` でガイド付きオペレーターウォークスルーを実行し、`claude self-hosted-runner doctor` で [デプロイされたランナーを診断](/docs/ja/self-hosted-environments-deploy#troubleshooting) し、`claude self-hosted-runner orchestrator` で [オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners) をスポーンします。Claude Code v2.1.224 以降が必要です | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | このマシンまたはコンテナを [自己ホスト環境](/docs/ja/self-hosted-environments) に登録し、Claude Code クラウドセッションをインフラストラクチャ上でホストするランナープロセスを開始します。`claude self-hosted-runner setup` でガイド付きオペレーターウォークスルーを実行し、`claude self-hosted-runner doctor` で [デプロイされたランナーを診断](/docs/ja/self-hosted-environments-deploy#troubleshooting) し、`claude self-hosted-runner orchestrator` で [オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners) をスポーンします。Claude Code v2.1.224 以降が必要です | `claude self-hosted-runner setup` |

48| `claude setup-token` | CI とスクリプト用の長期間有効な OAuth トークンを生成します。ターミナルにトークンを出力し、保存しません。Claude サブスクリプションが必要です。[長期間有効なトークンを生成](/docs/ja/authentication#generate-a-long-lived-token) を参照してください | `claude setup-token` |48| `claude setup-token` | CI とスクリプト用の長期間有効な OAuth トークンを生成します。ターミナルにトークンを出力し、保存しません。Claude サブスクリプションが必要です。[長期間有効なトークンを生成](/docs/ja/authentication#generate-a-long-lived-token) を参照してください | `claude setup-token` |

49| `claude stop <id>` | [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) を停止します。`claude kill` も受け入れます | `claude stop 7c5dcf5d` |49| `claude stop <id>` | [バックグラウンドセッション](/docs/ja/agent-view#manage-sessions-from-the-shell) を停止します。`claude kill` も受け入れます | `claude stop 7c5dcf5d` |

50| `claude ultrareview [target]` | [ultrareview](/docs/ja/ultrareview#run-ultrareview-non-interactively) を非対話的に実行します。結果を stdout に出力し、成功時は 0 で終了し、失敗時は 1 で終了します。`--json` を使用して生のペイロードを取得し、`--timeout <minutes>` を使用して 45 分のデフォルトをオーバーライドします。`github.com` プルリクエストターゲットで `--post` を使用して、完了した結果を GitHub アカウントから PR に 1 つのプレーンコメントとして投稿します。`--no-post` がデフォルトです。`--post` と `--no-post` には Claude Code v2.1.227 以降が必要です。[プルリクエストに結果を投稿](/docs/ja/ultrareview#post-findings-to-the-pull-request) を参照してください | `claude ultrareview 1234 --json` |50| `claude ultrareview [target]` | [ultrareview](/docs/ja/ultrareview#run-ultrareview-non-interactively) を非対話的に実行します。結果を stdout に出力し、成功時は 0 で終了し、失敗時は 1 で終了します。`--json` を使用して生のペイロードを取得し、`--timeout <minutes>` を使用して 45 分のデフォルトを上書きします。`github.com` プルリクエストターゲットで `--post` を使用して、完了した結果を GitHub アカウントから PR に 1 つのプレーンコメントとして投稿します。`--no-post` がデフォルトです。`--post` と `--no-post` には Claude Code v2.1.227 以降が必要です。[プルリクエストに結果を投稿](/docs/ja/ultrareview#post-findings-to-the-pull-request) を参照してください | `claude ultrareview 1234 --json` |

51 51 

52サブコマンドを誤入力した場合、Claude Code は最も近い一致を提案して、セッションを開始せずに終了します。たとえば、`claude udpate` は `Did you mean claude update?` と出力します。52サブコマンドを誤入力した場合、Claude Code は最も近い一致を提案して、セッションを開始せずに終了します。たとえば、`claude udpate` は `Did you mean claude update?` と出力します。

53 53 


156| `--append-system-prompt-file` | ファイルの内容をデフォルトプロンプトに追加します | `claude --append-system-prompt-file ./style-rules.txt` |156| `--append-system-prompt-file` | ファイルの内容をデフォルトプロンプトに追加します | `claude --append-system-prompt-file ./style-rules.txt` |

157| `--system-prompt-snapshot` | `off` を使用して、すべてのリクエストでプロンプトを再構築します。`on`(デフォルト)を使用して、[記録が適用される](#system-prompt-flags-in-resumed-conversations)場所で記録されたプロンプトを再利用します | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |157| `--system-prompt-snapshot` | `off` を使用して、すべてのリクエストでプロンプトを再構築します。`on`(デフォルト)を使用して、[記録が適用される](#system-prompt-flags-in-resumed-conversations)場所で記録されたプロンプトを再利用します | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

158 158 

159`--system-prompt` と `--system-prompt-file` は相互に排他的です。追加フラグは置換フラグのいずれかと組み合わせることができます。159これらのフラグは組み合わせることができます。デフォルトプロンプトを置き換えつつ独自のテキストも追加するには、`--append-system-prompt` または `--append-system-prompt-file` を `--system-prompt` または `--system-prompt-file` と一緒に渡します。Claude Code v2.1.283 以降では、`--append-system-prompt` と `--append-system-prompt-file` のように、フラグをそれ自身のファイル形式と一緒に渡すこともでき、その場合 Claude Code は両方を使用します。

160 

161たとえば、シェルで次のコマンドを実行すると、ファイルのスタイルガイドと追加の指示 1 つの両方を追加できます。

162 

163```bash theme={null}

164claude -p --append-system-prompt-file ./style.md --append-system-prompt "Always reply in French" "Summarize README.md"

165```

166 

167Claude は、デフォルトのシステムプロンプトに続いて、`style.md` の内容、空行、`Always reply in French` の順で受け取ります。`--append-system-prompt` を `--append-system-prompt-file` より前に渡した場合でも、ファイルの内容が先に来ます。

160 168 

161置換テキストが、すべての実行で同じ指示と実行ごとに変わるコンテキストを組み合わせる場合、`__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` のみを含む行を指示とコンテキストの間に追加します。Claude Code はその最初の行でプロンプトを分割し、その行を削除するため、その上の部分はキャッシュされたままで、その下の部分は変わります。Claude Code v2.1.275 以降が必要です。[カスタムプロンプトの静的部分をキャッシュ](/docs/ja/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)は、分割が適用される設定をリストアップしています。169置換テキストが、すべての実行で同じ指示と実行ごとに変わるコンテキストを組み合わせる場合、`__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` のみを含む行を指示とコンテキストの間に追加します。Claude Code はその最初の行でプロンプトを分割し、その行を削除するため、その上の部分はキャッシュされたままで、その下の部分は変わります。Claude Code v2.1.275 以降が必要です。[カスタムプロンプトの静的部分をキャッシュ](/docs/ja/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)は、分割が適用される設定をリストアップしています。

162 170 

code-review.md +1 −3

Details

428 Ultrareview は claude.ai アカウントでの認証が必要であり、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または Zero Data Retention が有効な組織では利用できません。ultrareview が利用できない場合、`/code-review ultra` はセッション内でローカルレビューを実行します。428 Ultrareview は claude.ai アカウントでの認証が必要であり、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または Zero Data Retention が有効な組織では利用できません。ultrareview が利用できない場合、`/code-review ultra` はセッション内でローカルレビューを実行します。

429</Note>429</Note>

430 430 

431スクリプトまたは CI からクラウドレビューを開始するには、`claude -p '/code-review ultra'` を実行します。Claude Code はレビューを起動し、追跡用のリンクを出力します。Claude Code v2.1.218 以降が必要です。431スクリプトまたは CI ジョブからクラウドレビューを実行するには、[`claude ultrareview` サブコマンド](/docs/ja/ultrareview#run-ultrareview-non-interactively)を使用します。このサブコマンドは結果を待機し、stdout に出力します。

432 

433レビューが[使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)を請求する場合、Claude Code は起動前に停止します。請求確認には対話型セッションが必要なためです。代わりに[`claude ultrareview` サブコマンド](/docs/ja/ultrareview#run-ultrareview-non-interactively)を実行します。実行することで、料金に同意します。

434 432 

435このコマンドは v2.1.147 より前は `/simplify` という名前で、デフォルトで修正を適用していました。`/simplify` はバグを探さずに修正を適用するクリーンアップのみのレビューを実行します。バグ検出のために `/simplify` をスクリプト化した場合は、`/code-review --fix` に切り替えます。433このコマンドは v2.1.147 より前は `/simplify` という名前で、デフォルトで修正を適用していました。`/simplify` はバグを探さずに修正を適用するクリーンアップのみのレビューを実行します。バグ検出のために `/simplify` をスクリプト化した場合は、`/code-review --fix` に切り替えます。

436 434 

commands.md +79 −79

Details

38 38 

39以下の表は、Claude Code に含まれるすべてのコマンドを一覧にしています。ほとんどは組み込みコマンドで、その動作は CLI にコード化されています。2 種類のエントリが標記されています:39以下の表は、Claude Code に含まれるすべてのコマンドを一覧にしています。ほとんどは組み込みコマンドで、その動作は CLI にコード化されています。2 種類のエントリが標記されています:

40 40 

41* **[Skill](/docs/ja/skills#bundled-skills)**: バンドルされたスキル。自分で書くスキルと同じように機能します:Claude に渡されるプロンプトです。41* **[Skill](/docs/ja/skills#bundled-skills)**: バンドルスキル。自分で書くスキルと同じように機能します:Claude に渡されるプロンプトです。

42 * `/verify` は呼び出すときのみ実行されます。v2.1.215 より前は、Claude が自動的に `/verify` を実行することもできました。42 * `/verify` は呼び出したときのみ実行されます。v2.1.215 より前は、Claude が自動的に `/verify` を実行することもできました。

43* **[Workflow](/docs/ja/workflows#bundled-workflows)**: バンドルされた[動的ワークフロー](/docs/ja/workflows)で、多くのサブエージェント全体に作業を展開し、バックグラウンドで実行されます。43* **[Workflow](/docs/ja/workflows#bundled-workflows)**: バンドルされた[動的ワークフロー](/docs/ja/workflows)で、多くのサブエージェントに作業を展開し、バックグラウンドで実行されます。

44 * `/deep-research` は呼び出すときのみ実行されます。v2.1.218 より前は、Claude が自動的に開始することもできました。44 * `/deep-research` は呼び出したときのみ実行されます。v2.1.218 より前は、Claude が自動的に開始することもできました。

45 45 

46独自のコマンドを追加するには、[skills](/docs/ja/skills) を参照してください。46独自のコマンドを追加するには、[スキル](/docs/ja/skills)を参照してください。

47 47 

48以下の表では、`<arg>` は必須引数を示し、`[arg]` はオプション引数を示します。48以下の表では、`<arg>` は必須引数を示し、`[arg]` はオプション引数を示します。

49 49 


53 53 

54| コマンド | 目的 |54| コマンド | 目的 |

55| :- | :- |55| :- | :- |

56| `/add-dir <path>` | ファイルアクセスのための作業ディレクトリを現在のセッション中に追加します。部分的なパスを入力して一致するディレクトリの提案を表示し、`Tab` を押して 1 つを受け入れます。ほとんどの `.claude/` 設定は追加されたディレクトリから[検出されません](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)。ほとんどの[ネットワークパス](/docs/ja/errors#working-directory-is-a-network-path)(`\\server\share` など)は追加できません。正常に追加された後、[`DirectoryAdded` hooks](/docs/ja/hooks#directoryadded) が実行されます。Claude が応答している間に実行すると、Claude Code はディレクトリをすぐに確認するよう求め、確認すると Claude の同じターンの次のツール呼び出しがアクセスできます。v2.1.234 より前は、Claude Code はターンが終了するまでコマンドをキューに入れていました |56| `/add-dir <path>` | ファイルアクセスのための作業ディレクトリを現在のセッション中に追加します。部分的なパスを入力して一致するディレクトリの提案を表示し、`Tab` を押して 1 つを受け入れます。ほとんどの `.claude/` 設定は追加されたディレクトリから[検出されません](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)。ほとんどの[ネットワークパス](/docs/ja/errors#working-directory-is-a-network-path)(`\\server\share` など)は追加できません。正常に追加された後、[`DirectoryAdded` フック](/docs/ja/hooks#directoryadded)が実行されます。Claude が応答している間に実行すると、Claude Code はディレクトリをすぐに確認するよう求め、確認すると Claude の同じターンの次のツール呼び出しがアクセスできます。v2.1.234 より前は、Claude Code はターンが終了するまでコマンドをキューに入れていました |

57| `/advisor [model\|off]` | [advisor ツール](/docs/ja/advisor)を有効または無効にします。このツールはタスク中の重要な瞬間に 2 番目のモデルに相談します。`fable`、`opus`、`sonnet`、または完全なモデル ID を受け入れます。`fable` には [Fable アクセス](/docs/ja/advisor#choose-an-advisor-model)が必要です。引数がない場合、ピッカーが開きます。インタラクティブなターミナルがないセッション、または [Remote Control](/docs/ja/remote-control#limitations) 経由では、モデルまたは `off` を引数として渡します。引数がない場合、コマンドは現在の advisor をテキストとして出力します。これらの形式には Claude Code v2.1.260 以降が必要です |57| `/advisor [model\|off]` | [advisor ツール](/docs/ja/advisor)を有効または無効にします。このツールはタスク中の重要な瞬間に 2 番目のモデルに相談します。`fable`、`opus`、`sonnet`、または完全なモデル ID を受け入れます。`fable` には [Fable アクセス](/docs/ja/advisor#choose-an-advisor-model)が必要です。引数がない場合、ピッカーが開きます。インタラクティブなターミナルがないセッション、または [Remote Control](/docs/ja/remote-control#limitations) 経由では、モデルまたは `off` を引数として渡します。引数がない場合、コマンドは現在の advisor をテキストとして出力します。これらの形式には Claude Code v2.1.260 以降が必要です |

58| `/agents` | v2.1.198 以降、`/agents` を実行すると、Claude に [subagents](/docs/ja/sub-agents) を作成または管理するよう求めるか、`.claude/agents/` または `~/.claude/agents/` を直接編集するよう促すリマインダーが出力されます。v2.1.197 以前では、subagent 設定を作成および管理するためのインタラクティブなインターフェイスが開きます |58| `/agents` | v2.1.198 以降、`/agents` を実行すると、Claude に[サブエージェント](/docs/ja/sub-agents)を作成または管理するよう求めるか、`.claude/agents/` または `~/.claude/agents/` を直接編集するよう促すリマインダーが出力されます。v2.1.197 以前では、サブエージェント設定を作成および管理するためのインタラクティブなインターフェイスが開きます |

59| `/artifact-capabilities` | **[Skill](/docs/ja/skills#bundled-skills).** 公開された[アーティファクト](/docs/ja/artifacts)が使用できるランタイム機能のリファレンスを読み込みます。たとえば、[コネクタを呼び出す](/docs/ja/artifacts#pull-live-data-with-mcp-connectors)か[ファイルダウンロードを提供する](/docs/ja/artifacts#offer-a-file-download)など、アカウントが持つものを含みます。Claude は通常、1 つを使用するページを構築する前にそれを自動的に読み込みます。[アーティファクト](/docs/ja/artifacts#availability)が利用可能な場所で利用できます |59| `/artifact-capabilities` | **[Skill](/docs/ja/skills#bundled-skills).** 公開された[アーティファクト](/docs/ja/artifacts)が使用できるランタイム機能のリファレンスを読み込みます。たとえば、[コネクタを呼び出す](/docs/ja/artifacts#pull-live-data-with-mcp-connectors)か[ファイルダウンロードを提供する](/docs/ja/artifacts#offer-a-file-download)など、アカウントが持つものを含みます。Claude は通常、1 つを使用するページを構築する前にそれを自動的に読み込みます。[アーティファクト](/docs/ja/artifacts#availability)が利用可能な場所で利用できます |

60| `/artifact-diagramming` | **[Skill](/docs/ja/skills#bundled-skills).** [アーティファクト](/docs/ja/artifacts)で Claude が従うべき図作成ガイダンスを読み込みます:図が役立つ場合、何を描くか、明るいテーマと暗いテーマで読みやすいままのインライン SVG を書く方法。Claude Code v2.1.221 以降が必要です |60| `/artifact-diagramming` | **[Skill](/docs/ja/skills#bundled-skills).** [アーティファクト](/docs/ja/artifacts)で Claude が従うべき図作成ガイダンスを読み込みます:図が役立つ場合、何を描くか、明るいテーマと暗いテーマで読みやすいままのインライン SVG を書く方法。Claude Code v2.1.221 以降が必要です |

61| `/artifacts` | 所有または共有されている[アーティファクト](/docs/ja/artifacts#find-an-artifact-again)を一覧表示し、セッションに添付するか、ブラウザで開くか、そのリンクをコピーします。[アーティファクト](/docs/ja/artifacts#availability)が利用可能な場所で利用できます。Claude Code v2.1.208 以降が必要です。`Enter` で添付するには v2.1.216 が必要です |61| `/artifacts` | 所有または共有されている[アーティファクト](/docs/ja/artifacts#find-an-artifact-again)を一覧表示し、セッションに添付するか、ブラウザで開くか、そのリンクをコピーします。[アーティファクト](/docs/ja/artifacts#availability)が利用可能な場所で利用できます。Claude Code v2.1.208 以降が必要です。`Enter` で添付するには v2.1.216 が必要です |

62| `/auto-mode-setup` | プロジェクトと最近のセッションから [`autoMode.environment` エントリ](/docs/ja/auto-mode-config#generate-environment-entries)をドラフトし、ドラフトを確認してユーザー設定に保存します。Pro、Max、または Team プランと Claude Code v2.1.228 以降が必要です。ネイティブ Windows では v2.1.233 以降が必要です |62| `/auto-mode-setup` | プロジェクトと最近のセッションから [`autoMode.environment` エントリ](/docs/ja/auto-mode-config#generate-environment-entries)をドラフトし、ドラフトを確認してユーザー設定に保存します。Pro、Max、または Team プランと Claude Code v2.1.228 以降が必要です。ネイティブ Windows では v2.1.233 以降が必要です |

63| `/autocompact [auto\|<tokens>]` | auto-compact ウィンドウを設定します:Claude Code が自動的にコンパクトする前にコンテキストウィンドウがどのくらい満杯になるかです。`500k` などのサイズを渡すか、`auto` を渡してモデル用に調整されたウィンドウに戻します。Claude Code は値をユーザー設定に保存し、現在のセッションに適用します。受け入れられる値と何がそれをオーバーライドするかについては、[auto-compact ウィンドウを設定する](/docs/ja/model-config#set-the-auto-compact-window)を参照してください。引数がない場合、現在のウィンドウを表示するダイアログが開きます。Claude Code v2.1.221 以降が必要です |63| `/autocompact [auto\|<tokens>]` | 自動圧縮ウィンドウを設定します:Claude Code が自動的に圧縮する前にコンテキストウィンドウがどのくらい満杯になるかです。`500k` などのサイズを渡すか、`auto` を渡してモデル用に調整されたウィンドウに戻します。Claude Code は値をユーザー設定に保存し、現在のセッションに適用します。受け入れられる値と何がそれを上書きするかについては、[自動圧縮ウィンドウを設定する](/docs/ja/model-config#set-the-auto-compact-window)を参照してください。引数がない場合、現在のウィンドウを表示するダイアログが開きます。Claude Code v2.1.221 以降が必要です |

64| `/autofix-pr [prompt]` | 現在のブランチの PR を監視し、CI が失敗するか、レビュアーがコメントを残すと修正をプッシュする[クラウドセッション](/docs/ja/claude-code-on-the-web#auto-fix-pull-requests)を生成します。`gh pr view` で現在チェックアウトされているブランチから開いている PR を検出します。別の PR を監視するには、最初にそのブランチをチェックアウトします。デフォルトでは、クラウドセッションはすべての CI 失敗とレビューコメントを修正するよう指示されます。別の指示を与えるためにプロンプトを渡します。たとえば `/autofix-pr only fix lint and type errors`。`gh` CLI と[クラウドセッション](/docs/ja/claude-code-on-the-web)へのアクセスが必要です |64| `/autofix-pr [prompt]` | 現在のブランチの PR を監視し、CI が失敗するか、レビュアーがコメントを残すと修正をプッシュする[クラウドセッション](/docs/ja/claude-code-on-the-web#auto-fix-pull-requests)を生成します。`gh pr view` で現在チェックアウトされているブランチから開いている PR を検出します。別の PR を監視するには、最初にそのブランチをチェックアウトします。デフォルトでは、クラウドセッションはすべての CI 失敗とレビューコメントを修正するよう指示されます。別の指示を与えるためにプロンプトを渡します。たとえば `/autofix-pr only fix lint and type errors`。`gh` CLI と[クラウドセッション](/docs/ja/claude-code-on-the-web)へのアクセスが必要です |

65| `/background [prompt]` | 現在のセッションをデタッチして[バックグラウンドエージェント](/docs/ja/agent-view)として実行し、このターミナルを解放します。デタッチする前に別の指示を送るためにプロンプトを渡します。`claude agents` でセッションを監視します。このセッションが実行し続けている間に会話を新しいバックグラウンドセッションにコピーするには、`/fork` を使用します。エイリアス:`/bg` |65| `/background [prompt]` | 現在のセッションをデタッチして[バックグラウンドエージェント](/docs/ja/agent-view)として実行し、このターミナルを解放します。デタッチする前に別の指示を送るためにプロンプトを渡します。`claude agents` でセッションを監視します。このセッションが実行し続けている間に会話を新しいバックグラウンドセッションにコピーするには、`/fork` を使用します。エイリアス:`/bg` |

66| `/batch <instruction>` | **[Skill](/docs/ja/skills#bundled-skills).** コードベース全体で大規模な変更を並列に調整します。コードベースを調査し、作業を 5 ~ 30 個の独立したユニットに分解し、計画を提示します。承認されると、分離された [worktree](/docs/ja/worktrees) 内のユニットごとに 1 つの[バックグラウンド subagent](/docs/ja/sub-agents#run-subagents-in-foreground-or-background) を生成します。各 subagent はそのユニットを実装し、テストを実行し、その変更を公開します。git リポジトリまたは worktrees を作成する [`WorktreeCreate` hook](/docs/ja/worktrees#non-git-version-control) が必要です。git リポジトリの外では、`/batch` には Claude Code v2.1.281 以降が必要です。例:`/batch migrate src/ from JavaScript to TypeScript` |66| `/batch <instruction>` | **[Skill](/docs/ja/skills#bundled-skills).** コードベース全体で大規模な変更を並列に調整します。コードベースを調査し、作業を 5 ~ 30 個の独立したユニットに分解し、計画を提示します。承認されると、分離された [worktree](/docs/ja/worktrees) 内でユニットごとに 1 つの[バックグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)を生成します。各サブエージェントはそのユニットを実装し、テストを実行し、その変更を公開します。git リポジトリまたは worktree を作成する [`WorktreeCreate` フック](/docs/ja/worktrees#non-git-version-control)が必要です。git リポジトリの外では、`/batch` には Claude Code v2.1.281 以降が必要です。例:`/batch migrate src/ from JavaScript to TypeScript` |

67| `/branch [name]` | 現在の会話をこの時点で分岐させて、会話を失わずに別の方向を試すことができます。分岐に切り替え、元の会話を保持します。元の会話には `/resume` で戻ることができます。別の[バックグラウンドセッション](/docs/ja/agent-view)として分岐を実行する代わりに切り替えるには、`/fork` を使用します。この会話に報告する [subagent](/docs/ja/sub-agents) に副タスクを渡すには、`/subtask` を使用します |67| `/branch [name]` | 現在の会話をこの時点で分岐させて、現状の会話を失わずに別の方向を試すことができます。分岐に切り替え、元の会話を保持します。元の会話には `/resume` で戻ることができます。コピーに切り替える代わりに別の[バックグラウンドセッション](/docs/ja/agent-view)として実行するには、`/fork` を使用します。この会話に報告する[サブエージェント](/docs/ja/sub-agents)に副タスクを渡すには、`/subtask` を使用します |

68| `/btw [question]` | 会話に追加せずに現在のセッションについて[副質問](/docs/ja/interactive-mode#side-questions-with-%2Fbtw)をします。`/btw` を質問なしで実行すると、Claude Code は最新の副質問を表示して、以前の回答を参照できます。まだ質問していない場合、Claude Code は使用行を出力します。v2.1.212 より前は、`/btw` は質問が必要でした |68| `/btw [question]` | 会話に追加せずに現在のセッションについて[副質問](/docs/ja/interactive-mode#side-questions-with-%2Fbtw)をします。`/btw` を質問なしで実行すると、Claude Code は最新の副質問を表示して、以前の回答を参照できます。まだ質問していない場合、Claude Code は使用方法の行を出力します。v2.1.212 より前は、`/btw` は質問が必要でした |

69| `/bug [report]` | バグを報告するか、会話を共有します。セッション履歴をどのくらい含めるかを選択し、何かが送信される前に同意画面で確認します。Anthropic への最初のパーティ接続でサインインしている場合、レポートは Anthropic に送信されます。サードパーティプロバイダーまたは Anthropic 認証情報がない場合、Claude Code はレポートを [`~/.claude/feedback-bundles/`](/docs/ja/data-usage#telemetry-services) の[ローカルアーカイブ](/docs/ja/data-usage#telemetry-services)に書き込み、自分で転送します。[VS Code 拡張機能](/docs/ja/vs-code#use-the-prompt-box)では、`/bug` は代わりに拡張機能独自のフィードバックダイアログを開きます。Claude Code v2.1.229 以降が必要です。Claude が応答している間に実行すると、Claude Code はダイアログをすぐに開きます。v2.1.232 より前は、Claude Code はターンが終了するまでコマンドをキューに入れていました。エイリアス:`/share`。v2.1.212 より前は、`/bug` と `/share` は `/feedback` のエイリアスでした |69| `/bug [report]` | バグを報告するか、会話を共有します。セッション履歴をどのくらい含めるかを選択し、何かが送信される前に同意画面で確認します。ファーストパーティ接続で Anthropic にサインインしている場合、レポートは Anthropic に送信されます。サードパーティプロバイダーの場合、または Anthropic 認証情報がない場合、Claude Code はレポートを [`~/.claude/feedback-bundles/` 配下のローカルアーカイブ](/docs/ja/data-usage#telemetry-services)に書き込み、自分で転送します。[VS Code 拡張機能](/docs/ja/vs-code#use-the-prompt-box)では、`/bug` は代わりに拡張機能独自のフィードバックダイアログを開きます。Claude Code v2.1.229 以降が必要です。Claude が応答している間に実行すると、Claude Code はダイアログをすぐに開きます。v2.1.232 より前は、Claude Code はターンが終了するまでコマンドをキューに入れていました。エイリアス:`/share`。v2.1.212 より前は、`/bug` と `/share` は `/feedback` のエイリアスでした |

70| `/cd <path>` | このセッションを新しい作業ディレクトリに移動し、会話を保持します。部分的なパスを入力して一致するディレクトリの提案を表示し、`Tab` を押して 1 つを受け入れます。提案には Claude Code v2.1.206 以降が必要です。Claude Code が新しいディレクトリからすぐに適用するもの、および `/cd` が `/add-dir` とどのように異なるかについては、[セッションを別のディレクトリに移動する](/docs/ja/permissions#move-the-session-to-another-directory)を参照してください |70| `/cd <path>` | このセッションを新しい作業ディレクトリに移動し、会話を保持します。部分的なパスを入力して一致するディレクトリの提案を表示し、`Tab` を押して 1 つを受け入れます。提案には Claude Code v2.1.206 以降が必要です。Claude Code が新しいディレクトリからすぐに適用するもの、および `/cd` が `/add-dir` とどのように異なるかについては、[セッションを別のディレクトリに移動する](/docs/ja/permissions#move-the-session-to-another-directory)を参照してください |

71| `/chrome` | [Claude in Chrome](/docs/ja/chrome) 設定を構成します |71| `/chrome` | [Claude in Chrome](/docs/ja/chrome) 設定を構成します |

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ja/skills#bundled-skills).** プロジェクトの言語用に [Claude API](https://platform.claude.com/docs/en/api/overview) および [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) リファレンス資料を読み込みます。コードが `anthropic` または `@anthropic-ai/sdk` をインポートするときも自動的にアクティブになります。各サブコマンドが何をするか、および必要なバージョンについては、[Claude API プロジェクトで作業する](/docs/ja/skills#work-on-claude-api-projects)を参照してください |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ja/skills#bundled-skills).** プロジェクトの言語用に [Claude API](https://platform.claude.com/docs/en/api/overview) および [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) リファレンス資料を読み込みます。コードが `anthropic` または `@anthropic-ai/sdk` をインポートするときも自動的にアクティブになります。各サブコマンドが何をするか、および必要なバージョンについては、[Claude API プロジェクトで作業する](/docs/ja/skills#work-on-claude-api-projects)を参照してください |

73| `/claude-in-chrome [task]` | **[Skill](/docs/ja/skills#bundled-skills).** Claude にブラウザでタスクを実行させます。ページのテスト、フォームの入力、コンソールログの読み取りなど、[Claude in Chrome](/docs/ja/chrome) を通じて。Chrome 統合がセッションで有効な場合(たとえば `claude --chrome` など)、または Claude Code が[拡張機能をインストール](/docs/ja/chrome#install-the-extension-when-claude-asks)することを提案できる場合に利用可能です |73| `/claude-in-chrome [task]` | **[Skill](/docs/ja/skills#bundled-skills).** Claude にブラウザでタスクを実行させます。ページのテスト、フォームの入力、コンソールログの読み取りなど、[Claude in Chrome](/docs/ja/chrome) を通じて。Chrome 統合がセッションで有効な場合(たとえば `claude --chrome` など)、または Claude Code が[拡張機能をインストール](/docs/ja/chrome#install-the-extension-when-claude-asks)することを提案できる場合に利用可能です |

74| `/clear [name]` | 空のコンテキストで新しい会話を開始します。前の会話に `/resume` ピッカーでラベルを付けるために名前を渡します。同じ会話を続けながらコンテキストを解放するには、代わりに `/compact` を使用します。`/resume` で前の会話を再開するか、同じ Claude Code プロセスで、[rewind メニューの previous-session エントリ](/docs/ja/checkpointing#rewind-past-a-cleared-conversation)から復元します。エイリアス:`/reset`、`/new` |74| `/clear [name]` | 空のコンテキストで新しい会話を開始します。前の会話に `/resume` ピッカーでラベルを付けるために名前を渡します。同じ会話を続けながらコンテキストを解放するには、代わりに `/compact` を使用します。`/resume` で前の会話を再開するか、同じ Claude Code プロセスで、[rewind メニューの previous-session エントリ](/docs/ja/checkpointing#rewind-past-a-cleared-conversation)から復元します。エイリアス:`/reset`、`/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/ja/skills#bundled-skills).** 現在の diff、または渡す PR 番号、ブランチ、またはパスを正確性バグについてレビューします。モデルと努力レベルに応じて、レビューはクリーンアップの機会もカバーします。`--fix` を渡して検出結果を適用し、`--comment` を渡して GitHub PR または GitLab マージリクエストに投稿するか、`ultra` を渡してディープ[クラウドレビュー](/docs/ja/ultrareview)を実行します。GitLab マージリクエストに投稿するには Claude Code v2.1.257 以降が必要です。`github.com` PR ターゲットで `ultra` を使用する場合、`--post` を渡して [PR に完成した検出結果を投稿する](/docs/ja/ultrareview#post-findings-to-the-pull-request)ことを起動ダイアログで事前選択します。`--post` には Claude Code v2.1.227 以降が必要です。努力レベル、ターゲット、および `/simplify` との関係については、[diff をローカルでレビューする](/docs/ja/code-review#review-a-diff-locally)を参照してください。エイリアス:`/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/ja/skills#bundled-skills).** 現在の差分、または渡す PR 番号、ブランチ、またはパスを正確性バグについてレビューします。モデルと effort レベルに応じて、レビューはクリーンアップの機会もカバーします。`--fix` を渡して検出結果を適用し、`--comment` を渡して GitHub PR または GitLab マージリクエストに投稿するか、`ultra` を渡してディープ[クラウドレビュー](/docs/ja/ultrareview)を実行します。GitLab マージリクエストに投稿するには Claude Code v2.1.257 以降が必要です。`github.com` PR ターゲットで `ultra` を使用する場合、`--post` を渡して [PR に完成した検出結果を投稿する](/docs/ja/ultrareview#post-findings-to-the-pull-request)ことを起動ダイアログで事前選択します。`--post` には Claude Code v2.1.227 以降が必要です。effort レベル、ターゲット、および `/simplify` との関係については、[差分をローカルでレビューする](/docs/ja/code-review#review-a-diff-locally)を参照してください。エイリアス:`/review` |

76| `/color [color\|default]` | 現在のセッションのプロンプトバーのカラーを設定します。利用可能なカラー:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。`default` を使用してリセットするか、引数なしで実行してランダムなカラーを選択します。[Remote Control](/docs/ja/remote-control) が接続されている場合、カラーは claude.ai/code に同期されます。非インタラクティブモード(`-p`)でも利用可能です。Claude Code v2.1.205 以降が必要です |76| `/color [color\|default]` | 現在のセッションのプロンプトバーのカラーを設定します。利用可能なカラー:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。`default` を使用してリセットするか、引数なしで実行してランダムなカラーを選択します。[Remote Control](/docs/ja/remote-control) が接続されている場合、カラーは claude.ai/code に同期されます。非対話モード(`-p`)でも利用可能です。Claude Code v2.1.205 以降が必要です |

77| `/compact [instructions]` | ここまでの会話を要約してコンテキストを解放します。オプションで要約のフォーカス指示を渡します。[コンパクション処理がルール、スキル、メモリファイルをどのように処理するか](/docs/ja/context-window#what-survives-compaction)を参照してください |77| `/compact [instructions]` | ここまでの会話を要約してコンテキストを解放します。オプションで要約のフォーカス指示を渡します。[コンテキスト圧縮がルール、スキル、メモリファイルをどのように処理するか](/docs/ja/context-window#what-survives-compaction)を参照してください |

78| `/config [key=value ...]` | [設定](/docs/ja/settings)インターフェイスを開いて、テーマ、モデル、[出力スタイル](/docs/ja/output-styles)、その他の設定を調整します。1 つ以上の `key=value` ペアを渡して、インターフェイスを開かずに設定を直接設定します。たとえば `/config thinking=false`、`/config theme=dark`、または `/config model=sonnet`。`key=value` 形式は非インタラクティブモード(`-p`)および Claude モバイルアプリから [Remote Control](/docs/ja/remote-control) 経由でも機能します。`key=value` 形式は、[`autoContinueAtUsageLimit`](/docs/ja/interactive-mode#turn-automatic-continue-off) などのパネルで確認が必要な設定をオンにすることはできませんが、オフにすることはできます。`/config --help` を実行して、受け入れるキーを一覧表示します。エイリアス:`/settings` |78| `/config [key=value ...]` | [設定](/docs/ja/settings)インターフェイスを開いて、テーマ、モデル、[出力スタイル](/docs/ja/output-styles)、その他の設定を調整します。1 つ以上の `key=value` ペアを渡して、インターフェイスを開かずに設定を直接設定します。たとえば `/config thinking=false`、`/config theme=dark`、または `/config model=sonnet`。`key=value` 形式は非対話モード(`-p`)および Claude モバイルアプリから [Remote Control](/docs/ja/remote-control) 経由でも機能します。`key=value` 形式は、[`autoContinueAtUsageLimit`](/docs/ja/interactive-mode#turn-automatic-continue-off) などのパネルで確認が必要な設定をオンにすることはできませんが、オフにすることはできます。`/config --help` を実行して、受け入れるキーを一覧表示します。エイリアス:`/settings` |

79| `/context [all]` | 現在のコンテキスト使用量をカラーグリッドとして視覚化します。コンテキストが多いツール、メモリ肥大化、容量警告の最適化提案を表示します。会話がコンテキストウィンドウを超える場合、出力には制限をどのくらい超えているか、どのコマンドがスペースを解放するかを示す[警告](/docs/ja/errors#context-exceeds-the-token-limit)が含まれます。[フルスクリーンモード](/docs/ja/fullscreen)では、`/context` は項目ごとの内訳を折りたたんでグリッドを表示したままにします。`all` を渡して展開します |79| `/context [all]` | 現在のコンテキスト使用量をカラーグリッドとして視覚化します。コンテキストが多いツール、メモリ肥大化、容量警告の最適化提案を表示します。会話がコンテキストウィンドウを超える場合、出力には制限をどのくらい超えているか、どのコマンドがスペースを解放するかを示す[警告](/docs/ja/errors#context-exceeds-the-token-limit)が含まれます。[フルスクリーンモード](/docs/ja/fullscreen)では、`/context` は項目ごとの内訳を折りたたんでグリッドを表示したままにします。`all` を渡して展開します |

80| `/copy [N]` | 最後のアシスタント応答をクリップボードにコピーします。数値 `N` を渡して N 番目に最新の応答をコピーします:`/copy 2` は 2 番目に最新の応答をコピーします。コードブロックが存在する場合、個別のブロックまたは完全な応答を選択するためのインタラクティブなピッカーを表示します。ピッカーで `w` を押して、クリップボードの代わりにファイルに選択を書き込みます。これは SSH 経由で便利です |80| `/copy [N]` | 最後のアシスタント応答をクリップボードにコピーします。数値 `N` を渡して N 番目に最新の応答をコピーします:`/copy 2` は 2 番目に最新の応答をコピーします。コードブロックが存在する場合、個別のブロックまたは完全な応答を選択するためのインタラクティブなピッカーを表示します。ピッカーで `w` を押して、クリップボードの代わりにファイルに選択を書き込みます。これは SSH 経由で便利です |

81| `/cost` | `/usage` のエイリアス |81| `/cost` | `/usage` のエイリアス |

82| `/dataviz [request]` | **[Skill](/docs/ja/skills#bundled-skills).** チャート、グラフ、ダッシュボードの設計ガイダンス。Claude はデータのチャート形式を選択し、役割別にカラーを割り当て、バンドルされたスクリプトで色覚異常の安全性とコントラストを検証し、マーク、インタラクション、アクセシビリティルールを適用します。独自のパレットに置き換えるブランド中立的なプレースホルダーパレットを使用します。Claude Code v2.1.198 以降が必要です |82| `/dataviz [request]` | **[Skill](/docs/ja/skills#bundled-skills).** チャート、グラフ、ダッシュボードの設計ガイダンス。Claude はデータのチャート形式を選択し、役割別にカラーを割り当て、バンドルされたスクリプトで色覚異常の安全性とコントラストを検証し、マーク、インタラクション、アクセシビリティルールを適用します。独自のパレットに置き換えるブランド中立的なプレースホルダーパレットを使用します。Claude Code v2.1.198 以降が必要です |

83| `/debug [description]` | **[Skill](/docs/ja/skills#bundled-skills).** 現在のセッションのデバッグログを有効にし、セッションデバッグログを読んで問題をトラブルシューティングします。デバッグログはデフォルトではオフです。`claude --debug` で開始した場合を除き、セッション中に `/debug` を実行するとその時点からログのキャプチャを開始します。オプションで問題を説明して分析にフォーカスを当てます |83| `/debug [description]` | **[Skill](/docs/ja/skills#bundled-skills).** 現在のセッションのデバッグログを有効にし、セッションデバッグログを読んで問題をトラブルシューティングします。デバッグログはデフォルトではオフです。`claude --debug` で開始した場合を除き、セッション中に `/debug` を実行するとその時点からログのキャプチャを開始します。オプションで問題を説明して分析にフォーカスを当てます |

84| `/deep-research <question>` | **[Workflow](/docs/ja/workflows#bundled-workflows).** 質問に関する Web 検索をファンアウトし、ソースをフェッチして相互チェックし、引用されたレポートを合成します |84| `/deep-research <question>` | **[Workflow](/docs/ja/workflows#bundled-workflows).** 質問に関する Web 検索をファンアウトし、ソースをフェッチして相互チェックし、引用付きのレポートを合成します |

85| `/design [brief]` | **[Skill](/docs/ja/skills#bundled-skills).** UI モックアップ、スクリーンフロー、ランディングページ、またはポスターを 1 つのキャンバス上のアートボードとしてドラフトし、Claude Design [artifact](/docs/ja/artifacts#draft-a-design-canvas) として公開します。たとえば `/design a settings screen for a mobile banking app`。デスクトップブラウザでアートボードを編集し、編集は自動的に保存されます。各アートボードを PNG または PDF としてエクスポートできます。Claude Code v2.1.265 以降が必要です。[アーティファクトが利用可能](/docs/ja/artifacts#availability)なセッション、およびアカウントで [Design テンプレートが利用可能](/docs/ja/artifacts#start-from-a-slides-design-or-docs-template)である必要があります。組織がそのテンプレートをオフにしている場合、`/design` はデザインをドラフトしません。Anthropic API で利用可能です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS では、アーティファクトが利用できないため、コマンドは利用できません |85| `/design [brief]` | **[Skill](/docs/ja/skills#bundled-skills).** UI モックアップ、スクリーンフロー、ランディングページ、またはポスターを 1 つのキャンバス上のアートボードとしてドラフトし、Claude Design [アーティファクト](/docs/ja/artifacts#draft-a-design-canvas)として公開します。たとえば `/design a settings screen for a mobile banking app`。デスクトップブラウザでアートボードを編集し、編集は自動的に保存されます。各アートボードを PNG または PDF としてエクスポートできます。Claude Code v2.1.265 以降が必要です。[アーティファクトが利用可能](/docs/ja/artifacts#availability)なセッション、およびアカウントで [Design テンプレートが利用可能](/docs/ja/artifacts#start-from-a-slides-design-or-docs-template)である必要があります。組織がそのテンプレートをオフにしている場合、`/design` はデザインをドラフトしません。Anthropic API で利用可能です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS では、アーティファクトが利用できないため、コマンドは利用できません |

86| `/design-login` | `/design-sync` の設計システムアクセスを claude.ai アカウントで認可します |86| `/design-login` | `/design-sync` のデザインシステムアクセスを claude.ai アカウントで認可します |

87| `/design-sync [hint]` | **[Skill](/docs/ja/skills#bundled-skills).** リポジトリの React 設計システムを変換して [Claude Design](https://claude.ai/design) にアップロードし、生成される設計が実際のコンポーネントを使用するようにします。オプションで設計システムに名前を付けます。たとえば `/design-sync Acme DS`。初回同期はすべてのコンポーネントを検証し、大規模なリポジトリでは数時間かかる場合があります。Anthropic API で利用可能です。CLI が接触しない claude.ai が必要です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps gateway](/docs/ja/claude-apps-gateway#availability-and-limitations) 経由では、コマンドは利用できません |87| `/design-sync [hint]` | **[Skill](/docs/ja/skills#bundled-skills).** リポジトリの React デザインシステムを変換して [Claude Design](https://claude.ai/design) にアップロードし、生成されるデザインが実際のコンポーネントを使用するようにします。オプションでデザインシステムに名前を付けます。たとえば `/design-sync Acme DS`。初回同期はすべてのコンポーネントを検証し、大規模なリポジトリでは数時間かかる場合があります。Anthropic API で利用可能です。claude.ai が必要ですが、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps gateway](/docs/ja/claude-apps-gateway#availability-and-limitations) 経由では CLI が claude.ai に接続しないため、コマンドは利用できません |

88| `/desktop` | 現在のセッションを Claude Code Desktop アプリで続行します。macOS または x64 Windows と Claude サブスクリプションが必要です。エイリアス:`/app` |88| `/desktop` | 現在のセッションを Claude Code Desktop アプリで続行します。macOS または x64 Windows と Claude サブスクリプションが必要です。エイリアス:`/app` |

89| `/diff` | 作業ツリーの変更(Claude がこれまでに行った編集を含む)を確認します。[/diff で変更を確認する](/docs/ja/interactive-mode#review-changes-with-%2Fdiff)を参照してください |89| `/diff` | 作業ツリーの変更(Claude がこれまでに行った編集を含む)を確認します。[/diff で変更を確認する](/docs/ja/interactive-mode#review-changes-with-%2Fdiff)を参照してください |

90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/ja/skills#bundled-skills).** セットアップチェックアップを実行して、問題を診断して修正できます。重複またはレフトオーバーインストール、`PATH` の問題、解析不可能な設定ファイルを含むインストール正常性をチェックします。未使用のスキル、MCP サーバー、プラグインとそのコンテキストコストを検出し、遅い [hooks](/docs/ja/hooks) にフラグを立て、[リリースチャネル](/docs/ja/setup#configure-release-channel)で新しいバージョンをチェックします。ローカル `CLAUDE.md` ファイルをチェックイン済みのファイルに対して重複排除し、チェックイン済みの [`CLAUDE.md`](/docs/ja/memory#my-claude-md-is-too-large) ファイルをコードベースから導出できるコンテンツをカットしてトリミングし、常にロードされるガイダンスを [skills](/docs/ja/skills) とオンデマンドでロードされるネストされた `CLAUDE.md` ファイルに移行します。また、[auto mode](/docs/ja/permissions#permission-modes) をデフォルトにすることと、頻繁に拒否される読み取り専用コマンドを[事前承認](/docs/ja/permissions)することを提案します。最初に検出結果を報告し、何かを変更する前に確認を求めます。ターミナルから、`claude doctor` はセッションを開始せずに読み取り専用インストール診断を出力します。エイリアス:`/checkup`。`/doctor prompt-audit` を実行して、Claude に [`CLAUDE.md` ファイル、スキル、その他の設定](/docs/ja/memory#audit-your-instruction-files)を監査させ、古い指示または競合する指示を検出する代わりにチェックアップを実行します。`prompt-audit` サブコマンドには Claude Code v2.1.283 以降が必要です。`CLAUDE.md` トリミングチェックには Claude Code v2.1.206 以降が必要です。v2.1.205 より前は、`/doctor` は読み取り専用診断画面を開き、`f` を押すとレポートを Claude に送信しました |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/ja/skills#bundled-skills).** 問題を診断して修正できるセットアップチェックアップを実行します。重複または残存したインストール、`PATH` の問題、解析不可能な設定ファイルを含むインストールの正常性をチェックします。未使用のスキル、MCP サーバー、プラグインをそのコンテキストコストと比較して検出し、遅い[フック](/docs/ja/hooks)を指摘し、[リリースチャネル](/docs/ja/setup#configure-release-channel)で新しいバージョンをチェックします。ローカルの `CLAUDE.md` ファイルをチェックイン済みのファイルに対して重複排除し、チェックイン済みの [`CLAUDE.md`](/docs/ja/memory#my-claude-md-is-too-large) ファイルから Claude がコードベースから導出できる内容を削って整理し、残った常時読み込まれるガイダンスをオンデマンドで読み込まれる[スキル](/docs/ja/skills)とネストされた `CLAUDE.md` ファイルに移行します。また、[auto モード](/docs/ja/permissions#permission-modes)をデフォルトにすることと、頻繁に拒否される読み取り専用コマンドを[事前承認](/docs/ja/permissions)することを提案します。最初に検出結果を報告し、何かを変更する前に確認を求めます。ターミナルから、`claude doctor` はセッションを開始せずに読み取り専用のインストール診断を出力します。エイリアス:`/checkup`。チェックアップを実行する代わりに、`/doctor prompt-audit` を実行して、古い指示や競合する指示がないか Claude に [`CLAUDE.md` ファイル、スキル、その他の設定を監査](/docs/ja/memory#audit-your-instruction-files)させることができます。`prompt-audit` サブコマンドには Claude Code v2.1.283 以降が必要です。`CLAUDE.md` トリミングチェックには Claude Code v2.1.206 以降が必要です。v2.1.205 より前は、`/doctor` は読み取り専用診断画面を開き、`f` を押すとレポートを Claude に送信しました |

91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | [努力レベル](/docs/ja/model-config#adjust-effort-level)を設定します:`low` から `xhigh`、`max`、または `auto`。`status` はそれを出力します。`ultracode` または `ultracode on` は現在のレベルで[ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode)をセッションでオンにし、`ultracode off` はそれをオフにします。[`ultracode`](/docs/ja/settings-reference#ultracode) キーは永続化されます。`max` はセッションのみです。`on` および `off` 引数と現在のレベルを保持するには Claude Code v2.1.284 以降が必要です。v2.1.284 より前は、`/effort ultracode` はセッションを `xhigh` に設定し、`/effort ultracode off` は `Invalid argument` で失敗しました。Claude が応答している間に実行し、[キャッシュ警告](/docs/ja/prompt-caching#changing-effort-level)を確認すると、Claude Code が表示する場合、Claude Code は新しいレベルをそのターンの次のリクエストに適用します。v2.1.242 より前は、Claude Code は Anthropic から取得したフィーチャーフラグからコマンドをミッドターンで実行するか、ターンが終了するまでキューに入れるかを決定し、[フィーチャーフラグをフェッチしない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッション([サードパーティプロバイダー](/docs/ja/third-party-integrations)など)では常にキューに入れていました。非インタラクティブモード(`-p`)で機能します |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | [effort レベル](/docs/ja/model-config#adjust-effort-level)を設定します:`low` から `xhigh`、`max`、または `auto`。`status` はそれを出力します。`ultracode` または `ultracode on` は現在のレベルのままセッションで [ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode) をオンにし、`ultracode off` はそれをオフにします。[`ultracode`](/docs/ja/settings-reference#ultracode) キーは永続化されます。`max` はセッションのみです。`on` および `off` 引数と現在のレベルを保持するには Claude Code v2.1.284 以降が必要です。v2.1.284 より前は、`/effort ultracode` はセッションを `xhigh` に設定し、`/effort ultracode off` は `Invalid argument` で失敗しました。Claude が応答している間に実行すると、Claude Code が[キャッシュ警告](/docs/ja/prompt-caching#changing-effort-level)を表示した場合はそれを確認した後、Claude Code は新しいレベルをそのターンの次のリクエストに適用します。v2.1.242 より前は、Claude Code は Anthropic から取得したフィーチャーフラグからコマンドをミッドターンで実行するか、ターンが終了するまでキューに入れるかを決定し、[フィーチャーフラグをフェッチしない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッション([サードパーティプロバイダー](/docs/ja/third-party-integrations)など)では常にキューに入れていました。`-p` で機能します |

92| `/exit` | CLI を終了します。アタッチされた[バックグラウンドセッション](/docs/ja/agent-view#attach-to-a-session)では、これはデタッチし、セッションは実行し続けます。エイリアス:`/quit` |92| `/exit` | CLI を終了します。アタッチされた[バックグラウンドセッション](/docs/ja/agent-view#attach-to-a-session)では、これはデタッチし、セッションは実行し続けます。エイリアス:`/quit` |

93| `/export [filename]` | 現在の会話をプレーンテキストとしてエクスポートします。ファイル名を指定すると、そのファイルに直接書き込みます。指定しない場合、クリップボードにコピーするか、ファイルに保存するためのダイアログが開きます |93| `/export [filename]` | 現在の会話をプレーンテキストとしてエクスポートします。ファイル名を指定すると、そのファイルに直接書き込みます。指定しない場合、クリップボードにコピーするか、ファイルに保存するためのダイアログが開きます |

94| `/fast [on\|off]` | [fast mode](/docs/ja/fast-mode) をオンまたはオフに切り替えます。Claude が応答している間に実行し、Claude Code はターンの終了を待たずに fast mode を切り替えます。ただし、実行中のターンは元の速度で終了します。v2.1.242 より前は、Claude Code は Anthropic から取得したフィーチャーフラグからコマンドをミッドターンで実行するか、ターンが終了するまでキューに入れるかを決定し、[フィーチャーフラグをフェッチしない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッションでは常にキューに入れていました。非インタラクティブモードでの `-p` での可用性は限定的です。[fast mode を切り替える](/docs/ja/fast-mode#toggle-fast-mode)を参照してください。Claude Code v2.1.205 以降が必要です |94| `/fast [on\|off]` | [fast mode](/docs/ja/fast-mode) をオンまたはオフに切り替えます。Claude が応答している間に実行すると、Claude Code はターンの終了を待たずに fast mode を切り替えます。ただし、実行中のターンは元の速度で終了します。v2.1.242 より前は、Claude Code は Anthropic から取得したフィーチャーフラグからコマンドをミッドターンで実行するか、ターンが終了するまでキューに入れるかを決定し、[フィーチャーフラグをフェッチしない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッションでは常にキューに入れていました。`-p` を使用した非対話モードでの可用性は限定的です。[fast mode を切り替える](/docs/ja/fast-mode#toggle-fast-mode)を参照してください。Claude Code v2.1.205 以降が必要です |

95| `/feedback [report]` | Claude Code に関する製品フィードバックを送信します。[`/bug`](#all-commands) と同じダイアログを開き、同じ同意ステップ、送信ルール、ミッドターン動作があります。[Claude がドラフトしたフィードバック](/docs/ja/tools-reference#sendfeedback-tool-behavior)を含むセッションでは、引数なしで `/feedback` を実行するとドラフトキューが代わりに開き、Claude がキューに入れたドラフトを確認、編集、送信、または破棄できます。キューには新しいレポートをダイアログで書き込むオプションが含まれます。引数を指定した場合、および `/bug` の場合は常に、ダイアログが直接開きます |95| `/feedback [report]` | Claude Code に関する製品フィードバックを送信します。[`/bug`](#all-commands) と同じダイアログを開き、同じ同意ステップ、送信ルール、ミッドターン動作があります。[Claude がドラフトしたフィードバック](/docs/ja/tools-reference#sendfeedback-tool-behavior)を含むセッションでは、引数なしで `/feedback` を実行するとドラフトキューが代わりに開き、Claude がキューに入れたドラフトを確認、編集、送信、または破棄できます。キューには新しいレポートをダイアログで書き込むオプションが含まれます。引数を指定した場合、および `/bug` の場合は常に、ダイアログが直接開きます |

96| `/fewer-permission-prompts` | **[Skill](/docs/ja/skills#bundled-skills).** トランスクリプトで一般的な読み取り専用 Bash および MCP ツール呼び出しをスキャンし、プロジェクト `.claude/settings.json` に優先許可リストを追加して権限プロンプトを減らします |96| `/fewer-permission-prompts` | **[Skill](/docs/ja/skills#bundled-skills).** トランスクリプトで一般的な読み取り専用 Bash および MCP ツール呼び出しをスキャンし、プロジェクト `.claude/settings.json` に優先順位付きの許可リストを追加して権限プロンプトを減らします |

97| `/focus` | フォーカスビューを切り替えます。最後のプロンプト、1 行のツール呼び出し要約と編集 diffstats、および最終応答のみを表示します。ツール呼び出し要約はターンで起動された subagents もカウントし、完了したバックグラウンドタスク通知を 1 つのカウントに折りたたみます。選択はセッション全体で永続化されます。設定で [`viewMode`](/docs/ja/settings-reference#viewmode) を設定してオーバーライドします。[フルスクリーンレンダリング](/docs/ja/fullscreen)でのみ利用可能です。[Remote Control](/docs/ja/remote-control) クライアントから、`/focus [on\|off]` を実行して、保存された選択を変更せずに現在のセッションのみのフォーカスビューをオンまたはオフにします。これには Claude Code v2.1.281 以降が必要です。[VS Code 拡張機能](/docs/ja/vs-code#use-the-prompt-box)は独自のフォーカスビューをコマンドメニュー切り替えとして提供し、拡張機能設定として保存され、`viewMode` とは独立しています |97| `/focus` | フォーカスビューを切り替えます。最後のプロンプト、1 行のツール呼び出し要約と編集 diffstats、および最終応答のみを表示します。ツール呼び出し要約はターンで起動されたサブエージェントもカウントし、完了したバックグラウンドタスク通知を 1 つのカウントに折りたたみます。選択はセッション間で永続化されます。設定で [`viewMode`](/docs/ja/settings-reference#viewmode) を設定して上書きします。[フルスクリーンレンダリング](/docs/ja/fullscreen)でのみ利用可能です。[Remote Control](/docs/ja/remote-control) クライアントから、`/focus [on\|off]` を実行して、保存された選択を変更せずに現在のセッションのみのフォーカスビューをオンまたはオフにします。これには Claude Code v2.1.281 以降が必要です。[VS Code 拡張機能](/docs/ja/vs-code#use-the-prompt-box)は独自のフォーカスビューをコマンドメニューの切り替えとして提供し、拡張機能設定として保存され、`viewMode` とは独立しています |

98| `/fork [prompt]` | [現在の会話をコピー](/docs/ja/agent-view#copy-the-session-with-%2Ffork)して新しいバックグラウンドセッションを作成し、ここで作業を続けます。プロンプトを渡すとコピーはすぐにそれに対して作業を開始します。渡さない場合、エージェントビューで最初のプロンプトを待ちます。コピーが[その場で編集](/docs/ja/agent-view#how-file-edits-are-isolated)する場合を除き、Claude Code はコード変更を行う前に独自の worktree を作成するよう指示します。分離指示には Claude Code v2.1.221 以降が必要です。結果がこの会話に戻ってくる subagent に副タスクを渡すには、`/subtask` を使用します。自分でコピーに切り替えるには、`/branch` を使用します。Claude Code v2.1.212 以降が必要です。v2.1.161 ~ v2.1.211 では、および [agent view がオフ](/docs/ja/agent-view#turn-off-agent-view)になっている場合は常に、`/fork` は [forked subagent](/docs/ja/sub-agents#fork-the-current-conversation) を開始します |98| `/fork [prompt]` | [現在の会話をコピー](/docs/ja/agent-view#copy-the-session-with-%2Ffork)して新しいバックグラウンドセッションを作成し、ここで作業を続けます。プロンプトを渡すとコピーはすぐにそれに対して作業を開始します。渡さない場合、エージェントビューで最初のプロンプトを待ちます。コピーが[その場で編集](/docs/ja/agent-view#how-file-edits-are-isolated)する場合を除き、Claude Code はコード変更を行う前に独自の worktree を作成するよう指示します。分離指示には Claude Code v2.1.221 以降が必要です。結果がこの会話に戻ってくるサブエージェントに副タスクを渡すには、`/subtask` を使用します。自分でコピーに切り替えるには、`/branch` を使用します。Claude Code v2.1.212 以降が必要です。v2.1.161 ~ v2.1.211 では、および [agent view がオフ](/docs/ja/agent-view#turn-off-agent-view)になっている場合は常に、`/fork` は代わりに[フォークされたサブエージェント](/docs/ja/sub-agents#fork-the-current-conversation)を開始します |

99| `/goal [condition\|clear]` | [goal](/docs/ja/goal) を設定します:Claude は条件が満たされるか goal が[別の理由でクリア](/docs/ja/goal#how-evaluation-works)されるまでターン全体で作業を続けます。引数がない場合、現在または最近達成された goal を表示します。`clear`、`stop`、`off`、`reset`、`none`、または `cancel` はアクティブな goal を早期に削除します |99| `/goal [condition\|clear]` | [goal](/docs/ja/goal) を設定します:Claude は条件が満たされるか goal が[別の理由でクリア](/docs/ja/goal#how-evaluation-works)されるまでターンをまたいで作業を続けます。引数がない場合、現在または最近達成された goal を表示します。`clear`、`stop`、`off`、`reset`、`none`、または `cancel` はアクティブな goal を早期に削除します |

100| `/heapdump` | JavaScript ヒープスナップショットとメモリ内訳を `~/Desktop` または Linux のホームディレクトリ(Desktop フォルダがない場合)に書き込んで、高いメモリ使用量を診断します。メモリ問題を報告するときは `-diagnostics.json` ファイルのみを添付してください。`.heapsnapshot` には完全な会話と認証情報が含まれているため、共有しないでください。[出力で何をするか](/docs/ja/troubleshooting#high-cpu-or-memory-usage)を参照してください |100| `/heapdump` | JavaScript ヒープスナップショットとメモリ内訳を `~/Desktop`、または Desktop フォルダがない Linux ではホームディレクトリに書き込んで、高いメモリ使用量を診断します。メモリ問題を報告するときは `-diagnostics.json` ファイルのみを添付してください。`.heapsnapshot` には完全な会話と認証情報が含まれているため、共有しないでください。[コマンドメニューから非表示](#how-the-command-menu-matches-what-you-type)です。完全に入力してください。[出力をどう扱うか](/docs/ja/troubleshooting#high-cpu-or-memory-usage)を参照してください |

101| `/help` | ヘルプと利用可能なコマンドを表示します |101| `/help` | ヘルプと利用可能なコマンドを表示します |

102| `/hooks` | ツールイベントの [hook](/docs/ja/hooks) 設定を表示します |102| `/hooks` | [フック](/docs/ja/hooks#the-%2Fhooks-menu)設定を表示します |

103| `/ide` | IDE 統合を管理して状態を表示します |103| `/ide` | IDE 統合を管理して状態を表示します |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | OpenAI Codex、Google Gemini CLI、または Cursor からマシン上の Claude Code に設定を取り込みます。指示ファイル、MCP サーバー、コマンド、subagents、スキルを含みます。[非インタラクティブモード](/docs/ja/headless)で `-p` を使用する場合、`/import` は見つけたものを一覧表示し、インポートを確認するコマンドを提供します。`--dry-run` を追加して何も書き込まずにプレビューするか、`--yes` を追加してインタラクティブなピッカーをスキップします。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps gateway](/docs/ja/claude-apps-gateway#availability-and-limitations) 経由では利用できません。[フィーチャーフラグフェッチング](/docs/ja/env-vars#features-that-need-feature-flag-fetching)をオフにしている場合も利用できません。Claude Code v2.1.213 以降が必要です。Cursor からのインポートには v2.1.265 以降が必要です |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | マシン上の OpenAI Codex、Google Gemini CLI、または Cursor から Claude Code に設定を取り込みます。指示ファイル、MCP サーバー、コマンド、サブエージェント、スキルを含みます。`-p` を使用した[非対話モード](/docs/ja/headless)では、`/import` は見つけたものを一覧表示し、インポートを確認するコマンドを提供します。`--dry-run` を追加して何も書き込まずにプレビューするか、`--yes` を追加してインタラクティブなピッカーをスキップします。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps gateway](/docs/ja/claude-apps-gateway#availability-and-limitations) 経由では利用できません。[フィーチャーフラグフェッチング](/docs/ja/env-vars#features-that-need-feature-flag-fetching)をオフにしている場合も利用できません。Claude Code v2.1.213 以降が必要です。Cursor からのインポートには v2.1.265 以降が必要です |

105| `/init` | `CLAUDE.md` ガイドでプロジェクトを初期化します。`CLAUDE_CODE_NEW_INIT=1` を設定して、スキル、hooks、個人メモリファイルのウォークスルーも行うインタラクティブなフローを取得します。`/init` が OpenAI Codex または Google Gemini CLI 設定を見つけた場合、`/import` で引き継ぐことを提案します |105| `/init` | `CLAUDE.md` ガイドでプロジェクトを初期化します。`CLAUDE_CODE_NEW_INIT=1` を設定すると、スキル、フック、個人メモリファイルのウォークスルーも行うインタラクティブなフローになります。`/init` が OpenAI Codex または Google Gemini CLI の設定を見つけた場合、`/import` で引き継ぐことを提案します |

106| `/insights` | このマシンの最近のセッションを分析する HTML レポートを生成します:どのプロジェクトで作業するか、Claude Code をどのように使用するか、何が問題になるか、試すべき機能。[クラウドセッション](/docs/ja/claude-code-on-the-web)では利用できません。レポートの場所、保持、コストについては、[使用パターンを分析する](/docs/ja/costs#analyze-your-usage-patterns)を参照してください |106| `/insights` | このマシンの最近のセッションを分析する HTML レポートを生成します:どのプロジェクトで作業するか、Claude Code をどのように使用するか、何が問題になるか、試すべき機能。[クラウドセッション](/docs/ja/claude-code-on-the-web)では利用できません。レポートの場所、保持、コストについては、[使用パターンを分析する](/docs/ja/costs#analyze-your-usage-patterns)を参照してください |

107| `/install-github-app` | リポジトリの Claude GitHub App をインストールし、[GitHub Actions](/docs/ja/github-actions) ワークフローとシークレットをセットアップするオプションのステップを実行します。リポジトリを選択して統合を設定するウォークスルーを行います。github.com リポジトリでのみ機能します。リポジトリの git リモートが gitlab.com または bitbucket.org にある場合、コマンドは通知を出力してセットアップを開始する代わりに終了します。GitLab パイプラインから Claude Code を実行するには、[GitLab CI/CD](/docs/ja/gitlab-ci-cd) を参照してください |107| `/install-github-app` | リポジトリの Claude GitHub App をインストールし、[GitHub Actions](/docs/ja/github-actions) ワークフローとシークレットをセットアップするオプションのステップを実行します。リポジトリを選択して統合を設定するウォークスルーを行います。github.com リポジトリでのみ機能します。リポジトリの git リモートが gitlab.com または bitbucket.org にある場合、コマンドは通知を出力してセットアップを開始する代わりに終了します。GitLab パイプラインから Claude Code を実行するには、[GitLab CI/CD](/docs/ja/gitlab-ci-cd) を参照してください |

108| `/install-slack-app` | Claude Slack アプリをインストールします。OAuth フローを完了するためにブラウザを開きます |108| `/install-slack-app` | Claude Slack アプリをインストールします。OAuth フローを完了するためにブラウザを開きます |

109| `/keybindings` | [キーボードショートカット](/docs/ja/keybindings)ファイルを開きます |109| `/keybindings` | [キーボードショートカット](/docs/ja/keybindings)ファイルを開きます |

110| `/list-agents` | subagents、[agent team](/docs/ja/agent-teams) チームメイト、および Claude Code がメッセージを送信できるその他の Claude Code セッションを、各セッションで使用する名前とともに一覧表示します。[クロスセッションメッセージング](/docs/ja/cross-session-messaging)を参照してください。`/peers` としても利用可能です。Claude Code v2.1.224 以降が必要です。以前のバージョンは `Unknown command: /list-agents` を報告します。チームメイト行とこのセッション独自の名前を示す最初の行には v2.1.239 以降が必要です。[クロスセッションメッセージングが有効](/docs/ja/cross-session-messaging#availability)なセッションでのみ利用可能です |110| `/list-agents` | サブエージェント、[エージェントチーム](/docs/ja/agent-teams)のチームメイト、および Claude がメッセージを送信できるその他の Claude Code セッションを、それぞれに使用する名前とともに一覧表示します。[クロスセッションメッセージング](/docs/ja/cross-session-messaging)を参照してください。`/peers` としても利用可能です。Claude Code v2.1.224 以降が必要です。以前のバージョンは `Unknown command: /list-agents` を報告します。チームメイト行とこのセッション自身の名前を示す最初の行には v2.1.239 以降が必要です。[クロスセッションメッセージングが有効](/docs/ja/cross-session-messaging#availability)なセッションでのみ利用可能です |

111| `/login` | Anthropic アカウントにサインインします |111| `/login` | Anthropic アカウントにサインインします |

112| `/logout` | Anthropic アカウントからサインアウトします |112| `/logout` | Anthropic アカウントからサインアウトします |

113| `/loop [interval] [prompt]` | **[Skill](/docs/ja/skills#bundled-skills).** セッションが開いている間、プロンプトを繰り返し実行します。間隔を省略すると、Claude は[反復間で自分のペースを設定](/docs/ja/scheduled-tasks#let-claude-choose-the-interval)します。プロンプトを省略すると、Claude は[組み込みメンテナンスプロンプト](/docs/ja/scheduled-tasks#run-the-built-in-maintenance-prompt)または [`loop.md`](/docs/ja/scheduled-tasks#customize-the-default-prompt-with-loop-md) を実行します。例:`/loop 5m check if the deploy finished`。[スケジュールでプロンプトを実行する](/docs/ja/scheduled-tasks)を参照してください。エイリアス:`/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/ja/skills#bundled-skills).** セッションが開いている間、プロンプトを繰り返し実行します。間隔を省略すると、Claude は[反復間で自分のペースを設定](/docs/ja/scheduled-tasks#let-claude-choose-the-interval)します。プロンプトを省略すると、Claude は[組み込みメンテナンスプロンプト](/docs/ja/scheduled-tasks#run-the-built-in-maintenance-prompt)または [`loop.md`](/docs/ja/scheduled-tasks#customize-the-default-prompt-with-loop-md) を実行します。例:`/loop 5m check if the deploy finished`。[スケジュールでプロンプトを実行する](/docs/ja/scheduled-tasks)を参照してください。エイリアス:`/proactive` |

114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | MCP サーバー接続と OAuth 認証を管理します。引数なしで実行してインタラクティブなリストを開くか、`reconnect <server>` を渡して 1 つの切断されたサーバーを再接続するか、`enable`/`disable` をサーバー名または `all` で渡してダイアログを開かずに接続状態を変更します。非インタラクティブモード(`-p`)でも利用可能です。引数なしで実行するとサーバー状態のテキスト要約を出力します。ダイアログを開く代わりに Claude Code v2.1.205 以降が必要です |114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | MCP サーバー接続と OAuth 認証を管理します。引数なしで実行してインタラクティブなリストを開くか、`reconnect <server>` を渡して切断された 1 つのサーバーを再接続するか、`enable`/`disable` をサーバー名または `all` とともに渡してダイアログを開かずに接続状態を変更します。非対話モード(`-p`)でも利用可能で、引数なしで実行するとリストを開く代わりにサーバー状態のテキスト要約を出力します。Claude Code v2.1.205 以降が必要です |

115| `/memory` | `CLAUDE.md` ファイルを編集し、[auto memory](/docs/ja/memory#auto-memory) を有効または無効にし、auto memory エントリを表示します |115| `/memory` | `CLAUDE.md` ファイルを編集し、[自動メモリ](/docs/ja/memory#auto-memory)を有効または無効にし、自動メモリのエントリを表示します |

116| `/mobile` | Claude モバイルアプリをダウンロードするための QR コードを表示します。エイリアス:`/ios`、`/android` |116| `/mobile` | Claude モバイルアプリをダウンロードするための QR コードを表示します。エイリアス:`/ios`、`/android` |

117| `/model [model]` | AI モデルを切り替えて、新しいセッションのデフォルトとして保存します。サポートするモデルの場合、左右の矢印を使用して[努力レベルを調整](/docs/ja/model-config#adjust-effort-level)します。引数がない場合、ピッカーが開きます。行で `s` を押して現在のセッションのみ切り替えます。[Claude Code が切り替えを確認するよう求めるとき](/docs/ja/prompt-caching#switching-models)を参照してください。切り替えを確認すると、Claude Code が尋ねた場合、Claude Code は現在の応答の終了を待たずに変更を適用します。v2.1.242 より前は、Claude Code は Anthropic から取得したフィーチャーフラグからコマンドをミッドターンで実行するか、ターンが終了するまでキューに入れるかを決定し、[フィーチャーフラグをフェッチしない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッション([サードパーティプロバイダー](/docs/ja/third-party-integrations)など)では常にキューに入れていました。非インタラクティブモード(`-p`)でもモデル引数を使用して利用可能です。ピッカーの代わりに、現在のセッションのみに適用され、デフォルトとして保存されません。Claude Code v2.1.205 以降が必要です |117| `/model [model]` | AI モデルを切り替えて、新しいセッションのデフォルトとして保存します。サポートするモデルの場合、左右の矢印を使用して [effort レベルを調整](/docs/ja/model-config#adjust-effort-level)します。引数がない場合、ピッカーが開きます。行で `s` を押すと現在のセッションのみ切り替えます。[Claude Code が切り替えを確認するよう求めるとき](/docs/ja/prompt-caching#switching-models)を参照してください。Claude Code が確認を求めた場合は切り替えを確認すると、Claude Code は現在の応答の終了を待たずに変更を適用します。v2.1.242 より前は、Claude Code は Anthropic から取得したフィーチャーフラグからコマンドをミッドターンで実行するか、ターンが終了するまでキューに入れるかを決定し、[フィーチャーフラグをフェッチしない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッション([サードパーティプロバイダー](/docs/ja/third-party-integrations)など)では常にキューに入れていました。非対話モード(`-p`)でも、ピッカーの代わりにモデル引数を使用して利用可能です。その場合は現在のセッションのみに適用され、デフォルトとして保存されません。Claude Code v2.1.205 以降が必要です |

118| `/output-style [style]` | [出力スタイル](/docs/ja/output-styles)を一覧表示するか、1 つに切り替えます。たとえば `/output-style concise`。[出力スタイルを変更する](/docs/ja/output-styles#change-your-output-style)を参照してください。Claude Code v2.1.269 以降が必要です |118| `/output-style [style]` | [出力スタイル](/docs/ja/output-styles)を一覧表示するか、1 つに切り替えます。たとえば `/output-style concise`。[出力スタイルを変更する](/docs/ja/output-styles#change-your-output-style)を参照してください。Claude Code v2.1.269 以降が必要です |

119| `/passes` | 友人と Claude Code の無料 1 週間を共有します。アカウントが適格な場合のみ表示されます |119| `/passes` | 友人と Claude Code の無料 1 週間を共有します。アカウントが適格な場合のみ表示されます |

120| `/permissions` | ツール権限の許可、質問、拒否ルールを管理します。スコープ別にルールを表示し、ルールを追加または削除し、作業ディレクトリを管理し、[最近の auto mode 拒否](/docs/ja/auto-mode-config#review-denials)を確認できるインタラクティブなダイアログが開きます。ダイアログの **Auto mode** タブから [auto mode 分類器ルール](/docs/ja/auto-mode-config#edit-rules-from-permissions)を表示および編集することもできます。Claude が応答している間に実行すると、Claude Code はダイアログをすぐに開き、同じターンで Claude の次のツール呼び出しから変更を適用します。v2.1.234 より前は、Claude Code はターンが終了するまでコマンドをキューに入れていました。エイリアス:`/allowed-tools` |120| `/permissions` | ツール権限の許可、質問、拒否ルールを管理します。スコープ別にルールを表示し、ルールを追加または削除し、作業ディレクトリを管理し、[最近の auto モードの拒否](/docs/ja/auto-mode-config#review-denials)を確認できるインタラクティブなダイアログが開きます。ダイアログの **Auto mode** タブから [auto モード分類器ルール](/docs/ja/auto-mode-config#edit-rules-from-permissions)を表示および編集することもできます。Claude が応答している間に実行すると、Claude Code はダイアログをすぐに開き、同じターンで Claude の次のツール呼び出しから変更を適用します。v2.1.234 より前は、Claude Code はターンが終了するまでコマンドをキューに入れていました。エイリアス:`/allowed-tools` |

121| `/plan [description]` | プロンプトから直接 plan mode に入ります。オプションの説明を渡して plan mode に入り、すぐにそのタスクで開始します。たとえば `/plan fix the auth bug` |121| `/plan [description]` | プロンプトから直接 plan モードに入ります。オプションの説明を渡して plan モードに入り、すぐにそのタスクで開始します。たとえば `/plan fix the auth bug` |

122| `/plugin [subcommand]` | Claude Code [plugins](/docs/ja/plugins/overview) を管理します。引数なしで実行してプラグインメニューを開くか、`list`、`install`、`enable`、`disable` などのサブコマンドを渡して直接実行します。Claude Code はインストール中にプラグインをアクティブ化できます。[インストール要約](/docs/ja/plugins/install#install-a-plugin)は、アクティブ化したかどうか、または `/reload-plugins` を実行するかどうかを示します |122| `/plugin [subcommand]` | Claude Code [プラグイン](/docs/ja/plugins/overview)を管理します。引数なしで実行してプラグインメニューを開くか、`list`、`install`、`enable`、`disable` などのサブコマンドを渡して直接実行します。Claude Code はインストール中にプラグインをアクティブ化できます。[インストール要約](/docs/ja/plugins/install#install-a-plugin)は、アクティブ化したかどうか、または `/reload-plugins` を実行する必要があるかを示します |

123| `/powerup` | アニメーション化されたデモを含むクイックインタラクティブなレッスンを通じて Claude Code 機能を発見します |123| `/powerup` | アニメーション化されたデモを含むクイックインタラクティブなレッスンを通じて Claude Code 機能を発見します |

124| `/pr-comments [PR]` | v2.1.91 で削除されました。代わりに Claude に直接プルリクエストコメントを表示するよう求めてください。以前のバージョンでは、GitHub プルリクエストからコメントをフェッチして表示します。現在のブランチの PR を自動的に検出するか、PR URL または番号を渡します。`gh` CLI が必要です |124| `/pr-comments [PR]` | v2.1.91 で削除されました。代わりに Claude に直接プルリクエストコメントを表示するよう求めてください。以前のバージョンでは、GitHub プルリクエストからコメントをフェッチして表示します。現在のブランチの PR を自動的に検出するか、PR URL または番号を渡します。`gh` CLI が必要です |

125| `/privacy-settings` | プライバシー設定を表示および更新します。Pro および Max プランサブスクライバーのみが利用可能です |125| `/privacy-settings` | プライバシー設定を表示および更新します。Pro および Max プランのサブスクライバーのみが利用可能です |

126| `/radio` | ブラウザで Claude FM lo-fi ラジオを開きます。ブラウザが利用できない場合、ストリーム URL を出力します |126| `/radio` | ブラウザで Claude FM lo-fi ラジオを開きます。ブラウザが利用できない場合、ストリーム URL を出力します |

127| `/rate-limit-options` | claude.ai 使用制限がリクエストをブロックしている場合に作業を続ける方法を表示します:待機して[制限がリセットされたときに自動的に続行](/docs/ja/interactive-mode#wait-for-a-usage-limit-to-reset)、[使用クレジット](/docs/ja/costs#add-usage-credits-to-your-subscription)を追加、またはプランをアップグレードします。Claude Code は制限に達したときに独自のターミナルでこのメニューを開くこともできます。[自動続行をオフにする](/docs/ja/interactive-mode#turn-automatic-continue-off)を参照してください。claude.ai サブスクリプションが必要です。待機と続行行には Claude Code v2.1.234 以降が必要です |127| `/rate-limit-options` | claude.ai の使用制限がリクエストをブロックしている場合に作業を続ける方法を表示します:待機して[制限がリセットされたときに自動的に続行](/docs/ja/interactive-mode#wait-for-a-usage-limit-to-reset)、[使用クレジット](/docs/ja/costs#add-usage-credits-to-your-subscription)を追加、またはプランをアップグレードします。自分のターミナルで制限に達したとき、Claude Code がこのメニューを自動的に開くこともあります。[自動続行をオフにする](/docs/ja/interactive-mode#turn-automatic-continue-off)を参照してください。claude.ai サブスクリプションが必要です。待機して続行する行には Claude Code v2.1.234 以降が必要です |

128| `/recap` | 現在のセッションの 1 行の要約をオンデマンドで生成します。[セッション要約](/docs/ja/interactive-mode#session-recap)を参照してください。これは、離れていた後に表示される自動要約です |128| `/recap` | 現在のセッションの 1 行の要約をオンデマンドで生成します。離れていた後に表示される自動要約については、[セッション要約](/docs/ja/interactive-mode#session-recap)を参照してください |

129| `/release-notes` | インタラクティブなバージョンピッカーでチェンジログを表示します。特定のバージョンを選択してそのリリースノートを表示するか、すべてのバージョンを表示することを選択します。ノートは Claude が見るトランスクリプトに表示されます |129| `/release-notes` | インタラクティブなバージョンピッカーでチェンジログを表示します。特定のバージョンを選択してそのリリースノートを表示するか、すべてのバージョンを表示することを選択します。ノートはトランスクリプトに表示されますが、Claude が見る会話には入りません |

130| `/reload-plugins [--force]` | すべてのアクティブな [plugins](/docs/ja/plugins/overview) を再度読み込んで、保留中の変更を再起動なしで適用します。再度読み込まれた各コンポーネントのカウントを報告し、読み込みエラーにフラグを立てます。再度読み込むと読み込まれた MCP ツールが変更され、プロンプトキャッシュが無効になる場合、コマンドは警告を出し、`--force` を渡さない限りスキップします。非インタラクティブモード(`-p`)、Agent SDK、デスクトップアプリでも利用可能です。セッションに直接入力されたテキストでのみ実行され、プラグイン MCP サーバーの変更は適用されません。Claude Code v2.1.260 以降が必要です。[再起動なしでプラグイン変更を適用する](/docs/ja/plugins/cli-reference#reload-plugins)を参照してください |130| `/reload-plugins [--force]` | すべてのアクティブな[プラグイン](/docs/ja/plugins/overview)を再度読み込んで、保留中の変更を再起動なしで適用します。再度読み込まれた各コンポーネントのカウントを報告し、読み込みエラーを指摘します。再読み込みによって読み込まれる MCP ツールが変わり、プロンプトキャッシュが無効になる場合、コマンドは警告を出し、`--force` を渡さない限りスキップします。非対話モード(`-p`)、Agent SDK、デスクトップアプリでも利用可能です。これらではセッションに直接入力された入力でのみ実行され、プラグイン MCP サーバーの変更は適用されません。Claude Code v2.1.260 以降が必要です。[再起動なしでプラグイン変更を適用する](/docs/ja/plugins/cli-reference#reload-plugins)を参照してください |

131| `/reload-skills` | [skill](/docs/ja/skills) とコマンドディレクトリを再スキャンして、セッション中にディスクで追加または変更されたスキルが再起動なしで利用可能になるようにします。利用可能なスキルの数と追加または削除されたスキルの数を報告します |131| `/reload-skills` | [スキル](/docs/ja/skills)とコマンドディレクトリを再スキャンして、セッション中にディスク上で追加または変更されたスキルが再起動なしで利用可能になるようにします。利用可能なスキルの数と追加または削除されたスキルの数を報告します |

132| `/remote-control` | このセッションを claude.ai から [Remote Control](/docs/ja/remote-control) で利用可能にします。サインアウト状態で実行すると、Remote Control に claude.ai サブスクリプションが必要であることを出力し、サインイン方法を示します。v2.1.206 より前は `Unknown command: /remote-control` を報告しました。エイリアス:`/rc` |132| `/remote-control` | このセッションを claude.ai から [Remote Control](/docs/ja/remote-control) で利用可能にします。サインアウト状態で実行すると、Remote Control に claude.ai サブスクリプションが必要であることを出力し、サインイン方法を示します。v2.1.206 より前は `Unknown command: /remote-control` を報告しました。エイリアス:`/rc` |

133| `/remote-env` | CLI から開始するクラウドセッションのデフォルト[クラウド環境](/docs/ja/cloud-environments#select-an-environment-from-the-cli)を選択します |133| `/remote-env` | CLI から開始するクラウドセッションのデフォルト[クラウド環境](/docs/ja/cloud-environments#select-an-environment-from-the-cli)を選択します |

134| `/rename [name]` | 現在のセッションの名前を変更し、プロンプトバーに名前を表示します。名前がない場合、会話履歴から自動生成されます。非インタラクティブモード(`-p`)でも利用可能です。Claude Code v2.1.205 以降が必要です。claude.ai とデスクトップアプリを含むすべての名前変更サーフェスから、Claude Code は新しい名前の制御文字と非表示文字をスペースに置き換え、名前を 200 文字でキャップします。非表示文字が削除されると名前が空の場合、Claude Code はそれを拒否し、`That name is empty once invisible characters are removed. Usage: /rename <name>` を表示します。文字置換と長さキャップには Claude Code v2.1.221 以降が必要です。このマシン上の別のライブセッションが既に渡した名前を使用している場合、Claude Code は[その変種](/docs/ja/sessions#name-your-sessions)を代わりに適用します |134| `/rename [name]` | 現在のセッションの名前を変更し、プロンプトバーに名前を表示します。名前がない場合、会話履歴から自動生成されます。非対話モード(`-p`)でも利用可能です。Claude Code v2.1.205 以降が必要です。claude.ai とデスクトップアプリを含むすべての名前変更サーフェスから、Claude Code は新しい名前の制御文字と非表示文字をスペースに置き換え、名前を 200 文字に制限します。非表示文字を削除すると名前が空になる場合、Claude Code はそれを拒否し、`That name is empty once invisible characters are removed. Usage: /rename <name>` を表示します。文字置換と長さ制限には Claude Code v2.1.221 以降が必要です。このマシン上の別のライブセッションが既に渡した名前を使用している場合、Claude Code は代わりに[その変種](/docs/ja/sessions#name-your-sessions)を適用します |

135| `/resume [session]` | ID または名前で会話を再開するか、セッションピッカーを開きます。[バックグラウンドセッション](/docs/ja/agent-view)はピッカーに `bg` でマークされて表示されます。実行中のセッションをピッカーから、または ID または名前で再開すると、[そのセッションが開きます](/docs/ja/sessions#resume-a-running-background-session):現在の会話はバックグラウンドに移動し、このターミナルは実行中のセッションにアタッチされます。空のプロンプトで `←` を押してエージェントビューに戻ります。これは、残した会話も一覧表示します。v2.1.285 より前は、Claude Code は拒否し、`claude attach` を使用するか、最初にそこで停止するよう指示しました。エイリアス:`/continue` |135| `/resume [session]` | ID または名前で会話を再開するか、セッションピッカーを開きます。[バックグラウンドセッション](/docs/ja/agent-view)はピッカーに `bg` でマークされて表示されます。実行中のセッションをピッカーから、または ID または名前で再開すると、[そのセッションが開きます](/docs/ja/sessions#resume-a-running-background-session):現在の会話はバックグラウンドに移動し、このターミナルは実行中のセッションにアタッチされます。空のプロンプトで `←` を押すとエージェントビューに戻ります。エージェントビューには離れた会話も一覧表示されます。v2.1.285 より前は、Claude Code は拒否し、`claude attach` でセッションを開くか、先にそれを停止するよう指示していました。エイリアス:`/continue` |

136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/ja/code-review#review-a-diff-locally) のエイリアス:現在の diff、または `/review 1234` などの渡す PR 番号、ブランチ、またはパスをレビューし、同じ努力レベルとフラグを取ります。レベルが指定されていない場合、レビューは最後に入力した `low` ~ `max` レベルを再利用します。正確なルールについては、[diff をローカルでレビューする](/docs/ja/code-review#review-a-diff-locally)を参照してください。ディープクラウドレビューの場合は、[`/code-review ultra`](/docs/ja/ultrareview) を使用してください。v2.1.223 より前は、`/review` は GitHub プルリクエストの単一パス、読み取り専用レビューを実行する別のコマンドで、引数なしで実行すると開いている PR を一覧表示して選択できました。v2.1.186 ~ v2.1.201 では、`/code-review medium` と同じマルチエージェントエンジンを実行しました |136| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/ja/code-review#review-a-diff-locally) のエイリアス:現在の差分、または `/review 1234` などの渡す PR 番号、ブランチ、またはパスをレビューし、同じ effort レベルとフラグを取ります。レベルが指定されていない場合、レビューは最後に入力した `low` ~ `max` のレベルを再利用します。正確なルールについては、[差分をローカルでレビューする](/docs/ja/code-review#review-a-diff-locally)を参照してください。ディープクラウドレビューの場合は、[`/code-review ultra`](/docs/ja/ultrareview) を使用してください。v2.1.223 より前は、`/review` は GitHub プルリクエストを番号で指定して単一パスの読み取り専用レビューを実行する別のコマンドで、引数なしで実行すると開いている PR を一覧表示して選択できました。v2.1.186 ~ v2.1.201 では、`/code-review medium` と同じマルチエージェントエンジンを実行しました |

137| `/rewind` | 会話またはコードを前の時点に巻き戻すか、選択したメッセージから要約します。[checkpointing](/docs/ja/checkpointing) を参照してください。エイリアス:`/checkpoint`、`/undo` |137| `/rewind` | 会話またはコードを前の時点に巻き戻すか、選択したメッセージから要約します。[チェックポイント機能](/docs/ja/checkpointing)を参照してください。エイリアス:`/checkpoint`、`/undo` |

138| `/run` | **[Skill](/docs/ja/skills#bundled-skills).** プロジェクトのアプリを起動して駆動し、テストに合格するだけでなく、変更が機能しているのを確認します。[アプリを実行して検証する](/docs/ja/skills#run-and-verify-your-app)を参照してください |138| `/run` | **[Skill](/docs/ja/skills#bundled-skills).** プロジェクトのアプリを起動して操作し、テストに合格するだけでなく、変更が実際に機能していることを確認します。[アプリを実行して検証する](/docs/ja/skills#run-and-verify-your-app)を参照してください |

139| `/run-skill-generator` | **[Skill](/docs/ja/skills#bundled-skills).** クリーンな環境からプロジェクトのアプリをビルド、起動、駆動する方法を `/run` と `/verify` に教え、プロジェクトごとの [skill](/docs/ja/skills#run-and-verify-your-app) を書き込むことで学習します |139| `/run-skill-generator` | **[Skill](/docs/ja/skills#bundled-skills).** プロジェクトごとの[スキル](/docs/ja/skills#run-and-verify-your-app)を書くことで、クリーンな環境からプロジェクトのアプリをビルド、起動、操作する方法を `/run` と `/verify` に教えます |

140| `/sandbox` | [sandbox mode](/docs/ja/sandboxing) を切り替えます。サポートされているプラットフォームでのみ利用可能です |140| `/sandbox` | [サンドボックスモード](/docs/ja/sandboxing)を切り替えます。サポートされているプラットフォームでのみ利用可能です |

141| `/schedule [description]` | クラウドで実行される[ルーチン](/docs/ja/routines)を作成、更新、一覧表示、または実行します。Claude はセットアップを会話的にウォークスルーします。[ルーチンの最近の実行](/docs/ja/routines#manage-routines-from-the-cli)について質問することもできます。エイリアス:`/routines` |141| `/schedule [description]` | クラウドで実行される[ルーティン](/docs/ja/routines)を作成、更新、一覧表示、または実行します。Claude はセットアップを会話形式でガイドします。[ルーティンの最近の実行](/docs/ja/routines#manage-routines-from-the-cli)について質問することもできます。エイリアス:`/routines` |

142| `/scroll-speed` | マウスホイール[スクロール速度](/docs/ja/fullscreen#mouse-wheel-scrolling)をインタラクティブに調整し、ダイアログが開いている間にスクロールして変更をプレビューできるルーラーを使用します。[フルスクリーンレンダリング](/docs/ja/fullscreen)でのみ利用可能で、JetBrains IDE ターミナルでは利用できません |142| `/scroll-speed` | マウスホイールの[スクロール速度](/docs/ja/fullscreen#mouse-wheel-scrolling)をインタラクティブに調整します。ダイアログが開いている間にスクロールして変更をプレビューできるルーラーが表示されます。[フルスクリーンレンダリング](/docs/ja/fullscreen)でのみ利用可能で、JetBrains IDE ターミナルでは利用できません |

143| `/security-review` | 現在のブランチの変更をセキュリティ脆弱性について分析します。ブランチと origin のデフォルトブランチ間の diff をレビューし、インジェクション、認証の問題、データ公開などのリスクを特定します。`origin` リモートが必要です。レビューが `ambiguous argument` エラーで失敗した場合、[エラーリファレンス](/docs/ja/errors#security-review-fails-without-origin-head)を参照してください |143| `/security-review` | 現在のブランチの変更をセキュリティ脆弱性について分析します。ブランチと origin のデフォルトブランチ間の差分をレビューし、インジェクション、認証の問題、データ公開などのリスクを特定します。`origin` リモートが必要です。レビューが `ambiguous argument` エラーで失敗した場合、[エラーリファレンス](/docs/ja/errors#security-review-fails-without-origin-head)を参照してください |

144| `/setup-bedrock` | インタラクティブなウィザードを通じて [Amazon Bedrock](/docs/ja/amazon-bedrock) 認証、リージョン、モデルピンを設定します。`CLAUDE_CODE_USE_BEDROCK=1` が設定されるまで[コマンドメニューから非表示](#how-the-command-menu-matches-what-you-type)です。完全に入力してください。初回 Amazon Bedrock ユーザーはログイン画面からこのウィザードにアクセスすることもできます |144| `/setup-bedrock` | インタラクティブなウィザードを通じて [Amazon Bedrock](/docs/ja/amazon-bedrock) の認証、リージョン、モデルピンを設定します。`CLAUDE_CODE_USE_BEDROCK=1` が設定されるまで[コマンドメニューから非表示](#how-the-command-menu-matches-what-you-type)です。完全に入力してください。初めて Amazon Bedrock を使用するユーザーはログイン画面からこのウィザードにアクセスすることもできます |

145| `/setup-vertex` | インタラクティブなウィザードを通じて [Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) 認証、プロジェクト、リージョン、モデルピンを設定します。`CLAUDE_CODE_USE_VERTEX=1` が設定されるまで[コマンドメニューから非表示](#how-the-command-menu-matches-what-you-type)です。完全に入力してください。初回 Google Cloud の Agent Platform ユーザーはログイン画面からこのウィザードにアクセスすることもできます |145| `/setup-vertex` | インタラクティブなウィザードを通じて [Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) の認証、プロジェクト、リージョン、モデルピンを設定します。`CLAUDE_CODE_USE_VERTEX=1` が設定されるまで[コマンドメニューから非表示](#how-the-command-menu-matches-what-you-type)です。完全に入力してください。初めて Google Cloud の Agent Platform を使用するユーザーはログイン画面からこのウィザードにアクセスすることもできます |

146| `/simplify [target]` | **[Skill](/docs/ja/skills#bundled-skills).** 変更されたコードをクリーンアップの機会についてレビューし、修正を適用します。4 つのレビュー[エージェント](/docs/ja/sub-agents)が並列で実行され、既存のヘルパーの再利用、簡略化、効率、変更が抽象化の正しいレベルにあるかどうかをカバーします。レビューは正確性バグを探しません。バグを見つけるには `/code-review` を使用してください。パスまたは PR リファレンスを渡して特定のターゲットをレビューします |146| `/simplify [target]` | **[Skill](/docs/ja/skills#bundled-skills).** 変更されたコードをクリーンアップの機会についてレビューし、修正を適用します。4 つのレビュー[エージェント](/docs/ja/sub-agents)が並列で実行され、既存のヘルパーの再利用、簡略化、効率、変更が適切な抽象化レベルにあるかどうかをカバーします。レビューは正確性バグを探しません。バグを見つけるには `/code-review` を使用してください。パスまたは PR リファレンスを渡して特定のターゲットをレビューします |

147| `/skill-doctor` | 各 [skill](/docs/ja/skills) がコンテキストでコストするもの、および使用頻度を表示して、[オフにするスキルを見つけ](/docs/ja/skills#find-unused-skills)ることができます。Claude Code v2.1.252 以降と[フィーチャーフラグフェッチング](/docs/ja/env-vars#features-that-need-feature-flag-fetching)が必要です |147| `/skill-doctor` | 各[スキル](/docs/ja/skills)がコンテキストでどれだけのコストを占めるか、およびどのくらいの頻度で使用されるかを表示して、[オフにするスキルを見つけ](/docs/ja/skills#find-unused-skills)られるようにします。Claude Code v2.1.252 以降と[フィーチャーフラグフェッチング](/docs/ja/env-vars#features-that-need-feature-flag-fetching)が必要です |

148| `/skills` | 利用可能な [skills](/docs/ja/skills) を一覧表示します。名前、説明、またはソースでリストをフィルタリングするために入力します。`t` を押してトークンカウントでソートし、`Space` または `Enter` を押して[skill の可視性を Claude と `/` メニューに循環](/docs/ja/skills#override-skill-visibility-from-settings)させ、`Esc` を押して保存して閉じます。プラグインスキル、frontmatter が `disable-model-invocation: true` を設定するスキル、または管理設定または `--settings` フラグに `skillOverrides` エントリがあるスキルは循環できません |148| `/skills` | 利用可能な[スキル](/docs/ja/skills)を一覧表示します。入力して名前、説明、またはソースでリストをフィルタリングします。`t` を押してトークン数でソートし、`Space` または `Enter` を押して[Claude と `/` メニューに対するスキルの可視性を切り替え](/docs/ja/skills#override-skill-visibility-from-settings)、`Esc` を押して保存して閉じます。プラグインスキル、フロントマターで `disable-model-invocation: true` を設定しているスキル、または管理設定や `--settings` フラグに `skillOverrides` エントリがあるスキルは切り替えできません |

149| `/slides [brief]` | **[Skill](/docs/ja/skills#bundled-skills).** 新しいプレゼンテーションを Claude Slides [artifact](/docs/ja/artifacts#make-a-slide-deck) として作成し、ブリーフから入力します。たとえば `/slides a quarterly review of the platform team`。Claude Code v2.1.265 以降が必要です。[アーティファクトが利用可能](/docs/ja/artifacts#availability)なセッション、およびアカウントで [Slides テンプレートが利用可能](/docs/ja/artifacts#start-from-a-slides-design-or-docs-template)である必要があります。そうでない場合、コマンドは表示されません。Anthropic API で利用可能です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS では、アーティファクトが利用できないため、コマンドは利用できません |149| `/slides [brief]` | **[Skill](/docs/ja/skills#bundled-skills).** ブリーフの内容で埋めた新しいプレゼンテーションを Claude Slides [アーティファクト](/docs/ja/artifacts#make-a-slide-deck)として作成します。たとえば `/slides a quarterly review of the platform team`。Claude Code v2.1.265 以降が必要です。[アーティファクトが利用可能](/docs/ja/artifacts#availability)なセッション、およびアカウントで [Slides テンプレートが利用可能](/docs/ja/artifacts#start-from-a-slides-design-or-docs-template)である必要があります。そうでない場合、コマンドは表示されません。Anthropic API で利用可能です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS では、アーティファクトが利用できないため、コマンドは利用できません |

150| `/stats` | `/usage` のエイリアス。Stats タブで開きます |150| `/stats` | `/usage` のエイリアス。Stats タブで開きます |

151| `/status` | 設定インターフェイスを Status タブで開き、バージョン、モデル、アカウント、接続性を表示します。`Session kind` 行は [background session](/docs/ja/agent-view) で `background job · attached` または `background job · unattended` を読み取り、他のセッションでは `interactive` を読み取ります。v2.1.221 より前は、`/status` はこの行を表示しませんでした。Claude が応答している間に機能します |151| `/status` | 設定インターフェイスを Status タブで開き、バージョン、モデル、アカウント、接続性を表示します。`Session kind` 行は、[バックグラウンドセッション](/docs/ja/agent-view)ではターミナルがアタッチされているかどうかに応じて `background job · attached` または `background job · unattended` と表示され、その他のセッションでは `interactive` と表示されます。v2.1.221 より前は、`/status` はこの行を表示しませんでした。Claude が応答している間も機能します |

152| `/statusline` | Claude Code の[ステータスライン](/docs/ja/statusline)を設定します。何をしたいかを説明するか、引数なしで実行してシェルプロンプトから自動設定します |152| `/statusline` | Claude Code の[ステータスライン](/docs/ja/statusline)を設定します。何をしたいかを説明するか、引数なしで実行してシェルプロンプトから自動設定します |

153| `/stickers` | Claude Code ステッカーを注文します |153| `/stickers` | Claude Code ステッカーを注文します |

154| `/stop` | 現在の[バックグラウンドセッション](/docs/ja/agent-view)を停止します。バックグラウンドセッションにアタッチされている間のみ利用可能です。トランスクリプトと worktree は保持されます。デタッチして停止しない場合は、`/exit` を使用するか、`←` を押します |154| `/stop` | アタッチしている[バックグラウンドセッション](/docs/ja/agent-view)、または[ピーク返信](/docs/ja/agent-view#peek-and-reply)として送信した先のセッションを停止します。トランスクリプトと worktree は保持されます。停止せずにデタッチするには、`/exit` を使用するか、`←` を押します |

155| `/subtask <task>` | [forked subagent](/docs/ja/sub-agents#fork-the-current-conversation) を生成します:完全な会話を継承し、タスクに取り組みながら作業を続けるバックグラウンド subagent。その結果は完了時にこの会話に戻ります。会話を別のバックグラウンドセッションにコピーする代わりに、`/fork` を使用します。Claude Code v2.1.212 以降が必要です。v2.1.161 ~ v2.1.211 では、このコマンドは `/fork` です。[agent view がオフ](/docs/ja/agent-view#turn-off-agent-view)になっている場合、`/subtask` は利用できず、`/fork` は forked-subagent 動作を保持します |155| `/subtask <task>` | [フォークされたサブエージェント](/docs/ja/sub-agents#fork-the-current-conversation)を生成します:完全な会話を継承し、ユーザーが作業を続けている間にタスクに取り組むバックグラウンドサブエージェントです。その結果は完了時にこの会話に戻ります。代わりに会話を別のバックグラウンドセッションにコピーするには、`/fork` を使用します。Claude Code v2.1.212 以降が必要です。v2.1.161 ~ v2.1.211 では、このコマンドは `/fork` です。[agent view がオフ](/docs/ja/agent-view#turn-off-agent-view)になっている場合、`/subtask` は利用できず、`/fork` がフォークされたサブエージェントの動作を維持します |

156| `/tasks` | 完了した subagents を含む、現在のセッションのバックグラウンド作業を表示および管理します。`/bashes` としても利用可能です |156| `/tasks` | 完了したサブエージェントを含む、現在のセッションのバックグラウンド作業を表示および管理します。`/bashes` としても利用可能です |

157| `/team-onboarding` | Claude Code 使用履歴からチームオンボーディングガイドを生成します。Claude は過去 30 日間のセッション、コマンド、MCP サーバー使用状況を分析し、チームメイトが最初のメッセージとして貼り付けて素早くセットアップできるマークダウンガイドを生成します。claude.ai サブスクライバーの Pro、Max、Team、Enterprise プランの場合、チームメイトが Claude Code で直接開くことができる共有リンクも返します |157| `/team-onboarding` | Claude Code の使用履歴からチームオンボーディングガイドを生成します。Claude は過去 30 日間のセッション、コマンド、MCP サーバーの使用状況を分析し、チームメイトが最初のメッセージとして貼り付けて素早くセットアップできる markdown ガイドを生成します。Pro、Max、Team、Enterprise プランの claude.ai サブスクライバーには、チームメイトが Claude Code で直接開くことができる共有リンクも返します |

158| `/teleport` | [cloud session](/docs/ja/claude-code-on-the-web#from-cloud-to-terminal) をこのターミナルにプルします。ピッカーを開き、ブランチと会話をフェッチします。`/tp` としても利用可能です。claude.ai サブスクリプションが必要です |158| `/teleport` | [クラウドセッション](/docs/ja/claude-code-on-the-web#from-cloud-to-terminal)をこのターミナルに取り込みます。ピッカーを開き、ブランチと会話をフェッチします。`/tp` としても利用可能です。claude.ai サブスクリプションが必要です |

159| `/terminal-setup` | VS Code、Cursor、Devin Desktop、Alacritty、または Zed で[改行用の Shift+Enter キーバインディングをインストール](/docs/ja/terminal-config#enter-multiline-prompts)します。Apple Terminal では、代わりに[改行用に Option+Enter を有効にして、可聴ベルをオフ](/docs/ja/terminal-config#enable-option-key-shortcuts-on-macos)にします。iTerm2 では、[`/copy` が機能するようにクリップボードアクセスをオン](/docs/ja/terminal-config#enable-option-key-shortcuts-on-macos)にします |159| `/terminal-setup` | VS Code、Cursor、Devin Desktop、Alacritty、または Zed で[改行用の Shift+Enter キーボードショートカットをインストール](/docs/ja/terminal-config#enter-multiline-prompts)します。Apple Terminal では、代わりに[改行用に Option+Enter を有効にして、可聴ベルをオフ](/docs/ja/terminal-config#enable-option-key-shortcuts-on-macos)にします。iTerm2 では、[`/copy` が機能するようにクリップボードアクセスをオン](/docs/ja/terminal-config#enable-option-key-shortcuts-on-macos)にします |

160| `/theme` | カラーテーマを変更します。ターミナルの明るいまたは暗い背景に一致する `auto` オプション、明るいおよび暗い変種、色覚異常アクセス可能(daltonized)テーマ、ターミナルのカラーパレットを使用する ANSI テーマ、および `~/.claude/themes/` またはプラグインからの[カスタムテーマ](/docs/ja/terminal-config#create-a-custom-theme)を含みます。**New custom theme…** を選択して 1 つを作成します |160| `/theme` | カラーテーマを変更します。ターミナルの明るいまたは暗い背景に一致する `auto` オプション、明るいおよび暗い変種、色覚異常対応(daltonized)テーマ、ターミナルのカラーパレットを使用する ANSI テーマ、および `~/.claude/themes/` またはプラグインからの[カスタムテーマ](/docs/ja/terminal-config#create-a-custom-theme)を含みます。**New custom theme…** を選択して 1 つを作成します |

161| `/tui [default\|fullscreen]` | ターミナル UI レンダラーを設定し、会話をそのまま使用して再起動します。`fullscreen` は[ちらつきのない alt-screen レンダラー](/docs/ja/fullscreen)を有効にします。引数がない場合、アクティブなレンダラーを出力します |161| `/tui [default\|fullscreen]` | ターミナル UI レンダラーを設定し、会話をそのまま保持して再起動します。`fullscreen` は[ちらつきのない alt-screen レンダラー](/docs/ja/fullscreen)を有効にします。引数がない場合、アクティブなレンダラーを出力します |

162| `/ultraplan <prompt>` | 削除されました。代わりに [plan mode](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode) を使用してください。以前は計画タスクを[クラウドセッション](/docs/ja/claude-code-on-the-web)に送信してブラウザで確認しました |162| `/ultraplan <prompt>` | 削除されました。代わりに [plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を使用してください。以前は計画タスクを[クラウドセッション](/docs/ja/claude-code-on-the-web)に送信してブラウザで確認しました |

163| `/ultrareview [PR or branch]` | [ultrareview](/docs/ja/ultrareview) を使用してクラウドサンドボックスでディープなマルチエージェントコードレビューを実行します。PR リファレンスを渡してそのプルリクエストをレビューするか、ベースブランチまたはコミットを渡して比較ベースを変更します。推奨される呼び出しは `/code-review ultra` で、`/ultrareview` はエイリアスです。Pro および Max で 3 つの無料実行が含まれ、その後 [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) が必要です |163| `/ultrareview [PR or branch]` | [ultrareview](/docs/ja/ultrareview) を使用してクラウドサンドボックスでディープなマルチエージェントコードレビューを実行します。PR リファレンスを渡してそのプルリクエストをレビューするか、ベースブランチまたはコミットを渡して比較ベースを変更します。推奨される呼び出しは `/code-review ultra` で、`/ultrareview` はエイリアスです。Pro および Max で 3 回の無料実行が含まれ、その後は[使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)が必要です |

164| `/update-config [request]` | **[Skill](/docs/ja/skills#bundled-skills).** コマンドを許可する、環境変数を設定する、[hook](/docs/ja/hooks) を追加するなどの設定変更を説明し、Claude は一致する [`settings.json`](/docs/ja/settings) ファイルを編集します。テーマやモデルなどのオプションについては、代わりに `/config` を使用してください |164| `/update-config [request]` | **[Skill](/docs/ja/skills#bundled-skills).** コマンドを許可する、環境変数を設定する、[フック](/docs/ja/hooks)を追加するなどの設定変更を説明すると、Claude は該当する [`settings.json`](/docs/ja/settings) ファイルを編集します。テーマやモデルなどのオプションについては、代わりに `/config` を使用してください |

165| `/upgrade` | ブラウザでアップグレードページを開いて、より高いプランティアに切り替えます。ブラウザが開かない場合、コマンドは URL を出力せずにサインインプロンプトを表示します |165| `/upgrade` | ブラウザでアップグレードページを開いて、より上位のプランティアに切り替えます。ブラウザが開かない場合、コマンドは URL を出力せずにサインインプロンプトを表示します |

166| `/usage` | セッションコスト、プラン使用制限、アクティビティ統計を表示します。Pro、Max、Team、または Enterprise プランでは、[プラン制限に対してカウントされるもの](/docs/ja/costs#plan-usage-breakdown)の内訳が含まれます。`/cost` と `/stats` はエイリアスです |166| `/usage` | セッションコスト、プランの使用制限、アクティビティ統計を表示します。Pro、Max、Team、または Enterprise プランでは、[プラン制限に対してカウントされるもの](/docs/ja/costs#plan-usage-breakdown)の内訳が含まれます。`/cost` と `/stats` はエイリアスです |

167| `/usage-credits` | 制限に達したときに使用クレジットを設定するか、管理者に要求します。ブラウザで [usage-credits 請求設定](/docs/ja/costs#add-usage-credits-to-your-subscription)を開きます。ただし、Team および Enterprise メンバーで請求アクセスがない場合は、ダイアログで確認した後、CLI から管理者に usage-credits リクエストを送信します。SSH 経由など、ブラウザが請求ページを開くことができない場合、コマンドは代わりに訪問する URL を出力します。Claude Code v2.1.205 以降が必要です。以前のバージョンはこの場合に何も表示しませんでした。以前は `/extra-usage` |167| `/usage-credits` | 制限に達したときに使用クレジットを設定するか、管理者に要求します。ブラウザで[使用クレジットの請求設定](/docs/ja/costs#add-usage-credits-to-your-subscription)を開きます。ただし、請求アクセスを持たない Team および Enterprise メンバーは、リクエストが管理者に通知されることをダイアログで確認した後、代わりに CLI から管理者に使用クレジットのリクエストを送信します。SSH 経由など、ブラウザで請求ページを開けない場合、コマンドは代わりにアクセスする URL を出力します。これには Claude Code v2.1.205 以降が必要で、以前のバージョンはこの場合に何も表示しませんでした。以前は `/extra-usage` |

168| `/verify` | **[Skill](/docs/ja/skills#bundled-skills).** コード変更がテストまたは型チェックに依存するのではなく、プロジェクトのアプリをビルド、実行、観察することで、何をすべきかを確認します。[アプリを実行して検証する](/docs/ja/skills#run-and-verify-your-app)を参照してください |168| `/verify` | **[Skill](/docs/ja/skills#bundled-skills).** テストや型チェックに頼るのではなく、プロジェクトのアプリをビルド、実行し、結果を観察することで、コード変更が意図どおりに動作することを確認します。[アプリを実行して検証する](/docs/ja/skills#run-and-verify-your-app)を参照してください |

169| `/vim` | v2.1.92 で削除されました。Vim と Normal 編集モード間を切り替えるには、`/config` → Editor mode を使用してください |169| `/vim` | v2.1.92 で削除されました。Vim と Normal 編集モード間を切り替えるには、`/config` → Editor mode を使用してください |

170| `/voice [hold\|tap\|off]` | [voice dictation](/docs/ja/voice-dictation) を切り替えるか、特定のモードで有効にします。Claude.ai アカウントが必要です |170| `/voice [hold\|tap\|off]` | [音声入力](/docs/ja/voice-dictation)を切り替えるか、特定のモードで有効にします。Claude.ai アカウントが必要です |

171| `/web-setup` | ローカル `gh` CLI 認証情報を使用して [cloud sessions](/docs/ja/web-quickstart#connect-from-your-terminal) の GitHub アカウントを接続します |171| `/web-setup` | ローカルの `gh` CLI 認証情報を使用して、[クラウドセッション](/docs/ja/web-quickstart#connect-from-your-terminal)用に GitHub アカウントを接続します |

172| `/workflow-authoring` | **[Skill](/docs/ja/skills#bundled-skills).** [動的ワークフロー](/docs/ja/workflows)スクリプトを書くためのリファレンスを読み込みます:スクリプト API、再開動作、品質パターン、実装例。Claude は通常、スクリプトを書く前にそれを自動的に読み込みます。[保存されたスクリプトを手で編集する](/docs/ja/workflows#edit-a-saved-script)前に自分で実行してください。動的ワークフローが有効な場合に利用可能で、Claude Code v2.1.248 以降が必要です |172| `/workflow-authoring` | **[Skill](/docs/ja/skills#bundled-skills).** [動的ワークフロー](/docs/ja/workflows)スクリプトを書くためのリファレンスを読み込みます:スクリプト API、再開動作、品質パターン、実装例。Claude は通常、スクリプトを書く前にそれを自動的に読み込みます。[保存されたスクリプトを手で編集する](/docs/ja/workflows#edit-a-saved-script)前に自分で実行してください。動的ワークフローが有効な場合に利用可能で、Claude Code v2.1.248 以降が必要です |

173| `/workflows` | [workflow](/docs/ja/workflows#watch-the-run) 進捗ビューを開いて、実行中および完了したワークフローを監視、一時停止、再開、または保存します |173| `/workflows` | [ワークフロー](/docs/ja/workflows#watch-the-run)の進捗ビューを開いて、実行中および完了したワークフローを監視、一時停止、再開、または保存します |

174 174 

175<h2 id="how-the-command-menu-matches-what-you-type">175<h2 id="how-the-command-menu-matches-what-you-type">

176 コマンドメニューが入力内容にどのようにマッチするか176 コマンドメニューが入力内容にどのようにマッチするか

Details

65 Hooks を確認する65 Hooks を確認する

66</h2>66</h2>

67 67 

68`/hooks` を実行して、現在のセッションに登録されているすべてのフックをイベント別にグループ化して一覧表示します。定義したフックが表示されない場合、それは読み込まれていません:hooks は設定ファイルの `"hooks"` キーの下に置かれ、スタンドアロンファイルではありません。68`/hooks` を実行して、現在のセッションに登録されているすべてのフックをイベント別にグループ化して一覧表示します。定義したフックが表示されない場合、Claude Code はそのフックを読み込んでいません。次の原因がないか確認してください:

69 

70* フックがスタンドアロンファイルで定義されている。フックは[設定ファイル](/docs/ja/settings#settings-files)の `"hooks"` キーの下に置きます。

71* `matcher` の値が単一の文字列ではなく配列になっている。Claude Code は、対話型セッションの開始時と `claude doctor` で、そのエントリを無効な設定として一覧表示します。配列が `PreToolUse` または `PermissionRequest` の下にある場合、そのファイルの他のフックも一切読み込まれません。

69 72 

70フックが表示されても発火しない場合、通常の原因はマッチャーです。以下の間違いがないか確認してください:73フックが表示されても発火しない場合、通常の原因はマッチャーです。以下の間違いがないか確認してください:

71 74 

72* `matcher` フィールドは、複数のツール名をマッチするために `|` を使用する単一の文字列です。例えば `"Edit|Write"` です。`,` セパレータは同等であるため、`"Edit,Write"` は同じツールをマッチします。v2.1.191 より前では、カンマは正規表現評価にフォールスルーし、マッチャーは一致しないため、v2.1.191 をまだ使用していない場合は `|` を使用してください。75* `matcher` フィールドは、複数のツール名をマッチするために `|` を使用する単一の文字列です。例えば `"Edit|Write"` です。`,` セパレータは同等であるため、`"Edit,Write"` は同じツールをマッチします。v2.1.191 より前では、カンマは正規表現評価にフォールスルーし、マッチャーは一致しないため、v2.1.191 をまだ使用していない場合は `|` を使用してください。

73* ツール名のスペルミスはマッチャーが何もマッチしないため、フックはサイレントに失敗します。76* ツール名のスペルミスはマッチャーが何もマッチしないため、フックはサイレントに失敗します。

74* 配列値はスキーマエラーです:Claude Code は設定エラー通知を表示し、ユーザー、プロジェクト、またはローカル設定ファイル全体を拒否し、`claude doctor` は検証失敗を報告し、そのファイルからのフックは `/hooks` に表示されません。[管理設定](/docs/ja/managed-settings)では、Claude Code はそのファイルを含む `hooks` キー全体をファイルから削除するため、そのファイルのフックは適用されません。ファイルの他の設定は引き続き適用され、`claude doctor` は削除されたキーをリストします。

75 77 

76`settings.json` を編集すると、短いファイル安定性遅延後に実行中のセッションで変更が有効になります。セッション開始後にプロジェクトの `.claude/` フォルダを作成した場合でも、再起動する必要はありません。v2.1.257 より前では、Claude Code はセッション開始後に作成された `.claude/` フォルダの編集を検出しませんでした。78`settings.json` を編集すると、短いファイル安定性遅延後に実行中のセッションで変更が有効になります。セッション開始後にプロジェクトの `.claude/` フォルダを作成した場合でも、再起動する必要はありません。v2.1.257 より前では、Claude Code はセッション開始後に作成された `.claude/` フォルダの編集を検出しませんでした。

77 79 

env-vars.md +2 −1

Details

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | サブエージェントのスタルタイムアウト(ミリ秒単位)。デフォルト `600000`(10 分);`CLAUDE_STREAM_IDLE_TIMEOUT_MS` を上げながらストリーム監視犬がオンの場合、デフォルトは [遅いまたは停止した API 応答を処理](/docs/ja/agent-sdk/typescript#handle-slow-or-stalled-api-responses) で説明されているように上昇します。タイマーは各ストリーミング進捗イベントでリセットされます。ウィンドウ内に進捗が到着しない場合、Claude Code はサブエージェントを中止し、スタルを親に報告します |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | サブエージェントのスタルタイムアウト(ミリ秒単位)。デフォルト `600000`(10 分);`CLAUDE_STREAM_IDLE_TIMEOUT_MS` を上げながらストリーム監視犬がオンの場合、デフォルトは [遅いまたは停止した API 応答を処理](/docs/ja/agent-sdk/typescript#handle-slow-or-stalled-api-responses) で説明されているように上昇します。タイマーは各ストリーミング進捗イベントでリセットされます。ウィンドウ内に進捗が到着しない場合、Claude Code はサブエージェントを中止し、スタルを親に報告します |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 自動コンパクションがトリガーされる自動コンパクトウィンドウのパーセンテージ(1~100)を設定します。`50` などの低い値を使用して早期にコンパクトします。変数はしきい値を上げることはできないため、デフォルトパーセンテージを超える値は無視されます。[モデルのコンテキスト制限の前にコンパクト](/docs/ja/model-config#context-window-and-auto-compaction) するセッションにのみ適用されます。メイン会話とサブエージェントの両方に適用されます |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 自動コンパクションがトリガーされる自動コンパクトウィンドウのパーセンテージ(1~100)を設定します。`50` などの低い値を使用して早期にコンパクトします。変数はしきい値を上げることはできないため、デフォルトパーセンテージを超える値は無視されます。[モデルのコンテキスト制限の前にコンパクト](/docs/ja/model-config#context-window-and-auto-compaction) するセッションにのみ適用されます。メイン会話とサブエージェントの両方に適用されます |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 長時間実行されるエージェントタスクの自動バックグラウンド化を強制的に有効にするには `1` に設定します。有効にすると、サブエージェントは約 2 分間実行した後、バックグラウンドに移動されます。また、Claude Code v2.1.212 以降の非対話モードで [長い MCP ツール呼び出しの自動バックグラウンド化](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) も有効にします |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 長時間実行されるエージェントタスクの自動バックグラウンド化を強制的に有効にするには `1` に設定します。有効にすると、サブエージェントは約 2 分間実行した後、バックグラウンドに移動されます。また、Claude Code v2.1.212 以降の非対話モードで [長い MCP ツール呼び出しの自動バックグラウンド化](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) も有効にします |

208| `CLAUDE_AX_PREPARK_MS` | [スクリーンリーダーモード](/docs/ja/accessibility#what-your-screen-reader-hears) では、カーソルが行の開始位置にある状態で、Claude Code が新しい行または変更された行を書き込む前に待機するミリ秒数。デフォルト `50`。`0` に設定して直ちに書き込みます。Claude Code は待機を `5000` でキャップします。Claude Code v2.1.233 以降が必要です |208| `CLAUDE_AX_PREPARK_MS` | [スクリーンリーダーモード](/docs/ja/accessibility)で、Claude Code が新しい行または変更された行を書き込む前に待機する時間(ミリ秒)。デフォルトは `0` で、Claude Code は待機しません。v2.1.287 より前では、デフォルトは `50` でした。Claude Code は待機時間の上限を `5000` にします。Claude Code v2.1.233 以降が必要です |

209| `CLAUDE_AX_SCREEN_READER` | スクリーンリーダーフレンドリーな出力をレンダリングするには `1` に設定します:装飾的なボーダーやアニメーションのないフラットテキスト。[`axScreenReader`](/docs/ja/settings-reference#axscreenreader) が `true` の場合でも、スクリーンリーダーモードを強制的にオフにするには `0` に設定します。[`--ax-screen-reader`](/docs/ja/cli-reference#cli-flags) フラグが優先されます。Claude Code v2.1.181 以降が必要です |209| `CLAUDE_AX_SCREEN_READER` | スクリーンリーダーフレンドリーな出力をレンダリングするには `1` に設定します:装飾的なボーダーやアニメーションのないフラットテキスト。[`axScreenReader`](/docs/ja/settings-reference#axscreenreader) が `true` の場合でも、スクリーンリーダーモードを強制的にオフにするには `0` に設定します。[`--ax-screen-reader`](/docs/ja/cli-reference#cli-flags) フラグが優先されます。Claude Code v2.1.181 以降が必要です |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | [スクリーンリーダーモード](/docs/ja/accessibility) では、スタートアップ確認行の後の最初のインターフェイスレンダリングを Claude Code が保持するミリ秒数。スクリーンリーダーが新しい出力が割り込む前に行全体を話すことができるようにします。デフォルト `3000`。`0` に設定して直ちにレンダリングします。Claude Code は保持を `600000`(10 分)でキャップします。最初のキーストロークが保持を早期に終了します。Claude Code v2.1.217 以降が必要です |210| `CLAUDE_AX_STARTUP_QUIET_MS` | [スクリーンリーダーモード](/docs/ja/accessibility) では、スタートアップ確認行の後の最初のインターフェイスレンダリングを Claude Code が保持するミリ秒数。スクリーンリーダーが新しい出力が割り込む前に行全体を話すことができるようにします。デフォルト `3000`。`0` に設定して直ちにレンダリングします。Claude Code は保持を `600000`(10 分)でキャップします。最初のキーストロークが保持を早期に終了します。Claude Code v2.1.217 以降が必要です |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | メインセッションの各 Bash または PowerShell コマンドの後、元の作業ディレクトリに戻ります |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | メインセッションの各 Bash または PowerShell コマンドの後、元の作業ディレクトリに戻ります |


245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | [フルスクリーンレンダリング](/docs/ja/fullscreen) を無効にし、クラシックメインスクリーンレンダラーを使用するには `1` に設定します。会話はターミナルのネイティブスクロールバックに留まるため、`Cmd+f` と tmux コピーモードが通常どおり機能します。`CLAUDE_CODE_NO_FLICKER` および [`tui`](/docs/ja/settings-reference#tui) 設定より優先されます。`/tui default` で切り替えることもできます。[エージェントビュー](/docs/ja/agent-view) から開かれたバックグラウンドセッションには適用されません。これらは常にフルスクリーンレンダリングを使用します |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | [フルスクリーンレンダリング](/docs/ja/fullscreen) を無効にし、クラシックメインスクリーンレンダラーを使用するには `1` に設定します。会話はターミナルのネイティブスクロールバックに留まるため、`Cmd+f` と tmux コピーモードが通常どおり機能します。`CLAUDE_CODE_NO_FLICKER` および [`tui`](/docs/ja/settings-reference#tui) 設定より優先されます。`/tui default` で切り替えることもできます。[エージェントビュー](/docs/ja/agent-view) から開かれたバックグラウンドセッションには適用されません。これらは常にフルスクリーンレンダリングを使用します |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | [アーティファクト](/docs/ja/artifacts) ツールをオフにするには `1` に設定します。これは claude.ai でセッション出力をプライベート Web ページとして公開します。設定されると、設定ファイルはツールをオンに戻しません。代わりに設定ファイルからツールをオフにするには、[`enableArtifact`](/docs/ja/settings-reference#enableartifact) を `false` に設定します。非推奨の [`disableArtifact`](/docs/ja/settings-reference#disableartifact) キーもツールをオフにします |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | [アーティファクト](/docs/ja/artifacts) ツールをオフにするには `1` に設定します。これは claude.ai でセッション出力をプライベート Web ページとして公開します。設定されると、設定ファイルはツールをオンに戻しません。代わりに設定ファイルからツールをオフにするには、[`enableArtifact`](/docs/ja/settings-reference#enableartifact) を `false` に設定します。非推奨の [`disableArtifact`](/docs/ja/settings-reference#disableartifact) キーもツールをオフにします |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 添付ファイル処理を無効にするには `1` に設定します。`@` 構文を使用したファイルメンションはファイルコンテンツに展開されるのではなく、プレーンテキストとして送信されます |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 添付ファイル処理を無効にするには `1` に設定します。`@` 構文を使用したファイルメンションはファイルコンテンツに展開されるのではなく、プレーンテキストとして送信されます |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | `1` に設定すると、別のプロセスが [`gcpAuthRefresh`](/docs/ja/settings-reference#gcpauthrefresh) または [`awsAuthRefresh`](/docs/ja/settings-reference#awsauthrefresh) コマンドを実行している間待機するのではなく、Claude Code のプロセスがそのコマンドを自ら実行するようにします。Claude Code v2.1.286 以降が必要です |

248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [自動メモリ](/docs/ja/memory#auto-memory) を無効にするには `1` に設定します。`--bare` モードまたは [`autoMemoryEnabled: false`](/docs/ja/settings-reference#automemoryenabled) が無効にする場合でも、自動メモリを強制的にオンにするには `0` に設定します。無効にされている場合、Claude は自動メモリファイルを作成または読み込みません |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [自動メモリ](/docs/ja/memory#auto-memory) を無効にするには `1` に設定します。`--bare` モードまたは [`autoMemoryEnabled: false`](/docs/ja/settings-reference#automemoryenabled) が無効にする場合でも、自動メモリを強制的にオンにするには `0` に設定します。無効にされている場合、Claude は自動メモリファイルを作成または読み込みません |

249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | `run_in_background` パラメーター、自動バックグラウンド化、Ctrl+B ショートカットを含む、すべてのバックグラウンドタスク機能を無効にするには `1` に設定します |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | `run_in_background` パラメーター、自動バックグラウンド化、Ctrl+B ショートカットを含む、すべてのバックグラウンドタスク機能を無効にするには `1` に設定します |

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Claude Code が [Amazon Bedrock](/docs/ja/amazon-bedrock) ストリーミング応答を、欠落または空の `Content-Type` ヘッダーを持つ Amazon Bedrock のバイナリイベントストリームとして扱うのを停止するには `1` に設定します。デフォルトでは、Claude Code はゲートウェイがそれ以外は変更されていない応答からヘッダーをドロップしたと仮定するため、本体をデコードしてストリーミングが機能し続けます。ゲートウェイがストリームをサーバー送信イベントとして再発行する場合のみ設定します。Claude Code はヘッダーレス本体をサーバー送信イベントとして読み取ります。Claude Code v2.1.239 以降が必要です |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Claude Code が [Amazon Bedrock](/docs/ja/amazon-bedrock) ストリーミング応答を、欠落または空の `Content-Type` ヘッダーを持つ Amazon Bedrock のバイナリイベントストリームとして扱うのを停止するには `1` に設定します。デフォルトでは、Claude Code はゲートウェイがそれ以外は変更されていない応答からヘッダーをドロップしたと仮定するため、本体をデコードしてストリーミングが機能し続けます。ゲートウェイがストリームをサーバー送信イベントとして再発行する場合のみ設定します。Claude Code はヘッダーレス本体をサーバー送信イベントとして読み取ります。Claude Code v2.1.239 以降が必要です |

errors.md +778 −748

Details

8 8 

9このページでは、Claude Code が表示するランタイムエラーと各エラーからの復旧方法、および応答がエラーなしで問題があるように見える場合に確認すべき内容を一覧表示しています。セットアップ中の `command not found` や TLS エラーなどのインストールエラーについては、[インストールとログインのトラブルシューティング](/docs/ja/troubleshoot-install)を参照してください。9このページでは、Claude Code が表示するランタイムエラーと各エラーからの復旧方法、および応答がエラーなしで問題があるように見える場合に確認すべき内容を一覧表示しています。セットアップ中の `command not found` や TLS エラーなどのインストールエラーについては、[インストールとログインのトラブルシューティング](/docs/ja/troubleshoot-install)を参照してください。

10 10 

11[ラッパーと IDE エラー](#wrapper-and-ide-errors)を除き、これらのエラーと復旧コマンドは CLI、[Desktop アプリ](/docs/ja/desktop)、および [Claude Code on the web](/docs/ja/claude-code-on-the-web)全体に適用されます。これら 3 つはすべて同じ Claude Code CLI をラップしているためです。その他の表面固有の問題については、その表面のページのトラブルシューティングセクションを参照してください。11[ラッパーと IDE エラー](#wrapper-and-ide-errors)は Claude Code 自体ではなく起動元のプログラムが出力するものですが、これを除き、これらのエラーと復旧コマンドは CLI、[Desktop アプリ](/docs/ja/desktop)、および[クラウドセッション](/docs/ja/claude-code-on-the-web)全体に適用されます。これら 3 つはすべて同じ Claude Code CLI をラップしているためです。その他のサーフェス固有の問題については、そのサーフェスのページのトラブルシューティングセクションを参照してください。

12 12 

13<Note>13<Note>

14 Claude Code は Claude API を呼び出してモデルレスポンスを取得するため、ほとんどのランタイムエラーは基盤となる API エラーコードにマップされます。このページでは、Claude Code 内での各エラーの意味と復旧方法について説明しています。生の HTTP ステータスコード定義については、[Claude Platform エラーリファレンス](https://platform.claude.com/docs/en/api/errors)を参照してください。14 Claude Code は Claude API を呼び出してモデルレスポンスを取得するため、ほとんどのランタイムエラーは基盤となる API エラーコードにマップされます。このページでは、Claude Code 内での各エラーの意味と復旧方法について説明しています。生の HTTP ステータスコード定義については、[Claude Platform エラーリファレンス](https://platform.claude.com/docs/en/api/errors)を参照してください。


75| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [認証](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |75| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [認証](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

76| `Remote Control stopped — the app running this session is signed out of Claude` | [認証](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |76| `Remote Control stopped — the app running this session is signed out of Claude` | [認証](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Couldn't verify your organization's policy for remote control` | [Remote Control のトラブルシューティング](/docs/ja/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |77| `Couldn't verify your organization's policy for remote control` | [Remote Control のトラブルシューティング](/docs/ja/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |

78| `Remote Control is disabled by your organization's policy` | [Remote Control のトラブルシューティング](/docs/ja/remote-control#remote-control-is-disabled-by-your-organizations-policy) |

79| `Remote Control was turned off by your organization's policy` | [Remote Control のトラブルシューティング](/docs/ja/remote-control#remote-control-was-turned-off-by-your-organizations-policy) |

78| `OAuth token revoked` / `OAuth token has expired` | [認証](#oauth-token-revoked-or-expired) |80| `OAuth token revoked` / `OAuth token has expired` | [認証](#oauth-token-revoked-or-expired) |

79| `API Error: 401 Invalid authentication credentials` | [認証](#api-error-401-invalid-authentication-credentials) |81| `API Error: 401 Invalid authentication credentials` | [認証](#api-error-401-invalid-authentication-credentials) |

80| `Login expired · Please run /login` | [認証](#login-expired) |82| `Login expired · Please run /login` | [認証](#login-expired) |


186| `The connection dropped while downloading the update` | [インストールエラー](#the-connection-dropped-while-downloading-the-update) |188| `The connection dropped while downloading the update` | [インストールエラー](#the-connection-dropped-while-downloading-the-update) |

187| `Download timed out: exceeded the total deadline` | [インストールエラー](#the-connection-dropped-while-downloading-the-update) |189| `Download timed out: exceeded the total deadline` | [インストールエラー](#the-connection-dropped-while-downloading-the-update) |

188| `--bg and --print conflict` | [コマンドラインエラー](#conflict-between-bg-and-print) |190| `--bg and --print conflict` | [コマンドラインエラー](#conflict-between-bg-and-print) |

191| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [コマンドラインエラー](#conflict-between-a-system-prompt-flag-and-its-file-form) |

189| `Cloud sessions cannot be created from a --restricted session` | [コマンドラインエラー](#cloud-sessions-cannot-be-created-from-a-restricted-session) |192| `Cloud sessions cannot be created from a --restricted session` | [コマンドラインエラー](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

190| `Cloud sessions are disabled by your organization's policy` | [コマンドラインエラー](#cloud-sessions-are-disabled-by-your-organizations-policy) |193| `Cloud sessions are disabled by your organization's policy` | [コマンドラインエラー](#cloud-sessions-are-disabled-by-your-organizations-policy) |

191| `Couldn't verify your organization's policy for cloud sessions` | [コマンドラインエラー](#cloud-sessions-are-disabled-by-your-organizations-policy) |194| `Couldn't verify your organization's policy for cloud sessions` | [コマンドラインエラー](#cloud-sessions-are-disabled-by-your-organizations-policy) |


246| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [プラグインエラー](#claude-code-refuses-the-marketplace-name) |249| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [プラグインエラー](#claude-code-refuses-the-marketplace-name) |

247| `Marketplace "<name>" is already added from a different source` | [プラグインエラー](#marketplace-is-already-added-from-a-different-source) |250| `Marketplace "<name>" is already added from a different source` | [プラグインエラー](#marketplace-is-already-added-from-a-different-source) |

248| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [プラグインエラー](#marketplace-name-is-another-spelling-of-a-reserved-name) |251| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [プラグインエラー](#marketplace-name-is-another-spelling-of-a-reserved-name) |

252| `Marketplace "<name>" is added but ignored` | [プラグインのトラブルシューティング](/docs/ja/plugins/troubleshooting#marketplace-is-added-but-ignored) |

253| `Marketplace "<name>" is registered but was refused (see the debug log)` | [プラグインのトラブルシューティング](/docs/ja/plugins/troubleshooting#marketplace-is-added-but-ignored) |

249| `references ${user_config.*} in a shell-form command` | [プラグインエラー](#plugin-command-references-user-config) |254| `references ${user_config.*} in a shell-form command` | [プラグインエラー](#plugin-command-references-user-config) |

250| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [プラグインエラー](#plugin-command-references-user-config) |255| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [プラグインエラー](#plugin-command-references-user-config) |

251| `headersHelper for MCP server '<name>' references ${user_config.*}` | [プラグインエラー](#plugin-command-references-user-config) |256| `headersHelper for MCP server '<name>' references ${user_config.*}` | [プラグインエラー](#plugin-command-references-user-config) |

252| `Plugin archive integrity check failed` | [プラグインエラー](#plugin-archive-integrity-check-failed) |257| `Plugin archive integrity check failed` | [プラグインエラー](#plugin-archive-integrity-check-failed) |

258| `An npm plugin source must name a registry package` | [プラグインのトラブルシューティング](/docs/ja/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

253| `path escapes plugin directory` | [プラグインエラー](#path-escapes-plugin-directory) |259| `path escapes plugin directory` | [プラグインエラー](#path-escapes-plugin-directory) |

254| `path could not be checked` | [プラグインエラー](#path-could-not-be-checked) |260| `path could not be checked` | [プラグインエラー](#path-could-not-be-checked) |

255| `its marketplace entry path does not stay inside the marketplace directory` | [プラグインエラー](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |261| `its marketplace entry path does not stay inside the marketplace directory` | [プラグインエラー](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


418 サーバーエラー424 サーバーエラー

419</h2>425</h2>

420 426 

421これらのエラーのほとんどは推論プロバイダーから発生します。Anthropic API 上の Anthropic のサービス、および Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、またはカスタムゲートウェイの背後にあるプロバイダーのエンドポイントのサービスです。[Auto mode cannot determine the safety of an action](#auto-mode-cannot-determine-the-safety-of-an-action) と [Agent terminated early due to an API error](#agent-terminated-early-due-to-an-api-error) は、Amazon Bedrock アカウントがクラシファイアーモデルを呼び出せない、またはサブエージェントが使用制限に達したなど、お客様側の原因もカバーしています。427これらのエラーのほとんどは推論プロバイダーから発生します。Anthropic API 上の Anthropic のサービス、および Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、またはカスタムゲートウェイの背後にあるプロバイダーのエンドポイントのサービスです。[Auto mode cannot determine the safety of an action](#auto-mode-cannot-determine-the-safety-of-an-action) と [Agent terminated early due to an API error](#agent-terminated-early-due-to-an-api-error) は、Amazon Bedrock アカウントが分類器モデルを呼び出せない、またはサブエージェントが使用制限に達したなど、ユーザー側の原因もカバーしています。

422 428 

423<h3 id="api-error-500-internal-server-error">429<h3 id="api-error-500-internal-server-error">

424 API Error: 500 Internal server error430 API Error: 500 Internal server error


432 438 

433末尾の文は、サービスの健全性を確認する場所を示し、プロバイダーによって異なります。Amazon Bedrock、Google Cloud の Agent Platform、および Microsoft Foundry の設定は、そのプロバイダーのサービスステータスを示します。カスタム `ANTHROPIC_BASE_URL` はゲートウェイホストを示します。439末尾の文は、サービスの健全性を確認する場所を示し、プロバイダーによって異なります。Amazon Bedrock、Google Cloud の Agent Platform、および Microsoft Foundry の設定は、そのプロバイダーのサービスステータスを示します。カスタム `ANTHROPIC_BASE_URL` はゲートウェイホストを示します。

434 440 

4355xx は API 内の予期しない障害を示しています。これはお客様のプロンプト、設定、またはアカウントが原因ではありません。441API 自体から返される 5xx は、API 内部の予期しない障害を示しています。これはプロンプト、設定、またはアカウントが原因ではありません。

436 442 

437プロキシ、ロードバランサー、またはゲートウェイが HTML エラーページで応答する場合、メッセージはステータスコードとページのタイトル(`API Error: 502 Bad Gateway` など)を表示します。タイトルのないページの場合、メッセージはステータスコードとその標準名を代わりに表示します。v2.1.281 より前では、ページにタイトルがある場合はステータスコードが削除され、タイトルがない場合はページの生のマークアップが出力されていました。443プロキシ、ロードバランサー、またはゲートウェイが HTML エラーページで応答する場合、メッセージはステータスコードとページのタイトル(`API Error: 502 Bad Gateway` など)を表示します。タイトルのないページの場合、メッセージはステータスコードとその標準名を代わりに表示します。v2.1.281 より前では、ページにタイトルがある場合はステータスコードが削除され、タイトルがない場合はページの生のマークアップが出力されていました。

438 444 


452API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.458API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

453```459```

454 460 

455末尾の文は、500 エラーと同じ方法でプロバイダーによって異なります。461末尾の文は、上記の 500 エラーと同じ方法でプロバイダーによって異なります。

456 462 

457529 はお客様の使用制限ではなく、クォータに対してカウントされません。463529 は使用制限ではなく、クォータにもカウントされません。

458 464 

459**対応方法:**465**対応方法:**

460 466 

461* [status.claude.com](https://status.claude.com) またはメッセージに示されているプロバイダーのステータスページで、容量に関する通知を確認してください467* [status.claude.com](https://status.claude.com) またはメッセージに示されているプロバイダーのステータスページで、容量に関する通知を確認してください

462* 数分後に再度試してください468* 数分後に再度試してください

463* `/model` を実行して別のモデルに切り替えて、作業を続けてください。容量はモデルごとに追跡されるためです。Claude Code は、1 つのモデルが特に高い負荷を受けている場合、これを行うようにお客様に促します。例えば `Opus is experiencing high load, please use /model to switch to Sonnet` のようなメッセージが表示されます。Fable モデルでは、メッセージは Fable を示します。469* `/model` を実行して別のモデルに切り替えて、作業を続けてください。容量はモデルごとに追跡されるためです。Claude Code は、1 つのモデルが特に高い負荷を受けている場合、これを行うよう促します。例えば `Opus is experiencing high load, please use /model to switch to Sonnet` のようなメッセージが表示されます。Fable モデルでは、メッセージは Fable を示します。

464 470 

465 Claude Desktop アプリが実行するセッション(Code タブや Cowork など)では、メッセージは `Opus is experiencing high load. Switch to Sonnet.` と読まれ、アプリのモデルピッカーでモデルを切り替えます。471 Claude Desktop アプリが実行するセッション(Code タブや Cowork など)では、メッセージは `Opus is experiencing high load. Switch to Sonnet.` と読まれ、アプリのモデルピッカーでモデルを切り替えます。

466 472 


497* **最初の試行**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ja/env-vars) を 1 以上に設定した場合、10 秒から 30 分の間にクランプされます。それ以外の場合、Claude Code は [Streaming idle watchdogs](/docs/ja/network-config#streaming-idle-watchdogs) に記載されているバイトレベルのウォッチドッグタイムアウトを使用するため、そのタイムアウトを変更する変数はこの待機も変更します。どちらの場合でも、Claude Code はリクエストボディの 32KB ごとに 1 秒を追加します。503* **最初の試行**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ja/env-vars) を 1 以上に設定した場合、10 秒から 30 分の間にクランプされます。それ以外の場合、Claude Code は [Streaming idle watchdogs](/docs/ja/network-config#streaming-idle-watchdogs) に記載されているバイトレベルのウォッチドッグタイムアウトを使用するため、そのタイムアウトを変更する変数はこの待機も変更します。どちらの場合でも、Claude Code はリクエストボディの 32KB ごとに 1 秒を追加します。

498* **再試行**: `API_TIMEOUT_MS` より 1 秒少ない、デフォルトではほぼ 10 分。これにより、再試行は応答を生成完了まで保持するプロキシまたはゲートウェイを上回ることができます。Amazon Bedrock では、再試行は最初の試行と同じ期限を使用し、メッセージは 2 つの期間ではなく 1 つの期間を示します。504* **再試行**: `API_TIMEOUT_MS` より 1 秒少ない、デフォルトではほぼ 10 分。これにより、再試行は応答を生成完了まで保持するプロキシまたはゲートウェイを上回ることができます。Amazon Bedrock では、再試行は最初の試行と同じ期限を使用し、メッセージは 2 つの期間ではなく 1 つの期間を示します。

499 505 

500どちらの待機も、正の `API_TIMEOUT_MS` より 1 秒少ないを超えず、11 秒未満の正の `API_TIMEOUT_MS` は期限をオフにします。バイトレベルのウォッチドッグは応答ヘッダーが到着した後にのみ開始されるため、その後バイト送信を停止するレスポンスは、この期限ではなく [stalled-stream rules](#automatic-retries) に従います。506どちらの待機も、正の `API_TIMEOUT_MS` より 1 秒少ない値を超えず、11 秒未満の正の `API_TIMEOUT_MS` は期限をオフにします。バイトレベルのウォッチドッグは応答ヘッダーが到着した後にのみ開始されるため、その後バイト送信を停止するレスポンスは、この期限ではなく [stalled-stream rules](#automatic-retries) に従います。

501 507 

502**対応方法:**508**対応方法:**

503 509 

504* メッセージを再度送信してください。元のメッセージはまだ会話に残っているため、長いプロンプトの場合は、全体を貼り付ける代わりに `try again` と入力できます。510* メッセージを再度送信してください。元のメッセージはまだ会話に残っているため、長いプロンプトの場合は、全体を貼り付ける代わりに `try again` と入力できます。

505* 繰り返される場合は、[network or proxy problem](#unable-to-connect-to-api) として扱ってください。511* 繰り返される場合は、[ネットワークまたはプロキシの問題](#unable-to-connect-to-api) として扱ってください。

506* ネットワーク上のプロキシまたはゲートウェイが応答を生成完了まで保持する場合は、`API_TIMEOUT_MS` を上げて再試行がより長く待機するようにしてください。Amazon Bedrock では、`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` も上げてください。512* ネットワーク上のプロキシまたはゲートウェイが応答を生成完了まで保持する場合は、`API_TIMEOUT_MS` を上げて再試行がより長く待機するようにしてください。Amazon Bedrock では、`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` も上げてください。

507* 最初の試行がタイムアウトし続け、再試行が成功する場合は、`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` を上げて最初の試行も十分に長く待機するようにしてください。513* 最初の試行がタイムアウトし続け、再試行が成功する場合は、`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` を上げて最初の試行も十分に長く待機するようにしてください。

508 514 


527* `Connection lost mid-response`: 接続が切断されました。プロキシまたはゲートウェイがレスポンスボディをレスポンスが完了する前にクリーンに終了する場合にも、このバリアントが表示されます。533* `Connection lost mid-response`: 接続が切断されました。プロキシまたはゲートウェイがレスポンスボディをレスポンスが完了する前にクリーンに終了する場合にも、このバリアントが表示されます。

528* `Your computer went to sleep mid-response`: Claude Code は、レスポンスがストリーミング中にコンピューターがスリープ状態になったことを検出しました。コンピューターが起動すると、Claude Code は接続を破損として扱い、読み取りを停止します。534* `Your computer went to sleep mid-response`: Claude Code は、レスポンスがストリーミング中にコンピューターがスリープ状態になったことを検出しました。コンピューターが起動すると、Claude Code は接続を破損として扱い、読み取りを停止します。

529* `Part of the response never arrived`: ストリームイベントが API と Claude Code の間でドロップされたため、後のイベントが到着しなかったコンテンツを参照していました。v2.1.281 より前では、このケースは `API Error: Content block not found` でターンを終了していました。535* `Part of the response never arrived`: ストリームイベントが API と Claude Code の間でドロップされたため、後のイベントが到着しなかったコンテンツを参照していました。v2.1.281 より前では、このケースは `API Error: Content block not found` でターンを終了していました。

530* `The response stream was malformed`: 既に完了していたコンテンツブロックのイベントが到着しました。または、イベントが破損した状態で到着しました。破損したイベントとは、データが有効な JSON ではない、コンテンツが欠落している、またはコンテンツがイベントのタイプと一致しないイベントです。v2.1.284 より前では、Claude が思考、テキストのブロック、またはツール呼び出しを完了した後に無効な JSON を持つイベントが到着した場合、パーサーの生のエラー(`API Error: JSON Parse error` で始まるものなど)が代わりに表示されていました。536* `The response stream was malformed`: 既に完了していたコンテンツブロックのイベントが到着しました。または、イベントが破損した状態で到着しました。破損したイベントとは、データが有効な JSON ではない、コンテンツが欠落している、またはコンテンツがイベントのタイプと一致しないイベントです。v2.1.284 より前では、Claude が思考、テキストのブロック、またはツール呼び出しを完了した後に無効な JSON を持つイベントが到着した場合、パーサーの生のエラー(`API Error: JSON Parse error` で始まるものなど)が代わりに表示されていました。v2.1.287 より前では、[Amazon Bedrock ガードレール](/docs/ja/amazon-bedrock#aws-guardrails) が、思考と一部のテキストを既にストリーミングした応答をブロックした場合、ガードレールのメッセージの代わりにこのバリアントが表示されていました。

531* `The response stopped arriving`: 接続は開いたままでしたが、データの配信を停止したため、ストリーミングアイドルウォッチドッグがそれを中止しました。v2.1.222 より前では、Claude Code は [gateway](/docs/ja/gateways) 接続で `ANTHROPIC_BASE_URL` または `ANTHROPIC_AWS_BASE_URL` を通じて到達したこのエラーを報告することもできました。サーバーのキープアライブピングがまだ到着している間、解析された応答イベントのみをカウントしたため、アップグレードするとこれらのルートでの偽のタイムアウトが停止します。`ANTHROPIC_BEDROCK_BASE_URL` などのプロバイダーベース URL を通じて到達するゲートウェイは、バイトウォッチドッグでラップされていません。[Streaming idle watchdogs](/docs/ja/network-config#streaming-idle-watchdogs) を参照してください。537* `The response stopped arriving`: 接続は開いたままでしたが、データの配信を停止したため、ストリーミングアイドルウォッチドッグがそれを中止しました。v2.1.222 より前では、Claude Code は `ANTHROPIC_BASE_URL` または `ANTHROPIC_AWS_BASE_URL` を通じて到達する [ゲートウェイ](/docs/ja/gateways) 接続で、サーバーのキープアライブピングがまだ到着している間にもこの障害を報告することがありました。これは、そこでは解析された応答イベントのみをカウントしていたためです。アップグレードすると、これらのルートでの誤ったタイムアウトが発生しなくなります。`ANTHROPIC_BEDROCK_BASE_URL` などのプロバイダーベース URL を通じて到達するゲートウェイは、バイトウォッチドッグでラップされていません。[Streaming idle watchdogs](/docs/ja/network-config#streaming-idle-watchdogs) を参照してください。

532 538 

533v2.1.227 より前では、`Connection lost mid-response` は `Connection closed mid-response` と読まれ、`The response stopped arriving` は `Response stalled mid-stream` と読まれていました。539v2.1.227 より前では、`Connection lost mid-response` は `Connection closed mid-response` と読まれ、`The response stopped arriving` は `Response stalled mid-stream` と読まれていました。

534 540 


5404 つのケースでは、Claude Code はこの通知をすぐに表示せずに障害を処理します。5464 つのケースでは、Claude Code はこの通知をすぐに表示せずに障害を処理します。

541 547 

542* レスポンスの前半で、Claude Code は障害を再試行するか、別のエラーでターンを終了します。[Automatic retries](#automatic-retries) を参照してください。548* レスポンスの前半で、Claude Code は障害を再試行するか、別のエラーでターンを終了します。[Automatic retries](#automatic-retries) を参照してください。

543* これらの障害の 1 つが Claude がレスポンスを完了した後に到着した場合、Claude Code は完全なレスポンスを保持し、この通知なしでターンを正常に終了します。v2.1.222 より前では、Claude Code はレスポンスが完了した後に接続が切断またはスタールした場合、この通知を表示し、レスポンスが完全であったにもかかわらずターンをエラーとして報告していました。549* これらの障害の 1 つが Claude がレスポンスを完了した後に到着した場合、Claude Code は完全なレスポンスを保持し、この通知なしでターンを正常に終了します。v2.1.222 より前では、Claude Code はレスポンスが完了した後に接続が切断またはストールした場合、この通知を表示し、レスポンスが完全であったにもかかわらずターンをエラーとして報告していました。

544* [non-interactive session](/docs/ja/headless)(`-p` 実行、[Agent SDK](/docs/ja/agent-sdk/overview) 実行、または [cloud session](/docs/ja/claude-code-on-the-web) など)では、カットオフレスポンスがメイン会話にあり、テキストを含むがツール呼び出しを含まない場合、`continue` を自分で送信する必要はありません。Claude Code は部分的な出力を保持し、Claude に停止した場所から続行するよう促します。最大 3 回連続で。この通知は、Claude Code がこれらの継続を使い果たした後にのみ、そのようなレスポンスに対して表示されます。v2.1.246 より前では、Claude Code は最初のカットオフでこの通知を使用してターンを終了していました。550* [非対話セッション](/docs/ja/headless)(`-p` 実行、[Agent SDK](/docs/ja/agent-sdk/overview) 実行、または [クラウドセッション](/docs/ja/claude-code-on-the-web) など)では、途中で切れたレスポンスがメイン会話にあり、テキストを含むがツール呼び出しを含まない場合、`continue` を自分で送信する必要はありません。Claude Code は部分的な出力を保持し、Claude に停止した場所から続行するよう促します(最大 3 回連続)。この通知は、Claude Code がこれらの継続を使い果たした後にのみ、そのようなレスポンスに対して表示されます。v2.1.246 より前では、Claude Code は最初の途切れでこの通知とともに非対話ターンを終了していました。

545* [subagent](/docs/ja/sub-agents#api-errors-in-subagents)(セッションがインタラクティブかどうかに関わらず):カットオフレスポンスがテキストを含むがツール呼び出しを含まない場合、Claude Code はサブエージェントに続行するよう促します。通知は、これらの継続が使い果たされた後にのみ、サブエージェントの最後のメッセージになります。v2.1.257 より前では、サブエージェントは最初のカットオフでこの通知を表示していました。551* [サブエージェント](/docs/ja/sub-agents#api-errors-in-subagents)では(セッションが対話かどうかに関わらず)、途中で切れたレスポンスがテキストを含むがツール呼び出しを含まない場合、Claude Code はサブエージェントに続行するよう促します。通知は、これらの継続が使い果たされた後にのみ、サブエージェントの最後のメッセージになります。v2.1.257 より前では、サブエージェントは最初の途切れでこの通知を表示していました。

546 552 

547**対応方法:**553**対応方法:**

548 554 

549* インタラクティブセッションでは、画面に残っているレスポンスを読んでください。Claude Code はエラーの前に Claude が完了したすべてのブロックを保持しますが、ターンが終了するときに中断された最終ブロックを破棄するため、最終文またはツール呼び出しが欠落している可能性があります。`continue` で返信して、Claude が最後に完了したブロックから再開するようにしてください。555* 対話セッションでは、画面に残っているレスポンスを読んでください。Claude Code はエラーの前に Claude が完了したすべてのブロックを保持しますが、ターンが終了するときに中断された最終ブロックを破棄するため、最終文またはツール呼び出しが欠落している可能性があります。`continue` で返信して、Claude が最後に完了したブロックから再開するようにしてください。

550* [non-interactive mode](/docs/ja/headless)(`-p`):556* [非対話モード](/docs/ja/headless)(`-p`)では:

551 * デフォルトのテキスト出力では、Claude Code は、ターンの前半から保持している最後に完了したテキストのブロックを出力し、その後このメッセージを出力します。何も保持していない場合、Claude Code はこのメッセージのみを出力します。例えば、Claude Code がターン中に会話をコンパクト化し、そのテキストをクリアしたためです。v2.1.219 より前では、Claude Code は `-p` テキスト出力でこのメッセージのみを出力し、既に生成されたレスポンスを削除していました。557 * デフォルトのテキスト出力では、Claude Code は、ターンの前半から保持している最後に完了したテキストのブロックを出力し、その後このメッセージを出力します。何も保持していない場合、Claude Code はこのメッセージのみを出力します。例えば、Claude Code がターン中に会話をコンパクト化し、そのテキストをクリアした場合です。v2.1.219 より前では、Claude Code は `-p` テキスト出力でこのメッセージのみを出力し、既に生成されたレスポンスを削除していました。

552 * `--output-format json` または `stream-json` では、Claude Code はこのメッセージを `result` フィールドで報告します。558 * `--output-format json` または `stream-json` では、Claude Code はこのメッセージを `result` フィールドで報告します。

553 * 接続が安定したら、ターンを続行するために、セッションを再開し、[Continue conversations](/docs/ja/headless#continue-conversations) で説明されているように `continue` を送信してください。559 * 接続が安定したら、ターンを続行するために、セッションを再開し、[Continue conversations](/docs/ja/headless#continue-conversations) で説明されているように `continue` を送信してください。

554 560 


556 Auto mode cannot determine the safety of an action562 Auto mode cannot determine the safety of an action

557</h3>563</h3>

558 564 

559[auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) がアクションを分類するために使用するモデルが決定を生成できなかったため、auto mode はアクションを自動的に承認しませんでした。表示されるメッセージは、クラシファイアーが失敗した方法によって異なります。565[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) がアクションを分類するために使用するモデルが決定を生成できなかったため、auto モードはアクションを自動的に承認しませんでした。表示されるメッセージは、分類器が失敗した方法によって異なります。

560 566 

561作業ディレクトリ内の読み取り、検索、編集はクラシファイアーをスキップするため、これらすべてのケースで動作し続けます。567作業ディレクトリ内の読み取り、検索、編集は分類器をスキップするため、これらすべてのケースで動作し続けます。

562 568 

563クラシファイアーモデルが利用できない場合:569分類器モデルが利用できない場合:

564 570 

565```text theme={null}571```text theme={null}

566<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.572<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.


572 578 

573**対応方法:**579**対応方法:**

574 580 

575* 数秒後に再試行してください。Claude は同じメッセージを見て、通常は自動的に再試行します。一時的な障害は [auto mode eligibility](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) とは無関係です。設定を変更する必要はありません581* 数秒後に再試行してください。Claude は同じメッセージを見て、通常は自動的に再試行します。一時的な障害は [auto モードの利用資格](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) とは無関係です。設定を変更する必要はありません

576* 再試行が失敗し続ける場合は、読み取り専用タスクを続行し、後でブロックされたアクションに戻ってください582* 再試行が失敗し続ける場合は、読み取り専用タスクを続行し、後でブロックされたアクションに戻ってください

577* Amazon Bedrock では、メッセージがすべての再試行で返される場合は、アカウントがそれが示すモデルを呼び出せることを確認してください。標準の Amazon Bedrock モデルの場合、[IAM policy](/docs/ja/amazon-bedrock#iam-configuration) がそれを呼び出すことを許可していることを確認してください。Mantle モデル ID の場合は、[AWS アカウントチームに連絡してください](/docs/ja/amazon-bedrock#mantle-endpoint-errors)583* Amazon Bedrock では、メッセージがすべての再試行で返される場合は、アカウントがそれが示すモデルを呼び出せることを確認してください。標準の Amazon Bedrock モデルの場合、[IAM policy](/docs/ja/amazon-bedrock#iam-configuration) がそれを呼び出すことを許可していることを確認してください。Mantle モデル ID の場合は、[AWS アカウントチームに連絡してください](/docs/ja/amazon-bedrock#mantle-endpoint-errors)

578 584 

579OAuth トークンの有効期限が切れたか、別のセッションによってローテーションされたためにクラシファイアーリクエストが失敗した場合、Claude Code はトークンをリフレッシュし、リクエストを 1 回再試行するため、ルーチンのトークン有効期限はこのメッセージとして表示されません。v2.1.216 より前では、有効期限が切れたまたはローテーションされたトークンはすべてのクラシファイアーリクエストに失敗し、トークンがリフレッシュされるまで auto mode はこのメッセージで確認されたすべてのアクションを拒否していました。585OAuth トークンの有効期限が切れたか、別のセッションによってローテーションされたために分類器リクエストが失敗した場合、Claude Code はトークンをリフレッシュし、リクエストを 1 回再試行するため、日常的なトークンの有効期限切れはこのメッセージとして表示されません。v2.1.216 より前では、有効期限が切れたまたはローテーションされたトークンによってすべての分類器リクエストが失敗し、トークンがリフレッシュされるまで auto モードはこのメッセージで確認対象のすべてのアクションを拒否していました。

580 586 

581クラシファイアーが解析不可能なレスポンスを返した場合:587分類器が解析不可能なレスポンスを返した場合:

582 588 

583```text theme={null}589```text theme={null}

584Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details590Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details


589* アクションを再試行してください。これは通常、次の試行で成功します595* アクションを再試行してください。これは通常、次の試行で成功します

590* `claude --debug` を実行し、アクションを繰り返して、デバッグログで詳細を確認してください596* `claude --debug` を実行し、アクションを繰り返して、デバッグログで詳細を確認してください

591 597 

592別の API セーフティチェックが、以前の会話コンテンツのためにクラシファイアーリクエストをブロックした場合:598別の API セーフティチェックが、以前の会話コンテンツのために分類器リクエストをブロックした場合:

593 599 

594```text theme={null}600```text theme={null}

595Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details601Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

596```602```

597 603 

598Claude Code はアクションを拒否しますが、Claude にこれはアクションが安全でないという判断ではなく、再試行するのではなく他のタスクを続行するよう伝えます。これらの拒否は [auto mode's pause thresholds](/docs/ja/permission-modes#when-auto-mode-falls-back) に対してカウントされません。[non-interactive](/docs/ja/headless) `-p` 実行では、Claude Code は実行を停止しません。Claude が受け取るものは、アクションをリクエストした場所によって異なります。604Claude Code はアクションを拒否しますが、Claude にこれはアクションが安全でないという判断ではなく、再試行するのではなく他のタスクを続行するよう伝えます。これらの拒否は [auto モードの一時停止しきい値](/docs/ja/permission-modes#when-auto-mode-falls-back) にカウントされません。[非対話](/docs/ja/headless) `-p` 実行では、Claude Code は実行を停止しません。Claude が受け取るものは、アクションを要求した場所によって異なります。

599 605 

600* [background subagent](/docs/ja/sub-agents#run-subagents-in-foreground-or-background) への `-p` 実行(`--input-format stream-json` なし)では、Claude Code は `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode` を含むエラー結果を返します606* `--input-format stream-json` なしの `-p` 実行における [バックグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background) に対しては、Claude Code は `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode` を含むエラー結果を返します

601* インタラクティブセッションと `-p` 実行のメイン会話を含む、その他すべての場所では、Claude Code はその拒否を Claude に返します607* 対話セッションと `-p` 実行のメイン会話を含む、その他すべての場所では、Claude Code はその拒否を Claude に返します

602 608 

603v2.1.225 より前では、Claude Code はこれらの拒否を一時停止しきい値に対してカウントし、本物のクラシファイアーブロックと同じ拒否メッセージを返していました。609v2.1.225 より前では、Claude Code はこれらの拒否を一時停止しきい値にカウントし、本物の分類器ブロックと同じ拒否メッセージを返していました。

604 610 

605**対応方法:**611**対応方法:**

606 612 

607* これはお客様のアクションに関する決定ではありません。会話に既にあるコンテンツが、auto mode がクラシファイアーに会話を送信したときに API のセーフティフィルターをトリガーしました613* これはアクションに関する決定ではありません。会話に既にあるコンテンツが、auto モードが分類器に会話を送信したときに API のセーフティフィルターをトリガーしました

608* 再試行は役に立ちません。同じ会話コンテンツがフィルターを再度トリガーします614* 再試行は役に立ちません。同じ会話コンテンツがフィルターを再度トリガーします

609* インタラクティブセッションでは、別の [permission mode](/docs/ja/permission-modes) に切り替えて、プロンプトが表示されたときにアクションを承認できるようにしてください615* 対話セッションでは、別の [権限モード](/docs/ja/permission-modes) に切り替えて、プロンプトが表示されたときにアクションを承認できるようにしてください

610* トリガーするコンテンツなしで新しい会話を開始してください616* トリガーするコンテンツなしで新しい会話を開始してください

611 617 

612会話がクラシファイアーのコンテキストウィンドウより大きくなった場合:618会話が分類器のコンテキストウィンドウより大きくなった場合:

613 619 

614```text theme={null}620```text theme={null}

615Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)621Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)

616```622```

617 623 

618アクションに何が起こるかは、Claude がそれをリクエストした場所によって異なります。624アクションに何が起こるかは、Claude がそれを要求した場所によって異なります。

619 625 

620* インタラクティブセッションでは、auto mode はそのアクションに対して通常の権限プロンプトにフォールバックするため、手動で承認または拒否できます626* 対話セッションでは、auto モードはそのアクションに対して通常の権限プロンプトにフォールバックするため、手動で承認または拒否できます

621* [background subagent](/docs/ja/sub-agents#run-subagents-in-foreground-or-background) への [non-interactive](/docs/ja/headless) `-p` 実行(`--input-format stream-json` なし)では、Claude Code は `Agent aborted: auto mode classifier transcript exceeded context window in headless mode` を含むエラー結果を返し、実行は続行されます627* `--input-format stream-json` なしの [非対話](/docs/ja/headless) `-p` 実行における [バックグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background) に対しては、Claude Code は `Agent aborted: auto mode classifier transcript exceeded context window in headless mode` を含むエラー結果を返し、実行は続行されます

622* [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) なしの `-p` 実行の他の場所では、フォールバックするプロンプトがないため、アクションは実行されず、実行は続行されます628* [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) なしの `-p` 実行の他の場所では、フォールバックするプロンプトがないため、アクションは実行されず、実行は続行されます

623 629 

624**対応方法:**630**対応方法:**

625 631 

626* インタラクティブセッションでは、表示されるプロンプトでアクションを承認または拒否してください632* 対話セッションでは、表示されるプロンプトでアクションを承認または拒否してください

627* インタラクティブセッションでは、`/compact` を実行して会話サイズを削減し、後続のアクションがクラシファイアーウィンドウ内に収まるようにしてください633* 対話セッションでは、`/compact` を実行して会話サイズを削減し、後続のアクションが分類器ウィンドウ内に再び収まるようにしてください

628 634 

629<h3 id="the-server-returned-no-safety-verdict">635<h3 id="the-server-returned-no-safety-verdict">

630 The server returned no safety verdict636 The server returned no safety verdict

631</h3>637</h3>

632 638 

633[server-side classifier review](/docs/ja/permission-modes#server-side-classifier-review) では、auto mode はサーバーがそれに対して判定を与えないときにアクションを拒否します。拒否は、Claude Code が判定できる場合(`(timed out)` など)に括弧内にカテゴリを示します。639[サーバー側の分類器レビュー](/docs/ja/permission-modes#server-side-classifier-review) では、auto モードはサーバーがアクションに対して判定を返さないときにそのアクションを拒否します。拒否は、Claude Code が判定できる場合、括弧内にカテゴリ(`(timed out)` など)を示します。

634 640 

635```text theme={null}641```text theme={null}

636The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.642The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

637```643```

638 644 

639メッセージの残りの部分は、1 回の再試行が役に立つかどうかを Claude に伝えます。これらの拒否の前に、Claude Code は待機するため、Claude の次の試行は一度に続きません。インタラクティブセッションでの待機中、スピナーは `Auto mode check unavailable` とカウントダウンを表示し、`Esc` を押すとターンが中断されます。645メッセージの残りの部分は、1 回の再試行が役に立つかどうかを Claude に伝えます。これらの拒否の一部では、Claude の次の試行がすぐに続かないように、Claude Code は事前に待機します。対話セッションでの待機中、スピナーは `Auto mode check unavailable` とカウントダウンを表示し、`Esc` を押すとターンが中断されます。

640 646 

64110 回連続で判定がない場合、auto mode はターンを停止します。64710 回連続で判定のないレスポンスが続くと、auto モードはターンを停止します。

642 648 

643```text theme={null}649```text theme={null}

644Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.650Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

645```651```

646 652 

647停止メッセージは、各種セッションの異なる場所に表示されます。653停止メッセージは、セッションの種類ごとに異なる場所に表示されます。

648 654 

649* インタラクティブセッションでは、メッセージはトランスクリプトに警告として表示され、ターンが終了します655* 対話セッションでは、メッセージはトランスクリプトに警告として表示され、ターンが終了します

650* [non-interactive](/docs/ja/headless) `-p` 実行では、実行が終了し、実行エラーを報告します。デフォルトのテキスト出力では、メッセージは stderr に出力されます。656* [非対話](/docs/ja/headless) `-p` 実行では、実行が終了し、実行エラーを報告します。デフォルトのテキスト出力では、メッセージは stderr に出力されます。

651* [subagent](/docs/ja/sub-agents) が制限に達した場合、サブエージェントは完了する前に停止し、Claude は auto mode が停止したことを示すメモ付きで生成されたものを受け取ります657* [サブエージェント](/docs/ja/sub-agents) が制限に達した場合、サブエージェントは完了する前に停止し、Claude は auto モードがそれを停止したことを示すメモ付きで、それまでに生成されたものを受け取ります

652 658 

653**対応方法:**659**対応方法:**

654 660 

655* 別のメッセージを送信して、Claude が再度試行するようにしてください。応答数のカウントはリセットされます。661* 別のメッセージを送信して、Claude が再度試行するようにしてください。レスポンスのカウントはリセットされます。

656* 停止が繰り返され、リクエストが [LLM gateway or proxy](/docs/ja/llm-gateway) を通じて行われる場合は、ストリーミングレスポンスを短縮するか、書き直すかどうかを確認してください。[Server-side classifier review](/docs/ja/permission-modes#server-side-classifier-review) はどのゲートウェイの動作が拒否を引き起こすかを示し、[gateway compatibility guide](/docs/ja/llm-gateway-protocol#feature-pass-through) は変更されないまま渡すものをリストします。662* 停止が繰り返され、リクエストが [LLM ゲートウェイまたはプロキシ](/docs/ja/llm-gateway) を経由する場合は、それがストリーミングレスポンスを途中で切り詰めたり書き換えたりしていないかを確認してください。[サーバー側の分類器レビュー](/docs/ja/permission-modes#server-side-classifier-review) にはどのゲートウェイの動作が拒否を引き起こすかが記載され、[ゲートウェイ互換性ガイド](/docs/ja/llm-gateway-protocol#feature-pass-through) には変更せずにそのまま渡すべきものが記載されています。

657* Claude Code を開始する前に `CLAUDE_CODE_AUTO_MODE_SERVER=0` を設定して、代わりに独自のクラシファイアーリクエストを使用してください。v2.1.281 より前では、Claude Code は Anthropic API への直接接続で変数を読み取りませんでした。663* Claude Code を開始する前に `CLAUDE_CODE_AUTO_MODE_SERVER=0` を設定して、代わりに Claude Code 独自の分類器リクエストを使用してください。v2.1.281 より前では、Claude Code は Anthropic API への直接接続でこの変数を読み取りませんでした。

658* 代わりにアクションを自分で承認するには、[switch out of auto mode](/docs/ja/permission-modes#switch-permission-modes) してください664* 代わりにアクションを自分で承認するには、[auto モードから切り替えてください](/docs/ja/permission-modes#switch-permission-modes)

659 665 

660v2.1.280 より前では、Claude Code は判定のないレスポンスからの各アクションを直ちに拒否し、ターンを停止することはありませんでした。666v2.1.280 より前では、Claude Code は判定のないレスポンスからの各アクションを直ちに拒否し、ターンを停止することはありませんでした。

661 667 


663 Agent terminated early due to an API error669 Agent terminated early due to an API error

664</h3>670</h3>

665 671 

666[subagent](/docs/ja/sub-agents) の API リクエストが終了的に失敗しました。例えば、使用制限に達したか、サーバーエラーの再試行が終了したため、サブエージェントはタスクを完了する前に停止しました。このメッセージには Claude Code v2.1.199 以降が必要です。それ以前は、API エラーテキストはサブエージェントの結果であるかのように Claude に返されていました。672[サブエージェント](/docs/ja/sub-agents) の API リクエストが回復不能な形で失敗しました。例えば、使用制限に達したか、サーバーエラーの再試行を使い果たしたため、サブエージェントはタスクを完了する前に停止しました。このメッセージには Claude Code v2.1.199 以降が必要です。それ以前は、API エラーテキストはサブエージェントの結果であるかのように Claude に返されていました。

667 673 

668```text theme={null}674```text theme={null}

669Agent terminated early due to an API error: <error detail>675Agent terminated early due to an API error: <error detail>


671 677 

672**対応方法:**678**対応方法:**

673 679 

674* コロンの後のエラー詳細をこのページの独自のセクション([Usage limits](#usage-limits) または [Server errors](#server-errors) など)と照合し、そのセクションの手順に従ってください680* コロンの後のエラー詳細を、このページの該当するセクション([Usage limits](#usage-limits) や [Server errors](#server-errors) など)と照合し、そのセクションの手順に従ってください

675* 基になるエラーがクリアされたら、Claude にタスクを再試行するか、[resume the subagent](/docs/ja/sub-agents#resume-subagents) するよう依頼してください681* 根本のエラーが解消されたら、Claude にタスクを再試行するか、[サブエージェントを再開する](/docs/ja/sub-agents#resume-subagents) よう依頼してください

676 682 

677レート制限、オーバーロード、またはサーバーエラーがテキスト出力を既に生成したフォアグラウンドサブエージェントを中断する場合、Claude はその部分的な出力を不完全としてマークされた状態で受け取り、このエラーは受け取りません。唯一の出力がツール呼び出しであるサブエージェントもこのエラーを取得します。v2.1.199 では、その形状は代わりに空の部分的な結果を返していました。[API errors in subagents](/docs/ja/sub-agents#api-errors-in-subagents) を参照してください。683レート制限、オーバーロード、またはサーバーエラーが、既にテキスト出力を生成したフォアグラウンドサブエージェントを中断した場合、Claude はこのエラーの代わりに、不完全としてマークされたその部分的な出力を受け取ります。出力がツール呼び出しのみだったサブエージェントもこのエラーを受け取ります。v2.1.199 では、その形の出力は代わりに空の部分的な結果を返していました。[API errors in subagents](/docs/ja/sub-agents#api-errors-in-subagents) を参照してください。

678 684 

679<h2 id="usage-limits">685<h2 id="usage-limits">

680 使用制限686 使用制限


885 認証エラー891 認証エラー

886</h2>892</h2>

887 893 

888これらのエラーは、Claude Code が API に対してあなたの身元を証明できないことを意味します。任意の時点で `/status` を実行して、現在アクティブな認証情報を確認できます。894これらのエラーは、Claude Code が API に対してユーザーの身元を証明できないことを意味します。`/status` をいつでも実行すると、現在有効な認証情報を確認できます。

889 895 

890<h3 id="not-logged-in">896<h3 id="not-logged-in">

891 ログインしていない897 ログインしていない

892</h3>898</h3>

893 899 

894このセッションで有効な認証情報が利用できません。900このセッションで使用できる有効な認証情報がありません。

895 901 

896```text theme={null}902```text theme={null}

897Not logged in · Please run /login903Not logged in · Please run /login

898```904```

899 905 

900Claude Desktop アプリが実行するセッション(Code タブや Cowork など)では、メッセージは `Authentication required · Sign in again to continue` と読み、アプリからもう一度サインインします。906Code タブや Cowork など、Claude Desktop アプリが実行するセッションでは、メッセージは `Authentication required · Sign in again to continue` となり、アプリから再度サインインします。

901 907 

902**対応方法:**908同じ[設定ディレクトリ](/docs/ja/claude-directory)を使用する別の Claude Code ウィンドウで claude.ai アカウントでサインインすると、このメッセージを表示している対話セッションは自動的にそのログインを使い始めます。再起動する必要はありません。

909 

910macOS の v2.1.286 より前では、別のウィンドウからサインインした後もセッションがこのメッセージを表示し続けることがありました。それらのバージョンでは、メッセージを表示しているセッションを再起動してください。

911 

912**対処方法:**

903 913 

904* `/login` を実行して、Claude サブスクリプションまたは Console アカウントで認証します914* `/login` を実行して、Claude サブスクリプションまたは Console アカウントで認証します

905* 環境変数で認証されることを想定していた場合は、`ANTHROPIC_API_KEY` が `claude` を起動したシェルで設定およびエクスポートされていることを確認します915* 環境変数で認証されることを想定していた場合は、`claude` を起動したシェルで `ANTHROPIC_API_KEY` が設定され、エクスポートされていることを確認します

906* CI または自動化で対話的ログインが不可能な場合は、起動時にキーを取得する [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトを設定します916* 対話的なログインができない CI や自動化では、起動時にキーを取得する [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトを設定します

907* [認証の優先順位](/docs/ja/authentication#authentication-precedence) を参照して、複数の認証情報が存在する場合に Claude Code が使用する認証情報を理解します917* 複数の認証情報が存在する場合に Claude Code がどれを使用するかについては、[認証の優先順位](/docs/ja/authentication#authentication-precedence)を参照してください

908 918 

909ログインを繰り返し求められる場合は、[ログインしていないか、トークンの有効期限が切れている](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired) を参照して、システムクロックの確認と macOS 認証情報ストレージの復旧手順を確認してください。919繰り返しログインを求められる場合は、システムクロックの確認と macOS の認証情報ストレージの復旧手順について、[ログインしていない、またはトークンの有効期限切れ](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired)を参照してください。

910 920 

911<h3 id="could-not-resolve-authentication-method">921<h3 id="could-not-resolve-authentication-method">

912 認証方法を解決できませんでした922 認証方法を解決できなかった

913</h3>923</h3>

914 924 

915セッションが認証情報なしで API クライアントに到達しました。[バックグラウンドセッション](/docs/ja/agent-view) とクラウドセッションは、ワーカーが認証情報なしで起動したときにこのメッセージを表示します。対話的、`-p`、および Agent SDK の実行は、同じ条件を [ログインしていない](#not-logged-in) として報告し、この文字列をデバッグログにのみ書き込みます。そこで見つけた場合は、代わりにそのエントリに従ってください。925セッションが認証情報なしで API クライアントに到達しました。[バックグラウンドセッション](/docs/ja/agent-view)とクラウドセッションでは、ワーカーが認証情報なしで起動したときにこのメッセージが表示されます。対話モード、`-p`、Agent SDK の実行では、同じ状態を[ログインしていない](#not-logged-in)として報告し、この文字列はデバッグログにのみ書き込みます。そのため、デバッグログでこのメッセージを見つけた場合は、そちらの項目に従ってください。

916 926 

917```text theme={null}927```text theme={null}

918Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted928Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

919```929```

920 930 

921現在のバージョンでは、エラーはワーカープロセスで認証情報が利用できなかったことを意味します。v2.1.174 より前では、有効な認証情報が設定されていても、アイドル状態の事前初期化されたワーカーに割り当てられたバックグラウンドセッションがこの方法で失敗する可能性がありました。v2.1.176 より前では、クラウドセッションがアイドル状態で要求される前に失敗する可能性もありました。アップグレードして復旧してください。931現在のバージョンでは、このエラーはワーカープロセスで使用できる認証情報がなかったことを意味します。v2.1.174 より前では、アイドル状態の事前初期化済みワーカーに割り当てられたバックグラウンドセッションが、有効な認証情報が設定されていてもこのように失敗することがありました。v2.1.176 より前では、割り当てられる前にアイドル状態だったクラウドセッションでも同様でした。アップグレードすると復旧します。

922 932 

923**対応方法:**933**対処方法:**

924 934 

925* バックグラウンドまたはクラウドセッションでこれが表示され、認証情報が既に設定されている場合は、v2.1.176 以降にアップグレードします935* バックグラウンドセッションまたはクラウドセッションでこのエラーが表示され、認証情報がすでに設定されている場合は、v2.1.176 以降にアップグレードします

926* `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN`、またはクラウドプロバイダーの認証情報が、対話的シェルだけでなく、ワーカーを起動する環境で設定されていることを確認します936* `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN`、またはクラウドプロバイダーの認証情報が、対話シェルだけでなく、ワーカーを起動する環境でも設定されていることを確認します

927* Agent SDK については、[クイックスタートの認証設定](/docs/ja/agent-sdk/quickstart#setup) を参照してください937* Agent SDK については、[クイックスタートの認証設定](/docs/ja/agent-sdk/quickstart#setup)を参照してください

928* 同じ環境の対話的セッションで `/status` を実行して、どの認証情報ソースが解決されるかを確認します938* 同じ環境の対話セッションで `/status` を実行し、どの認証情報ソースが解決されるかを確認します

929 939 

930<h3 id="invalid-api-key">940<h3 id="invalid-api-key">

931 無効な API キー941 無効な API キー

932</h3>942</h3>

933 943 

934`ANTHROPIC_API_KEY` 環境変数または `apiKeyHelper` スクリプトが API に拒否されたキーを返しました。または Claude Code が `ANTHROPIC_API_KEY` からのキーをブロックしてから送信しました。944`ANTHROPIC_API_KEY` 環境変数または `apiKeyHelper` スクリプトが返したキーを API が拒否したか、Claude Code が `ANTHROPIC_API_KEY` のキーを送信前にブロックしました。

935 945 

936```text theme={null}946```text theme={null}

937Invalid API key · Fix external API key947Invalid API key · Fix external API key

938```948```

939 949 

940メッセージが `Fix external API key` を超えて `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).` などの説明で続く場合、API はキーを見ていません。Claude Code は HTTP ヘッダーが運べない文字を見つけ、送信前にリクエストを停止しました。[無効なリクエストヘッダー値](#invalid-request-header-value) を参照して、説明を読み、値を修正する方法を確認してください。950メッセージが `Fix external API key` の後に `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).` のような説明で続く場合、API はキーを受け取っていません。Claude Code が HTTP ヘッダーで扱えない文字を検出し、送信前にリクエストを停止しました。説明の読み方と値の修正方法については、[無効なリクエストヘッダー値](#invalid-request-header-value)を参照してください。

941 951 

942**対応方法:**952**対処方法:**

943 953 

944* タイプミスがないか確認し、[Console](https://platform.claude.com/settings/keys) でキーが取り消されていないことを確認します954* タイプミスがないか確認し、[Console](https://platform.claude.com/settings/keys) でキーが失効していないことを確認します

945* 同じシェルで `env | grep ANTHROPIC` を実行するか、PowerShell で `Get-ChildItem Env:ANTHROPIC*` を実行します。direnv、dotenv シェルプラグイン、IDE ターミナルなどのツールは、プロジェクト内の `.env` ファイルから古いキーを明示的に設定せずに読み込むことができます955* 同じシェルで `env | grep ANTHROPIC` を実行するか、PowerShell では `Get-ChildItem Env:ANTHROPIC*` を実行します。direnv、dotenv シェルプラグイン、IDE のターミナルなどのツールは、ユーザーが明示的に設定しなくても、プロジェクト内の `.env` ファイルから古いキーを読み込むことがあります。

946* `ANTHROPIC_API_KEY` をアンセットして `/login` を実行し、代わりにサブスクリプション認証を使用します956* `ANTHROPIC_API_KEY` の設定を解除し、`/login` を実行して代わりにサブスクリプション認証を使用します

947* キーが [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトから来ている場合は、スクリプトを直接実行して、stdout に有効なキーを出力することを確認します957* キーが [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトから取得される場合は、スクリプトを直接実行して、有効なキーが stdout に出力されることを確認します

948* `/status` を実行して、Claude Code が実際に使用している認証情報ソースを確認します958* `/status` を実行して、Claude Code が実際に使用している認証情報ソースを確認します

949 959 

950<h3 id="your-apikeyhelper-script-is-failing">960<h3 id="your-apikeyhelper-script-is-failing">

951 apiKeyHelper スクリプトが失敗しています961 apiKeyHelper スクリプトが失敗している

952</h3>962</h3>

953 963 

954Claude Code が [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定でコマンドを実行しましたが、キーを取得できませんでした。キーがないと、リクエストはプレースホルダー認証情報で API に到達し、API は `401` で拒否します。ターミナルの `Authentication` パネルには、以下のいずれが発生したかが表示されます:964Claude Code は [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定のコマンドを実行しましたが、キーが返されませんでした。キーがない場合、リクエストはプレースホルダーの認証情報で API に到達し、API はそれを `401` で拒否します。ターミナルの `Authentication` パネルには、次のどれが起きたかが表示されます。

955 965 

956* コマンドがエラーで終了したか、タイムアウトしました966* コマンドがエラーで終了したか、タイムアウトした

957* コマンドが stdout に何も出力しませんでした967* コマンドが stdout に何も出力しなかった

958* コマンドがキー以外の何かを出力しました。ログイン バナーやログ行など。パネルは `returned output that cannot be used as an API key` を表示し、何が間違っているかを示します。v2.1.227 より前では、Claude Code は周囲の空白をトリミングした後、コマンドが出力したものを送信していました。968* コマンドがログインバナーやログ行など、キー以外のものを出力した。パネルには `returned output that cannot be used as an API key` と表示され、出力を繰り返すことなく何が問題かが示されます。v2.1.227 より前では、Claude Code は前後の空白を取り除いた後、コマンドが出力したものをそのまま送信していました。

959 969 

960```text theme={null}970```text theme={null}

961Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output971Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

962```972```

963 973 

964[非対話モード](/docs/ja/headless) では、stderr も `apiKeyHelper failed:` というプレフィックス付きの具体的な理由を含みます。974[非対話モード](/docs/ja/headless)では、stderr にも `apiKeyHelper failed:` という接頭辞付きで具体的な理由が出力されます。

965 975 

966Claude Code はスクリプトを再実行し、このメッセージを表示する前にリクエストを最大 2 回まで再試行するため、失敗は 3 回の試行以内に表面化します。v2.1.208 より前では、Claude Code は完全な [再試行予算](#automatic-retries) を使用してプレースホルダー認証情報でリクエストを再送信し、その後、スクリプト失敗ではなく一般的な `401` 認証エラーを報告していました。976Claude Code は、このメッセージを表示する前にスクリプトを再実行してリクエストを最大 2 回再試行するため、失敗は 3 回の試行以内に表面化します。v2.1.208 より前では、Claude Code は[再試行の上限](#automatic-retries)をすべて使ってプレースホルダーの認証情報でリクエストを再送信し、スクリプトの失敗ではなく汎用的な `401` 認証エラーを報告していました。

967 977 

968`/login` を実行しても役に立ちません。ここでは、ヘルパーの出力が [優先順位](/docs/ja/authentication#authentication-precedence) で保存されたログインより優先されます。設定が存在する限り。978この場合、`/login` を実行しても解決しません。設定が存在する限り、ヘルパーの出力は保存されたログインよりも[優先されます](/docs/ja/authentication#authentication-precedence)。

969 979 

970**対応方法:**980**対処方法:**

971 981 

972* `apiKeyHelper` で設定されたコマンドをシェルで直接実行して、失敗を再現します982* `apiKeyHelper` に設定されたコマンドをシェルで直接実行して、失敗を再現します

973* コマンドが期限切れのセッションを報告する場合は、認証情報プロバイダーで再認証します。たとえば、SSO またはシークレットボールトに再度サインインします983* コマンドがセッションの有効期限切れを報告する場合は、SSO やシークレットボールトに再度サインインするなどして、認証情報プロバイダーで再認証します

974* コマンドを修正して、stdout にのみキーを出力するようにします。単一のトークンとして、最大 16,384 文字の印字可能 ASCII で、終了コード 0 で終了します。[apiKeyHelper で認証情報をローテーションする](/docs/ja/llm-gateway-connect#rotate-credentials-with-apikeyhelper) を参照して、動作するセットアップを確認してください。984* コマンドを修正して、キーのみを 16,384 文字以内の印字可能な ASCII の単一トークンとして stdout に出力し、終了コード 0 で終了するようにします。動作する設定については、[apiKeyHelper による認証情報のローテーション](/docs/ja/llm-gateway-connect#rotate-credentials-with-apikeyhelper)を参照してください。

975* `/status` を実行して、`apiKeyHelper` がアクティブな認証情報ソースであることを確認します。`apiKeyHelper` 行は `Failing` を表示し、最後の失敗の詳細(終了コードとコマンドのエラー出力など)を表示し、次の成功した実行後に消えます。v2.1.274 より前では、`/status` は認証情報ソースのみを表示し、失敗を表示しませんでした。985* `/status` を実行して失敗内容を確認し、`apiKeyHelper` が有効な認証情報ソースであることを確認します。`apiKeyHelper` の行には、終了コードやコマンドのエラー出力など、最後の失敗の詳細とともに `Failing` と表示され、次に実行が成功すると消えます。v2.1.274 より前では、`/status` には認証情報ソースのみが表示され、失敗は表示されませんでした。

976* コマンドが失敗するたびに、その終了コードとエラー出力がターミナルの `Authentication` パネルに表示されます。v2.1.212 より前では、パネルは `Cloud authentication` というタイトルでした。986* コマンドが失敗するたびに、その終了コードとエラー出力がターミナルの `Authentication` パネルにも表示されます。v2.1.212 より前では、パネルのタイトルは `Cloud authentication` でした。

977 987 

978<h3 id="invalid-request-header-value">988<h3 id="invalid-request-header-value">

979 無効なリクエストヘッダー値989 無効なリクエストヘッダー値

980</h3>990</h3>

981 991 

982Claude Code がリクエストヘッダーとして送信しようとしていた値に、HTTP ヘッダーが運べない文字が含まれています。改行、NUL バイト、または `U+00FF` より上の文字(カーリークォートやゼロ幅スペースなど)。Claude Code は何も送信される前にリクエストを停止し、修正する変数または設定に名前を付けます。通常の原因は、ドキュメントまたはチャットから貼り付けられた認証情報で、目に見えない文字または迷走改行が含まれていることです。992Claude Code がリクエストヘッダーとして送信しようとした値に、HTTP ヘッダーで扱えない文字が含まれています。これは、改行、NUL バイト、または曲線引用符やゼロ幅スペースなど `U+00FF` を超える文字です。Claude Code は何かを送信する前にリクエストを停止し、修正すべき変数または設定の名前を示します。よくある原因は、ドキュメントやチャットから貼り付けた認証情報に、目に見えない文字や余分な改行が含まれていたことです。

983 993 

984Claude Code は Claude API に直接リクエストを送信するとき、または [LLM ゲートウェイ](/docs/ja/llm-gateway) を通じてリクエストを送信するときにこのチェックを実行します。[Amazon Bedrock](/docs/ja/amazon-bedrock) などのサードパーティクラウドプロバイダーでは、Claude Code は送信前にこれを実行しません。994Claude Code は、Claude API に直接、または [LLM ゲートウェイ](/docs/ja/llm-gateway)経由でリクエストを送信するときにこのチェックを実行します。[Amazon Bedrock](/docs/ja/amazon-bedrock) などのサードパーティのクラウドプロバイダーでは、Claude Code は送信前にこのチェックを実行しません。

985 995 

986```text theme={null}996```text theme={null}

987Invalid auth token · Fix external auth token997Invalid auth token · Fix external auth token


989Invalid request header from the environment · Fix the environment variable999Invalid request header from the environment · Fix the environment variable

990```1000```

991 1001 

992メッセージの最初の部分は、不正な値がどこから来たかによって異なります:1002メッセージの最初の部分は、不正な値がどこから来たかによって異なります。

993 1003 

994* `Invalid auth token`:[`ANTHROPIC_AUTH_TOKEN`](/docs/ja/env-vars) または [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) からのベアラートークン1004* `Invalid auth token`: [`ANTHROPIC_AUTH_TOKEN`](/docs/ja/env-vars) または [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) のベアラートークン

995* `Invalid ANTHROPIC_CUSTOM_HEADERS`:[`ANTHROPIC_CUSTOM_HEADERS`](/docs/ja/env-vars) で設定したヘッダー名または値。説明は、`distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS` など、どの `Name: Value` ペアが問題かをカウントします。名前または値を繰り返さずに、両方を選択したため。1005* `Invalid ANTHROPIC_CUSTOM_HEADERS`: [`ANTHROPIC_CUSTOM_HEADERS`](/docs/ja/env-vars) で設定したヘッダー名または値。名前と値はどちらもユーザーが選んだものであるため、説明ではそれらを繰り返さず、`distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS` のように、どの `Name: Value` ペアに問題があるかを番号で示します。

996* `Invalid request header from the environment`:Claude Code が別の環境変数(`CLAUDE_AGENT_SDK_CLIENT_APP` など)からリクエストヘッダーにコピーする値。説明は修正する変数に名前を付けます。1006* `Invalid request header from the environment`: Claude Code が `CLAUDE_AGENT_SDK_CLIENT_APP` などの別の環境変数からリクエストヘッダーにコピーする値。説明に修正すべき変数の名前が示されます。

997 1007 

998Claude Code は、このチェックで検出された不正な `ANTHROPIC_API_KEY` を [無効な API キー](#invalid-api-key) として報告します。同じ末尾の説明付き。不正な保存された `/login` 認証情報を [ログインしていない](#not-logged-in) として報告します。代わりに `/login` を実行して新しいものを保存してください。[`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトの出力はこのチェックに到達しません。Claude Code はスクリプトが実行されるときに検証し、HTTP ヘッダーが運べない出力は [apiKeyHelper スクリプトが失敗しています](#your-apikeyhelper-script-is-failing) で失敗します。1008このチェックで検出された不正な `ANTHROPIC_API_KEY` は、同じ末尾の説明とともに[無効な API キー](#invalid-api-key)として報告されます。保存された `/login` の認証情報が不正な場合は、代わりに[ログインしていない](#not-logged-in)として報告されます。`/login` を実行して新しい認証情報を保存してください。[`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトの出力はこのチェックの対象になりません。Claude Code はスクリプトの実行時に出力を検証し、HTTP ヘッダーで扱えない出力は [apiKeyHelper スクリプトが失敗している](#your-apikeyhelper-script-is-failing)として失敗します。

999 1009 

10002 番目の `·` の後、メッセージは問題を説明します。この完全な例のように:10102 つ目の `·` の後に、次の完全な例のようにメッセージが問題を説明します。

1001 1011 

1002```text theme={null}1012```text theme={null}

1003Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).1013Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

1004```1014```

1005 1015 

1006位置は 1 から始まる文字をカウントします。説明は固定フレーズと文字数から構築されるため、値自体は含まれません。バイト順マーク、ゼロ幅スペース、カーリークォートなど、よく知られている目に見えない文字または活字文字である場合にのみ、問題のある文字に名前を付けます。その他はすべて `a non-ASCII character` として報告されます。1016位置は 1 から始まる文字数で数えます。説明は固定のフレーズと文字数から構成されるため、値そのものが含まれることはありません。問題の文字の名前が示されるのは、バイトオーダーマーク、ゼロ幅スペース、曲線引用符など、よく知られた不可視文字または活字上の文字である場合のみで、それ以外は `a non-ASCII character` として報告されます。

1007 1017 

1008**対応方法:**1018**対処方法:**

1009 1019 

1010* メッセージが名前を付ける変数または設定を再設定し、同じソースから貼り付けるのではなく、報告された位置の周囲の文字を再入力します1020* メッセージが示す変数または設定を再設定します。その際、同じソースから再度貼り付けるのではなく、報告された位置の周辺の文字を打ち直します

1011* `ANTHROPIC_CUSTOM_HEADERS` の場合は、1 行に 1 つの `Name: Value` ペアを保持し、メッセージがカウントするペアを書き直します1021* `ANTHROPIC_CUSTOM_HEADERS` の場合は、1 行に 1 つの `Name: Value` ペアを記述し、メッセージが示す番号のペアを書き直します

1012* `/status` を実行して、どの認証情報ソースがアクティブであるかを確認します1022* `/status` を実行して、有効な認証情報ソースを確認します

1013 1023 

1014<h3 id="this-organization-has-been-disabled">1024<h3 id="this-organization-has-been-disabled">

1015 このオーガニゼーションは無効になっています1025 この組織は無効化されている

1016</h3>1026</h3>

1017 1027 

1018Claude Code は、無効な Console オーガニゼーションから古い `ANTHROPIC_API_KEY` を使用しています。保存されたサブスクリプションログインがある場合、キーはそれをオーバーライドします。1028Claude Code が、無効化された Console 組織の古い `ANTHROPIC_API_KEY` を使用しています。サブスクリプションのログインが保存されている場合でも、キーがそれを上書きします。

1019 1029 

1020```text theme={null}1030```text theme={null}

1021Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead1031Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead


1023API Error: 400 ... This organization has been disabled.1033API Error: 400 ... This organization has been disabled.

1024```1034```

1025 1035 

1026`·` の後のヒントは、保存された認証情報によって異なります。最初の形式は、保存された `/login` がキーをアンセットした後に引き継ぐことができるときに表示され、2 番目はキーが唯一の認証情報である場合に表示されます。1036`·` の後のヒントは、保存されている認証情報によって異なります。1 つ目の形式は、キーの設定を解除した後に保存済みの `/login` が代わりに使われる場合に表示され、2 つ目の形式は、キーが唯一の認証情報である場合に表示されます。

1027 1037 

1028環境変数は `/login` より優先されるため、シェルプロファイルでエクスポートされたキーまたは `.env` ファイルから読み込まれたキーは、動作する Pro または Max サブスクリプションがある場合でも使用されます。非対話モード(`-p`)では、キーが存在する場合は常に使用されます。1038環境変数は `/login` よりも優先されるため、シェルプロファイルでエクスポートされたキーや `.env` ファイルから読み込まれたキーは、有効な Pro または Max サブスクリプションがある場合でも使用されます。非対話モード(`-p`)では、キーが存在すれば常にそれが使用されます。

1029 1039 

1030**対応方法:**1040**対処方法:**

1031 1041 

1032* 現在のシェルで `ANTHROPIC_API_KEY` をアンセットし、シェルプロファイルから削除してから、`claude` を再起動します1042* 現在のシェルで `ANTHROPIC_API_KEY` の設定を解除してシェルプロファイルから削除し、`claude` を再起動します

1033* メッセージが `Update or unset` と言う場合、フォールバックする保存されたログインがありません。キーをアンセットして `/login` を実行するか、アクティブな Console オーガニゼーションからのキーに置き換えます1043* メッセージに `Update or unset` と表示される場合は、代わりに使える保存済みのログインがありません。キーの設定を解除して `/login` を実行するか、有効な Console 組織のキーに置き換えます。

1034* その後 `/status` を実行して、アクティブな認証情報がサブスクリプションであることを確認します1044* その後 `/status` を実行して、有効な認証情報がサブスクリプションであることを確認します

1035* 環境変数が設定されておらず、エラーが続く場合は、サポートに連絡するか、別のアカウントでサインインしてください1045* 環境変数が設定されていないのにエラーが続く場合は、サポートに問い合わせるか、別のアカウントでサインインしてください。

1036 1046 

1037<h3 id="your-organization-has-disabled-api-key-authentication">1047<h3 id="your-organization-has-disabled-api-key-authentication">

1038 オーガニゼーションが API キー認証を無効にしました1048 組織で API キー認証が無効化されている

1039</h3>1049</h3>

1040 1050 

1041このメッセージには Claude Code v2.1.169 以降が必要です。Console オーガニゼーションの管理者が API キー認証をオフにしたため、API は Claude Code が送信しているキーを拒否します。`·` の後の復旧ヒントは、キーがどこから来たかによって異なります:1051このメッセージには Claude Code v2.1.169 以降が必要です。Console 組織の管理者が API キー認証をオフにしているため、API は Claude Code が送信しているキーを拒否します。`·` の後の復旧のヒントは、キーの取得元によって異なります。

1042 1052 

1043```text theme={null}1053```text theme={null}

1044Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account1054Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


1048Your organization has disabled API key authentication · Sign in again with your claude.ai account1058Your organization has disabled API key authentication · Sign in again with your claude.ai account

1049```1059```

1050 1060 

1051最後の形式は Claude Desktop アプリが実行するセッション(Code タブや Cowork など)に表示され、アプリからもう一度サインインします。1061最後の形式は、Code タブや Cowork など Claude Desktop アプリが実行するセッションで表示され、その場合はアプリから再度サインインします。

1052 1062 

1053環境変数と `apiKeyHelper` は `/login` より優先されるため、どちらかがまだキーを供給している間は `/login` を実行するだけでは役に立ちません。[認証の優先順位](/docs/ja/authentication#authentication-precedence) を参照してください。1063環境変数と `apiKeyHelper` は `/login` よりも優先されるため、どちらかがまだキーを提供している間は、`/login` を実行するだけでは解決しません。[認証の優先順位](/docs/ja/authentication#authentication-precedence)を参照してください。

1054 1064 

1055**対応方法:**1065**対処方法:**

1056 1066 

1057* メッセージが `ANTHROPIC_API_KEY` に名前を付ける場合は、現在のシェルでアンセットし、シェルプロファイルまたは `.env` ファイルから削除してから、`claude` を再起動します1067* メッセージに `ANTHROPIC_API_KEY` が示されている場合は、現在のシェルで設定を解除し、シェルプロファイルまたは `.env` ファイルから削除してから、`claude` を再起動します

1058* メッセージが `apiKeyHelper` に名前を付ける場合は、`settings.json` から [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定を削除します1068* メッセージに `apiKeyHelper` が示されている場合は、`settings.json` から [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定を削除します

1059* `/login` を実行して claude.ai アカウントでサインインします1069* `/login` を実行して、claude.ai アカウントでサインインします

1060* その後 `/status` を実行して、アクティブな認証情報が API キーではなくサブスクリプションであることを確認します1070* その後 `/status` を実行して、有効な認証情報が API キーではなくサブスクリプションであることを確認します

1061* 自動化に API キー認証が必要な場合は、オーガニゼーション管理者に Console で再度有効にするよう依頼してください1071* 自動化のために API キー認証が必要な場合は、組織の管理者に Console で再度有効にするよう依頼します

1062 1072 

1063<h3 id="your-organization-has-disabled-claude-subscription-access">1073<h3 id="your-organization-has-disabled-claude-subscription-access">

1064 オーガニゼーションが Claude サブスクリプションアクセスを無効にしました1074 組織で Claude サブスクリプションアクセスが無効化されている

1065</h3>1075</h3>

1066 1076 

1067Claude オーガニゼーションは、サブスクリプションログインで Claude Code にサインインすることを許可していません。同じアカウントで `/login` を再度実行すると、同じエラーが返されます。1077Claude 組織で、サブスクリプションのログインによる Claude Code へのサインインが許可されていません。同じアカウントで `/login` を再度実行しても、同じエラーが返されます。

1068 1078 

1069```text theme={null}1079```text theme={null}

1070Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access1080Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1071```1081```

1072 1082 

1073これはサーバー側のオーガニゼーション設定であるため、ローカル設定、環境変数、または CLI フラグからオーバーライドすることはできません。1083これはサーバー側の組織設定であるため、ローカル設定、環境変数、CLI フラグで上書きすることはできません。

1074 1084 

1075Agent SDK と `-p` 非対話モードは、これを `oauth_org_not_allowed` エラーコードとして表示します。1085Agent SDK と `-p` 非対話モードでは、これは `oauth_org_not_allowed` エラーコードとして表示されます。

1076 1086 

1077**対応方法:**1087**対処方法:**

1078 1088 

1079* 管理者にオーガニゼーションの Claude Code アクセスを有効にするよう依頼してください1089* 管理者に、組織で Claude Code へのアクセスを有効にするよう依頼します

1080* サブスクリプションの代わりに Console API キーで認証します。セットアップについては、[Claude Console 認証](/docs/ja/authentication#claude-console-authentication) を参照してください1090* サブスクリプションの代わりに Console の API キーで認証します。設定方法については、[Claude Console 認証](/docs/ja/authentication#claude-console-authentication)を参照してください。

1081* あなたが管理者で、アクセスを有効にするオプションが表示されない場合は、[Anthropic サポート](https://support.claude.com) に連絡してください1091* 管理者であるにもかかわらずアクセスを有効にするオプションが見当たらない場合は、[Anthropic サポート](https://support.claude.com)に問い合わせてください

1082 1092 

1083<h3 id="routines-are-disabled-by-your-organizations-policy">1093<h3 id="routines-are-disabled-by-your-organizations-policy">

1084 ルーチンはオーガニゼーションのポリシーで無効になっています1094 組織のポリシーによりルーティンが無効化されている

1085</h3>1095</h3>

1086 1096 

1087Team または Enterprise オーガニゼーションの Owner がオーガニゼーションレベルでルーチンをオフにしました。エラーは、[Routines](/docs/ja/routines) UI on claude.ai/code などからルーチンを作成または実行しようとするときに表示されます。Claude Code v2.1.227 以降では、同じ設定が CLI で [`/schedule` も非表示にします](/docs/ja/routines#troubleshooting)。1097Team または Enterprise 組織の Owner が、組織レベルでルーティンをオフにしています。このエラーは、claude.ai/code の [Routines](/docs/ja/routines) UI などからルーティンを作成または実行しようとしたときに表示されます。Claude Code v2.1.227 以降では、同じ設定により CLI の [`/schedule` も非表示になります](/docs/ja/routines#troubleshooting)。

1088 1098 

1089```text theme={null}1099```text theme={null}

1090Routines are disabled by your organization's policy.1100Routines are disabled by your organization's policy.

1091```1101```

1092 1102 

1093これはサーバー側の設定であるため、ローカル設定、環境変数、または CLI フラグからオーバーライドすることはできません。1103これはサーバー側の設定であるため、ローカル設定、環境変数、CLI フラグで上書きすることはできません。

1094 1104 

1095**対応方法:**1105**対処方法:**

1096 1106 

1097* オーガニゼーションの Owner に [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で **Routines** トグルを有効にするよう依頼してください1107* 組織の Owner に、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で **Routines** トグルを有効にするよう依頼します

1098* オーガニゼーションレベルのルーチンを必要としない 1 回限りのスケジュール作業については、[スケジュール済みタスク](/docs/ja/scheduled-tasks) を参照してください1108* 組織レベルのルーティンを必要としない単発のスケジュール作業については、[スケジュールタスク](/docs/ja/scheduled-tasks)を参照してください

1099 1109 

1100<h3 id="remote-control-requires-the-anthropic-api">1110<h3 id="remote-control-requires-the-anthropic-api">

1101 Remote Control には Anthropic API が必要です1111 Remote Control には Anthropic API が必要

1102</h3>1112</h3>

1103 1113 

1104セッションが Anthropic API に直接通信していないため、[Remote Control](/docs/ja/remote-control) が必要とします。1114セッションが Anthropic API と直接通信していません。[Remote Control](/docs/ja/remote-control) にはこれが必要です。

1105 1115 

1106```text theme={null}1116```text theme={null}

1107Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.1117Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.

1108```1118```

1109 1119 

11102 番目の文は、セッションを Anthropic API から遠ざけた原因を説明します。v2.1.219 より前では、メッセージは最初の文だけでした。原因によって、メッセージは以下に名前を付けます:11202 つ目の文では、何がセッションを Anthropic API 以外にルーティングしたかを説明します。v2.1.219 より前では、メッセージは 1 つ目の文のみでした。原因に応じて、メッセージには次のものが示されます。

1111 1121 

1112* `CLAUDE_CODE_USE_*` プロバイダー変数。[Amazon Bedrock](/docs/ja/amazon-bedrock) の `CLAUDE_CODE_USE_BEDROCK` または [Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) の `CLAUDE_CODE_USE_VERTEX` など1122* `CLAUDE_CODE_USE_*` プロバイダー変数。たとえば [Amazon Bedrock](/docs/ja/amazon-bedrock) の場合は `CLAUDE_CODE_USE_BEDROCK`、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) の場合は `CLAUDE_CODE_USE_VERTEX`

1113* [`ANTHROPIC_BASE_URL`](/docs/ja/env-vars) が `api.anthropic.com` 以外のホストを指しています。[LLM ゲートウェイ](/docs/ja/llm-gateway) またはプロキシなど。claude.ai でサインインしている場合でも。v2.1.196 より前では、カスタムベース URL は Remote Control をブロックしませんでした1123* [LLM ゲートウェイ](/docs/ja/llm-gateway)やプロキシなど、`api.anthropic.com` 以外のホストを指す [`ANTHROPIC_BASE_URL`](/docs/ja/env-vars)。claude.ai でサインインしている場合も含みます。v2.1.196 より前では、カスタムのベース URL は Remote Control をブロックしませんでした

1114* `ANTHROPIC_UNIX_SOCKET` が設定されているため、セッションは `api.anthropic.com` ではなくローカルソケットを通じてリクエストを送信します1124* `ANTHROPIC_UNIX_SOCKET` が設定されているため、セッションが `api.anthropic.com` ではなくローカルソケット経由でリクエストを送信している

1115* `/login` を通じた enterprise [クラウドゲートウェイ](/docs/ja/claude-apps-gateway) サインイン。Remote Control をサポートしておらず、アンセットする変数がありません1125* `/login` で行ったエンタープライズ[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)のサインイン。これは Remote Control をサポートしておらず、解除する変数もありません

1116 1126 

1117**対応方法:**1127**対処方法:**

1118 1128 

1119* メッセージが名前を付ける変数(`CLAUDE_CODE_USE_BEDROCK` または `ANTHROPIC_BASE_URL` など)をアンセットし、セッションを再起動するか、Anthropic API に直接通信するセッションから Remote Control を起動します1129* `CLAUDE_CODE_USE_BEDROCK` や `ANTHROPIC_BASE_URL` など、メッセージが示す変数の設定を解除してセッションを再起動するか、Anthropic API と直接通信するセッションから Remote Control を開始します

1120* 変数がシェルで設定されていない場合は、[設定ファイル](/docs/ja/settings#where-settings-live) の `env` キーを確認してください。これはすべてのセッションに環境変数を適用します1130* シェルで変数が設定されていない場合は、すべてのセッションに環境変数を適用する[設定ファイル](/docs/ja/settings#where-settings-live)の `env` キーを確認します

1121* この他の Remote Control スタートアップメッセージについては、[Remote Control のトラブルシューティング](/docs/ja/remote-control#troubleshooting) を参照してください1131* このメッセージおよびその他の Remote Control 起動時のメッセージについては、[Remote Control のトラブルシューティング](/docs/ja/remote-control#troubleshooting)を参照してください

1122 1132 

1123<h3 id="remote-control-couldnt-refresh-your-login">1133<h3 id="remote-control-couldnt-refresh-your-login">

1124 Remote Control がログインを更新できませんでした1134 Remote Control がログインを更新できなかった

1125</h3>1135</h3>

1126 1136 

1127Claude Code は、保存された claude.ai ログインを使用して取得および更新する短命の認証情報で、ライブ [Remote Control](/docs/ja/remote-control) 接続を実行します。claude.ai がそのログインの受け入れを停止するか、Claude Code に保存されたログインが残っていない場合、Claude Code は Remote Control を停止し、再度サインインするよう求めます。どちらの失敗も、Claude Code がまだ接続しているときまたは後で認証情報を更新するときに発生する可能性があります。1137Claude Code は、保存された claude.ai のログインを使って取得・更新する短期間有効な認証情報で、[Remote Control](/docs/ja/remote-control) の接続を維持します。claude.ai がそのログインを受け付けなくなった場合や、Claude Code に保存済みのログインが残っていない場合、Claude Code は Remote Control を停止し、再度サインインする必要があります。どちらの失敗も、Claude Code がまだ接続中のときにも、後で認証情報を更新するときにも発生する可能性があります。

1128 1138 

1129Claude Code がログインサービスに保存されたログインの更新を要求し、応答がない場合、Remote Control を実行し続け、接続の現在の認証情報がまだ有効な間に更新を再試行します。Claude Code がログインサービスに到達できない、リクエストがタイムアウトする、またはサービスがログインを拒否せずに失敗する場合、更新は応答を取得しません。ログインサービスがその認証情報の有効期限が切れるときにまだ応答していない場合、Claude Code は Remote Control を停止し、`OAuth token refresh failed` を報告します。1139Claude Code がログインサービスに保存済みログインの更新を要求して応答が得られない場合、Remote Control を実行し続け、接続の現在の認証情報がまだ有効な間に更新を再試行します。Claude Code がログインサービスに到達できない場合、リクエストがタイムアウトした場合、またはサービスがログインを拒否せずに失敗した場合、更新の応答は得られません。その認証情報の有効期限が切れてもログインサービスが応答しない場合、Claude Code は Remote Control を停止し、`OAuth token refresh failed` を報告します。

1130 1140 

1131Claude Code が Remote Control を停止すると、警告と `Remote Control disconnected` で始まるトランスクリプト行に理由が表示されます。ローカルセッションは Remote Control なしで実行し続けます。このセクションでは、これらの行をカバーしています:1141Claude Code が Remote Control を停止すると、警告と、`Remote Control disconnected` で始まるトランスクリプトの行に理由が表示されます。ローカルセッションは Remote Control なしで実行を続けます。このセクションでは次の行を扱います。

1132 1142 

1133```text theme={null}1143```text theme={null}

1134Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control1144Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control


1140Remote Control disconnected — Signed out of Claude — run /login, then /remote-control1150Remote Control disconnected — Signed out of Claude — run /login, then /remote-control

1141```1151```

1142 1152 

1143Claude Code はメッセージの中央に原因に名前を付けます:1153Claude Code はメッセージの中間部分で原因を示します。

1144 1154 

1145* ` Claude.ai login expired` および `Claude.ai login was rejected`:claude.ai はもはや保存されたログイントークンを受け入れません。有効期限が切れたか取り消されたため1155* `Claude.ai login expired` と `Claude.ai login was rejected`: 保存されたログイントークンの有効期限が切れたか失効したため、claude.ai がそのトークンを受け付けなくなった

1146* ` OAuth token unavailable`:接続の認証情報が更新期限に達したときに、Claude Code に保存されたログイントークンがありませんでした1156* `OAuth token unavailable`: 接続の認証情報の更新時期が来たときに、Claude Code に保存済みのログイントークンがなかった

1147* ` OAuth token refresh failed`:claude.ai が Claude Code が再接続しているときに保存されたログイントークンを拒否し、トークンの更新は新しいものを生成しませんでした1157* `OAuth token refresh failed`: Claude Code の再接続中に claude.ai が保存済みのログイントークンを拒否し、トークンを更新しても新しいトークンが得られなかった

1148* ` JWT refresh failed: no OAuth token`:Claude Code は更新するための保存されたログイントークンを見つけませんでした1158* `JWT refresh failed: no OAuth token`: Claude Code が更新に使用する保存済みのログイントークンを見つけられなかった

1149* ` Signed out of Claude`:このマシンで、たとえば別のターミナルで `/logout` を実行してサインアウトしたため、Claude Code は接続を更新するための保存されたログインが残っていません1159* `Signed out of Claude`: 別のターミナルで `/logout` を実行するなどして、このマシンでサインアウトしたため、Claude Code に接続の更新に使える保存済みのログインが残っていない

1150 1160 

1151**対応方法:**1161**対処方法:**

1152 1162 

1153* `/login` を実行して再度サインインします1163* `/login` を実行して再度サインインします

1154* `/remote-control` を実行してセッションを再接続します。` run /login to restore Remote Control` で終わるメッセージはこのステップを必要としません。Claude Code はサインイン後に自動的に再接続します。1164* `/remote-control` を実行してセッションを再接続します。`run /login to restore Remote Control` で終わるメッセージでは、この手順は不要です。サインインすると Claude Code が自動的に再接続します。

1155 1165 

1156v2.1.224 より前では、`OAuth token refresh failed — run /login to re-authenticate` は `OAuth token refresh failed — re-authenticate, then re-enable Remote Control` と読み、`JWT refresh failed: no OAuth token — run /login` は `no OAuth token available for recovery (code <N>)` と読みました。` Claude.ai login expired`、`Claude.ai login was rejected`、および `OAuth token unavailable` メッセージは v2.1.225 で追加されました。1166v2.1.224 より前では、`OAuth token refresh failed — run /login to re-authenticate` は `OAuth token refresh failed — re-authenticate, then re-enable Remote Control` と表示され、`JWT refresh failed: no OAuth token — run /login` は `no OAuth token available for recovery (code <N>)` と表示されていました。`Claude.ai login expired`、`Claude.ai login was rejected`、`OAuth token unavailable` の各メッセージは v2.1.225 で追加されました。

1157 1167 

1158v2.1.238 より前では、Claude Code は現在 `Signed out of Claude` と言うケースを `JWT refresh failed: no OAuth token — run /login` として報告し、1 つのログイン更新が応答を取得しないとすぐに Remote Control を停止しました。`Claude.ai login expired — run /login to restore Remote Control` で。1168v2.1.238 より前では、現在 `Signed out of Claude` と表示されるケースを Claude Code は `JWT refresh failed: no OAuth token — run /login` として報告し、ログインの更新で一度でも応答が得られないとすぐに `Claude.ai login expired — run /login to restore Remote Control` で Remote Control を停止していました。

1159 1169 

1160<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1170<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1161 サインイン済みアカウントが変更されたため Remote Control が停止しました1171 サインイン中のアカウントが変わったため Remote Control が停止した

1162</h3>1172</h3>

1163 1173 

1164Claude Code は、このマシンで別の claude.ai アカウントまたはオーガニゼーションにサインインしたときに、[Remote Control](/docs/ja/remote-control) セッション中にこの行を表示します。別のターミナルで `/login` を実行するなど、Claude Code セッションの外でスイッチを作成しました。1174[Remote Control](/docs/ja/remote-control) セッション中に、このマシンで別の claude.ai アカウントまたは組織にサインインすると、Claude Code にこの行が表示されます。この切り替えは、別のターミナルで `/login` を実行するなど、Claude Code セッションの外部で行われたものです。

1165 1175 

1166`/login` でサインインしている間に開始した Remote Control セッションは、その時点でサインインしていた claude.ai アカウントとオーガニゼーションに属しています。1176`/login` でサインインした状態で開始した Remote Control セッションは、その時点でサインインしていた claude.ai アカウントと組織に属します。

1167 1177 

1168```text theme={null}1178```text theme={null}

1169Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control1179Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control

1170```1180```

1171 1181 

1172Claude Code は claude.ai がアカウントまたはオーガニゼーションが変更されたことを確認するとすぐに Remote Control セッションを停止します。ローカルセッションは Remote Control なしで実行し続けます。1182Claude Code は、アカウントまたは組織が変わったことを claude.ai が確認するとすぐに Remote Control セッションを停止します。ローカルセッションは Remote Control なしで実行を続けます。

1173 1183 

1174**対応方法:**1184**対処方法:**

1175 1185 

1176* `/remote-control` を実行して、現在のアカウントまたはオーガニゼーションの下で新しい Remote Control セッションを開始します1186* `/remote-control` を実行して、現在のアカウントまたは組織で新しい Remote Control セッションを開始します

1177* 戻すには、`/login` を実行して前のアカウントまたはオーガニゼーションに再度サインインします。その後、`/remote-control` を実行します。1187* 元に戻すには、`/login` を実行して以前のアカウントまたは組織に再度サインインします。その後 `/remote-control` を実行します。

1178 1188 

1179v2.1.234 より前では、Claude Code は Claude Code セッションの外でアカウントまたはオーガニゼーションを切り替えたときに気付きませんでした。Claude Code は Remote Control セッションを接続したままにしておきました。Remote Control サーバーへの後のリクエストが `Remote Control server rejected the request (HTTP 404)` で失敗するまで。その失敗はスイッチの数時間後に来る可能性があります。1189v2.1.234 より前では、Claude Code セッションの外部で別のアカウントまたは組織に切り替えても、Claude Code はそれを検知しませんでした。Claude Code は、後続の Remote Control サーバーへのリクエストが `Remote Control server rejected the request (HTTP 404)` で失敗するまで、Remote Control セッションを接続したままにしていました。この失敗は、切り替えから数時間後に発生することもありました。

1180 1190 

1181<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1191<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1182 セッションを実行しているアプリがサインアウトしたか、アカウントを切り替えたため Remote Control が停止しました1192 セッションを実行しているアプリがサインアウトまたはアカウントを切り替えたため Remote Control が停止した

1183</h3>1193</h3>

1184 1194 

1185Claude デスクトップアプリまたは IDE がセッションをホストしている場合、Claude Code は `/login` ではなくそのアプリからログイントークンを取得します。claude.ai がそのトークンを拒否すると、Claude Code はアプリに新しいものを要求します。アプリが、サインアウトしたか、別の Claude アカウントにサインインしたと答える場合、Claude Code は [Remote Control](/docs/ja/remote-control) セッションを終了し、アプリに次のいずれかの行を送信します:1195Claude デスクトップアプリまたは IDE がセッションをホストしている場合、Claude Code は `/login` ではなくそのアプリからログイントークンを取得します。claude.ai がそのトークンを拒否すると、Claude Code はアプリに新しいトークンを要求します。アプリがサインアウトしている、または別の Claude アカウントにサインインしていると応答した場合、Claude Code は [Remote Control](/docs/ja/remote-control) セッションを終了し、アプリに次のいずれかの行を送信します。

1186 1196 

1187```text theme={null}1197```text theme={null}

1188Remote Control stopped — the app running this session is now signed in to a different Claude account1198Remote Control stopped — the app running this session is now signed in to a different Claude account

1189Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on1199Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on

1190```1200```

1191 1201 

1192ローカルセッションは Remote Control なしで実行し続けます。1202ローカルセッションは Remote Control なしで実行を続けます。

1193 1203 

1194**対応方法:**1204**対処方法:**

1195 1205 

1196* アプリがサインアウトしている場合は、再度サインインしてから、アプリで Remote Control をオンに戻します1206* アプリがサインアウトしている場合は、アプリに再度サインインしてから、アプリで Remote Control をオンに戻します

1197* アプリがアカウントを切り替えた場合、Claude Code は終了したセッションを新しいアカウントの下で続行できません。そのアカウントの下で新しい Remote Control セッションを開始します。1207* アプリがアカウントを切り替えた場合、Claude Code は終了したセッションを新しいアカウントで続行できません。そのアカウントで新しい Remote Control セッションを開始してください。

1198 1208 

1199v2.1.238 より前では、Claude Code は両方のケースで [Remote Control がログインを更新できませんでした](#remote-control-couldnt-refresh-your-login) の下にリストされている `run /login` メッセージをアプリに送信していました。1209v2.1.238 より前では、どちらの場合も、Claude Code は [Remote Control がログインを更新できなかった](#remote-control-couldnt-refresh-your-login)に記載されている `run /login` のメッセージをアプリに送信していました。

1200 1210 

1201<h3 id="oauth-token-revoked-or-expired">1211<h3 id="oauth-token-revoked-or-expired">

1202 OAuth トークンが取り消されたか、有効期限が切れています1212 OAuth トークンが失効または期限切れ

1203</h3>1213</h3>

1204 1214 

1205保存されたログインは有効ではなくなりました。取り消されたトークンは、どこからでもサインアウトしたか、管理者がアクセスを削除したことを意味します。有効期限が切れたトークンは、自動更新がセッション中に失敗したことを意味します。1215保存されたログインが無効になっています。トークンの失効は、すべての場所でサインアウトしたか、管理者がアクセスを削除したことを意味します。トークンの期限切れは、セッション中に自動更新が失敗したことを意味します。

1206 1216 

1207どちらのメッセージも、Claude Code が送信したリクエストに対して API が返した拒否を報告します。保存されたログインが失敗した更新後に既にクリアされている場合、代わりに [ログインの有効期限が切れています](#login-expired) が表示されます。[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) で長命トークンで認証する場合、そのトークンが有効期限切れまたは取り消されたときに同じメッセージが表示されます。1217どちらのメッセージも、Claude Code が送信したリクエストに対して API が返した拒否を報告するものです。更新の失敗後に保存済みのログインがすでに消去されている場合は、代わりに[ログインの有効期限切れ](#login-expired)が表示されます。[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) の長期間有効なトークンで認証している場合も、そのトークンの有効期限が切れるか失効すると同じメッセージが表示されます。

1208 1218 

1209```text theme={null}1219```text theme={null}

1210OAuth token revoked · Please run /login1220OAuth token revoked · Please run /login

1211Please run /login · API Error: 401 OAuth token has expired ...1221Please run /login · API Error: 401 OAuth token has expired ...

1212```1222```

1213 1223 

1214**対応方法:**1224**対処方法:**

1215 1225 

1216* `/login` を実行して再度サインインします1226* `/login` を実行して再度サインインします

1217* ` CLAUDE_CODE_OAUTH_TOKEN` 環境変数で認証する場合、Claude Code はリクエストが 401 で失敗した後、保存されたログインのトークンに切り替えるのではなく、設定した値を送信し続けます。[`/status`](/docs/ja/commands) はこの認証情報を `Auth token` 行として表示します。`CLAUDE_CODE_OAUTH_TOKEN` を読みます。[`claude setup-token`](/docs/ja/authentication#generate-a-long-lived-token) で新しいトークンを生成して再起動するか、変数をアンセットして `/login` を実行します。v2.1.225 より前では、Claude Code はセッション中に変数の値を保存されたログインからの短命アクセストークンに置き換える可能性があり、そのトークンの有効期限が切れるとセッションは再び 401 エラーで失敗しました。1227* `CLAUDE_CODE_OAUTH_TOKEN` 環境変数で認証している場合、リクエストが 401 で失敗した後も、Claude Code は保存されたログインのトークンに切り替えるのではなく、設定された値を送信し続けます。[`/status`](/docs/ja/commands) では、この認証情報は `CLAUDE_CODE_OAUTH_TOKEN` と表示される `Auth token` 行として示されます。[`claude setup-token`](/docs/ja/authentication#generate-a-long-lived-token) で新しいトークンを生成してそれを使って再起動するか、変数の設定を解除して `/login` を実行します。v2.1.225 より前では、Claude Code がセッション中に変数の値を保存済みログインの短期間有効なアクセストークンに置き換えることがあり、そのトークンの有効期限が切れるとセッションが再び 401 エラーで失敗していました。

1218* 起動全体でログインを繰り返し求められる場合は、[トラブルシューティング](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired) のシステムクロック確認と macOS 認証情報ストレージ復旧手順を参照してください1228* 起動するたびにログインを求められる場合は、[トラブルシューティング](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired)のシステムクロックの確認と macOS の認証情報ストレージの復旧手順を参照してください

1219* `403 Forbidden` や OAuth ブラウザの問題を含む他の失敗については、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication) を参照してください1229* `403 Forbidden` や OAuth のブラウザの問題など、その他の失敗については、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication)を参照してください

1220 1230 

1221<h3 id="api-error-401-invalid-authentication-credentials">1231<h3 id="api-error-401-invalid-authentication-credentials">

1222 API エラー:401 無効な認証認証情報1232 API Error: 401 Invalid authentication credentials

1223</h3>1233</h3>

1224 1234 

1225API は認証情報の形式を認識しましたが、その背後にあるアカウントまたはオーガニゼーションを拒否しました。Anthropic は、認証情報が最近取り消されたとき、オーガニゼーションが無効になったか、アクセスが削除されたとき、またはアカウント自体が非アクティブ化されたときにこのメッセージを返します。有効期限切れトークンが原因ではありません。認証情報は保存されたログインまたは承認された `ANTHROPIC_API_KEY` である可能性があり、修正は異なるため、まず `/status` を実行してどちらがアクティブであるかを確認してください。1235API は認証情報の形式を認識しましたが、その背後にあるアカウントまたは組織を拒否しました。Anthropic は、認証情報が最近失効した場合、組織が無効化されたかユーザーのアクセスを削除した場合、またはアカウント自体が無効化された場合にこのメッセージを返します。したがって、トークンの期限切れは原因ではありません。認証情報は保存されたログインの場合もあれば、承認済みの `ANTHROPIC_API_KEY` の場合もあり、修正方法が異なるため、まず `/status` を実行してどちらが有効かを確認してください。

1226 1236 

1227```text theme={null}1237```text theme={null}

1228Please run /login · API Error: 401 Invalid authentication credentials1238Please run /login · API Error: 401 Invalid authentication credentials

1229```1239```

1230 1240 

1231**対応方法:**1241**対処方法:**

1232 1242 

1233* `/status` が `API key` 行を表示し、使用中でないとマークされていない場合、承認された [`ANTHROPIC_API_KEY`](/docs/ja/authentication#authentication-precedence) がアクティブな認証情報であり、ログインより優先されるため、`/login` はそれを置き換えません。Claude Console でキーをローテーションするか、`unset ANTHROPIC_API_KEY` を実行するか、PowerShell で `Remove-Item Env:ANTHROPIC_API_KEY` を実行してサブスクリプションにフォールバックします。1243* `/status` に使用されていないと示されていない `API key` 行が表示される場合、承認済みの [`ANTHROPIC_API_KEY`](/docs/ja/authentication#authentication-precedence) が有効な認証情報であり、ログインよりも優先されるため、`/login` では置き換えられません。Claude Console でキーをローテーションするか、`unset ANTHROPIC_API_KEY`(PowerShell では `Remove-Item Env:ANTHROPIC_API_KEY`)を実行してサブスクリプションに切り替えます。

1234* `/status` がログインのみを表示する場合は、`/login` を 1 回実行します。認証情報が取り消された場合、新しいログインがそれを置き換えます。1244* `/status` にログインのみが表示される場合は、`/login` を 1 回実行します。認証情報が失効していた場合は、新しいログインで置き換えられます。

1235* 同じログインアカウントで同じメッセージが返される場合、アカウントまたはオーガニゼーションはアクティブではなくなりました。`/status` が報告するアカウントとオーガニゼーションを確認し、オーガニゼーション管理者にアクセスを復元するよう依頼してください。1245* 同じログインアカウントで同じメッセージが再び表示される場合は、アカウントまたは組織がアクティブではなくなっています。`/status` が報告するアカウントと組織を確認し、組織の管理者にアクセスの復元を依頼してください。

1236* [`ANTHROPIC_BASE_URL`](/docs/ja/env-vars) が [LLM ゲートウェイ](/docs/ja/llm-gateway) を指している場合、`401` の後のテキストは Anthropic のメッセージではなくゲートウェイのメッセージであり、`/login` はそれを変更しません。代わりにゲートウェイが期待する認証情報を修正してください。1246* [`ANTHROPIC_BASE_URL`](/docs/ja/env-vars) が [LLM ゲートウェイ](/docs/ja/llm-gateway)を指している場合、`401` の後のテキストは Anthropic ではなくゲートウェイのメッセージであり、`/login` では変わりません。代わりに、ゲートウェイが想定している認証情報を修正してください。

1237 1247 

1238<h3 id="login-expired">1248<h3 id="login-expired">

1239 ログインの有効期限が切れています1249 ログインの有効期限切れ

1240</h3>1250</h3>

1241 1251 

1242Claude Code は保存された claude.ai または Claude Console ログインを更新しようとしましたが、OAuth サービスは保存された更新トークンを拒否したため、Claude Code は保存された認証情報をクリアしました。その後、各モデルリクエストは、`/login` のみが新しい認証情報を作成できるため、API に到達する前にローカルで停止します。1252Claude Code は保存された claude.ai のログインを更新しようとしましたが、OAuth サービスが保存されたリフレッシュトークンを拒否したため、Claude Code は保存された認証情報を消去しました。それ以降、新しい認証情報を作成できるのは `/login` だけであるため、各モデルリクエストは API に到達する前にローカルでこのメッセージとともに停止します。

1243 1253 

1244v2.1.206 より前では、Claude Code はモデルリクエストを環境に残っている認証情報で送信し、すべてのモデルは [選択されたモデルに問題があります](#theres-an-issue-with-the-selected-model) または 401 で失敗しました。サインインを求めるプロンプトの代わりに。1254v2.1.206 より前では、Claude Code は環境に残っている認証情報を使ってモデルリクエストを送信し、その結果、サインインを促す代わりに、すべてのモデルが[選択したモデルに問題がある](#theres-an-issue-with-the-selected-model)または 401 で失敗していました。

1245 1255 

1246```text theme={null}1256```text theme={null}

1247Login expired · Please run /login1257Login expired · Please run /login

1248```1258```

1249 1259 

1250[非対話モード](/docs/ja/headless)(`-p`)および [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のように読み、構造化エラーコードは `authentication_failed` です:1260[非対話モード](/docs/ja/headless)(`-p`)と [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のようになり、構造化エラーコードは `authentication_failed` です。

1251 1261 

1252```text theme={null}1262```text theme={null}

1253Failed to authenticate: OAuth session expired and could not be refreshed1263Failed to authenticate: OAuth session expired and could not be refreshed

1254```1264```

1255 1265 

1256これは [OAuth トークンが取り消されたか、有効期限が切れています](#oauth-token-revoked-or-expired) と同じ状態ではありません。これらのメッセージは API が返した拒否を報告します。Claude Code 自体は、既に更新に失敗したログインに対して `Login expired` を生成するため、リクエストを送信しません。更新が失敗する理由がログインが古いのではなくアカウント自体が中断されている場合、Claude Code は代わりに [アカウントが保留中です](#your-account-is-on-hold) を表示します。1266これは [OAuth トークンが失効または期限切れ](#oauth-token-revoked-or-expired)とは異なる状態です。そちらのメッセージは API が返した拒否を報告するものです。`Login expired` は、すでに更新に失敗したログインに対して Claude Code 自身が生成するものであるため、リクエストは送信されません。ログインが古いのではなくアカウント自体が停止されているために更新が失敗した場合、Claude Code は代わりに[アカウントが保留中](#your-account-is-on-hold)を表示します。

1257 1267 

1258API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティプロバイダーで認証されたセッションは、保存されたログインを使用せず、このメッセージを表示しません。1268API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティのプロバイダーで認証されたセッションは、保存されたログインを使用しないため、このメッセージが表示されることはありません。

1259 1269 

1260リクエストが失敗する前にこの状態を確認できます。[`/status`](/docs/ja/commands) は `Login` 行を表示します。`Expired — log in again` を読み、保存されている有効期限切れログインのオーガニゼーションとメールを読みます。行は、保存されたログインがアクティブな認証情報であり、もはや更新できない場合にのみ表示されます。別の方法で認証されたセッションは、有効期限切れログインが保存されたままであっても、行を表示しません。v2.1.210 より前では、`/status` はこの状態で、クリアされた認証情報がそれを報告するものが何もないため、ログインが存在したことを示していません。1270リクエストが失敗する前にこの状態を確認できます。[`/status`](/docs/ja/commands) には、`Expired — log in again` と表示される `Login` 行と、期限切れのログインについて保存されている組織とメールアドレスが表示されます。この行は、保存されたログインが有効な認証情報であり、かつもう更新できない場合にのみ表示されます。別の方法で認証されたセッションでは、期限切れのログインが保存されたままであっても、この行は表示されません。v2.1.210 より前では、消去された認証情報から報告できる情報がなかったため、この状態では `/status` にログインが存在したことを示すものは何も表示されませんでした。

1261 1271 

1262**対応方法:**1272**対処方法:**

1263 1273 

1264* `/login` を実行して再度サインインします。サインインせずに再試行すると、すべてのリクエストで同じメッセージが表示されます。1274* `/login` を実行して再度サインインします。サインインせずに再試行すると、すべてのリクエストで同じメッセージが表示されます。

1265* 非対話モードでは、同じ環境で `claude` を実行し、`/login` を完了してから、コマンドを再実行します。対話的にサインインできない自動化の場合は、`ANTHROPIC_API_KEY` で認証するか、[`claude setup-token` で長命トークンを生成します](/docs/ja/authentication#generate-a-long-lived-token)。1275* 別の Claude Code ウィンドウで claude.ai アカウントでサインインする場合、このセッションがいつそのログインを自動的に使い始めるかについては、[ログインしていない](#not-logged-in)を参照してください。

1266* サインインが失敗し続ける場合は、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication) を参照してください1276* 非対話モードでは、同じ環境で `claude` を実行して `/login` を完了してから、コマンドを再実行します。対話的にサインインできない自動化では、`ANTHROPIC_API_KEY` で認証するか、[`claude setup-token` で長期間有効なトークンを生成](/docs/ja/authentication#generate-a-long-lived-token)します。

1277* サインインが失敗し続ける場合は、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication)を参照してください

1267 1278 

1268<h3 id="could-not-refresh-your-login">1279<h3 id="could-not-refresh-your-login">

1269 ログインを更新できませんでした。別の Claude Code プロセスがそれを更新しています1280 別の Claude Code プロセスが更新中のためログインを更新できなかった

1270</h3>1281</h3>

1271 1282 

1272このメッセージはログインが拒否されたことを意味しません。保存された claude.ai ログインが有効期限切れになり、更新が必要でした。同じマシン上の別の Claude Code プロセスが共有更新ロックを保持していたか、終了してそれを残していたため、更新はこのセッションが待機している間に進行しませんでした。Claude Code はリクエストを送信する前に停止します:1283このメッセージは、ログインが拒否されたことを意味するものではありません。保存された claude.ai のログインの有効期限が切れており、更新が必要でした。同じマシン上の別の Claude Code プロセスが共有の更新ロックを保持していたか、ロックを残したまま終了しており、このセッションが待機している間に更新が進みませんでした。Claude Code は送信前にリクエストを停止します。

1273 1284 

1274```text theme={null}1285```text theme={null}

1275Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login1286Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1276```1287```

1277 1288 

1278[非対話モード](/docs/ja/headless)(`-p`)および [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のように読み、構造化エラーコードは `server_error` です:1289[非対話モード](/docs/ja/headless)(`-p`)と [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のようになり、構造化エラーコードは `server_error` です。

1279 1290 

1280```text theme={null}1291```text theme={null}

1281Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1292Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1282```1293```

1283 1294 

1284API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティプロバイダーで認証されたセッションは、保存されたログインを使用せず、このメッセージを表示しません。1295API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティのプロバイダーで認証されたセッションは、保存されたログインを使用しないため、このメッセージが表示されることはありません。

1285 1296 

1286**対応方法:**1297**対処方法:**

1287 1298 

1288* 1 分後に再試行してください。別のプロセスが最初に更新を完了する場合、このセッションは更新されたログインを使用します。1299* 1 分後に再試行します。別のプロセスが先に更新を完了した場合、このセッションは更新されたログインを使用します。

1289* メッセージが返され続ける場合は、他の Claude Code ウィンドウとプロセスを閉じてから、再試行してください。1300* メッセージが繰り返し表示される場合は、他の Claude Code のウィンドウとプロセスを閉じてから再試行します。

1290* 他の Claude Code プロセスが実行されていない状態で返される場合は、`/login` を実行してください。再度サインインすると、更新ロックで待機しません。1301* 他の Claude Code プロセスが実行されていないのにメッセージが表示される場合は、`/login` を実行します。再度サインインする場合は、更新ロックを待機しません。

1291 1302 

1292<h3 id="couldnt-save-your-login">1303<h3 id="couldnt-save-your-login">

1293 ログインを保存できませんでした1304 ログインを保存できなかった

1294</h3>1305</h3>

1295 1306 

1296claude.ai でサインインしましたが、Claude Code はログインを認証情報ストアに保存できなかったため、ログインは完了しませんでした。macOS では、ログインキーチェーンがロックされている場合(スリープまたはアイドル時など)、Claude Code が同じセッション中に既に認証情報を読み取ったまたは保存した後に発生する可能性があります。1307claude.ai でサインインしましたが、Claude Code がログインを認証情報ストアに保存できなかったため、ログインが完了しませんでした。macOS では、同じセッション中に Claude Code がすでにログインキーチェーンの認証情報を読み取りまたは保存した後に、スリープやアイドル状態などでキーチェーンがロックされると、これが発生することがあります。

1297 1308 

1298```text theme={null}1309```text theme={null}

1299Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.1310Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1300Couldn't save your login. Try logging in again.1311Couldn't save your login. Try logging in again.

1301```1312```

1302 1313 

1303最初の形式は macOS に表示され、2 番目は他の場所に表示されます。一時的な認証情報ストア障害(タイムアウトまたは読み取り不可能なストアなど)は同じメッセージを生成します。13141 つ目の形式は macOS で表示され、2 つ目の形式はそれ以外のすべての環境で表示されます。タイムアウトやストアを読み取れないなど、認証情報ストアの一時的な障害でも同じメッセージが表示されます。

1304 1315 

1305**対応方法:**1316**対処方法:**

1306 1317 

1307* macOS では、ログインキーチェーンのロックを解除してから、`/login` を再度実行します1318* macOS では、ログインキーチェーンのロックを解除してから、`/login` を再度実行します

1308* 他のプラットフォームでは、`/login` を再度実行します1319* その他のプラットフォームでは、`/login` を再度実行します

1309* ログインがまだ保存されない場合は、[ログインしていないか、トークンの有効期限が切れている](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired) を参照してください。キーチェーンのロック解除コマンドと他の認証情報ストレージ復旧手順1320* それでもログインが保存されない場合は、キーチェーンのロック解除コマンドやその他の認証情報ストレージの復旧手順について、[ログインしていない、またはトークンの有効期限切れ](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired)を参照してください

1310 1321 

1311<h3 id="failed-to-start-oauth-callback-server">1322<h3 id="failed-to-start-oauth-callback-server">

1312 OAuth コールバックサーバーを起動できませんでした1323 OAuth コールバックサーバーを起動できなかった

1313</h3>1324</h3>

1314 1325 

1315`/login`、`claude auth login`、または `claude setup-token` がブラウザを通じてサインインするとき、Claude Code は `127.0.0.1` でリッスンポートを開くため、ブラウザはサインイン結果をそれに返すことができます。このメッセージは Claude Code がそのポートを開くことができなかったことを意味し、サインインはブラウザウィンドウまたはログイン URL が表示される前に停止します:1326`/login`、`claude auth login`、または `claude setup-token` がブラウザ経由でサインインする際、Claude Code は `127.0.0.1` でリッスンポートを開き、ブラウザがサインイン結果を Claude Code に返せるようにします。このメッセージは Claude Code がそのポートを開けなかったことを意味し、ブラウザウィンドウやログイン URL が表示される前にサインインが停止します。

1316 1327 

1317```text theme={null}1328```text theme={null}

1318Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1329Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1319```1330```

1320 1331 

1321メッセージが `Is port 0 in use?` で終わる場合、IPv4 ループバックアドレス `127.0.0.1` でリッスンしようとする試みは完全に失敗しました。失敗はログイン URL が存在する前に発生するため、`Paste code here if prompted` フローは回避策として利用できません。1332メッセージが `Is port 0 in use?` で終わる場合、IPv4 のループバックアドレス `127.0.0.1` でのリッスンの試行そのものが失敗しています。ログイン URL が存在する前に失敗が発生するため、回避策として `Paste code here if prompted` フローを使用することはできません。

1322 1333 

1323**対応方法:**1334**対処方法:**

1324 1335 

1325* ローカルリスナーなしで今すぐサインインするには:claude.ai サブスクリプションを使用する場合は、サインインが機能するマシンで [`claude setup-token`](/docs/ja/authentication#generate-a-long-lived-token) を実行し、それが出力するトークンをこのマシンで `CLAUDE_CODE_OAUTH_TOKEN` として設定します。それ以外の場合は、[Claude Console](https://platform.claude.com/settings/keys) からのキーで `ANTHROPIC_API_KEY` を設定します。[認証の優先順位](/docs/ja/authentication#authentication-precedence) は Claude Code が認証情報を選択する方法を説明しています。1336* ローカルのリスナーを使わずにすぐにサインインするには、claude.ai サブスクリプションを使用している場合は、サインインが機能するマシンで [`claude setup-token`](/docs/ja/authentication#generate-a-long-lived-token) を実行し、出力されたトークンをこのマシンで `CLAUDE_CODE_OAUTH_TOKEN` として設定します。それ以外の場合は、`ANTHROPIC_API_KEY` に [Claude Console](https://platform.claude.com/settings/keys) のキーを設定します。Claude Code が認証情報をどのように選択するかについては、[認証の優先順位](/docs/ja/authentication#authentication-precedence)で説明しています。

1326* このマシンでブラウザサインインを使用する代わりに、Claude Code は `127.0.0.1` でリッスンできる必要があります。サンドボックス内で実行される場合は、サンドボックスのポリシーがローカルポートでのリッスンを許可することを確認してから、`/login` を再度実行します。できるはずなのにまだ失敗する場合は、`/feedback` を実行して、レポートに環境の詳細が含まれるようにしてください。1337* 代わりにこのマシンでブラウザのサインインを使用するには、Claude Code が `127.0.0.1` でリッスンできる必要があります。サンドボックス内で実行している場合は、サンドボックスのポリシーでローカルポートでのリッスンが許可されていることを確認してから、`/login` を再度実行します。リッスンできるはずなのに失敗する場合は、`/feedback` を実行して、レポートに環境の詳細が含まれるようにしてください。

1327 1338 

1328<h3 id="claude-login-not-accepted">1339<h3 id="claude-login-not-accepted">

1329 Claude ログインが受け入れられません1340 Claude のログインが受け付けられなかった

1330</h3>1341</h3>

1331 1342 

1332[クラウドセッション](/docs/ja/claude-code-on-the-web) を開始しようとしましたが、サーバーは 401 で作成を拒否しました。このマシンが送信した Claude ログインを受け入れませんでした。通常、ログインが有効期限切れまたは取り消されたためです。1343[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しようとしましたが、サーバーが 401 でセッションの作成を拒否しました。通常はログインの有効期限切れまたは失効が原因で、サーバーはこのマシンが送信した Claude のログインを受け付けませんでした。

1333 1344 

1334行の最初の部分は、サーバーが 1 つを与える場合はサーバー自身の理由です。それ以外の場合、行は次のように読みます:1345行の最初の部分は、サーバーが理由を示した場合はその理由になります。それ以外の場合、行は次のようになります。

1335 1346 

1336```text theme={null}1347```text theme={null}

1337Claude login not accepted · Run /login, then try again1348Claude login not accepted · Run /login, then try again

1338```1349```

1339 1350 

1340**対応方法:**1351**対処方法:**

1341 1352 

1342* `/login` を実行し、サインインを完了してから、セッションを再度開始します1353* `/login` を実行してサインインを完了してから、セッションを再度開始します

1343 1354 

1344<h3 id="artifacts-need-a-claude-ai-login">1355<h3 id="artifacts-need-a-claude-ai-login">

1345 Artifacts には claude.ai ログインが必要です1356 アーティファクトには claude.ai のログインが必要

1346</h3>1357</h3>

1347 1358 

1348Claude Code は、セッションに artifacts に使用できる claude.ai ログインがないため、[Artifacts](/docs/ja/artifacts) の公開または読み取りを拒否しました。1359セッションにアーティファクトに使用できる claude.ai のログインがないため、Claude Code は[アーティファクト](/docs/ja/artifacts)の公開または読み取りを拒否しました。

1349 1360 

1350メッセージのすべての形式は同じ単語で始まり、その後にセッションの認証方法に応じた救済が続きます。競合する認証情報がない場合は、次のように読みます:1361メッセージはどの形式でも同じ言葉で始まり、その後にセッションの認証方法に応じた対処法が続きます。競合する認証情報がない場合は、次のようになります。

1351 1362 

1352```text theme={null}1363```text theme={null}

1353Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.1364Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1354```1365```

1355 1366 

1356**対応方法:**1367**対処方法:**

1357 1368 

1358* `/login` を実行し、**Claude account with subscription** を選択します。**Anthropic Console account** オプションは claude.ai 認証情報を提供しません。1369* `/login` を実行して **Claude account with subscription** を選択します。**Anthropic Console account** オプションでは claude.ai の認証情報は提供されません。

1359* メッセージが `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定、または前の `/login` で保存された Console キーなど、優先順位を取る認証情報に名前を付ける場合は、メッセージが言う方法でそれを削除してから、`/login` を実行します1370* `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定、以前の `/login` で保存された Console キーなど、優先される認証情報がメッセージに示されている場合は、メッセージに従ってそれを削除してから `/login` を実行します

1360* メッセージがこのリモートセッションがそれを起動したマシンを通じて認証されると言う場合は、そのマシンで claude.ai にサインインしてから、セッションを再接続します1371* このリモートセッションが起動元のマシンを介して認証するとメッセージに示されている場合は、そのマシンで claude.ai にサインインしてから、セッションを再接続します

1361* メッセージが認証情報がセッションのホスト環境によって注入されると言う場合は、そのセッションでそれを変更できません。claude.ai にサインインしているセッションを開始します1372* 認証情報がセッションのホスト環境によって注入されているとメッセージに示されている場合は、そのセッションでは変更できません。claude.ai にサインインしているセッションを開始してください

1362* [可用性](/docs/ja/artifacts#availability) については、プラン、モデルプロバイダー、オーガニゼーションポリシーなど、Artifacts が持つ他の要件を参照してください1373* プラン、モデルプロバイダー、組織のポリシーなど、アーティファクトのその他の要件については、[利用可能性](/docs/ja/artifacts#availability)を参照してください

1363 1374 

1364<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1375<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1365 管理者ポリシーがクラウドゲートウェイサインインを必要とします1376 管理者のポリシーによりクラウドゲートウェイのサインインが必要

1366</h3>1377</h3>

1367 1378 

1368このマシンの管理者の [管理設定](/docs/ja/managed-settings) が [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) を `"gateway"` に設定したか、[`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl) を設定しました。`CLAUDE_CODE_USE_BEDROCK` などの変数を通じてクラウドプロバイダーを選択しない限り、Claude Code は [Claude apps gateway](/docs/ja/claude-apps-gateway) サインインのみを受け入れます。2 つのメッセージのいずれかが表示されます:1379このマシンの管理者の[管理設定](/docs/ja/managed-settings)で、[`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) が `"gateway"` に設定されているか、[`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl) が設定されています。`CLAUDE_CODE_USE_BEDROCK` などの変数でクラウドプロバイダーを選択しない限り、Claude Code は [Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)のサインインのみを受け付けます。次の 2 つのメッセージのいずれかが表示されます。

1369 1380 

1370```text theme={null}1381```text theme={null}

1371Not signed in to the Cloud gateway — run /login.1382Not signed in to the Cloud gateway — run /login.

1372```1383```

1373 1384 

1374セッションにゲートウェイサインインがない場合、モデルリクエストはこのメッセージで失敗します。たとえば、ポリシーがマシンに到達してから `/login` を実行していないため。1385ポリシーがマシンに適用されてから `/login` を実行していないなど、セッションにゲートウェイのサインインがない場合、モデルリクエストはこのメッセージで失敗します。

1375 1386 

1376`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 認証情報も設定されており、管理設定が `forceLoginMethod` を設定している場合、Claude Code は代わりに起動時に次のメッセージで終了します:1387マシンに Anthropic が発行した認証情報もあり、管理設定で `forceLoginMethod` または `forceLoginOrgUUID` が設定されている場合、Claude Code は代わりに起動時に終了します。その認証情報は、`ANTHROPIC_API_KEY` または `ANTHROPIC_AUTH_TOKEN` 変数、`apiKeyHelper` 設定、または以前の Claude Console ログインで保存された API キーである可能性があります。メッセージは次のように始まります。

1377 1388 

1378```text theme={null}1389```text theme={null}

1379Administrator policy requires a Cloud gateway sign-in on this machine; the1390Administrator policy requires a Cloud gateway sign-in on this machine; the


1381ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.1392ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.

1382```1393```

1383 1394 

1384**対応方法:**1395**対処方法:**

1385 1396 

1386* `/login` を実行し、**Cloud gateway** 画面でサインインを完了します1397* `/login` を実行し、**Cloud gateway** 画面でサインインを完了します

1387* スタートアップメッセージについては、設定した `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 設定を削除し、`claude` を起動して `/login` を実行します1398* 起動時のメッセージについては、設定した `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 設定を削除します。保存された Console の API キーを削除するには `claude auth logout` を実行します。これにより、保存された claude.ai のログインも削除されます。`CLAUDE_CODE_USE_*` でクラウドプロバイダーを選択している場合、セッションはサインインなしで開始されます。それ以外の場合は、`claude` を起動して `/login` を実行します

1388* マシンがゲートウェイを必要としないと思われる場合は、それを管理する管理者に、管理設定から `forceLoginMethod` と `forceLoginGatewayUrl` を削除するよう依頼してください1399* マシンでゲートウェイを必須にすべきではないと考える場合は、マシンを管理している管理者に、管理設定から `forceLoginMethod` と `forceLoginGatewayUrl` を削除するよう依頼します

1389 1400 

1390v2.1.265 では、回帰により、API キー、`apiKeyHelper`、またはカスタムヘッダーで認証し、マシンに管理者要件がない一部の LLM ゲートウェイおよびプロキシ設定でも最初のメッセージが表示されました。v2.1.266 以降に更新してください。設定を変更する必要はありません。1401v2.1.265 では、回帰により、マシンに管理者の要件がない場合でも、API キー、`apiKeyHelper`、またはカスタムヘッダーで認証する一部の LLM ゲートウェイおよびプロキシの設定で 1 つ目のメッセージが表示されていました。v2.1.266 以降に更新してください。設定を変更する必要はありません。

1391 1402 

1392v2.1.261 より前では、`forceLoginMethod` を `"gateway"` に設定したマシンでは、Claude Code は古い保存されたログインを使用し、モデルリクエストを失敗させず、設定された環境認証情報を `This machine's managed settings require a first-party login` で報告しました。スタートアップメッセージの代わりに。v2.1.265 より前では、管理設定が `forceLoginGatewayUrl` のみを設定したマシンはゲートウェイサインインを必要とせず、Claude Code はそこで古い認証情報を使用していました。1403v2.1.261 より前では、`forceLoginMethod` を `"gateway"` に設定したマシンで、Claude Code はモデルリクエストを失敗させる代わりに残っている保存済みのログインを使用し、設定された環境の認証情報については起動時のメッセージではなく `This machine's managed settings require a first-party login` を報告していました。v2.1.265 より前では、管理設定で `forceLoginGatewayUrl` のみを設定したマシンではゲートウェイのサインインが必須にならず、Claude Code はそこに残っている認証情報を使用していました。

1393 1404 

1394<h3 id="your-account-is-on-hold">1405<h3 id="your-account-is-on-hold">

1395 アカウントが保留中です1406 アカウントが保留中

1396</h3>1407</h3>

1397 1408 

1398Claude アカウントがサスペンドされています。Claude Code は、保存されたログインを更新しようとして保留について学ぶときに最初のメッセージを表示し、2 番目はブラウザで完了したサインインが報告するときに表示されます:1409ログインに使用している Claude アカウントが停止されています。Claude Code は、保存されたログインを更新しようとして保留を知った場合に 1 つ目のメッセージを表示し、ブラウザで完了したサインインが保留を報告した場合に 2 つ目のメッセージを表示します。

1399 1410 

1400```text theme={null}1411```text theme={null}

1401Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1412Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted

1402Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted1413Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1403```1414```

1404 1415 

1405同じアカウントで再度サインインしても、保留がアカウントにあるため、メッセージはクリアされません。ログインではなく。[非対話モード](/docs/ja/headless)(`-p`)および [Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `account_on_hold` です。v2.1.235 より前では、Claude Code は保留中のアカウントを [ログインの有効期限が切れています · /login を実行してください](#login-expired) として報告しました。その復旧手順は保留をクリアできません。1416保留はログインではなくアカウントにかけられているため、同じアカウントで再度サインインしてもメッセージは解消されません。[非対話モード](/docs/ja/headless)(`-p`)と [Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `account_on_hold` です。v2.1.235 より前では、Claude Code は保留中のアカウントを [Login expired · Please run /login](#login-expired) として報告していましたが、その復旧手順では保留を解消できません。

1406 1417 

1407**対応方法:**1418**対処方法:**

1408 1419 

1409* メッセージのリンクを開いて、保留の詳細を表示するか、それに異議を唱えます1420* メッセージ内のリンクを開いて、保留の詳細を確認するか、異議を申し立てます

1410* 保留の影響を受けない別の Claude アカウントまたは API キーがある場合は、保留が解決されている間、作業を続けることができます。そのアカウントで `/login` を実行するか、`ANTHROPIC_API_KEY` でキーを設定します1421* 保留の影響を受けない別の Claude アカウントや API キーがある場合は、保留が解決されるまでの間も作業を続けられます。そのアカウントで `/login` を実行するか、`ANTHROPIC_API_KEY` でキーを設定してください

1411 1422 

1412<h3 id="anthropic-profile-login-expired">1423<h3 id="anthropic-profile-login-expired">

1413 Anthropic プロファイルログインの有効期限が切れています1424 Anthropic プロファイルのログインの有効期限切れ

1414</h3>1425</h3>

1415 1426 

1416Claude Code は、保存されたログイン認証情報が有効期限切れの Anthropic 認証情報プロファイルを通じて認証しており、プロファイルは Claude Code が更新するために使用できる更新認証情報を保持していません。Claude Code は、同じ有効期限切れ認証情報を読み取るため、各リクエストをローカルで停止します。1427Claude Code は Anthropic 認証情報プロファイルを介して認証していますが、そのプロファイルに保存されたログイン認証情報の有効期限が切れており、プロファイルには Claude Code が更新に使用できるリフレッシュ認証情報がありません。再試行しても同じ期限切れの認証情報が読み取られるため、Claude Code は再試行せずに各リクエストをローカルで停止します。

1417 1428 

1418```text theme={null}1429```text theme={null}

1419Anthropic profile login expired · Re-authenticate your Anthropic profile1430Anthropic profile login expired · Re-authenticate your Anthropic profile

1420Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1431Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

1421```1432```

1422 1433 

1423これは、アクティブな認証情報が Anthropic 認証情報プロファイルから来ている場合にのみ表示されます。`ANTHROPIC_PROFILE` 環境変数で選択するもの。Claude Code が Anthropic 設定ディレクトリでアクティブなプロファイルとして発見するもの。または Claude Code が [API キーなしでサインイン](/docs/ja/authentication#sign-in-without-an-api-key) したときに書き込んだもの。`/login` の claude.ai オプション、API キー、`ANTHROPIC_AUTH_TOKEN` などのベアラートークン、またはサードパーティプロバイダーで認証されたセッションは、このメッセージを表示しません。1434これは、有効な認証情報が Anthropic 認証情報プロファイルから取得されている場合にのみ表示されます。このプロファイルは、`ANTHROPIC_PROFILE` 環境変数で選択したもの、Claude Code が Anthropic 設定ディレクトリでアクティブなプロファイルとして検出したもの、または [API キーなしでサインイン](/docs/ja/authentication#sign-in-without-an-api-key)したときに Claude Code が書き込んだもののいずれかです。API キー、`ANTHROPIC_AUTH_TOKEN` などのベアラートークン、またはサードパーティのプロバイダーで認証するセッションでは、このメッセージが表示されることはありません。

1424 1435 

1425[キーレスサインインを提供する](/docs/ja/authentication#sign-in-without-an-api-key) マシンでは、`/login` を実行し、Anthropic Console アカウントを選択して、再度サインインして、キーレス Console サインインまたは Claude Platform CLI の `ant auth login` が書き込んだプロファイルを更新します。Claude Code はそのプロファイルの有効期限切れ認証情報を置き換えます。フェデレーションプロファイルまたは別のツールが作成したプロファイルの場合、`/login` は認証情報を更新しません。表示されるフォームは、プロファイルを明示的に選択したか、Claude Code がそれを発見したかによって異なります:1436[キーなしのサインインを提供している](/docs/ja/authentication#sign-in-without-an-api-key)マシンでは、キーなしの Console サインインまたは Claude Platform CLI の `ant auth login` が書き込んだプロファイルを更新するには、`/login` を実行し、Anthropic Console アカウントを選択して再度サインインします。Claude Code はそのプロファイル内の期限切れの認証情報を置き換えます。フェデレーションプロファイルや別のツールが作成したプロファイルの場合、`/login` では認証情報は更新されません。表示される形式は、プロファイルを自分で選択したか、Claude Code が検出したかによって異なります。

1426 1437 

1427* `ANTHROPIC_PROFILE` を明示的に設定すると、メッセージは `Re-authenticate your Anthropic profile` で終わります。1438* `ANTHROPIC_PROFILE` を明示的に設定した場合、メッセージは `Re-authenticate your Anthropic profile` で終わります。

1428* Claude Code が設定ディレクトリからプロファイルを発見した場合、メッセージは `/login` を提供します。Claude Code は動作する `/login` を発見されたプロファイルより優先し、claude.ai または Console アカウントで認証します。v2.1.234 より前では、Claude Code はこのケースでも `Re-authenticate your Anthropic profile` フォームを表示していました。1439* Claude Code が設定ディレクトリからプロファイルを検出した場合、メッセージは `/login` を提案します。これは、Claude Code が検出したプロファイルよりも有効な `/login` を優先し、代わりに claude.ai または Console アカウントで認証するためです。v2.1.234 より前では、この場合も Claude Code は `Re-authenticate your Anthropic profile` の形式を表示していました。

1429 1440 

1430**対応方法:**1441**対処方法:**

1431 1442 

1432* プロファイルに再度サインインしてから、再試行します。[キーレスサインインを提供する](/docs/ja/authentication#sign-in-without-an-api-key) マシンでは、`/login` を実行し、キーレス Console サインインまたは Claude Platform CLI の `ant auth login` が書き込んだプロファイルの Anthropic Console アカウントを選択します。他のプロファイルの場合は、それらを作成したツールを使用します1443* プロファイルに再度サインインしてから再試行します。[キーなしのサインインを提供している](/docs/ja/authentication#sign-in-without-an-api-key)マシンでは、キーなしの Console サインインまたは Claude Platform CLI の `ant auth login` が書き込んだプロファイルについては、`/login` を実行して Anthropic Console アカウントを選択します。その他のプロファイルについては、それを作成したツールを使用します

1433* 管理者がプロファイルの認証情報をプロビジョニングした場合は、新しいものを発行するよう依頼してください1444* 管理者がプロファイルの認証情報をプロビジョニングした場合は、新しい認証情報を発行するよう依頼します

1434* `/status` を実行してアクティブな認証情報ソースとプロファイル名を確認します1445* `/status` を実行して、有効な認証情報ソースとプロファイル名を確認します

1435* プロファイルの使用を停止するには、設定した場合は `ANTHROPIC_PROFILE` をアンセットし、`/login` または `ANTHROPIC_API_KEY` などの別の方法で認証します1446* プロファイルの使用をやめるには、`ANTHROPIC_PROFILE` を設定している場合は設定を解除してから、`/login` や `ANTHROPIC_API_KEY` など別の方法で認証します

1436 1447 

1437<h3 id="oauth-scope-requirement">1448<h3 id="oauth-scope-requirement">

1438 OAuth スコープ要件1449 OAuth スコープの要件

1439</h3>1450</h3>

1440 1451 

1441保存されたトークンは、新しい機能が必要とする権限スコープより前のものです:1452保存されたトークンは、新しい機能が必要とする権限スコープより前に作成されたものです。

1442 1453 

1443```text theme={null}1454```text theme={null}

1444OAuth token does not meet scope requirement: user:profile1455OAuth token does not meet scope requirement: user:profile

1445```1456```

1446 1457 

1447**対応方法:**1458**対処方法:**

1448 1459 

1449* `/login` を実行して、現在のスコープで新しいトークンを取得します。最初にログアウトする必要はありません。1460* `/login` を実行して、現在のスコープを持つ新しいトークンを取得します。先にログアウトする必要はありません。

1450 1461 

1451<h3 id="claude-ai-rejected-the-session-token">1462<h3 id="claude-ai-rejected-the-session-token">

1452 claude.ai がセッショントークンを拒否しました1463 claude.ai がセッショントークンを拒否した

1453</h3>1464</h3>

1454 1465 

1455[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) リクエストが失敗しました。claude.ai が Claude Code ログインからのトークンを拒否したため。通常、有効期限切れのログイン。更新できませんでした。拒否されたトークンはコネクタ自身の claude.ai での認可ではなく、ログインであるため、コネクタを再度認可しても解決しません。`/mcp` では、コネクタは `session token rejected` として表示され、その詳細ビューは次のように読みます:1466claude.ai が Claude Code のログインのトークンを拒否したため、[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)のリクエストが失敗しました。拒否されたトークンは、claude.ai でのコネクタ自体の認可ではなくログインのものであるため、コネクタを再度認可しても解決しません。`/mcp` では、コネクタは `session token rejected` と表示され、その詳細ビューには次のように表示されます。

1456 1467 

1457```text theme={null}1468```text theme={null}

1458claude.ai rejected the session token. Run /login, then reconnect.1469claude.ai rejected the session token. Run /login, then reconnect.

1459```1470```

1460 1471 

1461**対応方法:**1472**対処方法:**

1462 1473 

1463* `/login` を実行して再度サインインします1474* `/login` を実行して再度サインインします

1464* `/mcp` からコネクタを再接続するか、`/mcp reconnect <server>` を実行します。再度サインインする前に再接続すると、コネクタは同じ状態のままになります。`/mcp` パネルの **Reconnect** オプションは `your claude.ai session token was rejected` を報告します。入力された `/mcp reconnect <server>` フォームは、トークンがまだ拒否されていても、成功した再接続を報告します。1475* `/mcp` からコネクタを再接続するか、`/mcp reconnect <server>` を実行します。再度サインインする前に再接続しても、コネクタは同じ状態のままです。`/mcp` パネルの **Reconnect** オプションは `your claude.ai session token was rejected` を報告します。入力する `/mcp reconnect <server>` 形式では、トークンがまだ拒否されている場合でも再接続の成功が報告されます。

1465 1476 

1466v2.1.222 より前では、Claude Code はコネクタを認証が必要として標記しました。これはコネクタの認可フローを指しましたが、完了してもこの状態は解決しませんでした。1477v2.1.222 より前では、Claude Code は代わりにコネクタを認証が必要な状態としてマークしていたため、コネクタの認可フローに誘導されましたが、それを完了しても状態は解消されませんでした。

1467 1478 

1468<h3 id="mcp-server-needs-you-to-sign-in-again">1479<h3 id="mcp-server-needs-you-to-sign-in-again">

1469 MCP サーバーがもう一度サインインするよう求めています1480 MCP サーバーで再度サインインが必要

1470</h3>1481</h3>

1471 1482 

1472リモート [MCP サーバー](/docs/ja/mcp) がセッション中のツール呼び出しで認証情報を拒否しました。通常、サインインまたはトークンが有効期限切れになったため。ツール呼び出しは失敗し、`/mcp` はサーバーを [認証が必要](/docs/ja/mcp#authenticate-with-remote-mcp-servers) として標記します。1483リモートの [MCP サーバー](/docs/ja/mcp)が、セッション中のツール呼び出しで認証情報を拒否しました。通常は、サインインまたはトークンの有効期限が切れたか、ツールが必要とする権限がトークンにないことが原因です。ツール呼び出しは失敗し、`/mcp` はサーバーを[認証が必要](/docs/ja/mcp#authenticate-with-remote-mcp-servers)な状態としてマークします。

1473 1484 

1474Claude Code からサインインするサーバー(claude.ai コネクタを含む)の場合、サインインが有効期限切れまたは取り消されました:1485claude.ai コネクタを含め、Claude Code からサインインするサーバーの場合は、サインインの有効期限が切れたか失効しています。

1475 1486 

1476```text theme={null}1487```text theme={null}

1477MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)1488MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)

1478```1489```

1479 1490 

1480`/mcp` を実行し、サーバーを選択し、そのメニューから再度サインインします。1491`/mcp` を実行してサーバーを選択し、そのメニューから再度サインインします。

1481 1492 

1482[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) スクリプトで設定されたサーバーの場合、Claude Code はこれを表示する前にヘルパーを再実行し、呼び出しを 1 回再試行しました:1493[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) スクリプトで設定されたサーバーの場合、Claude Code はこのメッセージを表示する前に、すでにヘルパーを再実行して呼び出しを 1 回再試行しています。

1483 1494 

1484```text theme={null}1495```text theme={null}

1485MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)1496MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

1486```1497```

1487 1498 

1488ヘルパーがサーバーが受け入れる認証情報を返すことを確認してから、`/mcp` から再接続します。これはヘルパーを再実行します。1499ヘルパーがサーバーの受け付ける認証情報を返すことを確認してから、`/mcp` から再接続します。これによりヘルパーが再度実行されます。

1489 1500 

1490設定に静的な `Authorization` ヘッダーを持つサーバーの場合:1501設定に静的な `Authorization` ヘッダーがあるサーバーの場合:

1491 1502 

1492```text theme={null}1503```text theme={null}

1493MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)1504MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

1494```1505```

1495 1506 

1496サーバーが設定されている場所でヘッダー値を更新してから、`/mcp` から再接続します。1507サーバーが設定されている場所でヘッダーの値を更新してから、`/mcp` から再接続します。

1497 1508 

1498v2.1.273 より前では、3 つのケースすべてが `MCP server "<name>" requires re-authorization (token expired)` を表示していました。1509v2.1.273 より前では、サインインの有効期限切れ、`headersHelper`、`Authorization` ヘッダーのいずれの場合も `MCP server "<name>" requires re-authorization (token expired)` と表示されていました。

1499 1510 

1500サーバーは、HTTP 403 `insufficient_scope` でツール呼び出しを拒否して、スコープを認可するよう求めることもできます。時々、トークンが既にリストしているもの。メッセージはそのスコープに名前を付けます:1511サーバーは、スコープの認可を求めるために HTTP 403 `insufficient_scope` でツール呼び出しを拒否することもあります。トークンにすでに記載されているスコープの場合もあります。メッセージにはそのスコープが示されます。

1501 1512 

1502```text theme={null}1513```text theme={null}

1503MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate1514MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

1504```1515```

1505 1516 

1506`/mcp` を実行し、サーバーを選択し、そのメニューから再度認証します。1517`/mcp` を実行してサーバーを選択し、そのメニューから再度認証します。

1507 1518 

1508サーバーの設定が [`oauth.scopes`](/docs/ja/mcp#restrict-oauth-scopes) も [`authServerMetadataUrl`](/docs/ja/mcp#override-oauth-metadata-discovery) も設定しない場合、Claude Code はサーバーが名前を付けたスコープをリクエストします。どちらかの設定を使用すると、Claude Code はその設定のスコープをリクエストします。`oauth.scopes` をピン留めした場合は、再度認証する前にそのリストに欠落しているスコープを追加します。1519サーバーの設定で [`oauth.scopes`](/docs/ja/mcp#restrict-oauth-scopes) も [`authServerMetadataUrl`](/docs/ja/mcp#override-oauth-metadata-discovery) も設定されていない場合、Claude Code はサーバーが示したスコープを要求します。どちらかの設定がある場合、Claude Code は代わりにその設定のスコープを要求します。`oauth.scopes` を固定している場合は、再度認証する前に不足しているスコープをそのリストに追加してください。

1509 1520 

1510v2.1.274 より前では、このケースは `needs you to sign in again` メッセージを表示し、v2.1.273 より前は他のケースのように `requires re-authorization (token expired)` を表示していました。1521v2.1.274 より前では、このケースでは `needs you to sign in again` メッセージが表示され、v2.1.273 より前では他のケースと同様に `requires re-authorization (token expired)` が表示されていました。

1511 1522 

1512<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">1523<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1513 MCP サーバー URL が見つからないか、有効な URL ではありません1524 MCP サーバーの URL がないか有効な URL ではない

1514</h3>1525</h3>

1515 1526 

1516Claude Code がリモート MCP サーバーの OAuth サインインを開始することを拒否しました。サーバーの設定された `url` が URL として解析されないため。Claude Code がサーバーに報告するより具体的な設定問題がない限り、[`claude mcp login <name>`](/docs/ja/mcp#authenticate-from-the-command-line) をシェルで実行すると、拒否が出力されます:1527サーバーに設定された `url` が URL として解析できないため、Claude Code はリモートの MCP サーバーの OAuth サインインの開始を拒否しました。Claude Code がそのサーバーについてより具体的な設定の問題を報告しない限り、シェルで [`claude mcp login <name>`](/docs/ja/mcp#authenticate-from-the-command-line) を実行すると、拒否は次のように出力されます。

1517 1528 

1518```text theme={null}1529```text theme={null}

1519Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.1530Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

1520```1531```

1521 1532 

1522**対応方法:**1533**対処方法:**

1523 1534 

1524* サーバーが設定されている場所でエントリの `url` をサーバーの実際のエンドポイントに設定するか、その [`${VAR}` リファレンス](/docs/ja/mcp#environment-variable-expansion-in-mcp-json) が名前を付ける環境変数を設定してから、サインインを再度実行します。1535* サーバーが設定されている場所で、エントリの `url` にサーバーの実際のエンドポイントを設定するか、その [`${VAR}` 参照](/docs/ja/mcp#environment-variable-expansion-in-mcp-json)が示す環境変数を設定してから、サインインを再度実行します。

1525 1536 

1526<h3 id="issuer-mismatch-in-authorization-response">1537<h3 id="issuer-mismatch-in-authorization-response">

1527 認可応答での発行者の不一致1538 認可レスポンスの発行者の不一致

1528</h3>1539</h3>

1529 1540 

1530[MCP OAuth サインイン](/docs/ja/mcp#authenticate-with-remote-mcp-servers) 中に、認可サーバーは Claude Code に `iss` パラメーターでリダイレクトバックしました。これは Claude Code がサーバーの OAuth メタデータから期待していた発行者に名前を付けていません。このステップでの間違った発行者は、認可サーバーの混合攻撃がどのように見えるかです。Claude Code は認可コードを交換する代わりにサインインを失敗させます。Claude Code はブラウザサインイン後の `/mcp` サーバーメニューにエラーを表示します:1541[MCP OAuth サインイン](/docs/ja/mcp#authenticate-with-remote-mcp-servers)中に、認可サーバーが、サーバーの OAuth メタデータから Claude Code が想定していた発行者とは異なる発行者を示す `iss` パラメーターを付けて Claude Code にリダイレクトしました。この段階での誤った発行者は、認可サーバーの混同攻撃(mix-up attack)の兆候であるため、Claude Code は認可コードを交換せずにサインインを失敗させます。Claude Code は、ブラウザでのサインイン後に `/mcp` のサーバーメニューにエラーを表示します。

1531 1542 

1532```text theme={null}1543```text theme={null}

1533Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1544Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

1534```1545```

1535 1546 

1536`expected` はサーバーの OAuth メタデータからの発行者であり、`received` はリダイレクトが運んだ `iss` 値です。リダイレクトが `iss` パラメーターを運ばないサインインはチェックに合格します。サーバーのメタデータが `authorization_response_iss_parameter_supported` を設定しない限り。その場合、Claude Code はサインインを失敗させます。1547`expected` はサーバーの OAuth メタデータにある発行者で、`received` はリダイレクトに含まれていた `iss` の値です。リダイレクトに `iss` パラメーターが含まれていないサインインはチェックを通過しますが、サーバーのメタデータで `authorization_response_iss_parameter_supported` が設定されている場合は、Claude Code はサインインを失敗させます。

1537 1548 

1538**対応方法:**1549**対処方法:**

1539 1550 

1540* `/mcp` からサインインを再度試してください1551* `/mcp` からサインインを再試行します

1541* エラーが繰り返される場合は、サーバーオペレーターに報告してください。修正はサーバー側です。認可サーバーは、メタデータで宣伝する同じ発行者を `iss` パラメーターで返す必要があります1552* エラーが繰り返される場合は、サーバーの運用者に報告します。修正はサーバー側で行う必要があります。認可サーバーは、メタデータで公開しているのと同じ発行者を `iss` パラメーターで返す必要があります

1542* サーバーが修正されている間に接続するには、[`MCP_SDK_GENERATION=v1`](/docs/ja/env-vars) で Claude Code を起動します。その [ランタイム](/docs/ja/mcp#mcp-client-runtimes) はこのチェックを実行しません。これは混合攻撃に対する保護を削除するため、サーバー側の修正を優先してください1553* サーバーの修正中に接続するには、[`MCP_SDK_GENERATION=v1`](/docs/ja/env-vars) を指定して Claude Code を起動します。その[ランタイム](/docs/ja/mcp#mcp-client-runtimes)はこのチェックを実行しません。これにより混同攻撃に対する保護がなくなるため、サーバー側での修正を優先してください

1543 1554 

1544v2.1.232 より前では、Claude Code は段階的なロールアウトでのみ v2 ランタイムを使用するか、`MCP_SDK_GENERATION=v2` を設定したときに使用していました。1555v2.1.232 より前では、Claude Code は段階的なロールアウト中か、`MCP_SDK_GENERATION=v2` を設定した場合にのみ v2 ランタイムを使用していました。

1545 1556 

1546<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">1557<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1547 HTTPS 以外のトークンエンドポイントへの認証情報の送信を拒否しています1558 HTTPS 以外のトークンエンドポイントへの認証情報の送信を拒否

1548</h3>1559</h3>

1549 1560 

1550[v2 ランタイム](/docs/ja/mcp#mcp-client-runtimes) では、Claude Code は [MCP OAuth](/docs/ja/mcp#authenticate-with-remote-mcp-servers) トークンリクエストを HTTPS で提供されるトークンエンドポイント、または `localhost`、`127.0.0.1`、または `::1` でのみ送信します。このメッセージは、サーバーのトークンエンドポイントがどちらでもないため、Claude Code がリクエストを送信する前に停止したことを意味しています。これはブラウザサインイン後に発生するため、ブラウザステップは最初に成功し、Claude Code がサーバーのトークンを更新するたびに再度発生します。1561[v2 ランタイム](/docs/ja/mcp#mcp-client-runtimes)では、Claude Code は HTTPS で提供されているトークンエンドポイント、または `localhost`、`127.0.0.1`、`::1` にあるトークンエンドポイントにのみ [MCP OAuth](/docs/ja/mcp#authenticate-with-remote-mcp-servers) のトークンリクエストを送信します。このメッセージは、サーバーのトークンエンドポイントがどちらにも該当しないため、Claude Code がリクエストを送信する前に停止したことを意味します。これはブラウザでのサインインの後に発生するため、最初にブラウザの手順は成功します。また、Claude Code がサーバーのトークンを更新するたびにも発生します。

1551 1562 

1552完全な形式では、メッセージは MCP SDK から来ており、拒否したトークンエンドポイントを引用しています。デバッグログでは、サインインの場合は `Error during auth completion:` の後に続き、更新の場合は `Token refresh failed:` の後に続きます。シェルでは、`claude mcp login <name>` は `Couldn't complete authentication for "<name>":` の後に出力し、セッションでは `/mcp` はサーバーのメニューの下に表示されます:1563完全な形式では、メッセージは MCP SDK から出力され、拒否したトークンエンドポイントを引用します。デバッグログでは、サインインの場合は `Error during auth completion:` の後に、更新の場合は `Token refresh failed:` の後に続きます。シェルでは、`claude mcp login <name>` が `Couldn't complete authentication for "<name>":` の後にこれを出力し、セッション内では `/mcp` がサーバーのメニューの下にこれを表示します。

1553 1564 

1554```text theme={null}1565```text theme={null}

1555Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).1566Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1556```1567```

1557 1568 

1558Claude Code は、クエリ文字列または長いランダムに見えるパス セグメントを持つサーバー URL を、おそらくシークレットとして扱います。そのようなサーバーの場合、MCP SDK が発生させるサインインエラーを表示またはログに記録する前に編集します。このエラーは、リリース間で変更される可能性がある短い名前(`io` など)として読み、その後に `from the MCP SDK for` と編集されたサーバー URL が続きます。MCP SDK からの他のエラーはそこで同じ形状を取ります。編集されたメッセージは、サーバーのトークンエンドポイントが `localhost`、`127.0.0.1`、または `::1` 以外のアドレスで plain `http://` である場合にのみ、このエラーである可能性があります。1569Claude Code は、クエリ文字列や長いランダムに見えるパスセグメントを持つサーバー URL を、秘密情報を含む可能性があるものとして扱います。そのようなサーバーについては、MCP SDK が発生させるサインインエラーを表示またはログに記録する前に秘匿化します。この場合、このエラーは `io` のようなリリース間で変わる可能性のある短い名前の後に、`from the MCP SDK for` と秘匿化されたサーバー URL が続く形で表示されます。MCP SDK からのその他のエラーも同じ形になります。秘匿化されたメッセージがこのエラーである可能性があるのは、サーバーのトークンエンドポイントが `localhost`、`127.0.0.1`、`::1` 以外のアドレスにあるプレーンな `http://` である場合のみです。

1559 1570 

1560**対応方法:**1571**対処方法:**

1561 1572 

1562* そのトークンエンドポイントを HTTPS で提供します。たとえば、リバースプロキシまたはトンネルの背後にサーバーを配置して TLS を終了し、サーバーが `https://` アドレスをアドバタイズするように設定します1573* そのトークンエンドポイントを HTTPS で提供します。たとえば、TLS を終端するリバースプロキシやトンネルの背後にサーバーを配置し、`https://` アドレスを公開するようにサーバーを設定します

1563* サーバーを変更せずに接続するには、[`MCP_SDK_GENERATION=v1`](/docs/ja/env-vars) で Claude Code を起動します。その [ランタイム](/docs/ja/mcp#mcp-client-runtimes) はこのルールを適用せず、トークンリクエストを plain HTTP で送信します。その選択は終了まで続き、すべてのサーバーに適用されます。v1 ランタイムは [発行者チェック](#issuer-mismatch-in-authorization-response) もスキップするため、エンドポイントを HTTPS で提供することを優先してください1574* サーバーを変更せずに接続するには、[`MCP_SDK_GENERATION=v1`](/docs/ja/env-vars) を指定して Claude Code を起動します。その[ランタイム](/docs/ja/mcp#mcp-client-runtimes)はこのルールを適用せず、プレーンな HTTP でトークンリクエストを送信します。この選択は終了するまで続き、すべてのサーバーに適用されます。v1 ランタイムは[発行者のチェック](#issuer-mismatch-in-authorization-response)も省略するため、エンドポイントを HTTPS で提供することを優先してください

1564 1575 

1565<h3 id="aws-credentials-expired-or-invalid">1576<h3 id="aws-credentials-expired-or-invalid">

1566 AWS 認証情報が有効期限切れまたは無効です1577 AWS の認証情報が期限切れまたは無効

1567</h3>1578</h3>

1568 1579 

1569AWS セッショントークンが有効期限切れまたは拒否されました。このメッセージは [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) または [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) からの 401 に表示されます。これらのプロバイダーが有効期限切れのセキュリティトークンを報告する方法です。1580AWS のセッショントークンの有効期限が切れたか、拒否されました。このメッセージは、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws) または [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint)からの 401 で表示されます。これらのプロバイダーは、期限切れのセキュリティトークンをこのように報告します。

1570 1581 

1571中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `AWS credentials expired or invalid` です:1582中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `AWS credentials expired or invalid` です。

1572 1583 

1573```text theme={null}1584```text theme={null}

1574AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...1585AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

1575```1586```

1576 1587 

1577v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されました。1588v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されていました。

1578 1589 

1579**対応方法:**1590**対処方法:**

1580 1591 

1581* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1592* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1582* [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) が設定されている場合は、メッセージで名前が付けられたコマンド(`aws sso login --profile myprofile` など)を別のターミナルで実行し、ブラウザサインインを完了してから、再試行します。それ以外の場合は、自分で使用する AWS 認証情報を更新します。SSO サインイン、アクセスキー、API キー、またはプロキシトークン1593* [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) が設定されている場合は、`aws sso login --profile myprofile` など、メッセージに示されたコマンドを別のターミナルで実行してブラウザでのサインインを完了してから、再試行します。それ以外の場合は、使用している AWS の認証情報(SSO サインイン、アクセスキー、API キー、またはプロキシトークン)を自分で更新します

1583* 対話的セッションで `awsAuthRefresh` が設定されている場合は、代わりに `/login` を実行し、**3rd-party platform** を選択してから、**Using 3rd-party platforms** の下で **Claude Platform on AWS · refresh credentials** を選択して、Claude Code を再起動せずに同じコマンドを実行できます。[AWS 認証情報を設定する](/docs/ja/claude-platform-on-aws#1-configure-aws-credentials) を参照してください1594* 対話セッションで `awsAuthRefresh` が設定されている場合は、代わりに `/login` を実行して **3rd-party platform** を選択し、**Using 3rd-party platforms** の下で **Claude Platform on AWS · refresh credentials** を選択すると、Claude Code を再起動せずに同じコマンドを実行できます。[AWS の認証情報の設定](/docs/ja/claude-platform-on-aws#1-configure-aws-credentials)を参照してください

1584* 更新コマンドが成功した後もエラーが繰り返される場合は、同じシェルとプロファイルで `aws sts get-caller-identity` を使用して Claude Code の外で ID が有効であることを確認します1595* 更新コマンドが成功した後もエラーが繰り返される場合は、同じシェルとプロファイルで `aws sts get-caller-identity` を実行し、Claude Code の外部で ID が有効であることを確認します

1585 1596 

1586<h3 id="aws-authentication-failed">1597<h3 id="aws-authentication-failed">

1587 AWS 認証が失敗しました1598 AWS の認証に失敗した

1588</h3>1599</h3>

1589 1600 

1590AWS プロバイダーが 403 を返したか、[Amazon Bedrock](/docs/ja/amazon-bedrock) が 401 を返しました。1601AWS プロバイダーが 403 を返したか、[Amazon Bedrock](/docs/ja/amazon-bedrock) が 401 を返しました。

1591 1602 

1592Amazon Bedrock は有効期限切れのセキュリティトークンを 403 として報告しますが、403 は認可拒否(IAM 権限の欠落など `AccessDeniedException`)を報告する方法でもあります。Claude Code はこれら 2 つの原因を区別できません。1603Amazon Bedrock は期限切れのセキュリティトークンを 403 として報告しますが、IAM 権限の不足による `AccessDeniedException` などの認可の拒否も 403 として報告します。Claude Code はこの 2 つの原因を区別できません。

1593 1604 

1594Amazon Bedrock からの 401 は、リクエストパスの他の何か(企業プロキシなど)から来ているため、[AWS 認証情報が有効期限切れまたは無効です](#aws-credentials-expired-or-invalid) の下ではなくここに着地します。そのエンドポイントからの 401 は通常、他の何かから来ています。1605Amazon Bedrock は期限切れのトークンを 401 として報告しないため、Amazon Bedrock からの 401 も [AWS の認証情報が期限切れまたは無効](#aws-credentials-expired-or-invalid)ではなくここに分類されます。そのエンドポイントからの 401 は通常、企業のプロキシなど、リクエスト経路上の別の要素から返されます。

1595 1606 

1596認証情報の更新は有効期限切れトークンを修正でき、他の原因を修正できないため、メッセージは両方を提供します:1607認証情報を更新すると期限切れのトークンは解決しますが、その他の原因は解決できないため、メッセージでは両方を提示します。

1597 1608 

1598```text theme={null}1609```text theme={null}

1599AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...1610AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

1600```1611```

1601 1612 

1602中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `AWS authentication failed` です。1613中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `AWS authentication failed` です。

1603 1614 

1604403 が、指定されたモデル ID でモデルへのアクセス権がないという Amazon Bedrock の答えである場合、ヒントは代わりに Amazon Bedrock コンソールでアカウントとリージョンのモデルを有効にするよう指示します。1615403 が、指定されたモデル ID のモデルへのアクセス権がないという Amazon Bedrock の応答である場合、ヒントは代わりに、Amazon Bedrock コンソールでアカウントとリージョンに対してモデルを有効にするよう指示します。

1605 1616 

1606v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されました。1617v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されていました。

1607 1618 

1608**対応方法:**1619**対処方法:**

1609 1620 

1610* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1621* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1611* 有効期限切れ認証情報が原因である可能性があるため、AWS 認証情報を更新します。設定されている場合は [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) コマンドで名前が付けられたコマンドを実行するか、SSO サインイン、アクセスキー、API キー、またはプロキシトークンを自分で更新します1622* 認証情報の期限切れが原因である場合に備えて、AWS の認証情報を更新します。設定されている場合はメッセージに示された [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) コマンドを実行するか、SSO サインイン、アクセスキー、API キー、またはプロキシトークンを自分で更新します

1612* 認証情報が最新の場合は、[IAM 設定](/docs/ja/amazon-bedrock#iam-configuration) の IAM 権限が使用している ID に接続されていることを確認し、選択されたモデルがアカウントとリージョンで有効になっていることを確認します1623* 認証情報が最新である場合は、[IAM の設定](/docs/ja/amazon-bedrock#iam-configuration)にある IAM 権限が使用している ID にアタッチされていること、および選択したモデルがアカウントとリージョンで有効になっていることを確認します

1613* `aws sts get-caller-identity` を実行してリクエストが使用する ID を確認します1624* `aws sts get-caller-identity` を実行して、リクエストでどの ID が使用されているかを確認します

1614 1625 

1615<h3 id="google-cloud-credentials-expired-or-invalid">1626<h3 id="google-cloud-credentials-expired-or-invalid">

1616 Google Cloud 認証情報が有効期限切れまたは無効です1627 Google Cloud の認証情報が期限切れまたは無効

1617</h3>1628</h3>

1618 1629 

1619[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) の Google Cloud 認証情報が有効期限切れまたは拒否されました。リクエストが 401 を返しました。これは Agent Platform が認証情報の有効期限切れを報告する方法です。1630[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) 用の Google Cloud の認証情報の有効期限が切れたか、拒否されました。リクエストは 401 を返しました。Agent Platform は認証情報の期限切れをこのように報告します。

1620 1631 

1621中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `Google Cloud credentials expired or invalid` です:1632中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `Google Cloud credentials expired or invalid` です。

1622 1633 

1623```text theme={null}1634```text theme={null}

1624Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...1635Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...

1625```1636```

1626 1637 

1627**対応方法:**1638**対処方法:**

1628 1639 

1629* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1640* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1630* アプリケーションデフォルト認証情報で認証する場合は、メッセージで名前が付けられた [`gcpAuthRefresh`](/docs/ja/google-vertex-ai#advanced-credential-configuration) コマンドまたは `gcloud auth application-default login` を実行し、サインインを完了してから、再試行します1641* アプリケーションのデフォルト認証情報で認証している場合は、メッセージに示された [`gcpAuthRefresh`](/docs/ja/google-vertex-ai#advanced-credential-configuration) コマンド、または `gcloud auth application-default login` を実行してサインインを完了してから、再試行します

1631* [LLM ゲートウェイ](/docs/ja/llm-gateway) を通じてルーティングし、`CLAUDE_CODE_SKIP_VERTEX_AUTH` が設定されている場合は、`ANTHROPIC_AUTH_TOKEN` または `ANTHROPIC_CUSTOM_HEADERS` のゲートウェイトークンを更新してから、再試行します1642* `CLAUDE_CODE_SKIP_VERTEX_AUTH` を設定して [LLM ゲートウェイ](/docs/ja/llm-gateway)経由でルーティングしている場合は、`ANTHROPIC_AUTH_TOKEN` または `ANTHROPIC_CUSTOM_HEADERS` のゲートウェイトークンを更新してから、再試行します

1632* サービスアカウントキーファイルで認証する場合は、`GOOGLE_APPLICATION_CREDENTIALS` が有効なキーを指していることを確認します。[GCP 認証情報を設定する](/docs/ja/google-vertex-ai#3-configure-gcp-credentials) を参照してください1643* サービスアカウントのキーファイルで認証している場合は、`GOOGLE_APPLICATION_CREDENTIALS` が有効なキーを指していることを確認します。[GCP の認証情報の設定](/docs/ja/google-vertex-ai#3-configure-gcp-credentials)を参照してください

1633* 更新後もエラーが繰り返される場合は、同じシェルで `gcloud auth application-default print-access-token` を使用して Claude Code の外で ID が機能することを確認します1644* 更新後もエラーが繰り返される場合は、同じシェルで `gcloud auth application-default print-access-token` を実行し、Claude Code の外部で ID が機能することを確認します

1634 1645 

1635v2.1.273 より前では、Agent Platform からの 401 は、Google Cloud 認証情報を更新できない一般的な `Please run /login` または `Failed to authenticate` メッセージを表示していました。1646v2.1.273 より前では、Agent Platform からの 401 では代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されていましたが、これでは Google Cloud の認証情報を更新できません。

1636 1647 

1637<h3 id="google-cloud-authentication-failed">1648<h3 id="google-cloud-authentication-failed">

1638 Google Cloud 認証が失敗しました1649 Google Cloud の認証に失敗した

1639</h3>1650</h3>

1640 1651 

1641[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) が 403 を返しました。これは有効期限切れ認証情報ではなく認可拒否に使用します。通常、認証する ID に IAM 権限がないか、モデルがプロジェクトで有効になっていません。1652[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) が 403 を返しました。Agent Platform は、期限切れの認証情報ではなく認可の拒否に 403 を使用します。通常は、認証に使用している ID に IAM 権限が不足しているか、プロジェクトでモデルが有効になっていないことが原因です。

1642 1653 

1643中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `Google Cloud authentication failed` です:1654中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `Google Cloud authentication failed` です。

1644 1655 

1645```text theme={null}1656```text theme={null}

1646Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...1657Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...

1647```1658```

1648 1659 

1649**対応方法:**1660**対処方法:**

1650 1661 

1651* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1662* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1652* 認証する ID に [IAM 設定](/docs/ja/google-vertex-ai#iam-configuration) のロールが付与されていることを確認します1663* [IAM の設定](/docs/ja/google-vertex-ai#iam-configuration)にあるロールが、認証に使用している ID に付与されていることを確認します

1653* モデルがプロジェクトで有効になっていることを確認します。[モデルアクセスをリクエストする](/docs/ja/google-vertex-ai#2-request-model-access) を参照してください1664* プロジェクトでモデルが有効になっていることを確認します。[モデルへのアクセスのリクエスト](/docs/ja/google-vertex-ai#2-request-model-access)を参照してください

1654 1665 

1655v2.1.273 より前では、Agent Platform からの 403 は、Google Cloud 認証情報を更新できない一般的な `Please run /login` または `Failed to authenticate` メッセージを表示していました。1666v2.1.273 より前では、Agent Platform からの 403 では代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されていましたが、これでは Google Cloud の認証情報を更新できません。

1656 1667 

1657<h3 id="microsoft-foundry-authentication-failed">1668<h3 id="microsoft-foundry-authentication-failed">

1658 Microsoft Foundry 認証が失敗しました1669 Microsoft Foundry authentication failed

1659</h3>1670</h3>

1660 1671 

1661[Microsoft Foundry](/docs/ja/microsoft-foundry) が 401 または 403 を返しました。リクエストの Azure 認証情報が拒否されたか、その背後にある ID が Foundry リソースへのアクセス権を持っていません。`/login` は Azure 認証情報をミントできません。中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `Microsoft Foundry authentication failed` です:1672[Microsoft Foundry](/docs/ja/microsoft-foundry) が 401 または 403 を返しました。リクエストの Azure 認証情報が拒否されたか、その背後の ID が Foundry リソースへのアクセス権を持っていません。`/login` では Azure 認証情報を発行できません。中央のアクションヒントは環境によって異なります。変わらない部分は先頭の `Microsoft Foundry authentication failed` です。

1662 1673 

1663```text theme={null}1674```text theme={null}

1664Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...1675Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...

1665```1676```

1666 1677 

1667**対応方法:**1678**対処方法:**

1668 1679 

1669* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1680* ヒントに認証情報がこの環境によって管理されていると表示されている場合、Claude Code を起動したアプリが認証情報を所有しているため、ここにある他の手順は適用されません。再試行するか、管理者に問い合わせてください

1670* [Azure 認証情報を設定する](/docs/ja/microsoft-foundry#2-configure-azure-credentials) で設定した認証情報を更新します。`ANTHROPIC_FOUNDRY_API_KEY` をローテーションするか、新しい `ANTHROPIC_FOUNDRY_AUTH_TOKEN` をミントするか、`az login` を実行してデフォルト Microsoft Entra 認証情報チェーンが再度サインインできるようにします1681* [Azure 認証情報を設定する](/docs/ja/microsoft-foundry#2-configure-azure-credentials)で設定した認証情報を更新します。`ANTHROPIC_FOUNDRY_API_KEY` をローテーションするか、新しい `ANTHROPIC_FOUNDRY_AUTH_TOKEN` を発行するか、`az login` を実行してデフォルトの Microsoft Entra 認証情報チェーンが再度サインインできるようにします

1671* 認証情報が最新の場合は、ID が Foundry リソースへのアクセス権を持っていることを確認します。[Azure RBAC 設定](/docs/ja/microsoft-foundry#azure-rbac-configuration) を参照してください1682* 認証情報が最新の場合は、その ID が Foundry リソースへのアクセス権を持っていることを確認してください。[Azure RBAC の設定](/docs/ja/microsoft-foundry#azure-rbac-configuration)を参照してください

1672 1683 

1673v2.1.273 より前では、Microsoft Foundry からの 401 または 403 は、Azure 認証情報を更新できない一般的な `Please run /login` または `Failed to authenticate` メッセージを表示していました。1684v2.1.273 より前では、Microsoft Foundry からの 401 または 403 に対して、代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されていましたが、これでは Azure 認証情報を更新できません。

1674 1685 

1675<h3 id="could-not-load-aws-or-google-cloud-credentials">1686<h3 id="could-not-load-aws-or-google-cloud-credentials">

1676 AWS またはGoogle Cloud 認証情報を読み込めませんでした1687 Could not load AWS or Google Cloud credentials

1677</h3>1688</h3>

1678 1689 

1679Claude Code は、実行されているマシンの AWS 認証情報プロバイダーチェーンまたは Google アプリケーションデフォルト認証情報から使用可能な認証情報を取得できなかったため、クラウドプロバイダーにリクエストが到達しませんでした。Claude Code はキャッシュされた認証情報をクリアし、表示する前に 2 回再試行します。`·` の後の詳細は、有効期限切れの SSO セッション、`Could not load the default credentials` として報告される欠落アプリケーションデフォルト認証情報、または `invalid_grant` として報告される取り消されたサインインなど、特定の原因に名前を付けます:1690Claude Code は、実行中のマシン上で AWS 認証情報プロバイダーチェーンまたは Google のアプリケーションのデフォルト認証情報から使用可能な認証情報を取得できなかったため、リクエストはクラウドプロバイダーに到達しませんでした。Claude Code はキャッシュされた認証情報をクリアし、2 回再試行してからこのメッセージを表示します。`·` の後の詳細には具体的な原因が示されます。たとえば、期限切れの SSO セッション、`Could not load the default credentials` として報告されるアプリケーションのデフォルト認証情報の欠落、`invalid_grant` として報告される取り消されたサインインなどです。

1680 1691 

1681```text theme={null}1692```text theme={null}

1682API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.1693API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1683API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.1694API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1684```1695```

1685 1696 

1686[非対話モード](/docs/ja/headless) で `-p` を使用し、[Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `cloud_credential_error` です。v2.1.267 より前では、メッセージは `API Error:` の後の詳細テキストのみを表示し、構造化コードは `server_error` または `unknown` でした。1697`-p` を使用した[非対話モード](/docs/ja/headless)および [Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `cloud_credential_error` です。v2.1.267 より前では、メッセージには `API Error:` の後の詳細テキストのみが表示され、構造化コードは `server_error` または `unknown` でした。

1687 1698 

1688**対応方法:**1699**対処方法:**

1689 1700 

1690* `aws sso login --profile myprofile` または `gcloud auth application-default login` などのプロバイダーのサインインコマンドを実行してから、再試行します。[Bedrock、Agent Platform、または Foundry 認証情報が読み込まれていない](/docs/ja/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) は、Claude Code の外で認証情報を確認する方法を示しています1701* `aws sso login --profile myprofile` や `gcloud auth application-default login` など、プロバイダーのサインインコマンドを実行してから再試行してください。Claude Code の外部で認証情報を確認する方法については、[Bedrock、Agent Platform、または Foundry の認証情報が読み込まれない](/docs/ja/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading)を参照してください

1691* 詳細が `AWS default-chain credential resolve timed out` と読む場合は、チェーンが失敗するのではなくハングしたため、代わりに [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out) に従ってください1702* 詳細が `AWS default-chain credential resolve timed out` の場合、チェーンは失敗したのではなく停止しているため、代わりに [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out) の手順に従ってください

1692 1703 

1693<h3 id="aws-default-chain-credential-resolve-timed-out">1704<h3 id="aws-default-chain-credential-resolve-timed-out">

1694 AWS default-chain credential resolve がタイムアウトしました1705 AWS default-chain credential resolve timed out

1695</h3>1706</h3>

1696 1707 

1697AWS デフォルト認証情報プロバイダーチェーンが 60 秒以内に認証情報を生成しなかったため、Claude Code は解決を停止し、リクエストを失敗させました。このタイムアウトは [AWS またはGoogle Cloud 認証情報を読み込めませんでした](#could-not-load-aws-or-google-cloud-credentials) の 1 つの原因です。失敗はローカル認証情報解決です。リクエストは [Amazon Bedrock](/docs/ja/amazon-bedrock)、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、または [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) に到達しませんでした。Claude Code は [認証情報キャッシュ](/docs/ja/amazon-bedrock#credential-caching-and-resolution-timeout) をクリアし、このエラーが表示される前に再試行するため、このエラーが表示されるまでにチェーンは繰り返された試行でスタールしています。1708AWS のデフォルト認証情報プロバイダーチェーンが 60 秒以内に認証情報を生成しなかったため、Claude Code は解決処理を停止し、リクエストを失敗させました。このタイムアウトは [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials) の原因の 1 つです。失敗しているのはローカルでの認証情報の解決であり、リクエストは [Amazon Bedrock](/docs/ja/amazon-bedrock)、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、または [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint)に到達していません。Claude Code はこのエラーを表示する前に[認証情報キャッシュ](/docs/ja/amazon-bedrock#credential-caching-and-resolution-timeout)をクリアして再試行するため、このエラーが表示された時点では、チェーンは繰り返しの試行で停止しています。

1698 1709 

1699```text theme={null}1710```text theme={null}

1700API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.1711API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1701```1712```

1702 1713 

1703一般的な原因は、AWS プロファイルの `credential_process` コマンドが受け取ることができない入力を待機し、インスタンスメタデータサービス(IMDS)がチェーンのプローブに応答しないコンテナまたは VM です。1714よくある原因は、AWS プロファイル内の `credential_process` コマンドが受け取れない入力を待機している場合や、コンテナや VM のインスタンスメタデータサービス(IMDS)がチェーンのプローブに応答しない場合です。

1704 1715 

1705v2.1.267 より前では、メッセージは `API Error: AWS default-chain credential resolve timed out` と読みました。1716v2.1.267 より前では、メッセージは `API Error: AWS default-chain credential resolve timed out` でした。

1706v2.1.207 より前では、スタールしたチェーンはリクエストを無期限に待機したままにしておきました。1717v2.1.207 より前では、チェーンが停止するとリクエストは失敗せずに無期限に待機し続けていました。

1707 1718 

1708**対応方法:**1719**対処方法:**

1709 1720 

1710* 同じシェルで同じ `AWS_PROFILE` を使用して `aws sts get-caller-identity` を実行します。それもハングする場合は、プロファイルを修正します。対話的にプロンプトを表示する `credential_process` コマンドが一般的な原因です。1721* 同じシェルで同じ `AWS_PROFILE` を使用して `aws sts get-caller-identity` を実行してください。これもハングする場合は、プロファイルを修正してください。対話的に入力を求める `credential_process` コマンドがよくある原因です。

1711* Claude Code を起動する前にサインインステップを完了します。たとえば `aws sso login --profile myprofile`。これにより、チェーンはブラウザフローを待機する代わりにローカル SSO キャッシュから解決されます1722* Claude Code を起動する前にサインイン手順を完了してください。たとえば `aws sso login --profile myprofile` を実行します

1712* チェーンが `aws-vault` などのラッパーを使用した MFA を使用した SSO など、60 秒以上の正当なインタラクティブサインインを実行する場合は、ミリ秒単位で制限を上げます。[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars)1723* `aws-vault` などのラッパーを介した MFA 付きの SSO のように、チェーンが実行する対話的なサインインに正当な理由で 60 秒以上かかる場合は、[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) でミリ秒単位の制限を引き上げてください

1713 1724 

1714<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1725<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1715 Bedrock セットアップ検証が AWS を待機中にタイムアウトしました1726 Bedrock setup verification timed out waiting for AWS

1716</h3>1727</h3>

1717 1728 

1718[Bedrock セットアップウィザード](/docs/ja/amazon-bedrock#sign-in-with-bedrock) の認証情報検証中の AWS への呼び出し(認証情報ルックアップまたは ID チェックなど)が 60 秒の制限内に完了しませんでした。ウィザードは待機を停止し、検証ステップを失敗させます:1729[Bedrock セットアップウィザード](/docs/ja/amazon-bedrock#sign-in-with-bedrock)の認証情報検証中に、認証情報の検索や ID チェックなどの AWS への呼び出しが 60 秒の制限内に完了しませんでした。ウィザードは待機を停止し、検証ステップを失敗させます。

1719 1730 

1720```text theme={null}1731```text theme={null}

1721Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.1732Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

1722```1733```

1723 1734 

1724数値は制限を反映しています。デフォルトでは 60 秒、または [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) で設定した値。1735数値は設定されている制限を反映しています。デフォルトは 60 秒で、[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) を設定している場合はその値になります。

1725 1736 

1726一般的な原因は、SSO トークン更新を含む AWS へのリクエストをスタールさせるネットワークまたはプロキシ、および見えない入力を待機しているまだ認証情報ヘルパーです。ヘルパーが正当にもっと時間が必要な場合にのみ制限を上げます。1737よくある原因は、SSO トークンの更新を含む AWS へのリクエストを停止させるネットワークやプロキシ、および表示されない入力を待機し続けている認証情報ヘルパーです。制限を引き上げるのは、ヘルパーが正当な理由でより長い時間を必要とする場合のみにしてください。

1727 1738 

1728AWS への単一のスタールしたリクエストは、独自のリクエストごとのタイムアウトで失敗することもあります。これは同じステップでより短いメッセージを表示します:1739AWS への単一のリクエストが停止した場合、そのリクエスト自体のタイムアウトによって失敗することもあり、その場合は同じステップでより短いメッセージが表示されます。

1729 1740 

1730```text theme={null}1741```text theme={null}

1731A request to AWS timed out. Check your network and proxy settings, then try again.1742A request to AWS timed out. Check your network and proxy settings, then try again.

1732```1743```

1733 1744 

1734同じタイムアウトがモデルピンステップで発生する場合、ウィザードはモデルを `unreachable` としてマークします。どちらのメッセージも表示する代わりに。1745モデル固定ステップで同じタイムアウトが発生した場合、ウィザードはどちらのメッセージも表示せず、モデルを `unreachable` としてマークします。

1735 1746 

1736**対応方法:**1747**対処方法:**

1737 1748 

1738* 同じシェルで `aws sts get-caller-identity` を実行します。それもハングする場合、スタールは Claude Code の外にあります。ネットワーク、プロキシ、または AWS プロファイルの認証情報ヘルパーで。最初にそれを修正します。1749* 同じシェルで `aws sts get-caller-identity` を実行してください。これもハングする場合、停止の原因は Claude Code の外部、つまりネットワーク、プロキシ、または AWS プロファイル内の認証情報ヘルパーにあります。まずそれを修正してください。

1739* ウィザードを開く前にインタラクティブサインインを完了します。たとえば `aws sso login --profile myprofile`1750* ウィザードを開く前に、対話的なサインインをすべて完了してください。たとえば `aws sso login --profile myprofile` を実行します

1740* AWS プロファイルの認証情報ヘルパーが正当に 60 秒以上の時間が必要な場合は、ミリ秒単位で制限を上げます。[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars)1751* AWS プロファイル内の認証情報ヘルパーが入力を求めるのに正当な理由で 60 秒以上必要な場合は、[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) でミリ秒単位の制限を引き上げてください

1741 1752 

1742<h3 id="cloud-gateway-session-expired">1753<h3 id="cloud-gateway-session-expired">

1743 クラウドゲートウェイセッションが有効期限切れです1754 Cloud gateway session expired

1744</h3>1755</h3>

1745 1756 

1746[Claude apps gateway](/docs/ja/claude-apps-gateway) を通じてサインインし、このマシンに保存されたゲートウェイセッションが有効期限切れになり、更新できなかったか、ゲートウェイはそれを受け入れなくなりました。たとえば、ゲートウェイの [JWT シークレットが置き換えられた](/docs/ja/claude-apps-gateway-deploy#jwt-secret-rotation) 後。対話的に `claude` を起動するときにこの行が表示される場合、セッションはゲートウェイからサインアウトして開いています:1757[Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)を介してサインインしており、このマシンに保存されたゲートウェイセッションの有効期限が切れて更新できなかったか、ゲートウェイがそのセッションを受け付けなくなっています。たとえば、ゲートウェイの [JWT シークレットが置き換えられた](/docs/ja/claude-apps-gateway-deploy#jwt-secret-rotation)後などです。`claude` を対話的に起動したときにこの行が表示された場合、セッションはゲートウェイからサインアウトした状態で開かれています。

1747 1758 

1748```text theme={null}1759```text theme={null}

1749Cloud gateway session expired — run /login to reconnect.1760Cloud gateway session expired — run /login to reconnect.

1750```1761```

1751 1762 

1752同じ行はセッション中に表示される場合があります。ゲートウェイ認証情報が有効期限切れになり、Claude Code が更新できないとき。1763ゲートウェイの認証情報の有効期限が切れ、Claude Code がそれを更新できない場合、セッションの途中でも同じ行が表示されることがあります。

1753 1764 

1754[非対話的](/docs/ja/headless) 実行、バックグラウンドまたは他の無人セッション、または `claude` サブコマンド(`claude auth` 以外)では、ゲートウェイがセッションを受け入れなくなったときに Claude Code は代わりにこのメッセージで終了します:1765[非対話](/docs/ja/headless)実行、バックグラウンドセッションやその他の無人セッション、または `claude auth` 以外の `claude` サブコマンドでは、ゲートウェイがセッションを受け付けなくなると、Claude Code は代わりに次のメッセージを表示して終了します。

1755 1766 

1756```text theme={null}1767```text theme={null}

1757Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1768Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

1758```1769```

1759 1770 

1760**対応方法:**1771**対処方法:**

1761 1772 

1762* セッションで `/login` を実行し、ブラウザサインインを完了します1773* セッション内で `/login` を実行し、ブラウザでのサインインを完了してください

1763* 非対話的な起動の場合は、同じ環境で `claude` を起動し、`/login` を実行してから、コマンドを再実行します1774* 非対話で起動している場合は、同じ環境で `claude` を起動して `/login` を実行してから、コマンドを再実行してください

1764 1775 

1765<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">1776<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1766 サインイン中にタイムアウトしました。続行するのを待機しています1777 Sign-in timed out while waiting for you to continue

1767</h3>1778</h3>

1768 1779 

1769[Claude apps gateway](/docs/ja/claude-apps-gateway) サインイン中に、ゲートウェイはサインインしたアカウントに名前を付け、Claude Code はそれを保存する前に確認するよう求めました。ゲートウェイの独自の有効期限を過ぎて確認を開いたままにしておき、ゲートウェイは更新トークンを発行しなかったため、続行したときに Claude Code は何も保存しませんでした:1780[Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)へのサインイン中に、ゲートウェイがサインインしたアカウントを示し、Claude Code は認証情報を保存する前にその確認を求めました。確認画面がサインイン自体の有効期限を過ぎても開いたままになっており、ゲートウェイはそれを更新できるリフレッシュトークンを発行していなかったため、続行したときに Claude Code は何も保存しませんでした。

1770 1781 

1771```text theme={null}1782```text theme={null}

1772Sign-in timed out while waiting for you to continue. Try again.1783Sign-in timed out while waiting for you to continue. Try again.

1773```1784```

1774 1785 

1775**対応方法:**1786**対処方法:**

1776 1787 

1777* `/login` を再度実行し、サインインの有効期限が切れる前にアカウントを確認します1788* `/login` を再度実行し、サインインの有効期限が切れる前にアカウントを確認してください

1778 1789 

1779<h3 id="gateway-refused-the-request">1790<h3 id="gateway-refused-the-request">

1780 ゲートウェイがリクエストを拒否しました1791 Gateway refused the request

1781</h3>1792</h3>

1782 1793 

1783[Claude apps gateway](/docs/ja/claude-apps-gateway) を通じてサインインしており、リクエストが 403 を返しました。ゲートウェイ、またはその背後にあるアップストリームがそれを拒否しました。再度サインインしても拒否は変わらないため、メッセージはゲートウェイ管理者を指しています:1794[Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)を介してサインインしており、リクエストが 403 を返しました。ゲートウェイ、またはその背後のアップストリームがリクエストを拒否しています。再度サインインしても拒否は変わらないため、メッセージはゲートウェイ管理者に問い合わせるよう案内しています。

1784 1795 

1785```text theme={null}1796```text theme={null}

1786Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...1797Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

1787```1798```

1788 1799 

1789**対応方法:**1800**対処方法:**

1790 1801 

1791* ゲートウェイ管理者にリクエストを検索するよう依頼してください。`API Error:` テールはゲートウェイが返した拒否を運びます1802* ゲートウェイ管理者にリクエストを調べるよう依頼してください。`API Error:` の後の部分には、ゲートウェイが返した拒否内容が含まれています

1792* 管理者の場合:ゲートウェイの [アクセス制御ルール](/docs/ja/claude-apps-gateway-config#http-tuning) は、[監査ログ](/docs/ja/claude-apps-gateway-deploy#logs) が理由を記録する 403 を返し、アップストリームの認可拒否は [アップストリームエラーメッセージ](/docs/ja/claude-apps-gateway-config#upstream-error-messages) ごとに渡されます1803* 管理者向け:ゲートウェイの[アクセス制御ルール](/docs/ja/claude-apps-gateway-config#http-tuning)は 403 を返し、[監査ログ](/docs/ja/claude-apps-gateway-deploy#logs)にその理由が記録されます。また、アップストリームの認可拒否は[アップストリームのエラーメッセージ](/docs/ja/claude-apps-gateway-config#upstream-error-messages)に従ってそのまま渡されます

1793 1804 

1794v2.1.273 より前では、ゲートウェイセッションの 403 は一般的な `Please run /login` または `Failed to authenticate` メッセージを表示し、再度サインインしても拒否はクリアされませんでした。1805v2.1.273 より前では、ゲートウェイセッションでの 403 に対して、代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されており、再度サインインしても拒否は解消されませんでした。

1795 1806 

1796<h2 id="network-and-connection-errors">1807<h2 id="network-and-connection-errors">

1797 ネットワークと接続エラー1808 ネットワークと接続エラー


2849* シェルから `claude doctor` を実行して、インストール診断を実行します2860* シェルから `claude doctor` を実行して、インストール診断を実行します

2850 2861 

2851<h2 id="command-line-errors">2862<h2 id="command-line-errors">

2852 コマンドラインエラー2863 コマンドラインのエラー

2853</h2>2864</h2>

2854 2865 

2855これらのエラーは、`claude` コマンドラインとそのサブコマンド、プロンプトで送信するコマンド名、および `/security-review` などのコンテキストを収集するためにシェルコマンドを実行してからプロンプトを実行するコマンドから発生します。また、CLI を再起動する `/tui` からも発生します。2866これらのエラーは、`claude` コマンドラインとそのサブコマンド、プロンプトで送信したコマンド名、および `/security-review` のようにプロンプトの実行前にシェルコマンドを実行してコンテキストを収集するコマンドから発生します。CLI を再起動する `/tui` からも発生します。

2856 2867 

2857<h3 id="conflict-between-bg-and-print">2868<h3 id="conflict-between-bg-and-print">

2858 \--bg と --print の競合2869 `--bg` と `--print` の競合

2859</h3>2870</h3>

2860 2871 

2861このメッセージには Claude Code v2.1.198 以降が必要です。同じ `claude` 呼び出しで `--bg` を `-p` または `--print` と組み合わせました。`--bg` は、後で `claude agents` で接続する[バックグラウンドセッション](/docs/ja/agent-view#from-your-shell)を開始し、`--print` は[非対話的に](/docs/ja/headless)実行され、`claude agents` が接続するインタラクティブセッションを開始しません。v2.1.198 より前は、この組み合わせは暗黙的に接続できないバックグラウンドジョブを作成していました。2872このメッセージには Claude Code v2.1.198 以降が必要です。同じ `claude` の呼び出しで `--bg` と `-p` または `--print` を組み合わせています。`--bg` は後で `claude agents` でアタッチする[バックグラウンドセッション](/docs/ja/agent-view#from-your-shell)を開始しますが、`--print` は[非対話的に](/docs/ja/headless)実行され、`claude agents` がアタッチする対話セッションを開始しません。v2.1.198 より前は、この組み合わせによって、アタッチできないバックグラウンドジョブが何も通知されずに作成されていました。

2862 2873 

2863```text theme={null}2874```text theme={null}

2875--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

2864```2876```

2865 2877 

2866**対処方法:**2878**対処方法:**

2879 

2880* `-p` または `--print` を外します。`--bg` はプロンプトを位置引数として受け取るため、`claude --bg "<task>"` で完全なコマンドになります。[シェルから新しいエージェントをディスパッチする](/docs/ja/agent-view#from-your-shell)を参照してください。

2881* バックグラウンドセッションを作成せずにプロンプトを非対話的に実行して結果を出力するには、`--bg` を外して `claude -p "<task>"` を実行します

2882 

2883<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

2884 システムプロンプトのフラグとそのファイル形式の競合

2885</h3>

2867 2886 

2868* `-p` または `--print` を削除してください。`--bg` はプロンプトを位置引数として受け取るため、`claude --bg "<task>"` が完全なコマンドです。[シェルから新しいエージェントをディスパッチする](/docs/ja/agent-view#from-your-shell)を参照してください。28871 回の `claude` 呼び出しで [`--append-subagent-system-prompt`](/docs/ja/cli-reference#cli-flags) と `--append-subagent-system-prompt-file` を一緒に渡したため、`claude` はセッションを開始せずに終了コード 1 で終了します:

2869* プロンプトを非対話的に実行し、バックグラウンドセッションを作成する代わりに結果を出力するには、`--bg` を削除して `claude -p "<task>"` を実行してください。2888 

2889```text theme={null}

2890Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

2891```

2892 

2893v2.1.283 より前は、`--system-prompt` と `--system-prompt-file`、または `--append-system-prompt` と `--append-system-prompt-file` を一緒に渡した場合も、これらのペアは[組み合わされる](/docs/ja/cli-reference#system-prompt-flags)のではなく競合していたため、`claude` は同じように終了していました。これらのバージョンでは、メッセージに組み合わせたペアの名前が表示されます。

2894 

2895**対処方法:**

2896 

2897* フラグのどちらか一方の形式を残し、もう一方を外します。固定のプロンプトファイルと実行ごとのテキストを組み合わせるには、両方のフラグを渡すのではなく、起動前にテキストをファイルにマージします

2870 2898 

2871<h3 id="invalid-agents-configuration">2899<h3 id="invalid-agents-configuration">

2872 無効な --agents 設定2900 無効な `--agents` 設定

2873</h3>2901</h3>

2874 2902 

2875`--agents` に渡した値が無効なため、`claude` はセッションを開始する代わりに終了コード 1 で終了します。`--safe-mode` を渡すか、[`CLAUDE_CODE_SAFE_MODE`](/docs/ja/env-vars#variables)を設定すると、Claude Code は `--agents` を完全に無視します。`--resume` または `--continue` を使用すると、インライン JSON 値はチェックされず、セッションが開始されます。ファイルから読み込まれた値は、起動するたびにチェックされます。v2.1.242 より前は、Claude Code はセッションを開始していました。2903`--agents` に渡した値が無効なため、`claude` はセッションを開始せずに終了コード 1 で終了します。`--safe-mode` を渡すか [`CLAUDE_CODE_SAFE_MODE`](/docs/ja/env-vars#variables) を設定した場合、Claude Code は `--agents` を完全に無視します。`--resume` または `--continue` を使用した場合、インラインの JSON 値はチェックされずにセッションが開始されますが、ファイルから読み取られた値は起動のたびにチェックされます。v2.1.242 より前は、Claude Code はそれでもセッションを開始していました。

2876 2904 

2877```text theme={null}2905```text theme={null}

2878Error: Invalid --agents configuration:2906Error: Invalid --agents configuration:

2879<what failed>2907<what failed>

2880```2908```

2881 2909 

2882最初の行の後に続く内容は、値がどのように失敗したかによって異なります。Claude Code はこれらのチェックを順番に実行し、最初に失敗したもので停止します。値に 2 種類の問題がある場合、最初の問題を修正した後にのみ 2 番目の問題が表示されます。29101 行目の後に続く内容は、値がどのように失敗したかによって異なります。Claude Code はこれらのチェックを順番に実行し、最初に失敗したチェックで停止します。値に 2 種類の問題がある場合、2 つ目の問題は 1 つ目を修正した後にのみ表示されます:

2883 2911 

28841. 値が `{` で始まるが JSON として解析されない場合、または `--agents` ファイルの内容が解析されない場合、Claude Code は JSON パーサー自体のメッセージを含む 1 つの `invalid JSON:` 行を出力します。29121. 値が `{` で始まっているのに JSON として解析できない場合、または `--agents` ファイルの内容が解析できない場合、Claude Code は JSON パーサー自身のメッセージを含む `invalid JSON:` 行を 1 行出力します

28852. 解析されるが、エージェント定義が [CLI 定義サブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)のスキーマと一致しない場合、Claude Code は問題ごとに 1 行を出力します。29132. 解析はできるものの、エージェント定義が [CLI で定義されたサブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)のスキーマに一致しない場合、Claude Code は問題ごとに 1 行を出力します

28863. エージェント名が `-` で始まる場合、Claude Code は `<name>: agent names must not start with '-'` を出力します。29143. エージェント名が `-` で始まる場合、Claude Code は `<name>: agent names must not start with '-'` を出力します

2887 2915 

2888問題行が 20 行を超える場合、Claude Code は最初の 20 行を出力し、残りを `…and N more` に置き換えます。2916問題の行が 20 行を超える場合、Claude Code は最初の 20 行を出力し、残りを `…and N more` に置き換えます。

2889 2917 

2890`--print` を使用すると、`--agents` は[インラインオブジェクトの代わりに JSON ファイルへのパス](/docs/ja/sub-agents#choose-the-subagent-scope)も受け入れます。v2.1.281 より前は、`--agents` はインライン JSON のみを受け入れ、ファイルパスを無効な JSON として扱いました。ファイル形式には独自の拒否があり、このメッセージの代わりに出力されます。これらを含みます。2918`--print` を使用する場合、`--agents` はインラインオブジェクトの代わりに [JSON ファイルへのパス](/docs/ja/sub-agents#choose-the-subagent-scope)も受け付けます。v2.1.281 より前は、`--agents` はインライン JSON のみを受け付け、ファイルパスは無効な JSON として扱っていました。ファイル形式には独自の拒否メッセージがあり、このメッセージの代わりに出力されます。次のようなものがあります:

2891 2919 

2892* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code はインタラクティブセッションでファイルパスとして値を読み込みました。定義をインライン JSON として渡すか、`-p` を追加してファイルから読み込んでください。2920* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code が対話セッションで値をファイルパスとして読み取りました。定義をインライン JSON として渡すか、`-p` を追加してファイルから読み取ります。

2893* **`Error: --agents file not found: <path>`**: そのパスにファイルが存在しません。`{` で始まらず、有効な JSON ではない値はパスとして読み込まれるため、シェルが破損させたインライン JSON はこのように失敗する可能性があります。パスまたはクォートを確認してから、コマンドを再度実行してください。2921* **`Error: --agents file not found: <path>`**: そのパスにファイルが存在しません。`{` で始まらず有効な JSON でもない値はパスとして読み取られるため、シェルによって崩れたインライン JSON もこのように失敗することがあります。パスまたはクォートを確認して、コマンドを再度実行してください。

2894 2922 

2895**対処方法:**2923**対処方法:**

2896 2924 

2897* メッセージが列挙する各問題を修正してから、コマンドを再度実行してください。[CLI 定義サブエージェントが受け取るフィールド](/docs/ja/sub-agents#choose-the-subagent-scope)を参照してください。2925* メッセージに列挙された各問題を修正してから、コマンドを再度実行します。[CLI で定義されたサブエージェントが受け取るフィールド](/docs/ja/sub-agents#choose-the-subagent-scope)を参照してください。

2898 2926 

2899<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2927<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2900 クラウドセッションは --restricted セッションから作成できません2928 `--restricted` セッションからクラウドセッションを作成できない

2901</h3>2929</h3>

2902 2930 

2903[`--restricted`](/docs/ja/cli-reference#cli-flags)でセッションを開始すると、Claude Code は[クラウドセッション](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)の作成を拒否します。新しいセッションは制限されたプロセスの外で実行され、制限モードを強制しないためです。Claude Code はサーバーに接続する前にクライアント側で拒否するため、クラウドセッションは作成されません。2931[`--restricted`](/docs/ja/cli-reference#cli-flags) を指定してセッションを開始した場合、Claude Code はそのセッションから[クラウドセッション](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)を作成することを拒否します。新しいセッションは制限されたプロセスの外で実行され、制限モードを適用しないためです。Claude Code はサーバーに接続する前にクライアント側で拒否するため、クラウドセッションは作成されません:

2904 2932 

2905```text theme={null}2933```text theme={null}

2906Cloud sessions cannot be created from a --restricted session: they would not enforce it.2934Cloud sessions cannot be created from a --restricted session: they would not enforce it.

2907```2935```

2908 2936 

2909**対処方法:**2937**対処方法:**

2910 2938 

2911* 制限されたセッションでタスクをローカルで実行してください。2939* 制限されたセッション内でタスクをローカルに実行します

2912* セッションの起動方法を制御できる場合は、`--restricted` なしで新しい `claude` セッションを開始し、そこからクラウドセッションを作成してください。2940* セッションの起動方法を制御できる場合は、`--restricted` を指定せずに新しい `claude` セッションを開始し、そこからクラウドセッションを作成します

2913 2941 

2914v2.1.248 より前は、Claude Code に `--restricted` フラグがなく、以前のバージョンはフラグ自体を不明なオプションエラーで拒否します。2942v2.1.248 より前の Claude Code には `--restricted` フラグがありませんでした。それより前のバージョンでは、フラグ自体が不明なオプションのエラーで拒否されます。

2915 2943 

2916<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2944<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2917 クラウドセッションは組織のポリシーで無効になっています2945 クラウドセッションが組織のポリシーによって無効になっている

2918</h3>2946</h3>

2919 2947 

2920組織の `allow_remote_sessions` ポリシーがオフになっているため、[クラウドセッション](/docs/ja/claude-code-on-the-web)とそれを使用するコマンドは利用できません。2948組織の `allow_remote_sessions` ポリシーがオフになっているため、[クラウドセッション](/docs/ja/claude-code-on-the-web)とそれを使用するコマンドは利用できません:

2921 2949 

2922```text theme={null}2950```text theme={null}

2923Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2951Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2924```2952```

2925 2953 

2926このメッセージは、[ターミナルからクラウドセッションを作成](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)するときに表示され、`/teleport`、`/remote-env`、`/web-setup` などのクラウドセッションが必要なコマンドを送信するときにも表示されます。v2.1.268 より前は、これらのコマンドの 1 つを送信すると、代わりに[`Unknown command`](#unknown-command)が返されていました。2954このメッセージは、[ターミナルからクラウドセッションを作成する](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)とき、および`/teleport`、`/remote-env`、`/web-setup` など、クラウドセッションを必要とするコマンドを送信したときに表示されます。v2.1.268 より前は、これらのコマンドを送信すると、代わりに [`Unknown command`](#unknown-command) が返されていました。

2927 2955 

2928これはサーバー側の組織ポリシーであるため、ローカル設定、環境変数、または CLI フラグからオーバーライドすることはできません。2956これはサーバー側の組織ポリシーであるため、ローカル設定、環境変数、CLI フラグで上書きすることはできません。

2929 2957 

2930Claude Code が組織のポリシーをまだ読み込んでいない場合、またはそれを取得できない場合、これらのコマンドは代わりに `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` と答えます。2958Claude Code が組織のポリシーをまだ読み込んでいない場合、または取得できない場合、これらのコマンドは代わりに `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` と応答します。

2931 2959 

2932**対処方法:**2960**対処方法:**

2933 2961 

2934* 組織の[オーナー](/docs/ja/server-managed-settings#access-control)に、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)の Claude Code 管理設定でクラウドセッションを有効にするよう依頼してください。2962* 組織の [Owner](/docs/ja/server-managed-settings#access-control) に、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) の Claude Code 管理設定でクラウドセッションを有効にするよう依頼します

2935* メッセージがポリシーを検証できなかったと言っている場合は、ネットワーク接続を確認してから Claude Code を再起動して、もう一度試してください。2963* メッセージにポリシーを確認できなかったと表示されている場合は、ネットワーク接続を確認してから Claude Code を再起動し、再試行します

2936 2964 

2937<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2965<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2938 \--json-schema 値は有効な JSON Schema ではありません2966 `--json-schema` の値が有効な JSON Schema ではない

2939</h3>2967</h3>

2940 2968 

2941[非対話的モード](/docs/ja/headless#get-structured-output)で [`--json-schema`](/docs/ja/cli-reference#cli-flags)に渡したスキーマが JSON Schema コンパイルに失敗したため、`claude` はプロンプトを実行する代わりに終了コード 1 で終了します。v2.1.205 より前は、無効なスキーマは構造化されていない出力を生成し、`format` キーワードを使用したスキーマは無効として扱われていました。2969[非対話モード](/docs/ja/headless#get-structured-output)で [`--json-schema`](/docs/ja/cli-reference#cli-flags) に渡したスキーマが JSON Schema のコンパイルに失敗したため、`claude` はプロンプトを実行せずに終了コード 1 で終了します。v2.1.205 より前は、無効なスキーマではエラーなしに構造化されていない出力が生成され、`format` キーワードを使用するスキーマはすべて無効として扱われていました。

2942 2970 

2943```text theme={null}2971```text theme={null}

2944Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2972Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2945```2973```

2946 2974 

29472 番目のコロンの後のテキストはバリデータの診断であり、失敗したキーワードまたは場所を示します。`"format": "email"` などの `format` キーワードを使用するスキーマは有効です。Claude Code は `format` を注釈として受け入れ、それを強制しません。29752 つ目のコロンの後のテキストはバリデーターの診断であり、失敗したキーワードまたは場所を示します。`"format": "email"` のように `format` キーワードを使用するスキーマは有効です。Claude Code は `format` を注釈として受け付け、強制はしません。

2948 2976 

2949Claude Code はスキーマコンパイルの前に 2 つのチェックを実行します。解析可能でない JSON 値は `Error: --json-schema is not valid JSON` で拒否され、有効な JSON がオブジェクトでない場合は `Error: --json-schema must be a JSON object` で拒否されます。2977Claude Code はスキーマのコンパイル前に 2 つのチェックを実行します。JSON として解析できない値は `Error: --json-schema is not valid JSON` で拒否し、オブジェクトではない有効な JSON は `Error: --json-schema must be a JSON object` で拒否します。

2950 2978 

2951**対処方法:**2979**対処方法:**

2952 2980 

2953* 診断が示すスキーマの部分を修正してから、コマンドを再実行してください。2981* 診断が示すスキーマの部分を修正してから、コマンドを再実行します

2954* [構造化された出力を取得する](/docs/ja/headless#get-structured-output)で、動作するスキーマとコマンドを参照してください。2982* 動作するスキーマとコマンドについては、[構造化出力を取得する](/docs/ja/headless#get-structured-output)を参照してください

2955 2983 

2956<h3 id="settings-file-exceeds-the-2mib-limit">2984<h3 id="settings-file-exceeds-the-2mib-limit">

2957 設定ファイルが 2MiB の制限を超えています2985 設定ファイルが 2MiB の制限を超えている

2958</h3>2986</h3>

2959 2987 

2960[`--settings`](/docs/ja/cli-reference#cli-flags)に渡したファイルが 2 MiB より大きいため、`claude` は起動時に終了コード 1 で終了し、それを読み込みません。v2.1.214 より前は、Claude Code はサイズチェックなしでファイルを読み込み、数ギガバイトのファイルまたは `/dev/zero` などのデバイスファイルはメモリを無制限に増やしていました。2988[`--settings`](/docs/ja/cli-reference#cli-flags) に渡したファイルが 2 MiB を超えているため、`claude` は起動時にファイルを読み込まずに終了コード 1 で終了します。v2.1.214 より前は、Claude Code はサイズチェックなしでファイルを読み取っていたため、数ギガバイトのファイルや `/dev/zero` などのデバイスファイルによってメモリが際限なく増加していました。

2961 2989 

2962```text theme={null}2990```text theme={null}

2963Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2991Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2964```2992```

2965 2993 

2966Claude Code は、通常のファイルではない `--settings` パスも同じ方法で拒否します。デバイス、FIFO、またはソケットは `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` の後にパスを報告し、ディレクトリは `EISDIR` 理由を報告します。2994Claude Code は、通常のファイルではない `--settings` パスも同じように拒否します。デバイス、FIFO、ソケットの場合は `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` の後にパスが表示され、ディレクトリの場合は理由として `EISDIR` が表示されます。

2967 2995 

2968**対処方法:**2996**対処方法:**

2969 2997 

2970* `--settings` を 2 MiB 未満の通常の JSON 設定ファイルを指すようにしてください。形式については[設定](/docs/ja/settings)を参照してください。2998* `--settings` に 2 MiB 未満の通常の JSON 設定ファイルを指定します。形式については[設定](/docs/ja/settings)を参照してください。

2971 2999 

2972<h3 id="the-current-directory-no-longer-exists">3000<h3 id="the-current-directory-no-longer-exists">

2973 現在のディレクトリが存在しなくなりました3001 現在のディレクトリが存在しなくなった

2974</h3>3002</h3>

2975 3003 

2976シェルがディレクトリに入った後、別のシェルが削除または移動したワークツリーまたは一時ディレクトリなど、削除または移動されたディレクトリから `claude` を開始しました。Claude Code は作業ディレクトリを読み取ることができないため、インタラクティブモードと[非対話的](/docs/ja/headless)モードの両方で、セッションを開始する前に終了コード 1 で終了します。v2.1.239 より前は、Claude Code は縮小されたバンドルソースと生の `ENOENT ... uv_cwd` スタックを stderr に出力してクラッシュしていました。3004シェルがディレクトリに入った後に削除または移動されたディレクトリ(たとえば、別のシェルが削除した worktree や一時ディレクトリ)から `claude` を開始しました。Claude Code は作業ディレクトリを読み取れないため、対話モードでも[非対話モード](/docs/ja/headless)でも、セッションを開始する前に終了コード 1 で終了します。v2.1.239 より前は、このメッセージの代わりに、Claude Code が minify されたバンドルのソースと生の `ENOENT ... uv_cwd` スタックを stderr に出力してクラッシュしていました。

2977 3005 

2978```text theme={null}3006```text theme={null}

2979The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3007The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

2980error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.3008error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2981```3009```

2982 3010 

2983原因と修正は両方の形式で同じです。3011どちらの形式でも、原因と修正方法は同じです。

2984 3012 

2985Claude Code が権限の変更など別の理由で作業ディレクトリを読み取ることができない場合、メッセージはエラーコードを示します。`Can't read the current directory (EACCES). Start Claude Code from a different directory.`3013権限の変更など、別の理由で Claude Code が作業ディレクトリを読み取れない場合、メッセージには代わりにエラーコードが表示されます: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2986 3014 

2987macOS では、`~/Desktop`、`~/Documents`、`~/Downloads`、または iCloud Drive のディレクトリの `EPERM` は通常、macOS がターミナルアプリをそのフォルダからブロックしていることを意味します。そのフォルダを読み取る他のコマンドも同じ方法で失敗します。`ls` はそこで `Operation not permitted` を報告します。`sudo` を使用しても同じです。3015macOS では、`~/Desktop`、`~/Documents`、`~/Downloads`、または iCloud Drive 内のディレクトリに対する `EPERM` は、通常、macOS がターミナルアプリからそのフォルダーへのアクセスをブロックしていることを意味します。そのフォルダーを読み取る他のコマンドも同じように失敗します。そこで `ls` を実行すると、`sudo` を使っても `Operation not permitted` が報告されます。

2988 3016 

2989**対処方法:**3017**対処方法:**

2990 3018 

2991* ホームディレクトリやプロジェクトディレクトリなど、存在するディレクトリに変更してから、`claude` を再度実行してください。3019* ホームディレクトリやプロジェクトディレクトリなど、存在するディレクトリに移動してから、`claude` を再度実行します

2992* ディレクトリが同じパスで再作成された場合、シェルはまだ削除されたものを保持しています。`cd "$PWD"` を実行するか、ディレクトリを出て再度入ってから、`claude` を実行してください。3020* ディレクトリが同じパスに再作成された場合、シェルは削除された方のディレクトリをまだ保持しています。`cd "$PWD"` を実行するか、ディレクトリから出て再度入ってから、`claude` を再度実行します

2993* macOS の `EPERM` の場合は、Cmd+Q でターミナルアプリを終了し、再度開いて、そのフォルダに戻り、`claude` を実行してください。そのフォルダの `ls` がまだ失敗する場合は、**システム設定 > プライバシーとセキュリティ > ファイルとフォルダ**を開き、ターミナルアプリのフォルダをオンにしてから、ターミナルを再度開いてください。3021* macOS の `EPERM` の場合は、Cmd+Q でターミナルアプリを終了して再度開き、そのフォルダーに戻って `claude` を実行します。それでもそのフォルダーで `ls` が失敗する場合は、**システム設定 > プライバシーとセキュリティ > ファイルとフォルダ**を開き、ターミナルアプリに対してそのフォルダーをオンにしてから、ターミナルを開き直します

2994 3022 

2995<h3 id="temp-directory-refused-or-cannot-be-created">3023<h3 id="temp-directory-refused-or-cannot-be-created">

2996 一時ディレクトリが拒否されたか、作成できません3024 一時ディレクトリが拒否された、または作成できない

2997</h3>3025</h3>

2998 3026 

2999macOS と Linux では、Claude Code は起動時にプライベート一時ディレクトリを作成します。`claude-<uid>` はシステム一時ディレクトリまたは [`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars)オーバーライドの下にあります。ディレクトリを作成できない場合、またはそのパスにある既存のエントリが安全性チェックに失敗する場合、Claude Code は失敗を stderr に出力し、セッションを開始する代わりに終了コード 1 で終了します。3027macOS と Linux では、Claude Code は起動時に、システムの一時ディレクトリまたは [`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) で上書きした場所の下に、プライベートな一時ディレクトリ `claude-<uid>` を作成します。ディレクトリを作成できない場合、またはそのパスに既に存在するエントリが安全性チェックに失敗した場合、Claude Code は失敗内容を stderr に出力し、セッションを開始せずに終了コード 1 で終了します:

3000 3028 

3001```text wrap theme={null}3029```text wrap theme={null}

3002ENOSPC: no space left on device, mkdir '/tmp/claude-501'3030ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3009Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.3036Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

3010```3037```

3011 3038 

3012**対処方法:**3039**対処方法:**

3013 3040 

3014* `ENOSPC` の場合は、一時ディレクトリを保持するボリュームのディスク領域を解放してください。3041* `ENOSPC` の場合は、一時ディレクトリを含むボリュームのディスク容量を空けます

3015* `Refusing to use it` の形式の場合は、リンクが指すものではなく、名前付きエントリ自体を削除し、Claude Code を再度開始してください。`owned by uid` の形式の場合は、管理者またはそのユーザーのみがそれを削除できます。3042* `Refusing to use it` の形式の場合は、リンク先ではなく、名前が示されたエントリ自体を削除してから Claude Code を再度起動します。`owned by uid` の形式の場合は、管理者またはそのユーザーのみが削除できます

3016* `is not readable` の場合は、名前付きディレクトリで `chmod 0700` を実行するか、削除して再度開始してください。3043* `is not readable` の場合は、名前が示されたディレクトリに対して `chmod 0700` を実行するか、ディレクトリを削除してから再度起動します

3017* これらのいずれかの場合は、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars)を制御するディレクトリに設定し、Claude Code を開始してください。拒否されたパスはそのままにしてください。3044* いずれの場合も、拒否されたパスはそのままにして、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を自分が管理するディレクトリに設定し、Claude Code を再度起動できます

3018 3045 

3019<h3 id="directory-couldnt-be-resolved-to-a-real-location">3046<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3020 ディレクトリを実際の場所に解決できませんでした3047 ディレクトリを実際の場所に解決できなかった

3021</h3>3048</h3>

3022 3049 

3023作業ディレクトリのサブディレクトリに対して `/add-dir` を実行しましたが、Claude Code はディレクトリを実際の場所に解決できませんでした。3050作業ディレクトリのサブディレクトリに対して `/add-dir` を実行しましたが、Claude Code がそのディレクトリを実際の場所に解決できませんでした。

3024 3051 

3025作業ディレクトリのサブディレクトリへのファイルアクセスは既にあるため、`/add-dir` はそのスキル、コマンド、エージェントのみを読み込みます。それらを読み込む前に、Claude Code はディレクトリの実際の場所(シンボリックリンクが解決されている)が作業ディレクトリ内にあることを確認します。Claude Code がその場所を解決できない場合、何も読み込まず、このメッセージを表示します。3052作業ディレクトリのサブディレクトリには既にファイルアクセス権があるため、`/add-dir` はそのスキル、コマンド、エージェントのみを読み込みます。これらを読み込む前に、Claude Code はシンボリックリンクを解決したディレクトリの実際の場所が作業ディレクトリ内にあることを確認します。Claude Code がその場所を解決できない場合、何も読み込まずに次のメッセージを表示します:

3026 3053 

3027```text theme={null}3054```text theme={null}

3028packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3055packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.

3029```3056```

3030 3057 

3031**対処方法:**3058**対処方法:**

3032 3059 

3033* パスが作業ディレクトリ内の実際のディレクトリを示していることを確認してから、`/add-dir` を再度実行してください。3060* パスが作業ディレクトリ内の実在するディレクトリを指していることを確認してから、`/add-dir` を再度実行します

3034* メッセージはファイルアクセスを変更しません。ディレクトリの `.claude/` コンテンツが読み込まれなかったことのみを報告します。3061* このメッセージはファイルアクセスを変更しません。ディレクトリの `.claude/` の内容が読み込まれなかったことを報告するだけです

3035 3062 

3036v2.1.261 より前は、作業ディレクトリが `/net/<host>` オートマウント上にある場合、すべての `/add-dir <subdirectory>` に対してこのメッセージが表示されていました。Claude Code は設計上パスを解決することを拒否します。ディレクトリは問題なく、再試行は役に立ちません。3063v2.1.261 より前は、作業ディレクトリが `/net/<host>` の自動マウント上にある場合、すべての `/add-dir <subdirectory>` でもこのメッセージが表示されていました。この場所では Claude Code は設計上パスの解決を行わないため、ディレクトリに問題がなくても再試行では解決できませんでした。

3037 3064 

3038<h3 id="workspace-not-trusted-when-starting-remote-control">3065<h3 id="workspace-not-trusted-when-starting-remote-control">

3039 Remote Control 開始時にワークスペースが信頼されていません3066 Remote Control の開始時にワークスペースが信頼されていない

3040</h3>3067</h3>

3041 3068 

3042[Remote Control](/docs/ja/remote-control)サーバーモードを `claude remote-control` またはそのエイリアス `claude rc` で、信頼していないディレクトリで開始しました。コマンドはワークスペース信頼ダイアログを表示できないため、終了コード 1 で終了します。3069信頼していないディレクトリで `claude remote-control` またはそのエイリアスの `claude rc` を使用して [Remote Control](/docs/ja/remote-control) のサーバーモードを開始しましたが、コマンドがそのディレクトリを信頼するかどうかを尋ねることができませんでした。たとえば、リダイレクトまたはパイプされているために、コマンドの標準入力または標準出力がターミナルではない場合です。コマンドは終了コード 1 で終了します:

3043 3070 

3044```text theme={null}3071```text theme={null}

3045Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3072Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3046```3073```

3047 3074 

30482 つのバリアントも `Error: Workspace not trusted.` で始まり、ターミナルでも表示されます。ターミナルが小さすぎて、ディレクトリの信頼がオンになるものを表示できない場合、またはサイズを報告しなかった場合です。ウィンドウを拡大するか、通常のターミナルウィンドウに切り替えてから、`claude rc` を再度実行してください。3075同じく `Error: Workspace not trusted.` で始まる 2 つのバリエーションは、ディレクトリを信頼することで有効になる内容を表示するにはターミナルが小さすぎる場合、またはターミナルがサイズを報告しなかった場合に表示されます。ウィンドウを拡大するか通常のターミナルウィンドウに切り替えてから、`claude rc` を再度実行してください。

3049 3076 

3050ホームディレクトリではメッセージが異なります。ワークスペース信頼ダイアログはホームディレクトリの信頼を保存しないため、そこで受け入れることはこのチェックを満たすことができません。v2.1.214 より前は、ホームディレクトリは上記のメッセージを表示していました。そのアドバイスはそこで成功することはできません。3077ホームディレクトリでは、ワークスペースの信頼ダイアログがホームディレクトリの信頼を保存しないため、そこでダイアログを承認してもこのチェックを満たすことができません。そのため、メッセージが異なります。v2.1.214 より前は、ホームディレクトリでも上記のメッセージが表示されていましたが、その助言はホームディレクトリでは成功しません。

3051 3078 

3052```text theme={null}3079```text theme={null}

3053Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3080Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3054```3081```

3055 3082 

3056[`Trust <directory>?` 質問](/docs/ja/remote-control#requirements)で `n` を答えるか Enter を押すと、コマンドはディレクトリに名前を付ける `Remote Control did not start` メッセージを出力し、終了コード 1 で終了します。`claude rc` を再度実行して `y` で答えてください。3083[`Trust <directory>?` の質問](/docs/ja/remote-control#requirements)で `n` と答えるか Enter を押した場合、コマンドはディレクトリ名を含む `Remote Control did not start` メッセージを出力し、終了コード 1 で終了します。`claude rc` を再度実行して `y` と答えてください。

3057 3084 

3058**対処方法:**3085**対処方法:**

3059 3086 

3060* ターミナルから最初にディレクトリを信頼してください。そこで `claude rc` を実行して `y` で答えるか、そこで `claude` を実行して[ワークスペース信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を受け入れてから、元のコマンドを再度実行してください。3087* まずターミナルからディレクトリを信頼します。そのディレクトリで `claude rc` を実行して `y` と答えるか、そこで `claude` を実行して[ワークスペースの信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を承認してから、元のコマンドを再度実行します

3061* ホームディレクトリでは、プロジェクトディレクトリに変更して、そこで Remote Control を開始してください。3088* ホームディレクトリにいる場合は、プロジェクトディレクトリに移動してそこで Remote Control を開始します

3062 3089 

3063v2.1.284 より前は、コマンドはターミナルでも尋ねませんでした。3090v2.1.284 より前は、ターミナル内であってもコマンドは質問しませんでした。

3064 3091 

3065<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3092<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3066 Remote Control が開始するセッションに引き継がれません3093 Remote Control が開始するセッションに引き継がれない

3067</h3>3094</h3>

3068 3095 

3069`remote-control` 動詞の前にグローバル `claude` フラグを使用して[Remote Control](/docs/ja/remote-control)を開始しました。Remote Control が開始するセッションを制限または設定するフラグ(`--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools`、`--mcp-config` など)です。動詞の前に配置されたフラグはこれらのセッションに到達しません。Claude Code は代わりに開始を拒否し、フラグを示します。3096`remote-control` 動詞の前にグローバルな `claude` フラグを付けて [Remote Control](/docs/ja/remote-control) を開始しました。このフラグは、`--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools`、`--mcp-config` など、Remote Control が開始するセッションを制限または設定するものです。動詞の前に置かれたフラグは、これらのセッションには届きません。Claude Code は代わりに、フラグの名前を示して開始を拒否します:

3070 3097 

3071```text theme={null}3098```text theme={null}

3072Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3099Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

3073```3100```

3074 3101 

3075Claude Code は、`--verbose`、`--model`、またはラッパーが注入した `--session-id` や `--plugin-dir` など、削除しても害のないグローバルフラグを拒否しません。それらを無視し、Remote Control は開始します。3102`--verbose`、`--model`、またはラッパーによって挿入された `--session-id` や `--plugin-dir` など、外しても問題のないグローバルフラグについては、Claude Code は拒否しません。これらは無視され、Remote Control が開始されます。

3076 3103 

3077Claude Code はまた、まだ害のないものとして認識していないグローバルフラグを拒否するため、新しいリリースで追加されたフラグは、後のリリースでそれを害のないものとしてマークするまで、このメッセージに表示される可能性があります。3104Claude Code は、まだ無害と認識していないグローバルフラグに対しても開始を拒否します。そのため、新しいリリースで追加されたフラグは、後のリリースで無害とマークされるまでこのメッセージに表示されることがあります。

3078 3105 

3079**対処方法:**3106**対処方法:**

3080 3107 

3081* 動詞の前からフラグを削除し、[Remote Control 独自のオプション](/docs/ja/remote-control#start-a-remote-control-session)をその後に渡してください。`claude remote-control --help` がそれらをリストします。3108* 動詞の前からフラグを削除し、[Remote Control 独自のオプション](/docs/ja/remote-control#start-a-remote-control-session)を動詞の後に渡します。`claude remote-control --help` でオプションの一覧を確認できます

3082* 拒否されたフラグが `--permission-mode` の場合は、`claude remote-control --permission-mode <mode>` を実行して、Remote Control が開始するセッションの権限モードを設定してください。3109* 拒否されたフラグが `--permission-mode` の場合は、`claude remote-control --permission-mode <mode>` を実行して、Remote Control が開始するセッションの権限モードを設定します

3083 3110 

3084v2.1.248 より前は、`claude remote-control` はグローバルフラグが最初に来たときに独自のフラグを受け入れず、コマンドは不明なオプションエラーで失敗していました。3111v2.1.248 より前は、グローバルフラグが先に来ると `claude remote-control` は独自のフラグを受け付けず、コマンドは `unknown option` エラーで失敗していました。

3085 3112 

3086<h3 id="claude-import-is-not-yet-available-in-this-build">3113<h3 id="claude-import-is-not-yet-available-in-this-build">

3087 claude import はこのビルドではまだ利用できません3114 このビルドでは claude import はまだ利用できない

3088</h3>3115</h3>

3089 3116 

3090[`claude import`](/docs/ja/cli-reference#cli-commands)を実行しましたが、Claude Code はインポートフローがオフになっていることを検出したため、コマンドは終了コード 1 で終了し、インポートを開始する代わりにこのメッセージを出力します。v2.1.222 より前は、インポートフローがオフのビルドは `import` をプロンプトとして扱い、このメッセージを出力する代わりにインタラクティブセッションを開始していました。3117[`claude import`](/docs/ja/cli-reference#cli-commands) を実行しましたが、Claude Code がインポートフローがオフになっていることを検出したため、コマンドはインポートを開始せずに終了コード 1 で終了します。v2.1.222 より前は、インポートフローがオフのビルドでは `import` がプロンプトとして扱われ、このメッセージを出力する代わりに対話セッションが開始されていました。

3091 3118 

3092```text theme={null}3119```text theme={null}

3093`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3120`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3094```3121```

3095 3122 

3096Claude Code は、Anthropic から取得してディスクにキャッシュするフィーチャーフラグを通じて `claude import` をオンにします。このメッセージは、キャッシュされた値がオフであることを意味します。原因は通常、以下のいずれかです。3123Claude Code は、Anthropic から取得してディスクにキャッシュする機能フラグによって `claude import` をオンにします。このメッセージは、キャッシュされた値がオフであることを意味します。原因は通常、次のいずれかです:

3097 3124 

3098* インストール後にセッションを開始していないため、Claude Code はまだフラグを取得していません。最初の `claude import` は、フィーチャーが利用可能な場合でもこれを出力できます。3125* インストール後にまだセッションを開始していないため、Claude Code がフラグをまだ取得していません。機能が利用可能な場合でも、最初の `claude import` でこのメッセージが出力されることがあります。

3099* Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または[Claude apps gateway](/docs/ja/claude-apps-gateway#availability-and-limitations)を通じて Claude Code を使用しています。Claude Code はこれらのセッションでフィーチャーフラグを取得しないため、`claude import` は利用できません。3126* Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway#availability-and-limitations)を通じて Claude Code を使用しています。これらのセッションでは Claude Code は機能フラグを取得しないため、`claude import` は利用できないままです。

3100* `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK`、または [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars)を設定しました。これらはフィーチャーフラグ取得をオフにするため、`claude import` は利用できません。3127* 機能フラグの取得をオフにする `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK`、または [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) を設定しているため、`claude import` は利用できないままです。

3101 3128 

3102**対処方法:**3129**対処方法:**

3103 3130 

3104* 新規インストールでは、`claude` を開始し、セッションが読み込まれるのを待ってから終了し、`claude import` を再度実行してください。3131* 新規インストールの場合は、`claude` を開始してセッションが読み込まれるのを待ち、終了してから `claude import` を再度実行します

3105* フィーチャーフラグ取得がオフのままの場合は、設定を自分で設定してください。[`claude mcp add`](/docs/ja/mcp#installing-mcp-servers)で MCP サーバーを追加し、[`CLAUDE.md` ファイル](/docs/ja/memory#how-claude-md-files-load)、[スキルとコマンド](/docs/ja/skills#where-skills-live)、[サブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)を作成してください。メッセージは `~/.claude/settings.json` も示します。`claude import` が引き継ぐ設定のうち、そのファイルは[権限モード](/docs/ja/settings-reference#permission-settings)のみを保持します。Claude Code はそこから MCP サーバーを読み込みません。3132* 機能フラグの取得がオフのままの環境では、設定を自分で行います。[`claude mcp add`](/docs/ja/mcp#installing-mcp-servers) で MCP サーバーを追加し、引き継ぎたい [`CLAUDE.md` ファイル](/docs/ja/memory#how-claude-md-files-load)、[スキルとコマンド](/docs/ja/skills#where-skills-live)、[サブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)を作成します。メッセージには `~/.claude/settings.json` も示されています。`claude import` が引き継ぐ設定のうち、このファイルが保持するのは[権限モード](/docs/ja/settings-reference#permission-settings)のみです。Claude Code はこのファイルから MCP サーバーを読み取りません。

3106 3133 

3107<h3 id="could-not-read-claude-code-config">3134<h3 id="could-not-read-claude-code-config">

3108 Claude Code 設定を読み込めませんでした3135 Claude Code の設定を読み取れなかった

3109</h3>3136</h3>

3110 3137 

3111ログインとプロジェクトごとの状態を保存するファイル `~/.claude.json` を解析できない間に [`claude import`](/docs/ja/cli-reference#cli-commands)を実行しました。サブコマンドはそのファイルを読み込んで可用性を確認しますが、インタラクティブセッションが表示する復旧ダイアログを表示しないため、終了コード 1 で終了します。v2.1.222 より前は、`claude import` は読み込み不可能な設定ファイルでインタラクティブセッションを開始し、その復旧ダイアログがファイルを処理していました。3138Claude Code がログイン情報とプロジェクトごとの状態を保存するファイル `~/.claude.json` を解析できない状態で、[`claude import`](/docs/ja/cli-reference#cli-commands) を実行しました。このサブコマンドは利用可否を確認するためにこのファイルを読み取りますが、対話セッションが表示する復旧ダイアログは表示しないため、終了コード 1 で終了します。v2.1.222 より前は、設定ファイルを読み取れない状態で `claude import` を実行すると対話セッションが開始され、その復旧ダイアログでファイルが処理されていました。

3112 3139 

3113```text theme={null}3140```text theme={null}

3114Could not read Claude Code config — run `claude` with no arguments to recover it.3141Could not read Claude Code config — run `claude` with no arguments to recover it.

3115```3142```

3116 3143 

3117**対処方法:**3144**対処方法:**

3118 3145 

3119* 引数なしで `claude` を実行してください。Claude Code は無効なファイルを検出し、リセットを提供します。その後、`claude import` を再度実行してください。3146* 引数なしで `claude` を実行します。Claude Code は無効なファイルを検出し、リセットを提案します。その後、`claude import` を再度実行します。

3120* 手動で編集した内容を保持するには、エディタで `~/.claude.json` の JSON 構文を修正してから、`claude import` を再度実行してください。3147* 手動で行った編集を残したい場合は、代わりにエディターで `~/.claude.json` の JSON 構文を修正してから、`claude import` を再実行します

3121 3148 

3122<h3 id="could-not-import-a-server-from-claude-desktop">3149<h3 id="could-not-import-a-server-from-claude-desktop">

3123 Claude Desktop からサーバーをインポートできませんでした3150 Claude Desktop からサーバーをインポートできなかった

3124</h3>3151</h3>

3125 3152 

3126Claude Code は `claude mcp add-from-claude-desktop` で選択したサーバーの 1 つを追加できませんでした。コマンドは他の選択されたサーバーをインポートし、追加できなかったサーバーごとに 1 行を出力します。v2.1.205 より前は、失敗した最初のサーバーがインポートを停止していました。3153`claude mcp add-from-claude-desktop` で選択したサーバーの 1 つを Claude Code が追加できませんでした。コマンドは選択した他のサーバーのインポートを続行し、追加できなかったサーバーごとに 1 行を出力します。v2.1.205 より前は、最初に失敗したサーバーでインポートが停止していました。

3127 3154 

3128```text theme={null}3155```text theme={null}

3129Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3156Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3130```3157```

3131 3158 

3132サーバー名の後のテキストは理由です。最も一般的なのは名前チェックです。Claude Desktop はサーバー名に空白やピリオドなどの文字を許可しますが、`claude mcp` はそれらを文字、数字、ハイフン、アンダースコアに制限しています。その他の理由には、検証に失敗するサーバー設定と、組織の [MCP ポリシー](/docs/ja/managed-mcp)によってブロックされるサーバーが含まれます。3159サーバー名の後のテキストが理由です。最も一般的なのは名前のチェックです。Claude Desktop ではサーバー名にスペースやピリオドなどの文字を使用できますが、`claude mcp` は英字、数字、ハイフン、アンダースコアのみに制限しています。その他の理由には、検証に失敗するサーバー設定や、組織の [MCP ポリシー](/docs/ja/managed-mcp)によってブロックされているサーバーがあります。

3133 3160 

3134**対処方法:**3161**対処方法:**

3135 3162 

3136* `claude_desktop_config.json` でサーバーの名前を変更して、文字、数字、ハイフン、アンダースコアのみを使用してから、`claude mcp add-from-claude-desktop` を再度実行してください。3163* `claude_desktop_config.json` でサーバー名を英字、数字、ハイフン、アンダースコアのみを使用するように変更してから、`claude mcp add-from-claude-desktop` を再度実行します

3137* `claude mcp add` または `claude mcp add-json` を使用して、有効な名前でそのサーバーを直接追加してください。[Claude Desktop から MCP サーバーをインポートする](/docs/ja/mcp#import-mcp-servers-from-claude-desktop)を参照してください。3164* `claude mcp add` または `claude mcp add-json` を使用して、有効な名前でそのサーバーを直接追加します。[Claude Desktop から MCP サーバーをインポートする](/docs/ja/mcp#import-mcp-servers-from-claude-desktop)を参照してください。

3138 3165 

3139<h3 id="cannot-add-mcp-server-to-the-managed-scope">3166<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3140 MCP サーバーを管理スコープに追加できません3167 managed スコープに MCP サーバーを追加できない

3141</h3>3168</h3>

3142 3169 

3143`--scope managed` を使用して `claude mcp add` または `claude mcp add-json` を実行しました。そのスコープは、[`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers)管理設定を通じて組織が提供するサーバーを保持しています。Claude Code はそれらを管理設定からのみ読み込むため、コマンドはそのスコープにサーバーを書き込むことができません。3170`--scope managed` を指定して `claude mcp add` または `claude mcp add-json` を実行しました。このスコープには、組織が [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) 管理設定を通じて提供するサーバーが格納されます。Claude Code はこれらを管理設定からのみ読み取るため、コマンドはこのスコープにサーバーを書き込むことができません。

3144 3171 

3145```text theme={null}3172```text theme={null}

3146Cannot add MCP server to scope: managed3173Cannot add MCP server to scope: managed

3147```3174```

3148 3175 

3149**対処方法:**3176**対処方法:**

3150 3177 

3151* 書き込み可能なスコープにサーバーを追加してください。`local`、`user`、または `project`。`--scope` なしで、コマンドは `local` を使用します。[MCP インストールスコープ](/docs/ja/mcp#mcp-installation-scopes)を参照してください。3178* 書き込み可能なスコープ(`local`、`user`、または `project`)にサーバーを追加します。`--scope` を指定しない場合、コマンドは `local` を使用します。[MCP のインストールスコープ](/docs/ja/mcp#mcp-installation-scopes)を参照してください

3152* 組織内のすべてのユーザーにサーバーを提供するには、デプロイする管理設定の [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers)に追加してください。3179* 組織内のすべてのユーザーにサーバーを提供するには、デプロイする管理設定の [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) にサーバーを追加します

3153 3180 

3154<h3 id="cant-read-mcp-json">3181<h3 id="cant-read-mcp-json">

3155 .mcp.json を読み込めません3182 .mcp.json を読み取れない

3156</h3>3183</h3>

3157 3184 

3158プロジェクトの [`.mcp.json`](/docs/ja/mcp#project-scope)を読み込むコマンド(`--scope project` を使用した `claude mcp add` または `claude mcp add-json`、または `claude mcp remove`)は、現在のディレクトリのファイルが通常のファイルではないか、2 MiB より大きいことを検出したため、ファイルを読み込む代わりにこのエラーで終了します。3185`--scope project` を指定した `claude mcp add` や `claude mcp add-json`、または `claude mcp remove` など、プロジェクトの [`.mcp.json`](/docs/ja/mcp#project-scope) を読み取るコマンドが、現在のディレクトリにあるこのファイルが通常のファイルではないか 2 MiB を超えていることを検出したため、ファイルを読み取らずにこのエラーで終了します。

3159 3186 

3160```text theme={null}3187```text theme={null}

3161Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3188Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3162```3189```

3163 3190 

3164v2.1.257 より前は、`.mcp.json` の FIFO はコマンドを出力なしで永遠に待機させ、`/dev/zero` などのデバイスファイルへのシンボリックリンクはプロセスが強制終了されるまでメモリを増やしていました。3191v2.1.257 より前は、`.mcp.json` が FIFO の場合はコマンドが出力なしで永久に待機し、`/dev/zero` などのデバイスファイルへのシンボリックリンクの場合はプロセスが強制終了されるまでメモリが増加していました。

3165 3192 

3166**対処方法:**3193**対処方法:**

3167 3194 

3168* 現在のディレクトリの `.mcp.json` に何があるかを確認してください。[プロジェクトスコープ形式](/docs/ja/mcp#project-scope)の通常の JSON ファイルに置き換えるか、削除してから、コマンドを再度実行してください。3195* 現在のディレクトリの `.mcp.json` に何があるかを確認します。[プロジェクトスコープの形式](/docs/ja/mcp#project-scope)の通常の JSON ファイルに置き換えるか削除してから、コマンドを再度実行します。

3169 3196 

3170<h3 id="mcp-server-was-not-saved-or-removed">3197<h3 id="mcp-server-was-not-saved-or-removed">

3171 MCP サーバーは保存されたか削除されませんでした3198 MCP サーバーが保存または削除されなかった

3172</h3>3199</h3>

3173 3200 

3174`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しました。両方のスコープは `~/.claude.json` に保存され、書き込み後に Claude Code がそれを読み込むときに変更がそのファイルにありません。コマンドは成功行の代わりにこのエラーで終了します。3201`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しました。どちらのスコープも `~/.claude.json` に保存されますが、書き込み後に Claude Code がファイルを読み戻したとき、変更がファイルに反映されていませんでした。コマンドは成功メッセージの代わりにこのエラーで終了します。

3175 3202 

3176```text theme={null}3203```text theme={null}

3177MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3204MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3178```3205```

3179 3206 

3180削除後、メッセージは `was not removed from` を読み、`then remove the server again` で終わります。`local` スコープサーバーの場合、パスの後にサーバーが属するプロジェクトディレクトリが `(local scope for /path/to/project)` として続きます。3207削除の場合、メッセージは `was not removed from` となり、`then remove the server again` で終わります。`local` スコープのサーバーの場合、パスの後にエントリが属するプロジェクトディレクトリが `(local scope for /path/to/project)` として続きます。

3181 3208 

3182v2.1.283 より前は、`claude mcp add`、`claude mcp add-json`、`claude mcp remove` は変更がファイルに到達しなかった場合でも成功を報告していました。3209v2.1.283 より前は、`claude mcp add`、`claude mcp add-json`、`claude mcp remove` は、変更がファイルに反映されなかった場合でも成功を報告していました。

3183 3210 

3184**対処方法:**3211**対処方法:**

3185 3212 

3186* メッセージが示すファイルを書き込み可能にするか、サンドボックスの外でコマンドを実行してから、同じ追加または削除コマンドを再度実行してください。3213* メッセージに示されたファイルを書き込み可能にするか、サンドボックスの外でコマンドを実行してから、同じ追加または削除のコマンドを再度実行します。

3187 3214 

3188<h3 id="mcp-server-may-not-have-been-saved-or-removed">3215<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3189 MCP サーバーは保存されたか削除されなかった可能性があります3216 MCP サーバーが保存または削除されていない可能性がある

3190</h3>3217</h3>

3191 3218 

3192`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しました。Claude Code は `~/.claude.json` を読み込んで変更を確認できませんでした。変更はディスク上にあるかもしれません。括弧内のテキストはその読み込みからのエラーです。3219`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しましたが、Claude Code が変更を確認するために `~/.claude.json` を読み戻すことができませんでした。変更がディスクに反映されているかどうかは不明です。括弧内のテキストは、その読み取りで発生したエラーです。

3193 3220 

3194```text theme={null}3221```text theme={null}

3195MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3222MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3196```3223```

3197 3224 

3198削除後、メッセージは `may not have been removed` を読み、`then remove the server again if it is still listed` で終わります。3225削除の場合、メッセージは `may not have been removed` となり、`then remove the server again if it is still listed` で終わります。

3199 3226 

3200v2.1.283 より前は、コマンドは変更を確認できなかった場合でも成功を報告していました。3227v2.1.283 より前は、変更を確認できなかった場合でも、これらのコマンドは成功を報告していました。

3201 3228 

3202**対処方法:**3229**対処方法:**

3203 3230 

3204* `claude mcp get <name>` を実行して、変更がディスク上にあるかどうかを確認してください。`local` スコープサーバーの場合は、サーバーが属するプロジェクトディレクトリから実行してください。ローカルスコープはプロジェクトごとです。3231* `claude mcp get <name>` を実行して、変更がディスクに反映されているかどうかを確認します。`local` スコープのサーバーの場合、ローカルスコープはプロジェクトごとであるため、サーバーが属するプロジェクトディレクトリから実行します。

3205* サーバーが追加後に欠落している場合、または削除後もリストされている場合は、同じ追加または削除コマンドを再度実行してください。3232* 追加後にサーバーが見つからない場合、または削除後もまだ一覧に表示される場合は、同じ追加または削除のコマンドを再度実行します。

3206 3233 

3207<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3234<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3208 サーバーは Anthropic ホストで、ローカル OAuth をサポートしていません3235 サーバーが Anthropic によってホストされており、ローカル OAuth をサポートしていない

3209</h3>3236</h3>

3210 3237 

3211URL が Anthropic ホストのコネクタホストを指す MCP サーバーのサインインを開始しました。これらのホストには `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com`、`gcal.mcp.claude.com` が含まれます。Claude Code は、[サインインが claude.ai を通じてのみ機能する](/docs/ja/mcp#use-mcp-servers-from-claude-ai)ため、`/mcp` パネルと `claude mcp login` の両方からこれらのホストのローカル OAuth フローを開始することを拒否します。3238サードパーティの ID プロバイダーを通じて認証を行う、Anthropic がホストするコネクタホストを URL が指している MCP サーバーのサインインを開始しました。これらのホストには、`microsoft365.mcp.claude.com`、`gmail.mcp.claude.com`、`gcal.mcp.claude.com` が含まれます。[これらのサインインは claude.ai を通じてのみ機能する](/docs/ja/mcp#use-mcp-servers-from-claude-ai)ため、Claude Code は `/mcp` パネルと `claude mcp login` のどちらからも、これらのホストに対するローカル OAuth フローの開始を拒否します。

3212 3239 

3213```text theme={null}3240```text theme={null}

3214"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3241"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

3215```3242```

3216 3243 

3217**対処方法:**3244**対処方法:**

3218 3245 

3219* `claude mcp remove <name>` でエントリを削除して、同じ URL の claude.ai コネクタを非表示にすることができないようにしてください。3246* 同じ URL の claude.ai コネクタを隠してしまわないよう、`claude mcp remove <name>` でエントリを削除します

3220* 削除した後、[claude.ai/customize/connectors](https://claude.ai/customize/connectors)で Claude Code で使用するアカウントにサインインしながらサービスを接続してください。接続すると、アクティブな認証方法が claude.ai サブスクリプションログインの場合、[コネクタは Claude Code に自動的に表示されます](/docs/ja/mcp#use-mcp-servers-from-claude-ai)。3247* 削除後、Claude Code で使用しているアカウントにサインインした状態で、[claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサービスを接続します。接続されると、有効な認証方法が claude.ai のサブスクリプションログインであれば、[コネクタは Claude Code に自動的に表示されます](/docs/ja/mcp#use-mcp-servers-from-claude-ai)

3221 3248 

3222<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3249<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3223 サーバーは設定された headersHelper によって作成された Authorization ヘッダーを拒否しました3250 設定された headersHelper が生成した Authorization ヘッダーをサーバーが拒否した

3224</h3>3251</h3>

3225 3252 

3226[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication)が `Authorization` ヘッダーを提供する MCP サーバーが HTTP 401 または 403 で接続に応答したため、Claude Code は接続を失敗として報告します。ヘルパーが `Authorization` ヘッダーを提供するため、Claude Code は[リモート MCP サーバーで OAuth に認証](/docs/ja/mcp#authenticate-with-remote-mcp-servers)しません。3253[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) が `Authorization` ヘッダーを提供する MCP サーバーが接続に対して HTTP 401 または 403 を返したため、Claude Code は接続が失敗したと報告します。ヘルパーが `Authorization` ヘッダーを提供しているため、Claude Code はこのサーバーに対して [OAuth にフォールバックしません](/docs/ja/mcp#authenticate-with-remote-mcp-servers):

3227 3254 

3228```text theme={null}3255```text theme={null}

3229Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3256Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3230```3257```

3231 3258 

3232Claude Code は接続試行のたびにヘルパーを再実行するため、一時的な拒否(トークンローテーションレースなど)の後の再試行は、新しい認証情報で成功する可能性があります。3259Claude Code は接続を試行するたびにヘルパーを再実行するため、トークンのローテーションの競合など一時的な拒否の後であれば、再試行によって新しい認証情報で成功することがあります。

3233 3260 

3234**対処方法:**3261**対処方法:**

3235 3262 

3236* `headersHelper` コマンドを、Claude Code が実行する方法で自分で実行してください。[Claude Code が実行するディレクトリ](/docs/ja/mcp#where-the-helper-runs)から、[Claude Code が設定する環境変数](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication)を使用して、[Claude Code が削除する認証情報変数](/docs/ja/mcp#which-variables-a-helper-can-read)なしで、プロジェクト `.mcp.json`、プラグイン、またはプロジェクトエージェントファイルのサーバーの場合。サーバーのエンドポイントが受け入れる `Authorization` 値を出力することを確認してください。3263* Claude Code が実行するのと同じ方法で `headersHelper` コマンドを自分で実行します。つまり、[Claude Code がヘルパーを実行するディレクトリ](/docs/ja/mcp#where-the-helper-runs)から、[Claude Code がヘルパーに設定する環境変数](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication)を使い、プロジェクトの `.mcp.json`、プラグイン、またはプロジェクトのエージェントファイルに由来するサーバーの場合は [Claude Code が削除する認証情報の変数](/docs/ja/mcp#which-variables-a-helper-can-read)を除いて実行します。サーバーのエンドポイントが受け付ける `Authorization` の値が出力されることを確認してください

3237* ヘルパーまたはその認証情報ソースを修正した後、`/mcp` でサーバーを選択し、**再接続**を選択してください。3264* ヘルパーまたはその認証情報のソースを修正した後、`/mcp` でサーバーを選択し、**Reconnect** を選びます

3238 3265 

3239v2.1.248 より前は、Claude Code はヘルパーが `Authorization` ヘッダーを提供するサーバーの OAuth ディスカバリーを実行していました。そのディスカバリーは、拒否された認証情報を報告する代わりに `Incompatible auth server: does not support dynamic client registration` で失敗する可能性があります。3266v2.1.248 より前は、ヘルパーが `Authorization` ヘッダーを提供するサーバーに対しても Claude Code は OAuth ディスカバリーを実行していました。そのディスカバリーは、拒否された認証情報を報告する代わりに `Incompatible auth server: does not support dynamic client registration` で失敗することがありました。

3240 3267 

3241<h3 id="mcp-permission-prompt-tool-not-found">3268<h3 id="mcp-permission-prompt-tool-not-found">

3242 MCP 権限プロンプトツールが見つかりません3269 MCP の権限プロンプトツールが見つからない

3243</h3>3270</h3>

3244 3271 

3245[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags)に渡したツールは、実行が最初に権限決定を必要とするときに接続された MCP ツールの中にありませんでした。サーバーが接続されなかったか、接続されたサーバーがその名前のツールを公開していないためです。Claude Code はまだプロンプトを送信します。[非対話的](/docs/ja/headless)実行は、承認が必要な最初のツール呼び出しでこのエラーで終了し、終了コード 1 で終了するため、リクエストが行われたにもかかわらず答えを生成しません。最初のプロンプトの前に、Claude Code は [`MCP_TIMEOUT`](/docs/ja/env-vars)で設定されたサーバーごとの接続タイムアウト 30 秒までそのサーバーの接続を待ちます。v2.1.206 より前は、起動は接続の完了を待たなかったため、遅く開始しても健全なサーバーはこのエラーを生成していました。3272[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) に渡したツールが、実行で最初に権限の判断が必要になった時点で、接続済みの MCP ツールの中にありませんでした。原因は、そのサーバーが接続されなかったか、接続済みのサーバーがその名前のツールを公開していないかのいずれかです。Claude Code はプロンプトを送信したうえで、[非対話](/docs/ja/headless)実行は最初のツール呼び出しの時点でこのエラーと終了コード 1 で終了します。そのため、リクエストは行われたにもかかわらず回答は生成されません。最初のプロンプトの前に、Claude Code は [`MCP_TIMEOUT`](/docs/ja/env-vars) で設定されるサーバーごとの接続タイムアウト(30 秒)まで、そのサーバーの接続を待機します。v2.1.206 より前は、起動時にサーバーの接続完了を待たなかったため、起動は遅いものの正常なサーバーでもこのエラーが発生していました。

3246 3273 

3247```text theme={null}3274```text theme={null}

3248Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3275Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3249```3276```

3250 3277 

3251`Available MCP tools:` の後のリストは、待機が終了したときに接続されていた MCP ツールを示します。3278`Available MCP tools:` の後の一覧には、接続されていた MCP ツールの名前が示されます。

3252 3279 

3253**対処方法:**3280**対処方法:**

3254 3281 

3255* サーバーが開始して接続されたままであることを確認してください。同じディレクトリで `claude mcp list` を実行し、サーバーが接続済みとしてリストされていることを確認してください。3282* サーバーが起動して接続を維持していることを確認します。同じディレクトリで `claude mcp list` を実行し、サーバーが接続済みとして一覧に表示されることを確認してください

3256* ツール名がサーバーが公開する `mcp__<server>__<tool>` 名と一致することを確認してください。3283* ツール名が、サーバーが公開する `mcp__<server>__<tool>` の名前と一致していることを確認します

3257* サーバーが開始するのに 30 秒以上必要な場合は、[`MCP_TIMEOUT`](/docs/ja/env-vars)を上げてください。3284* サーバーの起動に 30 秒を超える時間が必要な場合は、[`MCP_TIMEOUT`](/docs/ja/env-vars) を引き上げます

3258 3285 

3259<h3 id="oauth-callback-port-is-already-in-use">3286<h3 id="oauth-callback-port-is-already-in-use">

3260 OAuth コールバックポートは既に使用中です3287 OAuth コールバックポートが既に使用されている

3261</h3>3288</h3>

3262 3289 

3263OAuth を使用してリモート MCP サーバーにサインインするとき、Claude Code はサインインコールバックを受け取るためのローカルリスナーを開始します。そのリスナーが必要とするポートが別のプロセスによって保持されている場合、サインインはこのメッセージで失敗します。これは主に、[`MCP_OAUTH_CALLBACK_PORT`](/docs/ja/env-vars)変数または `--callback-port` を通じて設定された[固定コールバックポート](/docs/ja/mcp#use-a-fixed-oauth-callback-port)で発生します。1 つがない場合、Claude Code は利用可能なポートを選択するためです。3290OAuth でリモート MCP サーバーにサインインすると、Claude Code はサインインのコールバックを受け取るためのローカルリスナーを開始します。そのリスナーが必要とするポートを別のプロセスが保持している場合、サインインはこのメッセージで失敗します。Claude Code は固定ポートが指定されていなければ利用可能なポートを選ぶため、この問題は主に、[`MCP_OAUTH_CALLBACK_PORT`](/docs/ja/env-vars) 変数または `--callback-port` で[固定のコールバックポート](/docs/ja/mcp#use-a-fixed-oauth-callback-port)を設定している場合に発生します。

3264 3291 

3265```text theme={null}3292```text theme={null}

3266OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3293OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

3267```3294```

3268 3295 

3269Windows では、提案されたコマンドは代わりに `netstat -ano | findstr :<port>` です。3296Windows では、代わりに `netstat -ano | findstr :<port>` が提案されます。

3270 3297 

3271**対処方法:**3298**対処方法:**

3272 3299 

3273* メッセージからコマンドを実行して、ポートを保持しているプロセスを見つけ、それを停止するか、完了するのを待ってください。3300* メッセージに示されたコマンドを実行してポートを保持しているプロセスを特定し、そのプロセスを停止するか終了を待ちます

3274* 別のプログラムがそのポートを永続的に必要とする場合は、サーバーに別のリダイレクト URI を登録し、`MCP_OAUTH_CALLBACK_PORT` または `--callback-port` を使用してそのポートを設定してください。どちらを使用するかに関わらず。3301* 別のプログラムがそのポートを恒常的に必要とする場合は、サーバーに別のリダイレクト URI を登録し、`MCP_OAUTH_CALLBACK_PORT` または `--callback-port` のうち使用している方でそのポートを設定します

3275* その後、サインインを再度開始してください。例えば、`/mcp` でサーバーを選択することで。3302* その後、`/mcp` でサーバーを選択するなどして、サインインを再度開始します

3276 3303 

3277<h3 id="no-available-ports-for-oauth-redirect">3304<h3 id="no-available-ports-for-oauth-redirect">

3278 OAuth リダイレクト用の利用可能なポートがありません3305 OAuth リダイレクトに使用できるポートがない

3279</h3>3306</h3>

3280 3307 

3281[OAuth](/docs/ja/mcp#authenticate-with-remote-mcp-servers)を使用してリモート MCP サーバーにサインインするとき、Claude Code はサインインコールバックを受け取るためのローカルリスナーを開始します。Claude Code がそれのためにローカルポートをバインドできない場合、サインインはこのメッセージで失敗します。マシン上の何かが `127.0.0.1` でのリッスンを防止しています。例えば、セキュリティソフトウェアまたはローカルリスナーを拒否するサンドボックスポリシーです。3308[OAuth](/docs/ja/mcp#authenticate-with-remote-mcp-servers) でリモート MCP サーバーにサインインすると、Claude Code はサインインのコールバックを受け取るためのローカルリスナーを開始します。Claude Code がそのためのローカルポートをバインドできない場合、サインインはこのメッセージで失敗します。マシン上の何かが `127.0.0.1` でのリッスンを妨げています。たとえば、ローカルリスナーを拒否するセキュリティソフトウェアやサンドボックスポリシーです。

3282 3309 

3283```text theme={null}3310```text theme={null}

3284No available ports for OAuth redirect3311No available ports for OAuth redirect

3285```3312```

3286 3313 

3287v2.1.268 より前は、Claude Code はオペレーティングシステムが割り当てたポートにフォールバックしなかったため、メッセージは Claude Code が選択したポート範囲をカバーする Hyper-V が予約するポートのみがバインドできない場合にも表示されていました。これは Windows ホストで発生する可能性があります。3314v2.1.268 より前は、Claude Code はオペレーティングシステムが割り当てるポートにフォールバックしなかったため、自身で選んだポートをバインドできなかっただけの場合にもこのメッセージが表示されていました。これは、Claude Code がポートを選ぶ範囲を Hyper-V が予約している Windows ホストで発生することがあります。

3288 3315 

3289**対処方法:**3316**対処方法:**

3290 3317 

3291* セキュリティソフトウェアまたはサンドボックスポリシーが `127.0.0.1` でのリッスンをプロセスからブロックしているかどうかを確認し、Claude Code がローカルポートをバインドできるようにしてください。3318* セキュリティソフトウェアやサンドボックスポリシーが `127.0.0.1` でのプロセスのリッスンをブロックしていないかを確認し、Claude Code がローカルポートをバインドできるようにします

3292* その後、サインインを再度開始してください。例えば、`/mcp` でサーバーを選択することで。3319* その後、`/mcp` でサーバーを選択するなどして、サインインを再度開始します

3293 3320 

3294<h3 id="security-review-fails-without-origin-head">3321<h3 id="security-review-fails-without-origin-head">

3295 /security-review は origin/HEAD なしで失敗します3322 origin/HEAD がないと /security-review が失敗する

3296</h3>3323</h3>

3297 3324 

3298[`/security-review`](/docs/ja/commands#all-commands)は、ブランチを `origin/HEAD` に対して差分することで、レビューコンテキストを構築します。`origin/HEAD` は、`origin` リモートのデフォルトブランチがどれであるかを記録するローカル ref です。その ref が存在しない場合、差分を収集する git コマンドは失敗し、レビューは開始する前に停止します。3325[`/security-review`](/docs/ja/commands#all-commands) は、ブランチと `origin/HEAD` の差分を取ることでレビューのコンテキストを構築します。`origin/HEAD` は、`origin` リモートでどのブランチがデフォルトかを記録するローカルの ref です。この ref が存在しない場合、差分を収集する git コマンドが失敗し、レビューは開始前に停止します。

3299 3326 

3300```text theme={null}3327```text theme={null}

3301Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3328Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3304'git <command> [<revision>...] -- [<file>...]'3331'git <command> [<revision>...] -- [<file>...]'

3305```3332```

3306 3333 

3307メッセージは `git log` または別の `git diff` を引用する可能性があります。Git は、リモートがデフォルトブランチをアドバタイズし、フェッチ refspec がそれをカバーする場合にのみ `origin/HEAD` を作成します。これは、リモートへのコミット付きの完全な `git clone` です。ref は次のセットアップで欠落しています。3334メッセージには、代わりに `git log` や別の `git diff` が引用されることもあります。Git が `origin/HEAD` を作成するのは、リモートがデフォルトブランチを公開していて、フェッチの refspec がそれをカバーしている場合のみです。コミットを持つリモートを完全に `git clone` した場合はこれに該当します。次のような構成では ref が存在しません:

3308 3335 

3309* シングルブランチまたは CI チェックアウト。これは refspec を狭くフェッチします。3336* シングルブランチまたは CI のチェックアウトで、フェッチする refspec が狭すぎる場合

3310* サーバー側の HEAD がだれも押していないブランチを指すリモート。3337* サーバー側の HEAD が、誰もプッシュしていないブランチを指しているリモート

3311* `origin` リモートがないか、フェッチしたことがないリポジトリ。3338* `origin` リモートがないリポジトリ、または一度もフェッチしていないリポジトリ

3312 3339 

3313Claude Code は、[動的コンテキストを注入する](/docs/ja/skills#when-an-injected-command-fails)スキルに対して同じエラーを表示し、失敗した注入コマンドはそのスキルの呼び出しを中止します。コマンドが実行される前に 2 つの兄弟文字列が発火します。3340Claude Code は、[動的コンテキストを注入する](/docs/ja/skills#when-an-injected-command-fails)すべてのスキルで同じエラーを表示し、注入されたコマンドが失敗するとそのスキルの呼び出しは中止されます。関連する 2 つのメッセージは、コマンドが実行される前の段階で発生します:

3314 3341 

3315* `Shell command permission check failed for pattern "..."`: コマンドの権限チェックはそれを許可しませんでした。[注入コマンドの権限チェック](/docs/ja/skills#permission-checks-on-injected-commands)は、各権限モードでどの結果が中止されるか、および `allowed-tools` でコマンドを事前承認する方法をカバーしています。3342* `Shell command permission check failed for pattern "..."`: コマンドの権限チェックで許可されませんでした。[注入されたコマンドの権限チェック](/docs/ja/skills#permission-checks-on-injected-commands)では、各権限モードでどの結果が中止につながるか、および `allowed-tools` でコマンドを事前承認する方法を説明しています

3316* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: スキルの frontmatter は bash を要求していますが、マシンにはそれがありません。Git for Windows をインストールするか、frontmatter を `shell: powershell` に変更してください。[注入コマンドの実行方法](/docs/ja/skills#how-injected-commands-run)を参照してください。3343* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: スキルのフロントマターが、bash のないマシンで bash を要求しています。Git for Windows をインストールするか、フロントマターを `shell: powershell` に変更してください。[注入されたコマンドの実行方法](/docs/ja/skills#how-injected-commands-run)を参照してください

3317 3344 

3318**対処方法:**3345**対処方法:**

3319 3346 

3320* リモートのデフォルトブランチを示して ref を作成してください。`git remote set-head origin <default-branch>`。これは、ローカル追跡 ref `origin/<default-branch>` が存在するときはいつでも機能します。シングルブランチクローンのように存在しない場合は、最初にブランチをフェッチしてください。`git remote set-branches --add origin <branch>` を実行してから、`git fetch origin` を実行してから、set-head コマンドを再実行してください。`/security-review` を再実行してください。3347* リモートのデフォルトブランチを指定して ref を作成します: `git remote set-head origin <default-branch>`。これは、ローカルの追跡 ref `origin/<default-branch>` が存在する限り機能します。シングルブランチのクローンなどで存在しない場合は、まずブランチをフェッチします。`git remote set-branches --add origin <branch>` を実行し、次に `git fetch origin` を実行してから、set-head コマンドを再実行します。その後、`/security-review` を再実行します。

3321* ブランチに名前を付けたくない場合は、`git fetch origin` を実行してから `git remote set-head origin --auto` を実行してください。これはリモートにどのブランチがデフォルトであるかを尋ねます。リモートがデフォルトブランチをアドバタイズしないため、`error: Cannot determine remote HEAD` で失敗します。空であるか、その HEAD がだれも押していないブランチを指しているため、代わりにブランチを明示的に示してください。クローンがそのブランチをフェッチしないため、`error: Not a valid ref` で失敗します。上記のように refspec を広げてください。3348* ブランチを指定したくない場合は、`git fetch origin` を実行してから `git remote set-head origin --auto` を実行します。これにより、どのブランチがデフォルトかをリモートに問い合わせます。リモートが空であるか、HEAD が誰もプッシュしていないブランチを指しているためにデフォルトブランチを公開していない場合、`error: Cannot determine remote HEAD` で失敗します。その場合は代わりにブランチを明示的に指定します。クローンがそのブランチをフェッチしていない場合は `error: Not a valid ref` で失敗します。まず上記のように refspec を広げてください。

3322* リポジトリにリモートがない場合は、`git remote add origin <url>` で追加してからフェッチしてください。リモートが空の場合は、`git push -u origin HEAD` でブランチをプッシュしてから、set-head コマンドでそのブランチに名前を付けてください。`origin/HEAD` はプッシュしたばかりのブランチを指すため、`/security-review` はブランチがそれから分岐するまで空の差分を見ます。3349* リポジトリにリモートがない場合は、`git remote add origin <url>` でリモートを追加し、ref を作成する前にフェッチします。リモートが空の場合は、まず `git push -u origin HEAD` でブランチをプッシュし、set-head コマンドでそのブランチを指定します。すると `origin/HEAD` はプッシュしたばかりのブランチを指すため、ブランチがそこから分岐するまで `/security-review` には空の差分が表示されます。

3323 3350 

3324<h3 id="input-must-be-provided-when-using-print">3351<h3 id="input-must-be-provided-when-using-print">

3325 \--print を使用する場合は入力を提供する必要があります3352 `--print` を使用する場合は入力を指定する必要がある

3326</h3>3353</h3>

3327 3354 

3328ベアの `claude` は、インタラクティブ UI を開始するために stdout がターミナルである必要があります。stdout がリダイレクトされるか、コンソールが実際のターミナルではない場合(PowerShell ISE や一部の IDE 出力ペインなど)、`claude` は代わりに[非対話的に](/docs/ja/headless)実行されます。これは `claude -p` と同じモードであり、プロンプトが必要なため、メッセージはフラグを渡さなかった場合でも `--print` を示します。プロンプトなしで `-p`/`--print` を渡し、stdin に何もパイプされていない場合、どこでも同じエラーが発生します。3355引数なしの `claude` が対話 UI を開始するには、stdout がターミナルである必要があります。stdout がリダイレクトされている場合、またはコンソールが実際のターミナルではない場合(PowerShell ISE や一部の IDE の出力ペインなど)、`claude` は代わりに[非対話的に](/docs/ja/headless)実行されます。これは `claude -p` と同じモードであり、プロンプトが必要です。そのため、フラグを渡していなくてもメッセージには `--print` が示されます。プロンプトを指定せず stdin にも何もパイプしないで `-p`/`--print` を渡した場合も、どこでも同じエラーが発生します。

3329 3356 

3330```text theme={null}3357```text theme={null}

3331Error: Input must be provided either through stdin or as a prompt argument when using --print3358Error: Input must be provided either through stdin or as a prompt argument when using --print

3332```3359```

3333 3360 

3334**対処方法:**3361**対処方法:**

3335 3362 

3336* インタラクティブ使用の場合は、実際のターミナルで `claude` を実行してください。Windows Terminal または PowerShell コンソール(ISE ではなく)、IDE の統合ターミナル(出力ペインではなく)。3363* 対話的に使用するには、実際のターミナルで `claude` を実行します。ISE ではなく Windows Terminal または PowerShell コンソールを使用し、出力ペインではなく IDE の統合ターミナルを使用してください

3337* ワンショット使用の場合は、プロンプトを渡してください。`claude -p "your question"`、またはパイプで `echo "your question" | claude -p`。3364* 1 回限りの使用では、プロンプトを渡します: `claude -p "your question"`。または `echo "your question" | claude -p` でパイプします

3338 3365 

3339<h3 id="input-contained-only-whitespace">3366<h3 id="input-contained-only-whitespace">

3340 入力に空白のみが含まれていました3367 入力が空白文字のみだった

3341</h3>3368</h3>

3342 3369 

3343[非対話的モード](/docs/ja/headless)では、Claude Code は、API がテキストのないメッセージを拒否するため、空白、タブ、または改行のみで構成されるプロンプトを送信する代わりに拒否します。表示されるメッセージは、空白のプロンプトがどこから来たかによって異なります。3370[非対話モード](/docs/ja/headless)では、API が表示可能なテキストを含まないメッセージを拒否するため、Claude Code はスペース、タブ、改行のみで構成されたプロンプトを送信せずに拒否します。表示されるメッセージは、空のプロンプトがどこから来たかによって異なります:

3344 3371 

3345* **`claude -p` のプロンプト引数またはパイプされた stdin**: `claude` は `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` で終了します。3372* **`claude -p` のプロンプト引数またはパイプされた stdin**: `claude` は `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` で終了します

3346* **実行中の `--input-format stream-json` または [Agent SDK](/docs/ja/agent-sdk/overview)セッションに送信されたメッセージ**: Claude Code はモデルを呼び出さずにターンを終了し、セッションは使用可能なままです。拒否は情報メッセージとしてターンの結果テキストとして到着します。`Blank prompt — the message was only whitespace, so nothing was sent to the model.`3373* **実行中の `--input-format stream-json` または [Agent SDK](/docs/ja/agent-sdk/overview) セッションに送信されたメッセージ**: Claude Code はモデルを呼び出さずにターンを終了し、セッションは引き続き使用できます。拒否は情報メッセージとして、またターンの結果テキストとして届きます: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3347 3374 

3348v2.1.229 より前は、Claude Code は空白のみのメッセージを API に送信し、API は 400 エラーで要求を拒否していました。3375v2.1.229 より前は、Claude Code は空白文字のみのメッセージを API に送信し、API はそのリクエストを 400 エラーで拒否していました。

3349 3376 

3350**対処方法:**3377**対処方法:**

3351 3378 

3352* プロンプトに表示されるテキストを含めてください。スクリプトが変数またはファイルからプロンプトを構築する場合は、Claude Code を呼び出す前にソースが空でないことを確認してください。3379* プロンプトに表示可能なテキストを含めます。スクリプトが変数やファイルからプロンプトを組み立てる場合は、Claude Code を呼び出す前にソースが空でないことを確認してください。

3353 3380 

3354<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3381<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3355 stream-json 入力は改行なしで 256M 文字を超えました3382 stream-json 入力が改行なしで 256M 文字を超えた

3356</h3>3383</h3>

3357 3384 

3358プログラムは `claude -p --input-format stream-json` 実行に stdin で改行なしで 268,435,456 文字以上を送信したため、Claude Code はこのエラーを stderr に出力し、終了コード 1 で終了し、より多くの入力をバッファリングする代わりに終了します。メッセージはその予算を `256M` として示します。v2.1.257 より前は、Claude Code はそのような入力を無制限にバッファリングし、プロセスがクラッシュするか強制終了されるまでメモリを増やしていました。3385プログラムが `claude -p --input-format stream-json` の実行に対して、改行なしで 268,435,456 文字を超える入力を stdin に送信したため、Claude Code はそれ以上入力をバッファリングせず、このエラーを stderr に出力して終了コード 1 で終了します。メッセージではこの上限を `256M` と表記しています。v2.1.257 より前は、Claude Code はこのような入力を無制限にバッファリングし、プロセスがクラッシュするか強制終了されるまでメモリが増加していました。

3359 3386 

3360```text theme={null}3387```text theme={null}

3361Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3388Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3362```3389```

3363 3390 

3364改行なしのこのような長い入力は通常、プロデューサーが stream-json プロデューサーではないことを意味します。例えば、バイナリファイルまたは誤ってパイプされたプレーンログ出力。予算を超える単一のメッセージは同じチェックに失敗します。3391改行なしでこれほど長い入力がある場合、通常はプロデューサーがそもそも stream-json のプロデューサーではないことを意味します。たとえば、バイナリファイルやプレーンなログ出力を誤ってパイプした場合です。1 つのメッセージが上限を超えた場合も、同じチェックで失敗します。

3365 3392 

3366**対処方法:**3393**対処方法:**

3367 3394 

3368* stdin にパイプされているものを確認してください。[`--input-format stream-json`](/docs/ja/cli-reference#cli-flags)を使用すると、すべてのメッセージは 1 つの改行で終了する JSON 行である必要があります。3395* stdin に何がパイプされているかを確認します。[`--input-format stream-json`](/docs/ja/cli-reference#cli-flags) では、すべてのメッセージが改行で終わる 1 行の JSON である必要があります

3369* プレーンテキストを代わりに送信するには、`--input-format stream-json` を削除してください。`claude -p` はデフォルトで stdin からプレーンテキストプロンプトを読み込みます。3396* 代わりにプレーンテキストを送信するには、`--input-format stream-json` を外します。`claude -p` はデフォルトで stdin からプレーンテキストのプロンプトを読み取ります

3370 3397 

3371<h3 id="unknown-command">3398<h3 id="unknown-command">

3372 不明なコマンド3399 不明なコマンド

3373</h3>3400</h3>

3374 3401 

3375このセッションのコマンドと一致しない `/` 名を送信したため、Claude Code は何も実行する代わりに名前を報告します。3402対話型のターミナルセッションで、このセッションのどのコマンドにも一致しない `/` 名を送信したため、Claude Code は何も実行せずにその名前を報告します:

3376 3403 

3377```text theme={null}3404```text theme={null}

3378Unknown command: /hepl. Did you mean /help?3405Unknown command: /hepl. Did you mean /help?

3379```3406```

3380 3407 

3381Claude Code は、このセッションのメニューにリストされている最も近いコマンド名またはエイリアスを提案します。何も近い場合、メッセージは名前の後で終了します。原因は通常、以下のいずれかです。3408Claude Code は、このセッションのメニューに表示される中で最も近いコマンド名またはエイリアスを提案します。近いものがない場合、メッセージは名前の後で終わります。原因は通常、次のいずれかです:

3382 3409 

3383* `/hepl` から `/help` への入力ミスなどのタイプミス。[コマンドメニューが入力と一致する方法](/docs/ja/commands#how-the-command-menu-matches-what-you-type)は、送信する前に近い一致を選択することをカバーしています。3410* `/help` を `/hepl` と入力するようなタイプミス。[コマンドメニューが入力内容と照合する方法](/docs/ja/commands#how-the-command-menu-matches-what-you-type)では、送信前に近い候補を選ぶ方法を説明しています

3384* コマンドが存在しますが、プラットフォーム、プラン、認証方法などの要件が満たされていないため、このセッションでは利用できません。[`/web-setup`](/docs/ja/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command)と [`/schedule`](/docs/ja/routines#schedule-returns-unknown-command)のトラブルシューティングエントリは 2 つの一般的なケースを説明しています。一部のコマンドは、組織のポリシーが無効にしている場合、[`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)などの独自のメッセージで答えます。3411* プラットフォーム、プラン、認証方法などの要件を満たしていないために、このセッションでは利用できない既存のコマンド。[`/web-setup`](/docs/ja/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) と [`/schedule`](/docs/ja/routines#schedule-returns-unknown-command) のトラブルシューティング項目では、よくある 2 つのケースを説明しています。一部のコマンドは、組織のポリシーによって無効化されている場合に、[`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy) のような独自のメッセージで応答します

3385* このセッションにインストールまたは接続されていない[プラグイン](/docs/ja/plugins)または [MCP サーバー](/docs/ja/mcp#use-mcp-prompts-as-commands)からのコマンド。3412* このセッションでインストールまたは接続されていない[プラグイン](/docs/ja/plugins/overview)や [MCP サーバー](/docs/ja/mcp#use-mcp-prompts-as-commands)のコマンド

3386 3413 

3387Claude Code は、一致しない `/` 名をインタラクティブターミナルセッションでのみこのように答えます。他のすべてのセッションでは、プロンプトを通常のメッセージとして Claude に送信し、コマンドが実行されなかったこと、および Claude がセッションで実行できるコマンドのリストを示します。これらのセッションには以下が含まれます。3414Claude Code が一致しない `/` 名にこのように応答するのは、対話型のターミナルセッションのみです。それ以外のすべてのセッションでは、コマンドが実行されなかったことを示す注記と、そのセッションで Claude が実行できるコマンドの一覧を添えて、プロンプトを通常のメッセージとして Claude に送信します。これらのセッションには次のものが含まれます:

3388 3415 

3389* `-p` 実行3416* `-p` による実行

3390* [Agent SDK](/docs/ja/agent-sdk/overview)アプリケーション3417* [Agent SDK](/docs/ja/agent-sdk/overview) アプリケーション

3391* [Desktop app](/docs/ja/desktop)の Code タブ3418* [デスクトップアプリ](/docs/ja/desktop)の Code タブ

3392* [VS Code extension](/docs/ja/vs-code)のチャットパネル3419* [VS Code 拡張機能](/docs/ja/vs-code)のチャットパネル

3393* [クラウドセッション](/docs/ja/claude-code-on-the-web)と[ルーチン](/docs/ja/routines)3420* [クラウドセッション](/docs/ja/claude-code-on-the-web)と[ルーティン](/docs/ja/routines)

3394 3421 

3395これらのセッションの 1 つで実行できない組み込みコマンドの場合、Claude Code はコマンドが利用できないことを答えます。v2.1.274 より前は、クラウドセッションとルーチンのみが一致しない名前を Claude に送信していました。v2.1.273 より前は、それらも `Unknown command` で答えていました。3422これらのセッションで実行できない組み込みコマンドの場合、Claude Code はそれを Claude に送信せず、引き続きコマンドが利用できないと応答します。v2.1.274 より前は、一致しない名前を Claude に送信していたのはクラウドセッションとルーティンのみでした。v2.1.273 より前は、これらも `Unknown command` と応答していました。

3396 3423 

3397Claude Code は、`/` で始まるすべてのプロンプトをコマンドとして扱うわけではありません。最初の単語の後の `/` が句読点で始まる場合(Lean ドキュメントコメントを開く `/--` など)、またはパス(`/var/log/syslog` など)である場合、プロンプトを通常のメッセージとして Claude に送信します。3424Claude Code は、`/` で始まるすべてのプロンプトをコマンドとして扱うわけではありません。`/` の後の最初の単語が句読点で始まる場合(Lean のドキュメントコメントを開始する `/--` など)や、`/var/log/syslog` のようなパスである場合は、プロンプトを通常のメッセージとして Claude に送信します。

3398 3425 

3399v2.1.236 より前は、コマンドメニューが入力した名前の近い一致をリストしている間に `Enter` を押すと、Claude Code はその一致を実行したため、`/hepl` などのタイプミスはこのメッセージを生成する代わりに `/help` を実行していました。3426v2.1.236 より前は、入力した名前に近い候補をコマンドメニューが表示している状態で `Enter` を押すと、Claude Code はその候補を実行していました。そのため、`/hepl` のようなタイプミスでは、このメッセージを表示する代わりに `/help` が実行されていました。

3400 3427 

3401**対処方法:**3428**対処方法:**

3402 3429 

3403* 提案された名前を実行するか、`/` の後に名前の一部を入力して、このセッションで利用可能なものを確認してください。3430* 提案された名前を実行するか、`/` に続けて名前の一部を入力し、このセッションで利用できるものを確認します

3404* Claude Code が文書化されたコマンドを不明として報告する場合は、[コマンドリファレンス](/docs/ja/commands)でその行を確認して、それが示す要件を確認してください。3431* ドキュメントに記載されているコマンドを Claude Code が不明と報告する場合は、[コマンドリファレンス](/docs/ja/commands)でそのコマンドの行を確認し、記載された要件を確認します

3405 3432 

3406<h3 id="diff-is-too-large-for-ultrareview">3433<h3 id="diff-is-too-large-for-ultrareview">

3407 Diff は ultrareview には大きすぎます3434 差分が ultrareview には大きすぎる

3408</h3>3435</h3>

3409 3436 

3410ブランチとベースブランチ間の差分(コミットされていない変更とステージングされた変更を含む)は、[ultrareview](/docs/ja/ultrareview)のサイズ制限を超えているため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションが開始する前にレビューを拒否します。拒否されたレビューは無料実行を使用せず、使用クレジットを請求しません。メッセージは有効な制限、差分のサイズ、最も変更された行に貢献するファイルを示します。v2.1.216 より前は、メッセージは生の差分統計のみを表示していました。3437コミットされていない変更とステージされた変更を含む、ブランチとベースブランチの間の差分が [ultrareview](/docs/ja/ultrareview) のサイズ制限を超えているため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションの開始前にレビューを拒否します。拒否されたレビューは無料実行回数を消費せず、使用クレジットも請求されません。メッセージには、適用されている制限、差分のサイズ、変更行数が最も多いファイルが示されます。v2.1.216 より前は、メッセージには生の差分統計のみが表示されていました。

3411 3438 

3412```text theme={null}3439```text theme={null}

3413Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3440Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3414```3441```

3415 3442 

3416プルリクエストをレビューすると、同じ制限が適用されます。そのメッセージの形式は `PR #<N> is too large for ultrareview` で始まり、PR のファイルと行数を示します。3443プルリクエストのレビューにも同じ制限が適用されます。その場合のメッセージは `PR #<N> is too large for ultrareview` で始まり、PR のファイル数と行数が示されます。

3417 3444 

3418**対処方法:**3445**対処方法:**

3419 3446 

3420* より近いベースブランチ(`/code-review ultra develop` など)を渡して、レビューがそのブランチに対する差分のみをカバーするようにしてください。3447* `/code-review ultra develop` のように、作業により近いベースブランチを渡して、そのブランチとの差分のみがレビュー対象になるようにします

3421* 変更を小さなブランチに分割し、それぞれをレビューしてください。メッセージが示すファイルは最も変更された行に貢献するため、それらを独自のブランチに移動することから始めてください。3448* 変更をより小さなブランチに分割し、それぞれをレビューします。メッセージに示されたファイルが変更行数の大部分を占めているため、まずそれらを個別のブランチに移動します。

3422 3449 

3423<h3 id="could-not-find-merge-base-with-the-base-branch">3450<h3 id="could-not-find-merge-base-with-the-base-branch">

3424 ベースブランチとのマージベースが見つかりませんでした3451 ベースブランチとの merge-base が見つからなかった

3425</h3>3452</h3>

3426 3453 

3427`/code-review ultra` と `claude ultrareview` サブコマンドは、ブランチとベースブランチ間の差分をレビューします。これには 2 つが共有するコミットが必要です。`git merge-base` が見つからない場合、Claude Code はクラウドセッションが開始する前にレビューを拒否します。Claude Code が完全であることを確認できるクローン上で、少なくとも 1 つのブランチがある場合、代わりに[すべての追跡ファイルをレビュー](/docs/ja/ultrareview#diff-limits-and-fallbacks)することにフォールバックします。ベースブランチが見つからない場合、Claude Code がクローンが完全であることを確認できない場合、または全体ツリー差分が不可能な稀なリポジトリ(SHA-256 オブジェクト形式など)の場合、この拒否が表示されます。3454`/code-review ultra` と `claude ultrareview` サブコマンドは、ブランチとベースブランチの間の差分をレビューします。これには両者が共有するコミットが必要です。`git merge-base` が共有コミットを見つけられない場合、Claude Code はクラウドセッションの開始前にレビューを拒否します。少なくとも 1 つのブランチがあり、完全であることを Claude Code が確認できるクローンでは、拒否する代わりに[追跡されているすべてのファイルのレビュー](/docs/ja/ultrareview#diff-limits-and-fallbacks)にフォールバックします。この拒否が表示されるのは、ベースブランチがまったく見つからない場合、Claude Code がクローンの完全性を確認できない場合、または SHA-256 オブジェクト形式など、ツリー全体の差分が取れないまれなリポジトリの場合です。

3428 3455 

3429```text theme={null}3456```text theme={null}

3430Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3457Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.

3431```3458```

3432 3459 

3433最初の文の後のヒントは、Claude Code が観察したものに依存します。3460最初の文の後のヒントは、Claude Code が検出した内容によって異なります:

3434 3461 

3435* **ベースブランチを渡さなかった**: Claude Code はリポジトリのデフォルトブランチと比較し、上記の例のように明示的にベースを渡すことを提案します。3462* **ベースブランチを渡さなかった場合**: Claude Code はリポジトリのデフォルトブランチと比較し、上記の例のように、ベースを明示的に渡すよう提案します

3436* **クローンに既にあったベースブランチを渡した**: ヒントは ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)`` を読みます。3463* **クローンに既に存在するベースブランチを渡した場合**: ヒントは ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)`` となります

3437* **クローンにはなかったベースブランチを渡した**: Claude Code は比較する前に origin からそれをフェッチしました。ヒントは ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``を読みます。Claude Code がクローンが浅いかどうかを判断できない場合、代わりに `git fetch --unshallow origin` を提案します。v2.1.221 より前は、ヒントはすべてのフェッチされたベースブランチに対して `git fetch --unshallow origin` を提案し、完全なクローン上でそのコマンドは `fatal: --unshallow on a complete repository does not make sense` で失敗します。3464* **クローンに存在しないベースブランチを渡した場合**: Claude Code は比較の前に origin からそれをフェッチしました。ヒントは ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)`` となります。クローンがシャロークローンかどうかを Claude Code が判断できない場合は、代わりに `git fetch --unshallow origin` を提案します。v2.1.221 より前は、フェッチしたすべてのベースブランチに対して `git fetch --unshallow origin` が提案されていましたが、完全なクローンではこのコマンドは `fatal: --unshallow on a complete repository does not make sense` で失敗します。

3438 3465 

3439**対処方法:**3466**対処方法:**

3440 3467 

3441* 別のブランチが実際のベースである場合は、明示的に渡してください。`/code-review ultra <branch>`3468* 別のブランチが実際のベースである場合は、明示的に渡します: `/code-review ultra <branch>`

3442* クローンに完全な履歴がない可能性がある場合は、`git fetch --unshallow origin` を実行してレビューを再実行してください。3469* クローンに完全な履歴がない可能性がある場合は、`git fetch --unshallow origin` を実行してからレビューを再実行します

3443 3470 

3444<h3 id="your-checkout-has-no-branches">3471<h3 id="your-checkout-has-no-branches">

3445 チェックアウトにブランチがありません3472 チェックアウトにブランチがない

3446</h3>3473</h3>

3447 3474 

3448チェックアウトはコミットを持つことができますが、ブランチはありません。`git init` の後に `git fetch <url>` と `git checkout FETCH_HEAD` を実行すると、ref のない分離 HEAD が得られます。Claude Code はリポジトリを git バンドルとしてパッケージ化して [ultrareview](/docs/ja/ultrareview)にアップロードし、ブランチまたは他の ref がないリポジトリをバンドルすることはできないため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションが開始する前にレビューを拒否します。3475チェックアウトには、コミットがあってもブランチがない場合があります。`git init` の後に `git fetch <url>` と `git checkout FETCH_HEAD` を実行すると、ref のない detached HEAD になります。Claude Code は [ultrareview](/docs/ja/ultrareview) のためにリポジトリを git バンドルとしてパッケージ化してアップロードしますが、ブランチやその他の ref がないリポジトリはバンドルできないため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションの開始前にレビューを拒否します。

3449 3476 

3450```text theme={null}3477```text theme={null}

3451Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3478Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

3452```3479```

3453 3480 

3454v2.1.221 より前は、Claude Code はこのチェックアウトのすべての追跡ファイルをレビューしようとし、アップロードは失敗していました。3481v2.1.221 より前は、Claude Code はこのチェックアウトで追跡されているすべてのファイルのレビューを試み、アップロードが失敗していました。

3455 3482 

3456**対処方法:**3483**対処方法:**

3457 3484 

3458* 現在のコミットで `git checkout -b <name>` を使用してブランチを作成してから、レビューを再実行してください。3485* `git checkout -b <name>` で現在のコミットにブランチを作成してから、レビューを再実行します

3459 3486 

3460<h3 id="no-github-account-is-connected-to-your-claude-account">3487<h3 id="no-github-account-is-connected-to-your-claude-account">

3461 GitHub アカウントが Claude アカウントに接続されていません3488 Claude アカウントに GitHub アカウントが接続されていない

3462</h3>3489</h3>

3463 3490 

3464`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。クラウドセッションを作成する前に、Claude Code はサーバーに、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリに到達できるかどうかを尋ねます。アカウントが接続されていないか、接続が期限切れになっているため、クラウドクローンは失敗し、Claude Code は起動を拒否します。Claude Code は拒否された起動に無料実行を費やしたり、使用クレジットを請求したりしません。3491`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。Claude Code はクラウドセッションを作成する前に、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリにアクセスできるかどうかをサーバーに問い合わせます。アカウントが接続されていないか、接続の有効期限が切れているため、クラウドでのクローンは失敗することになり、Claude Code は起動を拒否します。拒否された起動では、Claude Code は無料実行回数を消費せず、使用クレジットも請求しません。

3465 3492 

3466```text theme={null}3493```text theme={null}

3467Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3494Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

3468```3495```

3469 3496 

3470[`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal)がセッションで利用できない場合、メッセージは claude.ai リンクのみを示します。3497セッションで [`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal) が利用できない場合、メッセージには claude.ai のリンクのみが示されます。

3471 3498 

3472**対処方法:**3499**対処方法:**

3473 3500 

3474* `/web-setup` を実行して GitHub CLI ログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github)でアカウントを接続してください。3501* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します

3475* 接続してから 1 分後にレビューを再実行してください。3502* 接続してから 1 分ほど待ってレビューを再実行します

3476 3503 

3477v2.1.248 より前は、Claude Code は起動前にこれをチェックしませんでした。3504v2.1.248 より前は、Claude Code は起動前にこのチェックを行っていませんでした。

3478 3505 

3479<h3 id="your-connected-github-account-cant-see-the-repository">3506<h3 id="your-connected-github-account-cant-see-the-repository">

3480 接続された GitHub アカウントはリポジトリを見ることができません3507 接続された GitHub アカウントがリポジトリを参照できない

3481</h3>3508</h3>

3482 3509 

3483`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)は PR のリポジトリを読み取ることができないため、クラウドクローンは失敗し、Claude Code は起動を拒否します。Claude Code は拒否された起動に無料実行を費やしたり、使用クレジットを請求したりしません。3510`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しましたが、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリを読み取れないため、クラウドでのクローンは失敗することになり、Claude Code は起動を拒否します。拒否された起動では、Claude Code は無料実行回数を消費せず、使用クレジットも請求しません。

3484 3511 

3485```text theme={null}3512```text theme={null}

3486Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3513Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

3487```3514```

3488 3515 

3489[`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal)がセッションで利用できない場合、メッセージはアプリのインストールのみを示します。3516セッションで [`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal) が利用できない場合、メッセージにはアプリのインストールのみが示されます。

3490 3517 

3491**対処方法:**3518**対処方法:**

3492 3519 

3493* ローカル `gh` CLI がリポジトリを読み取ることができる場合は、`/web-setup` を実行してそのログインを Claude アカウントに接続してください。3520* ローカルの `gh` CLI がリポジトリを読み取れる場合は、`/web-setup` を実行してそのログインを Claude アカウントに接続します

3494* 変更後にレビューを再実行してください。3521* 変更後にレビューを再実行します

3495 3522 

3496v2.1.248 より前は、Claude Code は起動前にこれをチェックしませんでした。3523v2.1.248 より前は、Claude Code は起動前にこのチェックを行っていませんでした。

3497 3524 

3498<h3 id="the-github-app-preflight-failed-transiently">3525<h3 id="the-github-app-preflight-failed-transiently">

3499 GitHub App プリフライトが一時的に失敗しました3526 GitHub App の事前チェックが一時的に失敗した

3500</h3>3527</h3>

3501 3528 

3502ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。2 つのステップが一緒に失敗しました。Claude Code はリポジトリのバンドルを構築またはアップロードできませんでした。アップロードの前に、クラウドサービスが GitHub からリポジトリをクローンできるかどうかを確認し、確定的な答えではなく、再試行が解決できるエラーで終了しました。例えば、ネットワークエラー、タイムアウト、または一時的なサーバーエラーです。完全なメッセージは、バンドルを停止したもので始まります。例えば `Could not upload repo bundle (<error>)`、プリフライト文で終わります。3529ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しましたが、2 つのステップが同時に失敗しました。Claude Code はリポジトリのバンドルをビルドまたはアップロードできませんでした。アップロードの前に、クラウドサービスが GitHub からリポジトリをクローンできるかどうかを確認しましたが、そのチェックは明確な結果ではなく、ネットワークエラー、タイムアウト、一時的なサーバーエラーなど、再試行で解消される可能性のあるエラーで終わりました。完全なメッセージは、バンドルを妨げた原因(たとえば `Could not upload repo bundle (<error>)`)で始まり、事前チェックに関する文で終わります:

3503 3530 

3504```text theme={null}3531```text theme={null}

3505Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3532Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead

3506```3533```

3507 3534 

3508**対処方法:**3535**対処方法:**

3509 3536 

3510* しばらく後にコマンドを再実行してください。GitHub チェックが成功すると、Claude Code はクラウドクローンから開始できるため、失敗したアップロードはもはや起動をブロックしません。3537* 少し待ってからコマンドを再実行します。GitHub のチェックに合格すると、Claude Code は GitHub のクローンからセッションを開始できるため、アップロードの失敗によって起動が妨げられることはなくなります

3511* 再試行が失敗し続ける場合、メッセージの開始はアップロードを停止したものを示します。それが修正できるものである場合は、セッションがローカルリポジトリから代わりに開始できるように修正してください。3538* 再試行しても失敗し続ける場合は、メッセージの冒頭にアップロードを妨げた原因が示されています。その原因が修正可能なものであれば、修正することでローカルリポジトリからセッションを開始できるようになります

3512 3539 

3513v2.1.251 より前は、Claude Code は GitHub チェックが一時的にのみ失敗した場合でも `Please set up GitHub on https://claude.ai/code` でメッセージを終了し、セットアップアドバイスは一時的な失敗を解決することはできません。3540v2.1.251 より前は、GitHub のチェックが一時的に失敗しただけの場合でも、Claude Code はメッセージの末尾に `Please set up GitHub on https://claude.ai/code` を表示していましたが、セットアップに関する助言では一時的な失敗は解消できません。

3514 3541 

3515<h3 id="the-repository-upload-cant-follow-a-git-setting">3542<h3 id="the-repository-upload-cant-follow-a-git-setting">

3516 リポジトリのアップロードは git 設定に従うことができません3543 リポジトリのアップロードが git の設定に従えない

3517</h3>3544</h3>

3518 3545 

3519ローカルリポジトリをアップロードする[クラウドセッション](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github)、またはブランチの[ultrareview](/docs/ja/ultrareview)を開始しました。アップロードは、ファイルに適用される属性ルールを決定する git 設定の 1 つに従うことができません。アップロードが進行し、ルールを逃した場合、git が保存する前に変換するファイル(例えば、クリーンフィルタが暗号化するファイル)は、ディスク上のままクラウドに到達する可能性があります。Claude Code はアップロードを拒否する代わりに、何もアップロードされません。3546[ローカルリポジトリをアップロードするクラウドセッション](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github)、またはブランチの [ultrareview](/docs/ja/ultrareview) を開始しましたが、ファイルに適用される属性ルールを決定する git の設定のいずれかに、アップロードが従うことができません。アップロードを続行してルールを見落とすと、clean フィルターで暗号化されるファイルなど、git が保存前に変換するファイルが、ディスク上の状態のままクラウドに届く可能性があります。そのため Claude Code は代わりにアップロードを拒否し、何もアップロードされません:

3520 3547 

3521```text theme={null}3548```text theme={null}

3522Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.3549Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

3523```3550```

3524 3551 

3525メッセージは設定と場所を示し、ヒットしたケースの修正で終わります。同じ拒否は `core.attributesFile` と `attr.tree` に対して表示され、それぞれ独自の修正があります。3552メッセージには設定とそれが設定されている場所が示され、該当するケースに対する修正方法で終わります。`core.attributesFile` と `attr.tree` についても同じ拒否が表示され、それぞれに独自の修正方法が示されます。

3526 3553 

3527メッセージは、その指令の条件がこのリポジトリに適用されない場合でも、git 設定が `include` または `includeIf` 指令を通じてプルインする設定ファイルに名前を付ける可能性があります。3554メッセージには、git の設定が `include` または `includeIf` ディレクティブで読み込む設定ファイルが示されることがあります。そのディレクティブの条件がこのリポジトリに該当しない場合でも同様です。

3528 3555 

3529**対処方法:**3556**対処方法:**

3530 3557 

3531* メッセージの最後の文の修正を適用してください。3558* メッセージの最後の文に示された修正を適用します

3532 3559 

3533<h3 id="github-isnt-connected-to-your-claude-account">3560<h3 id="github-isnt-connected-to-your-claude-account">

3534 GitHub がアカウントに接続されていません3561 GitHub が Claude アカウントに接続されていない

3535</h3>3562</h3>

3536 3563 

3537ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。例えば、`/autofix-pr` を使用しています。GitHub アカウントが Claude アカウントに接続されていないか、接続が期限切れになっているため、Claude Code は起動を拒否します。3564`/autofix-pr` などで、ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。Claude アカウントに GitHub アカウントが接続されていないか、接続の有効期限が切れているため、Claude Code は起動を拒否します:

3538 3565 

3539```text theme={null}3566```text theme={null}

3540GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3567GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3541```3568```

3542 3569 

3543[`/schedule`](/docs/ja/routines)でルーチンを作成するとき、同じメッセージはセットアップノートとして表示され、リポジトリに名前を付けます。ノートはルーチンの作成をブロックしません。3570[`/schedule`](/docs/ja/routines) でルーティンを作成する場合、同じメッセージがリポジトリ名を含むセットアップの注記として表示されます。この注記はルーティンの作成を妨げません。

3544 3571 

3545**対処方法:**3572**対処方法:**

3546 3573 

3547* `/web-setup` を実行して GitHub CLI ログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github)でアカウントを接続してください。[GitHub 認証オプション](/docs/ja/claude-code-on-the-web#github-authentication-options)を参照して、2 つの違いを確認してください。3574* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します。両者の違いについては、[GitHub の認証オプション](/docs/ja/claude-code-on-the-web#github-authentication-options)を参照してください。

3548* 接続してから 1 分後にコマンドを再実行してください。3575* 接続してから 1 分ほど待ってコマンドを再実行します

3549 3576 

3550v2.1.268 より前は、Claude Code はこれを Claude GitHub App チェックの一時的な失敗として報告し、再試行またはアプリのインストールを提案していました。どちらも GitHub アカウントを接続しません。3577v2.1.268 より前は、Claude Code はこれを Claude GitHub App のチェックの一時的な失敗として報告し、再試行またはアプリのインストールを提案していましたが、どちらも GitHub アカウントを接続するものではありません。

3551 3578 

3552<h3 id="single-sign-on-authorization-needed">3579<h3 id="single-sign-on-authorization-needed">

3553 単一サインオン認可が必要です3580 シングルサインオンの認可が必要

3554</h3>3581</h3>

3555 3582 

3556[`/install-github-app`](/docs/ja/github-actions#quick-setup)を実行し、SAML シングルサインオンを強制する組織のリポジトリを選択しました。セットアップの前に、Claude Code は GitHub CLI を使用してリポジトリへのアクセスを確認し、GitHub はあなたの `gh` トークンがまだ組織に対して認可されていないため、そのチェックを拒否しました。ウィザードは警告を表示し、認可するステップを示します。3583[`/install-github-app`](/docs/ja/github-actions#quick-setup) を実行し、SAML シングルサインオンを強制している組織のリポジトリを選択しました。セットアップの前に、Claude Code は GitHub CLI でリポジトリへのアクセスを確認しますが、`gh` トークンがまだその組織に対して認可されていないため、GitHub がそのチェックを拒否しました。ウィザードには、認可の手順とともに警告が表示されます:

3557 3584 

3558```text theme={null}3585```text theme={null}

3559Single sign-on authorization needed3586Single sign-on authorization needed

3560<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.3587<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.

3561```3588```

3562 3589 

3563**対処方法:**3590**対処方法:**

3564 3591 

3565* `gh auth refresh -h github.com -s repo,workflow` を実行して GitHub CLI ログインを再認可し、GitHub がシングルサインオンを求めるときに組織を認可してください。3592* `gh auth refresh -h github.com -s repo,workflow` を実行して `repo` と `workflow` のスコープで GitHub CLI のログインを再認可し、GitHub がシングルサインオンを求めたら組織を認可します

3566* `GH_TOKEN` で個人アクセストークンを認証する場合は、[github.com/settings/tokens](https://github.com/settings/tokens)を開き、トークンで **Configure SSO** を選択し、組織を認可してください。3593* `GH_TOKEN` の個人用アクセストークンで認証している場合は、[github.com/settings/tokens](https://github.com/settings/tokens) を開き、トークンの **Configure SSO** を選択して組織を認可します

3567* `/install-github-app` を再度実行してください。3594* `/install-github-app` を再度実行します

3568 3595 

3569v2.1.273 より前は、Claude Code はこの条件に対して `Admin permissions required` 警告を表示していました。3596v2.1.273 より前は、Claude Code はこの状況で代わりに `Admin permissions required` の警告を表示していました。

3570 3597 

3571<h3 id="failed-to-resume-the-conversation">3598<h3 id="failed-to-resume-the-conversation">

3572 会話の再開に失敗しました3599 会話の再開に失敗した

3573</h3>3600</h3>

3574 3601 

3575Claude Code は、[`claude --resume` ピッカー](/docs/ja/sessions#use-the-session-picker)から選択したセッションの保存されたトランスクリプトを読み込むか処理できなかったため、部分的に読み込まれた状態で続行する代わりにプロセスを終了します。メッセージには再試行するコマンドが含まれています。3602[`claude --resume` ピッカー](/docs/ja/sessions#use-the-session-picker)から選択したセッションの保存済みトランスクリプトを Claude Code が読み取りまたは処理できなかったため、部分的に読み込まれた状態で続行するのではなくプロセスを終了します。メッセージには再試行用のコマンドが含まれています:

3576 3603 

3577```text theme={null}3604```text theme={null}

3578Failed to resume the conversation.3605Failed to resume the conversation.

3579Run claude --resume <session-id> to retry, or claude to start a new session.3606Run claude --resume <session-id> to retry, or claude to start a new session.

3580```3607```

3581 3608 

3582Claude Code はメッセージを表示した後、終了コード 1 で終了します。実行中のセッション内の `/resume` ピッカーは、会話で `Failed to resume conversation` を報告し、現在のセッションは実行を続けます。v2.1.216 より前は、`claude --resume` ピッカーからの失敗した再開は `Resuming conversation…` スピナーで無期限に留まっていました。3609Claude Code はメッセージを表示した後、終了コード 1 で終了します。実行中のセッション内の `/resume` ピッカーでは、代わりに会話内に `Failed to resume conversation` が報告され、現在のセッションは引き続き実行されます。v2.1.216 より前は、`claude --resume` ピッカーからの再開が失敗すると、このメッセージを表示する代わりに `Resuming conversation…` のスピナーが表示されたままになっていました。

3583 3610 

3584**対処方法:**3611**対処方法:**

3585 3612 

3586* メッセージからセッション ID を使用して `claude --resume <session-id>` を実行して再試行してください。3613* メッセージに示されたセッション ID を使用して `claude --resume <session-id>` を実行し、再試行します

3587* 再試行が再度失敗する場合は、`claude update` を実行してから再開してください。v2.1.275 より前のバージョンは、保存されたトランスクリプトに読み込めないエントリが含まれている場合、再開に失敗します。3614* 再試行が毎回同じように失敗する場合は、`claude update` を実行してから再度再開します。v2.1.275 より前のバージョンでは、保存済みトランスクリプトに読み取れないエントリが含まれていると再開に失敗します。

3588* 再試行が再度失敗する場合は、`claude` を実行して新しいセッションを開始してください。3615* 再試行が再び失敗した場合は、`claude` を実行して新しいセッションを開始します

3589 3616 

3590<h3 id="no-conversation-found-with-the-session-id">3617<h3 id="no-conversation-found-with-the-session-id">

3591 セッション ID で会話が見つかりません3618 セッション ID に一致する会話が見つからない

3592</h3>3619</h3>

3593 3620 

3594セッション ID を `claude --resume <session-id>` に渡しましたが、保存されたトランスクリプトと一致しませんでした。3621`claude --resume <session-id>` にセッション ID を渡しましたが、一致する保存済みトランスクリプトがありませんでした:

3595 3622 

3596```text theme={null}3623```text theme={null}

3597No conversation found with session ID: <session-id>3624No conversation found with session ID: <session-id>

3598```3625```

3599 3626 

3600Claude Code はメッセージを表示した後、終了コード 1 で終了します。Claude Code は[現在のプロジェクトを最初に検索し、このマシン上のすべての他のプロジェクトを検索](/docs/ja/sessions#resume-a-session)して ID を検索します。v2.1.223 より前は、ルックアップは現在のプロジェクトディレクトリとその git ワークツリーで停止したため、セッションが最後に機能したディレクトリから再開してください。3627Claude Code はメッセージを表示した後、終了コード 1 で終了します。Claude Code は、[まず現在のプロジェクトを、次にこのマシン上の他のすべてのプロジェクト](/docs/ja/sessions#resume-a-session)を対象に ID を検索します。v2.1.223 より前は、検索は現在のプロジェクトディレクトリとその git worktree で終わっていたため、セッションが最後に作業していたディレクトリから再開する必要がありました。

3601 3628 

3602一般的な原因:3629よくある原因:

3603 3630 

3604* **入力ミスされた ID**: 非対話的実行の場合、ID は [`--output-format json` 出力](/docs/ja/headless#get-structured-output)の `session_id` フィールドです。3631* **ID の入力ミス**: 非対話実行の場合、ID は [`--output-format json` の出力](/docs/ja/headless#get-structured-output)の `session_id` フィールドです

3605* **削除されたトランスクリプト**: Claude Code は[保持期間](/docs/ja/sessions#where-transcripts-are-stored)(デフォルトでは 30 日)の後にトランスクリプトを削除し、[保持スイープルール](/docs/ja/claude-directory#cleaned-up-automatically)に従います。3632* **トランスクリプトの削除**: Claude Code は、[保持期間の整理ルール](/docs/ja/claude-directory#cleaned-up-automatically)に従い、[保持期間](/docs/ja/sessions#where-transcripts-are-stored)(デフォルトは 30 日)を過ぎたトランスクリプトを削除します

3606* **別のマシン**: Claude Code はトランスクリプトをローカルに保存するため、セッションが実行されたマシンでセッションを再開してください。3633* **別のマシン**: Claude Code はトランスクリプトをローカルに保存するため、セッションを実行したマシンで再開します

3607* **重複コピー**: `~/.claude/projects` の下にプロジェクトディレクトリをコピーして 2 つのトランスクリプトが同じ ID を持つ場合、Claude Code はこのメッセージを報告し、1 つのコピーを任意に再開します。3634* **重複したコピー**: `~/.claude/projects` 配下のプロジェクトディレクトリをコピーしたために 2 つのトランスクリプトが同じ ID を持つ場合、Claude Code は一方のコピーを任意に再開するのではなく、このメッセージを報告します

3608 3635 

3609**対処方法:**3636**対処方法:**

3610 3637 

3611* インタラクティブセッションの場合は、`claude --resume` で[セッションピッカー](/docs/ja/sessions#use-the-session-picker)を開き、`Ctrl+A` を押してこのマシン上のすべてのプロジェクトに拡張してから、セッションを選択してください。3638* 対話セッションの場合は、`claude --resume` で[セッションピッカー](/docs/ja/sessions#use-the-session-picker)を開き、`Ctrl+A` を押してこのマシン上のすべてのプロジェクトに範囲を広げてから、セッションを選択します

3612* `claude -p` または [Agent SDK](/docs/ja/agent-sdk/overview)で作成されたセッションはピッカーに表示されないため、元の実行が出力した `session_id` に対して ID を再確認してください。3639* `claude -p` または [Agent SDK](/docs/ja/agent-sdk/overview) で作成したセッションはピッカーに表示されないため、元の実行で出力された `session_id` と ID を照合し直します

3613 3640 

3614<h3 id="windows-reported-an-error-ebadf">3641<h3 id="windows-reported-an-error-ebadf">

3615 Windows reported an error (EBADF) when Claude Code read this session's transcript file3642 Claude Code がこのセッションのトランスクリプトファイルを読み取る際に Windows がエラー(EBADF)を報告した

3616</h3>3643</h3>

3617 3644 

3618Windows でセッションを再開しました。保存された[トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)は正常に開きましたが、読み込みは EBADF システムエラーで失敗しました。システムエラーは読み込みが失敗した理由を示さないため、メッセージは可能性のある原因と試すべきことを提案します。3645Windows でセッションを再開し、保存された[トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)は正常に開かれましたが、その後の読み取りがシステムエラー EBADF で失敗しました。システムエラーは読み取りが失敗した理由を示さないため、メッセージでは考えられる原因と試すべき対処を提示します。

3619 3646 

3620```text theme={null}3647```text theme={null}

3621Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3648Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3622```3649```

3623 3650 

3624メッセージは、コマンド自体の失敗行に従います。例えば `Failed to resume session <session-id>`。`claude --resume` または [`claude -p`](/docs/ja/headless)コマンドはメッセージを表示した後、終了コード 1 で終了します。セッション内の `/resume` の後、現在のセッションは実行を続けます。3651このメッセージは、`Failed to resume session <session-id>` のようなコマンド自体の失敗行に続いて表示されます。`claude --resume` または [`claude -p`](/docs/ja/headless) コマンドは、これを表示した後に終了コード 1 で終了します。セッション内で `/resume` を実行した場合は、現在のセッションはそのまま実行を続けます。

3625 3652 

3626**対処方法:**3653**対処方法:**

3627 3654 

3628* セキュリティ、暗号化、またはエンドポイント管理ツールなど、ファイル読み込みをスキャンまたは傍受するソフトウェアから、セッショントランスクリプトを保持するフォルダを除外してください。トランスクリプトはデフォルトで `%USERPROFILE%\.claude\projects` の下に存在するか、[`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars)が示すディレクトリの下に存在します。3655* セッションのトランスクリプトを保存しているフォルダを、セキュリティ、暗号化、エンドポイント管理ツールなど、ファイルの読み取りをスキャンまたはインターセプトするソフトウェアの対象から除外します。トランスクリプトはデフォルトで `%USERPROFILE%\.claude\projects` の下、または [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) で指定されたディレクトリの下に保存されます

3629* 除外を追加できない場合は、代わりにそのソフトウェアの許可されたアプリケーションに Claude Code を追加してください。3656* 除外を追加できない場合は、代わりに Claude Code をそのソフトウェアの許可アプリケーションに追加します

3630* セッションを再度再開してください。3657* セッションを再度再開します

3631 3658 

3632v2.1.282 より前は、失敗には説明がありませんでした。`claude --resume <session-id>` は `Failed to resume session <session-id>` で終了し、`-p` 実行は `Failed to resume session: EBADF: bad file descriptor, read` などのシステムエラーテキストのみを出力していました。3659v2.1.282 より前は、失敗時に説明が表示されませんでした。`claude --resume <session-id>` は `Failed to resume session <session-id>` で終了し、`-p` の実行では `Failed to resume session: EBADF: bad file descriptor, read` のようなシステムエラーのテキストのみが出力されていました。

3633 3660 

3634<h3 id="cannot-switch-renderers-in-this-session">3661<h3 id="cannot-switch-renderers-in-this-session">

3635 このセッションではレンダラーを切り替えることができません3662 このセッションではレンダラーを切り替えられない

3636</h3>3663</h3>

3637 3664 

3638レンダラーを切り替えると、Claude Code はプロセスを再起動します。[`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering)をセッションで実行しましたが、Claude Code は再起動を拒否するため、切り替わらず、何も保存しません。表示されるメッセージは原因を示します。3665レンダラーを切り替えると、Claude Code はプロセスを再起動します。Claude Code が再起動を拒否するセッションで [`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering) を実行したため、切り替えは行われず、何も保存されません。表示されるメッセージによって原因がわかります。

3639 3666 

3640* `Cannot switch renderers while work is running in the background`: バックグラウンドで実行中のバックグラウンドシェルやサブエージェントなど、再起動が放棄するバックグラウンド作業があります。[`/tasks`](/docs/ja/commands)で作業が完了するか停止するのを待ってから、`/tui fullscreen` または `/tui default` を再度実行してください。3667* `Cannot switch renderers while work is running in the background`:バックグラウンドシェルやサブエージェントなど、再起動すると中断されてしまうバックグラウンドの作業が実行中です。作業が終わるのを待つか、[`/tasks`](/docs/ja/commands) で停止してから、`/tui fullscreen` または `/tui default` を再度実行します

3641* `Cannot switch renderers in this session`: セッションには、再起動されたプロセスに渡すことができない制限があります。v2.1.234 より前は、Claude Code は再起動し、再起動されたセッションはそれらなしで実行されていました。3668* `Cannot switch renderers in this session`:このセッションには、Claude Code が再起動後のプロセスに引き継げない制限があります。v2.1.234 より前は、Claude Code はそれでも再起動し、再起動後のセッションはそれらの制限なしで実行されていました

3642 3669 

3643制限メッセージでは、括弧内の部分は Claude Code が見つけた制限に名前を付けます。3670制限に関するメッセージでは、括弧内の部分に Claude Code が検出した制限が示されます。

3644 3671 

3645```text theme={null}3672```text theme={null}

3646Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3673Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.

3647```3674```

3648 3675 

3649メッセージが括弧内に表示できる各理由:3676メッセージの括弧内に表示される可能性のある各理由:

3650 3677 

3651* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Claude Code がプロセスを再起動するときに渡さないフラグを使用してセッションを開始しました。これらのフラグには [`--system-prompt`](/docs/ja/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/ja/cli-reference#cli-flags)許可リスト、[`--setting-sources`](/docs/ja/cli-reference#cli-flags)、[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags)が含まれます。3678* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:Claude Code が再起動後のプロセスに引き継がないフラグを付けてセッションを開始しました。これらのフラグには、[`--system-prompt`](/docs/ja/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/ja/cli-reference#cli-flags) の許可リスト、[`--setting-sources`](/docs/ja/cli-reference#cli-flags)、[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) が含まれます

3652* `permission rules set for this session only`: フックまたは SDK 呼び出し元からの[権限更新](/docs/ja/hooks#permission-update-entries)は、`session` 宛先を持つ拒否またはルールを追加しました。セッションスコープの許可ルールは拒否をトリガーしません。再起動はそれらを削除し、Claude Code は代わりにプロンプトを表示します。3679* `permission rules set for this session only`:フックまたは SDK の呼び出し元からの[権限の更新](/docs/ja/hooks#permission-update-entries)によって、`session` を宛先とする拒否ルールまたは確認ルールが追加されました。セッションスコープの許可ルールでは拒否は発生しません。再起動するとそれらは破棄され、Claude Code は代わりに再度確認を求めます

3653* `ask-before-running rules with no command-line form`: フックまたは SDK 呼び出し元からの権限更新は、Claude Code が `--allowed-tools` と `--disallowed-tools` として渡すルールと一緒に質問ルールを追加しました。質問ルールのフラグは存在しません。3680* `ask-before-running rules with no command-line form`:フックまたは SDK の呼び出し元からの権限の更新によって、Claude Code が `--allowed-tools` および `--disallowed-tools` として引き継ぐルールに加えて、確認ルールが追加されました。確認ルール用のフラグは存在しません

3654* `permission rules a command line cannot carry intact` と `added directories a command line cannot carry intact`: 権限更新はセッション中にルールまたはディレクトリパスを追加しました。再起動されたプロセスのコマンドラインはそのテキストを同じ値として持つことができません。3681* `permission rules a command line cannot carry intact` および `added directories a command line cannot carry intact`:権限の更新によって、セッションの途中でルールまたはディレクトリパスが追加されました。再起動後のプロセスのコマンドラインでは、そのテキストを同じ値として引き継ぐことができません

3655 3682 

3656**対処方法:**3683**対処方法:**

3657 3684 

3658* これらの制限なしで開始されたセッションで、`/tui fullscreen` または `/tui default` を実行して戻してください。Claude Code はそこで [`tui` 設定](/docs/ja/settings-reference#tui)を保存します。3685* それらの制限なしで開始したセッションで `/tui fullscreen` を実行するか、元に戻すには `/tui default` を実行します。Claude Code はそのセッションで [`tui` 設定](/docs/ja/settings-reference#tui)を保存します

3659 3686 

3660<h3 id="couldnt-open-claude-desktop">3687<h3 id="couldnt-open-claude-desktop">

3661 Claude Desktop を開くことができませんでした3688 Claude Desktop を開けなかった

3662</h3>3689</h3>

3663 3690 

3664[`/desktop`](/docs/ja/desktop#coming-from-the-cli)またはそのエイリアス `/app` をセッションで実行しました。または [`claude --desktop`](/docs/ja/cli-reference#cli-flags)をシェルで実行しました。Claude Desktop を開くために Claude Code が使用するシステムコマンドが失敗しました。`/desktop` の後、セッションはターミナルに留まります。`claude --desktop` はメッセージを `Error:` プレフィックスなしで出力し、ステータス 1 で終了します。3691セッション内で [`/desktop`](/docs/ja/desktop#coming-from-the-cli) またはそのエイリアスの `/app` を実行したか、シェルで [`claude --desktop`](/docs/ja/cli-reference#cli-flags) を実行したところ、Claude Code が Claude Desktop を開くために使用するシステムコマンドが失敗しました。`/desktop` の後はセッションはターミナルに残ります。`claude --desktop` は `Error:` プレフィックスなしでメッセージを出力し、ステータス 1 で終了します。

3665 3692 

3666括弧内のテキストは失敗したコマンドを示し、その終了ステータスと最初の行のエラー出力(生成された場合)を示します。macOS ではそのコマンドは `open` です。この例のように。Windows では `rundll32` です。3693括弧内のテキストには、失敗したコマンドが示され、終了ステータスとエラー出力の最初の行が生成された場合はそれらも含まれます。macOS ではこの例のようにコマンドは `open` で、Windows では `rundll32` です。

3667 3694 

3668```text theme={null}3695```text theme={null}

3669Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.3696Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.


3671 3698 

3672**対処方法:**3699**対処方法:**

3673 3700 

3674* Claude Desktop を自分で開いてから、`/desktop` または `claude --desktop` を再度実行してください。3701* Claude Desktop を自分で開いてから、`/desktop` または `claude --desktop` を再度実行します

3675* 失敗したコマンドの完全なエラー出力を読むには、`/debug` でデバッグログをオンにし、`/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行してから、デバッグログを確認してください。3702* 失敗したコマンドのエラー出力全体を確認するには、`/debug` でデバッグログをオンにしてから `/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行し、デバッグログを確認します

3676 3703 

3677v2.1.285 より前は、メッセージは `Open Claude Desktop and run /desktop again.` で終わりました。v2.1.275 より前は、`Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかを言いませんでした。3704v2.1.285 より前は、メッセージの末尾が `Open Claude Desktop and run /desktop again.` でした。v2.1.275 より前は、メッセージは `Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかは示されませんでした。

3678 3705 

3679<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3706<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3680 /terminal-setup は Zed キーマップを変更しませんでした3707 /terminal-setup で Zed のキーマップが変更されなかった

3681</h3>3708</h3>

3682 3709 

3683Zed で [`/terminal-setup`](/docs/ja/terminal-config#enter-multiline-prompts)を実行しましたが、Claude Code は Zed `keymap.json` への更新を完了できなかったため、ファイルはそのままにしました。3710Zed で [`/terminal-setup`](/docs/ja/terminal-config#enter-multiline-prompts) を実行しましたが、Claude Code が Zed の `keymap.json` の更新を完了できなかったため、ファイルは元のまま残されました。

3684 3711 

3685各メッセージはキーマップへのパスを示し、自分で追加するキーバインディングブロックで終わります。3712各メッセージにはキーマップのパスが示され、末尾に自分で追加するためのキーボードショートカットのブロックが記載されます。

3686 3713 

3687```text theme={null}3714```text theme={null}

3688Couldn't update your Zed keymap, so it was left unchanged.3715Couldn't update your Zed keymap, so it was left unchanged.


3690{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3717{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3691```3718```

3692 3719 

3693メッセージの最初の行は原因を示します。3720メッセージの最初の行に原因が示されます。

3694 3721 

3695* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code はファイルを読み込むことができませんでした。例えば、ファイル権限のため。3722* `Couldn't read your Zed keymap, so it was left unchanged.`:ファイルの権限などが原因で、Claude Code がファイルを読み取れませんでした

3696* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: ファイルは正常に読み込まれましたが、`//` コメントと末尾のコンマが許可されている場合でも、キーバインディングブロックの配列として解析されません。3723* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:ファイルは読み取れましたが、`//` コメントや末尾のカンマを許容しても、キーボードショートカットのブロックの配列として解析できませんでした

3697* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code はファイルを `.bak` バックアップにコピーできなかったため、何も変更しませんでした。3724* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code がファイルを隣の `.bak` バックアップにコピーできなかったため、何も変更しませんでした

3698* `Couldn't update your Zed keymap, so it was left unchanged.`: マージされた結果は、バインディングを持つ有効なキーマップとして検証されなかったため、Claude Code は書き込む代わりに破棄しました。重複したキーを持つキーバインディングブロックはこれを引き起こす可能性があります。3725* `Couldn't update your Zed keymap, so it was left unchanged.`:マージ結果が、そのショートカットを含む有効なキーマップとして検証できなかったため、Claude Code は書き込まずに破棄しました。キーが重複しているキーボードショートカットのブロックが原因となる場合があります

3699 3726 

3700**対処方法:**3727**対処方法:**

3701 3728 

3702* メッセージのブロックを、メッセージが示すパスの `keymap.json` のトップレベル配列にコピーしてください。3729* メッセージ内のブロックを、メッセージに示されたパスにある `keymap.json` のトップレベルの配列にコピーします

3703* `isn't a readable list of keybindings` の場合は、構文エラーを修正するか、ファイルのトップレベル値を配列にしてから、`/terminal-setup` を再度実行してください。3730* `isn't a readable list of keybindings` の場合は、構文エラーを修正するか、ファイルのトップレベルの値を配列にしてから、`/terminal-setup` を再度実行します

3704 3731 

3705v2.1.247 より前は、`/terminal-setup` は `//` コメントまたは末尾のコンマを使用する Zed キーマップを解析できず、ファイル全体をバインディングのみで置き換えながら、バインディングがインストールされたと報告していました。以前のバージョンが置き換えたキーマップを復元するには、[マルチラインプロンプトを入力する](/docs/ja/terminal-config#enter-multiline-prompts)の下で説明されている `.bak` バックアップファイルを使用してください。3732v2.1.247 より前は、`/terminal-setup` は `//` コメントや末尾のカンマを使用した Zed のキーマップを解析できず、ファイル全体を自身のショートカットのみで置き換えたうえで、ショートカットがインストールされたと報告していました。以前のバージョンによって置き換えられたキーマップを復元するには、[複数行のプロンプトを入力する](/docs/ja/terminal-config#enter-multiline-prompts)で説明されている `.bak` バックアップファイルを使用します。

3706 3733 

3707<h3 id="skill-usage-reports-are-not-available-on-this-connection">3734<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3708 スキル使用レポートはこの接続では利用できません3735 この接続ではスキルの使用状況レポートを利用できない

3709</h3>3736</h3>

3710 3737 

3711[Remote Control](/docs/ja/remote-control)経由で、電話またはブラウザから [`/skill-doctor`](/docs/ja/skills#find-unused-skills)を実行しました。Claude Code は Remote Control 経由でスキル使用レポートを送信せず、代わりにこのメッセージで返信します。3738スマートフォンやブラウザから [Remote Control](/docs/ja/remote-control) 経由で [`/skill-doctor`](/docs/ja/skills#find-unused-skills) を実行しました。Claude Code はスキルの使用状況レポートを Remote Control 経由では送信せず、代わりに次のメッセージを返します。

3712 3739 

3713```text theme={null}3740```text theme={null}

3714Skill usage reports are not available on this connection.3741Skill usage reports are not available on this connection.


3716 3743 

3717**対処方法:**3744**対処方法:**

3718 3745 

3719* セッションが実行されているマシンのターミナルで `/skill-doctor` を実行するか、そこで `claude -p "/skill-doctor"` を実行してください。3746* セッションが実行されているマシンのターミナルで `/skill-doctor` を実行するか、そのマシンで `claude -p "/skill-doctor"` を実行します

3720 3747 

3721<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3748<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3722 カスタム出力スタイルは Remote Control 経由で選択できません3749 Remote Control 経由ではカスタム出力スタイルを選択できない

3723</h3>3750</h3>

3724 3751 

3725モバイルアプリまたは [Remote Control](/docs/ja/remote-control)経由の Web から [`/output-style`](/docs/ja/output-styles#change-your-output-style)を実行しました。またはコマンドはセッションにリレーされたメッセージで到着しました。そのようなターンはアカウント所有者から来ない可能性があるため、Claude Code は[組み込みスタイル](/docs/ja/output-styles#built-in-output-styles)のみをリストして選択し、コマンドがスタイルをリストするか、指定した名前を認識しないときはいつでもこの通知を追加します。[カスタムスタイル](/docs/ja/output-styles#create-a-custom-output-style)名は、存在しない名前と同じ返信を取得します。3752[Remote Control](/docs/ja/remote-control) 経由でモバイルアプリまたは Web から [`/output-style`](/docs/ja/output-styles#change-your-output-style) を実行したか、セッションに中継されたメッセージでそのコマンドが届きました。そのようなターンはアカウント所有者からのものとは限らないため、Claude Code はそのターンでは[組み込みスタイル](/docs/ja/output-styles#built-in-output-styles)のみを一覧表示・選択し、コマンドがスタイルを一覧表示するとき、または指定された名前を認識できないときは常にこの通知を追加します。[カスタムスタイル](/docs/ja/output-styles#create-a-custom-output-style)の名前には、存在しない名前と同じ応答が返されます。

3726 3753 

3727```text theme={null}3754```text theme={null}

3728Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3755Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.


3730 3757 

3731**対処方法:**3758**対処方法:**

3732 3759 

3733* 組み込みスタイルを選択してください。例えば `/output-style concise`。3760* `/output-style concise` のように、組み込みスタイルを選択します

3734* カスタムスタイルを使用するには、プロジェクトの `.claude/settings.local.json` で [`outputStyle`](/docs/ja/settings-reference#outputstyle)を設定するか、セッション自体のターミナルがある場合はそこで `/output-style <style>` を実行してください。3761* カスタムスタイルを使用するには、プロジェクトの `.claude/settings.local.json` で [`outputStyle`](/docs/ja/settings-reference#outputstyle) を設定するか、セッション自体のターミナルがある場合はそこで `/output-style <style>` を実行します

3735 3762 

3736<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3763<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3737 出力スタイルはこのセッションが読み込まないローカル設定に保存されます3764 出力スタイルはこのセッションが読み込まないローカル設定に保存される

3738</h3>3765</h3>

3739 3766 

3740このセッションの設定ソースが `local` を除外する `/output-style <style>` または `/config outputStyle=<style>` で[出力スタイル](/docs/ja/output-styles)を切り替えようとしました。例は、[`settingSources`](/docs/ja/agent-sdk/typescript#options)が `"local"` を除外する [Agent SDK](/docs/ja/agent-sdk/typescript)セッション、および [`--setting-sources`](/docs/ja/cli-reference#cli-flags)値が `local` を除外する CLI セッションです。両方のコマンドはスタイルを `.claude/settings.local.json` に保存します。そのようなセッションは読み込まないため、Claude Code は効果がない設定を書き込む代わりに拒否します。3767設定ソースに `local` が含まれないセッションで、`/output-style <style>` または `/config outputStyle=<style>` を使って[出力スタイル](/docs/ja/output-styles)を切り替えようとしました。例としては、[`settingSources`](/docs/ja/agent-sdk/typescript#options) に `"local"` が含まれない [Agent SDK](/docs/ja/agent-sdk/typescript) セッションや、`local` を含まない [`--setting-sources`](/docs/ja/cli-reference#cli-flags) の値で開始した CLI セッションがあります。どちらのコマンドもスタイルを `.claude/settings.local.json` に保存しますが、そのようなセッションはこのファイルを読み込み直さないため、Claude Code は効果のない設定を書き込む代わりに拒否します。

3741 3768 

3742```text theme={null}3769```text theme={null}

3743Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3770Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.


3745 3772 

3746**対処方法:**3773**対処方法:**

3747 3774 

3748* セッションの設定ソースに `local` を追加して、もう一度切り替えてください。3775* セッションの設定ソースに `local` を追加してから、再度切り替えます

3749* [`outputStyle`](/docs/ja/settings-reference#outputstyle)キーをセッションが読み込む設定ファイル(プロジェクトの `.claude/settings.json` または `~/.claude/settings.json`)に設定してください。TypeScript SDK では、代わりにインライン `settings` オブジェクト内に `outputStyle` を設定してください。[出力スタイルをアクティブにする](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください。3776* プロジェクトの `.claude/settings.json` や `~/.claude/settings.json` など、セッションが読み込む設定ファイルで [`outputStyle`](/docs/ja/settings-reference#outputstyle) キーを設定します。TypeScript SDK では、代わりにインラインの `settings` オブジェクト内で `outputStyle` を設定します。[出力スタイルを有効にする](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください

3750 3777 

3751<h2 id="plugin-errors">3778<h2 id="plugin-errors">

3752 プラグインエラー3779 プラグインエラー


4474 バックグラウンドセッションエラー4501 バックグラウンドセッションエラー

4475</h2>4502</h2>

4476 4503 

4477[バックグラウンドセッション](/docs/ja/agent-view)は独自のインタラクティブターミナルなしで実行されるため、ターミナルが必要なコマンドはそこで異なる動作をします。これらのメッセージはバックグラウンドセッションのトランスクリプト、それに接続するターミナル、ディスパッチ元のセッションまたはシェル、または以下の[worktree-guard エントリ](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved)の場合は worktree に分離されたセッションまたは worktree 分離サブエージェントを実行しているセッションに表示されます。メッセージが特定の表面に固有の場合、そのエントリに記載されています。4504[バックグラウンドセッション](/docs/ja/agent-view)は独自の対話型ターミナルなしで実行されるため、ターミナルが必要なコマンドはそこで異なる動作をします。これらのメッセージはバックグラウンドセッションのトランスクリプト、それに接続するターミナル、ディスパッチ元のセッションまたはシェル、または以下の[worktree-guard エントリ](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved)の場合は worktree に分離されたセッションまたは worktree 分離サブエージェントを実行しているセッションに表示されます。メッセージが特定のサーフェスに固有の場合、そのエントリに記載されています。

4478 4505 

4479<h3 id="commands-refused-in-a-background-session">4506<h3 id="commands-refused-in-a-background-session">

4480 バックグラウンドセッションで拒否されたコマンド4507 バックグラウンドセッションで拒否されたコマンド

4481</h3>4508</h3>

4482 4509 

4483インタラクティブダイアログを開くコマンドは、バックグラウンドセッションにターミナルが接続されていない間は実行できません。`/install-github-app`、`/mcp` 設定リスト、および MCP サーバーメニューの認証アクションは、メッセージで応答します。`/install-github-app` と `/mcp` 設定リストの場合、セッションは[エージェントビュー](/docs/ja/agent-view)の**入力が必要**に表示されるため、セッションを見つけて接続し、コマンドを再度実行できます。ターミナルが接続されている間、これらのコマンドは正常に機能します。4510対話型ダイアログを開くコマンドは、バックグラウンドセッションにターミナルが接続されていない間は実行できません。`/install-github-app`、`/mcp` 設定リスト、および MCP サーバーメニューの認証アクションは、メッセージで応答します。`/install-github-app` と `/mcp` 設定リストの場合、セッションは[エージェントビュー](/docs/ja/agent-view)の**入力が必要**に表示されるため、セッションを見つけて接続し、コマンドを再度実行できます。ターミナルが接続されている間、これらのコマンドは正常に機能します。

4484 4511 

4485v2.1.216 より前では、`/install-github-app` または `/mcp` 設定リストが拒否された後、セッションは**入力が必要**に表示されませんでした。v2.1.213 から v2.1.215 では、ターミナルが接続されている間、コマンドは引き続き機能し、拒否メッセージは接続して再度コマンドを実行するよう指示していました。v2.1.208 から v2.1.212 では、Claude Code はターミナルが接続されている間でもこれらを拒否し、`Can't open MCP settings in a background session` などのメッセージが表示されていました。これらのバージョンでは、通常の `claude` セッションからコマンドを実行するか、アップグレードしてください。v2.1.208 より前では、バックグラウンドセッション内でダイアログが開きました。v2.1.208 のみで、Claude Code はバックグラウンドセッションの `/model` ピッカーも拒否し、`/upgrade` はブラウザを開く代わりにアップグレード URL を出力しました。4512v2.1.216 より前では、`/install-github-app` または `/mcp` 設定リストが拒否された後、セッションは**入力が必要**に表示されませんでした。v2.1.213 から v2.1.215 では、ターミナルが接続されている間、コマンドは引き続き機能し、拒否メッセージは接続して再度コマンドを実行するよう指示していました。v2.1.208 から v2.1.212 では、Claude Code はターミナルが接続されている間でもこれらを拒否し、`Can't open MCP settings in a background session` などのメッセージが表示されていました。これらのバージョンでは、通常の `claude` セッションからコマンドを実行するか、アップグレードしてください。v2.1.208 より前では、バックグラウンドセッション内でダイアログが開きました。v2.1.208 のみで、Claude Code はバックグラウンドセッションの `/model` ピッカーも拒否し、`/upgrade` はブラウザを開く代わりにアップグレード URL を出力しました。

4486 4513 


4499 パスを安全に解決できないため、書き込みまたはコマンドがブロックされました4526 パスを安全に解決できないため、書き込みまたはコマンドがブロックされました

4500</h3>4527</h3>

4501 4528 

4502Claude は、[worktree 分離ガード](/docs/ja/agent-view#how-file-edits-are-isolated)が 1 つの検証可能な場所に解決できないスペルを通じてファイルまたは作業ディレクトリにアクセスしました。ガードは、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)(インタラクティブまたはバックグラウンド)および[worktree 分離サブエージェント](/docs/ja/worktrees#isolate-subagents-with-worktrees)での書き込みとコマンド作業ディレクトリをチェックします。解決前にシンボリックリンクを解決し、操作が共有チェックアウトに到達しないことを確認します。解決に失敗すると、操作をブロックして、そこに到達させません。メッセージは、拒否するパス形式と再試行方法に名前を付けます:4529Claude は、[worktree 分離ガード](/docs/ja/agent-view#how-file-edits-are-isolated)が 1 つの検証可能な場所に解決できないスペルを通じてファイルまたは作業ディレクトリにアクセスしました。ガードは、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)(対話型またはバックグラウンド)および[worktree 分離サブエージェント](/docs/ja/worktrees#isolate-subagents-with-worktrees)での書き込みとコマンド作業ディレクトリをチェックします。シンボリックリンクを解決してから、操作が共有チェックアウトに到達しないことを確認します。解決に失敗すると、操作をブロックして、そこに到達させません。メッセージは、拒否するパス形式と再試行方法に名前を付けます:

4503 4530 

4504```text theme={null}4531```text theme={null}

4505This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.4532This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.


4535Claude は、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)で Bash または Monitor コマンドを実行し、Claude Code は 2 つの理由のいずれかでそれを拒否しました:4562Claude は、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)で Bash または Monitor コマンドを実行し、Claude Code は 2 つの理由のいずれかでそれを拒否しました:

4536 4563 

4537* コマンドは git をメインチェックアウトに指します。4564* コマンドは git をメインチェックアウトに指します。

4538* Claude Code は、コマンドテキストからコマンドが実行する git が worktree 内に留まることを確認できません。git に名前を付けないコマンドでも、`${!name}` などの変数間接参照を展開するか、`${ command; }` などの Bash 関数置換を実行すると、実行時に値が生成される可能性があるため、この理由で拒否される可能性があります。4565* Claude Code は、コマンドテキストからコマンドが実行する git が worktree 内に留まることを確認できません。git に名前を付けないコマンドでも、`${!name}` などの変数間接参照を展開するか、`${ command; }` などの Bash 関数置換を実行すると、実行時に生成される値自体がコマンドになり得るため、この理由で拒否される可能性があります。

4539 4566 

4540メッセージの中央は、検証できなかったものに名前を付けます:4567メッセージの中央は、検証できなかったものに名前を付けます:

4541 4568 


4579```4606```

4580 4607 

4581* **`running in another terminal`**:ターミナルが会話を保持しています。例えば、`claude --resume` または `/resume` で再開したターミナル。行には `Open in a terminal` も表示されます。4608* **`running in another terminal`**:ターミナルが会話を保持しています。例えば、`claude --resume` または `/resume` で再開したターミナル。行には `Open in a terminal` も表示されます。

4582* **`already open in another running Claude session`**:別の非インタラクティブ Claude Code プロセスがそれを保持しています。例えば、同じ会話の[バックグラウンドセッション](/docs/ja/agent-view#the-supervisor-process)プロセスがまだ終了していません。4609* **`already open in another running Claude session`**:別の非対話型 Claude Code プロセスがそれを保持しています。例えば、同じ会話の[バックグラウンドセッション](/docs/ja/agent-view#the-supervisor-process)プロセスがまだ終了していません。

4583 4610 

4584Claude Code は、行を開くときに入力した返信を保存し、セッションが次に開始するときにセッションの次のプロンプトとして送信します。4611Claude Code は、行を開くときに入力した返信を保存し、セッションが次に開始するときにセッションの次のプロンプトとして送信します。

4585 4612 


4593 このセッションの保存された会話はディスク上にもうありません4620 このセッションの保存された会話はディスク上にもうありません

4594</h3>4621</h3>

4595 4622 

4596[バックグラウンドセッション](/docs/ja/agent-view)を開きました。このセッションはバックグラウンドサービスがオフの間に終了し、[トランスクリプトクリーンアップ](/docs/ja/settings-reference#cleanupperioddays)がその保存された会話を削除しました。例えば、マシンが数週間オフになった後です。通常、そのような行を開くと、[保存された会話を再開](/docs/ja/agent-view#sessions-show-as-failed-after-shutdown)します。再開するものがないため、Claude Code は、セッションの元のプロンプトを再実行するよう求めずに拒否します:4623[バックグラウンドセッション](/docs/ja/agent-view)を開きました。このセッションはバックグラウンドサービスがオフの間に終了し、[トランスクリプトクリーンアップ](/docs/ja/settings-reference#cleanupperioddays)がその保存された会話を削除しました。例えば、マシンが数週間オフになった後です。通常、そのような行を開くと、[保存された会話を再開](/docs/ja/agent-view#sessions-show-as-failed-after-shutdown)します。再開するものがないため、Claude Code は、確認なしにセッションの元のプロンプトを再実行するのではなく、拒否します:

4597 4624 

4598```text theme={null}4625```text theme={null}

4599This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.4626This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.


4606* `claude rm <id>` を実行して行を削除します。[保持されたケース](/docs/ja/agent-view#what-deleting-a-session-removes)の 1 つが適用される場合、`claude rm` は行と worktree を保持し、理由に名前を付けます4633* `claude rm <id>` を実行して行を削除します。[保持されたケース](/docs/ja/agent-view#what-deleting-a-session-removes)の 1 つが適用される場合、`claude rm` は行と worktree を保持し、理由に名前を付けます

4607* セッションの元のプロンプトを新しい会話として再度実行するには、`claude respawn <id>` を実行します4634* セッションの元のプロンプトを新しい会話として再度実行するには、`claude respawn <id>` を実行します

4608 4635 

4609v2.1.248 より前では、そのような行を開くと、セッションの元のプロンプトを再実行し、数週間前のタスクをフォアグラウンドに引き戻しました。4636v2.1.248 より前では、そのような行を開くと、拒否する代わりにセッションの元のプロンプトを再実行し、数週間前のタスクをフォアグラウンドに引き戻しました。

4610 4637 

4611<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">4638<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">

4612 Worktree にはどこにもプッシュされていないコミットがあります4639 Worktree にはどこにもプッシュされていないコミットがあります


4615[バックグラウンドセッション](/docs/ja/agent-view#what-deleting-a-session-removes)を削除しようとしました。その worktree は、Claude Code が他の場所に保存されていることを確認できないコミットを保持しています。Claude Code は、コミットを見ずに破棄するのではなく、worktree とセッション行を保持します。`claude rm` はブランチとプッシュされていないコミットに名前を付け、進め方を説明します:4642[バックグラウンドセッション](/docs/ja/agent-view#what-deleting-a-session-removes)を削除しようとしました。その worktree は、Claude Code が他の場所に保存されていることを確認できないコミットを保持しています。Claude Code は、コミットを見ずに破棄するのではなく、worktree とセッション行を保持します。`claude rm` はブランチとプッシュされていないコミットに名前を付け、進め方を説明します:

4616 4643 

4617```text theme={null}4644```text theme={null}

4618kept 7c5dcf5d — its worktree is still at "/home/you/project/.claude/worktrees/fix-login"4645kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”

4619 2 unpushed commits on "claude/fix-login": a1b2c3d "Fix login flow" and 1 more. They exist on no remote, so deleting the worktree would lose them.4646 2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.

4620 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef4647 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4621```4648```

4622 4649 

4623Claude Code がコミットを要約できない場合、詳細行は `The worktree has unpushed commits` を読みます。[エージェントビュー](/docs/ja/agent-view)では、セッションの行は同じ理由で `not deleted` を表示します。4650Claude Code がコミットを要約できない場合、詳細行は代わりに `The worktree has unpushed commits` となります。[エージェントビュー](/docs/ja/agent-view)では、セッションの行は同じ理由で `not deleted` を表示します。

4624 4651 

4625リモート上のコミットは削除をブロックしません。ローカルコピーの `origin` リモートのデフォルトブランチ上のコミットもブロックしません。そのブランチがメインチェックアウト(リポジトリディレクトリ自体、worktree ではなく)でチェックアウトされている限り。4652リモート上のコミットは削除をブロックしません。`origin` リモートのデフォルトブランチのローカルコピー上のコミットもブロックしません。ただし、そのブランチがメインチェックアウト(worktree ではなく、リポジトリディレクトリ自体)でチェックアウトされている限りです。

4626 4653 

4627**対処方法:**4654**対処方法:**

4628 4655 

4629* コミットを保持するには、worktree のブランチをプッシュするか、メインチェックアウトでチェックアウトされたデフォルトブランチにマージしてから、セッションを再度削除します4656* コミットを保持するには、worktree のブランチをプッシュするか、メインチェックアウトでチェックアウトされたデフォルトブランチにマージしてから、セッションを再度削除します

4630* コミットを破棄するには、メッセージが出力した `claude rm <id> --discard-unpushed` コマンドを実行するか、エージェントビューのセッション行で `Ctrl+X` を 2 回押します。これにより、セッション、worktree、そのブランチ、プッシュされていないコミット、およびコミットされていない変更が削除されます。worktree が拒否以降にコミットを獲得した場合、Claude Code はそれを再度保持し、更新された状態を表示します4657* コミットを破棄するには、メッセージが出力した `claude rm <id> --discard-unpushed` コマンドを実行するか、エージェントビューのセッション行で再度 `Ctrl+X` を 2 回押します。これにより、セッション、worktree、そのブランチ、プッシュされていないコミット、およびコミットされていない変更が削除されます。worktree が拒否以降にコミットを獲得した場合、Claude Code はそれを再度保持し、更新された状態を表示します

4631* メッセージが worktree が別の完了したセッションによっても記録されていることを示す場合、再度削除してもそれは破棄されません:コミットをプッシュしてから、セッションを再度削除します4658* メッセージが worktree が別の完了したセッションによっても記録されていることを示す場合、再度削除してもそれは破棄されません:コミットをプッシュしてから、セッションを再度削除します

4632 4659 

4633v2.1.268 より前では、`claude rm` はコミット要約を `kept` 行自体に置いていました。Claude Code がコミットを要約できない場合、`kept` 行は要約の代わりに `worktree has commits that are not pushed anywhere` を読みました。4660v2.1.268 より前では、`claude rm` はコミット要約を `kept` 行自体に置いていました。`claude rm` がコミットを要約できない場合、`kept` 行は要約の代わりに `worktree has commits that are not pushed anywhere` となっていました。

4634 4661 

4635v2.1.260 より前では、メッセージはブランチまたはコミットに名前を付けず、再度削除することは同じ方法で拒否されました:セッションを削除してプッシュしないことは、`git worktree remove --force <path>` で worktree を自分で削除してから、`claude rm <id>` を再度実行することを意味していました。4662v2.1.260 より前では、メッセージはブランチまたはコミットに名前を付けず、再度削除することは同じ方法で拒否されました:セッションを削除してプッシュしないことは、`git worktree remove --force <path>` で worktree を自分で削除してから、`claude rm <id>` を再度実行することを意味していました。

4636 4663 


4713 セッションエージェントはもう利用できません4740 セッションエージェントはもう利用できません

4714</h3>4741</h3>

4715 4742 

4716[カスタムエージェント](/docs/ja/sub-agents#invoke-subagents-explicitly)を実行していたセッションを再開しました。`--agent` またはエージェント設定で開始され、Claude Code はその名前のエージェントを見つけませんでした。セッションの元のディレクトリを最初に検索します。[そのワークスペースを信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)している場合、再開するディレクトリを検索します。セッションは引き続き再開されますが、デフォルトツールとシステムプロンプトを使用するため、エージェントのツール制限は適用されなくなります:4743`--agent` または `agent` 設定で開始された[カスタムエージェント](/docs/ja/sub-agents#invoke-subagents-explicitly)を実行していたセッションを再開しましたが、Claude Code はその名前のエージェントを見つけられませんでした。Claude Code は、[そのワークスペースを信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)している場合はまずセッションの元のディレクトリを検索し、次に再開元のディレクトリを検索します。セッションは引き続き再開されますが、デフォルトツールを使用するため、エージェントのツール制限は適用されなくなります:

4717 4744 

4718```text theme={null}4745```text theme={null}

4719This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.4746This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.

4720```4747```

4721 4748 

4722警告は、Claude Code が検索したディレクトリのみに名前を付け、[バックグラウンドセッション](/docs/ja/agent-view)を起動するか、`/resume` または `claude --resume` を実行するか、[非インタラクティブモード](/docs/ja/headless)で再開するかどうかに関わらず、再開された会話に表示されます。そこでは stderr にも送信されます。`--input-format stream-json` を使用するセッションは、Agent SDK がスタートアップ後にエージェントを提供するため、表示されません。4749警告は、Claude Code が検索したディレクトリのみに名前を付け、[バックグラウンドセッション](/docs/ja/agent-view)を起動するか、`/resume` または `claude --resume` を実行するか、[非対話モード](/docs/ja/headless)で再開するかどうかに関わらず、再開された会話に表示されます。非対話モードでは stderr にも送信されます。`--input-format stream-json` を使用するセッションは、Agent SDK がスタートアップ後にエージェントを提供するため、表示されません。

4723 4750 

4724Claude Code はセッションへのフォールバックを保存しないため、警告は、対処するまで各再開で繰り返されます。組み込みの `claude` エージェントは、デフォルトツールセットへのフォールバックがそれに対して何も変わらないため、警告をトリガーしません。v2.1.216 より前では、Claude Code は静かにデフォルトエージェントとして続行し、ルックアップは再開するディレクトリのみをカバーしていたため、プロジェクトスコープのエージェントは別のディレクトリから再開すると失われました。4751Claude Code はセッションへのフォールバックを保存しないため、警告は、対処するまで各再開で繰り返されます。組み込みの `claude` エージェントは、デフォルトツールセットへのフォールバックがそれに対して何も変わらないため、警告をトリガーしません。v2.1.216 より前では、Claude Code は静かにデフォルトエージェントとして続行し、ルックアップは再開するディレクトリのみをカバーしていたため、プロジェクトスコープのエージェントは別のディレクトリから再開すると失われました。

4725 4752 

4726**対処方法:**4753**対処方法:**

4727 4754 

4728* セッションのプロジェクトの `.claude/agents/<name>.md` または個人エージェントの `~/.claude/agents/<name>.md` にエージェントファイルを再作成してから、再度再開します4755* セッションのプロジェクトの `.claude/agents/<name>.md` または個人エージェントの `~/.claude/agents/<name>.md` にエージェントファイルを再作成してから、再度再開します

4729* または、`--agent <name>` で再開して、存在するエージェントに名前を付けて、セッションをそのエージェントとして実行します4756* または、存在するエージェントを指定して `--agent <name>` で再開し、セッションをそのエージェントとして実行します

4730* エージェントがプロジェクトスコープで、セッションの元のディレクトリを信頼していない場合、そこで Claude Code を 1 回実行し、信頼ダイアログを受け入れてから、再度再開します4757* エージェントがプロジェクトスコープで、セッションの元のディレクトリを信頼していない場合、そこで Claude Code を 1 回実行し、信頼ダイアログを受け入れてから、再度再開します

4731 4758 

4732<h3 id="claude_code_process_wrapper-launcher-errors">4759<h3 id="claude_code_process_wrapper-launcher-errors">

4733 CLAUDE\_CODE\_PROCESS\_WRAPPER ランチャーエラー4760 CLAUDE\_CODE\_PROCESS\_WRAPPER ランチャーエラー

4734</h3>4761</h3>

4735 4762 

4736[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/ja/corporate-launcher)が設定されており、その値は使用できないため、Claude Code はランチャーなしで実行するのではなく、影響を受けるプロセスの開始を拒否します。構成の問題は、変数名で始まり、理由を述べるメッセージで報告されます。例えば:4763[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/ja/corporate-launcher)が設定されており、その値は使用できないため、Claude Code はランチャーなしで実行するのではなく、影響を受けるプロセスの開始を拒否します。設定の問題は、変数名で始まり、理由を述べるメッセージで報告されます。例えば:

4737 4764 

4738```text theme={null}4765```text theme={null}

4739CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4766CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4740```4767```

4741 4768 

4742開始するが Claude Code で自分自身を置き換えずに終了するランチャーは、それが開始していたセッションを失敗させ、エージェントビューのセッション行は、ランチャーが `must exec, not daemonize` に続いて、ランチャーが出力したものを報告します。バックグラウンドサービスに到達できないセッションは、ランチャーの問題を理由として `Couldn't reach the background service (...)` 内で報告します。4769開始するが Claude Code で自分自身を置き換えずに終了するランチャーは、それが開始していたセッションを失敗させ、エージェントビューのセッション行は、ランチャーが `must exec, not daemonize` であることを、ランチャーが出力したものに続けて報告します。ランチャーが原因で開始できない、またはバックグラウンドサービスに到達できないセッションは、ランチャーの問題を理由として `Couldn't reach the background service (...)` 内で報告します。

4743 4770 

4744**対処方法:**4771**対処方法:**

4745 4772 

4746* 変数を、`exec "$@"` を呼び出して終了する実行可能ファイルの絶対パスに設定します。完全な契約については、[ランチャー契約](/docs/ja/corporate-launcher#the-launcher-contract)を参照してください4773* 変数を、`exec "$@"` を呼び出して終了する実行可能ファイルの絶対パスに設定します。完全な契約については、[ランチャー契約](/docs/ja/corporate-launcher#the-launcher-contract)を参照してください

4747* `/status` をチェックします。これは Self-exec エントリで解決されたランチャーコマンドを表示し、実行中のバックグラウンドサービスが一致しない場合に警告するか、シェルから `claude daemon status` を実行します4774* `/status` をチェックします。これは Self-exec エントリで解決された起動コマンドを表示し、実行中のバックグラウンドサービスが一致しない場合に警告します。または、シェルから `claude daemon status` を実行します

4748* [設定](/docs/ja/corporate-launcher#set-up-the-launcher)の `env` ブロックで値を修正した後、`claude daemon stop --any` でバックグラウンドサービスを再開して、次のディスパッチがラップされたものを開始するようにします4775* [設定](/docs/ja/corporate-launcher#set-up-the-launcher)の `env` ブロックで値を修正した後、`claude daemon stop --any` でバックグラウンドサービスを再開して、次のディスパッチがラップされたものを開始するようにします

4749 4776 

4750<h3 id="eunknown-when-starting-a-background-session">4777<h3 id="eunknown-when-starting-a-background-session">


4767 4794 

4768**対処方法:**4795**対処方法:**

4769 4796 

4770* メッセージが `Couldn't start the session` を読む場合、v2.1.212 以降にアップグレードします。以前のバージョンでは、別のターミナルで最初に `claude daemon run` を実行してから、バックグラウンドセッションを再度開始することもできます。そのコマンドはバックグラウンドサービスをターミナルのフォアグラウンドで実行するため、サービスはそのターミナルが開いている限り続きます。4797* メッセージが `Couldn't start the session` となっている場合、v2.1.212 以降にアップグレードします。以前のバージョンでは、別のターミナルで最初に `claude daemon run` を実行してから、バックグラウンドセッションを再度開始することもできます。そのコマンドはバックグラウンドサービスをターミナルのフォアグラウンドで実行するため、サービスはそのターミナルが開いている限り続きます。

4771* npm インストールがバイナリを置き換えていた場合、完了するまで待ってから、バックグラウンドセッションを再度開始します4798* npm インストールがバイナリを置き換えていた場合、完了するまで待ってから、バックグラウンドセッションを再度開始します

4772* エラーが npm インストールが実行されていない間に v2.1.212 以降で表示される場合、Windows 管理者に Claude Code 実行可能ファイルを制限ポリシーで許可するよう依頼します4799* npm インストールが実行されていないのに v2.1.212 以降でエラーが表示される場合、制限ポリシーが Claude Code 実行可能ファイルをブロックしているかどうかを Windows 管理者に確認します

4773* ターミナルを閉じるとバックグラウンドサービスが停止する場合、Claude Code は PowerShell なしでそれを開始しました。PowerShell 7 をインストールするか、管理者に PowerShell をブロック解除するよう依頼して、サービスがターミナルより長く続くようにします。4800* ターミナルを閉じるとバックグラウンドサービスが停止する場合、Claude Code は PowerShell なしでそれを開始しました。PowerShell 7 をインストールするか、管理者に PowerShell をブロック解除するよう依頼して、サービスがターミナルより長く続くようにします。

4774 4801 

4775<h3 id="eacces-when-starting-a-background-session">4802<h3 id="eacces-when-starting-a-background-session">

4776 バックグラウンドセッションを開始するときの EACCES4803 バックグラウンドセッションを開始するときの EACCES

4777</h3>4804</h3>

4778 4805 

4779Claude Code は、[バックグラウンドセッション](/docs/ja/agent-view#the-supervisor-process)をホストするバックグラウンドサービスを開始するために、独自のバイナリを実行できませんでした。npm インストールでは、これは通常、`npm install -g @anthropic-ai/claude-code` がその時点でバイナリを置き換えていることを意味します。実行したか、[自動アップデーター](/docs/ja/setup#auto-updates)が実行したかどうか。エラーは、[エージェントビュー](/docs/ja/agent-view)からセッションを開くときに表示されます:4806Claude Code は、バックグラウンドセッションをホストする[バックグラウンドサービス](/docs/ja/agent-view#the-supervisor-process)を開始するために、独自のバイナリを実行できませんでした。npm インストールでは、これは通常、`npm install -g @anthropic-ai/claude-code` がその時点でバイナリを置き換えていたことを意味します。ユーザーが実行したか、[自動アップデーター](/docs/ja/setup#auto-updates)が実行したかは問いません。エラーは、[エージェントビュー](/docs/ja/agent-view)からセッションを開くときに表示されます:

4780 4807 

4781```text theme={null}4808```text theme={null}

4782Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'4809Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'


4790Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes4817Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes

4791```4818```

4792 4819 

4793v2.1.257 より前では、待機は 10 秒で停止していたため、別の Claude Code プロセスがまだアップデートをダウンロードしている間にこのエラーが表示されました。v2.1.246 より前では、Claude Code は待機なしで直ちに失敗しました。4820v2.1.257 より前では、待機はすべての場合で 10 秒で停止していたため、別の Claude Code プロセスがまだアップデートをダウンロードしている間にこのエラーが表示されました。v2.1.246 より前では、Claude Code は待機なしで直ちに失敗しました。

4794 4821 

4795**対処方法:**4822**対処方法:**

4796 4823 

4797* 数秒待ってから、セッションを開くか再度ディスパッチします。メッセージが Claude Code が更新されていることを示す場合、アップデートが完了した後に再試行します。4824* 数秒待ってから、セッションを開くか再度ディスパッチします。メッセージが Claude Code が更新されていることを示す場合、アップデートが完了した後に再試行します。

4798* npm インストールが実行されていない間にエラーが持続する場合、ユーザーはインストールされたバイナリを実行できません。そのパーミッションとそのディレクトリのパーミッションをチェックするか、Claude Code を再インストールします。4825* npm インストールが実行されていない間にエラーが持続する場合、ユーザーはインストールされたバイナリを実行できません。その権限とそのディレクトリの権限をチェックするか、Claude Code を再インストールします。

4799 4826 

4800<h3 id="background-service-exited-before-it-became-reachable">4827<h3 id="background-service-exited-before-it-became-reachable">

4801 バックグラウンドサービスが到達可能になる前に終了しました4828 バックグラウンドサービスが到達可能になる前に終了しました


4807Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'4834Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'

4808```4835```

4809 4836 

4810[エージェントビュー](/docs/ja/agent-view)からセッションを開く場合、同じ理由は `Couldn't start the background service —` に従います。サービスが終了する前に何も出力しなかった場合、メッセージは代わりに `nothing on stderr` を示しています。4837[エージェントビュー](/docs/ja/agent-view)からセッションを開く場合、同じ理由は `Couldn't start the background service —` に続きます。サービスが終了する前に何も出力しなかった場合、メッセージは代わりに `nothing on stderr` を示しています。

4811 4838 

4812Claude Code はサービスのエラー行で失敗を報告します。v2.1.246 より前では、失敗は 45 秒の待機後にのみ表示され、`background service did not become reachable within 45s` として、サービスのエラー行なしで表示されました。4839Claude Code はサービスのエラー行で失敗を報告します。v2.1.246 より前では、失敗は 45 秒の待機後にのみ表示され、`background service did not become reachable within 45s` として、サービスのエラー行なしで表示されました。

4813 4840 

48142 つの引用された理由は既知の原因を持っています:48412 つの引用された理由は既知の原因を持っています:

4815 4842 

4816* `Error: claude native binary not installed.`:npm インストールがその時点で Claude Code バイナリを置き換えていたため、サービスは npm のプレースホルダーを実行しました。インストール完了後に再試行します。インストールが実行されていない間に行が持続する場合、[npm インストールを完了](/docs/ja/troubleshoot-install#native-binary-not-found-after-npm-install)します。v2.1.257 より前では、macOS npm 自己更新はインストールウィンドウ中のすべての開始でこの失敗を生成しました。4843* `Error: claude native binary not installed.`:npm インストールがその時点で Claude Code バイナリを置き換えていたため、サービスは npm のプレースホルダーを実行しました。インストール完了後に再試行します。インストールが実行されていない間に行が持続する場合、[npm インストールを完了](/docs/ja/troubleshoot-install#native-binary-not-found-after-npm-install)します。v2.1.257 より前では、macOS npm 自己更新はインストールウィンドウ中のすべての開始でこの失敗を生成しました。

4817* Windows で、すべての開始で終了コード 1 で `nothing on stderr`:`daemon.lock` は、Claude Code がシグナルを送信することも、消えたことを証明することもできないプロセスに名前を付けます。そのため、各新しいサービスは別のサービスがロックを保持していると結論付け、終了します。Claude Code が消えたことを証明できるロックは、独自に置き換えられ、この失敗を生成しません。失敗がすべての開始で繰り返される場合、`~/.claude/daemon.lock` を削除してから、セッションを開くか再度ディスパッチします。v2.1.257 より前では、そのようなロックはファイルを削除するまですべての開始をブロックしました。4844* Windows で、すべての開始で終了コード 1 で `nothing on stderr`:`daemon.lock` は、Claude Code がシグナルを送信することも、消えたことを証明することもできないプロセスに名前を付けます。そのため、各新しいサービスは別のサービスがロックを保持していると結論付け、終了します。Claude Code が書き込み元の消失を証明できるロックは、独自に置き換えられ、この失敗を生成しません。失敗がすべての開始で繰り返される場合、`~/.claude/daemon.lock` を削除してから、セッションを開くか再度ディスパッチします。v2.1.257 より前では、そのようなロックはファイルを削除するまですべての開始をブロックしました。

4818 4845 

4819**対処方法:**4846**対処方法:**

4820 4847 


4825 バックグラウンドセッションを開始するときに作業ディレクトリが存在しなくなりました4852 バックグラウンドセッションを開始するときに作業ディレクトリが存在しなくなりました

4826</h3>4853</h3>

4827 4854 

4828[バックグラウンドセッション](/docs/ja/agent-view)を開始しようとしました。そのセッションは、もう存在しないディレクトリで実行されます。これは、エージェントビューからディスパッチするか、作業中のディレクトリが削除または移動された後に `/background` を実行するときに発生します。また、プロセスが終了し、そのディレクトリが消えたセッションに接続または再開するときにも発生します。新しいプロセスは同じディレクトリで開始するためです。Claude Code はセッションを開始せず、メッセージは見つからないディレクトリに名前を付けます:4855[バックグラウンドセッション](/docs/ja/agent-view)を開始したディレクトリが、セッションの開始中に削除されました。Claude Code はセッションを開始せず、メッセージは見つからないディレクトリに名前を付けます:

4829 4856 

4830```text theme={null}4857```text theme={null}

4831Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4858Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4843 バックグラウンドセッションをディスパッチするときにワークスペースが信頼されていません4870 バックグラウンドセッションをディスパッチするときにワークスペースが信頼されていません

4844</h3>4871</h3>

4845 4872 

4846[バックグラウンドセッション](/docs/ja/agent-view)を開始または再開しました。そのセッションは、[信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)していないディレクトリで実行されます。ワークスペース信頼ダイアログが表示されず、Claude Code はセッションを開始しません:4873[信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)していないディレクトリで[バックグラウンドセッション](/docs/ja/agent-view)を開始または再開しましたが、ワークスペース信頼ダイアログを表示して確認することができませんでした。Claude Code はセッションを開始しません:

4847 4874 

4848```text theme={null}4875```text theme={null}

4849Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.4876Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.


4856* **`The home directory is trusted one session at a time`**:セッションのディレクトリはホームディレクトリです。Claude Code はホームディレクトリの信頼を保存しないため、以前のセッションでそこでダイアログを受け入れてもカウントされません。4883* **`The home directory is trusted one session at a time`**:セッションのディレクトリはホームディレクトリです。Claude Code はホームディレクトリの信頼を保存しないため、以前のセッションでそこでダイアログを受け入れてもカウントされません。

4857* **`<path> could not be resolved on disk`**:Claude Code はディスク上のセッションのディレクトリを見つけることができませんでした。4884* **`<path> could not be resolved on disk`**:Claude Code はディスク上のセッションのディレクトリを見つけることができませんでした。

4858 4885 

4886v2.1.286 より前の Windows では、信頼の記録がパスの大文字・小文字が異なる形で保存されていた場合、既に信頼したディレクトリでもこのメッセージが表示されることがありました。v2.1.286 以降にアップデートしてください。

4887 

4859**対処方法:**4888**対処方法:**

4860 4889 

4861* メッセージが名前を付けるディレクトリで `claude` を実行し、信頼ダイアログを受け入れてから、コマンドを再度実行します4890* メッセージが名前を付けるディレクトリで `claude` を実行し、信頼ダイアログを受け入れてから、コマンドを再度実行します

4862* ホームディレクトリメッセージの場合、ホームディレクトリのターミナルからコマンドを実行してダイアログが表示されるようにするか、プロジェクトディレクトリからセッションを開始します4891* ホームディレクトリメッセージの場合、ホームディレクトリのターミナルからコマンドを実行してダイアログが表示されるようにするか、プロジェクトディレクトリからセッションを開始します

4863* `could not be resolved on disk` メッセージの場合、ディレクトリを再作成するか、存在するディレクトリからセッションを開始します4892* `could not be resolved on disk` メッセージの場合、ディレクトリを再作成するか、存在するディレクトリから新しいセッションを開始します

4864 4893 

4865<h2 id="wrapper-and-ide-errors">4894<h2 id="wrapper-and-ide-errors">

4866 ラッパーと IDE エラー4895 ラッパーと IDE エラー

fullscreen.md +2 −0

Details

105* **`/config` パネルの設定値をクリック**して変更し、マウス ホイールで設定リストをスクロールします。Claude Code v2.1.271 以降が必要です。105* **`/config` パネルの設定値をクリック**して変更し、マウス ホイールで設定リストをスクロールします。Claude Code v2.1.271 以降が必要です。

106* **マウス ホイールで選択メニューまたは複数選択メニューをスクロール**します。短いターミナル ウィンドウの `/model` リストなど、一度に表示されるより多くのオプションがある場合に使用します。ポインタがオプションの上にある間、ホイールはリストをスクロールします。Claude Code v2.1.280 以降が必要です。106* **マウス ホイールで選択メニューまたは複数選択メニューをスクロール**します。短いターミナル ウィンドウの `/model` リストなど、一度に表示されるより多くのオプションがある場合に使用します。ポインタがオプションの上にある間、ホイールはリストをスクロールします。Claude Code v2.1.280 以降が必要です。

107* **スクロールバーでオーバーフローしているリストをスクロール**します。`/skills`、`/mcp`、`/plugin` のインストール済みリストなどのリスト パネルでは、ポインタがリストの上にある間、行がフィットするより多くの行を持つリストの横にスクロールバーが表示されます。トラックをクリックしてその位置にジャンプするか、サムをドラッグします。Claude Code v2.1.281 以降が必要です。107* **スクロールバーでオーバーフローしているリストをスクロール**します。`/skills`、`/mcp`、`/plugin` のインストール済みリストなどのリスト パネルでは、ポインタがリストの上にある間、行がフィットするより多くの行を持つリストの横にスクロールバーが表示されます。トラックをクリックしてその位置にジャンプするか、サムをドラッグします。Claude Code v2.1.281 以降が必要です。

108 * バーの両端に `↑` と `↓` の矢印がある場合は、矢印をクリックすると 1 行ずつスクロールし、押し続けるとスクロールし続けます。矢印には Claude Code v2.1.286 以降が必要です。

109* **リストの端にある `↑ N more` または `↓ N more` 行をクリック**すると、オプションを選択せずにリストのその端にジャンプします。Claude Code v2.1.286 以降が必要です。

108* **折りたたまれたツール結果をクリック**して展開し、完全な出力を表示します。もう一度クリックして折りたたみます。ツール呼び出しとその結果は一緒に展開されます。表示するものが多いメッセージのみがクリック可能です。110* **折りたたまれたツール結果をクリック**して展開し、完全な出力を表示します。もう一度クリックして折りたたみます。ツール呼び出しとその結果は一緒に展開されます。表示するものが多いメッセージのみがクリック可能です。

109 * クリックすると、`!` シェル コマンドの出力も展開されます。古い切り詰められた結果でも、コマンド実行中のライブ進行状況行でも同様です。Claude Code v2.1.257 以降が必要です。111 * クリックすると、`!` シェル コマンドの出力も展開されます。古い切り詰められた結果でも、コマンド実行中のライブ進行状況行でも同様です。Claude Code v2.1.257 以降が必要です。

110 * クリックすると、送信者が [チームメイト](/docs/ja/agent-teams)または セッションで実行されている別のエージェントである場合、薄い `Message from @<sender>` 行も展開されます。[別のセッションの 1 つからのメッセージ](/docs/ja/cross-session-messaging#what-a-message-looks-like)の行は、メッセージの最初の行も表示され、クリック可能ではなく、`Ctrl+o` を押してそれを読みます。112 * クリックすると、送信者が [チームメイト](/docs/ja/agent-teams)または セッションで実行されている別のエージェントである場合、薄い `Message from @<sender>` 行も展開されます。[別のセッションの 1 つからのメッセージ](/docs/ja/cross-session-messaging#what-a-message-looks-like)の行は、メッセージの最初の行も表示され、クリック可能ではなく、`Ctrl+o` を押してそれを読みます。

headless.md +8 −0

Details

62| カスタムエージェント | `--agents <json>` |62| カスタムエージェント | `--agents <json>` |

63| プラグイン | `--plugin-dir <path>`、`--plugin-url <url>` |63| プラグイン | `--plugin-dir <path>`、`--plugin-url <url>` |

64 64 

65bare モードでは、セッションの実行中に行われる処理も制限されます。

66 

67* **MCP サーバー**: コマンドラインで指定されたサーバー(例えば `--mcp-config` で指定したもの)のみが接続されます。対話型セッションでは、`--ide` を渡さない限り、Claude Code は IDE への自動接続もスキップします。

68* **システムリマインダー**: Claude はプロンプトとツールの結果を受け取りますが、Claude Code が通常それらと一緒に追加する [システムリマインダー](/docs/ja/glossary#system-reminder) は含まれません。例えば、以前に読み取ったファイルがディスク上で変更されても Claude には通知されず、`--add-dir` フォルダのスキルを含む利用可能なスキルの一覧も Claude には渡されません。

69* **バックグラウンドタスク**: 実行されません。[タイムアウト](/docs/ja/tools-reference#timeout-and-output-limits) に達したコマンドは、[バックグラウンドに移行する](/docs/ja/tools-reference#background-commands) 代わりに停止します。

70 

71v2.1.286 より前は、これらの制限は部分的にしか適用されていませんでした。対話型の `--bare` セッションは通常のセッションと同じ MCP サーバーに接続し、すべての `--bare` セッションがシステムリマインダーを送信し、バックグラウンドタスクも引き続き利用可能でした。

72 

65<Note>73<Note>

66 `--bare` はスクリプト化および SDK 呼び出しの推奨モードであり、将来のリリースで `-p` のデフォルトになります。74 `--bare` はスクリプト化および SDK 呼び出しの推奨モードであり、将来のリリースで `-p` のデフォルトになります。

67</Note>75</Note>

hooks.md +1523 −751

Details

7> Claude Code のフック イベント、設定スキーマ、JSON 入出力形式、終了コード、非同期フック、HTTP フック、プロンプト フック、MCP ツール フックのリファレンス。7> Claude Code のフック イベント、設定スキーマ、JSON 入出力形式、終了コード、非同期フック、HTTP フック、プロンプト フック、MCP ツール フックのリファレンス。

8 8 

9<Tip>9<Tip>

10 例を含むクイックスタート ガイドについては、[ワークフローをフックで自動化する](/docs/ja/hooks-guide)を参照してください。10 例を含むクイックスタート ガイドについては、[フックでアクションを自動化する](/docs/ja/hooks-guide)を参照してください。

11</Tip>11</Tip>

12 12 

13フックは、Claude Code のライフサイクル内の特定のポイントで自動的に実行されるユーザー定義のシェル コマンド、HTTP エンドポイント、または LLM プロンプトです。このリファレンスを使用して、イベント スキーマ、設定オプション、JSON 入出力形式、非同期フック、HTTP フック、MCP ツール フックなどの高度な機能を検索してください。初めてフックを設定する場合は、代わりに[ガイド](/docs/ja/hooks-guide)から始めてください。13フックは、Claude Code のライフサイクル内の特定のポイントで自動的に実行されるユーザー定義のシェル コマンド、HTTP エンドポイント、MCP ツール呼び出し、LLM プロンプト、またはサブエージェントです。Claude Code は、ターミナルでのセッション、IDE 拡張機能、[デスクトップアプリ](/docs/ja/desktop-quickstart)、[クラウドセッション](/docs/ja/claude-code-on-the-web)など、どこで実行されていても同じフック イベントを発火します。このリファレンスを使用して、イベント スキーマ、設定オプション、JSON 入出力形式、非同期フック、HTTP フック、MCP ツール フックなどの高度な機能を検索してください。

14 

15プラグインは、Claude Code が自身のプロセス内で呼び出す JavaScript 関数としてフックを登録することもでき、これによりイベントに応じて動作するだけでなく、インターフェースに描画することもできます。そうしたプラグインは [mod](/docs/ja/plugins/mods/overview) であり、それらの関数フックについてはここではなく[イベントに反応する](/docs/ja/plugins/mods/events)で説明しています。このページで説明するフックは、mod と併用しても引き続き動作します。

14 16 

15<h2 id="hook-lifecycle">17<h2 id="hook-lifecycle">

16 フック ライフサイクル18 フック ライフサイクル

17</h2>19</h2>

18 20 

19フックは Claude Code セッション中の特定のポイントで発火します。イベントが発火してマッチャーがマッチすると、Claude Code はイベントに関する JSON コンテキストをフック ハンドラーに渡します。コマンド フックの場合、入力は stdin に到着します。HTTP フックの場合、POST リクエスト本体として到着します。ハンドラーは入力を検査し、アクションを実行し、オプションで決定を返すことができます。21Claude Code は、セッション中の特定のポイントでフックを実行します。イベントが発火して matcher がマッチすると、Claude Code はイベントに関する JSON コンテキストをフック ハンドラーに渡します。コマンド フックの場合、入力は stdin に到着します。HTTP フックの場合、POST リクエスト本体として到着します。ハンドラーは入力を検査し、アクションを実行し、オプションで決定を返すことができます。

20 22 

21イベントは 3 つのケイデンスに分類されます。23イベントは 3 つのケイデンスに分類されます。

22 24 

23* セッションごとに 1 回:`SessionStart` と `SessionEnd`25* セッションごとに 1 回:`SessionStart` と `SessionEnd`

24* ターンごとに 1 回:`UserPromptSubmit`、`Stop`、`StopFailure`26* ターンごとに 1 回:`UserPromptSubmit`、`Stop`、`StopFailure`

25* agentic ループ内のすべてのツール呼び出しで:`PreToolUse` と `PostToolUse`27* エージェント型ループ内のすべてのツール呼び出しで:`PreToolUse` と `PostToolUse`。ただし、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior) の呼び出しは両方をスキップします

26 28 

27<div style={{maxWidth: "500px", margin: "0 auto"}}>29<div style={{maxWidth: "500px", margin: "0 auto"}}>

28 <Frame>30 <Frame>

29 <img src="https://mintcdn.com/claude-code/x7pO8l4XcvAXCoVc/images/hooks-lifecycle.svg?fit=max&auto=format&n=x7pO8l4XcvAXCoVc&q=85&s=81b9256c1bbe8832553485f5d9e9c746" alt="オプションの Setup から SessionStart に流れ込み、その後、UserPromptSubmit、スラッシュ コマンド用の UserPromptExpansion、ネストされた agentic ループ(PreToolUse、PermissionRequest、PostToolUse、PostToolUseFailure、PostToolBatch、SubagentStart/Stop、TaskCreated、TaskCompleted)、Stop または StopFailure を含むターンごとのループ、その後 TeammateIdle、PreCompact、PostCompact、SessionEnd が続き、Elicitation と ElicitationResult は MCP ツール実行内にネストされ、PermissionDenied は PermissionRequest からの副分岐として自動モード拒否のため、WorktreeCreate、WorktreeRemove、Notification、ConfigChange、InstructionsLoaded、CwdChanged、FileChanged はスタンドアロン非同期イベントとして表示されるフック ライフサイクル図" width="520" height="1336" data-path="images/hooks-lifecycle.svg" />31 <img src="https://mintcdn.com/claude-code/x7pO8l4XcvAXCoVc/images/hooks-lifecycle.svg?fit=max&auto=format&n=x7pO8l4XcvAXCoVc&q=85&s=81b9256c1bbe8832553485f5d9e9c746" className="dark:hidden" alt="オプションの Setup から SessionStart に流れ込み、その後、UserPromptSubmit、スラッシュコマンド用の UserPromptExpansion、ネストされたエージェント型ループ(PreToolUse、PermissionRequest、PostToolUse、PostToolUseFailure、PostToolBatch、SubagentStart/Stop、TaskCreated、TaskCompleted)、Stop または StopFailure を含むターンごとのループ、その後 TeammateIdle、PreCompact、PostCompact、SessionEnd が続くことを示すフック ライフサイクル図。Elicitation と ElicitationResult は MCP ツール実行内にネストされ、PermissionDenied は auto モードでの拒否のための PermissionRequest からの副分岐、WorktreeCreate、WorktreeRemove、Notification、ConfigChange、InstructionsLoaded、CwdChanged、FileChanged、DirectoryAdded はスタンドアロンの非同期イベント、PreModelSwitch は要求されたモデル切り替えの前に実行されるスタンドアロンの逐次イベント、PostModelSwitch はセッションのモデルが変更された後に実行されるスタンドアロンの非同期イベント、MessageDisplay はアシスタントのメッセージ テキストのストリーミング中に実行される表示専用イベントとして示されています" width="520" height="1336" data-path="images/hooks-lifecycle.svg" />

32 

33 <img src="https://mintcdn.com/claude-code/x7pO8l4XcvAXCoVc/images/hooks-lifecycle-dark.svg?fit=max&auto=format&n=x7pO8l4XcvAXCoVc&q=85&s=c9b3d88487335f58cce0b52e2f9e7531" className="hidden dark:block" alt="オプションの Setup から SessionStart に流れ込み、その後、UserPromptSubmit、スラッシュコマンド用の UserPromptExpansion、ネストされたエージェント型ループ(PreToolUse、PermissionRequest、PostToolUse、PostToolUseFailure、PostToolBatch、SubagentStart/Stop、TaskCreated、TaskCompleted)、Stop または StopFailure を含むターンごとのループ、その後 TeammateIdle、PreCompact、PostCompact、SessionEnd が続くことを示すフック ライフサイクル図。Elicitation と ElicitationResult は MCP ツール実行内にネストされ、PermissionDenied は auto モードでの拒否のための PermissionRequest からの副分岐、WorktreeCreate、WorktreeRemove、Notification、ConfigChange、InstructionsLoaded、CwdChanged、FileChanged、DirectoryAdded はスタンドアロンの非同期イベント、PreModelSwitch は要求されたモデル切り替えの前に実行されるスタンドアロンの逐次イベント、PostModelSwitch はセッションのモデルが変更された後に実行されるスタンドアロンの非同期イベント、MessageDisplay はアシスタントのメッセージ テキストのストリーミング中に実行される表示専用イベントとして示されています" width="520" height="1336" data-path="images/hooks-lifecycle-dark.svg" />

30 </Frame>34 </Frame>

31</div>35</div>

32 36 

33以下の表は、各イベントがいつ発火するかをまとめています。[フック イベント](#hook-events)セクションでは、各イベントの完全な入力スキーマと決定制御オプションについて説明しています。37以下の表は、各イベントがいつ発火するかをまとめています。[フック イベント](#hook-events)セクションでは、各イベントの完全な入力スキーマと決定制御オプションについて説明しています。

34 38 

35| Event | When it fires |39| イベント | 発火するタイミング |

36| :- | :- |40| :- | :- |

37| `SessionStart` | When a session begins or resumes |41| `SessionStart` | セッションが開始または再開されたとき |

38| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |42| `Setup` | `--init-only` で Claude Code を起動するとき、または `-p` モードで `--init` または `--maintenance` を使用するとき。CI またはスクリプトでの 1 回限りの準備用 |

39| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |43| `UserPromptSubmit` | プロンプトを送信するとき、Claude が処理する前 |

40| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |44| `UserPromptExpansion` | ユーザーが入力したコマンドがプロンプトに展開されるとき、Claude に到達する前。展開をブロックできます |

41| `PreToolUse` | Before a tool call executes. Can block it |45| `PreToolUse` | ツール呼び出しが実行される前。ブロックできます |

42| `PermissionRequest` | When a tool call needs a permission decision |46| `PermissionRequest` | ツール呼び出しが権限決定を必要とするとき |

43| `PermissionDenied` | When auto mode denies a tool call, including denials without a classifier verdict. Use JSON `hookSpecificOutput.retry: true` to tell the model it may retry the denied tool call. Claude Code ignores `retry` when the classifier produced no verdict |47| `PermissionDenied` | オートモードがツール呼び出しを拒否するとき、分類器の判定がない拒否を含みます。JSON `hookSpecificOutput.retry: true` を使用して、モデルが拒否されたツール呼び出しを再試行できることを伝えます。Claude Code は分類器が判定を出さなかった場合、`retry` を無視します |

44| `PostToolUse` | After a tool call succeeds |48| `PostToolUse` | ツール呼び出しが成功した後 |

45| `PostToolUseFailure` | After a tool call fails |49| `PostToolUseFailure` | ツール呼び出しが失敗した後 |

46| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |50| `PostToolBatch` | 並列ツール呼び出しの完全なバッチが解決した後、次のモデル呼び出しの前 |

47| `Notification` | When Claude Code sends a notification |51| `Notification` | Claude Code が通知を送信するとき |

48| `MessageDisplay` | While assistant message text is displayed |52| `MessageDisplay` | アシスタントメッセージテキストが表示されている間 |

49| `SubagentStart` | When a subagent is spawned |53| `SubagentStart` | サブエージェントがスポーンされるとき |

50| `SubagentStop` | When a subagent finishes |54| `SubagentStop` | サブエージェントが終了するとき |

51| `TaskCreated` | When a task is being created via `TaskCreate` |55| `TaskCreated` | `TaskCreate` 経由でタスクが作成されるとき |

52| `TaskCompleted` | When a task is being marked as completed |56| `TaskCompleted` | タスクが完了としてマークされるとき |

53| `Stop` | When Claude finishes responding |57| `Stop` | Claude が応答を終了するとき |

54| `StopFailure` | When the turn ends due to an API error |58| `StopFailure` | API エラーが原因でターンが終了するとき |

55| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |59| `TeammateIdle` | [エージェントチーム](/docs/ja/agent-teams) のチームメイトがアイドル状態になろうとするとき |

56| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |60| `InstructionsLoaded` | CLAUDE.md または `.claude/rules/*.md` ファイルがコンテキストに読み込まれるとき。セッション開始時およびセッション中にファイルが遅延読み込みされるときに発火します |

57| `ConfigChange` | When a configuration file changes during a session |61| `ConfigChange` | セッション中に設定ファイルが変更されるとき |

58| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |62| `CwdChanged` | 作業ディレクトリが変更されるとき、例えば Claude が `cd` コマンドを実行するとき。direnv などのツールを使用したリアクティブな環境管理に便利です |

59| `DirectoryAdded` | When a working directory is added mid-session via `/add-dir` or the SDK `register_repo_root` control request |63| `DirectoryAdded` | `/add-dir` または SDK `register_repo_root` コントロールリクエスト経由でセッション中盤に作業ディレクトリが追加されるとき |

60| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |64| `FileChanged` | 監視対象ファイルがディスク上で変更されるとき。`matcher` フィールドは監視するファイル名を指定します |

61| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |65| `WorktreeCreate` | `--worktree`、`isolation: "worktree"`、またはバックグラウンドセッション経由で worktree が作成されるとき。デフォルトの git 動作を置き換えます |

62| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |66| `WorktreeRemove` | セッション終了時、サブエージェント終了時、またはバックグラウンドセッションを削除するときに worktree が削除されるとき |

63| `PreCompact` | Before context compaction |67| `PreCompact` | コンテキスト圧縮の前 |

64| `PostCompact` | After context compaction completes |68| `PostCompact` | コンテキスト圧縮が完了した後 |

65| `PreModelSwitch` | Before Claude Code applies a model switch that you or a client requested. Can block the switch |69| `PreModelSwitch` | Claude Code があなたまたはクライアントがリクエストしたモデルスイッチを適用する前。スイッチをブロックできます |

66| `PostModelSwitch` | After the session's model changes, including changes Claude Code makes on its own, such as restoring the model when you resume a session |70| `PostModelSwitch` | セッションのモデルが変更された後、Claude Code が独自に行う変更(セッションを再開するときのモデル復元など)を含みます |

67| `Elicitation` | When an MCP server requests user input during a tool call |71| `Elicitation` | MCP サーバーがツール呼び出し中にユーザー入力をリクエストするとき |

68| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |72| `ElicitationResult` | ユーザーが MCP エリシテーションに応答した後、レスポンスがサーバーに送り返される前 |

69| `SessionEnd` | When a session terminates |73| `SessionEnd` | セッションが終了するとき |

70 74 

71<h3 id="how-a-hook-resolves">75<h3 id="how-a-hook-resolves">

72 フックがどのように解決されるか76 フックがどのように解決されるか

73</h3>77</h3>

74 78 

75これらの部分がどのように組み合わさるかを理解するために、破壊的なシェル コマンドをブロックする `PreToolUse` フックを考えてみましょう。`matcher` は Bash ツール呼び出しに絞り込み、`if` 条件は `rm *` にマッチするコマンドにさらに絞り込むため、`block-rm.sh` は両方のフィルターがマッチするときのみ生成されます。79イベント、matcher、ハンドラーがどのように組み合わさるかを理解するために、破壊的なシェル コマンドをブロックする次の `PreToolUse` フックを考えてみましょう。

76 80 

77```json theme={null}81<Tabs>

78{82 <Tab title="macOS/Linux">

83 `matcher` は Bash ツール呼び出しに絞り込み、`if` 条件は `rm *` にマッチする Bash サブコマンドにさらに絞り込むため、`block-rm.sh` は両方のフィルターがマッチするときのみ生成されます。

84 

85 ```json theme={null}

86 {

79 "hooks": {87 "hooks": {

80 "PreToolUse": [88 "PreToolUse": [

81 {89 {


91 }99 }

92 ]100 ]

93 }101 }

94}102 }

95```103 ```

96 104 

97スクリプトは stdin から JSON 入力を読み取り、コマンドを抽出し、`rm -rf` が含まれている場合は `permissionDecision` として `"deny"` を返します。105 スクリプトは stdin から JSON 入力を読み取り、コマンドを抽出し、`rm -rf` が含まれている場合は `permissionDecision` として `"deny"` を返します。Claude Code が実行できるように、プロジェクト内の `.claude/hooks/block-rm.sh` に保存し、`chmod +x .claude/hooks/block-rm.sh` で実行可能にしてください。

98 106 

99```bash theme={null}107 ```bash theme={null}

100#!/bin/bash108 #!/bin/bash

101# .claude/hooks/block-rm.sh109 # .claude/hooks/block-rm.sh

102COMMAND=$(jq -r '.tool_input.command')110 COMMAND=$(jq -r '.tool_input.command')

103 111 

104if echo "$COMMAND" | grep -q 'rm -rf'; then112 if echo "$COMMAND" | grep -q 'rm -rf'; then

105 jq -n '{113 jq -n '{

106 hookSpecificOutput: {114 hookSpecificOutput: {

107 hookEventName: "PreToolUse",115 hookEventName: "PreToolUse",


109 permissionDecisionReason: "Destructive command blocked by hook"117 permissionDecisionReason: "Destructive command blocked by hook"

110 }118 }

111 }'119 }'

112else120 else

113 exit 0 # no decision; normal permission flow applies121 exit 0 # no decision; normal permission flow applies

114fi122 fi

115```123 ```

124 

125 このスクリプトは、JSON 入力を解析するこのページの他の Bash の例と同様に `jq` を使用します。試す前に `jq` をインストールし、`PATH` 上にあることを確認してください。

126 </Tab>

127 

128 <Tab title="Windows (PowerShell)">

129 matcher `Bash|PowerShell` は、Bash に加えて [PowerShell ツール](#powershell)も対象にします。1 つの `if` ルールは 1 つのツールの呼び出しにしかマッチしないため、ツールごとに個別のハンドラーを用意します。1 つ目は `rm *` にマッチする Bash サブコマンドに、2 つ目は `Remove-Item *` にマッチする PowerShell コマンドに絞り込みます。どちらも `powershell.exe` を通じて同じスクリプトを実行します。

130 

131 ```json theme={null}

132 {

133 "hooks": {

134 "PreToolUse": [

135 {

136 "matcher": "Bash|PowerShell",

137 "hooks": [

138 {

139 "type": "command",

140 "if": "Bash(rm *)",

141 "command": "powershell.exe",

142 "args": [

143 "-NoProfile",

144 "-ExecutionPolicy",

145 "Bypass",

146 "-File",

147 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

148 ]

149 },

150 {

151 "type": "command",

152 "if": "PowerShell(Remove-Item *)",

153 "command": "powershell.exe",

154 "args": [

155 "-NoProfile",

156 "-ExecutionPolicy",

157 "Bypass",

158 "-File",

159 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

160 ]

161 }

162 ]

163 }

164 ]

165 }

166 }

167 ```

168 

169 `-NoProfile` フラグは PowerShell プロファイルの読み込みをスキップしてフックをすばやく起動させ、`-ExecutionPolicy Bypass` は PowerShell がローカルのスクリプト ファイルを実行できるようにします。

170 

171 スクリプトは stdin から JSON 入力を読み取り、コマンドを抽出し、`rm -rf` または `-Recurse` が後に続く `Remove-Item` が含まれている場合は `permissionDecision` として `"deny"` を返します。プロジェクト内の `.claude/hooks/block-rm.ps1` に保存してください。

116 172 

117ここで Claude Code が `Bash "rm -rf /tmp/build"` を実行することにしたとします。以下が起こります。173 ```powershell theme={null}

174 # .claude/hooks/block-rm.ps1

175 $callInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

176 $command = $callInput.tool_input.command

177 

178 if ($command -match 'rm -rf|Remove-Item.*-Recurse') {

179 @{

180 hookSpecificOutput = @{

181 hookEventName = "PreToolUse"

182 permissionDecision = "deny"

183 permissionDecisionReason = "Destructive command blocked by hook"

184 }

185 } | ConvertTo-Json

186 } else {

187 exit 0 # no decision; normal permission flow applies

188 }

189 ```

190 </Tab>

191</Tabs>

192 

193ここで、macOS/Linux の設定に対して Claude Code が `Bash "rm -rf /tmp/build"` を実行することにしたとします。以下が起こります。

118 194 

119<Frame>195<Frame>

120 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="フック解決フロー:PreToolUse イベントが発火し、マッチャーが Bash マッチをチェックし、if 条件が Bash(rm *) マッチをチェックし、フック ハンドラーが実行され、結果が Claude Code に返される" width="930" height="270" data-path="images/hook-resolution.svg" />196 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" className="dark:hidden" alt="フック解決の図:PreToolUse が発火し、matcher が Bash へのマッチをチェックし、次に if 条件が Bash(rm *) へのマッチをチェックします。両方がマッチすると、フック コマンドが実行されて permissionDecision として deny を返すため、ツール呼び出しはブロックされ、Claude Code は処理を続行します。いずれかのチェックがマッチしない場合、フックはスキップされ、ツール呼び出しの続行が許可されます。" width="930" height="270" data-path="images/hook-resolution.svg" />

197 

198 <img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/hook-resolution-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=e80af91f8507cee6bd51ac3c2dd92f63" className="hidden dark:block" alt="フック解決の図:PreToolUse が発火し、matcher が Bash へのマッチをチェックし、次に if 条件が Bash(rm *) へのマッチをチェックします。両方がマッチすると、フック コマンドが実行されて permissionDecision として deny を返すため、ツール呼び出しはブロックされ、Claude Code は処理を続行します。いずれかのチェックがマッチしない場合、フックはスキップされ、ツール呼び出しの続行が許可されます。" width="930" height="270" data-path="images/hook-resolution-dark.svg" />

121</Frame>199</Frame>

122 200 

123<Steps>201<Steps>


129 ```207 ```

130 </Step>208 </Step>

131 209 

132 <Step title="マッチャーがチェック">210 <Step title="matcher がチェック">

133 マッチャー `"Bash"` がツール名にマッチするため、このフック グループがアクティブになります。マッチャーを省略するか `"*"` を使用すると、グループはイベントのすべての出現でアクティブになります。211 matcher `"Bash"` がツール名にマッチするため、このフック グループがアクティブになります。matcher を省略するか `"*"` を使用すると、グループはイベントのすべての出現でアクティブになります。

134 </Step>212 </Step>

135 213 

136 <Step title="If 条件がチェック">214 <Step title="If 条件がチェック">

137 `if` 条件 `"Bash(rm *)"` は `rm -rf /tmp/build` が `rm *` にマッチするサブコマンドであるためマッチするため、このハンドラーが生成されます。コマンドが `npm test` だった場合、`if` チェックは失敗し、`block-rm.sh` は実行されず、プロセス生成のオーバーヘッドを回避します。`if` フィールドはオプションです。なければ、マッチしたグループ内のすべてのハンドラーが実行されます。215 `if` 条件 `"Bash(rm *)"` は `rm -rf /tmp/build` が `rm *` にマッチするサブコマンドであるためマッチし、このハンドラーが生成されます。コマンドが `npm test` だった場合、`if` チェックは失敗し、`block-rm.sh` は実行されず、プロセス生成のオーバーヘッドを回避します。`if` フィールドはオプションです。なければ、マッチしたグループ内のすべてのハンドラーが実行されます。

138 </Step>216 </Step>

139 217 

140 <Step title="フック ハンドラーが実行">218 <Step title="フック ハンドラーが実行">


167フックは JSON 設定ファイルで定義されます。設定には 3 つのネストレベルがあります。245フックは JSON 設定ファイルで定義されます。設定には 3 つのネストレベルがあります。

168 246 

1691. 応答する[フック イベント](#hook-events)を選択します(`PreToolUse` や `Stop` など)2471. 応答する[フック イベント](#hook-events)を選択します(`PreToolUse` や `Stop` など)

1702. 発火するタイミングをフィルタリングする[マッチャー グループ](#matcher-patterns)を追加します(「Bash ツールのみ」など)2482. 発火するタイミングをフィルタリングする [matcher グループ](#matcher-patterns)を追加します(「Bash ツールのみ」など)

1713. マッチしたときに実行する 1 つ以上の[フック ハンドラー](#hook-handler-fields)を定義します2493. マッチしたときに実行する 1 つ以上の[フック ハンドラー](#hook-handler-fields)を定義します

172 250 

173完全なウォークスルーと注釈付きの例については、上記の[フックがどのように解決されるか](#how-a-hook-resolves)を参照してください。251完全なウォークスルーと注釈付きの例については、上記の[フックがどのように解決されるか](#how-a-hook-resolves)を参照してください。

174 252 

175<Note>253<Note>

176 このページでは各レベルに特定の用語を使用しています。**フック イベント**はライフサイクル ポイント、**マッチャー グループ**はフィルター、**フック ハンドラー**はシェル コマンド、HTTP エンドポイント、MCP ツール、プロンプト、または実行されるエージェントです。「フック」単独は一般的な機能を指します。254 このページでは各レベルに特定の用語を使用しています。**フック イベント**はライフサイクル ポイント、**matcher グループ**はフィルター、**フック ハンドラー**はシェル コマンド、HTTP エンドポイント、MCP ツール、プロンプト、または実行されるエージェントです。「フック」単独は一般的な機能を指します。

177</Note>255</Note>

178 256 

179<h3 id="hook-locations">257<h3 id="hook-locations">


186| :- | :- | :- |264| :- | :- | :- |

187| `~/.claude/settings.json` | すべてのプロジェクト | いいえ、マシンにローカル |265| `~/.claude/settings.json` | すべてのプロジェクト | いいえ、マシンにローカル |

188| `.claude/settings.json` | 単一プロジェクト | はい、リポジトリにコミット可能 |266| `.claude/settings.json` | 単一プロジェクト | はい、リポジトリにコミット可能 |

189| `.claude/settings.local.json` | 単一プロジェクト | いいえ、Claude Code が作成するときに gitignored |267| `.claude/settings.local.json` | 単一プロジェクト | いいえ、Claude Code が設定を保存する際に gitignore 対象になります |

190| 管理ポリシー設定 | 組織全体 | はい、管理者が制御 |268| 管理ポリシー設定 | 組織全体 | はい、管理者が制御 |

191| [プラグイン](/docs/ja/plugins) `hooks/hooks.json` | プラグインが有効な場合 | はい、プラグインにバンドル |269| [プラグイン](/docs/ja/plugins/overview) `hooks/hooks.json` | プラグインが有効な場合 | はい、プラグインにバンドル |

192| [スキル](/docs/ja/skills)または[エージェント](/docs/ja/sub-agents)フロントマター | コンポーネントがアクティブな場合 | はい、コンポーネント ファイルで定義 |270| [スキル](/docs/ja/skills)のフロントマター | スキルが呼び出された後のセッションの残りの期間。[スキルとエージェントのフック](#hooks-in-skills-and-agents)を参照 | はい、スキルファイルで定義 |

271| [サブエージェント](/docs/ja/sub-agents)のフロントマター | そのサブエージェントの実行中 | はい、サブエージェントファイルで定義 |

272 

273[クラウドセッション](/docs/ja/claude-code-on-the-web)は、ローカルの `~/.claude/settings.json` を読み取りません。[セルフホスト環境](/docs/ja/self-hosted-environments-configuration#permissions-and-tool-approval)では、Claude Code はオペレーターがランナーホストの `~/.claude/` に用意したフックも実行します。また、ランナーイメージの管理設定ファイルが [Claude Code が適用する管理ソース](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)に含まれる場合は、そのファイル内のフックも実行します。デフォルトでは、これはサーバー管理設定も MDM で配布された Claude Code ポリシーも管理層を提供していない場合に限られます。どの設定ファイルとプラグイン、つまりどのフックがクラウドセッションに届くかについては、[セットアップから引き継がれるもの](/docs/ja/cloud-environments#what-carries-over-from-your-setup)を参照してください。

274 

275設定ファイル解決の詳細については、[設定](/docs/ja/settings)を参照してください。

276 

277設定ファイル、管理ポリシー設定、プラグインからのフックは、[サブエージェント](/docs/ja/sub-agents)内でも実行されます。サブエージェントがツールを呼び出すと、`PreToolUse` や `PostToolUse` などのツールイベントはメインの会話と同じ設定済みフックを発火させ、入力にはサブエージェントを識別する `agent_id` と `agent_type` の[共通入力フィールド](#common-input-fields)が含まれます。

193 278 

194設定ファイル解決の詳細については、[設定](/docs/ja/settings)を参照してください。エンタープライズ管理者は `allowManagedHooksOnly` を使用して、ユーザー、プロジェクト、プラグイン フックをブロックできます。管理設定で force-enabled されたプラグインからのフックは除外されるため、管理者は組織マーケットプレイスを通じて検証済みのフックを配布できます。[フック設定](/docs/ja/settings#hook-configuration)を参照してください。279管理者は[管理設定](/docs/ja/managed-settings)で [`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) を使用して、実行されるフックを制限できます。

280 

281* ユーザー、プロジェクト、ローカル、プラグインのフックはブロックされます。管理設定の `enabledPlugins` で強制的に有効化されたプラグインのフックは除外されます

282* Claude Code は、[`statusLine`](/docs/ja/statusline)、[`fileSuggestion`](/docs/ja/settings-reference#filesuggestion)、[`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) の設定も管理設定のものに限定します

283* Claude Code は、[`command` ソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を持つプラグインも無効化します。これには管理設定の `enabledPlugins` で強制的に有効化されたプラグインも含まれます。ただし、[`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) が明示的に `false` に設定されている場合は除きます。`command` ソースには Claude Code v2.1.229 以降が必要です

284* Claude Code は、マーケットプレイスの [`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、[`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) が明示的に `false` に設定されている場合は除きます。また、管理設定自体が宣言しているマーケットプレイスは対象外です

285 

286[`allowManagedHooksOnly` の下で実行されるもの](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly)を参照してください。

287 

288フックエントリは、設定レベル間で互いに置き換えられるのではなくマージされます。ユーザー、プロジェクト、ローカルの設定は管理フックを削除せずに独自のフックを追加します。また、[`disableAllHooks`](#disable-or-remove-hooks) 設定は、管理設定の外からは管理フックを無効化できません。

289 

290[HTTP フックの許可リスト](/docs/ja/settings-reference#hook-and-skill-settings)は、管理ポリシー設定を含むすべてのソースからのフックに適用されます。

291 

292* `allowedHttpHookUrls`: いずれかの設定レベルで定義されている場合、Claude Code は URL がマージされた許可リストに一致する HTTP フックハンドラーのみを実行します

293* `httpHookAllowedEnvVars`: 定義されている場合、Claude Code はそのリストにある環境変数のみをフックヘッダーに補間します

195 294 

196<h3 id="matcher-patterns">295<h3 id="matcher-patterns">

197 マッチャー パターン296 Matcher パターン

198</h3>297</h3>

199 298 

200`matcher` フィールドは、フックが発火するタイミングをフィルタリングします。マッチャーの評価方法は、含まれている文字に依存します。299`matcher` フィールドは、フックが発火するタイミングをフィルタリングします。matcher の評価方法は、含まれている文字に依存します。

201 300 

202| マッチャー値 | 評価方法 | 例 |301| matcher 値 | 評価方法 | 例 |

203| :- | :- | :- |302| :- | :- | :- |

204| `"*"`、`""`、または省略 | すべてにマッチ | イベントのすべての出現で発火 |303| `"*"`、`""`、または省略 | すべてにマッチ | イベントのすべての出現で発火 |

205| 文字、数字、`_`、`-`、スペース、`,`、`\|` のみ | 完全一致、または `\|` または `,` で区切られた完全一致のリスト(オプションで周囲の空白を含む) | `Bash` は Bash ツールのみにマッチ。`Edit\|Write` と `Edit, Write` はいずれかのツールに完全にマッチ。`code-reviewer` はそのエージェント タイプのみにマッチ |304| 文字、数字、`_`、`-`、スペース、`,`、`\|` のみ | 完全一致、または `\|` または `,` で区切られた完全一致のリスト(オプションで周囲の空白を含む) | `Bash` は Bash ツールのみにマッチ。`Edit\|Write` と `Edit, Write` はいずれかのツールに完全にマッチ。`code-reviewer` はそのエージェント タイプのみにマッチ |

206| その他の文字を含む | JavaScript 正規表現、アンカーなし | `^Notebook` は Notebook で始まるツールにマッチ。`mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ |305| その他の文字を含む | JavaScript 正規表現、アンカーなし | `^Notebook` は名前が `Notebook` で始まるツールにマッチ。`mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ |

207 

208正規表現パス上のマッチャーは JavaScript の `RegExp.prototype.test` でテストされます。これは値内のどこかでマッチすると成功します。`Edit.*` は `Edit` と `NotebookEdit` の両方にマッチします。完全文字列マッチが必要な場合は、`^Edit$` のようにパターンを `^` と `$` でラップしてください。

209 306 

210カンマ区切り文字と周囲の空白許容度には Claude Code v2.1.191 以降が必要です。307正規表現パス上の matcher は JavaScript の `RegExp.prototype.test` でテストされます。これは値内のどこかでマッチすると成功します。`Edit.*` は `Edit` と `NotebookEdit` の両方にマッチします。完全文字列マッチが必要な場合は、`^Edit$` のようにパターンを `^` と `$` でラップしてください。

211 308 

212完全一致セット内のハイフンには Claude Code v2.1.195 以降が必要です。以前のバージョンでは、`code-reviewer` のようなハイフン付き名前はアンカーなしの正規表現として評価されるため、`senior-code-reviewer` でも発火します。これらのバージョンではそのような名前のみにマッチするように `^code-reviewer$` としてアンカーしてください。309`FileChanged` と `StopFailure` は、文字、数字、`_`、`|` のみの狭い完全一致セットを使用します。これら 2 つのイベントの matcher にハイフン、スペース、またはカンマがあると、正規表現パスに留まり、`|` のみが代替を区切ります。後続の表で matcher サポートを持つ他のすべてのイベントは `|` または `,` を受け入れます。

213 

214`FileChanged` と `StopFailure` は、文字、数字、`_`、`|` のみの狭い完全一致セットを使用します。これら 2 つのイベントのマッチャーにハイフン、スペース、またはカンマがあると、正規表現パスに留まり、`|` のみが代替を区切ります。後続の表でマッチャー サポートを持つ他のすべてのイベントは `|` または `,` を受け入れます。

215 310 

216`FileChanged` イベントは監視リストを構築するときにこれらのルールに従いません。[FileChanged](#filechanged)を参照してください。311`FileChanged` イベントは監視リストを構築するときにこれらのルールに従いません。[FileChanged](#filechanged)を参照してください。

217 312 

218各イベント タイプは異なるフィールドでマッチします。313各イベント タイプは異なるフィールドでマッチします。

219 314 

220| イベント | マッチャーがフィルタリングするもの | マッチャー値の例 |315| イベント | matcher がフィルタリングするもの | matcher 値の例 |

221| :- | :- | :- |316| :- | :- | :- |

222| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | ツール名 | `Bash`、`Edit\|Write`、`mcp__.*` |317| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | ツール名 | `Bash`、`Edit\|Write`、`mcp__.*` |

223| `SessionStart` | セッションの開始方法 | `startup`、`resume`、`clear`、`compact` |318| `SessionStart` | セッションの開始方法 | `startup`、`resume`、`clear`、`compact`、`fork` |

224| `Setup` | セットアップをトリガーした CLI フラグ | `init`、`maintenance` |319| `Setup` | セットアップをトリガーした CLI フラグ | `init`、`maintenance` |

225| `SessionEnd` | セッションが終了した理由 | `clear`、`resume`、`logout`、`prompt_input_exit`、`bypass_permissions_disabled`、`other` |320| `SessionEnd` | セッションが終了した理由 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

226| `Notification` | 通知タイプ | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed` |321| `Notification` | 通知タイプ | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |

227| `SubagentStart` | エージェント タイプ | `general-purpose`、`Explore`、`Plan`、カスタム エージェント名、またはプラグイン スコープ付き名前(`^my-plugin:reviewer$` など) |322| `SubagentStart` | エージェント タイプ | `general-purpose`、`Explore`、`Plan`、カスタム エージェント名、またはプラグイン スコープ付き名前(`^my-plugin:reviewer$` など) |

228| `PreCompact`、`PostCompact` | コンパクションをトリガーしたもの | `manual`、`auto` |323| `PreCompact`、`PostCompact` | コンテキスト圧縮をトリガーしたもの | `manual`、`auto` |

324| `PreModelSwitch`、`PostModelSwitch` | セッションの切り替え先モデルの正規名([PreModelSwitch](#premodelswitch) で説明) | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |

229| `SubagentStop` | エージェント タイプ | `SubagentStart` と同じ値 |325| `SubagentStop` | エージェント タイプ | `SubagentStart` と同じ値 |

230| `ConfigChange` | 設定ソース | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |326| `ConfigChange` | 設定ソース | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |

231| `CwdChanged` | マッチャー サポートなし | すべてのディレクトリ変更で常に発火 |327| `CwdChanged` | matcher サポートなし | すべての出現で常に発火 |

328| `DirectoryAdded` | ディレクトリが追加された方法 | `slash_command`、`register_repo_root` |

232| `FileChanged` | 監視するリテラル ファイル名([FileChanged](#filechanged)を参照) | `.envrc\|.env` |329| `FileChanged` | 監視するリテラル ファイル名([FileChanged](#filechanged)を参照) | `.envrc\|.env` |

233| `StopFailure` | エラー タイプ | `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`unknown` |330| `StopFailure` | エラー タイプ | `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error`、`unknown` |

234| `InstructionsLoaded` | ロード理由 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |331| `InstructionsLoaded` | ロード理由 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |

235| `UserPromptExpansion` | コマンド名 | スキルまたはコマンド名 |332| `UserPromptExpansion` | コマンド名 | スキルまたはコマンド名 |

236| `Elicitation` | MCP サーバー名 | 設定された MCP サーバー名 |333| `Elicitation` | MCP サーバー名 | 設定された MCP サーバー名 |

237| `ElicitationResult` | MCP サーバー名 | `Elicitation` と同じ値 |334| `ElicitationResult` | MCP サーバー名 | `Elicitation` と同じ値 |

238| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` | マッチャー サポートなし | すべての出現で常に発火 |335| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` | matcher サポートなし | すべての出現で常に発火 |

336 

337`StopFailure` を `cloud_credential_error` でマッチさせるには Claude Code v2.1.267 以降が必要です。これは、認証情報の読み込み失敗を `server_error` や `unknown` ではなくこの値で報告する最初のバージョンです。

239 338 

240マッチャーは、Claude Code がフックに stdin で送信する[JSON 入力](#hook-input-and-output)からのフィールドに対して実行されます。ツール イベントの場合、そのフィールドは `tool_name` です。各[フック イベント](#hook-events)セクションでは、マッチャー値の完全なセットとそのイベントの入力スキーマをリストしています。339ほとんどのイベントでは、Claude Code は、フックに stdin で送信する [JSON 入力](#hook-input-and-output)のフィールドに対して matcher を評価します。ツール イベントの場合、そのフィールドは `tool_name` です。`PreModelSwitch` と `PostModelSwitch` では、[PreModelSwitch](#premodelswitch) で説明しているとおり、Claude Code は `to_model` から導出した正規名に対して matcher を評価します。各[フック イベント](#hook-events)セクションでは、matcher 値の完全なセットとそのイベントの入力スキーマをリストしています。

241 340 

242この例は、Claude がファイルを書き込むまたは編集するときにのみ linting スクリプトを実行します。341この例は、Claude がファイルを書き込むまたは編集するときにのみ linting スクリプトを実行します。

243 342 


259}358}

260```359```

261 360 

262`UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay`、`CwdChanged` はマッチャーをサポートせず、すべての出現で常に発火します。これらのイベントに `matcher` フィールドを追加すると、サイレントに無視されます。361matcher をサポートしないイベントに `matcher` フィールドを追加すると、サイレントに無視されます。

263 362 

264ツール イベントの場合、個別のフック ハンドラーで [`if` フィールド](#common-fields)を設定することで、より狭くフィルタリングできます。`if` は[権限ルール構文](/docs/ja/permissions)を使用してツール名と引数を一緒にマッチするため、`"Bash(git *)"` は `git *` に一致する Bash 入力のサブコマンドのいずれかに対して実行され、`"Edit(*.ts)"` は TypeScript ファイルのみに対して実行されます。363ツール イベントの場合、個別のフック ハンドラーで [`if` フィールド](#common-fields)を設定することで、より狭くフィルタリングできます。`if` は[権限ルール構文](/docs/ja/permissions)を使用してツール名と引数を一緒にマッチするため、`"Bash(git *)"` は `git *` に一致する Bash 入力のサブコマンドのいずれかに対して実行され、`"Edit(*.ts)"` は TypeScript ファイルのみに対して実行されます。

265 364 


275* `mcp__filesystem__read_file`: Filesystem サーバーの read file ツール374* `mcp__filesystem__read_file`: Filesystem サーバーの read file ツール

276* `mcp__github__search_repositories`: GitHub サーバーの search ツール375* `mcp__github__search_repositories`: GitHub サーバーの search ツール

277 376 

278すべてのツールをサーバーからマッチするには、サーバー プレフィックスに `.*` を追加します。`.*` は必須です。`mcp__memory` のようなマッチャーは完全一致文字のみを含むため、完全一致として比較され、ツールにマッチしません。377サーバーのすべてのツールをマッチするには、サーバー プレフィックスに `.*` を追加します。`.*` は必須です。`mcp__memory` や `mcp__brave-search` のような matcher は完全一致文字のみを含むため、完全一致として比較され、どのツールにもマッチしません。

279 378 

280* `mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ379* `mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ

281* `mcp__brave-search__.*` は名前にハイフンを含むサーバーのすべてのツールにマッチ380* `mcp__brave-search__.*` は名前にハイフンを含むサーバーのすべてのツールにマッチ

282* `mcp__.*__write.*` は任意のサーバーから「write」で始まるツールにマッチ381* `mcp__.*__write.*` は任意のサーバーの、名前が `write` で始まるツールにマッチ

283 382 

284完全一致セット内のハイフンには Claude Code v2.1.195 以降が必要です。以前のバージョンでは、`mcp__brave-search` のようなベアのハイフン付きプレフィックスはアンカーなしの正規表現として評価され、そのサーバーのすべてのツールにマッチします。`mcp__brave-search__.*` 形式はすべてのバージョンで機能します。383[プラグイン バンドル MCP サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)からのツールは、プラグイン名を含むスコープ付きサーバー セグメントを使用します。`mcp__plugin_<plugin-name>_<server-name>__<tool>`。ベア サーバー キーに対して記述された matcher は、これらのツールに対して発火しません。`db` キーの下でサーバーをバンドルする `my-plugin` という名前のプラグインの場合、`query` ツールは `mcp__plugin_my-plugin_db__query` として表示されるため、そのサーバーのすべてのツールの matcher は `mcp__plugin_my-plugin_db__.*` です。ハンドラーの [`if` フィールド](#common-fields)で同じスコープ付きツール名を使用します。スコープ付き名がどのように構築されるかについては、[プラグイン提供 MCP サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)を参照してください。

285 384 

286[プラグイン バンドル MCP サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)からのツールは、プラグイン名を含むスコープ付きサーバー セグメントを使用します。`mcp__plugin_<plugin-name>_<server-name>__<tool>`。ベア サーバー キーに対して記述されたマッチャーは、これらのツールに対して発火しません。`db` キーの下でサーバーをバンドルする `my-plugin` という名前のプラグインの場合、`query` ツールは `mcp__plugin_my-plugin_db__query` として表示されるため、そのサーバーのすべてのツールのマッチャーは `mcp__plugin_my-plugin_db__.*` です。ハンドラーの [`if` フィールド](#common-fields)で同じスコープ付きツール名を使用します。スコープ付き名がどのように構築されるかについては、[プラグイン提供 MCP サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)を参照してください。385この例は、すべてのメモリ サーバー操作をログに記録し、任意の MCP サーバーからの書き込み操作を検証します。

287 

288この例は、すべてのメモリ サーバー操作をログし、任意の MCP サーバーからの書き込み操作を検証します。

289 386 

290```json theme={null}387```json theme={null}

291{388{


318 フック ハンドラー フィールド415 フック ハンドラー フィールド

319</h3>416</h3>

320 417 

321内側の `hooks` 配列の各オブジェクトはフック ハンドラーです。マッチャーがマッチしたときに実行されるシェル コマンド、HTTP エンドポイント、MCP ツール、LLM プロンプト、またはエージェントです。5 つのタイプがあります。418内側の `hooks` 配列の各オブジェクトはフック ハンドラーです。matcher がマッチしたときに実行されるシェル コマンド、HTTP エンドポイント、MCP ツール、LLM プロンプト、またはエージェントです。5 つのタイプがあります。

322 419 

323* **[コマンド フック](#command-hook-fields)** (`type: "command"`): シェル コマンドを実行します。スクリプトはイベントの[JSON 入力](#hook-input-and-output)を stdin で受け取り、終了コードと stdout を通じて結果を通信します。420* **[コマンド フック](#command-hook-fields)** (`type: "command"`): シェル コマンドを実行します。スクリプトはイベントの [JSON 入力](#hook-input-and-output)を stdin で受け取り、終了コードと stdout を通じて結果を通信します。

324* **[HTTP フック](#http-hook-fields)** (`type: "http"`): イベントの JSON 入力を HTTP POST リクエストとして URL に送信します。エンドポイントは、コマンド フックと同じ[JSON 出力形式](#json-output)を使用して、レスポンス本体を通じて結果を通信します。421* **[HTTP フック](#http-hook-fields)** (`type: "http"`): イベントの JSON 入力を HTTP POST リクエストとして URL に送信します。エンドポイントは、コマンド フックと同じ [JSON 出力形式](#json-output)を使用して、レスポンス本体を通じて結果を通信します。

325* **[MCP ツール フック](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): 既に接続されている[MCP サーバー](/docs/ja/mcp)上のツールを呼び出します。ツールのテキスト出力はコマンド フック stdout のように扱われます。422* **[MCP ツール フック](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): 設定済みの [MCP サーバー](/docs/ja/mcp)上のツールを呼び出します。ツールのテキスト出力はコマンド フック stdout のように扱われます。

326* **[プロンプト フック](#prompt-and-agent-hook-fields)** (`type: "prompt"`): Claude モデルにプロンプトを送信して、単一ターンの評価を行います。モデルは yes/no 決定を JSON として返します。[プロンプト ベースのフック](#prompt-based-hooks)を参照してください。423* **[プロンプト フック](#prompt-and-agent-hook-fields)** (`type: "prompt"`): Claude モデルにプロンプトを送信して、単一ターンの評価を行います。モデルは決定を JSON として返します。[プロンプト ベースのフック](#prompt-based-hooks)を参照してください。

327* **[エージェント フック](#prompt-and-agent-hook-fields)** (`type: "agent"`): Read、Grep、Glob などのツールを使用して条件を検証してから決定を返すことができるサブエージェントを生成します。エージェント フックは実験的であり、変更される可能性があります。[エージェント ベースのフック](#agent-based-hooks)を参照してください。424* **[エージェント フック](#prompt-and-agent-hook-fields)** (`type: "agent"`): Read、Grep、Glob などのツールを使用して条件を検証してから決定を返すことができるサブエージェントを生成します。エージェント フックは実験的であり、変更される可能性があります。[エージェント ベースのフック](#agent-based-hooks)を参照してください。

328 425 

329すべてのマッチング フックは並列で実行され、同一のハンドラーは自動的に重複排除されます。コマンド フックはコマンド文字列と `args` で重複排除され、HTTP フックは URL で重複排除されます。426マッチしたすべてのフックは並列で実行されます。同じハンドラーを複数の設定ファイルで定義した場合、実行は 1 回だけです。プラグインまたはスキルが持つ同じハンドラーのコピーは別個のものとして扱われます。

427 

428ハンドラーは Claude Code の環境を持つ現在のディレクトリで実行されます。現在のディレクトリが存在しなくなった場合(たとえば、別のシェルがセッション中に削除した worktree や一時ディレクトリなど)、Claude Code は次のうち最初に存在するディレクトリからコマンドフックを実行します。セッションを開始したディレクトリ、プロジェクトルート、ホームディレクトリ、またはシステムの一時ディレクトリです。Claude Code は、フォールバック先のディレクトリ名を含む警告を[デバッグログ](#debug-hooks)に記録します。

330 429 

331ハンドラーは Claude Code の環境を持つ現在のディレクトリで実行されます。`$CLAUDE_CODE_REMOTE` 環境変数はリモート Web 環境で `"true"` に設定され、ローカル CLI では設定されません。v2.1.199 以降、[`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/ja/env-vars)は、ローカル セッションがアクティブな Remote Control 接続を持つ間、[Remote Control](/docs/ja/remote-control)セッション ID に設定されます。430`$CLAUDE_CODE_REMOTE` 環境変数はリモート Web 環境で `"true"` に設定され、ローカル CLI では設定されません。Claude Code v2.1.199 以降では、ローカルセッションにアクティブな Remote Control 接続がある間、[`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/ja/env-vars) が [Remote Control](/docs/ja/remote-control) のセッション ID に設定されます。

332 431 

333<h4 id="common-fields">432<h4 id="common-fields">

334 共通フィールド433 共通フィールド


339| フィールド | 必須 | 説明 |438| フィールド | 必須 | 説明 |

340| :- | :- | :- |439| :- | :- | :- |

341| `type` | はい | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"`、または `"agent"` |440| `type` | はい | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"`、または `"agent"` |

342| `if` | いいえ | `"Bash(git *)"` または `"Edit(*.ts)"` などの権限ルール構文を使用してこのフックが実行されるタイミングをフィルタリングします。ツール呼び出しがパターンにマッチする場合のみ、フック コマンドが実行されます。[Bash マッチング テーブル](#bash-if-matching)を参照して、Bash パターンがサブコマンド、`$()`、バッククォートに対してどのように評価されるかを確認してください。ツール イベントでのみ評価されます。`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`。他のイベントでは、`if` が設定されたフックは実行されません。[権限ルール](/docs/ja/permissions)と同じ構文を使用します |441| `if` | いいえ | `"Bash(git *)"` または `"Edit(*.ts)"` などの権限ルール構文を使用してこのフックが実行されるタイミングをフィルタリングします。ツール呼び出しがパターンにマッチする場合のみ、フック コマンドが実行されます。Bash パターンがサブコマンド、`$()`、バッククォートに対してどのように評価されるかについては、後述の [Bash マッチング テーブル](#bash-if-matching)を参照してください。ツール イベントでのみ評価されます。`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`。他のイベントでは、`if` が設定されたフックは実行されません。[権限ルール](/docs/ja/permissions)と同じ構文を使用します |

343| `timeout` | いいえ | キャンセルまでの秒数。デフォルト: `command`、`http`、`mcp_tool` は 600、`prompt` は 30、`agent` は 60。[`UserPromptSubmit`](#userpromptsubmit) は `command`、`http`、`mcp_tool` のデフォルトを 30 に低下させ、[`MessageDisplay`](#messagedisplay) はそれを 10 に低下させます |442| `timeout` | いいえ | キャンセルまでの秒数。[`async: true`](#run-hooks-in-the-background) で実行するコマンドフックには、Claude Code はこれを適用しません。デフォルト: `command`、`http`、`mcp_tool` は 600、`prompt` は 30、`agent` は 60。Claude Code は、[`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch)、[`PostModelSwitch`](#postmodelswitch) では `command`、`http`、`mcp_tool` のデフォルトを 30 に、[`MessageDisplay`](#messagedisplay) では 10 に下げます。[`SessionEnd`](#sessionend) フックは 1.5 秒の予算を共有します。設定でフックごとにより長い `timeout` を指定している場合、Claude Code は最大 60 秒までそれに合わせて予算を引き上げます |

344| `statusMessage` | いいえ | フックの実行中に表示されるカスタム スピナー メッセージ |443| `statusMessage` | いいえ | フックの実行中に表示されるカスタム スピナー メッセージ |

345| `once` | いいえ | `true` の場合、セッションごとに 1 回だけ実行してから削除されます。[スキル フロントマター](#hooks-in-skills-and-agents)でのみ尊重されます。設定ファイルとエージェント フロントマターでは無視されます |444| `once` | いいえ | `true` の場合、Claude Code は最初の実行が成功した後にフックを削除します。失敗した実行、終了コード 2 でブロックした実行、またはタイムアウトした実行ではフックがそのまま残るため、次にマッチするイベントで再び実行されます。[スキルのフロントマター](#hooks-in-skills-and-agents)で宣言されたフックでのみ有効です。設定ファイルとエージェントのフロントマターでは無視されます |

346 445 

347`if` フィールドは正確に 1 つの権限ルールを保持します。ルールを組み合わせるための `&&`、`||`、またはリスト構文はありません。複数の条件を適用するには、各条件に対して個別のフック ハンドラーを定義します。446`if` フィールドは正確に 1 つの権限ルールを保持します。ルールを組み合わせるための `&&`、`||`、またはリスト構文はありません。複数の条件を適用するには、各条件に対して個別のフック ハンドラーを定義します。

348 447 

448ファイルツールの `if` 条件では、`"Edit(src/**)"` のような単一セグメントのディレクトリパターンは、作業ディレクトリ内の `src` ディレクトリとその配下のファイルにのみマッチします。任意の深さにある `src` という名前のディレクトリにマッチさせるには、`"Edit(**/src/**)"` と記述します。v2.1.214 より前は、`"Edit(src/**)"` は作業ディレクトリ配下の任意の深さにある `src` という名前のディレクトリにマッチしていました。

449 

349<span id="bash-if-matching" />Bash パターンの場合、フック コマンドが実行されるかどうかは、パターンの形状と Claude が呼び出している Bash コマンドに依存します。先頭の `VAR=value` 割り当ては、マッチング前に削除されます。450<span id="bash-if-matching" />Bash パターンの場合、フック コマンドが実行されるかどうかは、パターンの形状と Claude が呼び出している Bash コマンドに依存します。先頭の `VAR=value` 割り当ては、マッチング前に削除されます。

350 451 

351| `if` パターン | Bash コマンド | フックが実行されるか | 理由 |452| `if` パターン | Bash コマンド | フックが実行されるか | 理由 |


356| `Bash(rm *)` | `echo $(date)` | いいえ | サブコマンドが `rm *` にマッチしません |457| `Bash(rm *)` | `echo $(date)` | いいえ | サブコマンドが `rm *` にマッチしません |

357| `Bash(git push *)` | `echo $(date)` | はい | コマンド名以上を指定するパターンは、`$()`、バッククォート、または `$VAR` でとにかくフックを実行します |458| `Bash(git push *)` | `echo $(date)` | はい | コマンド名以上を指定するパターンは、`$()`、バッククォート、または `$VAR` でとにかくフックを実行します |

358 459 

359フィルターは、Bash コマンドを解析できない場合、パターンに関係なくフックを実行して、オープンに失敗します。`if` フィルターはベストエフォートであるため、ハードな許可または拒否を強制するには、フックではなく[権限システム](/docs/ja/permissions)を使用してください。460Bash 入力がどのコマンドを実行するかを Claude Code が判断できない場合、パターンに関係なくフックを実行します。`if` フィルターはベストエフォートであるため、ハードな許可または拒否を強制するには、フックではなく[権限システム](/docs/ja/permissions)を使用してください。

360 461 

361<h4 id="command-hook-fields">462<h4 id="command-hook-fields">

362 コマンド フック フィールド463 コマンド フック フィールド


369| `command` | はい | 実行するシェル コマンド。`args` を使用する場合、直接生成する実行可能ファイル。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |470| `command` | はい | 実行するシェル コマンド。`args` を使用する場合、直接生成する実行可能ファイル。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |

370| `args` | いいえ | 引数リスト。存在する場合、`command` は実行可能ファイルとして解決され、`args` を引数ベクトルとして直接生成されます。シェルは関与しません。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |471| `args` | いいえ | 引数リスト。存在する場合、`command` は実行可能ファイルとして解決され、`args` を引数ベクトルとして直接生成されます。シェルは関与しません。[Exec フォームとシェル フォーム](#exec-form-and-shell-form)を参照してください |

371| `async` | いいえ | `true` の場合、ブロックせずにバックグラウンドで実行されます。[バックグラウンドでフックを実行](#run-hooks-in-the-background)を参照してください |472| `async` | いいえ | `true` の場合、ブロックせずにバックグラウンドで実行されます。[バックグラウンドでフックを実行](#run-hooks-in-the-background)を参照してください |

372| `asyncRewake` | いいえ | `true` の場合、バックグラウンドで実行され、終了コード 2 で Claude を起動します。`async` を暗黙的に指定します。フックの stderr、または stderr が空の場合は stdout が、Claude がシステム リマインダーとして長時間実行されるバックグラウンド失敗に反応できるように表示されます |473| `asyncRewake` | いいえ | `true` の場合、バックグラウンドで実行され、終了コード 2 で Claude を起動します。フックの stderr、または stderr が空の場合は stdout が [システムリマインダー](/docs/ja/glossary#system-reminder)として Claude に表示されるため、Claude は長時間実行されるバックグラウンドの失敗に対応できます |

373| `shell` | いいえ | このフックに使用するシェル。`"bash"` または `"powershell"` を受け入れます。デフォルトは `"bash"`、または Git Bash がインストールされていない場合は Windows で `"powershell"`。`"powershell"` を設定すると、Windows 上で PowerShell 経由でコマンドが実行されます。`CLAUDE_CODE_USE_POWERSHELL_TOOL` は不要です。フックは PowerShell を直接生成するため。`args` が設定されている場合は無視されます |474| `shell` | いいえ | このフックに使用するシェル。`"bash"` または `"powershell"` を受け入れます。デフォルトは `"bash"`、または Git Bash がインストールされていない場合は Windows で `"powershell"`。`"powershell"` を設定すると、Windows 上で PowerShell 経由でコマンドが実行されます。フックは PowerShell を直接生成するため、`CLAUDE_CODE_USE_POWERSHELL_TOOL` は不要です。`args` が設定されている場合は無視されます |

374 475 

375<a id="exec-form-and-shell-form" />476<a id="exec-form-and-shell-form" />

376 477 


380 481 

381コマンド フックは `args` が設定されている場合は exec フォームで実行され、`args` が省略されている場合はシェル フォームで実行されます。フックが[パス プレースホルダー](#reference-scripts-by-path)を参照する場合は常に `args` を設定してください。各要素は引用符なしで 1 つの引数として渡されるためです。パイプや `&&` などのシェル機能が必要な場合、または両方の懸念が適用されない場合は `args` を省略してください。482コマンド フックは `args` が設定されている場合は exec フォームで実行され、`args` が省略されている場合はシェル フォームで実行されます。フックが[パス プレースホルダー](#reference-scripts-by-path)を参照する場合は常に `args` を設定してください。各要素は引用符なしで 1 つの引数として渡されるためです。パイプや `&&` などのシェル機能が必要な場合、または両方の懸念が適用されない場合は `args` を省略してください。

382 483 

383**Exec フォーム**は `args` が存在する場合に実行されます。Claude Code は `command` を `PATH` 上の実行可能ファイルとして解決し、`args` を引数ベクトルとして直接生成します。シェルがないため、各 `args` 要素は記述されたとおりに正確に 1 つの引数であり、`${CLAUDE_PLUGIN_ROOT}` などのパス プレースホルダーは `command` と各 `args` 要素にプレーン文字列として置換されます。アポストロフィ、`$`、バッククォートなどの特殊文字は、シェルが解釈しないため、そのまま渡されます。プラットフォーム上でシェル トークン化は発生しません。484**Exec フォーム**は `args` が存在する場合に実行されます。Claude Code は `command` を `PATH` 上の実行可能ファイルとして解決し、`args` を引数ベクトルとして直接生成します。シェルがないため、各 `args` 要素は記述されたとおりに正確に 1 つの引数であり、`${CLAUDE_PLUGIN_ROOT}` などのパス プレースホルダーは `command` と各 `args` 要素にプレーン文字列として置換されます。アポストロフィ、`$`、バッククォートなどの特殊文字は、シェルが解釈しないため、そのまま渡されます。どのプラットフォームでもシェル トークン化は発生しません。

384 485 

385**シェル フォーム**は `args` が存在しない場合に実行されます。`command` 文字列はシェルに渡されます。macOS と Linux では `sh -c`、Windows では Git Bash、または Git Bash がインストールされていない場合は PowerShell。`shell` フィールドを設定して明示的に選択します。シェルは文字列をトークン化し、変数を展開し、パイプ、`&&`、リダイレクト、グロブを解釈します。486**シェル フォーム**は `args` が存在しない場合に実行されます。`command` 文字列はシェルに渡されます。macOS と Linux では `sh -c`、Windows では Git Bash、または Git Bash がインストールされていない場合は PowerShell。`shell` フィールドを設定して明示的に選択します。シェルは文字列をトークン化し、変数を展開し、パイプ、`&&`、リダイレクト、グロブを解釈します。

386 487 


407}508}

408```509```

409 510 

410両方のフォームは同じ[パス プレースホルダー](#reference-scripts-by-path)をサポートし、両方とも生成されたプロセスで環境変数 `CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA` としてエクスポートするため、スクリプトは起動方法に関係なく `process.env.CLAUDE_PLUGIN_ROOT` を読み取ることができます。プラグイン フックは追加で [`${user_config.*}`](/docs/ja/plugins-reference#user-configuration) 値を置換します。exec フォームのみ: 値は `command` と各 `args` 要素にプレーン文字列として置換されるため、シェルは再解析しません。511両方のフォームは同じ[パス プレースホルダー](#reference-scripts-by-path)をサポートし、両方とも生成されたプロセスで環境変数 `CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_ROOT`、`CLAUDE_PLUGIN_DATA` としてエクスポートするため、スクリプトは起動方法に関係なく `process.env.CLAUDE_PLUGIN_ROOT` を読み取ることができます。

512 

513プラグイン フックは追加で [`${user_config.*}`](/docs/ja/plugins/manifest-reference#user-configuration) 値を置換します。exec フォームのみ: 値は `command` と各 `args` 要素にプレーン文字列として置換されるため、シェルは再解析しません。

411 514 

412`${user_config.*}` を参照するシェル フォーム プラグイン フック コマンドは、実行する代わりに[エラー](/docs/ja/errors#plugin-command-references-user-config)で失敗します。シェル フォーム フックからオプション値を使用するには、`$CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数(`webhook_url` オプションの場合は `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` など)を読み取るか、`args` を設定してフックを exec フォームに切り替えます。v2.1.207 より前では、シェル フォーム プラグイン フック コマンドも `${user_config.*}` を置換していました。515`command` が `${user_config.*}` を参照するシェル フォームのプラグイン フックは、実行される代わりに[エラー](/docs/ja/errors#plugin-command-references-user-config)で失敗します。シェル フォーム フックからオプション値を使用するには、`$CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数(`webhook_url` オプションの場合は `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` など)を読み取るか、`args` を設定してフックを exec フォームに切り替えます。v2.1.207 より前では、シェル フォーム プラグイン フック コマンドも `${user_config.*}` を置換していました。

413 516 

414<Note>517<Note>

415 Exec フォームでは、`command` は実行可能ファイル名またはパスのみです。`command` が空白を含むパス区切りなしの名前であり、`args` と一緒に空白を含む場合、Claude Code は警告をログします。生成が失敗するためです。`node script.js` という名前の実行可能ファイルはありません。余分なトークンを `args` に移動します。`C:\Program Files\nodejs\node.exe` などのスペースを含む絶対パスは、単一の有効な実行可能ファイルであり、警告をトリガーしません。518 Exec フォームでは、`command` は実行可能ファイル名またはパスのみです。`args` とともに使用される `command` がパス区切り文字を含まないベア名で、かつ空白を含む場合、生成が失敗するため Claude Code は警告をログに記録します。`node script.js` という名前の実行可能ファイルは存在しないためです。余分なトークンを `args` に移動してください。`C:\Program Files\nodejs\node.exe` などのスペースを含む絶対パスは、単一の有効な実行可能ファイルであり、警告をトリガーしません。

416</Note>519</Note>

417 520 

418<h4 id="http-hook-fields">521<h4 id="http-hook-fields">


427| `headers` | いいえ | キー値ペアとしての追加 HTTP ヘッダー。値は `$VAR_NAME` または `${VAR_NAME}` 構文を使用した環境変数補間をサポートします。`allowedEnvVars` にリストされている変数のみが解決されます |530| `headers` | いいえ | キー値ペアとしての追加 HTTP ヘッダー。値は `$VAR_NAME` または `${VAR_NAME}` 構文を使用した環境変数補間をサポートします。`allowedEnvVars` にリストされている変数のみが解決されます |

428| `allowedEnvVars` | いいえ | ヘッダー値に補間される可能性のある環境変数名のリスト。リストされていない変数への参照は空の文字列に置き換えられます。環境変数補間が機能するために必須 |531| `allowedEnvVars` | いいえ | ヘッダー値に補間される可能性のある環境変数名のリスト。リストされていない変数への参照は空の文字列に置き換えられます。環境変数補間が機能するために必須 |

429 532 

430Claude Code はフックの[JSON 入力](#hook-input-and-output)を `Content-Type: application/json` の POST リクエスト本体として送信します。レスポンス本体はコマンド フックと同じ[JSON 出力形式](#json-output)を使用します。533Claude Code はフックの [JSON 入力](#hook-input-and-output)を `Content-Type: application/json` の POST リクエスト本体として送信します。レスポンス本体はコマンド フックと同じ [JSON 出力形式](#json-output)を使用します。

431 534 

432エラー処理はコマンド フックと異なります。2xx 以外のレスポンス、接続失敗、タイムアウトはすべて、実行を続行できる非ブロッキング エラーを生成します。ツール呼び出しをブロックまたは権限を拒否するには、`decision: "block"` または `hookSpecificOutput` を含む `permissionDecision: "deny"` を含む JSON 本体を持つ 2xx レスポンスを返します。535エラー処理はコマンド フックと異なります。[HTTP レスポンスの処理](#http-response-handling)を参照してください。

433 536 

434この例は `PreToolUse` イベントをローカル検証サービスに送信し、`MY_TOKEN` 環境変数からのトークンで認証します。537この例は `PreToolUse` イベントをローカル検証サービスに送信し、`MY_TOKEN` 環境変数からのトークンで認証します。

435 538 


464 567 

465| フィールド | 必須 | 説明 |568| フィールド | 必須 | 説明 |

466| :- | :- | :- |569| :- | :- | :- |

467| `server` | はい | 設定された MCP サーバーの名前。[プラグイン バンドル サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)の場合、これはスコープ付き名前 `plugin:<plugin-name>:<server-name>`(例:`plugin:my-plugin:db`)であり、ベア サーバー キーではありません。サーバーは既に接続されている必要があります。フックは OAuth または接続フローをトリガーしません |570| `server` | はい | 設定された MCP サーバーの名前。[プラグイン バンドル サーバー](/docs/ja/mcp#plugin-provided-mcp-servers)の場合、これはスコープ付き名前 `plugin:<plugin-name>:<server-name>`(例:`plugin:my-plugin:db`)であり、ベア サーバー キーではありません |

468| `tool` | はい | そのサーバー上で呼び出すツールの名前 |571| `tool` | はい | そのサーバー上で呼び出すツールの名前 |

469| `input` | いいえ | ツールに渡される引数。文字列値は、フックの[JSON 入力](#hook-input-and-output)から `${path}` 置換をサポートします(例:`"${tool_input.file_path}"`) |572| `input` | いいえ | ツールに渡される引数。文字列値は、フックの [JSON 入力](#hook-input-and-output)から `${path}` 置換をサポートします(例:`"${tool_input.file_path}"`) |

470 

471ツールのテキスト コンテンツはコマンド フック stdout のように扱われます。有効な[JSON 出力](#json-output)として解析される場合、決定として処理されます。そうでない場合は、プレーン テキストとして表示されます。指定されたサーバーが接続されていない場合、またはツールが `isError: true` を返す場合、フックは非ブロッキング エラーを生成し、実行は続行されます。

472 

473MCP ツール フックは、Claude Code が MCP サーバーに接続した後、すべてのフック イベントで利用可能です。`SessionStart` と `Setup` は通常、サーバーが接続を完了する前に発火するため、これらのイベント上のフックは最初の実行時に「接続されていない」エラーを予期する必要があります。

474 573 

475この例は、各 `Write` または `Edit` の後、`my_server` MCP サーバー上の `security_scan` ツールを呼び出し、編集されたファイルのパスを渡します。574この例は、各 `Write` または `Edit` の後、`my_server` MCP サーバー上の `security_scan` ツールを呼び出し、編集されたファイルのパスを渡します。

476 575 


494}593}

495```594```

496 595 

596<h5 id="how-the-tool’s-result-is-read">

597 ツールの結果の読み取り方

598</h5>

599 

600Claude Code は、[終了コード 0 の解析ルール](#exit-code-0)に従い、コマンドフックの stdout と同じ方法でツールのテキストコンテンツを読み取ります。ツールが `isError: true` を返した場合、フックは非ブロッキングエラーを生成し、実行は続行されます。

601 

602<h5 id="when-the-server-is-still-connecting">

603 サーバーがまだ接続中の場合

604</h5>

605 

606`PreToolUse` や `Stop` など、フックが結果をブロックまたは変更できるイベントでは、Claude Code は接続中のサーバーを待ってからツールを呼び出します。待機時間は最大で [`MCP_TIMEOUT`](/docs/ja/env-vars) までで、フック自体の [`timeout`](#common-fields) の範囲内です。`Notification` や `SessionEnd` などの観察用イベントでは待機しません。

607 

608[`cached` ステータス](/docs/ja/mcp#server-status-detail)を表示しているサーバーは、フックがそのツールを呼び出したときに接続します。その時点でサーバーが接続されていない場合、フックは非ブロッキングエラーを生成し、実行は続行されます。フックが OAuth フローを開始することはないため、先に [`/mcp` からサーバーを認証](/docs/ja/mcp#authenticate-with-remote-mcp-servers)してください。

609 

610<h5 id="events-that-fire-before-mcp-servers-are-available">

611 MCP サーバーが利用可能になる前に発火するイベント

612</h5>

613 

614起動時の `SessionStart`(`--continue` や `--resume` の場合を含む)とすべての `Setup` イベントは、セッションの MCP サーバーがフックから利用可能になる前に発火します。Claude Code はツールを呼び出さずにこれらの `mcp_tool` フックをスキップし、[デバッグログ](#debug-hooks)には `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`、または `Setup` を示す同じメッセージが記録されます。`/clear` やコンテキスト圧縮の後など、セッションの後半で `SessionStart` が再び発火した場合は、その `mcp_tool` フックが実行されます。セッションが起動時に必要とするものについては、代わりに `SessionStart` で `type: "command"` フックを使用してください。

615 

497<h4 id="prompt-and-agent-hook-fields">616<h4 id="prompt-and-agent-hook-fields">

498 プロンプト フックとエージェント フック フィールド617 プロンプト フックとエージェント フック フィールド

499</h4>618</h4>


503| フィールド | 必須 | 説明 |622| フィールド | 必須 | 説明 |

504| :- | :- | :- |623| :- | :- | :- |

505| `prompt` | はい | モデルに送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。バックスラッシュでエスケープしてリテラル テキストを含めます。`\$1.00` は `$1.00` としてレンダリングされます |624| `prompt` | はい | モデルに送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。バックスラッシュでエスケープしてリテラル テキストを含めます。`\$1.00` は `$1.00` としてレンダリングされます |

506| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |625| `model` | いいえ | 評価に使用するモデル。デフォルトは、Claude Code が[バックグラウンド機能](/docs/ja/costs#background-token-usage)に使用するモデル |

507 626 

508<h3 id="reference-scripts-by-path">627<h3 id="reference-scripts-by-path">

509 パスでフック スクリプトを参照628 パスでフック スクリプトを参照


511 630 

512フックが実行されるときの作業ディレクトリに関係なく、プロジェクトまたはプラグイン ルートを基準にしてフック スクリプトを参照するには、これらのプレースホルダーを使用します。631フックが実行されるときの作業ディレクトリに関係なく、プロジェクトまたはプラグイン ルートを基準にしてフック スクリプトを参照するには、これらのプレースホルダーを使用します。

513 632 

514* `${CLAUDE_PROJECT_DIR}`: プロジェクト ルート。Claude Code はこの変数を[stdio MCP サーバー](/docs/ja/mcp#option-3-add-a-local-stdio-server)とプラグイン LSP サーバーの環境にも設定します。633* `${CLAUDE_PROJECT_DIR}`: セッションを開始したプロジェクトルート。Claude Code はこの変数を [stdio MCP サーバー](/docs/ja/mcp#option-3-add-a-local-stdio-server)とプラグイン LSP サーバーの環境にも設定します。

515* `${CLAUDE_PLUGIN_ROOT}`: プラグインのインストール ディレクトリ、[プラグイン](/docs/ja/plugins)にバンドルされたスクリプト用。プラグイン更新時に変更されます。634* `${CLAUDE_PLUGIN_ROOT}`: プラグインのインストールディレクトリ。[プラグイン](/docs/ja/plugins/overview)にバンドルされたスクリプト用です。更新時にこのパスがどう扱われるかについては、[プラグインの環境変数](/docs/ja/plugins/manifest-reference#environment-variables)を参照してください。

516* `${CLAUDE_PLUGIN_DATA}`: プラグインの[永続データ ディレクトリ](/docs/ja/plugins-reference#persistent-data-directory)、プラグイン更新を通じて存続すべき依存関係と状態用。635* `${CLAUDE_PLUGIN_DATA}`: プラグインの[永続データディレクトリ](/docs/ja/plugins/components#path-variables-and-persistent-data)。プラグインの更新後も保持すべき依存関係と状態用です。

636 

637<Note>

638 **worktree の場合は異なります。** セッション中に Claude が [worktree](/docs/ja/worktrees) に入った場合、Claude Code は `${CLAUDE_PROJECT_DIR}` を元の場所のまま維持し、worktree のパスは別の方法でフックに渡します。

517 639 

518パス プレースホルダーを参照するフックには[exec フォーム](#exec-form-and-shell-form)を優先してください。Exec フォームは各 `args` 要素を引用符なしで 1 つの引数として渡すため、スペースまたは特殊文字を含むパスは引用符が不要です。シェル フォームでは、各プレースホルダーをダブル クォートで囲みます。640 * **`${CLAUDE_PROJECT_DIR}` は変わらない**: セッションを開始したプロジェクトルートを引き続き指すため、`${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` のようなコマンドは、引き続きメインのチェックアウト内のスクリプトを実行します。

641 * **`cwd` は Claude に追従する**: フックの[入力 JSON](#common-input-fields) の `cwd` フィールドは、Claude が worktree に入った後はその worktree のルートになり、Claude が `cd` を実行した後は新しいディレクトリになります。Claude がどのディレクトリで作業しているかをフックが知る必要がある場合は、このフィールドを読み取ってください。

642</Note>

643 

644パス プレースホルダーを参照するフックには [exec フォーム](#exec-form-and-shell-form)を優先してください。シェル フォームでは、各プレースホルダーをダブル クォートで囲みます。

519 645 

520<Tabs>646<Tabs>

521 <Tab title="プロジェクト スクリプト">647 <Tab title="プロジェクト スクリプト">


567 }693 }

568 ```694 ```

569 695 

570 プラグイン フックの作成の詳細については、[プラグイン コンポーネント リファレンス](/docs/ja/plugins-reference#hooks)を参照してください。696 プラグイン フックの作成の詳細については、[プラグイン コンポーネント リファレンス](/docs/ja/plugins/components#hooks)を参照してください。

571 </Tab>697 </Tab>

572</Tabs>698</Tabs>

573 699 


575 スキルとエージェントのフック701 スキルとエージェントのフック

576</h3>702</h3>

577 703 

578設定ファイルとプラグインに加えて、フックは[スキル](/docs/ja/skills)と[サブエージェント](/docs/ja/sub-agents)でフロントマターを使用して直接定義できます。これらのフックはコンポーネントのライフサイクルにスコープされ、そのコンポーネントがアクティブな場合にのみ実行されます。704設定ファイルとプラグインに加えて、フックは[スキル](/docs/ja/skills)と[サブエージェント](/docs/ja/sub-agents)でフロントマターを使用して直接定義できます。設定形式は設定ベースのフックと同じです。Claude Code がこれらを登録しておく期間は、コンポーネントによって異なります。

579 

580すべてのフック イベントがサポートされています。サブエージェントの場合、`Stop` フックは自動的に `SubagentStop` に変換されます。これはサブエージェントが完了したときに発火するイベントです。

581 705 

582フックは設定ベースのフックと同じ設定形式を使用しますが、コンポーネントのライフタイムにスコープされ、完了時にクリーンアップされます。706* **サブエージェントのフック**: Claude Code は、そのサブエージェントの実行中にのみこれらを実行し、サブエージェントが終了すると削除します。ここでの `Stop` フックは、Claude Code によって `SubagentStop` に変換されます。これはサブエージェントが完了したときに発火するイベントです。

707* **スキルのフック**: Claude Code は、ユーザーまたは Claude がスキルを呼び出したときにこれらを登録し、スキル自体のターンの後のターンも含めて、セッションの残りの期間ずっと実行し続けます。代わりに最初の実行が成功した後で Claude Code にフックを削除させるには、そのフックに [`once: true`](#common-fields) を設定します。

583 708 

584このスキルは、各 `Bash` コマンドの前にセキュリティ検証スクリプトを実行する `PreToolUse` フックを定義します。709このスキルは、各 `Bash` コマンドの前にセキュリティ検証スクリプトを実行する `PreToolUse` フックを定義します。

585 710 


596---721---

597```722```

598 723 

599エージェントは YAML フロントマターで同じ形式を使用します。724サブエージェントは YAML フロントマターで同じ形式を使用します。

725 

726プロジェクトスキルのフロントマターのフックは、[設定ファイルのフックと同じワークスペース信頼ルール](#workspace-trust)に従います。Claude Code は、ユーザーまたは Claude がスキルを呼び出したときにこれらを登録します。これには、信頼していないフォルダーでの `-p` 実行も含まれます。

727 

728プロジェクトサブエージェントのフロントマターのフックは、エージェントファイルの取得元フォルダーについて[ワークスペース信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を承認した後にのみ実行されます。`-p` セッションは承認したことになりません。[フォルダーを信頼する前に実行されるもの](/docs/ja/permissions#what-runs-before-you-trust-a-folder)ではこれを設定ファイルのルールと比較しており、サブエージェントのページには[どのスコープが対象外か](/docs/ja/sub-agents#hooks-in-subagent-frontmatter)が記載されています。v2.1.218 より前は、これらのフックは信頼していないフォルダーからも実行される可能性がありました。

600 729 

601<h3 id="the-/hooks-menu">730<h3 id="the-/hooks-menu">

602 `/hooks` メニュー731 `/hooks` メニュー

603</h3>732</h3>

604 733 

605Claude Code で `/hooks` と入力して、設定されたフックの読み取り専用ブラウザーを開きます。メニューはすべてのフック イベントを表示し、設定されたフックの数を示し、マッチャーにドリルダウンでき、各フック ハンドラーの完全な詳細を表示します。これを使用して設定を検証し、フックがどの設定ファイルから定義されたかを確認するか、フックのコマンド、プロンプト、または URL を検査します。734Claude Code で `/hooks` と入力して、設定されたフックの読み取り専用ブラウザーを開きます。リストでは、各フックにその取得元(ユーザー設定、プロジェクト設定、ローカル設定、プラグイン、現在のセッションなど)を示すラベルが付けられます。

606 

607メニューは 5 つのフック タイプをすべて表示します。`command`、`prompt`、`agent`、`http`、`mcp_tool`。各フックには、そのソースを示す `[type]` プレフィックスとソース ラベルが付けられています。

608 735 

609* `User`: `~/.claude/settings.json` から736フックを選択すると、そのフックが実行する内容の全文と、定義されている場所(設定ファイルのパスやプラグインの名前など)が表示されます。

610* `Project`: `.claude/settings.json` から

611* `Local`: `.claude/settings.local.json` から

612* `Plugin`: プラグインの `hooks/hooks.json` から

613* `Session`: 現在のセッション用にメモリに登録

614* `Built-in`: Claude Code によって内部的に登録

615 737 

616フックを選択すると、詳細ビューが開き、そのイベント、マッチャー、タイプ、ソース ファイル、および完全なコマンド、プロンプト、または URL が表示されます。メニューは読み取り専用です。フックを追加、変更、または削除するには、設定 JSON を直接編集するか、Claude にその変更を依頼してください。738フックが設定されていないものも含めてすべてのフック イベントを参照するには、リストの末尾にある `All events` を選択します。

617 739 

618<h3 id="disable-or-remove-hooks">740<h3 id="disable-or-remove-hooks">

619 フックを無効化または削除741 フックを無効化または削除

620</h3>742</h3>

621 743 

622フックを削除するには、設定 JSON ファイルからそのエントリを削除します。744設定ファイルで定義されたフックを削除するには、そのファイルからエントリを削除します。

623 745 

624すべてのフックを削除せずに一時的に無効化するには、設定ファイルで `"disableAllHooks": true` を設定します。個別のフックを設定に保持したまま無効化する方法はありません。746すべてのフックを削除せずに一時的に無効化するには、設定ファイルで `"disableAllHooks": true` を設定します。Claude Code は[設定の優先順位](/docs/ja/settings#settings-precedence)を適用した後に残る値を読み取るため、プロジェクトの `.claude/settings.json` にある `"disableAllHooks": false` は、ユーザー設定の `true` を上書きします。プロジェクトの設定内容にかかわらず 1 回の実行だけフックをオフにするには、`--settings '{"disableAllHooks": true}'` を渡します。これはプロジェクト設定とローカル設定よりも優先されます。個別のフックを設定に保持したまま無効化する方法はありません。

625 747 

626`disableAllHooks` 設定は管理設定階層を尊重します。管理者が管理ポリシー設定を通じてフックを設定している場合、ユーザー、プロジェクト、またはローカル設定で設定された `disableAllHooks` は、それらの管理フックを無効化できません。管理設定レベルで設定された `disableAllHooks` のみが管理フックを無効化できます。748`disableAllHooks` 設定は管理設定階層を尊重します。管理者が管理ポリシー設定を通じてフックを設定している場合、ユーザー、プロジェクト、またはローカル設定で設定された `disableAllHooks` は、それらの管理フックを無効化できません。管理設定レベルで設定された `disableAllHooks` のみが管理フックを無効化できます。各レベルの影響範囲の詳細については、[`disableAllHooks`](/docs/ja/settings-reference#disableallhooks) を参照してください。

627 749 

628設定ファイルのフックへの直接編集は通常、ファイル ウォッチャーによって自動的に取得されます。750設定ファイルのフックへの直接編集は通常、ファイル ウォッチャーによって自動的に取得されます。

629 751 


631 フック入出力753 フック入出力

632</h2>754</h2>

633 755 

634コマンド フックは stdin 経由で JSON データを受け取り、終了コード、stdout、stderr を通じて結果を通信します。HTTP フックは同じ JSON をリクエスト本体として受け取り、HTTP レスポンス本体を通じて結果を通信します。このセクションでは、すべてのイベントに共通するフィールドと動作について説明します。[フック イベント](#hook-events)の各セクションには、その特定の入力スキーマと決定制御オプションが含まれています。756コマンド フックは stdin 経由で JSON データを受け取り、終了コード、stdout、stderr を通じて結果を通信します。HTTP フックは同じ JSON を POST リクエスト本体として受け取り、HTTP レスポンス本体を通じて結果を通信します。このセクションでは、すべてのイベントに共通するフィールドと動作について説明します。[フック イベント](#hook-events)の各セクションには、その特定の入力スキーマと決定制御オプションが含まれています。

635 757 

636macOS と Linux では、コマンド フックは v2.1.139 以降、制御端末のない独自のセッションで実行されます。フック プロセスと子プロセスは `/dev/tty` を開くことも、エスケープ シーケンスを Claude Code インターフェイスに直接送信することもできません。Windows には `/dev/tty` がありません。任意のプラットフォームでユーザーにメッセージを表示するには、JSON 出力で[`systemMessage`](#json-output)を返します。デスクトップ通知をトリガーしたり、ウィンドウ タイトルを設定したり、ベルを鳴らしたりするには、代わりに[`terminalSequence`](#emit-terminal-notifications)を返します。758macOS と Linux では、コマンド フックは制御ターミナルのない独自のセッションで実行されます。フック プロセスと子プロセスは `/dev/tty` を開くことも、エスケープ シーケンスを Claude Code インターフェイスに直接送信することもできません。Windows には `/dev/tty` がありません。

759 

760任意のプラットフォームでユーザーにメッセージを表示するには、JSON 出力で [`systemMessage`](#json-output) を返します。一部のイベントはこれを破棄するか別の場所に配信します。その点は各[イベントのセクション](#hook-events)に記載されています。デスクトップ通知をトリガーしたり、ウィンドウ タイトルを設定したり、ベルを鳴らしたりするには、代わりに [`terminalSequence`](#emit-terminal-notifications) を返します。

637 761 

638<h3 id="common-input-fields">762<h3 id="common-input-fields">

639 共通入力フィールド763 共通入力フィールド


645| :- | :- |769| :- | :- |

646| `session_id` | 現在のセッション識別子 |770| `session_id` | 現在のセッション識別子 |

647| `prompt_id` | 現在処理中のユーザー プロンプトを識別する UUID。[OpenTelemetry イベントの `prompt.id` 属性](/docs/ja/monitoring-usage#event-correlation-attributes)と一致するため、単一のプロンプトのテレメトリでフック出力を相関させることができます。最初のユーザー入力まで存在しません。Claude Code v2.1.196 以降が必要です |771| `prompt_id` | 現在処理中のユーザー プロンプトを識別する UUID。[OpenTelemetry イベントの `prompt.id` 属性](/docs/ja/monitoring-usage#event-correlation-attributes)と一致するため、単一のプロンプトのテレメトリでフック出力を相関させることができます。最初のユーザー入力まで存在しません。Claude Code v2.1.196 以降が必要です |

648| `transcript_path` | 会話 JSON へのパス。トランスクリプト ファイルは非同期に書き込まれ、メモリ内の会話に遅れる可能性があるため、フックが発火するときに現在のターンの最新メッセージがまだ含まれていない可能性があります。現在のターンの最終的なアシスタント テキストが必要なフックは、トランスクリプトを読む代わりに[Stop](#stop)と[SubagentStop](#subagentstop)の `last_assistant_message` を使用する必要があります |772| `transcript_path` | 会話 JSON へのパス。トランスクリプト ファイルは非同期に書き込まれ、メモリ内の会話に遅れる可能性があるため、フックが発火するときに現在のターンの最新メッセージがまだ含まれていない可能性があります。現在のターンの最終的なアシスタント テキストが必要なフックは、トランスクリプトを読む代わりに [Stop](#stop) と [SubagentStop](#subagentstop) の `last_assistant_message` を使用する必要があります |

649| `cwd` | フックが呼び出されるときの現在の作業ディレクトリ |773| `cwd` | フックが呼び出されるときの現在の作業ディレクトリ |

774| `scratchpad_dir` | セッションの[スクラッチパッド ディレクトリ](/docs/ja/claude-directory#session-scratchpad-directory)へのパス。Claude はここに一時的な作業ファイルを保持します。セッションにスクラッチパッドがない場合、または一時ディレクトリが利用できない場合は存在しません。Claude Code v2.1.257 以降が必要です |

650| `permission_mode` | 現在の[権限モード](/docs/ja/permissions#permission-modes): `"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"`、または `"bypassPermissions"`。**Manual** というラベルが付いたモードは `"default"` として到着し、`"manual"` として到着することはないため、`"default"` と一致するスクリプトは引き続き機能します。すべてのイベントがこのフィールドを受け取るわけではありません。各[フック イベント](#hook-events)セクションの JSON 例を確認してください |775| `permission_mode` | 現在の[権限モード](/docs/ja/permissions#permission-modes): `"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"`、または `"bypassPermissions"`。**Manual** というラベルが付いたモードは `"default"` として到着し、`"manual"` として到着することはないため、`"default"` と一致するスクリプトは引き続き機能します。すべてのイベントがこのフィールドを受け取るわけではありません。各[フック イベント](#hook-events)セクションの JSON 例を確認してください |

651| `effort` | アクティブな[努力レベル](/docs/ja/model-config#adjust-effort-level)を保持する `level` フィールドを持つオブジェクト。ターンの場合: `"low"`、`"medium"`、`"high"`、`"xhigh"`、または `"max"`。リクエストされたモデル努力が現在のモデルがサポートしているものを超える場合、これはモデルが実際に使用したダウングレードされたレベルです。Ultracode は異なるレベルではなく、`"xhigh"` として報告されます。オブジェクトは[ステータス ライン](/docs/ja/statusline#available-data)の `effort` フィールドと一致します。`PreToolUse`、`PostToolUse`、`Stop`、`SubagentStop` などのツール使用コンテキスト内で発火するイベント、および現在のモデルが努力パラメータをサポートする場合に存在します。レベルは、フック コマンドと Bash ツールに `$CLAUDE_EFFORT` 環境変数として利用可能です。 |776| `effort` | フックの実行時に有効な [effort レベル](/docs/ja/model-config#adjust-effort-level)を保持する `level` フィールドを持つオブジェクト: `"low"`、`"medium"`、`"high"`、`"xhigh"`、または `"max"`。アクティブなモデルがサポートしていないレベルを設定した場合、`level` は Claude Code が代わりに実行したレベルを報告します。そのレベルの選び方については [effort レベルを調整](/docs/ja/model-config#adjust-effort-level)を参照してください。オブジェクトは[ステータスライン](/docs/ja/statusline#available-data)の `effort` フィールドと一致します。現在のモデルが effort パラメータをサポートしている場合、`PreToolUse`、`PostToolUse`、`Stop`、`SubagentStop` などのツール使用コンテキスト内で発火するイベントに存在します。レベルは、フック コマンドと Bash ツールでも `$CLAUDE_EFFORT` 環境変数として利用可能です。 |

652| `hook_event_name` | 発火したイベントの名前 |777| `hook_event_name` | 発火したイベントの名前 |

653 778 

654`--agent` で実行するか、サブエージェント内で実行する場合、2 つの追加フィールドが含まれます。779`--agent` で実行するか、サブエージェント内で実行する場合、2 つの追加フィールドが含まれます。


656| フィールド | 説明 |781| フィールド | 説明 |

657| :- | :- |782| :- | :- |

658| `agent_id` | サブエージェントの一意の識別子。フックがサブエージェント呼び出し内で発火する場合にのみ存在します。これを使用して、サブエージェント フック呼び出しをメイン スレッド呼び出しから区別します。 |783| `agent_id` | サブエージェントの一意の識別子。フックがサブエージェント呼び出し内で発火する場合にのみ存在します。これを使用して、サブエージェント フック呼び出しをメイン スレッド呼び出しから区別します。 |

659| `agent_type` | エージェント名(例えば、`"Explore"` または `"security-reviewer"`)。セッションが `--agent` を使用するか、フックがサブエージェント内で発火する場合に存在します。サブエージェントの場合、サブエージェントのタイプがセッションの `--agent` 値よりも優先されます。[カスタム サブエージェント](/docs/ja/sub-agents)の場合、これはエージェントのフロントマターの `name` フィールドであり、ファイル名ではありません。[プラグイン](/docs/ja/plugins)によって提供されるサブエージェントの場合、これは `my-plugin:reviewer` などのプラグイン スコープ識別子であり、フロントマター名ではありません。[SubagentStart](#subagentstart)を参照して、プラグイン スコープ名に対するマッチャーを記述する方法を確認してください。 |784| `agent_type` | エージェント名(例えば、`"Explore"` または `"security-reviewer"`)。セッションが `--agent` を使用するか、フックがサブエージェント内で発火する場合に存在します。サブエージェントの場合、サブエージェントのタイプがセッションの `--agent` 値よりも優先されます。カスタム サブエージェントとプラグイン サブエージェントが報告する値と、プラグイン スコープ名に対する matcher の記述方法については、[SubagentStart](#subagentstart) を参照してください。 |

785 

786[`SessionStart`](#sessionstart) フックのみが `model` フィールドを受け取ることができ、Claude Code が常にそれを含めるとは限りません。[`PreModelSwitch`](#premodelswitch) と [`PostModelSwitch`](#postmodelswitch) フックは代わりに `from_model` と `to_model` を受け取るため、セッション中に変化するモデルを追跡するには PostModelSwitch フックを使用してください。

660 787 

661[`SessionStart`](#sessionstart) フックのみが `model` フィールドを受け取ることができ、存在することは保証されません。`$CLAUDE_MODEL` 環境変数はありません。フック プロセスは親環境を継承するため、シェルで `$ANTHROPIC_MODEL` を設定した場合はそれを読み取ることができますが、セッション中に `/model` でモデルを切り替えるときにその値は変わりません。1 つのセット変数は継承されません。Claude Code は[すべてのサブプロセスから `OTEL_*` エクスポーター変数を削除](/docs/ja/monitoring-usage#administrator-configuration)します。これにはフックが含まれます。788`$CLAUDE_MODEL` 環境変数はありません。シェルで `$ANTHROPIC_MODEL` を設定した場合、フックはそれを読み取ることができますが、セッション中に `/model` でモデルを切り替えてもその値は変わりません。

789 

790フック プロセスは親環境を継承します。ただし、Claude Code が[起動するすべてのサブプロセスから削除する](/docs/ja/monitoring-usage#administrator-configuration) `OTEL_*` エクスポーター変数と、[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars#variables) が `1` に設定されている場合に除去される変数は除きます。

662 791 

663例えば、Bash コマンドの `PreToolUse` フックは stdin で以下を受け取ります。792例えば、Bash コマンドの `PreToolUse` フックは stdin で以下を受け取ります。

664 793 


668 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",797 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

669 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",798 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",

670 "cwd": "/home/user/my-project",799 "cwd": "/home/user/my-project",

800 "scratchpad_dir": "/tmp/claude-1000/-home-user-my-project/abc123/scratchpad",

671 "permission_mode": "default",801 "permission_mode": "default",

672 "hook_event_name": "PreToolUse",802 "hook_event_name": "PreToolUse",

673 "tool_name": "Bash",803 "tool_name": "Bash",

674 "tool_input": {804 "tool_input": {

675 "command": "npm test"805 "command": "npm test",

676 }806 "description": "Run test suite",

807 "timeout": 120000,

808 "run_in_background": false

809 },

810 "tool_use_id": "toolu_01ABC123..."

677}811}

678```812```

679 813 

680`tool_name` と `tool_input` フィールドはイベント固有です。各[フック イベント](#hook-events)セクションでは、そのイベントの追加フィールドについて説明しています。814`tool_name`、`tool_input`、`tool_use_id` フィールドはイベント固有です。各[フック イベント](#hook-events)セクションでは、そのイベントの追加フィールドについて説明しています。

681 815 

682<h3 id="exit-code-output">816<h3 id="exit-code-output">

683 終了コード出力817 終了コード出力

684</h3>818</h3>

685 819 

686フック コマンドからの終了コードは、Claude Code にアクションが進行すべきか、ブロックされるべきか、無視されるべきかを伝えます。820フック コマンドからの終了コードは、Claude Code にアクションが進行すべきか、ブロックされるべきか、無視されるべきかを伝えます。終了コードは単独で作用するわけではありません。Claude Code は 0 だけでなくすべての終了コードで stdout から [JSON 出力フィールド](#json-output)を読み取ります。標準の決定モデルを使用するイベントでは、解析されたオブジェクトがスキーマ検証に合格すると、終了コードとともに効果を持ちます。終了 2 によるブロックは、JSON で上書きできない唯一の結果です。

821 

822イベントごとの例外は 2 つの表にまとめられています。[イベントごとの終了コード 2 動作](#exit-code-2-behavior-per-event)は各イベントで終了コードが何をするかを示し、[決定制御](#decision-control)は各イベントがどの決定フィールドを尊重するかを示します。`systemMessage` などのユニバーサル フィールドはほとんどのイベントで機能し、[JSON 出力](#json-output)の表にリストされています。

823 

824<h4 id="exit-code-0">

825 終了コード 0

826</h4>

827 

828終了 0 は成功を意味し、構造化制御のために JSON を出力する場合に想定される終了コードです。

829 

830ほとんどのイベントでは、Claude Code は stdout をデバッグ ログに書き込み、トランスクリプトには表示しません。例外は `UserPromptSubmit`、`UserPromptExpansion`、`SessionStart`、`PostModelSwitch` で、Claude Code はプレーン テキストの stdout を Claude が見て行動できるコンテキストとして追加します。

831 

832Claude Code が stdout を [JSON 出力](#json-output)として読み取るかプレーン テキストとして読み取るかは、前後の空白を無視したうえで、その開始と終了の文字によって決まります。

833 

834* **`{` で始まり `}` で終わる**: Claude Code は JSON として解析します。出力が 2 行以上で、各行が単独で JSON として解析でき、どの行もフィールドを設定する [JSON 出力](#json-output)オブジェクトでない場合、Claude Code は出力全体をプレーン テキストとして扱います。それらの行のいずれかがフィールドを設定している場合、出力全体は解析失敗となります(後述)。

835* **`{` で始まるが `}` で終わらない**: Claude Code はプレーン テキストとして扱います。

836* **その他の文字で始まる**: JSON 配列や引用符で囲まれた JSON 文字列を含め、Claude Code はプレーン テキストとして扱います。

687 837 

688**終了 0** は成功を意味します。Claude Code は stdout を[JSON 出力フィールド](#json-output)で解析します。JSON 出力は終了 0 でのみ処理されます。ほとんどのイベントでは、stdout はデバッグ ログに書き込まれますが、トランスクリプトには表示されません。例外は `UserPromptSubmit`、`UserPromptExpansion`、および `SessionStart` で、stdout は Claude が見て行動できるコンテキストとして追加されます。838標準の決定モデルを使用するイベントでは、終了 0 で解析されたオブジェクトがスキーマ検証に失敗した場合は非ブロッキング エラーとなります。アクションは進行し、トランスクリプトには検証メッセージとともに `<hook name> hook error` 通知が表示されます。2 以外のすべての終了コードでも同じことが起こりますが、[終了 2 は引き続きブロックします](#exit-code-2)。

689 839 

690**終了 2** はブロッキング エラーを意味します。Claude Code は stdout とそれ内の JSON を無視します。代わりに、stderr テキストがエラー メッセージとして Claude にフィードバックされます。効果はイベントに依存します。`PreToolUse` はツール呼び出しをブロックし、`UserPromptSubmit` はプロンプトを拒否します。完全なリストについては、[終了コード 2 動作](#exit-code-2-behavior-per-event)を参照してください。840標準の決定モデルを使用するイベントでは、Claude Code が stdout を JSON として解析しようとして失敗した場合、2 以外のすべての終了コードで非ブロッキング エラーを報告します。トランスクリプトには解析メッセージとともに `<hook name> hook error` 通知が表示されます。プレーン テキストの stdout をコンテキストとして追加するイベントでは、Claude Code はそのテキストを追加しません。v2.1.248 より前は、Claude Code はその stdout をプレーン テキストとして扱っていました。

691 841 

692**その他の終了コード** はほとんどのフック イベントの非ブロッキング エラーです。トランスクリプトは `<hook name> hook error` 通知を表示し、その後に stderr の最初の行が続くため、`--debug` なしで原因を特定できます。実行は続行され、完全な stderr はデバッグ ログに書き込まれます。842終了 0 のフックからの stderr はデバッグ ログにのみ送られ、トランスクリプトには表示されず、Claude がそれを見ることはありません。自分で読むには、[デバッグ ログ](#debug-hooks)を有効にしてください。`PostToolUse` または `PostToolUseFailure` フックから Claude に警告を表示するには、代わりに終了 2 を使用してください。そうすれば、ツールがすでに実行されていても [Claude は stderr を確認できます](#exit-code-2-behavior-per-event)。

693 843 

694例えば、危険な Bash コマンドをブロックするフック コマンド スクリプト。844<h4 id="exit-code-2">

845 終了コード 2

846</h4>

847 

848終了 2 はブロッキング エラーを意味します。[ブロック可能なイベント](#exit-code-2-behavior-per-event)では、JSON を出力するかどうかにかかわらず終了 2 はブロックします。JSON の `permissionDecision` が `"allow"` であっても上書きできません。Claude Code は stdout 上の有効な [JSON 出力](#json-output)を引き続き読み取ります。`Elicitation` と `ElicitationResult` では、終了 2 のフックの `hookSpecificOutput` は無視されます。

849 

850ブロッキング メッセージは、JSON がブロッキング決定を行う場合はその理由、それ以外の場合は stderr テキストです。ブロックの効果はイベントによって異なります。`PreToolUse` はツール呼び出しをブロックし、`UserPromptSubmit` はプロンプトを拒否する、などです。[イベントごとの終了コード 2 動作](#exit-code-2-behavior-per-event)にはすべてのイベントの効果がリストされており、各イベントのセクションにはメッセージの送信先が記載されています。

851 

852[JSON 出力](#json-output)のスキーマ検証に失敗する JSON を出力しながら終了 2 するフックは、引き続きブロックします。Claude Code は stderr をブロッキング理由として使用し、検証の失敗をデバッグ ログに記録します。v2.1.214 より前は、Claude Code はその組み合わせを非ブロッキング エラーとして扱い、アクションは進行していました。

853 

854このスクリプトは終了 2 によって `rm` コマンドをブロックし、それ以外のすべてのコマンドは通常の権限フローに任せます。

695 855 

696```bash theme={null}856```bash theme={null}

697#!/bin/bash857#!/bin/bash

698# stdin から JSON 入力を読み取り、コマンドをチェック858# Reads JSON input from stdin, checks the command

699command=$(jq -r '.tool_input.command' < /dev/stdin)859input=$(cat)

860command=$(jq -r '.tool_input.command' <<<"$input")

700 861 

701if [[ "$command" == rm* ]]; then862if [[ "$command" == rm* ]]; then

702 echo "Blocked: rm commands are not allowed" >&2863 echo "Blocked: rm commands are not allowed" >&2

703 exit 2 # ブロッキング エラー: ツール呼び出しが防止される864 exit 2 # Blocking error: tool call is prevented

704fi865fi

705 866 

706exit 0 # 決定なし: 通常の権限フローが適用される867exit 0 # No decision: the normal permission flow applies

707```868```

708 869 

870<h4 id="other-exit-codes">

871 その他の終了コード

872</h4>

873 

874その他の終了コードは、ほとんどのフック イベントでそれ自体ではブロックしません。何が起こるかは stdout によって異なります。

875 

876* 標準の決定モデルを使用するイベントで、解析されたオブジェクトがスキーマ検証に合格した場合、Claude Code は終了コードを無視し、JSON のみが結果を決定します。

877 * イベントがサポートする各フィールド(`permissionDecision`、`additionalContext`、`updatedInput`、`systemMessage` を含む)が尊重され、フックはエラーとして報告されません。

878 * [決定制御](#decision-control)にはイベントごとの決定フィールドがリストされています。`systemMessage` などのユニバーサル フィールドは [JSON 出力](#json-output)の表に従います。

879* 標準の決定モデルを使用するイベントで、解析されたオブジェクトがスキーマ検証に失敗した場合、[終了 0 の場合](#exit-code-0)と同じ非ブロッキング エラーになります。アクションは進行し、`<hook name> hook error` 通知に検証メッセージが含まれます。

880* Claude Code が [JSON として解析しようとして](#exit-code-0)失敗した stdout の場合、標準の決定モデルを使用するイベントでは、Claude Code は終了 0 の場合と同じ非ブロッキング エラーを報告します。アクションは進行し、通知に解析メッセージが含まれます。

881* Claude Code が[プレーン テキストとして扱う](#exit-code-0) stdout、または空の stdout の場合、ほとんどのフック イベントで非ブロッキング エラーとなります。アクションは進行し、トランスクリプトには `<hook name> hook error` 通知と、その後に `Failed with non-blocking status code:` というプレフィックスが付いた stderr の最初の行が表示されます。完全な stderr を取得するには、[デバッグ ログ](#debug-hooks)を有効にしてください。

882 

883標準の決定モデルに含まれないイベントは、[イベントごとの表](#exit-code-2-behavior-per-event)の独自の行に従います。`WorktreeCreate` は JSON の内容にかかわらず 0 以外の終了で作成に失敗し、`StopFailure` のようにフック出力を完全に破棄するイベントは、すべての終了コードで JSON を無視します。ただし、`terminalSequence` のような副作用フィールドは引き続き発火します。

884 

885起動できないフックも同じ非ブロッキングの扱いになります。スクリプト パスが存在しないか実行可能でない場合、シェルは 127 などのコードで終了し、インタープリターのメッセージとともに同じ通知が表示されます(例: `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`)。ほとんどのフック イベントでは、アクションは進行します。ポリシー フックを設定するときは、最初の実行時にこの通知に注意してください。`settings.json` でパスを入力ミスすると、ゲートが気付かないうちに無効になります。

886 

709<Warning>887<Warning>

710 ほとんどのフック イベントでは、終了コード 2 のみがアクションをブロックします。Claude Code は終了コード 1 を非ブロッキング エラーとして扱い、1 が従来の Unix 失敗コードであっても、アクションを進行させます。フックがポリシーを実施することを目的としている場合は、`exit 2` を使用してください。例外は `WorktreeCreate` で、0 以外の終了コードはワークツリー作成を中止します。888 ほとんどのフック イベントでは、終了コード 2 がコードのみでブロックする唯一の終了コードです。stdout に有効な JSON がない場合、1 が従来の Unix 失敗コードであっても、Claude Code は終了コード 1 を非ブロッキング エラーとして扱い、アクションを進行させます。フックがポリシーを実施することを目的としている場合は、`exit 2` を使用してください。worktree イベントは異なります。`WorktreeCreate` からの 0 以外の終了コードは worktree の作成を中止し、`WorktreeRemove` からの 0 以外の終了コードは、その後もディレクトリが存在する場合に worktree の削除を失敗させます。

711</Warning>889</Warning>

712 890 

891<h4 id="timeouts">

892 タイムアウト

893</h4>

894 

895[`async: true`](#run-hooks-in-the-background) で実行するコマンド フックを除き、Claude Code は [`timeout`](#common-fields) に達した `command`、`http`、または `mcp_tool` フックをキャンセルし、フックの出力を破棄します。そのため、ほとんどのイベントでは、タイムアウトしたフックは決定を下しません。

896 

897[`PreModelSwitch`](#premodelswitch) では、タイムアウトでキャンセルされたフックはモデルの切り替えをブロックします。`PreToolUse` では、2 つのフック ファミリーで動作が異なります。

898 

899* タイムアウトした `command`、`http`、または `mcp_tool` フックはツール呼び出しをブロックしません。呼び出しは通常の[権限フロー](/docs/ja/permissions)を通じて続行されるため、停止したフックがゲートとして機能することを当てにしないでください。

900* タイムアウトを超えた [Agent SDK コールバック フック](/docs/ja/agent-sdk/hooks)は[ツール呼び出しをブロックします](#pretooluse)。

901 

713<h4 id="exit-code-2-behavior-per-event">902<h4 id="exit-code-2-behavior-per-event">

714 イベントごとの終了コード 2 動作903 イベントごとの終了コード 2 動作

715</h4>904</h4>


719| フック イベント | ブロック可能? | 終了 2 で何が起こるか |908| フック イベント | ブロック可能? | 終了 2 で何が起こるか |

720| :- | :- | :- |909| :- | :- | :- |

721| `PreToolUse` | はい | ツール呼び出しをブロック |910| `PreToolUse` | はい | ツール呼び出しをブロック |

722| `PermissionRequest` | はい | 権限を拒否 |911| `PermissionRequest` | いいえ | このイベントでは終了コード 2 は尊重されず、権限フローは変更されずに進行します。代わりに [`decision` オブジェクト](#permissionrequest-decision-control)を通じて拒否してください |

723| `UserPromptSubmit` | はい | プロンプト処理をブロックしてプロンプトを消去 |912| `UserPromptSubmit` | はい | プロンプトをブロックし、Claude に届かないようにします。[ブロックされたプロンプトが残すもの](#what-a-blocked-prompt-leaves-behind)を参照してください |

724| `UserPromptExpansion` | はい | 拡張をブロック |913| `UserPromptExpansion` | はい | 拡張をブロック |

725| `Stop` | はい | Claude が停止するのを防ぎ、会話を続行 |914| `Stop` | はい | Claude が停止するのを防ぎ、会話を続行 |

726| `SubagentStop` | はい | サブエージェントが停止するのを防止 |915| `SubagentStop` | はい | サブエージェントが停止するのを防止 |

727| `TeammateIdle` | はい | チームメイトがアイドル状態になるのを防止(チームメイトが作業を続行) |916| `TeammateIdle` | はい | チームメイトがアイドル状態になるのを防止し、作業を続行させる |

728| `TaskCreated` | はい | タスク作成をロールバック |917| `TaskCreated` | はい | タスク作成をロールバック |

729| `TaskCompleted` | はい | タスクが完了としてマークされるのを防止 |918| `TaskCompleted` | はい | タスクが完了としてマークされるのを防止 |

730| `ConfigChange` | はい | 設定変更が有効になるのをブロック(`policy_settings` を除く) |919| `ConfigChange` | はい | 設定変更が有効になるのをブロック(`policy_settings` を除く) |

731| `StopFailure` | いいえ | 出力と終了コードは無視 |920| `StopFailure` | いいえ | 出力と終了コードは無視(`terminalSequence` を除く) |

732| `PostToolUse` | いいえ | Claude に stderr を表示(ツールはすでに実行) |921| `PostToolUse` | いいえ | Claude に stderr を表示(ツールはすでに実行) |

733| `PostToolUseFailure` | いいえ | Claude に stderr を表示(ツールはすでに失敗) |922| `PostToolUseFailure` | いいえ | Claude に stderr を表示(ツールはすでに失敗) |

734| `PostToolBatch` | はい | 次のモデル呼び出しの前に agentic ループを停止 |923| `PostToolBatch` | はい | 次のモデル呼び出しの前にエージェント型ループを停止 |

735| `PermissionDenied` | いいえ | 終了コードと stderr は無視(拒否はすでに発生)。JSON `hookSpecificOutput.retry: true` を使用してモデルが再試行できることを伝える |924| `PermissionDenied` | いいえ | 終了コードと stderr は無視(拒否はすでに発生)。JSON `hookSpecificOutput.retry: true` を使用してモデルが再試行できることを伝える。Claude Code は[判定のない拒否](#permissiondenied-decision-control)では `retry: true` を無視します |

736| `Notification` | いいえ | ユーザーのみに stderr を表示 |925| `Notification` | いいえ | 終了コードと stderr は無視 |

737| `SubagentStart` | いいえ | ユーザーのみに stderr を表示 |926| `SubagentStart` | いいえ | ユーザーのみに stderr を表示 |

738| `SessionStart` | いいえ | ユーザーのみに stderr を表示 |927| `SessionStart` | いいえ | ユーザーのみに stderr を表示 |

739| `Setup` | いいえ | ユーザーのみに stderr を表示 |928| `Setup` | いいえ | 終了コードと stderr は無視 |

740| `SessionEnd` | いいえ | ユーザーのみに stderr を表示 |929| `SessionEnd` | いいえ | ユーザーのみに stderr を表示 |

741| `CwdChanged` | いいえ | ユーザーのみに stderr を表示 |930| `CwdChanged` | いいえ | ユーザーのみに stderr を表示 |

931| `DirectoryAdded` | いいえ | stderr はデバッグ ログに送られる(ディレクトリはすでに追加済み) |

742| `FileChanged` | いいえ | ユーザーのみに stderr を表示 |932| `FileChanged` | いいえ | ユーザーのみに stderr を表示 |

743| `PreCompact` | はい | コンパクションをブロック |933| `PreCompact` | はい | コンテキスト圧縮をブロック |

744| `PostCompact` | いいえ | ユーザーのみに stderr を表示 |934| `PostCompact` | いいえ | ユーザーのみに stderr を表示 |

935| `PreModelSwitch` | はい | モデルの切り替えをブロックし、ユーザーに stderr を表示 |

936| `PostModelSwitch` | いいえ | ユーザーのみに stderr を表示(モデルはすでに切り替え済み) |

745| `Elicitation` | はい | elicitation を拒否 |937| `Elicitation` | はい | elicitation を拒否 |

746| `ElicitationResult` | はい | レスポンスをブロック(アクションが decline になる) |938| `ElicitationResult` | はい | レスポンスをブロック(アクションが decline になる) |

747| `WorktreeCreate` | はい | 0 以外の終了コードでワークツリー作成が失敗 |939| `WorktreeCreate` | はい | 0 以外の終了コードで worktree 作成が失敗 |

748| `WorktreeRemove` | いいえ | 失敗はデバッグ モードでのみログ |940| `WorktreeRemove` | はい | 0 以外の終了コードは、その後もディレクトリが存在する場合に worktree の削除を失敗させる。ディレクトリがどうなるかについては [WorktreeRemove](#worktreeremove) を参照 |

749| `InstructionsLoaded` | いいえ | 終了コードは無視 |941| `InstructionsLoaded` | いいえ | 終了コードは無視 |

750| `MessageDisplay` | いいえ | 元のテキストが表示される |942| `MessageDisplay` | いいえ | 元のテキストが表示される |

751 943 

752`SessionStart`、`Setup`、および `SubagentStart` の場合、終了コード 2 stderr は[非ブロッキング エラー](#exit-code-output)と同じ方法で、トランスクリプトに `<hook name> hook error` 通知としてレンダリングされます。Claude はそれを見ず、セッションまたはサブエージェントは進行します。`SubagentStart` の場合、通知は親会話ではなく、サブエージェント自身のトランスクリプトに表示されます。944`SessionStart`、`SubagentStart`、および `PostModelSwitch` の場合、Claude Code は終了コード 2 の stderr を[非ブロッキング エラー](#exit-code-output)と同じ方法で、トランスクリプトに `<hook name> hook error` 通知としてレンダリングします。Claude はそれを見ず、セッションまたはサブエージェントは進行します。`SubagentStart` の場合、通知は親会話ではなく、サブエージェント自身のトランスクリプトに表示されます。

753 

754Claude Code v2.1.199 以降、`SessionStart`、`Setup`、および `SubagentStart` はトランスクリプトに終了コード 2 stderr を表示します。以前のバージョンはデバッグ ログにのみ書き込みました。

755 945 

756<h3 id="http-response-handling">946<h3 id="http-response-handling">

757 HTTP レスポンス処理947 HTTP レスポンス処理

758</h3>948</h3>

759 949 

760HTTP フックは終了コードと stdout の代わりに HTTP ステータス コードとレスポンス本体を使用します。950HTTP フックは終了コードと stdout の代わりに HTTP ステータス コードとレスポンス本体を使用します。以下の結果はほとんどのイベントに適用されます。`WorktreeCreate` のように[イベントごとの表](#exit-code-2-behavior-per-event)に独自の失敗時の規約を持つイベントは、失敗した HTTP フックにもその規約を適用します。

761 951 

762* **2xx で空の本体**: 成功、終了コード 0 で出力なしと同等952* **2xx で空の本体**: 成功、終了コード 0 で出力なしと同等

763* **2xx でプレーン テキスト本体**: 成功、テキストがコンテキストとして追加953* **2xx で JSON オブジェクト本体**: コマンド フックと同じ [JSON 出力](#json-output)スキーマを使用して解析。スキーマ検証に失敗した本体は非ブロッキング エラー

764* **2xx で JSON 本体**: 成功、コマンド フックと同じ[JSON 出力](#json-output)スキーマを使用して解析954* **2xx でその他の本体(プレーン テキストなど)**: 非ブロッキング エラー。2xx 以外のステータスと同じように処理されます。Claude Code はテキストを Claude のコンテキストに追加しません

765* **2xx 以外のステータス**: 非ブロッキング エラー、実行は続行955* **2xx 以外のステータス**: 非ブロッキング エラー、実行は続行

766* **接続失敗またはタイムアウト**: 非ブロッキング エラー、実行は続行956* **接続失敗**: 非ブロッキング エラー、実行は続行

957* **タイムアウト**: [タイムアウト](#timeouts)で説明されているとおり、フックはキャンセルされます

767 958 

768コマンド フックとは異なり、HTTP フックはステータス コードのみでブロッキング エラーを通知できません。ツール呼び出しをブロックまたは権限を拒否するには、適切な決定フィールドを含む JSON 本体を持つ 2xx レスポンスを返します。959コマンド フックとは異なり、HTTP フックはステータス コードのみでブロッキング エラーを通知できません。ツール呼び出しをブロックまたは権限を拒否するには、適切な決定フィールドを含む JSON 本体を持つ 2xx レスポンスを返します。

769 960 


771 JSON 出力962 JSON 出力

772</h3>963</h3>

773 964 

774終了コードで許可またはブロックできますが、JSON 出力はより細かい制御を提供します。終了コード 2 でブロックする代わりに、終了 0 して stdout に JSON オブジェクトを出力します。Claude Code はその JSON から特定のフィールドを読み取り、ブロック、許可、またはユーザーへのエスカレーションを含む[決定制御](#decision-control)を通じた動作を制御します。965終了コードではブロックするか何もしないかしか選べませんが、JSON 出力はより細かい制御を提供します。終了コード 2 でブロックする代わりに、終了 0 して stdout に JSON オブジェクトを出力します。Claude Code はその JSON から特定のフィールドを読み取り、ブロック、許可、またはユーザーへのエスカレーションのための[決定制御](#decision-control)を含む動作を制御します。

775 966 

776<Note>967<Note>

777 フックごとに 1 つのアプローチを選択する必要があります。両方ではありません。終了コードのみでシグナリングするか、終了 0 して構造化制御のために JSON を出力するかのいずれかです。Claude Code は終了 0 でのみ JSON を処理します。終了 2 の場合、JSON は無視されます。968 フックごとに 1 つのアプローチを選択してください。終了コードのみでシグナリングするか、終了 0 して構造化制御のために JSON を出力するかのいずれかです。両方を混在させた場合、終了 2 は[ブロッキング効果](#exit-code-2-behavior-per-event)を維持し、Claude Code は引き続き JSON フィールドを読み取ります。ただし、[終了コード 2](#exit-code-2) で説明されている elicitation の例外が 1 つあります。

778</Note>969</Note>

779 970 

780フックの stdout には JSON オブジェクトのみが含まれている必要があります。シェル プロファイルがスタートアップ時にテキストを出力する場合、JSON 解析に干渉する可能性があります。トラブルシューティング ガイドの[JSON 検証に失敗](/docs/ja/hooks-guide#json-validation-failed)を参照してください。971フックの stdout には JSON オブジェクトのみが含まれている必要があります。シェル プロファイルがスタートアップ時にテキストを出力する場合、JSON 解析に干渉する可能性があります。トラブルシューティング ガイドの[フックの JSON が効果を持たない](/docs/ja/hooks-guide#hook-json-has-no-effect)を参照してください。

781 972 

782フック出力文字列(`additionalContext`、`systemMessage`、およびプレーン stdout を含む)は 10,000 文字でキャップされます。この制限を超える出力はファイルに保存され、プレビューとファイル パスに置き換えられます。大きなツール結果と同じ方法で処理されます。973フックの `additionalContext`、`systemMessage`、`initialUserMessage` の文字列、およびプレーン stdout は 10,000 文字に制限されています。

974 

975* **スコープ**: 同じイベントに対して複数のフックが実行される場合でも、Claude Code は各文字列を個別に計測します。JSON 出力の場合、各フィールドは個別に計測されます。プレーン stdout は全体として計測されます。

976* **制限を超えた場合**: Claude Code は出力をセッション ディレクトリ内のファイルに保存し、ファイル パスと最初の最大 2,000 文字のプレビューに置き換えます。大きな有効な Bash 結果も同じ方法で処理されます([出力制限](/docs/ja/tools-reference#output-limits)で説明)。その Bash の上限とは異なり、この上限を引き上げる設定や環境変数はありません。

977* **ファイルの読み取り**: Claude Code は Claude にファイルを読むよう求めないため、Claude が常に確認する必要があるものは上限内に収めてください。

783 978 

784JSON オブジェクトは 3 種類のフィールドをサポートしています。979JSON オブジェクトは 3 種類のフィールドをサポートしています。

785 980 

786* **`continue` などのユニバーサル フィールド**はすべてのイベント全体で機能します。これらは以下の表にリストされています。981* **`continue` などのユニバーサル フィールド**は以下の表にリストされています。すべてのイベントがこれらを受け入れますが、一部のイベントはこれらを破棄するか、`systemMessage` をトランスクリプト以外の場所に配信します。各イベントのセクションにその旨が記載されています。`terminalSequence` もそれらのイベントで機能しますが、[ターミナル通知を発行](#emit-terminal-notifications)に記載されている例外があります。

787* **トップレベルの `decision` と `reason`** は一部のイベントで使用され、ブロックまたはフィードバックを提供します。982* **トップレベルの `decision` と `reason`** は一部のイベントで使用され、ブロックまたはフィードバックを提供します。

788* **`hookSpecificOutput`** はより豊かな制御が必要なイベント用のネストされたオブジェクトです。イベント名に設定された `hookEventName` フィールドが必要です。983* **`hookSpecificOutput`** はより豊かな制御が必要なイベント用のネストされたオブジェクトです。イベント名に設定された `hookEventName` フィールドが必要です。

789 984 

790| フィールド | デフォルト | 説明 |985| フィールド | デフォルト | 説明 |

791| :- | :- | :- |986| :- | :- | :- |

792| `continue` | `true` | `false` の場合、フックが実行された後、Claude は完全に処理を停止します。イベント固有の決定フィールドよりも優先されます |987| `continue` | `true` | `false` の場合、フックが実行された後、Claude は完全に処理を停止します。イベント固有の決定フィールドよりも優先されます |

793| `stopReason` | なし | `continue` が `false` のときにユーザーに表示されるメッセージ。Claude には表示されません |988| `stopReason` | なし | `continue` が `false` のときにユーザーに表示されるメッセージ。会話に残るため、会話が続行された場合は Claude にも表示されます |

794| `suppressOutput` | `false` | `true` の場合、デバッグ ログから stdout を非表示にします |989| `suppressOutput` | `false` | 効果はありません。Claude Code はこのフィールドを受け入れますが、それに基づいて動作しません。成功したフックの stdout はトランスクリプトに表示されることはなく、デバッグ ログに記録されます |

795| `systemMessage` | なし | ユーザーに表示される警告メッセージ |990| `systemMessage` | なし | ユーザーに表示される警告メッセージ。[Agent SDK](/docs/ja/agent-sdk/overview) および [`--output-format stream-json`](/docs/ja/headless) の出力では、[`SDKInformationalMessage`](/docs/ja/agent-sdk/typescript#sdkinformationalmessage) として届く場合があります |

796| `terminalSequence` | なし | Claude Code が代わりに発行するターミナル エスケープ シーケンス(デスクトップ通知、ウィンドウ タイトル、ベルなど)。OSC `0`/`1`/`2`/`9`/`99`/`777` と BEL に制限されます。値に許可リスト外のものが含まれている場合、フィールドは無視されます。`/dev/tty` が利用できないフックの代わりにこれを使用してください |991| `terminalSequence` | なし | Claude Code が代わりに発行するターミナル エスケープ シーケンス(デスクトップ通知、ウィンドウ タイトル、ベルなど)。OSC `0`/`1`/`2`/`9`/`99`/`777` と BEL に制限されます。値に許可リスト外のものが含まれている場合、フィールドは無視されます。フックでは利用できない `/dev/tty` への書き込みの代わりにこれを使用してください |

797 992 

798Claude を完全に停止するには、イベント タイプに関係なく。993Claude を完全に停止するには、次のようにします。

799 994 

800```json theme={null}995```json theme={null}

801{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }996{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

802```997```

803 998 

999`PreToolUse` および `PostToolUse` フックの場合、Claude がまだ応答をストリーミングしている間にツール呼び出しが失敗または完了した場合でも、停止が適用されます。

1000 

804<h4 id="emit-terminal-notifications">1001<h4 id="emit-terminal-notifications">

805 ターミナル通知を発行1002 ターミナル通知を発行

806</h4>1003</h4>

807 1004 

808`terminalSequence` フィールドには Claude Code v2.1.141 以降が必要です。1005フックは制御ターミナルなしで実行されるため、エスケープ シーケンスを `/dev/tty` に直接書き込むことは失敗します。代わりに、エスケープ シーケンスを `terminalSequence` フィールドで返し、Claude Code は独自のターミナル書き込みパスを通じてそれを発行します。これはレース フリーで、tmux と GNU screen 内で機能し、`/dev/tty` がない Windows で機能します。

809 

810フックは制御端末なしで実行されるため、エスケープ シーケンスを `/dev/tty` に直接書き込むことは失敗します。代わりに、エスケープ シーケンスを `terminalSequence` フィールドで返し、Claude Code は独自のターミナル書き込みパスを通じてそれを発行します。これはレース フリーで、tmux と GNU screen 内で機能し、`/dev/tty` がない Windows で機能します。

811 1006 

812フィールドは 1 つ以上の許可リストに登録されたエスケープ シーケンスの文字列を受け入れます。1007フィールドは 1 つ以上の許可リストに登録されたエスケープ シーケンスの文字列を受け入れます。

813 1008 


819 1014 

820シーケンスは BEL または ST で終了する場合があります。許可リスト外のもの(CSI カーソルと色シーケンス、OSC パレット シーケンス、OSC 8 ハイパーリンク、OSC 52 クリップボード書き込み、OSC 1337 を含む)は拒否され、フィールドは無視されます。1015シーケンスは BEL または ST で終了する場合があります。許可リスト外のもの(CSI カーソルと色シーケンス、OSC パレット シーケンス、OSC 8 ハイパーリンク、OSC 52 クリップボード書き込み、OSC 1337 を含む)は拒否され、フィールドは無視されます。

821 1016 

1017Claude Code はフックの出力を処理するときにシーケンス自体を書き込むため、このフィールドは `Notification` や `StopFailure` など、`systemMessage` と `continue` を破棄するイベントでも機能します。ただし、2 つの制限があります。

1018 

1019* Claude Code は対話セッションでのみ、かつそのインターフェイスが画面に表示されている間のみシーケンスを書き込みます。`-p` フラグを使用した非対話モードおよび Agent SDK では、このフィールドは無視されます。

1020* `WorktreeCreate` コマンド フックは JSON を返せません。Claude Code はその stdout を worktree パスとして読み取るためです。HTTP `WorktreeCreate` フックは JSON を返すため、このフィールドを含めることができます。

1021 

822以下の例は `Notification` フックからデスクトップ通知を発火します。エスケープ シーケンスは `printf` 8 進数エスケープで構築されるため、制御バイトはシェル コマンド ラインに表示されず、`jq -n --arg` は JSON 出力を構築するため、通知メッセージの引用符、バックスラッシュ、改行は正しくエスケープされます。1022以下の例は `Notification` フックからデスクトップ通知を発火します。エスケープ シーケンスは `printf` 8 進数エスケープで構築されるため、制御バイトはシェル コマンド ラインに表示されず、`jq -n --arg` は JSON 出力を構築するため、通知メッセージの引用符、バックスラッシュ、改行は正しくエスケープされます。

823 1023 

824```bash theme={null}1024```bash theme={null}

825#!/bin/bash1025#!/bin/bash

826# Notification フック: Claude Code が注意を必要とするときにデスクトップに ping を送信します。1026# Notification hook: ping the desktop when Claude Code needs attention.

827input=$(cat)1027input=$(cat)

828title="Claude Code'1028title="Claude Code"

829body=$(jq -r '.message // 'Needs your attention"' <<<"$input")1029body=$(jq -r '.message // "Needs your attention"' <<<"$input")

830seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")1030seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

831jq -nc --arg seq "$seq" '{terminalSequence: $seq}'1031jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

832```1032```

833 1033 

834`{ "terminalSequence": "..." }` の形状は、任意のシェルまたは言語から同じです。Windows では、PowerShell またはスクリプトでエスケープ文字列を構築し、同じ JSON オブジェクトを発行します。1034`{ "terminalSequence": "..." }` の形状は、任意のシェルまたは言語から同じです。

835 

836<Note>

837 `terminalSequence` は、以前に `/dev/tty` にエスケープ シーケンスを直接書き込んでいたフックの対応する置き換えです。許可リストはカーソルを移動したり色を変更したりできないシーケンスに制限されているため、フックはオンスクリーン プロンプトを破損することはできません。

838</Note>

839 1035 

840<h4 id="add-context-for-claude">1036<h4 id="add-context-for-claude">

841 Claude 用にコンテキストを追加1037 Claude 用にコンテキストを追加

842</h4>1038</h4>

843 1039 

844`additionalContext` フィールドは、フックから Claude のコンテキスト ウィンドウに文字列を渡します。Claude Code は文字列をシステム リマインダーでラップし、フックが発火した時点で会話に挿入します。Claude は次のモデル リクエストでリマインダーを読み取りますが、インターフェイスではチャット メッセージとして表示されません。1040`additionalContext` フィールドは、フックから Claude のコンテキストウィンドウに文字列を渡します。Claude Code は文字列を[システムリマインダー](/docs/ja/glossary#system-reminder)でラップし、フックが発火した時点で会話に挿入します。Claude は次のモデル リクエストでリマインダーを読み取りますが、インターフェイスではチャット メッセージとして表示されません。

845 1041 

846`hookSpecificOutput` 内でイベント名と一緒に `additionalContext` を返します。1042`hookSpecificOutput` 内でイベント名と一緒に `additionalContext` を返します。

847 1043 


856 1052 

857リマインダーが表示される場所はイベントに依存します。1053リマインダーが表示される場所はイベントに依存します。

858 1054 

859* [SessionStart](#sessionstart)、[Setup](#setup)、および [SubagentStart](#subagentstart): 会話の開始時、最初のプロンプトの前1055* [SessionStart](#sessionstart) および [SubagentStart](#subagentstart): 会話の開始時、最初のプロンプトの前

860* [UserPromptSubmit](#userpromptsubmit) および [UserPromptExpansion](#userpromptexpansion): 送信されたプロンプトの横1056* [UserPromptSubmit](#userpromptsubmit) および [UserPromptExpansion](#userpromptexpansion): 送信されたプロンプトの横

861* [PreToolUse](#pretooluse)、[PostToolUse](#posttooluse)、[PostToolUseFailure](#posttoolusefailure)、および [PostToolBatch](#posttoolbatch): ツール結果の横1057* [PreToolUse](#pretooluse)、[PostToolUse](#posttooluse)、[PostToolUseFailure](#posttoolusefailure)、および [PostToolBatch](#posttoolbatch): ツール結果の横

862* [Stop](#stop) および [SubagentStop](#subagentstop): ターンの終了時。会話は続行されるため、Claude はフィードバックに対応できます。[Stop 決定制御](#stop-decision-control)を参照してください1058* [Stop](#stop) および [SubagentStop](#subagentstop): ターンの終了時。会話は続行されるため、Claude はフィードバックに対応できます。[Stop 決定制御](#stop-decision-control)を参照してください

1059* [PostModelSwitch](#postmodelswitch): 切り替え後の次のリクエストとともに。タイミングについては [PostModelSwitch 決定制御](#postmodelswitch-decision-control)を参照してください

863 1060 

864複数のフックが同じイベントに対して `additionalContext` を返す場合、Claude はすべての値を受け取ります。値が 10,000 文字を超える場合、Claude Code はセッション ディレクトリ内のファイルに完全なテキストを書き込み、短いプレビューとファイル パスを Claude に渡します。1061複数のフックが同じイベントに対して `additionalContext` を返す場合、Claude はすべての値を受け取ります。

1062 

1063値が 10,000 文字を超える場合、Claude Code はテキストをセッション ディレクトリ内のファイルに書き込み、代わりにファイル パスと最初の最大 2,000 文字のプレビューを Claude に渡します。Claude はファイルを読むことができますが、Claude Code はそれを読むよう求めません。

865 1064 

866Claude が現在の環境の状態または実行されたばかりの操作について知っておくべき情報に `additionalContext` を使用します。1065Claude が現在の環境の状態または実行されたばかりの操作について知っておくべき情報に `additionalContext` を使用します。

867 1066 

868* **環境状態**: 現在のブランチ、デプロイ ターゲット、またはアクティブな機能フラグ1067* **環境状態**: 現在のブランチ、デプロイ ターゲット、またはアクティブな機能フラグ

869* **条件付きプロジェクト ルール**: 編集されたばかりのファイルに適用されるテスト コマンド、このワークツリーで読み取り専用のディレクトリ1068* **条件付きプロジェクト ルール**: 編集されたばかりのファイルに適用されるテスト コマンド、この worktree で読み取り専用のディレクトリ

870* **外部データ**: 割り当てられたオープン イシュー、最近の CI 結果、内部サービスから取得されたコンテンツ1069* **外部データ**: 割り当てられたオープン イシュー、最近の CI 結果、内部サービスから取得されたコンテンツ

871 1070 

872変わらない指示については、[CLAUDE.md](/docs/ja/memory)を優先します。スクリプトを実行せずに読み込まれ、静的なプロジェクト規約の標準的な場所です。1071変わらない指示については、[CLAUDE.md](/docs/ja/memory) を優先します。スクリプトを実行せずに読み込まれ、静的なプロジェクト規約の標準的な場所です。

873 1072 

874テキストを命令型システム指示ではなく、事実的なステートメントとして記述します。「デプロイ ターゲットは本番環境です」または「このリポジトリは `bun test` を使用します」などのフレーズはプロジェクト情報として読み取られます。帯域外システム コマンドとしてフレーム化されたテキストは Claude のプロンプト インジェクション防御をトリガーする可能性があり、Claude がテキストをコンテキストとして扱う代わりに表示します。1073テキストを命令型システム指示ではなく、事実的なステートメントとして記述します。「デプロイ ターゲットは本番環境です」または「このリポジトリは `bun test` を使用します」などのフレーズはプロジェクト情報として読み取られます。帯域外システム コマンドとしてフレーム化されたテキストは Claude のプロンプトインジェクション防御をトリガーする可能性があり、その場合 Claude はテキストをコンテキストとして扱う代わりにユーザーに提示します。

875 1074 

876注入されたテキストはセッション トランスクリプトに保存されます。`PostToolUse` または `UserPromptSubmit` などの中盤イベントの場合、`--continue` または `--resume` で再開すると、フックを再実行する代わりに保存されたテキストが再生されるため、タイムスタンプやコミット SHA などの値は再開時に古くなります。`SessionStart` フックは `source` を `"resume"` に設定して再開時に再度実行されるため、コンテキストをリフレッシュできます。1075Claude Code は注入されたテキストをセッション トランスクリプトに保存します。`PostToolUse` や `UserPromptSubmit` などのセッション途中のイベントの場合、`--continue` または `--resume` で再開すると、Claude Code は過去のターンについてフックを再実行するのではなく保存されたテキストを再生するため、タイムスタンプやコミット SHA などの値は古くなります。`SessionStart` フックは再開時に `source` を `"resume"`(`--fork-session` を追加した場合は `"fork"`)に設定して再度実行されるため、コンテキストをリフレッシュできます。

877 1076 

878<h4 id="decision-control">1077<h4 id="decision-control">

879 決定制御1078 決定制御


884| イベント | 決定パターン | キー フィールド |1083| イベント | 決定パターン | キー フィールド |

885| :- | :- | :- |1084| :- | :- | :- |

886| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | トップレベル `decision` | `decision: "block"`、`reason`。Stop と SubagentStop は[会話を続行する非エラー フィードバック](#stop-decision-control)のために `hookSpecificOutput.additionalContext` も受け入れます |1085| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | トップレベル `decision` | `decision: "block"`、`reason`。Stop と SubagentStop は[会話を続行する非エラー フィードバック](#stop-decision-control)のために `hookSpecificOutput.additionalContext` も受け入れます |

887| TeammateIdle、TaskCreated、TaskCompleted | 終了コードまたは `continue: false` | 終了コード 2 はアクションをブロックし、stderr フィードバックを使用します。JSON `{"continue": false, "stopReason": "..."}` はチームメイト全体を停止し、`Stop` フック動作と一致します |1086| TeammateIdle、TaskCompleted | 終了コードまたは `continue: false` | 終了コード 2 は stderr フィードバックとともにアクションをブロックします。JSON `{"continue": false, "stopReason": "..."}` もチームメイトを完全に停止し、`Stop` フックの動作と一致します。[`TaskUpdate` ツールがイベントをトリガーした場合、TaskCompleted はこれを無視します](#taskcompleted-decision-control) |

1087| TaskCreated | 終了コードまたはトップレベル `decision` | 終了コード 2 または `decision: "block"` は[タスクをキャンセル](#taskcreated-decision-control)し、メッセージを Claude に返します。`continue: false` は無視されます |

888| PreToolUse | `hookSpecificOutput` | `permissionDecision`(allow/deny/ask/defer)、`permissionDecisionReason` |1088| PreToolUse | `hookSpecificOutput` | `permissionDecision`(allow/deny/ask/defer)、`permissionDecisionReason` |

1089| PreModelSwitch | `hookSpecificOutput` またはトップレベル `decision` | `permissionDecision`(allow/deny/ask)、`permissionDecisionReason`。`decision: "block"` も[切り替えをキャンセル](#premodelswitch-decision-control)します |

889| PermissionRequest | `hookSpecificOutput` | `decision.behavior`(allow/deny) |1090| PermissionRequest | `hookSpecificOutput` | `decision.behavior`(allow/deny) |

890| PermissionDenied | `hookSpecificOutput` | `retry: true` はモデルが拒否されたツール呼び出しを再試行できることを伝える |1091| PermissionDenied | `hookSpecificOutput` | `retry: true` はモデルが拒否されたツール呼び出しを再試行できることを伝えます。Claude Code は[判定のない拒否](#permissiondenied-decision-control)ではこれを無視します |

891| WorktreeCreate | パス戻り値 | コマンド フックは stdout にパスを出力します。HTTP フックは `hookSpecificOutput.worktreePath` 経由で返します。フック失敗またはパス欠落で作成が失敗 |1092| WorktreeCreate | パス戻り値 | コマンド フックは stdout にパスを出力します。HTTP フックは `hookSpecificOutput.worktreePath` を返します。フック失敗またはパス欠落で作成が失敗 |

1093| WorktreeRemove | 終了コード | 0 以外の終了コードは、その後もディレクトリが存在する場合に削除を失敗させます。JSON 出力は破棄されます |

892| Elicitation | `hookSpecificOutput` | `action`(accept/decline/cancel)、`content`(accept の場合のフォーム フィールド値) |1094| Elicitation | `hookSpecificOutput` | `action`(accept/decline/cancel)、`content`(accept の場合のフォーム フィールド値) |

893| ElicitationResult | `hookSpecificOutput` | `action`(accept/decline/cancel)、`content`(フォーム フィールド値をオーバーライド) |1095| ElicitationResult | `hookSpecificOutput` | `action`(accept/decline/cancel)、`content`(フォーム フィールド値を上書き) |

894| MessageDisplay | `hookSpecificOutput` | `displayContent` は画面に表示されるテキストを置き換えます。表示のみ: トランスクリプトと Claude が見るものは元のままです |1096| MessageDisplay | `hookSpecificOutput` | `displayContent` は画面に表示されるテキストを置き換えます。表示のみ: トランスクリプトと Claude が見るものは元のままです |

895| SessionStart、Setup、SubagentStart | コンテキストのみ | `hookSpecificOutput.additionalContext` は Claude 用にコンテキストを追加します。SessionStart は [`initialUserMessage`、`watchPaths`、`sessionTitle`、および `reloadSkills`](#sessionstart-decision-control)も受け入れます。ブロッキングまたは決定制御なし |1097| SessionStart、SubagentStart、PostModelSwitch | コンテキストのみ | `hookSpecificOutput.additionalContext` は Claude 用にコンテキストを追加します。SessionStart は [`initialUserMessage`、`watchPaths`、`sessionTitle`、および `reloadSkills`](#sessionstart-decision-control) も受け入れます。ブロッキングまたは決定制御なし |

896| WorktreeRemove、Notification、SessionEnd、PostCompact、InstructionsLoaded、StopFailure、CwdChanged、FileChanged | なし | 決定制御なし。ログやクリーンアップなどの副作用に使用 |1098| Setup、Notification、SessionEnd、PostCompact、InstructionsLoaded、StopFailure、CwdChanged、DirectoryAdded、FileChanged | なし | 決定制御なし。ログやクリーンアップなどの副作用に使用 |

897 1099 

898いくつかのイベントは、許可またはブロックするだけでなく、コンテンツを書き直すこともできます。1100いくつかのイベントは、許可またはブロックするだけでなく、コンテンツを書き直すこともできます。

899 1101 


902* `PostToolUse`: `updatedToolOutput` はツールの結果を置き換えます。[PostToolUse 決定制御](#posttooluse-decision-control)を参照してください1104* `PostToolUse`: `updatedToolOutput` はツールの結果を置き換えます。[PostToolUse 決定制御](#posttooluse-decision-control)を参照してください

903* `UserPromptSubmit`: プロンプトを置き換えることはできません。`additionalContext` をそれと一緒に注入するだけです1105* `UserPromptSubmit`: プロンプトを置き換えることはできません。`additionalContext` をそれと一緒に注入するだけです

904 1106 

905編集またはトランスフォーメーション ユースケースの場合、アウトバウンド ツール入力の場合は `PreToolUse` で、インバウンド ツール結果の場合は `PostToolUse` で傍受します。1107秘匿化や変換のユースケースの場合、アウトバウンド ツール入力の場合は `PreToolUse` で、インバウンド ツール結果の場合は `PostToolUse` で傍受します。

906 1108 

907各パターンの実行例を以下に示します。1109各パターンの実行例を以下に示します。

908 1110 

909<Tabs>1111<Tabs>

910 <Tab title="トップレベル決定">1112 <Tab title="トップレベル決定">

911 `UserPromptSubmit`、`UserPromptExpansion`、`PostToolUse`、`PostToolUseFailure`、`PostToolBatch`、`Stop`、`SubagentStop`、`ConfigChange`、`PreCompact` で使用されます。唯一の値は `"block"` です。アクションを進行させるには、JSON から `decision` を省略するか、JSON なしで終了 0 で終了します。1113 `decision` の唯一の値は `"block"` です。アクションを進行させるには、JSON から `decision` を省略するか、JSON なしで終了 0 で終了します。

912 1114 

913 ```json theme={null}1115 ```json theme={null}

914 {1116 {


951 </Tab>1153 </Tab>

952</Tabs>1154</Tabs>

953 1155 

954Bash コマンド検証、プロンプト フィルタリング、自動承認スクリプトを含む拡張例については、ガイドの[自動化できること](/docs/ja/hooks-guide#what-you-can-automate)と[Bash コマンド バリデーター リファレンス実装](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py)を参照してください。1156Bash コマンド検証、プロンプト フィルタリング、自動承認スクリプトを含む拡張例については、ガイドの[自動化できること](/docs/ja/hooks-guide#what-you-can-automate)と [Bash コマンド バリデーター リファレンス実装](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py)を参照してください。

955 1157 

956<h2 id="hook-events">1158<h2 id="hook-events">

957 フック イベント1159 フックイベント

958</h2>1160</h2>

959 1161 

960各イベントは Claude Code のライフサイクル内のポイントに対応し、フックが実行できます。以下のセクションはライフサイクルに一致する順序で配置されています。セッション セットアップから agentic ループを経由してセッション終了まで。各セクションでは、イベントがいつ発火するか、サポートするマッチャー、受け取る JSON 入力、出力を通じた動作制御方法について説明しています。1162各イベントは、フックを実行できる Claude Code のライフサイクル上のポイントに対応しています。以下のセクションはライフサイクルに沿って、セッションのセットアップからエージェント型ループを経てセッション終了までの順に並んでいます。各セクションでは、イベントが発火するタイミング、サポートする matcher、受け取る JSON 入力、出力を通じて動作を制御する方法を説明します。

961 1163 

962<h3 id="sessionstart">1164<h3 id="sessionstart">

963 SessionStart1165 SessionStart

964</h3>1166</h3>

965 1167 

966Claude Code が新しいセッションを開始するか、既存のセッションを再開するときに実行されます。既存の問題や最近のコードベース変更など、開発コンテキストをロードしたり、環境変数をセットアップしたりするのに便利です。静的コンテキストでスクリプトが不要な場合は、代わりに[CLAUDE.md](/docs/ja/memory)を使用してください。1168Claude Code が新しいセッションを開始するとき、または既存のセッションを再開するときに実行されます。既存の issue やコードベースの最近の変更などの開発コンテキストの読み込みや、環境変数の設定に役立ちます。スクリプトを必要としない静的なコンテキストには、代わりに [CLAUDE.md](/docs/ja/memory) を使用してください。

967 1169 

968SessionStart はすべてのセッションで実行されるため、これらのフックを高速に保ちます。`type: "command"` と `type: "mcp_tool"` フックのみがサポートされています。1170SessionStart はすべてのセッションで実行されるため、これらのフックは高速に保ってください。サポートされているのは `type: "command"` と `type: "mcp_tool"` のフックのみです。`mcp_tool` フックが実行されるタイミングについては、[MCP ツールフックのフィールド](#mcp-tool-hook-fields)を参照してください。

969 1171 

970マッチャー値はセッションがどのように開始されたかに対応しています。1172matcher の値は、セッションがどのように開始されたかに対応します:

971 1173 

972| マッチャー | いつ発火するか |1174| Matcher | 発火するタイミング |

973| :- | :- |1175| :- | :- |

974| `startup` | 新しいセッション |1176| `startup` | 新しいセッション |

975| `resume` | `--resume`、`--continue`、または `/resume` |1177| `resume` | `--resume`、`--continue`、または `/resume` |

976| `clear` | `/clear` |1178| `clear` | `/clear` |

977| `compact` | 自動またはマニュアル コンパクション |1179| `compact` | 自動または手動のコンテキスト圧縮 |

1180| `fork` | 既存のセッションからフォークされた新しいセッション:`--resume` または `--continue` と併用した `--fork-session`、`/fork` のバックグラウンドコピー、`/branch`、または[バックグラウンドに移動](/docs/ja/agent-view#from-inside-a-session)した会話 |

1181 

1182v2.1.214 より前は、フォークされたセッションはソースとして `"resume"` を報告していました。

1183 

1184対話セッションを開始したとき、起動時に `--continue` または `--resume` で会話を再開したとき、または `/clear` を実行したとき、SessionStart フックはバックグラウンドで実行されます。すぐに入力を開始でき、再開した会話はフックを待たずに表示されます。ただし Claude の最初の応答はフックの完了を待つため、フックのコンテキストは Claude に届きます。

1185 

1186セッション内で `/resume` を使って会話を切り替える場合は、代わりに切り替えがフックの完了を待ちます。バックグラウンドのフックがまだ実行中に `/clear` を実行したり別の会話に切り替えたりした場合、フックが返す内容はセッションに一切適用されません。

1187 

1188起動時にも、再開したセッションを含めて同じ待機が適用されます。SessionStart フックの実行中に送信したプロンプトは、フックが完了するまで Claude に届きません。

1189 

1190いずれの待機中も、`Esc` を押すとプロンプトを送信せずに入力欄に戻せます。フックは実行を続けます。

978 1191 

979<h4 id="sessionstart-input">1192<h4 id="sessionstart-input">

980 SessionStart 入力1193 SessionStart の入力

981</h4>1194</h4>

982 1195 

983[共通入力フィールド](#common-input-fields)に加えて、SessionStart フックは `source` と、オプションで `model`、`agent_type`、`session_title` を受け取ります。1196[共通の入力フィールド](#common-input-fields)に加えて、SessionStart フックは `source` と、オプションで `model`、`agent_type`、`session_title` を受け取ります:

1197 

1198| フィールド | 説明 |

1199| :- | :- |

1200| `source` | セッションの開始方法:新しいセッションの場合は `"startup"`、再開したセッションの場合は `"resume"`、`/clear` の後は `"clear"`、コンテキスト圧縮の後は `"compact"`、既存のセッションからフォークされた新しいセッションの場合は `"fork"` |

1201| `model` | アクティブなモデルの識別子。たとえば `/clear` の後や、会話の復旧によってセッションが復元された場合などには省略されることがあるため、読み取る前にフィールドの有無を確認してください |

1202| `agent_type` | エージェント名。`claude --agent <name>` で Claude Code を起動した場合に存在します |

1203| `session_title` | セッションのカスタムタイトル。設定されている場合に存在します。たとえば `--name`、`/rename`、フックの `sessionTitle` 出力、または Agent SDK の `renameSession()` で設定されます。`sessionTitle` を出力するフックは、既存のカスタムタイトルの上書きを避けるために、まずこのフィールドを確認できます |

1204 

1205名前を付けていないセッションでも、[生成されたタイトル](/docs/ja/sessions#name-your-sessions)を持つことがあります。そのタイトルはカスタムタイトルではなく、`session_title` には含まれません。

1206 

1207`source` が `"resume"` または `"fork"` で、トランスクリプトに Claude からの応答が少なくとも 1 つ含まれる場合、SessionStart フックは以下の 4 つのフィールドも受け取ります。フックはこれらを使って、古い会話を再開する際のコストを最初のリクエストの前に報告できます。たとえば [`systemMessage`](#json-output) で報告します。これらのフィールドには Claude Code v2.1.251 以降が必要です。

984 1208 

985| フィールド | 説明 |1209| フィールド | 説明 |

986| :- | :- |1210| :- | :- |

987| `source` | セッションがどのように開始されたか: 新しいセッションの場合は `"startup"`、再開されたセッションの場合は `"resume"`、`/clear` の後は `"clear"`、コンパクション後は `"compact"` |1211| `seconds_since_last_response` | 再開したトランスクリプト内の最後の応答からの経過秒数(実時間) |

988| `model` | アクティブなモデル識別子。例えば `/clear` の後、またはセッションが会話復旧を通じて復元されるときなど、フィールドが省略される可能性があるため、読み取る前にフィールドをチェックしてください |1212| `context_tokens` | 再開したセッションの最初のリクエストがプロンプトとして再送信するトークン数 |

989| `agent_type` | `claude --agent <name>` で Claude Code を開始する場合、エージェント名が存在 |1213| `prompt_cache_likely_expired` | 最後の応答がセッションの[プロンプトキャッシュの有効期間](/docs/ja/prompt-caching#cache-lifetime)より古い場合、またはその後のコンテキスト圧縮によってキャッシュされた会話が置き換えられた場合に `true` |

990| `session_title` | 例えば `--name` または `/rename` 経由で既に設定されている場合、現在のセッション タイトル。`sessionTitle` を発行するフックは、ユーザーが明示的に設定したタイトルを上書きしないように、最初に `session_title` をチェックできます |1214| `estimated_cache_write_usd` | セッションのモデルで `context_tokens` をプロンプトキャッシュに書き込む推定コスト(米ドル)。応答は含みません |

1215 

1216この例は、最後の応答から 90 分後に再開されたセッションの入力を示しています:

991 1217 

992```json theme={null}1218```json theme={null}

993{1219{


995 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",1221 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

996 "cwd": "/Users/...",1222 "cwd": "/Users/...",

997 "hook_event_name": "SessionStart",1223 "hook_event_name": "SessionStart",

998 "source": "startup",1224 "source": "resume",

999 "model": "claude-sonnet-5"1225 "model": "claude-opus-5",

1226 "seconds_since_last_response": 5400,

1227 "context_tokens": 182340,

1228 "prompt_cache_likely_expired": true,

1229 "estimated_cache_write_usd": 1.1396

1000}1230}

1001```1231```

1002 1232 

1003<h4 id="sessionstart-decision-control">1233<h4 id="sessionstart-decision-control">

1004 SessionStart 決定制御1234 SessionStart の決定制御

1005</h4>1235</h4>

1006 1236 

1007フック スクリプトが stdout に出力するテキストは Claude のコンテキストとして追加されます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。1237Claude Code は、[プレーンテキストとして扱う](#exit-code-0) stdout を Claude のコンテキストに追加します。すべてのフックで利用できる [JSON 出力フィールド](#json-output)に加えて、次のイベント固有のフィールドを返すことができます:

1008 1238 

1009| フィールド | 説明 |1239| フィールド | 説明 |

1010| :- | :- |1240| :- | :- |

1011| `additionalContext` | Claude のコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照して、テキストがどのように配信されるか、何を含めるかを確認してください |1241| `additionalContext` | 会話の開始時、最初のプロンプトの前に Claude のコンテキストに追加される文字列。テキストがどのように渡されるか、何を含めるべきかについては [Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1012| `initialUserMessage` | セッションの最初のユーザー メッセージとして使用される文字列。[非対話型モード](/docs/ja/headless)で `-p` フラグで適用され、プロンプトが提供されない場合でも最初のターンになります。プロンプトが提供される場合、次のターンとして続きます。`additionalContext` とは異なり、既存のターンに付加されるのではなく、このターンを作成します |1242| `initialUserMessage` | セッションの最初のユーザーメッセージとして使用される文字列。`-p` フラグを使用した[非対話モード](/docs/ja/headless)で適用され、プロンプトが指定されていなくても最初のターンになります。プロンプトが指定されている場合は、それが次のターンとして続きます。既存のターンに付加される `additionalContext` とは異なり、これはターンそのものを作成します |

1013| `sessionTitle` | セッション タイトルを設定します。`/rename` と同じ効果があります。起動フォルダ、git ブランチ、またはワークツリー名からセッションを自動的に名前付けするのに使用します。`source` が `"startup"` または `"resume"` の場合のみ適用されます。`"clear"` と `"compact"` では無視されます |1243| `sessionTitle` | セッションタイトルを設定します。`/rename` と同じ効果があります。起動フォルダ、git ブランチ、または worktree 名からセッションに自動的に名前を付けるために使用します。`source` が `"startup"`、`"resume"`、または `"fork"` の場合に適用され、`"clear"` と `"compact"` では無視されます |

1014| `watchPaths` | このセッション中に[FileChanged](#filechanged)イベントを監視する絶対パスの配列 |1244| `watchPaths` | このセッション中に [FileChanged](#filechanged) イベントを監視する絶対パスの配列 |

1015| `reloadSkills` | ブール値。`true` の場合、Claude Code は SessionStart フックが完了した後に[スキル](/docs/ja/skills)とコマンド ディレクトリを再スキャンするため、フックがインストールしたスキルは同じセッションで利用可能になり、最初のプロンプトから開始されます |1245| `reloadSkills` | ブール値。`true` の場合、Claude Code は SessionStart フックの完了後に[スキル](/docs/ja/skills)とコマンドのディレクトリを再スキャンするため、フックがインストールしたスキルは最初のプロンプトから同じセッションで利用できます |

1016 1246 

1017```json theme={null}1247```json theme={null}

1018{1248{


1024}1254}

1025```1255```

1026 1256 

1027このイベントではプレーン stdout が既に Claude に到達するため、コンテキストのみをロードするフックは JSON を構築せずに stdout に直接出力できます。`suppressOutput` や `sessionTitle` などの他のフィールドとコンテキストを組み合わせる必要がある場合は JSON 形式を使用します。1257このイベントではプレーンな stdout がすでに Claude に届くため、コンテキストを読み込むだけのフックは JSON を組み立てずに stdout に直接出力できます。コンテキストを `sessionTitle` などの他のフィールドと組み合わせる必要がある場合は、JSON 形式を使用してください。

1028 1258 

1029SessionStart フックがスキルをインストールまたは更新する場合は `reloadSkills` を使用します。スキル検出は通常 SessionStart フックが完了する前に実行されるため、フックが `~/.claude/skills/` または `.claude/skills/` に書き込むファイルは、それ以外の場合は次のセッションにのみ表示されます。この例は共有スキル リポジトリを同期し、再スキャンをリクエストします。1259SessionStart フックがスキルをインストールまたは更新する場合は `reloadSkills` を使用します。スキルの検出は通常 SessionStart フックが完了する前に実行されるため、フックが `~/.claude/skills/` や `.claude/skills/` に書き込んだファイルは、そうしなければ次のセッションでしか利用できません。この例では、共有スキルリポジトリを同期し、再スキャンを要求します:

1030 1260 

1031```bash theme={null}1261```bash theme={null}

1032#!/bin/bash1262#!/bin/bash


1037echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1038```1268```

1039 1269 

1270リポジトリの URL はプレースホルダーです。独自のスキルリポジトリに置き換えてください。プレースホルダーのままではクローンが失敗し、stderr に `fatal:` メッセージが出力されます。終了コード 0 で終了する SessionStart フックの stderr は情報提供のみを目的としているため、`reloadSkills` の要求は引き続き適用されます。

1271 

1040<h4 id="persist-environment-variables">1272<h4 id="persist-environment-variables">

1041 環境変数を永続化1273 環境変数を永続化する

1042</h4>1274</h4>

1043 1275 

1044SessionStart フックは `CLAUDE_ENV_FILE` 環境変数にアクセスでき、後続の Bash コマンド用に環境変数を永続化できるファイル パスを提供します。1276SessionStart フックは `CLAUDE_ENV_FILE` 環境変数にアクセスできます。この変数は、後続の Bash コマンドのために環境変数を永続化できるファイルパスを提供します。

1045 1277 

1046個別の環境変数を設定するには、`export` ステートメントを `CLAUDE_ENV_FILE` に書き込みます。他のフックで設定された変数を保持するには、追加(`>>`)を使用します。1278個々の環境変数を設定するには、`export` 文を `CLAUDE_ENV_FILE` に書き込みます。他のフックが設定した変数を保持するため、追記(`>>`)を使用してください:

1047 1279 

1048```bash theme={null}1280```bash theme={null}

1049#!/bin/bash1281#!/bin/bash


1057exit 01289exit 0

1058```1290```

1059 1291 

1060環境からのすべての変更をキャプチャするには、セットアップ コマンドの前後でエクスポートされた変数を比較します。1292セットアップコマンドによる環境の変更をすべて取得するには、エクスポートされた変数を実行前後で比較します:

1061 1293 

1062```bash theme={null}1294```bash theme={null}

1063#!/bin/bash1295#!/bin/bash

1064 1296 

1065ENV_BEFORE=$(export -p | sort)1297ENV_BEFORE=$(export -p | sort)

1066 1298 

1067# 環境を変更するセットアップ コマンドを実行1299# Run your setup commands that modify the environment

1068source ~/.nvm/nvm.sh1300source ~/.nvm/nvm.sh

1069nvm use 201301nvm use 20

1070 1302 


1076exit 01308exit 0

1077```1309```

1078 1310 

1079このファイルに書き込まれた変数は、セッション中に Claude Code が実行するすべての後続の Bash コマンドで利用可能になります。

1080 

1081<Note>1311<Note>

1082 `CLAUDE_ENV_FILE` は SessionStart、[Setup](#setup)、[CwdChanged](#cwdchanged)、[FileChanged](#filechanged)フックで利用可能です。他のフック タイプはこの変数にアクセスできません。1312 `CLAUDE_ENV_FILE` は SessionStart、[Setup](#setup)、[CwdChanged](#cwdchanged)、[FileChanged](#filechanged) フックで利用できます。その他のフックタイプはこの変数にアクセスできません。

1083</Note>1313</Note>

1084 1314 

1085<h3 id="setup">1315<h3 id="setup">

1086 Setup1316 Setup

1087</h3>1317</h3>

1088 1318 

1089`--init-only` で Claude Code を起動するか、[非対話型モード](/docs/ja/headless)で `-p` フラグを使用して `--init` または `--maintenance` で起動するときのみ発火します。通常のスタートアップでは発火しません。CI またはスクリプトから明示的にトリガーする 1 回限りの依存関係インストールまたはスケジュール済みクリーンアップに使用します。通常のセッション スタートアップとは別です。セッションごとの初期化の場合は、代わりに[SessionStart](#sessionstart)を使用してください。1319Claude Code を `--init-only` で起動した場合、または `-p` フラグを使用した[非対話モード](/docs/ja/headless)で `--init` か `--maintenance` を付けて起動した場合にのみ発火します。通常の起動時には発火しません。通常のセッション開始とは別に、CI やスクリプトから明示的にトリガーする一度限りの依存関係のインストールや定期的なクリーンアップに使用してください。セッションごとの初期化には、代わりに [SessionStart](#sessionstart) を使用してください。

1090 1320 

1091マッチャー値はフックをトリガーした CLI フラグに対応しています。1321matcher の値は、フックをトリガーした CLI フラグに対応します:

1092 1322 

1093| マッチャー | いつ発火するか |1323| Matcher | 発火するタイミング |

1094| :- | :- |1324| :- | :- |

1095| `init` | `claude --init-only` または `claude -p --init` |1325| `init` | `claude --init-only` または `claude -p --init` |

1096| `maintenance` | `claude -p --maintenance` |1326| `maintenance` | `claude -p --maintenance` |

1097 1327 

1098`--init-only` は Setup フックと `startup` マッチャーを持つ SessionStart フックを実行してから、会話を開始せずに終了します。`--init` と `--maintenance` は `-p` と組み合わせた場合のみ Setup フックを発火させます。対話型セッションでは、これら 2 つのフラグは現在 Setup フックを発火させません。1328`claude --init-only` を実行すると、Claude Code は Setup フックと、`startup` matcher を持つ `SessionStart` フックを実行し、会話を開始せずに終了します。

1329 

1330`-p` で会話を開始または続行する場合は、プロンプトも引数として、または stdin へのパイプで指定する必要があります。`SessionStart` フックが [`initialUserMessage`](#sessionstart-decision-control) を提供する場合や、[延期されたツール呼び出し](#defer-a-tool-call-for-later)のあるセッションを再開する場合は、プロンプトを省略できます。

1099 1331 

1100Setup はすべての起動で発火しないため、依存関係がインストールされている必要があるプラグインは Setup のみに依存できません。実用的なパターンは、最初の使用時に依存関係をチェックし、欠落している場合はインストールすることです。例えば、`${CLAUDE_PLUGIN_DATA}/node_modules` をテストし、欠落している場合は `npm install` を実行するフックまたはスキル。永続データ ディレクトリについては、[永続データ ディレクトリ](/docs/ja/plugins-reference#persistent-data-directory)を参照して、インストールされた依存関係を保存する場所を確認してください。1332成功した場合、`--init-only` はターミナルに何も出力しません。フックが実行されたことを確認するには、`<path>` をログファイルの場所に置き換えて `claude --debug-file <path> --init-only` で起動し、ログで Setup と SessionStart のフックのエントリを確認してください。

1333 

1334Setup はすべての起動時に発火するわけではないため、依存関係のインストールを必要とするプラグインは Setup だけに頼ることはできません。実用的なパターンは、初回使用時に依存関係を確認し、見つからなければインストールすることです。たとえば、`${CLAUDE_PLUGIN_DATA}/node_modules` の有無をテストし、存在しなければ `npm install` を実行するフックやスキルです。インストールした依存関係の保存場所については、[永続データディレクトリ](/docs/ja/plugins/components#path-variables-and-persistent-data)を参照してください。マーケットプレイスを通じてプラグインを配布する場合は、このパターンが不要な場合もあります。Claude Code はプラグインをキャッシュする際に[対象となる Node.js パッケージの依存関係を自動的にインストール](/docs/ja/plugins/loading#node-js-package-dependencies)します。

1101 1335 

1102<h4 id="setup-input">1336<h4 id="setup-input">

1103 Setup 入力1337 Setup の入力

1104</h4>1338</h4>

1105 1339 

1106[共通入力フィールド](#common-input-fields)に加えて、Setup フックは `trigger` フィールドを受け取ります。これは `"init"` または `"maintenance"` に設定されます。1340[共通の入力フィールド](#common-input-fields)に加えて、Setup フックは `"init"` または `"maintenance"` のいずれかに設定された `trigger` フィールドを受け取ります:

1107 1341 

1108```json theme={null}1342```json theme={null}

1109{1343{


1116```1350```

1117 1351 

1118<h4 id="setup-decision-control">1352<h4 id="setup-decision-control">

1119 Setup 決定制御1353 Setup の決定制御

1120</h4>1354</h4>

1121 1355 

1122Setup フックはブロックできません。非ゼロ終了コード(2 を含む)は stderr をユーザーに `<hook name> hook error` 通知として表示し、実行は続行されます。[非対話型モード](/docs/ja/headless)では、フック出力は `--verbose` で起動した場合のみ表示されます。1356Setup フックはブロックできません。どの終了コードでも実行は続行されます。Claude Code はどの終了コードでも、`systemMessage`、`continue`、`hookSpecificOutput.additionalContext` などの Setup フックの [JSON 出力フィールド](#json-output)を破棄します。`-p` の場合、Setup フックの stdout、stderr、終了コードは、`--output-format stream-json --verbose` で起動したときにのみ、[`hook_response` イベント](/docs/ja/headless#read-session-metadata)として実行の出力に表示されます。

1123 

1124Claude のコンテキストに情報を渡すには、JSON 出力で `additionalContext` を返します。プレーン stdout はデバッグ ログにのみ書き込まれます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。

1125 

1126| フィールド | 説明 |

1127| :- | :- |

1128| `additionalContext` | Claude のコンテキストに追加される文字列。複数のフックの値は連結されます |

1129 

1130```json theme={null}

1131{

1132 "hookSpecificOutput": {

1133 "hookEventName": "Setup",

1134 "additionalContext": "Dependencies installed: node_modules, .venv"

1135 }

1136}

1137```

1138 1357 

1139Setup フックは `CLAUDE_ENV_FILE` にアクセスできます。そのファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同じように、セッション中の後続の Bash コマンドに永続化されます。`type: "command"` と `type: "mcp_tool"` フックのみがサポートされています。1358Setup フックは `CLAUDE_ENV_FILE` にアクセスできます。このファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同様に、セッションの後続の Bash コマンドに引き継がれます。`Setup` で実行されるのは `type: "command"` フックのみです。`Setup` の `type: "mcp_tool"` フックは、[MCP ツールフックのフィールド](#mcp-tool-hook-fields)で説明しているとおり、常にスキップされます。

1140 1359 

1141<h3 id="instructionsloaded">1360<h3 id="instructionsloaded">

1142 InstructionsLoaded1361 InstructionsLoaded

1143</h3>1362</h3>

1144 1363 

1145`CLAUDE.md` または `.claude/rules/*.md` ファイルがコンテキストにロードされるときに発火します。このイベントはセッション開始時に熱心にロードされたファイルに対して発火し、後で Claude がネストされた `CLAUDE.md` を含むサブディレクトリにアクセスするときなど、遅延ロードされたファイルに対して再度発火します。または `paths:` フロントマターを持つ条件付きルールがマッチするとき。フックはブロッキングまたは決定制御をサポートしません。観測可能性の目的で非同期に実行されます。1364`CLAUDE.md` または `.claude/rules/*.md` ファイルがコンテキストに読み込まれたときに発火します。このイベントは、即時に読み込まれるファイルについてはセッション開始時に発火し、ファイルが遅延読み込みされるときにも後で再び発火します。たとえば、Claude がネストされた `CLAUDE.md` を含むサブディレクトリにアクセスしたときや、`paths:` フロントマターを持つ条件付きルールが一致したときです。このフックはブロックや決定制御をサポートしていません。可観測性のために非同期で実行されます。

1365 

1366このイベントは、Claude が **Project instructions** 設定を通じて [`AGENTS.md` を直接読み込む](/docs/ja/memory#agents-md)場合には発火しません。`CLAUDE.md` が `AGENTS.md` をインポートする場合は、他のインポートされたファイルと同様に `load_reason` が `include` に設定されて発火し、`CLAUDE.md` が `AGENTS.md` へのシンボリックリンクである場合は、通常の `CLAUDE.md` の読み込みとして発火します。

1146 1367 

1147マッチャーは `load_reason` に対して実行されます。例えば、`"matcher": "session_start"` を使用してセッション開始時にロードされたファイルのみに対して発火するか、`"matcher": "path_glob_match|nested_traversal"` を使用して遅延ロードのみに対して発火します。1368matcher は `load_reason` に対して照合されます。たとえば、セッション開始時に読み込まれたファイルに対してのみ発火させるには `"matcher": "session_start"` を、遅延読み込みに対してのみ発火させるには `"matcher": "path_glob_match|nested_traversal"` を使用します。

1148 1369 

1149<h4 id="instructionsloaded-input">1370<h4 id="instructionsloaded-input">

1150 InstructionsLoaded 入力1371 InstructionsLoaded の入力

1151</h4>1372</h4>

1152 1373 

1153[共通入力フィールド](#common-input-fields)に加えて、InstructionsLoaded フックはこれらのフィールドを受け取ります。1374[共通の入力フィールド](#common-input-fields)に加えて、InstructionsLoaded フックは次のフィールドを受け取ります:

1154 1375 

1155| フィールド | 説明 |1376| フィールド | 説明 |

1156| :- | :- |1377| :- | :- |

1157| `file_path` | ロードされた命令ファイルへの絶対パス |1378| `file_path` | 読み込まれた指示ファイルの絶対パス |

1158| `memory_type` | ファイルのスコープ: `"User"`、`"Project"`、`"Local"`、または `"Managed"` |1379| `memory_type` | ファイルのスコープ:`"User"`、`"Project"`、`"Local"`、または `"Managed"` |

1159| `load_reason` | ファイルがロードされた理由: `"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"`、または `"compact"`。`"compact"` 値はコンパクション イベント後に命令ファイルが再ロードされるときに発火します |1380| `load_reason` | ファイルが読み込まれた理由:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"`、または `"compact"`。`"compact"` の値は、コンテキスト圧縮イベントの後に指示ファイルが再読み込みされたときに発火します |

1160| `globs` | ファイルの `paths:` フロントマターからのパス グロブ パターン(存在する場合)。`path_glob_match` ロードの場合のみ存在 |1381| `globs` | ファイルの `paths:` フロントマターにあるパスの glob パターン(存在する場合)。`path_glob_match` の読み込みでのみ存在します |

1161| `trigger_file_path` | 遅延ロードの場合、このロードをトリガーしたファイルへのパス |1382| `trigger_file_path` | 遅延読み込みの場合、この読み込みのきっかけとなったアクセス先のファイルのパス |

1162| `parent_file_path` | `include` ロードの場合、このファイルを含む親命令ファイルへのパス |1383| `parent_file_path` | `include` の読み込みの場合、このファイルをインクルードした親の指示ファイルのパス |

1163 1384 

1164```json theme={null}1385```json theme={null}

1165{1386{


1174```1395```

1175 1396 

1176<h4 id="instructionsloaded-decision-control">1397<h4 id="instructionsloaded-decision-control">

1177 InstructionsLoaded 決定制御1398 InstructionsLoaded の決定制御

1178</h4>1399</h4>

1179 1400 

1180InstructionsLoaded フックは決定制御がありません。命令ロードをブロックまたは変更できません。このイベントを監査ログ、コンプライアンス追跡、または観測可能性に使用します。1401InstructionsLoaded フックには決定制御がありません。指示の読み込みをブロックしたり変更したりすることはできません。Claude Code は `systemMessage` や `continue` などの [JSON 出力フィールド](#json-output)を破棄します。このイベントは、監査ログ、コンプライアンスの追跡、可観測性のために使用してください。

1181 1402 

1182<h3 id="userpromptsubmit">1403<h3 id="userpromptsubmit">

1183 UserPromptSubmit1404 UserPromptSubmit

1184</h3>1405</h3>

1185 1406 

1186ユーザーがプロンプトを送信するときに実行されます。Claude がそれを処理する前に。これにより、プロンプト/会話に基づいて追加コンテキストを追加したり、プロンプトを検証したり、特定のタイプのプロンプトをブロックしたりできます。1407ユーザーがプロンプトを送信したとき、Claude がそれを処理する前に実行されます。これにより、プロンプトや会話に基づいて追加のコンテキストを加えたり、プロンプトを検証したり、特定の種類のプロンプトをブロックしたりできます。

1187 1408 

1188`UserPromptSubmit` フックは `command`、`http`、`mcp_tool` タイプのデフォルト タイムアウトが 30 秒で、他のイベントでのこれらのタイプの 600 秒のデフォルトより短くなっています。このフックはすべてのプロンプトの前に実行され、モデル処理がそれが完了するまでブロックされるため、スタックしたフックはセッションを停止させます。フックにより多くの時間が必要な場合は、フック エントリで `timeout` フィールドを設定します。1409`UserPromptSubmit` フックのデフォルトのタイムアウトは、`command`、`http`、`mcp_tool` タイプで 30 秒です。これは、他のほとんどのイベントにおけるこれらのタイプのデフォルトである 600 秒より短くなっています。このフックはすべてのプロンプトの前に実行され、完了するまでモデルの処理をブロックするため、フックが停止するとセッションが止まってしまいます。フックにより長い時間が必要な場合は、フックエントリで `timeout` フィールドを設定してください。

1189 1410 

1190タイムアウトに達した `UserPromptSubmit` フックはキャンセルされ、`additionalContext` を含むその出力は破棄されます。プロンプトは引き続き Claude に到達しますが、そのコンテキストなしで。v2.1.196 以降では、トランスクリプトはフックの名前、発火したタイムアウト、出力が破棄されたことを示す通知を表示します。以前のバージョンはフックを通知なしでキャンセルします。1411[`async: true`](#run-hooks-in-the-background) で実行するコマンドフックを除き、タイムアウトに達した `UserPromptSubmit` のコマンド、HTTP、または MCP ツールのフックはキャンセルされ、`additionalContext` を含むその出力は破棄されます。プロンプトはそのコンテキストなしで Claude に届きます。トランスクリプトには、フック名、発生したタイムアウト、および出力が破棄されたことを示す通知が表示されます。

1191 1412 

1192[Agent SDK コールバック フック](/docs/ja/agent-sdk/hooks)が `UserPromptSubmit` でタイムアウトに達した場合、プロンプトをブロックします。フックの名前とタイムアウトを示すメッセージが表示されます。コールバックはそこで失敗してはいけないポリシー ゲートとして機能する可能性があるためです。セッションは続行されます。v2.1.208 より前では、コールバック タイムアウトはそのイベントでターンを実行エラーで終了させました。1413タイムアウトに達した `UserPromptSubmit` の [Agent SDK コールバックフック](/docs/ja/agent-sdk/hooks)は、フック名とタイムアウトを示すメッセージとともにプロンプトをブロックします。これは、このイベントのコールバックが、フェイルオープンしてはならないポリシーゲートとして機能している可能性があるためです。セッションは継続します。v2.1.208 より前は、このイベントでのコールバックのタイムアウトは実行エラーとしてターンを終了させていました。

1193 1414 

1194<h4 id="userpromptsubmit-input">1415<h4 id="userpromptsubmit-input">

1195 UserPromptSubmit 入力1416 UserPromptSubmit の入力

1196</h4>1417</h4>

1197 1418 

1198[共通入力フィールド](#common-input-fields)に加えて、UserPromptSubmit フックはユーザーが送信したテキストを含む `prompt` フィールドを受け取ります。1419[共通の入力フィールド](#common-input-fields)に加えて、UserPromptSubmit フックはユーザーが送信したテキストを含む `prompt` フィールドを受け取ります。`[Pasted text #N]` プレースホルダーに折りたたまれた貼り付けコンテンツは、その場で展開された状態で届きます。Claude Code が[貼り付けたテキストを Claude 向けにマークする](/docs/ja/terminal-config#how-claude-treats-pasted-text)セッションでは、展開されたコンテンツは `<pasted_content id="…">` の行と `</pasted_content id="…">` の行の間に置かれるため、フックがプロンプトを解析する場合はこれらの行を考慮してください。

1420 

1421UserPromptSubmit フックは、セッションにカスタムタイトルがある場合、`session_title` も受け取ります。意味は [SessionStart の `session_title` フィールド](#sessionstart-input)と同じです。

1199 1422 

1200```json theme={null}1423```json theme={null}

1201{1424{


1209```1432```

1210 1433 

1211<h4 id="userpromptsubmit-decision-control">1434<h4 id="userpromptsubmit-decision-control">

1212 UserPromptSubmit 決定制御1435 UserPromptSubmit の決定制御

1213</h4>1436</h4>

1214 1437 

1215`UserPromptSubmit` フックは、ユーザー プロンプトが処理されるかどうかを制御し、コンテキストを追加できます。すべての[JSON 出力フィールド](#json-output)が利用可能です。1438`UserPromptSubmit` フックは、ユーザーのプロンプトを処理するかどうかを制御し、コンテキストを追加できます。すべての [JSON 出力フィールド](#json-output)を利用できます。

1216 1439 

1217終了コード 0 で会話にコンテキストを追加する 2 つの方法があります。1440終了コード 0 で会話にコンテキストを追加する方法は 2 つあります:

1218 1441 

1219* **プレーン テキスト stdout**: stdout に書き込まれた JSON 以外のテキストはコンテキストとして追加されます1442* **プレーンテキストの stdout**:Claude Code は、[プレーンテキストとして扱う](#exit-code-0) stdout を Claude のコンテキストに追加します

1220* **`additionalContext` を含む JSON**: より多くの制御のために以下の JSON 形式を使用します。`additionalContext` フィールドはコンテキストとして追加されます1443* **`additionalContext` を含む JSON**:より細かく制御するには、以下の JSON 形式を使用します。`additionalContext` フィールドがコンテキストとして追加されます

1221 1444 

1222プレーン stdout はトランスクリプトのフック出力として表示されます。`additionalContext` 値は Claude が見える通知なしで読むシステム リマインダーとして注入されます。1445どちらの方法でも、トランスクリプトに表示されるエントリは作成されません。プレーンな stdout と `additionalContext` の値は、それぞれフック名で始まるシステムリマインダーとして注入され、Claude は両方を読み取ります。配信を確認するには、[デバッグログ](#debug-hooks)を確認してください。

1223 1446 

1224プロンプトをブロックするには、`decision` を `"block"` に設定した JSON オブジェクトを返します。1447プロンプトをブロックするには、`decision` を `"block"` に設定した JSON オブジェクトを返します:

1225 1448 

1226| フィールド | 説明 |1449| フィールド | 説明 |

1227| :- | :- |1450| :- | :- |

1228| `decision` | `"block"` はプロンプトが処理されるのを防ぎ、コンテキストから消去します。許可するには省略 |1451| `decision` | `"block"` は、プロンプトが Claude に届く前に停止します。プロンプトを続行させるには省略します |

1229| `reason` | `decision` が `"block"` のときにユーザーに表示されます。コンテキストに追加されません |1452| `reason` | `decision` が `"block"` の場合にユーザーに表示されます。コンテキストには追加されません |

1230| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1453| `additionalContext` | 送信されたプロンプトとともに Claude のコンテキストに追加される文字列。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1231| `sessionTitle` | セッション タイトルを設定します。プロンプト コンテンツに基づいてセッションを自動的に名前付けするのに使用 |1454| `sessionTitle` | セッションタイトルを設定します。プロンプトの内容に基づいてセッションに自動的に名前を付けるために使用します |

1232| `suppressOriginalPrompt` | `decision` が `"block"` のときに `true` の場合、ユーザーに表示されるブロック メッセージから元のプロンプト テキストを省略 |1455| `suppressOriginalPrompt` | フックがプロンプトをブロックするときに `true` の場合、ブロックメッセージからプロンプトのテキストを除外します。[ブロックされたプロンプトが残すもの](#what-a-blocked-prompt-leaves-behind)を参照してください |

1456 

1457終了コード 2 で終了してブロックするフックは、`reason` と同じように扱われます。ブロックメッセージは stderr のテキストをユーザーに表示し、コンテキストには追加されません。

1233 1458 

1234```json theme={null}1459```json theme={null}

1235{1460{


1238 "hookSpecificOutput": {1463 "hookSpecificOutput": {

1239 "hookEventName": "UserPromptSubmit",1464 "hookEventName": "UserPromptSubmit",

1240 "additionalContext": "My additional context here",1465 "additionalContext": "My additional context here",

1241 "sessionTitle": "My session title"1466 "sessionTitle": "My session title",

1467 "suppressOriginalPrompt": true

1242 }1468 }

1243}1469}

1244```1470```

1245 1471 

1472<h4 id="what-a-blocked-prompt-leaves-behind">

1473 ブロックされたプロンプトが残すもの

1474</h4>

1475 

1476ブロックされたプロンプトが Claude に届くことはありませんが、そのテキストがすべての場所から削除されるわけではありません。デフォルトでは、ユーザーに表示されるブロックメッセージは `Original prompt:` と送信されたテキストで終わり、Claude Code はそのメッセージをディスク上のセッションのトランスクリプトファイルに書き込みます。メッセージからテキストを除外するには、`hookSpecificOutput` 内に `"suppressOriginalPrompt": true` を含む JSON を出力します。これは、フックが `decision: "block"` でブロックする場合でも、終了コード 2 で終了する場合でも機能します。JSON を出力しない終了コード 2 のフックでは、ブロックメッセージに常にプロンプトのテキストが含まれます。

1477 

1478`suppressOriginalPrompt` が変更するのはブロックメッセージだけです。送信されたテキストは、セッションのトランスクリプトやプロンプト履歴などのローカルファイルに引き続き残る可能性があるため、ブロックするフックはシークレットをディスクに残さないための手段にはなりません。これらのファイルを制限または削除するには、[平文での保存](/docs/ja/claude-directory#plaintext-storage)と[ローカルデータの消去](/docs/ja/claude-directory#clear-local-data)を参照してください。

1479 

1246<h3 id="userpromptexpansion">1480<h3 id="userpromptexpansion">

1247 UserPromptExpansion1481 UserPromptExpansion

1248</h3>1482</h3>

1249 1483 

1250ユーザーが入力したコマンドが Claude に到達する前にプロンプトに展開されるときに実行されます。特定のコマンドを直接呼び出しからブロックしたり、特定のスキルのコンテキストを注入したり、ユーザーが呼び出すコマンドをログしたりするのに使用します。例えば、`deploy` にマッチするフックは、承認ファイルが存在しない限り `/deploy` をブロックできます。または、レビュー スキルにマッチするフックはチームのレビュー チェックリストを `additionalContext` として追加できます。1484ユーザーが入力したコマンドが、Claude に届く前にプロンプトに展開されるときに実行されます。特定のコマンドの直接呼び出しをブロックしたり、特定のスキルにコンテキストを注入したり、ユーザーが呼び出すコマンドをログに記録したりするために使用します。たとえば、`deploy` に一致するフックは承認ファイルが存在しない限り `/deploy` をブロックでき、レビュースキルに一致するフックはチームのレビューチェックリストを `additionalContext` として追加できます。

1251 1485 

1252このイベントは `PreToolUse` がカバーしないパスをカバーします。`PreToolUse` フックが `Skill` ツールにマッチするのは Claude がツールを呼び出すときのみですが、`/skillname` を直接入力すると `PreToolUse` をバイパスします。`UserPromptExpansion` はその直接パスで発火します。1486このイベントは、`PreToolUse` がカバーしない経路をカバーします。`Skill` ツールに一致する `PreToolUse` フックは Claude がツールを呼び出したときにのみ発火しますが、`/skillname` を直接入力すると `PreToolUse` を経由しません。`UserPromptExpansion` はその直接の経路で発火します。

1253 1487 

1254`command_name` でマッチします。マッチャーを空のままにして、すべてのプロンプト タイプのコマンドで発火します。1488`command_name` で照合します。すべてのプロンプトタイプのコマンドで発火させるには、matcher を空のままにします。

1255 1489 

1256<h4 id="userpromptexpansion-input">1490<h4 id="userpromptexpansion-input">

1257 UserPromptExpansion 入力1491 UserPromptExpansion の入力

1258</h4>1492</h4>

1259 1493 

1260[共通入力フィールド](#common-input-fields)に加えて、UserPromptExpansion フックは `expansion_type`、`command_name`、`command_args`、`command_source`、および元の `prompt` 文字列を受け取ります。`expansion_type` フィールドはスキルとカスタム コマンドの場合は `slash_command`、MCP サーバー プロンプトの場合は `mcp_prompt` です。1494[共通の入力フィールド](#common-input-fields)に加えて、UserPromptExpansion フックは `expansion_type`、`command_name`、`command_args`、`command_source`、および元の `prompt` 文字列を受け取ります。`expansion_type` フィールドは、スキルとカスタムコマンドの場合は `slash_command`、MCP サーバーのプロンプトの場合は `mcp_prompt` です。

1261 1495 

1262```json theme={null}1496```json theme={null}

1263{1497{


1275```1509```

1276 1510 

1277<h4 id="userpromptexpansion-decision-control">1511<h4 id="userpromptexpansion-decision-control">

1278 UserPromptExpansion 決定制御1512 UserPromptExpansion の決定制御

1279</h4>1513</h4>

1280 1514 

1281`UserPromptExpansion` フックは展開をブロックするか、コンテキストを追加できます。すべての[JSON 出力フィールド](#json-output)が利用可能です。1515`UserPromptExpansion` フックは、展開をブロックしたりコンテキストを追加したりできます。すべての [JSON 出力フィールド](#json-output)を利用できます。

1282 1516 

1283| フィールド | 説明 |1517| フィールド | 説明 |

1284| :- | :- |1518| :- | :- |

1285| `decision` | `"block"` はコマンドが展開されるのを防止。許可するには省略 |1519| `decision` | `"block"` はコマンドの展開を防ぎます。続行させるには省略します |

1286| `reason` | `decision` が `"block"` のときにユーザーに表示されます |1520| `reason` | `decision` が `"block"` の場合にユーザーに表示されます |

1287| `additionalContext` | 展開されたプロンプトと一緒に Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1521| `additionalContext` | 展開されたプロンプトとともに Claude のコンテキストに追加される文字列。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1522 

1523終了コード 2 で終了してブロックするフックは、`reason` と同じように扱われます。ブロックメッセージは stderr のテキストをユーザーに表示します。

1288 1524 

1289```json theme={null}1525```json theme={null}

1290{1526{


1301 MessageDisplay1537 MessageDisplay

1302</h3>1538</h3>

1303 1539 

1304アシスタント メッセージが画面にストリーミングされている間に実行されます。Claude Code はメッセージを増分で表示します。新しく完了した行のバッチがレンダリング準備ができるたびに、フックはそれらの行で 1 回実行され、Claude Code はフックの置換テキストをその場所にレンダリングします。長いメッセージは複数の呼び出しを生成します。短いメッセージは 1 つだけ生成する可能性があります。1540アシスタントメッセージが画面にストリーミングされている間に実行されます。Claude Code はメッセージを段階的に表示します。新たに完成した行のバッチがレンダリングできる状態になるたびに、フックはその行を受け取って 1 回実行され、Claude Code はフックが返した置換テキストをその場所にレンダリングします。長いメッセージでは複数回の呼び出しが発生し、短いメッセージでは 1 回だけの場合もあります。

1305 1541 

1306MessageDisplay を使用して以下を実行します。1542MessageDisplay は次の用途に使用できます:

1307 1543 

1308* マークダウンを削除して最小限の表示にする1544* 最小限の表示にするために markdown を取り除く

1309* エージェント SDK アプリケーションがユーザーに表示するテキストを変換する1545* Agent SDK アプリケーションがユーザーに表示するテキストを変換する

1310* Claude の応答から API キーまたは内部ホスト名を編集する1546* Claude の応答から API キーや内部ホスト名を伏せる

1311 1547 

1312Claude Code は各バッチをフックが返されるまで保持するため、フックを高速に保ちます。フックが失敗またはタイムアウトした場合、Claude Code は元のテキストを表示します。このイベントのデフォルト タイムアウトは 10 秒です。フックにより多くの時間が必要な場合は、フック エントリで `timeout` フィールドを設定します。1548Claude Code はフックが返るまで各バッチを保持するため、フックは高速に保ってください。フックが失敗またはタイムアウトした場合、Claude Code は元のテキストを表示します。このイベントのデフォルトのタイムアウトは 10 秒です。フックにより長い時間が必要な場合は、フックエントリで `timeout` フィールドを設定してください。

1313 1549 

1314MessageDisplay は表示のみです。置換テキストは画面にレンダリングされるものだけを変更します。トランスクリプトと Claude が見るものは元のテキストを保持するため、Claude は置換を見ず、詳細モードは元のテキストを表示します。フックはアシスタント メッセージ テキストのみを受け取るため、ツール結果とユーザーが入力したテキストは変更されずにレンダリングされます。1550MessageDisplay は表示専用です。置換テキストは画面にレンダリングされる内容だけを変更します。トランスクリプトと Claude が参照する内容は元のテキストのままなので、Claude が置換テキストを目にすることはなく、verbose モードでは元のテキストが表示されます。フックが受け取るのはアシスタントメッセージのテキストのみなので、ツールの結果やユーザーが入力したテキストは変更されずにレンダリングされます。

1315 1551 

1316MessageDisplay はマッチャーをサポートせず、テキストをストリーミングするすべてのアシスタント メッセージに対して発火します。テキストなしのメッセージ(ツール呼び出しのみの応答など)はそれをトリガーしません。1552MessageDisplay は matcher をサポートしておらず、テキストをストリーミングするすべてのアシスタントメッセージで発火します。ツール呼び出しのみの応答など、テキストを含まないメッセージではトリガーされません。

1317 1553 

1318非対話型実行(Agent SDK クエリと `claude -p` を含む)では、MessageDisplay はメッセージごとに行のバッチごとに 1 回ではなく 1 回実行されます。単一の呼び出しはメッセージが完了した後に到着し、完全なメッセージ テキストを含みます。`index` は `0`、`final` は `true`、`delta` は全体メッセージを保持します。各メッセージの `delta` テキストを収集するフックは、両方のモードで同じ合計テキストを受け取ります。1554Agent SDK のクエリや `claude -p` を含む非対話の実行では、MessageDisplay は行のバッチごとではなく、アシスタントメッセージごとに 1 回実行されます。この 1 回の呼び出しはメッセージの完了後に届き、メッセージの全文を含みます。`index` は `0`、`final` は `true` で、`delta` にはメッセージ全体が含まれます。各メッセージの `delta` テキストを収集するフックは、どちらのモードでも同じ合計テキストを受け取ります。

1319 1555 

1320<h4 id="messagedisplay-input">1556<h4 id="messagedisplay-input">

1321 MessageDisplay 入力1557 MessageDisplay の入力

1322</h4>1558</h4>

1323 1559 

1324[共通入力フィールド](#common-input-fields)に加えて、MessageDisplay フックはターンとメッセージの識別子、この呼び出しのメッセージ内での位置、および `delta` の新しいテキストを受け取ります。バッチ境界はテキストがどのようにストリーミングされるかに依存するため、行が特定の方法でグループ化されることを期待するのではなく、`index` と `final` を使用してメッセージを通じた進行状況を追跡します。1560[共通の入力フィールド](#common-input-fields)に加えて、MessageDisplay フックは、ターンとメッセージの識別子、メッセージ内でのこの呼び出しの位置、および `delta` 内の新しいテキストを受け取ります。バッチの境界はテキストのストリーミング方法によって異なるため、行が特定の方法でグループ化されることを前提とせず、`index` と `final` を使用してメッセージの進行状況を追跡してください。

1325 1561 

1326| フィールド | 説明 |1562| フィールド | 説明 |

1327| :- | :- |1563| :- | :- |

1328| `turn_id` | 現在のターンの UUID |1564| `turn_id` | 現在のターンの UUID |

1329| `message_id` | 表示されるアシスタント メッセージの UUID。メッセージの同じバッチ全体で安定しています。これは API `msg_…` id ではないため、トランスクリプト メッセージ id と相関させることはできません |1565| `message_id` | 表示中のアシスタントメッセージの UUID。同じメッセージのすべてのバッチで一定です。これは API の `msg_…` ID ではないため、トランスクリプトのメッセージ ID と関連付けることはできません |

1330| `index` | メッセージ内のこのバッチのゼロベースのインデックス |1566| `index` | メッセージ内でのこのバッチの 0 から始まるインデックス |

1331| `final` | メッセージの最後のバッチで `true`。各メッセージは正確に 1 つの最終バッチを持ちます |1567| `final` | メッセージの最後のバッチで `true`。各メッセージには最終バッチが 1 つだけあります |

1332| `delta` | 前のバッチ以降の新しく完了した行。終了改行を含みます。常に完全な行です。ただし、最終バッチは行の途中で終わる可能性があります。対話型実行では、メッセージが改行で終わるときの最終バッチの delta は空なので、`final` ではなく、メッセージの終了信号として `final` を処理します。Agent SDK と `claude -p` 実行では、単一の呼び出しが全体メッセージを含みます |1568| `delta` | 前のバッチ以降に新たに完成した行(終端の改行を含む)。常に行全体ですが、最終バッチだけは行の途中で終わることがあります。対話的な実行では、メッセージが改行で終わる場合、最終バッチの delta は空になるため、空でない delta ではなく `final` をメッセージ終了のシグナルとして扱ってください。Agent SDK と `claude -p` の実行では、1 回の呼び出しでメッセージ全体が渡されます |

1333 1569 

1334```json theme={null}1570```json theme={null}

1335{1571{


1346```1582```

1347 1583 

1348<h4 id="messagedisplay-output">1584<h4 id="messagedisplay-output">

1349 MessageDisplay 出力1585 MessageDisplay の出力

1350</h4>1586</h4>

1351 1587 

1352すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、MessageDisplay フックは `displayContent` を返して画面上の delta を置き換えることができます。1588すべてのフックで利用できる [JSON 出力フィールド](#json-output)に加えて、MessageDisplay フックは `displayContent` を返して画面上の delta を置き換えることができます:

1353 1589 

1354| フィールド | 説明 |1590| フィールド | 説明 |

1355| :- | :- |1591| :- | :- |

1356| `displayContent` | delta の代わりに表示されるテキスト。元のテキストを表示するには省略 |1592| `displayContent` | delta の代わりに表示されるテキスト。元のテキストを表示するには省略します |

1357 1593 

1358MessageDisplay フックは決定制御がありません。メッセージをブロックしたり、トランスクリプトに保存されたもの、または Claude に送信されたものを変更することはできません。1594MessageDisplay フックには決定制御がありません。メッセージをブロックしたり、トランスクリプトに保存される内容や Claude に送信される内容を変更したりすることはできません。Claude Code は JSON 出力のうち `displayContent` に基づいて動作し、`systemMessage` と `continue` は破棄します。

1359 1595 

1360この例は Claude の応答からマークダウン フォーマットを削除して、プレーン テキスト表示を行います。スクリプトは stdin から各バッチを読み取り、`delta` から太字マーカーとインライン コード バッククォートを削除し、結果を `displayContent` として返します。1596この例では、プレーンテキストで表示するために Claude の応答から markdown の書式を取り除きます。スクリプトは stdin から各バッチを読み取り、`delta` から太字のマーカーとインラインコードのバッククォートを削除して、結果を `displayContent` として返します。

1361 1597 

1362<Tabs>1598<Tabs>

1363 <Tab title="macOS/Linux">1599 <Tab title="macOS/Linux">

1364 設定ファイルでイベントのコマンド フックを登録します。1600 設定ファイルでこのイベントのコマンドフックを登録します:

1365 1601 

1366 ```json theme={null}1602 ```json theme={null}

1367 {1603 {


1381 }1617 }

1382 ```1618 ```

1383 1619 

1384 このスクリプトをプロジェクトの `.claude/hooks/plain-display.sh` に保存し、`chmod +x` で実行可能にします。1620 このスクリプトをプロジェクトの `.claude/hooks/plain-display.sh` に保存し、`chmod +x` で実行可能にします:

1385 1621 

1386 ```bash theme={null}1622 ```bash theme={null}

1387 #!/bin/bash1623 #!/bin/bash

1388 jq '{hookSpecificOutput: {hookEventName: "MessageDisplay", displayContent: (.delta | gsub("\\*\\*"; "") | gsub("`"; ""))}}'1624 jq '{hookSpecificOutput: {hookEventName: "MessageDisplay", displayContent: (.delta | gsub("\\*\\*"; "") | gsub("`"; ""))}}'

1389 ```1625 ```

1390 

1391 スクリプトは `PATH` に `jq` が必要です。

1392 </Tab>1626 </Tab>

1393 1627 

1394 <Tab title="Windows (PowerShell)">1628 <Tab title="Windows (PowerShell)">

1395 PowerShell 経由でスクリプトを実行するコマンド フックを登録します。1629 PowerShell を通じてスクリプトを実行するコマンドフックを登録します:

1396 1630 

1397 ```json theme={null}1631 ```json theme={null}

1398 {1632 {


1418 }1652 }

1419 ```1653 ```

1420 1654 

1421 `-NoProfile` フラグは PowerShell プロファイルのロードをスキップしてフックを高速に開始し、`-ExecutionPolicy Bypass` は PowerShell がローカル スクリプト ファイルを実行できるようにします。1655 `-NoProfile` フラグは PowerShell プロファイルの読み込みをスキップしてフックを素早く起動させ、`-ExecutionPolicy Bypass` は PowerShell がローカルのスクリプトファイルを実行できるようにします。

1422 1656 

1423 このスクリプトをプロジェクトの `.claude/hooks/plain-display.ps1` に保存します。1657 このスクリプトをプロジェクトの `.claude/hooks/plain-display.ps1` に保存します:

1424 1658 

1425 ```powershell theme={null}1659 ```powershell theme={null}

1426 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1660 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1435 </Tab>1669 </Tab>

1436</Tabs>1670</Tabs>

1437 1671 

1438マークダウンなしのバッチは変更されずに通過します。スクリプトが失敗した場合(例えば、`jq` が欠落している場合)、Claude Code は元のテキストを表示し、セッションではなく[デバッグ出力](#debug-hooks)でのみ失敗を記録します。1672markdown を含まないバッチは変更されずにそのまま渡されます。たとえば `jq` がないためにスクリプトが失敗した場合、Claude Code は元のテキストを表示し、失敗はセッション内ではなく[デバッグ出力](#debug-hooks)にのみ記録されます。

1439 1673 

1440<h3 id="pretooluse">1674<h3 id="pretooluse">

1441 PreToolUse1675 PreToolUse

1442</h3>1676</h3>

1443 1677 

1444Claude がツール パラメーターを作成した後、ツール呼び出しを処理する前に実行されます。ツール名でマッチします。`Bash`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`WebFetch`、`WebSearch`、`AskUserQuestion`、`ExitPlanMode`、および任意の[MCP ツール名](#match-mcp-tools)。1678Claude がツールのパラメーターを作成した後、ツール呼び出しを処理する前に実行されます。`EndConversation` を除く任意のツール名に一致します。対象には、`Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion`、`ExitPlanMode` などの組み込みツールと、任意の [MCP ツール名](#match-mcp-tools)が含まれます。

1679 

1680何が書き込んだかにかかわらず、特定のファイルがディスク上で変更されたときにフックを実行するには、ファイル編集ツールを名前で照合するのではなく [FileChanged](#filechanged) を使用してください。PreToolUse とは異なり、Claude Code は FileChanged フックを変更後に実行し、決定制御もないため、書き込みをブロックすることはできません。

1445 1681 

1446<Warning>1682<Warning>

1447 PreToolUse は Claude がツールを呼び出すときのみ実行されます。[プロンプトで `@` を使用して参照する](/docs/ja/common-workflows#reference-files-and-directories)ファイルは、ツール呼び出しなしで追加されます。Claude Code はプロンプトを構築しながらそれらのコンテンツを挿入するため、`Read` にマッチするフックを含む PreToolUse フックは発火しません。特定のパスを `@` 参照からブロックするには、代わりに[`Read` 拒否ルール](/docs/ja/permissions#read-and-edit)を使用してください。1683 PreToolUse は Claude がツールを呼び出したときにのみ実行されます。[プロンプト内で `@` を使って参照した](/docs/ja/common-workflows#reference-files-and-directories)ファイルは、ツール呼び出しなしで追加されます。Claude Code はプロンプトの構築中にその内容を挿入するため、`Read` に一致するフックを含め、PreToolUse フックは一切発火しません。`@` 参照から特定のパスをブロックするには、代わりに [`Read` の拒否ルール](/docs/ja/permissions#read-and-edit)を使用してください。

1684 

1685 PreToolUse は [`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior) に対しても発火しません。

1448</Warning>1686</Warning>

1449 1687 

1450[PreToolUse 決定制御](#pretooluse-decision-control)を使用して、ツール呼び出しを許可、拒否、質問、または遅延します。1688ツール呼び出しを許可、拒否、確認、または延期するには、[PreToolUse の決定制御](#pretooluse-decision-control)を使用します。

1689 

1690タイムアウトを超えた `PreToolUse` の [Agent SDK コールバックフック](/docs/ja/agent-sdk/hooks)はツール呼び出しをブロックし、Claude はタイムアウトを示すエラー結果を受け取ります。他のフックが返した明示的な拒否は引き続き優先されます。

1451 1691 

1452<h4 id="pretooluse-input">1692<h4 id="pretooluse-input">

1453 PreToolUse 入力1693 PreToolUse の入力

1454</h4>1694</h4>

1455 1695 

1456[共通入力フィールド](#common-input-fields)に加えて、PreToolUse フックは `tool_name`、`tool_input`、`tool_use_id` を受け取ります。`tool_input` フィールドはツールに依存します。1696[共通の入力フィールド](#common-input-fields)に加えて、PreToolUse フックは `tool_name`、`tool_input`、`tool_use_id` を受け取ります。

1697 

1698[MCP ツール](#match-mcp-tools)の場合、入力には `mcp_server` も含まれます。これは、サーバーの `name` と、サーバーの定義がどこから来たかを示す `source` を持つオブジェクトです。`source` の値には、`plugin`、`sdk`、および `user` や `project` などの設定スコープが含まれます。Agent SDK リファレンスの [`McpServerProvenance`](/docs/ja/agent-sdk/typescript#mcpserverprovenance) にはすべての値が記載されており、認識できない値の扱い方も説明されています。信頼の判断は、`name` や `mcp__<server>__` というツール名のプレフィックスではなく、`source` に基づいて行ってください。`mcp_server` フィールドには Claude Code v2.1.274 以降が必要です。

1699 

1700ファイルツール `Write`、`Edit`、`Read` では、`tool_input.file_path` は常に絶対パスです:

1701 

1702* Claude Code はフックの実行前に `~` と相対パスを展開するため、パスで照合するフックが `~` や同じパスの相対表記によって回避されることはありません

1703* Windows では、`$PWD` が `/c/project` のように見える Git Bash でフックを実行する場合でも、パスはバックスラッシュ区切りで届きます

1704* `/src/` のチェックなど、スラッシュで記述された比較はバックスラッシュのパスには一致せず、ツール呼び出しはフックがブロックする対象がなかったかのように続行されます

1705* 比較する前に区切り文字を正規化してください。Bash では `FILE_PATH="${FILE_PATH//\\//}"`、Python では `file_path.replace("\\", "/")` を使用します。その後、パスは絶対パスなので、`^` で先頭に固定するのではなく `/src/` などのパスセグメントで照合します

1706 

1707Windows での `Write` 呼び出しでは、次の内容が渡されます:

1708 

1709```json theme={null}

1710{

1711 "hook_event_name": "PreToolUse",

1712 "tool_name": "Write",

1713 "tool_input": {

1714 "file_path": "C:\\project\\src\\index.ts",

1715 "content": "..."

1716 },

1717 ...

1718}

1719```

1720 

1721`tool_input` のフィールドはツールによって異なります:

1722 

1723<a id="bash" />

1457 1724 

1458<h5 id="bash">1725<h5 id="bash">

1459 Bash1726 Bash

1460</h5>1727</h5>

1461 1728 

1462シェル コマンドを実行します。1729シェルコマンドを実行します。

1463 1730 

1464| フィールド | タイプ | 例 | 説明 |1731| フィールド | 型 | 例 | 説明 |

1465| :- | :- | :- | :- |1732| :- | :- | :- | :- |

1466| `command` | 文字列 | `"npm test"` | 実行するシェル コマンド |1733| `command` | string | `"npm test"` | 実行するシェルコマンド |

1467| `description` | 文字列 | `"Run test suite"` | コマンドが何をするかのオプション説明 |1734| `description` | string | `"Run test suite"` | コマンドの動作の説明(任意) |

1468| `timeout` | 数値 | `120000` | ミリ秒単位のオプション タイムアウト。[最大値](/docs/ja/tools-reference#bash-tool-behavior)を超える値は最大値に削減されます |1735| `timeout` | number | `120000` | タイムアウト(ミリ秒、任意)。[最大値](/docs/ja/tools-reference#bash-tool-behavior)を超える値は拒否されず、最大値に切り下げられます |

1469| `run_in_background` | ブール値 | `false` | コマンドをバックグラウンドで実行するかどうか |1736| `run_in_background` | boolean | `false` | コマンドをバックグラウンドで実行するかどうか |

1737 

1738Bash コマンドが Git リポジトリ内のファイルを変更した場合、Claude Code は変更内容を記録できます。[`bashEditDiffEnabled`](/docs/ja/settings-reference#basheditdiffenabled) 設定で記録がオンになっている場合は、すべての権限モードで変更を記録します。どのファイルでこの設定を指定できるかは、その設定の項目に記載されています。それ以外の場合は、auto モードと `bypassPermissions` モードでのみ、かつ Claude Code が Bash を通じてファイルを編集するよう Claude に指示した場合にのみ記録します。記録をオフにするには、`bashEditDiffEnabled` を `false` に設定します。バックグラウンドのコマンドと読み取り専用のコマンドには差分は含まれません。

1739 

1740その後、[PostToolUse フック](#posttooluse)は変更されたファイルを `tool_response.bashEditDiff` で受け取ります。このリストは、コマンドの実行中にリポジトリ配下で変更されたものを対象とします。Git が無視するファイルやサブモジュール内のファイルは含まれません。Claude Code v2.1.269 以降が必要です。

1741 

1742<Note>

1743 このリストはベストエフォートであり、パブリックベータ版です。Claude Code は変更を見逃したり、別のプロセスが同時に変更したファイルを含めたり、サイズ制限で打ち切ったりすることがあります。フィールドの形式は変更される可能性があります。このリストはポリシーの強制ではなく、レビュー対象を見つけるために使用してください。

1744</Note>

1745 

1746`changedFiles` と `files` はコマンドが変更したものを列挙し、残りのフィールドはそのリストがどの程度完全で信頼できるかを示します。

1747 

1748| フィールド | 型 | 例 | 説明 |

1749| :- | :- | :- | :- |

1750| `changedFiles` | array | `["/path/to/src/app.ts"]` | コマンドが変更したファイルの絶対パス(最大 200 件)。`files` に差分が含まれる場合、または `moreFiles` が 0 より大きい場合は常に存在します |

1751| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 表示用の、変更された最大 5 ファイルの差分。コマンドが追加または削除したファイルでは `created` または `deleted` が `true` になります |

1752| `moreFiles` | number | `2` | `files` に差分が含まれていない変更ファイルの数 |

1753| `unavailable` | boolean | `true` | 差分が不完全な場合、または取得できなかった場合に設定されます |

1754| `skipped` | boolean | `true` | `git checkout` や `git stash` など、作業ツリーを移動する Git コマンドの場合に設定され、Claude Code は差分を取得しません |

1755| `shared` | boolean | `true` | サブエージェントのものなど、別の Bash ツール呼び出しが同時に同じリポジトリで実行された場合に設定されます。そのため、リストに含まれる変更の一部はそのコマンドによるものである可能性があります |

1756 

1757<a id="powershell" />

1758 

1759<h5 id="powershell">

1760 PowerShell

1761</h5>

1762 

1763PowerShell コマンドを実行します。プラットフォームごとの利用可否については [PowerShell ツール](/docs/ja/tools-reference#powershell-tool)を参照してください。

1764 

1765フィールドは Bash ツールと同じで、コマンド文字列は `command` に含まれます:

1766 

1767| フィールド | 型 | 例 | 説明 |

1768| :- | :- | :- | :- |

1769| `command` | string | `"Get-ChildItem -Recurse"` | 実行する PowerShell コマンド |

1770| `description` | string | `"List files recursively"` | コマンドの動作の説明(任意) |

1771| `timeout` | number | `120000` | タイムアウト(ミリ秒、任意) |

1772| `run_in_background` | boolean | `false` | コマンドをバックグラウンドで実行するかどうか |

1773 

1774シェルコマンドを検査するフックでは、両方のツールをカバーするように `Bash|PowerShell` で照合してください:

1775 

1776* Windows では、PowerShell ツールが有効になっている場合、Claude は PowerShell をプライマリシェルとして扱い、シェルコマンドをそれを通じて実行します。

1777* Git Bash のない Windows では、このツールは自動的に有効になり、Claude Code は Bash ツールをまったく登録しません。

1778* `Bash` のみに一致するフックは、その環境では発火しません。

1470 1779 

1471<h5 id="write">1780<h5 id="write">

1472 Write1781 Write


1474 1783 

1475ファイルを作成または上書きします。1784ファイルを作成または上書きします。

1476 1785 

1477| フィールド | タイプ | 例 | 説明 |1786| フィールド | 型 | 例 | 説明 |

1478| :- | :- | :- | :- |1787| :- | :- | :- | :- |

1479| `file_path` | 文字列 | `"/path/to/file.txt"` | 書き込むファイルへの絶対パス |1788| `file_path` | string | `"/path/to/file.txt"` | 書き込むファイルの絶対パス |

1480| `content` | 文字列 | `"file content"` | ファイルに書き込むコンテンツ |1789| `content` | string | `"file content"` | ファイルに書き込む内容 |

1481 1790 

1482<h5 id="edit">1791<h5 id="edit">

1483 Edit1792 Edit

1484</h5>1793</h5>

1485 1794 

1486既存ファイル内の文字列を置換します。1795既存のファイル内の文字列を置換します。

1487 1796 

1488| フィールド | タイプ | 例 | 説明 |1797| フィールド | 型 | 例 | 説明 |

1489| :- | :- | :- | :- |1798| :- | :- | :- | :- |

1490| `file_path` | 文字列 | `"/path/to/file.txt"` | 編集するファイルへの絶対パス |1799| `file_path` | string | `"/path/to/file.txt"` | 編集するファイルの絶対パス |

1491| `old_string` | 文字列 | `"original text"` | 検索して置換するテキスト |1800| `old_string` | string | `"original text"` | 検索して置換するテキスト |

1492| `new_string` | 文字列 | `"replacement text"` | 置換テキスト |1801| `new_string` | string | `"replacement text"` | 置換後のテキスト |

1493| `replace_all` | ブール値 | `false` | すべての出現を置換するかどうか |1802| `replace_all` | boolean | `false` | すべての出現箇所を置換するかどうか |

1494 1803 

1495<h5 id="read">1804<h5 id="read">

1496 Read1805 Read

1497</h5>1806</h5>

1498 1807 

1499ファイル コンテンツを読み取ります。1808ファイルの内容を読み取ります。

1500 1809 

1501| フィールド | タイプ | 例 | 説明 |1810| フィールド | 型 | 例 | 説明 |

1502| :- | :- | :- | :- |1811| :- | :- | :- | :- |

1503| `file_path` | 文字列 | `"/path/to/file.txt"` | 読み取るファイルへの絶対パス |1812| `file_path` | string | `"/path/to/file.txt"` | 読み取るファイルの絶対パス |

1504| `offset` | 数値 | `10` | 読み取りを開始する行番号のオプション |1813| `offset` | number | `10` | 読み取りを開始する行番号(任意) |

1505| `limit` | 数値 | `50` | 読み取る行数のオプション |1814| `limit` | number | `50` | 読み取る行数(任意) |

1506 1815 

1507<h5 id="glob">1816<h5 id="glob">

1508 Glob1817 Glob

1509</h5>1818</h5>

1510 1819 

1511グロブ パターンにマッチするファイルを検索します。1820glob パターンに一致するファイルを検索します。

1512 1821 

1513| フィールド | タイプ | 例 | 説明 |1822| フィールド | 型 | 例 | 説明 |

1514| :- | :- | :- | :- |1823| :- | :- | :- | :- |

1515| `pattern` | 文字列 | `"**/*.ts"` | ファイルにマッチするグロブ パターン |1824| `pattern` | string | `"**/*.ts"` | ファイルと照合する glob パターン |

1516| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ディレクトリ。デフォルトは現在の作業ディレクトリ |1825| `path` | string | `"/path/to/dir"` | 検索するディレクトリ(任意)。デフォルトは現在の作業ディレクトリです |

1517 1826 

1518<h5 id="grep">1827<h5 id="grep">

1519 Grep1828 Grep

1520</h5>1829</h5>

1521 1830 

1522正規表現でファイル コンテンツを検索します。1831正規表現でファイルの内容を検索します。

1523 1832 

1524| フィールド | タイプ | 例 | 説明 |1833| フィールド | 型 | 例 | 説明 |

1525| :- | :- | :- | :- |1834| :- | :- | :- | :- |

1526| `pattern` | 文字列 | `"TODO.*fix"` | 検索する正規表現パターン |1835| `pattern` | string | `"TODO.*fix"` | 検索する正規表現パターン |

1527| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ファイルまたはディレクトリ |1836| `path` | string | `"/path/to/dir"` | 検索するファイルまたはディレクトリ(任意) |

1528| `glob` | 文字列 | `"*.ts"` | ファイルをフィルタリングするオプション グロブ パターン |1837| `glob` | string | `"*.ts"` | ファイルを絞り込む glob パターン(任意) |

1529| `output_mode` | 文字列 | `"content"` | `"content"`、`"files_with_matches"`、または `"count"`。デフォルトは `"files_with_matches"` |1838| `output_mode` | string | `"content"` | `"content"`、`"files_with_matches"`、または `"count"`。デフォルトは `"files_with_matches"` です |

1530| `-i` | ブール値 | `true` | 大文字小文字を区別しない検索 |1839| `-i` | boolean | `true` | 大文字と小文字を区別しない検索 |

1531| `multiline` | ブール値 | `false` | 複数行マッチングを有効化 |1840| `multiline` | boolean | `false` | 複数行の照合を有効にする |

1532 1841 

1533<h5 id="webfetch">1842<h5 id="webfetch">

1534 WebFetch1843 WebFetch


1536 1845 

1537Web コンテンツを取得して処理します。1846Web コンテンツを取得して処理します。

1538 1847 

1539| フィールド | タイプ | 例 | 説明 |1848| フィールド | 型 | 例 | 説明 |

1540| :- | :- | :- | :- |1849| :- | :- | :- | :- |

1541| `url` | 文字列 | `"https://example.com/api"` | コンテンツを取得する URL |1850| `url` | string | `"https://example.com/api"` | コンテンツを取得する URL |

1542| `prompt` | 文字列 | `"Extract the API endpoints"` | 取得したコンテンツで実行するプロンプト |1851| `prompt` | string | `"Extract the API endpoints"` | 取得したコンテンツに対して実行するプロンプト |

1543 1852 

1544<h5 id="websearch">1853<h5 id="websearch">

1545 WebSearch1854 WebSearch


1547 1856 

1548Web を検索します。1857Web を検索します。

1549 1858 

1550| フィールド | タイプ | 例 | 説明 |1859| フィールド | 型 | 例 | 説明 |

1551| :- | :- | :- | :- |1860| :- | :- | :- | :- |

1552| `query` | 文字列 | `"react hooks best practices"` | 検索クエリ |1861| `query` | string | `"react hooks best practices"` | 検索クエリ |

1553| `allowed_domains` | 配列 | `["docs.example.com"]` | オプション: これらのドメインからのみ結果を含める |1862| `allowed_domains` | array | `["docs.example.com"]` | 任意:これらのドメインの結果のみを含める |

1554| `blocked_domains` | 配列 | `["spam.example.com"]` | オプション: これらのドメインからの結果を除外 |1863| `blocked_domains` | array | `["spam.example.com"]` | 任意:これらのドメインの結果を除外する |

1555 1864 

1556<h5 id="agent">1865<h5 id="agent">

1557 Agent1866 Agent

1558</h5>1867</h5>

1559 1868 

1560[サブエージェント](/docs/ja/sub-agents)を生成します。1869[サブエージェント](/docs/ja/sub-agents)を起動します。

1561 1870 

1562| フィールド | タイプ | 例 | 説明 |1871| フィールド | 型 | 例 | 説明 |

1563| :- | :- | :- | :- |1872| :- | :- | :- | :- |

1564| `prompt` | 文字列 | `"Find all API endpoints"` | エージェントが実行するタスク |1873| `prompt` | string | `"Find all API endpoints"` | エージェントが実行するタスク |

1565| `description` | 文字列 | `"Find API endpoints"` | タスクの短い説明 |1874| `description` | string | `"Find API endpoints"` | タスクの短い説明 |

1566| `subagent_type` | 文字列 | `"Explore"` | 使用する特殊エージェントのタイプ |1875| `subagent_type` | string | `"Explore"` | 使用する専門エージェントの種類 |

1567| `model` | 文字列 | `"sonnet"` | デフォルトをオーバーライドするオプション モデル エイリアス |1876| `model` | string | `"sonnet"` | デフォルトを上書きするモデルエイリアス(任意) |

1568 1877 

1569`PostToolUse` では、完了した Agent 呼び出しの `tool_response` はサブエージェントの最終テキストと使用テレメトリを含みます。フックからサブエージェント単位のコストを記録するためにこれらのフィールドを読み取ります。1878フォアグラウンドの Agent 呼び出しが完了すると、[PostToolUse フック](#posttooluse)は `tool_response` でサブエージェントの結果と実行のテレメトリを受け取ります。実行を調べるにはこれらのフィールドを読み取ってください。`totalTokens` と `usage` は最後のリクエストのみを対象とするため、サブエージェント全体のトークンとコストの集計には、`query_source` `"subagent"` で絞り込んだ[トークンとコストのカウンター](/docs/ja/monitoring-usage#token-counter)を使用してください:

1570 1879 

1571| フィールド | タイプ | 例 | 説明 |1880| フィールド | 型 | 例 | 説明 |

1572| :- | :- | :- | :- |1881| :- | :- | :- | :- |

1573| `status` | 文字列 | `"completed"` | `"completed"` は同期呼び出しの場合、`"async_launched"` はバックグラウンド サブエージェントの場合。v2.1.198 以降では、サブエージェントはデフォルトでバックグラウンドで実行されるため、省略された `run_in_background` も `"async_launched"` を生成します |1882| `status` | string | `"completed"` | フォアグラウンドのサブエージェントの場合は `"completed"`、バックグラウンドのサブエージェントの場合は `"async_launched"`。v2.1.198 以降、サブエージェントはデフォルトでバックグラウンドで実行されるため、`run_in_background` を省略した場合も `"async_launched"` になります |

1574| `agentId` | 文字列 | `"a4d2c8f1e0b3a297"` | サブエージェント実行の識別子 |1883| `agentId` | string | `"a4d2c8f1e0b3a297"` | サブエージェントの実行の識別子 |

1575| `content` | 配列 | `[{"type": "text", "text": "Found 12 endpoints..."}]` | サブエージェントの最終テキスト ブロック |1884| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | サブエージェントの最終的なテキストブロック。レポートが `SubagentHandback` を経由するサブエージェントの場合は、その代わりにハンドバックに関する短いメモ |

1576| `resolvedModel` | 文字列 | `"claude-sonnet-4-5"` | サブエージェントが実行されたモデル。要求されたモデルと異なる可能性があります。Claude Code v2.1.174 以降が必要 |1885| `resolvedModel` | string | `"claude-sonnet-4-5"` | サブエージェントが開始時に使用したモデル。要求されたモデルとは異なる場合があります |

1577| `totalTokens` | 数値 | `12450` | サブエージェントのターン全体で請求されたトークン合計 |1886| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 使用されたモデルを順に並べたもの(連続する重複はまとめられます)。実行中にモデルが切り替えられた場合にのみ設定されます。Claude Code v2.1.212 以降が必要です |

1578| `totalDurationMs` | 数値 | `48211` | サブエージェント実行の実時間 |1887| `totalTokens` | number | `12450` | サブエージェントの最後の API リクエストのトークン数(入力、出力、キャッシュのトークンの合計)。実行全体の合計ではありません |

1579| `totalToolUseCount` | 数値 | `7` | サブエージェントが行ったツール呼び出しの数 |1888| `totalDurationMs` | number | `48211` | サブエージェントの実行の実時間 |

1580| `usage` | オブジェクト | `{"input_tokens": 8320, ...}` | タイプ別トークン分解: `input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |1889| `totalToolUseCount` | number | `7` | サブエージェントが行ったツール呼び出しの数 |

1890| `usage` | object | `{"input_tokens": 8320, ...}` | 最後の API リクエストの種類別トークン内訳:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |

1891 

1892Claude Code v2.1.271 以降では、Claude Code が [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)で提供する [`SubagentHandback`](/docs/ja/tools-reference) ツールを使って実行されるサブエージェントは、レポートをテキストとして返すのではなく、そのツールを通じて渡します。その場合、`completed` 結果の `content` フィールドには、レポートそのものではなく、ハンドバックに関する短いメモが含まれます。レポートを読み取るには、`SubagentHandback` に一致する `PreToolUse` または `PostToolUse` フックを設定し、`tool_input.message` を読み取ってください。

1581 1893 

1582バックグラウンド サブエージェントの場合、ツールはサブエージェント起動後すぐに返されるため、`tool_response` は使用フィールドを含みません。`status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile`、`resolvedModel` を含みます。1894バックグラウンドのサブエージェントの場合、ツールはタスクがバックグラウンドに移動した時点で返るため、`tool_response` には使用量のフィールドが含まれません。バックグラウンドでの起動はすぐに返り、Claude Code が実行途中でバックグラウンドに移したフォアグラウンドのタスクはその移行時点で返ります。レスポンスには `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile`、`resolvedModel` が含まれます。

1583 1895 

1584`resolvedModel` フィールドはサブエージェントが実行されたモデルを名前付けし、`tool_input` の `model` 値と異なる可能性があります。Claude Code v2.1.174 以降が必要です。1896`completed` レスポンスでは、`resolvedModel` はサブエージェントが開始時に使用したモデルを示し、`availableModels` やその他の上書きが適用される場合など、`tool_input` の `model` の値とは異なることがあります。`async_launched` レスポンスでは、`resolvedModel` はエージェントがバックグラウンドに移動した時点で使用中のモデルを示すため、バックグラウンドへの移行前に行われたモデルの切り替えはそこに反映されます。`modelsUsed` と、バックグラウンド移行時点の `resolvedModel` の動作には Claude Code v2.1.212 以降が必要です。

1585 1897 

1586<a id="askuserquestion" />1898<a id="askuserquestion" />

1587 1899 


1589 AskUserQuestion1901 AskUserQuestion

1590</h5>1902</h5>

1591 1903 

1592ユーザーに 1 つから 4 つの複数選択肢の質問をします。1904ユーザーに 1~4 個の多肢選択式の質問をします。

1593 1905 

1594| フィールド | タイプ | 例 | 説明 |1906| フィールド | 型 | 例 | 説明 |

1595| :- | :- | :- | :- |1907| :- | :- | :- | :- |

1596| `questions` | 配列 | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 提示する質問。各質問には `question` 文字列、短い `header`、`options` 配列、およびオプションの `multiSelect` フラグがあります |1908| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 提示する質問。それぞれ `question` 文字列、短い `header`、`options` 配列、および任意の `multiSelect` フラグを持ちます |

1597| `answers` | オブジェクト | `{"Which framework?": "React"}` | オプション。質問テキストを選択されたオプション ラベルにマップします。複数選択の回答はラベルをコンマで結合します。Claude はこのフィールドを設定しません。`updatedInput` 経由で提供して、プログラムで回答します |1909| `answers` | object | `{"Which framework?": "React"}` | 任意。質問のテキストを選択されたオプションのラベルに対応付けます。複数選択の回答では、ラベルをカンマで結合します。Claude はこのフィールドを設定しません。プログラムで回答するには `updatedInput` を通じて指定します |

1598 1910 

1599<h5 id="exitplanmode">1911<h5 id="exitplanmode">

1600 ExitPlanMode1912 ExitPlanMode

1601</h5>1913</h5>

1602 1914 

1603Claude が[プラン モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を離れる前にプランを提示し、ユーザーに承認を求めます。Claude はツールを呼び出す前にプランをディスク上のファイルに書き込むため、モデルからのリテラル `tool_input` は通常空です。Claude Code はプラン コンテンツとファイル パスをフックに渡す前に注入します。1915Claude が [plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を終了する前に、計画を提示してユーザーに承認を求めます。Claude はツールを呼び出す前に計画をディスク上のファイルに書き込むため、モデルからの実際の `tool_input` は通常空です。Claude Code は、入力をフックに渡す前に計画の内容とファイルパスを注入します。

1604 1916 

1605| フィールド | タイプ | 例 | 説明 |1917| フィールド | 型 | 例 | 説明 |

1606| :- | :- | :- | :- |1918| :- | :- | :- | :- |

1607| `plan` | 文字列 | `"## Refactor auth\n1. Extract..."` | Markdown のプラン コンテンツ。ディスク上のプラン ファイルから注入 |1919| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 形式の計画の内容。ディスク上の計画ファイルから注入されます |

1608| `planFilePath` | 文字列 | `"/Users/.../plans/refactor-auth.md"` | プラン ファイルへのパス。注入 |1920| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計画ファイルへのパス。注入されます |

1609| `allowedPrompts` | 配列 | `[{"tool": "Bash", "prompt": "run tests"}]` | 非推奨。Claude Code はフィールドを受け入れますが無視します。v2.1.205 より前では、プランを実装するために Claude が要求していたプロンプト ベースの権限を含みました |1921| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 非推奨。Claude Code はこのフィールドを受け付けますが無視します。v2.1.205 より前は、計画を実装するために Claude が要求したプロンプトベースの権限を保持していました |

1610 1922 

1611`PostToolUse` では、`tool_response` は `plan` と `filePath` フィールドを含むオブジェクトで、承認されたプランと内部ステータス フラグを保持します。ディスクからファイルを再度読み取るのではなく、`tool_response.plan` でプラン コンテンツを読み取ります。1923`PostToolUse` では、`tool_response` は承認された計画を保持する `plan` と `filePath` フィールド、および内部のステータスフラグを持つオブジェクトです。計画の内容は、ディスクからファイルを再度読み込むのではなく `tool_response.plan` から読み取ってください。

1612 1924 

1613<h4 id="pretooluse-decision-control">1925<h4 id="pretooluse-decision-control">

1614 PreToolUse 決定制御1926 PreToolUse の決定制御

1615</h4>1927</h4>

1616 1928 

1617`PreToolUse` フックはツール呼び出しが進行するかどうかを制御できます。トップレベル `decision` フィールドを使用する他のフックとは異なり、PreToolUse は `hookSpecificOutput` オブジェクト内に決定を返します。これにより、より豊かな制御が可能になります。4 つの結果(許可、拒否、質問、遅延)と、実行前にツール入力を変更する機能。1929`PreToolUse` フックは、ツール呼び出しを続行するかどうかを制御できます。トップレベルの `decision` フィールドを使用する他のフックとは異なり、PreToolUse は `hookSpecificOutput` オブジェクト内で決定を返します。これにより、4 つの結果(allow、deny、ask、defer)に加えて、実行前にツールの入力を変更する機能という、より豊富な制御が可能になります。

1618 1930 

1619| フィールド | 説明 |1931| フィールド | 説明 |

1620| :- | :- |1932| :- | :- |

1621| `permissionDecision` | `"allow"` はツール呼び出しをスキップします。[ユーザー操作が必要なツール](#pretooluse-decision-control)と、組織が [`ask`](/docs/ja/mcp#organization-controls-on-connector-tools)に設定したコネクター ツールを除きます。`"deny"` はツール呼び出しを防止します。`"ask"` はユーザーに確認を促します。`"defer"` は優雅に終了して、ツールを後で再開できるようにします。[拒否と質問ルール](/docs/ja/permissions#manage-permissions)は、フックが返す内容に関係なく引き続き評価されます |1933| `permissionDecision` | `"allow"` は権限プロンプトをスキップします。ただし、[どのモードでも自動承認されないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)と、[`updatedInput` との組み合わせ](#allow-with-updatedinput)が必要な `AskUserQuestion` および `ExitPlanMode` は除きます。`"deny"` はツール呼び出しを防ぎます。`"ask"` はユーザーに確認を求めます。`"defer"` は、後でツールを再開できるように正常に終了します。フックが何を返すかにかかわらず、[拒否ルールと確認ルール](/docs/ja/permissions#manage-permissions)は引き続き評価されます |

1622| `permissionDecisionReason` | `"allow"` と `"ask"` の場合、ユーザーに表示されますが Claude には表示されません。`"deny"` の場合、Claude に表示されます。`"defer"` の場合、無視されます |1934| `permissionDecisionReason` | `"ask"` の場合、ユーザーには表示されますが Claude には表示されません。`"deny"` の場合、Claude に表示されます。`"allow"` と `"defer"` の場合、[デバッグログ](#debug-hooks)にのみ書き込まれます |

1623| `updatedInput` | 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。`"allow"` と組み合わせて自動承認するか、`"ask"` と組み合わせて変更された入力をユーザーに表示します。`"defer"` の場合、無視されます |1935| `updatedInput` | 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更したフィールドとともに変更していないフィールドも含めてください。Claude Code は、権限ルールと Bash コマンドの[自動バックグラウンド化の対象かどうか](/docs/ja/tools-reference#foreground-commands-that-move-to-the-background)を、Claude が送信した入力ではなくフックが返した入力に対して評価します。自動承認するには `"allow"` と、変更後の入力をユーザーに表示するには `"ask"` と組み合わせます。`"defer"` の場合は無視されます |

1624| `additionalContext` | ツール実行前に Claude のコンテキストに追加される文字列。`"defer"` の場合、無視されます。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |1936| `additionalContext` | ツールの結果とともに Claude のコンテキストに追加される文字列。`permissionDecision` が `"defer"` の場合は無視されます。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1937 

1938複数の PreToolUse フックが異なる決定を返した場合、優先順位は `deny` > `defer` > `ask` > `allow` です。

1939 

1940終了コード 2 で終了してブロックするフックは、`"deny"` と同じように扱われます。Claude は stderr のメッセージを拒否の理由として受け取ります。

1625 1941 

1626複数の PreToolUse フックが異なる決定を返す場合、優先順位は `deny` > `defer` > `ask` > `allow` です。1942フックが `"ask"` を返した場合、ユーザーに表示される権限プロンプトには、フックの出どころを示すラベルが含まれます。任意の設定ファイルまたはエージェントのフロントマターからのフックには `[settings]`、プラグインのフックには `[plugin:<name>]`、スキルのフロントマターからのフックには `[skill]` が表示されます。これにより、どの設定ソースが確認を求めているかをユーザーが把握しやすくなります。

1627 1943 

1628フックが `"ask"` を返すと、ユーザーに表示される権限プロンプトには、フックの出所を識別するラベルが含まれます。例えば、`[User]`、`[Project]`、`[Plugin]`、または `[Local]`。これにより、ユーザーはどの設定ソースが確認を要求しているかを理解できます。1944フックの `"ask"` は、[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)でも権限プロンプトを強制します。分類器はツール呼び出しを拒否することはできますが、プロンプトを表示せずに承認することはできません。v2.1.211 より前は、分類器は[サンドボックス](/docs/ja/sandboxing)の外で実行される Bash コマンドを、フックが要求したプロンプトを表示せずに承認できました。その場合でも分類器はそのコマンドに独自の安全ルールを適用し、フックの `"deny"` は常に尊重されていました。

1629 1945 

1630```json theme={null}1946```json theme={null}

1631{1947{


1641}1957}

1642```1958```

1643 1959 

1644`AskUserQuestion` と `ExitPlanMode` はユーザー操作が必要で、通常は[非対話型モード](/docs/ja/headless)で `-p` フラグでブロックします。`permissionDecision: "allow"` を `updatedInput` と一緒に返すことでその要件を満たします。フックは stdin からツールの入力を読み取り、独自の UI を通じて回答を収集し、ツールがプロンプトなしで実行されるように `updatedInput` で返します。`"allow"` のみを返すことはこれらのツールには十分ではありません。`AskUserQuestion` の場合、元の `questions` 配列をエコーバックし、各質問のテキストを選択された回答にマップする [`answers`](#askuserquestion) オブジェクトを追加します。1960<span id="allow-with-updatedinput" />

1645 1961 

1646コネクター ツール[組織が `ask`](/docs/ja/mcp#organization-controls-on-connector-tools)に設定したツールはプロンプトを表示します。`"allow"` を返す場合でも。1962`-p` フラグを使用した[非対話モード](/docs/ja/headless)では、Claude Code は、Agent SDK の `canUseTool` コールバックなど、プロンプトを受け取る[権限ホスト](/docs/ja/headless#turn-off-permission-prompts-in-unattended-runs)が実行にある場合にのみ、`AskUserQuestion` と `ExitPlanMode` を提供します。これらのツールにはユーザーの操作が必要です。`permissionDecision: "allow"` を `updatedInput` とともに返すと、その要件を満たせます。フックは stdin からツールの入力を読み取り、独自の UI を通じて回答を収集し、それを `updatedInput` で返すことで、ツールはプロンプトを表示せずに実行されます。これらのツールでは `"allow"` だけを返しても十分ではありません。`AskUserQuestion` の場合は、元の `questions` 配列をそのまま返し、各質問のテキストを選択された回答に対応付ける [`answers`](#askuserquestion) オブジェクトを追加します。

1647 1963 

1648v2.1.199 以降では、サーバーが [`_meta["anthropic/requiresUserInteraction"]`](/docs/ja/mcp#require-approval-for-a-specific-tool) でマークした MCP ツールはより厳密です。フックは `"allow"` で承認プロンプトをスキップできません。`updatedInput` の有無にかかわらず、Claude Code はフックがツールが必要とする操作を収集したことを確認できないためです。1964v2.1.199 以降、サーバーが [`_meta["anthropic/requiresUserInteraction"]`](/docs/ja/mcp#require-approval-for-a-specific-tool) でマークした MCP ツールはより厳格です。Claude Code はツールが必要とする操作をフックが収集したことを確認できないため、`updatedInput` の有無にかかわらず、フックは `"allow"` でその承認プロンプトをスキップできません。

1649 1965 

1650<Note>1966<Note>

1651 PreToolUse は以前、トップレベル `decision` と `reason` フィールドを使用していましたが、このイベントでは非推奨です。代わりに `hookSpecificOutput.permissionDecision` と `hookSpecificOutput.permissionDecisionReason` を使用してください。非推奨の値 `"approve"` と `"block"` は `"allow"` と `"deny"` にマップされます。PostToolUse と Stop などの他のイベントは、現在の形式としてトップレベル `decision` と `reason` を使用し続けます。1967 PreToolUse では以前はトップレベルの `decision` と `reason` フィールドを使用していましたが、このイベントではこれらは非推奨です。代わりに `hookSpecificOutput.permissionDecision` と `hookSpecificOutput.permissionDecisionReason` を使用してください。非推奨の値 `"approve"` と `"block"` は、それぞれ `"allow"` と `"deny"` に対応します。PostToolUse や Stop などの他のイベントでは、現在の形式として引き続きトップレベルの `decision` と `reason` を使用します。

1652</Note>1968</Note>

1653 1969 

1654<h4 id="defer-a-tool-call-for-later">1970<h4 id="defer-a-tool-call-for-later">

1655 ツール呼び出しを後で再開するために遅延1971 ツール呼び出しを後で実行するために延期する

1656</h4>1972</h4>

1657 1973 

1658`"defer"` は `claude -p` をサブプロセスとして実行し、その JSON 出力を読み取る Agent SDK アプリまたはカスタム UI などの統合用です。これにより、その呼び出しプロセスは Claude をツール呼び出しで一時停止し、独自のインターフェースを通じて入力を収集し、中断したところから再開できます。Claude Code は[非対話型モード](/docs/ja/headless)で `-p` フラグでのみこの値を尊重します。対話型セッションではログ警告を記録し、フック結果を無視します。1974`"defer"` は、Agent SDK アプリや Claude Code 上に構築したカスタム UI など、`claude -p` をサブプロセスとして実行してその JSON 出力を読み取る統合向けです。呼び出し元のプロセスは、ツール呼び出しの時点で Claude を一時停止し、独自のインターフェースで入力を収集して、中断したところから再開できます。Claude Code がこの値を尊重するのは、`-p` フラグを使用した[非対話モード](/docs/ja/headless)の場合のみです。対話セッションでは警告をログに記録し、フックの結果を無視します。

1659 1975 

1660`AskUserQuestion` ツールが典型的なケースです。Claude はユーザーに何かを尋ねたいのですが、応答するターミナルがありません。ラウンド トリップは次のように機能します。1976`AskUserQuestion` ツールが典型的なケースです。Claude はユーザーに何かを質問したいものの、回答するためのターミナルがありません。`-p` の実行で `AskUserQuestion` が提供されるのは、`--permission-prompt-tool` で渡す MCP ツールなどの[権限ホスト](/docs/ja/headless#turn-off-permission-prompts-in-unattended-runs)がある場合のみなので、権限ホストを指定して実行を開始してください。往復の流れは次のとおりです:

1661 1977 

16621. Claude が `AskUserQuestion` を呼び出します。`PreToolUse` フックが発火します。19781. Claude が `AskUserQuestion` を呼び出します。`PreToolUse` フックが発火します。

16632. フックは `permissionDecision: "defer"` を返します。ツールは実行されません。プロセスは `stop_reason: "tool_deferred"` で終了し、トランスクリプトに保留中のツール呼び出しが保持されます。19792. フックが `permissionDecision: "defer"` を返します。ツールは実行されません。プロセスは `stop_reason: "tool_deferred"` で終了し、保留中のツール呼び出しはトランスクリプトに保存されます。

16643. 呼び出しプロセスは SDK 結果から `deferred_tool_use` を読み取り、独自の UI で質問を表示し、回答を待ちます。19803. 呼び出し元のプロセスは SDK の結果から `deferred_tool_use` を読み取り、独自の UI に質問を表示して回答を待ちます。

16654. 呼び出しプロセスは `claude -p --resume <session-id>` を実行します。同じツール呼び出しが `PreToolUse` を再度発火させます。19814. 呼び出し元のプロセスは、同じ権限ホストを指定して `claude -p --resume <session-id>` を実行します。同じツール呼び出しによって再び `PreToolUse` が発火します。

16665. フックは `permissionDecision: "allow"` を返し、`updatedInput` に回答を含めます。ツールが実行され、Claude が続行します。19825. フックは `updatedInput` に回答を含めて `permissionDecision: "allow"` を返します。ツールが実行され、Claude は処理を続行します。

1667 1983 

1668`deferred_tool_use` フィールドはツールの `id`、`name`、`input` を含みます。`input` は実行前にキャプチャされたツール呼び出しのパラメーターです。1984`deferred_tool_use` フィールドには、ツールの `id`、`name`、`input` が含まれます。`input` は Claude がツール呼び出しのために生成したパラメーターで、実行前に取得されたものです:

1669 1985 

1670```json theme={null}1986```json theme={null}

1671{1987{


1681}1997}

1682```1998```

1683 1999 

1684タイムアウトまたは再試行制限はありません。セッションはディスク上に残ります。回答の準備ができていないときに再開する場合、フックは再度 `"defer"` を返すことができ、プロセスは同じ方法で終了します。呼び出しプロセスはループを破るタイミングを制御し、最終的に `"allow"` または `"deny"` を返します。2000タイムアウトや再試行の制限はありません。セッションは再開するまでディスク上に残りますが、[`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) による保持期間のクリーンアップの対象となります。このクリーンアップは、[保持期間のクリーンアップのルール](/docs/ja/claude-directory#cleaned-up-automatically)に従い、デフォルトで 30 日後にセッションファイルを削除します。再開時に回答の準備ができていない場合、フックは再び `"defer"` を返すことができ、プロセスは同じように終了します。呼び出し元のプロセスは、最終的にフックから `"allow"` または `"deny"` を返すことで、ループを抜けるタイミングを制御します。

1685 2001 

1686`"defer"` は Claude が単一のツール呼び出しを行うときのみ機能します。Claude が一度に複数のツール呼び出しを行う場合、`"defer"` は警告で無視され、ツールは通常の権限フローを通じて進行します。制約が存在するのは、再開が 1 つのツールのみを再実行できるためです。バッチから 1 つの呼び出しを遅延させる方法はなく、他の呼び出しは未解決のままになります。2002`"defer"` は、Claude がそのターンで単一のツール呼び出しを行う場合にのみ機能します。Claude が複数のツール呼び出しを一度に行う場合、`"defer"` は警告とともに無視され、ツールは通常の権限フローで処理されます。この制約があるのは、再開時には 1 つのツールしか再実行できないためです。バッチの中の 1 つの呼び出しだけを、他の呼び出しを未解決のまま残さずに延期する方法はありません。

1687 2003 

1688遅延されたツールが再開時に利用できなくなった場合、プロセスは `stop_reason: "tool_deferred_unavailable"` と `is_error: true` で終了し、フックが発火する前に。これは、提供されたツールの MCP サーバーが再開されたセッションに接続されていない場合に発生します。`deferred_tool_use` ペイロードは引き続き含まれるため、どのツールが欠落しているかを識別できます。2004再開時に延期されたツールが利用できなくなっている場合、プロセスはフックが発火する前に `stop_reason: "tool_deferred_unavailable"` と `is_error: true` で終了します。これは、ツールを提供していた MCP サーバーが再開したセッションで接続されていない場合に発生します。`deferred_tool_use` ペイロードは引き続き含まれるため、どのツールが見つからなくなったかを特定できます。

1689 2005 

1690<Note>2006<Note>

1691 `--resume` は前のセッションから権限モードを復元します。遅延されたときにアクティブだった権限モードが復元されるため、再開時に `--permission-mode` を再度渡す必要はありません。例外は `plan` と `bypassPermissions` で、これらは決して引き継がれません。再開時に `--permission-mode` を明示的に渡すと、復元された値がオーバーライドされます。2007 延期されたセッションを plan モードで再開するには、Claude Code が計画を承認のために提示できるように、`--resume` とともに [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) を渡してください。特定の他の起動フラグを渡した場合、再開した実行は plan モードに戻りません。[`-p` を使用して plan モードで再開する](/docs/ja/sessions#resume-in-plan-mode-with-p)を参照してください。Claude Code v2.1.246 以降が必要です。

2008 

2009 `-p` で再開する場合、Claude Code はそれ以外の保存された権限モードを復元しません。新しい `claude -p` の実行が開始するときと同じ権限モードで実行を開始するため、延期されたセッションで `--permission-mode` または `--dangerously-skip-permissions` を使用していた場合は、再度渡してください。`-p` なしで `claude --resume <session-id>` を使用して再開する場合、Claude Code は保存された権限モードを復元します。ただし、[再開時の権限モード](/docs/ja/sessions#permission-mode-on-resume)に記載されている例外があります。

1692</Note>2010</Note>

1693 2011 

1694<h3 id="permissionrequest">2012<h3 id="permissionrequest">

1695 PermissionRequest2013 PermissionRequest

1696</h3>2014</h3>

1697 2015 

1698ユーザーに権限ダイアログが表示されるときに実行されます。2016Claude Code がツールの使用についてユーザーに権限を求めようとするときに実行されます。[非対話モード](/docs/ja/headless)のバックグラウンドのサブエージェントなど、プロンプトを表示できないセッションでも、Claude Code はこれらのフックを実行し、どのフックも決定を返さなければツール呼び出しを拒否します。

1699[PermissionRequest 決定制御](#permissionrequest-decision-control)を使用して、ユーザーに代わって許可または拒否します。2017ユーザーに代わって許可または拒否するには、[PermissionRequest の決定制御](#permissionrequest-decision-control)を使用します。

2018 

2019Claude がツールの使用について権限を求めた瞬間にシグナルが必要な場合は、このイベントを使用してください。Claude Code は、`permission_prompt` タイプの [Notification](#notification) フックを、プロンプトが約 6 秒待機した後にのみ実行します。

1700 2020 

1701ツール名でマッチします。PreToolUse と同じ値。2021Claude Code は、サンドボックス化されたコマンドの[ネットワークリクエスト](/docs/ja/sandboxing#network-isolation)については PermissionRequest フックを実行しません。そのプロンプトのシグナルを得るには、`permission_prompt` 通知タイプを使用してください。

2022 

2023PreToolUse と同じ値で、ツール名で照合します。

1702 2024 

1703<h4 id="permissionrequest-input">2025<h4 id="permissionrequest-input">

1704 PermissionRequest 入力2026 PermissionRequest の入力

1705</h4>2027</h4>

1706 2028 

1707PermissionRequest フックは PreToolUse フックのような `tool_name` と `tool_input` フィールドを受け取りますが、`tool_use_id` はありません。オプションの `permission_suggestions` 配列には、ユーザーが通常権限ダイアログで見る「常に許可」オプションが含まれています。違いはフックが発火するタイミングです。PermissionRequest フックはユーザーに権限ダイアログが表示されようとしているときに実行され、PreToolUse フックは権限ステータスに関係なくツール実行前に実行されます。2029PermissionRequest フックは、PreToolUse フックと同様に `tool_name` と `tool_input` フィールドを受け取りますが、`tool_use_id` は含まれません。MCP ツールの場合は、[`mcp_server`](#pretooluse-input) オブジェクトも受け取ります。任意の `permission_suggestions` 配列には、許可ルールの追加や権限モードの変更など、Claude Code がこのリクエストに対して提案する[権限の更新](#permission-update-entries)が含まれます。

2030 

2031`permission_suggestions` 配列は、表示されるオプションの正確なリストではありません。各権限ダイアログが独自にオプションを構築するためです。ファイル編集のダイアログなど、一部のダイアログはこの配列をまったく読み取らず、リクエスト自体からオプションを導き出します。配列を読み取るダイアログでも、提案が配列に残っているオプションを表示しないことがあります。たとえば、[`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) がルールを保存するオプションを非表示にする場合です。また、[**Yes, and switch to auto mode**](/docs/ja/permission-modes#switch-permission-modes) のように、提案エントリのないオプションを提供することもあります。このオプションは、権限の更新を通じてではなく、権限モードを直接変更します。

2032 

2033PreToolUse フックは、権限が必要かどうかにかかわらず、すべてのツール呼び出しの前に実行されます。PermissionRequest フックは、Claude Code がユーザーに権限を求めようとするとき、またはプロンプトを表示できない呼び出しを本来なら自動的に拒否するときにのみ実行されます。どちらのイベントも [`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior) では発火しません。

1708 2034 

1709```json theme={null}2035```json theme={null}

1710{2036{


1730```2056```

1731 2057 

1732<h4 id="permissionrequest-decision-control">2058<h4 id="permissionrequest-decision-control">

1733 PermissionRequest 決定制御2059 PermissionRequest の決定制御

1734</h4>2060</h4>

1735 2061 

1736`PermissionRequest` フックは権限リクエストを許可または拒否できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを持つ `decision` オブジェクトを返すことができます。2062`PermissionRequest` フックは権限リクエストを許可または拒否できます。すべてのフックで利用できる [JSON 出力フィールド](#json-output)に加えて、フックスクリプトは次のイベント固有のフィールドを持つ `decision` オブジェクトを返すことができます:

1737 2063 

1738| フィールド | 説明 |2064| フィールド | 説明 |

1739| :- | :- |2065| :- | :- |

1740| `behavior` | `"allow"` は権限を付与、`"deny"` は拒否。[拒否と質問ルール](/docs/ja/permissions#manage-permissions)は引き続き評価されるため、`"allow"` を返すフックは一致する拒否ルールをオーバーライドしません |2066| `behavior` | `"allow"` は権限を付与し、`"deny"` は拒否します。[拒否ルールと確認ルール](/docs/ja/permissions#manage-permissions)は引き続き評価されるため、`"allow"` を返すフックが一致する拒否ルールを上書きすることはありません |

1741| `updatedInput` | `"allow"` のみ: 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。変更された入力は拒否と質問ルールに対して再評価されます |2067| `updatedInput` | `"allow"` の場合のみ:実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更したフィールドとともに変更していないフィールドも含めてください。変更された入力は、拒否ルールと確認ルールに対して再評価されます |

1742| `updatedPermissions` | `"allow"` のみ: 適用する[権限更新エントリ](#permission-update-entries)の配列。許可ルールを追加したり、セッション権限モードを変更したりするなど |2068| `updatedPermissions` | `"allow"` の場合のみ:適用する[権限更新エントリ](#permission-update-entries)の配列。許可ルールの追加やセッションの権限モードの変更などです |

1743| `message` | `"deny"` のみ: 権限が拒否された理由を Claude に伝える |2069| `message` | `"deny"` の場合のみ:権限が拒否された理由を Claude に伝えます |

1744| `interrupt` | `"deny"` のみ: `true` の場合、Claude を停止 |2070| `interrupt` | `"deny"` の場合のみ:`true` の場合、Claude を停止します |

2071 

2072`decision` オブジェクトなしで終了コード 2 で終了するフックは権限フローを変更せず、その stderr は破棄されます。リクエストを許可または拒否できるのは `decision` オブジェクトのみです。

1745 2073 

1746```json theme={null}2074```json theme={null}

1747{2075{


1761 権限更新エントリ2089 権限更新エントリ

1762</h4>2090</h4>

1763 2091 

1764`updatedPermissions` 出力フィールドと[`permission_suggestions` 入力フィールド](#permissionrequest-input)の両方が同じエントリ オブジェクトの配列を使用します。各エントリには、その他のフィールドを決定する `type` と、変更が書き込まれる場所を制御する `destination` があります。2092`updatedPermissions` 出力フィールドと [`permission_suggestions` 入力フィールド](#permissionrequest-input)は、どちらも同じエントリオブジェクトの配列を使用します。各エントリには、他のフィールドを決定する `type` と、変更の書き込み先を制御する `destination` があります。

1765 2093 

1766| `type` | フィールド | 効果 |2094| `type` | フィールド | 効果 |

1767| :- | :- | :- |2095| :- | :- | :- |

1768| `addRules` | `rules`、`behavior`、`destination` | 権限ルールを追加します。`rules` は `{toolName, ruleContent?}` オブジェクトの配列です。ツール全体にマッチするには `ruleContent` を省略します。`behavior` は `"allow"`、`"deny"`、または `"ask"` |2096| `addRules` | `rules`、`behavior`、`destination` | 権限ルールを追加します。`rules` は `{toolName, ruleContent?}` オブジェクトの配列です。ツール全体に一致させるには `ruleContent` を省略します。`behavior` は `"allow"`、`"deny"`、または `"ask"` です |

1769| `replaceRules` | `rules`、`behavior`、`destination` | `destination` で指定された `behavior` のすべてのルールを提供されたルールに置き換えます |2097| `replaceRules` | `rules`、`behavior`、`destination` | `destination` にある指定された `behavior` のすべてのルールを、指定された `rules` で置き換えます |

1770| `removeRules` | `rules`、`behavior`、`destination` | 指定された `behavior` の一致するルールを削除 |2098| `removeRules` | `rules`、`behavior`、`destination` | 指定された `behavior` の一致するルールを削除します |

1771| `setMode` | `mode`、`destination` | 権限モードを変更します。有効なモードは `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan`、`manual`(`default` のエイリアス)です。`manual` エイリアスには Claude Code v2.1.200 以降が必要です |2099| `setMode` | `mode`、`destination` | 権限モードを変更します。有効なモードは `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan`、および `default` のエイリアスとしての `manual` です。`manual` エイリアスには Claude Code v2.1.200 以降が必要です |

1772| `addDirectories` | `directories`、`destination` | 作業ディレクトリを追加します。`directories` はパス文字列の配列 |2100| `addDirectories` | `directories`、`destination` | 作業ディレクトリを追加します。`directories` はパス文字列の配列です |

1773| `removeDirectories` | `directories`、`destination` | 作業ディレクトリを削除 |2101| `removeDirectories` | `directories`、`destination` | 作業ディレクトリを削除します |

1774 2102 

1775<Note>2103<Note>

1776 `setMode` で `bypassPermissions` を使用する場合、セッションが既にバイパス モードで起動されている場合のみ有効です。`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`、または設定の `permissions.defaultMode: "bypassPermissions"` を使用し、モードが [`permissions.disableBypassPermissionsMode`](/docs/ja/permissions#managed-settings)で無効化されていない場合。それ以外の場合、更新は no-op です。`bypassPermissions` は `destination` に関係なく `defaultMode` として永続化されません。2104 `bypassPermissions` を指定した `setMode` は、バイパスモードがすでに利用可能な状態でセッションを起動した場合にのみ有効になります。具体的には、`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` のいずれかを指定するか、[ユーザー設定、`--settings`、または管理設定](/docs/ja/settings-reference#permissions-defaultmode)で `permissions.defaultMode: "bypassPermissions"` を指定して起動した場合です。それ以外の場合、この更新は何も行いません。また、[`permissions.disableBypassPermissionsMode`](/docs/ja/permissions#managed-settings) によってこのモードが無効化されている場合や、セッションが [restricted モード](/docs/ja/cli-reference#cli-flags)で開始された場合も、この更新は何も行いません。

2105 

2106 `destination` に関係なく、`bypassPermissions` が `defaultMode` として永続化されることはありません。

1777</Note>2107</Note>

1778 2108 

1779すべてのエントリの `destination` フィールドは、変更がメモリに留まるか設定ファイルに永続化されるかを決定します。2109各エントリの `destination` フィールドによって、変更をメモリ内にとどめるか設定ファイルに永続化するかが決まります。

1780 2110 

1781| `destination` | 書き込み先 |2111| `destination` | 書き込み先 |

1782| :- | :- |2112| :- | :- |

1783| `session` | メモリのみ、セッション終了時に破棄 |2113| `session` | メモリ内のみ。セッション終了時に破棄されます |

1784| `localSettings` | `.claude/settings.local.json` |2114| `localSettings` | `.claude/settings.local.json` |

1785| `projectSettings` | `.claude/settings.json` |2115| `projectSettings` | `.claude/settings.json` |

1786| `userSettings` | `~/.claude/settings.json` |2116| `userSettings` | `~/.claude/settings.json` |

1787 2117 

1788フックは受け取った `permission_suggestions` の 1 つを独自の `updatedPermissions` 出力として反映できます。これは、ユーザーがダイアログで「常に許可」オプションを選択するのと同等です。2118フックは、受け取った `permission_suggestions` のいずれかを、自身の `updatedPermissions` 出力としてそのまま返すことができます。

1789 2119 

1790<h3 id="posttooluse">2120<h3 id="posttooluse">

1791 PostToolUse2121 PostToolUse


1793 2123 

1794ツールが正常に完了した直後に実行されます。2124ツールが正常に完了した直後に実行されます。

1795 2125 

1796ツール名でマッチします。PreToolUse と同じ値。2126ツール名でマッチします。値は PreToolUse と同じです。

2127 

2128ツール名が適切なフィルターにならない場合は、より広くマッチさせます。

2129 

2130* 任意のツールが正常に完了した後にフックを実行するには、`matcher` を省略するか `"*"` に設定します。その後、フック自身で何が変更されたかを調べることができます。たとえば `git status --porcelain` を実行すると、`git diff` では見落とされる未追跡ファイルも一覧表示されます。失敗したツール呼び出しについては、同じフックを [PostToolUseFailure](#posttoolusefailure) にも追加してください。

2131* 何が書き込んだかにかかわらず、特定のファイルがディスク上で変更されたときにフックを実行するには、[FileChanged](#filechanged) を使用します。`Bash` コマンドや Claude Code 外部のプロセスが同じファイルを書き換えた場合、Claude Code は `Edit|Write` にマッチする `PostToolUse` フックを実行しません。

1797 2132 

1798<h4 id="posttooluse-input">2133<h4 id="posttooluse-input">

1799 PostToolUse 入力2134 PostToolUse の入力

1800</h4>2135</h4>

1801 2136 

1802`PostToolUse` フックはツールがすでに正常に実行された後に発火します。入力には、ツールに送信された引数である `tool_input` と、返された結果である `tool_response` の両方が含まれます。両方の正確なスキーマはツールに依存します。2137`PostToolUse` フックは、ツールがすでに正常に実行された後に発火します。入力には、ツールに送信された引数である `tool_input` と、ツールが返した結果である `tool_response` の両方が含まれます。どちらも正確なスキーマはツールによって異なります。ファイル系ツールの `tool_input` のパスは、[PreToolUse](#pretooluse-input) と同じ形式で渡されます。つまり、常に絶対パスで、プラットフォームネイティブの区切り文字が使われるため、Windows ではバックスラッシュになります。MCP ツールの場合、入力には [`mcp_server`](#pretooluse-input) オブジェクトも含まれます。

1803 2138 

1804```json theme={null}2139```json theme={null}

1805{2140{


1815 },2150 },

1816 "tool_response": {2151 "tool_response": {

1817 "filePath": "/path/to/file.txt",2152 "filePath": "/path/to/file.txt",

1818 "success": true2153 "type": "create"

1819 },2154 },

1820 "tool_use_id": "toolu_01ABC123...",2155 "tool_use_id": "toolu_01ABC123...",

1821 "duration_ms": 122156 "duration_ms": 12


1824 2159 

1825| フィールド | 説明 |2160| フィールド | 説明 |

1826| :- | :- |2161| :- | :- |

1827| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |2162| `duration_ms` | 省略可能。ツールの実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は含まれません |

1828 2163 

1829<h4 id="posttooluse-decision-control">2164<h4 id="posttooluse-decision-control">

1830 PostToolUse 決定制御2165 PostToolUse の決定制御

1831</h4>2166</h4>

1832 2167 

1833`PostToolUse` フックはツール実行後に Claude にフィードバックを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。2168`PostToolUse` フックは、ツール実行後に Claude にフィードバックを提供できます。すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、フックスクリプトは以下のイベント固有のフィールドを返すことができます。

1834 2169 

1835| フィールド | 説明 |2170| フィールド | 説明 |

1836| :- | :- |2171| :- | :- |

1837| `decision` | `"block"` は Claude に `reason` でプロンプトを表示。許可するには省略 |2172| `decision` | `"block"` を指定すると、ツールの結果の隣に `reason` を追加します。Claude には元の出力も引き続き表示されます。出力を置き換えるには `updatedToolOutput` を使用します |

1838| `reason` | `decision` が `"block"` のときに Claude に表示される説明 |2173| `reason` | `decision` が `"block"` のときに Claude に表示される説明 |

1839| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |2174| `additionalContext` | ツールの結果とともに Claude のコンテキストに追加される文字列。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1840| `updatedToolOutput` | ツールの出力を提供された値に置換してから Claude に送信。値はツールの出力形状と一致する必要があります |2175| `classifierContext` | Claude ではなく [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)の分類器に向けた、この呼び出しの結果に関する短いメモ。[auto モードの分類器向けに結果に注釈を付ける](#annotate-a-result-for-the-auto-mode-classifier)を参照してください。Claude Code v2.1.236 以降が必要です |

1841| `updatedMCPToolOutput` | [MCP ツール](#match-mcp-tools)のみ: ツールの出力を置換。すべてのツールで機能する `updatedToolOutput` を優先 |2176| `updatedToolOutput` | Claude に送信される前に、ツールの出力を指定した値で置き換えます。値はツールの出力の形状と一致している必要があります |

2177| `updatedMCPToolOutput` | [MCP ツール](#match-mcp-tools)の場合のみ出力を置き換えます。すべてのツールで機能する `updatedToolOutput` の使用を推奨します |

1842 2178 

1843以下の例は `Bash` 呼び出しの出力を置換します。置換値は `Bash` ツールの出力形状と一致します。2179以下の例は、`Bash` 呼び出しの出力を置き換えます。置き換える値は `Bash` ツールの出力の形状と一致しています。

1844 2180 

1845```json theme={null}2181```json theme={null}

1846{2182{


1858```2194```

1859 2195 

1860<Warning>2196<Warning>

1861 `updatedToolOutput` は Claude が見るものだけを変更します。フックが発火するまでにツールはすでに実行されているため、書き込まれたファイル、実行されたコマンド、送信されたネットワーク リクエストはすでに有効になっています。OpenTelemetry ツール スパンやアナリティクス イベントなどのテレメトリも、フックが実行される前に元の出力をキャプチャします。ツール呼び出しを実行前に防止または変更するには、代わりに[PreToolUse](#pretooluse)フックを使用します。2197 `updatedToolOutput` が変更するのは Claude に見える内容だけです。フックが発火した時点でツールはすでに実行されているため、書き込まれたファイル、実行されたコマンド、送信されたネットワークリクエストはすでに反映されています。OpenTelemetry のツールスパンや分析イベントなどのテレメトリも、フックの実行前に元の出力を記録します。ツール呼び出しを実行前に阻止または変更するには、代わりに [PreToolUse](#pretooluse) フックを使用してください。

1862 2198 

1863 置換値はツールの出力形状と一致する必要があります。組み込みツールは単純な文字列ではなく構造化オブジェクトを返します。例えば、`Bash` は `stdout`、`stderr`、`interrupted`、`isImage` フィールドを持つオブジェクトを返します。組み込みツールの場合、ツールの出力スキーマと一致しない値は無視され、元の出力が使用されます。MCP ツール出力はスキーマ検証なしで渡されます。Claude が必要とするエラー詳細を削除すると、Claude が誤った仮定で進行する可能性があります。2199 置き換える値はツールの出力の形状と一致している必要があります。組み込みツールはプレーンな文字列ではなく構造化されたオブジェクトを返します。たとえば、`Bash` は `stdout`、`stderr`、`interrupted`、`isImage` フィールドを持つオブジェクトを返します。組み込みツールの場合、ツールの出力スキーマと一致しない値は無視され、元の出力が使用されます。MCP ツールの出力はスキーマ検証なしでそのまま渡されます。Claude が必要とするエラーの詳細を取り除くと、Claude が誤った前提のまま処理を進める可能性があります。

2200</Warning>

2201 

2202<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2203 auto モードの分類器向けに結果に注釈を付ける

2204</h4>

2205 

2206`classifierContext` を返すと、ツール呼び出しの結果に関する短いメモを Claude ではなく [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)の分類器に送信できます。分類器は[ツールの結果そのものを受け取ることはない](/docs/ja/permission-modes#how-the-classifier-evaluates-actions)ため、分類器が後続のアクションを審査する前に、呼び出しが何を返したかについて伝えるには、このフィールドを使用するのが公式にサポートされた方法です。このフィールドには Claude Code v2.1.236 以降が必要です。

2207 

2208以下の例は、クエリの出力がどこから来たかを分類器に伝えます。

2209 

2210```json theme={null}

2211{

2212 "hookSpecificOutput": {

2213 "hookEventName": "PostToolUse",

2214 "classifierContext": "This query ran against the staging database, not production."

2215 }

2216}

2217```

2218 

2219分類器がメモをどの程度重視するかは、フックをどこで設定したかによって異なります。

2220 

2221* **Claude Code で設定されたフック**: 設定ファイル、プラグイン、スキル、エージェントのフロントマターからのフックの場合、分類器はメモを未検証のアプリケーション提供コンテキストとして扱います。メモがユーザーの意図を確定させることはなく、ユーザーが何かを承認または要求したとメモが主張している場合、分類器はその主張を会話内のユーザー自身のメッセージと照合します

2222* **インプロセスの Agent SDK コールバック**: Claude Code を組み込んだアプリケーションがフックを [TypeScript SDK コールバック](/docs/ja/agent-sdk/hooks)として登録し、ライブセッション中にメモを返す場合、分類器はメモで中継されたユーザーの発言をユーザーの意図として考慮することがあります。そのような発言は、ユーザーが送信したメッセージであれば分類器が受け入れる同意要件を満たすことができますが、ユーザー自身のメッセージでも解除できないブロックを解除することはありません。セッションが再開された後は、Claude Code は復元されたメモを未検証のコンテキストとして扱います。両方のグループのフックが同じ呼び出しに注釈を付けた場合、分類器は結合されたメモを未検証として扱います

2223 

2224Claude Code はメモを配信する際に以下の制限を適用します。

2225 

2226* **長さ**: Claude Code は 1 回のツール呼び出しに対するメモを 2,000 文字に制限し、残りを切り捨てます。この上限は、その呼び出しに応答するすべてのフックで共有されます

2227* **同期応答のみ**: [バックグラウンドで実行される](#run-hooks-in-the-background)フックの応答内のこのフィールドは無視されます。その応答は Claude Code がツールの結果を記録した後に届くためです

2228* **分類器が記録しない呼び出し**: 分類器のトランスクリプトには、ファイルの読み取りや検索などの読み取り専用の参照は含まれません。Claude Code はそれらの呼び出しに付けられたメモを破棄します

2229* **書き換えとの相互作用**: `updatedToolOutput` で置き換える出力についてメモで説明する場合は、同じフックの応答で両方のフィールドを返してください。その書き換えが拒否された場合や、別のフックの書き換えで置き換えられた場合、Claude Code はメモを破棄します。書き換えなしで返したメモは、別のフックが出力を書き換えた場合でも Claude Code が配信します

2230 

2231<Warning>

2232 分類器は `classifierContext` に入れた内容を、セッションをホストしているアプリケーションからの情報として読み取ります。そのため、信頼できないツールの出力やサードパーティのテキストをこのフィールドにコピーしないでください。メモは、出所に関する事実やそれについてのユーザーの発言など、この 1 回の呼び出しに関する短い主張にとどめてください。無関係なメッセージやイベントのストリームを配信するためにこのフィールドを使用しないでください。

1864</Warning>2233</Warning>

1865 2234 

1866<h3 id="posttoolusefailure">2235<h3 id="posttoolusefailure">

1867 PostToolUseFailure2236 PostToolUseFailure

1868</h3>2237</h3>

1869 2238 

1870ツール実行が失敗するときに実行されます。このイベントはエラーをスロー、または失敗結果を返すツール呼び出しに対して発火します。これを使用して失敗をログ、アラートを送信、または Claude に是正フィードバックを提供します。2239実行を開始したツールが失敗したとき、つまりツールがエラーをスローしたとき、または MCP ツールがエラー結果を返したときに実行されます。失敗をログに記録したり、アラートを送信したり、Claude に修正のためのフィードバックを提供したりするために使用します。

1871 2240 

1872ツール名でマッチします。PreToolUse と同じ値。2241ツール名でマッチします。値は PreToolUse と同じです。

1873 2242 

1874<Note>2243<Note>

1875 このイベントはツール呼び出しが実行前に拒否された場合には発火しません。不明なツール名、スキーマまたはツール固有の検証に失敗した入力、または権限拒否。検証拒否は `tool_use_error` 結果として返され、フックが実行される前に発生するため、`PreToolUse` も `PostToolUseFailure` も発火しません。権限拒否は `PreToolUse` を発火させますが、このイベントは発火しません。[PermissionDenied](#permissiondenied)を参照してください。2244 このイベントは、実行前に拒否されたツール呼び出しでは発火しません。これには、不明なツール名、スキーマやツール固有の検証に失敗した入力、権限の拒否が含まれます。検証による拒否は `tool_use_error` 結果として返され、フックの実行前に発生するため、`PreToolUse` も `PostToolUseFailure` も発火しません。権限の拒否では `PreToolUse` は発火しますが、このイベントは発火しません。[PermissionDenied](#permissiondenied) を参照してください。

1876</Note>2245</Note>

1877 2246 

1878<h4 id="posttoolusefailure-input">2247<h4 id="posttoolusefailure-input">

1879 PostToolUseFailure 入力2248 PostToolUseFailure の入力

1880</h4>2249</h4>

1881 2250 

1882PostToolUseFailure フックは PostToolUse と同じ `tool_name` と `tool_input` フィールドを受け取り、エラー情報をトップレベル フィールドとして受け取ります。2251PostToolUseFailure フックは、PostToolUse と同じ `tool_name` および `tool_input` フィールドに加えて、エラー情報をトップレベルのフィールドとして受け取ります。MCP ツールの場合は、[`mcp_server`](#pretooluse-input) オブジェクトも受け取ります。たとえば、`npm test` コマンドが失敗した場合は次のように渡されます。

1883 2252 

1884```json theme={null}2253```json theme={null}

1885{2254{


1894 "description": "Run test suite"2263 "description": "Run test suite"

1895 },2264 },

1896 "tool_use_id": "toolu_01ABC123...",2265 "tool_use_id": "toolu_01ABC123...",

1897 "error": "Command exited with non-zero status code 1",2266 "error": "Exit code 1\nError: Cannot find module 'express'",

1898 "is_interrupt": false,2267 "is_interrupt": false,

1899 "duration_ms": 41872268 "duration_ms": 4187

1900}2269}


1902 2271 

1903| フィールド | 説明 |2272| フィールド | 説明 |

1904| :- | :- |2273| :- | :- |

1905| `error` | 何が悪かったかを説明する文字列 |2274| `error` | 何が問題だったかを説明する文字列。形式は失敗したツールによって異なります |

1906| `is_interrupt` | 失敗がユーザー割り込みによって引き起こされたかどうかを示すオプション ブール値 |2275| `is_interrupt` | 省略可能なブール値。ツールが報告したエラーとしてではなく、中断として Claude Code に失敗が伝わった場合に true になります。実行中のツールをキャンセルしてもこのフックは発火せず、代わりにツールの結果に中断メッセージが含まれます |

1907| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |2276| `duration_ms` | 省略可能。ツールの実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は含まれません |

2277 

2278`error` 文字列は通常、失敗したツールの結果として Claude が受け取るテキストと同じです。その形式はツールや失敗の種類によって異なります。フックの判定には `tool_name`、`is_interrupt`、および先頭行の `Exit code N` を使用し、文字列の残りの部分は安定した形式ではなく表示用テキストとして扱ってください。

2279 

2280* Bash と PowerShell では、実行されて終了したコマンドは、先頭行が `Exit code N` となり、その後にコマンドが出力した内容が stdout と stderr の混在した 1 つのブロックとして続きます

2281* Claude Code がシェルプロセス自体を起動できなかった場合、ペイロードには終了コードの行がない、失敗メッセージのみが含まれることもあります

2282* Claude Code は長い文字列の中間部分を `... [N characters truncated] ...` マーカーで切り詰めるほか、`Command timed out after 2m 0s` などの独自の行を挿入することがあります

1908 2283 

1909<h4 id="posttoolusefailure-decision-control">2284<h4 id="posttoolusefailure-decision-control">

1910 PostToolUseFailure 決定制御2285 PostToolUseFailure の決定制御

1911</h4>2286</h4>

1912 2287 

1913`PostToolUseFailure` フックはツール失敗後に Claude にコンテキストを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。2288`PostToolUseFailure` フックは、ツールの失敗後に Claude にコンテキストを提供できます。すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、フックスクリプトは以下のイベント固有のフィールドを返すことができます。

1914 2289 

1915| フィールド | 説明 |2290| フィールド | 説明 |

1916| :- | :- |2291| :- | :- |

1917| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |2292| `additionalContext` | エラーとともに Claude のコンテキストに追加される文字列。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1918 2293 

1919```json theme={null}2294```json theme={null}

1920{2295{


1929 PostToolBatch2304 PostToolBatch

1930</h3>2305</h3>

1931 2306 

1932バッチ内のすべてのツール呼び出しが解決された後、Claude Code が次のモデル リクエストを送信する前に、1 回実行されます。`PostToolUse` はツールごとに 1 回発火します。つまり、Claude が並列ツール呼び出しを行うときに同時に発火します。`PostToolBatch` は完全なバッチで正確に 1 回発火するため、単一のツールではなく、実行されたツールのセットに依存するコンテキストを注入するのに適切な場所です。このイベントにはマッチャーがありません。2307バッチ内のすべてのツール呼び出しが解決された後、Claude Code がモデルに次のリクエストを送信する前に 1 回実行されます。`PostToolUse` はツールごとに 1 回発火するため、Claude が並列のツール呼び出しを行うと同時に発火します。`PostToolBatch` はバッチ全体に対して正確に 1 回だけ発火するため、単一のツールではなく実行されたツールの組み合わせに依存するコンテキストを注入するのに適しています。このイベントには matcher はありません。

1933 2308 

1934<h4 id="posttoolbatch-input">2309<h4 id="posttoolbatch-input">

1935 PostToolBatch 入力2310 PostToolBatch の入力

1936</h4>2311</h4>

1937 2312 

1938[共通入力フィールド](#common-input-fields)に加えて、PostToolBatch フックはバッチ内のすべてのツール呼び出しを説明する `tool_calls` 配列を受け取ります。2313[共通の入力フィールド](#common-input-fields)に加えて、PostToolBatch フックは、バッチ内のすべてのツール呼び出しを記述する配列である `tool_calls` を受け取ります。

1939 2314 

1940```json theme={null}2315```json theme={null}

1941{2316{


1949 "tool_name": "Read",2324 "tool_name": "Read",

1950 "tool_input": {"file_path": "/.../ledger/accounts.py"},2325 "tool_input": {"file_path": "/.../ledger/accounts.py"},

1951 "tool_use_id": "toolu_01...",2326 "tool_use_id": "toolu_01...",

1952 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."2327 "tool_response": "1\tfrom __future__ import annotations\n2\t..."

1953 },2328 },

1954 {2329 {

1955 "tool_name": "Read",2330 "tool_name": "Read",

1956 "tool_input": {"file_path": "/.../ledger/transactions.py"},2331 "tool_input": {"file_path": "/.../ledger/transactions.py"},

1957 "tool_use_id": "toolu_02...",2332 "tool_use_id": "toolu_02...",

1958 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."2333 "tool_response": "1\tfrom __future__ import annotations\n2\t..."

1959 }2334 }

1960 ]2335 ]

1961}2336}

1962```2337```

1963 2338 

1964`tool_response` はモデルが対応する `tool_result` ブロックで受け取るのと同じコンテンツを含みます。値はツールが発行したのと同じように、シリアル化された文字列またはコンテンツ ブロック配列です。`Read` の場合、これは生のファイル コンテンツではなく、行番号が付いたテキストを意味します。応答は大きくなる可能性があるため、必要なフィールドのみを解析してください。2339`tool_response` には、モデルが対応する `tool_result` ブロックで受け取るのと同じ内容が含まれます。値は、ツールが出力したとおりのシリアライズされた文字列またはコンテンツブロックの配列です。`Read` の場合、これは生のファイル内容ではなく、行番号が先頭に付いたテキストを意味します。応答は大きくなる可能性があるため、必要なフィールドのみを解析してください。

1965 2340 

1966<Note>2341<Note>

1967 `tool_response` の形状は `PostToolUse` のものと異なります。`PostToolUse` はツールの構造化 `Output` オブジェクト(`Write` の場合は `{filePath: "...", success: true}` など)を渡します。`PostToolBatch` はモデルが見るシリアル化された `tool_result` コンテンツを渡します。2342 `tool_response` の形状は `PostToolUse` のものとは異なります。`PostToolUse` はツールの構造化された `Output` オブジェクト(`Write` の場合は `{filePath: "...", type: "create"}` など)を渡しますが、`PostToolBatch` はモデルが参照するシリアライズされた `tool_result` の内容を渡します。

1968</Note>2343</Note>

1969 2344 

1970<h4 id="posttoolbatch-decision-control">2345<h4 id="posttoolbatch-decision-control">

1971 PostToolBatch 決定制御2346 PostToolBatch の決定制御

1972</h4>2347</h4>

1973 2348 

1974`PostToolBatch` フックは Claude のコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。2349`PostToolBatch` フックは、Claude にコンテキストを注入できます。すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、フックスクリプトは以下のイベント固有のフィールドを返すことができます。

1975 2350 

1976| フィールド | 説明 |2351| フィールド | 説明 |

1977| :- | :- |2352| :- | :- |

1978| `additionalContext` | 次のモデル呼び出しの前に 1 回注入されるコンテキスト文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |2353| `additionalContext` | 次のモデル呼び出しの前に 1 回注入されるコンテキスト文字列。配信の詳細、含める内容、再開されたセッションが過去の値をどう扱うかについては、[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1979 2354 

1980```json theme={null}2355```json theme={null}

1981{2356{


1986}2361}

1987```2362```

1988 2363 

1989`decision: "block"` または `continue: false` を返すと、次のモデル呼び出しの前に agentic ループが停止します。2364`decision: "block"` または `continue: false` を返すと、次のモデル呼び出しの前にエージェント型ループが停止します。ブロックメッセージは、JSON の `reason` または `stopReason`、あるいは終了コード 2 の場合は stderr から取得されます。このメッセージはトランスクリプトに警告として表示され、会話内に残るため、会話が続行されると Claude にも表示されます。

1990 2365 

1991<h3 id="permissiondenied">2366<h3 id="permissiondenied">

1992 PermissionDenied2367 PermissionDenied

1993</h3>2368</h3>

1994 2369 

1995[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器がツール呼び出しを拒否するときに実行されます。このフックは自動モードでのみ発火します。手動で権限ダイアログを拒否するとき、`PreToolUse` フックがコールをブロックするとき、または `deny` ルールがマッチするときは実行されません。これを使用して分類器の拒否をログ、設定を調整、またはモデルがツール呼び出しを再試行できることを伝えます。2370[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)がツール呼び出しを拒否したときに実行されます。これには、[auto モードとは別の安全性チェックが分類器自身のリクエストを拒否した](/docs/ja/errors#auto-mode-cannot-determine-the-safety-of-an-action)ため、または分類器の応答を解析できなかったために、分類器の判定なしで拒否された場合も含まれます。このフックは auto モードでのみ発火します。権限ダイアログを手動で拒否した場合、`PreToolUse` フックが呼び出しをブロックした場合、`deny` ルールがマッチした場合には実行されません。拒否をログに記録したり、設定を調整したり、ツール呼び出しを再試行してよいことをモデルに伝えたりするために使用します。

1996 2371 

1997ツール名でマッチします。PreToolUse と同じ値。2372ツール名でマッチします。値は PreToolUse と同じです。

1998 2373 

1999<h4 id="permissiondenied-input">2374<h4 id="permissiondenied-input">

2000 PermissionDenied 入力2375 PermissionDenied の入力

2001</h4>2376</h4>

2002 2377 

2003[共通入力フィールド](#common-input-fields)に加えて、PermissionDenied フックは `tool_name`、`tool_input`、`tool_use_id`、`reason` を受け取ります。2378[共通の入力フィールド](#common-input-fields)に加えて、PermissionDenied フックは `tool_name`、`tool_input`、`tool_use_id`、`reason` を受け取ります。MCP ツールの場合は、[`mcp_server`](#pretooluse-input) オブジェクトも受け取ります。

2004 2379 

2005```json theme={null}2380```json theme={null}

2006{2381{


2015 "description": "Clean build directory"2390 "description": "Clean build directory"

2016 },2391 },

2017 "tool_use_id": "toolu_01ABC123...",2392 "tool_use_id": "toolu_01ABC123...",

2018 "reason": "Auto mode denied: command targets a path outside the project"2393 "reason": "[Irreversible Local Destruction]"

2019}2394}

2020```2395```

2021 2396 

2022| フィールド | 説明 |2397| フィールド | 説明 |

2023| :- | :- |2398| :- | :- |

2024| `reason` | ツール呼び出しが拒否された理由の分類器の説明 |2399| `reason` | 拒否の理由。分類器の判定の場合、ほとんどのセッションでは `[Data Exfiltration]` のように、マッチしたルールを角括弧で囲んで示します。その他の形式については [拒否を確認する](/docs/ja/auto-mode-config#review-denials)を参照してください。[判定なしの拒否](#permissiondenied-decision-control)の場合は、`Auto mode could not evaluate this action and is blocking it for safety` で始まります。分類器モデルが利用できなかったための拒否の場合は、固定テキスト `Classifier unavailable` になります |

2025 2400 

2026<h4 id="permissiondenied-decision-control">2401<h4 id="permissiondenied-decision-control">

2027 PermissionDenied 決定制御2402 PermissionDenied の決定制御

2028</h4>2403</h4>

2029 2404 

2030PermissionDenied フックはモデルが拒否されたツール呼び出しを再試行できることを伝えることができます。`hookSpecificOutput.retry` を `true` に設定した JSON オブジェクトを返します。2405PermissionDenied フックは、拒否されたツール呼び出しを再試行してよいことをモデルに伝えることができます。`hookSpecificOutput.retry` を `true` に設定した JSON オブジェクトを返します。

2031 2406 

2032```json theme={null}2407```json theme={null}

2033{2408{


2038}2413}

2039```2414```

2040 2415 

2041`retry` が `true` の場合、Claude Code は会話にメッセージを追加し、モデルがツール呼び出しを再試行できることを伝えます。拒否自体は反転されません。フックが JSON を返さない場合、または `retry: false` を返す場合、拒否は立ったままで、モデルは元の拒否メッセージを受け取ります。2416`retry` が `true` の場合、Claude Code はツール呼び出しを再試行してよいことをモデルに伝えるメッセージを会話に追加します。Claude Code が拒否自体を取り消すことはありません。フックが JSON を返さない場合、または `retry: false` を返した場合は、拒否がそのまま維持され、モデルは元の拒否メッセージを受け取ります。

2417 

2418分類器が[アクションに対して判定を下さなかった](/docs/ja/errors#auto-mode-cannot-determine-the-safety-of-an-action)場合、つまり分類器の応答を解析できなかった場合や、auto モードとは別の安全性チェックが分類器自身のリクエストを拒否した場合、Claude Code は `retry: true` を無視します。そのような拒否については、後で再試行するか次に進むかを、Claude Code がすでに拒否メッセージでモデルに伝えています。

2042 2419 

2043<h3 id="notification">2420<h3 id="notification">

2044 Notification2421 Notification

2045</h3>2422</h3>

2046 2423 

2047Claude Code が通知を送信するときに実行されます。通知タイプでマッチします。マッチャーを省略して、すべての通知タイプのフックを実行します。2424Claude Code が通知を送信するときに実行されます。通知タイプでマッチします。すべての通知タイプでフックを実行するには、matcher を省略します。

2425 

2426デスクトップ通知をオフにしていても、これらのフックイベントは受け取ります。`notifications_disabled` を含む `preferredNotifChannel` 設定が変更するのは通知方法のみであり、フックが実行されるかどうかには影響しません。

2048 2427 

2049| マッチャー | いつ発火するか |2428| Matcher | 発火するタイミング |

2050| :- | :- |2429| :- | :- |

2051| `permission_prompt` | Claude が権限承認を必要とする |2430| `permission_prompt` | Claude がツールの使用、またはサンドボックス化されたコマンドの[ネットワークリクエスト](/docs/ja/sandboxing#network-isolation)の承認を必要としており、プロンプトが約 6 秒間待機している |

2052| `idle_prompt` | Claude が完了して次のプロンプトを待機 |2431| `idle_prompt` | Claude が約 60 秒前に応答を終え、その後ユーザーが入力していない |

2053| `auth_success` | 認証が完了 |2432| `auth_success` | 認証が完了した |

2054| `elicitation_dialog` | MCP サーバーが elicitation フォームを開く |2433| `elicitation_dialog` | MCP サーバーが elicitation フォームを開き、ユーザーが約 6 秒間入力していない |

2055| `elicitation_complete` | MCP elicitation フォームが送信または却下 |2434| `elicitation_url_dialog` | MCP サーバーがブラウザの URL を開くよう求め、ユーザーが約 6 秒間入力していない |

2056| `elicitation_response` | MCP elicitation レスポンスがサーバーに送信 |2435| `elicitation_complete` | MCP サーバーが [URL モードの elicitation](#elicitation-input) の完了を報告した |

2057| `agent_needs_input` | バックグラウンド セッションが入力を待機開始。[エージェント ビュー](/docs/ja/agent-view)がターミナルで開いている場合のみ発火 |2436| `elicitation_response` | MCP elicitation の応答がサーバーに返送された |

2058| `agent_completed` | バックグラウンド セッションが完了または失敗。[エージェント ビュー](/docs/ja/agent-view)がターミナルで開いている場合のみ発火 |2437| `agent_needs_input` | [エージェントビュー](/docs/ja/agent-view)がターミナルで開いている間に、バックグラウンドセッションがユーザーの入力待ちを開始した。また、ターミナルセッションが[エージェントチームのチームメイトのターミナル設定に関する質問](/docs/ja/agent-teams#choose-a-display-mode)や、auto モードの[分類器リクエストの料金](/docs/ja/auto-mode-classifier-billing)に関するお知らせを表示し、ユーザーが約 6 秒間入力していない場合にも発火する |

2438| `agent_completed` | バックグラウンドセッションが完了または失敗した。[エージェントビュー](/docs/ja/agent-view)がターミナルで開いている間のみ発火する |

2439| `quota_auto_resume_fired` | claude.ai の使用制限によって一時停止されたタスクを Claude Code が続行した。リセット時、または待機中に使用クレジットの追加、プランのアップグレード、モデルの切り替えなど Claude Code 内で行った操作によって再び使用可能になった場合はそれより早く続行する。ただし [モデル設定の例外](/docs/ja/interactive-mode#wait-for-a-usage-limit-to-reset)がある |

2440| `quota_auto_resume_stale` | コンピューターが約 30 分以上スリープしている間に claude.ai の使用制限がリセットされた。Claude Code は続行せず、ユーザーが `Enter` を押すのを待つ。スリープがより短い場合は続行し、代わりに `quota_auto_resume_fired` を発火する |

2441| `quota_auto_resume_disabled` | Claude Code がタスクを続行せずに claude.ai の使用制限の待機を終了した。原因は、Claude Code が自動的に開始した待機中に [`autoContinueAtUsageLimit`](/docs/ja/settings-reference#autocontinueatusagelimit) がオフになった、またはリセットが 24 時間以上先に移動した、続行したタスクが制限に達し続けた、あるいは続行がモデルに到達する前にブロックされた、のいずれか。`Esc` や `Ctrl+C` を押した場合、または **Don't continue automatically** を選択した場合は発火しない |

2442 

2443`agent_needs_input` および `agent_completed` タイプには Claude Code v2.1.198 以降が必要です。

2444 

2445`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` タイプには Claude Code v2.1.234 以降が必要です。

2059 2446 

2060`agent_needs_input` と `agent_completed` タイプには Claude Code v2.1.198 以降が必要です。2447ターミナルセッションで、サンドボックス化されたコマンドのネットワークリクエストに対する `permission_prompt` には Claude Code v2.1.246 以降が必要です。

2061 2448 

2062異なるマッチャーを使用して、通知タイプに応じて異なるハンドラーを実行します。この設定は、Claude が権限承認を必要とするときに権限固有のアラート スクリプトをトリガーし、Claude がアイドル状態になったときに異なる通知をトリガーします。2449チームメイトのターミナル設定に関する質問に対する `agent_needs_input` には Claude Code v2.1.248 以降が必要です。

2450 

2451<Note>

2452 `permission_prompt`、`idle_prompt`、`elicitation_dialog`、`elicitation_url_dialog` タイプはデスクトップ通知とタイミングを共有しているため、ターミナルセッションでは、ユーザーがターミナルから離れていると判断される場合にのみ表示されます。

2453 

2454 * `permission_prompt` は、ユーザーが約 6 秒間入力しなかった時点で発火します。タイマーは権限プロンプトが表示されたときに開始し、キーを押すたびに延期されます。Claude がツールの使用権限を求めたときに即座にフックを実行するには、代わりに [PermissionRequest](#permissionrequest) を使用してください。

2455 * `idle_prompt` は、Claude が応答を終えてから約 60 秒後に、その間ユーザーが入力していない場合にのみ発火します。Claude Code が claude.ai の使用制限のリセットを待っている間は、`idle_prompt` は送信されません。待機が自動的に終了すると、代わりに `quota_auto_resume_*` タイプのいずれかが発火します。

2456 * `elicitation_dialog`(elicitation フォームの場合)または `elicitation_url_dialog`(ブラウザの URL リクエストの場合)は、ユーザーが約 6 秒間入力しなかった時点で発火します。どちらも `permission_prompt` と同じ 6 秒の待機条件を共有しており、タイマーはダイアログが表示されたときに開始し、キーを押すたびに延期されます。

2457 

2458 別のダイアログが画面に表示されている間に届いた権限リクエストや elicitation にも、リクエストが届いた時点から計測される同じ 6 秒の待機条件が適用されます。そのため、リクエストが開いているダイアログの後ろでまだ待機している間に、その通知が届くことがあります。

2459</Note>

2460 

2461Claude Code が権限リクエストを Agent SDK の [`canUseTool` コールバック](/docs/ja/agent-sdk/user-input)に送信するセッションでは、`permission_prompt` のタイミングが異なります。Claude Desktop や VS Code 拡張機能はこの方法で Claude Code をホストしています。

2462 

2463* `permission_prompt` は、Claude が権限を求めてから約 6 秒後に発火します。ユーザーが入力していても延期されません。

2464* ユーザーまたは [PermissionRequest](#permissionrequest) フックがそれより早く応答した場合、Claude Code は `permission_prompt` を実行しません。

2465* これらのセッションで `permission_prompt` をオフにするには、[`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ja/env-vars) を `1` に設定します。

2466 

2467v2.1.233 より前は、これらのセッションで `permission_prompt` は発火しませんでした。

2468 

2469通知タイプに応じて異なるハンドラーを実行するには、個別の matcher を使用します。以下の設定では、Claude が権限の承認を必要とするときに権限専用のアラートスクリプトを起動し、Claude がアイドル状態になったときには別の通知を起動します。

2063 2470 

2064```json theme={null}2471```json theme={null}

2065{2472{


2089```2496```

2090 2497 

2091<h4 id="notification-input">2498<h4 id="notification-input">

2092 Notification 入力2499 Notification の入力

2093</h4>2500</h4>

2094 2501 

2095[共通入力フィールド](#common-input-fields)に加えて、Notification フックは通知テキストを含む `message`、オプションの `title`、発火したタイプを示す `notification_type` を受け取ります。2502[共通の入力フィールド](#common-input-fields)に加えて、Notification フックは、通知テキストを含む `message`、省略可能な `title`、どのタイプが発火したかを示す `notification_type` を受け取ります。

2096 2503 

2097```json theme={null}2504```json theme={null}

2098{2505{


2106}2513}

2107```2514```

2108 2515 

2109Notification フックは通知をブロックまたは変更できません。これらは副作用(外部サービスへの通知の転送など)を目的としています。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)(`systemMessage` など)が適用されます。2516Notification フックは通知をブロックしたり変更したりすることはできません。Claude Code はフックの `systemMessage` および `continue` フィールドを破棄しますが、[`terminalSequence`](#emit-terminal-notifications) は引き続き出力します。デスクトップ通知の例はこれを利用しています。Notification フックは、通知を外部サービスに転送するなどの副作用を目的としています。

2110 2517 

2111<h3 id="subagentstart">2518<h3 id="subagentstart">

2112 SubagentStart2519 SubagentStart

2113</h3>2520</h3>

2114 2521 

2115Agent ツール経由でサブエージェントが生成されるときに実行されます。エージェント タイプ名でフィルタリングするマッチャーをサポート。組み込みエージェントの場合、これはエージェント名(`general-purpose`、`Explore`、`Plan` など)です。[カスタム サブエージェント](/docs/ja/sub-agents)の場合、これはファイル名ではなく、エージェントのフロントマターの `name` フィールドです。2522Claude が Agent ツールでサブエージェントを起動したとき、Claude が[サブエージェントを再開](/docs/ja/sub-agents#resume-subagents)したとき、およびインプロセスの[エージェントチーム](/docs/ja/agent-teams)のチームメイトが新しいメッセージを処理するたびに実行されます。エージェントタイプ名でフィルタリングするための matcher をサポートしています。組み込みエージェントの場合、これは `general-purpose`、`Explore`、`Plan` などのエージェント名です。[カスタムサブエージェント](/docs/ja/sub-agents)の場合は、ファイル名ではなく、エージェントのフロントマターの `name` フィールドです。

2116 2523 

2117[プラグイン](/docs/ja/plugins)から出荷されたサブエージェントの場合、エージェント タイプはプラグイン スコープの識別子(`my-plugin:reviewer` など)で、ベアのフロントマター名ではありません。コロンはプラグイン スコープの名前を正規表現パスに配置するため、正確なマッチのためにマッチャーを `^` と `$` でアンカーします。`^my-plugin:reviewer$`。2524[プラグイン](/docs/ja/plugins/overview)で提供されるサブエージェントの場合、エージェントタイプは単なるフロントマターの名前ではなく、`my-plugin:reviewer` のようなプラグインスコープの識別子になります。コロンが含まれるため、プラグインスコープの名前は正規表現として処理されます。完全一致させるには、`^my-plugin:reviewer$` のように matcher を `^` と `$` で固定してください。

2118 2525 

2119<h4 id="subagentstart-input">2526<h4 id="subagentstart-input">

2120 SubagentStart 入力2527 SubagentStart の入力

2121</h4>2528</h4>

2122 2529 

2123[共通入力フィールド](#common-input-fields)に加えて、SubagentStart フックはサブエージェントの一意の識別子を含む `agent_id` とエージェント名を含む `agent_type` を受け取ります。2530[共通の入力フィールド](#common-input-fields)に加えて、SubagentStart フックは、サブエージェントの一意の識別子を含む `agent_id` と、matcher のフィルタリング対象となるエージェント名を含む `agent_type` を受け取ります。

2124 2531 

2125```json theme={null}2532```json theme={null}

2126{2533{


2133}2540}

2134```2541```

2135 2542 

2136SubagentStart フックはサブエージェント作成をブロックできませんが、サブエージェントにコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、以下を返すことができます。2543SubagentStart フックはサブエージェントの作成をブロックできませんが、サブエージェントにコンテキストを注入することはできます。すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、以下を返すことができます。

2137 2544 

2138| フィールド | 説明 |2545| フィールド | 説明 |

2139| :- | :- |2546| :- | :- |

2140| `additionalContext` | サブエージェントのコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |2547| `additionalContext` | サブエージェントの会話の開始時、最初のプロンプトの前に、サブエージェントのコンテキストに追加される文字列。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

2141 2548 

2142```json theme={null}2549```json theme={null}

2143{2550{


2148}2555}

2149```2556```

2150 2557 

2558同じサブエージェントに対してフックが再度実行された場合、Claude Code は、サブエージェントのコンテキストに以前の実行時のコピーがまだ含まれていない場合にのみ、返されたコンテキストを注入します。起動時に注入されたコピーはそのまま残るため、サブエージェントの[プロンプトキャッシュ](/docs/ja/prompt-caching#subagents-and-the-cache)は維持されます。[自動圧縮](/docs/ja/sub-agents#auto-compaction)によってそのコピーが破棄された後は、Claude Code は次の実行時のコンテキストを再度注入します。

2559 

2151<h3 id="subagentstop">2560<h3 id="subagentstop">

2152 SubagentStop2561 SubagentStop

2153</h3>2562</h3>

2154 2563 

2155Claude Code サブエージェントが応答を終了したときに実行されます。エージェント タイプでマッチします。SubagentStart と同じ値。2564Claude Code のサブエージェントが応答を終えたときに実行されます。エージェントタイプでマッチします。値は SubagentStart と同じです。

2156 2565 

2157<h4 id="subagentstop-input">2566<h4 id="subagentstop-input">

2158 SubagentStop 入力2567 SubagentStop の入力

2159</h4>2568</h4>

2160 2569 

2161[共通入力フィールド](#common-input-fields)に加えて、SubagentStop フックは `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path`、`last_assistant_message` を受け取ります。`agent_type` フィールドはマッチャー フィルタリングに使用される値です。`transcript_path` はメイン セッションのトランスクリプト、`agent_transcript_path` はネストされた `subagents/` フォルダに保存されたサブエージェント独自のトランスクリプトです。`last_assistant_message` フィールドはサブエージェントの最終応答のテキスト コンテンツを含むため、フックはトランスクリプト ファイルを解析せずにアクセスできます。2570[共通の入力フィールド](#common-input-fields)に加えて、SubagentStop フックは `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path`、`last_assistant_message` を受け取ります。`agent_type` フィールドは matcher のフィルタリングに使用される値です。`transcript_path` はメインセッションのトランスクリプトであり、`agent_transcript_path` はネストされた `subagents/` フォルダに保存されたサブエージェント自身のトランスクリプトです。`last_assistant_message` フィールドにはサブエージェントの最終応答のテキスト内容が含まれるため、フックはトランスクリプトファイルを解析せずにアクセスできます。

2571 

2572すべての SubagentStop イベントが、Claude が起動したサブエージェントから発生するわけではありません。Claude Code は、[プロンプトの提案](/docs/ja/interactive-mode#prompt-suggestions)や [`/btw` のサイドクエスチョン](/docs/ja/interactive-mode#side-questions-with-%2Fbtw)など、独自の機能の一部で内部エージェントも実行しており、それらが終了したときにも SubagentStop が発火します。それらのイベントの場合、`agent_type` はセッション自体が実行されているエージェント名([`--agent`](/docs/ja/cli-reference#cli-flags) や [`agent` 設定](/docs/ja/settings-reference#agent)で設定されたものなど)になり、セッションがエージェントなしで実行されている場合は空文字列になります。

2573 

2574エージェントタイプを指定した `matcher` は、空の `agent_type` にはマッチしません。matcher が省略されている、`""` または `"*"` である、あるいは空文字列にマッチする正規表現であるフックは、`agent_type` が空のイベントでも実行されます。

2162 2575 

2163SubagentStop フックは、Claude Code v2.1.145 以降で利用可能な、[Stop 入力](#stop-input)で説明されている `background_tasks` と `session_crons` 配列も受け取ります。両方の配列はサブエージェントではなく親セッションにスコープされています。2576Claude Code v2.1.271 以降では、[`SubagentHandback`](/docs/ja/tools-reference) ツールを使用して実行されるサブエージェントは、停止する前にそのツールを通じてレポートを配信します。その場合、`last_assistant_message` フィールドにはサブエージェントの締めくくりのテキスト(存在する場合)が含まれますが、これは配信されたレポートではありません。レポートはその呼び出しの `message` 入力であり、`SubagentHandback` にマッチする `PreToolUse` または `PostToolUse` フックは、これを `tool_input.message` として受け取ります。

2577 

2578SubagentStop フックは、[Stop の入力](#stop-input)で説明されている `background_tasks` および `session_crons` 配列も受け取ります。どちらの配列も、サブエージェントではなく親セッションを対象としています。

2164 2579 

2165```json theme={null}2580```json theme={null}

2166{2581{


2179}2594}

2180```2595```

2181 2596 

2182SubagentStop フックは[Stop フック](#stop-decision-control)と同じ決定制御形式を使用します。`hookSpecificOutput.additionalContext` を含む `hookEventName` を `"SubagentStop"` に設定して、非エラー フィードバックをサポートします。会話は続行されるため、Claude が対応できます。ただし、`decision: "block"` とは異なり、トランスクリプトでは「Stop フック フィードバック」としてラベル付けされ、フック エラー通知は表示されません。`decision: "block"` を `reason` と一緒に返すとサブエージェントを実行し続け、`reason` をサブエージェントの次の命令として配信します。サブエージェントが戻った後に親セッションにコンテキストを注入するには、代わりに `Agent` ツール上の [`PostToolUse`](#posttooluse)フックを使用します。2597SubagentStop フックは [Stop フック](#stop-decision-control)と同じ決定制御形式を使用します。これには、サブエージェントの実行を継続させるエラーではないフィードバックとして、`hookEventName` を `"SubagentStop"` に設定した `hookSpecificOutput.additionalContext` も含まれます。`reason` とともに `decision: "block"` を返すと、サブエージェントの実行が継続され、`reason` が次の指示としてサブエージェントに配信されます。終了コード 2 で終了してブロックするフックも、同様に stderr メッセージを配信します。サブエージェントが戻った後に親セッションにコンテキストを注入するには、代わりに `Agent` ツールに対する [`PostToolUse`](#posttooluse) フックを使用してください。

2183 2598 

2184<h3 id="taskcreated">2599<h3 id="taskcreated">

2185 TaskCreated2600 TaskCreated

2186</h3>2601</h3>

2187 2602 

2188タスクが `TaskCreate` ツール経由で作成されるときに実行されます。命名規則を実施したり、タスク説明を要求したり、特定のタスクが作成されるのを防いだりするのに使用します。2603`TaskCreate` ツールによってタスクが作成されるときに実行されます。命名規則を適用したり、タスクの説明を必須にしたり、特定のタスクの作成を阻止したりするために使用します。[Task ツールがないセッション](/docs/ja/tools-reference#task-tool-availability)では、このイベントは発火しません。

2189 2604 

2190`TaskCreated` フックが終了コード 2 で終了すると、タスクは作成されず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。チームメイト全体を停止する代わりに再実行するには、`{"continue": false, "stopReason": "..."}` を含む JSON を返します。TaskCreated フックはマッチャーをサポートせず、すべての出現で発火します。2605TaskCreated フックは matcher をサポートしておらず、すべての発生時に発火します。

2191 2606 

2192<h4 id="taskcreated-input">2607<h4 id="taskcreated-input">

2193 TaskCreated 入力2608 TaskCreated の入力

2194</h4>2609</h4>

2195 2610 

2196[共通入力フィールド](#common-input-fields)に加えて、TaskCreated フックは `task_id`、`task_subject`、およびオプションで `task_description`、`teammate_name`、`team_name` を受け取ります。2611[共通の入力フィールド](#common-input-fields)に加えて、TaskCreated フックは `task_id`、`task_subject`、および省略可能な `task_description`、`teammate_name`、`team_name` を受け取ります。

2197 2612 

2198```json theme={null}2613```json theme={null}

2199{2614{

2200 "session_id": "abc123",2615 "session_id": "abc123",

2201 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",2616 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2202 "cwd": "/Users/...",2617 "cwd": "/Users/...",

2203 "permission_mode": "default",

2204 "hook_event_name": "TaskCreated",2618 "hook_event_name": "TaskCreated",

2205 "task_id": "task-001",2619 "task_id": "task-001",

2206 "task_subject": "Implement user authentication",2620 "task_subject": "Implement user authentication",


2214| :- | :- |2628| :- | :- |

2215| `task_id` | 作成されるタスクの識別子 |2629| `task_id` | 作成されるタスクの識別子 |

2216| `task_subject` | タスクのタイトル |2630| `task_subject` | タスクのタイトル |

2217| `task_description` | タスクの詳細説明。存在しない可能性があります |2631| `task_description` | タスクの詳細な説明。存在しない場合があります |

2218| `teammate_name` | タスクを作成しているチームメイトの名前。存在しない可能性があります |2632| `teammate_name` | タスクを作成するチームメイトの名前。存在しない場合があります |

2219| `team_name` | チームの名前。存在しない可能性があります |2633| `team_name` | 非推奨。セッションから派生したチーム名。将来のリリースで削除されます |

2220 2634 

2221<h4 id="taskcreated-decision-control">2635<h4 id="taskcreated-decision-control">

2222 TaskCreated 決定制御2636 TaskCreated の決定制御

2223</h4>2637</h4>

2224 2638 

2225TaskCreated フックはタスク作成を制御する 2 つの方法をサポートしています。2639TaskCreated フックは、2 つの方法で作成をブロックできます。いずれの場合も、Claude Code はタスクを削除し、メッセージをツールのエラーとして Claude に返します。このイベントからの `continue: false` は Claude Code によって無視され、Claude は作業を続けます。

2226 2640 

2227* **終了コード 2**: タスクは作成されず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。2641* **終了コード 2**: Claude Code は stderr のテキストをメッセージとして返します。

2228* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイト全体を停止し、`Stop` フック動作と一致します。`stopReason` はユーザーに表示されます。2642* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code は `reason` をメッセージとして返します。

2229 2643 

2230この例は、タスク件名が必要な形式に従わない場合、タスク作成をブロックします。2644以下の例は、件名が必要な形式に従っていないタスクをブロックします。

2231 2645 

2232```bash theme={null}2646```bash theme={null}

2233#!/bin/bash2647#!/bin/bash


2246 TaskCompleted2660 TaskCompleted

2247</h3>2661</h3>

2248 2662 

2249タスクが完了としてマークされるときに実行されます。これは 2 つの状況で発火します。任意のエージェントが TaskUpdate ツール経由でタスクを明示的に完了としてマークするとき、または[エージェント チーム](/docs/ja/agent-teams)チームメイトが進行中のタスクでターンを終了するとき。これを使用してチームメイトが作業を停止する前に品質ゲートを実施します。例えば、lint チェックの合格を要求したり、出力ファイルが存在することを確認したりします。2663タスクが完了としてマークされるときに実行されます。これは 2 つの状況で発火します。任意のエージェントが TaskUpdate ツールを通じてタスクを明示的に完了としてマークしたとき、または[エージェントチーム](/docs/ja/agent-teams)のチームメイトが進行中のタスクを抱えたままターンを終了したときです。タスクをクローズする前に、テストやリントチェックの合格などの完了基準を適用するために使用します。

2250 2664 

2251`TaskCompleted` フックが終了コード 2 で終了すると、タスクは完了としてマークされず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。チームメイト全体を停止する代わりに再実行するには、`{"continue": false, "stopReason": "..."}` を含む JSON を返します。TaskCompleted フックはマッチャーをサポートせず、すべての出現で発火します。2665TaskCompleted フックは matcher をサポートしておらず、すべての発生時に発火します。

2252 2666 

2253<h4 id="taskcompleted-input">2667<h4 id="taskcompleted-input">

2254 TaskCompleted 入力2668 TaskCompleted の入力

2255</h4>2669</h4>

2256 2670 

2257[共通入力フィールド](#common-input-fields)に加えて、TaskCompleted フックは `task_id`、`task_subject`、およびオプションで `task_description`、`teammate_name`、`team_name` を受け取ります。2671[共通の入力フィールド](#common-input-fields)に加えて、TaskCompleted フックは `task_id`、`task_subject`、および省略可能な `task_description`、`teammate_name`、`team_name` を受け取ります。

2258 2672 

2259```json theme={null}2673```json theme={null}

2260{2674{


2273 2687 

2274| フィールド | 説明 |2688| フィールド | 説明 |

2275| :- | :- |2689| :- | :- |

2276| `task_id` | 完了しているタスクの識別子 |2690| `task_id` | 完了されるタスクの識別子 |

2277| `task_subject` | タスクのタイトル |2691| `task_subject` | タスクのタイトル |

2278| `task_description` | タスクの詳細説明。存在しない可能性があります |2692| `task_description` | タスクの詳細な説明。存在しない場合があります |

2279| `teammate_name` | タスクを完了しているチームメイトの名前。存在しない可能性があります |2693| `teammate_name` | タスクを完了するチームメイトの名前。存在しない場合があります |

2280| `team_name` | チームの名前。存在しない可能性があります |2694| `team_name` | 非推奨。セッションから派生したチーム名。将来のリリースで削除されます |

2281 2695 

2282<h4 id="taskcompleted-decision-control">2696<h4 id="taskcompleted-decision-control">

2283 TaskCompleted 決定制御2697 TaskCompleted の決定制御

2284</h4>2698</h4>

2285 2699 

2286TaskCompleted フックはタスク完了を制御する 2 つの方法をサポートしています。2700TaskCompleted フックは、タスクの完了を制御する 2 つの方法をサポートしています。

2287 2701 

2288* **終了コード 2**: タスクは完了としてマークされず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。2702* **終了コード 2**: タスクは完了としてマークされず、stderr メッセージがフィードバックとしてモデルに返されます。

2289* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイト全体を停止し、`Stop` フック動作と一致します。`stopReason` はユーザーに表示されます。2703* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイトがターンを終了したことでイベントが発生した場合、`Stop` フックの動作と同様に、チームメイトを完全に停止します。`stopReason` はユーザーに表示されます。`TaskUpdate` ツールによってイベントが発生した場合、Claude Code は `continue: false` を無視しますが、終了コード 2 は引き続き完了をブロックします。

2290 2704 

2291この例はテストを実行し、失敗した場合はタスク完了をブロックします。2705以下の例は、テストを実行し、失敗した場合はタスクの完了をブロックします。

2292 2706 

2293```bash theme={null}2707```bash theme={null}

2294#!/bin/bash2708#!/bin/bash

2295INPUT=$(cat)2709INPUT=$(cat)

2296TASK_SUBJECT=$(echo "$INPUT" | jq -r '.task_subject')2710TASK_SUBJECT=$(echo "$INPUT" | jq -r '.task_subject')

2297 2711 

2298# テスト スイートを実行2712# Run the test suite

2299if ! npm test 2>&1; then2713if ! npm test 2>&1; then

2300 echo "Tests not passing. Fix failing tests before completing: $TASK_SUBJECT" >&22714 echo "Tests not passing. Fix failing tests before completing: $TASK_SUBJECT" >&2

2301 exit 22715 exit 2


2308 Stop2722 Stop

2309</h3>2723</h3>

2310 2724 

2311メイン Claude Code エージェントが応答を終了したときに実行されます。ユーザー割り込みが原因で停止が発生した場合は実行されません。API エラーは代わりに[StopFailure](#stopfailure)を発火させます。2725メインの Claude Code エージェントが応答を終えたときに実行されます。ユーザーの中断によって停止した場合は実行されません。API エラーの場合は、代わりに [StopFailure](#stopfailure) が発火します。

2312 2726 

2313<Tip>2727<Tip>

2314 [`/goal`](/docs/ja/goal)コマンドは、セッション スコープのプロンプト ベースの Stop フックの組み込みショートカットです。Claude が条件が成立するまで作業を続けるようにしたいが、フック設定を書きたくない場合に使用します。2728 [`/goal`](/docs/ja/goal) コマンドは、セッションスコープのプロンプトベースの Stop フックの組み込みショートカットです。フックの設定を書かずに、ある条件に向けて Claude に作業を続けさせたい場合に使用します。

2315</Tip>2729</Tip>

2316 2730 

2317<h4 id="stop-input">2731<h4 id="stop-input">

2318 Stop 入力2732 Stop の入力

2319</h4>2733</h4>

2320 2734 

2321[共通入力フィールド](#common-input-fields)に加えて、Stop フックは `stop_hook_active`、`last_assistant_message`、`background_tasks`、`session_crons` を受け取ります。`stop_hook_active` フィールドは、Claude Code がすでに stop フックの結果として続行している場合は `true` です。この値をチェックするか、Claude Code が無限に実行されるのを防ぐためにトランスクリプトを処理します。`last_assistant_message` フィールドは Claude の最終応答のテキスト コンテンツを含むため、フックはトランスクリプト ファイルを解析せずにアクセスできます。2735[共通の入力フィールド](#common-input-fields)に加えて、Stop フックは `stop_hook_active`、`last_assistant_message`、`background_tasks`、`session_crons` を受け取ります。`stop_hook_active` フィールドは、Claude Code が Stop フックの結果としてすでに続行している場合に `true` になります。決して解消されない条件でブロックし続けないよう、この値を確認するか、トランスクリプトを処理してください。Claude Code は連続継続を 8 回までとする上限を適用します。Stop フックがターンを 8 回連続で継続させた後、Claude Code は次のブロックを上書きしてターンを終了します。上限を引き上げるには、[`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ja/env-vars) を設定します。

2322 2736 

2323`background_tasks` と `session_crons` 配列は、Claude Code v2.1.145 以降で利用可能で、フックが「セッションが完了」と「セッションが一時停止してバックグラウンド作業が再開されるのを待機」を区別できます。タスク レジストリに到達可能な場合は両方の配列が存在し、何も進行中または予定されていない場合は空です。2737`last_assistant_message` フィールドには Claude の最終応答のテキスト内容が含まれるため、フックはトランスクリプトファイルを解析せずにアクセスできます。読み上げや通知のフックなど、完了したばかりのターンに基づいて動作するフックでは、`transcript_path` を読み取るのではなくこのフィールドを使用してください。すべてのバージョンで、Stop の時点でトランスクリプトファイルに最終メッセージが含まれているとは限らないためです。

2324 2738 

2325`background_tasks` の各エントリは 1 つの進行中のタスクを説明し、これらのフィールドを使用します。2739`background_tasks` および `session_crons` 配列により、フックは「セッションが完了した」状態と「セッションがバックグラウンド作業による再開を待って一時停止している」状態を区別できます。どちらの配列も、タスクレジストリにアクセスできる場合に存在し、実行中またはスケジュール済みのものがない場合は空になります。

2740 

2741`background_tasks` の各エントリは実行中のタスク 1 つを表し、以下のフィールドを使用します。

2326 2742 

2327| フィールド | 説明 |2743| フィールド | 説明 |

2328| :- | :- |2744| :- | :- |

2329| `id` | タスク識別子 |2745| `id` | タスクの識別子 |

2330| `type` | フレンドリーなタスク タイプ ラベル(`shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session`、`MCP task` など)。各ラベルは Claude Code のどの機能がタスクを作成したかを識別します。認識されないタイプの場合は生の判別式にフォールバック |2746| `type` | `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session`、`MCP task` などのわかりやすいタスクタイプのラベル。各ラベルは、どの Claude Code 機能がタスクを作成したかを示します。認識されないタイプの場合は、生の識別子にフォールバックします |

2331| `status` | 現在のタスク ステータス |2747| `status` | 現在のタスクのステータス |

2332| `description` | フリー テキスト説明。1000 文字でキャップされ、クリップされた場合は文字列内に `… [+N chars]` マーカー |2748| `description` | 自由形式の説明。1000 文字が上限で、切り詰められた場合は文字列内に `… [+N chars]` マーカーが付きます |

2333| `command` | シェル コマンド ライン。1000 文字でキャップ。`shell` タスクの場合のみ存在 |2749| `command` | シェルのコマンドライン。1000 文字が上限です。`shell` タスクの場合のみ存在します |

2334| `agent_type` | サブエージェント タイプ名。`subagent` タスクの場合のみ存在 |2750| `agent_type` | サブエージェントのタイプ名。`subagent` タスクの場合のみ存在します |

2335| `server` | MCP サーバー名。`monitor` と `MCP task` タスクの場合のみ存在 |2751| `server` | MCP サーバー名。`monitor` および `MCP task` タスクの場合のみ存在します |

2336| `tool` | MCP ツール名。`monitor` と `MCP task` タスクの場合のみ存在 |2752| `tool` | MCP ツール名。`monitor` および `MCP task` タスクの場合のみ存在します |

2337| `name` | ワークフロー名。`workflow` タスクの場合のみ存在 |2753| `name` | ワークフロー名。`workflow` タスクの場合のみ存在します |

2338 2754 

2339`session_crons` の各エントリは 1 つのセッション スコープのスケジュール済みウェイクアップを説明し、`CronCreate`、`ScheduleWakeup`、`/loop` から取得されます。2755`session_crons` の各エントリは、`CronCreate`、`ScheduleWakeup`、`/loop` から取得された、セッションスコープのスケジュールされたウェイクアップ 1 つを表します。

2340 2756 

2341| フィールド | 説明 |2757| フィールド | 説明 |

2342| :- | :- |2758| :- | :- |

2343| `id` | Cron タスク識別子 |2759| `id` | cron タスクの識別子 |

2344| `schedule` | Cron 式(例:`0 9 * * 1-5`) |2760| `schedule` | cron 式。例: `0 9 * * 1-5` |

2345| `recurring` | スケジュールが単一の発火時刻をエンコードする 1 回限りのウェイクアップの場合は `false`、すべてのマッチで再発火するタスクの場合は `true` |2761| `recurring` | スケジュールが単一の発火時刻を表す 1 回限りのウェイクアップの場合は `false`、マッチするたびに再発火するタスクの場合は `true` |

2346| `prompt` | Cron が発火するときに送信されるプロンプト。1000 文字でキャップされ、同じ `… [+N chars]` マーカー |2762| `prompt` | cron の発火時に送信されるプロンプト。1000 文字が上限で、同じ `… [+N chars]` マーカーが付きます |

2347 2763 

2348この例は、1 つの進行中のシェル タスクと 1 つの定期的な cron を含む Stop 入力を示しています。2764以下の例は、実行中のシェルタスク 1 つと繰り返し実行される cron 1 つを含む Stop の入力を示しています。

2349 2765 

2350```json theme={null}2766```json theme={null}

2351{2767{


2377```2793```

2378 2794 

2379<h4 id="stop-decision-control">2795<h4 id="stop-decision-control">

2380 Stop 決定制御2796 Stop の決定制御

2381</h4>2797</h4>

2382 2798 

2383`Stop` と `SubagentStop` フックは Claude が続行するかどうかを制御できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。2799`Stop` および `SubagentStop` フックは、Claude が続行するかどうかを制御できます。すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、フックスクリプトは以下のイベント固有のフィールドを返すことができます。

2384 2800 

2385| フィールド | 説明 |2801| フィールド | 説明 |

2386| :- | :- |2802| :- | :- |

2387| `decision` | `"block"` は Claude が停止するのを防止。Claude を停止させるには省略 |2803| `decision` | `"block"` を指定すると Claude の停止を阻止します。Claude の停止を許可するには省略します |

2388| `reason` | `decision` が `"block"` のときに必須。Claude が続行すべき理由を伝える |2804| `reason` | `decision` が `"block"` の場合は必須です。Claude に続行すべき理由を伝えます |

2389| `hookSpecificOutput.additionalContext` | 非エラー フィードバック Claude 用。会話は続行されるため Claude が対応できますが、`decision: "block"` とは異なり、トランスクリプトでは「Stop フック フィードバック」としてラベル付けされ、フック エラー通知は表示されません |2805| `hookSpecificOutput.additionalContext` | Claude へのエラーではないフィードバック。Claude がそれに対応できるよう会話は続行されますが、`decision: "block"` とは異なり、トランスクリプトにはフックエラーではなくフックのフィードバックとして表示されます |

2806 

2807終了コード 2 で終了してブロックするフックは、`reason` と同じように処理されます。Claude は、続行すべき理由の説明として stderr メッセージを受け取ります。

2390 2808 

2391```json theme={null}2809```json theme={null}

2392{2810{


2395}2813}

2396```2814```

2397 2815 

2398`additionalContext` を使用する場合、フックが設計通りに機能し、Claude にガイダンスを提供しています。例えば、「完了する前にテスト スイートを実行してください」。会話は `stop_hook_active` 入力と 8 回連続継続キャップと同じループ保護を通じて続行されます。2816「完了前にテストスイートを実行する」など、フックが設計どおりに動作して Claude にガイダンスを与えている場合は、`additionalContext` を使用してください。これは `decision: "block"` と同じループ保護(`stop_hook_active` 入力と、連続継続 8 回の上限)を通じて会話を継続させますが、トランスクリプトには `Stop hook feedback` というラベルが付き、フックエラーの通知は表示されません。

2399 2817 

2400```json theme={null}2818```json theme={null}

2401{2819{


2410 StopFailure2828 StopFailure

2411</h3>2829</h3>

2412 2830 

2413[Stop](#stop)の代わりに、ターンが API エラーのために終了するときに実行されます。出力と終了コードは無視されます。Claude が API エラーのため応答を完了できない場合、失敗をログ、アラートを送信、または回復アクションを実行するのに使用します。2831API エラーによってターンが終了したときに、[Stop](#stop) の代わりに実行されます。Claude Code は、[`terminalSequence`](#emit-terminal-notifications) を除き、フックの出力と終了コードを無視します。レート制限、認証の問題、その他の API エラーによって Claude が応答を完了できない場合に、失敗をログに記録したり、アラートを送信したり、復旧アクションを実行したりするために使用します。

2414 2832 

2415<h4 id="stopfailure-input">2833<h4 id="stopfailure-input">

2416 StopFailure 入力2834 StopFailure の入力

2417</h4>2835</h4>

2418 2836 

2419[共通入力フィールド](#common-input-fields)に加えて、StopFailure フックは `error`、オプションの `error_details`、およびオプションの `last_assistant_message` を受け取ります。`error` フィールドはエラー タイプを識別し、マッチャー フィルタリングに使用されます。2837[共通の入力フィールド](#common-input-fields)に加えて、StopFailure フックは `error`、省略可能な `error_details`、省略可能な `last_assistant_message` を受け取ります。`error` フィールドはエラーの種類を示し、matcher のフィルタリングに使用されます。

2420 2838 

2421| フィールド | 説明 |2839| フィールド | 説明 |

2422| :- | :- |2840| :- | :- |

2423| `error` | エラー タイプ: `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、または `unknown` |2841| `error` | エラーの種類: `rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error`、または `unknown` |

2424| `error_details` | 利用可能な場合、エラーに関する追加詳細 |2842| `error_details` | エラーに関する追加の詳細(利用可能な場合) |

2425| `last_assistant_message` | 会話に表示されるレンダリングされたエラー テキスト。`Stop` と `SubagentStop` とは異なり、このフィールドは Claude の会話出力ではなく、`"API Error: Rate limit reached"` などの API エラー文字列を含みます |2843| `last_assistant_message` | 会話に表示されたレンダリング済みのエラーテキスト。このフィールドに Claude の会話出力が含まれる `Stop` や `SubagentStop` とは異なり、`StopFailure` では `"API Error: Rate limit reached"` のような API エラー文字列そのものが含まれます |

2426 2844 

2427```json theme={null}2845```json theme={null}

2428{2846{


2436}2854}

2437```2855```

2438 2856 

2439StopFailure フックは決定制御がありません。通知とログの目的でのみ実行されます。2857StopFailure フックには決定制御がありません。通知とログ記録の目的でのみ実行されます。

2440 2858 

2441<h3 id="teammateidle">2859<h3 id="teammateidle">

2442 TeammateIdle2860 TeammateIdle

2443</h3>2861</h3>

2444 2862 

2445[エージェント チーム](/docs/ja/agent-teams)チームメイトがターンを終了した後、アイドル状態になろうとしているときに実行されます。これを使用してチームメイトが作業を停止する前に品質ゲートを実施します。例えば、lint チェックの合格を要求したり、出力ファイルが存在することを確認したりします。2863[エージェントチーム](/docs/ja/agent-teams)のチームメイトがターンを終えてアイドル状態になろうとしているときに実行されます。リントチェックの合格を必須にしたり、出力ファイルの存在を確認したりするなど、チームメイトが作業を停止する前に品質ゲートを適用するために使用します。

2446 2864 

2447`TeammateIdle` フックが終了コード 2 で終了すると、チームメイトは stderr メッセージをフィードバックとして受け取り、アイドル状態になる代わりに作業を続行します。チームメイト全体を停止する代わりに再実行するには、`{"continue": false, "stopReason": "..."}` を含む JSON を返します。TeammateIdle フックはマッチャーをサポートせず、すべての出現で発火します。2865TeammateIdle フックは matcher をサポートしておらず、すべての発生時に発火します。

2448 2866 

2449<h4 id="teammateidle-input">2867<h4 id="teammateidle-input">

2450 TeammateIdle 入力2868 TeammateIdle の入力

2451</h4>2869</h4>

2452 2870 

2453[共通入力フィールド](#common-input-fields)に加えて、TeammateIdle フックは `teammate_name` と `team_name` を受け取ります。2871[共通の入力フィールド](#common-input-fields)に加えて、TeammateIdle フックは `teammate_name` と `team_name` を受け取ります。

2454 2872 

2455```json theme={null}2873```json theme={null}

2456{2874{


2467| フィールド | 説明 |2885| フィールド | 説明 |

2468| :- | :- |2886| :- | :- |

2469| `teammate_name` | アイドル状態になろうとしているチームメイトの名前 |2887| `teammate_name` | アイドル状態になろうとしているチームメイトの名前 |

2470| `team_name` | チームの名前 |2888| `team_name` | 非推奨。セッションから派生したチーム名。将来のリリースで削除されます |

2471 2889 

2472<h4 id="teammateidle-decision-control">2890<h4 id="teammateidle-decision-control">

2473 TeammateIdle 決定制御2891 TeammateIdle の決定制御

2474</h4>2892</h4>

2475 2893 

2476TeammateIdle フックはチームメイト動作を制御する 2 つの方法をサポートしています。2894TeammateIdle フックは、チームメイトの動作を制御する 2 つの方法をサポートしています。

2477 2895 

2478* **終了コード 2**: チームメイトは stderr メッセージをフィードバックとして受け取り、アイドル状態になる代わりに作業を続行します。2896* **終了コード 2**: チームメイトは stderr メッセージをフィードバックとして受け取り、アイドル状態にならずに作業を続けます。

2479* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイト全体を停止し、`Stop` フック動作と一致します。`stopReason` はユーザーに表示されます。2897* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` フックの動作と同様に、チームメイトを完全に停止します。`stopReason` はユーザーに表示されます。

2480 2898 

2481この例は、チームメイトがアイドル状態になることを許可する前に、ビルド アーティファクトが存在することをチェックします。2899以下の例は、チームメイトがアイドル状態になるのを許可する前に、ビルドアーティファクトが存在することを確認します。

2482 2900 

2483```bash theme={null}2901```bash theme={null}

2484#!/bin/bash2902#!/bin/bash


2495 ConfigChange2913 ConfigChange

2496</h3>2914</h3>

2497 2915 

2498セッション中に設定ファイルが変更されるときに実行されます。設定変更を監査したり、セキュリティ ポリシーを実施したり、設定ファイルへの不正な変更をブロックしたりするのに使用します。2916セッション中に設定ファイルが変更されたときに実行されます。設定の変更を監査したり、セキュリティポリシーを適用したり、設定ファイルへの不正な変更をブロックしたりするために使用します。

2499 2917 

2500ConfigChange フックは設定ファイル、管理ポリシー設定、スキル ファイルの変更に対して発火します。入力の `source` フィールドは、どのタイプの設定が変更されたかを示し、オプションの `file_path` フィールドは変更されたファイルへのパスを提供します。2918Claude Code は、設定ファイル、管理ポリシーファイル、またはスキルファイルが変更されたときに ConfigChange フックを実行します。管理ポリシーの場合は、`managed-settings.json` または `managed-settings.d/` 内のファイルが変更された場合にのみ実行します。[サーバー管理設定](/docs/ja/server-managed-settings)、および macOS の管理された環境設定や Windows のレジストリポリシーへの変更は、フックを実行せずに適用します。[`wslInheritsWindowsSettings`](/docs/ja/settings-reference#wslinheritswindowssettings) を使用した WSL でも、Windows 側の管理設定ファイルの変更をポリシーのポーリング時にフックを実行せずに適用します。

2501 2919 

2502マッチャーは設定ソースでフィルタリングします。2920matcher は設定のソースでフィルタリングします。

2503 2921 

2504| マッチャー | いつ発火するか |2922| Matcher | 発火するタイミング |

2505| :- | :- |2923| :- | :- |

2506| `user_settings` | `~/.claude/settings.json` が変更 |2924| `user_settings` | `~/.claude/settings.json` が変更された |

2507| `project_settings` | `.claude/settings.json` が変更 |2925| `project_settings` | `.claude/settings.json` が変更された |

2508| `local_settings` | `.claude/settings.local.json` が変更 |2926| `local_settings` | `.claude/settings.local.json` が変更された |

2509| `policy_settings` | 管理ポリシー設定が変更 |2927| `policy_settings` | `managed-settings.json` または `managed-settings.d/` 内のファイルが変更された |

2510| `skills` | `.claude/skills/` のスキル ファイルが変更 |2928| `skills` | `.claude/skills/` 内のスキルファイルが変更された |

2511 2929 

2512この例は、セキュリティ監査のためにすべての設定変更をログします。2930以下の例は、セキュリティ監査のためにすべての設定変更をログに記録します。

2513 2931 

2514```json theme={null}2932```json theme={null}

2515{2933{


2530```2948```

2531 2949 

2532<h4 id="configchange-input">2950<h4 id="configchange-input">

2533 ConfigChange 入力2951 ConfigChange の入力

2534</h4>2952</h4>

2535 2953 

2536[共通入力フィールド](#common-input-fields)に加えて、ConfigChange フックは `source` とオプションで `file_path` を受け取ります。`source` フィールドは、どのタイプの設定が変更されたかを示し、`file_path` は変更されたファイルへのパスを提供します。2954[共通の入力フィールド](#common-input-fields)に加えて、ConfigChange フックは `source` と、省略可能な `file_path` を受け取ります。`source` フィールドはどの種類の設定が変更されたかを示し、`file_path` は変更された特定のファイルへのパスを提供します。

2537 2955 

2538```json theme={null}2956```json theme={null}

2539{2957{


2547```2965```

2548 2966 

2549<h4 id="configchange-decision-control">2967<h4 id="configchange-decision-control">

2550 ConfigChange 決定制御2968 ConfigChange の決定制御

2551</h4>2969</h4>

2552 2970 

2553ConfigChange フックは設定変更が有効になるのをブロックできます。終了コード 2 または JSON `decision` を使用して変更を防止します。ブロックされた場合、新しい設定は実行中のセッションに適用されません。2971ConfigChange フックは、設定の変更が反映されるのをブロックできます。変更を阻止するには、終了コード 2 または JSON の `decision` を使用します。ブロックされた場合、新しい設定は実行中のセッションに適用されません。

2554 2972 

2555| フィールド | 説明 |2973| フィールド | 説明 |

2556| :- | :- |2974| :- | :- |

2557| `decision` | `"block"` は設定変更が適用されるのを防止。変更を許可するには省略 |2975| `decision` | `"block"` を指定すると設定の変更が適用されるのを阻止します。変更を許可するには省略します |

2558| `reason` | `decision` が `"block"` のときにユーザーに表示される説明 |2976| `reason` | 受け付けられますが、表示されることはありません |

2559 2977 

2560```json theme={null}2978```json theme={null}

2561{2979{


2564}2982}

2565```2983```

2566 2984 

2567`policy_settings` の変更はブロックできません。フックは `policy_settings` ソースに対して引き続き発火するため、監査ログに使用できますが、ブロッキング決定は無視されます。これにより、エンタープライズ管理設定が常に有効になることが保証されます。2985`policy_settings` の変更はブロックできません。マシン上の管理設定ファイルが変更されると、`policy_settings` ソースに対してもフックは発火するため、それらの編集をログに記録するために使用できますが、ブロックの決定はすべて無視されます。これにより、エンタープライズで管理される設定が常に反映されることが保証されます。[サーバー管理設定](/docs/ja/server-managed-settings)が届いたり更新されたりしたときには、Claude Code は `ConfigChange` フックを実行しません。

2986 

2987Claude Code は ConfigChange フックの JSON 出力からブロックの決定に基づいて動作し、`systemMessage` と `continue` は破棄します。ブロックされた変更については、`reason` でブロックした場合も終了コード 2 の stderr でブロックした場合も、ユーザーにも Claude にもメッセージは表示されません。Claude Code はデバッグログに 1 行書き込むだけです。

2568 2988 

2569<h3 id="cwdchanged">2989<h3 id="cwdchanged">

2570 CwdChanged2990 CwdChanged

2571</h3>2991</h3>

2572 2992 

2573セッション中に作業ディレクトリが変更されるときに実行されます。例えば、Claude が `cd` コマンドを実行するとき。これを使用してディレクトリ変更に反応します。環境変数をリロードしたり、プロジェクト固有のツールチェーンをアクティブにしたり、セットアップ スクリプトを自動的に実行したりします。[FileChanged](#filechanged)とペアになり、[direnv](https://direnv.net/)などのツール用に、ディレクトリごとの環境を管理します。2993メイン会話内のシェルコマンドが作業ディレクトリを変更したとき、たとえば Claude が `cd` コマンドを実行したときに実行されます。環境変数の再読み込み、プロジェクト固有のツールチェーンの有効化、セットアップスクリプトの自動実行など、ディレクトリの変更に対応するために使用します。ディレクトリごとの環境を管理する [direnv](https://direnv.net/) のようなツールでは、[FileChanged](#filechanged) と組み合わせて使用します。

2574 2994 

2575CwdChanged フックは `CLAUDE_ENV_FILE` にアクセスできます。そのファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同じように、セッション中の後続の Bash コマンドに永続化されます。2995CwdChanged フックは [`CLAUDE_ENV_FILE`](#persist-environment-variables) にアクセスできます。そのファイルに書き込まれた変数は、次の CwdChanged イベントで Claude Code がクリアするまで、後続の Bash コマンドに引き継がれます。

2576 2996 

2577CwdChanged はマッチャーをサポートせず、すべてのディレクトリ変更で発火します。2997CwdChanged は matcher をサポートしておらず、すべての発生時に発火します。

2578 2998 

2579<h4 id="cwdchanged-input">2999<h4 id="cwdchanged-input">

2580 CwdChanged 入力3000 CwdChanged の入力

2581</h4>3001</h4>

2582 3002 

2583[共通入力フィールド](#common-input-fields)に加えて、CwdChanged フックは `old_cwd` と `new_cwd` を受け取ります。3003[共通の入力フィールド](#common-input-fields)に加えて、CwdChanged フックは `old_cwd` と `new_cwd` を受け取ります。

2584 3004 

2585```json theme={null}3005```json theme={null}

2586{3006{


2594```3014```

2595 3015 

2596<h4 id="cwdchanged-output">3016<h4 id="cwdchanged-output">

2597 CwdChanged 出力3017 CwdChanged の出力

2598</h4>3018</h4>

2599 3019 

2600すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、CwdChanged フックは `watchPaths` を返して、[FileChanged](#filechanged)が監視するファイル パスを動的に設定できます。3020すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、CwdChanged フックは `watchPaths` を返して、[FileChanged](#filechanged) が監視するファイルパスを動的に設定できます。

2601 3021 

2602| フィールド | 説明 |3022| フィールド | 説明 |

2603| :- | :- |3023| :- | :- |

2604| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。新しいディレクトリに入るときは、空の配列を返すのが一般的です |3024| `watchPaths` | 絶対パスの配列。現在の動的な監視リストを置き換えます。`matcher` 設定のパスは常に監視されます。空の配列を返すと動的なリストがクリアされます。これは新しいディレクトリに移動するときによく使われます |

3025 

3026CwdChanged フックには決定制御がありません。ディレクトリの変更をブロックすることはできません。

2605 3027 

2606CwdChanged フックは決定制御がありません。ディレクトリ変更をブロックできません。3028Claude Code は JSON 出力から `watchPaths` と `systemMessage` を読み取り、`continue` は破棄します。インタラクティブセッションでは、`systemMessage` を短いターミナル通知として表示します。このメッセージは SDK のメッセージストリームには届きません。

3029 

3030<h3 id="directoryadded">

3031 DirectoryAdded

3032</h3>

3033 

3034セッション中に `/add-dir` コマンドで作業ディレクトリを追加した後、または SDK クライアントが `register_repo_root` 制御リクエストで作業ディレクトリを追加した後に実行されます。新しく追加されたリポジトリを準備するため、たとえば依存関係をインストールするために使用します。

3035 

3036Claude Code は以下の場合にこのイベントを発火しません。

3037 

3038* `--add-dir` 起動フラグでディレクトリを渡した場合。これらのディレクトリは [SessionStart](#sessionstart) で対応します

3039* `/permissions` の Workspace タブでディレクトリを追加した場合

3040* すでに作業ディレクトリであるディレクトリ、または作業ディレクトリ内のディレクトリを追加した場合

3041 

3042Claude Code はサンドボックスと権限の状態を更新した後に DirectoryAdded を発火するため、フックの実行時には、サンドボックス化されたツールからすでに新しいディレクトリが見えています。フックコマンド自体はサンドボックスの外で実行されます。

3043 

3044Claude Code はフックを待ちません。追加は即座に完了し、フックはデフォルトの 600 秒のタイムアウトでバックグラウンドで実行されます。

3045 

3046matcher はディレクトリの追加方法でフィルタリングします。

3047 

3048| Matcher | 発火するタイミング |

3049| :- | :- |

3050| `slash_command` | `/add-dir` でディレクトリを追加した |

3051| `register_repo_root` | SDK クライアントが `register_repo_root` 制御リクエストでディレクトリを追加した |

3052 

3053<h4 id="directoryadded-input">

3054 DirectoryAdded の入力

3055</h4>

3056 

3057[共通の入力フィールド](#common-input-fields)に加えて、DirectoryAdded フックは `directory` と `source` を受け取ります。

3058 

3059| フィールド | 説明 |

3060| :- | :- |

3061| `directory` | 追加されたディレクトリの絶対パス |

3062| `source` | ディレクトリの追加方法。`/add-dir` の場合は `"slash_command"`、SDK 制御リクエストの場合は `"register_repo_root"` |

3063 

3064```json theme={null}

3065{

3066 "session_id": "abc123",

3067 "transcript_path": "/Users/.../.claude/projects/.../transcript.jsonl",

3068 "cwd": "/Users/my-project",

3069 "hook_event_name": "DirectoryAdded",

3070 "directory": "/Users/my-other-repo",

3071 "source": "slash_command"

3072}

3073```

3074 

3075DirectoryAdded フックには決定制御がありません。フックの実行時には追加がすでに完了しているため、追加をブロックすることはできません。Claude Code は JSON 出力から `continue` フィールドを破棄し、残りはソースごとに異なる方法で扱います。

3076 

3077* `slash_command`: Claude Code はフックの `systemMessage` をユーザーに表示するのではなく、次の会話ターンでコンテキストとして Claude に配信します。失敗したフックの数がトランスクリプトに表示されます。失敗の完全な出力はデバッグログに記録されます

3078* `register_repo_root`: Claude Code は `systemMessage` の出力と失敗の出力をデバッグログにのみ書き込みます

2607 3079 

2608<h3 id="filechanged">3080<h3 id="filechanged">

2609 FileChanged3081 FileChanged

2610</h3>3082</h3>

2611 3083 

2612監視されたファイルがディスク上で変更されるときに実行されます。プロジェクト設定ファイルが変更されたときに環境変数をリロードするのに便利です。3084監視対象のファイルがディスク上で変更されたときに実行されます。Claude Code はツール呼び出しを調べるのではなくファイルシステムウォッチャーで変更を検出するため、`Edit` や `Write` のツール呼び出し、Claude が `Bash` で実行したスクリプト、あるいは Claude Code 外部のプロセスなど、何がファイルを変更したかにかかわらずフックを実行します。一般的な用途は、プロジェクトの設定ファイルが変更されたときに環境変数を再読み込みすることです。

3085 

3086このイベントの `matcher` には 2 つの役割があります。

3087 

3088* **監視リストの構築**: 値は `|` で分割され、各セグメントが作業ディレクトリ内のリテラルなファイル名として登録されます。そのため、`".envrc|.env"` はちょうどその 2 つのファイルを監視します。ここでは正規表現パターンは役に立ちません。`^\.env` のような値は、文字どおり `^\.env` という名前のファイルを監視します。

3089* **実行するフックのフィルタリング**: 監視対象のファイルが変更されると、同じ値を使用して、変更されたファイルのベース名に対して標準の [matcher ルール](#matcher-patterns)を適用し、実行するフックグループをフィルタリングします。

3090 

3091以下の例は、`Bash` コマンドや外部スクリプトによるファイルの書き換えを含め、変更があるたびに `data.csv` の改行コードを正規化します。

3092 

3093```json theme={null}

3094{

3095 "hooks": {

3096 "FileChanged": [

3097 {

3098 "matcher": "data.csv",

3099 "hooks": [

3100 {

3101 "type": "command",

3102 "command": "/path/to/normalize-line-endings.sh"

3103 }

3104 ]

3105 }

3106 ]

3107 }

3108}

3109```

3110 

3111フックは、stdin 上の [JSON 入力](#filechanged-input)の `file_path` フィールドから、変更されたファイルの絶対パスを読み取ります。`grep` によるガードは `perl` が削除するもの、つまり行末の CR と同じものを検査するため、正規化後の実行ではファイルに触れずに終了します。ガードがより緩いと無限ループになります。`perl -i` は何も置換しない場合でもファイルを書き換え、Claude Code は書き換えのたびにフックを再度実行するためです。このスクリプトを `/path/to/normalize-line-endings.sh` に保存し、実行可能にしてください。

2613 3112 

2614このイベントの `matcher` は 2 つの役割を果たします。3113```bash theme={null}

3114#!/bin/bash

3115FILE=$(jq -r .file_path)

3116if grep -q $'\r$' "$FILE"; then

3117 perl -pi -e 's/\r$//' "$FILE"

3118fi

3119```

2615 3120 

2616* **監視リストを構築**: 値は `|` で分割され、各セグメントは作業ディレクトリのリテラル ファイル名として登録されるため、`.envrc|.env` はこれら 2 つのファイルを正確に監視します。正規表現パターンはここでは役に立ちません。`^\.env` のような値は `^\.env` という文字通りの名前のファイルを監視します。3121フックが機能することを確認するには、`Bash` コマンドで `data.csv` に CRLF の行を追記するよう Claude に依頼します。Claude Code がフックを実行し、ファイルの改行コードは LF になります。

2617* **どのフックが実行されるかをフィルタリング**: 監視されたファイルが変更されると、同じ値は標準[マッチャー ルール](#matcher-patterns)を使用して、変更されたファイルのベース名に対してどのフック グループが実行されるかをフィルタリングします。

2618 3122 

2619FileChanged フックは `CLAUDE_ENV_FILE` にアクセスできます。そのファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同じように、セッション中の後続の Bash コマンドに永続化されます。3123事前に名前を指定できないファイルを監視するには、フックから [`watchPaths`](#filechanged-output) を返して監視リストを動的に更新します。Claude Code は監視対象のファイルが何らかの形で指定された場合にのみウォッチャーを開始するため、少なくとも 1 つのファイルを matcher で指定した FileChanged グループ、または `watchPaths` を返す [SessionStart](#sessionstart-decision-control) や [CwdChanged](#cwdchanged) フックでリストを初期化してください。監視対象のファイルが変更されたときにどのフックグループを実行するかは引き続き matcher でフィルタリングされるため、動的なパスを処理するグループでは matcher を省略してください。省略した matcher はすべての監視対象ファイルにマッチし、監視リストには何も追加しません。`"*"` matcher もすべてのファイルにマッチしますが、Claude Code はこれを他の値と同様に、`*` という名前のリテラルなファイルとして監視リストに登録します。

3124 

3125FileChanged フックは [`CLAUDE_ENV_FILE`](#persist-environment-variables) にアクセスできます。そのファイルに書き込まれた変数は、次の [CwdChanged](#cwdchanged) イベントで Claude Code がクリアするまで、後続の Bash コマンドに引き継がれます。

2620 3126 

2621<h4 id="filechanged-input">3127<h4 id="filechanged-input">

2622 FileChanged 入力3128 FileChanged の入力

2623</h4>3129</h4>

2624 3130 

2625[共通入力フィールド](#common-input-fields)に加えて、FileChanged フックは `file_path` と `event` を受け取ります。3131[共通の入力フィールド](#common-input-fields)に加えて、FileChanged フックは `file_path` と `event` を受け取ります。

2626 3132 

2627| フィールド | 説明 |3133| フィールド | 説明 |

2628| :- | :- |3134| :- | :- |

2629| `file_path` | 変更されたファイルへの絶対パス |3135| `file_path` | 変更されたファイルの絶対パス |

2630| `event` | 何が起こったか: `"change"`(ファイル変更)、`"add"`(ファイル作成)、または `"unlink"`(ファイル削除) |3136| `event` | 何が起きたか。変更されたファイルの場合は `"change"`、作成されたファイルの場合は `"add"`、削除されたファイルの場合は `"unlink"` |

2631 3137 

2632```json theme={null}3138```json theme={null}

2633{3139{


2641```3147```

2642 3148 

2643<h4 id="filechanged-output">3149<h4 id="filechanged-output">

2644 FileChanged 出力3150 FileChanged の出力

2645</h4>3151</h4>

2646 3152 

2647すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、FileChanged フックは `watchPaths` を返して、監視されるファイル パスを動的に更新できます。3153すべてのフックで利用可能な [JSON 出力フィールド](#json-output)に加えて、FileChanged フックは `watchPaths` を返して、監視するファイルパスを動的に更新できます。

2648 3154 

2649| フィールド | 説明 |3155| フィールド | 説明 |

2650| :- | :- |3156| :- | :- |

2651| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。フック スクリプトが変更されたファイルに基づいて検出した追加ファイルを監視する場合に使用します |3157| `watchPaths` | 絶対パスの配列。現在の動的な監視リストを置き換えます。`matcher` 設定のパスは常に監視されます。フックスクリプトが、変更されたファイルに基づいて監視すべき追加のファイルを見つけた場合に使用します |

3158 

3159FileChanged フックには決定制御がありません。ファイルの変更が発生するのをブロックすることはできません。

2652 3160 

2653FileChanged フックは決定制御がありません。ファイル変更をブロックできません。3161Claude Code は JSON 出力から `watchPaths` と `systemMessage` を読み取り、`continue` は破棄します。インタラクティブセッションでは、`systemMessage` を短いターミナル通知として表示します。このメッセージは SDK のメッセージストリームには届きません。

2654 3162 

2655<h3 id="worktreecreate">3163<h3 id="worktreecreate">

2656 WorktreeCreate3164 WorktreeCreate

2657</h3>3165</h3>

2658 3166 

2659`claude --worktree` を実行するか、[サブエージェントが `isolation: "worktree"` を使用](/docs/ja/sub-agents#choose-the-subagent-scope)する場合、Claude Code は `git worktree` を使用して分離された作業コピーを作成します。WorktreeCreate フックを設定する場合、デフォルトの git 動作を置き換え、SVN、Perforce、Mercurial などの別のバージョン管理システムを使用できます。3167`claude --worktree`、[`isolation: "worktree"` を使用するサブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)、または Claude Code が独自の worktree に分離する[バックグラウンドセッション](/docs/ja/agent-view#how-file-edits-are-isolated)のいずれかによって worktree が作成されるときに実行されます。デフォルトでは、Claude Code は `git worktree` を使用して分離された作業コピーを作成します。WorktreeCreate フックを設定すると、このデフォルトの git の動作が置き換えられ、SVN、Perforce、Mercurial などの別のバージョン管理システムを使用できるようになります。

2660 3168 

2661フックは作成されたワークツリー ディレクトリへの絶対パスを返す必要があります。Claude Code はこ のパスを分離されたセッションの作業ディレクトリとして使用します。コマンド フックは stdout にパスを出力します。HTTP フックは `hookSpecificOutput.worktreePath` 経由で返します。3169フックはデフォルトの動作を完全に置き換えるため、[`.worktreeinclude`](/docs/ja/worktrees#copy-gitignored-files-into-worktrees) は処理されません。`.env` などのローカル設定ファイルを新しい worktree にコピーする必要がある場合は、フックスクリプト内でコピーしてください。

2662 3170 

2663フックはデフォルトの git 動作を完全に置き換えるため、[`.worktreeinclude`](/docs/ja/worktrees#copy-gitignored-files-into-worktrees)は処理されません。`.env` などのローカル設定ファイルを新しいワークツリーにコピーする必要がある場合は、フック スクリプト内で実行してください。3171フックは、作成された worktree ディレクトリへのパスを返す必要があります。Claude Code はこのパスを分離されたセッションの作業ディレクトリとして使用します。各フックタイプがパスを返す方法については、[WorktreeCreate の出力](#worktreecreate-output)を参照してください。

2664 3172 

2665この例は SVN 作業コピーを作成し、Claude Code が使用するパスを出力します。リポジトリ URL を自分のものに置き換えます。3173Claude Code はフックの成功と返されたパスに基づいて動作し、`systemMessage` と `continue` は破棄します。

3174 

3175以下の例は、SVN の作業コピーを作成し、Claude Code が使用するパスを出力します。リポジトリの URL は自分のものに置き換えてください。

2666 3176 

2667```json theme={null}3177```json theme={null}

2668{3178{


2681}3191}

2682```3192```

2683 3193 

2684フックは stdin から JSON 入力からワークツリー `name` を読み取り、新しいディレクトリに新しいコピーをチェックアウトし、ディレクトリ パスを出力します。最後の行の `echo` は Claude Code が読み取るワークツリー パスです。他の出力を stderr にリダイレクトして、パスに干渉しないようにします。3194フックは stdin 上の JSON 入力から worktree の `name` を読み取り、新しいディレクトリに新しいコピーをチェックアウトして、そのディレクトリパスを出力します。最後の行の `echo` が、Claude Code が worktree のパスとして読み取るものです。パスの妨げにならないよう、その他の出力はすべて stderr にリダイレクトしてください。

2685 3195 

2686<h4 id="worktreecreate-input">3196<h4 id="worktreecreate-input">

2687 WorktreeCreate 入力3197 WorktreeCreate の入力

2688</h4>3198</h4>

2689 3199 

2690[共通入力フィールド](#common-input-fields)に加えて、WorktreeCreate フックは `name` フィールドを受け取ります。これは新しいワークツリーのスラッグ識別子で、ユーザーが指定するか自動生成されます(例えば、`bold-oak-a3f2`)。3200[共通の入力フィールド](#common-input-fields)に加えて、WorktreeCreate フックは `name` フィールドを受け取ります。これは新しい worktree のスラッグ識別子で、ユーザーが指定するか自動生成されます(例: `bold-oak-a3f2`)。

2691 3201 

2692```json theme={null}3202```json theme={null}

2693{3203{


2700```3210```

2701 3211 

2702<h4 id="worktreecreate-output">3212<h4 id="worktreecreate-output">

2703 WorktreeCreate 出力3213 WorktreeCreate の出力

2704</h4>3214</h4>

2705 3215 

2706WorktreeCreate フックは標準的な許可/ブロック決定モデルを使用しません。代わりに、フックの成功または失敗が結果を決定します。フックは作成されたワークツリー ディレクトリへの絶対パスを返す必要があります。3216WorktreeCreate フックは、標準の許可/ブロックの判定モデルを使用しません。代わりに、フックの成功または失敗によって結果が決まります。フックは作成された worktree ディレクトリのパスを返す必要があります。

3217 

3218* **コマンドフック**(`type: "command"`):パスを stdout の最後の空でない行として出力します。Claude Code はその行を読み取る前に ANSI エスケープコードを取り除くため、`echo` の前に出力されたシェルの起動バナーは無視されます。フックのその他の出力はすべて stderr にリダイレクトしてください。

3219* **HTTP フック**(`type: "http"`):レスポンスボディで `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` を返します。

2707 3220 

2708* **コマンド フック** (`type: "command"`): stdout にパスを出力します。3221フックが失敗した場合、またはパスを生成しなかった場合、worktree の作成はエラーで失敗します。

2709* **HTTP フック** (`type: "http"`): レスポンス本体で `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` を返します。

2710 3222 

2711フックが失敗するか出力を生成しない場合、ワークツリー作成はエラーで失敗します。3223Claude Code は相対パスをフックが実行されたディレクトリを基準に解決し、パス内の `.` や `..` セグメントを畳み込みます。解決後のパスが Claude Code が移動できるディレクトリでない場合、セッションはそのパスを示すエラーを出力し、終了コード 1 で終了します。

2712 3224 

2713Claude Code は相対パスを、フックが実行されたディレクトリに対して解決します。結果のパスが Claude Code が入力できるディレクトリでない場合、セッションはパスを名前付けするエラーを出力し、終了コード 1 で終了します。v2.1.205 より前では、相対パスまたはディスク上に存在しないパスはセッション スタートアップでクラッシュし、`-p` を使用すると約 30 秒停止してから終了コード 0 で終了しました。3225Claude Code は、`.` や `..` セグメントを含む絶対パス、およびリポジトリルート配下のシンボリックリンクを経由するパスを拒否します。リポジトリにコミットされたシンボリックリンクによって、worktree がリポジトリの外にリダイレクトされる可能性があるためです。エラーには拒否されたコンポーネントが示されます。リポジトリ内のシンボリックリンクを経由しない正規化されたパスを返してください。v2.1.216 より前は、worktree の作成はこのチェックを行わずにフックのパスに従っていました。

2714 3226 

2715<h3 id="worktreeremove">3227<h3 id="worktreeremove">

2716 WorktreeRemove3228 WorktreeRemove

2717</h3>3229</h3>

2718 3230 

2719[WorktreeCreate](#worktreecreate)のクリーンアップ対応。このフックはワークツリーが削除されるときに発火します。`--worktree` セッションを終了して削除を選択するか、`isolation: "worktree"` を持つサブエージェントが完了するとき。git ベースのワークツリーの場合、Claude は `git worktree remove` で自動的にクリーンアップを処理します。git 以外のバージョン管理システムの WorktreeCreate フックを設定した場合、クリーンアップを処理するために WorktreeRemove フックとペアにします。なければ、ワークツリー ディレクトリはディスク上に残ります。3231worktree が削除されるときに実行されます。これは [WorktreeCreate](#worktreecreate) に対応するクリーンアップ用のイベントです。このイベントは次の場合に発生します。

3232 

3233* `--worktree` セッションを終了し、削除を選択したとき

3234* `isolation: "worktree"` を持つサブエージェントが完了したとき

3235* フックが worktree を作成した[バックグラウンドセッション](/docs/ja/agent-view#what-deleting-a-session-removes)を削除したとき

3236 

3237Git ベースの worktree の場合、Claude Code は `git worktree remove` でクリーンアップを自動的に処理します。WorktreeCreate フックを設定した場合は、WorktreeRemove フックと組み合わせて、作成した worktree のクリーンアップを制御してください。

2720 3238 

2721Claude Code は WorktreeCreate が返したパスを `worktree_path` としてフック入力に渡します。この例はそのパスを読み取り、ディレクトリを削除します。3239* **WorktreeRemove フックがない場合**:`--worktree` セッションを終了して削除を選択すると、Claude Code は WorktreeCreate フックが返したパスに対して `git worktree remove --force` にフォールバックするため、Git が認識している worktree は削除されます。Git が認識していない worktree(たとえば、Git 以外のバージョン管理システムでフックが作成したもの)はディスク上に残ります。フックが作成した worktree に対して[バックグラウンドセッション](/docs/ja/agent-view#what-deleting-a-session-removes)の削除が何を行うかについては、agent view の削除ルールを参照してください。

3240* **フックが 0 で終了した場合**:worktree は削除済みとして扱われます。Claude Code はフックからそれ以外の情報を読み取らないため、フックがディレクトリを確実に削除するようにしてください。

3241* **フックが 0 以外で終了した場合**:その後も `worktree_path` のディレクトリが存在していれば削除は失敗し、Git へのフォールバックは行われずに worktree はディスク上に残ります。0 以外で終了する前にディレクトリを削除したフックは、削除済みとして扱われます。失敗がどのように報告されるかについては、[WorktreeRemove の入力](#worktreeremove-input)を参照してください。

3242 

3243Claude Code は WorktreeCreate フックが返したパスしか把握していないため、フックが作成した worktree に属するブランチを削除することはありません。WorktreeCreate フックがブランチを作成する場合は、WorktreeRemove フックでそのブランチを削除してください。

3244 

3245Claude Code は、`systemMessage` や `continue` などの WorktreeRemove フックの [JSON 出力フィールド](#json-output)を破棄します。

3246 

3247バックグラウンドセッションの削除では、Claude Code はフックを実行する前に保存された worktree パスを検証し、シンボリックリンクであるパスや、リポジトリルート配下のシンボリックリンクを経由するパスを拒否します。まだファイルが含まれている worktree に対してフックが実行されるのは、[agent view](/docs/ja/agent-view#what-deleting-a-session-removes) で削除を確認した場合のみです。そのような worktree の場合、[`claude rm`](/docs/ja/agent-view#manage-sessions-from-the-shell) はセッションと worktree を保持します。v2.1.216 より前は、フックはこれらのチェックなしに保存されたパスに対して実行されていました。

3248 

3249Claude Code は、WorktreeCreate が返したパスをフック入力の `worktree_path` として渡します。次の例では、そのパスを読み取ってディレクトリを削除します。

2722 3250 

2723```json theme={null}3251```json theme={null}

2724{3252{


2738```3266```

2739 3267 

2740<h4 id="worktreeremove-input">3268<h4 id="worktreeremove-input">

2741 WorktreeRemove 入力3269 WorktreeRemove の入力

2742</h4>3270</h4>

2743 3271 

2744[共通入力フィールド](#common-input-fields)に加え、WorktreeRemove フックは削除されるワークツリーへの絶対パスである `worktree_path` フィールドを受け取ります。3272[共通の入力フィールド](#common-input-fields)に加えて、WorktreeRemove フックは `worktree_path` フィールドを受け取ります。これは削除される worktree の絶対パスです。

2745 3273 

2746```json theme={null}3274```json theme={null}

2747{3275{


2753}3281}

2754```3282```

2755 3283 

2756WorktreeRemove フックは決定制御がありません。ワークツリー削除をブロックできませんが、バージョン管理状態の削除やアーカイブ変更などのクリーンアップ タスクを実行できます。フック失敗はデバッグ モードでのみログされます。3284WorktreeRemove フックの終了コードによって結果が決まります。フックが 0 以外で終了し、その後も `worktree_path` のディレクトリが存在する場合、削除は失敗します。

3285 

3286* worktree はディスク上に残り、フックのコマンドと stderr は[デバッグログ](#debug-hooks)に送られます。

3287* バックグラウンドセッションを削除しようとしていた場合は、セッションも残ります。[agent view](/docs/ja/agent-view#what-deleting-a-session-removes) の拒否メッセージには、`exited 1` などフックがどのように終了したか、stderr の冒頭部分、そしてセッションを再度削除した場合にディレクトリが強制的に削除されるかどうかが表示されます。

2757 3288 

2758<h3 id="precompact">3289<h3 id="precompact">

2759 PreCompact3290 PreCompact

2760</h3>3291</h3>

2761 3292 

2762Claude Code がコンパクション操作を実行しようとしている前に実行されます。3293Claude Code がコンテキスト圧縮を実行する直前に実行されます。

2763 3294 

2764マッチャー値は、コンパクションが手動でトリガーされたか自動的にトリガーされたかを示します。3295matcher の値は、圧縮が手動でトリガーされたか自動でトリガーされたかを示します。

2765 3296 

2766| マッチャー | いつ発火するか |3297| Matcher | 発生するタイミング |

2767| :- | :- |3298| :- | :- |

2768| `manual` | `/compact` |3299| `manual` | `/compact` |

2769| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション |3300| `auto` | 会話が[自動圧縮ウィンドウ](/docs/ja/model-config#set-the-auto-compact-window)に達したときの自動圧縮 |

3301 

3302圧縮をブロックするには、終了コード 2 で終了します。手動の `/compact` の場合、stderr のメッセージがユーザーに表示されます。`"decision": "block"` を含む JSON を返してブロックすることもできます。

2770 3303 

2771終了コード 2 でコンパクションをブロック。手動の `/compact` の場合、stderr メッセージはユーザーに表示されます。JSON で `"decision": "block"` を返してブロックすることもできます。3304自動圧縮をブロックした場合の効果は、発生するタイミングによって異なります。コンテキスト制限に達する前に予防的に圧縮がトリガーされた場合、Claude Code は圧縮をスキップし、会話は圧縮されないまま続行されます。API からすでに返されたコンテキスト制限エラーから回復するために圧縮がトリガーされた場合、元のエラーが表面化し、現在のリクエストは失敗します。

2772 3305 

2773自動コンパクションのブロックは、いつ発火するかに応じて異なる効果があります。コンテキスト制限の前にコンパクションがプロアクティブにトリガーされた場合、Claude Code はそれをスキップし、会話は非圧縮で続行されます。コンテキスト制限エラーから回復するためにコンパクションがトリガーされた場合、基礎となるエラーが表示され、現在のリクエストが失敗します。3306Claude Code は PreCompact フックの `systemMessage` および `continue` フィールドを破棄します。

2774 3307 

2775<h4 id="precompact-input">3308<h4 id="precompact-input">

2776 PreCompact 入力3309 PreCompact の入力

2777</h4>3310</h4>

2778 3311 

2779[共通入力フィールド](#common-input-fields)に加えて、PreCompact フックは `trigger` と `custom_instructions` を受け取ります。`manual` の場合、`custom_instructions` はユーザーが `/compact` に渡すものを含みます。`auto` の場合、`custom_instructions` は空です。3312[共通の入力フィールド](#common-input-fields)に加えて、PreCompact フックは `trigger` と `custom_instructions` を受け取ります。`manual` の場合、`custom_instructions` にはユーザーが `/compact` に渡した内容が含まれ、何も渡さなかった場合は `null` になります。`auto` の場合、`custom_instructions` は `null` です。

2780 3313 

2781```json theme={null}3314```json theme={null}

2782{3315{


2785 "cwd": "/Users/...",3318 "cwd": "/Users/...",

2786 "hook_event_name": "PreCompact",3319 "hook_event_name": "PreCompact",

2787 "trigger": "manual",3320 "trigger": "manual",

2788 "custom_instructions": ""3321 "custom_instructions": null

2789}3322}

2790```3323```

2791 3324 


2793 PostCompact3326 PostCompact

2794</h3>3327</h3>

2795 3328 

2796Claude Code がコンパクション操作を完了した後に実行されます。このイベントを使用して、新しいコンパクト状態に反応します。例えば、生成されたサマリーをログしたり、外部状態を更新したりします。3329Claude Code がコンテキスト圧縮を完了した後に実行されます。このイベントを使用すると、生成された要約をログに記録したり外部の状態を更新したりするなど、圧縮後の新しい状態に対応できます。Claude Code は PostCompact フックの `systemMessage` および `continue` フィールドを破棄します。

2797 3330 

2798`PreCompact` と同じマッチャー値が適用されます。3331`PreCompact` と同じ matcher の値が適用されます。

2799 3332 

2800| マッチャー | いつ発火するか |3333| Matcher | 発生するタイミング |

2801| :- | :- |3334| :- | :- |

2802| `manual` | `/compact` の後 |3335| `manual` | `/compact` の後 |

2803| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション後 |3336| `auto` | 会話が[自動圧縮ウィンドウ](/docs/ja/model-config#set-the-auto-compact-window)に達したときの自動圧縮の後 |

2804 3337 

2805<h4 id="postcompact-input">3338<h4 id="postcompact-input">

2806 PostCompact 入力3339 PostCompact の入力

2807</h4>3340</h4>

2808 3341 

2809[共通入力フィールド](#common-input-fields)に加えて、PostCompact フックは `trigger` と `compact_summary` を受け取ります。`compact_summary` フィールドはコンパクション操作によって生成された会話サマリーを含みます。3342[共通の入力フィールド](#common-input-fields)に加えて、PostCompact フックは `trigger` と `compact_summary` を受け取ります。`compact_summary` フィールドには、圧縮によって生成された会話の要約が含まれます。

2810 3343 

2811```json theme={null}3344```json theme={null}

2812{3345{


2819}3352}

2820```3353```

2821 3354 

2822PostCompact フックは決定制御がありません。コンパクション結果に影響を与えることはできませんが、フォローアップ タスクを実行できます。3355PostCompact フックには判定の制御がありません。圧縮の結果に影響を与えることはできませんが、後続のタスクを実行できます。

3356 

3357<h3 id="premodelswitch">

3358 PreModelSwitch

3359</h3>

3360 

3361ユーザーまたはクライアントが要求したモデルの切り替えを Claude Code が適用する前に実行されます。切り替えのブロック、確認の要求、または切り替え前にそのコストを表示するために使用します。

3362 

3363PreModelSwitch には Claude Code v2.1.251 以降が必要です。Claude Code は次のリクエストに対してこのフックを実行します。

3364 

3365* `/model <name>` および `/model` ピッカー

3366* `Option+P` または `Alt+P` のモデルピッカー

3367* `/config` の Model 設定

3368* セッションのモデルが変わる場合の [fast mode](/docs/ja/fast-mode) のオン

3369* [Agent SDK](/docs/ja/agent-sdk/typescript#query-object) ホストまたは [Remote Control](/docs/ja/remote-control) からの `set_model` リクエスト、または `apply_flag_settings` リクエストでのモデル変更

3370 

3371[モデルの自動フォールバック](/docs/ja/model-config#automatic-model-fallback)やセッション再開時のモデルの復元など、Claude Code が独自に行う切り替えについては PreModelSwitch フックは実行されません。これらの変更は [PostModelSwitch](#postmodelswitch) にのみ届きます。

3372 

3373Claude Code は、matcher をセッションの切り替え先モデルの正規名と比較します。このとき `[1m]` サフィックスは無視されます。`opus` などのエイリアス、日付付きのモデル ID、Amazon Bedrock のモデル ID などのプロバイダー固有の ID はすべて、解決先の 1 つの正規名に一致するため、`claude-opus-5` は Opus 5 のあらゆる表記をカバーします。

3374 

3375Claude Code が切り替え先の正規名を特定できない場合(たとえば [LLM ゲートウェイ](/docs/ja/llm-gateway)だけが認識するカスタムモデル ID など)、matcher に関係なくすべての PreModelSwitch フックが実行されます。したがって、ブロックを行うフックは matcher だけに頼るのではなく、入力の `to_model` を確認する必要があります。

3376 

3377matcher は、完全一致の名前、`claude-opus-4-6|claude-opus-5` のような `|` 区切りのリスト、または `.*opus.*` のような正規表現として記述します。次の例では、完全一致の matcher を使用しつつフック入力の `to_model` も確認し、終了コード 2 で終了することで Opus 4.6 への切り替えを拒否し、それ以外の切り替え先は通過させます。

3378 

3379<Tabs>

3380 <Tab title="macOS/Linux">

3381 このコマンドは `jq` で `to_model` を確認します。

3382 

3383 ```json theme={null}

3384 {

3385 "hooks": {

3386 "PreModelSwitch": [

3387 {

3388 "matcher": "claude-opus-4-6",

3389 "hooks": [

3390 {

3391 "type": "command",

3392 "command": "jq -e '.to_model | test(\"opus-4-6\")' > /dev/null && { echo 'Opus 4.6 is retired for this project. Use a newer model.' >&2; exit 2; }; exit 0"

3393 }

3394 ]

3395 }

3396 ]

3397 }

3398 }

3399 ```

3400 </Tab>

3401 

3402 <Tab title="Windows (PowerShell)">

3403 PowerShell でスクリプトを実行するコマンドフックを登録します。

3404 

3405 ```json theme={null}

3406 {

3407 "hooks": {

3408 "PreModelSwitch": [

3409 {

3410 "matcher": "claude-opus-4-6",

3411 "hooks": [

3412 {

3413 "type": "command",

3414 "command": "powershell.exe",

3415 "args": [

3416 "-NoProfile",

3417 "-ExecutionPolicy",

3418 "Bypass",

3419 "-File",

3420 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-opus-46.ps1"

3421 ]

3422 }

3423 ]

3424 }

3425 ]

3426 }

3427 }

3428 ```

3429 

3430 次のスクリプトをプロジェクトの `.claude/hooks/block-opus-46.ps1` に保存します。

3431 

3432 ```powershell theme={null}

3433 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

3434 if ($hookInput.to_model -match 'opus-4-6') {

3435 [Console]::Error.WriteLine('Opus 4.6 is retired for this project. Use a newer model.')

3436 exit 2

3437 }

3438 exit 0

3439 ```

3440 </Tab>

3441</Tabs>

3442 

3443フックが機能することを確認するには、別のモデルで実行中のセッションから `/model claude-opus-4-6` を実行します。Claude Code は現在のモデルを維持し、PreModelSwitch フックが切り替えをブロックしたことを、指定したメッセージを理由として報告します。

3444 

3445<h4 id="premodelswitch-input">

3446 PreModelSwitch の入力

3447</h4>

3448 

3449[共通の入力フィールド](#common-input-fields)に加えて、PreModelSwitch フックは次の表のフィールドを受け取ります。最後の 5 つは、会話を新しいモデルに再送信する際のコストを表すため、フックは切り替えの前にその数値を表示できます。

3450 

3451| フィールド | 型 | 説明 |

3452| :- | :- | :- |

3453| `from_model` | string | 切り替え元のモデル ID |

3454| `to_model` | string | 切り替え先のモデル ID。matcher はこのモデルの正規名と比較されます |

3455| `requested_model` | string または `null` | リクエストで指定されたモデル:`opus` などのエイリアス、完全なモデル ID、またはデフォルトモデルがリクエストされた場合は `null` |

3456| `source` | string | リクエストの送信元:`/model <name>`、`/config` の Model 設定、または fast mode のオンの場合は `"command"`、モデルピッカーの場合は `"picker"`、Agent SDK ホストまたは Remote Control からの `set_model` リクエスト、または `apply_flag_settings` リクエストでのモデル変更の場合は `"sdk"` |

3457| `context_tokens` | number | 次のリクエストがプロンプトとして再送信するトークン数:メイン会話における最後の応答の入力、キャッシュ読み取り、キャッシュ作成、出力トークンの合計。最初の応答の前は `0` |

3458| `prompt_cache_warm` | boolean | 現在のモデルのプロンプトキャッシュがまだウォーム状態である可能性が高いかどうか。ウォーム状態の場合、切り替えによってキャッシュが失われます |

3459| `cache_ttl` | string | このセッションで Claude Code が要求する[プロンプトキャッシュの有効期間](/docs/ja/prompt-caching#cache-lifetime):`"5m"` または `"1h"` |

3460| `estimated_cache_write_usd` | number | `to_model` 上で `context_tokens` を `cache_ttl` の料金でプロンプトキャッシュに書き込む推定コスト(米ドル)。次の応答は含みません。サーバーがコンテキスト全体を再キャッシュする必要がない場合もあるため、推定値として扱ってください |

3461| `pricing` | string | Claude Code が `estimated_cache_write_usd` をどのように算出したか:組織が独自の料金を設定している場合はその料金による `"configured"`、定価による `"catalog"`、または `to_model` の料金が不明で Claude Code がデフォルト料金を仮定した場合は `"default"` |

3462 

3463次の例は、Sonnet 5 で実行中のセッションで `/model opus` を実行した場合の入力を示しています。

3464 

3465```json theme={null}

3466{

3467 "session_id": "abc123",

3468 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

3469 "cwd": "/Users/...",

3470 "hook_event_name": "PreModelSwitch",

3471 "from_model": "claude-sonnet-5",

3472 "to_model": "claude-opus-5",

3473 "requested_model": "opus",

3474 "source": "command",

3475 "context_tokens": 182340,

3476 "prompt_cache_warm": true,

3477 "cache_ttl": "5m",

3478 "estimated_cache_write_usd": 1.1396,

3479 "pricing": "catalog"

3480}

3481```

3482 

3483<h4 id="premodelswitch-decision-control">

3484 PreModelSwitch の判定制御

3485</h4>

3486 

3487`PreModelSwitch` フックは、切り替えをキャンセルしたり、ユーザーに確認を求めたり、そのまま続行させたりできます。終了コード 2 またはトップレベルの `decision: "block"` は切り替えをキャンセルします。

3488 

3489より細かく制御するには、[PreToolUse](#pretooluse-decision-control) と同様に、`hookSpecificOutput` オブジェクト内で `permissionDecision` と `permissionDecisionReason` を返します。`PreModelSwitch` は `"allow"`、`"deny"`、`"ask"` を受け付けます。`"defer"`、`updatedInput`、`additionalContext` は受け付けません。次の表で両方のフィールドについて説明します。

3490 

3491| フィールド | 説明 |

3492| :- | :- |

3493| `permissionDecision` | `"allow"` は切り替えを続行し、[プロンプトキャッシュがウォーム状態のときに Claude Code が表示する確認](/docs/ja/prompt-caching#switching-models)をスキップします。`"deny"` は切り替えをキャンセルします。`"ask"` はユーザーに確認を求めます |

3494| `permissionDecisionReason` | `"deny"` の場合、切り替えがブロックされた理由としてユーザーに表示されるか、`set_model` リクエストのエラーとして返されます。`"ask"` の場合、確認プロンプトに表示されます。`"allow"` の場合は無視されます |

3495 

3496`"ask"` のプロンプトを表示できるのは、対話セッションでの `/model` のみです。`-p` フラグを使用した非対話モード、`/config`、`set_model` リクエストを含むその他すべてのサーフェスでは、Claude Code は `"ask"` を拒否として扱います。

3497 

3498次の例では、ユーザーに確認を求め、`context_tokens` のトークン数を示しています。

3499 

3500```json theme={null}

3501{

3502 "hookSpecificOutput": {

3503 "hookEventName": "PreModelSwitch",

3504 "permissionDecision": "ask",

3505 "permissionDecisionReason": "Switching now re-sends about 180k tokens to the new model. Continue?"

3506 }

3507}

3508```

3509 

3510複数の PreModelSwitch フックが異なる判定を返した場合、優先順位は `deny` > `ask` > `allow` です。

3511 

3512Claude Code は判定にかかわらず、フックが返した `systemMessage` をユーザーに表示します。そのため、コストを報告するフックは `{"systemMessage": "..."}` を返して 0 で終了できます。

3513 

3514タイムアウトまでに応答しない PreModelSwitch フックは、切り替えをブロックします。対照的に、[PreToolUse](#timeouts) では、タイムアウトしたコマンドフックはツール呼び出しを続行させます。このイベントのデフォルトのタイムアウトは 30 秒です。`PreModelSwitch` は `command`、`http`、`mcp_tool` フックのみを実行するため、`prompt` と `agent` のデフォルトは適用されません。

3515 

35160 または 2 以外のコードで終了し、JSON の判定を出力しないフックはブロックしません。[その他の終了コード](#other-exit-codes)で説明されているとおり、Claude Code はその stderr を表示して切り替えを適用します。

3517 

3518<h3 id="postmodelswitch">

3519 PostModelSwitch

3520</h3>

3521 

3522セッションのモデルが変更された後に実行されます。特定のモデルに適用される組織全体の指示など、すべての CLAUDE.md を編集することなく、Claude にモデル固有のガイダンスを与えるために使用します。

3523 

3524PostModelSwitch には Claude Code v2.1.251 以降が必要です。モデルはすでに変更されているため、ブロックすることはできません。Claude Code は、次のいずれかの変更の後に PostModelSwitch フックを実行します。

3525 

3526* ユーザーまたはクライアントが要求した切り替え

3527* セッションのモデルを変更する[モデルの自動フォールバック](/docs/ja/model-config#automatic-model-fallback)

3528* [`opusplan`](/docs/ja/model-config#opusplan-model-setting) などの設定による plan モードへの移行または終了

3529* セッション再開時に Claude Code がモデルを復元したとき

3530 

3531[フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains)のモデルがターンを処理した場合、PostModelSwitch フックは実行されません。この置き換えは 1 ターンのみ有効で、セッションのモデルは変更されないためです。

3532 

3533matcher は [PreModelSwitch](#premodelswitch) と同じルールに従います。Claude Code は、matcher をセッションの切り替え先モデルの正規名と比較します。

3534 

3535次の例では、セッションのモデルがいずれかの Opus モデルに変更されるたびにガイダンスを追加します。

3536 

3537```json theme={null}

3538{

3539 "hooks": {

3540 "PostModelSwitch": [

3541 {

3542 "matcher": ".*opus.*",

3543 "hooks": [

3544 {

3545 "type": "command",

3546 "command": "echo 'On Opus, delegate implementation work to subagents and keep this conversation for planning and review.'"

3547 }

3548 ]

3549 }

3550 ]

3551 }

3552}

3553```

3554 

3555フックが機能することを確認するには、別のモデルで実行中のセッションから Opus モデルに切り替え(たとえば Sonnet セッションから `/model opus` を実行)、現在のモデルについてどのようなガイダンスがあるかを Claude に尋ねます。

3556 

3557<h4 id="postmodelswitch-input">

3558 PostModelSwitch の入力

3559</h4>

3560 

3561PostModelSwitch フックは [PreModelSwitch](#premodelswitch-input) と同じフィールドを受け取ります。ただし、`hook_event_name` は `"PostModelSwitch"` に設定され、`source` には 2 つの値が追加されます。自動フォールバックや Claude Code が独自に行ったその他の変更の場合は `"auto"`、セッション再開時に復元されたモデルの場合は `"resume"` です。

3562 

3563`source` が `"auto"` の場合、`requested_model` は `null` です。`source` が `"resume"` の場合は、Claude Code が復元した保存済みのモデル設定です。

3564 

3565<h4 id="postmodelswitch-decision-control">

3566 PostModelSwitch の判定制御

3567</h4>

3568 

3569Claude Code は、終了コード 0 の場合のフックの[プレーンテキストの stdout](#exit-code-0)、または JSON 出力の `additionalContext` を取得し、切り替え後の次のリクエストとともに Claude に渡します。すべてのフックで使用できる [JSON 出力フィールド](#json-output)に加えて、次のフィールドを返すことができます。

3570 

3571| フィールド | 説明 |

3572| :- | :- |

3573| `additionalContext` | 次のリクエストで Claude のコンテキストに追加される文字列。[Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

3574 

3575次のプロンプトを送信してから 5 秒以内にフックが完了しない場合、Claude Code は出力なしでそのリクエストを送信し、代わりにその次のリクエストに出力を添付します。次のリクエストまでにモデルが複数回変更された場合、Claude Code は最後の切り替え先モデルの出力のみを渡します。

2823 3576 

2824<h3 id="sessionend">3577<h3 id="sessionend">

2825 SessionEnd3578 SessionEnd

2826</h3>3579</h3>

2827 3580 

2828Claude Code セッションが終了するときに実行されます。クリーンアップ タスク、セッション統計のログ、またはセッション状態の保存に便利です。終了理由でフィルタリングするマッチャーをサポートします。3581Claude Code セッションが終了するときに実行されます。クリーンアップタスク、セッション統計のログ記録、セッション状態の保存に役立ちます。終了理由でフィルタリングするための matcher をサポートしています。

2829 3582 

2830フック入力の `reason` フィールドはセッションが終了した理由を示します。3583フック入力の `reason` フィールドは、セッションが終了した理由を示します。

2831 3584 

2832| 理由 | 説明 |3585| 理由 | 説明 |

2833| :- | :- |3586| :- | :- |

2834| `clear` | `/clear` コマンドでセッションをクリア |3587| `clear` | `/clear` コマンドでセッションがクリアされた |

2835| `resume` | インタラクティブ `/resume` 経由でセッションを切り替え |3588| `resume` | 対話的な `/resume` でセッションが切り替えられた |

2836| `logout` | ユーザーがログアウト |3589| `logout` | ユーザーがログアウトした |

2837| `prompt_input_exit` | プロンプト入力が表示されている間にユーザーが終了 |3590| `prompt_input_exit` | プロンプト入力が表示されている間にユーザーが終了した |

2838| `bypass_permissions_disabled` | バイパス権限モードが無効化 |

2839| `other` | その他の終了理由 |3591| `other` | その他の終了理由 |

3592| `bypass_permissions_disabled` | v2.1.234 で削除されました。Claude Code はこの値を送信しません。`SessionEnd` の matcher から削除してください |

2840 3593 

2841<h4 id="sessionend-input">3594<h4 id="sessionend-input">

2842 SessionEnd 入力3595 SessionEnd の入力

2843</h4>3596</h4>

2844 3597 

2845[共通入力フィールド](#common-input-fields)に加えて、SessionEnd フックはセッションが終了した理由を示す `reason` フィールドを受け取ります。上記の[理由テーブル](#sessionend)をすべての値について参照してください。3598[共通の入力フィールド](#common-input-fields)に加えて、SessionEnd フックはセッションが終了した理由を示す `reason` フィールドを受け取ります。すべての値については、上記の[理由の表](#sessionend)を参照してください。

2846 3599 

2847```json theme={null}3600```json theme={null}

2848{3601{


2854}3607}

2855```3608```

2856 3609 

2857SessionEnd フックは決定制御がありません。セッション終了をブロックできませんが、クリーンアップ タスクを実行できます。3610SessionEnd フックには判定の制御がありません。セッションの終了をブロックすることはできませんが、クリーンアップタスクを実行できます。Claude Code は、`systemMessage` などの [JSON 出力フィールド](#json-output)を破棄します。

2858 3611 

2859SessionEnd フックのデフォルト タイムアウトは 1.5 秒です。これはセッション終了、`/clear`、およびインタラクティブ `/resume` 経由でのセッション切り替えに適用されます。フックにより多くの時間が必要な場合は、フック設定でフックごとの `timeout` を設定します。全体的な予算は、設定ファイルで設定されたフックごとのタイムアウトの最高値に自動的に引き上げられ、最大 60 秒です。プラグイン提供のフックに設定されたタイムアウトは予算を引き上げません。予算を明示的にオーバーライドするには、`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` 環境変数をミリ秒単位で設定します。3612SessionEnd フックのデフォルトのタイムアウトは 1.5 秒です。これは、終了したとき、`/clear` を実行したとき、または対話的な `/resume` でセッションを切り替えたときに適用されます。フックにより多くの時間を与えるには、次の 2 つの方法があります。

3613 

3614* **フックごとの `timeout`**:そのフックの設定で `timeout` を設定します。全体の上限時間は、設定ファイル内のフックごとの `timeout` の最大値に合わせて、最大 60 秒まで自動的に引き上げられます。この方法で上限時間を引き上げても、独自の `timeout` を持たないフックはデフォルトのままです。プラグインが提供するフックに設定されたタイムアウトは、上限時間を引き上げません。

3615* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:この環境変数をミリ秒単位で設定すると、上限時間を明示的に上書きできます。設定した値は、独自の `timeout` を持たない各フックのタイムアウトにもなります。

3616 

3617次の例では、上限時間を 5 秒に設定します。

2860 3618 

2861```bash theme={null}3619```bash theme={null}

2862CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3620CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

2863```3621```

2864 3622 

3623v2.1.268 より前は、`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` は全体の上限時間のみを引き上げ、独自の `timeout` を持たないフックは引き続き 1.5 秒後にキャンセルされていました。

3624 

2865<h3 id="elicitation">3625<h3 id="elicitation">

2866 Elicitation3626 Elicitation

2867</h3>3627</h3>

2868 3628 

2869MCP サーバーがタスク中にユーザー入力をリクエストするときに実行されます。デフォルトでは、Claude Code はユーザーが応答するためのインタラクティブ ダイアログを表示します。フックはこのリクエストをインターセプトして、プログラムで応答し、ダイアログを完全にスキップできます。3629MCP サーバーがタスクの途中でユーザー入力を要求したときに実行されます。デフォルトでは、Claude Code はユーザーが応答するための対話ダイアログを表示します。フックはこのリクエストをインターセプトしてプログラムで応答し、ダイアログを完全にスキップできます。

2870 3630 

2871マッチャー フィールドは MCP サーバー名に対してマッチします。3631matcher フィールドは MCP サーバー名と照合されます。

2872 3632 

2873<h4 id="elicitation-input">3633<h4 id="elicitation-input">

2874 Elicitation 入力3634 Elicitation の入力

2875</h4>3635</h4>

2876 3636 

2877[共通入力フィールド](#common-input-fields)に加えて、Elicitation フックは `mcp_server_name`、`message`、およびオプションで `mode`、`url`、`elicitation_id`、`requested_schema` フィールドを受け取ります。3637[共通の入力フィールド](#common-input-fields)に加えて、Elicitation フックは `mcp_server_name`、`message`、およびオプションの `mode`、`url`、`elicitation_id`、`requested_schema` フィールドを受け取ります。

2878 3638 

2879フォーム モード elicitation(最も一般的なケース)の場合。3639最も一般的なケースであるフォームモードの elicitation の場合:

2880 3640 

2881```json theme={null}3641```json theme={null}

2882{3642{

2883 "session_id": "abc123",3643 "session_id": "abc123",

2884 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",3644 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2885 "cwd": "/Users/...",3645 "cwd": "/Users/...",

2886 "permission_mode": "default",

2887 "hook_event_name": "Elicitation",3646 "hook_event_name": "Elicitation",

2888 "mcp_server_name": "my-mcp-server",3647 "mcp_server_name": "my-mcp-server",

2889 "message": "Please provide your credentials",3648 "message": "Please provide your credentials",


2897}3656}

2898```3657```

2899 3658 

2900URL モード elicitation(ブラウザベースの認証)の場合。3659ブラウザベースの認証に使用される URL モードの elicitation の場合:

2901 3660 

2902```json theme={null}3661```json theme={null}

2903{3662{

2904 "session_id": "abc123",3663 "session_id": "abc123",

2905 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",3664 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2906 "cwd": "/Users/...",3665 "cwd": "/Users/...",

2907 "permission_mode": "default",

2908 "hook_event_name": "Elicitation",3666 "hook_event_name": "Elicitation",

2909 "mcp_server_name": "my-mcp-server",3667 "mcp_server_name": "my-mcp-server",

2910 "message": "Please authenticate",3668 "message": "Please authenticate",


2914```3672```

2915 3673 

2916<h4 id="elicitation-output">3674<h4 id="elicitation-output">

2917 Elicitation 出力3675 Elicitation の出力

2918</h4>3676</h4>

2919 3677 

2920ダイアログを表示せずにプログラムで応答するには、`hookSpecificOutput` を含む JSON オブジェクトを返します。3678ダイアログを表示せずにプログラムで応答するには、`hookSpecificOutput` を含む JSON オブジェクトを返します。


2934| フィールド | 値 | 説明 |3692| フィールド | 値 | 説明 |

2935| :- | :- | :- |3693| :- | :- | :- |

2936| `action` | `accept`、`decline`、`cancel` | リクエストを受け入れるか、拒否するか、キャンセルするか |3694| `action` | `accept`、`decline`、`cancel` | リクエストを受け入れるか、拒否するか、キャンセルするか |

2937| `content` | オブジェクト | 送信するフォーム フィールド値。`action` が `accept` のときのみ使用 |3695| `content` | object | 送信するフォームフィールドの値。`action` が `accept` の場合にのみ使用されます |

3696 

3697終了コード 2 は elicitation を拒否します。Claude Code は stderr のメッセージをどこにも表示しません。

2938 3698 

2939終了コード 2 は elicitation を拒否し、stderr をユーザーに表示します。3699Claude Code は Elicitation フックの JSON 出力のうち `hookSpecificOutput` に従って動作し、`systemMessage` と `continue` は破棄します。

2940 3700 

2941<h3 id="elicitationresult">3701<h3 id="elicitationresult">

2942 ElicitationResult3702 ElicitationResult

2943</h3>3703</h3>

2944 3704 

2945ユーザーが MCP elicitation に応答した後に実行されます。フックは応答を観察、変更、またはブロックしてから、MCP サーバーに送り返すことができます。3705ユーザーが MCP の elicitation に応答した後に実行されます。フックは、応答が MCP サーバーに返送される前に、その応答を監視、変更、またはブロックできます。

2946 3706 

2947マッチャー フィールドは MCP サーバー名に対してマッチします。3707matcher フィールドは MCP サーバー名と照合されます。

2948 3708 

2949<h4 id="elicitationresult-input">3709<h4 id="elicitationresult-input">

2950 ElicitationResult 入力3710 ElicitationResult の入力

2951</h4>3711</h4>

2952 3712 

2953[共通入力フィールド](#common-input-fields)に加えて、ElicitationResult フックは `mcp_server_name`、`action`、およびオプションで `mode`、`elicitation_id`、`content` フィールドを受け取ります。3713[共通の入力フィールド](#common-input-fields)に加えて、ElicitationResult フックは `mcp_server_name`、`action`、およびオプションの `mode`、`elicitation_id`、`content` フィールドを受け取ります。

2954 3714 

2955```json theme={null}3715```json theme={null}

2956{3716{

2957 "session_id": "abc123",3717 "session_id": "abc123",

2958 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",3718 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2959 "cwd": "/Users/...",3719 "cwd": "/Users/...",

2960 "permission_mode": "default",

2961 "hook_event_name": "ElicitationResult",3720 "hook_event_name": "ElicitationResult",

2962 "mcp_server_name": "my-mcp-server",3721 "mcp_server_name": "my-mcp-server",

2963 "action": "accept",3722 "action": "accept",


2968```3727```

2969 3728 

2970<h4 id="elicitationresult-output">3729<h4 id="elicitationresult-output">

2971 ElicitationResult 出力3730 ElicitationResult の出力

2972</h4>3731</h4>

2973 3732 

2974ユーザーの応答をオーバーライドするには、`hookSpecificOutput` を含む JSON オブジェクトを返します。3733ユーザーの応答を上書きするには、`hookSpecificOutput` を含む JSON オブジェクトを返します。

2975 3734 

2976```json theme={null}3735```json theme={null}

2977{3736{


2985 3744 

2986| フィールド | 値 | 説明 |3745| フィールド | 値 | 説明 |

2987| :- | :- | :- |3746| :- | :- | :- |

2988| `action` | `accept`、`decline`、`cancel` | ユーザーのアクションをオーバーライド |3747| `action` | `accept`、`decline`、`cancel` | ユーザーのアクションを上書きします |

2989| `content` | オブジェクト | フォーム フィールド値をオーバーライド。`action` が `accept` のときのみ意味がある |3748| `content` | object | フォームフィールドの値を上書きします。`action` が `accept` の場合にのみ意味を持ちます |

2990 3749 

2991終了コード 2 はレスポンスをブロックし、有効なアクションを `decline` に変更します。3750終了コード 2 は応答をブロックし、実際のアクションを `decline` に変更します。Claude Code は stderr のメッセージをどこにも表示しません。

3751 

3752Claude Code は ElicitationResult フックの JSON 出力のうち `hookSpecificOutput` に従って動作し、`systemMessage` と `continue` は破棄します。

2992 3753 

2993<h2 id="prompt-based-hooks">3754<h2 id="prompt-based-hooks">

2994 プロンプト ベースのフック3755 プロンプト ベースのフック


29995 つのフック タイプ(`command`、`http`、`mcp_tool`、`prompt`、`agent`)すべてをサポートするイベント:37605 つのフック タイプ(`command`、`http`、`mcp_tool`、`prompt`、`agent`)すべてをサポートするイベント:

3000 3761 

3001* `PermissionDenied`3762* `PermissionDenied`

3002* `PermissionRequest`

3003* `PostToolBatch`3763* `PostToolBatch`

3004* `PostToolUse`3764* `PostToolUse`

3005* `PostToolUseFailure`3765* `PostToolUseFailure`


3012* `UserPromptExpansion`3772* `UserPromptExpansion`

3013* `UserPromptSubmit`3773* `UserPromptSubmit`

3014 3774 

3775`PermissionRequest` は `command`、`http`、`mcp_tool`、`prompt` フックをサポートしますが、`agent` フックはサポートしません。このイベントにエージェント フックを設定した場合、Claude Code はそれをスキップし、権限フローは変更されずに進行します。フックから許可または拒否するには、コマンド フックまたは HTTP フックから[決定オブジェクト](#permissionrequest-decision-control)を返します。

3776 

3015`command`、`http`、`mcp_tool` フックをサポートするが、`prompt` または `agent` をサポートしないイベント:3777`command`、`http`、`mcp_tool` フックをサポートするが、`prompt` または `agent` をサポートしないイベント:

3016 3778 

3017* `ConfigChange`3779* `ConfigChange`

3018* `CwdChanged`3780* `CwdChanged`

3781* `DirectoryAdded`

3019* `Elicitation`3782* `Elicitation`

3020* `ElicitationResult`3783* `ElicitationResult`

3021* `FileChanged`3784* `FileChanged`

3022* `InstructionsLoaded`3785* `InstructionsLoaded`

3786* `MessageDisplay`

3023* `Notification`3787* `Notification`

3024* `PostCompact`3788* `PostCompact`

3789* `PostModelSwitch`

3025* `PreCompact`3790* `PreCompact`

3791* `PreModelSwitch`

3026* `SessionEnd`3792* `SessionEnd`

3027* `StopFailure`3793* `StopFailure`

3028* `SubagentStart`3794* `SubagentStart`

3029* `WorktreeCreate`3795* `WorktreeCreate`

3030* `WorktreeRemove`3796* `WorktreeRemove`

3031 3797 

3032`SessionStart` と `Setup` は `command` と `mcp_tool` フックをサポートしています。これらは `http`、`prompt`、`agent` フックをサポートしていません。3798`SessionStart` と `Setup` は `command` と `mcp_tool` フックをサポートしており、それらの `mcp_tool` フックがいつ実行されるかについては [MCP ツール フックのフィールド](#mcp-tool-hook-fields)で説明しています。これらは `http`、`prompt`、`agent` フックをサポートしていません。

3033 3799 

3034<h3 id="how-prompt-based-hooks-work">3800<h3 id="how-prompt-based-hooks-work">

3035 プロンプト ベースのフックの仕組み3801 プロンプト ベースのフックの仕組み


3037 3803 

3038プロンプト ベースのフックは Bash コマンドを実行する代わりに:3804プロンプト ベースのフックは Bash コマンドを実行する代わりに:

3039 3805 

30401. フック入力とプロンプトを Claude モデル(デフォルトは Haiku)に送信38061. フック入力とプロンプトを Claude モデル(デフォルトでは Claude Code が[バックグラウンド機能](/docs/ja/costs#background-token-usage)に使用するモデル)に送信

30412. LLM は決定を含む構造化 JSON で応答38072. LLM は決定を含む構造化 JSON で応答

30423. Claude Code は決定を自動的に処理38083. Claude Code は決定を自動的に処理

3043 3809 


3045 プロンプト フック設定3811 プロンプト フック設定

3046</h3>3812</h3>

3047 3813 

3048`type` を `"prompt"` に設定し、`command` の代わりに `prompt` 文字列を提供します。`$ARGUMENTS` プレースホルダーを使用して、フックの JSON 入力データをプロンプト テキストに注入します。Claude Code は結合されたプロンプトと入力を高速 Claude モデルに送信し、JSON 決定を返します。3814`type` を `"prompt"` に設定し、`command` の代わりに `prompt` 文字列を提供します。`$ARGUMENTS` プレースホルダーを使用して、フックの JSON 入力データをプロンプト テキストに注入します。

3049 3815 

3050この `Stop` フックは、Claude が終了する前にすべてのタスクが完了しているかどうかを評価するよう LLM に求めます:3816この `Stop` フックは、Claude が終了する前にすべてのタスクが完了しているかどうかを評価するよう LLM に求めます:

3051 3817 


3070| :- | :- | :- |3836| :- | :- | :- |

3071| `type` | はい | `"prompt"` である必要があります |3837| `type` | はい | `"prompt"` である必要があります |

3072| `prompt` | はい | LLM に送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。`$ARGUMENTS` が存在しない場合、入力 JSON がプロンプトに追加されます |3838| `prompt` | はい | LLM に送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。`$ARGUMENTS` が存在しない場合、入力 JSON がプロンプトに追加されます |

3073| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |3839| `model` | いいえ | 評価に使用するモデル。デフォルトは Claude Code が[バックグラウンド機能](/docs/ja/costs#background-token-usage)に使用するモデル |

3074| `timeout` | いいえ | タイムアウト(秒単位)。デフォルト:30 |3840| `timeout` | いいえ | タイムアウト(秒単位)。デフォルト:30 |

3075| `continueOnBlock` | いいえ | プロンプトが `ok: false` を返すとき、理由を Claude にフィードバックして、停止する代わりにターンを続行します。デフォルト:`false`。結果の `decision: "block"` に `continue: true` として実装されます。イベント ごとの動作については、[レスポンス スキーマ](#response-schema)を参照してください |3841| `continueOnBlock` | いいえ | 適用されるイベントでは、`true` にすると `ok: false` の理由を Claude にフィードバックし、ターンを終了する代わりに続行します。デフォルト:`false`。イベント ごとの動作については、[レスポンス スキーマ](#response-schema)を参照してください |

3076 3842 

3077<h3 id="response-schema">3843<h3 id="response-schema">

3078 レスポンス スキーマ3844 レスポンス スキーマ


3083```json theme={null}3849```json theme={null}

3084{3850{

3085 "ok": true | false,3851 "ok": true | false,

3086 "reason": "Explanation for the decision"3852 "reason": "Explanation for the decision",

3853 "impossible": true | false

3087}3854}

3088```3855```

3089 3856 

3090| フィールド | 説明 |3857| フィールド | 説明 |

3091| :- | :- |3858| :- | :- |

3092| `ok` | `true` はアクションを許可、`false` は `decision: "block"` を生成します。以下のイベント ごとの動作を参照してください |3859| `ok` | `true` で許可します。`false` の場合は、以下のイベント ごとの動作を参照してください |

3093| `reason` | `ok` が `false` のときに必須。ブロック理由として使用されます |3860| `reason` | `ok` が `false` のときに必須 |

3861| `impossible` | 省略可能。条件が決して満たされないとモデルが判断した場合に、`ok: false` とともに返します。`Stop` と `SubagentStop` では、Claude Code は理由をフィードバックする代わりにターンを終了させます。エージェント フックとその他のイベントはこれを無視します |

3094 3862 

3095`ok: false` で何が起こるかはイベントによって異なります:3863`ok: false` で何が起こるかはイベントによって異なります:

3096 3864 

3097* `Stop` と `SubagentStop`:理由は Claude の次の指示としてフィードバックされ、ターンが続行されます3865* `Stop` と `SubagentStop`:理由は Claude の次の指示としてフィードバックされ、ターンが続行されます。ただし、応答で `impossible: true` も設定されている場合は、Claude Code が停止を許可し、ターンが終了します

3098* `PreToolUse`:ツール呼び出しが拒否され、理由は Claude にツール エラーとして返されます。これはコマンド フックの `permissionDecision: "deny"` と同等です3866* `PreToolUse`:ツール呼び出しが拒否されます。デフォルトではターンが終了し、拒否理由は警告行としてチャットに表示されます。代わりに理由をツール エラーとして Claude に返し、Claude が調整して続行できるようにするには、`continueOnBlock: true` を設定します。これはコマンド フックの `permissionDecision: "deny"` と同等です。v2.1.210 より前は、拒否理由はツール エラーとして Claude に返され、ターンは続行されていました

3099* `PostToolUse`:デフォルトではターンが終了し、理由は警告行としてチャットに表示されます。`continueOnBlock: true` を設定して、理由を Claude にフィードバックし、ターンを続行する代わりに使用します3867* `PostToolUse`:デフォルトではターンが終了し、理由は警告行としてチャットに表示されます。`continueOnBlock: true` を設定して、理由を Claude にフィードバックし、ターンを続行する代わりに使用します

3100* `PostToolBatch`、`UserPromptSubmit`、`UserPromptExpansion`:ターンが終了し、理由は警告行として表示されます。これらのイベントは `continue` に関係なく `decision: "block"` でターンを終了します3868* `PostToolBatch`、`UserPromptSubmit`、`UserPromptExpansion`:ターンが終了し、理由は警告行として表示されます。これらのイベントは `continue` に関係なく `decision: "block"` でターンを終了します

3101* `PostToolUseFailure`、`TaskCreated`、`TaskCompleted`:理由は Claude にツール エラーとして返されます。`PreToolUse` と同様です3869* `PostToolUseFailure`、`TaskCreated`:理由は `continueOnBlock` に関係なくツール エラーとして Claude に返され、ターンが続行されます

3870* `TaskCompleted`:ターン中にタスクが完了としてマークされたために発火した場合、理由は `continueOnBlock` に関係なくツール エラーとして Claude に返され、ターンが続行されます。チームメイトが停止したために発火した場合は、`TeammateIdle` と同様に動作し、デフォルトでチームメイトを停止します

3102* `TeammateIdle`:デフォルトではチームメイトが停止し、理由は警告行として表示されます。`continueOnBlock: true` を設定して、理由をチームメイトにフィードバックし、代わりに作業を続行させます3871* `TeammateIdle`:デフォルトではチームメイトが停止し、理由は警告行として表示されます。`continueOnBlock: true` を設定して、理由をチームメイトにフィードバックし、代わりに作業を続行させます

3103* `PermissionRequest`:`ok: false` は効果がありません。フックから承認を拒否するには、[コマンド フック](#command-hook-fields)を使用して `hookSpecificOutput.decision.behavior: "deny"` を返します3872* `PermissionRequest`:`ok: false` は効果がありません。フックから承認を拒否するには、[コマンド フック](#command-hook-fields)を使用して `hookSpecificOutput.decision.behavior: "deny"` を返します

3104* `PermissionDenied`:`ok: false` は効果がありません。拒否は既に発生しているためです。このイベントが読み取る唯一の出力は `hookSpecificOutput.retry` です。プロンプト フックとエージェント フックはこれを設定できません。これらはこのイベントで実行されますが、その出力は破棄されます。`retry` を返すには、[コマンド フック](#command-hook-fields)を使用してください3873* `PermissionDenied`:`ok: false` は効果がありません。拒否は既に発生しているためです。このイベントが読み取る唯一の出力は `hookSpecificOutput.retry` です。プロンプト フックとエージェント フックはこれを設定できません。これらはこのイベントで実行されますが、その出力は破棄されます。`retry` を返すには、[コマンド フック](#command-hook-fields)を使用してください


3109 停止する前に複数の条件をチェック3878 停止する前に複数の条件をチェック

3110</h3>3879</h3>

3111 3880 

3112この `Stop` フックは詳細なプロンプトを使用して、Claude が停止することを許可する前に 3 つの条件をチェックします。`SubagentStop` フックは同じ形式を使用して、[サブエージェント](/docs/ja/sub-agents)が停止すべきかどうかを評価します。`"ok"` が `false` の場合、Claude は提供された理由を次の指示として受け取り、作業を続行します:3881この `Stop` フックは詳細なプロンプトを使用して、Claude が停止することを許可する前に 3 つの条件をチェックします。`SubagentStop` フックは同じ形式を使用して、[サブエージェント](/docs/ja/sub-agents)が停止すべきかどうかを評価します。条件がまだ満たされていないためにモデルが `"ok": false` を返した場合、Claude は提供された理由を次の指示として受け取り、作業を続行します:

3113 3882 

3114```json theme={null}3883```json theme={null}

3115{3884{


3137 エージェント フックは実験的です。動作と設定は将来のリリースで変更される可能性があります。本番ワークフローの場合は、[コマンド フック](#command-hook-fields)を優先してください。3906 エージェント フックは実験的です。動作と設定は将来のリリースで変更される可能性があります。本番ワークフローの場合は、[コマンド フック](#command-hook-fields)を優先してください。

3138</Warning>3907</Warning>

3139 3908 

3140エージェント ベースのフック(`type: "agent"`)はプロンプト ベースのフックのようですが、マルチターン ツール アクセスを備えています。単一の LLM 呼び出しの代わりに、エージェント フックはサブエージェントを生成し、ファイルを読み取り、コードを検索し、コードベースを検査して条件を検証できます。エージェント フックはプロンプト ベースのフックと同じイベントをサポートしています。3909エージェント ベースのフック(`type: "agent"`)はプロンプト ベースのフックのようですが、マルチターン ツール アクセスを備えています。単一の LLM 呼び出しの代わりに、エージェント フックはサブエージェントを生成し、ファイルを読み取り、コードを検索し、コードベースを検査して条件を検証できます。エージェント フックは、`PermissionRequest` を除き、[プロンプト ベースのフック](#prompt-based-hooks)と同じイベントをサポートしています。

3141 3910 

3142<h3 id="how-agent-hooks-work">3911<h3 id="how-agent-hooks-work">

3143 エージェント フックの仕組み3912 エージェント フックの仕組み


31481. Claude Code はプロンプトとフックの JSON 入力を持つサブエージェントを生成します39171. Claude Code はプロンプトとフックの JSON 入力を持つサブエージェントを生成します

31492. サブエージェントは Read、Grep、Glob などのツールを使用して調査できます39182. サブエージェントは Read、Grep、Glob などのツールを使用して調査できます

31503. 最大 50 ターン後、サブエージェントは構造化 `{ "ok": true/false }` 決定を返します39193. 最大 50 ターン後、サブエージェントは構造化 `{ "ok": true/false }` 決定を返します

31514. Claude Code はプロンプト フックと同じ方法で決定を処理します39204. Claude Code は `ok` が `true` の場合にアクションを許可します。`ok` が `false` の場合、Claude Code は[レスポンス スキーマ](#response-schema)に記載されているとおり、そのイベントで `continueOnBlock: true` を指定したプロンプト フックと同じ方法でブロックを処理します

3152 3921 

3153エージェント フックは、フック入力データのみを評価するのではなく、実際のファイルを検査したりテスト出力を検査したりする必要がある場合に便利です。3922エージェント フックは、フック入力データのみを評価するのではなく、実際のファイルを検査したりテスト出力を検査したりする必要がある場合に便利です。

3154 3923 


3156 エージェント フック設定3925 エージェント フック設定

3157</h3>3926</h3>

3158 3927 

3159`type` を `"agent"` に設定し、`prompt` 文字列を提供します。設定フィールドは[プロンプト フック](#prompt-hook-configuration)と同じですが、より長いデフォルト タイムアウトです:3928`type` を `"agent"` に設定し、`prompt` 文字列を提供します。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。設定フィールドは[プロンプト フック](#prompt-hook-configuration)と同じですが、エージェント フックはデフォルト タイムアウトが 60 秒と長く、`continueOnBlock` フィールドがありません。

3160 

3161| フィールド | 必須 | 説明 |

3162| :- | :- | :- |

3163| `type` | はい | `"agent"` である必要があります |

3164| `prompt` | はい | 検証する内容を説明するプロンプト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します |

3165| `model` | いいえ | 使用するモデル。デフォルトは高速モデル |

3166| `timeout` | いいえ | タイムアウト(秒単位)。デフォルト:60 |

3167 3929 

3168レスポンス スキーマはプロンプト フックと同じです:許可するには `{ "ok": true }` を、ブロックするには `{ "ok": false, "reason": "..." }` を返します。3930レスポンス スキーマは、許可する場合は `{ "ok": true }`、ブロックする場合は `{ "ok": false, "reason": "..." }` です。`ok: false` の場合、Claude Code はエージェント フックを、同じイベントにおける[`continueOnBlock: true` を指定したプロンプト フック](#response-schema)と同じ方法で処理します。エージェント フックには `continueOnBlock` フィールドがなく、プロンプト フックの `impossible` フィールドもサポートしていません。

3169 3931 

3170この `Stop` フックは、Claude が終了することを許可する前にすべてのユニット テストが合格することを検証します:3932この `Stop` フックは、Claude が終了することを許可する前にすべてのユニット テストが合格することを検証します:

3171 3933 


3191 バックグラウンドでフックを実行3953 バックグラウンドでフックを実行

3192</h2>3954</h2>

3193 3955 

3194デフォルトでは、フックは完了するまで Claude の実行をブロックします。デプロイメント、テスト スイート、外部 API 呼び出しなどの長時間実行タスクの場合、`"async": true` を設定してフックをバックグラウンドで実行し、Claude が作業を続行できるようにします。非同期フックはブロックまたは Claude の動作を制御できません。`decision`、`permissionDecision`、`continue` などのレスポンス フィールドは、制御しようとしたアクションがすでに完了しているため、効果がありません。3956デフォルトでは、フックは完了するまで Claude の実行をブロックします。デプロイ、テスト スイート、外部 API 呼び出しなどの長時間実行タスクの場合、`"async": true` を設定してフックをバックグラウンドで実行し、Claude が作業を続行できるようにします。非同期フックはブロックまたは Claude の動作を制御できません。`decision`、`permissionDecision`、`continue` などのレスポンス フィールドは、制御しようとしたアクションがすでに完了しているため、効果がありません。

3195 3957 

3196<h3 id="configure-an-async-hook">3958<h3 id="configure-an-async-hook">

3197 非同期フックを設定3959 非同期フックを設定


3199 3961 

3200コマンド フックの設定に `"async": true` を追加して、Claude をブロックせずにバックグラウンドで実行します。このフィールドは `type: "command"` フックでのみ利用可能です。3962コマンド フックの設定に `"async": true` を追加して、Claude をブロックせずにバックグラウンドで実行します。このフィールドは `type: "command"` フックでのみ利用可能です。

3201 3963 

3202このフックは、すべての `Write` ツール呼び出しの後にテスト スクリプトを実行します。Claude は `run-tests.sh` が最大 120 秒間実行されている間、すぐに作業を続行します。スクリプトが完了すると、その出力は次の会話ターンで配信されます。3964このフックは、すべての `Write` ツール呼び出しの後にテスト スクリプトを実行します。`run-tests.sh` の実行中も、Claude はすぐに作業を続行します。スクリプトが完了すると、その出力は次の会話ターンで配信されます。

3203 3965 

3204```json theme={null}3966```json theme={null}

3205{3967{


3211 {3973 {

3212 "type": "command",3974 "type": "command",

3213 "command": "/path/to/run-tests.sh",3975 "command": "/path/to/run-tests.sh",

3214 "async": true,3976 "async": true

3215 "timeout": 120

3216 }3977 }

3217 ]3978 ]

3218 }3979 }


3221}3982}

3222```3983```

3223 3984 

3224`timeout` フィールドはバックグラウンド プロセスの最大時間(秒単位)を設定します。指定されない場合、非同期フックは同期フックと同じ 10 分のデフォルトを使用します。3985非同期フックがバックグラウンドで実行され始めると、Claude Code はそのフックに `timeout` を適用しません。`asyncRewake` で実行するフックには、Claude Code は引き続き `timeout` を適用します。

3986 

3987Claude Code が非同期フックの結果を配信するのは、セッションの実行中のみです。

3988 

3989* `-p` フラグを使用した[非対話モード](/docs/ja/headless)では、Claude Code は終了処理時にまだ実行中の非同期フックをすべて強制終了し、結果 `cancelled` で確定します

3990* フックの処理を `claude -p` セッションより長く存続させる必要がある場合は、フックから完全にデタッチされたプロセスを起動します

3225 3991 

3226<h3 id="how-async-hooks-execute">3992<h3 id="how-async-hooks-execute">

3227 非同期フックの実行方法3993 非同期フックの実行方法


3229 3995 

3230非同期フックが発火すると、Claude Code はフック プロセスを開始し、完了を待たずにすぐに続行します。フックは同期フックと同じ JSON 入力を stdin 経由で受け取ります。3996非同期フックが発火すると、Claude Code はフック プロセスを開始し、完了を待たずにすぐに続行します。フックは同期フックと同じ JSON 入力を stdin 経由で受け取ります。

3231 3997 

3232バックグラウンド プロセスが終了した後、フックが `additionalContext` フィールドを含む JSON レスポンスを生成した場合、そのコンテンツは次の会話ターンで Claude にコンテキストとして配信されます。`systemMessage` フィールドは Claude ではなく、あなたに表示されます。3998バックグラウンド プロセスが終了した後、Claude Code はフックの JSON レスポンスに含まれる `additionalContext` フィールドと `systemMessage` フィールドを次の会話ターンで Claude に配信します。同期フックの `systemMessage` とは異なり、どちらのフィールドもユーザーには表示されません。

3233 3999 

3234Claude Code は JSON レスポンスを同期フックと同じ[出力スキーマ](#json-output)に対して検証し、`systemMessage` が文字列でないなど、値の型が間違っているフィールドをドロップします。これは配信する代わりに行われます。`--debug` で実行すると、ドロップされた各フィールドに名前を付けた警告が表示されます。v2.1.202 より前では、非同期フックからの不正な形式の JSON 出力はセッションをクラッシュさせる可能性があり、セッションが再開されるたびにクラッシュが再発生していました。4000Claude Code は JSON レスポンスを同期フックと同じ[出力スキーマ](#json-output)に対して検証し、`systemMessage` が文字列でないなど、値の型が間違っているフィールドをドロップします。これは配信する代わりに行われます。`--debug` で実行すると、ドロップされた各フィールドに名前を付けた警告が表示されます。v2.1.202 より前では、非同期フックからの不正な形式の JSON 出力はセッションをクラッシュさせる可能性があり、セッションが再開されるたびにクラッシュが再発生していました。

3235 4001 


3279 "type": "command",4045 "type": "command",

3280 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",4046 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",

3281 "args": [],4047 "args": [],

3282 "async": true,4048 "async": true

3283 "timeout": 300

3284 }4049 }

3285 ]4050 ]

3286 }4051 }


3295 4060 

3296非同期フックは同期フックと比べていくつかの制約があります。4061非同期フックは同期フックと比べていくつかの制約があります。

3297 4062 

3298* `async` をサポートするのは `type: "command"` フックのみです。プロンプト ベースのフックは非同期で実行できません。

3299* 非同期フックはツール呼び出しをブロックまたは決定を返すことができません。フックが完了するまでに、トリガーするアクションはすでに進行しています。

3300* フック出力は次の会話ターンで配信されます。セッションがアイドル状態の場合、レスポンスは次のユーザー操作まで待機します。例外: `asyncRewake` フックが終了コード 2 で終了すると、セッションがアイドル状態でも Claude を直ちに起動します。4063* フック出力は次の会話ターンで配信されます。セッションがアイドル状態の場合、レスポンスは次のユーザー操作まで待機します。例外: `asyncRewake` フックが終了コード 2 で終了すると、セッションがアイドル状態でも Claude を直ちに起動します。

3301* 各実行は個別のバックグラウンド プロセスを作成します。同じ非同期フックの複数の発火全体で重複排除はありません。4064* 各実行は個別のバックグラウンド プロセスを作成します。同じ非同期フックの複数の発火全体で重複排除はありません。

3302 4065 


3308 免責事項4071 免責事項

3309</h3>4072</h3>

3310 4073 

3311コマンド フックはシステム ユーザーの完全な権限で実行されます。

3312 

3313<Warning>4074<Warning>

3314 コマンド フックはユーザー アカウントの完全な権限でシェル コマンドを実行します。ユーザー アカウントがアクセスできるファイルを変更、削除、またはアクセスできます。フック コマンドを設定に追加する前に、すべてのフック コマンドを確認してテストしてください。4075 コマンド フックはユーザー アカウントの完全な権限でシェル コマンドを実行します。ユーザー アカウントがアクセスできるファイルを変更、削除、またはアクセスできます。フック コマンドを設定に追加する前に、すべてのフック コマンドを確認してテストしてください。

3315</Warning>4076</Warning>

3316 4077 

4078<h3 id="workspace-trust">

4079 ワークスペースの信頼

4080</h3>

4081 

4082Claude Code は、設定ファイルのフックを実行する前にワークスペースの信頼を確認します。何が信頼済みとみなされるかは、セッションの種類によって異なります。

4083 

4084* **インタラクティブ セッション**: ユーザーがそのフォルダー、またはそのフォルダーにまで信頼が及ぶ親ディレクトリについて[ワークスペースの信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を承認するまで、Claude Code はユーザー自身の `~/.claude/settings.json` を含むすべての設定ファイルのフックを保留します

4085* **`-p` または SDK セッション**: Claude Code はダイアログを表示せず、フォルダーを信頼済みとして扱います。そのため、リポジトリの `.claude/settings.json` にコミットされたフックは、一度も信頼したことのないフォルダーでも実行されます

4086 

4087自分が作成していないリポジトリに対して `claude -p` をスクリプトで実行する前に、そのリポジトリの `.claude/` 設定ファイルを確認するか、[`--bare`](/docs/ja/headless#start-faster-with-bare-mode) で開始するか、`--settings '{"disableAllHooks": true}'` を使用して[その実行ではフックをオフにして](#disable-or-remove-hooks)ください。プロジェクト サブエージェントのフロントマター フックには、設定ファイルのフックよりも厳しいルールが適用されます。[フォルダーを信頼する前に実行されるもの](/docs/ja/permissions#what-runs-before-you-trust-a-folder)では、リポジトリのコンテンツの種類ごとにセッションの種類別の動作を示しています。

4088 

3317<h3 id="security-best-practices">4089<h3 id="security-best-practices">

3318 セキュリティ ベストプラクティス4090 セキュリティ ベストプラクティス

3319</h3>4091</h3>


3330 Windows PowerShell ツール4102 Windows PowerShell ツール

3331</h2>4103</h2>

3332 4104 

3333Windows では、コマンド フックで `"shell": "powershell"` を設定することで、個別のフックを PowerShell で実行できます。フックは PowerShell を直接生成するため、`CLAUDE_CODE_USE_POWERSHELL_TOOL` が設定されているかどうかに関係なく機能します。Claude Code は `pwsh.exe`(PowerShell 7 以降の実行可能ファイル)を自動検出し、Windows PowerShell 5.1 の `powershell.exe` にフォールバックします。4105Windows では、コマンド フックで `"shell": "powershell"` を設定することで、個別のフックを PowerShell で実行できます。Claude Code は `pwsh.exe`(PowerShell 7 以降の実行可能ファイル)を自動検出し、Windows PowerShell 5.1 の `powershell.exe` にフォールバックします。

3334 4106 

3335```json theme={null}4107```json theme={null}

3336{4108{


3355 4127 

3356v2.1.198 より前では、この書き換えはプラグイン フックにのみ適用されていました。以前のバージョンでは、`settings.json` フックは `$env:` 形式または [exec 形式](#exec-form-and-shell-form) が必要です。exec 形式では、フックが定義されている場所に関係なく、各 `args` 要素で `${CLAUDE_PROJECT_DIR}` が置換されます。4128v2.1.198 より前では、この書き換えはプラグイン フックにのみ適用されていました。以前のバージョンでは、`settings.json` フックは `$env:` 形式または [exec 形式](#exec-form-and-shell-form) が必要です。exec 形式では、フックが定義されている場所に関係なく、各 `args` 要素で `${CLAUDE_PROJECT_DIR}` が置換されます。

3357 4129 

3358PowerShell フックで裸の `$CLAUDE_PROJECT_DIR` スペルを記述しないでください。PowerShell はそれを未定義のローカル変数として解析し、`$null` に解決します。これにより、スクリプト パスがプロジェクト ルート プレフィックスなしで残されます。Claude Code はその形式を書き換えません。代わりに、[デバッグ ログ](#debug-hooks) に警告をログします。4130PowerShell フックで裸の `$CLAUDE_PROJECT_DIR` スペルを記述しないでください。PowerShell はそれを未定義のローカル変数として解析し、`$null` に解決します。これにより、スクリプト パスがプロジェクト ルート プレフィックスなしで残されます。Claude Code はその形式を書き換えません。代わりに、[デバッグ ログ](#debug-hooks) に警告を記録します。

3359 4131 

3360以下の例は、`$env:` 形式でプロジェクト スクリプトを実行する `settings.json` フックを示しています。これはすべてのバージョンで機能します。4132以下の例は、`$env:` 形式でプロジェクト スクリプトを実行する `settings.json` フックを示しています。これはすべてのバージョンで機能します。

3361 4133 


3371 フックをデバッグ4143 フックをデバッグ

3372</h2>4144</h2>

3373 4145 

3374フック実行の詳細、マッチしたフック、終了コード、完全な stdout と stderr はデバッグ ログ ファイルに書き込まれます。`claude --debug-file <path>` で既知の場所にログを書き込むか、`claude --debug` を実行してログを `~/.claude/debug/<session-id>.txt` で読み取ります。`--debug` フラグはターミナルに出力しません。4146フック実行の詳細はデバッグ ログ ファイルに書き込まれます。`claude --debug-file <path>` で既知の場所にログを書き込むか、`claude --debug` を実行してログを `~/.claude/debug/<session-id>.txt` で読み取ります。`--debug` フラグはターミナルに出力しません。

4147 

4148たとえば、`Write` に対する `PostToolUse` フックで、コマンドが `hook-ran` を出力する場合、次のようなエントリが生成されます。

3375 4149 

3376```text theme={null}4150```text theme={null}

3377[DEBUG] Executing hooks for PostToolUse:Write41512026-07-19T02:03:24.382Z [DEBUG] Hook output does not start with {, treating as plain text

3378[DEBUG] Found 1 hook commands to execute41522026-07-19T02:03:24.382Z [DEBUG] "Hook PostToolUse:Write (PostToolUse) success:\nhook-ran"

3379[DEBUG] Executing hook command: <Your command> with timeout 600000ms

3380[DEBUG] Hook command completed with status 0: <Your stdout>

3381```4153```

3382 4154 

3383より詳細なフック マッチング詳細については、`CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose` を設定して、フック マッチャー数とクエリ マッチングなどの追加ログ行を確認します。4155より詳細なフック マッチング詳細については、`CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose` を設定して、フック matcher 数とクエリ マッチングなどの追加ログ行を確認します。

3384 4156 

3385フックが発火しない、Stop フックが実行をブロックし続ける、または設定エラーなどの一般的な問題のトラブルシューティングについては、ガイドの[制限事項とトラブルシューティング](/docs/ja/hooks-guide#limitations-and-troubleshooting)を参照してください。`/context`、`/doctor`、および設定の優先順位をカバーするより広範な診断チュートリアルについては、[設定をデバッグ](/docs/ja/debug-your-config)を参照してください。4157フックが発火しない、Stop フックが実行をブロックし続ける、または設定エラーなどの一般的な問題のトラブルシューティングについては、ガイドの[制限事項とトラブルシューティング](/docs/ja/hooks-guide#limitations-and-troubleshooting)を参照してください。`/context`、`/doctor`、および設定の優先順位をカバーするより広範な診断チュートリアルについては、[設定をデバッグ](/docs/ja/debug-your-config)を参照してください。

hooks-guide.md +73 −70

Details

65 }65 }

66 ```66 ```

67 67 

68 CLI で説明することで、Claude に hook を書いてもらうこともできます。68 CLI で実現したい内容を説明して、Claude にフックを書いてもらうこともできます。

69 </Step>69 </Step>

70 70 

71 <Step title="設定を確認する">71 <Step title="設定を確認する">

72 `/hooks` と入力して hooks ブラウザを開きます。利用可能なすべての hook イベントのリストが表示され、hooks が設定されているイベントの横に数が表示されます。`Notification` を選択して、新しい hook がリストに表示されることを確認します。Hook を選択すると、その詳細が表示されます:イベント、マッチャー、タイプ、ソースファイル、およびコマンド。72 Claude Code のプロンプトで `/hooks` と入力して hooks ブラウザを開きます。新しいフックが `Notification` の下のリストに表示されます。

73 </Step>73 </Step>

74 74 

75 <Step title="hook をテストする">75 <Step title="フックをテストする">

76 `Esc` を押して CLI に戻ります。`Shift+Tab` を押してステータスバーに `⏸ manual mode on` が表示されるまで続け、Claude に許可が必要な何かをするよう依頼し、ターミナルから切り替えます。デスクトップ通知を受け取るはずです。76 `Esc` を押して CLI に戻ります。ステータスバーに `⏸ manual mode on` が表示されるまで `Shift+Tab` を押し、権限が必要な操作を Claude に依頼してから、ターミナル以外のウィンドウに切り替えます。デスクトップ通知を受け取るはずです。

77 </Step>77 </Step>

78</Steps>78</Steps>

79 79 

80<Tip>

81 `/hooks` メニューは読み取り専用です。Hooks を追加、変更、または削除するには、設定 JSON を直接編集するか、Claude に変更を依頼します。

82</Tip>

83 

84<h2 id="what-you-can-automate">80<h2 id="what-you-can-automate">

85 自動化できるもの81 自動化できるもの

86</h2>82</h2>


97 93 

98Claude が作業を完了して入力を必要とするときはいつでもデスクトップ通知を取得し、ターミナルをチェックせずに他のタスクに切り替えることができます。94Claude が作業を完了して入力を必要とするときはいつでもデスクトップ通知を取得し、ターミナルをチェックせずに他のタスクに切り替えることができます。

99 95 

100この hook は `Notification` イベントを使用します。これは Claude が入力または許可を待っているときに発火します。[各通知タイプが発火するタイミング](/docs/ja/hooks#notification) を参照して、正確なタイミングを確認してください。以下の各タブはプラットフォームのネイティブ通知コマンドを使用します。これを `~/.claude/settings.json` に追加します:96このフックは `Notification` イベントを使用します。これは Claude が入力または権限を待っているときに Claude Code が発火するイベントです。正確なタイミングについては、[各通知タイプが発火するタイミング](/docs/ja/hooks#notification)を参照してください。

97 

98以下の各タブはプラットフォームのネイティブ通知コマンドを使用します。これを `~/.claude/settings.json` に追加します:

101 99 

102<Tabs>100<Tabs>

103 <Tab title="macOS">101 <Tab title="macOS">


120 ```118 ```

121 119 

122 <Accordion title="通知が表示されない場合">120 <Accordion title="通知が表示されない場合">

123 `osascript` は組み込みの Script Editor アプリを通じて通知をルーティングします。Script Editor に通知権限がない場合、コマンドは静かに失敗し、macOS はそれを付与するよう求めません。Terminal でこれを 1 回実行して、Script Editor を通知設定に表示させます:121 `osascript` は組み込みの Script Editor アプリを通じて通知をルーティングします。Script Editor に通知権限がない場合、コマンドは何も表示せずに失敗し、macOS は権限の付与を求めません。

122 

123 Terminal でこれを 1 回実行して、Script Editor を通知設定に表示させます:

124 124 

125 ```bash theme={null}125 ```bash theme={null}

126 osascript -e 'display notification "test"'126 osascript -e 'display notification "test"'


180 ```180 ```

181 181 

182 <Accordion title="ダイアログが表示されない場合">182 <Accordion title="ダイアログが表示されない場合">

183 このコマンドは画面の隅の通知ではなくダイアログボックスを開くため、ダイアログはターミナルウィンドウの背後で開く可能性があります。まず PowerShell でコマンドを直接テストしてください。Claude Code を WSL 内で実行する場合、`powershell.exe` は Windows interop を通じて `PATH` で利用可能である必要があります。183 このコマンドは画面の隅の通知ではなくダイアログボックスを開くため、ダイアログがターミナルウィンドウの背後で開く可能性があります。まず PowerShell でコマンドを直接テストしてください。

184 

185 Claude Code を WSL 内で実行する場合、`powershell.exe` が Windows interop を通じて `PATH` で利用可能である必要があります。

184 </Accordion>186 </Accordion>

185 </Tab>187 </Tab>

186</Tabs>188</Tabs>


212 214 

213チームメイトのターミナルセットアップ質問に対する `agent_needs_input` には Claude Code v2.1.248 以降が必要です。215チームメイトのターミナルセットアップ質問に対する `agent_needs_input` には Claude Code v2.1.248 以降が必要です。

214 216 

215`/hooks` と入力して `Notification` を選択し、hook が登録されていることを確認します。完全なイベントスキーマについては、[Notification リファレンス](/docs/ja/hooks#notification) を参照してください。217Claude Code のプロンプトで `/hooks` と入力し、`Notification` の下にフックが表示されることを確認します。

216 218 

217<h3 id="auto-format-code-after-edits">219<h3 id="auto-format-code-after-edits">

218 編集後にコードを自動フォーマットする220 編集後にコードを自動フォーマットする


986完全な設定オプションとレスポンス処理については、リファレンスの [HTTP hooks](/docs/ja/hooks#http-hook-fields) を参照してください。988完全な設定オプションとレスポンス処理については、リファレンスの [HTTP hooks](/docs/ja/hooks#http-hook-fields) を参照してください。

987 989 

988<h2 id="limitations-and-troubleshooting">990<h2 id="limitations-and-troubleshooting">

989 制限とトラブルシューティング991 制限事項とトラブルシューティング

990</h2>992</h2>

991 993 

992<h3 id="limitations">994<h3 id="limitations">

993 制限995 制限事項

994</h3>996</h3>

995 997 

996hooks を設計する際は、以下の制約を念頭に置いてください:998フックを設計する際は、以下の制約に留意してください。

997 999 

998* コマンド hooks は stdout、stderr、および終了コードを通じてのみ通信します。これらは `/` コマンドまたはツール呼び出しをトリガーできません。`additionalContext` を通じて返されたテキストは、Claude が平文として読む[システムリマインダー](/docs/ja/glossary#system-reminder)として注入されます。HTTP hooks はレスポンスボディを通じて通信します。1000* コマンドフックは stdout、stderr、終了コードのみを介して通信します。`/` コマンドやツール呼び出しをトリガーすることはできません。`additionalContext` を介して返されたテキストは[システムリマインダー](/docs/ja/glossary#system-reminder)として挿入され、Claude はこれをプレーンテキストとして読み取ります。HTTP フックは代わりにレスポンスボディを介して通信します。

999* Hook タイムアウトはタイプによって異なります。`timeout` フィールド(秒単位)で hook ごとにオーバーライドできます。1001* フックのタイムアウトはタイプによって異なります。フックごとに `timeout` フィールド(秒単位)で上書きできます。

1000 * `command`、`http`、`mcp_tool`:10 分。Claude Code は `UserPromptSubmit`、`PreModelSwitch`、および `PostModelSwitch` hooks のこのデフォルトを 30 秒に短縮し、`MessageDisplay` を 10 秒に短縮します。1002 * `command`、`http`、`mcp_tool`:10 分。Claude Code は、`UserPromptSubmit`、`PreModelSwitch`、`PostModelSwitch` フックではこのデフォルトを 30 秒に、`MessageDisplay` では 10 秒に引き下げます。

1001 * `prompt`:30 秒。1003 * `prompt`:30 秒。

1002 * `agent`:60 秒。1004 * `agent`:60 秒。

1003 * [`SessionEnd`](/docs/ja/hooks#sessionend) hooks はすべてのタイプで 1.5 秒の予算を共有します。設定で hook ごとの `timeout` がより長い場合、Claude Code は予算を引き上げて一致させ、最大 60 秒までです。1005 * [`SessionEnd`](/docs/ja/hooks#sessionend) フックは、タイプを問わず 1.5 秒の割り当て時間を共有します。設定でフックごとにより長い `timeout` を指定している場合、Claude Code は最大 60 秒までそれに合わせて割り当て時間を引き上げます。

1004* `PostToolUse` hooks はツールが既に実行されているため、アクションを元に戻すことはできません。1006* `PostToolUse` フックは、ツールがすでに実行されているため、アクションを元に戻すことはできません。

1005* `PermissionRequest` hooks は Claude Code があなたに許可を求めようとしているときに発火します。1007* `PermissionRequest` フックは、Claude Code がユーザーに権限を求めようとするときに発火します。

1006 * [非インタラクティブモード](/docs/ja/headless)(`-p` フラグ)では、そのプロンプトは Agent SDK の [`canUseTool` コールバック](/docs/ja/agent-sdk/permissions)がそれを提供する場合にのみ存在します。プレーンな `-p` 実行または `--permission-prompt-tool` では、自動化された許可決定に代わりに `PreToolUse` hooks を使用します。1008 * `-p` フラグを使用した[非対話モード](/docs/ja/headless)では、そのプロンプトは Agent SDK の [`canUseTool` コールバック](/docs/ja/agent-sdk/permissions)が提供する場合にのみ存在します。単純な `-p` 実行や `--permission-prompt-tool` を使用する場合は、自動化された権限の判断には代わりに `PreToolUse` フックを使用してください。

1007 * バックグラウンド subagents は非インタラクティブモードでプロンプトを表示できません。Claude Code は依然としてそれらのツール呼び出しの hooks を実行し、hook が決定を返さない場合は呼び出しを拒否します。インタラクティブセッションでは、バックグラウンド subagent プロンプトはメインセッションに表示され、hooks は通常通り発火します。1009 * バックグラウンドのサブエージェントは、非対話モードではプロンプトを表示できません。Claude Code はそれらのツール呼び出しに対してもフックを実行し、どのフックも判断を返さない場合はその呼び出しを拒否します。対話セッションでは、バックグラウンドのサブエージェントのプロンプトはメインセッションに表示され、フックは通常どおり発火します。

1008* `Stop` hooks はタスク完了時だけでなく、Claude が応答を終了するたびに発火します。ユーザーの割り込みでは発火しません。API エラーは代わりに [StopFailure](/docs/ja/hooks#stopfailure) を発火させます。1010* `Stop` フックは、タスクの完了時だけでなく、Claude が応答を終えるたびに発火します。ユーザーによる中断では発火しません。API エラーの場合は代わりに [StopFailure](/docs/ja/hooks#stopfailure) が発火します。

1009* 複数の `PreToolUse` hooks が [`updatedInput`](/docs/ja/hooks#pretooluse) を返してツールの引数を書き直す場合、最後に完了したものが勝ちます。Hooks は並列で実行されるため、順序は非決定的です。同じツールの入力を変更する複数の hooks を持つことを避けてください。1011* 複数の `PreToolUse` フックがツールの引数を書き換えるために [`updatedInput`](/docs/ja/hooks#pretooluse) を返す場合、最後に完了したものが有効になります。フックは並列に実行されるため、順序は非決定的です。同じツールの入力を複数のフックで変更することは避けてください。

1010 1012 

1011<h3 id="hooks-and-permission-modes">1013<h3 id="hooks-and-permission-modes">

1012 Hooks と許可モード1014 フックと権限モード

1013</h3>1015</h3>

1014 1016 

1015`PreToolUse` hooks は任意の権限モードチェックの前に発火します。すべての [権限モード](/docs/ja/permission-modes)(`dontAsk` を含む)で発火します。`permissionDecision: "deny"` を返す hook は、`bypassPermissions` モードまたは `--dangerously-skip-permissions` でもツールをブロックします。これにより、ユーザーが権限モードを変更してバイパスできないポリシーを適用できます。1017`PreToolUse` フックは、`dontAsk` を含むすべての[権限モード](/docs/ja/permission-modes)において、権限モードのチェックより前に発火します。`permissionDecision: "deny"` を返すフックは、`bypassPermissions` モードや `--dangerously-skip-permissions` を使用している場合でもツールをブロックします。これにより、ユーザーが権限モードを変更しても回避できないポリシーを適用できます。

1016 1018 

1017逆は真ではありません:`"allow"` を返す hook は、設定からの deny ルールをバイパスしません。また、[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) とマークされた MCP ツールのプロンプトを抑制することもできず、組織が [セッションでそのセッティングに到達する Claude Code で `ask` に設定した](/docs/ja/mcp#organization-controls-on-connector-tools)コネクタツールも抑制できません。設定ファイルおよび plugin の `hooks/hooks.json` 内の Hooks は制限を厳しくできますが、許可ルールが許可する範囲を超えて緩和することはできません。1019逆は成り立ちません。`"allow"` を返すフックは、設定の拒否ルールを回避することはできず、また [`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) が指定された MCP ツールや、その設定が Claude Code に反映されるセッションにおいて[組織が `ask` に設定した](/docs/ja/mcp#organization-controls-on-connector-tools)コネクタツールのプロンプトを抑制することもできません。設定ファイルやプラグインの `hooks/hooks.json` 内のフックは、制限を厳しくすることはできますが、権限ルールが許可する範囲を超えて緩めることはできません。

1018 1020 

1019インストールした [mod](/docs/ja/plugins/mods/overview) が `tool.check` を hook できる場合、hook が管理設定にない限り、`PreToolUse` hook がブロックした呼び出しを承認できます。[Hooks で権限を拡張](/docs/ja/permissions#extend-permissions-with-hooks)は、mod に対してどのルールが優先されるかをリストしています。1021インストールした [mod](/docs/ja/plugins/mods/overview) が `tool.check` をフックしている場合、そのフックが管理設定にない限り、`PreToolUse` フックがブロックした呼び出しを mod が承認できます。mod に対してどのルールが優先されるかは、[フックで権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)に記載されています。

1020 1022 

1021<h3 id="hook-not-firing">1023<h3 id="hook-not-firing">

1022 Hook が発火しない1024 フックが発火しない

1023</h3>1025</h3>

1024 1026 

1025Hook は設定されていますが、実行されません。1027フックは設定されているが、一度も実行されない場合。

1026 1028 

1027* `/hooks` を実行し、hook が正しいイベントの下に表示されることを確認します1029* `/hooks` を実行し、フックが正しいイベントの下に表示されていることを確認します

1028* マッチャーパターンがツール名と正確にマッチすることを確認します。マッチャーは大文字小文字を区別します1030* matcher のパターンがツール名と正確に一致していることを確認します。matcher は大文字と小文字を区別します

1029* 正しいイベントタイプをトリガーしていることを確認します:`PreToolUse` はツール実行前に発火し、`PostToolUse` は後に発火します。`PermissionRequest` hook は Claude Code があなたに許可を求めようとしているときに発火します。非インタラクティブケースについては [制限](#limitations)を参照してください1031* 正しいイベントタイプをトリガーしていることを確認します。`PreToolUse` はツールの実行前に、`PostToolUse` は実行後に発火します。`PermissionRequest` フックは Claude Code がユーザーに権限を求めようとするときに発火します。非対話の場合については[制限事項](#limitations)を参照してください

1030 1032 

1031<h3 id="hook-error-in-output">1033<h3 id="hook-error-in-output">

1032 Hook エラーが出力に表示される1034 出力にフックエラーが表示される

1033</h3>1035</h3>

1034 1036 

1035トランスクリプトに「PreToolUse hook error: ...」というメッセージが表示されます。1037トランスクリプトに「PreToolUse hook error: ...」のようなメッセージが表示される場合。

1036 1038 

1037* スクリプトが予期せずゼロ以外のコードで終了しました。サンプル JSON をパイプして手動でテストします:1039* スクリプトが予期せずゼロ以外のコードで終了しています。サンプルの JSON をパイプで渡して手動でテストします。

1038 ```bash theme={null}1040 ```bash theme={null}

1039 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh1041 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh

1040 echo $? # 終了コードを確認1042 echo $? # Check the exit code

1041 ```1043 ```

1042* 「command not found」が表示される場合は、絶対パスを使用するか、スクリプトを参照するために `${CLAUDE_PROJECT_DIR}` を使用します。シェルクォーティングを完全に回避するには、`"args": []` を追加して [exec form](/docs/ja/hooks#exec-form-and-shell-form) に切り替えます。これはシェルなしでスクリプトを直接生成します1044* 「command not found」と表示される場合は、絶対パスまたは `${CLAUDE_PROJECT_DIR}` を使用してスクリプトを参照します。シェルのクォートを完全に回避するには、`"args": []` を追加して [exec 形式](/docs/ja/hooks#exec-form-and-shell-form)に切り替えます。これにより、シェルを介さずにスクリプトが直接起動されます

1043* 「jq: command not found」が表示される場合は、`jq` をインストールするか、JSON 解析に Python/Node.js を使用します1045* 「jq: command not found」と表示される場合は、`jq` をインストールするか、JSON の解析に Python/Node.js を使用します

1044* 通知が JSON 検証メッセージを表示する場合、hook の stdout は JSON として解析されましたがスキーマ検証に失敗しました。JSON 解析メッセージを表示する場合、stdout は JSON オブジェクトのように見えましたが有効な JSON ではありませんでした。どちらも終了コード 0 でも発生します。1046* 通知に JSON 検証メッセージが表示される場合、フックの stdout は JSON として解析されましたが、スキーマ検証に失敗しています。JSON 解析メッセージが表示される場合、stdout は JSON オブジェクトのように見えましたが、有効な JSON ではありませんでした。どちらも終了コード 0 の場合でも発生します。

1045 1047 

1046 解析失敗を修正するには、文字列連結の代わりに `jq` などの JSON エンコーダーでペイロードを構築して、値内の引用符とバックスラッシュがエスケープされるようにします。リファレンスの [終了コード出力](/docs/ja/hooks#exit-code-output)セクションは終了コードと JSON の組み合わせをカバーしています1048 解析の失敗を修正するには、文字列の連結ではなく `jq` などの JSON エンコーダーを使用してペイロードを組み立て、値に含まれる引用符やバックスラッシュがエスケープされるようにします。終了コードと JSON の組み合わせについては、リファレンスの[終了コードの出力](/docs/ja/hooks#exit-code-output)セクションで説明しています

1047* スクリプトがまったく実行されていない場合は、実行可能にします:`chmod +x ./my-hook.sh`1049* スクリプトがまったく実行されていない場合は、実行可能にします:`chmod +x ./my-hook.sh`

1048 1050 

1049<h3 id="/hooks-shows-no-hooks-configured">1051<h3 id="/hooks-shows-no-hooks-configured">

1050 `/hooks` に設定された hooks が表示されない1052 `/hooks` にフックが設定されていないと表示される

1051</h3>1053</h3>

1052 1054 

1053設定ファイルを編集しましたが、hooks がメニューに表示されません。1055設定ファイルを編集したが、フックがメニューに表示されない場合。

1054 1056 

1055* ファイル編集は通常自動的に取得されます。数秒後に表示されていない場合、ファイルウォッチャーが変更を見逃した可能性があります:セッションを再開して強制的にリロードします。1057* ファイルの編集は通常自動的に反映されます。数秒経っても表示されない場合は、ファイルウォッチャーが変更を検出できなかった可能性があります。セッションを再起動して強制的に再読み込みしてください。

1056* JSON が有効であることを確認します:末尾のコンマとコメントは許可されていません1058* JSON が有効であることを確認します。末尾のカンマやコメントは使用できません

1057* 設定ファイルが正しい場所にあることを確認します:プロジェクト hooks の場合は `.claude/settings.json`、グローバル hooks の場合は `~/.claude/settings.json`1059* 設定ファイルが正しい場所にあることを確認します。プロジェクトのフックは `.claude/settings.json`、グローバルのフックは `~/.claude/settings.json` です

1060* メニューに `Only hooks from managed settings run here` と表示される場合は、組織が [`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) を設定しています。ユーザー、プロジェクト、ローカルの設定ファイル内のフックは実行されず、一覧にも表示されません

1058 1061 

1059<h3 id="stop-hook-hits-the-block-cap">1062<h3 id="stop-hook-hits-the-block-cap">

1060 Stop hook がブロック上限に達する1063 Stop フックがブロック上限に達する

1061</h3>1064</h3>

1062 1065 

1063Claude は無限ループで作業を続け、停止する代わりに、Stop hook が連続して 8 回ブロックしたという警告でターンを終了します。1066Claude が停止せずに作業を続け、その後 Stop フックが連続してブロックした回数が多すぎるという警告とともにターンを終了する場合。

1064 1067 

1065Claude Code は Stop hook が進捗なしで 8 回連続でブロックした後、それをオーバーライドします。Hook スクリプトは、それが既にトリガーされたかどうかをチェックする必要があります。JSON 入力から `stop_hook_active` フィールドを解析し、`true` の場合は早期に終了します:1068Claude Code は、Stop フックが進展のないまま 8 回連続でブロックすると、そのフックを上書きします。フックスクリプトでは、すでに継続をトリガーしたかどうかを確認する必要があります。JSON 入力から `stop_hook_active` フィールドを解析し、`true` の場合は早期に終了します。

1066 1069 

1067```bash theme={null}1070```bash theme={null}

1068#!/bin/bash1071#!/bin/bash

1069INPUT=$(cat)1072INPUT=$(cat)

1070if [ "$(echo "$INPUT" | jq -r '.stop_hook_active')" = "true" ]; then1073if [ "$(echo "$INPUT" | jq -r '.stop_hook_active')" = "true" ]; then

1071 exit 0 # Claude が停止することを許可1074 exit 0 # Allow Claude to stop

1072fi1075fi

1073# ... hook ロジックの残り1076# ... rest of your hook logic

1074```1077```

1075 1078 

1076Hook が収束するために 8 回以上の反復が正当に必要な場合は、[`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ja/env-vars) で上限を引き上げます。1079フックが収束するまでに正当な理由で 8 回を超える反復が必要な場合は、[`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ja/env-vars) で上限を引き上げてください。

1077 1080 

1078<h3 id="hook-json-has-no-effect">1081<h3 id="hook-json-has-no-effect">

1079 Hook JSON に効果がない1082 フックの JSON が効果を持たない

1080</h3>1083</h3>

1081 1084 

1082Hook は有効な JSON を出力していますが、決定が有効にならず、トランスクリプトにエラーが表示されません。どの原因が当てはまるかを確認します:1085フックは有効な JSON を出力しているが、判断が反映されず、トランスクリプトにもエラーが表示されない場合。どの原因に該当するかを確認してください。

1083 1086 

1084* **JSON の前の追加出力**:通常、シェルプロファイルの無条件の `echo` により、何か他のものが最初に stdout に書き込まれるため、出力はもはや `{` で始まらず、Claude Code はそれを JSON として解析しません。原因と修正は以下のリストに従います。1087* **JSON の前に余分な出力がある**:他の何かが先に stdout に書き込んでいます。通常はシェルプロファイル内の無条件の `echo` です。そのため出力が `{` で始まらなくなり、Claude Code はそれを JSON として解析しません。原因と修正方法はこのリストの後で説明します。

1085* **フィールドが間違ったレベルにある**:各フィールドの配置を [JSON 出力](/docs/ja/hooks#json-output)形式と比較します。例えば、`permissionDecision` はトップレベルではなく `hookSpecificOutput` の内部に属します。1088* **フィールドの階層が間違っている**:各フィールドの配置を [JSON 出力](/docs/ja/hooks#json-output)の形式と比較してください。たとえば、`permissionDecision` はトップレベルではなく `hookSpecificOutput` の内側に配置する必要があります。

1086 1089 

1087Claude Code が shell form コマンド hook(`args` なし)を実行する場合、macOS と Linux では `sh -c` を、Windows では Git Bash を、Git Bash がデフォルトでインストールされていない場合は PowerShell を生成します。このシェルは非インタラクティブですが、Git Bash と一部の設定(`BASH_ENV` が `~/.bashrc` を指すなど)は依然としてプロファイルをソースします。そのプロファイルに無条件の `echo` ステートメントが含まれている場合、その出力は hook の JSON に前置されます:1090Claude Code がシェル形式のコマンドフック(`args` のないもの)を実行する場合、macOS と Linux では `sh -c` を、Windows では Git Bash を、Git Bash がインストールされていない場合はデフォルトで PowerShell を起動します。このシェルは非対話ですが、Git Bash や、`BASH_ENV` が `~/.bashrc` を指しているなどの一部の設定では、プロファイルが読み込まれます。そのプロファイルに無条件の `echo` 文が含まれていると、その出力がフックの JSON の前に付加されます。

1088 1091 

1089```text theme={null}1092```text theme={null}

1090Shell ready on arm641093Shell ready on arm64

1091{"decision": "block", "reason": "Not allowed"}1094{"decision": "block", "reason": "Not allowed"}

1092```1095```

1093 1096 

1094結合された出力はもはや `{` で始まらないため、Claude Code は stdout 全体をプレーンテキストとして扱い、JSON を無視します。終了コード 0 ではトランスクリプトに何も報告されません。解析試行は [デバッグログ](/docs/ja/hooks#debug-hooks)にのみ記録されます。これを修正するには、シェルプロファイルの echo ステートメントをラップして、インタラクティブシェルでのみ実行するようにします:1097結合された出力は `{` で始まらなくなるため、Claude Code は stdout 全体をプレーンテキストとして扱い、JSON を無視します。終了コード 0 の場合、トランスクリプトには何も報告されず、解析の試行は[デバッグログ](/docs/ja/hooks#debug-hooks)にのみ記録されます。これを修正するには、シェルプロファイル内の echo 文を、対話シェルでのみ実行されるように囲みます。

1095 1098 

1096```bash theme={null}1099```bash theme={null}

1097# ~/.zshrc または ~/.bashrc 内1100# In ~/.zshrc or ~/.bashrc

1098if [[ $- == *i* ]]; then1101if [[ $- == *i* ]]; then

1099 echo "Shell ready"1102 echo "Shell ready"

1100fi1103fi

1101```1104```

1102 1105 

1103`$-` 変数はシェルフラグを含み、`i` はインタラクティブを意味します。Hooks は非インタラクティブシェルで実行されるため、echo はスキップされます。1106`$-` 変数にはシェルのフラグが含まれており、`i` は対話を意味します。フックは非対話シェルで実行されるため、echo はスキップされます。

1104 1107 

1105Hook が `permissionDecision` または `additionalContext` を `hookSpecificOutput` の内部ではなくトップレベルに返す場合、JSON は依然として解析され、Claude Code は誤配置されたフィールドを報告なしで無視します。どのフィールドが無視されたかを確認するには、`claude --debug` で Claude Code を開始し、[デバッグログ](/docs/ja/hooks#debug-hooks)で `Hook JSON output had unrecognized keys` を検索します。1108フックが `permissionDecision` や `additionalContext` を `hookSpecificOutput` の内側ではなくトップレベルで返した場合でも、JSON は解析されますが、Claude Code は誤って配置されたフィールドをエラーを報告せずに無視します。どのフィールドが無視されたかを確認するには、`claude --debug` で Claude Code を起動し、[デバッグログ](/docs/ja/hooks#debug-hooks)で `Hook JSON output had unrecognized keys` を検索します。

1106 1109 

1107<h3 id="debug-techniques">1110<h3 id="debug-techniques">

1108 デバッグ技術1111 デバッグ手法

1109</h3>1112</h3>

1110 1113 

1111`Ctrl+O` を押してトランスクリプトビューを開き、hook 実行の結果を確認します:1114`Ctrl+O` を押してトランスクリプトビューを開き、フック実行の結果を確認します。

1112 1115 

1113* **成功した実行**:hook の JSON が `systemMessage` や Stop hook フィードバックなどのサーフェスを表示しない限り、何も表示されません。1116* **実行成功**:フックの JSON が `systemMessage` や Stop フックのフィードバックなどを表示しない限り、何も表示されません。

1114 * Hook が実行されたことを確認するには、再フォーマットされたファイルなどの効果をチェックするか、以下で説明されているようにデバッグログを有効にして hook を再度トリガーします1117 * フックが実行されたことを確認するには、ファイルが再フォーマットされたなどの効果を確認するか、以下で説明するようにデバッグログをオンにしてから再度フックをトリガーします

1115* **ブロッキングエラー**:ほとんどのイベントでは hook のフィードバックが表示されます。Hook の JSON がブロッキング決定を下した場合、フィードバックはその決定からの理由です。そうでない場合は hook の stderr です。`ConfigChange` や `Elicitation` などのいくつかのイベントでは、ブロックはメッセージを表示しません。1118* **ブロッキングエラー**:ほとんどのイベントでは、フックのフィードバックが表示されます。フックの JSON がブロックの判断を行った場合、フィードバックはその判断の理由です。それ以外の場合はフックの stderr です。`ConfigChange` や `Elicitation` などの一部のイベントでは、ブロックしてもメッセージは表示されません。

1116* **非ブロッキングエラー**:アクションが進行し、`<hook name> hook error` 通知が短い説明とともに表示されます。例えば stderr の最初の行に「Failed with non-blocking status code:」というプレフィックスが付いているか、JSON 検証またはパースメッセージです。1119* **非ブロッキングエラー**:アクションは続行され、`<hook name> hook error` という通知と短い説明が表示されます。説明は、`Failed with non-blocking status code:` を先頭に付けた stderr の最初の行や、JSON の検証メッセージまたは解析メッセージなどです。

1117 1120 

1118どの終了コードと JSON の組み合わせが各結果を生成するか、イベントごとの例外を含めて、リファレンスの [終了コード出力](/docs/ja/hooks#exit-code-output)セクションで定義されています。1121どの終了コードと JSON の組み合わせがそれぞれの結果を生むか(イベントごとの例外を含む)は、リファレンスの[終了コードの出力](/docs/ja/hooks#exit-code-output)セクションで定義されています。

1119 1122 

1120完全な実行詳細(どの hooks がマッチしたか、それらの終了コード、stdout、stderr など)については、デバッグログを読みます。`claude --debug-file /tmp/claude.log` で Claude Code を開始して既知のパスに書き込み、別のターミナルで `tail -f /tmp/claude.log` を実行します。そのフラグなしで開始した場合は、セッション中に `/debug` を実行してログを有効にし、ログパスを見つけます。1123どのフックが一致したか、その終了コード、stdout、stderr を含む実行の詳細をすべて確認するには、デバッグログを読みます。`claude --debug-file /tmp/claude.log` で Claude Code を起動して既知のパスに書き込み、別のターミナルで `tail -f /tmp/claude.log` を実行します。このフラグを付けずに起動した場合は、セッションの途中で `/debug` を実行してログを有効にし、ログのパスを確認します。

1121 1124 

1122<h2 id="learn-more">1125<h2 id="learn-more">

1123 詳細を学ぶ1126 詳細を学ぶ

Details

394* 空のプロンプトで `Escape`、`Backspace`、または `Ctrl+U` で終了します394* 空のプロンプトで `Escape`、`Backspace`、または `Ctrl+U` で終了します

395* `!` で始まるテキストを空のプロンプトに貼り付けると、シェルモードが自動的に入力されます。入力された `!` の動作と一致します395* `!` で始まるテキストを空のプロンプトに貼り付けると、シェルモードが自動的に入力されます。入力された `!` の動作と一致します

396 396 

397セッションが[厳密なサンドボックスモード](/docs/ja/sandboxing#the-unsandboxed-retry-escape-hatch)の下にリストされているものの 1 つでない限り、シェルモードで入力するコマンドは、サンドボックスを有効にしている場合でも[サンドボックス](/docs/ja/sandboxing)の外で実行されます。これは、サンドボックスが Claude が実行するコマンドに適用されるためです。397セッションが[厳密なサンドボックスモード](/docs/ja/sandboxing#turn-off-the-retry-with-strict-sandbox-mode)の下にリストされているものの 1 つでない限り、シェルモードで入力するコマンドは、サンドボックスを有効にしている場合でも[サンドボックス](/docs/ja/sandboxing)の外で実行されます。これは、サンドボックスが Claude が実行するコマンドに適用されるためです。

398 398 

399Claude はコマンド出力がトランスクリプトに到達すると自動的に応答するため、`! npm test` を実行して、2 番目のプロンプトなしで失敗の説明を取得できます。応答は通常のプロンプトを送信するのと同じコストがかかります。出力がコンテキストに追加されて応答がない以前の動作を復元するには、`settings.json` で [`respondToBashCommands`](/docs/ja/settings-reference#respondtobashcommands) を `false` に設定します。v2.1.186 より前では、シェルモードは常に出力をコンテキストに追加して応答がありませんでした。399Claude はコマンド出力がトランスクリプトに到達すると自動的に応答するため、`! npm test` を実行して、2 番目のプロンプトなしで失敗の説明を取得できます。応答は通常のプロンプトを送信するのと同じコストがかかります。出力がコンテキストに追加されて応答がない以前の動作を復元するには、`settings.json` で [`respondToBashCommands`](/docs/ja/settings-reference#respondtobashcommands) を `false` に設定します。v2.1.186 より前では、シェルモードは常に出力をコンテキストに追加して応答がありませんでした。

400 400 

Details

36 API フォーマット36 API フォーマット

37</h2>37</h2>

38 38 

39ゲートウェイは、Claude Code クライアントに対して、以下の API フォーマットのうち少なくとも 1 つを公開する必要があります。クライアントはフォーマットを選択し、下の表の「選択者」列の変数を使用して Claude Code をゲートウェイに指定します。39ゲートウェイは、Claude Code クライアントに対して以下の API フォーマットのうち少なくとも 1 つを公開する必要があります。クライアントはフォーマットを選択し、下の表の「選択方法」列にある変数を使って Claude Code をゲートウェイに向けます。

40 40 

41Google Cloud の Agent Platform は Google Cloud の Claude エンドポイントであり、以前は Vertex AI でした。その変数名は `VERTEX` のスペルを保持しています。41Google Cloud's Agent Platform は Google Cloud の Claude エンドポイントで、以前は Vertex AI と呼ばれていました。その変数名には `VERTEX` という表記が引き続き使われています。

42 42 

43| フォーマット | 選択者 | エンドポイント | 変更なしで転送 |43| フォーマット | 選択方法 | エンドポイント | 変更せずに転送するもの |

44| :- | :- | :- | :- |44| :- | :- | :- | :- |

45| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`、`/v1/messages/count_tokens`(オプション) | `anthropic-beta` および `anthropic-version` リクエストヘッダー |45| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`、`/v1/messages/count_tokens`(任意) | `anthropic-beta` および `anthropic-version` リクエストヘッダー |

46| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` と `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`、`/model/{model}/invoke-with-response-stream`、`/model/{model}/count-tokens`(オプション) | `anthropic_beta` および `anthropic_version` リクエストボディフィールド |46| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` と `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`、`/model/{model}/invoke-with-response-stream`、`/model/{model}/count-tokens`(任意) | `anthropic_beta` および `anthropic_version` リクエストボディフィールド |

47| Google Cloud の Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` と `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`、`:streamRawPredict`、`count-tokens:rawPredict`(オプション) | `anthropic-beta` および `anthropic-version` リクエストヘッダー、および `anthropic_version` リクエストボディフィールド |47| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` と `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`、`:streamRawPredict`、`count-tokens:rawPredict`(任意) | `anthropic-beta` および `anthropic-version` リクエストヘッダー、ならびに `anthropic_version` リクエストボディフィールド |

48 48 

49<h3 id="foundry-and-claude-platform-on-aws">49<h3 id="foundry-and-claude-platform-on-aws">

50 Foundry および AWS 上の Claude Platform50 Foundry と Claude Platform on AWS

51</h3>51</h3>

52 52 

53Microsoft Foundry および [AWS 上の Claude Platform](/docs/ja/claude-platform-on-aws) は Anthropic Messages フォーマットを実装しています。Claude Code は独自の変数 `ANTHROPIC_FOUNDRY_BASE_URL` および `ANTHROPIC_AWS_BASE_URL` を通じてそれらにルーティングしますが、どちらかの前にあるゲートウェイは上記の Anthropic Messages 行を実装します。AWS 上の Claude Platform の前にあるゲートウェイは、`anthropic-workspace-id` ヘッダーも転送する必要があります。[そのプラットフォームはすべてのリクエストでこれを必要とします](/docs/ja/claude-platform-on-aws)。53Microsoft Foundry と [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) は Anthropic Messages フォーマットを実装しています。Claude Code はそれぞれ専用の変数 `ANTHROPIC_FOUNDRY_BASE_URL` と `ANTHROPIC_AWS_BASE_URL` を通じてこれらにルーティングしますが、いずれかの前段に置かれるゲートウェイは上記の Anthropic Messages の行を実装します。Claude Platform on AWS の前段に置かれるゲートウェイは、`anthropic-workspace-id` ヘッダーも転送する必要があります。このヘッダーは[同プラットフォームがすべてのリクエストで必須としている](/docs/ja/claude-platform-on-aws)ものです。

54 54 

55<h3 id="optional-endpoints-and-startup-traffic">55<h3 id="optional-endpoints-and-startup-traffic">

56 オプションエンドポイントとスタートアップトラフィック56 任意のエンドポイントと起動時のトラフィック

57</h3>57</h3>

58 58 

59トークンカウントエンドポイントは唯一のオプションです。それらが存在しない場合、Claude Code はコンテキスト使用量の文字ベースの推定値にフォールバックします。59任意のエンドポイントはトークンカウント用のエンドポイントのみです。これらが存在しない場合、Claude Code はコンテキスト使用量を文字数ベースで推定する方法にフォールバックします。

60 60 

61完全な URL ではなくパスで一致させます。61完全な URL ではなく、パスでマッチさせてください。

62 62 

63* 推論リクエストは `/v1/messages?beta=true` に POST します63* 推論リクエストは `/v1/messages?beta=true` に POST されます

64* Google Cloud の Agent Platform メソッドのサフィックスはパブリッシャーモデルパスに付加されます。例えば `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`64* Google Cloud's Agent Platform のメソッドサフィックスは、`/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict` のように、パブリッシャーモデルのパスに付加されます

65 65 

66ゲートウェイは、拒否しても何も壊さないベストエフォート型のスタートアップトラフィックも受け取ります。Anthropic Messages フォーマットゲートウェイは `HEAD /api/hello` 接続ウォーミングプローブを受け取ります。HTTP プロキシまたはクライアント証明書が設定されている場合、Claude Code はこれをスキップします。Amazon Bedrock フォーマットゲートウェイは `GET /inference-profiles?type=SYSTEM_DEFINED` リクエストを受け取り、設定されたモデルが推論プロファイルの場合、`GET /inference-profiles/{profile}` ルックアップを受け取ります。66ゲートウェイには、何も壊すことなく拒否できるベストエフォートの起動時トラフィックも届きます。Anthropic Messages フォーマットのゲートウェイは `HEAD /api/hello` という接続ウォームアップ用のプローブを受信します。HTTP プロキシまたはクライアント証明書が設定されている場合、Claude Code はこのプローブを省略します。Amazon Bedrock フォーマットのゲートウェイは `GET /inference-profiles?type=SYSTEM_DEFINED` リクエストを受信し、設定されたモデルが推論プロファイルである場合は `GET /inference-profiles/{profile}` による参照も受信します。

67 67 

68[高速モード](/docs/ja/fast-mode) の可用性チェックはゲートウェイログに表示されません。`ANTHROPIC_BASE_URL` に従う代わりに `api.anthropic.com` に直接呼び出すため、`api.anthropic.com` への直接エグレスをブロックするネットワークでは、高速モードは接続エラーを報告する可能性がありますが、ゲートウェイを通じた推論は機能し続けます。[WebFetch ドメイン安全性チェック](/docs/ja/data-usage#webfetch-domain-safety-check) も `api.anthropic.com` に直接呼び出します。[プロキシと LLM ゲートウェイの背後で高速モードを使用する](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) は、それを復元する変数をカバーしています。68[fast mode](/docs/ja/fast-mode) の利用可否チェックはゲートウェイのログには一切現れません。このチェックは `ANTHROPIC_BASE_URL` に従わず `api.anthropic.com` を直接呼び出すため、`api.anthropic.com` への直接の外向き通信をブロックしているネットワークでは、ゲートウェイ経由の推論は動作し続けていても、fast mode が接続エラーを報告することがあります。[WebFetch のドメイン安全性チェック](/docs/ja/data-usage#webfetch-domain-safety-check)も `api.anthropic.com` を直接呼び出します。これを復旧させる変数については、[プロキシや LLM ゲートウェイの背後で fast mode を使用する](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)を参照してください。

69 69 

70<h3 id="streaming">70<h3 id="streaming">

71 ストリーミング71 ストリーミング

72</h3>72</h3>

73 73 

74推論レスポンスをストリーミングします。Claude Code はストリームが到着するときに読み取るため、ゲートウェイが完全なレスポンスをバッファリングしてからリレーする場合、Claude Code は停止します。74推論の応答はストリーミングで返してください。Claude Code はストリームを受信したそばから読み取るため、ゲートウェイが完全なレスポンスをバッファリングしてから中継すると、Claude Code は停止してしまいます。

75 75 

76各レスポンスの完全なイベントシーケンスを、イベントをドロップ、重複、または並べ替えることなく配信します。イベントが `content_block_start` が到着しなかったコンテンツブロック、または `content_block_stop` がすでに到着したブロックを参照する場合、Claude Code はそのイベントでストリームの読み取りを停止し、それを適用しません。そのため、重複した `content_block_stop` は同じツール呼び出しを 2 回実行することはできません。[上記のレスポンスが不完全である可能性があります](/docs/ja/errors#the-response-above-may-be-incomplete) は、ユーザーが見るもの、「レスポンスの一部が到着しなかった」および「レスポンスストリームが不正な形式でした」のバリアントについて説明しています。76各応答のイベントシーケンス全体を、イベントの欠落、重複、順序の入れ替えなしに配信してください。Amazon Bedrock のガードレールが応答をブロックした場合は、すでに `content_block_stop` が到着したコンテンツブロックを参照するイベントであっても、送られてきたイベントを変更せずに転送してください。その応答がどのように終了するかは [AWS Guardrails](/docs/ja/amazon-bedrock#aws-guardrails) で説明しています。それ以外のイベントが、`content_block_start` が一度も到着していないコンテンツブロック、またはすでに `content_block_stop` が到着したブロックを参照している場合、Claude Code はそのイベントを適用せず、その時点でストリームの読み取りを停止します。これにより、重複した `content_block_stop` によって同じツール呼び出しが 2 回実行されることを防ぎます。ユーザーに何が表示されるかについては、[The response above may be incomplete](/docs/ja/errors#the-response-above-may-be-incomplete) の `Part of the response never arrived` および `The response stream was malformed` のバリエーションで説明しています。

77 77 

78各レスポンスを最終的な `message_delta` および `message_stop` イベントを通じてリレーしてから、ボディを終了します。`message_delta` が `stop_reason` を含むボディで終了し、開いているコンテンツブロックがなく、そのフレームの後にコンテンツブロックイベントがない場合、`message_stop` がない場合でも完全と見なされます。ゲートウェイがコンテンツブロックが開始された後、より早くクリーンに終了するボディは、接続が切断されたのと同じように扱われます。[自動再試行](/docs/ja/errors#automatic-retries) は Claude Code がリクエストを再発行するときについて説明し、[上記のレスポンスが不完全である可能性があります](/docs/ja/errors#the-response-above-may-be-incomplete) は、目に見えるコンテンツが到着した後に保持するものをカバーしています。Claude Code は `message_delta` が配信する `stop_reason` を保持するため、後の使用量のみの `message_delta` で `delta` が `stop_reason: null` または `stop_reason` キーがない場合、それをクリアしません。78ボディを終了する前に、各応答を最後の `message_delta` および `message_stop` イベントまで中継してください。`stop_reason` を含む `message_delta` の後でボディが終了し、開いたままのコンテンツブロックがなく、そのフレームの後にコンテンツブロックのイベントもない場合、`message_stop` が欠けていても完了したものとみなされます。コンテンツブロックが開始された後、それより前の時点でゲートウェイがボディを正常に終了した場合は、接続の切断と同じように扱われます。Claude Code がリクエストを再発行する条件については[自動再試行](/docs/ja/errors#automatic-retries)を、表示可能なコンテンツが到着した後に何が保持されるかについては [The response above may be incomplete](/docs/ja/errors#the-response-above-may-be-incomplete) を参照してください。Claude Code は `message_delta` によって配信された `stop_reason` を保持するため、その後に届く使用量のみの `message_delta` で、`delta` の `stop_reason` が `stop_reason: null` であるか `stop_reason` キーがない場合でも、その値はクリアされません。

79 79 

80クライアントが Amazon Bedrock フォーマットを使用する場合、`InvokeModelWithResponseStream` レスポンスボディとその `Content-Type: application/vnd.amazon.eventstream` ヘッダーを変更せずにリレーし、ストリームをサーバー送信イベントに変換しないでください。[ゲートウェイまたはプロキシの背後でのストリーミングエラー](/docs/ja/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) を参照してください。80クライアントが Amazon Bedrock フォーマットを使用する場合は、`InvokeModelWithResponseStream` のレスポンスボディとその `Content-Type: application/vnd.amazon.eventstream` ヘッダーを変更せずに中継し、ストリームを Server-Sent Events に変換しないでください。[ゲートウェイまたはプロキシの背後でのストリーミングエラー](/docs/ja/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)を参照してください。

81 81 

82キープアライブピングもリレーします。Claude Code は [5 分のデフォルト](/docs/ja/network-config#streaming-idle-watchdogs) でストリーミングレスポンスを中止します。長い思考の一時停止中、アップストリームの SSE `ping` イベントはストリーム上の唯一のバイトである可能性があります。ゲートウェイがそれらをストリップまたはバッファリングする場合、Claude Code は一時停止の途中でレスポンスを中止します。Amazon Bedrock のバイナリイベントストリームなど、ピングをまったく送信しないアップストリームから変換する場合、無音のギャップ中に独自の `ping` イベントを発行します。82キープアライブの ping も転送してください。Claude Code は、[デフォルトでは 5 分間](/docs/ja/network-config#streaming-idle-watchdogs)1 バイトも届かない状態が続くと、ストリーミング応答を中止するためです。長い思考の一時停止中は、アップストリームの SSE `ping` イベントがストリーム上の唯一のバイトになることがあります。ゲートウェイがそれらを除去またはバッファリングすると、Claude Code は一時停止の途中で応答を中止します。Amazon Bedrock のバイナリイベントストリームのように ping をまったく送信しないアップストリームから変換する場合は、無音の間隔の間に独自の `ping` イベントを送出してください。

83 83 

84<h3 id="format-mismatch-with-the-upstream">84<h3 id="format-mismatch-with-the-upstream">

85 アップストリームとのフォーマット不一致85 アップストリームとのフォーマットの不一致

86</h3>86</h3>

87 87 

88クライアントが使用するフォーマットは、ゲートウェイが受け取るものを決定します。一般的な障害モードは、クライアントがゲートウェイに送信するフォーマットと、その背後のアップストリームプロバイダーが受け入れるフォーマット間の不一致です。88クライアントがどのフォーマットを使用するかによって、ゲートウェイが受信する内容が決まります。よくある障害パターンは、クライアントがゲートウェイに送信するフォーマットと、その背後にあるアップストリームプロバイダーが受け付けるフォーマットの不一致です。

89 89 

90* クライアントが Amazon Bedrock または Google Cloud の Agent Platform フォーマットを使用する場合、Claude Code はそれらのプロバイダーが受け入れる完全な機能セットのサブセットのみを送信します90* クライアントが Amazon Bedrock または Google Cloud's Agent Platform のフォーマットを使用する場合、Claude Code は全機能セットのうち、それらのプロバイダーが受け付けるサブセットのみを送信します

91* クライアントが Anthropic Messages フォーマットを使用する場合、ゲートウェイが Amazon Bedrock または Google Cloud の Agent Platform アップストリームに転送する場合でも、Claude Code は完全なセットを送信します91* クライアントが Anthropic Messages フォーマットを使用する場合、ゲートウェイが Amazon Bedrock または Google Cloud's Agent Platform のアップストリームに転送する場合であっても、Claude Code は全機能セットを送信します

92 92 

93その違いを橋渡けすることはゲートウェイの仕事です。[機能パススルー](#feature-pass-through) は、それが機能しない場合に何が壊れるかについて説明しています。93この違いを橋渡しするのはゲートウェイの役割です。橋渡しが行われない場合に何が壊れるかについては、[機能のパススルー](#feature-pass-through)で説明しています。

94 94 

95アップストリームが Amazon Bedrock または Google Cloud の Agent Platform の場合、代わりにそのプロバイダーのフォーマットを公開することで、橋渡けを回避できます。[ゲートウェイを通じてクラウドプロバイダーにルーティングする](/docs/ja/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) は、そのフォーマットのクライアント設定を示しています。95アップストリームが Amazon Bedrock または Google Cloud's Agent Platform である場合は、代わりにそのプロバイダーのフォーマットを公開することで、橋渡しを回避できます。そのフォーマットのクライアント設定については、[ゲートウェイ経由でクラウドプロバイダーにルーティングする](/docs/ja/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway)を参照してください。

96 96 

97<h2 id="how-the-connection-method-changes-client-behavior">97<h2 id="how-the-connection-method-changes-client-behavior">

98 接続方法がクライアント動作にどのように影響するか98 接続方法がクライアント動作にどのように影響するか

Details

199 199 

200[ゲートウェイログインキー](#choose-a-delivery-mechanism)は別のルールに従います。Claude Code はサーバー管理設定からそれらを読み取ることはないため、サーバー管理設定が選択されたソースである間、ポリシーキーを持つマシン上の最も高いランクの管理者ソースがそれらを提供します。それより下にランク付けされた管理者ソースの値、または HKCU レジストリの値は無視されます。200[ゲートウェイログインキー](#choose-a-delivery-mechanism)は別のルールに従います。Claude Code はサーバー管理設定からそれらを読み取ることはないため、サーバー管理設定が選択されたソースである間、ポリシーキーを持つマシン上の最も高いランクの管理者ソースがそれらを提供します。それより下にランク付けされた管理者ソースの値、または HKCU レジストリの値は無視されます。

201 201 

202[`allowedProviders`](/docs/ja/settings-reference#allowedproviders) には独自のルールがあります。そのエントリの Scope の注記で、マシン上で設定されたリストがサーバー管理のリストとどのように組み合わされるかを説明しています。Claude Code v2.1.285 以降が必要です。

203 

202管理者ソースが `allowManagedMcpServersOnly` または `allowedMcpServers` リストを設定し、その値が実行中のものではない場合、`/status` と `claude doctor` はそのソースとキーに名前を付けます。204管理者ソースが `allowManagedMcpServersOnly` または `allowedMcpServers` リストを設定し、その値が実行中のものではない場合、`/status` と `claude doctor` はそのソースとキーに名前を付けます。

203 205 

204<h3 id="compose-every-managed-source">206<h3 id="compose-every-managed-source">


353* 空の管理対象設定ファイルは `{}` としてカウントされます。355* 空の管理対象設定ファイルは `{}` としてカウントされます。

354* ユーザー書き込み可能な HKCU レジストリ キーの不正形式の値は起動をブロックしません。Claude Code は代わりに `/status` と `claude doctor` で通知として報告します。356* ユーザー書き込み可能な HKCU レジストリ キーの不正形式の値は起動をブロックしません。Claude Code は代わりに `/status` と `claude doctor` で通知として報告します。

355 357 

356管理対象設定ファイル、ドロップイン ファイル、または `managed-settings.d/` ディレクトリを読み取ることができず、管理者ソースがポリシーを提供しない場合、claude.ai または Claude Console 認証情報でサインインしたセッションは管理者に連絡するメッセージで起動時に終了します。358管理対象設定ファイル、ドロップイン ファイル、`managed-settings.d/` ディレクトリ、MDM プロファイル、または HKLM レジストリ値が存在するが読み取ることができず、管理者ソースがポリシーを提供しない場合、何が起こるかは読み取りが失敗した理由によって異なります。

359 

360* オペレーティング システムが読み取りを拒否した場合(root のみが読み取れるファイルなど)、すべてのセッションはそのソースのポリシーなしで起動します。`/status` と `claude doctor` は失敗を記録し、`-p` を使用した実行では stderr にも出力されます。

361* I/O エラーなど、その他の読み取り失敗の場合、すべてのセッションは起動時に[管理者に連絡するよう求めるメッセージ](/docs/ja/errors#unable-to-read-managed-policy-settings)を表示して終了します。

357 362 

358ドロップされたエントリを見つけるには、3 つの場所のいずれかを確認します。363ドロップされたエントリを見つけるには、3 つの場所のいずれかを確認します。

359 364 


387| フィールド | 存在するが無効な場合の動作 |392| フィールド | 存在するが無効な場合の動作 |

388| :- | :- |393| :- | :- |

389| `allowedMcpServers` | ユーザーが追加する MCP サーバーが許可されないように、値が修正されるまで空のアローリストとして適用されます。組織が [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) を通じて配信するサーバーは引き続きロードされ、`managed-mcp.json` サーバーは[サーバーの評価方法](/docs/ja/managed-mcp#how-a-server-is-evaluated)に従ってロードされます。個別の無効なエントリは削除され、有効なサブセットが適用されます。 |394| `allowedMcpServers` | ユーザーが追加する MCP サーバーが許可されないように、値が修正されるまで空のアローリストとして適用されます。組織が [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) を通じて配信するサーバーは引き続きロードされ、`managed-mcp.json` サーバーは[サーバーの評価方法](/docs/ja/managed-mcp#how-a-server-is-evaluated)に従ってロードされます。個別の無効なエントリは削除され、有効なサブセットが適用されます。 |

395| [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) | 値が修正されるまで空の許可リストとして適用されるため、すべての API プロバイダーが拒否され、そのマシンで Claude Code は起動しません。個別のエントリが既知のプロバイダー名ではないだけの場合、Claude Code はそのエントリをドロップして報告し、残りを適用します。 |

390| `allowedHttpHookUrls` | Claude Code は値を修正するまで空の管理[アローリスト](/docs/ja/settings-reference#allowedhttphookurls)を適用するため、HTTP フックは別の設定ファイルがその URL をリストしている場合にのみ実行されます。無効なエントリが 1 つだけの場合、Claude Code はそのエントリを削除し、残りを適用します。 |396| `allowedHttpHookUrls` | Claude Code は値を修正するまで空の管理[アローリスト](/docs/ja/settings-reference#allowedhttphookurls)を適用するため、HTTP フックは別の設定ファイルがその URL をリストしている場合にのみ実行されます。無効なエントリが 1 つだけの場合、Claude Code はそのエントリを削除し、残りを適用します。 |

391| `httpHookAllowedEnvVars` | Claude Code は値を修正するまで空の管理[アローリスト](/docs/ja/settings-reference#httphookallowedenvvars)を適用するため、ヘッダー変数は別の設定ファイルがそれを名前で示している場合にのみ補間されます。無効なエントリが 1 つだけの場合、Claude Code はそのエントリを削除し、残りを適用します。 |397| `httpHookAllowedEnvVars` | Claude Code は値を修正するまで空の管理[アローリスト](/docs/ja/settings-reference#httphookallowedenvvars)を適用するため、ヘッダー変数は別の設定ファイルがそれを名前で示している場合にのみ補間されます。無効なエントリが 1 つだけの場合、Claude Code はそのエントリを削除し、残りを適用します。 |

392| `allowedChannelPlugins` | 値を修正するまで空のアローリストとして適用されるため、`--channels` に渡されるチャネル プラグインは許可されません。無効なエントリが 1 つだけの場合、それを削除し、残りを適用します。 |398| `allowedChannelPlugins` | 値を修正するまで空のアローリストとして適用されるため、`--channels` に渡されるチャネル プラグインは許可されません。無効なエントリが 1 つだけの場合、それを削除し、残りを適用します。 |


437 443 

438これらのほとんどはロックです。ロックが管理する値(権限ルールや `sandbox.network.allowedDomains` など)は、任意のレベルで設定できる通常のキーであり、ロックは Claude Code にマネージド値のみを尊重するよう指示します。444これらのほとんどはロックです。ロックが管理する値(権限ルールや `sandbox.network.allowedDomains` など)は、任意のレベルで設定できる通常のキーであり、ロックは Claude Code にマネージド値のみを尊重するよう指示します。

439 445 

440このテーブルは権限、プラグイン、配信制御をカバーしています。ここに記載されていないキーについては、[設定リファレンス](/docs/ja/settings-reference#all-settings)インデックスの Scope 列に、それがマネージドのみかどうかが記載されています。そこに記載されている残りのマネージドのみのキーには、ゲートウェイログイン URL、バージョン、ブラウザ、モバイルシミュレータ、SSH ホスト、Desktop ローカルセッション、サンドボックスバイナリパス、モデル価格設定、モデル制限、CLAUDE.md 制御が含まれます。446このテーブルは権限、プラグイン、配信制御をカバーしています。ここに記載されていないキーについては、[設定リファレンス](/docs/ja/settings-reference#all-settings)インデックスの Scope 列に、それがマネージドのみかどうかが記載されています。

441 447 

442| 設定 | 説明 |448| 設定 | 説明 |

443| :- | :- |449| :- | :- |

444| [`allowAllClaudeAiMcps`](/docs/ja/settings-reference#allowallclaudeaimcps) | デプロイされた `managed-mcp.json` と一緒に Claude Code が自身で取得する claude.ai コネクタを読み込みます。それ以外の場合は抑制されます |450| [`allowAllClaudeAiMcps`](/docs/ja/settings-reference#allowallclaudeaimcps) | デプロイされた `managed-mcp.json` と一緒に Claude Code が自身で取得する claude.ai コネクタを読み込みます。それ以外の場合は抑制されます |

445| [`allowedChannelPlugins`](/docs/ja/settings-reference#allowedchannelplugins) | メッセージをプッシュできるチャネルプラグインのアローリスト。設定時にデフォルトの Anthropic アローリストを置き換えます。`channelsEnabled: true` が必要です。[チャネルプラグインの実行を制限する](/docs/ja/channels#restrict-which-channel-plugins-can-run)を参照してください |451| [`allowedChannelPlugins`](/docs/ja/settings-reference#allowedchannelplugins) | メッセージをプッシュできるチャネルプラグインの許可リスト。設定時にデフォルトの Anthropic 許可リストを置き換えます。`channelsEnabled: true` が必要です。[チャネルプラグインの実行を制限する](/docs/ja/channels#restrict-which-channel-plugins-can-run)を参照してください |

446| [`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) | `true` の場合、どのフックが実行されるかを制限します。完全な効果リストについては[`allowManagedHooksOnly` の下で実行されるもの](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly)を参照してください |452| [`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) | `true` の場合、どのフックが実行されるかを制限します。完全な効果リストについては[`allowManagedHooksOnly` の下で実行されるもの](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly)を参照してください |

447| [`allowManagedMcpServersOnly`](/docs/ja/settings-reference#allowmanagedmcpserversonly) | `true` の場合、マネージド設定からの `allowedMcpServers` のみが尊重されます。`deniedMcpServers` はすべてのソースからマージされます。どのマネージドソースがこれを設定できるかについては[すべての管理者ソースから読み込まれるキー](#keys-read-from-every-admin-source)を参照し、[マネージド MCP 設定](/docs/ja/managed-mcp)を参照してください |453| [`allowManagedMcpServersOnly`](/docs/ja/settings-reference#allowmanagedmcpserversonly) | `true` の場合、管理設定からの `allowedMcpServers` のみが尊重されます。`deniedMcpServers` はすべてのソースからマージされます。どのマネージドソースがこれを設定できるかについては[すべての管理者ソースから読み込まれるキー](#keys-read-from-every-admin-source)を参照し、[マネージド MCP 設定](/docs/ja/managed-mcp)を参照してください |

448| [`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) | マネージド設定を権限ルールの唯一の設定ソースにします。エントリは無視するすべてのソースをリストします |454| [`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) | 管理設定を権限ルールの唯一の設定ソースにします。エントリは無視するすべてのソースをリストします |

449| [`blockedMarketplaces`](/docs/ja/settings-reference#blockedmarketplaces) | マーケットプレイスソースのブロックリスト。ブロックされたソースはダウンロード前にチェックされるため、ファイルシステムに触れることはありません。[マネージドマーケットプレイス制限](/docs/ja/plugins/org#restrict-what-users-can-install)を参照してください |455| [`blockedMarketplaces`](/docs/ja/settings-reference#blockedmarketplaces) | マーケットプレイスソースのブロックリスト。ブロックされたソースはダウンロード前にチェックされるため、ファイルシステムに触れることはありません。[マネージドマーケットプレイス制限](/docs/ja/plugins/org#restrict-what-users-can-install)を参照してください |

450| [`channelsEnabled`](/docs/ja/settings-reference#channelsenabled) | 組織の[チャネル](/docs/ja/channels)を許可します。各プランのデフォルトについては[エンタープライズ制御](/docs/ja/channels#enterprise-controls)を参照してください |456| [`channelsEnabled`](/docs/ja/settings-reference#channelsenabled) | 組織の[チャネル](/docs/ja/channels)を許可します。各プランのデフォルトについては[エンタープライズ制御](/docs/ja/channels#enterprise-controls)を参照してください |

451| [`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) | `true` の場合、[`command` プラグインソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を完全にブロックするため、マーケットプレイスで宣言されたコマンドは実行されません。また、マーケットプレイスの[`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、マネージド設定自体が宣言するマーケットプレイスは除きます。設定されていない場合は、`allowManagedHooksOnly` に従います。Claude Code v2.1.229 以降が必要であり、`headersHelper` ブロックには v2.1.238 以降が必要です |457| [`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) | `true` の場合、[`command` プラグインソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を完全にブロックするため、マーケットプレイスで宣言されたコマンドは実行されません。また、マーケットプレイスの[`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、管理設定自体が宣言するマーケットプレイスは除きます。設定されていない場合は、`allowManagedHooksOnly` に従います。Claude Code v2.1.229 以降が必要であり、`headersHelper` ブロックには v2.1.238 以降が必要です |

452| [`disableSideloadFlags`](/docs/ja/settings-reference#disablesideloadflags) | 起動時に `--plugin-dir`、`--plugin-url`、`--agents`、`--mcp-config` フラグを拒否します。クラウドセッションでは、Claude Code はセッションを開始し、サーバー配信の `--mcp-config` サーバーをドロップします。ただし、その[リファレンスエントリ](/docs/ja/settings-reference#disablesideloadflags)がリストする例外は除きます。Claude Code v2.1.193 以降が必要です |458| [`disableSideloadFlags`](/docs/ja/settings-reference#disablesideloadflags) | 起動時に `--plugin-dir`、`--plugin-url`、`--agents`、`--mcp-config` フラグを拒否します。クラウドセッションでは、Claude Code はセッションを開始し、サーバー配信の `--mcp-config` サーバーをドロップします。ただし、その[リファレンスエントリ](/docs/ja/settings-reference#disablesideloadflags)がリストする例外は除きます。Claude Code v2.1.193 以降が必要です |

453| [`forceRemoteSettingsRefresh`](/docs/ja/settings-reference#forceremotesettingsrefresh) | `true` の場合、リモートマネージド設定が新たに取得されるまで CLI 起動をブロックし、取得に失敗した場合は終了します。[フェイルクローズ実装](/docs/ja/server-managed-settings#enforce-fail-closed-startup)を参照してください |459| [`forceRemoteSettingsRefresh`](/docs/ja/settings-reference#forceremotesettingsrefresh) | `true` の場合、リモート管理設定が新たに取得されるまで CLI 起動をブロックし、取得に失敗した場合は終了します。[フェイルクローズ実装](/docs/ja/server-managed-settings#enforce-fail-closed-startup)を参照してください |

454| [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) | すべてのユーザーに自身のサーバーと一緒に提供されるリモート MCP サーバー。何かをロックダウンするのではなく、サーバーを提供します。[マネージド設定を通じてサーバーを提供する](/docs/ja/managed-mcp#provide-servers-through-managed-settings)を参照してください。Claude Code v2.1.259 以降が必要です |460| [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) | すべてのユーザーに自身のサーバーと一緒に提供されるリモート MCP サーバー。何かをロックダウンするのではなく、サーバーを提供します。[管理設定を通じてサーバーを提供する](/docs/ja/managed-mcp#provide-servers-through-managed-settings)を参照してください。Claude Code v2.1.259 以降が必要です |

455| [`managedSourcesBehavior`](/docs/ja/settings-reference#managedsourcesbehavior) | Claude Code が最優先のマネージドソースのみを適用するか、[すべてのマネージドソースを構成する](#compose-every-managed-source)かどうか |461| [`managedSourcesBehavior`](/docs/ja/settings-reference#managedsourcesbehavior) | Claude Code が最優先のマネージドソースのみを適用するか、[すべてのマネージドソースを構成する](#compose-every-managed-source)かどうか |

456| [`parentSettingsBehavior`](/docs/ja/settings-reference#parentsettingsbehavior) | ホスト提供の親設定がマネージドポリシーの下でマージされるかどうか |462| [`parentSettingsBehavior`](/docs/ja/settings-reference#parentsettingsbehavior) | ホスト提供の親設定がマネージドポリシーの下でマージされるかどうか |

457| [`pluginSuggestionMarketplaces`](/docs/ja/settings-reference#pluginsuggestionmarketplaces) | Claude Code がユーザーに提案できるプラグインのマーケットプレイス |463| [`pluginSuggestionMarketplaces`](/docs/ja/settings-reference#pluginsuggestionmarketplaces) | Claude Code がユーザーに提案できるプラグインのマーケットプレイス |

458| [`pluginTrustMessage`](/docs/ja/settings-reference#plugintrustmessage) | インストール前に表示されるプラグイン信頼警告に追加されるカスタムメッセージ |464| [`pluginTrustMessage`](/docs/ja/settings-reference#plugintrustmessage) | インストール前に表示されるプラグイン信頼警告に追加されるカスタムメッセージ |

459| [`policyHelper`](/docs/ja/settings-reference#policyhelper) | 起動時にマネージド設定を計算する実行可能ファイル。[ポリシーヘルパーでマネージド設定を計算する](/docs/ja/settings-reference#policyhelper)を参照してください |465| [`policyHelper`](/docs/ja/settings-reference#policyhelper) | 起動時に管理設定を計算する実行可能ファイル。[ポリシーヘルパーで管理設定を計算する](/docs/ja/settings-reference#policyhelper)を参照してください |

460| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/ja/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | `true` の場合、マネージド設定からの `filesystem.allowRead` パスのみが尊重されます。`denyRead` はすべてのソースからマージされます |466| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/ja/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | `true` の場合、管理設定からの `filesystem.allowRead` パスのみが尊重されます。`denyRead` はすべてのソースからマージされます |

461| [`sandbox.network.allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) | マネージドの `allowedDomains` と `WebFetch(domain:...)` アロールールのみを尊重します。他のドメインはプロンプトなしでブロックします |467| [`sandbox.network.allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) | マネージドの `allowedDomains` と `WebFetch(domain:...)` 許可ルールのみを尊重します。他のドメインはプロンプトなしでブロックします |

462| [`strictKnownMarketplaces`](/docs/ja/settings-reference#strictknownmarketplaces) | ユーザーが追加してプラグインをインストールできるプラグインマーケットプレイスソースを制御します。[マネージドマーケットプレイス制限](/docs/ja/plugins/org#restrict-what-users-can-install)を参照してください |468| [`strictKnownMarketplaces`](/docs/ja/settings-reference#strictknownmarketplaces) | ユーザーが追加してプラグインをインストールできるプラグインマーケットプレイスソースを制御します。[マネージドマーケットプレイス制限](/docs/ja/plugins/org#restrict-what-users-can-install)を参照してください |

463| [`strictPluginOnlyCustomization`](/docs/ja/settings-reference#strictpluginonlycustomization) | ユーザーおよびプロジェクトソースからのスキル、エージェント、フック、MCP サーバーをブロックします。`true` はすべて 4 つをロックし、配列はどれをロックするかを指定します |469| [`strictPluginOnlyCustomization`](/docs/ja/settings-reference#strictpluginonlycustomization) | ユーザーおよびプロジェクトソースからのスキル、エージェント、フック、MCP サーバーをブロックします。`true` はすべて 4 つをロックし、配列はどれをロックするかを指定します |

464| [`wslInheritsWindowsSettings`](/docs/ja/settings-reference#wslinheritswindowssettings) | HKLM レジストリまたは `C:\Program Files\ClaudeCode` の下のファイルに設定されている場合、WSL に Windows ポリシーチェーンを読み込ませ、[Windows 管理ドキュメントが存在しない](#present-admin-documents)場合にのみ `/etc/claude-code` を読み込みます。エントリは順序を指定します |470| [`wslInheritsWindowsSettings`](/docs/ja/settings-reference#wslinheritswindowssettings) | HKLM レジストリまたは `C:\Program Files\ClaudeCode` の下のファイルに設定されている場合、WSL に Windows ポリシーチェーンを読み込ませ、[Windows 管理ドキュメントが存在しない](#present-admin-documents)場合にのみ `/etc/claude-code` を読み込みます。エントリは順序を指定します |

465 471 

466<Note>472<Note>

467 Team および Enterprise プランでは、オーナーが [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code)で組織全体の[リモートコントロール](/docs/ja/remote-control)と[クラウドセッション](/docs/ja/claude-code-on-the-web)を有効または無効にします。リモートコントロールは [`disableRemoteControl`](/docs/ja/settings-reference#disableremotecontrol) 設定でデバイスごとに無効にすることもできます。クラウドセッションにはデバイスごとのマネージド設定キーはありません。473 Team および Enterprise プランでは、Owner が [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code)で組織全体の [Remote Control](/docs/ja/remote-control) と[クラウドセッション](/docs/ja/claude-code-on-the-web)を有効または無効にします。Owner が Remote Control をオフにすると、Claude Code v2.1.286 以降を実行している接続済みのセッションも切断されます。各セッションは、次に組織のポリシーを更新したとき(約 1 時間に 1 回)に切断されます。それらのセッションで何が起こるかについては、[`Remote Control was turned off by your organization's policy`](/docs/ja/remote-control#remote-control-was-turned-off-by-your-organizations-policy) を参照してください。

474 

475 Remote Control は [`disableRemoteControl`](/docs/ja/settings-reference#disableremotecontrol) 設定でデバイスごとに無効にすることもできます。クラウドセッションにはデバイスごとの管理設定キーはありません。

468 476 

469 これらの組織設定が特定のマシンに到達したかどうかを確認するには、そこで `claude doctor` を実行し、`Organization policy` 行を読みます。この行は Claude Code がポリシーをどこから読み込んだか、または読み込まなかった理由を示します。Claude Code v2.1.261 以降が必要です。実行中のセッションでは、ポリシーが読み込まれなかった場合、`/status` は同じ行を表示します。477 これらの組織設定が特定のマシンに到達したかどうかを確認するには、そこで `claude doctor` を実行し、`Organization policy` 行を読みます。この行は Claude Code がポリシーをどこから読み込んだか、または読み込まなかった理由を示します。Claude Code v2.1.261 以降が必要です。実行中のセッションでは、ポリシーが読み込まれなかった場合、`/status` は同じ行を表示します。

470</Note>478</Note>

memory.md +37 −35

Details

54* 前回のセッションで入力した同じ修正または説明をチャットに再度入力する場合54* 前回のセッションで入力した同じ修正または説明をチャットに再度入力する場合

55* 新しいチームメンバーが生産性を高めるために同じコンテキストが必要な場合55* 新しいチームメンバーが生産性を高めるために同じコンテキストが必要な場合

56 56 

57すべてのセッションで Claude が保持すべき事実に限定してください。ビルドコマンド、規約、プロジェクトレイアウト、「常に X を実行する」ルールなどです。エントリが複数ステップの手順である場合、またはコードベースの 1 つの部分にのみ関連する場合は、代わりに [skill](/docs/ja/skills) または [パススコープ付きルール](#organize-rules-with-claude/rules/) に移動してください。[拡張機能の概要](/docs/ja/features-overview#build-your-setup-over-time) では、各メカニズムをいつ使用するかについて説明しています。57すべてのセッションで Claude が保持すべき事実に限定してください。ビルドコマンド、規約、プロジェクトレイアウト、「常に X を実行する」ルールなどです。エントリが複数ステップの手順である場合、またはコードベースの 1 つの部分にのみ関連する場合は、代わりに [スキル](/docs/ja/skills) または [パススコープ付きルール](#organize-rules-with-claude/rules/) に移動してください。[拡張機能の概要](/docs/ja/features-overview#build-your-setup-over-time) では、各メカニズムをいつ使用するかについて説明しています。

58 58 

59<h3 id="choose-where-to-put-claude-md-files">59<h3 id="choose-where-to-put-claude-md-files">

60 CLAUDE.md ファイルの配置場所を選択する60 CLAUDE.md ファイルの配置場所を選択する


65| スコープ | 場所 | 目的 | ユースケース例 | 共有対象 |65| スコープ | 場所 | 目的 | ユースケース例 | 共有対象 |

66| - | - | - | - | - |66| - | - | - | - | - |

67| **管理ポリシー** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux と WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | IT/DevOps が管理する組織全体の指示 | 企業のコーディング標準、セキュリティポリシー、コンプライアンス要件 | 組織内のすべてのユーザー |67| **管理ポリシー** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux と WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | IT/DevOps が管理する組織全体の指示 | 企業のコーディング標準、セキュリティポリシー、コンプライアンス要件 | 組織内のすべてのユーザー |

68| **ユーザー指示** | `~/.claude/CLAUDE.md` | すべてのプロジェクトの個人的な設定 | コードスタイルの設定、個人的なツーリングショートカット | あなただけ(すべてのプロジェクト) |68| **ユーザー指示** | `~/.claude/CLAUDE.md` | すべてのプロジェクトの個人的な設定 | コードスタイルの設定、個人的なツーリングショートカット | 自分のみ(すべてのプロジェクト) |

69| **プロジェクト指示** | `./CLAUDE.md` または `./.claude/CLAUDE.md`。`./AGENTS.md` がそれらの代わりに、または一緒にロードされるタイミングについては [AGENTS.md](#agents-md) を参照してください | プロジェクトのチーム共有指示 | プロジェクトアーキテクチャ、コーディング標準、一般的なワークフロー | ソース管理を通じたチームメンバー |69| **プロジェクト指示** | `./CLAUDE.md` または `./.claude/CLAUDE.md`。`./AGENTS.md` がそれらの代わりに、または一緒にロードされるタイミングについては [AGENTS.md](#agents-md) を参照してください | プロジェクトのチーム共有指示 | プロジェクトアーキテクチャ、コーディング標準、一般的なワークフロー | ソース管理を通じたチームメンバー |

70| **ローカル指示** | `./CLAUDE.local.md` | 個人的なプロジェクト固有の設定。`.gitignore` に追加してください | サンドボックス URL、推奨テストデータ | あなただけ(現在のプロジェクト) |70| **ローカル指示** | `./CLAUDE.local.md` | 個人的なプロジェクト固有の設定。`.gitignore` に追加してください | サンドボックス URL、推奨テストデータ | 自分のみ(現在のプロジェクト) |

71 71 

72作業ディレクトリより上のディレクトリ階層内の CLAUDE.md および CLAUDE.local.md ファイルは起動時にロードされます。サブディレクトリ内のファイルは、Claude がそれらのディレクトリ内のファイルを読むときにオンデマンドでロードされます。完全な解決順序については、[CLAUDE.md ファイルのロード方法](#how-claude-md-files-load) を参照してください。72作業ディレクトリより上のディレクトリ階層内の CLAUDE.md および CLAUDE.local.md ファイルは起動時にロードされます。サブディレクトリ内のファイルは、Claude がそれらのディレクトリ内のファイルを読むときにオンデマンドでロードされます。完全な解決順序については、[CLAUDE.md ファイルのロード方法](#how-claude-md-files-load) を参照してください。

73 73 


82<Tip>82<Tip>

83 `/init` を実行して、開始用の CLAUDE.md を自動的に生成します。Claude はコードベースを分析し、発見したビルドコマンド、テスト指示、プロジェクト規約を含むファイルを作成します。CLAUDE.md が既に存在する場合、`/init` は上書きするのではなく改善を提案します。そこから Claude が自分で発見しない指示で洗練させてください。83 `/init` を実行して、開始用の CLAUDE.md を自動的に生成します。Claude はコードベースを分析し、発見したビルドコマンド、テスト指示、プロジェクト規約を含むファイルを作成します。CLAUDE.md が既に存在する場合、`/init` は上書きするのではなく改善を提案します。そこから Claude が自分で発見しない指示で洗練させてください。

84 84 

85 代わりにインタラクティブなマルチフェーズフローの場合は、`/init` を実行する前に `CLAUDE_CODE_NEW_INIT` 環境変数を `1` に設定してください。シェルまたは [環境変数を設定する](/docs/ja/env-vars#set-environment-variables) に示されているように設定ファイルの `env` ブロックで設定します。設定すると、`/init` はセットアップするアーティファクトを尋ねます。CLAUDE.md ファイル、スキル、フック。その後、サブエージェントでコードベースを探索し、フォローアップの質問を通じてギャップを埋め、ファイルを書き込む前に確認可能な提案を提示します。変数は `/init` の実行方法のみを変更するため、設定したままにしておくことができます。85 代わりにインタラクティブなマルチフェーズフローの場合は、`/init` を実行する前に `CLAUDE_CODE_NEW_INIT` 環境変数を `1` に設定してください。シェルまたは [環境変数を設定する](/docs/ja/env-vars#set-environment-variables) に示されているように設定ファイルの `env` ブロックで設定します。設定すると、`/init` はセットアップするアーティファクト(CLAUDE.md ファイル、スキル、フック)を尋ねます。その後、サブエージェントでコードベースを探索し、フォローアップの質問を通じてギャップを埋め、ファイルを書き込む前に確認可能な提案を提示します。変数は `/init` の実行方法のみを変更するため、設定したままにしておくことができます。

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


105 指示ファイルを監査する105 指示ファイルを監査する

106</h4>106</h4>

107 107 

108Claude に指示ファイルで古い内容または矛盾する内容をチェックさせるには、セッションで `/doctor prompt-audit` を実行してください。Claude は、古いモデル用に書かれた指示、存在しないファイルまたはコマンドへの参照、互いに矛盾するファイルなどの問題を探します。提案された編集を含む調査結果のレポートが表示され、ファイル内の何も変更されません。Claude に適用するよう依頼するまで。108Claude に指示ファイルで古い内容または矛盾する内容をチェックさせるには、セッションで `/doctor prompt-audit` を実行してください。Claude は、古いモデル用に書かれた指示、存在しないファイルまたはコマンドへの参照、互いに矛盾するファイルなどの問題を探します。提案された編集を含む調査結果のレポートが表示され、Claude に適用するよう依頼するまでファイル内の何も変更されません。

109 109 

110デフォルトでは、監査は CLAUDE.md、CLAUDE.local.md、AGENTS.md ファイル、および `.claude/` と `~/.claude/` の下のルール、スキル、コマンド、サブエージェント、出力スタイルをカバーします。代わりに 1 つのファイルまたはディレクトリを監査するには、そのパスを渡してください。例えば `/doctor prompt-audit .claude/skills/deploy`。110デフォルトでは、監査は CLAUDE.md、CLAUDE.local.md、AGENTS.md ファイル、および `.claude/` と `~/.claude/` の下のルール、スキル、コマンド、サブエージェント、出力スタイルをカバーします。代わりに 1 つのファイルまたはディレクトリを監査するには、そのパスを渡してください。例えば `/doctor prompt-audit .claude/skills/deploy` です。

111 111 

112監査はバンドルされた `/claude-api` スキルを通じて実行されます。そのスキルが [`skillOverrides`](/docs/ja/skills#override-skill-visibility-from-settings) で無効になっているか、[`disableBundledSkills`](/docs/ja/settings-reference#disablebundledskills) で無効になっている場合は利用できません。`/doctor prompt-audit` には Claude Code v2.1.283 以降が必要です。112監査はバンドルされた `/claude-api` スキルを通じて実行されます。そのスキルが [`skillOverrides`](/docs/ja/skills#override-skill-visibility-from-settings) で無効になっているか、[`disableBundledSkills`](/docs/ja/settings-reference#disablebundledskills) で無効になっている場合は利用できません。`/doctor prompt-audit` には Claude Code v2.1.283 以降が必要です。

113 113 


119 119 

120相対パスと絶対パスの両方が許可されます。相対パスは、作業ディレクトリではなく、インポートを含むファイルを基準に解決されます。インポートされたファイルは他のファイルを再帰的にインポートでき、最大深度は 4 ホップです。120相対パスと絶対パスの両方が許可されます。相対パスは、作業ディレクトリではなく、インポートを含むファイルを基準に解決されます。インポートされたファイルは他のファイルを再帰的にインポートでき、最大深度は 4 ホップです。

121 121 

122パスにスペースが含まれるファイルをインポートするには、各スペースの前にバックスラッシュを付けます。バックスラッシュがない場合、パスは最初のスペースで終了します。インポートが独自の行にある場合でも同じです。引用符で囲まれたパスはまったくインポートされません。バックスラッシュの有無にかかわらず。このインポートは `Design Docs` という名前のフォルダからファイルをロードします。122パスにスペースが含まれるファイルをインポートするには、各スペースの前にバックスラッシュを付けます。バックスラッシュがない場合、インポートが独立した行にあっても、パスは最初のスペースで終了します。引用符で囲まれたパスは、バックスラッシュの有無にかかわらず、まったくインポートされません。このインポートは `Design Docs` という名前のフォルダからファイルをロードします。

123 123 

124```text theme={null}124```text theme={null}

125- API conventions @Design\ Docs/api-conventions.md125- API conventions @Design\ Docs/api-conventions.md

126```126```

127 127 

128インポート解析はマークダウンコードスパンとフェンスコードブロックをスキップします。CLAUDE.md でパスに言及する場合、インポートせずに、バックティックで囲んでください。`` `@README` `` を書くとテキストはリテラルのままですが、バックティックの外の `@README` はファイルをインポートします。128インポート解析はマークダウンコードスパンとフェンスコードブロックをスキップします。CLAUDE.md でパスをインポートせずに言及するには、バックティックで囲んでください。`` `@README` `` と書くとテキストはリテラルのままですが、バックティックの外の `@README` はファイルをインポートします。

129 129 

130README、package.json、ワークフローガイドを取得するには、CLAUDE.md の任意の場所で `@` 構文を使用してそれらを参照してください。130README、package.json、ワークフローガイドを取得するには、CLAUDE.md の任意の場所で `@` 構文を使用してそれらを参照してください。

131 131 


138 138 

139バージョン管理にチェックインすべきではない個人的なプロジェクト固有の設定については、プロジェクトルートに `CLAUDE.local.md` を作成してください。これは `CLAUDE.md` と一緒にロードされ、同じ方法で扱われます。`CLAUDE.local.md` を `.gitignore` に追加して、コミットされないようにしてください。`CLAUDE_CODE_NEW_INIT=1` が設定されている場合、`/init` を実行して個人オプションを選択するとこれが自動的に行われます。139バージョン管理にチェックインすべきではない個人的なプロジェクト固有の設定については、プロジェクトルートに `CLAUDE.local.md` を作成してください。これは `CLAUDE.md` と一緒にロードされ、同じ方法で扱われます。`CLAUDE.local.md` を `.gitignore` に追加して、コミットされないようにしてください。`CLAUDE_CODE_NEW_INIT=1` が設定されている場合、`/init` を実行して個人オプションを選択するとこれが自動的に行われます。

140 140 

141同じリポジトリの複数の git ワークツリーで作業する場合、gitignored `CLAUDE.local.md` は作成したワークツリーにのみ存在します。ワークツリー全体で個人的な指示を共有するには、代わりにホームディレクトリからファイルをインポートしてください。141同じリポジトリの複数の git worktree で作業する場合、gitignore された `CLAUDE.local.md` は作成した worktree にのみ存在します。worktree 間で個人的な指示を共有するには、代わりにホームディレクトリからファイルをインポートしてください。

142 142 

143```text theme={null}143```text theme={null}

144# Individual Preferences144# Individual Preferences


146```146```

147 147 

148<Warning>148<Warning>

149 プロジェクトレベルのメモリファイル内のインポートは、ホームディレクトリインポートのように、作業ディレクトリの外に解決されるパスを持つ場合、外部です。Claude Code が初めてプロジェクトで外部インポートを検出すると、ファイルをリストする承認ダイアログが表示されます。拒否すると、インポートは無効のままになり、ダイアログは再度表示されません。149 プロジェクトレベルのメモリファイル内のインポートは、上記のホームディレクトリのインポートのように、パスが作業ディレクトリの外に解決される場合、外部インポートとなります。Claude Code が初めてプロジェクトで外部インポートを検出すると、ファイルをリストする承認ダイアログが表示されます。拒否すると、インポートは無効のままになり、ダイアログは再度表示されません。

150 150 

151 Claude Code はダイアログを表示して、共有プロジェクトにコミットされた他の人のファイルから保護します。`~/.claude/CLAUDE.md` や `~/.claude/rules/` などのユーザースコープメモリファイルは、自分で書いたファイルです。[Cowork](https://claude.com/product/cowork) セッションをデスクトップで実行する場合を除き、Claude Code はダイアログなしでそれらのインポートをロードし、残りの個人設定のように信頼します。151 Claude Code はダイアログを表示して、共有プロジェクトに他の人がコミットしたファイルから保護します。`~/.claude/CLAUDE.md` や `~/.claude/rules/` などのユーザースコープのメモリファイルは、自分で書いたファイルです。デスクトップでの [Cowork](https://claude.com/product/cowork) セッションを除き、Claude Code はダイアログなしでそれらのインポートをロードし、他の個人設定と同様に信頼します。

152 152 

153 デスクトップの Cowork セッションでは、Claude Code はユーザースコープファイル内のセッションの作業ディレクトリの外に解決されるパスを持つインポートをスキップし、ファイルの残りをロードします。これらのセッションでは、シンリンクまたはハードリンクである `~/.claude/CLAUDE.md` と、作業ディレクトリの外を指すシンリンクされた `~/.claude/rules/` ディレクトリまたはルールファイルもスキップします。153 デスクトップの Cowork セッションでは、Claude Code はユーザースコープファイル内のセッションの作業ディレクトリの外に解決されるパスを持つインポートをスキップし、ファイルの残りをロードします。これらのセッションでは、それ自体がシンボリックリンクまたはハードリンクである `~/.claude/CLAUDE.md` と、作業ディレクトリの外を指すシンボリックリンクされた `~/.claude/rules/` ディレクトリまたはルールファイルもスキップします。

154</Warning>154</Warning>

155 155 

156<h3 id="how-claude-md-files-load">156<h3 id="how-claude-md-files-load">


159 159 

160Claude Code は、現在の作業ディレクトリとそれより上のすべてのディレクトリから `CLAUDE.md` と `CLAUDE.local.md` をロードします。`foo/bar/` で Claude Code を実行すると、`foo/bar/CLAUDE.md`、`foo/CLAUDE.md`、およびそれらと一緒にある `CLAUDE.local.md` ファイルから指示をロードします。160Claude Code は、現在の作業ディレクトリとそれより上のすべてのディレクトリから `CLAUDE.md` と `CLAUDE.local.md` をロードします。`foo/bar/` で Claude Code を実行すると、`foo/bar/CLAUDE.md`、`foo/CLAUDE.md`、およびそれらと一緒にある `CLAUDE.local.md` ファイルから指示をロードします。

161 161 

162発見されたすべてのファイルは、互いにオーバーライドするのではなく、コンテキストに連結されます。ディレクトリツリー全体で、コンテンツはファイルシステムルートから作業ディレクトリまで順序付けられます。`foo/bar/` の例では、`foo/CLAUDE.md` は `foo/bar/CLAUDE.md` の前にコンテキストに表示されるため、Claude を起動した場所に近い指示が最後に読まれます。各ディレクトリ内で、`CLAUDE.local.md` は `CLAUDE.md` の後に追加されるため、個人的なメモはそのレベルで Claude が読む最後のものです。162発見されたすべてのファイルは、互いに上書きするのではなく、コンテキストに連結されます。ディレクトリツリー全体で、コンテンツはファイルシステムルートから作業ディレクトリまで順序付けられます。`foo/bar/` の例では、`foo/CLAUDE.md` は `foo/bar/CLAUDE.md` の前にコンテキストに表示されるため、Claude を起動した場所に近い指示が最後に読まれます。各ディレクトリ内で、`CLAUDE.local.md` は `CLAUDE.md` の後に追加されるため、個人的なメモはそのレベルで Claude が読む最後のものです。

163 163 

164Claude はまた、現在の作業ディレクトリの下のサブディレクトリで `CLAUDE.md` と `CLAUDE.local.md` ファイルを発見します。起動時にロードするのではなく、Claude がそれらのサブディレクトリ内のファイルを読むときに含まれます。164Claude はまた、現在の作業ディレクトリの下のサブディレクトリで `CLAUDE.md` と `CLAUDE.local.md` ファイルを発見します。起動時にロードするのではなく、Claude がそれらのサブディレクトリ内のファイルを読むときに含まれます。`.claude/worktrees/` の下にある worktree 内のファイルについては、[worktree でサブエージェントを分離する](/docs/ja/worktrees#isolate-subagents-with-worktrees) を参照してください。

165 165 

166大規模なモノレポで他のチームの CLAUDE.md ファイルが取得される場合は、[`claudeMdExcludes`](#exclude-specific-claude-md-files) を使用してそれらをスキップしてください。ルートおよびディレクトリごとの CLAUDE.md ファイルとルールの完全なレイアウトについては、[モノレポと大規模リポ](/docs/ja/large-codebases) を参照してください。166大規模なモノレポで他のチームの CLAUDE.md ファイルが取得される場合は、[`claudeMdExcludes`](#exclude-specific-claude-md-files) を使用してそれらをスキップしてください。ルートおよびディレクトリごとの CLAUDE.md ファイルとルールの完全なレイアウトについては、[モノレポと大規模リポジトリ](/docs/ja/large-codebases) を参照してください。

167 167 

168CLAUDE.md ファイル内のブロックレベル HTML コメント(`<!-- maintainer notes -->`)は、コンテンツが Claude のコンテキストに注入される前に削除されます。ファイルのコンテキストトークンを消費せずに、人間のメンテナーのためのメモを残すために使用してください。コードブロック内のコメントは保持されます。Read ツールで CLAUDE.md ファイルを直接開くと、コメントは表示されたままになります。168CLAUDE.md ファイル内のブロックレベル HTML コメント(`<!-- maintainer notes -->`)は、コンテンツが Claude のコンテキストに注入される前に削除されます。コンテキストトークンを消費せずに、人間のメンテナーのためのメモを残すために使用してください。コードブロック内のコメントは保持されます。Read ツールで CLAUDE.md ファイルを直接開くと、コメントは表示されたままになります。

169 169 

170<h4 id="load-from-additional-directories">170<h4 id="load-from-additional-directories">

171 追加ディレクトリからロードする171 追加ディレクトリからロードする

172</h4>172</h4>

173 173 

174`--add-dir` フラグは、メインの作業ディレクトリの外の追加ディレクトリに Claude がアクセスできるようにします。デフォルトでは、これらのディレクトリからのメモリファイルはロードされません。174`--add-dir` フラグは、メインの作業ディレクトリの外の追加ディレクトリに Claude がアクセスできるようにします。デフォルトでは、これらのディレクトリからの CLAUDE.md ファイルはロードされません。

175 175 

176追加ディレクトリからメモリファイルもロードするには、`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` 環境変数を設定してください。176追加ディレクトリからメモリファイルもロードするには、`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` 環境変数を設定してください。

177 177 


179CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config179CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

180```180```

181 181 

182インライン形式は、Bash または Zsh でそのロンチに対して変数を設定します。すべてのセッションで有効にするには、[環境変数を設定する](/docs/ja/env-vars#set-environment-variables) に示されているように `~/.claude/settings.json` の `env` ブロックに追加してください。182インライン形式は、Bash または Zsh でその 1 回の起動に対して変数を設定します。すべてのセッションで有効にするには、[環境変数を設定する](/docs/ja/env-vars#set-environment-variables) に示されているように `~/.claude/settings.json` の `env` ブロックに追加してください。

183 183 

184これは追加ディレクトリから `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md`、および `CLAUDE.local.md` をロードします。`CLAUDE.local.md` は [`--setting-sources`](/docs/ja/cli-reference) から `local` を除外する場合はスキップされます。184これは追加ディレクトリから `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md`、および `CLAUDE.local.md` をロードします。`CLAUDE.local.md` は [`--setting-sources`](/docs/ja/cli-reference) から `local` を除外する場合はスキップされます。

185 185 


209│ └── security.md # Security requirements209│ └── security.md # Security requirements

210```210```

211 211 

212[`paths` frontmatter](#path-specific-rules) のないルールは、`.claude/CLAUDE.md` と同じ優先度で起動時にロードされます。212[`paths` フロントマター](#path-specific-rules) のないルールは、`.claude/CLAUDE.md` と同じ優先順位で起動時にロードされます。

213 213 

214[`--setting-sources`](/docs/ja/cli-reference) から `project` を除外する場合、プロジェクトルールはスキップされます。v2.1.211 より前では、パススコープ付きルールやネストされた `.claude/rules/` ディレクトリ内のルールを含む、オンデマンドでロードするルールは、`project` が除外されている場合でもロードされました。214[`--setting-sources`](/docs/ja/cli-reference) から `project` を除外する場合、プロジェクトルールはスキップされます。v2.1.211 より前では、パススコープ付きルールやネストされた `.claude/rules/` ディレクトリ内のルールを含む、オンデマンドでロードするルールは、`project` が除外されている場合でもロードされました。

215 215 


217 パススコープ付きルール217 パススコープ付きルール

218</h4>218</h4>

219 219 

220ルールは YAML frontmatter と `paths` フィールドを使用して特定のファイルにスコープできます。これらの条件付きルールは、指定されたパターンに一致するファイルで Claude が作業するときにのみ適用されます。220ルールは YAML フロントマターと `paths` フィールドを使用して特定のファイルにスコープできます。これらの条件付きルールは、指定されたパターンに一致するファイルで Claude が作業するときにのみ適用されます。

221 221 

222```markdown theme={null}222```markdown theme={null}

223---223---


232- Include OpenAPI documentation comments232- Include OpenAPI documentation comments

233```233```

234 234 

235`paths` フィールドのないルールは無条件にロードされ、すべてのファイルに適用されます。パススコープ付きルールは、すべてのツール使用時ではなく、Claude がパターンに一致するファイルを読むときにトリガーされます。v2.1.198 の時点で、マッチングは Claude がシンリンクされたパスを通じてファイルに到達するときにも機能します。例えば、プロジェクトディレクトリへのシンリンクされたチェックアウト。235`paths` フィールドのないルールは無条件にロードされ、すべてのファイルに適用されます。パススコープ付きルールは、すべてのツール使用時ではなく、Claude がパターンに一致するファイルを読むときにトリガーされます。マッチングは、Claude がプロジェクトディレクトリへのシンボリックリンクされたパスを通じてファイルに到達する場合(例えば、シンボリックリンクされたチェックアウト)にも機能します。

236 236 

237`paths` フィールドでグロブパターンを使用して、拡張子、ディレクトリ、またはそれらの組み合わせでファイルをマッチさせてください。237`paths` フィールドでグロブパターンを使用して、拡張子、ディレクトリ、またはそれらの組み合わせでファイルをマッチさせてください。

238 238 


258 258 

259Claude Code は予算を超えるパターンを展開されていない状態で使用し、その文字通りのブレースはファイルをマッチさせません。v2.1.217 より前では、多くのブレースグループを持つ `paths` 値は起動時に CLI をスタールまたはクラッシュさせました。259Claude Code は予算を超えるパターンを展開されていない状態で使用し、その文字通りのブレースはファイルをマッチさせません。v2.1.217 より前では、多くのブレースグループを持つ `paths` 値は起動時に CLI をスタールまたはクラッシュさせました。

260 260 

261グロブ構文は `[` をブラケット式(`[abc]` など)の開始として扱います。`photos [2024/**` のようにブラケット式として読むことができない `[` を持つパターンは無効です。何もマッチせず、ルールの他のパターンは機能し続けます。ファイル名内のリテラル `[` をマッチさせるには、`photos \[2024/**` のようにエスケープしてください。v2.1.207 より前では、1 つの無効なパターンは、マッチングなしではなく、ルールが評価されたすべてのファイルに対して Read ツールを失敗させました。261グロブ構文は `[` をブラケット式(`[abc]` など)の開始として扱います。`photos [2024/**` のようにブラケット式として読むことができない `[` を持つパターンは無効です。何もマッチせず、ルールの他のパターンは機能し続けます。ファイル名内のリテラル `[` をマッチさせるには、`photos \[2024/**` のようにエスケープしてください。v2.1.207 より前では、1 つの無効なパターンは、何もマッチしないのではなく、ルールが評価されたすべてのファイルに対して Read ツールを失敗させました。

262 262 

263<h4 id="rules-frontmatter-reference">263<h4 id="rules-frontmatter-reference">

264 ルール frontmatter リファレンス264 ルールのフロントマターリファレンス

265</h4>265</h4>

266 266 

267YAML [frontmatter](/docs/ja/glossary#frontmatter) を使用してルールを設定します。`---` マーカーの間のファイルの上部。`paths` は Claude Code が読む唯一のフィールドです。他のフィールドはエラーなしで無視されます。Claude Code はルールをコンテキストにロードする前に frontmatter を削除します。267ファイル先頭の `---` マーカーの間に YAML [フロントマター](/docs/ja/glossary#frontmatter) を記述してルールを設定します。`paths` は Claude Code がルールから読む唯一のフィールドです。他のフィールドはエラーなしで無視されます。Claude Code はルールをコンテキストにロードする前にフロントマターを削除します。

268 268 

269| フィールド | 必須 | 説明 |269| フィールド | 必須 | 説明 |

270| :- | :- | :- |270| :- | :- | :- |

271| `paths` | いいえ | [ルールを一致するファイルにスコープする](#path-specific-rules) グロブパターン。YAML リストまたはカンマ区切り文字列を受け入れます |271| `paths` | いいえ | [ルールを一致するファイルにスコープする](#path-specific-rules) グロブパターン。YAML リストまたはカンマ区切り文字列を受け入れます |

272 272 

273マーカー間の YAML が解析されない場合、Claude Code は frontmatter を無視し、`paths` がないかのようにルールをロードします。`claude --debug` を実行してパース エラーを確認してください。273マーカー間の YAML が解析できない場合、Claude Code はフロントマターを無視し、`paths` がないかのようにルールをロードします。`claude --debug` を実行して解析エラーを確認してください。

274 274 

275<h4 id="share-rules-across-projects-with-symlinks">275<h4 id="share-rules-across-projects-with-symlinks">

276 シンリンクを使用してプロジェクト全体でルールを共有する276 シンボリックリンクを使用してプロジェクト間でルールを共有する

277</h4>277</h4>

278 278 

279`.claude/rules/` ディレクトリはシンリンクをサポートしているため、共有ルールセットを保持し、複数のプロジェクトにリンクできます。循環シンリンクは検出され、適切に処理されます。279`.claude/rules/` ディレクトリはシンボリックリンクをサポートしているため、共有ルールセットを保持し、複数のプロジェクトにリンクできます。循環シンボリックリンクは検出され、適切に処理されます。

280 280 

281Claude Code は、ターゲットが作業ディレクトリの外にあるシンリンクを [外部インポート](#import-additional-files) のように扱います。リンクされたルールは、プロジェクトの外部インポートを承認するまでロードされず、その後は [`paths` フィールド](#path-specific-rules) のないものだけがロードされます。Claude Code は、プロジェクトメモリファイルが `@path` でディレクトリの外のファイルをインポートするときではなく、シンリンク単独ではなく、その承認を求めます。承認なしで共有ルールをロードするには、[`~/.claude/rules/`](#user-level-rules) に保持してください。ここで、マシン上のすべてのプロジェクトに適用されます。281Claude Code は、ターゲットが作業ディレクトリの外にあるシンボリックリンクを [外部インポート](#import-additional-files) のように扱います。リンクされたルールは、プロジェクトの外部インポートを承認するまでロードされず、その後は [`paths` フィールド](#path-specific-rules) のないものだけがロードされます。Claude Code がこの承認を求めるのは、プロジェクトのメモリファイルが `@path` で作業ディレクトリ外のファイルをインポートする場合のみで、シンボリックリンクだけでは求めません。承認なしで共有ルールをロードするには、[`~/.claude/rules/`](#user-level-rules) に保持してください。そこではマシン上のすべてのプロジェクトに適用されます。

282 282 

283この例は、共有ディレクトリと個別ファイルの両方をリンクします。283この例は、共有ディレクトリと個別ファイルの両方をリンクします。

284 284 


287ln -s ~/company-standards/security.md .claude/rules/security.md287ln -s ~/company-standards/security.md .claude/rules/security.md

288```288```

289 289 

290`.claude/rules/` または `CLAUDE.md` シンリンクを `\\server\share` のような UNC 共有またはパス `/net` または `/Network` の下のネットワークパスに指す場合、リンクされた指示はロードされません。Claude Code はリンクに従いません。そのようなパスを検索すると、それが名前を付けるホストに接続できるためです。`\\wsl$` パスはネットワークパスとしてカウントされません。290`.claude/rules/` または `CLAUDE.md` のシンボリックリンクを、UNC 共有 `\\server\share` や `/net` または `/Network` の下のパスなどのネットワークパスに向けた場合、リンクされた指示はロードされません。そのようなパスを検索すると、その名前が示すホストに接続する可能性があるため、Claude Code はリンクをたどりません。`\\wsl$` パスはネットワークパスとしてカウントされません。

291 291 

292<h4 id="user-level-rules">292<h4 id="user-level-rules">

293 ユーザーレベルルール293 ユーザーレベルルール


301└── workflows.md # Your preferred workflows301└── workflows.md # Your preferred workflows

302```302```

303 303 

304Claude Code はプロジェクトルールの前にユーザーレベルルールをロードするため、プロジェクトルールはユーザールールより後に Claude のコンテキストに表示されます。どちらのセットも他をオーバーライドしません。ユーザールールとプロジェクトルールが矛盾する場合、Claude はどちらかに従う可能性があるため、2 つを一貫性のあるものに保ってください。304Claude Code はプロジェクトルールの前にユーザーレベルルールをロードするため、プロジェクトルールはユーザールールより後に Claude のコンテキストに表示されます。どちらのセットも他方を上書きしません。ユーザールールとプロジェクトルールが矛盾する場合、Claude はどちらかに従う可能性があるため、2 つを一貫性のあるものに保ってください。

305 305 

306<h3 id="manage-claude-md-for-large-teams">306<h3 id="manage-claude-md-for-large-teams">

307 大規模なチーム向けに CLAUDE.md を管理する307 大規模なチーム向けに CLAUDE.md を管理する


331 331 

332**スコープ**: マシン上のすべての Claude Code セッション、すべてのリポジトリで。リポジトリ固有のガイダンスについては、プロジェクト CLAUDE.md をコミットしてください。332**スコープ**: マシン上のすべての Claude Code セッション、すべてのリポジトリで。リポジトリ固有のガイダンスについては、プロジェクト CLAUDE.md をコミットしてください。

333 333 

334**優先度**: 管理された CLAUDE.md ファイルと同じ。ユーザーおよびプロジェクト CLAUDE.md の前にロードされます。334**優先順位**: 管理された CLAUDE.md ファイルと同じ。ユーザーおよびプロジェクト CLAUDE.md の前にロードされます。

335 335 

336**どこで尊重されるか**: 管理および ポリシー設定のみ。ユーザー、プロジェクト、またはローカル設定で `claudeMd` を設定しても効果がありません。336**どこで尊重されるか**: 管理設定およびポリシー設定のみ。ユーザー、プロジェクト、またはローカル設定で `claudeMd` を設定しても効果がありません。

337 337 

338以下の例は、管理設定ファイルに直接動作指示を追加します。338以下の例は、管理設定ファイルに直接動作指示を追加します。

339 339 


374}374}

375```375```

376 376 

377パターンは、グロブ構文を使用して絶対ファイルパスに対してマッチされます。`claudeMdExcludes` は任意の [設定レイヤー](/docs/ja/settings#where-settings-live) で設定できます。ユーザー、プロジェクト、ローカル、または管理ポリシー。配列はレイヤー全体でマージされます。377パターンは、グロブ構文を使用して絶対ファイルパスに対してマッチされます。`claudeMdExcludes` は任意の [設定レイヤー](/docs/ja/settings#where-settings-live)(ユーザー、プロジェクト、ローカル、または管理ポリシー)で設定できます。配列はレイヤー全体でマージされます。

378 378 

379[シンリンク](#share-rules-across-projects-with-symlinks) を通じて到達するルールファイルを除外するには、ファイルまたはそのディレクトリがリンクであるかどうかに関わらず、いずれかのパスに対してパターンを記述してください。`.claude/rules/` の下のファイルのパスまたはそのリンクターゲット。どちらかのパスに一致するパターンはファイルを除外します。v2.1.239 より前では、リンクターゲットに一致するパターンのみがファイルを除外しました。379[シンボリックリンク](#share-rules-across-projects-with-symlinks) を通じて到達するルールファイルを除外するには、ファイルとそのディレクトリのどちらがリンクであっても、`.claude/rules/` の下のファイルのパスまたはそのリンクターゲットのいずれかのパスに対してパターンを記述してください。どちらかのパスに一致するパターンはファイルを除外します。v2.1.239 より前では、リンクターゲットに一致するパターンのみがファイルを除外しました。

380 380 

381管理ポリシー CLAUDE.md ファイルは除外できません。これにより、個別の設定に関わらず、組織全体の指示が常に適用されることが保証されます。381管理ポリシー CLAUDE.md ファイルは除外できません。これにより、個別の設定に関わらず、組織全体の指示が常に適用されることが保証されます。

382 382 


538 自動メモリを有効または無効にする538 自動メモリを有効または無効にする

539</h3>539</h3>

540 540 

541自動メモリはデフォルトで有効です。切り替えるには、セッションで `/memory` を開き、自動メモリトグルを使用します。これにより `autoMemoryEnabled` が `~/.claude/settings.json` のユーザー設定に保存されます。単一のプロジェクトに対してオフにするには、そのプロジェクトの設定で `autoMemoryEnabled` を設定します。541自動メモリはローカルセッションではデフォルトで有効です。[Claude Tag](https://claude.com/docs/claude-tag/overview) セッション以外では、[セルフホスト環境](/docs/ja/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)のセッションはデフォルトで自動メモリがオフの状態で実行されます。

542 

543切り替えるには、セッションで `/memory` を開き、自動メモリトグルを使用します。これにより `autoMemoryEnabled` が `~/.claude/settings.json` のユーザー設定に保存されます。単一のプロジェクトに対してオフにするには、そのプロジェクトの設定で `autoMemoryEnabled` を設定します。

542 544 

543```json theme={null}545```json theme={null}

544{546{

model-config.md +637 −327

Details

4 4 

5# モデル設定5# モデル設定

6 6 

7> Claude Code のモデル設定について学習します。`opusplan` などのモデルエイリアスを含みます7> Claude Code が使用するモデル、effort レベル、拡張コンテキスト、自動圧縮ウィンドウを設定します

8 8 

9<h2 id="available-models">9<h2 id="available-models">

10 利用可能なモデル10 利用可能なモデル

11</h2>11</h2>

12 12 

13Claude Code の `model` 設定では、以下のいずれかを設定できます。13Claude Code の `model` 設定には、次のいずれかを設定できます。

14 14 

15* **モデルエイリアス**15* **モデルエイリアス**

16* **モデル名**16* **モデル名**

17 * Anthropic API:完全な **[モデル名](https://platform.claude.com/docs/ja/about-claude/models/overview)**17 * Anthropic API: 完全な **[モデル名](https://platform.claude.com/docs/en/about-claude/models/overview)**

18 * Amazon Bedrock:推論プロファイル ARN18 * Amazon Bedrock: 推論プロファイル ARN

19 * Microsoft Foundry:デプロイメント名19 * Microsoft Foundry: デプロイ名

20 * Google Cloud の Agent Platform:バージョン名20 * Google Cloud's Agent Platform: バージョン名

21 21 

22どのモデルと努力レベルがさまざまな種類の作業に適しているかについてのガイダンスについては、ブログの [Claude Code での Claude モデルと努力レベルの選択](https://claude.com/blog/claude-model-and-effort-level-in-claude-code) を参照してください。22さまざまな種類の作業にどのモデルと effort レベルが適しているかについては、ブログの [Choosing a Claude model and effort level in Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code) を参照してください。

23 23 

24<Note>24<Note>

25 `ANTHROPIC_BASE_URL` は、リクエストの送信先を変更しますが、どのモデルが応答するかは変更しません。Claude を LLM ゲートウェイ経由でルーティングするには、[LLM ゲートウェイ](/docs/ja/llm-gateway)を参照してください。25 `ANTHROPIC_BASE_URL` はリクエストの送信先を変更するものであり、どのモデルが応答するかを変更するものではありません。LLM ゲートウェイ経由で Claude にルーティングするには、[LLM ゲートウェイ](/docs/ja/llm-gateway)を参照してください。

26</Note>26</Note>

27 27 

28<h3 id="model-aliases">28<h3 id="model-aliases">

29 モデルエイリアス29 モデルエイリアス

30</h3>30</h3>

31 31 

32モデルエイリアスは、正確なバージョン番号を覚えることなくモデル設定を選択するための便利な方法を提供します。32モデルエイリアスを使用すると、正確なバージョン番号を覚えなくてもモデル設定を選択できます。

33 33 

34| モデルエイリアス | 動作 |34| モデルエイリアス | 動作 |

35| - | - |35| - | - |

36| **`default`** | 特別な値で、モデルオーバーライドをクリアし、アカウントタイプに応じた推奨モデルに戻すか、管理者が設定した場合は[組織デフォルトモデル](#organization-default-model)に戻します。それ自体はモデルエイリアスではありません |36| **`default`** | モデルの上書きをすべてクリアし、[アカウントのランタイムデフォルト](#default-model-setting)に戻す特別な値。それ自体はモデルエイリアスではありません |

37| **`best`** | 組織がアクセスできる場合は Fable 5 を使用し、そうでない場合は最新の Opus モデルを使用 |37| **`best`** | Fable が利用可能な場合は [`fable` エイリアスが解決されるモデル](#fable-alias-resolution)を使用し、それ以外の場合は `opus` と同じモデルを使用します |

38| **`fable`** | 最も難しく、実行時間が長いタスク用に Claude Fable 5 を使用 |38| **`fable`** | 最も難しく長時間実行されるタスク向けに、[プロバイダーの Fable モデル](#fable-alias-resolution)を使用します |

39| **`sonnet`** | 日常的なコーディングタスク用に最新の Sonnet モデルを使用 |39| **`sonnet`** | 日常的なコーディングタスク向けに最新の Sonnet モデルを使用します |

40| **`opus`** | 複雑な推論タスク用に最新の Opus モデルを使用 |40| **`opus`** | 複雑な推論タスク向けに最新の Opus モデルを使用します |

41| **`haiku`** | シンプルなタスク用に高速で効率的な Haiku モデルを使用 |41| **`haiku`** | シンプルなタスク向けに高速で効率的な Haiku モデルを使用します |

42| **`sonnet[1m]`** | 長いセッション用に [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/ja/build-with-claude/context-windows#context-window-sizes-by-model) を備えた Sonnet を使用。`sonnet` がすでにネイティブの 1M ウィンドウを持つ Sonnet 5 に解決される場合は効果がありません。[LLM ゲートウェイ](/docs/ja/llm-gateway)経由の場合は、Sonnet 5 の 1M ウィンドウを選択します |42| **`sonnet[1m]`** | 長いセッション向けに [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)を備えた Sonnet を使用します。`sonnet` がネイティブで 1M ウィンドウを持つ Sonnet 5.5 または Sonnet 5 にすでに解決される場合は効果がありません |

43| **`opus[1m]`** | 長いセッション用に [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/ja/build-with-claude/context-windows#context-window-sizes-by-model) を備えた Opus を使用 |43| **`opus[1m]`** | 長いセッション向けに [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)を備えた Opus を使用します |

44| **`opusplan`** | Plan Mode 中は `opus` を使用し、実行中は `sonnet` に自動的に切り替わる特別なモード |44| **`opusplan`** | plan モードでは `opus` を使用し、実行時には `sonnet` に切り替える特別なモード |

45 45 

46`opus` と `sonnet` エイリアスが解決するバージョンは、プロバイダーによって異なります。46`opus` および `sonnet` エイリアスが解決されるバージョンは、プロバイダーによって異なります。

47 47 

48| プロバイダー | `opus` | `sonnet` |48| プロバイダー | `opus` | `sonnet` |

49| :- | :- | :- |49| :- | :- | :- |

50| Anthropic API | Opus 4.8 | Sonnet 5 |50| Anthropic API | Opus 5.5 | Sonnet 5.5 |

51| [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) | Opus 4.8 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock、Google Cloud の Agent Platform | Opus 4.8 | Sonnet 4.5 |52| Amazon Bedrock、Google Cloud's Agent Platform | Opus 5.5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55エイリアスが古いモデルに解決される場合、より新しいモデルは完全なモデル名を明示的に選択するか、`ANTHROPIC_DEFAULT_OPUS_MODEL` または `ANTHROPIC_DEFAULT_SONNET_MODEL` を設定することで利用可能です。55<span id="fable-alias-resolution" />

56 56 

57v2.1.207 より前では、`opus` は Claude Platform on AWS では Opus 4.7 に解決され、Amazon Bedrock および Google Cloud の Agent Platform では Opus 4.6 に解決されました。57`ANTHROPIC_DEFAULT_FABLE_MODEL` を設定しない限り、`fable` エイリアスは Fable 5.1 に解決されます。ただし [Claude apps gateway](/docs/ja/claude-apps-gateway) のセッションでは、`fable` と `best` は Fable 5 に解決されます。

58 58 

59エイリアスはプロバイダーの推奨バージョンを指し、時間とともに更新されます。特定のバージョンに固定するには、完全なモデル名(例:`claude-opus-4-8`)を使用するか、`ANTHROPIC_DEFAULT_OPUS_MODEL` などの対応する環境変数を設定します。59`claude-fable-5-1` を提供するように設定されていないゲートウェイは、そのモデルへのリクエストを拒否します。Fable 5.1 を提供しているゲートウェイ経由で使用するには、`/model claude-fable-5-1` で選択してください。

60 

61エイリアスが古いモデルに解決される場合、完全なモデル名を明示的に選択するか、`ANTHROPIC_DEFAULT_OPUS_MODEL` または `ANTHROPIC_DEFAULT_SONNET_MODEL` を設定することで、新しいモデルを利用できます。

62 

63以前のバージョンでは、これらのエイリアスはより古いモデルに解決されます。各エイリアスがどのバージョンで変更されたかについては、[バージョン履歴](#version-history)を参照してください。

64 

65エイリアスはプロバイダーの推奨バージョンを指しており、時間の経過とともに更新されます。特定のバージョンに固定するには、完全なモデル名(例: `claude-opus-5-5`)を使用するか、`ANTHROPIC_DEFAULT_OPUS_MODEL` などの対応する環境変数を設定してください。

60 66 

61<Note>67<Note>

62 Sonnet 5 には Claude Code v2.1.197 以降が必要です。Opus 4.8 には v2.1.154 以降が必要です。`claude update` を実行してアップグレードしてください。68 Sonnet 5.5 には Claude Code v2.1.284 以降、Opus 5.5 には v2.1.280 以降が必要です。古いバージョンからこれらのモデルへのリクエストが失敗する場合は、[Claude Code does not support this model](/docs/ja/errors#claude-code-does-not-support-this-model) を参照してください。アップグレードするには `claude update` を実行します。

63</Note>69</Note>

64 70 

65<h3 id="work-with-fable-5">71<h3 id="work-with-fable">

66 Fable 5 を使用する72 Fable を使用する

67</h3>73</h3>

68 74 

69[Claude Fable 5](https://platform.claude.com/docs/ja/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) は Claude Code で最も高性能なモデルで、1 回のセッションより大きなタスクに適しています。長い自律的なセッションを維持し、行動する前に調査し、より小さなモデルよりも頻繁に作業を検証します。75[Claude Fable 5.1](https://platform.claude.com/docs/en/about-claude/models/overview) と Claude Fable 5 は Claude Code で最も高性能なモデルであり、1 回の作業時間に収まらない規模のタスクに適しています。長時間の自律的なセッションを維持し、行動する前に調査を行い、小規模なモデルよりも頻繁に自身の作業を検証します。Fable 5.1 は新しいリリースです。

76 

77どちらの Fable モデルも、いずれのプランやプロバイダーにおいてもアカウント種別のデフォルトではありません。明示的に選択してください。

78 

79* **Fable 5.1**: `/model fable` を実行するか、`claude --model fable` で起動します。エイリアスが Fable 5 に解決される [Claude apps gateway](/docs/ja/claude-apps-gateway) のセッションでは、代わりに `/model claude-fable-5-1` を実行します。

80* **Fable 5**: モデル ID で選択します。Anthropic API では、`/model claude-fable-5` を実行するか、`claude --model claude-fable-5` で起動します。その他のプロバイダーでは、プロバイダーの Fable 5 モデル ID を使用するか、`ANTHROPIC_DEFAULT_FABLE_MODEL` で[固定](#pin-models-for-third-party-deployments)します。

70 81 

71Fable 5 はデフォルトモデルではありません。`/model fable` で選択してください。安全性分類器がフラグを立てるリクエスト(最も多くの場合、サイバーセキュリティと生物学の領域)は、[自動モデルフォールバック](#automatic-model-fallback)をトリガーします。82Anthropic API に直接接続していて、ユーザー設定にモデルとして `claude-fable-5` または `claude-fable-5[1m]` が保存されている場合(たとえば v2.1.257 より前に `/model` ピッカーで Fable を選択した場合)、v2.1.257 以降を初めて実行したときに、Claude Code はその保存値を `fable` または `fable[1m]` エイリアスに変更します。起動時のモデル行には `(auto-updated)` が一度だけ表示されます。プロジェクト設定、ローカル設定、または管理設定にある `claude-fable-5` の値はそのまま残ります。

72 83 

73Fable 5 を最大限に活用するには:84Fable モデルの安全性分類器によって警告されたリクエスト(主にサイバーセキュリティや生物学の分野)は、[自動モデルフォールバック](#automatic-model-fallback)をトリガーします。

74 85 

75* **結果を説明し、ステップではなく**:望む結果を渡し、パスを計画させます。その結果が成立するまで作業を続けさせるには、[目標を設定](/docs/ja/goal)してください。86Fable を最大限に活用するには:

76* **曖昧な問題を渡す**:根本原因の調査、障害のデバッグ、アーキテクチャの決定は、追加の調査と検証が役に立つ場所です。87 

77* **検証リマインダーをスキップ**:独自の作業を検証するため、テストまたはチェックのリマインダーは通常不要です。88* **手順ではなく結果を説明する**: 望む結果を伝え、その道筋は Fable に計画させます。その結果に向けて作業を続けさせるには、[ゴールを設定](/docs/ja/goal)します。

78* **より大きなタスクをサイズアップ**:通常は複数の部分に分割する作業を与えます。長いセッションを保持し、スレッドを失いません。89* **曖昧な問題を任せる**: 根本原因の調査、障害のデバッグ、アーキテクチャの決定などは、追加の調査と検証が効果を発揮する場面です。

90* **検証のリマインダーを省く**: Fable は少ない指示で自身の作業を検証するため、テストや確認を促すリマインダーは通常不要です。

91* **より大きなタスクを任せる**: 通常なら分割するような作業を与えてください。Fable は長いセッションでも文脈を見失いません。

79 92 

80<Note>93<Note>

81 Fable 5 には Claude Code v2.1.170 以降が必要です。古いバージョンではモデルピッカーに Fable 5 が表示されず、選択できません。`claude update` を実行してアップグレードしてください。Fable 5 は [ゼロデータ保持](/docs/ja/zero-data-retention) では利用できません。ここで `/model` ピッカーはそれを省略するか、無効として表示します。94 Fable 5.1 には Claude Code v2.1.257 以降が必要です。古いバージョンからのリクエストが失敗する場合は、[Claude Code does not support this model](/docs/ja/errors#claude-code-does-not-support-this-model) を参照してください。アップグレードするには `claude update` を実行します。ゼロデータ保持での利用可否については、[ZDR でのモデルの利用可否](/docs/ja/zero-data-retention#model-availability-under-zdr)を参照してください。

82</Note>95</Note>

83 96 

97Anthropic API では、[`availableModels`](#restrict-model-selection) または[組織のモデル制限](#organization-model-restrictions)によって除外されない限り、Fable モデルは `/model` ピッカーに表示されます。組織が Fable をまったく使用できない場合(たとえば[ゼロデータ保持](/docs/ja/zero-data-retention#model-availability-under-zdr)の下にある場合)、その行はグレーアウトされた状態でピッカーに残り、理由が注記されます。

98 

99<h4 id="fable-and-usage-credits">

100 Fable と使用クレジット

101</h4>

102 

103プランやシート階層によっては、Fable の使用量がプランに含まれる上限から差し引かれるのではなく、[使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)に課金される場合があります。その場合、`/model` ピッカーの Fable の行に「Requires usage credits」と表示されます。使用クレジットを管理するには、[サブスクリプションに使用クレジットを追加する](/docs/ja/costs#add-usage-credits-to-your-subscription)を参照してください。

104 

105対話セッションでは、Fable のリクエストが使用クレジットに課金される前に、Claude Code が同意プロンプトを表示します。組織請求を利用している Enterprise プランのメンバーには、このプロンプトは表示されません。使用クレジットを使って Fable で続行するか、デフォルトモデルに切り替えることができます。プロンプトを閉じることもできます。

106 

107* `/model` で Fable モデルを選択した場合は、現在のモデルが維持されます。

108* セッションの途中では、Claude Code はデフォルトモデルでそのターンを続行します。

109 

110使用クレジットを使って Fable で続行することを選択すると、Claude Code はそれ以降プロンプトを表示しません。

111 

112[Remote Control](/docs/ja/remote-control) が接続されているセッション、[バックグラウンドセッション](/docs/ja/agent-view)、または[エージェントチーム](/docs/ja/agent-teams)のチームメイトのセッションでは、ターミナルの前に誰もいない可能性があるため、Claude Code はセッション途中の同意プロンプトを [`dialogExpiry`](/docs/ja/settings-reference#dialogexpiry) の期限(デフォルトは 5 分)まで保持します。期限までに誰も応答しなかった場合、Claude Code はリクエストを送信せずにターンを終了し、トランスクリプトに通知を追加します。この通知は Remote Control クライアントにも表示されます。モデルの選択は変更されず、次のメッセージで Claude Code は再度同意を求めます。

113 

114プロンプトが待機している間にできることは、セッションによって異なります。

115 

116* Remote Control が接続されている場合やチームメイトのセッションでは、ターミナルで任意のキーを押すと期限がキャンセルされ、Claude Code は応答を待ちます。

117* バックグラウンドセッションでは、期限までに応答してください。

118* ターミナルで誰かが入力する前にリモートクライアントから新しいメッセージを送信した場合、Claude Code は同様にターンを終了し、新しいメッセージが次のターンを開始します。ターミナルで誰かが入力した後は、Claude Code は応答を待ち続け、新しいメッセージはその後ろにキューイングされます。

119 

120別のアプリケーションが [Agent SDK](/docs/ja/agent-sdk/overview) を通じてホストしているセッションでは、プロンプトを表示するかどうかはそのアプリケーション次第です。プロンプトが表示され、同じ [`dialogExpiry`](/docs/ja/settings-reference#dialogexpiry) の期限までに誰も応答しなかった場合、Claude Code はリクエストを送信せずにターンを終了します。

121 

122`-p` フラグを使用した[非対話モード](/docs/ja/headless)や、プロンプトを表示しない Agent SDK アプリケーションでは、Claude Code は同意を求めません。そこで Fable のリクエストが使用クレジットに課金される場合、Claude Code は確認なしで課金します。

123 

84<h3 id="setting-your-model">124<h3 id="setting-your-model">

85 モデルの設定125 モデルの設定

86</h3>126</h3>

87 127 

88モデルは、優先度順に複数の方法で設定できます。128モデルはいくつかの方法で設定できます。以下は優先順位の高い順です。

129 

1301. **セッション中**: `/model <alias|name>` を使用してすぐに切り替えるか、引数なしで `/model` を実行してピッカーを開きます。[Claude Code が切り替えの確認を求める場合](/docs/ja/prompt-caching#switching-models)を参照してください

1312. **起動時**: `claude --model <alias|name>` で起動します

1323. **環境変数**: `ANTHROPIC_MODEL=<alias|name>` を設定します

1334. **設定**: 設定ファイルの `model` フィールドで永続的に設定します

1345. **[新しいセッションのデフォルト](#set-a-default-model-for-new-sessions)**: `ANTHROPIC_DEFAULT_MODEL=<alias|name>` を設定します

135 

136`/model` は、ユーザー設定の `model` フィールドに書き込むことで、選択内容を新しいセッションのデフォルトとして保存します。ピッカーでは次のキーを使用します。

137 

138* `Enter`: モデルを切り替え、デフォルトとして保存します

139* `s`: このセッションのみモデルを切り替え、デフォルトは変更しません。別のキーを使用するには、[`modelPicker:thisSessionOnly`](/docs/ja/keybindings#model-picker-actions) を再割り当てします

140 

141`/model <name>` を直接入力した場合は、`Enter` と同じ動作になります。このセッションのみ切り替えるには、`/model` でピッカーを開き、そのモデルの行で `s` を押します。

89 142 

901. **セッション中**:`/model <alias|name>` を使用してセッション中にモデルを切り替えるか、引数なしで `/model` を実行してピッカーを開きます。ピッカーは、会話に以前の出力がある場合に確認を求めます。次の応答がキャッシュされたコンテキストなしで完全な履歴を再読み込みするためです143Enterprise プランで claude.ai アカウントでログインしており、`/model` でデフォルトを保存した場合、Claude Code はその選択をアカウントにも記録します。これには Claude Code v2.1.280 以降が必要です。

912. **起動時**:`claude --model <alias|name>` で起動

923. **環境変数**:`ANTHROPIC_MODEL=<alias|name>` を設定

934. **設定**:設定ファイルで `model` フィールドを使用して永続的に設定

94 144 

95v2.1.153 以降では、`/model` はあなたの選択をデフォルトとして新しいセッションに保存し、ユーザー設定の `model` フィールドに書き込みます。ピッカーでは以下のようになります。145* 管理者が[組織のデフォルトモデル](#organization-default-model)を設定していない場合、[Default オプション](#default-model-setting)は記録されたモデルに解決されることがあり、その場合はピッカーの Default 行にそのモデル名が表示されます。

146* [モデル制限](#restrict-model-selection)によって記録されたモデルが除外されている場合、またはそのモデルがアカウントで利用できない場合で、かつ管理者が組織のデフォルトモデルを設定していない場合、Default オプションは何も記録されていないかのように解決されます。

147* `/model` で Default または `opusplan` を選択した場合、記録された選択は変更されません。

96 148 

97* `Enter`:モデルを切り替えてデフォルトとして保存149`/model` でモデルを切り替えると、その切り替えは[メインの会話のモデルを継承するサブエージェント](/docs/ja/sub-agents#choose-a-model)にも反映されます。Claude がサブエージェントを起動する際、Claude Code はセッションで使用しているモデルからそのモデルを解決するためです。Claude が調査やテスト実行をサブエージェントに委任する前に Opus に切り替えると、その作業も Opus で実行されます。カスタムサブエージェントを小さなモデルのままにするには、その定義で `model` を設定してください。

98* `s`:このセッションのみモデルを切り替え

99 150 

100`/model <name>` を直接入力すると、`Enter` のように動作します。[非インタラクティブモード](/docs/ja/headless)で `/model` を使用して設定されたモデルは、`-p` フラグで現在のセッションにのみ適用され、デフォルトとして保存されません。プロジェクトおよび管理設定は引き続き優先され、次の起動時に再度適用されます。管理者が設定した[組織デフォルトモデル](#organization-default-model)も次の起動時に再度適用されます。151`-p` フラグを使用した[非対話モード](/docs/ja/headless)で `/model` によってモデルを設定した場合、選択は現在のセッションにのみ適用され、デフォルトとしては保存されません。このモードでの `/model` には Claude Code v2.1.205 以降が必要です。プロジェクト設定と管理設定は引き続き優先され、次回の起動時に再適用されます。管理者がユーザーの選択を上書きするように設定した[組織のデフォルトモデル](#organization-default-model)も、次回の起動時に再適用されます。

101 152 

102v2.1.144 から v2.1.152 では、`/model` は現在のセッションにのみ適用され、ピッカーで `d` を押すとデフォルトが保存されました。153v2.1.144 から v2.1.152 では、`/model` は現在のセッションにのみ適用され、ピッカーで `d` を押すとデフォルトが保存されていました。

103 154 

104`--model` フラグと `ANTHROPIC_MODEL` 環境変数は、それらで起動したセッションにのみ適用されます。異なるターミナルで異なるモデルを同時に実行するには、`/model` で切り替えるのではなく、各ターミナルを独自の `--model` フラグで起動します。155`--model` フラグと `ANTHROPIC_MODEL` 環境変数は、それらを指定して起動したセッションにのみ適用されます。異なるターミナルで異なるモデルを同時に実行するには、`/model` で切り替えるのではなく、それぞれ独自の `--model` フラグを指定して起動してください。

105 156 

106`/model` ピッカーの価格は、Claude Code が Anthropic API と通信する場合、直接または [LLM ゲートウェイ](/docs/ja/llm-gateway) を通じてそれをプロキシする場合に表示され、行の価格はその行が選択するモデルの価格です。Amazon Bedrock などの [サードパーティプロバイダー](/docs/ja/third-party-integrations) および [Claude アプリゲートウェイ](/docs/ja/claude-apps-gateway) では、プロバイダーまたはゲートウェイが支払う金額を決定するため、ピッカー行に価格は表示されません。価格は表示ラベルのみです。どのモデルを行が選択するか、またはプロバイダーが請求する内容には影響しません。v2.1.206 より前では、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws) およびゲートウェイセッションは Anthropic リスト価格を表示し、行は選択したモデルとは異なるモデルの価格を表示できました。157`/model` ピッカーの価格は、Claude Code が Anthropic API と直接、またはそれをプロキシする [LLM ゲートウェイ](/docs/ja/llm-gateway)経由で通信している場合に表示され、各行の価格はその行が選択するモデルの価格です。Amazon Bedrock などの[サードパーティプロバイダー](/docs/ja/third-party-integrations)や [Claude apps gateway](/docs/ja/claude-apps-gateway) では、支払う金額はプロバイダーまたはゲートウェイによって決まるため、ピッカーの行には価格が表示されません。価格は表示用のラベルにすぎず、行が選択するモデルやプロバイダーの請求額には影響しません。v2.1.206 より前は、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws) とゲートウェイのセッションで Anthropic の定価が表示され、行が選択するモデルとは異なるモデルの価格が表示されることがありました。

107 158 

108`claude --resume`、`--continue`、または `/resume` ピッカーで開始された再開セッションは、現在の `model` 設定に関係なく、トランスクリプトが保存されたときに使用していたモデルを保持します。そのモデルが廃止されている場合、または [`availableModels`](#restrict-model-selection) によって除外されている場合、セッションは通常の優先度順序にフォールスルーします。これにより、別のセッションの `/model` 選択が再開時のモデルを変更するのを防ぎます。159`claude --resume`、`--continue`、または `/resume` ピッカーで再開したセッションは、現在の `model` 設定にかかわらず、トランスクリプトが保存された時点で使用していたモデルを維持します。復元されたモデルが廃止されている場合や [`availableModels`](#restrict-model-selection) によって除外されている場合、セッションは通常の優先順位に従います。これにより、別のセッションでの `/model` の選択が再開時のモデルを変更することを防ぎます。Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry など、Anthropic のモデル ID ではなくプロバイダー固有のデプロイ ID を使用するプロバイダーでは、トランスクリプトのモデルはまったく復元されず、セッションは通常の優先順位に従ってモデルを解決します。

109 160 

110新しい起動で `--model` または `ANTHROPIC_MODEL` で選択したモデルは、復元されたモデルよりも優先されます。v2.1.195 以降では、[`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) ファミリー変数も同様です。161新しい起動時に `--model` または `ANTHROPIC_MODEL` で選択したモデルは、引き続き復元されたモデルより優先されます。v2.1.195 以降は、[`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 系の変数も同様に優先されます。[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) も、そのセクションに記載されている条件の下で優先されます。

111 162 

112起動時のアクティブなモデルがあなた自身の選択ではなく、プロジェクトまたは管理設定から来ている場合、起動ヘッダーはどの設定ファイルがそれを設定したかを表示します。`/model` を実行してオーバーライドします。プロジェクトまたは管理設定は次の起動時に再度適用されます。163起動時のアクティブなモデルが自分の選択ではなくプロジェクト設定または管理設定に由来する場合、起動時のヘッダーにどの設定ファイルで設定されたかが表示されます。上書きするには `/model` を実行します。プロジェクト設定または管理設定は次回の起動時に再適用されます。Claude Code を組み込み、[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定しているプラットフォームでは、ホストのモデル設定が管理設定のモデル設定より優先されます。一方、管理設定の `availableModels` 許可リストは、ホストが独自のものを提供しない限り有効なままです。ホストがどのキーと変数を上書きするかについては、[管理設定の優先順位の例外](/docs/ja/settings#exceptions-to-managed-settings-precedence)を参照してください。

113 164 

114モデル切り替えが [Agent SDK](/docs/ja/agent-sdk/overview) の `setModel()` メソッドを通じて、または Claude Code CLI を実行する [Desktop app](/docs/ja/desktop) などのアプリケーションによって要求される場合、Claude Code はその文字列が認識できるものであることを確認してから保存します。このチェックには Claude Code v2.1.200 以降が必要です。Anthropic API では、Claude Code は以下を認識します。165ユーザーまたは組織が [PreModelSwitch フック](/docs/ja/hooks#premodelswitch)を設定している場合、それらは要求された切り替えが適用される前に実行され、切り替えをブロックしたり確認を求めたりできます。

115 166 

116* モデルエイリアス167組織の[管理プラグイン](/docs/ja/settings-reference#enabledplugins)がどの PreModelSwitch フックを提供しているかを Claude Code が判断できない場合(たとえば管理プラグインの読み込みに失敗した場合)、Claude Code は確認されないまま切り替えを適用するのではなく切り替えを拒否し、新しい試行のたびに再度確認します。メッセージと復旧方法については、[Model switch was blocked by a PreModelSwitch hook](/docs/ja/errors#model-switch-was-blocked-by-a-premodelswitch-hook) を参照してください。

117* `/model` ピッカーからのエントリ

118* `claude-` で始まる任意の名前

119* [カスタムモデルオプション](#add-a-custom-model-option)として自分で設定した値、または [`modelOverrides`](#override-model-ids-per-version) で設定した値

120 168 

121Claude Code は認識されない文字列を `Model "<name>" is not a recognized model id.` で拒否し、セッションは現在のモデルを保持します。文字列を保存して次のリクエストで失敗する代わりに。回復手順については [エラーリファレンス](/docs/ja/errors#model-is-not-a-recognized-model-id) を参照してください。169[Agent SDK](/docs/ja/agent-sdk/overview) の `setModel()` メソッド、[デスクトップアプリ](/docs/ja/desktop)などのアプリ、または [Remote Control](/docs/ja/remote-control) 経由で接続されたデバイスからモデルを切り替える場合、Claude Code は切り替え時に値を確認します。

122 170 

123チェックは Anthropic API でのみ実行されます。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、および [LLM ゲートウェイ](/docs/ja/llm-gateway) またはカスタム `ANTHROPIC_BASE_URL` の背後では、プロバイダーまたはゲートウェイがモデル名を定義するため、Claude Code はチェックなしで任意の文字列を通します。チェックは `--model` フラグ、`ANTHROPIC_MODEL` 環境変数、または `model` 設定もカバーしません。そこでの入力ミスは、最初のリクエストで代わりに [There's an issue with the selected model](/docs/ja/errors#theres-an-issue-with-the-selected-model) を生成します。171* **Agent SDK またはアプリ**: Claude Code v2.1.268 以降では、[カスタムモデルオプション](#add-a-custom-model-option)の場合のように Claude Code がモデル ID をローカルで受け入れる場合を除き、セッションがそのモデルに初めて切り替わるときにプロバイダーに ID を確認します。この確認はすべてのプロバイダーで実行され、プロバイダーが提供していない ID は、次のリクエストで失敗するのではなく切り替え時に拒否されます。

172* **Remote Control**: Anthropic API では、Claude Code は値をローカルで確認し、リクエストは送信しません。

124 173 

125要求されたモデルにスケジュール済みの廃止日がある場合、または自動的に新しいバージョンに再マップされる場合、Claude Code は要求されたモデルに名前を付ける警告を表示します。インタラクティブセッションはそれをスタートアップ通知として表示します。v2.1.182 以降では、デフォルトのテキスト出力形式を使用して [非インタラクティブモード](/docs/ja/headless) で stderr に同じ警告が書き込まれます。チェックは [サブエージェントフロントマター](/docs/ja/sub-agents) に設定された `model` もカバーします。stderr 警告は `--output-format json` および `stream-json` に対して抑制されます。代わりに [結果メッセージ](/docs/ja/headless#get-structured-output) の `modelUsage` フィールドから実際のモデルを読み取ります。174メッセージについては、[Model is not a recognized model id](/docs/ja/errors#model-is-not-a-recognized-model-id) および [Model not found](/docs/ja/errors#model-not-found) を参照してください。

126 175 

127使用例:176`--model` フラグ、`ANTHROPIC_MODEL` 環境変数、または `model` 設定でモデルを設定した場合、Claude Code は事前に確認を行わないため、値を誤入力すると最初のリクエストで [There's an issue with the selected model](/docs/ja/errors#theres-an-issue-with-the-selected-model) が発生します。

177 

178要求されたモデルに廃止予定日が設定されている場合、または新しいバージョンに自動的に再マッピングされる場合、Claude Code は要求されたモデル名を示す警告を表示します。対話セッションでは、起動時の通知として表示されます。v2.1.182 以降、デフォルトのテキスト出力形式を使用している場合、[非対話モード](/docs/ja/headless)でも同じ警告が stderr に書き込まれます。このチェックは、[サブエージェントのフロントマター](/docs/ja/sub-agents)で設定された `model` も対象とします。`--output-format json` および `stream-json` では stderr への警告は抑制されます。代わりに、[結果メッセージ](/docs/ja/headless#get-structured-output)の `modelUsage` フィールドから実際のモデルを読み取ってください。

179 

180たとえば、Opus でセッションを開始します。

128 181 

129```bash theme={null}182```bash theme={null}

130# Opus で開始

131claude --model opus183claude --model opus

184```

185 

186次に、セッション内からモデルを切り替えます。

132 187 

133# セッション中に Sonnet に切り替え188```text theme={null}

134/model sonnet189/model sonnet

135```190```

136 191 

137設定ファイルの例:192設定ファイルの例:

138 193 

139```json theme={null}194```json theme={null}

140{195{

141 "permissions": {196 "permissions": {

142 ...197 "allow": ["Bash(npm run lint)"]

143 },198 },

144 "model": "opus"199 "model": "opus"

145}200}

146```201```

147 202 

203<h4 id="set-a-default-model-for-new-sessions">

204 新しいセッションのデフォルトモデルを設定する

205</h4>

206 

207セッションがデフォルトで開始するモデルを選択するには、`ANTHROPIC_DEFAULT_MODEL=<alias|name>` を設定します。Claude Code v2.1.236 以降が必要です。

208 

209Claude Code が新しいセッションをこの変数のモデルで開始するのは、次のいずれもモデルを選択していない場合のみです。

210 

211* `--model` フラグ

212* `ANTHROPIC_MODEL`

213* いずれかの設定ファイルにある `model` の値(`/model` で保存した選択を含む)

214* [組織のデフォルトモデル](#organization-default-model)

215 

216`/model` で保存した選択は、以降の起動でもこの変数より優先されます。代わりに `ANTHROPIC_MODEL` を設定している場合、`/model` で何を保存したかにかかわらず、Claude Code は次回の起動時にその変数のモデルに戻ります。

217 

218組織のデフォルトモデルが適用されない限り、Claude Code は Default オプションもこの変数のモデルに解決します。Default オプションがこの変数のモデルに解決される場合、`/model` ピッカーの Default 行には Set by ANTHROPIC\_DEFAULT\_MODEL というラベルが表示されます。

219 

220次の場合、Claude Code はこの変数を無視し、Default オプションは変数を設定していないかのように解決されます。

221 

222* `default`、`inherit`、`opusplan`、または `haiku` に設定している

223* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) がオンになっている

224* 組織の[モデル制限](#restrict-model-selection)によってそのモデルが除外されている

225* そのモデルがアカウントで利用できない

226 

227新しいセッションがこの変数のモデルで開始される場合、`claude --resume`、`--continue`、または `/resume` ピッカーで再開したセッションもそのモデルで開始されます。Claude Code はそのセッションのトランスクリプトに保存されたモデルを復元しません。それ以外の場合、[セッションを再開](#setting-your-model)するときに Claude Code はこの変数を使用しません。

228 

229<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">

230 新しいセッションが選択したものとは異なるモデルで開始される

231</h4>

232 

233`/model` でモデルを選択したのに次のセッションが別のモデルで開始される場合、通常は次のような原因があります。

234 

235* **1 つのセッションのみを対象に選択した。** ピッカーで `s` を押す、`--model` で起動する、非対話モードで `/model` を実行する、のいずれも現在のセッションにのみ適用され、保存されたデフォルトは変更されません。

236* **より優先順位の高いものがモデルを設定している。** プロジェクト設定や管理設定にある `model` の値、シェルの `ANTHROPIC_MODEL`、または管理者がユーザーの選択を上書きするように設定した[組織のデフォルト](#organization-default-model)は、起動のたびに再適用されます。`/model` での選択は保存されていますが、優先順位で負けています。プロジェクト設定または管理設定がモデルを設定している場合、起動時のヘッダーにそのファイル名が表示されます。

237* **Claude Code が選択を保存できなかった。** `/model` は `~/.claude/settings.json` に `model` を書き込みます。別のツールがそのファイルを生成している、または読み取り専用のコピーにリンクしているなどの理由でそのファイルに書き込めない場合、選択したモデルはそのセッションの間だけ有効で、次回の起動時には古い値が読み込まれます。ファイルを生成しているツールで `model` を設定するか、ファイルを書き込み可能にしてください。[Claude Code で行った変更が新しいセッションで失われる](/docs/ja/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)を参照してください。

238* **セッションを再開した。** `claude --resume` または `--continue` で再開したセッションは、通常、現在のデフォルトではなく[使用していたモデルを維持](#setting-your-model)します。

239 

148<h2 id="restrict-model-selection">240<h2 id="restrict-model-selection">

149 モデル選択の制限241 モデル選択を制限する

150</h2>242</h2>

151 243 

152エンタープライズ管理者は、[管理設定またはポリシー設定](/docs/ja/settings#settings-files) で `availableModels` を使用して、ユーザーが選択できるモデルを制限できます。エントリは `sonnet` などのモデルファミリー、`claude-sonnet-4-5` などのバージョンプレフィックス、または `claude-sonnet-4-5-20250929` などの完全なモデル ID に一致します。244管理者は、[管理設定またはポリシー設定](/docs/ja/managed-settings)の `availableModels` を使用して、ユーザーが選択できるモデルを制限できます。エントリは、`sonnet` のようなモデルファミリー、`claude-sonnet-4-5` のようなバージョンプレフィックス、または `claude-sonnet-4-5-20250929` のような完全なモデル ID に一致します。バージョンプレフィックスは、それにさらにセグメントを付け加えた後続のモデル ID にも一致するため、`claude-fable-5` は Fable 5 と Fable 5.1 の両方を許可し、`claude-fable-5-1` は Fable 5.1 のみを許可します。リストが許可するモデルをブロックする方法や、各モデル ID エントリがその ID で指定されたバージョンのみを許可するようにする方法については、[特定のモデルやバージョンをブロックする](#block-specific-models-or-versions)を参照してください。

245 

246Claude Code を組み込み、[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定しているプラットフォームでは、ホストのモデル設定が管理モデル設定よりも優先されます。ただし、管理設定の `availableModels` 許可リストは、ホストが独自の許可リストを提供しない限り引き続き有効です。ホストがどのキーと変数を上書きするかについては、[管理設定の優先順位の例外](/docs/ja/settings#exceptions-to-managed-settings-precedence)を参照してください。

247 

248`availableModels` が設定されている場合、許可リストはユーザーがモデルを指定できるすべての場所に適用されます。

249 

250* **メインセッションのモデル**: `/model`、`--model` フラグ、`ANTHROPIC_MODEL` 環境変数、`model` 設定、[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)、および[セッションの再開](#setting-your-model)時に復元されるモデル

251* **エイリアスの解決**: `ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、`ANTHROPIC_DEFAULT_FABLE_MODEL` 環境変数を使って、許可されたエイリアスをリスト外のモデルにリダイレクトすることはできません

252* **fast mode**: リスト外の Opus モデルに暗黙的に切り替わる場合、`/fast` は "is not in your organization's allowed models" というメッセージを表示して切り替えを拒否します

253* **サブエージェントとチームメイトのモデル**: [サブエージェント](/docs/ja/sub-agents#choose-a-model)のフロントマターの `model` フィールド、Agent ツールの `model` パラメータ、[エージェントチーム](/docs/ja/agent-teams#specify-teammates-and-models)のチームメイトのモデル、`CLAUDE_CODE_SUBAGENT_MODEL`、および v2.1.197 以前では `/agents` ウィザードのモデルピッカー&#x20;

254* **スキルとコマンドのモデル**: [スキルとコマンド](/docs/ja/skills)の `model` フロントマター

255* **アドバイザーモデル**: 設定された [`advisorModel`](/docs/ja/advisor) 設定と `--advisor` フラグ

256* **バックグラウンドエージェントのモデル**: [Dispatch ピッカー](/docs/ja/agent-view)で選択されたモデル

153 257 

154`availableModels` が設定されている場合、アローリストはユーザーがモデルを指定できるすべての場所に適用されます。258Anthropic API と [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) では、モデルファミリーのエイリアス(`opus`、`sonnet`、`haiku`、`fable`)は、許可リストがそのモデルを許可している場合、通常のモデルに解決されます。許可リストがそのモデルをブロックしている場合、Claude Code は許可リストが許可するそのファミリーの最新バージョンに置き換え、要求されたモデルと置き換え後のモデルの両方を示す通知を表示します。たとえば `["sonnet", "claude-opus-4-6"]` の場合、`/model opus` と `--model opus` はどちらも、許可されている最新の Opus である Claude Opus 4.6 を選択します。v2.1.205 より前は、最新のリリースバージョンがリスト外にあるエイリアスは、リストが古いバージョンを許可していても、他のブロックされた選択と同様に拒否または置き換えられていました。

155 259 

156* **メインセッションモデル**:`/model`、`--model` フラグ、`ANTHROPIC_MODEL` 環境変数、`model` 設定、および [セッションを再開する](#setting-your-model) ときに復元されるモデル260この置き換えには、置き換え先となる許可されたバージョンが必要です。許可リストがエイリアスのファミリーのどのバージョンも許可していない場合、そのエイリアスは他のブロックされた値と同様に、以下の拒否および置き換えの動作に従います。

157* **エイリアス解決**:`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、および `ANTHROPIC_DEFAULT_FABLE_MODEL` 環境変数は、許可されたエイリアスをリスト外のモデルにリダイレクトすることはできません

158* **高速モード**:`/fast` は、リスト外の Opus モデルに暗黙的に切り替わる場合、「is not in your organization's allowed models」というメッセージで切り替えを拒否します

159* **サブエージェントモデル**:[サブエージェント](/docs/ja/sub-agents#choose-a-model) frontmatter の `model` フィールド、Agent ツールの `model` パラメータ、`CLAUDE_CODE_SUBAGENT_MODEL`、および v2.1.197 以前では `/agents` ウィザードのモデルピッカー&#x20;

160* **スキルおよびコマンドモデル**:[スキルおよびコマンド](/docs/ja/skills) の `model` frontmatter

161* **アドバイザーモデル**:設定された [`advisorModel`](/docs/ja/advisor) 設定および `--advisor` フラグ

162* **バックグラウンドエージェントモデル**:[ディスパッチピッカー](/docs/ja/agent-view) で選択されたモデル

163 261 

164Anthropic API および [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) では、モデルファミリーエイリアス `opus`、`sonnet`、`haiku`、または `fable` は、アローリストが許可する最新バージョンに解決されます。アローリストが特定のバージョンをピン留めする場合(例:`["sonnet", "claude-opus-4-6"]`)、`/model opus` と `--model opus` の両方が Claude Opus 4.6(許可される最新の Opus)を選択し、要求されたモデルと置き換えられたモデルの両方を名前で示す通知を表示します。v2.1.205 より前では、最新リリースバージョンがリスト外のエイリアスは、リストが古いバージョンを許可している場合でも、他のブロックされた選択と同様に拒否または置き換えられていました。262Claude Code は、その他のブロックされた選択を、モデルが設定された場所に応じて次のように処理します。

165 263 

166Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および [Mantle](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) は、Anthropic モデル ID ではなくプロバイダー固有のデプロイメント ID を使用するため、ブロックされたエイリアスはそこで以下の拒否および置き換え動作に従います。264* **`/model`**: Claude Code はエラーを表示して切り替えを拒否します

265* **`--model` フラグ、`ANTHROPIC_MODEL`、または `model` 設定**: Claude Code は起動時に値を置き換え、要求されたモデルと置き換え後のモデルの両方を示す警告を表示します。セッションはデフォルトモデルで開始されます

266* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**: Claude Code はこの変数を無視します

267* **サブエージェントまたはチームメイトの上書き**: Claude Code はリクエストを失敗させるのではなく、フォールバックモデルでサブエージェントまたはチームメイトを実行します。サブエージェントのフォールバックについては[モデルを選択する](/docs/ja/sub-agents#choose-a-model)を、チームメイトのフォールバックについては[チームメイトとモデルを指定する](/docs/ja/agent-teams#specify-teammates-and-models)を参照してください。

167 268 

168Claude Code は、モデルが設定された場所に応じて、他のブロックされた選択を処理します。269 インタラクティブセッションでは、このフォールバックまたは上記の許可された最新バージョンへの置き換えによってサブエージェントのモデルが置き換えられた場合、Claude Code は要求されたモデルと置き換え後のモデルを示す警告を表示します。チームメイトのフォールバックについては報告しません。

169 270 

170* **`/model`**:切り替えはエラーで拒否されます271 上記の許可された最新バージョンへの置き換えが機能する環境では、ブロックされたファミリーエイリアスはそちらに従います。v2.1.222 より前は、すべてのプロバイダーで、エイリアスは他のブロックされた値と同様にフォールバックしていました

171* **`--model` フラグ、`ANTHROPIC_MODEL`、または `model` 設定**:値は起動時に警告とともに置き換えられ、要求されたモデルと置き換えられたモデルの両方を名前で示し、セッションはデフォルトモデルで開始されます272* **スキルまたはコマンドの上書き**: Claude Code は、ブロックされたファミリーエイリアスを含めて上書きを無視し、スキルまたはコマンドはセッションのモデルで実行されます。[サブエージェントで実行される](/docs/ja/skills#run-skills-in-a-subagent)スキルまたはコマンドは、代わりに上記のサブエージェントの動作に従います

172* **サブエージェント、スキル、またはコマンドのオーバーライド**:オーバーライドはリクエストを失敗させるのではなく、継承またはデフォルトモデルにフォールバックします273* **`advisorModel` 設定**: そのセッションではアドバイザーが無効になります

173* **`advisorModel` 設定**:アドバイザーはセッションで無効になります274* **`--advisor` フラグ**: Claude Code は起動時にエラーで終了します。[バックグラウンドセッション](/docs/ja/agent-view)では、終了する代わりにアドバイザーなしでセッションを開始します

174* **`--advisor` フラグ**:Claude Code は起動時にエラーで終了します

175 275 

176除外されたモデルは `/model` ピッカーから非表示になります。リストに組み込みピッカー行がない完全なモデル ID(リストがピン留めする古いバージョンなど)は、`/model` ピッカーに独自のラベル付き行として表示されます。v2.1.199 より前では、そのような ID は `/model <id>` を入力することでのみ選択可能でした。276Claude Code は、除外されたモデルを `/model` ピッカーから非表示にします。リストに含まれる完全なモデル ID のうち、組み込みのピッカー行がないもの(リストで固定された古いバージョンなど)は、Claude Code が組み込みの選択肢を [`modelPicker`](/docs/ja/settings-reference#modelpicker) のラインナップに置き換えていない限り、`/model` ピッカーに独自のラベル付き行として表示されます。v2.1.199 より前は、そのような ID は `/model <id>` と入力することでのみ選択できました。

177 277 

178Claude Code があなたに代わって行うモデル変更は、同じ方法でチェックされます。278Claude Code がユーザーに代わって行うモデル変更も、同じ方法でチェックされます。

179 279 

180* **[フォールバックモデルチェーン](#fallback-model-chains)**:アローリスト外の要素は削除されます280* **[フォールバックモデルチェーン](#fallback-model-chains)**: 許可リスト外のエントリは除外されます

181* **Plan モードアップグレード**:Anthropic API および Claude Platform on AWS では、[`opusplan`](#opusplan-model-setting) などのアップグレードが除外されたモデルに対して実行される場合、アップグレードファミリーの最新許可バージョンを使用します。プロバイダー固有のモデル ID を持つプロバイダーで、バージョンが許可されていない場合、アップグレードはスキップされ、計画はセッションのモデルで続行されます281* **plan モードのアップグレード**: Anthropic API と Claude Platform on AWS では、[`opusplan`](#opusplan-model-setting) のように除外されたモデルへのアップグレードは、アップグレード先ファミリーの許可された最新バージョンを使用します。プロバイダー固有のモデル ID を持つプロバイダーの場合、および許可されたバージョンがない場合は、アップグレードはスキップされ、計画はセッションのモデルで続行されます

182* **[自動モデルフォールバック](#automatic-model-fallback)**:ターゲットが除外されているフォールバックは実行されないため、フラグが付けられたリクエストは拒否で終了します282* **[自動モデルフォールバック](#automatic-model-fallback)**: フォールバック先が除外されている場合、フォールバックは実行されないため、警告されたリクエストは代わりに拒否で終了します

183* **[高速モード](/docs/ja/fast-mode)**:セッションが実行されるモデルがアローリスト外にある場合、高速モードを有効にすることは拒否されます283* **[auto モードの分類器](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)**: 分類器のデフォルトである Claude Sonnet 5 は、許可リストが Sonnet 5 を許可している場合にのみ適用されます。除外されている場合、分類器はセッションのモデル(すでに許可リストの制御下にあります)で実行されるか、セッションが [Fable モデル](#work-with-fable)で実行されている場合は Opus モデルで実行されます。Anthropic API 以外のプロバイダーでは、その Opus フォールバックは許可リストを参照せずにプロバイダーのデフォルトの Opus モデルで実行されます。Claude Code v2.1.210 以降が必要です

284* **[fast mode](/docs/ja/fast-mode)**: 有効化後にセッションが実行されるモデルが許可リスト外である場合、fast mode の有効化は拒否されます

184 285 

185```json theme={null}286```json theme={null}

186{287{


189```290```

190 291 

191<h3 id="surface-coverage">292<h3 id="surface-coverage">

192 サーフェスカバレッジ293 サーフェスごとの適用範囲

193</h3>294</h3>

194 295 

195すべてのサーフェスは受け取るアローリストを適用します。どの配信メカニズムが各サーフェスに到達するかは異なります。296すべてのサーフェスは、受け取った許可リストを適用します。各サーフェスに届く配信メカニズムは次のように異なります。

196 297 

197| 配信メカニズム | CLI および IDE | デスクトップローカルセッション | Web、モバイル、およびクラウドセッション | Agent SDK および非対話型 | Cowork |298| 配信メカニズム | CLI と IDE | Desktop のローカルセッション | Web、モバイル、クラウドセッション | Agent SDK と非インタラクティブ | Cowork |

198| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

199| 管理コンソールからの [サーバー管理設定](/docs/ja/server-managed-settings) | 適用 | 適用 | 適用 | 適用 | 配信されない |300| 管理コンソールからの[サーバー管理設定](/docs/ja/server-managed-settings) | 適用される | 適用される | 適用される([Claude Tag](https://claude.com/docs/claude-tag/overview) セッションを除く) | 適用される | リモート Cowork セッション: サーバーがモデルをチェックします。ユーザーのマシン上: 配信されません。 |

200| [MDM または管理設定ファイル](/docs/ja/settings#settings-files) | 適用 | 適用 | 配信されない | 適用 | デプロイされた場所で適用 |301| [MDM または管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms) | 適用される | 適用される | Anthropic がホストする環境には配信されません。[セルフホスト環境](/docs/ja/self-hosted-environments)では、[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)に従ってランナーイメージから適用されます | 適用される | デプロイされている場所で適用される |

201 302 

202* クラウドセッション([Claude Code on the web](/docs/ja/claude-code-on-the-web) または Desktop アプリ内)は Anthropic 管理 VM で実行されます。デバイスにデプロイされた設定はそれらに到達しないため、サーバー管理設定を通じてアローリストを配信してください。クラウドセッション内の中途のモデル切り替えは、要求されたモデルがアローリストで除外されている場合に拒否されます。セッション作成時のサーバー側拒否は、`availableModels` 設定キーではなく、[組織モデル制限](#organization-model-restrictions) に適用されます。303* Desktop アプリから開始したものを含む[クラウドセッション](/docs/ja/claude-code-on-the-web)は、デフォルトで Anthropic が管理する VM 上で実行されます。デバイスにデプロイされた設定はこれらに届かないため、許可リストはサーバー管理設定を通じて配信してください。組織が[セルフホスト環境](/docs/ja/self-hosted-environments)にルーティングするセッションは独自のコンピューティング上で実行され、ランナーイメージ内の管理設定ファイルも読み取ります。そのファイルがいつ適用されるかについては、[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)を参照してください。クラウドセッションでのセッション途中のモデル切り替えは、要求されたモデルが許可リストによって除外されている場合は拒否されます。サーバー管理設定の `availableModels` リストが空でない場合、サーバーは、リストが除外するモデルで claude.ai/code または Desktop アプリからクラウドセッションを開始するリクエストを拒否します。

203* Cowork(Claude Desktop アプリの agentic-work タブ)は Claude Code サーフェスではなく、設計上サーバー管理設定を受け取りません。管理設定ファイルは、セッションが実行される場所に存在する場合、Cowork セッションに適用されます。リモート Cowork セッションは Anthropic 管理 VM で実行され、デバイスにデプロイされたファイルは存在しません。304* [Claude Tag](https://claude.com/docs/claude-tag/overview) セッションはクラウド環境で実行されますが、サーバー管理設定を受け取りません。[セルフホスト環境](/docs/ja/self-hosted-environments)では、引き続きランナーイメージ内の管理設定ファイルを読み取ります。これらのセッションのモデルを設定するには、Claude Tag 管理者ガイドの[スコープのモデルを選択する](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)を参照してください。

204* [Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS](/docs/ja/claude-platform-on-aws) などの [サードパーティプロバイダー](/docs/ja/server-managed-settings#platform-availability) 上のセッションはサーバー管理設定を受け取らないため、MDM または管理設定ファイルを通じてアローリストを配信してください。305* Claude Desktop アプリのエージェント型作業タブである Cowork は、セッションを Claude Code 上で実行しますが、設計上、claude.ai 管理コンソールからサーバー管理設定を受け取りません。サーバー管理設定の `availableModels` リストが空でなく、ユーザーがリスト外のモデルを選択した場合、サーバーはリモート Cowork セッションでそのモデルを拒否します。管理設定ファイルは、セッションが実行される場所に存在する場合に Cowork セッションに適用されます。リモート Cowork セッションは Anthropic が管理する VM 上で実行され、そこにはデバイスにデプロイされたファイルは存在しません。

205* サーバー管理配信には、セッションが組織ログインまたは直接設定された API キーで認証することも必要です。[`apiKeyHelper`](/docs/ja/settings#available-settings) スクリプトを通じてのみキーを生成するフリートは、MDM または管理設定ファイルを通じてアローリストを配信する必要があります。306* Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws) などの[サードパーティプロバイダー](/docs/ja/server-managed-settings#platform-availability)上のセッションはサーバー管理設定を受け取らないため、それらの環境では MDM または管理設定ファイルを通じて許可リストを配信してください。

206* Desktop Code タブは、実行するリモートホストから管理設定ファイルを読み取る [SSH セッション](/docs/ja/desktop#ssh-sessions) もホストします。[Desktop 管理設定](/docs/ja/desktop#managed-settings) を参照してください。307* サーバー管理による配信では、セッションが[対象となるログインまたはキー](/docs/ja/server-managed-settings#platform-availability)で認証されている必要もあります。[`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトを通じてのみキーを生成するフリートでは、MDM または管理設定ファイルを通じて許可リストを配信してください。

207* claude.ai および Desktop アプリのモデルピッカーは、組織のアローリストで除外されたモデルを非表示にするか、グレーアウトします。ピッカーの状態はユーザーの利便性です。強制はセッション内で発生します。308* Desktop の Code タブは [SSH セッション](/docs/ja/desktop#ssh-sessions)もホストしており、これらは実行先のリモートホストから管理設定ファイルを読み取ります。[Desktop の管理設定](/docs/ja/desktop#managed-settings)を参照してください。

309* claude.ai および Desktop アプリのモデルピッカーは、組織の許可リストによって除外されたモデルを非表示にするかグレーアウトします。ピッカーの状態はユーザーの利便性のためのものであり、許可リストを適用するものではありません。

208 310 

209<h3 id="default-model-behavior">311<h3 id="default-model-behavior">

210 デフォルトモデルの動作312 デフォルトモデルの動作

211</h3>313</h3>

212 314 

213モデルピッカーの Default オプションは、[`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) も設定されていない限り、`availableModels` の影響を受けません。単独では、`availableModels` は Default を利用可能なままにし、アカウントのシステムの [ランタイムデフォルト](#default-model-setting) に解決されます。ティアのデフォルトが制限する予定のモデルである場合、`enforceAvailableModels` も設定してください。315デフォルトのプレフィックス一致では、`availableModels` 単独では、[`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) も設定するまで、Default オプションはアカウントに対するシステムの[ランタイムデフォルト](#default-model-setting)のままになります。そのデフォルトが制限したいモデルである場合は、`enforceAvailableModels` も設定するか、[そのモデルをブロック](#block-specific-models-or-versions)してください。

214 316 

215空の `availableModels` 配列は Default モデル強制を実行しません。`availableModels: []` の場合、名前付きモデル選択はブロックされますが、アカウントタイプの Default モデルは `enforceAvailableModels` に関係なく使用可能なままです。317`availableModels: []` の場合、名前を指定したモデル選択はブロックされ、`enforceAvailableModels` は効果を持ちません。

216 318 

217<h3 id="enforce-the-allowlist-for-the-default-model">319<h3 id="enforce-the-allowlist-for-the-default-model">

218 Default モデルのアローリストを強制する320 Default モデルに許可リストを適用する

219</h3>321</h3>

220 322 

221管理設定で空でない `availableModels` と一緒に `enforceAvailableModels: true` を設定して、アローリストを Default オプションに拡張します。これには Claude Code v2.1.175 以降が必要です。323管理設定で、空でない `availableModels` とともに `enforceAvailableModels: true` を設定すると、許可リストが Default オプションにも適用されます。これには Claude Code v2.1.175 以降が必要です。

222 324 

223```json theme={null}325```json theme={null}

224{326{


227}329}

228```330```

229 331 

230Default オプションはアカウントタイプのデフォルト、または管理者が設定した場合は [組織デフォルトモデル](#organization-default-model) に解決されます。そのモデルがアローリストにない場合、Default オプションは代わりに、許可され利用可能なモデルを名前で指定する最初の `availableModels` エントリに解決され、`/model` ピッカーの Default 行はそのモデルを表示します。これはデフォルトに到達するすべての場所に適用されます。セッション起動、`/model` で Default を選択、[フォールバックモデルチェーン](#fallback-model-chains) の `"default"` キーワード、および除外された選択がドロップされたときに使用されるフォールバック。332[アカウントにモデルが記録されていない](#setting-your-model)メンバーの場合、Default オプションはアカウントタイプのデフォルト、または管理者が設定している場合は[組織のデフォルトモデル](#organization-default-model)に解決されます。そのモデルが許可リストにない場合、Default オプションは代わりに、許可されていて利用可能なモデルを指定する最初の `availableModels` エントリに解決され、`/model` ピッカーの Default 行にはそのモデルが表示されます。これは、デフォルトに到達するすべての場所に適用されます。つまり、セッションの起動時、`/model` で Default を選択した場合、[フォールバックモデルチェーン](#fallback-model-chains)の `"default"` キーワード、および除外された選択が除外されたときに使用されるフォールバックです。メンバーのアカウントに記録されたモデルも `availableModels` に照らしてチェックされます。Default オプションがそれをどのように扱うかについては、[モデルを設定する](#setting-your-model)を参照してください。

231 333 

232`enforceAvailableModels` は `availableModels` が設定されていないか空の場合、効果がありません。`availableModels: []` の場合、アカウントタイプの Default モデルは使用可能なままなので、設定はユーザーをすべてのモデルからロックアウトすることはできません。`availableModels` が空でないが、許可され利用可能なモデルに解決するエントリがない場合、強制はスキップされ、Default はアカウントタイプのデフォルトに解決され、`--debug` の下でのみ表示される警告が表示されます。これを避けるために、リストに少なくとも 1 つの保証された利用可能なエントリを保持してください。334`enforceAvailableModels` は、`availableModels` が空でない場合にのみ Default オプションを再マッピングします。`availableModels` が空でないものの、許可されていて利用可能なモデルに解決されるエントリがない場合、適用はスキップされ、`--debug` でのみ表示される警告が出されます。これを避けるには、確実に利用可能なエントリを少なくとも 1 つリストに含めてください。

233 335 

234両方のキーを [最高優先度の管理ソース](/docs/ja/settings#settings-precedence) にデプロイします。管理デプロイされたソースはマージされないため、管理設定ファイルに配置されたペアは、管理コンソールが任意の設定を配信する場合に無視されます。336両方のキーは、配信する管理ソースのうち最も順位の高いものに一緒にデプロイしてください。デフォルトでは Claude Code はそのソースのみを読み取るため、管理コンソールが何らかの設定を配信している場合、管理設定ファイルに配置したペアは無視されます。[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)のオプトインのマージを使用する場合でも、Claude Code は `availableModels` を設定するソースより下位のソースからの `modelOverrides` マップを無視します。

235 337 

236<h3 id="control-the-model-users-run-on">338<h3 id="control-the-model-users-run-on">

237 ユーザーが実行するモデルの制御339 ユーザーが実行するモデルを制御する

238</h3>340</h3>

239 341 

240`model` 設定は初期選択であり、強制ではありません。セッション開始時にアクティブなモデルを設定しますが、ユーザーは `/model` を開いて Default を選択することができ、これは [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) がそれをリダイレクトしない限り、`model` が何に設定されているかに関係なく、システムの [ランタイムデフォルト](#default-model-setting) に解決されます。342`model` 設定は初期選択であり、適用ではありません。これはセッション開始時にどのモデルがアクティブになるかを設定しますが、ユーザーは引き続き `/model` を開いて Default を選択できます。Default は、[`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) または[特定のバージョンをブロックするキー](#block-specific-models-or-versions)が適用されない限り、`model` の設定値に関係なくシステムの[ランタイムデフォルト](#default-model-setting)に解決されます。

241 343 

242モデル体験を完全に制御するには、これらの設定を組み合わせます。344モデルの動作を完全に制御するには、次の設定を組み合わせます。

243 345 

244* **`availableModels`**:ユーザーが切り替えられる名前付きモデルを制限346* **`availableModels`**: ユーザーが切り替えられる名前付きモデルを制限します

245* **`enforceAvailableModels`**:`availableModels` アローリストを Default オプションに拡張し、Default がリスト外のモデルに解決されないようにします347* **`enforceAvailableModels`**: `availableModels` 許可リストを Default オプションに拡張し、Default がリスト外のモデルに解決されないようにします

246* **`model`**:セッション開始時の初期モデル選択を設定348* **`deniedModels`** と **`availableModelsMatch`**: `availableModels` エントリがなければ許可されてしまう[特定のバージョンをブロック](#block-specific-models-or-versions)します

247* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**:Default オプションと `sonnet`、`opus`、`haiku`、`fable` エイリアスが解決するものを制御349* **`model`**: セッション開始時の初期モデル選択を設定します

350* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: `sonnet`、`opus`、`haiku`、`fable` エイリアスが何に解決されるか、および[アカウントタイプのデフォルト](#default-model-setting)がどのバージョンを使用するかを制御します

248 351 

249この例では、ユーザーを Sonnet 4.5 で開始し、ピッカーを Sonnet と Haiku に制限し、Default がティアのデフォルトではなくアローリスト上のモデルに解決されるようにします。352この例では、ユーザーを Sonnet 4.5 で開始させ、ピッカーを Sonnet と Haiku に制限し、Default がティアのデフォルトではなく許可リスト上のモデルに解決されるようにします。

250 353 

251```json theme={null}354```json theme={null}

252{355{


259}362}

260```363```

261 364 

262`enforceAvailableModels` または `env` ブロックがない場合、ユーザーがピッカーで Default を選択すると、そのティアの最新リリースが取得され、`model` と `availableModels` のバージョンピンがバイパスされます。2 つの設定は異なるスコープをカバーします。`enforceAvailableModels` は Default がアローリストに従うようにし、`env` ブロックは `sonnet` などの許可されたエイリアスが解決する特定のバージョンをピン留めします。モデルファミリーの制限で十分な場合は `enforceAvailableModels` のみを使用し、特定のバージョンをピン留めする必要がある場合は `env` ブロックを追加します。365`enforceAvailableModels` や `env` ブロックがない場合、ピッカーで Default を選択したユーザーには、`model` で固定されたバージョンではなく[ランタイムデフォルト](#default-model-setting)が適用されます。この 2 つの設定は異なる範囲をカバーします。`enforceAvailableModels` は Default を許可リストに従わせ、`env` ブロックは `sonnet` などの許可されたエイリアスがどのバージョンに解決されるかを固定します。モデルファミリーを制限するだけで十分な場合は `enforceAvailableModels` のみを使用し、特定のバージョンも固定する必要がある場合は `env` ブロックを追加してください。

263 366 

264<h3 id="merge-behavior">367<h3 id="merge-behavior">

265 マージ動作368 マージの動作

266</h3>369</h3>

267 370 

268[最高優先度の管理設定ソース](/docs/ja/server-managed-settings#settings-precedence) が `availableModels` を定義する場合、そのリストのみが適用されます。ユーザー、プロジェクト、またはローカル設定のエントリはそれを拡張することはできず、管理デプロイされたソースは相互にマージされないため、管理設定ファイルにデプロイされたリストは、サーバー管理設定が任意のキーを配信する場合に無視されます。それ以外の場合、ユーザー、プロジェクト、およびローカル設定からのリストは、他の配列設定と同様に [連結および重複排除](/docs/ja/settings#settings-precedence) されます。Claude Code v2.1.175 以降では、管理リストは下位優先度のエントリを置き換えます。以前のバージョンではそれらをマージします。371Claude Code が適用する管理設定で `availableModels` が定義されている場合、[独自のものを提供するホストプラットフォーム](/docs/ja/settings#exceptions-to-managed-settings-precedence)を除き、そのリストのみが適用されます。ユーザー設定、プロジェクト設定、ローカル設定のエントリでそれを拡張することはできず、Claude Code は管理ソース間で `availableModels` をマージすることもありません。どのソースのリストが適用されるかについては、[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)を参照してください。それ以外の場合、ユーザー設定、プロジェクト設定、ローカル設定のリストは、他の配列設定と同様に[連結され、重複が除去されます](/docs/ja/settings#settings-precedence)。Claude Code v2.1.175 より前は、優先順位の低いスコープのエントリは、管理リストに置き換えられるのではなく、管理リストにマージされていました。

269 372 

270有効なリスト内で、ファミリー内の特定のモデルを名前で指定するエントリ(バージョンプレフィックスまたは完全なモデル ID のいずれか)は、そのファミリーのワイルドカードエントリを無効にします。`["sonnet", "claude-sonnet-4-5"]` は、すべての Sonnet モデルではなく、Sonnet 4.5 バージョンのみを許可します。373有効なリスト内で、ファミリー内の特定のモデルを指定するエントリ(バージョンプレフィックスまたは完全なモデル ID)は、そのファミリーのワイルドカードエントリを無効にします。`["sonnet", "claude-sonnet-4-5"]` は、すべての Sonnet モデルではなく、Sonnet 4.5 のバージョンのみを許可します。

271 374 

272<h3 id="mantle-model-ids">375<h3 id="mantle-model-ids">

273 Mantle モデル ID376 Mantle のモデル ID

274</h3>377</h3>

275 378 

276[Amazon Bedrock Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) が有効な場合、`availableModels` の `anthropic.` で始まるエントリは、カスタムオプションとして `/model` ピッカーに追加され、Mantle エンドポイントにルーティングされます。これは、[サードパーティデプロイメント用のモデルをピン留めする](#pin-models-for-third-party-deployments) で説明されているエイリアスマッチングの例外です。設定はピッカーをリストされたエントリに制限し、Mantle ID はファミリー名を埋め込むため、特定のエントリとしてカウントされ、そのファミリーのワイルドカードを無効にします。任意の Mantle ID と一緒に、保持したいバージョンプレフィックスまたは完全な ID をリストします。[マージ動作](#merge-behavior) を参照してください。379[Amazon Bedrock Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint)が有効な場合、`availableModels` 内の `anthropic.` で始まるエントリは、カスタムオプションとして `/model` ピッカーに追加され、Mantle エンドポイントにルーティングされます。これは、[サードパーティのデプロイ向けにモデルを固定する](#pin-models-for-third-party-deployments)で説明されているエイリアス一致の例外です。この設定は引き続きピッカーをリストされたエントリに制限し、Mantle ID にはファミリー名が含まれているため、特定のエントリとしてカウントされ、そのファミリーのワイルドカードを無効にします。Mantle ID と併せて、選択可能なままにしたいバージョンプレフィックスまたは完全な ID をリストしてください。[マージの動作](#merge-behavior)を参照してください。

380 

381<h3 id="block-specific-models-or-versions">

382 特定のモデルやバージョンをブロックする

383</h3>

384 

385`claude-opus-5` のような `availableModels` エントリは、Opus 5.5 など、それを拡張する後続のリリースも、Claude Code がサポートした時点で許可します。リリースを保留するための管理設定が 2 つあり、どちらも Claude Code v2.1.283 以降が必要です。

386 

387* [`deniedModels`](/docs/ja/settings-reference#deniedmodels): ブロックするモデルをリストします。リストされたモデルは、`availableModels` が許可している場合でもブロックされ、このキーは許可リストがまったくない場合でも機能します。どのエントリにもブロックされないリリースは許可されたままです

388* [`availableModelsMatch`](/docs/ja/settings-reference#availablemodelsmatch): これを `"exact"` に設定すると、`availableModels` 内の各モデル ID は、その ID で指定されたバージョンのみを許可します。リストされたモデル ID の新しいバージョンは、リストに追加するまでブロックされたままになります

389 

390以前のバージョンはどちらのキーも無視するため、それらのバージョンが起動しないように [`requiredMinimumVersion`](/docs/ja/settings-reference#requiredminimumversion) も設定してください。

391 

392この例では、Opus と Sonnet のモデルを許可し、日付付きの ID やプロバイダー固有の ID を含むあらゆる表記の Opus 5.5 をブロックします。

393 

394```json theme={null}

395{

396 "availableModels": ["opus", "sonnet"],

397 "deniedModels": ["claude-opus-5-5"]

398}

399```

400 

401ブロックされたモデル(`deniedModels` で指定されたもの、または `"exact"` リストで省略されたもの)は、[許可リストが適用される](#restrict-model-selection)すべての場所で、ブロックされた選択として扱われます。`/model` ピッカーから非表示になり、`/model <name>` はそれを拒否します。`--model`、`ANTHROPIC_MODEL`、または `model` 設定でブロックされたモデル ID を指定すると、Claude Code は起動時にそれを除外し、代わりに Default オプションを解決します。[フック](/docs/ja/hooks)やバックグラウンドのリクエストが `deniedModels` によってブロックされたモデルを指定した場合(エージェントフックの `model` フィールドなど)、そのリクエストは代わりにセッションのモデルで実行されます。

402 

403Default オプションも、[`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) を設定しているかどうかにかかわらず、両方のキーに従います。空でない `availableModels` とともにそれを設定している場合、ブロックされたデフォルトは許可リスト外のモデルとしてカウントされます。それ以外の場合、ブロックされたモデルに解決されることになる Default オプションは、次の順序で段階的に切り替わります。

404 

4051. 同じファミリーの許可された最新バージョン

4062. より低コストの各ファミリーの許可された最新モデル(順に Sonnet、次に Haiku)

4073. 許可されたモデルを指定する最初の `availableModels` エントリ

408 

409これらのいずれも許可されていない場合、Default オプションで開始するセッションは、修正すべきキーを示すエラーとともに[起動を拒否します](/docs/ja/errors#managed-settings-block-the-default-model)。`"exact"` リストが Default オプションに影響するのは、管理設定の `availableModels` リストが少なくとも 1 つのモデルまたはファミリーを指定している場合のみです。

410 

411Claude Code は、両方のキーを管理設定からのみ読み取ります。ユーザー設定、プロジェクト設定、ローカル設定、または `--settings` でいずれかを設定した場合、Claude Code は警告を表示してそれを無視します。

277 412 

278<h3 id="organization-model-restrictions">413<h3 id="organization-model-restrictions">

279 組織モデル制限414 組織のモデル制限

280</h3>415</h3>

281 416 

282Claude Enterprise プランの組織管理者は、claude.ai 管理コンソールで個別のモデルを無効にすることで、メンバーが実行できるモデルを制限します。この制限は、Claude Code が認証するときにアカウントの権利と共に配信され、設定内の `availableModels` リストとは別であり、セッションが作成されるときにサーバーが同じ制限を独立して適用します。Claude Code v2.1.187 以降が必要です。417Claude Enterprise プランの組織管理者は、claude.ai 管理コンソールで個々のモデルを無効にすることで、メンバーが実行できるモデルを制限します。この制限は、Claude Code の認証時にアカウントのエンタイトルメントとともに配信され、設定内の `availableModels` リストとは別のものです。また、サーバーはセッション作成時に同じ制限を独立して適用します。Claude Code v2.1.187 以降が必要です。

283 418 

284制限はメンバーがサインインするか、自分の API キーを使用する場合に適用されます。組織サービスキーなどの組織スコープの認証情報はユーザーに関連付けられていないため、制限は適用されません。419この制限は、メンバーがサインインした場合、または自身の API キーを使用した場合に適用されます。組織サービスキーなどの組織スコープの認証情報はユーザーに紐付いていないため、制限は適用されません。

285 420 

286Claude Console にはモデル制限制御がありません。Claude Enterprise プランを持たない組織(Anthropic API を通じて認証するメンバーを持つ組織を含む)は、[管理設定](/docs/ja/settings#settings-files) で [`availableModels`](#restrict-model-selection) を使用してモデルを制限し、Default オプションをカバーするために [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) を追加します。これらの設定は、サーバーではなく Claude Code 自体によって適用されます。421Claude Console にはモデル制限の制御機能はありません。Anthropic API を通じてメンバーが認証する組織を含め、Claude Enterprise プランを持たない組織は、代わりに[管理設定](/docs/ja/managed-settings)の [`availableModels`](#restrict-model-selection) でモデルを制限し、Default オプションをカバーするために [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) を追加します。各サーフェスがこれらの設定をどのように受け取り適用するかについては、[サーフェスごとの適用範囲](#surface-coverage)を参照してください。

287 422 

288制限されたモデルは `/model` ピッカーから非表示になります。`--model`、`ANTHROPIC_MODEL` 環境変数、または `model` 設定で名前で選択すると、`Model "<name>" is restricted by your organization's settings. Using <model> instead.` という通知が表示され、セッションは許可されたモデルで開始されます。制限されたモデルに対して `/model <name>` と入力すると、`Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` で拒否され、セッションは現在のモデルを保持します。423制限されたモデルは `/model` ピッカーから非表示になります。`--model`、`ANTHROPIC_MODEL` 環境変数、または `model` 設定で名前を指定してそれを選択すると、`Model "<name>" is restricted by your organization's settings. Using <model> instead.` という通知が表示され、セッションは許可されたモデルで開始されます。制限されたモデルに対して `/model <name>` と入力すると、`Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` と表示されて拒否され、セッションは現在のモデルを維持します。

289 424 

290`opus`、`sonnet`、`haiku`、`fable` などの [モデルファミリーエイリアス](#restrict-model-selection) は、組織が許可するそのファミリーの最新バージョンに解決され、同じ置き換え通知が表示されます。`/model <alias>` は、そのファミリーのすべてのバージョンが制限されている場合にのみ拒否されます。`--model`、`ANTHROPIC_MODEL`、または `model` 設定で設定されたエイリアスは、その場合でも起動時に置き換えられます。v2.1.205 より前では、ファミリーエイリアスは最新リリースバージョンのみに基づいて置き換えられたか拒否されていました。古いバージョンが許可されている場合でも同様です。425`opus` などの[モデルファミリーのエイリアス](#restrict-model-selection)は、組織がそのモデルを許可している場合、通常のモデルに解決されます。組織がそのモデルを制限している場合、Claude Code は組織が許可するそのファミリーの最新バージョンに置き換え、同じ置き換え通知を表示します。`/model <alias>` が拒否されるのは、そのファミリーのすべてのバージョンが制限されている場合のみです。その場合でも、`--model`、`ANTHROPIC_MODEL`、または `model` 設定で設定されたエイリアスは、起動時に置き換えられます。v2.1.205 より前は、古いバージョンが許可されていても、ファミリーエイリアスは最新のリリースバージョンのみに基づいて置き換えまたは拒否されていました。

291 426 

292制限は組織全体またはロールごとに適用されます。427制限は組織全体またはロールごとに適用されます。

293 428 

294* 組織レベルでモデルを無効にすると、すべてのメンバーから削除されます。429* 組織レベルでモデルを無効にすると、すべてのメンバーからそのモデルが削除されます。

295* ロールレベルのアクセスは異なるカスタムロールに異なるモデルを付与し、複数のロールを保持するメンバーは、そのロールの 1 つが付与するモデルを使用できます。430* ロールレベルのアクセスでは、カスタムロールごとに異なるモデルを付与でき、複数のロールを持つメンバーは、いずれかのロールが付与するモデルを使用できます。

296* Haiku モデルは常に利用可能であり、無効にすることはできないため、すべてのメンバーは少なくとも 1 つの使用可能なモデルを保持します。431* Haiku モデルは常に利用可能で無効にできないため、すべてのメンバーは少なくとも 1 つの使用可能なモデルを保持します。

297* アクセス変更は約 1 分以内に新しいリクエストに有効になります。`/model` ピッカーはセッションが次に開始するときにそれを反映します。432* アクセスの変更は、約 1 分以内に新しいリクエストに反映されます。`/model` ピッカーには、次回のセッション開始時に反映されます。

298 433 

299両方の制限が一緒に適用されます。モデルは `availableModels` で許可され、組織によって制限されていない場合にのみ選択可能です。組織制限は Anthropic API および [LLM ゲートウェイ](/docs/ja/llm-gateway) デプロイメント上のセッションに配信されます。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS 上のセッションはそれらを受け取らないため、代わりにそれらのプロバイダーで `availableModels` を使用してください。434両方の制限は同時に適用されます。モデルが選択可能になるのは、`availableModels` で許可されていて、かつ組織によって制限されていない場合のみです。組織の制限が適用されるのは、Anthropic API および [LLM ゲートウェイ](/docs/ja/llm-gateway)のデプロイ上のセッションのみです。その他のプロバイダーでは、代わりに `availableModels` を使用してください。

300 435 

301<h2 id="organization-default-model">436<h2 id="organization-default-model">

302 組織デフォルトモデル437 組織のデフォルトモデル

303</h2>438</h2>

304 439 

305Claude Enterprise プランの組織管理者は、claude.ai 管理コンソールから Claude Code メンバーのデフォルトモデルを、組織全体またはカスタムロール単位で設定できます。設定されている場合、Default オプションは [アカウントタイプのデフォルト](#default-model-setting) ではなく、そのモデルに解決されます。Claude Code v2.1.196 以降が必要です。440Claude Enterprise プランの組織管理者は、claude.ai の管理コンソールから、組織全体またはカスタムロールごとに Claude Code メンバー向けのデフォルトモデルを設定できます。設定されている場合、Default オプションはそのモデルに解決されます。Claude Code v2.1.196 以降が必要です。

306 441 

307`/model` ピッカーの Default 行は、組織デフォルトの名前を「Org default」というラベルで表示します。ラベルは、管理者が組織全体のデフォルトを設定したか、ロール用に設定したかに関係なく「Org default」と表示されます。ロールデフォルトはそのカスタムロールのメンバーをカバーし、組織全体のデフォルトより優先されます。複数のロールが異なるデフォルトを設定する場合、最も高性能なモデルが適用されます。442`/model` ピッカーの Default 行には、組織のデフォルトモデルの名前が Org default というラベル付きで表示されます。管理者が組織全体に対してデフォルトを設定した場合でも、ユーザーのロールに対して設定した場合でも、ラベルは Org default と表示されます。ロールのデフォルトはそのカスタムロールのメンバーに適用され、組織全体のデフォルトよりも優先されます。ユーザーの複数のロールで異なるデフォルトが設定されている場合は、最も高性能なモデルが適用されます。

308 443 

309組織デフォルトは開始点であり、制限ではなく、他のモデル選択はそれより優先されます。444組織のデフォルトは出発点であり、制限ではありません。次の選択は組織のデフォルトよりも優先されます。

310 445 

311* `--model` フラグと `ANTHROPIC_MODEL` 環境変数446* `--model` フラグおよび `ANTHROPIC_MODEL` 環境変数

312* [管理設定](/docs/ja/settings#settings-files) または `--settings` で提供される `model` 値447* [管理設定](/docs/ja/managed-settings)内の `model` の値、または `--settings` で指定された `model` の値

313* ユーザー、プロジェクト、またはローカル設定の `model` 値(`/model` で保存したモデルを含む)448* ユーザー、プロジェクト、またはローカル設定内の `model` の値(`/model` で保存したモデルを含む)

314 449 

315管理者は、組織デフォルトをユーザー選択をオーバーライドするように設定することもできます。オーバーライドがオンの場合、ユーザー、プロジェクト、およびローカル設定の `model` 値より優先されるため、`/model` で保存したモデルは現在のセッションに適用され、組織デフォルトは次の起動時に戻ります。選択が異なる場合、`/model` は `Your organization's default (<model>) applies on restart` を表示します。`--model` フラグ、`ANTHROPIC_MODEL`、管理設定、および `--settings` はオーバーライドがオンの場合でも優先されます。オーバーライドは限定的な組織セットで利用可能です。利用可能性については Anthropic アカウントチームに問い合わせてください。450管理者は、組織のデフォルトがユーザーの選択を上書きするように設定することもできます。上書きが有効な場合、組織のデフォルトはユーザー、プロジェクト、ローカル設定内の `model` の値よりも優先されるため、`/model` で保存したモデルは現在のセッションにのみ適用され、次回の起動時には組織のデフォルトに戻ります。ユーザーの選択が異なる場合、`/model` には `Your organization's default (<model>) applies on restart` と表示されます。上書きが有効な場合でも、`--model` フラグ、`ANTHROPIC_MODEL`、管理設定、`--settings` は引き続き優先されます。上書きは一部の組織でのみ利用できます。利用可否については Anthropic のアカウントチームにお問い合わせください。

316 451 

317メンバーが選択できるモデルを制限するには、[組織モデル制限](#organization-model-restrictions) または [`availableModels`](#restrict-model-selection) を代わりに使用してください。452メンバーが選択できるモデルを制限するには、代わりに[組織のモデル制限](#organization-model-restrictions)または [`availableModels`](#restrict-model-selection) を使用してください。

318 453 

319Claude Code は起動時に組織デフォルトを 1 回読み込むため、管理者が中途で変更したデフォルトは次の起動時に有効になります。454Claude Code は起動時に一度だけ組織のデフォルトを読み込むため、セッション中に管理者がデフォルトを変更した場合は、次回の起動時に反映されます。

320 455 

321組織デフォルトがユーザー選択をオーバーライドしない場合、管理者がそれを変更した後の最初のインタラクティブ起動は、ユーザー設定から `model` キーを 1 回クリアするため、新しいデフォルトが適用されます。ファイル内の他の何も変更されず、その起動後に `/model` で保存したモデルは保持されます。456組織のデフォルトがユーザーの選択を上書きしない場合、管理者がデフォルトを変更した後の最初の対話型起動時に、ユーザー設定から `model` キーが一度だけ削除され、新しいデフォルトが適用されます。ファイル内のそれ以外の内容は変更されず、その起動後に `/model` で保存したモデルは保持されます。

322 457 

323組織デフォルトは、採用される前に他の Default モデルと同じ制限チェックを通過します。458組織のデフォルトは、採用される前に次の制限チェックを通過します。

324 459 

325* [`availableModels`](#restrict-model-selection) 単独では Default オプションを制限しないため、アローリスト外の組織デフォルトは引き続き適用されます。[`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) も設定されている場合、アローリスト外の組織デフォルトは、他の Default と同様に最初のアローリストエントリに再マップされます460* デフォルトのプレフィックスマッチングでは、[`availableModels`](#restrict-model-selection) 単体では組織のデフォルトに適用されないため、許可リストに含まれない組織のデフォルトも引き続き適用されます。[`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) も設定されている場合は、許可リストに含まれない組織のデフォルトも許可リストの最初のエントリに再マッピングされます

326* [組織モデル制限](#organization-model-restrictions) がアカウントに対して拒否する組織デフォルトは、そのファミリーの最新許可モデル、またはそのバージョンがすべて制限されている場合は低コストファミリーに置き換えられます461* [組織のモデル制限](#organization-model-restrictions)によってユーザーのアカウントで拒否されている組織のデフォルトは、同じファミリー内で許可されている最新のモデルに置き換えられます。そのファミリーのすべてのバージョンが制限されている場合は、より低コストのファミリーに置き換えられます

327* [ゼロデータ保持](/docs/ja/zero-data-retention) の下での Fable 5 など、アカウントで利用できない組織デフォルトはスキップされ、Default オプションはアカウントタイプのデフォルトに解決されます462* `deniedModels` または `"exact"` リストによってブロックされる組織のデフォルトについては、[特定のモデルまたはバージョンをブロックする](#block-specific-models-or-versions)を参照してください

463* ユーザーのアカウントでまったく利用できない組織のデフォルトはスキップされ、Default オプションは[組織のデフォルトがない場合](#default-model-setting)と同様に解決されます

328 464 

329v2.1.199 以降では、組織デフォルトがアカウントタイプの通常のデフォルトと異なるモデルファミリーである場合、`/model` ピッカーはそのファミリーの別の行を保持するため、セッション用にそれに切り替えることができます。v2.1.196 から v2.1.198 ではその行はピッカーから欠落しています。465v2.1.199 以降では、組織のデフォルトがユーザーのアカウントタイプの通常のデフォルトとは異なるモデルファミリーである場合、`/model` ピッカーにはその通常のファミリー用の行が別途残るため、セッション中にそのファミリーへ切り替えることもできます。v2.1.196 から v2.1.198 では、この行はピッカーに表示されません。

330 466 

331組織デフォルトは Anthropic API で認証されたセッションに配信されます。[LLM ゲートウェイ](/docs/ja/llm-gateway) デプロイメント、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS 上のセッションはそれを受け取りません。これらのデプロイメントでデフォルトを設定するには、[管理設定](/docs/ja/settings#settings-files) で `model` キーを代わりに使用してください。467組織のデフォルトは、Anthropic API で認証されたセッションにのみ適用されます。[LLM ゲートウェイ](/docs/ja/llm-gateway)のデプロイを含むその他の環境でデフォルトを設定するには、代わりに[管理設定](/docs/ja/managed-settings)の `model` キーを使用してください。

332 468 

333<h2 id="organization-effort-limits">469<h2 id="organization-effort-limits">

334 組織努力制限470 組織の effort 上限

335</h2>471</h2>

336 472 

337Claude Enterprise プランの組織管理者は、ロールレベルの [組織モデル制限](#organization-model-restrictions) と一緒に、各カスタムロール用のモデルごとに最大 [努力レベル](#adjust-effort-level) を設定できます。キャップ以上のレベルは `/effort` ピッカーで提供されず、`--effort` または `/effort` で高いレベルを名前で指定すると、キャップで実行されます。インタラクティブセッションおよびプレーンテキスト `--print` 実行では、警告は要求されたレベルと適用されたレベルを名前で示します。`json` または `stream-json` 出力またはバックグラウンドエージェントでは、クランプは静かに適用されます。キャップはモデルごとであるため、モデルを切り替えると利用可能なレベルが変わる可能性があります。複数のロールが同じモデルを付与する場合、最も制限の少ないキャップが適用されます。Claude Code v2.1.195 以降が必要です。473組織は、[effort レベル](#adjust-effort-level)に 2 つの方法で上限を設定できます。Claude Enterprise プランでは、組織の管理者が以下で説明するロールごとの effort 上限を設定します。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry を含むすべてのプランとプロバイダーでは、代わりに [`maxEffortLevel`](/docs/ja/settings-reference#maxeffortlevel) 管理設定によってクライアント側で effort に上限が設定されます。1 つのモデルに両方が適用される場合は、低いほうの上限が適用されます。

474 

475Claude Enterprise プランの組織管理者は、ロールレベルの[組織のモデル制限](#organization-model-restrictions)とあわせて、カスタムロールごとにモデル単位で [effort レベル](#adjust-effort-level)の最大値を設定できます。上限を超えるレベルは `/effort` ピッカーに表示されず、`--effort` または `/effort` でより高いレベルを指定した場合は、代わりに上限のレベルで実行されます。対話型セッションとプレーンテキストの `--print` 実行では、要求されたレベルと適用されたレベルを示す警告が表示されます。`json` または `stream-json` 出力の場合やバックグラウンドエージェントでは、上限への制限は警告なしで適用されます。上限はモデルごとに設定されるため、モデルを切り替えると利用可能なレベルが変わることがあります。ユーザーの複数のロールが同じモデルを許可している場合は、最も制限の緩い上限が適用されます。Claude Code v2.1.195 以降が必要です。

338 476 

339努力制限は [組織モデル制限](#organization-model-restrictions) と一緒に配信され、同じプロバイダー利用可能性に従います。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、および Claude Platform on AWS 上のセッションはそれらを受け取りません。477effort 上限は[組織のモデル制限](#organization-model-restrictions)と一緒に配信され、同じセッションに適用されます。

340 478 

341<h2 id="special-model-behavior">479<h2 id="special-model-behavior">

342 特別なモデルの動作480 特殊なモデルの動作

343</h2>481</h2>

344 482 

345<h3 id="default-model-setting">483<h3 id="default-model-setting">

346 `default` モデル設定484 `default` モデル設定

347</h3>485</h3>

348 486 

349`default` の動作はアカウントタイプによって異なります。487`default` の動作はアカウントの種類によって異なります。

350 488 

351* **Max、Team Premium、Enterprise 従量課金、Anthropic API**:Opus 4.8 がデフォルト489* **Pro、Max、Team、Enterprise、Anthropic API**:デフォルトは Opus 5.5

352* **AWS 上の Claude Platform、Amazon Bedrock、Google Cloud の Agent Platform**:Opus 4.8 がデフォルト490* **Claude Platform on AWS、Amazon Bedrock、Google Cloud's Agent Platform**:デフォルトは Opus 5.5

353* **Pro、Team Standard、Enterprise サブスクリプションシート**:Sonnet 5 がデフォルト491* **Microsoft Foundry**:デフォルトは Sonnet 4.5

354* **Microsoft Foundry**:Sonnet 4.5 がデフォルト

355 492 

356Enterprise 従量課金とは、サブスクリプションシートではなく使用量で請求される Enterprise 組織を意味します。493v2.1.280 より前は、`default` は Pro と Team Standard では Sonnet 5 に、Max、Team Premium、Enterprise、Anthropic API では Opus 5 に解決され、Claude Platform on AWS、Amazon Bedrock、Google Cloud's Agent Platform では v2.1.219 以降 Opus 5 に解決されていました。v2.1.219 より前は、`default` は Anthropic API、Max、Team Premium、Enterprise の従量課金では v2.1.154 以降 Opus 4.8 に解決され、Claude Platform on AWS、Amazon Bedrock、Google Cloud's Agent Platform では v2.1.207 以降 Opus 4.8 に解決されていました。v2.1.207 より前は、`default` は Claude Platform on AWS では Opus 4.7 に、Amazon Bedrock と Google Cloud's Agent Platform では Sonnet 4.5 に解決されていました。

357 494 

358v2.1.207 より前では、`default` は AWS 上の Claude Platform では Opus 4.7 に、Amazon Bedrock と Google Cloud の Agent Platform では Sonnet 4.5 に解決されていました。495管理者が[組織のデフォルトモデル](#organization-default-model)を設定している場合、`default` は上記のアカウント種類ごとのデフォルトではなく、そのモデルに解決されます。Claude Code v2.1.196 以降が必要です。また、`default` は、該当セクションに記載された条件のもとで [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) で設定したモデルに解決されることや、[アカウントに記録されている](#setting-your-model)モデルに解決されることもあります。

359 496 

360管理者が [組織デフォルトモデル](#organization-default-model) を設定している場合、`default` は上記のアカウントタイプのデフォルトではなく、そのモデルに解決されます。Claude Code v2.1.196 以降が必要です。497アカウントに何も記録されておらず、管理設定で[Default モデルに許可リストが強制](#enforce-the-allowlist-for-the-default-model)されていて、かつアカウント種類ごとのデフォルトが `availableModels` に含まれていない場合、`default` は上記のアカウント種類ごとのデフォルトではなく、強制された Default に解決されます。組織のデフォルトと強制の両方が適用される場合は、まず組織のデフォルトがアカウント種類ごとのデフォルトを置き換え、その後に強制が適用されます。許可リストに含まれる組織のデフォルトはそのまま維持され、リスト外のものは強制された Default に解決されます。

361 498 

362管理設定が [Default モデルのアローリストを強制](#enforce-the-allowlist-for-the-default-model) し、アカウントタイプのデフォルトが `availableModels` にない場合、`default` は上記のアカウントタイプのデフォルトではなく、強制された Default に解決されます。両方が適用される場合、組織デフォルトはアカウントタイプのデフォルトを最初に置き換え、強制がそれに適用されます。許可リストに登録された組織デフォルトは保持され、リスト外のものは強制された Default に解決されます。499Fable モデルは、どのプランやプロバイダーでもアカウント種類ごとのデフォルトにはなりません。`/model` で Fable モデルを選ぶと、ユーザー設定に選択中のモデルとして保存されるため、以降のセッションはそのモデルで開始されます。v2.1.257 で Claude Code が保存済みの Fable 5 の選択に対して行う一度限りの変更については、[Fable を使用する](#work-with-fable)を参照してください。

363 

364Fable 5 はどのアカウントタイプでもデフォルトモデルではありません。セッションは `/model fable`、`model` 設定、または Fable 5 が利用可能な `best` エイリアスで選択した後にのみ Fable 5 を使用します。`/model` で選択すると、ユーザー設定で選択されたモデルとして保存されるため、モデルを変更するまで後続のセッションは Fable 5 で開始されます。

365 500 

366<h3 id="opusplan-model-setting">501<h3 id="opusplan-model-setting">

367 `opusplan` モデル設定502 `opusplan` モデル設定


369 504 

370`opusplan` モデルエイリアスは、自動化されたハイブリッドアプローチを提供します。505`opusplan` モデルエイリアスは、自動化されたハイブリッドアプローチを提供します。

371 506 

372* **Plan Mode 中**:複雑な推論とアーキテクチャの決定用に `opus` を使用507* **plan モードの場合**:複雑な推論やアーキテクチャ上の判断に `opus` を使用します

373* **実行モード中**:コード生成と実装用に自動的に `sonnet` に切り替わり508* **実行モードの場合**:コード生成と実装のために自動的に `sonnet` に切り替えます

374 509 

375これにより、計画用の Opus の優れた推論と、実行用の Sonnet の効率性が組み合わされます。510これにより、計画には Opus の推論能力を、実行には Sonnet の効率性を組み合わせられます。

376 511 

377Plan Mode の Opus フェーズは `opus` モデル設定と同じコンテキストウィンドウを使用します。[自動アップグレード](#extended-context) で Opus が 1M コンテキストに自動アップグレードされるサブスクリプション層では、`opusplan` も Plan Mode でアップグレードを受け取ります。自動アップグレード層にない場合に両方のフェーズで 1M コンテキストを強制するには、モデルを `opusplan[1m]` に設定します。512plan モードの Opus フェーズは `opus` モデル設定と同じコンテキストウィンドウを使用し、実行フェーズは `sonnet` と同じウィンドウを使用します。`opus` と `sonnet` が、Anthropic API 上の現行モデルのようにデフォルトで [1M コンテキストウィンドウ](#extended-context)で動作するモデルに解決される場合は、両方のフェーズがそのウィンドウで動作します。そうでない場合に両方のフェーズで 1M コンテキストを要求するには、たとえば `/model opusplan[1m]` のように、[モデルを](#setting-your-model) `opusplan[1m]` に設定します。`/model` での設定には Claude Code v2.1.265 以降が必要です。それより前のバージョンでは、代わりに `--model` フラグまたは `model` 設定を使用してください。

378 513 

379[`availableModels`](#restrict-model-selection) が最新の Opus を除外しますが、古いバージョン(例えば `["sonnet", "claude-opus-4-6"]`)を許可する場合、`opusplan` は計画用に許可された最新の Opus を使用し、すべての Opus が除外されている場合のみ Sonnet に留まります。通常は Plan Mode で Sonnet にアップグレードする Haiku セッションは同様に、許可された最新の Sonnet を使用し、すべての Sonnet が除外されている場合のみ Haiku に留まります。v2.1.205 より前では、許可リストが古いバージョンを許可していても、アップグレードファミリーの最新バージョンが除外されている場合、Plan Mode はセッションのモデルに留まっていました。514[`availableModels`](#restrict-model-selection) が最新の Opus を除外しつつ古いバージョンを許可している場合(たとえば `["sonnet", "claude-opus-4-6"]`)、`opusplan` は許可されている最新の Opus を計画に使用し、すべての Opus が除外されている場合にのみ Sonnet のままになります。同様に、通常は plan モードで Sonnet にアップグレードされる Haiku セッションは、許可されている最新の Sonnet を使用し、すべての Sonnet が除外されている場合にのみ Haiku のままになります。v2.1.205 より前は、アップグレード先ファミリーの最新バージョンが除外されていると、許可リストが古いバージョンを許可していても、plan モードはセッションのモデルのままでした。

380 515 

381古いバージョンの置き換えは Anthropic API と [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) に適用されます。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Mantle では、プロバイダー固有のモデル ID を使用するデプロイメントのため、アップグレードモデルが除外されている場合、Plan Mode はセッションのモデルに留まります。516許可されている古いバージョンへの置き換えは、Anthropic API と [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) に適用されます。デプロイでプロバイダー固有のモデル ID を使用する Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry、Mantle では、アップグレード先のモデルが除外されている場合、plan モードはセッションのモデルのままになります。

382 517 

383Claude がタスク途中で 2 番目のモデルを参照するかどうかを決定するハイブリッドアプローチについては、[advisor tool](/docs/ja/advisor) を参照してください。518計画の境界で切り替えるのではなく、タスクの途中で Claude が 2 つ目のモデルに相談するタイミングを判断するハイブリッドアプローチについては、[advisor ツール](/docs/ja/advisor)を参照してください。

384 519 

385<h3 id="fallback-model-chains">520<h3 id="fallback-model-chains">

386 フォールバックモデルチェーン521 フォールバックモデルチェーン

387</h3>522</h3>

388 523 

389プライマリモデルが過負荷状態、利用不可、または別の再試行不可能なサーバーエラーを返す場合、Claude Code はリクエストを失敗させる代わりにフォールバックモデルに切り替えることができます。認証、請求、レート制限、リクエストサイズ、トランスポートエラーは切り替えをトリガーしません。これらは通常の再試行とエラー処理に従います。524プライマリモデルが過負荷状態、利用不可、またはその他の再試行不可能なサーバーエラーを返した場合、Claude Code はリクエストを失敗させる代わりにフォールバックモデルに切り替えることができます。認証、請求、レート制限、リクエストサイズ、トランスポートのエラー、および[組織のポリシーチェックによる拒否](/docs/ja/errors#automatic-retries)では切り替えは発生せず、通常の再試行とエラー処理に従います。[Amazon Bedrock](/docs/ja/amazon-bedrock#when-a-model-is-disabled-mid-session) または [Google Cloud's Agent Platform](/docs/ja/google-vertex-ai#when-a-model-is-disabled-mid-session) がアカウントで呼び出せないモデルを拒否した場合は切り替えが発生します。Claude Code はこれを認証エラーではなく、モデルが利用不可であるものとして扱います。

390 525 

3911 つ以上のフォールバックモデルを設定し、Claude Code は順番に試行し、切り替え時に通知を表示します。切り替えは現在のターンのみ続くため、次のメッセージはプライマリモデルを最初に再度試行します。チェーンは重複排除後 3 つのモデルに制限され、余分なエントリは無視されます。5261 つ以上のフォールバックモデルを設定すると、Claude Code はそれらを順に試し、切り替え時に通知を表示します。切り替えは現在のターンにのみ有効なため、次のメッセージでは再びプライマリモデルが最初に試されます。Claude Code は重複を除いたうえでチェーンを 3 モデルまでに制限し、それを超えるエントリは無視します。

392 527 

393`--fallback-model` フラグを使用して 1 つのセッション用にチェーンを設定します。これはカンマ区切りリストを受け入れます。5281 つのセッションにチェーンを設定するには、カンマ区切りのリストを受け付ける `--fallback-model` フラグを使用します。

394 529 

395```bash theme={null}530```bash theme={null}

396claude --fallback-model sonnet,haiku531claude --fallback-model sonnet,haiku

397```532```

398 533 

399セッション全体でチェーンを保持するには、[settings](/docs/ja/settings) で `fallbackModel` を配列として設定します。534セッションをまたいでチェーンを保持するには、[設定](/docs/ja/settings)で `fallbackModel` を配列として設定します。

400 535 

401```json theme={null}536```json theme={null}

402{537{


404}539}

405```540```

406 541 

407`--fallback-model` フラグは `fallbackModel` 設定より優先されます。各要素はモデル名またはエイリアスを受け入れ、`"default"` はデフォルトモデルに展開されます。542`--fallback-model` フラグは `fallbackModel` 設定より優先されます。各エントリにはモデル名またはエイリアスを指定でき、`"default"` はデフォルトモデルに展開されます。

543 

544Claude Code は起動時にチェーンを確認せず、`/status` にも表示されません。切り替えが発生したときに表示される通知が、フォールバックが設定されていることを示す最初の目に見えるサインです。

408 545 

409要素がスキップされる 2 つのケース:546リクエストがフェイルオーバーすると、Claude Code はいずれかのエントリがリクエストを受け付けるまで、各エントリを順に試します。設定に固定された廃止済みモデルなど、到達できないエントリも同様に次のエントリへフェイルオーバーします。Claude Code は、この順次試行を始める前に 2 種類のエントリを除外します。

410 547 

411* **利用不可能なモデル**:設定にピン留めされた廃止されたモデルなど、到達できないモデルはスキップされ、Claude Code は次の要素に続きます。548* **許可リスト外**:Claude Code はチェーンを読み込む際に、[`availableModels`](#restrict-model-selection) で許可されていないエントリを除外します。

412* **許可リストの外**:[`availableModels`](#restrict-model-selection) で許可されていない要素は、チェーンが読み込まれるときにドロップされ、試行されません。549* **コンテキスト圧縮中のより小さいコンテキストウィンドウ**:チェーンは[コンテキスト圧縮](/docs/ja/context-window#what-survives-compaction)にも適用されますが、Claude Code はプライマリモデルより小さいコンテキストウィンドウを持つモデルにはフォールバックしません。そこで要約すると、会話の一部が先に切り捨てられてしまうためです。すべてのフォールバックがより小さい場合、圧縮は元のエラーを表示し、再試行できます。

550 

551Claude Code はチェーンを[サブエージェント](/docs/ja/sub-agents)にも適用します。サブエージェントのリクエストがフェイルオーバーすると、Claude Code は設定されたフォールバックモデルを順に試し、サブエージェントはリクエストを受け付けたモデルで処理を続行します。セッションのモデルは変わりません。v2.1.247 より前は、チェーンの対象となる失敗が発生するとサブエージェントが終了していました。

413 552 

414<h3 id="automatic-model-fallback">553<h3 id="automatic-model-fallback">

415 自動モデルフォールバック554 自動モデルフォールバック

416</h3>555</h3>

417 556 

418このセクションは Fable 5 からのコンテンツベースのフォールバックをカバーしています。モデルが過負荷状態または利用不可の場合の可用性ベースのフォールバックについては、[フォールバックモデルチェーン](#fallback-model-chains) を参照してください。557このセクションでは、Fable モデル、Opus 5.5、Sonnet 5.5、Opus 5 からのコンテンツに基づくフォールバックについて説明します。モデルが過負荷状態または利用不可の場合の可用性に基づくフォールバックについては、[フォールバックモデルチェーン](#fallback-model-chains)を参照してください。

558 

559Fable モデル、Opus 5.5、Sonnet 5.5、Opus 5 は安全性分類器とともに動作し、分類器が最も頻繁に警告するのはサイバーセキュリティと生物学に関するコンテンツです。分類器がリクエストを警告し、警告されたカテゴリにフォールバックモデルがある場合、Claude Code はそのモデルでリクエストを再実行し、トランスクリプトに通知を表示します。この 2 つのカテゴリについて、フォールバックモデルは拒否したモデルによって異なります。

419 560 

420Fable 5 はサイバーセキュリティと生物学コンテンツ用のセーフティ分類器で実行されます。分類器がリクエストにフラグを立てると、Claude Code はそのリクエストをプロバイダーのデフォルト Opus モデルで再実行し、トランスクリプトに通知を表示します。Anthropic API、[LLM gateway](/docs/ja/llm-gateway) デプロイメント、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws) では、そのモデルは Opus 4.8 です。[Claude apps gateway](/docs/ja/claude-apps-gateway) では、[`opus` エイリアス](#environment-variables) を別のモデルで指す場合を除き、Opus 4.7 です。561* **Fable 5.1、Fable 5、Opus 5.5**:生物学で警告されたリクエストは Opus 5 で、サイバーセキュリティで警告されたリクエストは Opus 4.8 で再実行されます。

562* **Sonnet 5.5**:サイバーセキュリティで警告されたリクエストは Sonnet 5 で再実行されます。Sonnet 5.5 には生物学のフォールバックモデルがないため、生物学で警告されたリクエストは代わりに拒否で終了します。

563* **Opus 5**:サイバーセキュリティで警告されたリクエストは Opus 4.8 で再実行されます。Opus 5 は独自の生物学分類器をフォールバックモデルなしで実行するため、生物学で警告されたリクエストは代わりに拒否で終了します。

421 564 

422セッションはその Opus モデルで続行されます。Fable 5 に戻るには、`/model fable` を実行します。565Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry では、Claude Code はこれらのターゲットを代わりにデプロイのモデル ID を通じて解決します。[Bedrock、Agent Platform、Foundry でフォールバックを有効にする](#enable-fallback-on-bedrock-agent-platform-and-foundry)を参照してください。

423 566 

424フォールバックターゲットは [`availableModels`](#restrict-model-selection) に対してチェックされます。ブロックされている場合、フォールバックは発生しません。拒否は通常のエラーとして表示され、セッションのモデルは変更されません。567フォールバック後、セッションはフォールバックモデルで続行されます。元のモデルに戻るには、[`/model`](#setting-your-model) を実行します。

568 

569カテゴリに基づくフォールバックには Claude Code v2.1.219 以降が必要です。v2.1.219 より前は、警告された Fable 5 のリクエストはすべてプロバイダーのデフォルトの Opus モデルで再実行され、Opus 5 はフォールバック元ではありませんでした。

570 

571フォールバックモデルは [`availableModels`](#restrict-model-selection) と照合されます。ブロックされている場合、フォールバックは発生しません。拒否は通常のエラーとして表示され、セッションのモデルは変わりません。

425 572 

426<h4 id="check-what-triggered-fallback">573<h4 id="check-what-triggered-fallback">

427 フォールバックをトリガーしたものを確認574 フォールバックのきっかけを確認する

428</h4>575</h4>

429 576 

430フォールバックはセッションの最初のリクエストで、何か異常を送信する前にトリガーできます。最初のリクエストは CLAUDE.md コンテンツと git ステータスなどのワークスペースコンテキストを含むためです。セキュリティまたは生物学資料を含むリポジトリは、そのコンテキストだけで分類器をトリガーできます。577フォールバックは、特殊な内容を何も送信する前に、セッションの最初のリクエストで発生することがあります。最初のリクエストには、CLAUDE.md の内容や git status などのワークスペースのコンテキストが含まれるためです。セキュリティや生物学に関する資料を含むリポジトリでは、そのコンテキストだけで分類器が反応することがあります。

431 578 

432カスタマイズがトリガーかどうかを確認するには、`claude --safe-mode` でセッションを開始します。これは CLAUDE.md、skills、MCP サーバー、hooks などのカスタマイズを無効にします。Git ステータスとディレクトリ名はカスタマイズではなく、引き続き含まれます。579カスタマイズがきっかけかどうかを確認するには、`claude --safe-mode` でセッションを開始します。これにより、CLAUDE.md、スキル、MCP サーバー、フックなどのカスタマイズが無効になります。git status やディレクトリ名はカスタマイズではないため、引き続き含まれます。

433 580 

434<h4 id="ask-before-switching">581<h4 id="ask-before-switching">

435 切り替え前に確認582 切り替える前に確認する

436</h4>583</h4>

437 584 

438リクエストにフラグが立てられるたびに何が起こるかを決定するには、自動的に切り替える代わりに `/config` を実行し、「メッセージにフラグが立てられたときにモデルを切り替える」をオフにします。フラグが立てられたリクエストはセッションを一時停止し、2 つのオプションがあります。Opus モデルに切り替えるか、プロンプトを編集して Fable 5 で再試行します。585自動的に切り替えるのではなく、リクエストが警告されるたびにどうするかを判断したい場合は、`/config` を実行して **Switch models when a message is flagged** をオフにするか、設定ファイルで [`switchModelsOnFlag`](/docs/ja/settings-reference#switchmodelsonflag) を `false` に設定します。すると、警告されたリクエストはセッションを一時停止し、フォールバックモデルに切り替えるか、プロンプトを編集して現在のモデルで再試行するかの 2 つの選択肢を表示します。

439 586 

440いくつかのケースは異なる動作をします。587次の場合は動作が異なります。

441 588 

442* 両方のモデルが同じリクエストにフラグを立てた場合、プロンプトを編集して再試行するか、新しいセッションを開始できます。589* Opus 5 や Sonnet 5.5 での生物学の警告のように、警告されたカテゴリにフォールバックモデルがない場合、Claude Code は確認を表示せず、リクエストは拒否で終了します。

443* モバイル [Claude Code on the web](/docs/ja/claude-code-on-the-web) セッションでは、編集と再試行はサポートされていません。モデルを切り替えるか、デスクトップブラウザまたはデスクトップアプリからセッションを続行します。590* 両方のモデルが同じリクエストを警告した場合は、プロンプトを編集して再試行するか、新しいセッションを開始できます。

444* [非対話モード](/docs/ja/cli-reference#cli-flags) と、プロンプトを表示できない SDK 統合では、フラグが立てられたリクエストは拒否で終了します。591* モバイルアプリ上の[クラウドセッション](/docs/ja/claude-code-on-the-web)では、編集して再試行することはできません。モデルを切り替えるか、デスクトップのブラウザまたはデスクトップアプリからセッションを続行してください。

445* フォールバックターゲットが [`availableModels`](#restrict-model-selection) でブロックされている場合、プロンプトは表示されません。フラグが立てられたリクエストは拒否で終了し、ターゲットがブロックされている場合の自動フォールバックと同じです。592* 確認を表示できない[非対話モード](/docs/ja/cli-reference#cli-flags)や SDK 統合では、警告されたリクエストは代わりに拒否でターンを終了します。

593* フォールバック先が [`availableModels`](#restrict-model-selection) によってブロックされている場合、Claude Code は確認を表示しません。ターゲットがブロックされている場合の自動フォールバックと同様に、警告されたリクエストは拒否で終了します。

446 594 

447<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">595<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">

448 Bedrock、Agent Platform、Foundry でフォールバックを有効化596 Bedrock、Agent Platform、Foundry でフォールバックを有効にする

449</h4>597</h4>

450 598 

451[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)、[Microsoft Foundry](/docs/ja/microsoft-foundry) では、モデル ID はプロバイダー固有であるため、自動フォールバックは Claude Code が関連する両方のモデルを識別できる場合にのみ動作します。599[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/ja/google-vertex-ai)、[Microsoft Foundry](/docs/ja/microsoft-foundry) では、モデル ID がプロバイダー固有であるため、自動フォールバックは Claude Code が関係する各モデルを識別できる場合にのみ動作します。

452 600 

453* Claude Code は現在のモデルを Fable 5 として認識する必要があります。モデル ID に `claude-fable-5` が含まれるか、`ANTHROPIC_DEFAULT_FABLE_MODEL` の値と一致するか、[`modelOverrides`](#override-model-ids-per-version) でマップされています。601* Claude Code が現在のモデルをフォールバック元として認識する必要があります。Fable 5.1 と Fable 5 は、モデル ID に `claude-fable-5` が含まれる場合、`ANTHROPIC_DEFAULT_FABLE_MODEL` の値と一致する場合、または [`modelOverrides`](#override-model-ids-per-version) でマッピングされている場合に認識されます。Opus 5.5、Sonnet 5.5、Opus 5 は、プロバイダーのモデル ID または [`modelOverrides`](#override-model-ids-per-version) のマッピングによって認識されます。

454* フォールバックターゲットは Opus モデルに解決される必要があります。`ANTHROPIC_DEFAULT_OPUS_MODEL` が設定されている場合はその値、それ以外はプロバイダーのモデルリストの Opus 4.8 エントリ。602* どのモデルが拒否したかにかかわらず、Opus のターゲットがデプロイで解決される必要があります。`ANTHROPIC_DEFAULT_OPUS_MODEL` を設定するか、プロバイダーのモデルリストに Opus 4.8 のエントリを残してください。どちらもない場合、Sonnet 5.5 を含むすべてのフォールバック元モデルでフォールバックはオフのままとなり、警告されたリクエストは拒否で終了します。

603* 警告されたカテゴリのフォールバックモデルがデプロイで解決される必要があります。Fable モデル、Opus 5.5、Opus 5 からの場合、`ANTHROPIC_DEFAULT_OPUS_MODEL` を設定すると、フォールバックがあるすべてのカテゴリについて、警告されたリクエストはそのモデルで再実行されます。ただし、Opus 5 での生物学の警告は引き続き拒否で終了します。設定しない場合、サイバーセキュリティで警告されたリクエストは Opus 4.8 のエントリで再実行され、Fable モデルまたは Opus 5.5 からの生物学で警告されたリクエストは Opus 5 のエントリで再実行されます。Sonnet 5.5 からの場合、サイバーセキュリティで警告されたリクエストは `ANTHROPIC_DEFAULT_SONNET_MODEL` で設定したモデルで再実行されるか、設定しない場合はプロバイダーのモデルリストにある Sonnet 5 のエントリで再実行されます。

455 604 

456どちらかのモデルが識別できない場合、Claude Code は自動的に切り替わりません。フラグが立てられたリクエストは拒否メッセージで終了し、[`/model`](#setting-your-model) でモデルを切り替えて再試行できます。これらのプロバイダーで自動フォールバックを有効にするには、`ANTHROPIC_DEFAULT_FABLE_MODEL` を Fable 5 モデル ID に、`ANTHROPIC_DEFAULT_OPUS_MODEL` を Opus 4.8 モデル ID に設定します。605いずれかのモデルを識別できない場合、Claude Code は切り替えません。警告されたリクエストは拒否メッセージで終了し、[`/model`](#setting-your-model) でモデルを切り替えて再試行できます。両方のモデルを識別できるようにするには、フォールバック元モデルに応じて次の固定設定を行います。

606 

607* **Fable モデル**:Claude Code がフォールバック元として認識できるよう、`ANTHROPIC_DEFAULT_FABLE_MODEL` に Fable のモデル ID を設定します。

608* **すべてのフォールバック元モデル**:フォールバックをオンにし、警告されたカテゴリにターゲットを与えるため、`ANTHROPIC_DEFAULT_OPUS_MODEL` に Opus のモデル ID を設定します。Opus ファミリー以外のモデルや、拒否したモデル自体を指定した場合は、拒否がそのまま残ります。

609* **Sonnet 5.5**:Opus の固定設定に加えて、`ANTHROPIC_DEFAULT_SONNET_MODEL` を設定するか、プロバイダーのモデルリストに Sonnet 5 のエントリを残して、リクエストを再実行するモデルを用意します。Sonnet ファミリー以外のモデルや Sonnet 5.5 自体を指定した Sonnet の固定設定では、拒否がそのまま残ります。

457 610 

458<h4 id="security-research-and-biology-workloads">611<h4 id="security-research-and-biology-workloads">

459 セキュリティ研究と生物学ワークロード612 セキュリティ研究と生物学のワークロード

460</h4>613</h4>

461 614 

462攻撃的なセキュリティまたは生物学のワークロード(ペネトレーションテスト、Capture the Flag(CTF)演習、生物学隣接コードベースを含む)は頻繁にフォールバックをトリガーし、多くの場合最初のリクエストで。実質的な生物学作業の場合、ほぼすべてのリクエストが再ルーティングされることを期待してください。615ペネトレーションテスト、Capture the Flag(CTF)演習、生物学に関連するコードベースなど、攻撃的セキュリティや生物学のワークロードでは、フォールバックが頻繁に、多くの場合最初のリクエストで発生します。Fable 5.1、Fable 5、Opus 5.5 で本格的な生物学の作業を行う場合、Claude Code は最初に警告されたリクエストの時点でセッションを Opus 5 に移行し、Opus 5 には生物学のフォールバックがないため、その後の生物学で警告されたリクエストはそこで拒否となります。Opus 5 と Sonnet 5.5 では、最初に警告されたリクエストからその拒否が発生します。

463 616 

464これはこれらのドメイン用の予想されるルーティングであり、アカウントフラグではありません。組織がこの作業に Fable クラスの機能を必要とする場合、信頼されたアクセスプログラムについて Anthropic アカウントチームに問い合わせてください。617これはこれらの分野における想定どおりのルーティングであり、アカウントに対する警告ではありません。組織がこの作業に Fable クラスの能力を必要とする場合は、Anthropic のアカウントチームに信頼済みアクセスプログラムについてお問い合わせください。

465 618 

466<h3 id="adjust-effort-level">619<h3 id="adjust-effort-level">

467 努力レベルの調整620 effort レベルを調整する

468</h3>621</h3>

469 622 

470[努力レベル](https://platform.claude.com/docs/ja/build-with-claude/effort) は適応的推論を制御し、タスクの複雑さに基づいて各ステップで思考するかどうか、どの程度思考するかをモデルが決定できるようにします。低い努力はシンプルなタスクではより高速で安価ですが、高い努力は複雑な問題に対してより深い推論を提供します。623[effort レベル](https://platform.claude.com/docs/en/build-with-claude/effort)はアダプティブ推論を制御します。アダプティブ推論では、タスクの複雑さに基づいて、各ステップで思考するかどうか、どの程度思考するかをモデルが判断します。低い effort は単純なタスクに対してより高速かつ低コストで、高い effort は複雑な問題に対してより深い推論を提供します。

471 624 

472利用可能な努力レベルはモデルによって異なります。ここに記載されていないモデルは努力をサポートしていません。625利用可能な effort レベルはモデルによって異なります。ここに記載されていないモデルは effort をサポートしていません。

473 626 

474| モデル | レベル |627| モデル | レベル |

475| :- | :- |628| :- | :- |

476| Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |629| Fable 5.1 と Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |

477| Sonnet 5、Opus 4.8、Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |630| Opus 5.5、Sonnet 5.5、Opus 5、Sonnet 5、Opus 4.8、Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |

478| Opus 4.6 と Sonnet 4.6 | `low`、`medium`、`high`、`max` |631| Opus 4.6 と Sonnet 4.6 | `low`、`medium`、`high`、`max` |

479 632 

480アクティブなモデルがサポートしないレベルを設定した場合、Claude Code は設定したレベル以下の最高サポートレベルにフォールバックします。例えば、`xhigh` は Opus 4.6 では `high` として実行されます。組織は、モデルに対して利用可能なレベルをキャップすることもできます。[組織努力制限](#organization-effort-limits) を参照してください。633アクティブなモデルがサポートしていないレベルを設定した場合、Claude Code は設定したレベル以下でサポートされている最も高いレベルにフォールバックします。たとえば、Opus 4.6 では `xhigh` は `high` として動作します。組織またはユーザー自身の設定によって、モデルが提供するレベルに上限を設けることもできます。[組織の effort 制限](#organization-effort-limits)を参照してください。

481 634 

482デフォルト努力は Fable 5、Sonnet 5、Opus 4.8、Opus 4.6、Sonnet 4.6 では `high` で、Opus 4.7 では `xhigh` です。635Claude Code は、次の順序でセッションの effort レベルを解決し、最初に該当したものを採用します。

483 636 

484Fable 5、Opus 4.8、または Opus 4.7 を初めて実行する場合、Claude Code は、別のモデルに対して以前に異なるレベルを設定していても、そのモデルのデフォルト努力を適用します。Fable 5 と Opus 4.8 では `high`、Opus 4.7 では `xhigh` です。切り替え後に `/effort` を再度実行して、別のレベルを選択します。そのデフォルトはセッション全体で保持され、明示的な努力選択(インタラクティブセッションで `/effort` を実行するか、`--effort` で起動するなど)を行うまで保持されます。6371. 明示的な選択:[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ja/env-vars#variables) 環境変数、`--effort` を付けた起動、またはセッション内での `/effort`([非対話の `/effort` は効果の範囲が狭くなります](#non-interactive-effort))

6382. 設定:モデルに対して保存したレベルまたは [`effortLevel`](/docs/ja/settings-reference#effortlevel) キー。これらの間および設定ファイル間の優先順位は [`modelSettings`](/docs/ja/settings-reference#modelsettings) に記載されています

6393. モデルのデフォルトの effort:effort をサポートするすべてのモデルで `high`。ただし、Opus 5.5 と Sonnet 5.5 のデフォルトは `medium`、Opus 4.7 のデフォルトは `xhigh` です。また、組織が[組織のデフォルトモデル](#organization-default-model)にデフォルトの effort レベルを設定している場合、そのモデルを実行するときはそのレベルがデフォルトになります

485 640 

486`low`、`medium`、`high`、`xhigh` はセッション全体で保持されます。[非対話モード](/docs/ja/headless) で `/effort` を実行するか、`-p` フラグで設定されたレベルは現在のセッションのみに適用され、デフォルトとして保存されません。非対話 `/effort` は上記のモデルデフォルトホールドをリリースすることもできません。Fable 5、Opus 4.8、Opus 4.7 では `Not applied` を報告し、セッションはモデルのデフォルト努力に留まるため、代わりに起動時に `--effort` を渡します。`max` は制約なしで最も深い推論を提供し、現在のセッションのみに適用されます。ただし、`CLAUDE_CODE_EFFORT_LEVEL` 環境変数を通じて設定された場合を除きます。641Opus 5.5 は、上記のいずれかのソースでレベルが設定されていない限り `medium` で開始され、ユーザー設定ファイルのトップレベルの `effortLevel` は Opus 5.5 には適用されません。このキーは、Claude Code がモデルごとにレベルを保存するようになる前に `/effort` が書き込んでいた古い形式です。Opus 5、Fable 5.1、およびそれ以前のモデルでは以前と同様に適用され続けますが、Opus 5.5 とそれ以降にリリースされたモデルは、`/effort` または `/model` ピッカーでレベルを選ぶまで、それぞれのデフォルトで開始されます。プロジェクト設定、ローカル設定、管理設定のトップレベルの `effortLevel`、または `--settings` で渡されたものは、すべてのモデルに適用されます。

487 642 

488`/effort` メニューは `ultracode` も提供します。Ultracode はモデル努力レベルではなく Claude Code 設定です。モデルに `xhigh` を送信し、さらに Claude が実質的なタスク用に [dynamic workflows](/docs/ja/workflows) をオーケストレートします。現在のセッションのみに適用されます。643自分のマシン上の対話セッションで `low`、`medium`、`high`、`xhigh` を設定する場合、確定の方法によって有効期間を選べます。

489 644 

490以下のいずれかを通じて ultracode をオンにできます。645* `/effort` スライダーまたは `/model` ピッカーでの `Enter`、または `/effort` の後にレベルを入力:レベルをデフォルトとして保存し、以降のセッションにも適用します

646* `/effort` スライダーまたは `/model` ピッカーでの `s`:このセッションにのみレベルを適用します。Claude Code v2.1.257 以降が必要です

491 647 

492* **`/effort`**:`/effort ultracode` を実行するか、メニューから選択648Claude Code はユーザー設定の [`modelSettings`](/docs/ja/settings-reference#modelsettings) キーの下にモデルごとのレベルを保存するため、各モデルはそれぞれ独自の保存済みレベルを保持します。

493* **`--effort` フラグ**:`claude --effort ultracode` で起動します。これはセッションを `xhigh` 努力で開始し、ultracode をオンにします

494* **`--settings` または Agent SDK 制御リクエスト**:`"ultracode": true` を渡します。[`applyFlagSettings()`](/docs/ja/agent-sdk/typescript#applyflagsettings) リクエストは `effortLevel: "ultracode"` も受け入れます

495 649 

496`--effort` フラグまたは Agent SDK `effortLevel` 値に `ultracode` を渡すには、Claude Code v2.1.203 以降が必要です。v2.1.203 より前では、`--effort ultracode` は `Unknown --effort value 'ultracode'` を出力し、セッションはデフォルト努力で開始されました。650`max` は最も深い推論レベルです。`CLAUDE_CODE_EFFORT_LEVEL` 環境変数で設定しない限り、Claude Code は `max` を現在のセッションにのみ適用します。

497 651 

498保持された `effortLevel` 設定と `CLAUDE_CODE_EFFORT_LEVEL` 環境変数は `ultracode` を受け入れません。652<Note>

653 [Remote Control](/docs/ja/remote-control#what-connected-devices-see) で接続したスマートフォンやブラウザの effort コントロールから選んだレベルは、そのセッションにのみ適用されます。

654</Note>

655 

656<span id="non-interactive-effort" />

657 

658[`-p` 実行](/docs/ja/headless)で `/effort` を使ってレベルを設定した場合、Claude Code はそのセッションにのみ適用し、デフォルトとしては保存しません。

659 

660`/effort` スライダーには **Ultracode** トグルもあります。Ultracode はモデルの effort レベルではなく Claude Code の設定です。オンにすると、Claude はセッションの effort レベルにかかわらず、本格的なタスクに対して[動的ワークフロー](/docs/ja/workflows)をオーケストレーションします。永続的に設定できる場所については、[`ultracode`](/docs/ja/settings-reference#ultracode) 設定を参照してください。

661 

662`/effort` または `ultracode` 設定で ultracode をオンまたはオフにしても、effort レベルは変わりません。`--effort ultracode` フラグと Agent SDK の `effortLevel: "ultracode"` 値は、ultracode をオンにすると同時にレベルを `xhigh` に設定します。`/effort` スライダーや `/model` ピッカーでレベルを選んでも、ultracode はそのままです。

663 

664ultracode は次のいずれかの方法でオンにできます。

665 

666* **`/effort`**:`/effort ultracode` を実行すると現在のセッションでオンになり、`/effort ultracode off` を実行するとオフになります。`/effort` スライダーでは、`Tab` を押して **Ultracode** トグルを切り替え、`Enter` で適用します

667* **`--effort` フラグ**:`claude --effort ultracode` で起動すると、`xhigh` の effort で ultracode をオンにした状態でセッションが開始されます

668* **`ultracode` 設定**:設定ファイル、`--settings`、または Agent SDK のコントロールリクエストで [`"ultracode": true`](/docs/ja/settings-reference#ultracode) を設定します。[`applyFlagSettings()`](/docs/ja/agent-sdk/typescript#applyflagsettings) リクエストは `effortLevel: "ultracode"` も受け付け、ultracode をオンにして effort レベルを `xhigh` に設定します

669 

670`/effort ultracode off` 形式、スライダーのトグル、`xhigh` 以外の effort レベルで ultracode をオンのまま維持することには、Claude Code v2.1.284 以降が必要です。v2.1.284 より前は、ultracode をオンにするとセッションが `xhigh` の effort に設定され、別のレベルを選ぶとオフになり、`xhigh` 未満の effort 上限があると利用できませんでした。

671 

672`--effort` フラグまたは Agent SDK の `effortLevel` 値に `ultracode` を渡すには、Claude Code v2.1.203 以降が必要です。v2.1.203 より前は、`--effort ultracode` は `Unknown --effort value 'ultracode'` を出力し、セッションはデフォルトの effort で開始されていました。

499 673 

500ultracode が利用不可の場合(例えば [workflows がオフ](/docs/ja/workflows#turn-workflows-off) の場合)、`--effort ultracode` は `xhigh` 努力のみを設定します。674永続化される `effortLevel` 設定と `CLAUDE_CODE_EFFORT_LEVEL` 環境変数は `ultracode` を受け付けません。`CLAUDE_CODE_EFFORT_LEVEL` または [effort 上限](#organization-effort-limits)によってセッションのレベルが設定されている場合、ultracode はそのレベルでオンのままになります。

675 

676<span id="when-ultracode-is-available" />

677 

678次の場合、Ultracode は利用できません。

679 

680* [ワークフローがオフになっている](/docs/ja/workflows#turn-workflows-off)

681* モデルが `xhigh` の effort をサポートしていない

682 

683これらの場合、`--effort ultracode` は ultracode をオフにした状態で、モデルと上限が許容する最も高い effort レベル(最大 `xhigh`)でセッションを開始します。

501 684 

502<h4 id="choose-an-effort-level">685<h4 id="choose-an-effort-level">

503 努力レベルの選択686 effort レベルを選ぶ

504</h4>687</h4>

505 688 

506各レベルはトークン支出と機能をトレードオフします。デフォルトはほとんどのコーディングタスクに適しています。別のバランスが必要な場合は調整します。689各レベルは、トークン消費と能力のトレードオフです。デフォルトはほとんどのコーディングタスクに適しています。異なるバランスが必要な場合に調整してください。

507 690 

508| レベル | 使用する場合 |691| レベル | 使用する場面 |

509| :- | :- |692| :- | :- |

510| `low` | インテリジェンスに敏感でない短くスコープされたレイテンシに敏感なタスク用に予約 |693| `low` | ブレインストーミング、最初の下書き、名前の変更のような小さな変更など、結果を 1 つずつ確認する素早いやり取り |

511| `medium` | インテリジェンスをトレードオフできるコスト敏感な作業のトークン使用量を削減 |694| `medium` | Opus 5.5 と Sonnet 5.5 のデフォルトで、新機能の実装など、範囲が明確な日常的なエンジニアリング作業に適しています。その他のモデルでは、ある程度の知能と引き換えにできるコスト重視の作業でトークン使用量を削減します |

512| `high` | トークン使用量とインテリジェンスのバランス。Fable 5、Sonnet 5、Opus 4.8、Opus 4.6、Sonnet 4.6 でのデフォルト |695| `high` | 既存のコードベースのバグ修正など、検証が重要な作業やエッジケースが発生しやすい作業。Opus 5.5、Sonnet 5.5、Opus 4.7 を除くすべてのモデルのデフォルト |

513| `xhigh` | より高いトークン支出での深い推論。Opus 4.7 でのデフォルト |696| `xhigh` | より多くのトークン消費でより深い推論。Opus 4.7 のデフォルト |

514| `max` | 難しいタスクのパフォーマンスを改善できますが、収益逓減を示す可能性があり、過度な思考の傾向があります。広く採用する前にテスト |697| `max` | セキュリティ脆弱性の発見など、ユーザーの関与なしに Claude に取り組ませたい難しい問題。`max` は収穫逓減を示すことがあり、考えすぎる傾向があるため、広く採用する前にテストしてください |

515| `ultracode` | 各実質的なタスク用に `xhigh` ごとのメッセージ推論で [dynamic workflow](/docs/ja/workflows) を計画する Claude Code 設定。セッションのみ |698| `ultracode` | レベルではなく Claude Code の設定:任意の effort レベルで、本格的なタスクごとに[動的ワークフロー](/docs/ja/workflows)を計画します |

516 699 

517努力スケールはモデルごとに調整されるため、同じレベル名はモデル全体で同じ基盤値を表しません。700Opus 5.5 と Fable 5.1 でのテストでは、高いレベルの Claude は回答前により多くのエッジケースをテストし、作業のより多くの部分を検証しました。また、自らの判断でより多くの選択を行いました。低いレベルでは、Claude はより早く出発点を返しました。これは、結果を 1 つずつ確認して次のステップを方向付ける作業に適しています。同じタスクを各レベルで実行した例については、ブログの [Using Claude Code: Spending your effort](https://claude.dev/blog/spending-your-effort/) をお読みください。

701 

702effort のスケールはモデルごとに調整されているため、同じレベル名でもモデル間で同じ基礎値を表すわけではありません。

703 

704Opus 5.5 は[デフォルトで `medium`](#adjust-effort-level) であり、Opus 5 のデフォルトである `high` より 1 段階低くなっています。Anthropic のテストでは、`medium` の Opus 5.5 は、コーディングやナレッジワークの評価で `high` の Opus 5 と同等以上の結果を示しています。同じレベルでは、Opus 5.5 は Opus 5 よりもターンあたりの思考量が多くなる傾向があります。Opus 5 から Opus 5.5 に移行する際は、Opus 5 で使用していたレベルを引き継ぐのではなく、`medium` から始めてください。自分の作業に対してレベルをテストするには、Opus 5.5 のプロンプティングガイドの [Calibrate effort](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#calibrate-effort) を参照してください。

518 705 

519<h4 id="use-ultrathink-for-one-off-deep-reasoning">706<h4 id="use-ultrathink-for-one-off-deep-reasoning">

520 1 回限りの深い推論に ultrathink を使用707 一度限りの深い推論に ultrathink を使う

521</h4>708</h4>

522 709 

523セッション設定を変更せずに 1 回限りの深い推論を行うには、プロンプトの任意の場所に `ultrathink` を含めます。Claude Code はキーワードを認識し、インコンテキスト命令を追加します。API に送信される努力レベルは変更されません。「think」、「think hard」、「think more」などの他のフレーズは通常のプロンプトテキストとして渡され、キーワードとして認識されません。710プロンプトのどこかに `ultrathink` を含めると、セッションの effort 設定を変更せずに、そのターンでより深い推論を要求できます。Claude Code はこのキーワードを認識し、コンテキスト内に指示を追加します。API に送信される effort レベルは変わりません。「think」、「think hard」、「think more」などのその他の表現は、Claude Code が通常のプロンプトテキストとしてそのまま渡し、キーワードとしては認識しません。

524 711 

525<h4 id="set-the-effort-level">712<h4 id="set-the-effort-level">

526 努力レベルの設定713 effort レベルを設定する

527</h4>714</h4>

528 715 

529努力は以下のいずれかを通じて変更できます。716effort は次のいずれかの方法で変更できます。

530 717 

531* **`/effort`**:引数なしで `/effort` を実行してインタラクティブスライダーを開くか、`/effort` の後にレベル名を続けて直接設定するか、`/effort auto` を実行してモデルのデフォルトにリセット718* **`/effort`**:引数なしで `/effort` を実行するとインタラクティブなスライダーが開き、`/effort` の後にレベル名を続けると直接設定でき、`/effort auto` を実行するとアクティブなモデルの保存済みレベルがクリアされます。Claude が作業中でも実行でき、Claude Code が[キャッシュの警告](/docs/ja/prompt-caching#changing-effort-level)を表示した場合はそれを確認すると、Claude Code はターン内の次のリクエストに新しいレベルを適用します

532* **`/model` 内**:モデルを選択する際に左右矢印キーを使用して努力スライダーを調整719* **`/model` 内**:モデルを選択する際に、左右の矢印キーで effort スライダーを調整します

533* **`--effort` フラグ**:Claude Code を起動する際にレベル名を渡して、単一セッションのレベルを設定720* **`--effort` フラグ**:Claude Code の起動時にレベル名を渡して、1 つのセッションに設定します

534* **環境変数**:`CLAUDE_CODE_EFFORT_LEVEL` をレベル名または `auto` に設定721* **環境変数**:`CLAUDE_CODE_EFFORT_LEVEL` にレベル名または `auto` を設定します

535* **設定**:設定ファイルで `effortLevel` を `low`、`medium`、`high`、`xhigh` に設定します。`max` と `ultracode` は [セッションのみ](#adjust-effort-level) であり、ここでは受け入れられません722* **設定**:[`modelSettings`](/docs/ja/settings-reference#modelsettings) でモデルごとのレベルを設定するか、レベルが設定されていないモデルのデフォルトとして [`effortLevel`](/docs/ja/settings-reference#effortlevel) に `low`、`medium`、`high`、`xhigh` のいずれかを設定します。どちらのキーでも `max` はレベルとして受け付けられず、`ultracode` には専用の [`ultracode`](/docs/ja/settings-reference#ultracode) キーがあります

536* **Skill と subagent frontmatter**:[skill](/docs/ja/skills#frontmatter-reference) または [subagent](/docs/ja/sub-agents#supported-frontmatter-fields) markdown ファイルで `effort` を設定して、その skill または subagent が実行される際の努力レベルをオーバーライド723* **接続されたデバイスから**:[Remote Control](/docs/ja/remote-control#what-connected-devices-see) セッションで、スマートフォンまたはブラウザの effort コントロールからレベルを選びます。レベルは現在のセッションにのみ適用されます。Claude Code v2.1.234 以降が必要です

724* **スキルとサブエージェントのフロントマター**:[スキル](/docs/ja/skills#frontmatter-reference)または[サブエージェント](/docs/ja/sub-agents#supported-frontmatter-fields)の markdown ファイルで `effort` を設定すると、そのスキルまたはサブエージェントの実行時に effort レベルを上書きします

537 725 

538環境変数がすべての他の方法より優先され、次に設定されたレベル、次にモデルのデフォルトが優先されます。Frontmatter 努力は、その skill または subagent がアクティブな場合に適用され、セッションレベルをオーバーライドしますが、環境変数はオーバーライドしません。726フロントマターの effort は、そのスキルまたはサブエージェントがアクティブなときに適用され、セッションのレベルは上書きしますが、環境変数は上書きしません。[`maxEffortLevel`](/docs/ja/settings-reference#maxeffortlevel) または[組織の effort 上限](#organization-effort-limits)は、スキルやサブエージェントが実行されるレベルを引き続き制限します。

539 727 

540努力スライダーは、サポートされているモデルが選択されている場合、`/model` に表示されます。現在の努力レベルはロゴとスピナーの横にも表示されます(例:「with low effort」)。`/model` を開かなくても、どの設定がアクティブかを確認できます。728[管理設定](/docs/ja/managed-settings)で `effortLevel` を設定した場合、Claude Code は[effort の解決順序](#adjust-effort-level)の設定のステップでそれを適用し、ユーザーは引き続き `/effort` や `--effort` でレベルを変更できます。ユーザーを特定のレベル以下に制限するには、[`maxEffortLevel`](/docs/ja/settings-reference#maxeffortlevel) を設定します。

729 

730サポートされているモデルが選択されている場合、effort スライダーは `/model` に表示されます。現在の effort レベルはセッションヘッダーのモデル名の横にも「with low effort」のように表示されるため、`/model` を開かずにどの設定が有効かを確認できます。フッターにも、起動時と変更時に effort レベルが短時間表示されます。

541 731 

542<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">732<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">

543 適応的推論と固定思考予算733 アダプティブ推論と固定の思考予算

544</h4>734</h4>

545 735 

546適応的推論は各ステップで思考をオプションにするため、Claude はルーチンプロンプトにより速く応答でき、より深い思考から利益を得るステップのために深い思考を予約できます。現在のレベルが生成するよりも Claude がより頻繁に、またはより少なく思考することを望む場合、プロンプトまたは `CLAUDE.md` で直接そう言うことができます。モデルはその努力設定内でそのガイダンスに応答します。736アダプティブ推論では、各ステップで思考が任意になるため、Claude は日常的なプロンプトにはより速く応答し、より深い思考はそれが役立つステップのために取っておけます。現在のレベルよりも思考の頻度を増やしたり減らしたりしたい場合は、プロンプトまたは `CLAUDE.md` で直接そう伝えることができます。モデルは effort 設定の範囲内でその指示に応えます。

547 737 

548Fable 5、Sonnet 5、Opus 4.7 以降は常に適応的推論を使用します。固定思考予算モードと `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` はそれらに適用されません。738Fable モデル、Sonnet 5 以降、Opus 4.7 以降は常にアダプティブ推論を使用します。固定の思考予算モードと `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` はこれらのモデルには適用されません。

549 739 

550Opus 4.6 と Sonnet 4.6 では、`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` を設定して、`MAX_THINKING_TOKENS` で制御される以前の固定思考予算に戻すことができます。[環境変数](/docs/ja/env-vars) を参照してください。740Opus 4.6 と Sonnet 4.6 では、`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` を設定すると、`MAX_THINKING_TOKENS` で制御される以前の固定の思考予算に戻せます。[環境変数](/docs/ja/env-vars)を参照してください。

551 741 

552<h3 id="extended-thinking">742<h3 id="extended-thinking">

553 拡張思考743 拡張思考

554</h3>744</h3>

555 745 

556拡張思考は、Claude が応答する前に発する推論です。[適応的推論](#adjust-effort-level) をサポートするモデルでは、努力レベルは思考がどの程度発生するかの主要な制御です。以下の設定は思考をオンまたはオフにし、それがどのように表示されるかを制御します。746拡張思考は、Claude が応答する前に出力する推論です。[アダプティブ推論](#adjust-effort-level)をサポートするモデルでは、effort レベルが思考量の主な制御手段です。以下の設定は、思考のオン/オフと表示方法を制御します。Anthropic API で思考をオフにしている場合、Opus 5 など[その組み合わせを受け付けない](/docs/ja/errors#effort-isnt-available-with-thinking-turned-off)ことを Claude Code が把握しているモデルには、より高いレベルではなく effort `high` を送信します。

557 747 

558| 制御 | 設定方法 |748| 制御 | 設定方法 |

559| :- | :- |749| :- | :- |

560| 現在のセッションのトグル | macOS では `Option+T`、Windows と Linux では `Alt+T` を押します |750| 現在のセッションで切り替える | macOS では `Option+T`、Windows と Linux では `Alt+T` を押します |

561| グローバルデフォルトを設定 | `/config` を実行して思考モードをトグルします。`~/.claude/settings.json` に `alwaysThinkingEnabled` として保存されます |751| グローバルのデフォルトを設定する | `/config` を実行して思考モードを切り替えます。`~/.claude/settings.json` に `alwaysThinkingEnabled` として保存されます |

562| 努力に関係なく無効化 | [`MAX_THINKING_TOKENS=0`](/docs/ja/env-vars) を設定します。これは Anthropic API 上の Fable 5 を除いて思考をオフにします。[サードパーティプロバイダー](/docs/ja/third-party-integrations) ではこれは `thinking` パラメータを省略し、適応的推論モデルは引き続き思考する可能性があります。他の値は [固定思考予算](#adaptive-reasoning-and-fixed-thinking-budgets) でのみ適用されます |752| 環境変数で無効にする | [`MAX_THINKING_TOKENS=0`](/docs/ja/env-vars) を設定します。これにより、Opus 5.5、Sonnet 5.5、Fable モデルを除き、Anthropic API で思考がオフになります。[サードパーティプロバイダー](/docs/ja/third-party-integrations)では、Claude Code は代わりに `thinking` パラメータを省略するため、アダプティブ推論モデルは引き続き思考する場合があります。その他の値は[固定の思考予算](#adaptive-reasoning-and-fixed-thinking-budgets)の場合にのみ適用されます |

753 

754Opus 5.5、Sonnet 5.5、Fable モデルでは思考をオフにできません。これらのモデルでは、セッションのトグルと `/config` の行に切り替えの代わりに `Thinking can't be turned off` が表示され、保存済みの `alwaysThinkingEnabled: false` や `MAX_THINKING_TOKENS=0` は効果がありません。これらのモデルでは、effort レベルに基づいて、モデルがステップごとにどの程度思考するかを判断します。保存済みの設定は、それを受け付けるモデルに切り替えると再び適用されます。

563 755 

564思考は Fable 5 でオフにすることはできません。セッショントグル、`alwaysThinkingEnabled`、`MAX_THINKING_TOKENS=0` はそこに効果がなく、Fable 5 は努力レベルに基づいて各ステップでどの程度思考するかを決定します。756Claude Code はデフォルトで思考の出力を折りたたみます。`Ctrl+O` を押して詳細モードを切り替えると、推論がグレーの斜体テキストで表示されます。Anthropic API 上の対話セッションはデフォルトで編集済みの思考ブロックを受け取るため、展開時に完全な要約を表示したい場合は、[設定](/docs/ja/settings)で `showThinkingSummaries: true` を設定してください。折りたたまれていても編集済みであっても、生成されたすべての思考トークンに対して課金されます。

565 757 

566思考出力はデフォルトで折りたたまれています。`Ctrl+O` を押して詳細モードをトグルし、推論をグレーのイタリック体テキストとして表示します。Anthropic API 上のインタラクティブセッションはデフォルトで編集された思考ブロックを受け取るため、展開時に完全な要約を利用可能にしたい場合は [設定](/docs/ja/settings) で `showThinkingSummaries: true` を設定します。折りたたまれたまたは編集された場合でも、生成されたすべての思考トークンに対して課金されます。758<a id="extended-context-with-1m" />

567 759 

568<h3 id="extended-context">760<h3 id="extended-context">

569 拡張コンテキスト761 拡張コンテキスト

570</h3>762</h3>

571 763 

572Fable 5、Sonnet 5、Opus 4.6 以降、Sonnet 4.6 は、大規模なコードベースを持つ長いセッション用に [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/ja/build-with-claude/context-windows#context-window-sizes-by-model) をサポートしています。764Fable 5.1、Fable 5、Sonnet 5 以降、Opus 4.6 以降、Sonnet 4.6 は、大規模なコードベースでの長いセッション向けに [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)をサポートしています。

573 765 

574利用可能性はモデルとプランによって異なります。Anthropic API では、Fable 5、Sonnet 5、Opus 4.8、Opus 4.7 は常に 1M ウィンドウで実行されます。Max、Team、Enterprise プランでは、Opus は追加設定なしで自動的に 1M コンテキストにアップグレードされます。これは Team Standard と Team Premium の両方のシートに適用されます。Sonnet 4.6 with 1M context は自動アップグレードの一部ではなく、Max を含むすべてのサブスクリプションプランで [使用クレジット](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans) が必要です。766Anthropic API では、Fable 5.1、Fable 5、Sonnet 5 以降、Opus 4.7 以降は、Pro を含むすべてのプランで 1M ウィンドウで動作します。これらのモデルでは、1M ウィンドウのために `[1m]` バリアントを選択したり、使用クレジットをオンにしたりする必要はありません。Fable の利用自体は、一部のプランでは使用クレジットに請求される場合があります。[Fable と使用クレジット](#fable-and-usage-credits)を参照してください。

575 767 

576| プラン | Opus with 1M context | Sonnet 4.6 with 1M context |768Opus 4.6 と Sonnet 4.6 が 1M に到達するのは `[1m]` バリアントを通じてのみで、そのバリアントへのアクセスはプランによって異なります。Team Standard と Team Premium の両方のシートを含む Max、Team、Enterprise プランでは、1M コンテキストの Opus 4.6 はサブスクリプションに含まれています。1M コンテキストの Sonnet 4.6 は、Max を含むすべてのサブスクリプションプランで[使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)が必要です。

769 

770| プラン | 1M コンテキストの Opus 4.6 | 1M コンテキストの Sonnet 4.6 |

577| - | - | - |771| - | - | - |

578| Max、Team、Enterprise | サブスクリプションに含まれる | [使用クレジット](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans) が必要 |772| Max、Team、Enterprise | サブスクリプションに含まれる | [使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)が必要 |

579| Pro | [使用クレジット](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans) が必要 | [使用クレジット](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans) が必要 |773| Pro | [使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)が必要 | [使用クレジット](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)が必要 |

580| API と従量課金 | フルアクセス | フルアクセス |774| API と従量課金 | フルアクセス | フルアクセス |

581 775 

5821M コンテキストを完全に無効にするには、`CLAUDE_CODE_DISABLE_1M_CONTEXT=1` を設定します。これにより、1M モデルバリアントがモデルピッカーから削除されます。[環境変数](/docs/ja/env-vars) を参照してください。776Claude Code がこれらのプラン要件を確認するのは、Anthropic API に直接接続する場合のみです。`ANTHROPIC_BASE_URL` を [LLM ゲートウェイ](/docs/ja/llm-gateway#subscriptions-and-gateways)に向け、保存済みの claude.ai ログインがアクティブな認証情報のままである場合、Claude Code はプランの使用クレジットを確認しません。`[1m]` オプションは `/model` で引き続き利用でき、リクエストが成功するかどうかはゲートウェイが判断します。v2.1.229 より前は、この構成でアカウントの使用クレジットを確認できない場合、Claude Code は `/model sonnet[1m]` を拒否していました。

583 777 

5841M コンテキストウィンドウは標準モデル価格を使用し、200K を超えるトークンに対するプレミアムはありません。拡張コンテキストがサブスクリプションに含まれているプランでは、使用量はサブスクリプションでカバーされたままです。拡張コンテキストに使用クレジットでアクセスするプランでは、トークンは使用クレジットに請求されます。778<span id="context-window-behind-a-gateway" />

585 779 

586アカウントが 1M コンテキストをサポートしている場合、オプションは Claude Code の最新バージョンのモデルピッカー(`/model`)に表示されます。表示されない場合は、セッションを再起動してみてください。780`ANTHROPIC_BASE_URL` を [LLM ゲートウェイ](/docs/ja/llm-gateway)やその他のプロキシに設定した場合、Claude Code は認識する各モデルに、Anthropic API 上と同じコンテキストウィンドウを割り当てます。Fable 5.1、Fable 5、Sonnet 5 以降、Opus 4.7 以降は、`[1m]` バリアントを選択しなくても 1M ウィンドウを使用でき、Opus 4.6 のように `[1m]` バリアントを通じてのみ 1M に到達するモデルは、バリアントなしでは 200K で動作します。Claude Code は、ゲートウェイやその背後のサーバーが強制するより低い制限を検出できません。ゲートウェイが 200K トークンを超えるリクエストを拒否する場合は、[`/autocompact 200k`](#set-the-auto-compact-window) を実行して、セッションがその境界で圧縮されるようにしてください。

587 781 

588モデルエイリアスまたは完全なモデル名で `[1m]` サフィックスを使用することもできます。7821M コンテキストをオフにするには、`CLAUDE_CODE_DISABLE_1M_CONTEXT=1` を設定します。Claude Code はモデルピッカーから 1M のモデルバリアントを削除します。Sonnet 5 や Fable モデルなど、ネイティブで 1M ウィンドウを持つモデルでは、そのモデルのコンテキストウィンドウを 200K として扱います。

589 783 

590```bash theme={null}784* 自動圧縮がオンの場合、セッションは[自動圧縮](#set-the-auto-compact-window)によって 200K の境界で圧縮されます。Claude Code は自動圧縮のウィンドウをモデルのコンテキストウィンドウに制限するため、自動圧縮のウィンドウを 200K より大きく設定しても制限は解除されません。

591# opus[1m] または sonnet[1m] エイリアスを使用785* 自動圧縮がオフの場合、セッションは圧縮されず、200K の境界で[コンテキスト制限エラー](/docs/ja/errors#prompt-is-too-long)により停止します。

786 

787v2.1.223 より前は、Claude Code が 200K に制限していたのは Sonnet 5、Opus 4.8、Opus 5 のセッションのみでした。[環境変数](/docs/ja/env-vars)を参照してください。

788 

7891M コンテキストウィンドウは標準のモデル料金を使用し、200K を超えるトークンに対する割増料金はありません。拡張コンテキストがサブスクリプションに含まれるプランでは、使用量は引き続きサブスクリプションでカバーされます。使用クレジットを通じて拡張コンテキストにアクセスするプランでは、トークンは使用クレジットに請求されます。

790 

791アカウントが 1M コンテキストをサポートしている場合、最新バージョンの Claude Code では `/model` ピッカーにそのオプションが表示されます。表示されない場合は、セッションを再起動してください。サードパーティプロバイダーでは、デプロイが `ANTHROPIC_DEFAULT_*_MODEL` 変数で[モデルを固定](#pin-models-for-third-party-deployments)していないか確認してください。

792 

793`[1m]` サフィックスは、モデルエイリアスや完全なモデル名とともに使用することもできます。

794 

795```text theme={null}

796# Use the opus[1m] or sonnet[1m] alias

592/model opus[1m]797/model opus[1m]

593/model sonnet[1m]798/model sonnet[1m]

594 799 

595# または完全なモデル名に [1m] を追加800# Or append [1m] to a full model name

596/model claude-opus-4-8[1m]801/model claude-opus-4-8[1m]

597```802```

598 803 

599<h4 id="sonnet-5-context-window">804<h4 id="sonnet-5-5-and-sonnet-5-context-window">

600 Sonnet 5 のコンテキストウィンドウ805 Sonnet 5.5 と Sonnet 5 のコンテキストウィンドウ

601</h4>806</h4>

602 807 

603Anthropic API では、Sonnet 5 は常に 1M コンテキストウィンドウで実行されます。200K バリアントはなく、選択する `[1m]` サフィックスもなく、どのプランでも使用クレジットは必要ありません。セッションはウィンドウがいっぱいになる前に、デフォルトでは約 967K トークンの時点で自動コンパクトされます。別のしきい値を選択するには、[`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ja/env-vars) を設定します。808Anthropic API では、Sonnet 5.5 と Sonnet 5 は常に 1M コンテキストウィンドウで動作します。200K バリアントはなく、選択する `[1m]` サフィックスもなく、どのプランでも使用クレジットは不要です。セッションはウィンドウが埋まる前に、デフォルトで約 967K トークンで自動圧縮されます。別のしきい値を選ぶには、[`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ja/env-vars) を設定してください。

809 

810Claude Code は、[LLM ゲートウェイ](/docs/ja/llm-gateway)やその他のカスタム `ANTHROPIC_BASE_URL` の背後でも、Sonnet 5.5 と Sonnet 5 に同じ 1M ウィンドウを割り当てます。ゲートウェイがより低い制限を強制する場合は、[ゲートウェイの背後でのコンテキストウィンドウ](#context-window-behind-a-gateway)を参照してください。

811 

812次の設定では、代わりにウィンドウを 200K に制限します。

813 

814* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:ネイティブで 1M ウィンドウを持つすべてのモデルのセッションを 200K ウィンドウに制限します。制限がどのように適用されるかについては[拡張コンテキスト](#extended-context)を参照してください。コンテキストに上限を設ける必要があるデプロイに役立ちます。

815 

816<h2 id="context-window-and-auto-compaction">

817 コンテキストウィンドウと自動圧縮

818</h2>

819 

820自動圧縮ウィンドウとは、Claude Code が会話を圧縮する前にコンテキストウィンドウがどこまで埋まってよいかを示すものです。各メカニズムでコンテキスト圧縮が何を保持し何を破棄するかについては、[コンテキスト圧縮後に残るもの](/docs/ja/context-window#what-survives-compaction)を参照してください。

821 

822<h3 id="set-the-auto-compact-window">

823 自動圧縮ウィンドウを設定する

824</h3>

825 

826自動圧縮ウィンドウは次の 3 か所で設定できます。

827 

828* **現在のセッションとそれ以降のセッション**:`/autocompact 500k` のように、値を指定して `/autocompact` を実行します。Claude Code はこの値をユーザー設定に [`autoCompactWindow`](/docs/ja/settings-reference#autocompactwindow) として保存し、現在のセッションに適用します。管理設定など、より優先順位の高い[設定スコープ](/docs/ja/settings#settings-precedence)がこのキーを設定している場合、コマンドは値を保存しますが、セッションではそのスコープのウィンドウが維持され、コマンドはその旨を表示します。使用中のモデル向けに調整されたウィンドウに戻すには、`/autocompact auto` を実行します。

829* **1 回の起動のみ**:Claude Code の起動時に [`--autocompact`](/docs/ja/cli-reference#cli-flags) を渡します。このフラグは、保存済みの設定を変更することなく、その起動に限って設定を上書きします。また、`claude --autocompact auto` を実行すると、保存済みの設定に値があっても、調整済みのウィンドウでセッションが実行されます。`/autocompact` とは異なり、このフラグは管理設定など、より優先順位の高い設定スコープによって無効化されることはありません。

830* **スクリプトおよびクラウド環境**:[`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ja/env-vars) を設定します。この環境変数が設定されている間は、コマンド、フラグ、設定よりも優先され、`/autocompact` はウィンドウを変更する代わりに上書きされていることを報告します。

604 831 

605以下の 2 つの設定では、代わりにウィンドウが 200K として割り当てられ、その境界で自動コンパクトされます。832コマンドとフラグには、100K から 1M トークンまでのウィンドウサイズを次のいずれかの形式で指定できます。

606 833 

607* **LLM ゲートウェイ**:`ANTHROPIC_BASE_URL` が [ゲートウェイ](/docs/ja/llm-gateway) を指す場合、Claude Code は 1M サポートを検証できません。完全なウィンドウを使用するには、モデルピッカーで Sonnet 5 (1M context) を選択します。これは `sonnet[1m]` にマップされます。834* `200000` のような単純なトークン数

608* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:コンテキストを制限する必要があるデプロイメント用に、Sonnet 5 セッションを 200K ウィンドウを持つものとして扱います。835* `500k` や `1M` のような `k` または `M` の接尾辞付きの値

836* 100 から 1000 までの数値のみ(千単位を意味し、`200` は 200,000 に設定されます)

837 

838環境変数には単純なトークン数のみを指定できます。Claude Code は、ウィンドウの上限をモデルのコンテキストウィンドウに制限します。

839 

840<h3 id="default-auto-compact-thresholds">

841 デフォルトの自動圧縮のしきい値

842</h3>

843 

844自動圧縮ウィンドウを設定していない場合、Claude Code は会話がモデルのコンテキスト上限に達した時点で圧縮します。ただし、次のセッションは例外です。

845 

846* [クラウドセッション](/docs/ja/claude-code-on-the-web)は、会話がモデルの上限に近づいた時点で圧縮します

847* [拡張コンテキスト](#extended-context)を使用しない Sonnet 4.6 と Opus 4.6 は 200K の境界で圧縮します。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry など、200K のコンテキストウィンドウで実行される Opus 4.8 以降も同様です

848* [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ja/env-vars) を設定すると、Sonnet 5 や Fable モデルなど、ネイティブで 1M のウィンドウを持つモデルは 200K の境界で圧縮します

849* ネイティブの 1M ウィンドウで実行されるモデルは、ウィンドウが埋まる前に、デフォルトで約 967K トークンの時点で圧縮します。Anthropic API では、Sonnet 5、Fable モデル、Opus 4.7 以降がこれに該当します。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry でどのモデルがこのウィンドウで実行されるかについては、[サードパーティのデプロイでモデルを固定する](#pin-models-for-third-party-deployments)を参照してください。カスタムの `ANTHROPIC_BASE_URL` を使用している場合は、[ゲートウェイ経由のコンテキストウィンドウ](#context-window-behind-a-gateway)を参照してください

850* [LLM ゲートウェイ](/docs/ja/llm-gateway)のエイリアスなど、Claude Code が認識できないモデル ID を使用するセッションは、Claude Code がその ID に対して想定するコンテキストウィンドウで圧縮します。[ゲートウェイまたはカスタムモデル ID のウィンドウを修正する](#correct-the-window-for-a-gateway-or-custom-model-id)を参照してください

851 

852<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

853 ゲートウェイまたはカスタムモデル ID のウィンドウを修正する

854</h3>

855 

856[LLM ゲートウェイ](/docs/ja/llm-gateway)やその他のカスタムデプロイでは、Claude Code がその ID を Claude モデルに解決するかどうかにかかわらず、モデル ID に対してモデルの実際のウィンドウとは異なるコンテキストウィンドウを想定することがあります。Claude Code が代わりに想定すべきウィンドウを [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/ja/env-vars) に設定してください。

857 

858この変数の適用方法は ID によって異なります。Claude Code は、ID が(大文字小文字を問わず)`claude-` で始まらない場合、または Google Cloud の Agent Platform で使用される `@YYYYMMDD` の日付のように、ID の読み取り時に Claude Code が取り除く接尾辞が付いている場合に、その ID をプロバイダー固有またはカスタムの表記として扱います。v2.1.259 より前の Claude Code は取り除かれた接尾辞を考慮しなかったため、日付の接尾辞が付いた認識できない `claude-` ID は、接尾辞のない `claude-` 名として扱われていました。

859 

860認識できないプロバイダー固有またはカスタムの表記、`[1m]` が付いた同じ表記、およびそれ以外のすべての ID は、次の 3 つの異なるケースとして扱われます。

861 

862* Claude Code がプロバイダー固有またはカスタムの表記を認識できるモデルに解決できず、ID に `[1m]` が含まれていない場合、この変数は直接適用され、宣言されたウィンドウでプロアクティブなコンテキスト圧縮が継続されます。

863* Claude Code がプロバイダー固有またはカスタムの表記を認識できるモデルに解決できず、ID に(大文字小文字を問わず)`[1m]` が含まれている場合、Claude Code はその ID に 1M のウィンドウを想定し、この変数は単独では適用されません。プロアクティブなコンテキスト圧縮を維持しながらウィンドウを修正するには、[`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ja/env-vars) も設定してください。この変数を設定すると、Claude Code はその ID を `[1m]` のない同じ表記と同様にサイズ設定するため、`CLAUDE_CODE_MAX_CONTEXT_TOKENS` は、タグのない表記に適用される場合と同じ条件で適用されます。

864 

865 宣言されたウィンドウが 200K を超える場合、Claude Code は 200K の上限が適用されないことを示す[起動時の警告](/docs/ja/errors#the-200k-limit-isnt-enforced)を表示します。この構成では、この警告は想定どおりの動作です。

866* ID が Claude Code の認識するモデルに解決される場合、または ID が(大文字小文字を問わず)Claude Code が取り除く接尾辞のない `claude-` 名のみの場合、この変数は [`DISABLE_COMPACT`](/docs/ja/env-vars) も設定したときにのみ有効になります。`DISABLE_COMPACT` はすべてのコンテキスト圧縮を無効にします。

867 

868 たとえば、`anthropic/claude-opus-4-8`、`us.anthropic.claude-…-v1:0`、日付付きの `claude-sonnet-4-5@20250929` など、Claude Code が認識している Claude モデル名を含む ID は、そのモデルに解決されます。これには `[1m]` も含む ID も含まれます。`CLAUDE_CODE_DISABLE_1M_CONTEXT` が設定されている場合でも、Claude Code は `claude-opus-4-8[1m]` を Opus 4.8 に解決します。

869 

870Claude Code が認識できないモデル ID の場合、[`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/ja/env-vars) を設定すると、API が [Claude Code の認識する長すぎるエラー](/docs/ja/errors#prompt-is-too-long)で会話を拒否した後にのみ、Claude Code が圧縮するようになります。ゲートウェイがエラーを Claude Code の認識できない文言に[書き換える](/docs/ja/llm-gateway-connect#troubleshoot-gateway-errors)場合、Claude Code はこの復旧処理を実行しません。

609 871 

610<h2 id="checking-your-current-model">872<h2 id="checking-your-current-model">

611 現在のモデルの確認873 現在のモデルの確認


617* `/status` 内。アカウント情報も表示されます。879* `/status` 内。アカウント情報も表示されます。

618 880 

619<h2 id="add-a-custom-model-option">881<h2 id="add-a-custom-model-option">

620 カスタムモデルオプションの追加882 カスタムモデルオプションを追加する

621</h2>883</h2>

622 884 

623`ANTHROPIC_CUSTOM_MODEL_OPTION` を使用して、組み込みエイリアスを置き換えることなく、単一のカスタムエントリを `/model` ピッカーに追加します。これは Claude Code がデフォルトでリストしないモデル ID のテストに役立ちます。LLM ゲートウェイデプロイメントの場合、Claude Code は `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` が設定されているときにゲートウェイの `/v1/models` エンドポイントからピッカーを自動的に入力するため、この変数が必要なのはディスカバリーが無効になっているか、必要なモデルを返さない場合のみです。[ゲートウェイモデルディスカバリー](/docs/ja/llm-gateway-protocol#model-discovery)を参照してください。885`ANTHROPIC_CUSTOM_MODEL_OPTION` を使用すると、組み込みのエイリアスを置き換えることなく、`/model` ピッカーにカスタムエントリを 1 つ追加できます。これは、Claude Code がデフォルトで一覧表示しないモデル ID をテストする場合に便利です。LLM ゲートウェイのデプロイでは、`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` が設定されていると、Claude Code はゲートウェイの `/v1/models` エンドポイントからピッカーに項目を取り込めます。そのため、この環境変数が必要になるのは、検出が無効になっている場合、または検出で目的のモデルが返されない場合のみです。[ゲートウェイのモデル検出](/docs/ja/llm-gateway-protocol#model-discovery)を参照してください。

886 

887代わりに複数のモデルを、独自の順序で、選択したラベルを付けて一覧表示するには、[`modelPicker`](/docs/ja/settings-reference#modelpicker) を設定します。その項目では、このラインナップが組み込みのラインナップを置き換える際に、ピッカーがどの行を保持するかを説明しています。

624 888 

625この例では、3 つの変数をすべて設定して、ゲートウェイルーティングされた Opus デプロイメントを選択可能にします。889この例では、3 つの環境変数すべてを設定して、ゲートウェイ経由でルーティングされる Opus のデプロイを選択可能にします。Claude Code は起動時に環境変数を読み込むため、`claude` を起動する前に export を実行するか、既存のセッションを再起動して変数を反映させてください。

626 890 

627```bash theme={null}891```bash theme={null}

628export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-8"892export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5-5"

629export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"893export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

630export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"894export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

631```895```

632 896 

633カスタムエントリは `/model` ピッカーの下部に表示されます。`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` と `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` はオプションです。省略された場合、モデル ID は名前として使用され、説明はデフォルトで `Custom model (<model-id>)` になります。897`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` と `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` は省略可能です。

898 

899* 名前を省略した場合、Claude Code が [ID を認識する](#customize-pinned-model-display-and-capabilities)ときはエントリにモデルの名前が表示され、それ以外の場合はモデル ID が表示されます。

900* 説明を省略した場合、Claude Code は `Custom model (<model-id>)` を使用します。

901 

902Claude Code はカスタムエントリを組み込みエントリの後に表示し、追加した [`modelPicker`](/docs/ja/settings-reference#modelpicker) の行はその後に表示されます。

634 903 

635Claude Code は `ANTHROPIC_CUSTOM_MODEL_OPTION` で設定されたモデル ID の検証をスキップするため、API エンドポイントが受け入れる任意の文字列を使用できます。[`availableModels`](#restrict-model-selection)が設定されている場合、カスタムモデル ID も許可リストに含める必要があります。カスタムエントリはピッカーからフィルタリングされ、その `--model` 選択は他の除外されたモデルと同様に拒否されます。`my-gateway/claude-opus-4-8` などのファミリー名を埋め込むカスタム ID は、そのファミリーの特定のエントリとしてカウントされ、そのワイルドカードを無効にするため、選択可能にしたいバージョンもリストします。[マージ動作](#merge-behavior)を参照してください。904Claude Code は `ANTHROPIC_CUSTOM_MODEL_OPTION` に設定されたモデル ID の検証をスキップするため、API エンドポイントが受け付ける任意の文字列を使用できます。

905 

906[`availableModels`](#restrict-model-selection) が設定されている場合は、カスタムモデル ID も許可リストに含めてください。含めない場合、Claude Code はカスタムエントリをピッカーから除外し、`--model` でそれを選択しても、除外された他のモデルと同様に拒否します。

907 

908`my-gateway/claude-opus-5-5` のようにファミリー名を含むカスタム ID は、そのファミリーの特定のエントリとして扱われ、そのファミリーのワイルドカードが無効になります。そのため、選択可能なままにしたいバージョンも併せて一覧に含めてください。[マージの動作](#merge-behavior)を参照してください。

636 909 

637<h2 id="environment-variables">910<h2 id="environment-variables">

638 環境変数911 環境変数

639</h2>912</h2>

640 913 

641以下の環境変数を使用できます。これらは完全なモデル名、またはお客様の API プロバイダーの同等のものである必要があり、エイリアスがマップするモデル名を制御します。914エイリアスがマッピングされるモデル名を制御するには、次の環境変数を使用します。各値は完全なモデル名、または API プロバイダーにおける同等の識別子である必要があります。セッション開始時のモデルを選択するには、この表には記載されていない [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) を設定します。

642 915 

643| 環境変数 | 説明 |916| 環境変数 | 説明 |

644| - | - |917| - | - |

645| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` に使用するモデル、および Claude Code が [自動モデルフォールバック](#automatic-model-fallback) でサードパーティプロバイダーが Fable 5 として認識するモデル ID |918| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` に使用するモデル。また、サードパーティプロバイダーでの[自動モデルフォールバック](#automatic-model-fallback)において Claude Code が Fable モデルとして認識するモデル ID |

646| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` に使用するモデル、または Plan Mode がアクティブな場合の `opusplan` に使用するモデル |919| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` に使用するモデル、または Plan Mode がアクティブな場合の `opusplan` に使用するモデル。 |

647| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` に使用するモデル、または Plan Mode がアクティブでない場合の `opusplan` に使用するモデル |920| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` に使用するモデル、または Plan Mode がアクティブでない場合の `opusplan` に使用するモデル。 |

648| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` に使用するモデル、または [バックグラウンド機能](/docs/ja/costs#background-token-usage) に使用するモデル |921| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` または[バックグラウンド機能](/docs/ja/costs#background-token-usage)に使用するモデル |

649| `CLAUDE_CODE_SUBAGENT_MODEL` | すべての [subagents](/docs/ja/sub-agents#choose-a-model)、[agent teams](/docs/ja/agent-teams)、および [workflow](/docs/ja/workflows) が実行するエージェントに使用するモデル。`haiku` などのエイリアスまたは完全なモデル名を受け入れ、呼び出しごとの `model` パラメータと subagent 定義の `model` frontmatter をオーバーライドします。通常のモデル解決を使用するには `inherit` に設定します |922| `CLAUDE_CODE_SUBAGENT_MODEL` | 他の方法でモデルが割り当てられていない[サブエージェント](/docs/ja/sub-agents#choose-a-model)、[エージェントチーム](/docs/ja/agent-teams#specify-teammates-and-models)のチームメイト、[ワークフロー](/docs/ja/workflows)エージェントのデフォルトモデル。`haiku` などのエイリアスまたは完全なモデル名を指定できます。呼び出しごとのモデル指定や、定義の `model` フィールド(`inherit` を含む)が優先されます。これを変更するには、[`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ja/sub-agents#run-every-subagent-on-one-model) を設定します |

650 923 

651注:`ANTHROPIC_SMALL_FAST_MODEL` は `ANTHROPIC_DEFAULT_HAIKU_MODEL` の代わりに非推奨です。924サードパーティプロバイダーにおいて、固定したモデルの行が `/model` ピッカーにどのように表示されるかについては、[固定モデルの表示と機能のカスタマイズ](#customize-pinned-model-display-and-capabilities)を参照してください。

925 

926注: `ANTHROPIC_SMALL_FAST_MODEL` は非推奨となり、

927`ANTHROPIC_DEFAULT_HAIKU_MODEL` に置き換えられました。

652 928 

653<h3 id="pin-models-for-third-party-deployments">929<h3 id="pin-models-for-third-party-deployments">

654 サードパーティデプロイメント用のモデルのピン留め930 サードパーティデプロイ向けのモデルの固定

655</h3>931</h3>

656 932 

657[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)、[Microsoft Foundry](/docs/ja/microsoft-foundry)、または [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) を通じて Claude Code をデプロイする場合、ユーザーへのロールアウト前にモデルバージョンをピン留めします。933[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/ja/google-vertex-ai)、[Microsoft Foundry](/docs/ja/microsoft-foundry)、または [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) を通じて Claude Code をデプロイする場合は、ユーザーに配布する前にモデルバージョンを固定してください。

934 

935固定しない場合、Claude Code は `fable`、`opus`、`sonnet`、`haiku` などのモデルエイリアスを使用し、これらは各プロバイダーの組み込みのデフォルトモデル ID に解決されます。このデフォルトは最新の Anthropic リリースより遅れている場合があり、参照先のモデルがユーザーのアカウントでまだ有効になっていないこともあります。デフォルトが利用できない場合、Amazon Bedrock と Google Cloud's Agent Platform のユーザーには通知が表示され、セッションはデフォルトモデルの以前のバージョンにフォールバックします。デフォルトが Opus モデルで利用可能な Opus バージョンがない場合は、デフォルトの Sonnet モデルにフォールバックします。Microsoft Foundry には同等の起動時チェックがないため、Microsoft Foundry のユーザーには代わりにエラーが表示されます。

658 936 

659ピン留めなしでは、Claude Code は `fable`、`opus`、`sonnet`、`haiku` などのモデルエイリアスを使用し、各プロバイダーの組み込みデフォルトモデル ID に解決されます。そのデフォルトは最新の Anthropic リリースより遅れる可能性があり、それが指すモデルはまだユーザーのアカウントで有効になっていない可能性があります。デフォルトが利用できない場合、Amazon Bedrock と Google Cloud の Agent Platform ユーザーは通知を見て、そのセッションは以前のバージョンのデフォルトモデルにフォールバックするか、デフォルトが Opus モデルで利用可能な Opus バージョンがない場合はデフォルト Sonnet モデルにフォールバックします。Microsoft Foundry ユーザーはエラーを見ます。Microsoft Foundry には同等のスタートアップチェックがないためです。937Amazon Bedrock と Google Cloud's Agent Platform では、ユーザーが `--model`、`ANTHROPIC_MODEL`、または `model` 設定などで特定の Sonnet または Opus バージョンでセッションを開始すると、そのバージョンが対応するエイリアスのセッションのデフォルトとして固定されます。起動時チェックは置き換えられた組み込みのデフォルトをスキップし、フォールバック通知は表示されません。v2.1.211 より前は、セッションモデルが明示的に設定されていてもチェックが実行され、通知が表示されることがありました。

660 938 

661<Warning>939<Warning>

662 初期セットアップの一部として、モデル環境変数を特定のバージョン ID に設定します。ピン留めにより、ユーザーが新しいモデルに移行するタイミングを制御できます。940 初期セットアップの一環として、モデルの環境変数を特定のバージョン ID に設定してください。固定することで、ユーザーが新しいモデルに移行するタイミングを制御できます。

663</Warning>941</Warning>

664 942 

665プロバイダーのバージョン固有のモデル ID を使用して、以下の環境変数を使用します。943プロバイダーに応じたバージョン固有のモデル ID を指定して、次の環境変数を使用します。

666 944 

667| プロバイダー | 例 |945| プロバイダー | 例 |

668| :- | :- |946| :- | :- |

669| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |947| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |

670| Google Cloud の Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |948| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

671| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |949| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

672 950 

673`ANTHROPIC_DEFAULT_FABLE_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL` に同じパターンを適用します。すべてのプロバイダー全体の現在および従来のモデル ID については、[モデル概要](https://platform.claude.com/docs/ja/about-claude/models/overview) を参照してください。ユーザーを新しいモデルバージョンにアップグレードするには、これらの環境変数を更新して再デプロイします。951`ANTHROPIC_DEFAULT_FABLE_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL` にも同じパターンを適用します。すべてのプロバイダーにおける現行およびレガシーのモデル ID については、[モデルの概要](https://platform.claude.com/docs/en/about-claude/models/overview)を参照してください。ユーザーを新しいモデルバージョンにアップグレードするには、これらの環境変数を更新して再デプロイします。

674 952 

675ピン留めされたモデルの [拡張コンテキスト](#extended-context) を有効にするには、`ANTHROPIC_DEFAULT_OPUS_MODEL` または `ANTHROPIC_DEFAULT_SONNET_MODEL` のモデル ID に `[1m]` を追加します。953固定したモデルで[拡張コンテキスト](#extended-context)を有効にするには、`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、または `ANTHROPIC_DEFAULT_FABLE_MODEL` のモデル ID に `[1m]` を付加します。

676 954 

677```bash theme={null}955```bash theme={null}

678export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'956export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

679```957```

680 958 

681`[1m]` サフィックスは、`opus` と `sonnet` エイリアスのすべての使用に 1M コンテキストウィンドウを適用します。これには [`opusplan`](#opusplan-model-setting) の plan-mode Opus フェーズが含まれます。959`[1m]` サフィックスを付けると、1M コンテキストウィンドウは固定したエイリアスのすべての使用に適用されます。これには [`opusplan`](#opusplan-model-setting) の plan モードにおける Opus フェーズや、`model` フロントマターでそのエイリアスを指定している[サブエージェント](/docs/ja/sub-agents#choose-a-model)も含まれます。

682 960 

683* Claude Code は、モデル ID をプロバイダーに送信する前にサフィックスを削除します。961* Claude Code はモデル ID をプロバイダーに送信する前にサフィックスを取り除きます。

684* 基盤となるモデルが [1M コンテキストをサポート](https://platform.claude.com/docs/ja/build-with-claude/context-windows#context-window-sizes-by-model) する場合にのみ `[1m]` を追加します。962* `[1m]` は、基盤となるモデルが [1M コンテキストをサポートしている](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)場合にのみ付加してください。

685* サフィックスはモデルごとではなく、変数ごとに読み取られます。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry では、1 つの変数で `[1m]` なしのモデル ID は、別の変数が同じモデルをサフィックス付きで設定している場合でも、200K コンテキストを使用します。Sonnet 5 は常にこれらのプロバイダーで 1M ウィンドウで実行され、サフィックスは必要ありません。963* サフィックスはモデルごとではなく、変数ごとに読み取られます。Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry では、ある変数で `[1m]` なしのモデル ID を指定すると、別の変数で同じモデルにサフィックスを付けて設定していても、200K コンテキストが使用されます。Sonnet 5 はこれらのプロバイダーでは常に 1M ウィンドウで動作し、サフィックスは必要ありません。

964 

965`ANTHROPIC_DEFAULT_*_MODEL` 変数を設定すると、`/model` ピッカーには、そのファミリーの組み込みの行(1M コンテキストの行を含む)の代わりに、そのモデルの行が 1 つ表示されます。その変数にサフィックスを追加せずに 1M ウィンドウを利用するには、ユーザーが `/model opus[1m]` を実行します。すると Claude Code は、変数で指定されたモデルにサフィックスを適用します。`/model sonnet[1m]` も同様に動作します。

686 966 

687<Note>967<Note>

688 `availableModels` アローリストは、サードパーティプロバイダーを使用する場合でも適用されます。[サーバー管理設定はそこに配信されません](/docs/ja/server-managed-settings#platform-availability)。フィルタリングは `opus` などのモデルエイリアス、`claude-opus-4-8` などのバージョンプレフィックス、または完全なプロバイダー形式のモデル ID で一致します。`us.anthropic.` などのプロバイダー固有のプレフィックスは削除されないため、特定のモデルを許可するには、ピッカーが表示する同じプロバイダー形式 ID をリストするか、[`modelOverrides`](#override-model-ids-per-version) を通じてマップします。任意の `[1m]` サフィックスはアローリストエントリと要求されたモデルの両方から削除されます。968 [MDM または管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms)を通じて配布される `availableModels` 許可リストは、サードパーティプロバイダーを使用する場合でも適用されます。[サーバー管理設定はそこには配布されません](/docs/ja/server-managed-settings#platform-availability)。

969 

970 フィルタリングは、`opus` などのモデルエイリアス、`claude-opus-4-8` などのバージョンプレフィックス、またはプロバイダー形式の完全なモデル ID に対して照合されます。`us.anthropic.` などのプロバイダー固有のプレフィックスは取り除かれないため、特定のモデルを許可するには、プロバイダー形式の完全な ID を記載するか、[`modelOverrides`](#override-model-ids-per-version) を通じてマッピングしてください。固定したモデルの場合、その ID は対応する `ANTHROPIC_DEFAULT_*_MODEL` 変数に設定した値です。照合の前に、許可リストのエントリと要求されたモデルの両方から `[1m]` サフィックスが取り除かれます。

689</Note>971</Note>

690 972 

691<h3 id="customize-pinned-model-display-and-capabilities">973<h3 id="customize-pinned-model-display-and-capabilities">

692 ピン留めされたモデルの表示と機能のカスタマイズ974 固定モデルの表示と機能のカスタマイズ

693</h3>975</h3>

694 976 

695サードパーティプロバイダーでモデルをピン留めする場合、プロバイダー固有の ID は `/model` ピッカーにそのまま表示され、Claude Code はモデルがサポートする機能を認識しない可能性があります。ピン留めされた各モデルの表示名と機能を宣言するコンパニオン環境変数でオーバーライドできます。977サードパーティプロバイダーでモデルを固定すると、`/model` ピッカーのその行には、Claude Code が固定した ID を認識する場合はデフォルトでモデル名が表示され、認識しない場合は生の ID が表示されます。

978 

979* **認識される場合**: Claude Code が把握しているモデルの正確な ID。Anthropic API の ID や、プロバイダーまたはゲートウェイでのその形式などで、`[1m]` サフィックスの有無は問いません。`us.anthropic.claude-sonnet-4-5-20250929-v1:0` を固定すると、行には `Sonnet 4.5` と表示されます。

980* **認識されない場合**: アプリケーション推論プロファイル ARN や Claude Code が把握していないモデルバージョンなど、その他の ID。ただし、[`modelOverrides`](#override-model-ids-per-version) のエントリがモデルをその正確な文字列にマッピングしている場合を除きます。Microsoft Foundry ではデプロイ名がユーザー定義であるため、マッピングの有無にかかわらず Claude Code は固定した ID を認識せず、行にはデフォルトでデプロイ名が表示されます。

981 

982行にモデル名が表示される場合、そのデフォルトの説明には固定した ID が含まれるため、どの ID が固定されているかを確認できます。

696 983 

697これらの変数は、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry などのサードパーティプロバイダーでのみ有効です。`ANTHROPIC_BASE_URL` が [LLM ゲートウェイ](/docs/ja/llm-gateway) を指す場合、`_NAME` と `_DESCRIPTION` 変数も有効です。`api.anthropic.com` に直接接続する場合は効果がありません。984Claude Code は、固定したモデルがどの機能をサポートしているかを認識できない場合もあります。固定した各モデルについて、表示名と説明を自分で設定し、付随する環境変数で機能を宣言できます。

985 

986これらの変数は、Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry などのサードパーティプロバイダーで有効になります。`_NAME` と `_DESCRIPTION` 変数は、`ANTHROPIC_BASE_URL` が [LLM ゲートウェイ](/docs/ja/llm-gateway)を指している場合にも有効になります。`api.anthropic.com` に直接接続する場合は効果がありません。

698 987 

699| 環境変数 | 説明 |988| 環境変数 | 説明 |

700| - | - |989| - | - |

701| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` ピッカーでピン留めされた Opus モデルの表示名。設定されていない場合はモデル ID がデフォルト |990| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` ピッカーにおける固定した Opus モデルの表示名。設定されていない場合、Claude Code が固定した ID を認識すればモデル名が、認識しなければ固定した ID が行に表示されます |

702| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` ピッカーでピン留めされた Opus モデルの表示説明。設定されていない場合は `Custom Opus model` がデフォルト |991| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` ピッカーにおける固定した Opus モデルの表示説明。設定されていない場合、`Custom Opus model` で始まるデフォルトの説明が行に表示されます |

703| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | ピン留めされた Opus モデルがサポートする機能のカンマ区切りリスト |992| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定した Opus モデルがサポートする機能のカンマ区切りリスト |

704 993 

705同じ `_NAME`、`_DESCRIPTION`、`_SUPPORTED_CAPABILITIES` サフィックスは `ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、`ANTHROPIC_DEFAULT_FABLE_MODEL`、`ANTHROPIC_CUSTOM_MODEL_OPTION` で利用可能です。994同じ `_NAME`、`_DESCRIPTION`、`_SUPPORTED_CAPABILITIES` サフィックスは、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、`ANTHROPIC_DEFAULT_FABLE_MODEL`、`ANTHROPIC_CUSTOM_MODEL_OPTION` でも使用できます。

706 995 

707Claude Code は、モデル ID を既知のパターンと照合することで、[努力レベル](#adjust-effort-level) や [拡張思考](#extended-thinking) などの機能を有効にします。Amazon Bedrock ARN やカスタムデプロイメント名などのプロバイダー固有の ID は、これらのパターンと一致しないことが多く、サポートされている機能が無効のままになります。`_SUPPORTED_CAPABILITIES` を設定して、Claude Code にモデルが実際にサポートする機能を伝えます。996Claude Code は、モデル ID を既知のパターンと照合することで、[effort レベル](#adjust-effort-level)や[拡張思考](#extended-thinking)などの機能を有効にします。Amazon Bedrock の ARN やカスタムデプロイ名などのプロバイダー固有の ID はこれらのパターンに一致しないことが多く、サポートされている機能が無効のままになります。`_SUPPORTED_CAPABILITIES` を設定して、モデルが実際にサポートしている機能を Claude Code に伝えてください。

708 997 

709| 機能値 | 有効にするもの |998| 機能の値 | 有効になるもの |

710| - | - |999| - | - |

711| `effort` | [努力レベル](#adjust-effort-level) と `/effort` コマンド |1000| `effort` | [effort レベル](#adjust-effort-level)と `/effort` コマンド |

712| `xhigh_effort` | `xhigh` 努力レベル |1001| `xhigh_effort` | `xhigh` effort レベル |

713| `max_effort` | `max` 努力レベル |1002| `max_effort` | `max` effort レベル |

714| `thinking` | [拡張思考](#extended-thinking) |1003| `thinking` | [拡張思考](#extended-thinking) |

715| `adaptive_thinking` | タスクの複雑さに基づいて思考を動的に割り当てる適応的推論 |1004| `adaptive_thinking` | タスクの複雑さに応じて思考を動的に割り当てる適応型推論 |

716| `interleaved_thinking` | ツール呼び出し間の思考 |1005| `interleaved_thinking` | ツール呼び出し間の思考 |

717 1006 

718`_SUPPORTED_CAPABILITIES` が設定されている場合、リストされた機能は有効になり、リストされていない機能はマッチングされたピン留めされたモデルに対して無効になります。変数が設定されていない場合、Claude Code はモデル ID に基づいた組み込み検出にフォールバックします。1007`_SUPPORTED_CAPABILITIES` が設定されている場合、Claude Code は対応する固定モデルについて、記載された機能を有効にし、記載されていない機能を無効にします。変数が設定されていない場合、Claude Code はモデル ID に基づく組み込みの検出にフォールバックします。

719 1008 

720この例では、Amazon Bedrock カスタムモデル ARN に Opus をピン留めし、フレンドリーな名前を設定し、その機能を宣言します。1009次の例では、Opus を Amazon Bedrock のカスタムモデル ARN に固定し、わかりやすい名前を設定して、その機能を宣言しています。

721 1010 

722```bash theme={null}1011```bash theme={null}

723export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'1012export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'


727```1016```

728 1017 

729<h3 id="override-model-ids-per-version">1018<h3 id="override-model-ids-per-version">

730 バージョンごとのモデル ID のオーバーライド1019 バージョンごとのモデル ID の上書き

731</h3>1020</h3>

732 1021 

733上記のファミリーレベルの環境変数は、ファミリーエイリアスごとに 1 つのモデル ID を設定します。同じファミリー内の複数のバージョンを異なるプロバイダー ID にマップする必要がある場合は、代わりに `modelOverrides` 設定を使用します。1022Claude Code を組み込み、[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定しているプラットフォームでは、ホストのモデル設定が管理設定のモデル設定より優先されます。一方、管理設定の `availableModels` 許可リストは、ホストが独自のものを提供しない限り引き続き有効です。ホストがどのキーと変数を上書きするかについては、[管理設定の優先順位の例外](/docs/ja/settings#exceptions-to-managed-settings-precedence)を参照してください。

1023 

1024上記のファミリーレベルの環境変数は、ファミリーエイリアスごとに 1 つのモデル ID を設定します。同じファミリー内の複数のバージョンをそれぞれ異なるプロバイダー ID にマッピングする必要がある場合は、代わりに `modelOverrides` 設定を使用します。

734 1025 

735`modelOverrides` は個別の Anthropic モデル ID をプロバイダー固有の文字列にマップし、Claude Code がプロバイダーの API に送信します。ユーザーが `/model` ピッカーでマップされたモデルを選択すると、Claude Code は組み込みのデフォルトの代わりに設定された値を使用します。1026`modelOverrides` は、個々の Anthropic モデル ID を、Claude Code がプロバイダーの API に送信するプロバイダー固有の文字列にマッピングします。ユーザーが `/model` ピッカーでマッピングされたモデルを選択すると、Claude Code は組み込みのデフォルトの代わりに、設定された値を使用します。

736 1027 

737これにより、エンタープライズ管理者は、ガバナンス、コスト配分、または地域的なルーティングのために、各モデルバージョンを特定の Amazon Bedrock 推論プロファイル ARN、Google Cloud の Agent Platform バージョン名、または Microsoft Foundry デプロイメント名にルーティングできます。1028これにより、エンタープライズの管理者は、ガバナンス、コスト配分、またはリージョンルーティングのために、各モデルバージョンを特定の Amazon Bedrock 推論プロファイル ARN、Google Cloud's Agent Platform のバージョン名、または Microsoft Foundry のデプロイ名にルーティングできます。

738 1029 

739[設定ファイル](/docs/ja/settings#settings-files) で `modelOverrides` を設定します。1030[設定ファイル](/docs/ja/settings#where-settings-live)で `modelOverrides` を設定します。

740 1031 

741```json theme={null}1032```json theme={null}

742{1033{


748}1039}

749```1040```

750 1041 

751キーは [モデル概要](https://platform.claude.com/docs/ja/about-claude/models/overview) にリストされている Anthropic モデル ID である必要があります。日付付きモデル ID の場合、そこに表示されるとおりに日付サフィックスを含めます。不明なキーは無視されます。1042キーは、[モデルの概要](https://platform.claude.com/docs/en/about-claude/models/overview)に記載されている Anthropic モデル ID である必要があります。日付付きのモデル ID の場合は、そこに記載されているとおりに日付サフィックスを含めてください。不明なキーは無視されます。

752 1043 

753オーバーライドは、`/model` ピッカーの各エントリをサポートする組み込みモデル ID を置き換えます。Amazon Bedrock では、`modelOverrides` エントリは Claude Code が起動時に自動的に検出する推論プロファイルより優先されます。Claude Code は、Amazon Bedrock 推論プロファイル ARN や Microsoft Foundry デプロイメント名などのプロバイダーネイティブである値をプロバイダーにそのまま渡します。1044ゲートウェイエイリアスなどの ID に対する `[claude-code:unrecognized_model]` [診断行](/docs/ja/errors#unrecognized-model-id-on-a-request)を止めるには、その ID を値とするエントリを追加します。

754 1045 

755オーバーライドは、`--model`、`ANTHROPIC_MODEL` 環境変数、または `ANTHROPIC_DEFAULT_*_MODEL` 環境変数を通じて Anthropic モデル ID を直接渡す場合にも適用されます。Amazon Bedrock、Google Cloud の Agent Platform、[Mantle](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) では、`modelOverrides` エントリのない Anthropic モデル ID は、プロバイダーがそのバージョンをサポートしている場合、`/model` ピッカー行のそのバージョンと同じプロバイダー固有の ID に解決されます。Mantle はバージョンのサブセットをサポートしています。そのサブセット外の Anthropic モデル ID の場合、Claude Code は `modelOverrides` エントリでカバーされていない限り、生の ID を Mantle に送信します。v2.1.200 より前では、`--model` と環境変数の値はオーバーライドマップを通さずにプロバイダーに到達しました。1046上書きは、`/model` ピッカーの各エントリの背後にある組み込みのモデル ID を置き換えます。Amazon Bedrock では、`modelOverrides` のエントリは、Claude Code が起動時に自動的に検出する推論プロファイルよりも優先されます。Amazon Bedrock の推論プロファイル ARN や Microsoft Foundry のデプロイ名など、すでにプロバイダーネイティブな値は、Claude Code がそのままプロバイダーに渡します。

756 1047 

757`modelOverrides` は `availableModels` と一緒に機能します。アローリストは Anthropic モデル ID に対して評価され、オーバーライド値に対してではないため、`availableModels` の `"opus"` などのエントリは、Opus バージョンが ARN にマップされている場合でも一致し続けます。`enforceAvailableModels` が管理設定で設定されている場合、強制されたデフォルトは [最も優先度の高い管理ソース](/docs/ja/server-managed-settings#settings-precedence) からのみ `modelOverrides` を通じて解決されます。推論プロファイル ARN にピン留めされたバージョンなど、管理者のマッピングは強制されたデフォルトで尊重されます。ユーザーまたはプロジェクト設定からのオーバーライドはそれに影響しません。1048上書きは、`--model`、`ANTHROPIC_MODEL` 環境変数、または `ANTHROPIC_DEFAULT_*_MODEL` 環境変数を通じて Anthropic モデル ID を直接渡した場合にも適用されます。Amazon Bedrock、Google Cloud's Agent Platform、[Mantle](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) では、`modelOverrides` エントリのない Anthropic モデル ID は、プロバイダーがそのバージョンをサポートしている場合、そのバージョンの `/model` ピッカーの行と同じプロバイダー固有の ID に解決されます。Mantle はバージョンの一部のみをサポートしています。その範囲外の Anthropic モデル ID の場合、`modelOverrides` エントリで対応していない限り、Claude Code はマッピングせずに生の ID を Mantle に送信します。v2.1.200 より前は、`--model` と環境変数の値は上書きマップを経由せず、そのままプロバイダーに渡されていました。

758 1049 

759`availableModels` が [管理設定](/docs/ja/settings#settings-files) で設定されている場合、`--model` または上記の環境変数を通じて直接渡された Anthropic モデル ID には、その管理ソースからの `modelOverrides` のみが適用されます。Claude Code はユーザーまたはプロジェクト設定のオーバーライドをそれらの ID に対して無視し、管理リストが除外する ID を任意の設定ソースからの `modelOverrides` を通じて解決することはありません。この管理ソース制限には Claude Code v2.1.200 以降が必要です。ブロックされた ID がどのように処理されるかについては、[モデル選択の制限](#restrict-model-selection) を参照してください。1050`modelOverrides` は `availableModels` と連携して動作します。許可リストは上書き値ではなく Anthropic モデル ID に対して評価されるため、Opus バージョンが ARN にマッピングされている場合でも、`availableModels` の `"opus"` のようなエントリは引き続き一致します。管理設定で `enforceAvailableModels` が設定されている場合、強制される Default は[管理設定](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)の `modelOverrides` のみを通じて解決されます。推論プロファイル ARN に固定したバージョンなど、管理者のマッピングは強制される Default に反映されます。ユーザー設定やプロジェクト設定の上書きはこれに影響しません。

1051 

1052[管理設定](/docs/ja/managed-settings)で `availableModels` が設定されている場合、`--model` または上記の環境変数を通じて直接渡された Anthropic モデル ID には、管理設定の `modelOverrides` のみが適用されます。Claude Code はそれらの ID に対するユーザー設定やプロジェクト設定の上書きを無視し、管理リストで除外された ID は、どの設定ソースの `modelOverrides` を通じても解決しません。この管理ソースの制限には Claude Code v2.1.200 以降が必要です。ブロックされた ID の扱いについては、[モデル選択の制限](#restrict-model-selection)を参照してください。

760 1053 

761<h3 id="prompt-caching-configuration">1054<h3 id="prompt-caching-configuration">

762 プロンプトキャッシング設定1055 プロンプトキャッシュの設定

763</h3>1056</h3>

764 1057 

765Claude Code は [プロンプトキャッシング](/docs/ja/prompt-caching) を自動的に使用してパフォーマンスを最適化し、コストを削減します。プロンプトキャッシングをグローバルに、または特定のモデルティアに対して無効にできます。1058Claude Code は、パフォーマンスを最適化しコストを削減するために、自動的に[プロンプトキャッシュ](/docs/ja/prompt-caching)を使用します。プロンプトキャッシュは、グローバルに、または特定のモデル階層ごとに無効にできます。

766 1059 

767| 環境変数 | 説明 |1060| 環境変数 | 説明 |

768| - | - |1061| - | - |

769| `DISABLE_PROMPT_CACHING` | `1` に設定して、すべてのモデルのプロンプトキャッシングを無効にします。モデル固有の設定より優先されます |1062| `DISABLE_PROMPT_CACHING` | `1` に設定すると、すべてのモデルでプロンプトキャッシュを無効にします。モデルごとの設定より優先されます |

770| `DISABLE_PROMPT_CACHING_HAIKU` | `1` に設定して、Haiku モデルのみのプロンプトキャッシングを無効にします |1063| `DISABLE_PROMPT_CACHING_HAIKU` | `1` に設定すると、[デフォルトの Haiku モデル](/docs/ja/prompt-caching#disable-prompt-caching)のプロンプトキャッシュを無効にします |

771| `DISABLE_PROMPT_CACHING_SONNET` | `1` に設定して、Sonnet モデルのみのプロンプトキャッシングを無効にします |1064| `DISABLE_PROMPT_CACHING_SONNET` | `1` に設定すると、[デフォルトの Sonnet モデル](/docs/ja/prompt-caching#disable-prompt-caching)のプロンプトキャッシュを無効にします |

772| `DISABLE_PROMPT_CACHING_OPUS` | `1` に設定して、Opus モデルのみのプロンプトキャッシングを無効にします |1065| `DISABLE_PROMPT_CACHING_OPUS` | `1` に設定すると、[デフォルトの Opus モデル](/docs/ja/prompt-caching#disable-prompt-caching)のプロンプトキャッシュを無効にします |

773| `DISABLE_PROMPT_CACHING_FABLE` | `1` に設定して、Fable モデルのみのプロンプトキャッシングを無効にします |1066| `DISABLE_PROMPT_CACHING_FABLE` | `1` に設定すると、Fable モデルのみのプロンプトキャッシュを無効にします |

1067 

1068メインの会話とサブエージェントのキャッシュ TTL を個別に選択するには、[TTL を自分で選択する](/docs/ja/prompt-caching#choose-the-ttl-yourself)を参照してください。キャッシュミスが発生する原因については、[Claude Code がプロンプトキャッシュを使用する方法](/docs/ja/prompt-caching)を参照してください。

774 1069 

775キャッシュ TTL を変更する方法、またはキャッシュミスをトリガーするものについて詳しくは、[Claude Code がプロンプトキャッシングを使用する方法](/docs/ja/prompt-caching) を参照してください。1070<h2 id="version-history">

1071 バージョン履歴

1072</h2>

1073 

1074この表は、各モデルエイリアスの解決先モデルが変更された Claude Code のバージョンを、新しい順に示しています。

1075 

1076| バージョン | 変更内容 |

1077| :- | :- |

1078| v2.1.284 | Anthropic API で `sonnet` が Sonnet 5.5 に解決されるようになりました |

1079| v2.1.280 | Anthropic API、Claude Platform on AWS、Amazon Bedrock、Google Cloud の Agent Platform で `opus` が Opus 5.5 に解決されるようになりました |

1080| v2.1.257 | Claude apps ゲートウェイのセッションを除き、`fable` が Fable 5.1 に解決されるようになりました |

1081| v2.1.219 | Anthropic API、Claude Platform on AWS、Amazon Bedrock、Agent Platform で `opus` が Opus 5 に解決されるようになりました |

1082| v2.1.207 | Claude Platform on AWS、Amazon Bedrock、Agent Platform で `opus` が Opus 4.8 に解決されるようになりました |

1083| v2.1.197 | Anthropic API で `sonnet` が Sonnet 5 に解決されるようになりました |

1084| v2.1.154 | Anthropic API で `opus` が Opus 4.8 に解決されるようになりました |

1085| それ以前 | `opus` は Claude Platform on AWS では Opus 4.7 に、Amazon Bedrock と Agent Platform では Opus 4.6 に解決されます。`fable` はすべてのプロバイダーで Fable 5 に解決されます |

Details

524 3. 他のすべてはクラシファイアに行きます。[重要なパス削除](#critical-paths)はそれらのデフォルト処理を除きます。ステップ 1 で直接プロンプトするコネクタツールと[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) MCP ツールはクラシファイアに到達しません。そのため、org が必要とする承認も同意ステップも自動承認されません524 3. 他のすべてはクラシファイアに行きます。[重要なパス削除](#critical-paths)はそれらのデフォルト処理を除きます。ステップ 1 で直接プロンプトするコネクタツールと[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) MCP ツールはクラシファイアに到達しません。そのため、org が必要とする承認も同意ステップも自動承認されません

525 4. クラシファイアがブロックする場合、Claude は理由を受け取ります。ほとんどのセッションでは、理由は書かれた説明を与えるのではなく、クラシファイアが一致したルール(`[Data Exfiltration]` など)に名前を付けます。[拒否をレビュー](/docs/ja/auto-mode-config#review-denials)を参照してください525 4. クラシファイアがブロックする場合、Claude は理由を受け取ります。ほとんどのセッションでは、理由は書かれた説明を与えるのではなく、クラシファイアが一致したルール(`[Data Exfiltration]` など)に名前を付けます。[拒否をレビュー](/docs/ja/auto-mode-config#review-denials)を参照してください

526 526 

527 `tool.check` にフックする、インストールした [mod](/docs/ja/plugins/mods/overview) は、ステップ 3 の前にアクションを承認でき、分類器は mod が承認したアクションをチェックしません。[フックで権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)を参照してください。

528 

527 auto モードに入ると、任意のコード実行を許可する広いルールが削除されます。529 auto モードに入ると、任意のコード実行を許可する広いルールが削除されます。

528 530 

529 * ブランケット `Bash(*)` または `PowerShell(*)`531 * ブランケット `Bash(*)` または `PowerShell(*)`


667* `.yarn`669* `.yarn`

668* `.mvn`670* `.mvn`

669* `.claude`。ただし `.claude/worktrees` は除く。Claude はここに独自の git worktrees を保存します671* `.claude`。ただし `.claude/worktrees` は除く。Claude はここに独自の git worktrees を保存します

672* [`--plugin-dir`](/docs/ja/plugins/mods/create#change-a-mod-with-claude) で読み込んだディレクトリ。ファイルが変更されると、Claude Code がそこから mod のコードを再読み込みして実行するためです

670 673 

671保護されたファイル:674保護されたファイル:

672 675 

permissions.md +1 −1

Details

358 Read と Edit358 Read と Edit

359</h3>359</h3>

360 360 

361Claude のファイルツールがファイルまたはディレクトリを読み取るのをブロックするには、`Read(./.env)` または `Read(./secrets/**)` などのパスに対して `Read` deny ルールを追加します。[機密ファイルを除外](/docs/ja/settings-reference#exclude-sensitive-files)にはペースト可能な例があります。361Claude のファイルツールがファイルまたはディレクトリを読み取るのをブロックするには、`Read(./.env)` または `Read(./secrets/**)` などのパスに対して `Read` deny ルールを追加します。[機密ファイルを除外](/docs/ja/settings-reference#exclude-sensitive-files)にはペースト可能な例があります。プロジェクトに `.claudeignore` ファイルがある場合、そのファイルは効果がないため、そのエントリを `Read` deny ルールに移してください。

362 362 

363`Edit` ルールはファイルを編集するすべての組み込みツールに適用されます。Claude は、Grep や Glob などのファイルを読み取るすべての組み込みツール、プロンプト内の `@file` メンション、および接続された [IDE](/docs/ja/vs-code#the-built-in-ide-mcp-server) が Claude と共有する選択およびオープンファイルコンテキストに `Read` ルールを適用するためにベストエフォートを試みます。363`Edit` ルールはファイルを編集するすべての組み込みツールに適用されます。Claude は、Grep や Glob などのファイルを読み取るすべての組み込みツール、プロンプト内の `@file` メンション、および接続された [IDE](/docs/ja/vs-code#the-built-in-ide-mcp-server) が Claude と共有する選択およびオープンファイルコンテキストに `Read` ルールを適用するためにベストエフォートを試みます。

364 364 

plugin-evals.md +93 −67

Details

49 ケースのスコア化方法49 ケースのスコア化方法

50</h3>50</h3>

51 51 

52非決定論的なエージェントの 1 回の実行では、ほとんど情報が得られないため、各ケースはデフォルトで 3 回実行されます。実行のスコアは、重み付けを設定した場合は重み付けされた、合格したグレーダーの割合であり、ケースのスコアは実行全体の平均です。ケースは、そのスコアが [`--threshold`](#command-options)(デフォルトは 1.0)を満たすときに合格します。モデル呼び出しでは、スイートはおおよそ cases × runs のエージェント実行をプラグインで行い、[プラグインなしベースライン](#the-no-plugin-baseline) でも同じ数だけ行い、さらに実行ごとに `llm` または `baseline` グレーダーごとに 3 つの短いジャッジ呼び出しを行います。52非決定論的なエージェントの 1 回の実行では、ほとんど情報が得られないため、各ケースはデフォルトで 3 回実行されます。実行のスコアは、重み付けを設定した場合は重み付けされた、合格したグレーダーの割合であり、ケースのスコアは実行全体の平均です。ケースは、そのスコアが [`--threshold`](#command-options)(デフォルトは `1.0`)を満たすときに合格します。

53 

54モデル呼び出しでは、スイートはおおよそ cases × runs のエージェント実行をプラグインで行い、[プラグインなしベースライン](#the-no-plugin-baseline) でも同じ数だけ行い、さらに実行ごとに `llm` または `baseline` グレーダーごとに 3 つの短いジャッジ呼び出しを行います。

53 55 

54<h3 id="the-no-plugin-baseline">56<h3 id="the-no-plugin-baseline">

55 プラグインなしベースライン57 プラグインなしベースライン

56</h3>58</h3>

57 59 

58プラグインなしでも Claude が同じくらい上手くいく可能性があるため、単独のスコアが高いだけではプラグインが役に立ったことを示しません。この 2 つを分離するために、各ケースの実行はデフォルトでプラグインをロードせずに繰り返され、2 つのスコア `WITH` と `W/OUT` が得られます。その差 `Δ` は、プラグインが貢献したものです。ケースがプラグインの有無にかかわらず 1.0 でスコアされた場合、プラグインはそれが合格した理由ではありません。2 つの実行セットは with-arm と without-arm と呼ばれます。[プラグインなしベースラインと比較する](#compare-against-a-no-plugin-baseline) では、グレーダーがそれらの間でどのようにスコア化されるか、およびベースラインをオフにする方法について説明します。60プラグインなしでも Claude が同じくらい上手くいく可能性があるため、単独のスコアが高いだけではプラグインが役に立ったことを示しません。この 2 つを分離するために、各ケースの実行はプラグインをロードせずに繰り返され、2 つのスコア `WITH` と `W/OUT` が得られます。その差 `Δ` は、プラグインが貢献したものです。ケースがプラグインの有無にかかわらず 1.0 でスコアされた場合、プラグインはそれが合格した理由ではありません。

61 

622 つの実行セットは with-arm と without-arm と呼ばれます。[プラグインなしベースラインに対してスコアを付ける](#compare-against-a-no-plugin-baseline) では、どのケースが with-arm のみを実行するか、およびグレーダーが 2 つの arm にわたってどのようにスコア化されるかについて説明します。

59 63 

60<h2 id="create-your-first-eval-suite">64<h2 id="create-your-first-eval-suite">

61 最初の eval スイートを作成する65 最初の eval スイートを作成する


128 ケースを作成して改善する132 ケースを作成して改善する

129</h2>133</h2>

130 134 

131`claude plugin eval init` が作成するケースは、開いて変更し、追加できるプレーンファイルです。ケースはプラグインの eval ディレクトリの下のディレクトリで、`prompt.md`、`case.yaml`、またはその両方を含みます。ケースをグループ化するには、それ自体がケースではないディレクトリの下にネストします。`graders/` やフィクスチャファイルなど、ケースディレクトリ内のすべてはそのケースに属します。135`claude plugin eval init` が作成するケースは、開いて変更し、追加できるプレーンファイルです。ケースはプラグインの eval ディレクトリの下のディレクトリで、`prompt.md`、`case.yaml`、またはその両方を含みます。グレーダーのないケースは読み込みに失敗するため、各ケースには `graders/<name>.md` ファイルまたは `case.yaml` の `graders:` エントリとして、少なくとも 1 つのグレーダーを付与してください。ケースをグループ化するには、それ自体がケースではないディレクトリの下にネストします。`graders/` やフィクスチャファイルなど、ケースディレクトリ内のすべてはそのケースに属します。

132 136 

133これは `claude plugin eval init` が作成するレイアウトで、新しいスイートに使用するレイアウトです。[eval スイートリファレンス](#eval-suite-reference) には、モックと結果を含む完全なツリーがあります。137これは `claude plugin eval init` が作成するレイアウトで、新しいスイートに使用するレイアウトです。[eval スイートリファレンス](#eval-suite-reference) には、モックと結果を含む完全なツリーがあります。

134 138 


165 └── criteria.md # one grader: how to score the result169 └── criteria.md # one grader: how to score the result

166```170```

167 171 

168`prompt.md` では、各実行で Claude が受け取るメッセージを作成し、frontmatter で実行の制限とケースが使用できるツールを設定します。`evals/first-case/prompt.md` を開き、プレースホルダー本文をスキルの 1 つが処理すべきリクエストに置き換えます。ユーザーが入力するであろう方法で表現されます。この例はコミットメッセージを作成するスキル用です。独自のリクエストを使用してください。172`prompt.md` では、各実行で Claude が受け取るメッセージを作成し、フロントマターで実行の制限とケースが使用できるツールを設定します。`evals/first-case/prompt.md` を開き、プレースホルダー本文をスキルの 1 つが処理すべきリクエストに置き換えます。スキル名を挙げるのではなく、ユーザーが入力するであろう表現で記述してください。この例はコミットメッセージを作成するスキル用です。独自のリクエストを使用してください。

169 173 

170```markdown theme={null}174```markdown theme={null}

171---175---


176Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.180Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.

177```181```

178 182 

179各実行は空の作業ディレクトリで開始されるため、タスクに必要なものをプロンプト自体に入れるか、[ワークスペースまたは履歴をセットアップする](#add-setup-or-history-with-case-yaml) 最初に。[frontmatter フィールドの完全なリスト](#prompt-md-fields) は、モデル、タイムアウト、タグ、および環境変数をカバーしています。183各実行は空の作業ディレクトリで開始されるため、タスクに必要なものをプロンプト自体に含めるか、先に [ワークスペースをセットアップ](#add-setup-or-history-with-case-yaml) してください。

184 

185[フロントマターフィールドの完全なリスト](#prompt-md-fields) は、モデル、タイムアウト、タグ、および環境変数をカバーしています。

180 186 

181`graders/` の下の各ファイルは、実行後に適用される 1 つのチェックです。`evals/first-case/graders/criteria.md` を開き、プレースホルダーをジャッジモデル用のルーブリックに置き換えます。具体的な PASS および FAIL 条件として作成されます。187`graders/` の下の各ファイルは、実行後に適用される 1 つのチェックです。`evals/first-case/graders/criteria.md` を開き、プレースホルダーをジャッジモデル用のルーブリックに置き換えます。具体的な PASS および FAIL 条件として作成されます。

182 188 


199---205---

200```206```

201 207 

202これは Claude がその実行中にそのスキルを少なくとも 1 回呼び出した場合に合格します。これには、その名前空間付き `plugin-name:skill-name` 形式も含まれます。[グレーダータイプ](#grader-types) は、正規表現のマッチングやファイルが作成されたことの確認など、利用可能な他のチェックをリストします。208これは Claude がその実行中にそのスキルを少なくとも 1 回呼び出した場合に合格します。これには、その名前空間付き `plugin-name:skill-name` 形式も含まれます。

209 

210[グレーダータイプ](#grader-types) は、正規表現のマッチングやファイルが作成されたことの確認など、利用可能な他のチェックをリストします。

203 211 

204両方のファイルを保存したら、[クイックスタート](#create-your-first-eval-suite) が行うように、プラグインルートから `claude plugin eval .` でケースを実行します。212両方のファイルを保存したら、[クイックスタート](#create-your-first-eval-suite) が行うように、プラグインルートから `claude plugin eval .` でケースを実行します。

205 213 


207 prompt.md で実行制限とツールを設定する215 prompt.md で実行制限とツールを設定する

208</h3>216</h3>

209 217 

210`prompt.md` frontmatter でケースの `max_turns`、`timeout_seconds`、`model`、`tags`、および使用可能な `allowed_tools` を設定します。[prompt.md frontmatter](#prompt-md-fields) リファレンスはすべてのフィールドとそのデフォルトをリストします。Claude は本文を正確に作成したとおりに受け取ります。その中の `@path` メンションはファイル添付に展開されないため、Claude がファイルを読む必要がある場合は、`allowed_tools` でツールを付与します。218`prompt.md` フロントマターでケースの `max_turns`、`timeout_seconds`、`model`、`tags`、および使用可能な `allowed_tools` を設定します。[prompt.md フロントマター](#prompt-md-fields) リファレンスはすべてのフィールドとそのデフォルトをリストします。

219 

220Claude は本文を正確に作成したとおりに受け取ります。その中の `@path` メンションはファイル添付に展開されないため、Claude がファイルを読む必要がある場合は、`allowed_tools` でツールを付与します。

211 221 

212<h3 id="grade-the-result">222<h3 id="grade-the-result">

213 グレーダーを選択して重み付けする223 グレーダーを選択して重み付けする

214</h3>224</h3>

215 225 

216グレーダーの frontmatter はその `type` を設定し、オプションで実行のスコアでより多くをカウントする `weight` と、ベースラインに対してどのようにスコア化されるかを制御する [`arm`](#compare-against-a-no-plugin-baseline) を設定します。6 つのタイプのうち、`regex`、`tool_used`、`tool_order`、`file_exists` はトランスクリプトとファイルから計算され、コストはかかりませんが、`llm` と `baseline` はジャッジモデルを呼び出し、実行のコストに追加されます。226グレーダーのフロントマターはその `type` を設定し、オプションで実行のスコアでより多くをカウントする `weight` と、ベースラインに対してどのようにスコア化されるかを制御する [`arm`](#compare-against-a-no-plugin-baseline) を設定します。6 つのタイプのうち、`regex`、`tool_used`、`tool_order`、`file_exists` はトランスクリプトとファイルから計算され、コストはかかりませんが、`llm` と `baseline` はジャッジモデルを呼び出し、実行のコストに追加されます。

227 

228カスタムコードグレーダーはありません。

217 229 

218カスタムコードグレーダーはありません。[グレーダータイプ](#grader-types) は各タイプのオプションと合格条件をリストし、[グレーダーが見ることができるもの](#what-a-grader-can-look-at) は `target` と `focus` が受け入れる値をリストします。230[グレーダータイプ](#grader-types) は各タイプのオプションと合格条件をリストし、[グレーダーが見ることができるもの](#what-a-grader-can-look-at) は `target` と `focus` が受け入れる値をリストします。

219 231 

220`llm` および `baseline` グレーダーのジャッジはデフォルトで小さく高速なモデルです。ニュアンスのあるルーブリックに対してより強力なものを使用するには、`--judge-model sonnet` または完全なモデル ID を渡します。232`llm` および `baseline` グレーダーのジャッジはデフォルトで小さく高速なモデルです。ニュアンスのあるルーブリックに対してより強力なものを使用するには、`--judge-model sonnet` または完全なモデル ID を渡します。

221 233 


226`llm` グレーダーはモデルに判定を求めるため、その答えは実行間で異なる可能性があり、読む必要があるテキストが長いほど異なります。これらの習慣はスイートのスコアを十分に安定させて信頼できるようにします。238`llm` グレーダーはモデルに判定を求めるため、その答えは実行間で異なる可能性があり、読む必要があるテキストが長いほど異なります。これらの習慣はスイートのスコアを十分に安定させて信頼できるようにします。

227 239 

228* 生成されたファイルなどの長い出力については、ファイルの内容に対する `regex` グレーダーでグレード化します。これは毎回同じ方法でファイル全体をチェックします。短い出力には `llm` グレーダーを保持し、ルーブリックを具体的な PASS および FAIL 条件として作成します。240* 生成されたファイルなどの長い出力については、ファイルの内容に対する `regex` グレーダーでグレード化します。これは毎回同じ方法でファイル全体をチェックします。短い出力には `llm` グレーダーを保持し、ルーブリックを具体的な PASS および FAIL 条件として作成します。

229* 各ケースに、最終メッセージや生成されたファイルなどの結果に対する 1 つのグレーダーと、`tool_used` や `tool_order` など Claude がそこに到達した方法に対する 1 つのグレーダーを付与します。一緒に、答えが正しかったかどうかと、プラグインがそれを生成したかどうかの両方を示します。241* 各ケースに、最終メッセージや生成されたファイルなどの結果に対する 1 つのグレーダーと、`tool_used` や `tool_order` など Claude がそれを生成するためにたどった手順に対する 1 つのグレーダーを付与します。一緒に、答えが正しかったかどうかと、プラグインがそれを生成したかどうかの両方を示します。

230* ケースの `tool_used: Skill` グレーダーが合格しているが `Δ` が負の場合、プラグインの前にジャッジを疑います。小さいジャッジモデルは、ルーブリックが説明する内容と異なる形式であるため、正しい答えを間違いとマークできます。`--judge-model sonnet` で再実行し、形式が判定を決定しないようにルーブリックを厳しくします。242* ケースの `tool_used: Skill` グレーダーが合格しているが `Δ` が負の場合、プラグインの前にジャッジを疑います。小さいジャッジモデルは、ルーブリックが説明する内容と異なる形式であるため、正しい答えを間違いとマークできます。`--judge-model sonnet` で再実行し、形式が判定を決定しないようにルーブリックを厳しくします。

231* ビルドまたはテストが実行内で合格したことを確認するには、プロンプトで Claude にそれを実行し、結果をファイルに書き込むよう依頼し、そのファイルをグレード化し、コマンドが `tool_used` グレーダーで実行されたことを主張します。その `input_match` はコマンドに名前を付けます。243* ビルドまたはテストが実行内で合格したことを確認するには、プロンプトで Claude にそれを実行し、結果をファイルに書き込むよう依頼し、そのファイルをグレード化し、コマンドが `tool_used` グレーダーで実行されたことを主張します。その `input_match` はコマンドに名前を付けます。

232 244 


234 プラグインなしベースラインに対してスコア化する246 プラグインなしベースラインに対してスコア化する

235</h3>247</h3>

236 248 

237プラグインがテスト中の場合、各ケースはデフォルトで 2 つの arm で実行されます。with-arm はプラグインをロードした実行で、without-arm はプラグインなしで同じ数の実行です。サマリーとレポートは両方のスコアと `Δ`(with-arm スコアから without-arm スコアを引いたもの)を表示します。比較が不要な場合(グレーダーを反復するなど)、`--ablation none` を渡してコストを半減させ、with-arm のみを実行します。249プラグインがテスト対象の場合、ケースは通常 2 つの arm で実行されます。with-arm はプラグインをロードした実行で、without-arm はプラグインをまったくロードせずに同じ回数行う実行です。サマリーとレポートは両方のスコアと `Δ`(with-arm スコアから without-arm スコアを引いたもの)を表示します。

250 

251次の状況では、ケースは with-arm のみで実行されるため、`W/OUT` スコアや `Δ` は得られません。

252 

253* **`--ablation none` を渡した場合**: すべてのケースが 1 つの arm で実行されます。グレーダーを反復改善している間など、比較が不要な場合にコストを半減できます。

254* **ケースがトランスクリプトを再開し、ターゲットがパスである場合**: インストール済みプラグインの名前ではなく `.` などの [ターゲット](#choose-what-to-evaluate) を指定すると、[`context.history_file`](#add-setup-or-history-with-case-yaml) ケースは、記録された会話にすでにプラグインが反映されているという前提のもと、デフォルトで 1 つの arm で実行されます。実行時には、これらのケースを示す `single-arm (no Δ)` 通知が stderr に出力されます。再開したターンをプラグインありとなしで比較するには、`--ablation with-without` を渡します。

255* **ケースのプラグインが見つからなかった場合**: ターゲットがパスのとき、Claude Code がプラグインを特定できなかったケースもデフォルトで 1 つの arm で実行されます。修正方法は [ベースライン arm にプラグインが表示されない](#the-baseline-arm-shows-no-plugin-or-delta-is-zero) を参照してください。

238 256 

2392 つの arm 実行では、一部のグレーダーは `scored: false` で報告されます。「スキルが呼び出された」などのチェックはプラグインなしでは決して合格できないため、カウントすると without-arm がゼロに向かい、`Δ` を膨らませます。2 つの arm を比較可能に保つために、Claude Code はそのようなグレーダーを両方の arm のスコアから除外し、with-arm でそれらを合格/不合格インジケーターのみとして報告します。これには以下が含まれます。2572 つの arm 実行では、一部のグレーダーは `scored: false` で報告されます。「スキルが呼び出された」などのチェックはプラグインなしでは決して合格できないため、カウントすると without-arm がゼロに向かい、`Δ` を膨らませます。2 つの arm を比較可能に保つために、Claude Code はそのようなグレーダーを両方の arm のスコアから除外し、with-arm でそれらを合格/不合格インジケーターのみとして報告します。これには以下が含まれます。

240 258 


244 262 

2453 つの設定がその除外を変更します。2633 つの設定がその除外を変更します。

246 264 

247* **すべてのグレーダーが除外される**: ケース内のすべてのグレーダーがこれらの 1 つである場合、スコア化するものが何も残らないため、代わりに通常スコア化されます。265* **すべてのグレーダーが除外される**: ケース内のすべてのグレーダーが除外対象に含まれる場合、スコア化するものが何も残らないため、代わりに通常スコア化されます。

248* **`arm: both`**: グレーダーに `arm: both` を設定して、それに関わらず両方の arm でスコア化します。これは「スキルを呼び出してはいけない」チェックに `min: 0` と `max: 0` を使用する場合に必要です。266* **`arm: both`**: グレーダーに `arm: both` を設定して、それに関わらず両方の arm でスコア化します。これは「スキルを呼び出してはいけない」チェックに `min: 0` と `max: 0` を使用する場合に必要です。

249* **`--ablation none`**: `--ablation none` の下では何も除外されないため、同じスイートは 2 つのモードで異なる絶対スコアを生成できます。267* **`--ablation none`**: `--ablation none` の下では何も除外されないため、同じスイートは 2 つのモードで異なる絶対スコアを生成できます。

250 268 


271 289 

272各実行は空のワークスペースで開始されます。ケースがプロンプト以上のものが必要な場合は、`context` ブロックを含む `case.yaml` を `prompt.md` の横に追加します。290各実行は空のワークスペースで開始されます。ケースがプロンプト以上のものが必要な場合は、`context` ブロックを含む `case.yaml` を `prompt.md` の横に追加します。

273 291 

274* **フィクスチャファイルまたは git リポジトリ**: ケースディレクトリに Bash スクリプトを作成し、`context.scaffold_script` で名前を付けます。スクリプトはエージェントのサンドボックスの外で、あなたとして実行され、`--scaffold` を渡すときのみ実行されるため、そのフラグはあなたまたはあなたの組織が作成したスイートに対してのみ渡します。292* **フィクスチャファイルまたは git リポジトリ**: ケースディレクトリに Bash スクリプトを作成し、`context.scaffold_script` で名前を付けます。スクリプトはエージェントのサンドボックスの外でユーザー自身として実行され、`--scaffold` を渡したときのみ実行されるため、そのフラグはユーザー自身またはユーザーの組織が作成したスイートに対してのみ渡してください。

275* **以前の会話を続行する**: トランスクリプトを `.jsonl` ファイルとして保存し、`context.history_file` で名前を付けます。ケースのプロンプトは次のユーザーターンになります。293* **以前の会話を続行する**: トランスクリプトを `.jsonl` ファイルとして保存し、`context.history_file` で名前を付けます。ケースのプロンプトは次のユーザーターンになります。ターゲットがパスの場合、このようなケースはデフォルトで[ベースラインアームなし](#compare-against-a-no-plugin-baseline)で実行されます。

276* **実行中に Claude が読むことができるフィクスチャディレクトリ**: `context.add_dirs` にそれらをリストします。294* **実行中に Claude が読むことができるフィクスチャディレクトリ**: `context.add_dirs` にそれらをリストします。

277 295 

278`case.yaml` には `schema_version: "1.1"` と `name` も必要です。[case.yaml フィールド](#case-yaml-fields) リファレンスには完全なリストがあります。296`case.yaml` には `schema_version: "1.1"` と `name` も必要です。[case.yaml フィールド](#case-yaml-fields) リファレンスには完全なリストがあります。


288 add_dirs: [resources]306 add_dirs: [resources]

289```307```

290 308 

309スキャフォールドスクリプトは、小さな固定環境を持つ空のワークスペースで開始されます。この環境には、シェルの `PATH`、実行の一時ホームディレクトリに設定された `HOME`、`TMPDIR`、および `TERM=dumb` などのいくつかの定数が含まれます。シェルのそれ以外のものはスクリプトに渡されず、ケースの `EVAL_*` 変数も渡されません。スクリプトが 0 以外で終了するか、120 秒より長く実行された場合、その実行は `scaffold failed` エラーでスコア 0 になります。スクリプトが書き込むプロジェクト設定は[読み込まれない](#how-runs-are-isolated)ため、スクリプトはファイルと git の状態のためだけに使用してください。

310 

291<h3 id="mock-mcp-servers">311<h3 id="mock-mcp-servers">

292 MCP サーバーをモックする312 MCP サーバーをモックする

293</h3>313</h3>

294 314 

295スキルが MCP ツールを呼び出すプラグインを評価できます。その背後にある実際のサービスなしで。スイート全体の場合は `evals/mocks/<server>/<tool>.md` の下に 1 つのツールごとに 1 つの Markdown ファイルを配置するか、1 つのケースの場合はケース独自の `mocks/` ディレクトリの下に配置します。`<server>` はプラグインの [MCP 設定](/docs/ja/plugins/components#mcp-servers) のサーバーの名前です。315スキルが MCP ツールを呼び出すプラグインを評価できます。その背後にある実際のサービスなしで。スイート全体の場合は `evals/mocks/<server>/<tool>.md` の下に 1 つのツールごとに 1 つの Markdown ファイルを配置するか、1 つのケースの場合はケース独自の `mocks/` ディレクトリの下に配置します。`<server>` はプラグインの [MCP 設定](/docs/ja/plugins/components#mcp-servers) のサーバーの名前です。

296 316 

297実行は、要求しない限り、プラグインの実際の MCP サーバーを開始しません。Claude Code は各サーバー独自の名前の下にスタンドインを登録します。モックファイルを持つツールはそれから答え、`--allow-tools` 付与なしで許可され、モックファイルを持たないツールは Claude で利用できません。モックがまったくないサーバーは、ケースの `mocked:` 進捗行に `plugin_<plugin>_<server>[not started: no mock]` として表示されます。317実行は、要求しない限り、プラグインの実際の MCP サーバーを開始しません。Claude Code は各サーバー独自の名前で代替サーバーを登録します。モックファイルを持つツールはそのファイルから回答し、`--allow-tools` 付与なしで許可されます。モックファイルを持たないツールは Claude で利用できません。モックがまったくないサーバーは、ケースの `mocked:` 進捗行に `plugin_<plugin>_<server>[not started: no mock]` として表示されます。

298 318 

299ファイルの本文は、ツールが Claude に返すものです。このモックは `tracker` という名前のサーバー上の `create_issue` ツールの代わりになり、Claude が送信する入力をチェックし、タイトルをエコーバックします。`evals/mocks/tracker/create_issue.md` として保存します。319ファイルの本文は、ツールが Claude に返すものです。このモックは `tracker` という名前のサーバー上の `create_issue` ツールの代わりになり、Claude が送信する入力をチェックし、タイトルをエコーバックします。`evals/mocks/tracker/create_issue.md` として保存します。

300 320 


319 339 

320呼び出し自体をグレード化するには、グレーダーを `target: mock_calls` に指します。340呼び出し自体をグレード化するには、グレーダーを `target: mock_calls` に指します。

321 341 

322プラグインの実際の MCP サーバーに対して実行するには、これらのフラグの 1 つを渡します。どちらの方法でも、これらのプロセスはあなたとして実行され、実行のサンドボックスの外で、それらのツールは [`--allow-tools` 付与](#grant-tools) が必要です。342プラグインの実際の MCP サーバーに対して実行するには、これらのフラグの 1 つを渡します。どちらの方法でも、これらのプロセスは実行のサンドボックスの外でユーザー自身として実行され、それらのツールには [`--allow-tools` 付与](#grant-tools) が必要です。

323 343 

324* **`--allow-real-servers`**: モックしていない各サーバーの実際のプロセスを開始し、モックされたツールからの回答を続けます。344* **`--allow-real-servers`**: モックしていない各サーバーの実際のプロセスを開始し、モックしたツールには引き続きそれぞれのファイルから回答します。

325* **`--mocks off`**: `mocks/` を完全に無視し、プラグインが宣言するすべてのサーバーを開始します。345* **`--mocks off`**: `mocks/` を完全に無視し、プラグインが宣言するすべてのサーバーを開始します。

326 346 

327<h4 id="replay-agent-mock-answers">347<h4 id="replay-agent-mock-answers">

328 エージェントモック回答を再生する348 エージェントモック回答を再生する

329</h4>349</h4>

330 350 

331`type: agent` モックは [`--judge-model`](#command-options) への呼び出しで答えるため、その出力は実行間で異なり、ジャッジを変更すると変わります。実行がエラーまたは中止なしで完了すると、Claude Code は各回答をエージェントモックが結果ディレクトリの `mock-recordings/` の下に与えたものを保存します。351`type: agent` モックは [`--judge-model`](#command-options) への呼び出しで答えるため、その出力は実行間で異なり、ジャッジを変更すると変わります。実行がエラーまたは中止なしで完了すると、Claude Code はエージェントモックが返した各回答を、結果ディレクトリ内の `mock-recordings/` の下に保存します。

332 352 

333`ADOPT.txt` をそこで開いて、各記録と `.replay/<server>/` ディレクトリを確認し、モックの横にコピーします。記録をそこにコピーした後、後の実行はモデル呼び出しなしで同じ呼び出しから同じ答えを返します。`mocks/.replay/` を `mocks/` の残りと一緒にコミットして、CI 実行が繰り返し可能になるようにします。353そこにある `ADOPT.txt` を開くと、各記録と、その記録のコピー先となる `.replay/<server>/` ディレクトリ(記録を生成したモックの横)を確認できます。記録をそこにコピーした後は、以降の実行で同一の呼び出しに対してモデル呼び出しなしでその記録から回答します。`mocks/.replay/` を `mocks/` の残りと一緒にコミットして、CI 実行が繰り返し可能になるようにします。

334 354 

335<h2 id="run-evals">355<h2 id="run-evals">

336 evals を実行する356 evals を実行する


352| `name@skills-dir` | [skills-directory プラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository) の場合も同じ |372| `name@skills-dir` | [skills-directory プラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository) の場合も同じ |

353| 省略 | 現在のディレクトリをパスとして |373| 省略 | 現在のディレクトリをパスとして |

354 374 

355`--case <glob>` を追加してケース名でフィルタリングし、`--tag <tag>` を使用して指定されたタグのいずれかを持つケースを保持します。ターゲットを `--tag`、`--allow-tools`、`--json` の前に配置します。最初の 2 つはリストを取り、`--json` はオプションのパスを取るため、それぞれは後に続くターゲットを独自の値として読み取ります。375`--case <glob>` を追加してケース名でフィルタリングし、`--tag <tag>` を使用して指定されたタグのいずれかを持つケースを保持します。

376 

377ターゲットを `--tag`、`--allow-tools`、`--json` の前に配置します。最初の 2 つはリストを取り、`--json` はオプションのパスを取るため、それぞれは後に続くターゲットを独自の値として読み取ります。

356 378 

357<h3 id="grant-tools">379<h3 id="grant-tools">

358 ツールを付与する380 ツールを付与する

359</h3>381</h3>

360 382 

361実行は許可を求めるために停止することはありません。付与しなかった許可が必要な組み込みツール(`Bash`、`Write`、`Edit`、`WebFetch`、`WebSearch` など)はセッションから削除されるため、Claude はそれらをまったく呼び出すことができません。383実行は権限を求めるために停止することはありません。付与しなかった許可が必要な組み込みツール(`Bash`、`Write`、`Edit`、`WebFetch`、`WebSearch` など)はセッションから削除されるため、Claude はそれらをまったく呼び出すことができません。

362 384 

363実行は、ケースが `allowed_tools` にリストする読み取り専用ツール(`Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`AskUserQuestion`、`Agent`、`TodoWrite`、およびタスクツール `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate`、`TaskStop`)と、`--allow-tools` で付与するもの(スイート内のすべてのケースに適用)のみを許可します。ケースが `Bash`、`Write`、`Edit`、`WebFetch`、`WebSearch` を使用できるようにするには、自分で付与します。385実行は、ケースが `allowed_tools` にリストする読み取り専用ツール(`Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`AskUserQuestion`、`Agent`、`TodoWrite`、およびタスクツール `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate`、`TaskStop`)と、`--allow-tools` で付与するもののみを許可します。その付与は実行内のすべてのケースに適用されます。ケースが `Bash`、`Write`、`Edit`、`WebFetch`、`WebSearch` を使用できるようにするには、自分で付与します。

364 386 

365```bash theme={null}387```bash theme={null}

366claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"388claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"


368 390 

369ケースが付与しなかったツールを要求した場合、進捗出力は `not granted` としてリストします。[モックされた](#mock-mcp-servers) MCP サーバー上のツールは許可が不要です。実際のプラグイン MCP サーバー上のツールは、サーバーが開始されている必要があります(`--allow-real-servers` または `--mocks off` で)、および `--allow-tools "mcp__plugin_my-plugin_github__*"` などの名前による付与。プラグインの MCP ツールは `mcp__plugin_<plugin>_<server>__<tool>` という名前です。391ケースが付与しなかったツールを要求した場合、進捗出力は `not granted` としてリストします。[モックされた](#mock-mcp-servers) MCP サーバー上のツールは許可が不要です。実際のプラグイン MCP サーバー上のツールは、サーバーが開始されている必要があります(`--allow-real-servers` または `--mocks off` で)、および `--allow-tools "mcp__plugin_my-plugin_github__*"` などの名前による付与。プラグインの MCP ツールは `mcp__plugin_<plugin>_<server>__<tool>` という名前です。

370 392 

371任意の形式で `Bash` を付与すると、すべてのコマンドは Claude Code の [OS レベルサンドボックス](/docs/ja/sandboxing) の下で実行されます。書き込みはランの作業スペースに限定され、ホームディレクトリと Claude Code 設定は読み取り不可で、ネットワークアクセスは `--allow-tools "WebFetch(domain:example.com)"` で付与するドメインに限定されます。サンドボックスバックエンドのないマシンで Bash または PowerShell を付与すると、Claude Code は各実行を拒否し、ケースは実行エラーを表示し、通常はスコア 0 になります。ネイティブ Windows にはバックエンドがないため、WSL2 の下でシェル付与スイートを実行します。Linux では、最初に `bubblewrap` と `socat` をインストールします。[サンドボックスの前提条件](/docs/ja/sandboxing) を参照してください。393任意の形式で `Bash` を付与すると、すべてのコマンドは Claude Code の [OS レベルサンドボックス](/docs/ja/sandboxing) の下で実行されます。書き込みは実行のワークスペースに限定され、ホームディレクトリと Claude Code 設定は読み取り不可で、ネットワークアクセスは `--allow-tools "WebFetch(domain:example.com)"` で付与するドメインに限定されます。サンドボックスバックエンドのないマシンで Bash または PowerShell を付与すると、Claude Code は制限なしで実行するのではなく各実行を拒否し、ケースは実行エラーを表示し、通常はスコア 0 になります。ネイティブ Windows にはバックエンドがないため、WSL2 の下でシェル付与スイートを実行します。Linux では、最初に `bubblewrap` と `socat` をインストールします。[サンドボックスの前提条件](/docs/ja/sandboxing) を参照してください。

372 394 

373<h3 id="command-options">395<h3 id="command-options">

374 コマンドオプション396 コマンドオプション


382| `-j`, `--concurrency <n>` | `1` | 最大 1 から 8 のエージェント実行を同時に実行します。アカウントのレート制限を共有するため、これはそのレート制限を超えるスループットを上げるのではなく、壁時間を短縮します。結果はケース順を保持します。 |404| `-j`, `--concurrency <n>` | `1` | 最大 1 から 8 のエージェント実行を同時に実行します。アカウントのレート制限を共有するため、これはそのレート制限を超えるスループットを上げるのではなく、壁時間を短縮します。結果はケース順を保持します。 |

383| `--model <model>` | 各ケースの `model`、またはそれ以外は `ANTHROPIC_MODEL` が設定されている場合はそれ、またはそれ以外は Claude Code のデフォルト | テスト中のエージェント用のモデル。CI でモデルロールアウトがプラグイン回帰と間違われないようにそれを固定します。 |405| `--model <model>` | 各ケースの `model`、またはそれ以外は `ANTHROPIC_MODEL` が設定されている場合はそれ、またはそれ以外は Claude Code のデフォルト | テスト中のエージェント用のモデル。CI でモデルロールアウトがプラグイン回帰と間違われないようにそれを固定します。 |

384| `--judge-model <model>` | 小さく高速なモデル | `llm` および `baseline` グレーダー用のモデル |406| `--judge-model <model>` | 小さく高速なモデル | `llm` および `baseline` グレーダー用のモデル |

385| `--ablation <mode>` | プラグインが解決する場合は `with-without`、それ以外は `none` | 何を追加するかを測定するために、プラグインなしで各ケースを実行するかどうか。`none` は 1 つの arm を実行します。`with-without` はプラグインなしベースラインを追加します。 |407| `--ablation <mode>` | ケースごとに決定されます。[プラグインなしベースラインに対してスコアを付ける](#compare-against-a-no-plugin-baseline) を参照してください | プラグインが何を追加するかを測定するために、各ケースをプラグインなしでも実行するかどうか。`none` は 1 つの arm を実行します。`with-without` はプラグインなしベースラインを追加します。 |

386| `--threshold <0..1>` | `1.0` | ケースが with-arm スコアがこれ以上の場合に合格します。これ以下のケースはコマンドを終了 1 にします。 |408| `--threshold <0..1>` | `1.0` | ケースが with-arm スコアがこれ以上の場合に合格します。これ以下のケースはコマンドを終了 1 にします。 |

387| `--max-cost-usd <usd>` | 上限なし | 実行の定価コスト見積もりの上限(プラン使用量ではなく)。各実行開始前にチェックされます。使用後、さらに何も開始されません。既に進行中の実行は完了するため、支出は上限を超える可能性があります。未開始の実行が残っている場合、コマンドは部分的な結果で終了 2 になります。 |409| `--max-cost-usd <usd>` | 上限なし | 実行の定価コスト見積もりの上限(プラン使用量ではなく)。各実行開始前にチェックされます。使用後、さらに何も開始されません。既に開始された実行は完了するため、支出はそれらの実行の分だけ上限を超える可能性があります。未開始の実行が残っている場合、コマンドは部分的な結果で終了 2 になります。 |

388| `--allow-tools <tools...>` | なし | 読み取り専用セット以上のツールを付与します。[ツールを付与する](#grant-tools) を参照してください。 |410| `--allow-tools <tools...>` | なし | 読み取り専用セット以上のツールを付与します。[ツールを付与する](#grant-tools) を参照してください。 |

389| `--scaffold` | オフ | 各ケースの [`scaffold_script`](#add-setup-or-history-with-case-yaml) を実行します。 |411| `--scaffold` | オフ | 各ケースの [`scaffold_script`](#add-setup-or-history-with-case-yaml) を実行します。 |

390| `--trust-plugin` | オフ | 自分で実行するコードとスイートを持つプラグインの最初の実行信頼プロンプトをスキップします。CI でジョブがプロンプトで拒否されたり待機したりしないようにそれを渡します。[実行がアクセスできるもの](#security) を参照してください。 |412| `--trust-plugin` | オフ | 自分で実行するコードとスイートを持つプラグインの最初の実行信頼プロンプトをスキップします。CI でジョブがプロンプトで拒否されたり待機したりしないようにそれを渡します。[実行がアクセスできるもの](#security) を参照してください。 |


419| :- | :- |441| :- | :- |

420| 0 | すべてのケースが `--threshold` 以上でスコア化され、すべてのケースファイルがロードされました。 |442| 0 | すべてのケースが `--threshold` 以上でスコア化され、すべてのケースファイルがロードされました。 |

421| 1 | ケースが閾値以下でスコア化された、ケースファイルがロードに失敗した、ケースが見つからない、実行を開始できない、プラグインディレクトリが信頼されておらず `--trust-plugin` が渡されなかった、またはオプションが無効です。 |443| 1 | ケースが閾値以下でスコア化された、ケースファイルがロードに失敗した、ケースが見つからない、実行を開始できない、プラグインディレクトリが信頼されておらず `--trust-plugin` が渡されなかった、またはオプションが無効です。 |

422| 2 | 部分的な実行。`--max-cost-usd` 上限に達した、または認証情報が最初の実行の前または時点で拒否されました。`results.json` は `partial: true` と理由で書き込まれます。 |444| 2 | 部分的な実行。`--max-cost-usd` 上限に達した、または認証情報が最初の実行の前または時点で拒否されました。それでも `results.json` は `partial: true` と理由とともに書き込まれます。 |

423| 130 | 中断。部分的な結果が書き込まれます。 |445| 130 | 中断。部分的な結果が書き込まれます。 |

424| 143 | 終了(CI タイムアウトなど)。 |446| 143 | 終了(CI タイムアウトなど)。 |

425 447 


427 449 

428ケースがなぜ低くスコア化されたかを確認するには、ローカルで `--json` なしで実行して、実行ごとの進捗とグレーダー行が出力されるようにします。450ケースがなぜ低くスコア化されたかを確認するには、ローカルで `--json` なしで実行して、実行ごとの進捗とグレーダー行が出力されるようにします。

429 451 

430CI ランナーは以下が必要です。452CI ランナーには、以下も必要です。

431 453 

432* **インストールと認証情報**:CI ランナーは Claude Code インストールと [環境の認証情報](/docs/ja/authentication)(`ANTHROPIC_API_KEY` など)が必要です。454* **インストールと認証情報**:CI ランナーは Claude Code インストールと [環境の認証情報](/docs/ja/authentication)(`ANTHROPIC_API_KEY` など)が必要です。

433* **信頼**:`--trust-plugin` なしで、チェックアウトディレクトリを Claude Code がまだ信頼していないジョブは、[最初の実行信頼プロンプト](#trust-the-plugin-directory) が必要で、質問できない実行は終了 1 で拒否されます。455* **信頼**:`--trust-plugin` なしで、チェックアウトディレクトリを Claude Code がまだ信頼していないジョブは、[最初の実行信頼プロンプト](#trust-the-plugin-directory) が必要で、質問できない実行は終了 1 で拒否されます。

434* **CI での `init`**:`claude plugin eval init` はあなたの質問をするためにターミナルが必要です。CI では、`claude plugin eval init --bare <name>` を実行して空のテンプレートを取得します。456* **CI での `init`**:`claude plugin eval init` は質問をするためにターミナルが必要です。CI では、`claude plugin eval init --bare <name>` を実行して空のテンプレートを取得します。

435 457 

436コストを予測可能に保つために、クイックな毎変更スイートにはジャッジを呼び出さないグレーダーのみを付与し、`Δ` が不要な場所で `--ablation none` を使用し、`partial: true` ドキュメントと `skippedPaidGraders` を持つ実行をあなたがチャートするトレンドから除外します。458コストを予測可能に保つために、クイックな毎変更スイートにはジャッジを呼び出さないグレーダーのみを付与し、`Δ` が不要な場所で `--ablation none` を使用し、`partial: true` ドキュメントと `skippedPaidGraders` を持つ実行をチャートするトレンドから除外します。

437 459 

438<h2 id="read-the-results">460<h2 id="read-the-results">

439 結果を読む461 結果を読む


453 475 

454* **判定行とタイル** は、プラグインがスイート全体で役に立ったかどうかに答えます。スイートスコアはケースごとのプラグイン付きスコアの平均、アブレーション Δ はそれがベースラインスコアの上または下にどの程度座っているか、ケースは何が閾値を満たしたかをカウントします。完全な実行はすべてのグレーダーが合格した with-plugin 実行の共有です。476* **判定行とタイル** は、プラグインがスイート全体で役に立ったかどうかに答えます。スイートスコアはケースごとのプラグイン付きスコアの平均、アブレーション Δ はそれがベースラインスコアの上または下にどの程度座っているか、ケースは何が閾値を満たしたかをカウントします。完全な実行はすべてのグレーダーが合格した with-plugin 実行の共有です。

455* **各ケースカード** はケース独自の `Δ` とプラグイン付きスコアを表示し、バーの閾値にティックを付けます。`Δ` が負のケースは赤い左端を取得するため、スクロール時に回帰が目立ちます。477* **各ケースカード** はケース独自の `Δ` とプラグイン付きスコアを表示し、バーの閾値にティックを付けます。`Δ` が負のケースは赤い左端を取得するため、スクロール時に回帰が目立ちます。

456* **ケース内** では、プラグイン付き実行が最初に来て、ベースライン実行が後に来ます。各実行はグレーダーを合格または不合格チップでリストします。失敗したグレーダーは既に説明で展開されており、`llm` グレーダーはジャッジの投票と判定した証拠も表示します。これはランがなぜ低くスコア化されたかを見つける場所です。スコアに向かわないグレーダー(`tool_used: Skill` など)は `plugin-fired indicator` バッジを持ちます。478* **ケース内** では、プラグイン付き実行が最初に来て、ベースライン実行が後に来ます。各実行はグレーダーを合格または不合格チップでリストします。失敗したグレーダーは説明付きで既に展開されており、`llm` グレーダーはジャッジの投票とジャッジに提示された証拠も表示します。ここで、実行のスコアが低かった理由を確認できます。スコアに算入されないグレーダー(`tool_used: Skill` など)には `plugin-fired indicator` バッジが付きます。

457* **プロンプトとグレーダー** はケースの下に表示され、各グレーダーのルーブリックまたはパターンを表示するため、スイートなしでレポートを読む人は何が尋ねられたか、何が良いとしてカウントされたかを見ることができます。479* **プロンプトとグレーダー** は実行の下に表示され、ケースのプロンプトと各グレーダーのルーブリックまたはパターンを示すため、スイートを持たずにレポートを読む人でも、何が尋ねられ、何が良いとみなされたかを確認できます。

458 480 

459claude.ai サブスクリプションでサインインしており、[アーティファクト](/docs/ja/artifacts) がアカウントで利用可能な場合、Claude Code はレポートをプライベートアーティファクトとして公開し、`Published: <url>` を出力します。`--no-publish` を渡してローカルに保持します。`Published:` 行が表示されない場合(API キー認証など)、ローカルファイルがレポートです。481claude.ai サブスクリプションでサインインしており、[アーティファクト](/docs/ja/artifacts) がアカウントで利用可能な場合、Claude Code はレポートをプライベートアーティファクトとして公開し、`Published: <url>` を出力します。`--no-publish` を渡してローカルに保持します。`Published:` 行が表示されない場合(API キー認証など)、ローカルファイルがレポートです。

460 482 


476| `aggregates.meanDelta` | ケース全体の平均 `Δ`(2 arm モード下) |498| `aggregates.meanDelta` | ケース全体の平均 `Δ`(2 arm モード下) |

477| `cases[].name` | ケース名 |499| `cases[].name` | ケース名 |

478| `cases[].aggregates.score` | ケースの平均 with-arm 実行スコア |500| `cases[].aggregates.score` | ケースの平均 with-arm 実行スコア |

479| `cases[].aggregates.delta` | with-arm スコアから without-arm スコアを引いたもの。arm が比較可能でない場合は省略。 |501| `cases[].aggregates.delta` | with-arm スコアから without-arm スコアを引いたもの。ケースが 1 つの arm のみで実行された場合、または arm が比較可能でない場合は省略。 |

480| `cases[].arms.with[].error` | `null`、またはランが異常に終了した理由(`timed out after 300s` など)。開始したが悪く終了した実行は、生成されたものに対してグレード化されるため、null 以外のエラーはスコア 0 を意味しません。 |502| `cases[].arms.with[].error` | `null`、またはランが異常に終了した理由(`timed out after 300s` など)。開始したが悪く終了した実行は、生成されたものに対してグレード化されるため、null 以外のエラーはスコア 0 を意味しません。 |

481| `cases[].arms.with[].aborted` | [モック](#mock-mcp-servers) の `expect:` または `abort_when` が実行を停止した場合に存在し、`server`、`tool`、`reason` を持ちます。実行はスコア 0 で、`error` は `null` のままです。 |503| `cases[].arms.with[].aborted` | [モック](#mock-mcp-servers) の `expect:` または `abort_when` が実行を停止した場合に存在し、`server`、`tool`、`reason` を持ちます。実行はスコア 0 で、`error` は `null` のままです。 |

482| `cases[].arms.with[].skippedPaidGraders` | コスト上限がこの実行のジャッジグレーダーをスキップした場合は `true`。そのスコアは比較可能ではありません。 |504| `cases[].arms.with[].skippedPaidGraders` | コスト上限がこの実行のジャッジグレーダーをスキップした場合は `true`。そのスコアは比較可能ではありません。 |


486 実行がアクセスできるもの508 実行がアクセスできるもの

487</h2>509</h2>

488 510 

489`claude plugin eval` はターゲットプラグインのスキル、フック、エージェントを読み込み、あなたのマシン上で、あなたとして eval スイートを実行します。プラグインを指定することは `claude --plugin-dir` と同じ信頼判断であるため、信頼できるプラグインのみを評価してください。このセクションで説明する分離は、テスト中のエージェントが到達できるものを制限します。これはプラグイン自体のコードに対する境界ではなく、スイートが合格したことは、プラグインが安全であるかどうかについて何も述べていません。511`claude plugin eval` はターゲットプラグインのスキル、フック、エージェントを読み込み、ユーザーのマシン上で、ユーザーとして eval スイートを実行します。プラグインを指定することは `claude --plugin-dir` と同じ信頼判断であるため、信頼できるプラグインのみを評価してください。

512 

513このセクションで説明する分離は、テスト中のエージェントが到達できるものを制限します。これはプラグイン自体のコードに対する境界ではなく、スイートが合格したことは、プラグインが安全であるかどうかについて何も述べていません。

490 514 

491<h3 id="trust-the-plugin-directory">515<h3 id="trust-the-plugin-directory">

492 プラグインディレクトリを信頼する516 プラグインディレクトリを信頼する

493</h3>517</h3>

494 518 

495初めて `claude plugin eval` をディレクトリに対して実行する場合、Claude Code は何かを読み込む前に「このプラグインディレクトリを信頼しますか?」と尋ねます。ただし、インタラクティブな `claude` セッションでそこで既に信頼プロンプトを受け入れている場合は除きます。Git リポジトリ内では、「はい」と答えるとリポジトリ全体が信頼され、インタラクティブセッションでも同様です。stdin または stdout がターミナルでない場合、`--json` の下では、`CI` 環境変数が `true` などの真の値に設定されている場合、実行は尋ねることができず、終了コード 1 で拒否されます。`--trust-plugin` を渡して、自分のマシンで実行するプラグインのみについて、信頼を自分で主張してください。パスとして与えるのではなく、インストール済みプラグインまたはスキルディレクトリプラグインを意味する名前を指定したターゲットは、プロンプトをスキップします。519初めて `claude plugin eval` をディレクトリに対して実行する場合、Claude Code は何かを読み込む前に `Trust this plugin directory?` と尋ねます。ただし、インタラクティブな `claude` セッションでそこで既に信頼プロンプトを受け入れている場合は除きます。Git リポジトリ内では、「はい」と答えるとリポジトリ全体が信頼され、インタラクティブセッションでも同様です。stdin または stdout がターミナルでない場合、または `--json` の下では、実行は尋ねることができず、終了コード 1 で拒否されます。`--trust-plugin` を渡して信頼を自分で主張してください。これは自分のマシンで実行するプラグインに対してのみ行ってください。パスとして与えるのではなく名前で指定したターゲット、つまりインストール済みプラグインまたはスキルディレクトリプラグインは、プロンプトをスキップします。

496 520 

497プラグインとスイートの一部は、その実行のためにそのフラグを渡す場合にのみ実行されます。521プラグインとスイートの一部は、その実行のためにそのフラグを渡す場合にのみ実行されます。

498 522 


500* [読み取り専用セット以外のツール](#grant-tools)は `--allow-tools` で実行されます524* [読み取り専用セット以外のツール](#grant-tools)は `--allow-tools` で実行されます

501* プラグインの[実際の MCP サーバー](#mock-mcp-servers)は `--allow-real-servers` または `--mocks off` で実行されます525* プラグインの[実際の MCP サーバー](#mock-mcp-servers)は `--allow-real-servers` または `--mocks off` で実行されます

502 526 

503ケースの `allowed_tools` とスキル自体の `allowed-tools` frontmatter は、これらのいずれも拡大することはできません。527ケースの `allowed_tools` とスキル自体の `allowed-tools` フロントマターは、これらのいずれも拡大することはできません。

504 528 

505プラグインが作成していないフックを配布する場合、または実際の MCP サーバーを開始する場合は、コンテナまたは CI ランナーなどの分離された環境で実行しない限り、スコアを参考情報として扱ってください。フックとサーバーはエージェントのサンドボックスの外で実行され、グレーダーが読み取るファイルに触れる可能性があるためです。529自分で作成していないフックがプラグインに含まれている場合、または実際の MCP サーバーを開始する場合は、コンテナや CI ランナーなどの分離された環境で実行しない限り、スコアを参考情報として扱ってください。フックとサーバーはエージェントのサンドボックスの外で実行され、グレーダーが読み取るファイルを変更する可能性があるためです。

506 530 

507<h3 id="how-runs-are-isolated">531<h3 id="how-runs-are-isolated">

508 実行がどのように分離されるか532 実行がどのように分離されるか

509</h3>533</h3>

510 534 

511各実行は、使い捨てのホームディレクトリ、作業ディレクトリ、Claude Code 設定を取得し、テスト中のエージェントはそこで `claude -p` 子プロセスとして実行され、プラグインのみが読み込まれます。ケースを作成する際は、これらの結果を念頭に置いてください。535各実行は、一時的なホームディレクトリ、作業ディレクトリ、Claude Code 設定を取得し、テスト中のエージェントはそこで `claude -p` 子プロセスとして実行され、プラグインのみが読み込まれます。ケースを作成する際は、これらの結果を念頭に置いてください。

512 536 

513* **個人またはプロジェクトレベルのものは読み込まれません。** ユーザー設定、フック、`CLAUDE.md` ファイル、MCP サーバー、その他のインストール済みプラグイン、メモリ、スキルは存在せず、サンドボックス上のプロジェクトスコープの `.claude/` または `.mcp.json` は読み取られません。シェル環境のほとんども保留されます。[許可リスト](#prompt-md-fields)と `EVAL_*` 変数のみが実行に到達します。プラグインがセットアップを必要とする場合は、プラグインに含める、`scaffold_script` で作成する、または `EVAL_*` 変数を渡してください。537* **個人またはプロジェクトレベルのものは読み込まれません。** ユーザー設定、フック、`CLAUDE.md` ファイル、MCP サーバー、その他のインストール済みプラグイン、メモリ、スキルは存在しません。プロジェクトスコープの設定もどこからも読み取られません。ワークスペースの上位からも内部からも、`.claude/` ディレクトリ、`CLAUDE.md`、`.mcp.json` は読み込まれず、`scaffold_script` が書き込んだものであっても同様です。また、`add_dirs` のディレクトリは読み取りアクセスのみを付与します。シェル環境のほとんども保留されます。[許可リスト](#prompt-md-fields)と `EVAL_*` 変数のみが実行に到達します。[`scaffold_script`](#add-setup-or-history-with-case-yaml) が提供できるのはファイルと Git の状態のみであるため、ケースが依存するスキル、エージェント、フック、MCP サーバーはテスト対象のプラグインに含めてください。

514* **管理ポリシーは実行を制限できます。** 管理者がマシンに展開した[管理設定](/docs/ja/managed-settings)の制限は実行内に適用されるため、管理マシン上の結果は、そのポリシーによって管理されていないマシンと異なる場合があります。538* **管理ポリシーは引き続き実行を制限できます。** 管理者がマシンに展開した[管理設定](/docs/ja/managed-settings)の制限は実行内に適用されるため、管理マシン上の結果は、そのポリシーによって管理されていないマシンと異なる場合があります。

515* **アーティファクトツールはオフです。** [アーティファクト](/docs/ja/artifacts)を公開するスキルは、そのステップの前に生成するものについてのみグレード可能です。539* **Artifact ツールはオフです。** [アーティファクト](/docs/ja/artifacts)を公開するスキルは、そのステップの前に生成するものについてのみグレード可能です。

516* **ケース定義はエージェントから隠されています。** 実行は eval ディレクトリを読み取ることができないため、Claude はケースのプロンプト、グレーダー、または兄弟ケースを見ることができません。540* **ケース定義はエージェントから隠されています。** 実行は eval ディレクトリを読み取ることができないため、Claude はケースのプロンプト、グレーダー、または兄弟ケースを見ることができません。

517* **シェルコマンド外のネットワークサンドボックスはありません。** 付与するシェルコマンドはサンドボックスのネットワークルールの下で実行されます。`WebFetch(domain:…)` 付与はそのドメインに直接到達し、プラグイン自体のフックと開始する実際の MCP サーバーは任意のホストに到達できます。541* **シェルコマンド外のネットワークサンドボックスはありません。** 付与するシェルコマンドはサンドボックスのネットワークルールの下で実行されます。`WebFetch(domain:…)` 付与はそのドメインに直接到達し、プラグイン自体のフックと開始する実際の MCP サーバーは任意のホストに到達できます。

518 542 


520 Eval スイートリファレンス544 Eval スイートリファレンス

521</h2>545</h2>

522 546 

523eval スイートが含むすべてのコンテンツは、プラグインの eval ディレクトリ `evals/` の下に存在します。ただし、[別のディレクトリを設定](#use-a-different-eval-directory)している場合を除きます。このツリーは、`claude plugin eval` がそこで読み書きするすべてのファイルを示しています。ケースが存在するには、`prompt.md` または `case.yaml` のいずれかが必須です。547eval スイートに含めることができるものはすべて、プラグインの eval ディレクトリの下に配置されます。このディレクトリは、[別のディレクトリを設定](#use-a-different-eval-directory)していない限り `evals/` です。`prompt.md` または `case.yaml` を含むディレクトリはケースとみなされます。グレーダーが 1 つもないケースは、`graders` を示す `invalid case.yaml` エラーで読み込みに失敗します。このツリーは、`claude plugin eval` が eval ディレクトリ内で読み書きするすべてのファイルを示しています。

524 548 

525```text theme={null}549```text theme={null}

526evals/550evals/


545```569```

546 570 

547<h3 id="prompt-md-fields">571<h3 id="prompt-md-fields">

548 prompt.md frontmatter572 prompt.md フロントマター

549</h3>573</h3>

550 574 

551`prompt.md` frontmatter は以下のフィールドを受け入れます。未知のキーはエラーです。575`prompt.md` フロントマターは以下のフィールドを受け入れます。未知のキーはエラーです。

552 576 

553| フィールド | デフォルト | 目的 |577| フィールド | デフォルト | 目的 |

554| :- | :- | :- |578| :- | :- | :- |


557| `description` | | 人間向け。実行時には使用されません |581| `description` | | 人間向け。実行時には使用されません |

558| `tags` | `[]` | `--tag` フィルタリング用のラベル。任意のタグがマッチすればケースが実行されます |582| `tags` | `[]` | `--tag` フィルタリング用のラベル。任意のタグがマッチすればケースが実行されます |

559| `plugins` | 最も近い囲むプラグイン | テスト対象のプラグインディレクトリ。ケースディレクトリからの相対パス。自動検出がプラグインを見つけられない場合は `plugins: ["../.."]` を設定してください。[プラグインが読み込まれない](#the-baseline-arm-shows-no-plugin-or-delta-is-zero)を参照 |583| `plugins` | 最も近い囲むプラグイン | テスト対象のプラグインディレクトリ。ケースディレクトリからの相対パス。自動検出がプラグインを見つけられない場合は `plugins: ["../.."]` を設定してください。[プラグインが読み込まれない](#the-baseline-arm-shows-no-plugin-or-delta-is-zero)を参照 |

560| `runs` | `3` | アーム当たりの実行数。1 から 50。`--runs` でオーバーライドされます |584| `runs` | `3` | アーム当たりの実行数。1 から 50。`--runs` で上書きされます |

561| `expected_outcome` | | 人間向け。実行時には使用されません |585| `expected_outcome` | | 人間向け。実行時には使用されません |

562| `model` | 子セッションのデフォルト | テスト対象のエージェント用モデル。`--model` でオーバーライドされます |586| `model` | 子セッションのデフォルト | テスト対象のエージェント用モデル。`--model` で上書きされます |

563| `max_turns` | `10` | ターンキャップ。最大 200。これに達するとランエラーとして記録され、通常はスコアを低下させるため、寛容に設定してください |587| `max_turns` | `10` | ターンキャップ。最大 200。これに達するとランエラーとして記録され、通常はスコアを低下させるため、寛容に設定してください |

564| `timeout_seconds` | `300` | 実行ごとの壁時間キャップ。最大 3600 |588| `timeout_seconds` | `300` | 実行ごとの壁時間キャップ。最大 3600 |

565| `allowed_tools` | `[]` | ケースが必要とするツール。例えば `[Read, Glob, Grep, Skill]`。読み取り専用ツールはここにリストされると付与されます。その他については、[ツールを付与](#grant-tools)を参照してください |589| `allowed_tools` | `[]` | ケースが必要とするツール。例えば `[Read, Glob, Grep, Skill]`。読み取り専用ツールはここにリストされると付与されます。その他については、[ツールを付与](#grant-tools)を参照してください |

566| `append_system_prompt` | | 子セッションのシステムプロンプトに追加されるテキスト |590| `append_system_prompt` | | 子セッションのシステムプロンプトに追加されるテキスト |

567| `env` | `{}` | 子セッション用の追加環境変数。キーは `EVAL_[A-Z0-9_]*` にマッチする必要があります。その他のキーは実行を失敗させます。実行は、シェルからのホワイトリストのみを継承します。`PATH` とロケール、プロキシと証明書設定、モデルプロバイダーを選択・認証する変数、ほとんどの `ANTHROPIC_*` と `CLAUDE_CODE_*` 設定、および `EVAL_*` です。プラグインに他のもの(ツールチェーン設定など)を渡すには、`EVAL_*` 変数としてエクスポートしてください |591| `env` | `{}` | 子セッション用の追加環境変数。キーは `EVAL_[A-Z0-9_]*` にマッチする必要があります。その他のキーは実行を失敗させます。実行は、シェルからの許可リストのみを継承します。`PATH` とロケール、プロキシと証明書設定、モデルプロバイダーを選択・認証する変数、ほとんどの `ANTHROPIC_*` と `CLAUDE_CODE_*` 設定、および `EVAL_*` です。プラグインに他のもの(ツールチェーン設定など)を渡すには、`EVAL_*` 変数としてエクスポートしてください |

568 592 

569<h3 id="case-yaml-fields">593<h3 id="case-yaml-fields">

570 case.yaml フィールド594 case.yaml フィールド

571</h3>595</h3>

572 596 

573`case.yaml` は YAML でケースを説明する別の方法または補足です。他のファイルを指すフィールドを追加します。`schema_version: "1.1"` と `name` が必須です。`prompt.md` フィールドの `description`、`tags`、`plugins`、`runs`、`expected_outcome` はトップレベルに配置されます。`model`、`max_turns`、`timeout_seconds`、`allowed_tools`、`append_system_prompt`、`env` は `execution:` の下に配置されます。両方のファイルが存在する場合、`prompt.md` frontmatter は一致する `case.yaml` フィールドをオーバーライドし、`prompt.md` 本文がプロンプトになり、`graders/*.md` は `case.yaml` にリストされたグレーダーの後に追加されます。597`case.yaml` は YAML でケースを説明する別の方法または補足です。他のファイルを指すフィールドを追加します。`schema_version: "1.1"` と `name` が必須です。`prompt.md` フィールドの `description`、`tags`、`plugins`、`runs`、`expected_outcome` はトップレベルに配置されます。`model`、`max_turns`、`timeout_seconds`、`allowed_tools`、`append_system_prompt`、`env` は `execution:` の下に配置されます。両方のファイルが存在する場合、`prompt.md` フロントマターは一致する `case.yaml` フィールドを上書きし、`prompt.md` 本文がプロンプトになり、`graders/*.md` は `case.yaml` にリストされたグレーダーの後に追加されます。

574 598 

575これらのフィールドは `case.yaml` にのみ存在します。599これらのフィールドは `case.yaml` にのみ存在します。

576 600 

577| フィールド | 目的 |601| フィールド | 目的 |

578| :- | :- |602| :- | :- |

579| `context.scaffold_script` | ケースディレクトリ内の Bash スクリプト。Claude が開始する前に空のワークスペースで実行され、フィクスチャファイルまたは git リポジトリを作成します。[`--scaffold`](#add-setup-or-history-with-case-yaml) を渡すときのみ実行されます |603| `context.scaffold_script` | ケースディレクトリ内の Bash スクリプト。Claude が開始する前に空のワークスペースで実行され、フィクスチャファイルまたは git リポジトリを作成します。[`--scaffold`](#add-setup-or-history-with-case-yaml) を渡したときのみ、最小限の環境と 120 秒の制限で実行されます。0 以外の終了コードで終了すると実行は失敗します |

580| `context.history_file` | ケースディレクトリ内の `.jsonl` トランスクリプト。再開するために使用されます。ケースのプロンプトは次のユーザーターンになります |604| `context.history_file` | ケースディレクトリ内の `.jsonl` トランスクリプト。再開するために使用されます。ケースのプロンプトは次のユーザーターンになります |

581| `context.add_dirs` | ケースディレクトリ内のディレクトリ。Claude が実行中に読み取ることができます。読み取り専用で付与されます |605| `context.add_dirs` | ケースディレクトリ内のディレクトリ。Claude が実行中に読み取ることができます。読み取り専用で付与されます |

582| `execution.prompt` | プロンプト。ケース全体を `case.yaml` に保持し、`prompt.md` を省略する場合 |606| `execution.prompt` | プロンプト。ケース全体を `case.yaml` に保持し、`prompt.md` を省略する場合 |

583| `graders` | グレーダーのリスト。各グレーダーは `name` と `graders/*.md` ファイルが frontmatter で取得するのと同じキーを持ちます。`llm` グレーダーの場合、ルーブリックを `criteria` に配置します |607| `graders` | グレーダーのリスト。各グレーダーは `name` と `graders/*.md` ファイルがフロントマターで取得するのと同じキーを持ちます。`llm` グレーダーの場合、ルーブリックを `criteria` に配置します |

584 608 

585<h3 id="grader-frontmatter">609<h3 id="grader-frontmatter">

586 グレーダー frontmatter610 グレーダーフロントマター

587</h3>611</h3>

588 612 

589`graders/` の下のすべてのグレーダーファイルは、frontmatter でこれらのキーと、そのタイプのオプションを取得します。グレーダーの名前は `.md` なしのファイル名です。613`graders/` の下のすべてのグレーダーファイルは、フロントマターでこれらのキーと、そのタイプのオプションを取得します。グレーダーの名前は `.md` なしのファイル名です。

590 614 

591| キー | デフォルト | 目的 |615| キー | デフォルト | 目的 |

592| :- | :- | :- |616| :- | :- | :- |


627 モックファイル651 モックファイル

628</h3>652</h3>

629 653 

630`mocks/<server>/` の下の `<tool>.md` ファイルは 1 つのツールに答えます。その本文はツール結果で、`{{input.<field>}}` と `{{file:fixtures/<name>}}` の置換があります。その frontmatter は以下のキーを受け入れます。654`mocks/<server>/` の下の `<tool>.md` ファイルは 1 つのツールに答えます。その本文はツール結果で、`{{input.<field>}}` と `{{file:fixtures/<name>}}` の置換があります。そのフロントマターは以下のキーを受け入れます。

631 655 

632| キー | デフォルト | 目的 |656| キー | デフォルト | 目的 |

633| :- | :- | :- |657| :- | :- | :- |

634| `type` | `fixed` | `fixed` は本文をそのまま返します。`agent` は本文を、実行のためにサーバーをプレイする小さなモデルの指示として扱い、以前の呼び出しを履歴として見ます |658| `type` | `fixed` | `fixed` は本文をそのまま返します。`agent` は本文を、実行中にサーバーとして振る舞う小さなモデルへの指示として扱います。このモデルは以前の呼び出しを履歴として見ます |

635| `expect` | 未設定 | ドット記法の入力パスから `string`、`number`、`boolean`、`array`、`object` などのタイプ名、`/regex/`、リテラル、または許可されたリテラルのリストへのマップ。それに違反する呼び出しはスコア 0 で実行を中止し、サーバー、ツール、理由を含む `aborted` として報告されます |659| `expect` | 未設定 | ドット記法の入力パスから `string`、`number`、`boolean`、`array`、`object` などのタイプ名、`/regex/`、リテラル、または許可されたリテラルのリストへのマップ。それに違反する呼び出しはスコア 0 で実行を中止し、サーバー、ツール、理由を含む `aborted` として報告されます |

636| `error` | `false` | `fixed` のみ。本文をツールエラーとして返します |660| `error` | `false` | `fixed` のみ。本文をツールエラーとして返します |

637| `abort_when` | 未設定 | `agent` のみ。エージェントが実行を中止できる唯一の条件をリストする散文 |661| `abort_when` | 未設定 | `agent` のみ。エージェントが実行を中止できる唯一の条件をリストする散文 |

638 662 

6392 つのオプションファイルがサーバーのディレクトリ内のツールファイルの横に配置されます。6632 つのオプションファイルがサーバーのディレクトリ内のツールファイルの横に配置されます。

640 664 

641* **`_server.md`**: 複数のツールに答える単一の `type: agent` モック。その `tools:` frontmatter キーにリストされています。同じツール用の `<tool>.md` が優先されます。`expect:` ガードを個別の `<tool>.md` に配置し、ここには配置しません665* **`_server.md`**: 複数のツールに答える単一の `type: agent` モック。その `tools:` フロントマターキーにリストされています。同じツール用の `<tool>.md` が優先されます。`expect:` ガードを個別の `<tool>.md` に配置し、ここには配置しません

642* **`_tools.json`**: 実際のサーバーから保存された `tools/list` レスポンス。モック化されたツールが許可的なプレースホルダーの代わりに実際の説明と入力スキーマを持つようにします666* **`_tools.json`**: 実際のサーバーから保存された `tools/list` レスポンス。モック化されたツールが許可的なプレースホルダーの代わりに実際の説明と入力スキーマを持つようにします

643 667 

644ケース独自の `mocks/` ディレクトリは同じレイアウトを使用し、スイートのモックをファイルごとにオーバーライドします。668ケース独自の `mocks/` ディレクトリは同じレイアウトを使用し、スイートのモックをファイルごとに上書きします。

645 669 

646<h2 id="troubleshooting">670<h2 id="troubleshooting">

647 トラブルシューティング671 トラブルシューティング


665 「is not a trusted plugin directory, and this run cannot stop to ask you about it」689 「is not a trusted plugin directory, and this run cannot stop to ask you about it」

666</h3>690</h3>

667 691 

668これは Claude Code がまだ信頼していないディレクトリに対する最初の実行であり、stdin または stdout がターミナルでないか、`--json` を渡したか、`CI` 環境変数が `true` などの真の値に設定されているため、質問することができません。ターミナルで `claude plugin eval <dir>` を一度実行してプロンプトに答えるか、プラグインのコードとスイートを信頼する場合は `--trust-plugin` を渡してください。[実行がアクセスできるもの](#security)を参照してください。692これは Claude Code がまだ信頼していないディレクトリに対する最初の実行であり、stdin または stdout がターミナルでないか、`--json` を渡したため、質問することができません。ターミナルで `claude plugin eval <dir>` を一度実行してプロンプトに答えるか、プラグインのコードとスイートを信頼する場合は `--trust-plugin` を渡してください。[実行がアクセスできるもの](#security)を参照してください。

669 693 

670<h3 id="git-is-too-old-for-claude-plugin-eval">694<h3 id="git-is-too-old-for-claude-plugin-eval">

671 「is too old for claude plugin eval」695 「is too old for claude plugin eval」


685 「No eval cases found」709 「No eval cases found」

686</h3>710</h3>

687 711 

688eval ディレクトリの下に `<case>/prompt.md` または `<case>/case.yaml` が存在しないか、`--case` および `--tag` フィルターがケースと一致しません。プラグインルートから実行するか、`claude plugin eval init` を実行してスイートを作成してください。712有効な eval ディレクトリの下に `<case>/prompt.md` または `<case>/case.yaml` が存在しないか、`--case` および `--tag` フィルターがケースと一致しません。プラグインルートから実行するか、`claude plugin eval init` を実行してスイートを作成してください。

689 713 

690<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">714<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">

691 ベースラインアームにプラグインが表示されない、またはデルタがゼロ715 ベースラインアームにプラグインが表示されない、またはデルタがゼロ

692</h3>716</h3>

693 717 

694サマリーに `W/OUT` 列がない場合、またはケースが「ablation requested but no plugin resolved」で失敗する場合、ケースのプラグインが見つかりませんでした。`plugins: ["../.."]` をケースに追加し、ケースディレクトリからプラグインディレクトリへのパスを指定してください。718サマリーに `W/OUT` 列がない場合、またはケースが「ablation requested but no plugin resolved」で失敗する場合、通常の原因はケースのプラグインが見つからなかったことです。すべてのケースが `context.history_file` を通じてトランスクリプトを再開する場合は、列がないことは想定どおりです。これらのケースは[デフォルトで 1 つのアーム](#compare-against-a-no-plugin-baseline)で実行されるためです。それ以外の場合は、`plugins: ["../.."]` をケースに追加し、ケースディレクトリからプラグインディレクトリへのパスを指定してください。

695 719 

696プラグインが読み込まれ、`Δ` が `tool_used: Skill` グレーダーが失敗している場合でもゼロに近い場合、これは通常、スキルの `description` がプロンプトの表現でトリガーされていないことを意味する実際の発見です。説明を調整して、同じスイートを再度実行してください。720プラグインが読み込まれたにもかかわらず `Δ` がゼロに近く、`tool_used: Skill` グレーダーが失敗している場合、これは通常、スキルの `description` がプロンプトの表現でトリガーされていないことを意味する実際の発見です。説明を調整して、同じスイートを再度実行してください。

697 721 

698<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">722<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">

699 プラグインのエージェントの 1 つに対して「Agent type '...' not found」723 プラグインのエージェントの 1 つに対して「Agent type '...' not found」

700</h3>724</h3>

701 725 

702デフォルトでは、各ケースはプラグインを使用して実行され、プラグインなしで実行されます。プラグインなしの実行は[プラグインなしベースライン](#the-no-plugin-baseline)です。Claude がベースライン実行でプラグインのエージェントの 1 つをディスパッチする場合、Agent ツール呼び出しは `Agent type '<plugin>:<agent-name>' not found. Available agents: ...` で失敗します。リストは、[組み込みサブエージェント](/docs/ja/sub-agents#built-in-subagents)など、プラグインなしで存在するエージェントのみを名前付けします。726デフォルトでは、各ケースはプラグインありとプラグインなしの両方で実行され、プラグインなしの実行は[プラグインなしベースライン](#the-no-plugin-baseline)です。Claude がベースライン実行でプラグインのエージェントの 1 つをディスパッチする場合、Agent ツール呼び出しは `Agent type '<plugin>:<agent-name>' not found. Available agents: ...` で失敗します。リストは、[組み込みサブエージェント](/docs/ja/sub-agents#built-in-subagents)など、プラグインなしで存在するエージェントのみを名前付けします。

703 727 

704エラーは予期されています。`Δ` はプラグインの実行をベースラインと比較するためです。JSON 結果では、ベースライン実行は `cases[].arms.without` の下にあります。728エラーは予期されています。`Δ` はプラグインの実行をベースラインと比較するためです。JSON 結果では、ベースライン実行は `cases[].arms.without` の下にあります。

705 729 

706プラグインが読み込まれた実行では、`allowed_tools` に `Agent` をリストするケースは、`my-plugin:code-reviewer` など、プラグイン内のエージェントの名前空間付き名前でプラグインのエージェントの 1 つをディスパッチできます。`my-plugin` という名前のプラグイン内の `code-reviewer` エージェント。ベースライン実行をスキップするには、`--ablation none` を渡してください。730プラグインが読み込まれた実行では、`allowed_tools` に `Agent` をリストするケースは、名前空間付きの名前でプラグインのエージェントの 1 つをディスパッチできます。たとえば、`my-plugin` という名前のプラグイン内の `code-reviewer` エージェントであれば `my-plugin:code-reviewer` です。ベースライン実行をスキップするには、`--ablation none` を渡してください。

707 731 

708<h3 id="everything-scores-zero-although-the-right-files-were-produced">732<h3 id="everything-scores-zero-although-the-right-files-were-produced">

709 正しいファイルが生成されたにもかかわらず、すべてがゼロスコアになる733 正しいファイルが生成されたにもかかわらず、すべてがゼロスコアになる

710</h3>734</h3>

711 735 

712グレーダーが `files`(作成されたパスのリスト)をターゲットにしているが、ファイルの内容を意図していました。`{ source: file, path: <path> }` を `target` または `focus` として使用してください。別途、`file_exists` は実行中に作成されたファイルのみをカウントするため、スキャフォルドが作成したファイルまたは Claude が編集のみしたファイルは見えません。その内容をグレードするか、`Edit` で `tool_used` を使用してください。736グレーダーが `files`(作成されたパスのリスト)をターゲットにしているが、ファイルの内容を意図していました。`{ source: file, path: <path> }` を `target` または `focus` として使用してください。

737 

738別途、`file_exists` は実行中に作成されたファイルのみをカウントするため、スキャフォルドが作成したファイルまたは Claude が編集のみしたファイルは見えません。その内容をグレードするか、`Edit` で `tool_used` を使用してください。

713 739 

714<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">740<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

715 トレース上の正規表現が表示されるテキストと一致しない741 トレース上の正規表現が表示されるテキストと一致しない

716</h3>742</h3>

717 743 

718* **ターゲットが間違っている**: デフォルトの `target` はトレースではなく `last_message` です。744* **ターゲットが間違っている**: デフォルトの `target` はトレースではなく `last_message` です。

719* **JSON エスケープ**: `target` をトレースにする場合、行ごとに JSON であるため、引用符は `\"` として表示されます。745* **JSON エスケープ**: `target` を `trace` にする場合、行ごとに JSON であるため、引用符は `\"` として表示されます。

720* **正規表現構文**: 正規表現は JavaScript 構文を使用するため、`(?i)` を記述するのではなく、`flags` に `i` を入れてください。746* **正規表現構文**: 正規表現は JavaScript 構文を使用するため、`(?i)` を記述するのではなく、`flags` に `i` を入れてください。

721 747 

722<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">748<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">


729 実行が 1 で終了するが、結果は問題ないように見える755 実行が 1 で終了するが、結果は問題ないように見える

730</h3>756</h3>

731 757 

732デフォルトの `--threshold` は 1.0 であるため、ケースが完璧以下のスコアを取得するとコマンドは 1 で終了します。必要なスコアに一致するしきい値を設定してください。終了 1 は、読み込みに失敗したケースファイルもカバーしており、テーブルの上の stderr で報告されます。758デフォルトの `--threshold` は 1.0 であるため、ケースが完璧未満のスコアを取得するとコマンドは 1 で終了します。必要なスコアに一致するしきい値を設定してください。終了 1 は、読み込みに失敗したケースファイルもカバーしており、テーブルの上の stderr で報告されます。

733 759 

734<h3 id="json-output-path-must-end-in-json">760<h3 id="json-output-path-must-end-in-json">

735 「--json output path must end in .json」761 `--json output path must end in .json`

736</h3>762</h3>

737 763 

738`--json` の後にターゲットを配置したため、出力パスとして読み取られました。`claude plugin eval . --json` のようにターゲットを最初に配置するか、`--json` に明示的な `.json` パスを指定してください。764`--json` の後にターゲットを配置したため、出力パスとして読み取られました。`claude plugin eval . --json` のようにターゲットを最初に配置するか、`--json` に明示的な `.json` パスを指定してください。


744そのグレーダーは設計上、2 アーム実行でスコアから除外され、その `scored` フィールドは `false` です。[プラグインなしベースラインと比較](#compare-against-a-no-plugin-baseline)を参照してください。770そのグレーダーは設計上、2 アーム実行でスコアから除外され、その `scored` フィールドは `false` です。[プラグインなしベースラインと比較](#compare-against-a-no-plugin-baseline)を参照してください。

745 771 

746<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">772<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

747 実行がスイートの途中で使用量制限またはレート制限エラーで失敗する773 実行がスイートの途中で使用制限またはレート制限エラーで失敗する

748</h3>774</h3>

749 775 

750アカウントがプランの使用量制限に達するか、スイート実行中に API レート制限に達した場合、その後の各実行はそのエラーで終了し、生成されたものに基づいてグレード化され、通常はスコア 0 になります。スイートはまだ完了し、`partial` としてマークされないため、結果は回帰のように見える可能性があります。スコアを信頼する前に `NOTES` 列または JSON の `cases[].arms.with[].error` で制限メッセージを確認してから、制限がリセットされた後に再度実行してください。`--runs 1` または `--case` フィルターを使用して、制限内に留まる必要がある場合は使用してください。776スイート実行中にアカウントがプランの使用制限または API レート制限に達した場合、その後の各実行はそのエラーで終了し、生成されたものに基づいてグレード化され、通常はスコア 0 になります。スイートはそれでも完了し、`partial` としてマークされないため、結果は回帰のように見える可能性があります。スコアを信頼する前に `NOTES` 列または JSON の `cases[].arms.with[].error` で制限メッセージを確認してから、制限がリセットされた後に再度実行してください。制限内に留まる必要がある場合は、`--runs 1` または `--case` フィルターを使用してください。

751 777 

752<h3 id="runs-time-out-or-hit-the-turn-cap">778<h3 id="runs-time-out-or-hit-the-turn-cap">

753 実行がタイムアウトするか、ターンキャップに達する779 実行がタイムアウトするか、ターンキャップに達する

Details

58| `--with <components...>` | `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style`、または `channel` のスターターファイルもスキャフォールドします |58| `--with <components...>` | `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style`、または `channel` のスターターファイルもスキャフォールドします |

59| `-f, --force` | ターゲットの既存の `.claude-plugin/` を上書きします |59| `-f, --force` | ターゲットの既存の `.claude-plugin/` を上書きします |

60 60 

61スキルと hook ファイルのスターターを含むプラグインをスキャフォールドします:61スキルとフックファイルのスターターを含むプラグインをスキャフォールドします:

62 62 

63```bash theme={null}63```bash theme={null}

64claude plugin init my-helper --with skills hooks64claude plugin init my-helper --with skills hooks


66 66 

67Claude Code は書き込んだ内容を検証し、`Created plugin "my-helper" at ~/.claude/skills/my-helper` を出力し、その後にロードされる id と、それをオフにする `claude plugin disable` コマンドを出力します。67Claude Code は書き込んだ内容を検証し、`Created plugin "my-helper" at ~/.claude/skills/my-helper` を出力し、その後にロードされる id と、それをオフにする `claude plugin disable` コマンドを出力します。

68 68 

69Claude Code は安全にスキャフォールドできない場合は `1` で終了し、メッセージは理由を名前付けします。これらは一般的な理由です:69Claude Code は安全にスキャフォールドできない場合は書き込まずに `1` で終了し、メッセージは理由を示します。これらは一般的な理由です:

70 70 

71* 不明な `--with` 値71* 不明な `--with` 値

72* `--force` なしのターゲットの既存スキャフォールド72* `--force` なしのターゲットの既存スキャフォールド


92| `--accept-command <sha256>` | 前の [`--json` 実行](#plugin-json-result)が `shownCommand` で報告した `sha256` を持つ表示されたインストールコマンドを受け入れます。`-y` の代わりに使用します。`-y` と組み合わせることはできません。[表示されたインストールコマンドを受け入れる](#accept-a-displayed-install-command)を参照してください。Claude Code v2.1.271 以降が必要です |92| `--accept-command <sha256>` | 前の [`--json` 実行](#plugin-json-result)が `shownCommand` で報告した `sha256` を持つ表示されたインストールコマンドを受け入れます。`-y` の代わりに使用します。`-y` と組み合わせることはできません。[表示されたインストールコマンドを受け入れる](#accept-a-displayed-install-command)を参照してください。Claude Code v2.1.271 以降が必要です |

93| `--json` | スクリプトで使用するために、人間が読める形式のメッセージの代わりに、stdout の最後の行に 1 つの JSON オブジェクトとして結果を出力します。[JSON 結果形式](#plugin-json-result)を参照してください。Claude Code v2.1.268 以降が必要です |93| `--json` | スクリプトで使用するために、人間が読める形式のメッセージの代わりに、stdout の最後の行に 1 つの JSON オブジェクトとして結果を出力します。[JSON 結果形式](#plugin-json-result)を参照してください。Claude Code v2.1.268 以降が必要です |

94 94 

95使用しているバージョンがサポートするすべてのオプションを確認するには、シェルで `claude plugin install --help` を実行してください。

96 

95自分のターミナルから `-y` を渡して、プロンプトなしで表示されたコマンドを受け入れます。TTY がない場合と Claude がコマンドを実行する場合の動作は次のとおりです:97自分のターミナルから `-y` を渡して、プロンプトなしで表示されたコマンドを受け入れます。TTY がない場合と Claude がコマンドを実行する場合の動作は次のとおりです:

96 98 

97* **stdin または stdout が TTY ではなく、`-y` も `--accept-command` も渡さない**: インストールが拒否されます。出力はコマンドが表示されたのみであることを示し、終了コードは `1` です99* **stdin または stdout が TTY ではなく、`-y` も `--accept-command` も渡さない**: インストールが拒否されます。出力はコマンドが表示されたのみであることを示し、終了コードは `1` です


113 JSON 結果形式115 JSON 結果形式

114</h4>116</h4>

115 117 

116`plugin install` に `--json` を渡すと、stdout の最後の行は 1 つの JSON オブジェクトです。Claude Code がそれより前に宣言したコマンドを出力する可能性があるため、その行のみを解析してください。118`plugin install` に `--json` を渡すと、stdout の最後の行は 1 つの JSON オブジェクトです。マーケットプレイスが宣言するコマンドを Claude Code がその前に出力するため、その行のみを解析してください。

117 119 

1183 つのフィールドは常に存在します:1203 つのフィールドは常に存在します:

119 121 


123 125 

124`pluginId`、`scope`、`failureCode` などの他のフィールドは、適用される場合にのみ表示されます。126`pluginId`、`scope`、`failureCode` などの他のフィールドは、適用される場合にのみ表示されます。

125 127 

128`plugin uninstall`、`plugin update`、`plugin enable`、`plugin disable` の `--json` オプションは、同じオブジェクトにそれぞれのサブコマンド固有のフィールドを加えて出力します。

129 

126無効な `--scope` などの使用エラーは、結果行を出力せず、stderr に理由を付けて `1` で終了します。130無効な `--scope` などの使用エラーは、結果行を出力せず、stderr に理由を付けて `1` で終了します。

127 131 

128<h4 id="accept-a-displayed-install-command">132<h4 id="accept-a-displayed-install-command">


133 137 

134正確にそのコマンドを受け入れるには、フラグが Claude Code セッション内で効果がないため、自分のターミナルからその `sha256` を `--accept-command` として再実行してください。Claude Code v2.1.271 以降が必要です。138正確にそのコマンドを受け入れるには、フラグが Claude Code セッション内で効果がないため、自分のターミナルからその `sha256` を `--accept-command` として再実行してください。Claude Code v2.1.271 以降が必要です。

135 139 

136`sha256` は、正確にそのコマンド、プラグイン、およびマーケットプレイスカタログの受け入れとしてカウントされます。実行自体のマーケットプレイス更新が取得する変更を含め、それらのいずれかが変更された場合、Claude Code は `sha256` を受け入れず、コマンドを再度表示します。`shownCommand.acceptCommandMatched` が `false` の場合、渡した `sha256` は現在表示されているコマンドと一致しません。そのコマンドを確認してから、その `sha256` で再実行してください。140`sha256` は、正確にそのコマンド、プラグイン、およびマーケットプレイスカタログに対する受け入れとしてカウントされます。コマンドが表示された後にそれらのいずれかが変更された場合、Claude Code は `sha256` を受け入れず、コマンドを再度表示します。実行自体のマーケットプレイス更新が取得する変更も、このような変更に含まれます。

141 

142`shownCommand.acceptCommandMatched` が `false` の場合、渡した `sha256` は現在表示されているコマンドと一致しません。そのコマンドを確認してから、その `sha256` で再実行してください。

137 143 

138<h3 id="plugin-uninstall">144<h3 id="plugin-uninstall">

139 plugin uninstall145 plugin uninstall


161 167 

162Claude Code は `Successfully uninstalled plugin: formatter (scope: project)` を出力します。プラグインがそのスコープにインストールされていない場合、コマンドは `Failed to uninstall plugin "formatter@my-marketplace":` で始まる行を出力し、`1` で終了します。168Claude Code は `Successfully uninstalled plugin: formatter (scope: project)` を出力します。プラグインがそのスコープにインストールされていない場合、コマンドは `Failed to uninstall plugin "formatter@my-marketplace":` で始まる行を出力し、`1` で終了します。

163 169 

164失敗行が `"formatter" was not uninstalled:` で続く場合、Claude Code はスコープの設定がプラグインをオンのままにしていないことを確認できなかったため、プラグインはそれが保存したすべてのものと共にインストール済みのままです。`--json` を使用すると、結果は `failureCode: "settings_still_on"` を含みます。このスコープ設定チェックには Claude Code v2.1.282 以降が必要です。170失敗行が `"formatter" was not uninstalled:` で続き、設定ファイルを示している場合、Claude Code はスコープの設定がプラグインをオンにしていないことを確認できなかったため、プラグインはそれが保存したすべてのものと共にインストール済みのままです。`--json` を使用すると、結果は `failureCode: "settings_still_on"` を含みます。この設定チェックには Claude Code v2.1.282 以降が必要です。

165 171 

166<h4 id="what-an-uninstall-deletes-and-keeps">172<h4 id="what-an-uninstall-deletes-and-keeps">

167 アンインストールが削除および保持するもの173 アンインストールが削除および保持するもの

168</h4>174</h4>

169 175 

170最後のスコープでプラグインをアンインストールする場合、Claude Code はプラグインの保存された[オプションとシークレット](/docs/ja/plugins/manifest-reference#user-configuration)およびそのデータディレクトリ `~/.claude/plugins/data/<id>/` も削除します。3 つの例外があります:176プラグインがインストールされている最後のスコープからアンインストールする場合、Claude Code はプラグインの保存された[オプションとシークレット](/docs/ja/plugins/manifest-reference#user-configuration)およびそのデータディレクトリ `~/.claude/plugins/data/<id>/` も削除します。3 つの例外があります:

171 177 

172* `--keep-data` を使用すると、データディレクトリは保持されます178* `--keep-data` を使用すると、データディレクトリは保持されます

173* 別のインストール済みプラグインが同じフォルダを使用する場合(例:このプラグインと文字ケースのみが異なる ID を持つプラグイン)、データディレクトリは保持されます179* 別のインストール済みプラグインが同じフォルダを使用する場合(例:このプラグインと文字ケースのみが異なる ID を持つプラグイン)、データディレクトリは保持されます

174* Claude Code がそのスコープからプラグインを削除した後、インストール済みプラグインのリストを読み込めない場合、オプション、シークレット、およびデータディレクトリはすべて保持されます。プラグインは別のスコープにインストールされたままである可能性があるためです。アンインストールは依然として成功します。メッセージは保持されたものと削除方法をリストし、`--json` を使用すると結果は `savedKept: "install_records_unreadable"` を含みます180* Claude Code がそのスコープからプラグインを削除した後、インストール済みプラグインのリストを読み込めない場合、オプション、シークレット、およびデータディレクトリはすべて保持されます。プラグインは別のスコープにインストールされたままである可能性があるためです。アンインストールは依然として成功します。メッセージは保持されたものと削除方法をリストし、`--json` を使用すると結果は `savedKept: "install_records_unreadable"` を含みます

175 181 

176`--json` を使用すると、`keptData` はディレクトリが保持されたかどうかを報告し、`/plugin` は保持された場合に `· data preserved` を表示します。保持されるディレクトリの場合、このレポートには Claude Code v2.1.281 以降が必要です。`savedKept` フィールドには Claude Code v2.1.282 以降が必要です。182`--json` を使用すると、`keptData` はディレクトリが保持されたかどうかを報告し、`/plugin` は保持された場合に `· data preserved` を表示します。`--keep-data` なしで保持されるディレクトリの場合、このレポートには Claude Code v2.1.281 以降が必要です。`savedKept` フィールドには Claude Code v2.1.282 以降が必要です。

177 183 

178<h3 id="plugin-enable">184<h3 id="plugin-enable">

179 plugin enable185 plugin enable


192 198 

193`--scope` なしで、コマンドは設定ファイルをローカル、プロジェクト、ユーザーの順序でチェックし、プラグインを言及する最初のスコープを使用します。199`--scope` なしで、コマンドは設定ファイルをローカル、プロジェクト、ユーザーの順序でチェックし、プラグインを言及する最初のスコープを使用します。

194 200 

195プラグインが宣言されていない `--scope` を渡す場合、コマンドはオーバーライドを書き込むか失敗します:201プラグインが宣言されていない `--scope` を渡す場合、コマンドは上書きを書き込むか失敗します:

196 202 

197* **宣言するスコープより[優先される](/docs/ja/plugins/loading)スコープ**: Claude Code は渡したスコープでオーバーライドを書き込みます。たとえば、`claude plugin disable formatter --scope local` はプロジェクトで有効なプラグインをあなただけのためにオフにします203* **宣言するスコープより[優先される](/docs/ja/plugins/loading)スコープ**: Claude Code は渡したスコープで上書きを書き込みます。たとえば、`claude plugin disable formatter --scope local` はプロジェクトで有効なプラグインを自分だけに対してオフにします

198* **その他のスコープ**: コマンドは `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.` で失敗します204* **その他のスコープ**: コマンドは `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.` で失敗します

199 205 

200プラグインが解決されたスコープで既に有効な場合、コマンドは `Plugin "formatter" is already enabled` を出力し、`1` で終了します。`--json` を使用すると、結果は `"failureCode": "already_in_goal_state"` と `"alreadyInGoalState": true` を持つため、スクリプトはそのケースを成功として扱うことができます。206プラグインが解決されたスコープで既に有効な場合、コマンドは `Plugin "formatter" is already enabled` を出力し、`1` で終了します。`--json` を使用すると、結果は `"failureCode": "already_in_goal_state"` と `"alreadyInGoalState": true` を持つため、スクリプトはそのケースを成功として扱うことができます。


203 209 

204* **依存関係がインストールされていない**: 有効化が失敗し、各欠落依存関係に対して `claude plugin install` コマンドを出力します210* **依存関係がインストールされていない**: 有効化が失敗し、各欠落依存関係に対して `claude plugin install` コマンドを出力します

205* **依存関係が組織のプラグインポリシーによってブロックされている**: 有効化が失敗し、ブロックされた依存関係に名前を付けます211* **依存関係が組織のプラグインポリシーによってブロックされている**: 有効化が失敗し、ブロックされた依存関係に名前を付けます

206* **依存関係がターゲットスコープより優先度の高いスコープで `false` に設定されている**: 有効化が失敗します。そのスコープで依存関係を有効にするか、`--scope` を渡してそこに書き込みます212* **依存関係がターゲットスコープより優先順位の高いスコープで `false` に設定されている**: 有効化が失敗します。そのスコープで依存関係を有効にするか、`--scope` を渡してそこに書き込みます

207 213 

208宣言されている場所でプラグインを再度有効にします:214宣言されている場所でプラグインを再度有効にします:

209 215 


259| フラグ | 説明 |265| フラグ | 説明 |

260| :- | :- |266| :- | :- |

261| `-s, --scope <scope>` | 更新するスコープ: `user`、`project`、`local`、または `managed`。省略時は自動検出 |267| `-s, --scope <scope>` | 更新するスコープ: `user`、`project`、`local`、または `managed`。省略時は自動検出 |

262| `-y, --yes` | [コマンドソース](/docs/ja/plugins/host-marketplace)プラグインから変更されたインストールコマンドをプロンプトなしで受け入れます。stdin または stdout が TTY でない場合は必須です。`--accept-command` を渡さない限り。Claude Code v2.1.229 以降が必要です |268| `-y, --yes` | [コマンドソース](/docs/ja/plugins/host-marketplace)プラグインから変更されたインストールコマンドをプロンプトなしで受け入れます。`--accept-command` を渡さない限り、stdin または stdout が TTY でない場合は必須です。Claude Code v2.1.229 以降が必要です |

263| `--accept-command <sha256>` | 前の [`--json` 実行](#plugin-json-result)が `shownCommand` で報告した `sha256` を持つマーケットプレイスで宣言されたコマンドを受け入れます。`-y` の代わりに使用します。`-y` と組み合わせることはできません。Claude Code v2.1.271 以降が必要です |269| `--accept-command <sha256>` | 前の [`--json` 実行](#plugin-json-result)が `shownCommand` で報告した `sha256` を持つマーケットプレイスで宣言されたコマンドを受け入れます。`-y` の代わりに使用します。`-y` と組み合わせることはできません。Claude Code v2.1.271 以降が必要です |

264| `--json` | stdout の最後の行に 1 つの JSON オブジェクトを出力します。[`plugin install --json`](#plugin-json-result) と同じ形式です。Claude Code v2.1.268 以降が必要です |270| `--json` | stdout の最後の行に 1 つの JSON オブジェクトを出力します。[`plugin install --json`](#plugin-json-result) と同じ形式です。Claude Code v2.1.268 以降が必要です |

265 271 


277 283 

278Claude Code は `Checking for updates for plugin "formatter@my-marketplace"…` を出力し、その後に結果を出力します。新しいものがない場合、`formatter is already at the latest version (1.0.0).` を出力し、`0` で終了します。284Claude Code は `Checking for updates for plugin "formatter@my-marketplace"…` を出力し、その後に結果を出力します。新しいものがない場合、`formatter is already at the latest version (1.0.0).` を出力し、`0` で終了します。

279 285 

280ベアプラグイン名を渡すことができます。コマンドはインストール済みプラグインと照合します。異なるマーケットプレイスからインストール済みプラグインが名前を共有する場合、コマンドは更新を拒否し、実行する修飾 `plugin-name@marketplace-name` コマンドをリストします。ベア名による更新には Claude Code v2.1.246 以降が必要です。286ベアプラグイン名を渡すことができます。コマンドはインストール済みプラグインと照合します。異なるマーケットプレイスからインストール済みプラグインが名前を共有する場合、コマンドは更新を拒否し、代わりに実行する修飾 `plugin-name@marketplace-name` コマンドをリストします。ベア名による更新には Claude Code v2.1.246 以降が必要です。

281 287 

282<h3 id="plugin-list">288<h3 id="plugin-list">

283 plugin list289 plugin list


293| :- | :- |299| :- | :- |

294| `--json` | リストを JSON として出力 |300| `--json` | リストを JSON として出力 |

295| `--available` | マーケットプレイスが提供するがインストールしていないプラグインもリストします。`--json` なしでは効果がありません |301| `--available` | マーケットプレイスが提供するがインストールしていないプラグインもリストします。`--json` なしでは効果がありません |

296| `--data-size [plugin]` | 各インストール済みプラグインの[保存されたデータディレクトリ](#what-an-uninstall-deletes-and-keeps)を測定するか、`name@marketplace` として指定された名前付きプラグインのみを測定します。`--json` なしでは効果がありません。名前にインストールレコードがない場合、コマンドは `--data-size names a plugin that is not installed` を出力し、リストの代わりに `1` で終了します。Claude Code v2.1.285 以降が必要です |302| `--data-size [plugin]` | 各インストール済みプラグインの[保存されたデータディレクトリ](#what-an-uninstall-deletes-and-keeps)を測定するか、`name@marketplace` として指定された名前付きプラグインのみを測定します。`--json` なしでは効果がありません。名前にインストールレコードがない場合、コマンドはリストの代わりに `--data-size names a plugin that is not installed` を出力し、`1` で終了します。Claude Code v2.1.285 以降が必要です |

297 303 

298Claude Code は、各プラグインがどのようにロードされるかでグループ化された人間が読める出力を出力します:304Claude Code は、各プラグインがどのようにロードされるかでグループ化された人間が読める出力を出力します:

299 305 


384 390 

385| フラグ | 説明 |391| フラグ | 説明 |

386| :- | :- |392| :- | :- |

387| `--values-stdin` | stdin から JSON オブジェクトとしてオプション値を読み込み、保存します。省略したオプションは保存された値を保持します |393| `--values-stdin` | stdin から単一行の文字列からなる JSON オブジェクトとしてオプション値を読み込み、保存します。省略したオプションは保存された値を保持します |

388| `--json` | stdout に 1 つの JSON オブジェクトとして結果を出力します。`--values-stdin` なしで、オブジェクトはオプションの `schema` と `choices`、開始 `inputs`、および `configured` と `unconfigured` オプション名を含みます。`--values-stdin` を使用すると、`saved` オプション名と、読み込める場合は `unconfigured` オプション名を含みます |394| `--json` | stdout に 1 つの JSON オブジェクトとして結果を出力します。`--values-stdin` なしで、オブジェクトはオプションの `schema` と `choices`、開始 `inputs`、および `configured` と `unconfigured` オプション名を含みます。`--values-stdin` を使用すると、`saved` オプション名と、読み込める場合は `unconfigured` オプション名を含みます |

389 395 

390フラグなしで、コマンドは各オプションを最大 3 つのラベルでリストします:`required` または `optional`、その後マニフェストが機密として宣言するオプションの場合は `sensitive`、その後 `set` または `not set`。保存された値は出力されません。`--json` を使用すると、出力には機密でないオプションの保存された値が含まれ、機密オプションのテキストは含まれません。396フラグなしで、コマンドは各オプションを最大 3 つのラベルでリストします:`required` または `optional`、その後マニフェストが機密として宣言するオプションの場合は `sensitive`、その後 `set` または `not set`。保存された値は出力されません。`--json` を使用すると、出力には機密でないオプションの保存された値が含まれ、機密オプションのテキストは含まれません。


458* `name` または `name@marketplace` としてインストール済みプラグイン464* `name` または `name@marketplace` としてインストール済みプラグイン

459* `name@skills-dir`465* `name@skills-dir`

460 466 

461ターゲットを `--tag`、`--allow-tools`、および `--json` の前に配置します。これらの各オプションは、それに続く単語をその値として取るため、これらのいずれかの後に書かれたターゲットはタグ、ツール名、または JSON 出力パスの代わりにターゲットとして読み取られます。467ターゲットを `--tag`、`--allow-tools`、および `--json` の前に配置します。これらの各オプションは、それに続く単語をその値として取るため、これらのいずれかの後に書かれたターゲットは、ターゲットとしてではなく、タグ、ツール名、または JSON 出力パスとして読み取られます。

462 468 

463この表は、ほとんどの実行が使用するオプションをリストします。`--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp`、および `--verbose` を含む完全なセットについては、`claude plugin eval --help` を実行してください。469この表は、ほとんどの実行が使用するオプションをリストします。`--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp`、および `--verbose` を含む完全なセットについては、`claude plugin eval --help` を実行してください。

464 470 


499claude plugin eval init [name] [options]505claude plugin eval init [name] [options]

500```506```

501 507 

502プラグインのルートフォルダ(`.claude-plugin/plugin.json` またはスキルの `SKILL.md` を保持するディレクトリ)からコマンドを実行します。目的で別のディレクトリにスイートをスキャフォールドするには、`--eval-dir` を渡します。508プラグインのルートフォルダ(`.claude-plugin/plugin.json` またはスキルの `SKILL.md` を保持するディレクトリ)からコマンドを実行します。意図的に別のディレクトリにスイートをスキャフォールドするには、`--eval-dir` を渡します。

503 509 

504ターミナルでは、コマンドはオーサリングインタビューのためのインタラクティブな Claude Code セッションを開きます。インタビューでは、Claude は以下を実行します:510ターミナルでは、コマンドはオーサリングインタビューのためのインタラクティブな Claude Code セッションを開きます。インタビューでは、Claude は以下を実行します:

505 511 


5072. それが何をうまくすべきかを尋ねる5132. それが何をうまくすべきかを尋ねる

5083. ケースとグレーダーを提案する5143. ケースとグレーダーを提案する

5094. ケースファイルを書く5154. ケースファイルを書く

5105. ケースを実行し、グレーダーがあなたがするのと同じ方法でスコアするかどうかを確認するために、あなたと一緒に成績を確認します5165. ケースを実行し、グレーダーがユーザーと同じ方法でスコアを付けるかどうかを確認するために、ユーザーと一緒に成績を確認します

511 517 

512`--bare` を使用するか、ターミナルなしで、コマンドは代わりに空白の単一ケーステンプレートを書き込みます。Claude がコマンドを Claude Code セッション内から実行する場合、コマンドはそのセッションが従うべきインタビュー指示を出力します。518`--bare` を使用するか、ターミナルなしで、コマンドは代わりに空白の単一ケーステンプレートを書き込みます。Claude がコマンドを Claude Code セッション内から実行する場合、コマンドはテンプレートを書き込む代わりに、そのセッションが従うべきインタビュー指示を出力します。

513 519 

514オプションの `name` はケース名です。`--bare` を使用するか、ターミナルなしで必須です。コマンドはそのケースの空白テンプレートを書き込むためです。ケース名は文字または数字で始まり、文字、数字、`.`、`_`、および `-` のみを含みます。すべてのプラットフォームで、コマンドは Windows が保存できない名前(`con` など)や `.` で終わる名前も拒否します。520オプションの `name` はケース名です。`--bare` を使用するか、ターミナルなしで必須です。コマンドはそのケースの空白テンプレートを書き込むためです。ケース名は文字または数字で始まり、文字、数字、`.`、`_`、および `-` のみを含みます。すべてのプラットフォームで、コマンドは Windows が保存できない名前(`con` など)や `.` で終わる名前も拒否します。

515 521 


565* タグが既に存在する571* タグが既に存在する

566* ワーキングツリーがダーティ572* ワーキングツリーがダーティ

567 573 

574<h3 id="plugin-test">

575 plugin test

576</h3>

577 

578[mod](/docs/ja/plugins/mods/overview)(コードがイベントハンドラーを登録するプラグイン)のテストを実行します。このコマンドにはセッション、サインイン、ネットワークは不要です。テストの書き方については、[mod をテストする](/docs/ja/plugins/mods/test)を参照してください。

579 

580```bash theme={null}

581claude plugin test [directory]

582```

583 

584`[directory]` は mod のディレクトリで、デフォルトは現在のディレクトリです。コマンドはその下にある、名前が `.test.ts` または `.test.tsx` で終わるすべてのファイルを実行し、テストが失敗した場合はステータス 1 で終了します。

585 

586`./first-mod` にある mod のテストを実行します:

587 

588```bash theme={null}

589claude plugin test ./first-mod

590```

591 

568<h3 id="plugin-validate">592<h3 id="plugin-validate">

569 plugin validate593 plugin validate

570</h3>594</h3>


599 * `.claude` という名前のディレクトリ:その中の `skills`、`agents`、および `commands` ディレクトリ623 * `.claude` という名前のディレクトリ:その中の `skills`、`agents`、および `commands` ディレクトリ

600 * その他のディレクトリ:その `.claude` の下のこれら 3 つのディレクトリ624 * その他のディレクトリ:その `.claude` の下のこれら 3 つのディレクトリ

601 625 

602Claude Code はディレクトリ内のシンボリックリンクをたどりません。リンクがどこにあるかによって異なります:626Claude Code は指定したディレクトリ内のシンボリックリンクをたどりません。動作はリンクがどこにあるかによって異なります:

603 627 

604* **プラグインまたは `.claude` ルートの下にリンクされた `skills`、`agents`、または `commands` ディレクトリ**: Claude Code は何も読み込まれなかったことを警告します。628* **プラグインまたは `.claude` ルートの下にリンクされた `skills`、`agents`、または `commands` ディレクトリ**: Claude Code はその中の何も読み込まれなかったことを警告します。

605* **`skills`、`agents`、または `commands` ディレクトリ内のリンクされたエントリ**: Claude Code はそれをスキップし、ディレクトリごとにスキップしたエントリの数を警告します。セッションはロードします。629* **`skills`、`agents`、または `commands` ディレクトリ内のリンクされたエントリ**: Claude Code はそれをスキップし、セッションであればロードされるエントリのうちスキップした数をディレクトリごとに警告します。

606* **名前を付けた `skills`、`agents`、または `commands` ディレクトリ自体がシンボリックリンク、またはその親 `.claude` ディレクトリ**: Claude Code はエラーを報告し、その中の何もチェックしません。代わりに実際のディレクトリに名前を付けてください。630* **指定した `skills`、`agents`、または `commands` ディレクトリ自体がシンボリックリンク、またはその親 `.claude` ディレクトリがシンボリックリンク**: Claude Code はエラーを報告し、その中の何もチェックしません。代わりに実際のディレクトリを指定してください。

607 631 

608いくつかのファイルは検証実行では読み込まれません:632いくつかのファイルは検証実行では読み込まれません:

609 633 

610* **プラグインルートの `SKILL.md`**: プラグインディレクトリに対して `claude plugin validate` を実行する場合、Claude Code はプラグインルートの `SKILL.md` をチェックしません634* **プラグインルートの `SKILL.md`**: プラグインディレクトリに対して `claude plugin validate` を実行する場合、Claude Code はプラグインルートの `SKILL.md` をチェックしません

611* **プラグインルートの `CLAUDE.md`**: プラグイン実行では、Claude Code はプラグインルートの `CLAUDE.md` についても警告します635* **プラグインルートの `CLAUDE.md`**: プラグイン実行では、Claude Code はプラグインルートの `CLAUDE.md` についても警告します

612* **マーケットプレイス実行のプラグインファイル**: マーケットプレイスディレクトリから、Claude Code はプラグインのスキル、エージェント、コマンド、またはフックファイルを開きません。これらのファイルのエラーを見つけるには、各プラグインディレクトリを検証してください636* **マーケットプレイス実行のプラグインファイル**: マーケットプレイスディレクトリから、Claude Code はプラグインのスキル、エージェント、コマンド、またはフックファイルや、それらがバンドルする MCP サーバーファイルを開きません。これらのファイルのエラーを見つけるには、各プラグインディレクトリを検証してください

613 637 

614<h4 id="output-and-exit-codes">638<h4 id="output-and-exit-codes">

615 出力と終了コード639 出力と終了コード


631* `manifest`: マニフェスト自体の結果、またはマニフェストなしの実行の場合は `null`655* `manifest`: マニフェスト自体の結果、またはマニフェストなしの実行の場合は `null`

632* `contents`: ファイルごとの結果。各結果は `file` に名前を付け、`errors`、`warnings`、および `notes` 配列を含みます656* `contents`: ファイルごとの結果。各結果は `file` に名前を付け、`errors`、`warnings`、および `notes` 配列を含みます

633 657 

634終了 `2` では、コマンドは stdout に何も書き込みません。エラーメッセージは stderr に移動します。658終了 `2` では、コマンドは stdout に何も書き込みません。エラーメッセージは stderr に出力されます。

635 659 

636<h2 id="claude-plugin-marketplace-commands">660<h2 id="claude-plugin-marketplace-commands">

637 claude plugin marketplace コマンド661 claude plugin marketplace コマンド


798 822 

799`<plugin>` はプラグイン `name` または `name@marketplace` です。823`<plugin>` はプラグイン `name` または `name@marketplace` です。

800 824 

801以下の表は、すべてのセッション形式を一覧表示しています。シェルサブコマンド `init`、`update`、`details`、`prune`、`eval`、および `eval init` にはセッション形式がありません。825以下の表は、すべてのセッション形式を一覧表示しています。シェルサブコマンド `init`、`update`、`details`、`prune`、`eval`、`eval init`、および `test` にはセッション形式がありません。

802 826 

803| コマンド | エイリアス | 機能 |827| コマンド | エイリアス | 機能 |

804| :- | :- | :- |828| :- | :- | :- |

Details

435 435 

436<PluginExplorer>436<PluginExplorer>

437 <Piece id="manifest">437 <Piece id="manifest">

438 [マニフェスト](/docs/ja/plugins/manifest-reference)はプラグインの `.claude-plugin/` ディレクトリ内の `plugin.json` ファイルです。プラグインのメタデータと、Claude Code がユーザーに求める `userConfig` 値が含まれます。Claude Code はマニフェストなしでプラグインを読み込みますが、[Anthropic のディレクトリ](/docs/ja/plugins/publish#submit-to-anthropics-directory)ではそれが必要です。ファイル内では、`name` のみが必須です。このマニフェストでは、`description` はユーザーが `/plugin` でプラグインに対して見るテキストであり、`version` はユーザーをそのバージョンに保ちます。変更するまで:438 [マニフェスト](/docs/ja/plugins/manifest-reference)はプラグインの `.claude-plugin/` ディレクトリ内の `plugin.json` ファイルです。プラグインのメタデータと、Claude Code がユーザーに求める `userConfig` 値が含まれます。Claude Code はマニフェストがなくてもプラグインを読み込みます。ファイル内では、`name` のみが必須です。このマニフェストでは、`description` はユーザーが `/plugin` でプラグインに対して見るテキストであり、`version` はユーザーをそのバージョンに保ちます。変更するまで:

439 439 

440 ```json theme={null}440 ```json theme={null}

441 {441 {

Details

130* `source`:Claude Code がプラグインを取得する場所。[チュートリアル](#create-a-marketplace)のようにマーケットプレイスディレクトリ内のプラグインの相対パス文字列、またはその外のプラグインのソースオブジェクトを記述します。[プラグインソースを選択する](#choose-a-plugin-source)を参照してください。130* `source`:Claude Code がプラグインを取得する場所。[チュートリアル](#create-a-marketplace)のようにマーケットプレイスディレクトリ内のプラグインの相対パス文字列、またはその外のプラグインのソースオブジェクトを記述します。[プラグインソースを選択する](#choose-a-plugin-source)を参照してください。

131* `description`:ユーザーが `/plugin` でマーケットプレイスを参照するときにプラグインの横に表示される行。131* `description`:ユーザーが `/plugin` でマーケットプレイスを参照するときにプラグインの横に表示される行。

132 132 

133完全なフィールドリストについては、[プラグインエントリ](/docs/ja/plugins/marketplace-reference#plugin-entries)を参照してください。133完全なフィールドリストについては、[プラグインエントリ](/docs/ja/plugins/marketplace-reference#plugin-entries)を参照してください。このページでは、エントリが設定できる [`plugin.json`](/docs/ja/plugins/manifest-reference) フィールドと、それらが適用される場合についても説明しています。

134 

135エントリは、任意の [`plugin.json`](/docs/ja/plugins/manifest-reference) フィールドも設定できます。エントリの `plugin.json` フィールドが独自の `plugin.json` を持つプラグインに適用される場合については、[エントリと plugin.json](/docs/ja/plugins/marketplace-reference#entry-and-plugin-json)を参照してください。

136 134 

137<h2 id="rules-for-plugin-entries">135<h2 id="rules-for-plugin-entries">

138 プラグインエントリのルール136 プラグインエントリのルール

plugins/loading.md +20 −14

Details

244 依存関係インストールが実行される場合244 依存関係インストールが実行される場合

245</h4>245</h4>

246 246 

247Claude Code は、それが作成するたびにコピーされたバージョンディレクトリ内でインストールを実行します:247Claude Code は、コピーされたバージョンディレクトリを作成するたびに、そこに依存関係をインストールします:

248 248 

249* プラグインをインストールするとき249* プラグインをインストールするとき

250* Claude Code がプラグインを新しいバージョンに更新するとき250* Claude Code がプラグインを新しいバージョンに更新するとき


252 252 

253ローカルディレクトリマーケットプレイスから[インプレイスで読み込まれた](#in-place-and-copied-plugins)相対パスプラグインの場合、Claude Code はソースディレクトリに依存関係をインストールしません。そこに自分でインストールするか、hook から [`${CLAUDE_PLUGIN_DATA}`](/docs/ja/plugins/components#path-variables-and-persistent-data) にインストールしてください。253ローカルディレクトリマーケットプレイスから[インプレイスで読み込まれた](#in-place-and-copied-plugins)相対パスプラグインの場合、Claude Code はソースディレクトリに依存関係をインストールしません。そこに自分でインストールするか、hook から [`${CLAUDE_PLUGIN_DATA}`](/docs/ja/plugins/components#path-variables-and-persistent-data) にインストールしてください。

254 254 

255インストールは、プラグインのルートディレクトリに `package.json` とサポートされているロックファイルの両方が含まれている場合にのみ実行されます。ロックファイルは Claude Code が実行するコマンドを決定します:255インストールは、プラグインのルートディレクトリに `package.json` とサポートされているロックファイルの両方が含まれている場合にのみ実行されます。

256 256 

257| ロックファイル | コマンド |257ロックファイルは Claude Code が実行するパッケージマネージャーを決定します:

258 

259| ロックファイル | パッケージマネージャー |

258| :- | :- |260| :- | :- |

259| `bun.lock` または `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |261| `bun.lock` | Bun |

260| `npm-shrinkwrap.json` または `package-lock.json` | `npm ci --ignore-scripts` |262| `npm-shrinkwrap.json` または `package-lock.json` | npm |

261 263 

262プラグインにこれらのロックファイルの複数が含まれている場合、Claude Code は最初のマッチを使用し、順序をチェックします:`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。264プラグインにこれらのロックファイルの複数が含まれている場合、Claude Code は `bun.lock`、`npm-shrinkwrap.json`、`package-lock.json` の順にチェックし、最初に一致したものを使用します。

263 265 

264Claude Code は Yarn および pnpm ロックファイルと Bun ロックファイルの横にある `bunfig.toml` のインストールをスキップします:266Claude Code は次のロックファイルのケースでインストールをスキップします:

265 267 

266* プラグインに `yarn.lock` または `pnpm-lock.yaml` のみがある場合、npm ロックファイルに置き換えてください268* **`bun.lockb`**: Bun のバイナリロックファイルはチェックできません。代わりにテキスト形式の `bun.lock` または npm ロックファイルを同梱してください

267* `bunfig.toml` が Bun ロックファイルと同じディレクトリにある場合、`bunfig.toml` を削除するか、Bun ロックファイルを npm ロックファイルに置き換えてください269* **`yarn.lock` または `pnpm-lock.yaml`**: npm ロックファイルに置き換えてください

270* **Claude Code が読み取らない形式のロックファイル**: npm ロックファイルには npm 7 以降が書き込む `2` または `3` の `lockfileVersion` が必要で、`bun.lock` には `2` 以下の `lockfileVersion` が必要です

268 271 

269npm ロックファイルを含めて、最も多くのユーザーに到達してください。Claude Code はマッチされたロックファイルのパッケージマネージャーをユーザーの PATH から実行し、そのパッケージマネージャーが見つからない場合は他のロックファイルを試しません。272npm ロックファイルを含めて、最も多くのユーザーに到達してください。Claude Code はマッチされたロックファイルのパッケージマネージャーをユーザーの PATH から実行し、そのパッケージマネージャーが見つからない場合は他のロックファイルを試しません。

270 273 


276 279 

277Claude Code はこの依存関係インストールを制約するため、プラグインまたはそのパッケージからのコードはそれ中に実行されず、実行時間が制限されます:280Claude Code はこの依存関係インストールを制約するため、プラグインまたはそのパッケージからのコードはそれ中に実行されず、実行時間が制限されます:

278 281 

279* **フローズン解決**: Bun と npm はロックファイルがピンしたものを正確にインストールし、`package.json` とロックファイルが不一致の場合、バージョンを再解決するのではなく失敗します282* **レジストリパッケージのみ**: すべての依存関係は、ロックファイルで正確なバージョンに固定されたレジストリパッケージである必要があります。git、GitHub、フォルダー、ワークスペース、またはリンクされた依存関係を持つプラグインにはインストールが行われません。

283* **`https` ダウンロード**: ロックファイル内のダウンロードリンクは、インストールするユーザー自身のデフォルト npm レジストリを指す場合を除き、`https` を使用する必要があります。

284* **独立したインストールフォルダー**: パッケージマネージャーは、チェック済みの依存関係リストのコピーのみを保持する専用のフォルダーで実行されるため、npm と Bun はプラグインの `.npmrc`、`.env`、`bunfig.toml` を読み取りません。インストールが成功すると、Claude Code は生成された `node_modules` をプラグインに移動します。

285* **フローズン解決**: インストールではロックファイルが固定したバージョンが正確に使用され、`package.json` とロックファイルに記載された依存関係が一致しない場合、Claude Code はインストールをスキップします

280* **ライフサイクルスクリプトなし**: `--ignore-scripts` は `preinstall`、`install`、および `postinstall` スクリプトが実行されるのを防ぎ、ネイティブモジュールをビルドする依存関係はこのインストール中にダウンロードされますがコンパイルされません286* **ライフサイクルスクリプトなし**: `--ignore-scripts` は `preinstall`、`install`、および `postinstall` スクリプトが実行されるのを防ぎ、ネイティブモジュールをビルドする依存関係はこのインストール中にダウンロードされますがコンパイルされません

287* **上書きやパッチなし**: `package.json` で npm の `overrides` を設定しているプラグインには npm ロックファイルからのインストールが行われず、Bun の `patchedDependencies` を設定しているプラグインには `bun.lock` からのインストールが行われません

281* **60 秒のタイムアウト**: Claude Code は実行時間が長いインストールを停止し、失敗として扱います288* **60 秒のタイムアウト**: Claude Code は実行時間が長いインストールを停止し、失敗として扱います

282 289 

283Claude Code は npm ソースプラグインをこの依存関係インストールの前にフェッチし、パッケージ独自のインストールスクリプトはフェッチ中に実行されません。[npm プラグインソース](/docs/ja/plugins/marketplace-reference#npm-plugin-source)を参照してください。290Claude Code は npm ソースプラグインをこの依存関係インストールの前にフェッチし、パッケージ独自のインストールスクリプトはフェッチ中に実行されません。[npm プラグインソース](/docs/ja/plugins/marketplace-reference#npm-plugin-source)を参照してください。


290 依存関係インストールが失敗またはスキップされた場合297 依存関係インストールが失敗またはスキップされた場合

291</h4>298</h4>

292 299 

293失敗またはスキップされたインストールはプラグインをブロックしません。各ケースは異なる兆候を残します:300インストールが失敗またはスキップされてもプラグインがブロックされることはなく、その場合プラグインは依存関係なしで読み込まれます。各ケースは異なる兆候を残します:

294 301 

295* 失敗したインストール、または Yarn もしくは pnpm ロックファイルまたは `bunfig.toml` のためにスキップされたインストールは、`claude --debug` 出力に警告として表示されます302* 失敗したインストール、またはロックファイルや[インストールの制限](#limits-on-the-dependency-install)のいずれかのためにスキップされたインストールは、`claude --debug` 出力に理由を示す `Plugin dependency install warning` 行として表示されます

296* `package.json` を持つが、ロックファイルがないプラグインはログエントリなしでスキップされます303* `package.json` を持つが、ロックファイルがないプラグインはログエントリなしでスキップされます

297* タイムアウトしたインストールは、キャッシュされたコピーに部分的な `node_modules` ツリーを残す可能性があります

298 304 

299自動インストールが依存関係を提供できない場合、hook から[永続データディレクトリ](/docs/ja/plugins/components#path-variables-and-persistent-data)にインストールしてください。これには、ライフサイクルスクリプトをビルドする必要があるパッケージ、Python 依存関係、および Yarn または pnpm でロックされたプラグインが含まれます。305自動インストールが依存関係を提供できない場合は、フックから[永続データディレクトリ](/docs/ja/plugins/components#path-variables-and-persistent-data)にインストールしてください。これには、ビルドにライフサイクルスクリプトを必要とするパッケージ、Python 依存関係、Yarn または pnpm でロックされたプラグイン、および git 依存関係などのレジストリパッケージではない依存関係が含まれます。

300 306 

301<h2 id="versions-and-updates">307<h2 id="versions-and-updates">

302 バージョンとアップデート308 バージョンとアップデート

Details

142| `license` | String | `MIT` や `Apache-2.0` などの SPDX 識別子 |142| `license` | String | `MIT` や `Apache-2.0` などの SPDX 識別子 |

143| `keywords` | Array of strings | 検出タグ |143| `keywords` | Array of strings | 検出タグ |

144| [`metadata`](#metadata) | Object | 独自のデータ用の自由形式オブジェクト。Claude Code は読み込みません |144| [`metadata`](#metadata) | Object | 独自のデータ用の自由形式オブジェクト。Claude Code は読み込みません |

145| [`icon`](#directory-listing-fields) | String | Anthropic のディレクトリにおけるプラグインの掲載情報用アイコン。Claude Code は読み込みません |

146| [`documentationUrl`](#directory-listing-fields) | String | Anthropic のディレクトリにおけるプラグインの掲載情報用ドキュメントリンク。Claude Code は読み込みません |

147| [`supportUrl`](#directory-listing-fields) | String | Anthropic のディレクトリにおけるプラグインの掲載情報用サポートリンク。Claude Code は読み込みません |

148| [`privacyPolicyUrl`](#directory-listing-fields) | String | Anthropic のディレクトリにおけるプラグインの掲載情報用プライバシーポリシーリンク。Claude Code は読み込みません |

149| [`termsOfServiceUrl`](#directory-listing-fields) | String | Anthropic のディレクトリにおけるプラグインの掲載情報用利用規約リンク。Claude Code は読み込みません |

145| [`defaultEnabled`](#defaultenabled) | Boolean | ユーザーが設定していない場合、プラグインが有効な状態で開始するかどうか。デフォルトは `true` |150| [`defaultEnabled`](#defaultenabled) | Boolean | ユーザーが設定していない場合、プラグインが有効な状態で開始するかどうか。デフォルトは `true` |

146| [`dependencies`](#dependencies) | Array of strings or objects | このプラグインが機能するために有効にする必要があるプラグイン |151| [`dependencies`](#dependencies) | Array of strings or objects | このプラグインが機能するために有効にする必要があるプラグイン |

147| [`settings`](#settings) | Object | プラグインが有効な間に Claude Code が適用する設定。`agent` と `subagentStatusLine` のみが有効です |152| [`settings`](#settings) | Object | プラグインが有効な間に Claude Code が適用する設定。`agent` と `subagentStatusLine` のみが有効です |


202 207 

203カタログまたは権利フィールドなど、独自のデータ用の自由形式オブジェクト。Claude Code は読み込みません。Claude Code v2.1.222 以降が必要です。208カタログまたは権利フィールドなど、独自のデータ用の自由形式オブジェクト。Claude Code は読み込みません。Claude Code v2.1.222 以降が必要です。

204 209 

210<h3 id="directory-listing-fields">

211 ディレクトリ掲載フィールド

212</h3>

213 

214[プラグインを提出する](/docs/ja/plugins/publish#submit-to-anthropics-directory)と、Anthropic のディレクトリはプラグインの掲載情報のために `plugin.json` から `icon`、`documentationUrl`、`supportUrl`、`privacyPolicyUrl`、`termsOfServiceUrl` フィールドを読み取ります。Claude Code は読み込み時にこれらを無視します。これらは `plugin.json` でのみ設定してください。[マーケットプレイスエントリ](#marketplace-entries-and-the-manifest)では、`claude plugin validate` がそれぞれを不明なフィールドとして報告します。

215 

216`icon` には `./logo.png` などプラグイン内の画像ファイルのパスを、4 つの URL フィールドにはそれぞれ `https://` URL を設定してください。

217 

218Claude Code v2.1.281 以降では、`claude plugin validate` はこれらのフィールドを警告なしで受け入れます。それより前のバージョンではそれぞれに対して `Unknown field` 警告が出力されるため、それらのバージョンでは `--strict` での実行が失敗します。

219 

205<h3 id="defaultenabled">220<h3 id="defaultenabled">

206 `defaultEnabled`221 `defaultEnabled`

207</h3>222</h3>


693 マーケットプレイスエントリとマニフェスト708 マーケットプレイスエントリとマニフェスト

694</h2>709</h2>

695 710 

696[マーケットプレイスエントリ](/docs/ja/plugins/marketplace-reference)は、このページのすべてのフィールドを[独自のフィールド](/docs/ja/plugins/marketplace-reference#plugin-entries)と一緒に受け入れます。`strict` を含みます。711[マーケットプレイスエントリ](/docs/ja/plugins/marketplace-reference)は、`strict` を含む[独自のフィールド](/docs/ja/plugins/marketplace-reference#plugin-entries)に加えて、[ディレクトリ掲載フィールド](#directory-listing-fields)を除くこのページのすべてのフィールドを受け入れます。

697 712 

698`strict` フィールドは、エントリが独自の `plugin.json` を持つプラグインにコンポーネントを追加できるかどうかを決定します。デフォルトは `true` です。713`strict` フィールドは、エントリが独自の `plugin.json` を持つプラグインにコンポーネントを追加できるかどうかを決定します。デフォルトは `true` です。

699 714 

Details

81 81 

82`marketplace.json` のトップレベル `plugins` 配列内の各オブジェクトはプラグインに名前を付け、そこからフェッチする場所を指定します。`name` および `source` は必須です。82`marketplace.json` のトップレベル `plugins` 配列内の各オブジェクトはプラグインに名前を付け、そこからフェッチする場所を指定します。`name` および `source` は必須です。

83 83 

84エントリは、`description`、`version`、`author`、`commands`、および `hooks` などのすべての [`plugin.json` フィールド](/docs/ja/plugins/manifest-reference) も受け入れます。これらのフィールドが適用される場合については、[エントリが plugin.json とどのように組み合わされるか](#entry-and-plugin-json) を参照してください。84[ディレクトリリスティングフィールド](/docs/ja/plugins/manifest-reference#directory-listing-fields) のほかに、エントリは `description`、`version`、`author`、`commands`、および `hooks` などのすべての [`plugin.json` フィールド](/docs/ja/plugins/manifest-reference) も受け入れます。これらのフィールドが適用される場合については、[エントリが plugin.json とどのように組み合わされるか](#entry-and-plugin-json) を参照してください。

85 85 

86テーブルはエントリ自身のフィールドと、エントリ内での意味が変わるマニフェストフィールドをリストします。86テーブルはエントリ自身のフィールドと、エントリ内での意味が変わるマニフェストフィールドをリストします。

87 87 


108 108 

109エントリのフィールドは、フェッチされたプラグインが独自の `.claude-plugin/plugin.json` を持つ場合と持たない場合で異なる方法で適用されます:109エントリのフィールドは、フェッチされたプラグインが独自の `.claude-plugin/plugin.json` を持つ場合と持たない場合で異なる方法で適用されます:

110 110 

111* **`plugin.json` なし**: エントリは `strict` に関係なくマニフェストです。[`mcpServers`、`lspServers`、`userConfig`、および `channels`](/docs/ja/plugins/manifest-reference) を含むすべてのマニフェストフィールドがエントリに適用されます。111* **`plugin.json` なし**: エントリは `strict` に関係なくマニフェストです。[`mcpServers`、`lspServers`、`userConfig`、および `channels`](/docs/ja/plugins/manifest-reference) を含む、エントリが受け入れるすべてのマニフェストフィールドが適用されます。

112* **`plugin.json` 存在**: `plugin.json` はマニフェストです。[厳密モード](#strict-mode) は、エントリの 6 つのコンポーネントフィールド `commands`、`agents`、`skills`、`hooks`、`outputStyles`、および `themes` が組み合わされるか、競合として拒否されるかを決定します。エントリ `mcpServers`、`lspServers`、`userConfig`、および `channels` は適用されません。`plugin.json` で宣言してください。112* **`plugin.json` 存在**: `plugin.json` はマニフェストです。[厳密モード](#strict-mode) は、エントリの 6 つのコンポーネントフィールド `commands`、`agents`、`skills`、`hooks`、`outputStyles`、および `themes` が組み合わされるか、競合として拒否されるかを決定します。エントリ `mcpServers`、`lspServers`、`userConfig`、および `channels` は適用されません。`plugin.json` で宣言してください。

113 113 

114<h4 id="hooks-in-an-entry">114<h4 id="hooks-in-an-entry">

115 エントリ内のフック115 エントリ内のフック

116</h4>116</h4>

117 117 

118エントリ `hooks` をフックイベント名をマッチャー配列にマップするインラインオブジェクトとして記述します。ファイルパスまたは配列を記述する場合、`claude plugin validate` はそれを渡します。これらのフックは実行されず、Claude Code はプラグインの `not yet supported in a marketplace entry` エラーを報告します。ファイルベースのフックをプラグイン自身の [`hooks/hooks.json`](/docs/ja/plugins/components) または `plugin.json` に入れてください。118エントリ `hooks` は、フックイベント名を matcher 配列にマップするインラインオブジェクトとして記述します。代わりにファイルパスまたは配列を記述した場合、`claude plugin validate` はそれを通過させます。しかし、これらのフックは実行されず、Claude Code はプラグインの `not yet supported in a marketplace entry` エラーを報告します。ファイルベースのフックはプラグイン自身の [`hooks/hooks.json`](/docs/ja/plugins/components) または `plugin.json` に入れてください。

119 119 

120<h4 id="display-fields">120<h4 id="display-fields">

121 表示フィールド121 表示フィールド


132 厳密モード132 厳密モード

133</h3>133</h3>

134 134 

135`strict` は、フェッチされたプラグインが独自の `plugin.json` を持ち、エントリが [コンポーネントフィールド](#entry-and-plugin-json) のいずれかも宣言する場合に何が起こるかを決定します:`commands`、`agents`、`skills`、`hooks`、`outputStyles`、または `themes`。デフォルトの `strict: true` では、Claude Code はエントリのコンポーネントフィールドを `plugin.json` に追加します。ただし `hooks` は例外で、そのマッチャーはマニフェストのイベントごとのマッチャーを置き換えます。`strict: false` では、コンポーネントフィールドを宣言するエントリは競合であり、プラグインは読み込みに失敗します。テーブルは `strict`、`plugin.json`、およびエントリのコンポーネントフィールドの各組み合わせを示します。135`strict` は、フェッチされたプラグインが独自の `plugin.json` を持ち、エントリが [コンポーネントフィールド](#entry-and-plugin-json) のいずれかも宣言する場合に何が起こるかを決定します:`commands`、`agents`、`skills`、`hooks`、`outputStyles`、または `themes`。デフォルトの `strict: true` では、Claude Code はエントリのコンポーネントフィールドを `plugin.json` に追加します。ただし `hooks` は例外で、その matcher はマニフェストのイベントごとの matcher を置き換えます。`strict: false` では、コンポーネントフィールドを宣言するエントリは競合であり、プラグインは読み込みに失敗します。テーブルは `strict`、`plugin.json`、およびエントリのコンポーネントフィールドの各組み合わせを示します。

136 136 

137| `strict` | `plugin.json` | エントリコンポーネントフィールド | 結果 |137| `strict` | `plugin.json` | エントリコンポーネントフィールド | 結果 |

138| :- | :- | :- | :- |138| :- | :- | :- | :- |

139| any | absent | any | エントリはマニフェストです |139| any | absent | any | エントリはマニフェストです |

140| `true`、デフォルト | present | any | `plugin.json` が権限です。Claude Code はエントリのコンポーネントフィールドを追加します。ただし `hooks` は例外で、そのマッチャーは [マニフェストのイベントごとのマッチャーを置き換えます](/docs/ja/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |140| `true`、デフォルト | present | any | `plugin.json` が正式な基準です。Claude Code はエントリのコンポーネントフィールドをそれに追加します。ただし `hooks` は例外で、その matcher は [マニフェストのイベントごとの matcher を置き換えます](/docs/ja/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

141| `false` | present | none | `true` と同様に `plugin.json` はマニフェストです |141| `false` | present | none | `true` と同様に `plugin.json` はマニフェストです |

142| `false` | present | one or more | 競合。プラグインは `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` で読み込みに失敗します |142| `false` | present | one or more | 競合。プラグインは `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` で読み込みに失敗します |

143 143 


155| `github` | `repo`、`ref`、`sha` | `owner/repo` 形式の GitHub リポジトリ |155| `github` | `repo`、`ref`、`sha` | `owner/repo` 形式の GitHub リポジトリ |

156| `url` | `url`、`ref`、`sha` | URL による任意の git リポジトリ |156| `url` | `url`、`ref`、`sha` | URL による任意の git リポジトリ |

157| `git-subdir` | `url`、`path`、`ref`、`sha` | git リポジトリの 1 つのサブディレクトリで、スパース部分クローンで取得されます |157| `git-subdir` | `url`、`path`、`ref`、`sha` | git リポジトリの 1 つのサブディレクトリで、スパース部分クローンで取得されます |

158| `npm` | `package`、`version`、`registry` | npm パッケージで、npm クライアントで取得され、インストールスクリプトを実行せずに展開されます |158| `npm` | `package`、`version`、`registry` | npm レジストリのパッケージまたは tarball リンクで、npm クライアントで取得され、インストールスクリプトを実行せずに展開されます |

159| `archive` | `url`、`sha256` | HTTPS 経由の Zip アーカイブ。Claude Code v2.1.224 以降が必要です |159| `archive` | `url`、`sha256` | HTTPS 経由の Zip アーカイブ。Claude Code v2.1.224 以降が必要です |

160| `command` | `command`、`timeout`、`mode` | Claude Code がユーザーのマシン上で実行するコマンドによって出力されるディレクトリ。Claude Code v2.1.229 以降が必要です |160| `command` | `command`、`timeout`、`mode` | Claude Code がユーザーのマシン上で実行するコマンドによって出力されるディレクトリ。Claude Code v2.1.229 以降が必要です |

161 161 


258 258 

259`npm` ソースは以下のフィールドを取ります。259`npm` ソースは以下のフィールドを取ります。

260 260 

261* `package`: パッケージ名、または `@your-org/formatter` のようなスコープ付き名前261* `package`: `@your-org/formatter` のようなレジストリパッケージ名、`@your-org/formatter@2.0.0` のようにバージョンを付加した名前、またはパッケージの tarball ファイルへの `https` リンク

262* `version`: バージョンまたは範囲262* `version`: バージョン、semver 範囲、または dist-tag。`package` がバージョンを付加していないパッケージ名の場合に使用されます。省略すると `latest` を取得します

263* `registry`: デフォルトレジストリにないパッケージのレジストリ URL263* `registry`: デフォルトレジストリにないパッケージのレジストリ URL

264 264 

265Claude Code はあなたの npm クライアントでパッケージを取得します。パッケージのインストールスクリプト(`preinstall` や `postinstall` など)は実行されず、その依存関係は取得中にインストールされません。パッケージが `package.json` の隣にサポートされているロックファイルを持っている場合、Claude Code はそれらの[Node.js パッケージ依存関係](/docs/ja/plugins/loading#node-js-package-dependencies)を別のステップでインストールします。この場合もスクリプトは無効です。265Claude Code はあなたの npm クライアントでパッケージを取得します。パッケージのインストールスクリプト(`preinstall` や `postinstall` など)は実行されず、その依存関係は取得中にインストールされません。パッケージが `package.json` の隣にサポートされているロックファイルを持っている場合、Claude Code はそれらの[Node.js パッケージ依存関係](/docs/ja/plugins/loading#node-js-package-dependencies)を別のステップでインストールします。この場合もスクリプトは無効です。

266 266 

267Claude Code は何かを取得する前に `package` の値を確認します。拒否された値ではインストールが失敗し、その値と理由を示すメッセージが表示されます。拒否される値には以下が含まれます。

268 

269* **git アドレス、フォルダまたは `file:` パス、あるいは `npm:` エイリアス**: git リポジトリには [`github`、`url`、または `git-subdir` ソース](#plugin-sources)を、マーケットプレイス内のフォルダには相対パスを、エイリアスにはパッケージ自体の名前を使用してください

270* **github.com、gist.github.com、gitlab.com、bitbucket.org、または git.sr.ht 上の tarball リンク**: リンクが GitHub リリースのダウンロードであっても拒否されます。ただし、`gitlab.com/api/v4/` 配下の GitLab npm レジストリリンクは除きます

271* **`http` 経由の tarball リンク**: インストールするユーザー自身のデフォルト npm レジストリを指していない限り拒否されます

272 

273`registry` URL は、インストールするユーザー自身のデフォルト npm レジストリでない限り、`https` を使用する必要があります。それ以外の `http` レジストリでは、npm がそれに接続する前にインストールが失敗します。

274 

267```json theme={null}275```json theme={null}

268{276{

269 "name": "formatter",277 "name": "formatter",

Details

167 167 

168mod が読み込まれなかったユーザーは、デバッグログで理由を見つけます。[拒否メッセージ](/docs/ja/plugins/mods/troubleshoot#refusal-messages) は `allowManagedHooksOnly` と `disableAllHooks` の行を一覧表示し、[組み込みガードからのメッセージ](/docs/ja/plugins/mods/troubleshoot#messages-from-the-built-in-guard) は `allowManagedModsOnly` の行を持っています。168mod が読み込まれなかったユーザーは、デバッグログで理由を見つけます。[拒否メッセージ](/docs/ja/plugins/mods/troubleshoot#refusal-messages) は `allowManagedHooksOnly` と `disableAllHooks` の行を一覧表示し、[組み込みガードからのメッセージ](/docs/ja/plugins/mods/troubleshoot#messages-from-the-built-in-guard) は `allowManagedModsOnly` の行を持っています。

169 169 

170<h3 id="allow-only-your-organization’s-mods">

171 組織の mod のみを許可する

172</h3>

173 

174組織の mod を実行し、ユーザーが持ち込む mod をブロックするには、[ポリシー表](#choose-how-much-to-allow) の **組織の mod のみ** の行の設定に加えて、`disableSideloadFlags` をデプロイします。次の完全な `managed-settings.json` を使用すると、Claude Code はユーザー独自の mod を拒否するため、そのフックは一切実行されず、ポリシー mod は他の mod より先に実行されます。

175 

176```json managed-settings.json theme={null}

177{

178 "extraKnownMarketplaces": {

179 "acme-tools": {

180 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

181 }

182 },

183 "enabledPlugins": { "acme-guard@acme-tools": true },

184 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"],

185 "pluginConfigs": {

186 "cc-plugin-sec-default@builtin": {

187 "options": { "allowManagedModsOnly": true }

188 }

189 },

190 "disableSideloadFlags": true

191}

192```

193 

194キーの各グループは、それぞれ 1 つの役割を担います。

195 

196* **`extraKnownMarketplaces`、`enabledPlugins`、`prependPlugins`**: mod を組織のものとしてカウントされるようにインストールし、最初に実行して、その後にガードを実行します。[組織の mod をインストールして順序を設定する](#install-your-organizations-mods) では、これらのキーが指すディレクトリについて説明しています。

197* **`pluginConfigs`**: ガードの `allowManagedModsOnly` オプションを設定し、Claude Code がユーザー独自の mod を拒否するようにします。ユーザーの設定フック、ステータスライン、`/goal` は引き続き機能します。

198* **`disableSideloadFlags`**: スタートアップ時に拒否されるフラグについては、[`disableSideloadFlags`](/docs/ja/settings-reference#disablesideloadflags) を参照してください

199 

200テストマシンでポリシーを確認するには、シェルで `claude --debug` を使用してセッションを開始し、デバッグログを読みます。

201 

202* **組織の mod**: その `hooks module` 行に `tier prepend` が含まれます

203* **ユーザーがインストールした mod**: `refused by cc-plugin-sec-default: mods are limited to your organization's by policy (allowManagedModsOnly)` という行があります。それより前の行では、その mod のフックモジュールが `loaded` と表示されるため、拒否の行を探してください。

204* **プラグインディレクトリ**: `claude --plugin-dir ./any-mod` は、`--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)` で始まるメッセージを表示して終了します

205 

206ユーザーが追加できるマーケットプレイスも制限するには、このファイルを [マーケットプレイス制限](/docs/ja/plugins/org#restrict-what-users-can-install) と組み合わせます。

207 

208<h3 id="apply-your-plugin-controls-to-mods">

209 プラグインの制御を mod に適用する

210</h3>

211 

212mod はプラグインであるため、[組織のプラグインを管理する](/docs/ja/plugins/org) 方法は、mod を含むプラグインにも適用されます。

213 

214* **フリート全体でどのプラグインが読み込まれるかを確認する**: [監査とレビュー](/docs/ja/plugins/org#audit-and-review)

215* **レビューしたプラグインをいつ更新できるかを決定する**: [更新ポリシーを設定する](/docs/ja/plugins/org#set-update-policy)

216* **パイロットなど、1 つのグループに異なるポリシーを適用する**: [管理設定で強制できないことに備える](/docs/ja/plugins/org#plan-for-what-managed-settings-can’t-enforce)

217* **どのアプリとセッションの種類がプラグインキーを適用するかを確認する**: [各サーフェスがプラグインキーを適用するタイミング](/docs/ja/plugins/org#when-each-surface-applies-the-plugin-keys)

218* **CI とコンテナをセットアップする**: [コンテナと CI をシードする](/docs/ja/plugins/org#seed-containers-and-ci)

219* **ユーザーがインストールできる mod を提供する**: [マーケットプレイスをホストする](/docs/ja/plugins/host-marketplace)。Claude Code が GitHub、git、URL、または npm ソースからコピーする mod は、[組織のもの](#install-your-organizations-mods) ではなく、ユーザーのものとしてカウントされます。

220 

170<h3 id="set-options-on-the-built-in-guard">221<h3 id="set-options-on-the-built-in-guard">

171 組み込みガードでオプションを設定する222 組み込みガードでオプションを設定する

172</h3>223</h3>

Details

190 190 

191`$.ui.ask` などの mods API 呼び出しの中で待機を保持してください。その時間は hook の[10 秒の時間制限](/docs/ja/plugins/mods/reference#limits)に対してカウントされないためです。自分の promise を待つのに費やされた時間はカウントされます。Claude Code は時間切れになった hook をスキップするため、保持されたコマンドは実行されます。191`$.ui.ask` などの mods API 呼び出しの中で待機を保持してください。その時間は hook の[10 秒の時間制限](/docs/ja/plugins/mods/reference#limits)に対してカウントされないためです。自分の promise を待つのに費やされた時間はカウントされます。Claude Code は時間切れになった hook をスキップするため、保持されたコマンドは実行されます。

192 192 

193<h4 id="approve-or-refuse-a-tool-call-before-the-user-is-asked">

194 ユーザーに確認される前にツール呼び出しを承認または拒否する

195</h4>

196 

197ツール呼び出しを実行してよいかどうかを決定するには、Claude Code がその決定を行うイベントである [`tool.check`](/docs/ja/plugins/mods/reference#tools) を処理します。これは権限ルールと設定フックが決定した後に発火し、`next(e)` はそれらの決定(`allow`、`ask`、または `deny`)に解決されます。フックはその決定または別の決定を返します。`e.input` はツールの引数を保持します。例えば Bash の場合は `command` です。

198 

199固定のコマンドやパスには、`Bash(npm test)` のような[権限ルール](/docs/ja/permissions#permission-rule-syntax)を使用してください。これにはコードは不要です。現在の Git ブランチや別のフックが記録した値など、その時点の状態に決定が依存する場合に `tool.check` を処理します。

200 

201このフックは、現在のブランチが `main` の間 `git push` を拒否します:

202 

203```javascript theme={null}

204on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

205 // 権限ルールと設定フックが決定したもの:'allow'、'ask'、または 'deny'

206 const decided = await next(e)

207 if (!e.input.command.includes('git push')) return decided

208 const branch = await $.process.run(['git', 'branch', '--show-current'])

209 if (branch.stdout.trim() !== 'main') return decided

210 return { decision: 'deny', reason: 'Push from a branch other than main' }

211})

212```

213 

214`main` では、ルールが `git push` を許可している場合でも、フックは `deny` を返します。別のブランチの場合や他のコマンドの場合、呼び出しは mod がない場合と同じ決定を受けます。

215 

216フックはコマンドのテキストと照合するため、Claude へのリマインダーとして扱ってください。すべてのユーザーに対して `main` へのプッシュをブロックするには、Git ホストでブランチを保護してください。

217 

218フックは 3 つの決定のいずれも返せるため、管理設定外の `PreToolUse` フックがブロックした呼び出しを承認することもできます。どの決定が mod よりも優先されるかについては、[フックで権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)を参照してください。

219 

193<h3 id="rewrite-or-add-to-a-prompt">220<h3 id="rewrite-or-add-to-a-prompt">

194 プロンプトを書き換えるまたは追加する221 プロンプトを書き換えるまたは追加する

195</h3>222</h3>


301* **管理設定からの `PreToolUse` hook**:最初の mod の `tool.call` hook の前に実行され、そのうちの 1 つからのブロックは最終的であるため、mod はその呼び出しを見ません。328* **管理設定からの `PreToolUse` hook**:最初の mod の `tool.call` hook の前に実行され、そのうちの 1 つからのブロックは最終的であるため、mod はその呼び出しを見ません。

302* **他のすべての設定ファイルおよびプラグインの `hooks/hooks.json` からの `PreToolUse` hook**:最後の mod が `next` を呼び出した後、Claude Code 独自の動作の一部として実行されます。`tool.call` に答える mod が `next` を呼び出さずに、それらの実行を保持し、`next` を呼び出す mod はそれらの決定を返される結果で見ます。329* **他のすべての設定ファイルおよびプラグインの `hooks/hooks.json` からの `PreToolUse` hook**:最後の mod が `next` を呼び出した後、Claude Code 独自の動作の一部として実行されます。`tool.call` に答える mod が `next` を呼び出さずに、それらの実行を保持し、`next` を呼び出す mod はそれらの決定を返される結果で見ます。

303 330 

304[`tool.check`](/docs/ja/plugins/mods/reference#tools) は Claude Code がツール呼び出しの実行を許可するかどうかを決定するイベントです。これらの hook と権限ルールが決定した後に発火し、`next(e)` はそれらの決定に解決されます。`tool.check` の hook は異なる決定(例えば `{ decision: 'allow' }` など)を返すことができるため、2 番目のグループの hook がブロックした呼び出しを承認できます。[hook で権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)は、mod を保持する決定をリストアップしています。331[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) はこれらのフックと権限ルールが決定した後に発火するため、そのフックは 2 番目のグループのフックがブロックした呼び出しを承認できます。

305 332 

306<h3 id="handle-a-hook-that-fails">333<h3 id="handle-a-hook-that-fails">

307 失敗した hook を処理する334 失敗した hook を処理する

Details

407 ```407 ```

408 408 

409 ```text theme={null}409 ```text theme={null}

410 Note: Type a note and press Enter ⏎ add410 Note: Type a note and press Enter

411 ```411 ```

412 </Tab>412 </Tab>

413</Tabs>413</Tabs>

414 414 

415このテーブルはすべての要素をリストしています。415[インターフェースギャラリー](/docs/ja/plugins/mods/gallery)には、ほとんどの要素のサンプルとスクリーンショットがあります。このテーブルはすべての要素をリストしています。

416 416 

417| 要素 | それが描画するもの | どこで |417| 要素 | それが描画するもの | どこで |

418| :- | :- | :- |418| :- | :- | :- |

Details

72* **あなたに尋ねずに動作する**: あなたが尋ねられる前にツール呼び出しを承認する72* **あなたに尋ねずに動作する**: あなたが尋ねられる前にツール呼び出しを承認する

73* **あなたの使用量を消費する**: あなたのプランまたは API キーでモデルを呼び出す73* **あなたの使用量を消費する**: あなたのプランまたは API キーでモデルを呼び出す

74 74 

75mod はサンドボックス化されません。[サンドボックス化](/docs/ja/sandboxing)をオンにすると、サンドボックスは Claude が実行する Bash コマンドを分離しますが、mod が起動したプロセスはその外側で実行されます。

76 

75ツール呼び出しを承認する mod は、`ask` ルールがプロンプトを表示するもの、または独自の `PreToolUse` フックがブロックしたものを承認できます。[フックで権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)には、そのような mod が承認できるもの(`deny` ルールが拒否する呼び出しを承認できる場合を含む)が記載されています。77ツール呼び出しを承認する mod は、`ask` ルールがプロンプトを表示するもの、または独自の `PreToolUse` フックがブロックしたものを承認できます。[フックで権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)には、そのような mod が承認できるもの(`deny` ルールが拒否する呼び出しを承認できる場合を含む)が記載されています。

76 78 

77mod は Claude Code のインターフェイスの大部分を再スタイル化できますが、権限プロンプトはできません。プロンプトが表示する内容を変更することはできません。79mod は Claude Code のインターフェイスの大部分を再スタイル化できますが、権限プロンプトはできません。プロンプトが表示する内容を変更することはできません。


102 104 

103組織を通じて Claude Code を使用する場合、管理者は、どの mod がロードされるかを制限することもできます。管理者は [ユーザーがインストールした mod がロードされるのを停止する](/docs/ja/plugins/mods/admin#stop-user-installed-mods-from-loading) から開始します。105組織を通じて Claude Code を使用する場合、管理者は、どの mod がロードされるかを制限することもできます。管理者は [ユーザーがインストールした mod がロードされるのを停止する](/docs/ja/plugins/mods/admin#stop-user-installed-mods-from-loading) から開始します。

104 106 

107`disableAllHooks` と組織の `allowManagedModsOnly` は mod を停止しますが、そのプラグインの残りの部分はそのまま残します。プラグインはインストールされたままで、そのスキル、コマンド、エージェント、MCP サーバーはロードされます。その他の設定やフラグはより広範囲に影響します。[`disableAllHooks`](/docs/ja/settings-reference#disableallhooks) と [`allowManagedHooksOnly` で実行されるもの](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly) に、それぞれがプラグインとその settings hooks に対して何を行うかが記載されています。

108 

105Mod があなたのためにロードできるかどうかを確認するには、[mod がロードできるかどうかを確認する](/docs/ja/plugins/mods/troubleshoot#check-whether-mods-can-load) を参照してください。109Mod があなたのためにロードできるかどうかを確認するには、[mod がロードできるかどうかを確認する](/docs/ja/plugins/mods/troubleshoot#check-whether-mods-can-load) を参照してください。

106 110 

107<Note>111<Note>

Details

56 56 

57コロンの後の理由を読んでください。[拒否メッセージ](#refusal-messages) セクションに各メッセージが記載されています。ログにそのような行がない場合は、このグループの他のエントリを確認してください。57コロンの後の理由を読んでください。[拒否メッセージ](#refusal-messages) セクションに各メッセージが記載されています。ログにそのような行がない場合は、このグループの他のエントリを確認してください。

58 58 

59一部の設定は mod を停止しますが、そのプラグインの残りの部分は動作したままにします。[mod をオンまたはオフにする](/docs/ja/plugins/mods/overview#turn-mods-on-or-off) でそれらの設定を挙げています。

60 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">61<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 `claude -p` 実行が `hooks module not loaded` を出力する62 `claude -p` 実行が `hooks module not loaded` を出力する

61</h3>63</h3>

Details

37 37 

38Claudeコードの[権限ルール](/docs/ja/permissions)と[サンドボックス](/docs/ja/sandboxing)はClaudeが行うツール呼び出しをカバーしており、プラグイン自体が実行するコードはカバーしていません:38Claudeコードの[権限ルール](/docs/ja/permissions)と[サンドボックス](/docs/ja/sandboxing)はClaudeが行うツール呼び出しをカバーしており、プラグイン自体が実行するコードはカバーしていません:

39 39 

40* **Hooksおよびサーバープロセス**:コマンドhooksはフルユーザー権限でシェルコマンドを実行します。ClaudeコードはhooksとMCPサーバーをサンドボックスの外で実行します。40* **フックおよびサーバープロセス**:コマンドフックは、ユーザーの完全な権限でシェルコマンドを実行します。Claude Code は、フック、MCP サーバー、および [mod](/docs/ja/plugins/mods/overview#what-a-mod-can-reach) が開始するプロセスをサンドボックスの外で実行します。

41* **Claude のツール呼び出し**:プラグインの MCP ツールへの呼び出し、およびプラグインの `bin/` から実行可能ファイルを実行する Bash コマンドはツール呼び出しであるため、権限ルールが適用されます。mod が何をできるかについては、[mod を信頼するかどうかを決定する](/docs/ja/plugins/mods/overview#decide-whether-to-trust-a-mod)を参照してください。41* **Claude のツール呼び出し**:プラグインの MCP ツールへの呼び出し、およびプラグインの `bin/` から実行可能ファイルを実行する Bash コマンドはツール呼び出しであるため、権限ルールが適用されます。mod が何をできるかについては、[mod を信頼するかどうかを決定する](/docs/ja/plugins/mods/overview#decide-whether-to-trust-a-mod)を参照してください。

42 42 

43プラグインをインストールするとそれも有効になります。ただし、そのマニフェストまたはマーケットプレイスエントリが[`defaultEnabled: false`](/docs/ja/plugins/install#choose-an-install-scope)を設定しており、自分で有効にしていない場合を除きます。43プラグインをインストールするとそれも有効になります。ただし、そのマニフェストまたはマーケットプレイスエントリが[`defaultEnabled: false`](/docs/ja/plugins/install#choose-an-install-scope)を設定しており、自分で有効にしていない場合を除きます。

Details

372 372 

373`/plugin install <name>@<marketplace>` または `claude plugin install <name>@<marketplace>` を実行し、プラグイン名がマシン上のそのマーケットプレイスのカタログのコピーにありません。373`/plugin install <name>@<marketplace>` または `claude plugin install <name>@<marketplace>` を実行し、プラグイン名がマシン上のそのマーケットプレイスのカタログのコピーにありません。

374 374 

375シェルで `claude plugin install` を実行し、マーケットプレイスをまったく追加していない場合、同じメッセージを出力します。`claude plugin marketplace update <marketplace>` が `Marketplace '<marketplace>' not found` で答える場合、[マーケットプレイスを追加](#add-a-marketplace)してください。375シェルで `claude plugin install` を実行し、マーケットプレイスをまったく追加していない場合、同じメッセージを出力します。`claude plugin marketplace update <marketplace>` が `Marketplace '<marketplace>' not found` で答える場合、まず[マーケットプレイスを追加](#add-a-marketplace)してください。

376 376 

377<h4 id="the-message-ends-with-a-refresh-hint">377<h4 id="the-message-ends-with-a-refresh-hint">

378 更新ヒント付きの `not found in marketplace`378 更新ヒント付きの `not found in marketplace`


460* **プラグインを発行する場合**:URL が提供する正確なファイルのダイジェストを再計算し、マーケットプレイスエントリの `sha256` を更新してください。`shasum -a 256 my-plugin.zip` を使用するか、PowerShell で `Get-FileHash -Algorithm SHA256 my-plugin.zip` を使用してください460* **プラグインを発行する場合**:URL が提供する正確なファイルのダイジェストを再計算し、マーケットプレイスエントリの `sha256` を更新してください。`shasum -a 256 my-plugin.zip` を使用するか、PowerShell で `Get-FileHash -Algorithm SHA256 my-plugin.zip` を使用してください

461* **プラグインをインストールする場合**:セッションで `/plugin marketplace update <name>` を実行してカタログを更新し、エントリが修正された場合に備えて、インストールを再試行してください。更新後もダイジェストが一致しない場合は、インストール前にマーケットプレイス所有者にピン留めされたファイルを尋ねてください461* **プラグインをインストールする場合**:セッションで `/plugin marketplace update <name>` を実行してカタログを更新し、エントリが修正された場合に備えて、インストールを再試行してください。更新後もダイジェストが一致しない場合は、インストール前にマーケットプレイス所有者にピン留めされたファイルを尋ねてください

462 462 

463<h3 id="an-npm-plugin-source-must-name-a-registry-package">

464 `An npm plugin source must name a registry package`

465</h3>

466 

467マーケットプレイスエントリが [`npm` ソース](/docs/ja/plugins/marketplace-reference#npm-plugin-source)を使用するプラグインのインストール、更新、または読み込みが失敗し、メッセージにこの文が含まれています。Claude Code は何かをフェッチする前にエントリの `package` 値をチェックし、それを拒否しました。メッセージには値と理由が示されます:

468 

469```text theme={null}

470"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.

471```

472 

473マーケットプレイスの所有者がエントリを変更する必要があります:

474 

475* **自分が所有者の場合**:`package` を [npm プラグインソースリファレンス](/docs/ja/plugins/marketplace-reference#npm-plugin-source)が受け入れる値に変更するか、エントリを `github`、`url`、または `git-subdir` ソースに切り替えてください

476* **そうでない場合**:メッセージをマーケットプレイス所有者に報告してください

477 

463<h3 id="marketplace-is-registered-from-an-untrusted-source">478<h3 id="marketplace-is-registered-from-an-untrusted-source">

464 `Marketplace "<name>" is registered from an untrusted source`479 `Marketplace "<name>" is registered from an untrusted source`

465</h3>480</h3>


481 496 

482v2.1.205 より前では、Claude Code はマーケットプレイスを追加するときのみ名前をチェックしたため、名前が予約される前に登録されたエントリは読み込みを続けました。497v2.1.205 より前では、Claude Code はマーケットプレイスを追加するときのみ名前をチェックしたため、名前が予約される前に登録されたエントリは読み込みを続けました。

483 498 

499<h3 id="marketplace-is-added-but-ignored">

500 `Marketplace "<name>" is added but ignored`

501</h3>

502 

503マーケットプレイスには `~/.claude/plugins/known_marketplaces.json` にエントリがありますが、そのエントリが、Claude Code がこのファイルを読み込むたびに実行するチェックに失敗したため、マーケットプレイスとそこからインストールされたプラグインは読み込まれなくなります。シェルでは、`claude plugin list` が影響を受ける各プラグインについて、理由と修正方法を示す行を報告します:

504 

505```text theme={null}

506Marketplace team-tools is added but ignored. Its location is on a network drive, has "." or ".." in its path, or couldn't be checked. Re-add the marketplace (one added from a folder or file must be re-added from a copy on this computer), or, to trust a folder on a network drive, declare it under extraKnownMarketplaces in user or managed settings.

507```

508 

509セッションでは、`/plugin` の **Errors** タブはマーケットプレイス名を引用符で囲み、理由の後で行を終え、その下の行に修正方法を表示します。

510 

511`is added but ignored` の後の文は、エントリが失敗したチェックを示します:

512 

513* `Its location is on a network drive, has "." or ".." in its path, or couldn't be checked`、または `The folder or file it was added from` についての同じ文:マーケットプレイスのディレクトリ、または追加元のローカルパスが、ネットワーク上の場所にあるか、パスに `.` または `..` セグメントを含むか、チェックできませんでした

514* `Its git URL can't be used: <reason>` または `Its URL can't be read as an https:// or http:// address`:エントリに記録されたソース URL が、Claude Code がクローンまたはフェッチを拒否する URL です

515* `Its source doesn't match its extraKnownMarketplaces entry in user or managed settings`:エントリが同じ名前の [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) 宣言と一致しません

516 

517理由の代わりに `(see the debug log)` が `is added but ignored` の後に続く場合、Claude Code はマーケットプレイスの名前を拒否しています。例えば、[予約された名前の別表記](/docs/ja/errors#marketplace-name-is-another-spelling-of-a-reserved-name)などです。[デバッグログ](/docs/ja/debug-your-config)にエントリが示されます。

518 

519**対処方法:**

520 

521* メッセージ内の修正方法に従ってください。シェルで `claude plugin marketplace remove <name>` を実行し、サポートされているソースまたはローカルパスからマーケットプレイスを再度追加して、そのプラグインを再インストールしてください(remove コマンドはそれらのプラグインをアンインストールします)。remove コマンドは無視されたエントリにも機能します

522* ネットワーク上の場所にあるマーケットプレイスを維持するには、ユーザー設定または管理設定の [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) で宣言してください。リポジトリの `.claude/settings.json` または `.claude/settings.local.json` での宣言は対象外です

523* 設定の宣言と異なるソースの場合は、宣言されたソースからマーケットプレイスを再度追加するか、宣言を変更してください。`claude plugin marketplace add` も同じ不一致を拒否します。[対応する `Cannot add marketplace` のエントリ](#cannot-add-marketplace-its-network-source-differs)を参照してください

524* 拒否された名前の場合は、行に `Remove it:` の後のコマンドがあればそれを使用して、マーケットプレイスを削除してください。同じ名前で再度追加しても再び拒否されます

525 

526v2.1.286 より前では、理由にかかわらず、`claude plugin list` はそのようなマーケットプレイスを `Marketplace <name> not found` と報告し、`/plugin` の **Errors** タブは `Marketplace "<name>" is registered but was refused (see the debug log)` と報告していました。理由はデバッグログにのみ表示されました。v2.1.286 では、理由と修正方法の文は `Its recorded location is network-shaped or unclassifiable (never probed)` のように異なる表現でした。

527 

484<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">528<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">

485 `Plugin <name> has a corrupt manifest file` または `has an invalid manifest file`529 `Plugin <name> has a corrupt manifest file` または `has an invalid manifest file`

486</h3>530</h3>


494 538 

495プラグインの作成者がファイルを修正する必要があり、その後までプラグインをインストールできません:539プラグインの作成者がファイルを修正する必要があり、その後までプラグインをインストールできません:

496 540 

497* **それがあなたの場合**:シェルで `claude plugin validate <plugin-directory>` を実行して、問題のあるパスで同じエラーを表示し、ファイルを修正してください541* **自分が作成者の場合**:シェルで `claude plugin validate <plugin-directory>` を実行して、問題のあるパスで同じエラーを表示し、ファイルを修正してください

498* **そうでない場合**:メッセージをマーケットプレイス所有者に報告してください542* **そうでない場合**:メッセージをマーケットプレイス所有者に報告してください

499 543 

500<h3 id="plugin-directory-not-found-at-path">544<h3 id="plugin-directory-not-found-at-path">


583インストールを修正するには:627インストールを修正するには:

584 628 

585* `~/.claude/plugins/cache` の下のプラグインのフォルダを使用している他の Claude Code セッション、エディタ、ターミナルを閉じ、インストールを再度実行してください629* `~/.claude/plugins/cache` の下のプラグインのフォルダを使用している他の Claude Code セッション、エディタ、ターミナルを閉じ、インストールを再度実行してください

586* メッセージがプラグインキャッシュフォルダのアクセス許可を確認するよう指示する場合は、名前を付けたフォルダの書き込みアクセス許可を復元し、ディスク領域を解放し、インストールを再度実行してください630* メッセージがプラグインキャッシュフォルダの権限を確認するよう指示する場合は、名前を付けたフォルダの書き込み権限を復元し、ディスク領域を解放し、インストールを再度実行してください

587 631 

588<h3 id="dependency-errors">632<h3 id="dependency-errors">

589 依存関係エラー633 依存関係エラー


937 981 

938スキルはプラグインルートの `skills/` から読み込まれ、コマンドはプラグインルートの `commands/` から読み込まれます。`.claude-plugin/` の中には `plugin.json` だけが属し、`.claude-plugin/` 内の `skills/` ディレクトリはスキャンされません。ディレクトリをプラグインルートに移動し、`/reload-plugins` を実行してください。その後、`/plugin` のプラグイン詳細ペインにスキルが一覧表示され、`/` を入力するとそれらが提供されます。982スキルはプラグインルートの `skills/` から読み込まれ、コマンドはプラグインルートの `commands/` から読み込まれます。`.claude-plugin/` の中には `plugin.json` だけが属し、`.claude-plugin/` 内の `skills/` ディレクトリはスキャンされません。ディレクトリをプラグインルートに移動し、`/reload-plugins` を実行してください。その後、`/plugin` のプラグイン詳細ペインにスキルが一覧表示され、`/` を入力するとそれらが提供されます。

939 983 

940各スキルは `SKILL.md` を含むディレクトリです。`SKILL.md` ファイルではなくそのディレクトリを指すマニフェスト内の `skills` エントリは、`path is a file; skills entries must be directories containing SKILL.md` として報告されます。984各スキルは `SKILL.md` を含むディレクトリです。そのディレクトリではなく `SKILL.md` ファイルを指すマニフェスト内の `skills` エントリは、`path is a file; skills entries must be directories containing SKILL.md` として報告されます。

941 985 

942<h3 id="skill-loads-but-claude-never-invokes-the-skill">986<h3 id="skill-loads-but-claude-never-invokes-the-skill">

943 スキルは読み込まれるが Claude がスキルを呼び出さない987 スキルは読み込まれるが Claude がスキルを呼び出さない


947 991 

948これらの原因を順番にチェックしてください。992これらの原因を順番にチェックしてください。

949 993 

950* **スキルが `disable-model-invocation: true` を設定している**: そのフィールドが設定されている場合、スキルを呼び出すことができるのはあなただけです。[最初のプラグインを作成](/docs/ja/plugins/create#create-your-first-plugin) のテンプレートスキルがそれを設定しています。Claude が独自にスキルを呼び出すようにしたい場合は、スキルからその行を削除してください。[スキルを呼び出すユーザーを制御](/docs/ja/skills#control-who-invokes-a-skill) がそのフィールドをカバーしています994* **スキルが `disable-model-invocation: true` を設定している**: そのフィールドが設定されている場合、スキルを呼び出すことができるのはユーザー自身だけです。[最初のプラグインを作成](/docs/ja/plugins/create#create-your-first-plugin) のテンプレートスキルがそれを設定しています。Claude が独自にスキルを呼び出すようにしたい場合は、スキルからその行を削除してください。[スキルを呼び出すユーザーを制御](/docs/ja/skills#control-who-invokes-a-skill) がそのフィールドをカバーしています

951* **説明が人々の質問方法と一致していない**: [スキルがトリガーされていない](/docs/ja/skills#skill-not-triggering) のチェックを実行してください995* **説明が人々の質問方法と一致していない**: [スキルがトリガーされていない](/docs/ja/skills#skill-not-triggering) のチェックを実行してください

952* **説明が切り詰められている**: 多くのスキルがインストールされている場合、Claude Code は説明を短縮してリストの文字予算に合わせます。これにより、Claude がリクエストを一致させるために必要なキーワードが削除される可能性があります。[スキルの説明が短く切り詰められている](/docs/ja/skills#skill-descriptions-are-cut-short) を参照してください996* **説明が切り詰められている**: 多くのスキルがインストールされている場合、Claude Code は説明を短縮してリストの文字予算に合わせます。これにより、Claude がリクエストを一致させるために必要なキーワードが削除される可能性があります。[スキルの説明が短く切り詰められている](/docs/ja/skills#skill-descriptions-are-cut-short) を参照してください

953 997 


957 `claude plugin eval init` から `<directory> is not a plugin or skill folder`1001 `claude plugin eval init` から `<directory> is not a plugin or skill folder`

958</h3>1002</h3>

959 1003 

960プラグインのルートではないディレクトリ(ホームディレクトリやプラグインをサブディレクトリに保持するリポジトリのルートなど)から `claude plugin eval init` を実行しました。`init` はワーキングディレクトリの下にスイートを書き込むため、プラグインが見ることのない `evals/` ディレクトリを作成する代わりに停止します。1004プラグインのルートではないディレクトリ(ホームディレクトリやプラグインをサブディレクトリに保持するリポジトリのルートなど)から `claude plugin eval init` を実行しました。`init` は作業ディレクトリの下にスイートを書き込むため、プラグインが見ることのない `evals/` ディレクトリを作成する代わりに停止します。

961 1005 

962プラグインのルート(`.claude-plugin/plugin.json` またはスキルの `SKILL.md` を保持するディレクトリ)に変更し、コマンドを再度実行してください。意図的に別の場所にスイートをスキャフォールドするには、`--eval-dir` を渡してください。[プラグインを eval でテスト](/docs/ja/plugin-evals) を参照してください。1006プラグインのルート(`.claude-plugin/plugin.json` またはスキルの `SKILL.md` を保持するディレクトリ)に変更し、コマンドを再度実行してください。意図的に別の場所にスイートをスキャフォールドするには、`--eval-dir` を渡してください。[プラグインを eval でテスト](/docs/ja/plugin-evals) を参照してください。

963 1007 


995 1039 

996バリデーターは、指定したパスのマニフェストを読み込みます。プラグインディレクトリの場合は `.claude-plugin/plugin.json`、マーケットプレイスディレクトリの場合は `.claude-plugin/marketplace.json`。マーケットプレイスの場合、エントリ自体のマニフェスト内の問題にはエントリインデックスをプレフィックスとして付け、`plugins[1] plugin.json → json: ...` として表示します。1040バリデーターは、指定したパスのマニフェストを読み込みます。プラグインディレクトリの場合は `.claude-plugin/plugin.json`、マーケットプレイスディレクトリの場合は `.claude-plugin/marketplace.json`。マーケットプレイスの場合、エントリ自体のマニフェスト内の問題にはエントリインデックスをプレフィックスとして付け、`plugins[1] plugin.json → json: ...` として表示します。

997 1041 

998テーブルは検証を停止するメッセージと 2 つの警告(`No frontmatter block found` と `Unknown field '<key>'`)をカバーしており、`--strict` を渡す場合にのみ検証を停止します。説明の欠落など、その他の警告は一覧表示されません。1042テーブルは検証を停止するメッセージと 2 つの警告(`No frontmatter block found` と `Unknown field '<key>'`)をカバーしており、これらの警告は `--strict` を渡す場合にのみ検証を停止します。説明の欠落など、その他の警告は一覧表示されません。

999 1043 

1000| メッセージ | 原因 | 修正 |1044| メッセージ | 原因 | 修正 |

1001| :- | :- | :- |1045| :- | :- | :- |


1004| `Invalid JSON syntax: <parse error>` | マニフェストまたは `hooks/hooks.json` が有効な JSON ではありません。 | JSON を修正してください。`hooks/hooks.json` を修正するまで、セッションはそのファイル内のフックなしでプラグインを読み込みます。 |1048| `Invalid JSON syntax: <parse error>` | マニフェストまたは `hooks/hooks.json` が有効な JSON ではありません。 | JSON を修正してください。`hooks/hooks.json` を修正するまで、セッションはそのファイル内のフックなしでプラグインを読み込みます。 |

1005| `Path not found: <path>. The runtime loader will report this as a load failure.` | マニフェスト内のコンポーネントパスが存在しません。 | パスを修正するか、ディレクトリを作成してください。 |1049| `Path not found: <path>. The runtime loader will report this as a load failure.` | マニフェスト内のコンポーネントパスが存在しません。 | パスを修正するか、ディレクトリを作成してください。 |

1006| `Path contains ".." which could be a path traversal attempt: <path>` | コンポーネントパスがプラグインディレクトリをエスケープします。 | プラグインルート内のパスを使用してください。 |1050| `Path contains ".." which could be a path traversal attempt: <path>` | コンポーネントパスがプラグインディレクトリをエスケープします。 | プラグインルート内のパスを使用してください。 |

1007| `Path is a file; skills entries must be directories containing SKILL.md` | `skills` エントリが `SKILL.md` ではなくそのディレクトリを指しています。 | 親ディレクトリ、またはルートレベルの `SKILL.md` の場合は `.` を指してください。 |1051| `Path is a file; skills entries must be directories containing SKILL.md` | `skills` エントリがそのディレクトリではなく `SKILL.md` を指しています。 | 親ディレクトリ、またはルートレベルの `SKILL.md` の場合は `.` を指してください。 |

1008| `No frontmatter block found` または `YAML frontmatter failed to parse: <error>` | スキル、エージェント、またはコマンドファイルに YAML frontmatter がないか、無効です。 | `---` デリミタ間に frontmatter を追加または修正してください。プラグインディレクトリを検証するときに報告されます。 |1052| `No frontmatter block found` または `YAML frontmatter failed to parse: <error>` | スキル、エージェント、またはコマンドファイルに YAML フロントマターがないか、無効です。 | `---` デリミタ間にフロントマターを追加または修正してください。プラグインディレクトリを検証するときに報告されます。 |

1009| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | プラグインの `name` は [予約名](/docs/ja/plugins/manifest-reference#name) の 1 つです。 | プラグインが何をするかに基づいてプラグインの名前を変更してください。 |1053| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | プラグインの `name` は [予約名](/docs/ja/plugins/manifest-reference#name) の 1 つです。 | プラグインが何をするかに基づいてプラグインの名前を変更してください。 |

1010| `Unknown field '<key>'` | マニフェストにスキーマが定義していないフィールドがあります。 | それを削除するか、メッセージが提案する名前を使用してください。Claude Code は読み込み時に未知のフィールドを無視します。 |1054| `Unknown field '<key>'` | マニフェストにスキーマが定義していないフィールドがあります。 | それを削除するか、メッセージが提案する名前を使用してください。Claude Code は読み込み時に未知のフィールドを無視します。`plugin.json` の `privacyPolicyUrl` やその他のディレクトリ掲載フィールドについては、[ディレクトリ掲載フィールド](/docs/ja/plugins/manifest-reference#directory-listing-fields) を参照してください。 |

1011 1055 

1012各修正後にコマンドを再度実行し、エラーが出力されなくなるまで続けてください。1056各修正後にコマンドを再度実行し、エラーが出力されなくなるまで続けてください。

1013 1057 

Details

622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);

623 const locale = m ? m[1] : 'en';623 const locale = m ? m[1] : 'en';

624 return href => {624 return href => {

625 if (!href || href[0] !== '/' || href[1] === '/') return href;625 if (!href) return undefined;

626 if (href[0] === '#' || href.startsWith('https://')) return href;

627 if (!(/^\/[A-Za-z0-9]/).test(href)) return undefined;

626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);628 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);

627 };629 };

628 }, []);630 }, []);


671 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);673 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);

672 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);674 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);

673 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');675 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');

674 const widthFor = s => (s || '').length + 3 + 'ch';676 const WIDE_RE = /[\u1100-\u115F\u2E80-\uA4CF\uAC00-\uD7A3\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFF60\uFFE0-\uFFE6]/g;

677 const widthFor = s => {

678 const t = typeof s === 'string' ? s : '';

679 return t.length + (t.match(WIDE_RE) || []).length + 3 + 'ch';

680 };

675 const ql = q.trim().toLowerCase();681 const ql = q.trim().toLowerCase();

676 const toggleTag = k => {682 const toggleTag = k => {

677 setStart(false);683 setStart(false);

Details

226 226 

227これらのコマンドはサーバーが停止してから約 4 時間機能します。その後、`claude remote-control` を実行して新しいセッションを開始します。その間にセッションをアーカイブした場合、Claude Code v2.1.228 以降で `--continue` と `--session-id` はそれをアーカイブ解除します。227これらのコマンドはサーバーが停止してから約 4 時間機能します。その後、`claude remote-control` を実行して新しいセッションを開始します。その間にセッションをアーカイブした場合、Claude Code v2.1.228 以降で `--continue` と `--session-id` はそれをアーカイブ解除します。

228 228 

229`claude --remote-control` または `/remote-control` で開始したセッションを復元するには、`claude --continue` または `claude --resume` で会話を再開します。リモートコントロールが再接続しない場合は、[リモートコントロールセッションに再接続できませんでした](#couldnt-reconnect-to-your-remote-control-session)を参照してください。229`claude --remote-control` または `/remote-control` で開始したセッションを復元するには、`claude --continue` または `claude --resume` で会話を再開します。再開した会話がどの権限モードで開始されるかについては、[再開時の権限モード](/docs/ja/sessions#permission-mode-on-resume)を参照してください。Remote Control が再接続しない場合は、[Remote Control セッションに再接続できませんでした](#couldnt-reconnect-to-your-remote-control-session)を参照してください。

230 230 

231最初のターミナルがまだリモートコントロールをオンにしている間に 2 番目のターミナルで会話を再開する場合、Claude Code は 2 番目のターミナルに `Remote Control not started here` 通知を出力し、セッションを最初のターミナルから奪う代わりに、そこでリモートコントロールをオフのままにします。2 番目のターミナルで `/remote-control` を実行してリモートコントロールをそこに移動します。231最初のターミナルがまだリモートコントロールをオンにしている間に 2 番目のターミナルで会話を再開する場合、Claude Code は 2 番目のターミナルに `Remote Control not started here` 通知を出力し、セッションを最初のターミナルから奪う代わりに、そこでリモートコントロールをオフのままにします。2 番目のターミナルで `/remote-control` を実行してリモートコントロールをそこに移動します。

232 232 


369* **インタラクティブプロセスごとに 1 つのリモートセッション**: サーバーモード外では、各 Claude Code インスタンスは一度に 1 つのリモートセッションをサポートします。単一プロセスから複数の同時セッションを実行するには、[サーバーモード](#start-a-remote-control-session)を使用してください。369* **インタラクティブプロセスごとに 1 つのリモートセッション**: サーバーモード外では、各 Claude Code インスタンスは一度に 1 つのリモートセッションをサポートします。単一プロセスから複数の同時セッションを実行するには、[サーバーモード](#start-a-remote-control-session)を使用してください。

370* **ローカルプロセスは実行し続ける必要があります**: Remote Control はローカルプロセスとして実行されます。ターミナルを閉じたり、Desktop アプリまたは VS Code を終了したり、`claude` プロセスを停止したりすると、セッションはオフラインになります。セッションを[復帰](#resume-sessions-after-stopping-the-server)させるまでオフラインのままです。SSH から切断した後もリモートマシンでセッションを実行し続けるには、`tmux` または `screen` 内で開始してください。370* **ローカルプロセスは実行し続ける必要があります**: Remote Control はローカルプロセスとして実行されます。ターミナルを閉じたり、Desktop アプリまたは VS Code を終了したり、`claude` プロセスを停止したりすると、セッションはオフラインになります。セッションを[復帰](#resume-sessions-after-stopping-the-server)させるまでオフラインのままです。SSH から切断した後もリモートマシンでセッションを実行し続けるには、`tmux` または `screen` 内で開始してください。

371* **サーバーモードでのクラッシュしたセッション**: `claude remote-control` で提供されるセッションがクラッシュした場合、接続されたデバイスからメッセージを送信してください。Claude Code はそれを再度提供します。サーバーを再起動する必要はありません。Claude Code v2.1.238 以降が必要です。371* **サーバーモードでのクラッシュしたセッション**: `claude remote-control` で提供されるセッションがクラッシュした場合、接続されたデバイスからメッセージを送信してください。Claude Code はそれを再度提供します。サーバーを再起動する必要はありません。Claude Code v2.1.238 以降が必要です。

372* **接続されたセッションでの HTTP 403 拒否**: インタラクティブセッションが接続されると、VPN またはネットワークの変更後に発生する可能性があるように、マシンと Anthropic のサーバー間の何かが HTTP 403 で応答する場合、Claude Code は最大 3 分間再試行を続けます。拒否が長く続く場合、Claude Code は切断され、理由は何が拒否したかを示します。ネットワークエッジ、またはあなた自身のネットワーク上のプロキシ、VPN、またはファイアウォールです。372* **接続されたセッションでの HTTP 403 拒否**: インタラクティブセッションが接続されると、VPN またはネットワークの変更後に発生する可能性があるように、マシンと Anthropic のサーバー間の何かが HTTP 403 で応答する場合、Claude Code は最大 3 分間再試行を続けます。拒否が長く続く場合、Claude Code は切断され、理由は何が拒否したかを示します。ネットワークエッジ、またはユーザー自身のネットワーク上のプロキシ、VPN、またはファイアウォールです。

373* **拡張ネットワーク障害**: マシンが起動しているがネットワークに到達できない場合、次に何をするかはモードによって異なります。373* **拡張ネットワーク障害**: マシンが起動しているがネットワークに到達できない場合、次に何をするかはモードによって異なります。

374 * **サーバーモード**: Claude Code は約 10 分後にあきらめ、`claude remote-control` プロセスが終了します。新しいセッションを開始するには、`claude remote-control` を再度実行してください。374 * **サーバーモード**: Claude Code は約 10 分後にあきらめ、`claude remote-control` プロセスが終了します。新しいセッションを開始するには、`claude remote-control` を再度実行してください。

375 * **インタラクティブセッション**: ローカルで作業を続けてください。Claude Code は障害が続く限り再試行を続け、ネットワークが戻ると自動的に再接続します。375 * **インタラクティブセッション**: ローカルで作業を続けてください。Claude Code は障害が続く限り再試行を続け、ネットワークが戻ると自動的に再接続します。

376* **ダウンロードされない添付ファイル**: スマートフォンまたはブラウザから添付したファイルをマシンにダウンロードできない場合でも、Claude はメッセージとダウンロードされたファイルを受け取ります。欠落しているファイルの代わりに、Claude Code は `[1 of 3 attachments did not arrive]` などの注記をメッセージに追加します。

376* **プレゼンスハートビートの失敗**: インタラクティブセッションが `could not reach the Remote Control server for about 30 minutes` で切断された場合、`/remote-control` を実行して再接続してください。377* **プレゼンスハートビートの失敗**: インタラクティブセッションが `could not reach the Remote Control server for about 30 minutes` で切断された場合、`/remote-control` を実行して再接続してください。

377* **転送されたダイアログの有効期限**: Claude Code は権限プロンプトと `AskUserQuestion` の質問を、あなたが回答するまで開いたままにします。Claude Code が別の種類のダイアログをリモートセッションに転送する場合(安全性拒否後に表示されるモデル選択プロンプトなど)、デフォルトでは 5 分待機してからダイアログを閉じ、ダイアログのアクション不要なデフォルトで続行します。[`dialogExpiry`](/docs/ja/settings-reference#dialogexpiry) を設定して期限を調整または無効にしてください。Claude Code v2.1.224 以降が必要です。378* **転送されたダイアログの有効期限**: Claude Code は権限プロンプトと `AskUserQuestion` の質問を、回答するまで開いたままにします。Claude Code が別の種類のダイアログをリモートセッションに転送する場合(安全性拒否後に表示されるモデル選択プロンプトなど)、デフォルトでは 5 分待機してからダイアログを閉じ、ダイアログのアクション不要なデフォルトで続行します。[`dialogExpiry`](/docs/ja/settings-reference#dialogexpiry) を設定して期限を調整または無効にしてください。Claude Code v2.1.224 以降が必要です。

378* **Fable 使用クレジット同意プロンプトは転送されません**: Claude Code は、セッションが実行される場所でのみ、デバイスではなく、セッション中の [Fable 使用クレジット同意プロンプト](/docs/ja/model-config#fable-and-usage-credits)を表示します。セッションがターミナルで実行され、そこにいる誰もが Claude Code がプロンプトを閉じる前に回答しない場合、ターンはリクエストを送信せずに終了します。[プロンプトの確認が未回答のままでした](/docs/ja/errors#the-prompt-to-confirm-went-unanswered)を参照してください。379* **Fable 使用クレジット同意プロンプトは転送されません**: Claude Code は、セッションが実行される場所でのみ、デバイスではなく、セッション中の [Fable 使用クレジット同意プロンプト](/docs/ja/model-config#fable-and-usage-credits)を表示します。セッションがターミナルで実行され、そこにいる誰もが Claude Code がプロンプトを閉じる前に回答しない場合、ターンはリクエストを送信せずに終了します。[プロンプトの確認が未回答のままでした](/docs/ja/errors#the-prompt-to-confirm-went-unanswered)を参照してください。

379* **一部のコマンドはローカルのみ**: `/plugin` や `/resume` などのターミナルインターフェイスでのみ実行されるコマンドは、引数を渡すかどうかに関わらず、ローカル CLI からのみ機能します。以下はモバイルと Web から機能します。380* **一部のコマンドはローカルのみ**: `/plugin` や `/resume` などのターミナルインターフェイスでのみ実行されるコマンドは、引数を渡すかどうかに関わらず、ローカル CLI からのみ機能します。以下はモバイルと Web から機能します。

380 * テキスト出力コマンド: `/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap`、および `/reload-plugins`。`/usage-credits` はブラウザを開く代わりに課金 URL を出力します。`/reload-plugins` はセッションがインタラクティブターミナルで実行されている場合にのみ機能します。セッションがない場合は拒否されます。381 * テキスト出力コマンド: `/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap`、および `/reload-plugins`。`/usage-credits` はブラウザを開く代わりに請求 URL を出力します。`/reload-plugins` はセッションがインタラクティブターミナルで実行されている場合にのみ機能します。セッションがない場合は拒否されます。

381 * `/model`、`/effort`、`/fast`、`/color`、および `/rename`: 値を引数として渡してください。例えば `/model sonnet` または `/effort high`。モバイルと Web から、`/model` と `/effort` は、ターミナルピッカーまたはスライダーの代わりに引数を取ります。382 * `/model`、`/effort`、`/fast`、`/color`、および `/rename`: 値を引数として渡してください。例えば `/model sonnet` または `/effort high`。モバイルと Web から、`/model` と `/effort` は、ターミナルピッカーまたはスライダーの代わりに引数を取ります。

382 * `/mcp`: モバイルアプリから、ピッカーを開く代わりにサーバーステータスのテキスト概要を返します。Web では、`/mcp` 単独で概要を返す代わりに [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)のディレクトリを開きます。`reconnect`、`enable`、および `disable` [サブコマンド](/docs/ja/commands#all-commands)は両方から機能します。ローカル CLI とは異なり、サーバー名なしの `/mcp reconnect` は失敗したか認証が必要なすべてのサーバーを再接続します。383 * `/mcp`: モバイルアプリから、ピッカーを開く代わりにサーバーステータスのテキスト概要を返します。Web では、`/mcp` 単独で概要を返す代わりに [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)のディレクトリを開きます。`reconnect`、`enable`、および `disable` [サブコマンド](/docs/ja/commands#all-commands)は両方から機能します。ローカル CLI とは異なり、サーバー名なしの `/mcp reconnect` は失敗したか認証が必要なすべてのサーバーを再接続します。

383 * `/config`: モバイルアプリから、`key=value` を渡して設定を設定するか、引数なしで実行して設定できるキーをリストします。Web では、`/config` は代わりに設定の Claude Code セクションを開き、コマンド後のテキストを無視します。384 * `/config`: モバイルアプリから、`key=value` を渡して設定を設定するか、引数なしで実行して設定できるキーをリストします。Web では、`/config` は代わりに設定の Claude Code セクションを開き、コマンド後のテキストを無視します。


448 449 

449メッセージは、セッションを Anthropic API から遠ざけたもの(`CLAUDE_CODE_USE_BEDROCK` やカスタム `ANTHROPIC_BASE_URL` など)を名前に挙げています。適格な claude.ai ログインがある場合は、名前に挙げられた変数を設定解除し、[設定](/docs/ja/settings) の `env` キーから削除した場合はそこから削除し、セッションを再開してください。450メッセージは、セッションを Anthropic API から遠ざけたもの(`CLAUDE_CODE_USE_BEDROCK` やカスタム `ANTHROPIC_BASE_URL` など)を名前に挙げています。適格な claude.ai ログインがある場合は、名前に挙げられた変数を設定解除し、[設定](/docs/ja/settings) の `env` キーから削除した場合はそこから削除し、セッションを再開してください。

450 451 

451<h3 id="remote-control-is-disabled-by-your-organization’s-policy">452<h3 id="remote-control-is-disabled-by-your-organizations-policy">

452 「Remote Control is disabled by your organization's policy」453 「Remote Control is disabled by your organization's policy」

453</h3>454</h3>

454 455 


461 462 

462v2.1.281 より前では、このメッセージは Claude Code がこのマシンで組織のポリシーを読み込んでいない場合(例えば、オフラインで開始した後)にも表示されていました。後のバージョンではその状態を [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) として報告します。463v2.1.281 より前では、このメッセージは Claude Code がこのマシンで組織のポリシーを読み込んでいない場合(例えば、オフラインで開始した後)にも表示されていました。後のバージョンではその状態を [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) として報告します。

463 464 

465<h3 id="remote-control-was-turned-off-by-your-organizations-policy">

466 「Remote Control was turned off by your organization's policy」

467</h3>

468 

469セッションの接続中に組織のポリシーが Remote Control を許可しなくなったため、Claude Code はセッションを切断しました。セッションがどうなるかは、Remote Control をどのように開始したかによって異なります。

470 

471* **`/remote-control`、`claude --remote-control`、または [自動接続](#enable-remote-control-for-all-sessions) で開始した場合**:セッションは Remote Control なしで実行し続け、Claude Code は claude.ai でそのセッションをアーカイブします

472* **`claude remote-control` で開始した場合**:サーバーは停止し、提供していたセッションをアーカイブしてから終了します

473 

474アーカイブされたセッションは、[アーカイブされたセッションでフィルタリング](/docs/ja/claude-code-on-the-web#archive-sessions)することで引き続き見つけられます。

475 

476Remote Control は自動的には再接続しません。組織が再び許可した後にオンに戻すには、セッションで `/remote-control` を実行するか、シェルで `claude remote-control` を実行してください。このマシンの Claude Code が変更されたポリシーを取得するまで、どちらのコマンドも [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy) で失敗します。開いているセッションは約 1 時間に 1 回ポリシーを取得します。Remote Control をブロックしている原因を確認するには、コマンドが出力する完全なテキストをその項目と照合してください。

477 

464<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">478<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">

465 「Couldn't verify your organization's policy for remote control」479 「Couldn't verify your organization's policy for remote control」

466</h3>480</h3>

Details

91 Sandbox ランタイム91 Sandbox ランタイム

92</h2>92</h2>

93 93 

94[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) パッケージは、プロセス全体を、組み込み Bash sandbox が使用するのと同じ Seatbelt または bubblewrap 分離でラップします。Claude Code をランタイムを通じて実行すると、シェルコマンドだけでなく、セッション内のすべてのツール、hook、MCP サーバーが制約されます。ランタイムはベータ版の研究プレビューであり、パッケージの進化に伴い、その設定形式が変わる可能性があります。94[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) パッケージは、プロセス全体を、組み込み Bash サンドボックスが使用するのと同じ Seatbelt または bubblewrap 分離でラップします。Claude Code をランタイムを通じて実行すると、シェルコマンドだけでなく、セッションのツール、フック、MCP サーバーも制約されます。ランタイムはベータ版のリサーチプレビューであり、パッケージの進化に伴い、その設定形式が変わる可能性があります。

95 95 

96このセクションでは、設定する内容とランタイムが独自に実施する内容について説明します。Agent SDK アプリケーションでランタイムをデプロイする場合は、[セキュアデプロイメントガイド](/docs/ja/agent-sdk/secure-deployment#sandbox-runtime)を参照してください。96このセクションでは、設定する内容とランタイムが独自に実施する内容について説明します。Agent SDK アプリケーションでランタイムをデプロイする場合は、[セキュアデプロイガイド](/docs/ja/agent-sdk/secure-deployment#sandbox-runtime)を参照してください。

97 97 

98<h3 id="set-up-and-launch-the-runtime">98<h3 id="set-up-and-launch-the-runtime">

99 ランタイムのセットアップと起動99 ランタイムのセットアップと起動

100</h3>100</h3>

101 101 

102Linux と WSL2 では、ランタイムは組み込み sandbox と同じ `bubblewrap` および `socat` パッケージに加えて、`ripgrep` に依存します。Claude Code はこれをバンドルしていますが、スタンドアロンランタイムは PATH から解決します。[Linux と WSL2 のセットアップ](/docs/ja/sandboxing#set-up-linux-and-wsl2)で説明されているように `bubblewrap` と `socat` をインストールし、ディストリビューションのパッケージマネージャーから `ripgrep` をインストールしてください。macOS では追加のパッケージは不要です。ランタイムはそこで組み込み Seatbelt sandbox を使用します。102Linux と WSL2 では、ランタイムは組み込みサンドボックスと同じ `bubblewrap` および `socat` パッケージに加えて、`ripgrep` に依存します。Claude Code はこれをバンドルしていますが、スタンドアロンランタイムは PATH から解決します。[Linux と WSL2 のセットアップ](/docs/ja/sandboxing#set-up-linux-and-wsl2)で説明されているように `bubblewrap` と `socat` をインストールし、ディストリビューションのパッケージマネージャーから `ripgrep` をインストールしてください。macOS では追加のパッケージは不要です。ランタイムはそこで組み込み Seatbelt サンドボックスを使用します。

103 103 

104デフォルトでは、ランタイムはネットワークアクセスを拒否し、書き込みを組み込みランタイムパスの小さなセットに限定するため、Claude Code を通じて起動する前に設定してください。設定を `~/.srt-settings.json` に配置するか、`--settings` で渡すファイルに配置します。パッケージの [README](https://github.com/anthropic-experimental/sandbox-runtime) に完全な設定スキーマが記載されています。104デフォルトでは、ランタイムはネットワークアクセスを拒否し、書き込みを組み込みランタイムパスの小さなセットに限定するため、Claude Code をランタイムを通じて起動する前に設定してください。設定を `~/.srt-settings.json` に配置するか、`--settings` で渡すファイルに配置します。パッケージの [README](https://github.com/anthropics/sandbox-runtime) に設定スキーマが記載されています。

105 105 

106少なくとも以下への書き込みアクセスを許可してください:106少なくとも以下への書き込みアクセスを許可してください:

107 107 

108* プロジェクトディレクトリ。108* プロジェクトディレクトリ。

109* Claude Code の設定パス `~/.claude` および `~/.claude.json`。109* Claude Code の設定パス `~/.claude` および `~/.claude.json`。

110* `/tmp`。Claude Code はここにランタイムファイルを書き込みます。110* Claude Code がランタイムファイルを書き込むディレクトリ。[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を設定していない場合、そのディレクトリは次のとおりです:

111 * **Linux と WSL2**:`/tmp`

112 * **macOS**:`/private/tmp`。`/tmp` はこのディレクトリへのシンボリックリンクであり、Seatbelt は解決後のパスをチェックします。

111 113 

112セッションが必要とするネットワークドメインを許可してください:114セッションが必要とするネットワークドメインを許可してください:

113 115 

114* `api.anthropic.com`、またはカスタマーが設定したプロバイダーのエンドポイント。サードパーティプロバイダーでは、`api.anthropic.com` も保持してください。WebFetch ドメインセーフティチェックは、`skipWebFetchPreflight: true` を設定しない限り、デフォルトでそれを呼び出します。116* `api.anthropic.com`、または設定したプロバイダーのエンドポイント。サードパーティプロバイダーでは、`api.anthropic.com` も保持してください。WebFetch ドメインセーフティチェックは、`skipWebFetchPreflight: true` を設定しない限り、デフォルトでそれを呼び出します。

115* `claude.ai` および `platform.claude.com`。[OAuth サインインとトークンリフレッシュ](/docs/ja/network-config#network-access-requirements)に必要です。API キーで認証されたランは、これら 2 つを削除できます。117* `claude.ai` および `platform.claude.com`。[OAuth サインインとトークンリフレッシュ](/docs/ja/network-config#network-access-requirements)に必要です。API キーで認証された実行では、これら 2 つを削除できます。

116 118 

117Linux と WSL2 では、ランタイムは既に存在するパスにのみ書き込み許可を適用します。新しい環境では、最初の起動前に Claude Code の設定パスを作成してください:119Linux と WSL2 では、ランタイムは既に存在するパスにのみ書き込み許可を適用します。新しい環境では、最初の起動前に Claude Code の設定パスを作成してください:

118 120 


126npx @anthropic-ai/sandbox-runtime claude128npx @anthropic-ai/sandbox-runtime claude

127```129```

128 130 

129Claude Code は、カスタマーが設定したファイルシステムおよびネットワーク境界を持つ sandbox 内で起動します。同じコマンドは、スタンドアロン MCP サーバーまたは他のヘルパープロセスのサンドボックス化に機能します。131Claude Code は、設定したファイルシステムおよびネットワーク境界を持つサンドボックス内で起動します。同じコマンドは、スタンドアロン MCP サーバーや他のヘルパープロセスのサンドボックス化にも使用できます。

130 132 

131<h3 id="what-the-runtime-blocks-on-its-own">133<h3 id="what-the-runtime-blocks-on-its-own">

132 ランタイムが独自にブロックするもの134 ランタイムが独自にブロックするもの

133</h3>135</h3>

134 136 

135ランタイムは、カスタマーからの設定なしで最高リスクの書き込みをブロックします:137ランタイムは、ユーザーによる設定なしで最高リスクの書き込みをブロックします:

136 138 

137* `denyWrite` は `allowWrite` より優先されます。139* `denyWrite` は `allowWrite` より優先されます。

138* プロジェクトルートでは、ランタイムは `.git/hooks` を拒否し、`filesystem.allowGitConfig: true` を設定しない限り `.git/config` を拒否し、`.mcp.json`、`.claude/commands`、`.claude/agents`、およびシェルスタートアップファイルを拒否します。140* プロジェクトルートでは、ランタイムは `.git/hooks` を拒否し、`filesystem.allowGitConfig: true` を設定しない限り `.git/config` を拒否し、`.mcp.json`、`.claude/commands`、`.claude/agents`、およびシェルスタートアップファイルを拒否します。

139* macOS では、これらの拒否は書き込みが発生したときにチェックされるため、ネストされたファイルとセッション中に作成されたリポジトリもカバーします。141* macOS では、これらの拒否は書き込みが発生したときにチェックされるため、ネストされたファイルとセッション中に作成されたリポジトリもカバーします。

140* Linux と WSL2 では、ランタイムは起動時に拒否リストを構築します。プロジェクトルートを確実にカバーし、その時点で存在するネストされたコピーの浅いスキャンをベストエフォートで実行し、`git init`、`git clone`、またはスキャフォルディングなど、セッションが後で作成するものはカバーしません。README の `mandatoryDenySearchDepth` セクションでは、スキャンの正確なセマンティクスについて説明しています。142* Linux と WSL2 では、ランタイムは起動時に拒否リストを一度だけ構築します。プロジェクトルートを確実にカバーし、その時点で存在するネストされたコピーの浅いスキャンをベストエフォートで実行し、`git init`、`git clone`、またはスキャフォルディングなど、セッションが後で作成するものはカバーしません。README の `mandatoryDenySearchDepth` セクションでは、スキャンの正確なセマンティクスについて説明しています。

141* `~/.srt-settings.json` が存在せず、`--settings` を渡さない場合、ランタイムは起動します。ネットワークアクセスをブロックし、書き込みを `/tmp/claude`、`~/.npm/_logs`、`~/.claude/debug` などの組み込みランタイムパスに限定します。クリーンスタートを設定が読み込まれた証拠として受け取らないでください。143* `~/.srt-settings.json` が存在せず、`--settings` を渡さない場合でも、ランタイムは起動します。ネットワークアクセスをブロックし、書き込みを `/tmp/claude`、`~/.npm/_logs`、`~/.claude/debug` などの組み込みランタイムパスに限定します。クリーンスタートを設定が読み込まれた証拠として受け取らないでください。

142* 設定ファイルが存在するが空、読み取り不可、または無効な場合、ランタイムは起動を拒否します。これは `~/.srt-settings.json` でも、`--settings` で渡すファイルでも同じです。また、`--settings` ファイルが存在しない場合も起動を拒否します。144* 設定ファイルが存在するが空、読み取り不可、または無効な場合、ランタイムは起動を拒否します。これは `~/.srt-settings.json` でも、`--settings` で渡すファイルでも同じです。また、`--settings` ファイルが存在しない場合も起動を拒否します。

143 145 

144カスタマーの書き込み許可には、Claude Code が設定を読み込む他のパスも含まれるため、`denyWrite` でそれらを拒否してください。それらに書き込みできるサンドボックス化されたセッションは、次に Claude Code を起動するときに、サンドボックス化されていない hook、権限ルール、または MCP サーバーを永続化できます。146書き込み許可には、Claude Code が設定を読み込む他のパスも依然として含まれるため、`denyWrite` でそれらを拒否してください。それらに書き込みできるサンドボックス化されたセッションは、次に Claude Code を起動するときに、サンドボックス化されずに実行されるフック、権限ルール、または MCP サーバーを永続化できます。

145 147 

146<h3 id="after-unattended-runs">148<h3 id="after-unattended-runs">

147 無人実行後149 無人実行後

148</h3>150</h3>

149 151 

150保持した書き込み可能なパスを確認してください。Linux と WSL2 では、セッションが作成したものも確認してください。152書き込み可能なままにしたパスを確認してください。Linux と WSL2 では、セッションが作成したものも確認してください。

151 153 

152<h2 id="dev-containers">154<h2 id="dev-containers">

153 Dev コンテナ155 Dev コンテナ

sandboxing.md +590 −252

Details

4 4 

5# サンドボックス化された Bash ツールを設定する5# サンドボックス化された Bash ツールを設定する

6 6 

7> Claude Code のサンドボックス化された Bash ツールがファイルシステムとネットワークの分離を提供し、より安全で自律的なエージェント実行を実現する方法について学びます。7> 組み込みのサンドボックスを使用して、Claude Code のシェルコマンドがアクセスできるファイルとネットワークホストを制限します。サンドボックスをオンにし、境界を設定し、それによって生じる問題を解決します。

8 8 

9Bash サンドボックスを使用すると、Claude はほとんどのシェルコマンドを実行できます。各コマンドの実行許可を求める代わりに、コマンドがアクセスできるファイルとネットワークドメインを定義し、オペレーティングシステムがすべての Bash、PowerShell、Monitor コマンドとその子プロセスに対してその境界を実施します。9Bash サンドボックスは、Claude がユーザーのマシン上で実行するシェルコマンドの周囲に、オペレーティングシステムが適用する境界です。これらのコマンドがアクセスできるファイルとネットワークドメインを設定すると、その制限は Bash、PowerShell、Monitor の各コマンドと、それらが起動するプロセスに適用されます。コマンドの実行中にオペレーティングシステムが制限を適用するため、Claude Code はサンドボックス化されたコマンドを 1 つずつ承認を求めることなく[実行できます](#sandbox-modes)。

10 

11サンドボックスの対象はシェルコマンドのみです。Claude のファイルツール、MCP サーバー、フックは[サンドボックスの外で実行されます](#what-runs-outside-the-sandbox)。

12 

13サンドボックスは macOS、Linux、WSL2 で動作します。ネイティブ Windows では、Claude Code はコマンドをサンドボックス化せずに実行します。Windows マシンでサンドボックスを使用するには、WSL2 ディストリビューション内で Claude Code を実行してください。

10 14 

11<Note>15<Note>

12 dev コンテナ、カスタムコンテナ、仮想マシンなどの他の分離アプローチを比較するには、[Sandbox environments](/docs/ja/sandbox-environments) を参照してください。Bash 以外のツールの許可プロンプトを削減するには、[permission modes](/docs/ja/permission-modes) を参照してください。16 このページでは、ユーザー自身のマシン上のシェルコマンドを囲むサンドボックスについて説明します。関連する内容は他のページで説明しています。

17 

18 * クラウドセッションがどのように分離されるかについては、[セキュリティと分離](/docs/ja/claude-code-on-the-web#security-and-isolation)を参照してください

19 * dev container、カスタムコンテナ、仮想マシンなど、他の分離方法を比較するには、[サンドボックス環境](/docs/ja/sandbox-environments)を参照してください

20 * Bash 以外のツールの権限プロンプトを減らすには、[権限モード](/docs/ja/permission-modes)を参照してください

13</Note>21</Note>

14 22 

23<h2 id="what-the-sandbox-restricts">

24 サンドボックスが制限する内容

25</h2>

26 

27サンドボックスがオンの間、Claude が実行するシェルコマンドはその境界内で起動し、それらのコマンドが起動するプロセスも同様に境界内で起動します。サンドボックスはデフォルトでオフです。オンにするには、[はじめに](#get-started)で示すようにセッションで `/sandbox` を実行するか、`~/.claude/settings.json` などの[設定ファイル](/docs/ja/settings)で [`sandbox.enabled`](/docs/ja/settings-reference#sandbox-enabled) を `true` に設定します。

28 

29次の表は、サンドボックス化されたコマンドがデフォルトでアクセスできる範囲と、各デフォルトを変更する設定を示しています。

30 

31| アクセス | デフォルト | 変更方法 |

32| :- | :- | :- |

33| 書き込み | 作業ディレクトリ、ユーザーごとの一時ディレクトリ、および[追加したディレクトリ](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)。[保護されたパス](#protected-paths)は書き込みが拒否されたままです | [`filesystem.allowWrite`](/docs/ja/settings-reference#sandbox-filesystem-allowwrite)、[`filesystem.denyWrite`](/docs/ja/settings-reference#sandbox-filesystem-denywrite) |

34| 読み取り | `~/.ssh` や `~/.aws/credentials` などの認証情報ファイルを含む、マシンの大部分 | [`filesystem.denyRead`](/docs/ja/settings-reference#sandbox-filesystem-denyread)、[`credentials`](#protect-credentials) |

35| ネットワーク | 外部への直接のルートはありません。接続はマシン上のプロキシを経由し、プロキシが各ホストを許可ドメインと照合します。許可ドメインは最初は空です。[その他のホストの扱い](#hosts-outside-your-allowed-domains)は権限モードによって決まります | [`network.allowedDomains`](/docs/ja/settings-reference#sandbox-network-alloweddomains)、[`network.deniedDomains`](/docs/ja/settings-reference#sandbox-network-denieddomains) |

36| 環境変数 | Claude Code から継承され、その環境内のシークレットも含まれます | [`credentials`](#protect-credentials)、[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars) |

37 

38Claude Code は、オープンソースの [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) パッケージを基にサンドボックスをビルドしています。

39 

40<h3 id="what-runs-outside-the-sandbox">

41 サンドボックスの外で実行されるもの

42</h3>

43 

44サンドボックスはシェルコマンドをラップします。次のツールとプロセスはサンドボックスの外で実行されます。

45 

46* **組み込みのファイルツールと Web ツール**:Read、Edit、Write、WebFetch、WebSearch などのツールは、代わりに[権限ルール](/docs/ja/permissions)に従います。`denyRead` エントリは Read ツールを止めず、`allowedDomains` は WebFetch を制限しません

47* **Claude Code が起動するその他のプロセス**:コマンド[フック](/docs/ja/hooks)、ローカルの [MCP サーバー](/docs/ja/mcp)、[プラグインモニター](/docs/ja/plugins/components#monitors)、[LSP サーバー](/docs/ja/tools-reference#lsp-tool-behavior)、および[ステータスライン](/docs/ja/statusline)コマンドや `apiKeyHelper` などのヘルパーコマンドは、ユーザーの完全なアクセス権で実行されます

48 

49設定によっては、一部のシェルコマンドもサンドボックスの外で実行されます。

50 

51* **自分で入力したコマンド**:[`!` シェルモードのプロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したコマンドは、ほとんどのセッションでサンドボックス化されずに実行されます。入力したコマンドがサンドボックス内で実行されるセッションについては、[厳格サンドボックスモード](#turn-off-the-retry-with-strict-sandbox-mode)を参照してください

52* **除外されたコマンド**:[`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) に一致するコマンドは、サンドボックス化されずに実行されます

53* **サンドボックス外での再試行**:Claude は、通常はサンドボックス内でコマンドが失敗した後に、[そのコマンドをサンドボックス外で実行するよう求める](#the-unsandboxed-retry-escape-hatch)ことがあります

54 

55このセクションで挙げたツール、プロセス、コマンドを 1 つの境界の内側に置くには、Claude Code プロセス自体を[コンテナ、仮想マシン、またはサンドボックスランタイム](/docs/ja/sandbox-environments)内で実行します。

56 

15<h2 id="get-started">57<h2 id="get-started">

16 はじめに58 はじめに

17</h2>59</h2>

18 60 

19sandbox は Claude Code に組み込まれており、macOS、Linux、WSL2 で実行されます。ネイティブ Windows はサポートされていません。Windows では、WSL2 ディストリビューション内で Claude Code を実行してください。61サンドボックスは Claude Code に組み込まれています。インストールが必要なものはプラットフォームによって異なります。

20 62 

21macOS では、インストールするものはありません。sandboxing は組み込みの Seatbelt フレームワークを使用します。Linux と WSL2 では、sandbox は 2 つのパッケージに依存しており、[Linux と WSL2 のセットアップ](#set-up-linux-and-wsl2)で説明されています。まだインストールしていない場合でも、`/sandbox` で開始できます。そのパネルには、何かが不足しているかどうかが表示されます。63* **macOS**:サンドボックス化には組み込みの Seatbelt フレームワークが使われるため、そのまま手順に進めます

64* **Linux と WSL2**:サンドボックスは `bubblewrap` と `socat` に依存しています。これらについては [Linux と WSL2 のセットアップ](#set-up-linux-and-wsl2)で説明しています。まだインストールしていなくても、`/sandbox` から始められます。そのパネルに不足しているものが表示されるためです

22 65 

23<Steps>66<Steps>

24 <Step title="/sandbox を実行">67 <Step title="/sandbox を実行する">

25 Claude Code セッションを開始し、`/sandbox` コマンドを実行します。68 Claude Code のセッションを開始し、`/sandbox` コマンドを実行します。

26 69 

27 ```text theme={null}70 ```text theme={null}

28 /sandbox71 /sandbox

29 ```72 ```

30 73 

31 これにより、sandbox パネルが 3 つのタブで開きます。Linux では、オプションの seccomp フィルターが不足している場合、Dependencies タブが追加されます。74 これによりサンドボックスパネルが開きます。パネルには 3 つのタブがあり、Linux でオプションの seccomp フィルターが不足している場合はさらに Dependencies タブが表示されます。

32 75 

33 * **Mode**: sandbox されたコマンドがどのように承認されるかを選択します。次のステップで説明されています76 * **Mode**:サンドボックス化されたコマンドの承認方法を選択します。次のステップで説明します

34 * **Overrides**: sandbox の下で失敗するコマンドが sandbox されていない状態で実行にフォールバックできるかどうかを選択します。これは [`allowUnsandboxedCommands`](/docs/ja/settings-reference#sandbox-allowunsandboxedcommands) 設定です77 * **Overrides**:サンドボックス内で失敗したコマンドを、サンドボックス外での実行にフォールバックできるかどうかを選択します。これは [`allowUnsandboxedCommands`](/docs/ja/settings-reference#sandbox-allowunsandboxedcommands) 設定です

35 * **Config**: 解決された sandbox 設定を表示します78 * **Config**:解決済みのサンドボックス設定を表示します

36 79 

37 パネルに Dependencies タブのみが表示される場合、必須パッケージが不足しています。[Linux と WSL2 のセットアップ](#set-up-linux-and-wsl2)で説明されているようにインストールし、Claude Code を再起動して、`/sandbox` を再度実行してください。80 パネルに Dependencies タブしか表示されない場合は、必須パッケージが不足しています。[Linux と WSL2 のセットアップ](#set-up-linux-and-wsl2)の説明に従ってインストールし、Claude Code を再起動してから、もう一度 `/sandbox` を実行してください。

38 </Step>81 </Step>

39 82 

40 <Step title="モードを選択">83 <Step title="モードを選択する">

41 Mode タブで、auto-allow または regular permissions を選択します。Auto-allow は sandbox されたコマンドをプロンプトなしで実行し、regular permissions は、コマンドが sandbox されている場合でも通常の権限プロンプトを保持します。auto-allow モードでどのコマンドがまだプロンプトを表示するかについては、[Sandbox modes](#sandbox-modes) を参照してください。84 Mode タブで、auto-allow または regular permissions を選択します。auto-allow ではサンドボックス化されたコマンドがプロンプトなしで実行され、regular permissions ではコマンドがサンドボックス化されていても通常の権限プロンプトが維持されます。auto-allow モードでもプロンプトが表示されるコマンドについては、[サンドボックスモード](#sandbox-modes)を参照してください。

42 </Step>85 </Step>

43 86 

44 <Step title="Bash コマンドを実行">87 <Step title="Bash コマンドを実行する">

45 Claude にコマンド(ビルドやテストスイートなど)を実行するよう依頼します。デフォルトでは、sandbox 内のコマンドは作業ディレクトリ、[ユーザーごとの一時ディレクトリ](/docs/ja/env-vars)、および `--add-dir`、`/add-dir`、または `permissions.additionalDirectories` で[追加したディレクトリ](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)に書き込むことができます。88 ビルドやテストスイートなどのコマンドを実行するよう Claude に依頼します。デフォルトでは、サンドボックス内のコマンドは、作業ディレクトリ、[ユーザーごとの一時ディレクトリ](/docs/ja/env-vars)、および `--add-dir`、`/add-dir`、`permissions.additionalDirectories` で[追加したディレクトリ](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)に書き込めます。

46 89 

47 コマンドが新しいネットワークドメインを必要とする最初の時間、Claude Code は承認を求めます。[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、Claude は代わりに、分類器がそれと一緒にレビューするために、コマンドが必要とするホストを[コマンド自体に](#per-command-allowed-domains-in-auto-mode)名前付けします。90 コマンドが新しいネットワークドメインを初めて必要とするとき、Claude Code は承認を求めるプロンプトを表示します。[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では代わりに、コマンドが必要とするホストを Claude が[コマンド自体に](#per-command-allowed-domains-in-auto-mode)記載し、分類器がそれをコマンドとともに審査します。

48 91 

49 sandbox 内で実行できないコマンドは、通常の権限フローにフォールバックします。Claude Code は、sandbox の外で実行されたコマンドを区別できるように、権限プロンプトを「Bash command」ではなく「Bash command (unsandboxed)」というタイトルにします。sandbox が許可する内容を広げたり狭めたりするには、[Configure sandboxing](#configure-sandboxing) を参照してください。92 サンドボックスが許可する範囲を広げたり狭めたりするには、[サンドボックス化の設定](#configure-sandboxing)を参照してください。

50 93 

51 sandbox されたコマンドがコンテナ内で `Operation not permitted` で失敗する場合は、[Troubleshooting](#troubleshooting) の Bubblewrap エントリを参照してください。94 コンテナ内でサンドボックス化されたコマンドが `Operation not permitted` で失敗する場合は、[トラブルシューティング](#troubleshooting)の Bubblewrap の項目を参照してください。

52 </Step>95 </Step>

53</Steps>96</Steps>

54 97 

55パネルでモードを選択すると、Claude Code はそれをプロジェクトのローカル設定 `.claude/settings.local.json` に保存します。これは現在のプロジェクトに適用されます。Claude Code は、設定をそこに保存するときに、そのファイルをグローバル gitignore に追加します。すべてのプロジェクトで sandbox を有効にするには、ユーザー設定 `~/.claude/settings.json` で [`sandbox.enabled`](/docs/ja/settings-reference#sandbox-enabled) を `true` に設定します。組織内のすべての開発者に対して sandboxing を強制するには、[managed settings](#enforce-sandboxing-with-managed-settings) を使用します。98パネルでモードを選択すると、Claude Code はそれをプロジェクトのローカル設定 `.claude/settings.local.json` に保存します。この設定は現在のプロジェクトに適用されます。Claude Code はそこに設定を保存するときに、そのファイルをグローバル gitignore に追加します。すべてのプロジェクトでサンドボックスを有効にするには、ユーザー設定 `~/.claude/settings.json` で [`sandbox.enabled`](/docs/ja/settings-reference#sandbox-enabled) を `true` に設定します。組織内のすべての開発者にサンドボックス化を強制するには、[管理設定](#enforce-sandboxing-with-managed-settings)を使用します。

56 99 

571 つのセッションの設定ファイルに書き込まずに sandbox を変更するには、[`--settings`](/docs/ja/settings#change-a-setting-for-one-session) で Claude Code を開始します。たとえば、このコマンドは、Claude がブロックされたコマンドを sandbox の外で再試行できない sandbox されたセッションを開始します。100設定ファイルに書き込まずに 1 つのセッションだけサンドボックスを変更するには、[`--settings`](/docs/ja/settings#change-a-setting-for-one-session) を付けて Claude Code を起動します。たとえば次のコマンドは、ブロックされたコマンドを Claude がサンドボックス外で再試行できない、サンドボックス化されたセッションを開始します。

58 101 

59```bash theme={null}102```bash theme={null}

60claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'103claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'

61```104```

62 105 

63<Warning>106<Warning>

64 デフォルトでは、依存関係が不足しているか、プラットフォームがサポートされていないため sandbox を開始できない場合、Claude Code は警告を表示し、sandboxing なしでコマンドを実行します。これをハード失敗にするには、[`sandbox.failIfUnavailable`](/docs/ja/settings-reference#sandbox-failifunavailable) を `true` に設定します。これは、sandboxing をセキュリティゲートとして必要とするマネージド展開を対象としています。107 デフォルトでは、依存関係が不足している、またはプラットフォームがサポートされていないためにサンドボックスを起動できない場合、Claude Code はサンドボックス化せずにコマンドを実行します。代わりに起動時に Claude Code を終了させるには、[`sandbox.failIfUnavailable`](/docs/ja/settings-reference#sandbox-failifunavailable) を `true` に設定します。サンドボックス化をセキュリティゲートとして必須とする管理されたデプロイでは、この設定を使用できます。

65</Warning>108</Warning>

66 109 

110<h3 id="confirm-commands-run-inside-the-sandbox">

111 コマンドがサンドボックス内で実行されることを確認する

112</h3>

113 

114サンドボックスが機能していることを確認するには、表の各行を実行するよう Claude に依頼します。[`!` プロンプト](#what-runs-outside-the-sandbox)で入力したものは通常サンドボックス外で実行されるため、自分で行を入力してもテストにはなりません。

115 

116| コマンド | サンドボックス内での結果 |

117| :- | :- |

118| `touch ~/sandbox-probe` | macOS では `Operation not permitted`、Linux と WSL2 では `Read-only file system` で失敗します |

119| `curl --noproxy '*' https://example.com` | コマンドにはサンドボックスプロキシを迂回する経路がないため、`Could not resolve host` で失敗します |

120 

121失敗したコマンドをサンドボックス外で再試行するよう Claude が求めてきた場合は、再試行を拒否してください。`touch` が成功し、ホームディレクトリがサンドボックスでコマンドの書き込みが許可されているディレクトリに含まれていない場合は、`~/sandbox-probe` を削除してください。その後、`/sandbox` を実行して、サンドボックスがオンになっていることと、その依存関係がインストールされていることを確認します。

122 

67<h3 id="set-up-linux-and-wsl2">123<h3 id="set-up-linux-and-wsl2">

68 Linux と WSL2 のセットアップ124 Linux と WSL2 のセットアップ

69</h3>125</h3>

70 126 

71Linux と WSL2 では、sandbox は 2 つのパッケージに依存しています。127Linux と WSL2 では、サンドボックスは次のパッケージに依存しています。

72 128 

73* [`bubblewrap`](https://github.com/containers/bubblewrap): ファイルシステム分離を強制する非特権 sandboxing ツール129* [`bubblewrap`](https://github.com/containers/bubblewrap):ファイルシステムの分離を強制する、特権不要のサンドボックス化ツール

74* [`socat`](http://www.dest-unreach.org/socat/): sandbox プロキシを通じてネットワークトラフィックをルーティングするために使用されるリレー130* [`socat`](http://www.dest-unreach.org/socat/):ネットワークトラフィックをサンドボックスプロキシ経由でルーティングするために使われるリレー

75 131 

76ディストリビューションのパッケージマネージャーでインストールします。132ディストリビューションのパッケージマネージャーでインストールします。

77 133 


89 </Tab>145 </Tab>

90</Tabs>146</Tabs>

91 147 

92依存関係が不足している場合、`/sandbox` の Dependencies タブには、プラットフォームが不足している `ripgrep`、`bubblewrap`、`socat`、および seccomp フィルターが一覧表示されます。Claude Code をインストールして再起動した後、タブが表示されない場合は、すべての依存関係が存在します。148依存関係が不足している場合、`/sandbox` の Dependencies タブには、`ripgrep`、`bubblewrap`、`socat`、seccomp フィルターのうちプラットフォームに不足しているものが一覧表示されます。インストールして Claude Code を再起動した後にこのタブが表示されなければ、すべての依存関係がそろっています。

93 149 

94Ripgrep はネイティブ Claude Code バイナリにバンドルされています。seccomp フィルターはオプションであり、Unix ドメインソケットブロッキングを追加します。不足している場合は、`npm install -g @anthropic-ai/sandbox-runtime` でインストールします。150Ripgrep はネイティブの Claude Code バイナリに同梱されています。seccomp フィルターはオプションで、Unix ドメインソケットのブロックを追加します。不足している場合は `npm install -g @anthropic-ai/sandbox-runtime` でインストールしてください。

95 151 

96必須の依存関係が不足している場合、Dependencies タブはインストールするまで唯一のタブです。オプションの seccomp フィルターのみが不足している場合、Dependencies タブは他のタブと一緒に表示されます。依存関係チェックはスタートアップ時に実行されるため、パッケージをインストールした後、Claude Code を再起動して `/sandbox` がそれらを検出するようにします。152必須の依存関係が不足している場合、インストールするまで Dependencies タブだけが表示されます。オプションの seccomp フィルターだけが不足している場合は、Dependencies タブが他のタブと並んで表示されます。依存関係のチェックは起動時に実行されるため、`/sandbox` にパッケージを検出させるには、インストール後に Claude Code を再起動してください。

97 153 

98<AccordionGroup>154<AccordionGroup>

99 <Accordion title="Ubuntu 24.04 以降: bubblewrap がユーザーネームスペースを作成できるようにする">155 <Accordion title="Ubuntu 24.04 以降:bubblewrap によるユーザー名前空間の作成を許可する">

100 Ubuntu 24.04 以降では、デフォルトの AppArmor ポリシーは、bubblewrap が分離に必要なユーザーネームスペースを作成することを防止します。156 Ubuntu 24.04 以降では、デフォルトの AppArmor ポリシーにより、bubblewrap が分離に必要なユーザー名前空間を作成できません。

101 157 

102 WSL2 内を含む、環境がこの制限を強制しているかどうかを確認するには、`sysctl kernel.apparmor_restrict_unprivileged_userns` を実行します。コマンドが `0` を返す場合は、このステップをスキップします。`No such file or directory` エラーが出力される場合、キーは存在せず、このステップをスキップできます。`1` を返す場合は、`bwrap` にこの機能を付与する AppArmor プロファイルを追加します。158 WSL2 内も含め、環境がこの制限を強制しているかどうかを確認するには、`sysctl kernel.apparmor_restrict_unprivileged_userns` を実行します。コマンドが `0` を返す場合は、このステップをスキップしてください。`No such file or directory` エラーが表示される場合は、キーが存在しないため、このステップをスキップできます。`1` を返す場合は、`bwrap` にこの機能を付与する AppArmor プロファイルを追加します。

103 159 

104 ```bash theme={null}160 ```bash theme={null}

105 sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'161 sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'


113 EOF169 EOF

114 ```170 ```

115 171 

116 プロファイルは `bwrap` 自体にのみ適用され、sandbox 内で実行されるコマンドには適用されません。AppArmor を再度読み込んで適用します。172 このプロファイルは `bwrap` 自体にのみ適用され、サンドボックス内で `bwrap` が実行するコマンドには適用されません。適用するには AppArmor を再読み込みします。

117 173 

118 ```bash theme={null}174 ```bash theme={null}

119 sudo systemctl reload apparmor175 sudo systemctl reload apparmor

120 ```176 ```

121 </Accordion>177 </Accordion>

122 178 

123 <Accordion title="WSL2 に関する注記">179 <Accordion title="WSL2 に関する注意事項">

124 PowerShell から `wsl -l -v` で WSL バージョンを確認します。`Sandboxing requires WSL2` が表示される場合、ディストリビューションは WSL1 で実行されています。WSL2 にアップグレードするか、sandboxing なしで Claude Code を実行します。180 PowerShell から `wsl -l -v` を実行して WSL のバージョンを確認します。`Sandboxing requires WSL2` と表示される場合、ディストリビューションは WSL1 で実行されています。WSL2 にアップグレードするか、サンドボックス化せずに Claude Code を実行してください。

125 181 

126 WSL2 では、WSL は `cmd.exe`、`powershell.exe`、または `/mnt/c/` の下の何かなどの Windows バイナリの起動を Unix ソケット経由で Windows ホストに渡すため、sandbox されたコマンドが 1 つを起動できるかどうかは、sandbox の [Unix ソケット設定](/docs/ja/settings-reference#sandbox-network-allowunixsockets)に従います。オプションの seccomp フィルターをインストールして、最初の場所でソケットをブロックする必要があります。これらの起動を許可するには、`allowAllUnixSockets` を設定します。sandbox から完全に除外するには、コマンドを [`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) に追加します。182 WSL2 では、`cmd.exe`、`powershell.exe`、または `/mnt/c/` 配下のものなど Windows バイナリの起動を、WSL が Unix ソケット経由で Windows ホストに引き渡します。そのため、サンドボックス化されたコマンドがそれらを起動できるかどうかは、サンドボックスの [Unix ソケット設定](/docs/ja/settings-reference#sandbox-network-allowunixsockets)に従います。そもそもソケットをブロックするには、オプションの seccomp フィルターがインストールされている必要があります。これらの起動を許可するには、`allowAllUnixSockets` を設定します。これにより、サンドボックス化されたコマンドにすべての Unix ソケットが開放されます。

127 </Accordion>183 </Accordion>

128</AccordionGroup>184</AccordionGroup>

129 185 

130<h3 id="sandbox-modes">186<h3 id="sandbox-modes">

131 Sandbox modes187 サンドボックスモード

132</h3>188</h3>

133 189 

134Claude Code は 2 つの sandbox モードを提供します。どちらでも、sandbox は同じファイルシステムとネットワーク制限を強制します。違いは、sandbox されたコマンドが自動承認されるか、明示的な権限が必要かだけです。190Claude Code には 2 つのサンドボックスモードがあります。どちらのモードでも、サンドボックスは同じファイルシステムとネットワークの制限を強制します。違いは、サンドボックス化されたコマンドが自動承認されるか、明示的な権限が必要かという点だけです。

135 191 

136<h4 id="auto-allow-mode">192<h4 id="auto-allow-mode">

137 Auto-allow モード193 auto-allow モード

138</h4>194</h4>

139 195 

140コマンドが sandbox できる場合、Claude Code はそれを sandbox 内で実行し、権限なしで自動的に承認します。ネットワークアクセスが許可されていないホストを必要とするコマンドなど、sandbox できないコマンドは、通常の権限フローにフォールバックします。Claude Code は [権限ルール](/docs/ja/permissions)をチェックし、Manual モードでプロンプトを表示して、これらのルールが既に許可していないコマンドをゲートします。196コマンドがサンドボックス内で実行される場合、Claude Code はプロンプトなしでそのコマンドを自動的に承認します。コマンドが [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) に一致するため、または Claude が[サンドボックス外で再試行する](#the-unsandboxed-retry-escape-hatch)ためにサンドボックス外で実行される場合、そのコマンドは通常の[権限フロー](/docs/ja/permissions)を経由します。

197 

198許可していないホストに接続するサンドボックス化されたコマンドは、サンドボックス内にとどまります。接続を通すかどうかを誰が決めるかについては、[許可されたドメイン外のホスト](#hosts-outside-your-allowed-domains)で説明しています。

141 199 

142auto-allow モードでも、以下が適用されます。200auto-allow モードでも、次の点は引き続き適用されます。

143 201 

144* 明示的な [deny ルール](/docs/ja/permissions)は常に尊重されます202* 明示的な[拒否ルール](/docs/ja/permissions)は常に尊重されます

145* [critical path](/docs/ja/permission-modes#critical-paths) をターゲットとする `rm` または `rmdir` コマンドは、通常の権限フローを通じて実行されます203* [重要なパス](/docs/ja/permission-modes#critical-paths)を対象とする `rm` または `rmdir` コマンドは、引き続き通常の権限フローを経由します

146* `Bash(git push *)` のようなコンテンツスコープの [ask ルール](/docs/ja/permissions)は、sandbox されたコマンドでもプロンプトを強制します204* `Bash(git push *)` のような内容を限定した[確認ルール](/docs/ja/permissions)は、サンドボックス化されたコマンドであっても引き続きプロンプトを強制します

147* 裸の `Bash` ask ルール、または同等の `Bash(*)` フォームは、sandbox 内で実行されるコマンドではスキップされます。通常の権限フローにフォールバックするコマンドに適用されます。[plan mode](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode) では、ルールはスキップされません。読み取り専用を含む sandbox されたコマンドのプロンプトを表示します。v2.1.212 より前では、スキップは plan mode でも適用されていました205* 単独の `Bash` 確認ルール、またはそれと同等の `Bash(*)` 形式は、サンドボックス化されて実行されるコマンドではスキップされます。通常の権限フローにフォールバックするコマンドには引き続き適用されます。[plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)では、このルールはスキップされず、読み取り専用のものも含め、サンドボックス化されたコマンドに対してもプロンプトを表示します。v2.1.212 より前は、plan モードでもスキップが適用されていました

148 206 

149<Info>207<Info>

150 Auto-allow モードは、権限モード設定とは独立して機能します。3 つの例外があります。[plan mode](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)、[per-command allowed domains](#per-command-allowed-domains-in-auto-mode) を含む auto モードコマンド、および auto モードで sandbox されたコマンドの[サーバー側分類器レビュー](/docs/ja/permission-modes#how-the-classifier-evaluates-actions)です。「accept edits」モードでない場合でも、auto-allow が有効な場合、sandbox されたBash コマンドは自動的に実行されます。これは、sandbox 境界内でファイルを変更する Bash コマンドが、ファイル編集ツールがプロンプトを表示する Manual モードでもプロンプトなしで実行されることを意味します。208 auto-allow モードは権限モードの設定とは独立して動作しますが、例外が 3 つあります。[plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)、[コマンドごとの許可ドメイン](#per-command-allowed-domains-in-auto-mode)を持つ auto モードのコマンド、そして auto モードでのサンドボックス化されたコマンドに対する[サーバー側の分類器による審査](/docs/ja/permission-modes#how-the-classifier-evaluates-actions)です。「accept edits」モードでなくても、auto-allow が有効な場合、サンドボックス化された Bash コマンドは自動的に実行されます。つまり、ファイル編集ツールであればプロンプトが表示される Manual モードでも、サンドボックスの境界内でファイルを変更する Bash コマンドはプロンプトなしで実行されます。

151 209 

152 plan mode では、auto-allow は承認を広げません。Claude Code がコマンドをゲートする方法については、[plan mode](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode) を参照してください。v2.1.212 より前では、auto-allow は plan mode でも sandbox されたコマンドをプロンプトなしで実行していました。210 plan モードでは、auto-allow によって承認の範囲は広がりません。計画中に Claude Code がコマンドをどのように制御するかについては、[plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を参照してください。v2.1.212 より前は、plan モードでも auto-allow によってサンドボックス化されたコマンドがプロンプトなしで実行されていました。

153</Info>211</Info>

154 212 

155<h4 id="regular-permissions-mode">213<h4 id="regular-permissions-mode">

156 Regular permissions モード214 regular permissions モード

157</h4>215</h4>

158 216 

159すべての Bash コマンドは、sandbox されている場合でも、通常の権限フローを通じて実行されます。これはより多くの制御を提供しますが、より多くの承認が必要です。217すべての Bash コマンドは、サンドボックス化されている場合でも通常の権限フローを経由します。より細かく制御できますが、より多くの承認が必要になります。

160 218 

161<h4 id="the-unsandboxed-retry-escape-hatch">219<h4 id="the-unsandboxed-retry-escape-hatch">

162 Unsandboxed retry エスケープハッチ220 サンドボックス外での再試行という抜け道

163</h4>221</h4>

164 222 

165互換性がないツールや許可していないホストが必要なツールなど、sandbox 内で実行できないコマンドがあります。Claude Code は、sandbox 違反をブロックされたコマンドの結果で報告し、sandbox が拒否したパスまたはホストに名前を付けるため、Claude は sandbox がブロックしたものを見ます。タスクを失敗させたり、sandboxing をオフにするよう要求したりするのではなく、Claude Code にはエスケープハッチが含まれています。Claude は違反を分析し、`dangerouslyDisableSandbox` パラメーターでコマンドを再試行する場合があります。223サンドボックス外での再試行は、サンドボックスと互換性のないツールなど、サンドボックス内で失敗するコマンドのための抜け道です。サンドボックスがネットワーク接続をブロックすると、Claude Code はコマンドの結果の中で拒否されたホストを示すため、Claude は何がブロックされたかを把握できます。Claude は失敗を分析し、`dangerouslyDisableSandbox` パラメーターを付けてコマンドを再試行することがあります。

166 224 

167再試行されたコマンドは sandbox の外で実行されるため、通常の権限フローを通じて実行されます。Manual モードでは確認プロンプトが表示されます。[auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) では、分類器は基礎となるコマンドを評価します。[`permissions.blockReadsOutsideWorkingDirectories`](/docs/ja/settings-reference#permissions-blockreadsoutsideworkingdirectories) がオンの場合、sandbox の外で実行するために承認が必要な再試行はプロンプトを表示します。auto mode でも unsandboxed retry のたびにプロンプトを表示するには、`Bash(dangerouslyDisableSandbox:true)` の [ask ルール](/docs/ja/permissions#match-by-input-parameter)を追加します。225再試行されたコマンドはサンドボックス外で実行されます。インタラクティブなターミナルセッションでは、誰が承認するかは権限モードによって異なります。

168 226 

169このエスケープハッチは、[sandbox 設定](/docs/ja/settings-reference#sandbox-settings)で `"allowUnsandboxedCommands": false` を設定することで無効にできます。エスケープハッチが無効な場合、Claude Code は `dangerouslyDisableSandbox` パラメーターを無視し、Claude が実行するすべてのコマンドは、`excludedCommands` にリストされていない限り、sandbox 内で実行される必要があります。`/sandbox` **Overrides** タブは、この設定を **Strict sandbox mode** として表示します。227* **`bypassPermissions` モード**:再試行はプロンプトなしで実行されます

228* **Manual モードと `acceptEdits` モード**:「Bash command (unsandboxed)」というタイトルのプロンプトが表示されます

229* **[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)**:別の分類器モデルが基になるコマンドを評価します

230* **`dontAsk` モード**:Claude Code は再試行を拒否します

231* **plan モード**:[計画中に Claude Code がコマンドをどのように制御するか](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を参照してください

170 232 

171Strict sandbox mode は、Claude が実行するコマンドに適用されます。[`!` shell-mode プロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)で自分で入力するコマンドは、セッションが以下のいずれかでない限り、sandbox の外で実行されます。233次のルールと設定によって、再試行を誰が承認するかが変わります。

234 

235* **一致する許可ルール**:`Bash(curl *)` などの許可ルールがコマンドに一致する場合、そのルールは再試行も承認するため、コマンドはプロンプトなしでサンドボックス外で実行されます

236* **パラメーターに対する確認ルール**:Bash の再試行時にプロンプトを表示させるには、`Bash(dangerouslyDisableSandbox:true)` に対する[確認ルール](/docs/ja/permissions#match-by-input-parameter)を追加します。auto モードと `bypassPermissions` モードでもプロンプトが表示され、このルールは一致する許可ルールより優先されます

237* **[`permissions.blockReadsOutsideWorkingDirectories`](/docs/ja/settings-reference#permissions-blockreadsoutsideworkingdirectories)**:これがオンの間にプロンプトが表示される再試行については、[どのモードでも自動承認されないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)で説明しています

238 

239<h4 id="turn-off-the-retry-with-strict-sandbox-mode">

240 strict sandbox モードで再試行をオフにする

241</h4>

172 242 

173* **[background session](/docs/ja/agent-view)**: strict sandbox mode は shell-mode コマンドもカバーします243[サンドボックス設定](/docs/ja/settings-reference#sandbox-settings)で `"allowUnsandboxedCommands": false` を設定すると、サンドボックス外での再試行を無効にできます。再試行が無効になると、Claude Code は `dangerouslyDisableSandbox` パラメーターを無視します。これにより、サンドボックスが動作している間、Claude が実行するコマンドは `excludedCommands` のエントリに一致しない限りサンドボックス化されます。サンドボックスを起動できないときに Claude Code がコマンドをサンドボックス外で実行しないようにするには、[`failIfUnavailable`](/docs/ja/settings-reference#sandbox-failifunavailable) も設定します。`/sandbox` の **Overrides** タブでは、この設定は **Strict sandbox mode** として表示されます。

174* **[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars#variables) が設定された Linux セッション**: すべてのコマンドが sandbox されます。shell-mode コマンドを含みます

175 244 

176v2.1.260 より前では、strict sandbox mode はすべてのセッションで shell-mode コマンドを sandbox していました。245ユーザー設定、`--settings`、または管理設定での `false` は、プロジェクトの設定で `true` が設定されていても維持されます。ユーザー設定での `false` によってサンドボックスが管理者必須になることはないため、プロジェクトのその他のサンドボックス設定は引き続き適用されます。v2.1.285 より前は、プロジェクトの `true` がユーザー設定の `false` を上書きしていました。

246 

247ユーザーまたは管理者が管理設定または `--settings` フラグで再試行を無効にすると、サンドボックスは管理者必須になります。その場合、Claude Code は、`excludedCommands` のエントリも含め、リポジトリのファイル内にあるサンドボックスを緩める設定を無視します。それらの一覧は、[管理者必須のサンドボックスにおけるリポジトリ設定](#repository-settings-under-an-admin-required-sandbox)に記載されています。

248 

249strict sandbox モードは、Claude が実行するコマンドに適用されます。[`!` シェルモードのプロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)で自分で入力したコマンドは、セッションが次のいずれかでない限り、サンドボックス外で実行されます。

250 

251* **[バックグラウンドセッション](/docs/ja/agent-view)**:strict sandbox モードはシェルモードのコマンドにも適用されます

252* **[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars#variables) が設定された Linux セッション**:シェルモードのコマンドも含め、すべてのコマンドがサンドボックス化されて実行されます

253 

254v2.1.260 より前は、strict sandbox モードはすべてのセッションでシェルモードのコマンドをサンドボックス化していました。

177 255 

178<h4 id="temporary-directories">256<h4 id="temporary-directories">

179 一時ディレクトリ257 一時ディレクトリ

180</h4>258</h4>

181 259 

182ユーザーごとの一時ディレクトリは、作業ディレクトリと一緒に、デフォルトで sandbox 内で書き込み可能です。[ファイルシステム分離を無効にしない](#disable-filesystem-isolation)限り、Claude Code は sandbox されたコマンドの `$TMPDIR` をこのディレクトリに設定するため、一時ファイルを書き込むツールは追加の設定なしで機能します。260デフォルトでは、作業ディレクトリに加えて、ユーザーごとの一時ディレクトリにもサンドボックス内から書き込めます。[ファイルシステムの分離を無効にする](#disable-filesystem-isolation)場合を除き、Claude Code はサンドボックス化されたコマンドに対して `$TMPDIR` をこのディレクトリに設定するため、一時ファイルを書き込むツールは追加の設定なしで動作します。

183 261 

184Unsandboxed コマンドは、設定されている場合、シェルの `$TMPDIR` を継承するため、ファイルシステム分離がオンの場合、sandbox されたコマンドと unsandboxed コマンドは `$TMPDIR` を異なるディレクトリに解決します。シェルが `$TMPDIR` を未設定または空のままにしている場合、`$TMPDIR` を参照する unsandboxed コマンドは、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) オーバーライドを受け取ります。設定していない場合、またはオーバーライドが長いパスの場合は、オペレーティングシステムの一時ディレクトリを受け取るため、変数は空の文字列に展開されません。2 つの間で一時ファイルを渡すには、代わりに作業ディレクトリの下に書き込みます。262サンドボックス化されていないコマンドは、シェルの `$TMPDIR` が設定されていればそれを継承します。そのため、ファイルシステムの分離がオンの間は、サンドボックス化されたコマンドとされていないコマンドで `$TMPDIR` が異なるディレクトリに解決されます。シェルで `$TMPDIR` が未設定または空の場合、`$TMPDIR` を参照するサンドボックス外のコマンドには、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) による上書き値が渡されます。上書き値を設定していない場合や上書き値が長いパスである場合はオペレーティングシステムの一時ディレクトリが渡されるため、変数が空文字列に展開されることはありません。両者の間で一時ファイルを受け渡すには、代わりに作業ディレクトリ配下に書き込んでください。

185 263 

186<h2 id="configure-sandboxing">264<h2 id="configure-sandboxing">

187 サンドボックスの設定265 サンドボックスを設定する

188</h2>266</h2>

189 267 

190`settings.json` ファイルを通じてサンドボックスの動作をカスタマイズできます。完全な設定リファレンスについては、[設定](/docs/ja/settings-reference#sandbox-settings)を参照してください。268サンドボックスの動作は `settings.json` ファイルでカスタマイズできます。設定の完全なリファレンスについては、[設定](/docs/ja/settings-reference#sandbox-settings)を参照してください。

191 269 

192デフォルトでは、サンドボックス化されたコマンドは現在の作業ディレクトリ、ユーザーごとの一時ディレクトリ、および `--add-dir`、`/add-dir`、または `permissions.additionalDirectories` で[追加したディレクトリ](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)に書き込むことができます。`kubectl`、`terraform`、`npm` などのサブプロセスコマンドがこれらのディレクトリ外に書き込む必要がある場合は、`sandbox.filesystem.allowWrite` を使用して特定のパスへのアクセスを許可します。270デフォルトでは、サンドボックス化されたコマンドが書き込めるのは、現在の作業ディレクトリ、ユーザーごとの一時ディレクトリ、そして `--add-dir`、`/add-dir`、または `permissions.additionalDirectories` で[追加したディレクトリ](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)です。`kubectl`、`terraform`、`npm` などのサブプロセスコマンドがこれらのディレクトリの外に書き込む必要がある場合は、`sandbox.filesystem.allowWrite` を使用して特定のパスへのアクセスを付与します。

193 271 

194```json theme={null}272```json theme={null}

195{273{


202}280}

203```281```

204 282 

205これらのパスは OS レベルで強制されるため、サンドボックス内で実行されるすべてのコマンド(子プロセスを含む)がそれらを尊重します。これは、`excludedCommands` でツールをサンドボックスから完全に除外するのではなく、ツールが特定の場所への書き込みアクセスを必要とする場合の推奨アプローチです。283これらのパスは OS レベルで適用されるため、サンドボックス内で実行されるすべてのコマンドは、その子プロセスも含めてこれらに従います。ツールが特定の場所への書き込みアクセスを必要とする場合は、`excludedCommands` でツールをサンドボックスから完全に除外するのではなく、この方法を使用することを推奨します。

206 284 

207複数の[設定スコープ](/docs/ja/settings#settings-precedence)で同じファイルシステム配列を定義する場合、Claude Code はそれらをマージし、1 つのスコープの配列を別のスコープの配列で置き換えるのではなく、すべてのスコープからのパスを組み合わせます。285同じファイルシステム配列を複数の[設定スコープ](/docs/ja/settings#settings-precedence)で定義した場合、Claude Code はそれらをマージし、あるスコープの配列を別のスコープの配列で置き換えるのではなく、すべてのスコープのパスを結合します。

208 286 

209CLI で [`--setting-sources`](/docs/ja/cli-reference) を使用するか、Agent SDK で [`settingSources`](/docs/ja/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) を使用してソースを除外する場合、Claude Code はサンドボックス設定を構築する際に、その `sandbox.filesystem` エントリ、`Edit` 権限ルール、および `Read` 拒否ルールを無視します。Claude Code v2.1.246 以降が必要です。287CLI の [`--setting-sources`](/docs/ja/cli-reference) や Agent SDK の [`settingSources`](/docs/ja/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) で設定ソースを除外した場合、Claude Code はサンドボックス設定を構築する際に、そのソースの `sandbox.filesystem` エントリ、`Edit` 権限ルール、`Read` 拒否ルールを無視します。Claude Code v2.1.246 以降が必要です。

210 288 

211セッション中にこれらのファイルシステムリストを編集する場合、Claude Code は[実行中のセッションに変更を適用](/docs/ja/settings#when-edits-take-effect)するため、次のサンドボックス化されたコマンドは新しいパスの下で実行されます。289セッション中にこれらのファイルシステムリストを編集すると、Claude Code は[実行中のセッションに変更を適用する](/docs/ja/settings#when-edits-take-effect)ため、次にサンドボックス化されたコマンドは新しいパスのもとで実行されます。

212 290 

213パスプレフィックスはパスの解決方法を制御します。291パスのプレフィックスによって、パスの解決方法が決まります。

214 292 

215| プレフィックス | 意味 | 例 |293| プレフィックス | 意味 | 例 |

216| :- | :- | :- |294| :- | :- | :- |

217| `/` | ファイルシステムルートからの絶対パス | `/tmp/build` は `/tmp/build` のままです |295| `/` | ファイルシステムのルートからの絶対パス | `/tmp/build` は `/tmp/build` のまま |

218| `~/` | ホームディレクトリからの相対パス | `~/.kube` は `$HOME/.kube` になります |296| `~/` | ホームディレクトリからの相対パス | `~/.kube` は `$HOME/.kube` になる |

219| `./` またはプレフィックスなし | プロジェクト設定の場合はプロジェクトルートからの相対パス、またはユーザー設定の場合は `~/.claude` からの相対パス | `.claude/settings.json` の `./output` は `<project-root>/output` に解決されます |297| `./` またはプレフィックスなし | プロジェクト設定ではプロジェクトルートからの相対パス、ユーザー設定では `~/.claude` からの相対パス | `.claude/settings.json` 内の `./output` は `<project-root>/output` に解決される |

220 298 

221この構文は、絶対パスに `//path` を使用し、プロジェクト相対パスに `/path` を使用する[読み取りおよび編集権限ルール](/docs/ja/permissions#read-and-edit)とは異なります。サンドボックスファイルシステムパスは標準的な規則を使用します。`/tmp/build` は絶対パスです。Claude Code がこれらのパスの末尾のスラッシュまたはワイルドカードをどのように扱うかについては、[サンドボックスパスプレフィックス](/docs/ja/settings-reference#sandbox-path-prefixes)を参照してください。299この構文は、絶対パスに `//path`、プロジェクト相対パスに `/path` を使用する [Read と Edit の権限ルール](/docs/ja/permissions#read-and-edit)とは異なります。サンドボックスのファイルシステムパスは標準的な規則に従い、`/tmp/build` は絶対パスです。これらのパスの末尾のスラッシュやワイルドカードを Claude Code がどのように扱うかについては、[サンドボックスのパスプレフィックス](/docs/ja/settings-reference#sandbox-path-prefixes)を参照してください。

222 300 

223`sandbox.filesystem.denyWrite` と `sandbox.filesystem.denyRead` を使用して書き込みまたは読み取りアクセスを拒否し、`sandbox.filesystem.allowRead` を使用して拒否された領域内の特定のパスを再度許可することもできます。読み取りルールが重複する場合、より狭いパスを持つルールが適用されます。301`sandbox.filesystem.denyWrite` と `sandbox.filesystem.denyRead` を使用して書き込みや読み取りのアクセスを拒否することもでき、`sandbox.filesystem.allowRead` を使用して拒否された領域内の特定のパスを再び許可することもできます。読み取りルールが重なる場合は、より狭いパスのルールが適用されます。

224 302 

225| ルール例 | 結果 |303| ルールの例 | 結果 |

226| :- | :- |304| :- | :- |

227| `"denyRead": ["~/"]` と `"allowRead": ["~/projects"]` | `~/projects` は読み取り可能で、ホームディレクトリの残りはブロックされたままです。より狭い許可がその拒否された領域の一部を再度開きます |305| `"denyRead": ["~/"]` と `"allowRead": ["~/projects"]` | `~/projects` は読み取り可能で、ホームディレクトリの残りはブロックされたままになります。より狭い許可が、拒否された領域のその部分を再び開きます |

228| `"allowRead": ["~/"]` と `"denyRead": ["~/.env"]` | `~/.env` はブロックされたままで、ホームディレクトリの残りは読み取り可能です。拒否はより広い許可内に保持されるため、広い許可はシークレットを静かに再度公開することはできません |306| `"allowRead": ["~/"]` と `"denyRead": ["~/.env"]` | `~/.env` はブロックされたままで、ホームディレクトリの残りは読み取り可能です。拒否はより広い許可の内側でも維持されるため、広範な許可によってシークレットが気付かないうちに再び公開されることはありません |

229| `"allowRead": ["~/"]` と `"denyRead": ["~/**/.env"]` | ホームディレクトリ下のすべての `.env` はブロックされたままで、残りは読み取り可能です。[ワイルドカード拒否](/docs/ja/settings-reference#sandbox-path-prefixes)は、正確なパスと同じ方法でより広い許可内に保持されます |307| `"allowRead": ["~/"]` と `"denyRead": ["~/**/.env"]` | ホームディレクトリ配下のすべての `.env` はブロックされたままで、残りは読み取り可能です。[ワイルドカードによる拒否](/docs/ja/settings-reference#sandbox-path-prefixes)も、正確なパスと同じようにより広い許可の内側で維持されます |

230 308 

231以下の例は、ホームディレクトリ全体からの読み取りをブロックしながら、現在のプロジェクトからの読み取りを許可します。プロジェクトの `.claude/settings.json` に配置してください。相対パス `.` はプロジェクト設定に設定が存在する場合にのみプロジェクトルートに解決されるためです。309以下の例では、現在のプロジェクトからの読み取りを許可しつつ、ホームディレクトリ全体からの読み取りをブロックします。相対パス `.` がプロジェクトルートに解決されるのは設定がプロジェクト設定にある場合のみなので、この設定はプロジェクトの `.claude/settings.json` に配置してください。

232 310 

233```json theme={null}311```json theme={null}

234{312{


242}320}

243```321```

244 322 

245同じ設定を `~/.claude/settings.json` に配置した場合、`.` は `~/.claude` に解決され、プロジェクトファイルは `denyRead` ルールによってブロックされたままになります。323同じ設定を `~/.claude/settings.json` に配置した場合、`.` は代わりに `~/.claude` に解決され、プロジェクトファイルは `denyRead` ルールによってブロックされたままになります。

324 

325作業ディレクトリを読み取り可能に保ちつつ、サンドボックス化されたコマンドによるホームディレクトリやマウントされたボリュームへの読み取りアクセスを拒否するには、パスルールを書く代わりに [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ja/settings-reference#permissions-blockreadsoutsideworkingdirectories) を設定します。

326 

327<h3 id="run-commands-outside-the-sandbox-with-excludedcommands">

328 `excludedCommands` でコマンドをサンドボックスの外で実行する

329</h3>

330 

331[`sandbox.excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) にコマンドパターンを記載すると、一致するコマンドがサンドボックスの外で実行されます。つまり、ファイルシステムの制限もネットワークプロキシもありません。サンドボックス内では動作せず、完全なアクセス権を委ねても信頼できるツールに使用してください。ディレクトリやホストが 1 つ追加で必要なだけのツールであれば、コマンドをサンドボックス化したままにできる `allowWrite` や `allowedDomains` で動作する場合があります。

332 

333この例では、`docker compose` コマンドをサンドボックスから外します。すべてのプロジェクトに適用するには、`~/.claude/settings.json` に保存してください。

334 

335```json theme={null}

336{

337 "sandbox": {

338 "enabled": true,

339 "excludedCommands": ["docker compose *"]

340 }

341}

342```

343 

344Claude Code は、Bash と Monitor の各呼び出しに対してエントリを照合します。呼び出しとは Claude が送信するコマンドライン全体であり、複数のコマンドが連結されている場合があります。呼び出しがサンドボックスの外に出るかどうかは、以下のルールによって決まります。

345 

346* **パターンの末尾は ` *` にする**: エントリは `Bash(...)` の[権限ルール](/docs/ja/permissions#permission-rule-syntax)と同じ構文を使用し、ワイルドカードのないパターンは完全一致になります。`docker` は引数のない `docker` のみに一致します。`docker *` は引数の有無にかかわらず `docker` に一致します

347* **呼び出し内のすべてのコマンドが一致する必要がある**: `npm ci && docker compose build` は、別のエントリが `npm ci` をカバーしていない限り、サンドボックス化されたままです

348* **Claude Code は呼び出しのテキストを照合する**: 内部で `docker` を呼び出すスクリプトや `make` ターゲットは一致せず、`/usr/local/bin/docker` も一致しません

349* **サンドボックス化されたままになる呼び出しがある**: ファイルへのリダイレクト、`cd`、または `$(...)` のようなコマンド置換があると、呼び出し全体がサンドボックス化されたままになります。サンドボックス化されたままになるその他の呼び出しについては、[リファレンスのエントリ](/docs/ja/settings-reference#sandbox-excludedcommands)に記載されています

350* **エントリの保存場所が影響する場合がある**: サンドボックスが[管理者によって必須化](#repository-settings-under-an-admin-required-sandbox)されている間、Claude Code は `.claude/settings.json` と `.claude/settings.local.json` 内のエントリを無視します

351 

352除外されたコマンドは、通常の権限フローを経由します。

353 

354* [読み取り専用コマンド](/docs/ja/permissions#read-only-commands)と、許可ルールでカバーされているコマンドは、プロンプトなしで実行されます

355* auto モードでは、その他の除外されたコマンドを分類器がレビューします

356* `bypassPermissions` モードでは、除外されたコマンドは確認ルールに一致しない限りプロンプトなしで実行されます

246 357 

247サンドボックス化されたコマンドがホームディレクトリとマウントされたボリュームへの読み取りアクセスを拒否しながら、作業ディレクトリを読み取り可能に保つには、パスルールを記述する代わりに [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ja/settings-reference#permissions-blockreadsoutsideworkingdirectories) を設定します。358エントリが一致することを確認するには、Manual モードに切り替えて、`docker compose up -d` のような何かを変更する一致コマンドを実行するよう Claude に依頼します。権限プロンプトのタイトルは「Bash command (unsandboxed)」になります。

359 

360<Warning>

361 除外されたコマンドは、ユーザーの完全なアクセス権で実行されます。`docker *` のような広範なエントリは、そのツールができることすべてをカバーします。インタープリター、作業ディレクトリ内のスクリプト、またはそこにあるファイルに作用するツール(`docker compose` が compose ファイルに対して行うように)をカバーするパターンを書くと、Claude はそのファイルを書き込み、その後サンドボックスの外で実行できてしまいます。パターンを狭くするほど、Claude がサンドボックスの外で実行できるものは少なくなります。

362</Warning>

248 363 

249<h3 id="disable-filesystem-isolation">364<h3 id="disable-filesystem-isolation">

250 ファイルシステム分離を無効化365 ファイルシステム分離を無効にする

251</h3>366</h3>

252 367 

253`sandbox.filesystem.disabled` を `true` に設定して、ネットワーク分離を保持しながらファイルシステム分離をスキップします。以下の例は、ネットワークドメインの許可リストを保持しながらファイルシステム分離をオフにします。368`sandbox.filesystem.disabled` を `true` に設定すると、ネットワーク分離を維持したままファイルシステム分離をスキップできます。以下の例では、ネットワークドメインの許可リストを維持したまま、ファイルシステム分離をオフにします。

254 369 

255```json theme={null}370```json theme={null}

256{371{


266}381}

267```382```

268 383 

269サンドボックスには 2 つの独立したレイヤーがあります。[ファイルシステム分離](#filesystem-isolation)はサンドボックス化されたコマンドが読み取りおよび書き込みできるパスを制御し、[ネットワーク分離](#network-isolation)はそれらが到達できるドメインを制御します。ファイルシステムレイヤーがオフの場合、サンドボックス化されたコマンドはホストファイルシステムへの無制限の読み取りおよび書き込みアクセスを取得しますが、ネットワーク出力は許可されたドメインに限定されたままです。レイヤーをオフにするのは、コマンドが書き込む内容ではなく、コマンドが接続する場所を制御するためにサンドボックスを使用する場合です。384サンドボックスには独立した 2 つのレイヤーがあります。[ファイルシステム分離](#filesystem-isolation)はサンドボックス化されたコマンドが読み書きできるパスを制御し、[ネットワーク分離](#network-isolation)はそれらが到達できるドメインを制御します。ファイルシステムレイヤーをオフにすると、サンドボックス化されたコマンドはホストのファイルシステムに対して無制限の読み書きアクセスを得ますが、ネットワークの送信先は許可したドメインに限定されたままです。コマンドが何を書き込むかではなく、どこに接続するかを制御する目的でサンドボックスを使う場合に、このレイヤーをオフにしてください。

270 385 

271設定はデフォルトでオフであり、サンドボックスが実行されるプラットフォーム(macOS、Linux、WSL2)に適用されます。Claude Code v2.1.216 以降が必要です。386この設定はデフォルトでオフで、サンドボックスが動作するプラットフォーム(macOS、Linux、WSL2)に適用されます。Claude Code v2.1.216 以降が必要です。

272 387 

273<Warning>388<Warning>

274 ファイルシステム分離がオフで、コマンドが自動許可される場合、サンドボックス化されたコマンドは、後続のコマンドが実行または読み取るファイル(シェルスタートアップファイル、`$PATH` 上の実行可能ファイル、`~/.claude/settings.json` など)を書き込み、次の実行時に独自のアクセスを拡大するために使用できます。`filesystem.disabled` を `true` に設定するのは、独自のアクセスをエスカレートしないと信頼できるワークロードのみです。[`allowManagedDomainsOnly`](#keep-developers-from-widening-the-policy) でネットワークドメインをロックするとリスクを狭めますが、そのロックはサンドボックス内で実行されるコマンドにのみ適用されるため、リスクは完全には除去されません。389 ファイルシステム分離がオフでコマンドが自動許可されている場合、サンドボックス化されたコマンドは、シェルの起動ファイル、`$PATH` 上の実行ファイル、`~/.claude/settings.json` など、後続のコマンドが実行または読み取るファイルを書き込み、それを利用して次回の実行時に自身のアクセス権を広げることができます。`filesystem.disabled` を `true` に設定するのは、自身のアクセス権を昇格させないと信頼できるワークロードに限定してください。[`allowManagedDomainsOnly`](#keep-developers-from-widening-the-policy) でネットワークドメインをロックするとリスクは狭まりますが、このロックはサンドボックス内で実行されるコマンドにのみ適用されるため、リスクがなくなるわけではありません。

275</Warning>390</Warning>

276 391 

277<h4 id="which-settings-can-disable-it">392<h4 id="which-settings-can-disable-it">

278 どの設定がそれを無効化できるか393 無効にできる設定

279</h4>394</h4>

280 395 

281ファイルシステム分離をオフにするとサンドボックス化されたコマンドが実行できることが拡大するため、Claude Code は `filesystem.disabled` をこれらの設定ソースからのみ尊重します。396ファイルシステム分離をオフにすると、サンドボックス化されたコマンドができることが広がるため、Claude Code は以下の設定ソースからの `filesystem.disabled` のみを尊重します。

282 397 

283* ユーザー設定、管理設定、および `--settings` CLI フラグはそれを設定できます。`.claude/settings.json` と `.claude/settings.local.json` のプロジェクト設定はできないため、チェックアウトされたプロジェクトはファイルシステム分離をオフにすることはできません。398* ユーザー設定、管理設定、および `--settings` CLI フラグで設定できます。`.claude/settings.json` と `.claude/settings.local.json` のプロジェクト設定では設定できないため、チェックアウトしたプロジェクトがファイルシステム分離をオフにすることはできません。

284* 管理設定が `sandbox.filesystem` をまったく設定するか、`"mode": "deny"` を持つ `sandbox.credentials.files` エントリをリストする場合、管理設定のみがキーを設定できます。これにより、管理者がデプロイしたファイルシステム制限が有効に保たれます。そのようなデプロイを緩和するには、管理設定で `"disabled": true` を設定します。399* 管理設定が `sandbox.filesystem` を何らかの形で設定している場合、または `"mode": "deny"` の `sandbox.credentials.files` エントリを記載している場合は、管理設定のみがこのキーを設定できます。これにより、管理者がデプロイしたファイルシステムの制限が有効なまま維持されます。そのようなデプロイを緩和するには、管理設定で `"disabled": true` を設定します。

285* [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars) が設定されている場合、Claude Code は管理設定を含むすべてのソースから `filesystem.disabled` を無視し、ファイルシステム分離をオンに保ちます。400* [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars) が設定されている場合、Claude Code は管理設定を含むすべてのソースからの `filesystem.disabled` を無視し、ファイルシステム分離をオンのまま維持します。

286 401 

287管理された `credentials.files` エントリが `filesystem.disabled` をピンするかどうか(キーを管理設定にロックして開発者がファイルシステム分離をオフにできないようにする)は、エントリの `mode` とサンドボックスの開始時にエントリに何が起こるかによって異なります。402管理設定の `credentials.files` エントリが `filesystem.disabled` を固定する(開発者がファイルシステム分離をオフにできないよう、このキーを管理設定にロックする)かどうかは、エントリの `mode` と、サンドボックスの起動時にそのエントリがどう処理されるかによって決まります。

288 403 

289| 管理エントリ | `filesystem.disabled` をピンする | 分離がオフの場合にファイルを保護するもの |404| 管理設定のエントリ | `filesystem.disabled` を固定するか | 分離がオフのときにファイルを保護するもの |

290| - | - | - |405| - | - | - |

291| `"mode": "deny"` | はい | なし。読み取りブロックはファイルシステムレイヤーの一部です |406| `"mode": "deny"` | はい | なし: 読み取りブロックはファイルシステムレイヤーの一部です |

292| `"mode": "mask"`、マスクとして適用 | いいえ | マスキング自体。Linux と WSL2 の[センチネルコピーとプロキシ](#mask-credential-files)、macOS のサンドボックス独自の読み取りルール |407| `"mode": "mask"`、マスクとして適用 | いいえ | マスキング自体: Linux と WSL2 では[センチネルコピーとプロキシ](#mask-credential-files)、macOS ではサンドボックス自身の読み取りルール |

293| `"mode": "mask"`、[セットアップで `deny` にフォールバック](#mask-credential-files) | いいえ | なし、`deny` と同じです。マスクできないパス(ディレクトリなど)を明示的な `deny` エントリとしてリストします。これはキーをピンします |408| `"mode": "mask"`、セットアップ時に [`deny` にフォールバック](#mask-credential-files) | いいえ | なし(`deny` と同じ)。ディレクトリのようにマスクできないパスは、明示的な `deny` エントリとして記載してください。これによりキーが固定されます |

294| `"mode": "mask"`、[検証によって `deny` に低下](/docs/ja/managed-settings#invalid-entries-in-managed-settings) | はい、明示的な `deny` のように | なし、`deny` と同じです |409| `"mode": "mask"`、[検証によって `deny` に格下げ](/docs/ja/managed-settings#invalid-entries-in-managed-settings) | はい(明示的な `deny` と同様) | なし(`deny` と同じ) |

295 410 

296フォールバックはサンドボックスの開始時に発生し、Claude Code が既に設定を読み込んだ後にピンチェックが実行されるため、フォールバックされたエントリはピンしません。検証は設定の読み込み中に無効なエントリを `deny` に書き直すため、低下したエントリは `deny` として記述したものと同じようにピンします。411フォールバックはサンドボックスの起動時、つまり Claude Code が固定のチェックに使う設定をすでに読み込んだ後に発生するため、フォールバックしたエントリが固定することはありません。検証は設定の読み込み中に無効なエントリを `deny` に書き換えるため、格下げされたエントリは `deny` として書いたエントリと同様に固定します。

297 412 

298<h4 id="what-changes-when-filesystem-isolation-is-off">413<h4 id="what-changes-when-filesystem-isolation-is-off">

299 ファイルシステム分離がオフの場合に何が変わるか414 ファイルシステム分離がオフのときに変わること

300</h4>415</h4>

301 416 

302`filesystem.disabled` を設定すると、ファイルシステムレイヤー自体が強制する保護が解除されます。他のレイヤーが強制する保護は引き続き適用されます。417`filesystem.disabled` を設定すると、ファイルシステムレイヤー自体が適用している保護が解除されます。他のレイヤーが適用している保護は引き続き適用されます。

303 418 

304| 保護 | ファイルシステム分離がオフの場合 |419| 保護 | ファイルシステム分離がオフの場合 |

305| - | - |420| - | - |

306| `filesystem.denyRead` と [`credentials.files`](#protect-credentials) `deny` 読み取りブロック | 強制されません。ファイルシステムレイヤーは両方を適用します |421| `filesystem.denyRead` と [`credentials.files`](#protect-credentials) の `deny` による読み取りブロック | 適用されません。どちらもファイルシステムレイヤーが適用しています |

307| `credentials.envVars` `deny` と `mask` エントリ | 強制されます。環境変数スクラビングはファイルシステムレイヤーから独立しています |422| `credentials.envVars` の `deny` と `mask` エントリ | 適用されます。環境変数の除去はファイルシステムレイヤーから独立しています |

308| [`credentials.files` `mask` エントリ](#mask-credential-files)がマスクとして適用 | 強制されます。マスキングはファイルシステムレイヤーから独立しています。[`deny` にフォールバック](#mask-credential-files)したエントリは強制されません。`deny` エントリと同じです |423| マスクとして適用された [`credentials.files` の `mask` エントリ](#mask-credential-files) | 適用されます。マスキングはファイルシステムレイヤーから独立しています。[`deny` にフォールバックした](#mask-credential-files)エントリは、他の `deny` エントリと同様に適用されません |

309 424 

310他に 2 つのことが変わります。425その他に 2 つの点が変わります。

311 426 

312* サンドボックス化されたコマンドは、ユーザーごとの一時ディレクトリではなく、シェルの `$TMPDIR` を継承します。すべての一時ディレクトリは書き込み可能で、Claude Code はコマンドをユーザーごとの一時ディレクトリにリダイレクトしなくなるためです。427* サンドボックス化されたコマンドは、ユーザーごとの一時ディレクトリではなく、シェルの `$TMPDIR` を継承します。すべての一時ディレクトリが書き込み可能になり、Claude Code がコマンドをユーザーごとの一時ディレクトリにリダイレクトしなくなるためです。

313 428 

314 Linux では、変数は親シェルでしばしば設定されていません。Bash ツールのガイダンスは、`$TMPDIR` に依存するのではなく、`mktemp -d` でスクラッチディレクトリを作成するよう Claude に指示します。429 Linux では、親シェルでこの変数が設定されていないことがよくあります。Bash ツールのガイダンスは、`$TMPDIR` に頼るのではなく `mktemp -d` で作業用ディレクトリを作成するよう Claude に指示します。

315* [`autoAllowBashIfSandboxed`](/docs/ja/settings-reference#sandbox-autoallowbashifsandboxed) は引き続きデフォルトで `true` であるため、サンドボックス化されたコマンドはプロンプトなしで実行され続けます。プロンプトを表示するには `false` に設定します。430* [`autoAllowBashIfSandboxed`](/docs/ja/settings-reference#sandbox-autoallowbashifsandboxed) のデフォルトは引き続き `true` であるため、サンドボックス化されたコマンドはプロンプトなしで実行され続けます。サンドボックス化されたコマンドでプロンプトを表示するには、`false` に設定します。

316 431 

317<h3 id="protect-credentials">432<h3 id="protect-credentials">

318 認証情報を保護433 認証情報を保護する

319</h3>434</h3>

320 435 

321`sandbox.credentials` 設定は、サンドボックス化されたコマンドから保護するための認証情報ファイルと環境変数を宣言します。各エントリはファイルパスまたは環境変数と `mode` に名前を付けます。専用の `credentials` ブロックは、認証情報ルールを一緒にグループ化し、一般的なファイルシステムルールから分離します。436`sandbox.credentials` 設定では、サンドボックス化されたコマンドから保護する認証情報ファイルと環境変数を宣言します。各エントリには、ファイルパスまたは環境変数と、`mode` を指定します。専用の `credentials` ブロックを使うことで、認証情報のルールをまとめて、一般的なファイルシステムのルールとは分けて管理できます。

322 437 

323`"mode": "deny"` を持つエントリの場合、ファイルパスはサンドボックス内での読み取りに対して拒否されます。これは `filesystem.denyRead` が適用する制限と同じであり、環境変数は各サンドボックス化されたコマンドの実行前に設定解除されます。ファイル保護はファイルシステムレイヤーの一部であるため、[ファイルシステム分離を無効化](#disable-filesystem-isolation)した場合は適用されません。環境変数保護は引き続き適用されます。438`"mode": "deny"` のエントリでは、ファイルパスはサンドボックス内での読み取りが拒否され(`filesystem.denyRead` が適用するのと同じ制限)、環境変数はサンドボックス化された各コマンドの実行前に未設定にされます。ファイルの保護はファイルシステムレイヤーの一部であるため、[ファイルシステム分離を無効にした](#disable-filesystem-isolation)場合は適用されませんが、環境変数の保護は引き続き適用されます。

324 439 

325以下の例は AWS 認証情報ファイルと SSH ディレクトリの読み取りをブロックし、`GITHUB_TOKEN` と `NPM_TOKEN` をサンドボックス化されたコマンドの環境から削除します。440以下の例では、AWS の認証情報ファイルと SSH ディレクトリの読み取りをブロックし、サンドボックス化されたコマンドの環境から `GITHUB_TOKEN` と `NPM_TOKEN` を削除します。

326 441 

327```json theme={null}442```json theme={null}

328{443{


342}457}

343```458```

344 459 

345環境変数エントリとファイルエントリは、[認証情報をマスク](#mask-credentials)の下で説明されている `"mode": "mask"` も受け入れます。460環境変数のエントリとファイルのエントリは `"mode": "mask"` も受け付けます。これについては[認証情報をマスクする](#mask-credentials)で説明します。

346 461 

347ファイルパスは `sandbox.filesystem.*` 設定と同じ[プレフィックスルール](/docs/ja/settings-reference#sandbox-path-prefixes)に従います。462ファイルパスは、`sandbox.filesystem.*` 設定と同じ[プレフィックスのルール](/docs/ja/settings-reference#sandbox-path-prefixes)に従います。

348 463 

349Claude Code はセッションが読み込むすべての[設定スコープ](/docs/ja/settings#settings-precedence)から `deny` エントリをマージします。`deny` エントリはアクセスを狭めるだけなので、任意のスコープが 1 つを追加できますが、別のスコープが追加したものを削除できるスコープはありません。464Claude Code は、セッションが読み込むすべての[設定スコープ](/docs/ja/settings#settings-precedence)の `deny` エントリをマージします。`deny` エントリはアクセスを狭めることしかしないため、どのスコープでも追加できますが、別のスコープが追加したエントリをどのスコープも削除することはできません。

350 465 

351[設定ソースを除外](#configure-sandboxing)する場合。466[設定ソースを除外した](#configure-sandboxing)場合:

352 467 

353* **プロジェクトまたはローカル設定**: Claude Code はそれらの `credentials` エントリを適用しません。Claude Code v2.1.246 以降が必要です。468* **プロジェクト設定またはローカル設定**: Claude Code はそれらの `credentials` エントリをいずれも適用しません。Claude Code v2.1.246 以降が必要です。

354* **ユーザー設定**: Claude Code は `~/.claude/settings.json` の `deny` エントリを引き続き適用し、その[ファイル `mask` エントリ](#mask-credential-files)を制限として保持しますが、その[環境変数 `mask` エントリ](#mask-environment-variables)を削除します。469* **ユーザー設定**: Claude Code は `~/.claude/settings.json` 内の `deny` エントリを引き続き適用し、[ファイルの `mask` エントリ](#mask-credential-files)も制限として維持しますが、[環境変数の `mask` エントリ](#mask-environment-variables)は破棄します。

355 470 

356組み込みの認証情報拒否リストはないため、リストしたファイルと変数のみが制限されます。471組み込みの認証情報拒否リストはないため、制限されるのは記載したファイルと変数のみです。

357 472 

358`sandbox.credentials` はサンドボックス化された Bash コマンドのみに影響します。サンドボックスに関係なくすべてのサブプロセスから認証情報を削除するには、[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars) を設定します。473`sandbox.credentials` は、サンドボックス化された Bash コマンドにのみ影響します。サンドボックス化にかかわらずすべてのサブプロセスから認証情報を除去するには、[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars) を設定します。

359 474 

360<h3 id="mask-credentials">475<h3 id="mask-credentials">

361 認証情報をマスク476 認証情報をマスクする

362</h3>477</h3>

363 478 

364マスキングは、[認証情報を保護](#protect-credentials)の下の `deny` エントリよりもさらに進みます。認証情報をブロックする代わりに、Claude Code はサンドボックス化されたコマンドにプレースホルダーであるセンチネルを表示し、[サンドボックスプロキシ](#network-isolation)は許可したホストへのアウトバウンドリクエストで実際の値を交換します。ファイルの場合、置換は Linux と WSL2 の動作です。[macOS はファイルをブロック](#mask-credential-files)します。479マスキングは、[認証情報を保護する](#protect-credentials)で説明した `deny` エントリよりもさらに踏み込んだ方法です。認証情報をブロックする代わりに、Claude Code はサンドボックス化されたコマンドにプレースホルダー(センチネル)を見せ、[サンドボックスプロキシ](#network-isolation)が許可したホストへの送信リクエストで実際の値に置き換えます。ファイルの場合、この置換は Linux と WSL2 での動作です。[macOS では代わりにファイルがブロックされます](#mask-credential-files)。

365 480 

366<h4 id="mask-environment-variables">481<h4 id="mask-environment-variables">

367 環境変数をマスク482 環境変数をマスクする

368</h4>483</h4>

369 484 

370`"mode": "mask"` は認証情報を保護しながら、それで認証するツールが機能し続けるようにします。`deny` は変数を完全に削除し、これは `gh` や `npm` などの必要なツールも破壊します。Claude Code v2.1.199 以降が必要です。485`"mode": "mask"` は、認証情報を保護しつつ、それを使って認証するツールを動作させ続けます。`deny` は変数を完全に削除するため、`gh` や `npm` のようにその変数を必要とするツールも動作しなくなります。Claude Code v2.1.199 以降が必要です。

371 486 

372`mask` を使用すると、サンドボックス化されたコマンドは実際の値の代わりにセッションごとのセンチネル値を見ます。各 `mask` エントリは `injectHosts` をリストでき、実際の値が到達できるホストです。リクエストがそれらの 1 つに対してサンドボックスを離れるとき、[サンドボックスプロキシ](#network-isolation)はセンチネルを実際の値に置き換えます。コマンドとそれがログに記録するものは実際の認証情報を保持しませんが、そのリクエストは引き続き認証されます。487`mask` を使用すると、サンドボックス化されたコマンドには実際の値ではなく、セッションごとのセンチネル値が見えます。各 `mask` エントリには `injectHosts`(実際の値の送信先として許可されるホスト)を記載できます。リクエストがそれらのホストのいずれかに向けてサンドボックスを出るとき、[サンドボックスプロキシ](#network-isolation)がセンチネルを実際の値に置き換えます。コマンドやそれがログに記録するものが実際の認証情報を保持することはありませんが、リクエストは引き続き認証されます。

373 488 

374プロキシはリクエストコンテンツ内の認証情報を置き換えるため、それらを見る必要があります。[`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) を設定して、プロキシが TLS 自体を終了するようにします。489プロキシはリクエストの内容の中で認証情報を置換するため、その内容を参照できる必要があります。プロキシ自体が TLS を終端するように、[`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) を設定してください。

375 490 

376それなしでは、マスキングは何も公開せずに失敗します。コマンドはセンチネルのみを見ますが、センチネルはサーバーに変更されずに到達し、認証は失敗します。Claude Code はこの設定ミスをスタートアップで報告します。491これを設定しない場合、マスキングは何も漏らさずに失敗します。コマンドにはセンチネルしか見えませんが、センチネルはそのままサーバーに届き、認証が失敗します。Claude Code は起動時にこの設定ミスを報告します。

377 492 

378置換はヘッダーとリクエストボディをカバーします。認証情報自体ではなく、認証情報から派生した署名で認証するリクエストは、プロキシで再署名する必要があります。[AWS リクエストに再署名](#re-sign-aws-requests)は AWS でそれがどのように機能するかをカバーします。493置換はヘッダーとリクエストボディを対象とします。認証情報そのものではなく、認証情報から派生した署名で認証するリクエストは、プロキシでの再署名が必要です。AWS での仕組みについては、[AWS リクエストを再署名する](#re-sign-aws-requests)で説明します。

379 494 

380プロキシは[ドメイン許可リスト](#network-isolation)が許可する接続にのみ注入するため、各 `injectHosts` 宛先は `network.allowedDomains` を通じても到達可能である必要があります。495プロキシは[ドメイン許可リスト](#network-isolation)が許可する接続でのみ注入を行うため、各 `injectHosts` の送信先は `network.allowedDomains` を通じても到達可能である必要があります。

381 496 

382以下の例は 2 つのトークンをマスクします。`GH_TOKEN` は `api.github.com` へのリクエストにのみ置き換えられ、`NPM_TOKEN` は `injectHosts` を持たず、`network.allowedDomains` のすべてのホストへのリクエストで置き換えられます。497以下の例では、2 つのトークンをマスクします。`GH_TOKEN` は `api.github.com` へのリクエストでのみ置換され、`NPM_TOKEN` は `injectHosts` がないため、`network.allowedDomains` 内のすべてのホストへのリクエストで置換されます。

383 498 

384```json theme={null}499```json theme={null}

385{500{


399}514}

400```515```

401 516 

402<span id="ipv6-destinations-in-injecthosts" />IPv6 宛先は 2 つのリストで異なるスペルを使用してください。各リストは独自のマッチャーを持つためです。517<span id="ipv6-destinations-in-injecthosts" />それぞれのリストが独自の matcher を持つため、IPv6 の送信先は 2 つのリストで異なる書き方をしてください。

403 518 

404* **`network.allowedDomains`**: [ドメインリストが使用する括弧形式](#ipv6-addresses-in-domain-lists)(`"[::1]"` など)。プロキシはこのリストをチェックして接続を許可します。519* **`network.allowedDomains`**: `"[::1]"` のような、[ドメインリストで使用する角括弧付きの形式](#ipv6-addresses-in-domain-lists)。プロキシはこのリストを確認して接続を許可します。

405* **`injectHosts`**: 正規の圧縮形式での裸のアドレス(`"::1"` または `"2001:db8::1"` など)。プロキシは各エントリをコネクションの裸の宛先アドレスと照合し、ポートを無視するため、括弧で囲まれた、ゾーン ID、または異なる圧縮スペルは一致せず、プロキシはそこで認証情報を注入しません。520* **`injectHosts`**: `"::1"` や `"2001:db8::1"` のような、正規の圧縮形式による角括弧なしのアドレス。プロキシはポートを無視して各エントリを接続の角括弧なしの送信先アドレスと照合するため、角括弧付き、ゾーン ID 付き、または異なる圧縮方法で書かれたものは一致せず、プロキシがそこに認証情報を注入することはありません。

406 521 

407`claude doctor` は、`injectHosts` エントリが宛先と一致できないことを警告 `Sandbox credential injectHosts entries can never match their destination` でフラグします。このチェックには Claude Code v2.1.229 以降が必要です。522`claude doctor` は、決して一致しない `injectHosts` エントリを `Sandbox credential injectHosts entries can never match their destination` という警告で指摘します。このチェックには Claude Code v2.1.229 以降が必要です。

408 523 

409`deny` とは異なり、マスキングはプロキシに実際の認証情報をリストされたホストに送信することを認可するため、Claude Code はユーザーまたは管理者が制御する設定からのみそれを尊重します。ユーザー設定、管理設定、および `--settings` CLI フラグです。Claude Code はリポジトリの `.claude/settings.json` または `.claude/settings.local.json` の `mask` エントリを無視します。これらのファイルでは、`network.tlsTerminate` と [`credentials.allowPlaintextInject`](/docs/ja/settings-reference#sandbox-credentials-allowplaintextinject)(プロキシが暗号化されていないリクエストに認証情報を注入できるようにする設定)も無視します。[ユーザー設定を除外](#configure-sandboxing)する場合、Claude Code は `~/.claude/settings.json` の環境変数 `mask` エントリも削除します。524`deny` とは異なり、マスキングはプロキシが実際の認証情報を記載されたホストに送信することを認可するため、Claude Code はユーザーまたは管理者が管理する設定(ユーザー設定、管理設定、および `--settings` CLI フラグ)からのみこれを尊重します。Claude Code は、リポジトリの `.claude/settings.json` や `.claude/settings.local.json` 内の `mask` エントリを無視します。これらのファイルでは、`network.tlsTerminate` と、プロキシが暗号化されていないリクエストに認証情報を注入できるようにする設定である [`credentials.allowPlaintextInject`](/docs/ja/settings-reference#sandbox-credentials-allowplaintextinject) も無視します。[ユーザー設定を除外した](#configure-sandboxing)場合、Claude Code は `~/.claude/settings.json` 内の環境変数の `mask` エントリも破棄します。

410 525 

411管理者が `mask` エントリ、`network.tlsTerminate`、または `credentials.allowPlaintextInject` をサーバー管理設定を通じて配信する場合、それらは[承認が必要な設定](/docs/ja/server-managed-settings#security-approval-dialogs)としてカウントされます。526管理者がサーバー管理設定を通じて `mask` エントリ、`network.tlsTerminate`、または `credentials.allowPlaintextInject` を配布する場合、それらは[承認が必要な設定](/docs/ja/server-managed-settings#security-approval-dialogs)として扱われます。

412 527 

413同じ変数が任意のスコープで `deny` でリストされている場合、`deny` が優先されます。528同じ変数がいずれかのスコープで `deny` として記載されている場合は、`deny` が優先されます。

414 529 

415マスキングはデフォルトで変数の全体値を置き換えます。これは裸のトークンに適しています。オプションのエントリフィールド(Claude Code v2.1.224 以降が必要)は、構造を持つ値を処理します。530マスキングはデフォルトで変数の値全体を置き換えます。これは単独のトークンに適しています。構造を持つ値は、オプションのエントリフィールド(Claude Code v2.1.224 以降が必要)で扱います。

416 531 

417* `extract`: Claude Code が値全体に適用する正規表現。各マッチの 1 グループでキャプチャされたテキストのみを置き換えるため、値を解析するツール(`DATABASE_URL` 接続文字列など)はサンドボックス内で引き続き機能します。パターンは少なくとも 1 つのキャプチャグループを含む必要があります。532* `extract`: Claude Code が値全体に適用する正規表現で、各一致のグループ 1 でキャプチャされたテキストのみを置き換えます。これにより、`DATABASE_URL` 接続文字列のように値を解析するツールがサンドボックス内でも動作します。パターンには少なくとも 1 つのキャプチャグループが含まれている必要があります。

418* `onExtractNoMatch` はパターンが何もマッチしない場合に何が起こるかを制御します。533* `onExtractNoMatch` は、パターンが何にも一致しない場合の動作を制御します。

419 * `warn`(デフォルト)は警告を発し、変数を未マスク状態で渡します534 * `warn`(デフォルト)は警告を出し、変数をマスクせずにそのまま渡します

420 * `deny` はサンドボックス内で変数を設定解除します535 * `deny` はサンドボックス内で変数を未設定にします

421 * `error` は設定を修正するまでサンドボックスセットアップを停止します536 * `error` は設定を修正するまでサンドボックスのセットアップを停止します

422* `decode: "jwt"`: JSON Web Token(JWT)を保持する変数の場合。Claude Code は値が JWT であることを検証し、それを構造的に有効な偽のトークンに置き換えるため、サンドボックス内のトークンをデコードするコードは機能し続けます。`maskClaims` を追加して、トークン全体を置き換える代わりに個別にマスクするトップレベルペイロードクレームをリストします。他のクレームは読み取り可能なままです。値が JWT として検証されない場合、またはリストされたクレームが一致しない場合、Claude Code は警告を伴って変数を未マスク状態で渡します。`decode` は `extract` と組み合わせることはできません。537* `decode: "jwt"`: JSON Web Token(JWT)を保持する変数用です。Claude Code は値が JWT であることを検証し、構造的に有効な偽のトークンに置き換えるため、サンドボックス内でトークンをデコードするコードは引き続き動作します。`maskClaims` を追加すると、トークン全体を置き換える代わりに、個別にマスクするトップレベルのペイロードクレームを列挙できます。その他のクレームは読み取り可能なままです。値が JWT として検証されない場合、または記載したクレームがどれも一致しない場合、Claude Code は警告を出して変数をマスクせずにそのまま渡します。`decode` は `extract` と組み合わせることはできません。

423 538 

424設定リファレンスの [`credentials.envVars[]` 行](/docs/ja/settings-reference#sandbox-settings)で完全なフィールドリストを参照してください。539フィールドの完全な一覧については、[設定リファレンスの `credentials.envVars[]` の行](/docs/ja/settings-reference#sandbox-settings)を参照してください。

425 540 

426<h4 id="re-sign-aws-requests">541<h4 id="re-sign-aws-requests">

427 AWS リクエストに再署名542 AWS リクエストを再署名する

428</h4>543</h4>

429 544 

430AWS リクエストはリクエストコンテンツ上に SigV4 署名を持つため、`AWS_ACCESS_KEY_ID` と `AWS_SECRET_ACCESS_KEY` を一緒にマスクします。プロキシはアクセスキーのセンチネルで SigV4 リクエストを検出し、実際の値を置き換えた後に再署名します。シークレットのみをマスクすると、プレースホルダーで署名されたリクエストが残り、プロキシが検出できないため、AWS で失敗します。Claude Code はこのケースをスタートアップで警告しますが、アクセスキー ID のみがマスクされている場合は警告しません。プロキシが再署名できない検出されたリクエスト(`x-amz-date` ヘッダーが欠落しているなど)は、壊れた署名でサーバーに到達する代わりに、プロキシエラーで失敗します。545AWS リクエストはリクエストの内容に対する SigV4 署名を持つため、`AWS_ACCESS_KEY_ID` と `AWS_SECRET_ACCESS_KEY` は一緒にマスクしてください。プロキシはアクセスキーのセンチネルによって SigV4 リクエストを検出し、実際の値に置換した後に再署名します。シークレットのみをマスクすると、リクエストはプロキシが検出できないプレースホルダーで署名されたままになり、AWS で失敗します。Claude Code は起動時にこのケースについて警告しますが、アクセスキー ID のみがマスクされている場合は警告しません。検出されたもののプロキシが再署名できないリクエスト(`x-amz-date` ヘッダーが欠けているものなど)は、壊れた署名のままサーバーに届くのではなく、プロキシエラーで失敗します。

431 546 

432Claude Code は、全体値をマスクする場合、従来の `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、および `AWS_SESSION_TOKEN` 変数を 1 つの認証情報に自動的にリンクします。AWS 認証情報が他の名前の変数に存在する場合、[`credentials.awsPairs`](/docs/ja/settings-reference#sandbox-credentials-awspairs) で自分でグループ化します。これには Claude Code v2.1.224 以降が必要です。この例は、既に `MY_KEY_ID`、`MY_SECRET_KEY`、および `MY_SESSION_TOKEN` を全体値としてマスクする設定にペアリングを追加します。上記の[マスキング設定](#mask-environment-variables)のように。547Claude Code は、慣例的な変数である `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、`AWS_SESSION_TOKEN` の値全体をマスクすると、それらを自動的に 1 つの認証情報として関連付けます。AWS の認証情報が別の名前の変数にある場合は、[`credentials.awsPairs`](/docs/ja/settings-reference#sandbox-credentials-awspairs)(Claude Code v2.1.224 以降が必要)を使って自分でグループ化してください。この例では、[前述のマスキング設定](#mask-environment-variables)のように `MY_KEY_ID`、`MY_SECRET_KEY`、`MY_SESSION_TOKEN` の値全体をすでにマスクしている設定に、ペアリングを追加します。

433 548 

434```json theme={null}549```json theme={null}

435{550{


449 564 

450各エントリは以下のルールに従います。565各エントリは以下のルールに従います。

451 566 

452* `accessKeyIdVar` と `secretAccessKeyVar` はアクセスキー ID とシークレットキーを保持するマスク済み `envVars` エントリに名前を付けます。オプションの `sessionTokenVar` は一時認証情報のセッショントークンを保持するエントリに名前を付けます。設定されている場合、プロキシは再署名されたリクエストで実際のトークンを `x-amz-security-token` として送信します。567* `accessKeyIdVar` と `secretAccessKeyVar` には、アクセスキー ID とシークレットキーを保持するマスク済みの `envVars` エントリを指定します。オプションの `sessionTokenVar` には、一時的な認証情報のセッショントークンを保持するエントリを指定します。これを設定すると、プロキシは再署名したリクエストで実際のトークンを `x-amz-security-token` として送信します。

453* 名前付きの各変数は、`extract` または `decode` なしで全体値をマスクする `mask` エントリである必要があります。568* 指定する各変数は、`extract` や `decode` を使わずに値全体をマスクする `mask` エントリである必要があります。

454* プロキシはアクセスキー ID エントリの `injectHosts` にリストされたホストでリクエストに再署名します。569* プロキシは、アクセスキー ID エントリの `injectHosts` に記載されたホストへのリクエストを再署名します。

455* ペアで従来の変数のいずれかに名前を付けると、自動ペアリングが置き換えられます。570* 慣例的な変数のいずれかをペアで指定すると、自動ペアリングは置き換えられます。

456 571 

457`mask` エントリと同様に、`awsPairs` はユーザー設定、管理設定、および `--settings` CLI フラグからのみ尊重されます。572`mask` エントリと同様に、`awsPairs` はユーザー設定、管理設定、および `--settings` CLI フラグからのみ尊重されます。

458 573 

4593 つの AWS リクエスト形式は、プロキシが再計算できない署名を持ちます。そのようなリクエストがマスク済みペアのプレースホルダーで署名されている場合、プロキシは壊れた署名を転送するのではなく失敗します。未マスク認証情報で署名されたリクエストは影響を受けません。[`credentials.sigv4`](/docs/ja/settings-reference#sandbox-credentials-sigv4) 設定(Claude Code v2.1.224 以降が必要)は、フォームごとにこれを緩和します。フォームのキーを `passthrough` に設定すると、リクエストはプレースホルダー派生署名で転送されるため、呼び出しツールは AWS 独自の拒否応答を受け取る代わりにプロキシエラーを受け取ります。`awsPairs` と同様に、`sigv4` はユーザー設定、管理設定、および `--settings` CLI フラグからのみ尊重されます。5743 つの AWS リクエスト形式は、プロキシが再計算できない署名を持ちます。そのようなリクエストがマスクされたペアのプレースホルダーで署名されている場合、プロキシは壊れた署名を転送するのではなく、リクエストを失敗させます。マスクされていない認証情報で署名されたリクエストが影響を受けることはありません。[`credentials.sigv4`](/docs/ja/settings-reference#sandbox-credentials-sigv4) 設定(Claude Code v2.1.224 以降が必要)を使うと、この動作を形式ごとに緩和できます。形式のキーを `passthrough` に設定すると、プレースホルダーから派生した署名のままリクエストが転送されるため、呼び出し元のツールはプロキシエラーではなく AWS 自身の拒否レスポンスを受け取ります。`awsPairs` と同様に、`sigv4` はユーザー設定、管理設定、および `--settings` CLI フラグからのみ尊重されます。

460 575 

461| リクエスト形式 | `sigv4` キー | プロキシが再署名できない理由 |576| リクエスト形式 | `sigv4` キー | プロキシが再署名できない理由 |

462| :- | :- | :- |577| :- | :- | :- |

463| aws-chunked ストリーミングアップロード | `streaming` | チャックごとの署名はシード署名から連鎖するため、再署名にはボディの書き直しが必要です |578| aws-chunked ストリーミングアップロード | `streaming` | チャンクごとの署名がシード署名から連鎖するため、再署名にはボディの書き換えが必要になります |

464| 署名済み URL | `presigned` | 署名は URL 自体に存在し、`Authorization` ヘッダーはありません |579| 署名付き URL | `presigned` | 署名は URL 自体に含まれており、`Authorization` ヘッダーがありません |

465| SigV4A 非対称署名 | `sigv4a` | 再計算する共有キー HMAC がありません |580| SigV4A 非対称署名 | `sigv4a` | 再計算する共有鍵の HMAC がありません |

466 581 

467<h4 id="mask-credential-files">582<h4 id="mask-credential-files">

468 認証情報ファイルをマスク583 認証情報ファイルをマスクする

469</h4>584</h4>

470 585 

471ファイルエントリも `"mode": "mask"` を受け入れます。これには Claude Code v2.1.221 以降が必要です。サンドボックス化されたコマンドが見るものはプラットフォームに依存します。586ファイルのエントリも `"mode": "mask"` を受け付けます。これには Claude Code v2.1.221 以降が必要です。サンドボックス化されたコマンドに何が見えるかは、プラットフォームによって異なります。

472 587 

473* **Linux と WSL2**: サンドボックス化されたコマンドはファイルのセンチネルコピーを読み取ります。シークレットがプレースホルダー値に置き換えられたスタンドイン。[サンドボックスプロキシ](#network-isolation)は出力時に実際の値を置き換えます。588* **Linux と WSL2**: サンドボックス化されたコマンドは、ファイルのセンチネルコピー(シークレットがプレースホルダー値に置き換えられた代替ファイル)を読み取り、[サンドボックスプロキシ](#network-isolation)が送信時に実際の値に置換します。

474* **macOS**: サンドボックス化されたコマンドはリストされたファイルを読み取ることができません。Claude Code はセンチネルコピーを構築せず、出力時に何も置き換えないため、ファイルで認証するツールはサンドボックス内で機能しません。`deny` と同じ効果です。`deny` エントリとは異なり、[ファイルシステム分離を無効化](#disable-filesystem-isolation)した場合でも読み取りブロックは保持されます。589* **macOS**: サンドボックス化されたコマンドは、記載されたファイルをまったく読み取れません。Claude Code はセンチネルコピーを作成せず、送信時の置換も行わないため、そのファイルを使って認証するツールはサンドボックス内で動作しません。これは `deny` と同じ効果です。`deny` エントリとは異なり、[ファイルシステム分離を無効にした](#disable-filesystem-isolation)場合でも読み取りブロックは維持されます。

475 590 

476すべてのプラットフォームで、Claude Code は [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 要件と `injectHosts` を[マスク済み環境変数](#mask-environment-variables)と同じ方法で適用し、リポジトリ設定を同じ方法で無視します。[ユーザー設定を除外](#configure-sandboxing)する場合、Claude Code は `~/.claude/settings.json` のファイル `mask` エントリを制限として保持しますが、エントリはプロキシが実際の値を置き換えることをもはや認可しません。591どのプラットフォームでも、Claude Code は [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) の要件と `injectHosts` を[マスクされた環境変数](#mask-environment-variables)と同じ方法で適用し、リポジトリ設定も同じ方法で無視します。[ユーザー設定を除外した](#configure-sandboxing)場合、Claude Code は `~/.claude/settings.json` 内のファイルの `mask` エントリを制限として維持しますが、それらのエントリはプロキシが実際の値に置換することを認可しなくなります。

477 592 

478以下の例は `~/.config/gh/hosts.yml` に保存された GitHub トークンをマスクします。以下で説明される `extract` パターンは、Claude Code にファイルのどの部分がシークレットであるかを伝えます。Linux と WSL2 では、ファイルを読み取るサンドボックス化されたコマンドはトークンの代わりにセンチネルを取得し、プロキシは `api.github.com` へのリクエストで実際のトークンを置き換えます。593以下の例では、`~/.config/gh/hosts.yml` に保存された GitHub トークンをマスクします。後述する `extract` パターンは、ファイルのどの部分がシークレットであるかを Claude Code に伝えます。Linux と WSL2 では、このファイルを読み取るサンドボックス化されたコマンドはトークンの代わりにセンチネルを受け取り、プロキシは `api.github.com` へのリクエストで実際のトークンに置換します。

479 594 

480```json theme={null}595```json theme={null}

481{596{


499}614}

500```615```

501 616 

502マスクがアクティブであることを確認するには、Claude にサンドボックス化されたコマンドで `cat ~/.config/gh/hosts.yml` を実行するよう依頼します。Linux と WSL2 では出力はトークンの代わりにセンチネル値を表示し、macOS では読み取りが失敗します。617マスクが有効であることを確認するには、サンドボックス化されたコマンドで `cat ~/.config/gh/hosts.yml` を実行するよう Claude に依頼します。Linux と WSL2 では出力にトークンの代わりにセンチネル値が表示され、macOS では代わりに読み取りが失敗します。

503 618 

504Linux と WSL2 では、`extract` パターンは `hosts.yml` の残りを読み取り可能に保つものです。Claude Code は正規表現を全体ファイルに適用し、各マッチの 1 グループでキャプチャされたテキストのみを置き換えるため、`gh` は引き続き設定を解析し、トークンのみがプレースホルダーです。`extract` を `.netrc`、JSON、YAML などのツールが解析する構造化ファイルに使用します。パターンは少なくとも 1 つのキャプチャグループを含む必要があります。`extract` なしでは、Claude Code はファイル全体のコンテンツを 1 つのセンチネル値に置き換えます。これは、単一の裸のシークレットを保持し、他に何もないファイルに適しています。619Linux と WSL2 では、`extract` パターンによって `hosts.yml` の残りの部分が読み取り可能に保たれます。Claude Code は正規表現をファイル全体に適用し、各一致のグループ 1 でキャプチャされたテキストのみを置き換えるため、`gh` は引き続き設定を解析でき、トークンだけがプレースホルダーになります。`.netrc`、JSON、YAML など、ツールが解析する構造化ファイルには `extract` を使用してください。パターンには少なくとも 1 つのキャプチャグループが含まれている必要があります。`extract` がない場合、Claude Code はファイルの内容全体を 1 つのセンチネル値に置き換えます。これは、単独のシークレットだけを保持するファイルに適しています。

505 620 

506JWT を保持するファイルの場合、`extract` の代わりに、または一緒に `decode: "jwt"` を設定します。`decode` には Claude Code v2.1.224 以降が必要です。Claude Code は組み込みパターンで JWT 候補を見つけるか、設定されている場合は `extract` パターンで見つけ、各候補が JWT であることを検証し、それを構造的に有効な偽のトークンに置き換えるため、サンドボックス内でトークンをデコードするコードは機能し続けます。`maskClaims` を追加して、トークン全体を置き換える代わりに、各検証済みトークン内の名前付きトップレベルペイロードクレームのみをマスクし、他のクレームは読み取り可能なままにします。候補が検証されない場合、またはリストされたクレームが一致しない場合、以下の `onExtractNoMatch` フィールドが結果を管理します。これは、パターンが何もマッチしない場合と同じです。621JSON Web Token(JWT)を保持するファイルの場合は、`extract` の代わりに、または `extract` と併せて `decode: "jwt"` を設定します。`decode` には Claude Code v2.1.224 以降が必要です。Claude Code は組み込みのパターン(設定されている場合は `extract` パターン)で JWT の候補を見つけ、各候補が JWT であることを検証し、構造的に有効な偽のトークンに置き換えます。これにより、サンドボックス内でトークンをデコードするコードは引き続き動作します。`maskClaims` を追加すると、検証済みの各トークン内で指定したトップレベルのペイロードクレームのみをマスクし、その他のクレームを読み取り可能なままにできます。検証される候補がない場合、または指定したクレームがどれも一致しない場合は、何にも一致しないパターンの場合と同様に、後述の `onExtractNoMatch` フィールドが結果を決定します。

507 622 

5082 つのオプションフィールドはマッチング動作を改善します。両方は `mode` が `mask` で `extract` または `decode` が設定されている場合にのみ適用されます。macOS では、ファイルシステム分離がオンの場合、Claude Code は `mask` エントリを `deny` として適用します。パターンが実行される前です。これらのフィールドと以下の不一致の結果は、[ファイルシステム分離を無効化](#disable-filesystem-isolation)した場合にのみ macOS で有効になります。6232 つのオプションのフィールドで、照合の動作を細かく調整できます。どちらも `mode` が `mask` で、`extract` または `decode` が設定されている場合にのみ適用されます。macOS では、ファイルシステム分離がオンのときは常に Claude Code がパターンの実行前に `mask` エントリを `deny` として適用するため、これらのフィールドと以下の一致しない場合の結果が有効になるのは、[ファイルシステム分離がオフ](#disable-filesystem-isolation)の場合のみです。

509 624 

510* `onExtractNoMatch` はマッチングがファイル内でマスクするものを見つけない場合に何が起こるかを制御します。625* `onExtractNoMatch` は、照合でファイル内にマスクするものが見つからなかった場合の動作を制御します。

511 626 

512 * `warn`(デフォルト)は警告を発し、エントリをスキップするため、サンドボックス化されたコマンドは実際のファイルを未マスク状態で読み取ることができます。デフォルトは認証情報が合法的に存在しない可能性があるケースに適しています。シークレットが存在する可能性があるがパターンが見落とす可能性がある場合は、`deny` を使用します627 * `warn`(デフォルト)は警告を出してエントリをスキップするため、サンドボックス化されたコマンドはマスクされていない実際のファイルを読み取れます。このデフォルトは正当に存在しない場合がある認証情報に適しています。シークレットが存在する可能性があるもののパターンがそれを見逃す可能性がある場合は、`deny` を使用してください

513 * `deny` はファイルを読み取り不可にします628 * `deny` は代わりにファイルを読み取り不可にします

514 * `error` は設定を修正するまでサンドボックスセットアップを停止します629 * `error` は設定を修正するまでサンドボックスのセットアップを停止します

515 630 

516 Claude Code は、読み取りブロックが強制されない場合は常に `deny` を `error` として扱います。[ファイルシステム分離を無効化](#disable-filesystem-isolation)した場合、および任意の設定ソースからの `filesystem.allowRead` エントリがファイルのパスを再度開く場合です。631 読み取りブロックが適用されない場合、つまり[ファイルシステム分離を無効にした](#disable-filesystem-isolation)場合や、`filesystem.allowRead` エントリがファイルのパスを再び開いている場合、Claude Code は `deny` を `error` として扱います。

517* `maskDuplicates` は、マッチした各マスク済み認証情報値(`extract` キャプチャまたは `decode` 検証済みトークン)の逐語的コピーも置き換えます。マッチした範囲外で見つかった場合、シークレットが繰り返される場所です。生の部分文字列と照合するため、短いまたは一般的な値はどこでも置き換えられます。長く、高エントロピーのシークレット用に予約します。デフォルト: false。632* `maskDuplicates` は、マスクされた各認証情報の値(`extract` のキャプチャまたは `decode` で検証されたトークン)のうち、一致した範囲の外で見つかったそのままのコピーも置き換えます。これは、照合が届かない場所で繰り返されているシークレット向けです。生の部分文字列で照合するため、短い値やありふれた値は出現するあらゆる場所で置き換えられてしまいます。長くエントロピーの高いシークレットにのみ使用してください。デフォルト: false。

518 633 

519`mask` は単一のファイルに適用されるため、各認証情報ファイルを個別にリストします。Claude Code は `mask` エントリが安全にマスクできない場合にフォールバックして `deny` します。ディレクトリパス、グロブパターン、8 MiB より大きいファイル、または UTF-8 テキストではないファイル。代わりにディレクトリを明示的な `deny` エントリとして記述します。[どの設定がそれを無効化できるか](#which-settings-can-disable-it)の下の表は、各フォームが `filesystem.disabled` をピンするかどうか、およびファイルシステム分離がオフの場合の動作をカバーします。634`mask` は単一のファイルに適用されるため、各認証情報ファイルを個別に記載してください。Claude Code は、安全にマスクできない `mask` エントリ(ディレクトリパス、glob パターン、8 MiB を超えるファイル、UTF-8 テキストではないファイル)については `deny` にフォールバックします。ディレクトリは代わりに明示的な `deny` エントリとして記述してください。各形式が `filesystem.disabled` を固定するかどうか、およびファイルシステム分離がオフのときにどう動作するかについては、[無効にできる設定](#which-settings-can-disable-it)の表で説明しています。

520 635 

521<h2 id="how-sandboxing-works">636<h2 id="how-sandboxing-works">

522 サンドボックス化の仕組み637 サンドボックス化の仕組み

523</h2>638</h2>

524 639 

525<h3 id="filesystem-isolation">640<h3 id="filesystem-isolation">

526 ファイルシステム分離641 ファイルシステムの分離

527</h3>642</h3>

528 643 

529サンドボックス化された Bash ツールはファイルシステムアクセスを特定のディレクトリに制限します。644サンドボックス化された Bash ツールは、ファイルシステムへのアクセスを特定のディレクトリに制限します。

530 645 

531* **デフォルトの書き込み動作**:現在の作業ディレクトリとそのサブディレクトリへの読み取りおよび書き込みアクセス、`--add-dir`、`/add-dir`、または [`permissions.additionalDirectories`](/docs/ja/settings-reference#permissions-additionaldirectories) で追加したディレクトリ、加えて `$TMPDIR` が指すユーザーごとの一時ディレクトリへのアクセス646* **デフォルトの書き込み動作**: 現在の作業ディレクトリとそのサブディレクトリ、`--add-dir`、`/add-dir`、または [`permissions.additionalDirectories`](/docs/ja/settings-reference#permissions-additionaldirectories) で追加したディレクトリ、さらに `$TMPDIR` が指すユーザーごとの一時ディレクトリへの読み取りおよび書き込みアクセス

532* **デフォルトの読み取り動作**:特定の拒否ディレクトリを除く、コンピュータ全体への読み取りアクセス。このデフォルトは `~/.aws/credentials` や `~/.ssh/` などの認証情報ファイルの読み取りを許可することに注意してください。[`sandbox.credentials`](#protect-credentials) を使用してこれらのファイルの読み取りをブロックし、シークレット環境変数の設定を解除するか、パスを `denyRead` に追加してください。647* **デフォルトの読み取り動作**: 特定の拒否されたディレクトリを除き、コンピューター全体への読み取りアクセス。このデフォルトでは認証情報ファイルの読み取りも許可されるため、コマンドに読み取らせたくない[認証情報を保護](#protect-credentials)してください。

533* **読み取りブロック**:[`permissions.blockReadsOutsideWorkingDirectories`](/docs/ja/settings-reference#permissions-blockreadsoutsideworkingdirectories) がオンの場合、サンドボックス化されたコマンドはホームディレクトリと、[Sandboxed commands under the block](/docs/ja/settings-reference#sandboxed-commands-under-the-block) がリストするパスを除く、ユーザーファイルを保持する他のディレクトリへの読み取りアクセスも失います。そのセクションはこのブロックの一部が適用されない場合についても説明しています。648* **読み取りブロック**: [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ja/settings-reference#permissions-blockreadsoutsideworkingdirectories) をオンにすると、サンドボックス化されたコマンドは、[ブロック下のサンドボックス化されたコマンド](/docs/ja/settings-reference#sandboxed-commands-under-the-block)に記載されたパスを除き、ホームディレクトリおよびユーザーファイルを保持するその他のディレクトリへの読み取りアクセスも失います。このセクションでは、ブロックのこの部分が適用されない場合についても説明しています。

534* **ブロックされたアクセス**:明示的な許可なしに作業ディレクトリ、追加されたディレクトリ、およびユーザーごとの一時ディレクトリ外のファイルを変更できません。これには `~/.bashrc` などのシェル設定ファイルと `/bin/` のシステムバイナリが含まれます。649* **Git worktree**: 作業ディレクトリが[リンクされた git worktree](/docs/ja/worktrees) である場合、サンドボックスはメインリポジトリの共有 `.git` ディレクトリへの書き込みも許可するため、`git commit` などのコマンドで ref やインデックスを更新できます。そのディレクトリ内の `hooks/` と `config` への書き込みは引き続き拒否されます。

535* **Git worktrees**:作業ディレクトリが[リンクされた git worktree](/docs/ja/worktrees)の場合、サンドボックスはメインリポジトリの共有 `.git` ディレクトリへの書き込みも許可するため、`git commit` などのコマンドが refs とインデックスを更新できます。そのディレクトリ内の `hooks/` と `config` への書き込みは引き続き拒否されます。

536* **設定可能**:設定を通じてカスタム許可パスと拒否パスを定義します

537 650 

538ファイルシステム分離をスキップして、ネットワーク分離を維持するには、[`sandbox.filesystem.disabled`](#disable-filesystem-isolation) を設定します。651ネットワークの分離を維持したままファイルシステムの分離を完全にスキップするには、[`sandbox.filesystem.disabled`](#disable-filesystem-isolation) を設定します。

539 652 

540<h3 id="protected-paths">653<h3 id="protected-paths">

541 保護されたパス654 保護されたパス

542</h3>655</h3>

543 656 

544サンドボックス化されたコマンドが書き込みできるディレクトリ内でも、サンドボックスは Claude Code が設定とコードを読み込むファイルへの書き込みを拒否します。これらのファイルを編集できるコマンドは、自身に権限を付与したり、Claude Code がサンドボックス外で実行する hook または MCP サーバーを追加したりする可能性があります。権限システムには独自の[保護されたパス](/docs/ja/permission-modes#protected-paths)があり、ツールが実行される前に Claude Code が承認する内容を制御します。サンドボックスのリストは既に実行中のコマンドに適用されます。4 つのパスグループをカバーしています。657サンドボックス化されたコマンドが書き込み可能なディレクトリ内であっても、サンドボックスは Claude Code が設定やコードを読み込むファイルへの書き込みを引き続き拒否します。これらのファイルを編集できるコマンドは、自身に権限を付与したり、Claude Code がサンドボックスの外で実行するフックや MCP サーバーを追加したりできてしまうためです。権限システムには独自の[保護されたパス](/docs/ja/permission-modes#protected-paths)があり、ツールの実行前に Claude Code が何を承認するかを制御します。サンドボックスのリストは、すでに実行中のコマンドに適用されます。対象となるパスは次の 4 つのグループです。

545 658 

546* **作業ディレクトリおよびその上のディレクトリ内**:`.claude` 設定ファイル、`.claude/skills`、`.claude/agents`、`.claude/commands`、`.claude/hooks` ディレクトリ、`.mcp.json`、および Claude Code が独自に実行するファイル(`.claude/workflows` や `.claude/scheduled_tasks.json` など)659* **作業ディレクトリとその上位のディレクトリ**: `.claude` 設定ファイル、`.claude/skills`、`.claude/agents`、`.claude/commands`、`.claude/hooks` ディレクトリ、`.mcp.json`、および `.claude/workflows` や `.claude/scheduled_tasks.json` など Claude Code が自ら実行するファイル

547* **作業ディレクトリのみ**:`.bashrc` や `.zshrc` などのシェルスタートアップファイル、`.gitconfig`、`.vscode` および `.idea` ディレクトリ、`.git` 内の `hooks` および `config`660* **作業ディレクトリのみ**: `.bashrc` や `.zshrc` などのシェル起動ファイル、`.gitconfig`、`.vscode` および `.idea` ディレクトリ、`.git` 内の `hooks` と `config`

548* **作業ディレクトリをベア git リポジトリに変えるファイル**:トップレベルの `HEAD`、`objects`、`refs`、加えて `config` と `hooks`(`HEAD` が隣に存在する場合)。`config` という名前のファイルは `HEAD` がなくても拒否されます。Linux および WSL2 では、サンドボックス化されたコマンドの実行中に表示されるトップレベルの `HEAD` ファイルまたは `objects` または `refs` ディレクトリをサンドボックスが削除します。661* **作業ディレクトリをベア git リポジトリに変えてしまうファイル**: 最上位の `HEAD`、`objects`、`refs`、および `HEAD` が隣にある場合の既存の `config` と `hooks` エントリ。`config` という名前のファイルは、`HEAD` がなくても拒否されます。Linux と WSL2 では、サンドボックス化されたコマンドの実行中に最上位の `HEAD` ファイルや `objects` または `refs` ディレクトリが出現すると、サンドボックスがそれを削除します

549* **`~/.claude` または `CLAUDE_CONFIG_DIR` が指すディレクトリ内**:そのほとんどのコンテンツ、加えて `~/.claude.json` および `.credentials.json` 認証情報ストア662* **`~/.claude`、または `CLAUDE_CONFIG_DIR` が指すディレクトリ内**: その内容の大部分、および `~/.claude.json` と `.credentials.json` 認証情報ストア

550 663 

551セッション中に保護された設定ファイルのパスにシンボリックリンクが表示される場合、サンドボックスは次のコマンドから、それが指すファイルへの書き込みも拒否します。664セッション中に保護された設定ファイルのパスにシンボリックリンクが出現した場合、サンドボックスは次のコマンドから、そのリンク先のファイルへの書き込みも拒否します。

552 665 

553これらのパスの 1 つを除外する方法はありません。パスをカバーする `allowWrite` エントリまたは `Edit` 許可ルールは保護を解除しません。保護をオフにする唯一の方法は [`filesystem.disabled`](#disable-filesystem-isolation) です。これはすべてのパスのファイルシステム分離をオフにします。マシンで解決されたこれらのパスのほとんどを確認するには、`/sandbox` を実行して **Config** タブを開きます。このタブは、独自の `denyWrite` エントリと混在して、**Denied within allowed** の下にそれらをリストします。666これらのパスのいずれかを除外する方法はありません。パスを対象とする `allowWrite` エントリや `Edit` 許可ルールでは保護は解除されません。保護をオフにする唯一の方法は [`filesystem.disabled`](#disable-filesystem-isolation) で、これはすべてのパスでファイルシステムの分離をオフにします。ご使用のマシンで解決されたこれらのパスの大部分を確認するには、`/sandbox` を実行して **Config** タブを開きます。ここでは、これらのパスがユーザー自身の `denyWrite` エントリと混在して **Denied within allowed** の下に一覧表示されます。

554 667 

555`git merge` または `git checkout` がこれらのパスの 1 つで `unable to unlink old` で失敗する場合は、[Troubleshooting](#troubleshooting) を参照してください。668これらのパスのいずれかで `git merge` または `git checkout` が `unable to unlink old` で失敗する場合は、[トラブルシューティング](#troubleshooting)を参照してください。

556 669 

557<h3 id="network-isolation">670<h3 id="network-isolation">

558 ネットワーク分離671 ネットワークの分離

559</h3>672</h3>

560 673 

561ネットワークアクセスはサンドボックス外で実行されるプロキシサーバーを通じて制御されます。674サンドボックス化されたコマンドには、ネットワークへの直接の経路がありません。

675 

676* **Linux と WSL2**: コマンドは、ユーザーのネットワークに接続されていない別のネットワーク名前空間で実行されます

677* **macOS**: Seatbelt サンドボックスフレームワークが、デフォルトでサンドボックスプロキシへの接続以外の接続をブロックします

678 

679Claude Code はサンドボックスの外、ユーザーのマシン上でサンドボックスプロキシを実行し、`HTTP_PROXY`、`HTTPS_PROXY`、`ALL_PROXY` および関連する環境変数を使ってコマンドをプロキシに向けます。プロキシは、各接続のホスト名を許可ドメインおよび拒否ドメインと照合します。

562 680 

563* **ドメイン制限**:Claude Code はデフォルトでドメインを事前に許可しません。コマンドが新しいドメインにアクセスする必要がある場合、Claude Code はプロンプトを表示します。[オートモード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、Claude は[Per-command allowed domains](#per-command-allowed-domains-in-auto-mode)に従って、コマンド自体でコマンドが必要とするホストを指定します。681ツールが到達できる範囲は、そのツールがプロキシを使用するかどうかによって異なります。

564* **承認の選択肢**:プロンプトで「はい」を選択すると、Claude Code は現在のセッションの残りの期間そのホストを許可し、同じホストへの後続の接続ではプロンプトを表示しません。「はい、今後は聞かない」を選択すると、Claude Code は `WebFetch(domain:...)` 許可ルールを[ローカル設定](/docs/ja/permissions#permission-system)に保存するため、そのホストは今後のセッションで許可されたままになります。

565* **事前許可ドメイン**:[`allowedDomains`](/docs/ja/settings-reference#sandbox-network-alloweddomains) でドメインを事前に許可してプロンプトを完全に回避します。Claude Code は、[Permission rules](#permission-rules) で説明されているように、`WebFetch(domain:...)` 許可ルールからのドメインも事前に許可します。

566* **厳密な許可リスト**:ユーザー、管理、または CLI `--settings` 設定で [`strictAllowlist`](/docs/ja/settings-reference#sandbox-network-strictallowlist) を `true` に設定した場合、Claude Code はプロンプトの代わりに、許可リスト外のホストへのサンドボックス化されたコマンドアクセスを拒否します。許可リストは、サンドボックスが他の方法でプロンプトを表示するのと同じものです。`allowedDomains` に加えて `WebFetch(domain:...)` 許可ルールからのドメイン、または `allowManagedDomainsOnly` が設定されている場合は管理設定エントリのみです。Claude Code はサンドボックス化されたコマンドのみにこれを実施します。`WebFetch` などのインプロセスツールは引き続き[権限ルール](#permission-rules)に従います。リポジトリの `.claude/settings.json` または `.claude/settings.local.json` で設定しても効果はありません。Claude Code v2.1.219 以降が必要です。

567* **管理ロックダウン**:[`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) が管理設定で設定されている場合、許可されていないドメインはプロンプトの代わりに自動的にブロックされ、管理設定からの `allowedDomains` および `WebFetch(domain:...)` 許可ルールのみが尊重されます。

568* **企業プロキシ**:ネットワークが発信トラフィックを企業プロキシを通じて送信する必要がある場合、[プロキシ設定](/docs/ja/network-config#proxy-configuration)で説明されているように、`HTTPS_PROXY`、`HTTP_PROXY`、`NO_PROXY` を設定の `env` ブロックで設定して、[バックグラウンドエージェント](/docs/ja/network-config#set-network-variables-in-settings-not-the-shell)もそれらを取得するようにするか、Claude Code を起動する環境で設定します。Claude Code はドメイン許可リストを実施してから、許可されたコネクションをそのアップストリームプロキシを通じてトンネルします。

569* **カスタムプロキシサポート**:高度なユーザーは発信トラフィックにカスタムルールを実装できます

570* **包括的なカバレッジ**:制限はすべてのスクリプト、プログラム、およびコマンドによって生成されるサブプロセスに適用されます

571 682 

572`WebFetch(domain:...)` ルールでは、サンドボックスは 2 つのワイルドカード形式を尊重します。`*.example.com` などの先頭の `*.` とベアの `*`。ベアの `*` 形式には Claude Code v2.1.186 以降が必要です。`WebFetch(domain:example.*)` などの他の位置のワイルドカードはフェッチに一致しますが、サンドボックス化されたコマンドには効果がありません。683* **プロキシ変数を読み取るツール**: `curl`、`npm`、HTTPS 経由の `git` などのツールは、ホストが許可されると接続できます。ポートを指定しない `allowedDomains` エントリは、そのホストのすべてのポートを許可します

684* **プロキシ変数を無視するツール**: 素の `ssh`、ほとんどのデータベースドライバーなどのツールは、許可されたホストであっても接続できません。[データベースクライアントやその他の非 HTTP ツールが許可されたホストに到達できない](#a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host)を参照してください

685* **TCP 以外のもの**: UDP、QUIC 上の HTTP/3、および `ping` などの ICMP ツールはサンドボックスの外に出られません

686 

687以下の設定と動作により、プロキシが許可するホストが制御されます。

688 

689* **ドメイン制限**: 許可ドメインは最初は空です。コマンドが新しいドメインを初めて必要とした場合の動作については、[許可ドメイン外のホスト](#hosts-outside-your-allowed-domains)で説明しています。

690* **承認の選択**: プロンプトで Yes を選択すると、Claude Code は現在のセッションの残りの間、そのホストを許可します。「Yes, and don't ask again」を選択すると、Claude Code は `WebFetch(domain:...)` 許可ルールを[ローカル設定](/docs/ja/permissions#permission-system)に保存するため、今後のセッションでもそのホストは許可されたままになります。サンドボックスが[管理者必須](#repository-settings-under-an-admin-required-sandbox)の場合、Claude Code はルールをユーザー設定に保存し、すべてのプロジェクトに適用されます。

691* **事前許可ドメイン**: [`allowedDomains`](/docs/ja/settings-reference#sandbox-network-alloweddomains) でドメインを事前に許可すると、プロンプトを完全に回避できます。[権限ルール](#permission-rules)で説明しているように、Claude Code は `WebFetch(domain:...)` 許可ルールのドメインも事前に許可します。

692* **厳格な許可リスト**: ユーザー設定、管理設定、または CLI の `--settings` 設定で [`strictAllowlist`](/docs/ja/settings-reference#sandbox-network-strictallowlist) を `true` に設定すると、Claude Code はプロンプトを表示する代わりに、サンドボックス化されたコマンドから許可リスト外のホストへのアクセスを拒否します。許可リストは `allowedDomains` と `WebFetch(domain:...)` 許可ルールのドメインの合計で、`allowManagedDomainsOnly` が設定されている場合は管理設定のエントリのみとなります。リポジトリのエントリについては、[管理者必須のサンドボックスなしで適用されるロック](#locks-that-apply-without-an-admin-required-sandbox)で説明しています。Claude Code はこれをサンドボックス化されたコマンドにのみ適用します。`WebFetch` などのプロセス内ツールは引き続き[権限ルール](#permission-rules)に従います。リポジトリの `.claude/settings.json` または `.claude/settings.local.json` で設定しても効果はありません。Claude Code v2.1.219 以降が必要です。

693* **管理設定によるロックダウン**: 管理設定で [`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) が設定されている場合、許可されていないドメインはプロンプトを表示せずに自動的にブロックされ、管理設定の `allowedDomains` と `WebFetch(domain:...)` 許可ルールのみが適用されます。

694* **企業プロキシ**: ネットワークで送信トラフィックを企業プロキシ経由にする必要がある場合は、[プロキシ設定](/docs/ja/network-config#proxy-configuration)の説明に従って `HTTPS_PROXY`、`HTTP_PROXY`、`NO_PROXY` を設定します。[バックグラウンドエージェント](/docs/ja/network-config#set-network-variables-in-settings-not-the-shell)にも適用されるよう設定の `env` ブロックで設定するか、Claude Code を起動する環境で設定してください。Claude Code はドメイン許可リストを適用したうえで、許可された接続をその上流プロキシ経由でトンネリングします。`http://` と `https://` のプロキシ URL が使用でき、必要に応じて URL に Basic 認証を含めることもできます。

695 

696`WebFetch(domain:...)` ルールでは、サンドボックスは 2 つのワイルドカード形式を認識します。`*.example.com` のような先頭の `*.` と、単独の `*` です。単独の `*` 形式には Claude Code v2.1.186 以降が必要です。`WebFetch(domain:example.*)` のようにそれ以外の位置にあるワイルドカードは、フェッチには引き続き一致しますが、サンドボックス化されたコマンドには効果がありません。

573 697 

574<Note>698<Note>

575 組み込みプロキシは要求されたホスト名に基づいて許可リストを実施し、デフォルトでは TLS トラフィックを終了または検査しません。Claude Code v2.1.199 以降で利用可能な実験的な [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 設定により、組み込みプロキシ自体が TLS を終了するようになります。[`mask` 認証情報エントリ](#mask-credentials)にはこの動作が必要です。デフォルトの影響については [Security limitations](#security-limitations) を参照してください。脅威モデルが TLS 検査を必要とする場合は、[Custom proxy configuration](#custom-proxy-configuration) を参照してください。699 組み込みプロキシは、要求されたホスト名に基づいて許可リストを適用し、デフォルトでは TLS トラフィックの終端や検査を行いません。Claude Code v2.1.199 以降で利用可能な実験的な [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 設定を使用すると、組み込みプロキシ自体が TLS を終端します。これは [`mask` 認証情報エントリ](#mask-credentials)に必要です。デフォルトの影響については[セキュリティ上の制限](#security-limitations)を、脅威モデルで TLS の検査が必要な場合は[カスタムプロキシ設定](#custom-proxy-configuration)を参照してください。

576</Note>700</Note>

577 701 

702<h4 id="hosts-outside-your-allowed-domains">

703 許可ドメイン外のホスト

704</h4>

705 

706サンドボックス化されたコマンドが許可ドメインにないホストに接続すると、コマンドはサンドボックス内にとどまり、判断を待ちます。インタラクティブなターミナルセッションでは、判断は権限モードによって異なります。

707 

708| 権限モード | 接続の扱い |

709| :- | :- |

710| `bypassPermissions` モード、および[権限のバイパスが利用可能](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)な plan モード | プロンプトなしで許可 |

711| 手動モード、`acceptEdits` モード、およびそれ以外の plan モード | プロンプトが表示される |

712| auto モード | コマンドが[ホストを列挙](#per-command-allowed-domains-in-auto-mode)し、分類器がそのリストを承認した場合を除き拒否 |

713| `dontAsk` モード | 拒否 |

714 

715[`strictAllowlist`](/docs/ja/settings-reference#sandbox-network-strictallowlist) または [`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) がオンの場合、組み込みのサンドボックスプロキシはすべての権限モードで接続を拒否します。`bypassPermissions` モードでは、これらのいずれかがオンでない限り、許可ドメイン外のホストは許可されます。そのモードでコマンドがサンドボックスの外に出られる場合については、[サンドボックスなしでの再試行というエスケープハッチ](#the-unsandboxed-retry-escape-hatch)で説明しています。[`deniedDomains`](/docs/ja/settings-reference#sandbox-network-denieddomains) にあるホストへの接続も、すべての権限モードで拒否されます。

716 

717<h4 id="hostnames-that-resolve-to-local-addresses">

718 ローカルアドレスに解決されるホスト名

719</h4>

720 

721ホスト名が許可リストを通過した後、サンドボックスプロキシはその名前を解決し、ローカルアドレスのみに解決される場合は接続を拒否します。ローカルアドレスには、`127.0.0.1` などのループバックアドレス、`169.254.169.254` クラウドメタデータエンドポイントなどのリンクローカルアドレス、およびユーザー自身のマシンに割り当てられたアドレスが含まれます。`localhost` および `*.localhost` という名前は、ループバックへの解決が許可されます。

722 

723`10.0.0.0/8` などのプライベート範囲に解決される許可済みのイントラネットホスト名は接続できます。名前が拒否されるアドレスに解決されることを許可するには、`"127.0.0.1:8080"` のように、その IP アドレスを `allowedDomains` に追加します。

724 

725このチェックはホスト名に適用されます。IP アドレスへの接続は、許可ドメインと権限モードによって判断されます。また、プロキシは上流の企業プロキシ経由で送信する接続についてはこのチェックをスキップします。名前の解決はその企業プロキシが行うためです。

726 

578<h4 id="per-command-allowed-domains-in-auto-mode">727<h4 id="per-command-allowed-domains-in-auto-mode">

579 オートモードでのコマンドごとの許可ドメイン728 auto モードでのコマンドごとの許可ドメイン

580</h4>729</h4>

581 730 

582[オートモード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)でサンドボックスがオンの場合、Claude はネットワーク承認をトリガーする代わりに、コマンド自体でコマンドが必要とするホストを指定します。サンドボックスで実行される各 Bash、PowerShell、または [Monitor](/docs/ja/tools-reference#monitor-tool) コマンドは、サンドボックスの許可リストを超えたホストのリストを持つことができます。`registry.npmjs.org` などのドメイン、`*.pythonhosted.org` などのワイルドカード、または IP アドレス(各々にオプションの `:port` 付き)。分類器はホストとコマンドを一緒にレビューします。Claude Code v2.1.271 以降が必要です。731サンドボックス化がオンの [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、Claude は接続ごとにネットワーク承認をトリガーする代わりに、コマンドが必要とするホストをコマンド自体に指定します。サンドボックス内で実行される各 Bash、PowerShell、または [Monitor](/docs/ja/tools-reference#monitor-tool) コマンドは、サンドボックスの許可リストを超えるホストのリストを持つことができます。`registry.npmjs.org` のようなドメイン、`*.pythonhosted.org` のようなワイルドカード、または IP アドレスで、それぞれにオプションで `:port` を付けられます。分類器はホストをコマンドと一緒に審査します。Claude Code v2.1.271 以降が必要です。

583 732 

584承認されたリストはそのコマンドのみに対してそれが実行されている限りそれらのホストを開きます。セッションの許可されたホストまたは設定に何も追加されません。次のコマンドは独自のホストを指定します。733承認されたリストは、そのコマンドの実行中に限り、そのコマンドに対してのみそれらのホストを開放します。セッションの許可ホストや設定には何も追加されず、次のコマンドは独自のホストを指定します。

585 734 

586ホストを持つコマンドは、権限ルールまたはサンドボックスの[オートアロー モード](#sandbox-modes)によって承認される代わりに、分類器に送られます。[ask ルール](/docs/ja/permissions#manage-permissions)がコマンドのプロンプトを強制する場合、ターミナルの権限ダイアログはそれの隣にホストをリストし、そこで承認することは両方をカバーします。735ホストを持つコマンドは、権限ルールやサンドボックスの[自動許可モード](#sandbox-modes)によって承認されるのではなく、分類器に送られます。[確認ルール](/docs/ja/permissions#manage-permissions)によってコマンドにプロンプトが強制される場合、ターミナルの権限ダイアログではコマンドの横にホストが一覧表示され、そこで承認すると両方が対象になります。

587 736 

588コマンドごとのリストはサンドボックスがデフォルトで拒否するものだけを広げます。[`deniedDomains`](/docs/ja/settings-reference#sandbox-network-denieddomains) エントリはまだブロックします。[`strictAllowlist`](/docs/ja/settings-reference#sandbox-network-strictallowlist) または [`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) が許可リストをロックする場合、Claude Code はコマンドごとのリストを拒否します。737コマンドごとのリストは、サンドボックスがデフォルトで拒否する範囲のみを広げます。[`deniedDomains`](/docs/ja/settings-reference#sandbox-network-denieddomains) のエントリは引き続きブロックされます。[`strictAllowlist`](/docs/ja/settings-reference#sandbox-network-strictallowlist) または [`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) が許可リストをロックしている場合、Claude Code はコマンドごとのリストを拒否します。

589 738 

590コマンドごとのリストが適用されている間、Claude Code は承認されたコマンドがリストしなかったホストへの接続をプロンプトなしで分類器チェックなしで拒否します。拒否はコマンドの結果でホストを指定し、Claude はホストが追加されたコマンドを再実行します。739コマンドごとのリストが適用されている間、Claude Code は、承認されたどのコマンドにも列挙されていないホストへの接続を、プロンプトや分類器のチェックなしに拒否します。拒否の際はコマンドの結果にホスト名が示され、Claude はそのホストを追加してコマンドを再実行します。

591 740 

592<h4 id="ipv6-addresses-in-domain-lists">741<h4 id="ipv6-addresses-in-domain-lists">

593 ドメインリスト内の IPv6 アドレス742 ドメインリスト内の IPv6 アドレス

594</h4>743</h4>

595 744 

596サンドボックスのドメインリストは `allowedDomains`、`deniedDomains`、およびそれらに供給する `WebFetch(domain:...)` ルールです。それらのいずれかで IPv6 アドレスに一致させるには、リテラルを括弧で囲んで記述します。`"[::1]"` はすべてのポートでそのアドレスに一致し、`"[::1]:443"` はポート 443 でのみ一致します。ポートを 1 から 65535 の数値として先頭のゼロなしで記述します。括弧で囲まれた形式には Claude Code v2.1.229 以降が必要です。v2.1.229 より前では、括弧で囲まれていないエントリの最後のコロンの後のテキストがポート番号の場合、Claude Code はそれを 1 つとして読み取ったため、`::1:443` はポート 443 でアドレス `::1` を指定しました。745サンドボックスのドメインリストは、`allowedDomains`、`deniedDomains`、およびそれらに反映される `WebFetch(domain:...)` ルールです。いずれかで IPv6 アドレスに一致させるには、リテラルを角括弧で囲んで記述します。`"[::1]"` はすべてのポートでそのアドレスに一致し、`"[::1]:443"` はポート 443 でのみ一致します。ポートは、先頭にゼロを付けない 1 から 65535 までの数値で記述してください。角括弧形式には Claude Code v2.1.229 以降が必要です。v2.1.229 より前は、角括弧のないエントリの最後のコロン以降のテキストがポート番号の場合、Claude Code はそれをポートとして解釈していたため、`::1:443` はポート 443 上のアドレス `::1` を表していました。

597 746 

598IPv6 アドレスのネットワーク承認プロンプトで「はい、今後は聞かない」を選択すると、Claude Code は `WebFetch(domain:...)` ルールをアドレスを括弧で囲んで保存するため、ルールは今後のセッションでアドレスに一致し続けます。747IPv6 アドレスに対するネットワーク承認プロンプトで「Yes, and don't ask again」を選択すると、Claude Code はアドレスを角括弧で囲んだ `WebFetch(domain:...)` ルールを保存するため、今後のセッションでもルールがそのアドレスに一致し続けます。

599 748 

600括弧で囲まれていないエントリで 2 つ以上のコロンがある場合は曖昧です。`::1:443` は完全な IPv6 アドレスとアドレスの後にポートの両方です。Claude Code は、どの読み取りを意図したかを推測する代わりに、曖昧なスペルを保守的に実施します。749コロンが 2 つ以上ある角括弧のないエントリは曖昧です。`::1:443` は完全な IPv6 アドレスであると同時に、アドレスの後にポートが続いたものでもあります。Claude Code は、どちらの解釈が意図されたかを推測するのではなく、曖昧な表記を保守的に適用します。

601 750 

602* **拒否リスト**:Claude Code はエントリが解析するすべての読み取りを拒否するため、意図した読み取りがブロックされます。解析可能な読み取りがないエントリの場合、Claude Code は何もブロックしません。751* **拒否リスト**: Claude Code はエントリが解釈され得るすべての読み方を拒否するため、意図した読み方がどちらであってもブロックされます。解釈可能な読み方がないエントリについては、Claude Code は何もブロックしません。

603* **許可リスト**:Claude Code は記述したもの以上を許可しません。その読み取りが正常に解析される場合、曖昧なエントリをホストとポートの読み取りに書き直し、許可リストを拡大するのではなく、エントリを完全にドロップする可能性があります。752* **許可リスト**: Claude Code は記述された以上のものを許可しません。曖昧なエントリは、ホストとポートとしての読み方が正しく解析できる場合はその読み方に書き換え、許可リストを広げるよりはエントリを完全に破棄することがあります。

604 753 

605ターミナルで `claude doctor` を実行して、影響を受けるエントリを見つけます。`Sandbox network domain entries have unreliable spellings` 警告は最大 3 つを指定し、残りをカウントします。括弧で囲まれた形式で各エントリを書き直して、警告をクリアします。警告は、`@`、パスまたはクエリ文字、括弧内のワイルドカードなど、他の理由でスペルが信頼できないエントリも指定します。754影響を受けるエントリを見つけるには、ターミナルで `claude doctor` を実行します。`Sandbox network domain entries have unreliable spellings` という警告に最大 3 件のエントリが示され、残りの件数がカウントされます。警告を解消するには、各エントリを角括弧形式で書き直してください。この警告では、`@`、パスやクエリの文字、角括弧内のワイルドカードなど、その他の理由で表記が信頼できないエントリも示されます。

606 755 

607<h3 id="os-level-enforcement">756<h3 id="os-level-enforcement">

608 OS レベルの実施757 OS レベルの適用

609</h3>758</h3>

610 759 

611サンドボックス化された Bash ツールはオペレーティングシステムセキュリティプリミティブを使用します。760サンドボックス化された Bash ツールは、オペレーティングシステムのセキュリティプリミティブを使用します。

612 761 

613* **macOS**:サンドボックス実施に Seatbelt を使用します762* **macOS**: サンドボックスの適用に Seatbelt を使用します

614* **Linux**:分離に [bubblewrap](https://github.com/containers/bubblewrap) を使用します763* **Linux**: 分離に [bubblewrap](https://github.com/containers/bubblewrap) を使用します

615* **WSL2**:Linux と同じく bubblewrap を使用します764* **WSL2**: Linux と同じく bubblewrap を使用します

616 765 

617WSL1 は bubblewrap が WSL2 でのみ利用可能なカーネル機能を必要とするため、サポートされていません。766bubblewrap には WSL2 でのみ利用可能なカーネル機能が必要なため、WSL1 はサポートされていません。

618 767 

619これらの同じプリミティブは、スタンドアロン [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) パッケージとして利用可能です。[Sandbox environments](/docs/ja/sandbox-environments#sandbox-runtime) ページでは、Claude Code プロセス全体をラップするための別のアプローチとしてこれについて説明しています。768[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) パッケージを単独で実行して、Claude Code プロセスをラップすることもできます。[サンドボックスランタイム](/docs/ja/sandbox-environments#sandbox-runtime)を参照してください。

620 769 

621<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">770<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">

622 サンドボックスが権限と権限モードにどのように関連するか771 サンドボックスが権限と権限モードにどのように関連するか


677 管理設定でサンドボックス化を実施する826 管理設定でサンドボックス化を実施する

678</h3>827</h3>

679 828 

680すべての開発者にサンドボックスを要求するには、[管理設定](/docs/ja/managed-settings#delivery-mechanisms)を通じて `sandbox` キーを配信します。MDM で管理されるファイルまたは Claude.ai の [server-managed settings](/docs/ja/server-managed-settings)を通じて配信します。829すべての開発者にサンドボックスを要求するには、[管理設定](/docs/ja/managed-settings#delivery-mechanisms)を通じて `sandbox` キーを配信します。MDM で管理されるファイルまたは claude.ai の[サーバー管理設定](/docs/ja/server-managed-settings)を通じて配信します。

681 830 

682以下の管理設定構成はサンドボックスを有効化し、サンドボックスが初期化できない場合は Claude Code の起動を拒否し、モデルがサンドボックス外でコマンドを再試行するのを防止します。831以下の管理設定はサンドボックスを有効化し、プラットフォームがサポートされていない場合や依存関係が不足している場合は Claude Code の起動を拒否し、モデルがサンドボックス外でコマンドを再試行するのを防止します。

683 832 

684```json theme={null}833```json theme={null}

685{834{


691}840}

692```841```

693 842 

694`enabled` を超える 2 つのキーは、サンドボックスがコマンドを実行できない場合に何が起こるかを制御します。843`enabled` 以外の 2 つのキーは、サンドボックスがコマンドを実行できない場合に何が起こるかを制御します。

844 

845* **`failIfUnavailable`**:Linux の bubblewrap などの依存関係が不足している場合、サンドボックス化されていない実行にフォールバックするのではなく、Claude Code の起動をブロックします

846* **`allowUnsandboxedCommands: false`**:Claude Code は `dangerouslyDisableSandbox` エスケープハッチを無視するため、サンドボックス内でコマンドが失敗しても、Claude はそれをサンドボックス外で再試行できません

847 

848これらと併せて、次の追加を検討してください。

695 849 

696* **`failIfUnavailable`**:Linux の bubblewrap などの不足している依存関係は、警告を表示してサンドボックス化されていない実行にフォールバックするのではなく、Claude Code の起動をブロックします850* 分離なしで実行する必要がある組織承認済みのツールについて `excludedCommands` を追加します。この設定により、[リポジトリの設定でコマンドをサンドボックスの外に出すことができなくなる](#repository-settings-under-an-admin-required-sandbox)ためです

697* **`allowUnsandboxedCommands: false`**:Claude Code は `dangerouslyDisableSandbox` エスケープハッチを無視するため、サンドボックス内で失敗するコマンドはサンドボックス外で再試行できません851* `~/.aws` や `~/.ssh` などの認証情報ディレクトリと、秘密の環境変数について [`sandbox.credentials`](#protect-credentials) エントリを追加します。デフォルトの読み取りポリシーではこれらが引き続き許可されるためです

698 852 

699それらと一緒に検討する価値のある 2 つの追加があります。サンドボックス化なしで実行する必要がある組織承認ツールについて `excludedCommands` を追加します。`~/.aws` や `~/.ssh` などの認証情報ディレクトリについて [`sandbox.credentials`](#protect-credentials) エントリを追加します。また、秘密環境変数についても追加します。デフォルトの読み取りポリシーはこれらを許可します。853この設定は Claude が実行するコマンドをサンドボックス化します。開発者は依然として [`!` シェルモードプロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)でコマンドを入力し、Claude Code の外の任意のターミナルで既に持っているのと同じアクセス権でサンドボックス外で実行できます。入力されたコマンドがサンドボックス内で実行されるセッションについては、[strict サンドボックスモード](#turn-off-the-retry-with-strict-sandbox-mode)を参照してください。

700 854 

701このサンドボックス構成は Claude が実行するコマンドをサンドボックス化します。開発者は依然として [`!` シェルモードプロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)でコマンドを入力し、Claude Code の外の任意のターミナルで既に持っているのと同じアクセス権でサンドボックス外で実行できます。入力されたコマンドがサンドボックス化される場合のセッションについては、[サンドボックス化されていない再試行エスケープハッチ](#the-unsandboxed-retry-escape-hatch)を参照してください。855サンドボックスはネイティブ Windows では実行されないため、`failIfUnavailable` が設定されていると、それらのマシンでは Claude Code が起動時に終了します。フリートに Windows ホストが含まれている場合は、次の方法を取れます。

702 856 

703サンドボックスはネイティブ Windows では実行されないため、フリートに Windows ホストが含まれている場合、この設定を macOS と Linux にスコープするか、それらのユーザーに WSL2 またはコンテナ内で Claude Code を実行させてください。857* **オペレーティングシステムごとに設定を配信する**:MDM を通じて、または[管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms)として、macOS と Linux のマシンにのみデプロイします。[サーバー管理設定](/docs/ja/server-managed-settings#current-limitations)は組織内のすべてのユーザーに適用されます

858* **Windows ユーザーをサポートされている環境に移行する**:WSL2 またはコンテナ内で Claude Code を実行してもらいます

704 859 

705<h3 id="keep-developers-from-widening-the-policy">860<h3 id="keep-developers-from-widening-the-policy">

706 開発者がポリシーを広げるのを防ぐ861 開発者がポリシーを広げるのを防ぐ

707</h3>862</h3>

708 863 

709`enabled` と `failIfUnavailable` などのブール値キーの場合、Claude Code は管理値を使用し、開発者がローカルで設定したものを無視します。`excludedCommands` と `allowRead` などの配列キーの場合、Claude Code はセッションが読み込むすべてのスコープからエントリをマージするため、開発者はポリシーを広げるエントリを追加できます。864管理設定で `enabled` や `failIfUnavailable` などのブール値キーを設定した場合、Claude Code は管理値を使用し、開発者がローカルで設定したものを無視します。`allowRead` などの配列キーの場合、Claude Code はセッションが読み込むスコープからエントリをマージするため、そのキーがロックの対象になっていない限り、開発者はポリシーを広げるエントリを追加できます。

865 

866管理設定で設定されていない限り、開発者のユーザー設定または `--settings` で次のキーをオンにできます。サンドボックスが[管理者必須](#repository-settings-under-an-admin-required-sandbox)でない限り、リポジトリの `.claude/settings.json` でもオンにできます。いずれもサンドボックスを弱めるため、使用させたくない場合は管理設定で `false` に設定してください。

867 

868* [`enableWeakerNestedSandbox`](/docs/ja/settings-reference#sandbox-enableweakernestedsandbox)

869* [`enableWeakerNetworkIsolation`](/docs/ja/settings-reference#sandbox-enableweakernetworkisolation)

870* [`network.allowAllUnixSockets`](/docs/ja/settings-reference#sandbox-network-allowallunixsockets)

871* [`network.allowLocalBinding`](/docs/ja/settings-reference#sandbox-network-allowlocalbinding)

872* [`allowAppleEvents`](/docs/ja/settings-reference#sandbox-allowappleevents)(リポジトリではオンにできません)

873 

874管理設定で `allowManagedReadPathsOnly` を `true` に設定して、管理設定からの `allowRead` エントリのみが尊重されるようにします。これにより、開発者が組織承認済みのパスを超えて読み取りアクセスを広げるのを防止します。

875 

876ネットワークドメインを同じ方法で管理値にロックするには、[`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) を設定します。このロックがオンの場合、[プロキシポート](#custom-proxy-configuration)を設定できるのは管理設定のみです。

877 

878管理設定が `sandbox.filesystem` を設定するか、`"mode": "deny"` を含む `sandbox.credentials.files` エントリをリストする場合、管理設定のみが [`filesystem.disabled`](#disable-filesystem-isolation) を設定できるため、開発者は管理者がデプロイしたファイルシステム制限をオフにすることはできません。`mask` エントリがキーをピンするかどうかは、それがどのように解決されるかに依存します。[どの設定がそれを無効にできるか](#which-settings-can-disable-it)の下の表は 4 つのケースをカバーしています。

879 

880<h4 id="repository-settings-under-an-admin-required-sandbox">

881 管理者必須のサンドボックスにおけるリポジトリ設定

882</h4>

883 

884次のいずれかの設定が有効な間、サンドボックスは管理者必須になります。

885 

886* [`allowUnsandboxedCommands`](/docs/ja/settings-reference#sandbox-allowunsandboxedcommands) が管理設定で `false` に設定されている場合、または管理設定で `true` に設定されていない限り `--settings` フラグで `false` に設定されている場合

887* [`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly) が管理設定で `true` に設定されている場合

888 

889これらの設定はサンドボックスをオンにしないため、`enabled` も設定してください。

890 

891サンドボックスが管理者必須である間、Claude Code はサンドボックスを緩める設定を、管理設定、`--settings` フラグ、および各開発者の `~/.claude/settings.json` からのみ取得します。リポジトリの `.claude/settings.json` および `.claude/settings.local.json` にある次の設定は無視されます。

892 

893| リポジトリの設定 | Claude Code が無視するもの |

894| :- | :- |

895| `excludedCommands`、`ignoreViolations`、`network.allowedDomains`、`network.allowUnixSockets`、`network.allowMachLookup`、`network.httpProxyPort`、`network.socksProxyPort` | すべてのエントリ |

896| `filesystem.allowWrite`、`Edit(...)` 許可ルール、`permissions.additionalDirectories` | 各エントリがサンドボックス化されたコマンドに与える書き込みアクセス。Claude のファイルツールは引き続き `Edit(...)` ルールと追加ディレクトリに従います |

897| `WebFetch(domain:...)` 許可ルール | 各ルールがサンドボックスの許可リストに追加するホスト。WebFetch ツールは引き続きそのルールに従います |

898| `enableWeakerNestedSandbox`、`enableWeakerNetworkIsolation`、`network.allowAllUnixSockets`、`network.allowLocalBinding` | `true`。`false` は引き続き適用されます |

899| `enabled`、`failIfUnavailable` | 開発者の `~/.claude/settings.json` が `true` を設定している場合の `false` |

900| `filesystem.allowRead` | 管理設定、`--settings`、またはユーザー設定で読み取りが拒否されているパスまたはその配下のエントリ、あるいはそれに一致する可能性のある glob |

901 

902サンドボックスが管理者必須である間も、次の設定は引き続き適用されます。

903 

904* **リポジトリのファイル内**:deny エントリと `autoAllowBashIfSandboxed` の値。リポジトリによる変更を防ぐには、管理設定でこのキーを設定してください

905* **開発者自身の設定内**:表にある設定は、`allowManagedDomainsOnly` などの管理専用ロックの対象でない限り、`~/.claude/settings.json` または `--settings` から引き続き適用されます。`excludedCommands` や `filesystem.allowWrite` など、そのほとんどには管理専用ロックがありません

710 906 

711管理設定で `allowManagedReadPathsOnly` を `true` に設定して、管理設定からの `allowRead` エントリのみが尊重されるようにします。これにより、開発者は組織承認パスを超えて読み取りアクセスを広げるのを防止します。ネットワークドメインを同じ方法で管理値にロックするには、[`allowManagedDomainsOnly`](/docs/ja/settings-reference#sandbox-network-allowmanageddomainsonly)を設定します。907[管理設定でサンドボックス化を実施する](#enforce-sandboxing-with-managed-settings)の設定により、サンドボックスは管理者必須になります。リポジトリからは指定できないため、承認済みのツールに必要な `excludedCommands`、`allowWrite`、およびソケットのエントリは管理設定に追加してください。

712 908 

713管理設定が `sandbox.filesystem` を設定するか、`"mode": "deny"` を含む `sandbox.credentials.files` エントリをリストする場合、管理設定のみが [`filesystem.disabled`](#disable-filesystem-isolation)を設定できるため、開発者は管理者がデプロイしたファイルシステム制限をオフにすることはできません。`mask` エントリがキーをピンするかどうかは、それがどのように解決されるかに依存します。[どの設定がそれを無効にできるか](#which-settings-can-disable-it)の下の表は 4 つのケースをカバーしています。909Claude Code v2.1.285 以降が必要です。v2.1.282 から v2.1.284 では、同じ設定によって Claude Code はリポジトリの `excludedCommands` エントリを無視していました。

714 910 

715`excludedCommands` には同等の管理のみロックダウンがないため、開発者は常にサンドボックス外で実行する追加コマンドを追加するエントリを追加できます。管理リストを狭く保ちます。911<h4 id="locks-that-apply-without-an-admin-required-sandbox">

912 管理者必須のサンドボックスがなくても適用されるロック

913</h4>

914 

915一部の設定は、サンドボックスが管理者必須でない場合でも、1 つの制限を直接上書きするリポジトリのキーを Claude Code に無視させます。各設定がこの効果を持つのは、その行に記載されたファイルで設定した場合のみであり、リポジトリのその他のサンドボックス設定は引き続き適用されます。Claude Code v2.1.285 以降が必要です。

916 

917| 設定 | 設定する場所 | Claude Code がリポジトリの設定で無視するもの |

918| :- | :- | :- |

919| `network.deniedDomains` または `WebFetch(domain:...)` 拒否ルール | 管理設定、`--settings` | `httpProxyPort` と `socksProxyPort` |

920| `network.strictAllowlist` | 管理設定、`--settings`、ユーザー設定 | プロキシポート、`allowedDomains`、および `WebFetch(domain:...)` 許可ルール |

921| `filesystem.denyRead`、`Read(...)` 拒否ルール、または `credentials.files` エントリ | 管理設定、`--settings` | 管理設定、`--settings`、またはユーザー設定で読み取りが拒否されているパスまたはその配下にある `allowRead`、`allowWrite`、`Edit(...)` 許可、または `additionalDirectories` のエントリ、あるいはそれに一致する可能性のある glob |

922 

923これらのロックは、サンドボックス化されたコマンドがアクセスできる範囲を変更します。WebFetch ツールと Claude のファイルツールは、引き続きリポジトリのルールと追加ディレクトリに従います。

716 924 

717<h3 id="custom-proxy-configuration">925<h3 id="custom-proxy-configuration">

718 カスタムプロキシ設定926 カスタムプロキシ設定

719</h3>927</h3>

720 928 

721高度なネットワークセキュリティを必要とする組織の場合、カスタムプロキシを実装して以下を行うことができます。929独自のツールでサンドボックストラフィックを検査、フィルタリング、またはログに記録するには、組み込みのサンドボックスプロキシを、同じマシン上で実行する独自のプロキシに置き換えます。

722 930 

723* HTTPS トラフィックを復号化して検査する931ネットワーク上の別の場所にある企業プロキシを通じてサンドボックストラフィックをルーティングするには、代わりに [ネットワーク分離](#network-isolation)の **企業プロキシ** の項目で説明されているように `HTTPS_PROXY` を設定します。そうすることで、Claude Code の許可リストが引き続き適用されます。

724* カスタムフィルタリングルールを適用する

725* すべてのネットワークリクエストをログに記録する

726* 既存のセキュリティインフラストラクチャと統合する

727 932 

728Claude Code をプロキシにポイントするには、[サンドボックス設定](/docs/ja/settings-reference#sandbox-settings)でプロキシポートを設定します。933サンドボックス化されたコマンドをプロキシに向けるには、[サンドボックス設定](/docs/ja/settings-reference#sandbox-settings)でプロキシがリッスンする localhost のポートを設定します。

729 934 

730```json theme={null}935```json theme={null}

731{936{


738}943}

739```944```

740 945 

946ポートを設定し、さらに `HTTPS_PROXY` または `HTTP_PROXY` も設定した場合、Claude Code はサンドボックス化されたコマンドが独自のプロキシに送信したものを、これらの変数で指定されたプロキシに転送しません。企業プロキシにアクセスするには、独自のプロキシがそこへ転送するように設定してください。

947 

948どのファイルでポートを設定できるかは、その他のサンドボックス設定によって異なります。

949 

950* **`allowManagedDomainsOnly` がオンの場合**:管理設定のみ

951* **サンドボックスが[管理者必須](#repository-settings-under-an-admin-required-sandbox)である場合、または[より限定的なネットワークロック](#locks-that-apply-without-an-admin-required-sandbox)が適用される場合**:管理設定、`--settings`、およびユーザー設定

952* **それ以外の場合**:任意の設定ファイル

953 

954Claude Code はそれ以外の場所で設定されたポートを無視します。v2.1.285 より前は、任意の設定ファイルでポートを設定できました。

955 

956<Warning>

957 いずれかのポートが適用されると、そのプロキシに送信されるすべてのものをフィルタリングする責任は独自のプロキシが負います。`allowedDomains`、`deniedDomains`、`strictAllowlist`、承認プロンプト、[ローカルアドレスのチェック](#hostnames-that-resolve-to-local-addresses)など、Claude Code 自体のネットワーク制御はそのトラフィックには適用されなくなります。サンドボックス化されたコマンドはどちらのプロキシにも接続できるため、ポートを 1 つだけ設定した場合、もう一方のプロキシにおける Claude Code のドメインリストでは、コマンドが独自のプロキシを通じてアクセスする先を制限できません。

958</Warning>

959 

741<h2 id="troubleshooting">960<h2 id="troubleshooting">

742 トラブルシューティング961 トラブルシューティング

743</h2>962</h2>

744 963 

745一部のコマンドはサンドボックス内で失敗しますが、サンドボックス外では機能します。以下の修正は最も一般的なケースをカバーしています。964一部のコマンドはサンドボックス内で失敗しますが、サンドボックス外では機能します。以下のリストでは簡単な修正方法を取り上げます。より詳しい説明が必要な失敗については、それぞれ個別の見出しで説明します。

965 

966組織のサンドボックスが[管理者必須](#repository-settings-under-an-admin-required-sandbox)の場合、Claude Code はプロジェクトの設定ファイル内にある、これらの修正で挙げる設定を無視します。そのため、すべてのプロジェクトで適用される `~/.claude/settings.json` に保存してください。それでも修正が効果を持たない場合は、組織の管理設定がそのキーを設定している可能性があります。

967 

968`excludedCommands` パターンを追加する修正では、そのパターンに一致するコマンドからサンドボックスが外れます。[除外されたコマンドでできること](#run-commands-outside-the-sandbox-with-excludedcommands)を参照してください。

746 969 

747* **コマンドがホスト許可なしエラーで失敗する**:多くの CLI ツールは特定のホストに到達する必要があります。プロンプトが表示されたときに許可を付与すると、ホストが許可リストに追加されるため、ツールは将来サンドボックス内で実行されます。970* **コマンドがホスト許可なしエラーで失敗する**:多くの CLI ツールは特定のホストに到達する必要があります。プロンプトが表示されたらホストを承認するか、[`allowedDomains`](/docs/ja/settings-reference#sandbox-network-alloweddomains) に追加してください。組織が `allowManagedDomainsOnly` で許可リストをロックしている場合はプロンプトが表示されないため、管理者にホストの追加を依頼してください。

748* **`jest` がハングまたは失敗する**:`watchman` はサンドボックスと互換性がありません。代わりに `jest --no-watchman` を実行してください。971* **`jest` がハングまたは失敗する**:`watchman` はサンドボックスと互換性がありません。代わりに `jest --no-watchman` を実行してください。

749* **Go ベースの CLI が macOS で TLS 検証に失敗する**:`gh`、`gcloud`、`terraform` などのツールは Seatbelt の下で TLS 検証に失敗する可能性があります。これらのツールを [`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) にリストしてください。`httpProxyPort` を MITM プロキシとカスタム CA で使用している場合は、代わりに [`enableWeakerNetworkIsolation`](/docs/ja/settings-reference#sandbox-enableweakernetworkisolation) を `true` に設定してください。972* **Go ベースの CLI が macOS で TLS 検証に失敗する**:`gh`、`gcloud`、`terraform` などのツールは Seatbelt の下で TLS 検証に失敗する可能性があります。各ツールのパターン(`gh *` など)を [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) に追加してください。そのツールはユーザーの完全なアクセス権と保存された認証情報で実行されます。`httpProxyPort` を MITM プロキシとカスタム CA で使用している場合は、代わりに [`enableWeakerNetworkIsolation`](/docs/ja/settings-reference#sandbox-enableweakernetworkisolation) を `true` に設定してください。

750* **`open`、`osascript`、またはブラウザベースの認証フローが macOS でエラー `-600` で失敗する**:サンドボックスはデフォルトで Apple Events をブロックします。ユーザー、管理、または CLI 設定で [`allowAppleEvents`](/docs/ja/settings-reference#sandbox-allowappleevents) を `true` に設定して、それらを許可してください。プロジェクト設定はこのキーでは無視されます。これを有効にするとコード実行の分離が削除されます。サンドボックス化されたコマンドはユーザープロンプトなしで他のアプリケーションをサンドボックス化されていない状態で起動でき、macOS オートメーション同意プロンプト(TCC)の対象となる実行中のアプリケーションに AppleScript コマンドを送信できるためです。または、コマンドを [`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) に追加してください。973* **`open`、`osascript`、またはブラウザベースの認証フローが macOS でエラー `-600` で失敗する**:サンドボックスはデフォルトで Apple Events をブロックします。ユーザー、管理、または CLI 設定で [`allowAppleEvents`](/docs/ja/settings-reference#sandbox-allowappleevents) を `true` に設定して、それらを許可してください。プロジェクト設定はこのキーでは無視されます。これを有効にするとコード実行の分離が削除されます。サンドボックス化されたコマンドはユーザープロンプトなしで他のアプリケーションをサンドボックス化されていない状態で起動でき、macOS オートメーション同意プロンプト(TCC)の対象となる実行中のアプリケーションに AppleScript コマンドを送信できるためです。または、`open *` などのパターンを [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) に追加してください。その場合、各 `open` 呼び出しは権限フローを経由します。また、`open` は Claude が書いたものを含め、任意のファイルやアプリを起動できます。

751* **`docker` コマンドが失敗する**:`docker` はサンドボックスと互換性がありません。`docker *` を [`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) に追加してください。974* **`docker` コマンドが失敗する**:`docker` はサンドボックスと互換性がありません。必要な `docker` コマンドを、`docker compose *` などの [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) パターンでサンドボックス外に出してください。除外された `docker` コマンドが到達できる範囲については、そのセクションで説明しています。パターンを狭くするほど、サンドボックス外に出るコマンドは少なくなります。

752* **`pbcopy`、`xclip`、または `wl-copy` がクリップボードを更新しない**:これらのクリップボードユーティリティはサンドボックス内からシステムクリップボードに到達できず、パイプされたテキストが到達しない場合があります。975* **`pbcopy`、`xclip`、または `wl-copy` がクリップボードを更新しない**:これらのクリップボードユーティリティはサンドボックス内からシステムクリップボードに到達できず、パイプされたテキストが到達しない場合があります。

753 976 

754 Claude の出力をクリップボードに配置するには、Claude にレスポンスで出力するよう依頼してから、[`/copy`](/docs/ja/commands) を実行してください。`/copy` はサンドボックス化されたコマンドではなく Claude Code プロセスからクリップボードに書き込みます。977 Claude の出力をクリップボードに配置するには、Claude に応答で出力するよう依頼してから、[`/copy`](/docs/ja/commands) を実行してください。`/copy` はサンドボックス化されたコマンドではなく Claude Code プロセスからクリップボードに書き込みます。

755 978 

756 Claude がテキストをこれらのツールの 1 つにパイプする場合、ツールを [`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) に追加しても、その呼び出しをサンドボックス外に出すわけではありません。979 Claude がテキストをこれらのツールの 1 つにパイプする場合、ツールを [`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) に追加しても、それだけではその呼び出しはサンドボックス外に出ません。

757* **git コマンドが `unable to unlink old` で失敗する**:`git merge`、`git checkout` などのコマンドは、サンドボックスが書き込みを拒否するファイルを置き換える必要がある場合にこのように失敗します。そのファイルが `.claude/skills` などの[保護されたパス](#protected-paths)の下にあるか、`denyWrite` エントリの 1 つの下にあるか、またはサンドボックスがコマンドに書き込みを許可するディレクトリの外にあるかどうかです。Linux と WSL2 ではエラーは `Read-only file system` で終わります。980* **git コマンドが `unable to unlink old` で失敗する**:`git merge`、`git checkout` などのコマンドは、サンドボックスが書き込みを拒否するファイルを置き換える必要がある場合にこのように失敗します。そのファイルが `.claude/skills` などの[保護されたパス](#protected-paths)の下にあるか、`denyWrite` エントリの 1 つの下にあるか、またはサンドボックスがコマンドに書き込みを許可するディレクトリの外にあるかどうかです。Linux と WSL2 ではエラーは `Read-only file system` で終わります。

758 981 

759 失敗後、Claude は[コマンドをサンドボックス外で再実行することを提案](#the-unsandboxed-retry-escape-hatch)する場合があります。その再試行を承認するか、別のターミナルで git コマンドを自分で実行してください。`allowUnsandboxedCommands` を `false` に設定している場合、Claude は再試行を提案できないため、コマンドを自分で実行してください。同じ git コマンドが頻繁に失敗する場合は、[`excludedCommands`](/docs/ja/settings-reference#sandbox-excludedcommands) に追加してください。982 失敗後、Claude は[コマンドをサンドボックス外で再実行することを提案](#the-unsandboxed-retry-escape-hatch)する場合があります。その再試行を承認するか、別のターミナルで git コマンドを自分で実行してください。`allowUnsandboxedCommands` を `false` に設定している場合、Claude は再試行を提案できないため、コマンドを自分で実行してください。

760* **Bubblewrap がコンテナ内で起動に失敗する**:非特権コンテナでは、bubblewrap は新しい `/proc` ファイルシステムをマウントできないため、サンドボックス化されたコマンドは `bwrap` エラー(`Can't mount proc on /newroot/proc: Operation not permitted` など)で失敗します。[`enableWeakerNestedSandbox`](/docs/ja/settings-reference#sandbox-enableweakernestedsandbox) を `true` に設定して、内部サンドボックスがコンテナの既存の `/proc` をバインドマウントするようにしてください。このオプションは、外部コンテナが既に必要な分離境界を提供する場合にのみ使用してください。新しい `/proc` マウントが隠すサンドボックス化されたコマンドにプロセス情報を公開するためです。983* **Bubblewrap がコンテナ内で起動に失敗する**:非特権コンテナでは、bubblewrap は新しい `/proc` ファイルシステムをマウントできないため、サンドボックス化されたコマンドは `bwrap` エラー(`Can't mount proc on /newroot/proc: Operation not permitted` など)で失敗します。[`enableWeakerNestedSandbox`](/docs/ja/settings-reference#sandbox-enableweakernestedsandbox) を `true` に設定して、内部サンドボックスがコンテナの既存の `/proc` をバインドマウントするようにしてください。この設定は、外部コンテナが既に必要な分離境界を提供する場合にのみ使用してください。新しい `/proc` マウントが隠すサンドボックス化されたコマンドにプロセス情報を公開するためです。

761* **0 バイトの読み取り専用ファイルが `.claude` 設定パスに表示され、「はい、今後は聞かない」が保存されない**:Linux と WSL2 では、サンドボックスはサンドボックス化されたコマンドが実行されている間に、まだ存在しないファイルに対する書き込み拒否を保持するために、そこに 0 バイトの読み取り専用プレースホルダーを作成します。サンドボックスはその後プレースホルダーを削除します。SIGKILL などによってセッションがそのクリーンアップが実行される前に強制終了された場合、プレースホルダーは残ります。後のセッションは毎回起動時にそれらを読み取り専用で再度バインドするため、プレースホルダーが残っている箇所では、権限の選択を保存するなどの設定書き込みが失敗します。984* **0 バイトの読み取り専用ファイルが `.claude` 設定パスに表示され、「はい、今後は聞かない」が保存されない**:Linux と WSL2 では、サンドボックスはサンドボックス化されたコマンドが実行されている間に、まだ存在しないファイルに対する書き込み拒否を保持するために、そこに 0 バイトの読み取り専用プレースホルダーを作成します。サンドボックスはその後プレースホルダーを削除します。SIGKILL などによってセッションがそのクリーンアップが実行される前に強制終了された場合、プレースホルダーは残ります。後のセッションは毎回起動時にそれらを読み取り専用で再度バインドするため、プレースホルダーが残っている箇所では、権限の選択を保存するなどの設定書き込みが失敗します。

762 985 

763 `claude doctor` を実行して、残されたプレースホルダーファイルをリストアップしてください。[`Stale sandbox mask files left by a killed session`](/docs/ja/errors#stale-sandbox-mask-files-left-by-a-killed-session) 警告は最大 3 つの名前を表示し、残りをカウントします。そのプロジェクトで他の Claude Code セッションが実行されていない間に、`rm` で各ファイルを削除してください。v2.1.257 より前では、Claude Code は同じプレースホルダーを残していましたが、フラグを立てていませんでした。986 `claude doctor` を実行して、残されたプレースホルダーファイルをリストアップしてください。[`Stale sandbox mask files left by a killed session`](/docs/ja/errors#stale-sandbox-mask-files-left-by-a-killed-session) 警告は最大 3 つの名前を表示し、残りをカウントします。そのプロジェクトで他の Claude Code セッションが実行されていない間に、`rm` で各ファイルを削除してください。v2.1.257 より前では、Claude Code は同じプレースホルダーを残していましたが、警告していませんでした。

764* **`--dangerously-skip-permissions` が root として失敗する**:このフラグは Linux と macOS で root として実行するか sudo 経由で実行する場合にブロックされます。root アクセスと許可プロンプトなしを組み合わせるとシステム上のあらゆるファイルまたはサービスを変更できるためです。チェックは認識されたサンドボックス内で自動的にスキップされます。コンテナで自律的に実行するには、[dev container](/docs/ja/devcontainer) 設定を使用してください。これは Claude Code を非 root ユーザーとして実行します。987* **`--dangerously-skip-permissions` が root として失敗する**:このフラグは Linux と macOS で root として実行するか sudo 経由で実行する場合にブロックされます。root アクセスと権限プロンプトなしを組み合わせるとシステム上のあらゆるファイルまたはサービスを変更できるためです。チェックは認識されたサンドボックス内で自動的にスキップされます。コンテナで自律的に実行するには、[dev container](/docs/ja/devcontainer) 設定を使用してください。これは Claude Code を非 root ユーザーとして実行します。

988 

989<h3 id="git-over-ssh-fails-with-the-sandbox-on">

990 サンドボックスがオンの状態で SSH 経由の `git` が失敗する

991</h3>

992 

993macOS では、SSH リモートに対する `git fetch`、`git pull`、`git push` は、ホストが許可されていてもサンドボックス内で失敗します。Linux と WSL2 では、ホストが許可されれば動作します。Claude Code は git の SSH 接続を[サンドボックスプロキシ](#network-isolation)経由でトンネリングしますが、macOS のトンネルはそのプロキシに対して認証できません。

994 

995Linux と WSL2 でそれでも接続が失敗する場合は、以下を確認してください:

996 

997* **ホストがポート 22 で許可されている**:`"git.example.com"` のようにポートを指定しない `allowedDomains` エントリで対象になります

998* **企業プロキシがポート 22 を許可している**:ネットワークでアップストリームプロキシが必要な場合、トンネルもそれを経由します

999* **鍵がファイルとして読み取り可能である**:サンドボックスは `ssh-agent` ソケットをブロックする場合があり、`~/.ssh` に対する `denyRead` または `credentials` エントリは鍵ファイルを隠します

1000 

1001macOS では、リモートを HTTPS に切り替えてください。これには個人用アクセストークンなどの HTTPS 認証情報が必要です:

1002 

1003```bash theme={null}

1004git remote set-url origin https://git.example.com/example-org/example-repo.git

1005```

1006 

1007SSH リモートを維持する必要がある場合は、[`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) で git のネットワークコマンドをサンドボックス外に出してください:

1008 

1009```json theme={null}

1010{

1011 "sandbox": {

1012 "excludedCommands": ["git fetch *", "git pull *", "git push *"]

1013 }

1014}

1015```

1016 

1017これらのエントリは `git push origin main` に一致します。`cd` を追加する呼び出し、`git -C` を使用する呼び出し、またはコマンド置換を含む呼び出しは、サンドボックス内のままです。除外された git コマンドは、`allowedDomains` にあるホストだけでなく、任意のホストに到達できます。

1018 

1019SSH 経由の単純な `ssh`、`scp`、`rsync` は、[データベースクライアントの項目](#a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host)で説明している理由で失敗します。

1020 

1021<h3 id="a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host">

1022 データベースクライアントやその他の非 HTTP ツールが許可されたホストに到達できない

1023</h3>

1024 

1025プロキシの環境変数を無視するツールは、`allowedDomains` にあるホストであっても、サンドボックス内から接続できません。サンドボックス化されたコマンドには[ネットワークへの直接の経路がない](#network-isolation)ため、独自に接続を開くツールは失敗します。ほとんどのデータベースドライバー、単純な `ssh`、UDP を使用するツールはこのように動作します。

1026 

1027失敗はネットワークエラーまたは名前解決エラーのように見えます:

1028 

1029* **macOS**:`Operation not permitted`、または `Could not resolve host` などの名前解決エラー

1030* **Linux と WSL2**:`Network is unreachable`、または `Temporary failure in name resolution` などの名前解決エラー

1031 

1032プロキシを使用するツールは、ホストが許可されていない場合に異なる形で失敗します。ネットワークのプロンプトが表示されるか、ツールがプロキシから `403` レスポンスを受け取ります。

1033 

1034ツールが接続できるようにするには、それを必要とするコマンドを [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) でサンドボックス外で実行してください。この例では 1 つのスクリプトを除外し、[ask ルール](/docs/ja/permissions)を追加して、実行ごとに承認するようにしています:

1035 

1036```json theme={null}

1037{

1038 "sandbox": {

1039 "excludedCommands": ["python scripts/load_orders.py *"]

1040 },

1041 "permissions": {

1042 "ask": ["Bash(python scripts/load_orders.py *)"]

1043 }

1044}

1045```

1046 

1047スクリプトはユーザーの完全なアクセス権で実行され、Claude は作業ディレクトリ内にあるスクリプトを編集できるため、プロンプトが表示されたらスクリプトを確認してください。

1048 

1049<h3 id="a-command-fails-to-reach-a-server-on-localhost">

1050 コマンドが localhost 上のサーバーに到達できない

1051</h3>

1052 

1053デフォルトでは、サンドボックス化されたコマンドは、開発サーバーやコンテナ内のデータベースなど、マシン上でサンドボックス外で実行されているサーバーに直接接続できません。変更できる内容はプラットフォームによって異なります:

1054 

1055* **macOS**:[`network.allowLocalBinding`](/docs/ja/settings-reference#sandbox-network-allowlocalbinding) を `true` に設定します。これにより、サンドボックス化されたコマンドはネットワークポートでリッスンし、localhost の任意のポートに接続できるようになります。これには、そこでリッスンしている他のすべてのサービスが含まれます。その結果、認証を必要としない localhost サービス(デバッガーなど)がサンドボックス外でコマンドの代わりに動作できるようになり、非ループバックアドレスでリッスンするコマンドは他のマシンからの接続を受け入れます

1056* **Linux と WSL2**:サンドボックス化されたコマンドの `localhost` はそのコマンド専用です。コマンドはポートでリッスンでき、自身が起動したサーバーに到達できます。`localhost` または `127.0.0.1` への直接接続はホスト上のサーバーには到達せず、`allowLocalBinding` は効果がありません。ホストのサーバーを必要とするコマンドは、[`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) でサンドボックス外で実行してください。そこではファイルシステムやネットワークの制限はありません。サンドボックスプロキシを経由する接続については、[ローカルアドレスに解決されるホスト名](#hostnames-that-resolve-to-local-addresses)を参照してください

1057 

1058この例では macOS でこの設定をオンにします:

1059 

1060```json theme={null}

1061{

1062 "sandbox": {

1063 "network": {

1064 "allowLocalBinding": true

1065 }

1066 }

1067}

1068```

1069 

1070`localhost` に対する `allowedDomains` エントリはプロキシを経由する接続に適用されるため、直接接続には影響しません。Claude Code はサンドボックス化されたコマンドに `NO_PROXY` を設定し、プロキシ経由ではなく `localhost` に直接接続するようにしています。また、このエントリは、プロキシを使用するコマンドに対して、マシンの localhost のすべてのポートを公開します。`127.0.0.1` を指す開発用ホスト名については、[許可されたホスト名が `resolved to a loopback address` で拒否される](#an-allowed-hostname-is-refused-with-resolved-to-a-loopback-address)を参照してください。

1071 

1072<h3 id="an-allowed-hostname-is-refused-with-resolved-to-a-loopback-address">

1073 許可されたホスト名が `resolved to a loopback address` で拒否される

1074</h3>

1075 

1076サンドボックスプロキシは、[ローカルアドレスに解決される](#hostnames-that-resolve-to-local-addresses)許可されたホスト名を拒否します。これは `127.0.0.1` を指す `myapp.test` などの開発用の名前に影響します。コマンドは `403` レスポンスを受け取り、その本文には `Connection to myapp.test blocked: resolved to a loopback address` のようにアドレスの種類が示されます。

1077 

1078名前の解決先の IP アドレスをホスト名と並べて `allowedDomains` に追加し、それぞれにサーバーがリッスンするポートを指定してください:

1079 

1080```json theme={null}

1081{

1082 "sandbox": {

1083 "network": {

1084 "allowedDomains": ["myapp.test:3000", "127.0.0.1:3000"]

1085 }

1086 }

1087}

1088```

1089 

1090ポートを指定しない IP アドレスのエントリでは、サンドボックス化されたコマンドがそのアドレスでリッスンしているすべてのサービスに到達できるようになります。

1091 

1092v2.1.284 より前では、プロキシは許可されたホスト名がどのアドレスに解決されても接続していました。

1093 

1094<h3 id="/sandbox-fails-with-sandbox-settings-are-overridden-by-a-higher-priority-configuration">

1095 `/sandbox` が `Sandbox settings are overridden by a higher-priority configuration` で失敗する

1096</h3>

1097 

1098上位の[設定レベル](/docs/ja/settings#settings-precedence)が `sandbox.enabled`、`sandbox.autoAllowBashIfSandboxed`、または `sandbox.allowUnsandboxedCommands` を設定している場合、`/sandbox` はパネルを開く代わりに `Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.` を出力します。パネルは選択内容を `.claude/settings.local.json` に保存しますが、そこに保存された値はそれらのレベルを上書きできません。

1099 

1100管理設定と `--settings` はローカル設定より優先されます。このセッションでどれが読み込まれたかを確認するには、`/status` を実行して `Setting sources` 行を確認してください:

1101 

1102* **`Command line arguments`**:[`--settings`](/docs/ja/settings#change-a-setting-for-one-session) を指定して Claude Code を起動した場合は、渡したファイルまたは JSON がこれらのキーのいずれかを設定しているか確認してください。設定している場合は、そこで値を変更するか、これらのキーを含めずに Claude Code を再起動してください。

1103* **`Enterprise managed settings`**:組織の管理設定が読み込まれています。それらがこれらのキーのいずれかを設定している場合、そのキーは `/sandbox` からも、ユーザーが管理するどの設定ファイルからも変更できないため、管理者に問い合わせてください。

765 1104 

766<h2 id="limitations">1105<h2 id="limitations">

767 制限事項1106 制限事項


773 セキュリティ上の制限1112 セキュリティ上の制限

774</h3>1113</h3>

775 1114 

776* **ネットワークフィルタリング**:サンドボックスは、プロセスが接続できるドメインを制限します。デフォルトでは、組み込みプロキシは発信トラフィックを終了または検査しないため、暗号化された接続の内容は検査されません。実験的な [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 設定は、[`mask` 認証情報置換](#mask-credentials)のためにプロキシで TLS を終了しますが、コンテンツフィルタリングは追加しません。ポリシーで許可されるのは信頼できるドメインのみであることを確認する責任があります。1115* **ネットワークフィルタリング**:サンドボックスは、プロセスが接続できるドメインを制限します。デフォルトでは、組み込みプロキシは発信トラフィックの TLS を終端または検査しないため、暗号化された接続の内容は検査されません。実験的な [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 設定は、[`mask` 認証情報置換](#mask-credentials)のためにプロキシで TLS を終了しますが、コンテンツフィルタリングは追加しません。ポリシーで許可されるのは信頼できるドメインのみであることを確認する責任があります。

777 1116 

778<Warning>1117<Warning>

779 `github.com` などの広いドメインを許可すると、データ流出のパスが作成される可能性があります。プロキシは TLS を検査せずにクライアント提供のホスト名から許可決定を行うため、サンドボックス内で実行されるコードは [ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting)または同様の技術を使用して許可リスト外のホストに到達する可能性があります。脅威モデルがより強力な保証を必要とする場合は、TLS を終了してトラフィックを検査し、CA 証明書をサンドボックス内にインストールする [カスタムプロキシ](#custom-proxy-configuration)を設定してください。より強力な TLS 対応ネットワーク分離は開発の活発な領域です。1118 `github.com` などの広いドメインを許可すると、データ流出のパスが作成される可能性があります。プロキシは TLS を検査せずにクライアント提供のホスト名から許可決定を行うため、サンドボックス内で実行されるコードは [ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting)または同様の技術を使用して許可リスト外のホストに到達する可能性があります。脅威モデルがより強力な保証を必要とする場合は、TLS を終了してトラフィックを検査し、CA 証明書をサンドボックス内にインストールする [カスタムプロキシ](#custom-proxy-configuration)を設定してください。より強力な TLS 対応ネットワーク分離は開発の活発な領域です。


781 1120 

782* **Unix ソケットを通じた権限昇格**:`allowUnixSockets` 設定は、サンドボックスバイパスにつながる可能性のあるシステムサービスへのアクセスを不注意に付与する可能性があります。たとえば、`/var/run/docker.sock` へのアクセスを許可すると、Docker ソケットを通じてホストシステムへのアクセスが効果的に付与されます。サンドボックスを通じて許可する Unix ソケットを慎重に検討してください。1121* **Unix ソケットを通じた権限昇格**:`allowUnixSockets` 設定は、サンドボックスバイパスにつながる可能性のあるシステムサービスへのアクセスを不注意に付与する可能性があります。たとえば、`/var/run/docker.sock` へのアクセスを許可すると、Docker ソケットを通じてホストシステムへのアクセスが効果的に付与されます。サンドボックスを通じて許可する Unix ソケットを慎重に検討してください。

783* **ファイルシステム権限昇格**:過度に広いファイルシステム書き込み権限は権限昇格攻撃を有効にする可能性があります。`$PATH` の実行可能ファイルを含むディレクトリ、システム設定ディレクトリ、またはユーザーシェル設定ファイル(`.bashrc` または `.zshrc`)への書き込みを許可すると、他のユーザーまたはシステムプロセスがこれらのファイルにアクセスするときに異なるセキュリティコンテキストでコード実行につながる可能性があります。1122* **ファイルシステム権限昇格**:過度に広いファイルシステム書き込み権限は権限昇格攻撃を有効にする可能性があります。`$PATH` の実行可能ファイルを含むディレクトリ、システム設定ディレクトリ、またはユーザーシェル設定ファイル(`.bashrc` または `.zshrc`)への書き込みを許可すると、他のユーザーまたはシステムプロセスがこれらのファイルにアクセスするときに異なるセキュリティコンテキストでコード実行につながる可能性があります。

784* **Linux サンドボックス強度**:Linux 実装は強力なファイルシステムとネットワーク分離を提供しますが、特権付き名前空間のない Docker 環境内、または特権のないユーザー名前空間が sysctl で無効化されている Linux ホスト上で動作できるようにする `enableWeakerNestedSandbox` モードが含まれています。このオプションはセキュリティを大幅に弱め、追加の分離が別の方法で実施される場合にのみ使用する必要があります。1123* **Linux サンドボックス強度**:Linux 実装は強力なファイルシステムとネットワーク分離を提供しますが、特権付き名前空間のない Docker 環境内で動作できるようにする `enableWeakerNestedSandbox` モードが含まれています。このオプションはセキュリティを大幅に弱め、追加の分離が別の方法で実施される場合にのみ使用する必要があります。

785* **macOS での Apple Events**:macOS サンドボックスはデフォルトで Apple Events をブロックします。`allowAppleEvents` 設定はこの制限を解除して、`open` や `osascript` などのツールが動作するようにしますが、コード実行分離を削除します。サンドボックス化されたコマンドは、ユーザープロンプトなしで他のアプリケーションをサンドボックス化されていない状態で起動でき、実行中のアプリケーションに AppleScript コマンドを送信できます。これはアプリごとの macOS オートメーション同意プロンプト(TCC)の対象です。これはユーザー、管理、または CLI 設定からのみ有効です。プロジェクト設定では有効にできません。1124* **macOS での Apple Events**:macOS サンドボックスはデフォルトで Apple Events をブロックします。`allowAppleEvents` 設定はこの制限を解除して、`open` や `osascript` などのツールが動作するようにしますが、コード実行分離を削除します。サンドボックス化されたコマンドは、ユーザープロンプトなしで他のアプリケーションをサンドボックス化されていない状態で起動でき、実行中のアプリケーションに AppleScript コマンドを送信できます。これはアプリごとの macOS オートメーション同意プロンプト(TCC)の対象です。これはユーザー、管理、または CLI 設定からのみ有効です。プロジェクト設定では有効にできません。

786 1125 

787<h3 id="platform-and-tool-compatibility">1126<h3 id="platform-and-tool-compatibility">


796 スコープ1135 スコープ

797</h3>1136</h3>

798 1137 

799サンドボックスは Bash サブプロセスを分離します。他のツールは異なる境界の下で動作します。1138サンドボックスはシェルコマンドとその子プロセスを分離します。サンドボックスの対象外となるツールとヘルパープロセスは、[サンドボックス外で実行されるもの](#what-runs-outside-the-sandbox)に記載されています。コンピュータ使用とサブエージェントとサンドボックスの関係は次のとおりです。

800 1139 

801* **組み込みファイルツール**:Read、Edit、Write はサンドボックスを通じて実行するのではなく、権限システムを直接使用します。[permissions](/docs/ja/permissions)を参照してください。

802* **コンピュータ使用**:Claude がアプリを開いてスクリーンを制御する場合、分離された環境ではなく実際のデスクトップで実行されます。アプリごとの権限プロンプトが各アプリケーションをゲートします。[CLI でのコンピュータ使用](/docs/ja/computer-use)または [Desktop でのコンピュータ使用](/docs/ja/desktop#let-claude-use-your-computer)を参照してください。1140* **コンピュータ使用**:Claude がアプリを開いてスクリーンを制御する場合、分離された環境ではなく実際のデスクトップで実行されます。アプリごとの権限プロンプトが各アプリケーションをゲートします。[CLI でのコンピュータ使用](/docs/ja/computer-use)または [Desktop でのコンピュータ使用](/docs/ja/desktop#let-claude-use-your-computer)を参照してください。

803* **環境変数**:サンドボックス化された Bash コマンドはデフォルトで親プロセス環境を継承します。そこに設定されたすべての認証情報を含みます。サンドボックス化されたコマンドの特定の変数を設定解除またはマスクするには [`sandbox.credentials`](#protect-credentials)を使用するか、すべてのサブプロセスから認証情報を削除するには [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars)を設定してください。

804* **サブエージェント**:[subagents](/docs/ja/sub-agents)は親セッションと同じプロセスで実行され、同じサンドボックス設定を使用します。親セッションでサンドボックス化が有効な場合、サブエージェント内の Bash コマンドはサンドボックス化されます。1141* **サブエージェント**:[subagents](/docs/ja/sub-agents)は親セッションと同じプロセスで実行され、同じサンドボックス設定を使用します。親セッションでサンドボックス化が有効な場合、サブエージェント内の Bash コマンドはサンドボックス化されます。

1142* **Mod**:[mod](/docs/ja/plugins/mods/overview) は Claude Code 内で独自のコードを実行するプラグインであり、mod が起動するプロセスはサンドボックス外で実行されます。[mod がアクセスできる範囲](/docs/ja/plugins/mods/overview#what-a-mod-can-reach)を参照してください。

805 1143 

806<Warning>1144<Warning>

807 効果的なサンドボックス化にはファイルシステムとネットワークの両方の分離が必要です。ネットワーク分離がない場合、侵害されたエージェントは SSH キーなどの機密ファイルを流出させる可能性があります。ファイルシステム分離がない場合、[ファイルシステムレイヤーを無効化](#disable-filesystem-isolation)することによるものであれ、侵害されたエージェントはシステムリソースにバックドアを仕掛けてネットワークアクセスを取得する可能性があります。デフォルトを広げるときは、`allowWrite` パス、広い `allowedDomains` エントリ、または `excludedCommands` 例外が反対側の制限を元に戻さないことを確認してください。1145 効果的なサンドボックス化にはファイルシステムとネットワークの両方の分離が必要です。ネットワーク分離がない場合、侵害されたエージェントは SSH キーなどの機密ファイルを流出させる可能性があります。ファイルシステム分離がない場合、それが制限の緩いポリシーによるものであれ、[ファイルシステムレイヤーを無効化](#disable-filesystem-isolation)したことによるものであれ、侵害されたエージェントはシステムリソースにバックドアを仕掛けてネットワークアクセスを取得する可能性があります。デフォルトを広げるときは、`allowWrite` パス、広い `allowedDomains` エントリ、または `excludedCommands` 例外が反対側の制限を元に戻さないことを確認してください。

808</Warning>1146</Warning>

809 1147 

810<h2 id="see-also">1148<h2 id="see-also">

security.md +14 −18

Details

20 パーミッションベースのアーキテクチャ20 パーミッションベースのアーキテクチャ

21</h3>21</h3>

22 22 

23Manual モードでは、Claude Code は読み取り専用の権限で開始されます。Claude Code がファイルを編集したり、テストを実行したり、コマンドを実行したりする必要がある場合、まずあなたに確認し、アクションを 1 回だけ承認するか、それ以降は常に許可するかを選択できます。23セッションの権限モードは、Claude が事前に確認せずに実行できるアクションを決定します。auto モードは、対話型のターミナルセッションと VS Code セッションにおける組み込みの開始権限モードです。[セッションがどのモードで開始されるか](/docs/ja/permission-modes#which-mode-a-session-starts-in) では、以前のバージョン、その他のサーフェス、および開始権限モードを変更する設定について説明しています。

24 24 

25Manual モードでは、Claude Code はシステムを変更できる Bash コマンドを実行する前にも確認します。`ls`、`cat`、`git status` などの [読み取り専用コマンド](/docs/ja/permissions#read-only-commands) の組み込みセットは、確認なしで実行されます。あなたと組織は、これらの権限を直接設定します。25* **auto モード**: 別の分類器モデルがユーザーの代わりにアクションをレビューし、安全でないと判断したものをブロックします。[分類器がアクションを評価する方法](/docs/ja/permission-modes#how-the-classifier-evaluates-actions) では、Claude Code が直接承認するアクション、分類器に送信するアクション、および Claude Code が引き続きユーザーに確認するアクションを一覧表示しています。明示的な ask ルールと deny ルールは引き続き適用され、組織は [auto モードをオフにする](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) ことができます

26* **Manual モード**: Claude Code は読み取り専用の権限で開始されます。ファイルを編集したり、テストを実行したり、コマンドを実行したりする必要がある場合は、まずユーザーに確認し、ユーザーはアクションを 1 回だけ承認するか、それ以降は常に許可するかを選択できます。`ls`、`cat`、`git status` などの [読み取り専用コマンド](/docs/ja/permissions#read-only-commands) の組み込みセットは、確認なしで実行されます

26 27 

27[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) では、別の分類器モデルがあなたの代わりにアクションをレビューし、安全でないと判断したものをブロックします。[分類器がアクションを評価する方法](/docs/ja/permission-modes#how-the-classifier-evaluates-actions) では、Claude Code が直接承認するアクション、分類器に送信するアクション、およびあなたに確認するアクションを一覧表示しています。明示的な ask ルールと deny ルールは引き続き適用され、組織は [auto モードをオフにする](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) ことができます。28ユーザーと組織は、これらの権限を直接設定します。詳細な権限設定については、[Permissions](/docs/ja/permissions) を参照してください。

28 

29セッションが開始される権限モードは、プラン、開始するサーフェス、設定、および組織の設定によって異なります。[権限モード](/docs/ja/permission-modes#which-mode-a-session-starts-in) を参照してください。

30 

31詳細なパーミッション設定については、[Permissions](/docs/ja/permissions) を参照してください。

32 29 

33<h3 id="built-in-protections">30<h3 id="built-in-protections">

34 組み込み保護機能31 組み込み保護機能


37agentic システムのリスクを軽減するために:34agentic システムのリスクを軽減するために:

38 35 

39* **サンドボックス化された bash ツール**: [Sandbox](/docs/ja/sandboxing) bash コマンドをファイルシステムとネットワークの分離で実行し、権限プロンプトを減らしながらセキュリティを維持します。`/sandbox` で設定して、Claude Code が自律的に動作できる境界を定義します36* **サンドボックス化された bash ツール**: [Sandbox](/docs/ja/sandboxing) bash コマンドをファイルシステムとネットワークの分離で実行し、権限プロンプトを減らしながらセキュリティを維持します。`/sandbox` で設定して、Claude Code が自律的に動作できる境界を定義します

40* **作業ディレクトリの境界**: Manual モードでは、Claude Code は開始されたフォルダとそのサブフォルダにのみ書き込みでき、明示的な権限なしに親ディレクトリのファイルを変更することはできません。Manual モードでは、Claude Code は Read、Grep、Glob ツールを使用してこの境界外のパスを読み取る前にも確認します。[追加ディレクトリ](/docs/ja/permissions#working-directories) でこの境界を拡張して確認をスキップするか、サンドボックスが有効な場合にのみ適用される [sandbox `denyRead` ルール](/docs/ja/sandboxing#filesystem-isolation) で読み取り専用 Bash コマンドで利用可能なより広い読み取りアクセスを制限します37* **作業ディレクトリの境界**: Manual モードでは、Claude Code のファイルツールが、起動されたフォルダとそのサブフォルダの外部で読み取りまたは書き込みを行う前に、ユーザーに確認します。この境界は権限プロンプトであるため、ユーザーが承認した Bash コマンドは、ユーザーアカウントが書き込み可能な任意の場所に書き込むことができます

38 * 確認なしでフォルダを読み取るには、そのフォルダを [追加ディレクトリ](/docs/ja/permissions#working-directories) として追加します

39 * オペレーティングシステムレベルで Bash コマンドを制限するには、[サンドボックス化](/docs/ja/sandboxing#filesystem-isolation) をオンにします

41* **プロンプト疲労の軽減**: ユーザーごと、コードベースごと、または組織ごとに頻繁に使用される安全なコマンドのホワイトリスト化をサポート40* **プロンプト疲労の軽減**: ユーザーごと、コードベースごと、または組織ごとに頻繁に使用される安全なコマンドのホワイトリスト化をサポート

42* **Accept Edits モード**: ファイル編集と `mkdir`、`touch`、`rm`、`mv`、`cp`、`sed` などの固定セットのファイルシステム Bash コマンドを作業ディレクトリ内のパスに対して自動承認します。その他の Bash コマンドとスコープ外のパスはプロンプトが表示されます41* **Accept Edits モード**: ファイル編集と `mkdir`、`touch`、`rm`、`mv`、`cp`、`sed` などの固定セットのファイルシステム Bash コマンドを作業ディレクトリ内のパスに対して自動承認します。その他の Bash コマンドとスコープ外のパスはプロンプトが表示されます

43 42 


45 ユーザーの責任44 ユーザーの責任

46</h3>45</h3>

47 46 

48Claude Code は、ユーザーが付与したパーミッションのみを持ちます。承認前に、提案されたコードとコマンドのセキュリティを確認する責任があります。47承認前に、提案されたコードとコマンドの安全性を確認する責任があります。

49 48 

50<h2 id="protect-against-prompt-injection">49<h2 id="protect-against-prompt-injection">

51 プロンプトインジェクションから保護する50 プロンプトインジェクションから保護する


58</h3>57</h3>

59 58 

60* **権限モード**: Manual モードでは、機密操作には明示的な承認が必要です59* **権限モード**: Manual モードでは、機密操作には明示的な承認が必要です

61* **コンテキスト認識分析**: 完全なリクエストを分析して潜在的に有害な指示を検出します

62* **入力サニタイゼーション**: ユーザー入力を処理することでコマンドインジェクションを防止します

63* **ネットワークコマンド承認**: `curl` や `wget` などのウェブからコンテンツを取得するコマンドはデフォルトでは自動承認されません。Manual モードでは他の読み取り専用以外の Bash コマンドと同様にプロンプトが表示されるため、一度承認するか、`Bash(curl *)` のような明示的な許可ルールを追加できます。Claude がこれらを実行しないようにするには、[`permissions.deny`](/docs/ja/permissions#tool-specific-permission-rules) に追加してください。deny ルールは[書かれたとおりの](/docs/ja/permissions#bash-rule-limits)コマンドにマッチします。コマンドテキストに依存しないネットワーク強制については、[sandbox ネットワーク分離](/docs/ja/sandboxing#network-isolation) を参照してください60* **ネットワークコマンド承認**: `curl` や `wget` などのウェブからコンテンツを取得するコマンドはデフォルトでは自動承認されません。Manual モードでは他の読み取り専用以外の Bash コマンドと同様にプロンプトが表示されるため、一度承認するか、`Bash(curl *)` のような明示的な許可ルールを追加できます。Claude がこれらを実行しないようにするには、[`permissions.deny`](/docs/ja/permissions#tool-specific-permission-rules) に追加してください。deny ルールは[書かれたとおりの](/docs/ja/permissions#bash-rule-limits)コマンドにマッチします。コマンドテキストに依存しないネットワーク強制については、[sandbox ネットワーク分離](/docs/ja/sandboxing#network-isolation) を参照してください

64 61 

65<h3 id="privacy-safeguards">62<h3 id="privacy-safeguards">


79</h3>76</h3>

80 77 

81* **ネットワークリクエスト承認**: Manual モードでは、ネットワークリクエストを行うほとんどのツールはデフォルトでユーザー承認が必要です78* **ネットワークリクエスト承認**: Manual モードでは、ネットワークリクエストを行うほとんどのツールはデフォルトでユーザー承認が必要です

82* **分離されたコンテキストウィンドウ**: Web fetch は潜在的に悪意のあるプロンプトの注入を避けるために別のコンテキストウィンドウを使用します79* **Web ページの要約**: ほとんどのフェッチでは、WebFetch がページに対して別のモデル呼び出しを実行し、Claude は生のページではなくその呼び出しの回答を受け取ります。[WebFetch ツールの動作](/docs/ja/tools-reference#webfetch-tool-behavior) を参照してください

83* **信頼検証**: 初回のコードベース実行と新しい MCP サーバーには信頼検証が必要です80* **信頼検証**: 対話型セッションでは、まだ信頼していないフォルダで Claude Code を起動すると、ワークスペースの信頼ダイアログが表示されます。プロジェクトの `.mcp.json` 内のサーバーには独自の承認プロンプトがあり、[プロジェクトスコープ](/docs/ja/mcp#project-scope) にはそのプロンプトをスキップするセッションが記載されています

84 * 注:信頼検証は `-p` フラグで非対話的に実行する場合は無効になります81 * 注:`-p` セッションではどちらのプロンプトも表示されません。そこでリポジトリのファイルが実行できるものについては、[フォルダを信頼する前に実行されるもの](/docs/ja/permissions#what-runs-before-you-trust-a-folder) に記載されています

85 * 注:Claude Code をホームディレクトリで直接起動する場合、信頼受け入れは現在のセッションのみ保持され、ディスクに書き込まれないため、起動するたびにプロンプトが再度表示されます。これを永続化するための設定はありません。代わりに、プロジェクトサブディレクトリから Claude Code を起動してください。そこでは信頼受け入れはディレクトリごとに保存されます82 * 注:Claude Code をホームディレクトリで直接起動する場合、信頼受け入れは現在のセッションのみ保持され、ディスクに書き込まれないため、起動するたびにプロンプトが再度表示されます。これを永続化するための設定はありません。代わりに、プロジェクトサブディレクトリから Claude Code を起動してください。そこでは信頼受け入れはディレクトリごとに保存されます

86* **コマンドインジェクション検出**: Manual モードでは、疑わしい bash コマンドは、以前にホワイトリストに登録されていても手動承認が必要です83* **コマンドインジェクション検出**: Manual モードでは、Claude Code は完全に分析できない Bash コマンドを実行する前に確認を求めます。`Bash(git *)` のようなコマンドの一部に対する許可ルールがあっても、このプロンプトはスキップされません。[サンドボックス化されたコマンド](/docs/ja/permissions#how-permissions-interact-with-sandboxing) はこのプロンプトなしで実行できます

87* **フェイルクローズドマッチング**: Manual モードでは、マッチしないコマンドはデフォルトで承認が必要です84* **フェイルクローズドマッチング**: Manual モードでは、マッチしないコマンドはデフォルトで承認が必要です

88* **自然言語説明**: 複雑な bash コマンドにはユーザーの理解のための説明が含まれます85* **セキュアな認証情報ストレージ**: API キーとトークンは、利用可能な場合は macOS Keychain に保存されます。Linux ではモード `0600` のファイルに保存され、Windows ではユーザープロファイルディレクトリのアクセス制御を継承するファイルに保存されます。[Credential Management](/docs/ja/authentication#credential-management) を参照してください

89* **セキュアな認証情報ストレージ**: API キーとトークンは利用可能な場合は macOS Keychain に保存され、Windows と Linux ではファイルパーミッションで保護されます。[Credential Management](/docs/ja/authentication#credential-management) を参照してください

90 86 

91<Warning>87<Warning>

92 **Windows WebDAV セキュリティリスク**: Windows で Claude Code を実行する場合、WebDAV を有効にしたり、Claude Code に `\\*` などの WebDAV サブディレクトリを含む可能性のあるパスへのアクセスを許可することはお勧めしません。[WebDAV は Microsoft によって非推奨になっています](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) セキュリティリスクのため。WebDAV を有効にすると、Claude Code がリモートホストへのネットワークリクエストをトリガーし、パーミッションシステムをバイパスする可能性があります。88 **Windows WebDAV セキュリティリスク**: Windows で Claude Code を実行する場合、WebDAV を有効にしたり、Claude Code に `\\*` などの WebDAV サブディレクトリを含む可能性のあるパスへのアクセスを許可することはお勧めしません。[WebDAV は Microsoft によって非推奨になっています](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) セキュリティリスクのため。WebDAV を有効にすると、Claude Code がリモートホストへのネットワークリクエストをトリガーし、パーミッションシステムをバイパスする可能性があります。


108 MCP セキュリティ104 MCP セキュリティ

109</h2>105</h2>

110 106 

111Claude Code ユーザーは Model Context Protocol(MCP)サーバーを設定できます。許可された MCP サーバーのリストは、エンジニアがソース管理にチェックインする Claude Code 設定の一部として、ソースコードで設定されます。107Claude Code を Model Context Protocol(MCP)サーバーに接続できます。プロジェクトスコープのサーバーは `.mcp.json` で定義され、このファイルはソース管理にチェックインできます。[その他のスコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーや [claude.ai コネクタ](/docs/ja/mcp#how-connectors-reach-claude-code)はリポジトリの外部で設定され、プラグインもサーバーを追加できるため、`.mcp.json` を確認しても、セッションが読み込む可能性のあるすべてのサーバーがわかるわけではありません。組織内で実行されるサーバーを制限するには、[マネージド MCP 設定](/docs/ja/managed-mcp)を参照してください。

112 108 

113独自の MCP サーバーを作成するか、信頼できるプロバイダーからの MCP サーバーを使用することをお勧めします。Claude Code パーミッションを MCP サーバー用に設定できます。Anthropic は MCP サーバーを [リスティング基準](https://claude.com/docs/connectors/building/review-criteria) に照らして確認してから [Anthropic Directory](https://claude.ai/directory) に追加しますが、MCP サーバーのセキュリティ監査または管理は行いません。109独自の MCP サーバーを作成するか、信頼できるプロバイダーからの MCP サーバーを使用することをお勧めします。Claude Code パーミッションを MCP サーバー用に設定できます。Anthropic は MCP サーバーを [リスティング基準](https://claude.com/docs/connectors/building/review-criteria) に照らして確認してから [Anthropic Directory](https://claude.ai/directory) に追加しますが、MCP サーバーのセキュリティ監査または管理は行いません。

114 110 

Details

4 4 

5# セルフホストされた環境でセッションをカスタマイズする5# セルフホストされた環境でセッションをカスタマイズする

6 6 

7> ラッパースクリプト、ライフサイクルフック、オンデマンドランナースポーニングを使用して、セルフホストされた環境セッションをセッションごとの認証情報、ライフサイクルフック、オンデマンドランナースポーニングでカスタマイズします。7> セッションごとの認証情報のためのラッパースクリプト、ライフサイクルフック、オンデマンドランナースポーニングを使用して、セルフホストされた環境のセッションをカスタマイズします。

8 8 

9<Note>9<Note>

10 セルフホストされた環境は Team および Enterprise プランでパブリックベータ版です。[Owner](/docs/ja/cloud-environments#organization-shared-environments) が [**Cloud environments** 管理ページ](https://claude.ai/admin-settings/cloud-environments) で **Allow self-hosted environments** をオンにすることで有効になります。このページは動作するランナーを前提としています。セットアップについては [クイックスタート](/docs/ja/self-hosted-environments-quickstart) を、フリートレシピについては [本番環境へのデプロイ](/docs/ja/self-hosted-environments-deploy) を参照してください。10 セルフホストされた環境は Team および Enterprise プランでパブリックベータ版です。[Owner](/docs/ja/cloud-environments#organization-shared-environments) が [**Cloud environments** 管理ページ](https://claude.ai/admin-settings/cloud-environments) で **Allow self-hosted environments** をオンにすることで有効になります。このページは動作するランナーを前提としています。セットアップについては [クイックスタート](/docs/ja/self-hosted-environments-quickstart) を、フリートレシピについては [本番環境へのデプロイ](/docs/ja/self-hosted-environments-deploy) を参照してください。


61 61 

62ラッパーでファイルディスクリプタ 3 を閉じたり再利用したりしないでください。こどもの stdout と stderr をリダイレクトするのは問題ありません。62ラッパーでファイルディスクリプタ 3 を閉じたり再利用したりしないでください。こどもの stdout と stderr をリダイレクトするのは問題ありません。

63 63 

64<h3 id="pass-the-system-prompt-flags-through">

65 システムプロンプトフラグをそのまま渡す

66</h3>

67 

68Anthropic のコントロールプレーンがセッションに送信するシステムプロンプトと追加システムプロンプトは、インラインテキストではなくファイルパスとしてラッパーに届きます。ランナーは各プロンプトをセッションの設定ディレクトリ `CLAUDE_CONFIG_DIR` 内のファイルに書き込み、そのパスをラッパーが受け取る引数の中で [`--system-prompt-file <path>` または `--append-system-prompt-file <path>`](/docs/ja/cli-reference#system-prompt-flags) として渡します。

69 

70Claude Code v2.1.281 以降のランナーは、プロンプトをファイルとして配信します。v2.1.281 より前は、ランナーはプロンプトを `--system-prompt <text>` および `--append-system-prompt <text>` として渡していました。

71 

72ラッパースクリプトまたは [`command` フック](#command) では、これらのフラグを次のように扱います。

73 

74* **そのまま渡す**: ラッパーを `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` で終了します。これにより、ファイルフラグが他のすべての引数とともに転送されます。フラグを削除したり書き換えたりしないでください。セッションがプロンプトファイルフラグを失うと、コントロールプレーンがそのセッションに送信した指示なしで実行されます。

75* **v2.1.281 以降のランナーでは、追加したファイルフラグはサーバーのフラグを置き換えるものであり、追加されることはない**: 各プロンプトファイルフラグは単一の値を取り、Claude Code は最後に出現したものを保持します。そのため、`"$@"` の後に `--append-system-prompt-file <path>` を追加すると、ファイルの内容がサーバーの追加指示を置き換えます。サーバーの指示に加えて指示を追加するには、ランナーイメージの `CLAUDE.md` に記述します。ランナーはこれを[すべてのセッションのユーザーレベル設定にシードします](#how-each-session’s-config-is-assembled)。

76 

64<h3 id="provision-credentials-scoped-to-the-session-creator">77<h3 id="provision-credentials-scoped-to-the-session-creator">

65 セッション作成者にスコープされた認証情報をプロビジョニングする78 セッション作成者にスコープされた認証情報をプロビジョニングする

66</h3>79</h3>


451* **誰がそれらを作成するか**:コントロールプレーンはセッションごとまたはサードパーティ入力からではなく、独自のデプロイメント内の固定定数からスクリプトを入力します。464* **誰がそれらを作成するか**:コントロールプレーンはセッションごとまたはサードパーティ入力からではなく、独自のデプロイメント内の固定定数からスクリプトを入力します。

452* **何がそれらを管理するか**:`--settings` を通じて配信されるフックは通常のマージされたフック設定に入り、管理層ではないため、管理設定はまだ適用されます。`disableAllHooks` はそれらを無効にし、[`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) が保つカテゴリーには含まれません。465* **何がそれらを管理するか**:`--settings` を通じて配信されるフックは通常のマージされたフック設定に入り、管理層ではないため、管理設定はまだ適用されます。`disableAllHooks` はそれらを無効にし、[`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) が保つカテゴリーには含まれません。

453 466 

467[Claude Tag](https://claude.com/docs/claude-tag/overview) セッション以外では、セルフホスト環境のセッションはデフォルトで [自動メモリ](/docs/ja/memory#auto-memory) がオフの状態で実行されます。セッションをまたいで引き継ぐべき指示には、ランナーイメージまたはリポジトリ内の `CLAUDE.md` を使用してください。

468 

469ランナーによるホストの `~/.claude/` のスナップショットには `projects/` ディレクトリは含まれません。自動メモリのデフォルトの保存場所はこのディレクトリの下にあります。そこにメモリファイルを置いても、ランナーはそれらをセッションにシードせず、自動メモリがオンになることもありません。

470 

454<h3 id="repository-committed-permission-rules">471<h3 id="repository-committed-permission-rules">

455 リポジトリコミット権限ルール472 リポジトリコミット権限ルール

456</h3>473</h3>

Details

216 "enabledPlugins": {216 "enabledPlugins": {

217 "code-formatter@acme-tools": true217 "code-formatter@acme-tools": true

218 },218 },

219 // サンドボックスコマンド:書き込み可能なビルドディレクトリ。npm と example.com は事前に許可、他のホストはまだプロンプト表示219 // サンドボックスコマンド:書き込み可能なビルドディレクトリ。npm と example.com は事前に許可

220 "sandbox": {220 "sandbox": {

221 "enabled": true,221 "enabled": true,

222 "filesystem": {222 "filesystem": {


250* [`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) と [`allowManagedMcpServersOnly`](/docs/ja/settings-reference#allowmanagedmcpserversonly) は、管理権限と MCP 許可リストのみを適用対象にします250* [`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) と [`allowManagedMcpServersOnly`](/docs/ja/settings-reference#allowmanagedmcpserversonly) は、管理権限と MCP 許可リストのみを適用対象にします

251* `allowedMcpServers` は MCP サーバーを URL で固定します251* `allowedMcpServers` は MCP サーバーを URL で固定します

252* `strictKnownMarketplaces` は 1 つのプラグインマーケットプレイスを許可します252* `strictKnownMarketplaces` は 1 つのプラグインマーケットプレイスを許可します

253* `sandbox` はコマンドを固定ネットワーク許可リストでサンドボックス化し、サンドボックス外での再試行を許可しません253* `sandbox` はコマンドを固定ネットワーク許可リストでサンドボックス化し、サンドボックス外での再試行を許可しません。その `failIfUnavailable` キーは、[サンドボックスを実行できない環境では Claude Code を起動させないようにします](/docs/ja/sandboxing#enforce-sandboxing-with-managed-settings)

254* `requiredMinimumVersion` は最小 Claude Code バージョンを設定します254* `requiredMinimumVersion` は最小 Claude Code バージョンを設定します

255* `cleanupPeriodDays` はセッショントランスクリプトおよび他のローカルデータの保持期間を 7 日に短縮します255* `cleanupPeriodDays` はセッショントランスクリプトおよび他のローカルデータの保持期間を 7 日に短縮します

256* `companyAnnouncements` は起動時にメッセージを表示します256* `companyAnnouncements` は起動時にメッセージを表示します

settings-reference.md +219 −187

Details

592| キー | 説明 | トピック | スコープ |592| キー | 説明 | トピック | スコープ |

593| :- | :- | :- | :- |593| :- | :- | :- | :- |

594| [`advisorModel`](#advisormodel) | Claude が[アドバイザーツール](/docs/ja/advisor)に質問するときに回答するモデルを選択します | モデルと応答 | Any file |594| [`advisorModel`](#advisormodel) | Claude が[アドバイザーツール](/docs/ja/advisor)に質問するときに回答するモデルを選択します | モデルと応答 | Any file |

595| [`agent`](#agent) | すべてのセッションをプロンプト、ツール、モデルを持つ名前付き[サブエージェント](/docs/ja/sub-agents)として開始します | エージェント、セッション、ワークツリー | Any file |595| [`agent`](#agent) | すべてのセッションをプロンプト、ツール、モデルを持つ名前付き[サブエージェント](/docs/ja/sub-agents)として開始します | エージェント、セッション、worktree | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Claude が決定したときに[プッシュ通知をスマートフォンに送信](/docs/ja/remote-control#mobile-push-notifications)することを許可します | リモート、デスクトップ、通知 | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Claude が決定したときに[プッシュ通知をスマートフォンに送信](/docs/ja/remote-control#mobile-push-notifications)することを許可します | リモート、デスクトップ、通知 | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | デプロイされた [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) と一緒に Claude Code が自身で取得する[claude.ai コネクタ](/docs/ja/mcp)をロードします | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | デプロイされた [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) と一緒に Claude Code が自身で取得する[claude.ai コネクタ](/docs/ja/mcp)をロードします | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | デプロイされた [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) と一緒に組み込み[Claude in Chrome](/docs/ja/chrome) サーバーを実行することを許可します | MCP | Managed |598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | デプロイされた [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) と一緒に組み込み[Claude in Chrome](/docs/ja/chrome) サーバーを実行することを許可します | MCP | Managed |


601| [`allowedMcpServers`](#allowedmcpservers) | ユーザーが追加できる[MCP サーバー](/docs/ja/mcp)を許可リストに登録します | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | ユーザーが追加できる[MCP サーバー](/docs/ja/mcp)を許可リストに登録します | MCP | Any file |

602| [`allowedProviders`](#allowedproviders) | マシンが使用できる[API プロバイダー](/docs/ja/third-party-integrations)を制限します | 認証とプロバイダー | Managed |602| [`allowedProviders`](#allowedproviders) | マシンが使用できる[API プロバイダー](/docs/ja/third-party-integrations)を制限します | 認証とプロバイダー | Managed |

603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 組織がデプロイする[フック](/docs/ja/hooks)のみを実行します | フックと自動化 | Managed |603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 組織がデプロイする[フック](/docs/ja/hooks)のみを実行します | フックと自動化 | Managed |

604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | マネージド[MCP](/docs/ja/mcp)許可リストのみが適用されるようにします | MCP | Managed |604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | 管理[MCP](/docs/ja/mcp)許可リストのみが適用されるようにします | MCP | Managed |

605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | [マネージド設定](/docs/ja/managed-settings)を[権限ルール](/docs/ja/permissions#managed-settings)の唯一の設定ソースにします | 権限設定 | Managed |605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | [管理設定](/docs/ja/managed-settings)を[権限ルール](/docs/ja/permissions#managed-settings)の唯一の設定ソースにします | 権限設定 | Managed |

606| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | すべてのセッションで[拡張思考](/docs/ja/model-config#extended-thinking)をオフにします | モデルと応答 | Any file |606| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | すべてのセッションで[拡張思考](/docs/ja/model-config#extended-thinking)をオフにします | モデルと応答 | Any file |

607| [`apiKeyHelper`](#apikeyhelper) | 独自のコマンドで[API 認証情報](/docs/ja/authentication#credential-management)を生成します | 認証とプロバイダー | Any file |607| [`apiKeyHelper`](#apikeyhelper) | 独自のコマンドで[API 認証情報](/docs/ja/authentication#credential-management)を生成します | 認証とプロバイダー | Any file |

608| [`askUserQuestionTimeout`](#askuserquestiontimeout) | 未回答の質問がアイドル時間後に[自動継続](/docs/ja/tools-reference#question-auto-continue-timeout)することを許可します | インターフェースとターミナル | User or managed |608| [`askUserQuestionTimeout`](#askuserquestiontimeout) | 未回答の質問がアイドル時間後に[自動継続](/docs/ja/tools-reference#question-auto-continue-timeout)することを許可します | インターフェースとターミナル | User or managed |


610| [`attribution`](#attribution) | Claude Code がコミットとプルリクエストに追加する属性をカスタマイズします | Git と属性 | Any file |610| [`attribution`](#attribution) | Claude Code がコミットとプルリクエストに追加する属性をカスタマイズします | Git と属性 | Any file |

611| [`attribution.commit`](#attribution-commit) | Claude Code がコミットに追加するトレーラーを変更または非表示にします | Git と属性 | Any file |611| [`attribution.commit`](#attribution-commit) | Claude Code がコミットに追加するトレーラーを変更または非表示にします | Git と属性 | Any file |

612| [`attribution.pr`](#attribution-pr) | プルリクエスト説明の属性行を変更または非表示にします | Git と属性 | Any file |612| [`attribution.pr`](#attribution-pr) | プルリクエスト説明の属性行を変更または非表示にします | Git と属性 | Any file |

613| [`attribution.sessionUrl`](#attribution-sessionurl) | [クラウド](/docs/ja/claude-code-on-the-web)および[リモートコントロール](/docs/ja/remote-control)コミットから claude.ai セッションリンクを省略します | Git と属性 | Any file |613| [`attribution.sessionUrl`](#attribution-sessionurl) | [クラウド](/docs/ja/claude-code-on-the-web)および [Remote Control](/docs/ja/remote-control) のコミットから claude.ai セッションリンクを省略します | Git と属性 | Any file |

614| [`autoCompactEnabled`](#autocompactenabled) | [自動圧縮](/docs/ja/context-window)をオフまたはオンにします | メモリとコンテキスト | Any file |614| [`autoCompactEnabled`](#autocompactenabled) | [自動圧縮](/docs/ja/context-window)をオフまたはオンにします | メモリとコンテキスト | Any file |

615| [`autoCompactWindow`](#autocompactwindow) | Claude Code が[圧縮](/docs/ja/context-window)する前にコンテキストがどのくらい満杯になるかを設定します | メモリとコンテキスト | Any file |615| [`autoCompactWindow`](#autocompactwindow) | Claude Code が[圧縮](/docs/ja/context-window)する前にコンテキストがどのくらい満杯になるかを設定します | メモリとコンテキスト | Any file |

616| [`autoConnectIde`](#autoconnectide) | 外部ターミナルから実行中の[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#from-external-terminals) IDE に自動的に接続します | グローバル設定 | Global config |616| [`autoConnectIde`](#autoconnectide) | 外部ターミナルから実行中の[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#from-external-terminals) IDE に自動的に接続します | グローバル設定 | Global config |


618| [`autoInstallIdeExtension`](#autoinstallideextension) | VS Code ターミナルから[IDE 拡張機能](/docs/ja/vs-code#install-the-extension)の自動インストールをオフにします | グローバル設定 | Global config |618| [`autoInstallIdeExtension`](#autoinstallideextension) | VS Code ターミナルから[IDE 拡張機能](/docs/ja/vs-code#install-the-extension)の自動インストールをオフにします | グローバル設定 | Global config |

619| [`autoMemoryDirectory`](#automemorydirectory) | [自動メモリ](/docs/ja/memory#auto-memory)を選択したディレクトリに保存します | メモリとコンテキスト | Any file |619| [`autoMemoryDirectory`](#automemorydirectory) | [自動メモリ](/docs/ja/memory#auto-memory)を選択したディレクトリに保存します | メモリとコンテキスト | Any file |

620| [`autoMemoryEnabled`](#automemoryenabled) | [自動メモリ](/docs/ja/memory#auto-memory)をオフまたはオンにします | メモリとコンテキスト | Any file |620| [`autoMemoryEnabled`](#automemoryenabled) | [自動メモリ](/docs/ja/memory#auto-memory)をオフまたはオンにします | メモリとコンテキスト | Any file |

621| [`autoMode`](#automode) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器に独自の許可および拒否ルールを追加します | 権限設定 | User or managed |621| [`autoMode`](#automode) | [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器に独自の許可ルールおよび拒否ルールを追加します | 権限設定 | User or managed |

622| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 狭い許可ルールに一致するものであっても、すべてのシェルコマンドを[自動モード分類器](/docs/ja/permission-modes#what-the-classifier-blocks-by-default)に送信します | 権限設定 | User or managed |622| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 狭い許可ルールに一致するものであっても、すべてのシェルコマンドを[auto モード分類器](/docs/ja/permission-modes#what-the-classifier-blocks-by-default)に送信します | 権限設定 | User or managed |

623| [`autoScrollEnabled`](#autoscrollenabled) | フルスクリーンレンダリングで[新しい出力に従う](/docs/ja/fullscreen#auto-follow)ことをオンにします | インターフェースとターミナル | Any file |623| [`autoScrollEnabled`](#autoscrollenabled) | フルスクリーンレンダリングで[新しい出力を追従](/docs/ja/fullscreen#auto-follow)して最下部までスクロールします | インターフェースとターミナル | Any file |

624| [`autoUpdatesChannel`](#autoupdateschannel) | 最新ではなく安定した[リリースチャネル](/docs/ja/setup#configure-release-channel)に従います | 更新とバージョン管理 | Any file |624| [`autoUpdatesChannel`](#autoupdateschannel) | 最新ではなく安定した[リリースチャネル](/docs/ja/setup#configure-release-channel)に従います | 更新とバージョン管理 | Any file |

625| [`availableModels`](#availablemodels) | [ユーザーが選択できるモデルを制限](/docs/ja/model-config#restrict-model-selection)します | モデルと応答 | Any file |625| [`availableModels`](#availablemodels) | [ユーザーが選択できるモデルを制限](/docs/ja/model-config#restrict-model-selection)します | モデルと応答 | Any file |

626| [`availableModelsMatch`](#availablemodelsmatch) | 各 `availableModels` モデル ID エントリが[それが名前を付けるバージョンのみを許可](/docs/ja/model-config#block-specific-models-or-versions)するようにします | モデルと応答 | Managed |626| [`availableModelsMatch`](#availablemodelsmatch) | 各 `availableModels` モデル ID エントリが[それが名前を付けるバージョンのみを許可](/docs/ja/model-config#block-specific-models-or-versions)するようにします | モデルと応答 | Managed |


634| [`browserExternalPageTools`](#browserexternalpagetools) | [デスクトップ](/docs/ja/desktop)ブラウザペインの外部ページで Claude のツールをオフにします | ツール | Managed |634| [`browserExternalPageTools`](#browserexternalpagetools) | [デスクトップ](/docs/ja/desktop)ブラウザペインの外部ページで Claude のツールをオフにします | ツール | Managed |

635| [`channelsEnabled`](#channelsenabled) | 組織の[チャネル](/docs/ja/channels#enable-channels-for-your-organization)を許可します | プラグインとスキル | Managed |635| [`channelsEnabled`](#channelsenabled) | 組織の[チャネル](/docs/ja/channels#enable-channels-for-your-organization)を許可します | プラグインとスキル | Managed |

636| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | `--chrome` を渡さずにすべてのインタラクティブ CLI セッションで[Chrome 統合](/docs/ja/chrome)をオンにします | グローバル設定 | Global config |636| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | `--chrome` を渡さずにすべてのインタラクティブ CLI セッションで[Chrome 統合](/docs/ja/chrome)をオンにします | グローバル設定 | Global config |

637| [`claudeMd`](#claudemd) | マネージド設定から組織全体の[CLAUDE.md](/docs/ja/memory#deploy-organization-wide-claude-md)指示を注入します | メモリとコンテキスト | Managed |637| [`claudeMd`](#claudemd) | 管理設定から組織全体の[CLAUDE.md](/docs/ja/memory#deploy-organization-wide-claude-md)指示を注入します | メモリとコンテキスト | Managed |

638| [`claudeMdExcludes`](#claudemdexcludes) | メモリがロードされるときに特定の[CLAUDE.md](/docs/ja/memory#exclude-specific-claude-md-files)ファイルをスキップします | メモリとコンテキスト | Any file |638| [`claudeMdExcludes`](#claudemdexcludes) | メモリがロードされるときに特定の[CLAUDE.md](/docs/ja/memory#exclude-specific-claude-md-files)ファイルをスキップします | メモリとコンテキスト | Any file |

639| [`cleanupPeriodDays`](#cleanupperioddays) | Claude Code が[トランスクリプト](/docs/ja/data-usage#data-retention)を削除する前に保持する日数を選択します | プライバシーとテレメトリ | Any file |639| [`cleanupPeriodDays`](#cleanupperioddays) | Claude Code が[トランスクリプト](/docs/ja/data-usage#data-retention)を削除する前に保持する日数を選択します | プライバシーとテレメトリ | Any file |

640| [`companyAnnouncements`](#companyannouncements) | スタートアップで組織のお知らせを表示します | インターフェースとターミナル | Any file |640| [`companyAnnouncements`](#companyannouncements) | スタートアップで組織のお知らせを表示します | インターフェースとターミナル | Any file |

641| [`copyFullResponse`](#copyfullresponse) | [`/copy`](/docs/ja/commands)がコードブロックピッカーを表示せずに完全な応答をコピーするようにします | グローバル設定 | Global config |641| [`copyFullResponse`](#copyfullresponse) | [`/copy`](/docs/ja/commands)がコードブロックピッカーを表示せずに完全な応答をコピーするようにします | グローバル設定 | Global config |

642| [`copyOnSelect`](#copyonselect) | [フルスクリーンレンダリング](/docs/ja/fullscreen#use-the-mouse)およびエージェントビューでマウスで選択したテキストの自動コピーをオフにします | グローバル設定 | Global config |642| [`copyOnSelect`](#copyonselect) | [フルスクリーンレンダリング](/docs/ja/fullscreen#use-the-mouse)およびエージェントビューでマウスで選択したテキストの自動コピーをオフにします | グローバル設定 | Global config |

643| [`crossSessionInbound`](#crosssessioninbound) | Claude Code が[他のセッションからのメッセージ](/docs/ja/cross-session-messaging#control-inbound-messages)を配信するか、配信せずに通知を表示するか、拒否するかを選択します | エージェント、セッション、ワークツリー | Any file |643| [`crossSessionInbound`](#crosssessioninbound) | Claude Code が[他のセッションからのメッセージ](/docs/ja/cross-session-messaging#control-inbound-messages)を配信するか、配信せずに通知を表示するか、拒否するかを選択します | エージェント、セッション、worktree | Any file |

644| [`defaultShell`](#defaultshell) | [`!` プレフィックス](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したシェルコマンドを実行する Bash または PowerShell を選択します | インターフェースとターミナル | Any file |644| [`defaultShell`](#defaultshell) | [`!` プレフィックス](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したシェルコマンドを実行する Bash または PowerShell を選択します | インターフェースとターミナル | Any file |

645| [`defaultToAgentsView`](#defaulttoagentsview) | 引数なしで `claude` を実行するときに新しい会話の代わりに[エージェントビュー](/docs/ja/agent-view)を開きます | グローバル設定 | Global config |645| [`defaultToAgentsView`](#defaulttoagentsview) | 引数なしで `claude` を実行するときに新しい会話の代わりに[エージェントビュー](/docs/ja/agent-view)を開きます | グローバル設定 | Global config |

646| [`deniedMcpServers`](#deniedmcpservers) | URL、コマンド、または名前で特定の[MCP サーバー](/docs/ja/mcp)をブロックします | MCP | Any file |646| [`deniedMcpServers`](#deniedmcpservers) | URL、コマンド、または名前で特定の[MCP サーバー](/docs/ja/mcp)をブロックします | MCP | Any file |

647| [`deniedModels`](#deniedmodels) | [特定のモデルをブロック](/docs/ja/model-config#block-specific-models-or-versions)します。`availableModels` が許可するものであっても | モデルと応答 | Managed |647| [`deniedModels`](#deniedmodels) | [特定のモデルをブロック](/docs/ja/model-config#block-specific-models-or-versions)します。`availableModels` が許可するものであっても | モデルと応答 | Managed |

648| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | [Claude Desktop および Cowork トランスクリプト](/docs/ja/claude-directory#cleaned-up-automatically)の年齢制限を日数で設定します | プライバシーとテレメトリ | User or managed |648| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | [Claude Desktop および Cowork トランスクリプト](/docs/ja/claude-directory#cleaned-up-automatically)の年齢制限を日数で設定します | プライバシーとテレメトリ | User or managed |

649| [`dialogExpiry`](#dialogexpiry) | Claude Code がダイアログをキャンセルする前に[リモートコントロール](/docs/ja/remote-control)または SDK ホストが転送されたダイアログに応答するのを待つ時間を設定します | インターフェースとターミナル | User or managed |649| [`dialogExpiry`](#dialogexpiry) | Claude Code がダイアログをキャンセルする前に [Remote Control](/docs/ja/remote-control) または SDK ホストが転送されたダイアログに応答するのを待つ時間を設定します | インターフェースとターミナル | User or managed |

650| [`diffTool`](#difftool) | Claude の提案されたファイル変更が[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#features)差分ビューアで開くか、ターミナルに留まるかを選択します | グローバル設定 | Global config |650| [`diffTool`](#difftool) | Claude の提案されたファイル変更が[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#features)差分ビューアで開くか、ターミナルに留まるかを選択します | グローバル設定 | Global config |

651| [`disableAgentView`](#disableagentview) | バックグラウンドエージェントと[エージェントビュー](/docs/ja/agent-view)をオフにします | エージェント、セッション、ワークツリー | Any file |651| [`disableAgentView`](#disableagentview) | バックグラウンドエージェントと[エージェントビュー](/docs/ja/agent-view)をオフにします | エージェント、セッション、worktree | Any file |

652| [`disableAllHooks`](#disableallhooks) | [フック](/docs/ja/hooks)、カスタム[ステータスライン](/docs/ja/statusline)、およびカスタム[`@` ファイル提案](/docs/ja/interactive-mode#quick-commands)コマンドを一度にオフにします | フックと自動化 | Any file |652| [`disableAllHooks`](#disableallhooks) | [フック](/docs/ja/hooks)、カスタム[ステータスライン](/docs/ja/statusline)、およびカスタム[`@` ファイル提案](/docs/ja/interactive-mode#quick-commands)コマンドを一度にオフにします | フックと自動化 | Any file |

653| [`disableArtifact`](#disableartifact) | 非推奨。`enableArtifact` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします | リモート、デスクトップ、通知 | Any file |653| [`disableArtifact`](#disableartifact) | 非推奨。`enableArtifact` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします | リモート、デスクトップ、通知 | Any file |

654| [`disableAutoMode`](#disableautomode) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を権限モードサイクルから削除します | 権限設定 | Any file |654| [`disableAutoMode`](#disableautomode) | [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を権限モードサイクルから削除します | 権限設定 | Any file |

655| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | [デスクトップ](/docs/ja/desktop)ブラウザペインをユーザーと Claude の localhost に制限します | ツール | Managed |655| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | [デスクトップ](/docs/ja/desktop)ブラウザペインをユーザーと Claude の localhost に制限します | ツール | Managed |

656| [`disableBundledSkills`](#disablebundledskills) | Claude Code に含まれる[スキル](/docs/ja/skills#bundled-skills)と[ワークフロー](/docs/ja/workflows)をオフにします | プラグインとスキル | Any file |656| [`disableBundledSkills`](#disablebundledskills) | Claude Code に含まれる[スキル](/docs/ja/skills#bundled-skills)と[ワークフロー](/docs/ja/workflows)をオフにします | プラグインとスキル | Any file |

657| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | [claude.ai コネクタ](/docs/ja/mcp#disable-claude-ai-connectors)をオフにして、Claude Code がそれらを取得しないようにします | MCP | Any file |657| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | [claude.ai コネクタ](/docs/ja/mcp#disable-claude-ai-connectors)をオフにして、Claude Code がそれらを取得しないようにします | MCP | Any file |


660| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | デバイスで実行される[Desktop Code セッション](/docs/ja/desktop#local-sessions-on-managed-devices)をオフにして、SSH を他のホストとクラウドに残します | リモート、デスクトップ、通知 | Managed |660| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | デバイスで実行される[Desktop Code セッション](/docs/ja/desktop#local-sessions-on-managed-devices)をオフにして、SSH を他のホストとクラウドに残します | リモート、デスクトップ、通知 | Managed |

661| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | プロジェクトの[`.mcp.json`](/docs/ja/mcp#project-scope)から特定のサーバーを拒否します | MCP | Any file |661| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | プロジェクトの[`.mcp.json`](/docs/ja/mcp#project-scope)から特定のサーバーを拒否します | MCP | Any file |

662| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | [デスクトップ](/docs/ja/desktop)iOS Simulator ペインで Claude のツールをブロックします | ツール | Managed |662| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | [デスクトップ](/docs/ja/desktop)iOS Simulator ペインで Claude のツールをブロックします | ツール | Managed |

663| [`disableRemoteControl`](#disableremotecontrol) | [リモートコントロール](/docs/ja/remote-control)をそれが開始できるすべての場所でオフにします | リモート、デスクトップ、通知 | Any file |663| [`disableRemoteControl`](#disableremotecontrol) | [Remote Control](/docs/ja/remote-control) をそれが開始できるすべての場所でオフにします | リモート、デスクトップ、通知 | Any file |

664| [`disableSideloadFlags`](#disablesideloadflags) | [プラグイン](/docs/ja/plugins/overview)、[サブエージェント](/docs/ja/sub-agents)、[MCP サーバー](/docs/ja/mcp)をサイドロードする CLI フラグを拒否します | エンタープライズとマネージド設定 | Managed |664| [`disableSideloadFlags`](#disablesideloadflags) | [プラグイン](/docs/ja/plugins/overview)、[サブエージェント](/docs/ja/sub-agents)、[MCP サーバー](/docs/ja/mcp)をサイドロードする CLI フラグを拒否します | エンタープライズと管理設定 | Managed |

665| [`disableSkillShellExecution`](#disableskillshellexecution) | [スキル](/docs/ja/skills)とカスタムコマンドがインラインシェルを実行するのを停止します | プラグインとスキル | Any file |665| [`disableSkillShellExecution`](#disableskillshellexecution) | [スキル](/docs/ja/skills)とカスタムコマンドがインラインシェルを実行するのを停止します | プラグインとスキル | Any file |

666| [`disableWorkflows`](#disableworkflows) | [動的ワークフロー](/docs/ja/workflows)をすべてのユーザーに対してオフにします。自分自身の場合は `enableWorkflows` を使用します | フックと自動化 | Any file |666| [`disableWorkflows`](#disableworkflows) | [動的ワークフロー](/docs/ja/workflows)をすべてのユーザーに対してオフにします。自分自身の場合は `enableWorkflows` を使用します | フックと自動化 | Any file |

667| [`editorMode`](#editormode) | 入力プロンプトで[vim キーバインディング](/docs/ja/interactive-mode#vim-editor-mode)を使用します | インターフェースとターミナル | Any file |667| [`editorMode`](#editormode) | 入力プロンプトで[vim キーバインディング](/docs/ja/interactive-mode#vim-editor-mode)を使用します | インターフェースとターミナル | Any file |

668| [`effortLevel`](#effortlevel) | 保存されたレベルを持たないモデルのデフォルト[努力レベル](/docs/ja/model-config#adjust-effort-level)を設定します | モデルと応答 | Any file |668| [`effortLevel`](#effortlevel) | 保存されたレベルを持たないモデルのデフォルト[effort レベル](/docs/ja/model-config#adjust-effort-level)を設定します | モデルと応答 | Any file |

669| [`emojiCompletionEnabled`](#emojicompletionenabled) | プロンプト入力で[`:shortcode:` 絵文字の提案と置換](/docs/ja/interactive-mode#emoji-shortcodes)をオフにします | インターフェースとターミナル | Any file |669| [`emojiCompletionEnabled`](#emojicompletionenabled) | プロンプト入力で[`:shortcode:` 絵文字の提案と置換](/docs/ja/interactive-mode#emoji-shortcodes)をオフにします | インターフェースとターミナル | Any file |

670| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | プロジェクト[`.mcp.json`](/docs/ja/mcp#project-server-approvals-and-workspace-trust)ファイル内のすべてのサーバーをプロンプトなしで承認します | MCP | Any file |670| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | プロジェクト[`.mcp.json`](/docs/ja/mcp#project-server-approvals-and-workspace-trust)ファイル内のすべてのサーバーをプロンプトなしで承認します | MCP | Any file |

671| [`enableArtifact`](#enableartifact) | 任意のファイルで `false` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします。ファイルはそれをオンに戻すことはできません | リモート、デスクトップ、通知 | Any file |671| [`enableArtifact`](#enableartifact) | 任意のファイルで `false` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします。ファイルはそれをオンに戻すことはできません | リモート、デスクトップ、通知 | Any file |


677| [`externalEditorContext`](#externaleditorcontext) | [Ctrl+G](/docs/ja/interactive-mode#general-controls)を押して編集するときに Claude の最後の応答をコメントとして表示します | グローバル設定 | Global config |677| [`externalEditorContext`](#externaleditorcontext) | [Ctrl+G](/docs/ja/interactive-mode#general-controls)を押して編集するときに Claude の最後の応答をコメントとして表示します | グローバル設定 | Global config |

678| [`extraKnownMarketplaces`](#extraknownmarketplaces) | リポジトリまたは組織の[マーケットプレイス](/docs/ja/plugins/overview)を登録します | プラグインとスキル | Any file |678| [`extraKnownMarketplaces`](#extraknownmarketplaces) | リポジトリまたは組織の[マーケットプレイス](/docs/ja/plugins/overview)を登録します | プラグインとスキル | Any file |

679| [`fallbackModel`](#fallbackmodel) | プライマリがオーバーロードされたときの[バックアップモデル](/docs/ja/model-config#fallback-model-chains)に名前を付けます | モデルと応答 | Any file |679| [`fallbackModel`](#fallbackmodel) | プライマリがオーバーロードされたときの[バックアップモデル](/docs/ja/model-config#fallback-model-chains)に名前を付けます | モデルと応答 | Any file |

680| [`fastMode`](#fastmode) | 利用可能なセッションで[高速モード](/docs/ja/fast-mode)をオンにします | モデルと応答 | Any file |680| [`fastMode`](#fastmode) | 利用可能なセッションで [fast モード](/docs/ja/fast-mode)をオンにします | モデルと応答 | Any file |

681| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | ユーザーが各セッションで[高速モード](/docs/ja/fast-mode)をオンにすることを要求します | モデルと応答 | Any file |681| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | ユーザーが各セッションで [fast モード](/docs/ja/fast-mode)をオンにすることを要求します | モデルと応答 | Any file |

682| [`feedbackDrafts`](#feedbackdrafts) | Claude が[フィードバックドラフト](/docs/ja/tools-reference#sendfeedback-tool-behavior)をキューに入れるかどうかを制御します | プライバシーとテレメトリ | User or managed |682| [`feedbackDrafts`](#feedbackdrafts) | Claude が[フィードバックドラフト](/docs/ja/tools-reference#sendfeedback-tool-behavior)をキューに入れるかどうかを制御します | プライバシーとテレメトリ | User or managed |

683| [`feedbackSurveyRate`](#feedbacksurveyrate) | [セッション品質調査](/docs/ja/data-usage#session-quality-surveys)が表示される頻度を変更します | プライバシーとテレメトリ | Any file |683| [`feedbackSurveyRate`](#feedbacksurveyrate) | [セッション品質調査](/docs/ja/data-usage#session-quality-surveys)が表示される頻度を変更します | プライバシーとテレメトリ | Any file |

684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | [`/rewind`](/docs/ja/checkpointing)が復元するファイルスナップショットをオフまたはオンにします | メモリとコンテキスト | Any file |684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | [`/rewind`](/docs/ja/checkpointing)が復元するファイルスナップショットをオフまたはオンにします | メモリとコンテキスト | Any file |


686| [`footerLinksRegexes`](#footerlinksregexes) | 出力内の問題またはレビュー ID を入力ボックスの下の[クリック可能なリンク](/docs/ja/statusline#clickable-links)にします | インターフェースとターミナル | User or managed |686| [`footerLinksRegexes`](#footerlinksregexes) | 出力内の問題またはレビュー ID を入力ボックスの下の[クリック可能なリンク](/docs/ja/statusline#clickable-links)にします | インターフェースとターミナル | User or managed |

687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | ログイン画面が接続する[ゲートウェイ URL](/docs/ja/claude-apps-gateway#set-the-gateway-url)を設定します | 認証とプロバイダー | Managed |687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | ログイン画面が接続する[ゲートウェイ URL](/docs/ja/claude-apps-gateway#set-the-gateway-url)を設定します | 認証とプロバイダー | Managed |

688| [`forceLoginMethod`](#forceloginmethod) | [ログインを制限](/docs/ja/authentication#restrict-login-to-your-organization)して claude.ai、Claude Console、または[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)にします | 認証とプロバイダー | Any file |688| [`forceLoginMethod`](#forceloginmethod) | [ログインを制限](/docs/ja/authentication#restrict-login-to-your-organization)して claude.ai、Claude Console、または[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)にします | 認証とプロバイダー | Any file |

689| [`forceLoginOrgUUID`](#forceloginorguuid) | [claude.ai ログインを組織にピン留め](/docs/ja/authentication#restrict-login-to-your-organization)します。マネージドソースのみがそれを強制します | 認証とプロバイダー | Any file |689| [`forceLoginOrgUUID`](#forceloginorguuid) | [claude.ai ログインを組織にピン留め](/docs/ja/authentication#restrict-login-to-your-organization)します。管理ソースのみがそれを強制します | 認証とプロバイダー | Any file |

690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | [サーバーマネージド設定](/docs/ja/server-managed-settings)が新しく取得されるまでスタートアップをブロックします | エンタープライズとマネージド設定 | Managed |690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | [サーバー管理設定](/docs/ja/server-managed-settings)が新しく取得されるまでスタートアップをブロックします | エンタープライズと管理設定 | Managed |

691| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | `/login` が組織が内部的に使用するパブリック IPv4 スペース上の[クラウドゲートウェイ](/docs/ja/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)に到達することを許可します | 認証とプロバイダー | Managed |691| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | `/login` が組織が内部的に使用するパブリック IPv4 スペース上の[クラウドゲートウェイ](/docs/ja/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)に到達することを許可します | 認証とプロバイダー | Managed |

692| [`gcpAuthRefresh`](#gcpauthrefresh) | 独自のコマンドで[Google Cloud 認証情報](/docs/ja/google-vertex-ai#advanced-credential-configuration)をリフレッシュします | 認証とプロバイダー | Any file |692| [`gcpAuthRefresh`](#gcpauthrefresh) | 独自のコマンドで[Google Cloud 認証情報](/docs/ja/google-vertex-ai#advanced-credential-configuration)をリフレッシュします | 認証とプロバイダー | Any file |

693| [`hooks`](#hooks) | Claude Code のライフサイクルのポイントで[フック](/docs/ja/hooks)として独自のコマンドを実行します | フックと自動化 | Any file |693| [`hooks`](#hooks) | Claude Code のライフサイクルのポイントで[フック](/docs/ja/hooks)として独自のコマンドを実行します | フックと自動化 | Any file |

694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | [HTTP フック](/docs/ja/hooks)がヘッダーに入れることができる環境変数を制限します | フックと自動化 | Any file |694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | [HTTP フック](/docs/ja/hooks)がヘッダーに入れることができる環境変数を制限します | フックと自動化 | Any file |

695| [`includeCoAuthoredBy`](#includecoauthoredby) | 非推奨。`attribution` を使用してコミットと PR 属性を非表示または変更します | Git と属性 | Any file |695| [`includeCoAuthoredBy`](#includecoauthoredby) | 非推奨。`attribution` を使用してコミットと PR 属性を非表示または変更します | Git と属性 | Any file |

696| [`includeGitInstructions`](#includegitinstructions) | Claude のコンテキストから組み込みコミットと PR 指示を削除します | Git と属性 | Any file |696| [`includeGitInstructions`](#includegitinstructions) | Claude のコンテキストから組み込みコミットと PR 指示を削除します | Git と属性 | Any file |

697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Claude があなたを待っているときに[プッシュ通知](/docs/ja/remote-control#mobile-push-notifications)を取得します | リモート、デスクトップ、通知 | Any file |697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Claude が入力を待っているときに[プッシュ通知](/docs/ja/remote-control#mobile-push-notifications)を受け取ります | リモート、デスクトップ、通知 | Any file |

698| [`isolatePeerMachines`](#isolatepeermachines) | Claude が別のマシンのセッションの 1 つに[メッセージを送信](/docs/ja/cross-session-messaging#require-approval-for-cross-machine-messages)する前に確認を求めます | エージェント、セッション、ワークツリー | Any file |698| [`isolatePeerMachines`](#isolatepeermachines) | Claude が別のマシンのセッションの 1 つに[メッセージを送信](/docs/ja/cross-session-messaging#require-approval-for-cross-machine-messages)する前に確認を求めます | エージェント、セッション、worktree | Any file |

699| [`keybindingFlavor`](#keybindingflavor) | 非推奨で効果がありません。単語編集ショートカットは常に[readline 規約に従う](/docs/ja/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | インターフェースとターミナル | Any file |699| [`keybindingFlavor`](#keybindingflavor) | 非推奨で効果がありません。単語編集ショートカットは常に[readline 規約に従います](/docs/ja/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | インターフェースとターミナル | Any file |

700| [`language`](#language) | Claude が英語以外の言語で応答するようにします | モデルと応答 | Any file |700| [`language`](#language) | Claude が英語以外の言語で応答するようにします | モデルと応答 | Any file |

701| [`leftArrowOpensAgents`](#leftarrowopensagents) | [セッションをバックグラウンドにしてエージェントビューを開く](/docs/ja/agent-view#switch-sessions-without-leaving-the-terminal) `←` ショートカットをオフにします | グローバル設定 | Global config |701| [`leftArrowOpensAgents`](#leftarrowopensagents) | [セッションをバックグラウンドにしてエージェントビューを開く](/docs/ja/agent-view#switch-sessions-without-leaving-the-terminal) `←` ショートカットをオフにします | グローバル設定 | Global config |

702| [`managedMcpServers`](#managedmcpservers) | ユーザーが追加するものと一緒にすべてのユーザーにリモート[MCP サーバー](/docs/ja/managed-mcp#provide-servers-through-managed-settings)を提供します | MCP | Managed |702| [`managedMcpServers`](#managedmcpservers) | ユーザーが追加するものと一緒にすべてのユーザーにリモート[MCP サーバー](/docs/ja/managed-mcp#provide-servers-through-managed-settings)を提供します | MCP | Managed |

703| [`managedSourcesBehavior`](#managedsourcesbehavior) | デプロイするすべての[マネージドソース](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)を構成する代わりに、最優先度のものだけを使用します | エンタープライズとマネージド設定 | Managed |703| [`managedSourcesBehavior`](#managedsourcesbehavior) | 最優先のものだけを使用する代わりに、デプロイするすべての[管理ソース](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)を組み合わせます | エンタープライズと管理設定 | Managed |

704| [`maxEffortLevel`](#maxeffortlevel) | すべてのモデルまたはモデルごと、すべてのプロバイダーで[努力レベル](/docs/ja/model-config#adjust-effort-level)をキャップします | モデルと応答 | Any file |704| [`maxEffortLevel`](#maxeffortlevel) | すべてのモデルまたはモデルごと、すべてのプロバイダーで[effort レベル](/docs/ja/model-config#adjust-effort-level)をキャップします | モデルと応答 | Any file |

705| [`maxProseWidth`](#maxprosewidth) | Claude の応答の散文が広いターミナルで実行される幅をキャップします | インターフェースとターミナル | Any file |705| [`maxProseWidth`](#maxprosewidth) | Claude の応答の散文が広いターミナルで実行される幅をキャップします | インターフェースとターミナル | Any file |

706| [`minimumVersion`](#minimumversion) | [自動更新](/docs/ja/setup#pin-a-minimum-version)がバージョン以下のものをインストールするのを防ぎます | 更新とバージョン管理 | Any file |706| [`minimumVersion`](#minimumversion) | [自動更新](/docs/ja/setup#pin-a-minimum-version)がバージョン以下のものをインストールするのを防ぎます | 更新とバージョン管理 | Any file |

707| [`model`](#model) | Claude Code が開始する[モデル](/docs/ja/model-config#set-a-default-model-for-new-sessions)を変更します | モデルと応答 | Any file |707| [`model`](#model) | Claude Code が開始する[モデル](/docs/ja/model-config#set-a-default-model-for-new-sessions)を変更します | モデルと応答 | Any file |

708| [`modelOverrides`](#modeloverrides) | [モデル ID をマップ](/docs/ja/model-config#override-model-ids-per-version)して、Bedrock ARN などのプロバイダーの ID にします | モデルと応答 | Any file |708| [`modelOverrides`](#modeloverrides) | [モデル ID をマップ](/docs/ja/model-config#override-model-ids-per-version)して、Bedrock ARN などのプロバイダーの ID にします | モデルと応答 | Any file |

709| [`modelPicker`](#modelpicker) | [`/model` ピッカー](/docs/ja/model-config#available-models)がリストするモデルを選択します。独自の順序と独自のラベル付きで | モデルと応答 | User or managed |709| [`modelPicker`](#modelpicker) | [`/model` ピッカー](/docs/ja/model-config#available-models)がリストするモデルを選択します。独自の順序と独自のラベル付きで | モデルと応答 | User or managed |

710| [`modelPricing`](#modelpricing) | リスト価格の代わりに組織の契約レートで支出を報告します | モデルと応答 | Managed |710| [`modelPricing`](#modelpricing) | リスト価格の代わりに組織の契約レートで支出を報告します | モデルと応答 | Managed |

711| [`modelSettings`](#modelsettings) | モデルごとに保存された[努力レベル](/docs/ja/model-config#adjust-effort-level)を保つか、1 つのモデルの努力をキャップします | モデルと応答 | Any file |711| [`modelSettings`](#modelsettings) | モデルごとに保存された[effort レベル](/docs/ja/model-config#adjust-effort-level)を保つか、1 つのモデルの effort をキャップします | モデルと応答 | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | 独自のコマンドで回転する[OpenTelemetry](/docs/ja/monitoring-usage#dynamic-headers)ヘッダーを生成します | 認証とプロバイダー | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | 独自のコマンドで回転する[OpenTelemetry](/docs/ja/monitoring-usage#dynamic-headers)ヘッダーを生成します | 認証とプロバイダー | Any file |

713| [`outputStyle`](#outputstyle) | Claude の役割、トーン、出力形式を[出力スタイル](/docs/ja/output-styles)で変更します | モデルと応答 | Any file |713| [`outputStyle`](#outputstyle) | Claude の役割、トーン、出力形式を[出力スタイル](/docs/ja/output-styles)で変更します | モデルと応答 | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | [SDK または IDE ホスト](/docs/ja/managed-settings#let-an-embedding-host-add-policy)が[マネージド設定](/docs/ja/managed-settings)をデプロイするときに渡す制限を適用または削除します | エンタープライズとマネージド設定 | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | [管理設定](/docs/ja/managed-settings)をデプロイするときに、[SDK または IDE ホスト](/docs/ja/managed-settings#let-an-embedding-host-add-policy)が渡す制限を適用または削除します | エンタープライズと管理設定 | Managed |

715| [`permissionExplainerEnabled`](#permissionexplainerenabled) | v2.1.257 で削除されました。シェル権限プロンプトの `Ctrl+E` コマンド説明と一緒に | グローバル設定 | Global config |715| [`permissionExplainerEnabled`](#permissionexplainerenabled) | v2.1.257 で削除されました。シェル権限プロンプトの `Ctrl+E` コマンド説明と一緒に | グローバル設定 | Global config |

716| [`permissions`](#permissions) | 許可、質問、拒否ルール、および開始[権限モード](/docs/ja/permission-modes)を設定します | 権限設定 | Any file |716| [`permissions`](#permissions) | 許可ルール、確認ルール、拒否ルール、および開始[権限モード](/docs/ja/permission-modes)を設定します | 権限設定 | Any file |

717| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Claude に[現在のディレクトリ外のディレクトリ](/docs/ja/permissions#working-directories)へのファイルアクセスを付与します | 権限設定 | Any file |717| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Claude に[現在のディレクトリ外のディレクトリ](/docs/ja/permissions#working-directories)へのファイルアクセスを付与します | 権限設定 | Any file |

718| [`permissions.allow`](#permissions-allow) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をプロンプトなしで承認します | 権限設定 | Any file |718| [`permissions.allow`](#permissions-allow) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をプロンプトなしで承認します | 権限設定 | Any file |

719| [`permissions.ask`](#permissions-ask) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)の前に常にプロンプトを表示します | 権限設定 | Any file |719| [`permissions.ask`](#permissions-ask) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)の前に常にプロンプトを表示します | 権限設定 | Any file |


721| [`permissions.defaultMode`](#permissions-defaultmode) | 新しいセッションが開始する[権限モード](/docs/ja/permission-modes#which-mode-a-session-starts-in)を設定します | 権限設定 | Any file |721| [`permissions.defaultMode`](#permissions-defaultmode) | 新しいセッションが開始する[権限モード](/docs/ja/permission-modes#which-mode-a-session-starts-in)を設定します | 権限設定 | Any file |

722| [`permissions.deny`](#permissions-deny) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をブロックします。秘密を保持するファイルの読み取りを含む | 権限設定 | Any file |722| [`permissions.deny`](#permissions-deny) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をブロックします。秘密を保持するファイルの読み取りを含む | 権限設定 | Any file |

723| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 誰もが[bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)に入るのを防ぎます | 権限設定 | Any file |723| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 誰もが[bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)に入るのを防ぎます | 権限設定 | Any file |

724| [`plansDirectory`](#plansdirectory) | [プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)がプランファイルを書き込む場所を選択します | メモリとコンテキスト | Any file |724| [`plansDirectory`](#plansdirectory) | [plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)がプランファイルを書き込む場所を選択します | メモリとコンテキスト | Any file |

725| [`pluginConfigs`](#pluginconfigs) | [プラグイン](/docs/ja/plugins/overview)の設定ダイアログに与えた回答を保存します | プラグインとスキル | User or managed |725| [`pluginConfigs`](#pluginconfigs) | [プラグイン](/docs/ja/plugins/overview)の設定ダイアログに与えた回答を保存します | プラグインとスキル | User or managed |

726| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | `/plugin` でプラグインインストール提案を表示できる[マーケットプレイス](/docs/ja/plugins/org#restrict-what-users-can-install)を選択します | プラグインとスキル | Managed |726| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | `/plugin` でプラグインインストール提案を表示できる[マーケットプレイス](/docs/ja/plugins/org#restrict-what-users-can-install)を選択します | プラグインとスキル | Managed |

727| [`pluginTrustMessage`](#plugintrustmessage) | [プラグイン](/docs/ja/plugins/overview)信頼警告に独自のテキストを追加します | プラグインとスキル | Managed |727| [`pluginTrustMessage`](#plugintrustmessage) | [プラグイン](/docs/ja/plugins/overview)信頼警告に独自のテキストを追加します | プラグインとスキル | Managed |

728| [`policyHelper`](#policyhelper) | スタートアップで[マネージド設定](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を計算する実行可能ファイルを実行します | エンタープライズとマネージド設定 | Managed |728| [`policyHelper`](#policyhelper) | スタートアップで[管理設定](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を計算する実行可能ファイルを実行します | エンタープライズと管理設定 | Managed |

729| [`policyHelper.path`](#policyhelper-path) | Claude Code が実行する[ヘルパー実行可能ファイル](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)に名前を付けます | エンタープライズとマネージド設定 | Managed |729| [`policyHelper.path`](#policyhelper-path) | Claude Code が実行する[ヘルパー実行可能ファイル](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)に名前を付けます | エンタープライズと管理設定 | Managed |

730| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | バックグラウンドで[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を間隔で再実行します | エンタープライズとマネージド設定 | Managed |730| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | バックグラウンドで[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を間隔で再実行します | エンタープライズと管理設定 | Managed |

731| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Claude Code が[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を待つ時間を設定します | エンタープライズとマネージド設定 | Managed |731| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Claude Code が[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を待つ時間を設定します | エンタープライズと管理設定 | Managed |

732| [`preferredNotifChannel`](#preferrednotifchannel) | タスク完了の[ターミナルベルまたはデスクトップ通知](/docs/ja/terminal-config#get-a-terminal-bell-or-notification)を選択します | リモート、デスクトップ、通知 | Any file |732| [`preferredNotifChannel`](#preferrednotifchannel) | タスク完了の[ターミナルベルまたはデスクトップ通知](/docs/ja/terminal-config#get-a-terminal-bell-or-notification)を選択します | リモート、デスクトップ、通知 | Any file |

733| [`prefersReducedMotion`](#prefersreducedmotion) | [スピナー、シマー、フラッシュアニメーションを削除またはオフ](/docs/ja/accessibility#accessibility-settings)にします | インターフェースとターミナル | Any file |733| [`prefersReducedMotion`](#prefersreducedmotion) | スピナー、シマー、フラッシュアニメーションを[軽減またはオフ](/docs/ja/accessibility#accessibility-settings)にします | インターフェースとターミナル | Any file |

734| [`prependPlugins`](#prependplugins) | ユーザーがインストールするすべてのモッドの前に組織の[モッド](/docs/ja/plugins/mods/admin)を実行します | プラグインとスキル | User or managed |734| [`prependPlugins`](#prependplugins) | ユーザーがインストールするすべてのモッドの前に組織の[モッド](/docs/ja/plugins/mods/admin)を実行します | プラグインとスキル | User or managed |

735| [`processWrapper`](#processwrapper) | Claude Code のバックグラウンドプロセスを macOS および Linux の[企業ランチャー](/docs/ja/corporate-launcher)を通じて実行します | エージェント、セッション、ワークツリー | User or managed |735| [`processWrapper`](#processwrapper) | Claude Code のバックグラウンドプロセスを macOS および Linux の[企業ランチャー](/docs/ja/corporate-launcher)を通じて実行します | エージェント、セッション、worktree | User or managed |

736| [`promptCacheTtl`](#promptcachettl) | メイン会話の[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | モデルと応答 | Any file |736| [`promptCacheTtl`](#promptcachettl) | メイン会話の[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | モデルと応答 | Any file |

737| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 入力ボックスのグレーアウトされた[プロンプト提案](/docs/ja/interactive-mode#prompt-suggestions)を非表示にします | インターフェースとターミナル | Any file |737| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 入力ボックスのグレーアウトされた[プロンプト提案](/docs/ja/interactive-mode#prompt-suggestions)を非表示にします | インターフェースとターミナル | Any file |

738| [`prStatusFooterEnabled`](#prstatusfooterenabled) | プロンプトフッターの[PR レビューステータス](/docs/ja/interactive-mode#pr-review-status)バッジとその背後にあるプルリクエストチェックをオフにします | グローバル設定 | Global config |738| [`prStatusFooterEnabled`](#prstatusfooterenabled) | プロンプトフッターの[PR レビューステータス](/docs/ja/interactive-mode#pr-review-status)バッジとその背後にあるプルリクエストチェックをオフにします | グローバル設定 | Global config |

739| [`prUrlTemplate`](#prurltemplate) | PR リンクを github.com の代わりに内部コードレビューツールに指します | Git と属性 | Any file |739| [`prUrlTemplate`](#prurltemplate) | PR リンクを github.com の代わりに内部コードレビューツールに指します | Git と属性 | Any file |

740| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | `claude --cloud` のデフォルト[クラウド環境](/docs/ja/cloud-environments)を選択します。自己ホスト型 `ccpool_` ID はユーザーおよびマネージド設定と `--settings` からのみ読み取られます | リモート、デスクトップ、通知 | Any file |740| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | `claude --cloud` のデフォルト[クラウド環境](/docs/ja/cloud-environments)を選択します。自己ホスト型 `ccpool_` ID はユーザー設定および管理設定と `--settings` からのみ読み取られます | リモート、デスクトップ、通知 | Any file |

741| [`remoteControlAtStartup`](#remotecontrolatstartup) | セッション開始時に[リモートコントロール](/docs/ja/remote-control#enable-remote-control-for-all-sessions)に自動的に接続します | リモート、デスクトップ、通知 | Any file |741| [`remoteControlAtStartup`](#remotecontrolatstartup) | セッション開始時に [Remote Control](/docs/ja/remote-control#enable-remote-control-for-all-sessions) に自動的に接続します | リモート、デスクトップ、通知 | Any file |

742| [`requiredMaximumVersion`](#requiredmaximumversion) | 組織が許可するバージョンより新しいバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | 更新とバージョン管理 | Managed |742| [`requiredMaximumVersion`](#requiredmaximumversion) | 組織が許可するバージョンより新しいバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | 更新とバージョン管理 | Managed |

743| [`requiredMinimumVersion`](#requiredminimumversion) | 組織が要求するバージョンより古いバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | 更新とバージョン管理 | Managed |743| [`requiredMinimumVersion`](#requiredminimumversion) | 組織が要求するバージョンより古いバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | 更新とバージョン管理 | Managed |

744| [`respectGitignore`](#respectgitignore) | gitignored ファイルを[`@` ファイルピッカー](/docs/ja/interactive-mode#quick-commands)から除外します | インターフェースとターミナル | Any file |744| [`respectGitignore`](#respectgitignore) | gitignored ファイルを[`@` ファイルピッカー](/docs/ja/interactive-mode#quick-commands)から除外します | インターフェースとターミナル | Any file |


758| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Linux [サンドボックス](/docs/ja/sandboxing)を非特権コンテナ内で実行します | サンドボックス設定 | Any file |758| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Linux [サンドボックス](/docs/ja/sandboxing)を非特権コンテナ内で実行します | サンドボックス設定 | Any file |

759| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | `gh`、`gcloud`、`terraform` が[サンドボックス](/docs/ja/sandboxing#troubleshooting)内の macOS で MITM プロキシの背後で TLS を検証することを許可します | サンドボックス設定 | Any file |759| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | `gh`、`gcloud`、`terraform` が[サンドボックス](/docs/ja/sandboxing#troubleshooting)内の macOS で MITM プロキシの背後で TLS を検証することを許可します | サンドボックス設定 | Any file |

760| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Claude Code が[サンドボックス](/docs/ja/sandboxing)外で実行できるコマンドに名前を付けます | サンドボックス設定 | Any file |760| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Claude Code が[サンドボックス](/docs/ja/sandboxing)外で実行できるコマンドに名前を付けます | サンドボックス設定 | Any file |

761| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | [サンドボックス](/docs/ja/sandboxing)ができないときに、サンドボックス化されていない状態で実行する代わりに起動を拒否します | サンドボックス設定 | Any file |761| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | [サンドボックス](/docs/ja/sandboxing)を起動できないときに、サンドボックス化されていない状態で実行する代わりに起動を拒否します | サンドボックス設定 | Any file |

762| [`sandbox.filesystem`](#sandbox-filesystem) | [サンドボックス化](/docs/ja/sandboxing#filesystem-isolation)されたコマンドが読み取りおよび書き込みできるパスを制御します | サンドボックス設定 | Any file |762| [`sandbox.filesystem`](#sandbox-filesystem) | [サンドボックス化](/docs/ja/sandboxing#filesystem-isolation)されたコマンドが読み取りおよび書き込みできるパスを制御します | サンドボックス設定 | Any file |

763| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | 開発者が[組織がブロックした読み取りパス](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を再度開くのを防ぎます | サンドボックス設定 | Managed |763| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | 開発者が[組織がブロックした読み取りパス](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を再度開くのを防ぎます | サンドボックス設定 | Managed |

764| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | [`denyRead`](#sandbox-filesystem-denyread)がブロックする領域内での読み取りを再度開きます | サンドボックス設定 | Any file |764| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | [`denyRead`](#sandbox-filesystem-denyread)がブロックする領域内での読み取りを再度開きます | サンドボックス設定 | Any file |


770| [`sandbox.network`](#sandbox-network) | [サンドボックス化](/docs/ja/sandboxing#network-isolation)されたコマンドが到達するホスト、ポート、ソケットを制御します | サンドボックス設定 | Any file |770| [`sandbox.network`](#sandbox-network) | [サンドボックス化](/docs/ja/sandboxing#network-isolation)されたコマンドが到達するホスト、ポート、ソケットを制御します | サンドボックス設定 | Any file |

771| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがすべての Unix ソケットに接続することを許可します | サンドボックス設定 | Any file |771| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがすべての Unix ソケットに接続することを許可します | サンドボックス設定 | Any file |

772| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがプロンプトを表示しないようにドメインを事前に許可します | サンドボックス設定 | Any file |772| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがプロンプトを表示しないようにドメインを事前に許可します | サンドボックス設定 | Any file |

773| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で localhost ポートにバインドすることを許可します | サンドボックス設定 | Any file |773| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS でネットワークポートをリッスンし、localhost に接続することを許可します | サンドボックス設定 | Any file |

774| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | macOS [サンドボックス化](/docs/ja/sandboxing)ツール(iOS Simulator または Playwright など)が XPC サービスに到達することを許可します | サンドボックス設定 | Any file |774| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | macOS [サンドボックス化](/docs/ja/sandboxing)ツール(iOS Simulator または Playwright など)が XPC サービスに到達することを許可します | サンドボックス設定 | Any file |

775| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | ネットワーク許可リストを[マネージド設定](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)にロックします | サンドボックス設定 | Managed |775| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | ネットワーク許可リストを[管理設定](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)にロックします | サンドボックス設定 | Managed |

776| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で使用できる Unix ソケットパスをリストします | サンドボックス設定 | Any file |776| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で使用できる Unix ソケットパスをリストします | サンドボックス設定 | Any file |

777| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドのドメインをブロックします。許可されたワイルドカード内でも | サンドボックス設定 | Any file |777| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドのドメインをブロックします。許可されたワイルドカード内でも | サンドボックス設定 | Any file |

778| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | [サンドボックス](/docs/ja/sandboxing#custom-proxy-configuration)HTTP トラフィックを独自のプロキシを通じてルーティングします | サンドボックス設定 | Any file |778| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | [サンドボックス](/docs/ja/sandboxing#custom-proxy-configuration)HTTP トラフィックを独自のプロキシを通じてルーティングします | サンドボックス設定 | Any file |


787| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)用にコンテキストをより多くまたはより少なく予約します | メモリとコンテキスト | Any file |787| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)用にコンテキストをより多くまたはより少なく予約します | メモリとコンテキスト | Any file |

788| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)内の各スキルの説明の長さをキャップします | メモリとコンテキスト | Any file |788| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)内の各スキルの説明の長さをキャップします | メモリとコンテキスト | Any file |

789| [`skillOverrides`](#skilloverrides) | [スキルを非表示または折りたたむ](/docs/ja/skills#override-skill-visibility-from-settings)。SKILL.md を編集せずに | プラグインとスキル | Any file |789| [`skillOverrides`](#skilloverrides) | [スキルを非表示または折りたたむ](/docs/ja/skills#override-skill-visibility-from-settings)。SKILL.md を編集せずに | プラグインとスキル | Any file |

790| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 組み込みデフォルトではなく自分で[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)に入るときに Claude Code が表示する 1 回限りの通知をスキップします | 権限設定 | User or managed |790| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 組み込みデフォルトではなく自分で [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)に入るときに Claude Code が表示する 1 回限りの通知をスキップします | 権限設定 | User or managed |

791| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | [bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)の前の確認ダイアログをスキップします | 権限設定 | User, local, or managed |791| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | [bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)の前の確認ダイアログをスキップします | 権限設定 | User, local, or managed |

792| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Anthropic に到達できないときに[WebFetch ホスト名チェック](/docs/ja/tools-reference#webfetch-tool-behavior)をスキップします | プライバシーとテレメトリ | Any file |792| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Anthropic に到達できないときに[WebFetch ホスト名チェック](/docs/ja/tools-reference#webfetch-tool-behavior)をスキップします | プライバシーとテレメトリ | Any file |

793| [`spellcheck`](#spellcheck) | インストールする[スペルチェッカー](/docs/ja/interactive-mode#check-spelling-as-you-type)でプロンプト入力の単語に下線を引きます | インターフェースとターミナル | User or managed |793| [`spellcheck`](#spellcheck) | インストールする[スペルチェッカー](/docs/ja/interactive-mode#check-spelling-as-you-type)でプロンプト入力内のスペルミスの単語に下線を引きます | インターフェースとターミナル | User or managed |

794| [`spinnerTipsEnabled`](#spinnertipsenabled) | Claude が作業している間、スピナーのヒントを非表示にします | インターフェースとターミナル | Any file |794| [`spinnerTipsEnabled`](#spinnertipsenabled) | Claude が作業している間、スピナーのヒントを非表示にします | インターフェースとターミナル | Any file |

795| [`spinnerTipsOverride`](#spinnertipsoverride) | スピナーローテーションに独自のヒントを追加するか、組み込みヒントを置き換えます | インターフェースとターミナル | Any file |795| [`spinnerTipsOverride`](#spinnertipsoverride) | スピナーローテーションに独自のヒントを追加するか、組み込みヒントを置き換えます | インターフェースとターミナル | Any file |

796| [`spinnerVerbs`](#spinnerverbs) | ターンの実行中に表示される動詞を追加または置き換えます | インターフェースとターミナル | Any file |796| [`spinnerVerbs`](#spinnerverbs) | ターンの実行中に表示される動詞を追加または置き換えます | インターフェースとターミナル | Any file |


799| [`statusLine`](#statusline) | 独自のコマンドを実行して、プロンプトの下に[ステータスライン](/docs/ja/statusline)をレンダリングします | インターフェースとターミナル | Any file |799| [`statusLine`](#statusline) | 独自のコマンドを実行して、プロンプトの下に[ステータスライン](/docs/ja/statusline)をレンダリングします | インターフェースとターミナル | Any file |

800| [`strictKnownMarketplaces`](#strictknownmarketplaces) | ユーザーが追加およびインストールできる[マーケットプレイス](/docs/ja/plugins/overview)ソースを許可リストに登録します | プラグインとスキル | Managed |800| [`strictKnownMarketplaces`](#strictknownmarketplaces) | ユーザーが追加およびインストールできる[マーケットプレイス](/docs/ja/plugins/overview)ソースを許可リストに登録します | プラグインとスキル | Managed |

801| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | [スキル](/docs/ja/skills)、[エージェント](/docs/ja/sub-agents)、[フック](/docs/ja/hooks)、[MCP サーバー](/docs/ja/mcp)をユーザーおよびプロジェクトソースからブロックします | プラグインとスキル | Managed |801| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | [スキル](/docs/ja/skills)、[エージェント](/docs/ja/sub-agents)、[フック](/docs/ja/hooks)、[MCP サーバー](/docs/ja/mcp)をユーザーおよびプロジェクトソースからブロックします | プラグインとスキル | Managed |

802| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | [エージェント](/docs/ja/sub-agents)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |802| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | [エージェント](/docs/ja/sub-agents)をプラグインおよび管理ソースにロックします | プラグインとスキル | Managed |

803| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | [フック](/docs/ja/hooks)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |803| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | [フック](/docs/ja/hooks)をプラグインおよび管理ソースにロックします | プラグインとスキル | Managed |

804| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | [MCP サーバー](/docs/ja/mcp)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |804| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | [MCP サーバー](/docs/ja/mcp)をプラグインおよび管理ソースにロックします | プラグインとスキル | Managed |

805| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | [スキル](/docs/ja/skills)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |805| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | [スキル](/docs/ja/skills)をプラグインおよび管理ソースにロックします | プラグインとスキル | Managed |

806| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | サブエージェントおよびメイン会話外の他のリクエストの[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | モデルと応答 | Any file |806| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | サブエージェントおよびメイン会話外の他のリクエストの[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | モデルと応答 | Any file |

807| [`subagentStatusLine`](#subagentstatusline) | 独自のコマンドで[サブエージェント](/docs/ja/sub-agents)タスク表示の行を書き直します | インターフェースとターミナル | Any file |807| [`subagentStatusLine`](#subagentstatusline) | 独自のコマンドで[サブエージェント](/docs/ja/sub-agents)タスク表示の行を書き直します | インターフェースとターミナル | Any file |

808| [`switchModelsOnFlag`](#switchmodelsonflag) | [安全分類器](/docs/ja/model-config#ask-before-switching)がリクエストにフラグを立てるときに自動的にモデルを切り替えるか一時停止します | モデルと応答 | Any file |808| [`switchModelsOnFlag`](#switchmodelsonflag) | [安全分類器](/docs/ja/model-config#ask-before-switching)がリクエストを警告したときに自動的にモデルを切り替えるか一時停止します | モデルと応答 | Any file |

809| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | [claude.ai アカウントで有効になっているプラグイン](/docs/ja/plugins/loading#synced-plugins)のロードを停止し、新しいものをダウンロードするのを停止します | プラグインとスキル | User, local, or managed |809| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | [claude.ai アカウントで有効になっているプラグイン](/docs/ja/plugins/loading#synced-plugins)のロードを停止し、新しいものをダウンロードするのを停止します | プラグインとスキル | User, local, or managed |

810| [`syncClaudeAiSkills`](#syncclaudeaiskills) | [claude.ai アカウントで有効になっているスキル](/docs/ja/skills#how-synced-skills-behave)のロードを停止し、新しいものをダウンロードするのを停止します | プラグインとスキル | User, local, or managed |810| [`syncClaudeAiSkills`](#syncclaudeaiskills) | [claude.ai アカウントで有効になっているスキル](/docs/ja/skills#how-synced-skills-behave)のロードを停止し、新しいものをダウンロードするのを停止します | プラグインとスキル | User, local, or managed |

811| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | diff およびコードブロックの構文強調表示をオフにします | インターフェースとターミナル | Any file |811| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 差分およびコードブロックの構文強調表示をオフにします | インターフェースとターミナル | Any file |

812| [`taskOutputMaxChars`](#taskoutputmaxchars) | v2.1.277 で削除されました。それがサイズを設定した `TaskOutput` ツールと一緒に | メモリとコンテキスト | Any file |812| [`taskOutputMaxChars`](#taskoutputmaxchars) | v2.1.277 で削除されました。それがサイズを設定した `TaskOutput` ツールと一緒に | メモリとコンテキスト | Any file |

813| [`teammateDefaultModel`](#teammatedefaultmodel) | v2.1.234 で削除されました。[チームメイトとモデルを指定](/docs/ja/agent-teams#specify-teammates-and-models)を参照して、Claude Code がチームメイトのモデルを選択する方法を確認してください | グローバル設定 | Global config |813| [`teammateDefaultModel`](#teammatedefaultmodel) | v2.1.234 で削除されました。[チームメイトとモデルを指定](/docs/ja/agent-teams#specify-teammates-and-models)を参照して、Claude Code がチームメイトのモデルを選択する方法を確認してください | グローバル設定 | Global config |

814| [`teammateMode`](#teammatemode) | [エージェントチームチームメイトの表示](/docs/ja/agent-teams#choose-a-display-mode)方法を選択します | エージェント、セッション、ワークツリー | Any file |814| [`teammateMode`](#teammatemode) | [エージェントチームのチームメイトの表示](/docs/ja/agent-teams#choose-a-display-mode)方法を選択します | エージェント、セッション、worktree | Any file |

815| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | サポートするターミナルのターミナルプログレスバーを非表示にします | インターフェースとターミナル | Any file |815| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | サポートするターミナルのターミナルプログレスバーを非表示にします | インターフェースとターミナル | Any file |

816| [`terminalTitleFromRename`](#terminaltitlefromrename) | [`/rename`](/docs/ja/sessions#name-your-sessions)と `--name` がターミナルタブタイトルを変更するのを停止します | インターフェースとターミナル | Any file |816| [`terminalTitleFromRename`](#terminaltitlefromrename) | [`/rename`](/docs/ja/sessions#name-your-sessions)と `--name` がターミナルタブタイトルを変更するのを停止します | インターフェースとターミナル | Any file |

817| [`theme`](#theme) | インターフェース[カラーテーマ](/docs/ja/terminal-config#match-the-color-theme)を選択します。組み込みまたはカスタム | インターフェースとターミナル | Any file |817| [`theme`](#theme) | インターフェース[カラーテーマ](/docs/ja/terminal-config#match-the-color-theme)を選択します。組み込みまたはカスタム | インターフェースとターミナル | Any file |


819| [`timeZone`](#timezone) | インターフェースの時刻をシステムのタイムゾーン以外のタイムゾーンで表示します | インターフェースとターミナル | Any file |819| [`timeZone`](#timezone) | インターフェースの時刻をシステムのタイムゾーン以外のタイムゾーンで表示します | インターフェースとターミナル | Any file |

820| [`tui`](#tui) | [フルスクリーン](/docs/ja/fullscreen)またはクラシックターミナルレンダラーを選択します | インターフェースとターミナル | Any file |820| [`tui`](#tui) | [フルスクリーン](/docs/ja/fullscreen)またはクラシックターミナルレンダラーを選択します | インターフェースとターミナル | Any file |

821| [`ultracode`](#ultracode) | Claude が尋ねられることなく、実質的なタスクごとに[ワークフロー](/docs/ja/workflows#let-claude-decide-with-ultracode)を計画するようにします | モデルと応答 | Any file |821| [`ultracode`](#ultracode) | Claude が尋ねられることなく、実質的なタスクごとに[ワークフロー](/docs/ja/workflows#let-claude-decide-with-ultracode)を計画するようにします | モデルと応答 | Any file |

822| [`useAutoModeDuringPlan`](#useautomodeduringplan) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器が[プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)でシェルコマンドをレビューすることを許可します。プロンプトを取得するには `false` を設定します | 権限設定 | User, local, or managed |822| [`useAutoModeDuringPlan`](#useautomodeduringplan) | [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器が [plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)でシェルコマンドをレビューすることを許可します。代わりにプロンプトを表示するには `false` を設定します | 権限設定 | User, local, or managed |

823| [`verbose`](#verbose) | 切り詰められた要約の代わりに[完全なツール出力](/docs/ja/cli-reference#cli-flags)を表示します。両方が設定されている場合、`viewMode` が優先されます | インターフェースとターミナル | Any file |823| [`verbose`](#verbose) | 切り詰められた要約の代わりに[完全なツール出力](/docs/ja/cli-reference#cli-flags)を表示します。両方が設定されている場合、`viewMode` が優先されます | インターフェースとターミナル | Any file |

824| [`viewMode`](#viewmode) | すべてのセッションを[デフォルト、詳細、またはフォーカスビュー](/docs/ja/cli-reference#cli-flags)で開始します | インターフェースとターミナル | Any file |824| [`viewMode`](#viewmode) | すべてのセッションを[デフォルト、詳細、またはフォーカスビュー](/docs/ja/cli-reference#cli-flags)で開始します | インターフェースとターミナル | Any file |

825| [`vimInsertModeRemaps`](#viminsertmoderemaps) | 2 キー[INSERT モードシーケンス](/docs/ja/interactive-mode#remap-insert-mode-key-sequences)(`jj` など)を Escape にマップします | インターフェースとターミナル | User or managed |825| [`vimInsertModeRemaps`](#viminsertmoderemaps) | 2 キー[INSERT モードシーケンス](/docs/ja/interactive-mode#remap-insert-mode-key-sequences)(`jj` など)を Escape にマップします | インターフェースとターミナル | User or managed |

826| [`voice`](#voice) | [音声ディクテーション](/docs/ja/voice-dictation)をオンにして、ホールドまたはタップモードを選択します | インターフェースとターミナル | Any file |826| [`voice`](#voice) | [音声ディクテーション](/docs/ja/voice-dictation)をオンにして、ホールドまたはタップモードを選択します | インターフェースとターミナル | Any file |

827| [`voiceEnabled`](#voiceenabled) | 古い単一キー形式で[音声ディクテーション](/docs/ja/voice-dictation)をオンにします | インターフェースとターミナル | Any file |827| [`voiceEnabled`](#voiceenabled) | 古い単一キー形式で[音声ディクテーション](/docs/ja/voice-dictation)をオンにします | インターフェースとターミナル | Any file |

828| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | フルスクリーンレンダリングで[マウスホイール加速](/docs/ja/fullscreen#mouse-wheel-scrolling)をオフにします | インターフェースとターミナル | Any file |828| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | フルスクリーンレンダリングで[マウスホイール加速](/docs/ja/fullscreen#mouse-wheel-scrolling)をオフにします | インターフェースとターミナル | Any file |

829| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | プロンプト内の単語 `ultracode` が[ワークフロー](/docs/ja/workflows)を開始することを許可します。それを入力せずに入力するには `false` を設定します | フックと自動化 | Any file |829| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | プロンプト内の単語 `ultracode` が[ワークフロー](/docs/ja/workflows)を開始することを許可します。ワークフローを開始せずにこの単語を入力するには `false` を設定します | フックと自動化 | Any file |

830| [`workflowSizeGuideline`](#workflowsizeguideline) | Claude が[動的ワークフロー](/docs/ja/workflows)で目指すエージェント数を設定します | フックと自動化 | Any file |830| [`workflowSizeGuideline`](#workflowsizeguideline) | Claude が[動的ワークフロー](/docs/ja/workflows)で目指すエージェント数を設定します | フックと自動化 | Any file |

831| [`worktree`](#worktree) | Claude Code が git [ワークツリー](/docs/ja/worktrees)を作成する方法を設定します | エージェント、セッション、ワークツリー | Any file |831| [`worktree`](#worktree) | Claude Code が git [worktree](/docs/ja/worktrees) を作成する方法を設定します | エージェント、セッション、worktree | Any file |

832| [`worktree.baseRef`](#worktree-baseref) | 新しい[ワークツリー](/docs/ja/worktrees)をリモートデフォルトブランチまたはローカル HEAD からブランチします | エージェント、セッション、ワークツリー | Any file |832| [`worktree.baseRef`](#worktree-baseref) | 新しい [worktree](/docs/ja/worktrees) をリモートデフォルトブランチまたはローカル HEAD からブランチします | エージェント、セッション、worktree | Any file |

833| [`worktree.bgIsolation`](#worktree-bgisolation) | バックグラウンドセッションが[ワークツリー](/docs/ja/worktrees)なしで作業コピーを編集することを許可します | エージェント、セッション、ワークツリー | Any file |833| [`worktree.bgIsolation`](#worktree-bgisolation) | バックグラウンドセッションが [worktree](/docs/ja/worktrees) なしで作業コピーを編集することを許可します | エージェント、セッション、worktree | Any file |

834| [`worktree.sparsePaths`](#worktree-sparsepaths) | 各[ワークツリー](/docs/ja/worktrees)で必要なディレクトリのみをチェックアウトします | エージェント、セッション、ワークツリー | Any file |834| [`worktree.sparsePaths`](#worktree-sparsepaths) | 各 [worktree](/docs/ja/worktrees) で必要なディレクトリのみをチェックアウトします | エージェント、セッション、worktree | Any file |

835| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 各[ワークツリー](/docs/ja/worktrees)で大きなディレクトリを複製する代わりにシンボリックリンクします | エージェント、セッション、ワークツリー | Any file |835| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 各 [worktree](/docs/ja/worktrees) で大きなディレクトリを複製する代わりにシンボリックリンクします | エージェント、セッション、worktree | Any file |

836| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | WSL が Windows ポリシーチェーンから[マネージド設定](/docs/ja/managed-settings)を読み取ることを許可します | エンタープライズとマネージド設定 | Managed |836| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | WSL が Windows ポリシーチェーンから[管理設定](/docs/ja/managed-settings)を読み取るようにします | エンタープライズと管理設定 | Managed |

837 837 

838<h2 id="model-and-responses">838<h2 id="model-and-responses">

839 モデルと応答839 モデルと応答


1433 権限設定1433 権限設定

1434</h2>1434</h2>

1435 1435 

1436Claude が何を確認なしで実行できるか、セッションがどの権限モードで開始するか、自動モードの分類器が何を許可するかを決定します。ルール構文と権限モデルについては、[権限を設定する](/docs/ja/permissions)を参照してください。1436Claude が何を確認なしで実行できるか、セッションがどの権限モードで開始するか、auto モードの分類器が何を許可するかを決定します。ルール構文と権限モデルについては、[権限を設定する](/docs/ja/permissions)を参照してください。

1437 1437 

1438<h3 id="allowmanagedpermissionrulesonly">1438<h3 id="allowmanagedpermissionrulesonly">

1439 `allowManagedPermissionRulesOnly`1439 `allowManagedPermissionRulesOnly`


1441 1441 

1442管理設定を権限ルールの唯一の設定ソースにします。Claude Code はユーザー、プロジェクト、ローカル、および `--settings` ファイル内の `allow`、`ask`、`deny` ルールを無視し、`--allowedTools` を無視し、権限プロンプトで常に許可する選択肢を非表示にし、新しいルールの保存を停止します。1442管理設定を権限ルールの唯一の設定ソースにします。Claude Code はユーザー、プロジェクト、ローカル、および `--settings` ファイル内の `allow`、`ask`、`deny` ルールを無視し、`--allowedTools` を無視し、権限プロンプトで常に許可する選択肢を非表示にし、新しいルールの保存を停止します。

1443 1443 

1444[埋め込みホストからの親設定](/docs/ja/managed-settings#let-an-embedding-host-add-policy)が適用される場合、Claude Code はそれらを管理層の一部として扱います。それらの `deny` および `ask` ルールを保持し、それらの `allow` ルールと `additionalDirectories` を削除します。また、`Read` および `Edit` ルールで `!` で始まるパターンを除きます。ホストは `!` ルールで管理ルールからパスを除外することはできません。`allowManagedPermissionRulesOnly` を設定しているかどうかに関わらず。1444[埋め込みホストからの親設定](/docs/ja/managed-settings#let-an-embedding-host-add-policy)が適用される場合、Claude Code はそれらを管理層の一部として扱います。それらの `allow` ルールと `additionalDirectories` を削除し、`deny` および `ask` ルールは保持します。ただし、パターンが `!` で始まる `Read` および `Edit` ルールは除きます。このキーを設定しているかどうかに関わらず、ホストは `!` ルールで管理ルールからパスを除外することはできません。

1445 1445 

1446`--disallowedTools` ルールと現在のセッションの `deny` および `ask` ルールは、Claude Code が設定をセッション中に再度読み込んだ後を含めて、引き続き適用されます。これらは制限のみを行うため、管理ルールが付与するものを拡大することはできません。v2.1.257 より前では、Claude Code は最初の設定再度読み込み時にそれらのコマンドラインおよびセッションルールを削除していました。1446`--disallowedTools` ルールと現在のセッションの `deny` および `ask` ルールは、Claude Code が設定をセッション中に再度読み込んだ後を含めて、引き続き適用されます。これらは制限のみを行うため、管理ルールが付与するものを拡大することはできません。v2.1.257 より前では、Claude Code は最初の設定再度読み込み時にそれらのコマンドラインおよびセッションルールを削除していました。

1447 1447 

1448`--disallowedTools` またはセッションルール内の `!` パターンが除外できるものについては、[Read および Edit ルール](/docs/ja/permissions#read-and-edit)を参照してください。1448`--disallowedTools` またはセッションルール内の `!` パターンが除外できるものについては、[Read および Edit ルール](/docs/ja/permissions#read-and-edit)を参照してください。

1449 1449 

1450このキーを設定すると、Claude Code v2.1.282 以降では、次のソースにあるスキルおよび `.claude/commands/` ファイルの [`allowed-tools`](/docs/ja/skills#pre-approve-tools-for-a-skill) フロントマターも無視されます。

1451 

1452* リポジトリの `.claude/` ディレクトリ

1453* `~/.claude/skills/` および `~/.claude/commands/` ディレクトリ([claude.ai から同期されたスキル](/docs/ja/skills#where-synced-skills-load)を含む)

1454* `--add-dir` ディレクトリ

1455* `~/.claude/skills/` またはプロジェクトの `.claude/skills/` 内で [`.claude-plugin` マニフェストにより宣言されたプラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository)

1456 

1457管理設定からのスキルとバンドルスキルは `allowed-tools` を保持します。スキルの `disallowed-tools` は引き続き適用されます。Claude Code がこのフィールドを無視したときに開発者に何が表示されるかについては、[管理権限ルールのみが適用される場合](/docs/ja/skills#when-only-managed-permission-rules-apply)を参照してください。

1458 

1450* **スコープ**: [`Managed`](#scopes)1459* **スコープ**: [`Managed`](#scopes)

1451* **タイプ**: ブール値1460* **タイプ**: ブール値

1452 * `true`: 管理設定が権限ルールの唯一の設定ソースになります1461 * `true`: 管理設定が権限ルールの唯一の設定ソースになります


1465 `autoMode`1474 `autoMode`

1466</h3>1475</h3>

1467 1476 

1468[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器がブロックおよび許可するものに独自のルールを追加します。これを使用して、分類器に組織が信頼するリポジトリ、バケット、ドメインを伝え、日常的な内部操作のブロックを停止させます。分類器には[組み込みの許可および拒否ルール](/docs/ja/auto-mode-config#inspect-the-defaults-and-your-effective-config)が付属しています。リテラル文字列 `"$defaults"` を配列に含めて、それらの組み込みルールをその位置に保持し、その周りに独自のルールを追加します。省略すると、それらを独自のルールに置き換えます。1477[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)の分類器がブロックおよび許可するものに独自のルールを追加します。これを使用して、分類器に組織が信頼するリポジトリ、バケット、ドメインを伝え、日常的な内部操作のブロックを停止させます。分類器には[組み込みの許可および拒否ルール](/docs/ja/auto-mode-config#inspect-the-defaults-and-your-effective-config)が付属しています。リテラル文字列 `"$defaults"` を配列に含めて、それらの組み込みルールをその位置に保持し、その周りに独自のルールを追加します。省略すると、それらを独自のルールに置き換えます。

1469 1478 

1470* **スコープ**: [`User or managed`](#scopes)1479* **スコープ**: [`User or managed`](#scopes)

1471* **タイプ**: `environment`、`allow`、`soft_deny`、`hard_deny` の散文ルール配列、および [`classifyAllShell`](#automode-classifyallshell) ブール値を含むオブジェクト1480* **タイプ**: `environment`、`allow`、`soft_deny`、`hard_deny` の散文ルール配列、および [`classifyAllShell`](#automode-classifyallshell) ブール値を含むオブジェクト


1481}1490}

1482```1491```

1483 1492 

1484これらのファイルの複数が同じ配列を設定する場合、Claude Code はエントリを連結します。ルール形式と各配列の適用方法については、[自動モードを設定する](/docs/ja/auto-mode-config)を参照してください。1493これらのファイルの複数が同じ配列を設定する場合、Claude Code はエントリを連結します。ルール形式と各配列の適用方法については、[auto モードを設定する](/docs/ja/auto-mode-config)を参照してください。

1485 1494 

1486<h3 id="automode-classifyallshell">1495<h3 id="automode-classifyallshell">

1487 `autoMode.classifyAllShell`1496 `autoMode.classifyAllShell`

1488</h3>1497</h3>

1489 1498 

1490自動モードがアクティブな間、すべての Bash および PowerShell コマンドを自動モード分類器に通します。デフォルトでは、自動モードは任意のコードを実行できる許可ルールのみを一時停止します。`Bash(*)` やワイルドカードルール、および `Bash(python *)` などのインタープリタまたはシェルラッパープレフィックス。`Bash(npm test)` などの他の許可ルールと一致するコマンドは分類器をスキップし、[コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)を持たない限り、ルールのプレフィックスが予期しなかった破壊的な引数が見えないまま通過する可能性があります。このキーを設定すると、セッションのすべてのシェル許可ルールが一時停止され、分類器がすべてのコマンドを確認します。Claude Code v2.1.193 以降が必要です。1499auto モードがアクティブな間、すべての Bash および PowerShell コマンドを auto モードの分類器に通します。デフォルトでは、auto モードは任意のコードを実行できる許可ルールのみを一時停止します。具体的には、`Bash(*)` などのツール全体およびワイルドカードのルールと、`Bash(python *)` などのインタープリタまたはシェルラッパーのプレフィックスです。`Bash(npm test)` など、それ以外の許可ルールに一致するコマンドは、[コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)を持たない限り分類器をスキップします。スキップした場合、ルールのプレフィックスが想定していなかった破壊的な引数が見過ごされたまま通過する可能性があります。このキーを設定すると、セッションのすべてのシェル許可ルールが一時停止され、分類器がすべてのコマンドを確認します。Claude Code v2.1.193 以降が必要です。

1491 1500 

1492* **スコープ**: [`User or managed`](#scopes)。[`autoMode`](#automode)が読み取られる場所で読み取られます。1501* **スコープ**: [`User or managed`](#scopes)。[`autoMode`](#automode)が読み取られる場所で読み取られます。

1493* **タイプ**: ブール値1502* **タイプ**: ブール値

1494 * `true`: 自動モードがアクティブな間、Claude Code はすべての Bash および PowerShell コマンドを分類器に通し、シェル許可ルールを一時停止します。自動モード外では、ルールは引き続き適用されます1503 * `true`: auto モードがアクティブな間、Claude Code はすべての Bash および PowerShell コマンドを分類器に通し、シェル許可ルールを一時停止します。auto モード外では、ルールは引き続き適用されます

1495 * `false`: 自動モードは `Bash(*)` および `Bash(python *)` などの任意のコードを実行できる許可ルールのみを一時停止します。他の許可ルールと一致するコマンドは分類器をスキップし、[コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)を持たない限り、他のすべてのシェルコマンドはそれを通します1504 * `false`: auto モードは `Bash(*)` や `Bash(python *)` など、任意のコードを実行できる許可ルールのみを一時停止します。それ以外の許可ルールに一致するコマンドは、[コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)を持たない限り分類器をスキップし、その他すべてのシェルコマンドは分類器を通ります

1496* **デフォルト**: `false`1505* **デフォルト**: `false`

1497 1506 

1498```json settings.json theme={null}1507```json settings.json theme={null}


1509 `disableAutoMode`1518 `disableAutoMode`

1510</h3>1519</h3>

1511 1520 

1512[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を `Shift+Tab` サイクルから削除します。`--permission-mode auto`、設定ファイル、または組み込みデフォルトから[自動モードで開始](/docs/ja/permission-modes#which-mode-a-session-starts-in)する可能性があるセッションは、代わりに `default` で開始します。管理者は管理設定で設定して、組織内の開発者が自動モードを使用するのを防ぎます。1521[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を `Shift+Tab` サイクルから削除します。`--permission-mode auto`、設定ファイル、または組み込みデフォルトから[auto モードで開始](/docs/ja/permission-modes#which-mode-a-session-starts-in)する可能性があるセッションは、代わりに `default` で開始します。管理者は管理設定で設定して、組織内の開発者が auto モードを使用するのを防ぎます。

1513 1522 

1514* **スコープ**: [`Any file`](#scopes)。[管理設定](/docs/ja/managed-settings)で最も有用です。ユーザーはそれをオーバーライドできません。`permissions` の下で `permissions.disableAutoMode` として受け入れられます。1523* **スコープ**: [`Any file`](#scopes)。[管理設定](/docs/ja/managed-settings)で最も有用です。ユーザーはそれを上書きできません。`permissions` の下で `permissions.disableAutoMode` としても受け入れられます。

1515* **タイプ**: 文字列 `"disable"`1524* **タイプ**: 文字列 `"disable"`

1516* **デフォルト**: 未設定1525* **デフォルト**: 未設定

1517 1526 


1550 `useAutoModeDuringPlan`1559 `useAutoModeDuringPlan`

1551</h3>1560</h3>

1552 1561 

1553Claude Code がプランモード中にシェルコマンドを確認するために自動モード分類器を使用するかどうかを選択します。デフォルトの `true` では、自動モードが利用可能で、プロンプトが表示されない場合、分類器は計画中に各コマンドを確認します。ただし、[重要パスの削除](/docs/ja/permission-modes#critical-paths)を除きます。`false` に設定して、組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトを取得します。`/config` に**プラン中に自動モードを使用**として表示されます。1562Claude Code が plan モード中にシェルコマンドを確認するために auto モードの分類器を使用するかどうかを選択します。デフォルトの `true` では、auto モードが利用可能な場合、分類器は計画中に各コマンドを確認し、プロンプトは表示されません。ただし、[重要パスの削除](/docs/ja/permission-modes#critical-paths)を除きます。`false` に設定すると、組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトが表示されます。`/config` に**プラン中に auto モードを使用**として表示されます。

1554 1563 

1555* **スコープ**: [`User, local, or managed`](#scopes)。リポジトリはそれをオフにすることはできません。1564* **スコープ**: [`User, local, or managed`](#scopes)。リポジトリがこれをオフにすることはできません。

1556* **タイプ**: ブール値1565* **タイプ**: ブール値

1557 * `true`: 未設定と同じです。自動モードが利用可能な場合、分類器はプランニング中に各シェルコマンドを確認し、プロンプトを表示しません。ただし、[重要パスの削除](/docs/ja/permission-modes#critical-paths)を除きます。これらのファイルのいずれかで `false` でもそれをオフにします1566 * `true`: 未設定と同じです。auto モードが利用可能な場合、分類器は計画中に各シェルコマンドを確認し、プロンプトを表示しません。ただし、[重要パスの削除](/docs/ja/permission-modes#critical-paths)を除きます。これらのファイルのいずれかで `false` が設定されていれば、引き続きオフになります

1558 * `false`: 組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトを取得します1567 * `false`: 組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトが表示されます

1559* **デフォルト**: `true`1568* **デフォルト**: `true`

1560 1569 

1561```json settings.json theme={null}1570```json settings.json theme={null}


1568 `permissions.allow`1577 `permissions.allow`

1569</h3>1578</h3>

1570 1579 

1571Claude Code が確認なしで承認するツール使用をリストします。MCP ルールでは、`*` はツール名内の `mcp__<server>__` プレフィックスの後にのみ表示できます(例:`mcp__github__get_*`)。サーバー名には表示できません。1580Claude Code が確認なしで承認するツール使用をリストします。MCP ルールでは、`*` はツール名内の `mcp__<server>__` プレフィックスの後にのみ使用できます(例:`mcp__github__get_*`)。サーバー名には使用できません。

1572 1581 

1573* **スコープ**: [`Any file`](#scopes)1582* **スコープ**: [`Any file`](#scopes)

1574* **タイプ**: 権限ルール文字列の配列1583* **タイプ**: 権限ルール文字列の配列

1575* **デフォルト**: 未設定1584* **デフォルト**: 未設定

1576* **セッションごとのオーバーライド**: `--allowedTools` は 1 つのセッションに許可ルールを追加し、任意の設定ファイルからの拒否ルールは、それが名前を付けるツールをブロックします1585* **セッションごとの上書き**: `--allowedTools` は 1 つのセッションに許可ルールを追加しますが、任意の設定ファイルからの拒否ルールは、それが指定するツールを引き続きブロックします

1577 1586 

1578この例は `git diff` を承認し、Claude Code が確認なしに `.zshrc` を読み取ることを許可します。1587この例は `git diff` を承認し、Claude Code が確認なしに `.zshrc` を読み取ることを許可します。

1579 1588 


1591 権限ルール構文1600 権限ルール構文

1592</h4>1601</h4>

1593 1602 

1594権限ルールは `Tool` または `Tool(specifier)` の形式に従います。Claude Code は `deny` ルールを最初に評価し、次に `ask`、次に `allow` を評価し、最初のマッチが各ルールの具体性に関係なく決定します。[権限ルール評価順序](/docs/ja/permissions#manage-permissions)を参照してください。1603権限ルールは `Tool` または `Tool(specifier)` の形式に従います。Claude Code は `deny` ルールを最初に評価し、次に `ask`、次に `allow` を評価し、各ルールの具体性に関係なく最初に一致したものが結果を決定します。[権限ルール評価順序](/docs/ja/permissions#manage-permissions)を参照してください。

1595 1604 

1596各行は 1 つのルール形状とそれが一致するものを示します。1605各行は 1 つのルール形状とそれが一致するものを示します。

1597 1606 


1608 `permissions.ask`1617 `permissions.ask`

1609</h3>1618</h3>

1610 1619 

1611`acceptEdits` または `bypassPermissions` などの権限モードで確認を求めるツール使用をリストします。`dontAsk` モードでは、Claude Code は一致するツール使用をプロンプトする代わりに拒否します。1620`acceptEdits` や `bypassPermissions` など、本来であれば承認される権限モードであっても確認を求めるツール使用をリストします。`dontAsk` モードでは、Claude Code は一致するツール使用に対してプロンプトを表示する代わりに拒否します。

1612 1621 

1613* **スコープ**: [`Any file`](#scopes)1622* **スコープ**: [`Any file`](#scopes)

1614* **タイプ**: 権限ルール文字列の配列1623* **タイプ**: 権限ルール文字列の配列


1628 `permissions.deny`1637 `permissions.deny`

1629</h3>1638</h3>

1630 1639 

1631Claude Code がブロックするツール使用をリストします。API キー、シークレット、または環境値を保持するファイルに使用します。Claude Code は一致するファイルをファイル検出と検索結果から除外し、それらの読み取りを拒否し、一致するパスの[Edit および Write ツール](/docs/ja/permissions#read-and-edit)をブロックします。Read および Edit 拒否ルールは Claude の組み込みファイルツール、Claude Code が Bash で認識するファイルコマンド(`cat`、`head`、`tail`、`sed`、`tee` など)、および `> file` および `< file` などの Bash [リダイレクション](/docs/ja/permissions#redirections)のターゲットに適用されます。ファイルを名前で読み取らないコマンド(`grep -r pattern .` など)または任意のサブプロセスには適用されません。OS レベルの強制については、[サンドボックスを有効にする](/docs/ja/sandboxing)を参照してください。1640Claude Code がブロックするツール使用をリストします。API キー、シークレット、または環境値を保持するファイルに使用します。Claude Code は一致するファイルをファイル検出と検索結果から除外し、それらの読み取りを拒否し、一致するパスの[Edit および Write ツール](/docs/ja/permissions#read-and-edit)をブロックします。

1641 

1642Read および Edit 拒否ルールは Claude の組み込みファイルツール、Claude Code が Bash で認識するファイルコマンド(`cat`、`head`、`tail`、`sed`、`tee` など)、および `> file` や `< file` などの Bash [リダイレクション](/docs/ja/permissions#redirections)のターゲットに適用されます。ファイル名を指定せずにファイルを読み取るコマンド(`grep -r pattern .` など)や任意のサブプロセスには適用されないため、OS レベルで強制するには[サンドボックスを有効にして](/docs/ja/sandboxing)ください。

1632 1643 

1633* **スコープ**: [`Any file`](#scopes)1644* **スコープ**: [`Any file`](#scopes)

1634* **タイプ**: 権限ルール文字列の配列1645* **タイプ**: 権限ルール文字列の配列

1635* **デフォルト**: 未設定1646* **デフォルト**: 未設定

1636* **セッションごとのオーバーライド**: `--disallowedTools` はこのキーと並行して 1 つのセッションに拒否ルールを追加します1647* **セッションごとの上書き**: `--disallowedTools` はこのキーと並行して 1 つのセッションに拒否ルールを追加します

1637 1648 

1638この例は `.env` ファイル、`secrets` ディレクトリ、認証情報ファイルの読み取りを拒否し、`curl` コマンドをブロックします。1649この例は `.env` ファイル、`secrets` ディレクトリ、認証情報ファイルの読み取りを拒否し、`curl` コマンドをブロックします。

1639 1650 


1651}1662}

1652```1663```

1653 1664 

1654ツール名はグロブパターンを受け入れるため、`"*"` はすべてのツールを拒否し、`"mcp__*"` はすべての MCP ツールを拒否します。Claude Code は、他のツールがまだ Claude で利用可能である限り、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior)ツールの拒否ルールを無視します。`Bash` 拒否ルールは Claude が書いたコマンドと一致するため、`Bash(curl *)` は `/usr/bin/curl` または `sh -c 'curl …'` を停止しません。[Bash ルールが一致しないもの](/docs/ja/permissions#bash-rule-limits)を参照してください。このキーは非推奨の `ignorePatterns` 設定に置き換わります。1665ツール名はグロブパターンを受け入れるため、`"*"` はすべてのツールを拒否し、`"mcp__*"` はすべての MCP ツールを拒否します。Claude Code は、他のツールがまだ Claude で利用可能である限り、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior)ツールの拒否ルールを無視します。`Bash` 拒否ルールは Claude が書いたコマンドと一致するため、`Bash(curl *)` は `/usr/bin/curl` や `sh -c 'curl …'` を停止しません。[Bash ルールが一致しないもの](/docs/ja/permissions#bash-rule-limits)を参照してください。このキーは非推奨の `ignorePatterns` 設定に置き換わるものです。

1655 1666 

1656<h3 id="permissions-additionaldirectories">1667<h3 id="permissions-additionaldirectories">

1657 `permissions.additionalDirectories`1668 `permissions.additionalDirectories`


1659 1670 

1660Claude に開始したディレクトリ外のディレクトリへのファイルアクセスを付与し、追加の[作業ディレクトリ](/docs/ja/permissions#working-directories)として使用します。ほとんどの `.claude/` 設定は、これらのディレクトリから[検出されません](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)。1671Claude に開始したディレクトリ外のディレクトリへのファイルアクセスを付与し、追加の[作業ディレクトリ](/docs/ja/permissions#working-directories)として使用します。ほとんどの `.claude/` 設定は、これらのディレクトリから[検出されません](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration)。

1661 1672 

1662* **スコープ**: [`Any file`](#scopes)1673* **スコープ**: [`Any file`](#scopes)。ただし、プロジェクトおよびローカルのエントリが付与するサンドボックスの書き込みアクセスには[制限](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)があります

1663* **タイプ**: ディレクトリパスの配列1674* **タイプ**: ディレクトリパスの配列

1664* **デフォルト**: 未設定1675* **デフォルト**: 未設定

1665* **セッションごとのオーバーライド**: `--add-dir` および `/add-dir` はこのキーと並行して 1 つのセッションにディレクトリを追加します1676* **セッションごとの上書き**: `--add-dir` および `/add-dir` はこのキーと並行して 1 つのセッションにディレクトリを追加します

1666 1677 

1667```json settings.json theme={null}1678```json settings.json theme={null}

1668{1679{


1678 `permissions.blockReadsOutsideWorkingDirectories`1689 `permissions.blockReadsOutsideWorkingDirectories`

1679</h3>1690</h3>

1680 1691 

1681Claude のファイルツールがセッションの[作業ディレクトリ](/docs/ja/permissions#working-directories)外のパスを読み取るのを拒否します。`bypassPermissions` を含むすべての権限モード。Claude Code は `Read`、`Grep`、`Glob`、`LSP` 呼び出しをそれらのパスで拒否し、Claude に `/add-dir` でディレクトリを追加するよう求めるよう指示します。Claude Code 自体が必要とするファイル(`~/.claude/` の下のスキル、プラグイン、ルール、エージェント、コマンド、`CLAUDE.md` メモリファイルなど)は読み取り可能なままです。Claude Code v2.1.257 以降が必要です。1692`bypassPermissions` を含むすべての権限モードで、Claude のファイルツールが[作業ディレクトリ](/docs/ja/permissions#working-directories)外の読み取りを拒否するようにします。Claude Code はそれらのパスに対する `Read`、`Grep`、`Glob`、`LSP` の呼び出しを拒否し、`/add-dir` でディレクトリを追加するようユーザーに求めるよう Claude に指示します。Claude Code 自体が必要とするファイル(`~/.claude/` の下のスキル、プラグイン、ルール、エージェント、コマンド、`CLAUDE.md` メモリファイルなど)は読み取り可能なままです。Claude Code v2.1.257 以降が必要です。

1682 1693 

1683Claude Code はシェルコマンドを同じ方法で拒否しません。1694Claude Code はシェルコマンドを同じ方法では拒否しません。

1684 1695 

1685* [モードが自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)は、そのようなパスを読み取るシェルコマンドがいつプロンプトを表示するかをカバーします1696* [どのモードでも自動承認されないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)では、そのようなパスを読み取るシェルコマンドがいつプロンプトを表示するかを説明しています

1686* [ブロック下のサンドボックス化されたコマンド](#sandboxed-commands-under-the-block)は、サンドボックス化されたコマンドが何を読み取れるかをカバーします1697* [ブロック下のサンドボックス化されたコマンド](#sandboxed-commands-under-the-block)では、サンドボックス化されたコマンドが何を読み取れるかを説明しています

1687 1698 

1688シェルパーサーが追跡できない Bash コマンド(複数回ディレクトリを変更するか、サブシェルを実行するなど)は、自動モードおよび `bypassPermissions` モードでもプロンプトを表示します。プロンプトは、コマンドが作業ディレクトリ外のパスを名前で指定しない場合でも表示されます。このプロンプトは、コマンドが[サンドボックス](/docs/ja/sandboxing)で実行され、サンドボックスがブロックを強制する場合には適用されません。1699シェルパーサーが追跡できない Bash コマンド(複数回ディレクトリを変更するものやサブシェルを実行するものなど)は、auto モードおよび `bypassPermissions` モードでもプロンプトを表示します。プロンプトは、コマンドが作業ディレクトリ外のパスを指定していない場合でも表示されます。このプロンプトは、コマンドが[サンドボックス](/docs/ja/sandboxing)で実行され、サンドボックスがブロックを強制する場合には適用されません。

1689 1700 

1690Claude Code は、[作業ディレクトリ外の最初の読み取り前の自動モードのプロンプト](/docs/ja/permission-modes#first-read-outside-the-working-directories)でそのような読み取りをブロックすることを選択した場合、ここに `true` を書き込みます。1701また、[作業ディレクトリ外の最初の読み取り前に表示される auto モードのプロンプト](/docs/ja/permission-modes#first-read-outside-the-working-directories)でそのような読み取りをブロックすることを選択した場合も、Claude Code はここに `true` を書き込みます。

1691 1702 

1692* **スコープ**: [`Any file`](#scopes)。任意のファイルが `true` を設定する場合、ブロックが適用されるため、リポジトリはプロジェクトのブロックをオンにできますが、設定したブロックを解除することはできません。1703* **スコープ**: [`Any file`](#scopes)。いずれかのファイルの `true` が適用されるため、リポジトリは自身に対してブロックをオンにできますが、ユーザーが設定したブロックを解除することはできません。

1693* **タイプ**: ブール値1704* **タイプ**: ブール値

1694 * `true`: Claude のファイルツールは作業ディレクトリ外の読み取りを拒否します1705 * `true`: Claude のファイルツールは作業ディレクトリ外の読み取りを拒否します

1695 * `false`: 未設定と同じです。ブロックは別のファイルが `true` を設定する場合でも適用されます1706 * `false`: 未設定と同じです。別のファイルが `true` を設定している場合、ブロックは引き続き適用されます

1696* **デフォルト**: 未設定。作業ディレクトリ外の読み取りは[権限モード](/docs/ja/permission-modes)に従います1707* **デフォルト**: 未設定。作業ディレクトリ外の読み取りは[権限モード](/docs/ja/permission-modes)に従います

1697 1708 

1698```json settings.json theme={null}1709```json settings.json theme={null}


1703}1714}

1704```1715```

1705 1716 

1706`--add-dir`、`/add-dir`、またはユーザーまたは管理設定の `additionalDirectories` で追加するディレクトリは、ブロックの作業ディレクトリとしてカウントされます。リポジトリ設定でのみ追加されるディレクトリはカウントされません。`.claude/settings.json` のディレクトリ、および git がファイルを追跡されていないとして報告する場合を除き、`.claude/settings.local.json` のディレクトリ。ディレクトリが git リポジトリではない場合、またはファイルを git が追跡する場合、Claude Code は `.claude/settings.local.json` をリポジトリ提供設定として扱うため、代わりにユーザー設定にディレクトリを配置してください。1717`--add-dir`、`/add-dir`、またはユーザー設定や管理設定の `additionalDirectories` で追加したディレクトリは、ブロックにおいて作業ディレクトリとしてカウントされます。リポジトリ設定でのみ追加されたディレクトリはカウントされません。該当するのは `.claude/settings.json` のディレクトリと、git がそのファイルを未追跡として報告する場合を除く `.claude/settings.local.json` のディレクトリです。git リポジトリではないディレクトリ、または git がそのファイルを追跡している場合、Claude Code は `.claude/settings.local.json` をリポジトリ設定として扱うため、読み取り可能にしておきたいディレクトリは代わりにユーザー設定に配置してください。

1707 1718 

1708[`autoMemoryDirectory`](#automemorydirectory)がプロジェクトの `.claude/settings.json` から、または[リポジトリ提供として扱われる](/docs/ja/permissions#when-your-local-settings-file-needs-trust)`.claude/settings.local.json` から来る場合、Claude Code はそのディレクトリから[自動メモリ](/docs/ja/memory#storage-location)を読み込まず、そこに保存しません。1719[`autoMemoryDirectory`](#automemorydirectory)がプロジェクトの `.claude/settings.json` から、または[リポジトリ提供として扱われる](/docs/ja/permissions#when-your-local-settings-file-needs-trust)`.claude/settings.local.json` から来る場合、Claude Code はそのディレクトリから[自動メモリ](/docs/ja/memory#storage-location)を読み込まず、そこに保存もしません。

1709 1720 

1710ブロックを解除するには、それを設定するすべての設定ファイルからキーを削除し、新しいセッションを開始します。1721ブロックを解除するには、それを設定しているすべての設定ファイルからキーを削除し、新しいセッションを開始します。

1711 1722 

1712<h4 id="sandboxed-commands-under-the-block">1723<h4 id="sandboxed-commands-under-the-block">

1713 ブロック下のサンドボックス化されたコマンド1724 ブロック下のサンドボックス化されたコマンド

1714</h4>1725</h4>

1715 1726 

1716[サンドボックス](/docs/ja/sandboxing)がオンの場合、ブロックはサンドボックス化されたコマンドにも適用されます。Claude Code はホームディレクトリおよびユーザーファイルを保持する他のルート(`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media`、`/srv`)への読み取りアクセスを拒否します。その後、作業ディレクトリ、[worktrees](/docs/ja/worktrees) Claude Code がセッション中に作成するもの、セッション一時ディレクトリ、およびコマンドが必要とする `~/.claude` の部分(スキルやプラグインなど)を再度開きます。ブロックが有効な間、リポジトリ設定からの `allowRead` および `allowWrite` エントリはカウントされません。1727[サンドボックス化](/docs/ja/sandboxing)がオンの場合、ブロックはサンドボックス化されたコマンドにも適用されます。Claude Code はホームディレクトリおよびユーザーファイルを保持する他のルート(`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media`、`/srv`)への読み取りアクセスを拒否します。その後、作業ディレクトリ、Claude Code がセッション中に作成する [worktree](/docs/ja/worktrees)、セッションの一時ディレクトリ、およびコマンドが必要とする `~/.claude` の部分(スキルやプラグインなど)を再度開きます。ブロックが有効な間、リポジトリ設定からの `allowRead` および `allowWrite` エントリはカウントされません。

1717 1728 

1718セッションの作業ディレクトリがリンク済み [git worktree](/docs/ja/worktrees) である場合(Claude Code がセッション中に入力したものを含む)、リポジトリの共通 `.git` ディレクトリはサンドボックス化されたコマンドに対して読み取り可能および書き込み可能なままなので、git はそこで機能し続けます。1729セッションの作業ディレクトリがリンクされた [git worktree](/docs/ja/worktrees) である場合(Claude Code がセッション中に入ったものを含む)、リポジトリの共通 `.git` ディレクトリはサンドボックス化されたコマンドに対して読み取り可能および書き込み可能なままなので、git はそこで引き続き機能します。

1719 1730 

1720これらの場合、ブロックはサンドボックス化されたコマンドに到達しませんが、Claude のファイルツールは引き続きそれを強制します。1731次の場合、ブロックはサンドボックス化されたコマンドには及びませんが、Claude のファイルツールは引き続きそれを強制します。

1721 1732 

1722* ファイルシステム分離は [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) を通じてオフになっています1733* ファイルシステム分離が [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) によってオフになっている

1723* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) が設定されています1734* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) が設定されている

1724* Claude Code を開始したディレクトリのパスに `*`、`?`、`[` などのグロブ文字が含まれています1735* Claude Code を開始したディレクトリのパスに `*`、`?`、`[` などのグロブ文字が含まれている

1725 1736 

1726ブロック下で、Claude Code はサンドボックス化されたコマンドにグローバル git 設定ファイルを再度開くため、`git` はアイデンティティと設定を保持します。1737ブロック下で、Claude Code はサンドボックス化されたコマンドに対してグローバル git 設定ファイルを再度開くため、`git` はユーザーのアイデンティティと設定を保持します。

1727 1738 

1728* `~/.gitconfig`1739* `~/.gitconfig`

1729* `$XDG_CONFIG_HOME/git` の下の `config`、`ignore`、`attributes` ファイル。デフォルトは `~/.config/git`1740* `$XDG_CONFIG_HOME/git` の下の `config`、`ignore`、`attributes` ファイル(デフォルトは `~/.config/git`)

1730* グローバル git 設定が `[include]`、`[includeIf]`、`core.excludesFile`、`core.attributesFile` を通じて名前を付けるファイル1741* グローバル git 設定が `[include]`、`[includeIf]`、`core.excludesFile`、`core.attributesFile` を通じて指定するファイル

1731 1742 

1732Claude Code は各ファイルを個別に判断します。ファイルがサンドボックス化されたコマンドが直接または symlink を通じて書き込める場所にある場合、Claude Code はそれが名前を付けるファイルを再度開きません。1743Claude Code は各ファイルを個別に判断します。ファイルが、サンドボックス化されたコマンドが直接またはシンボリックリンクを通じて書き込める場所にある場合、Claude Code はそのファイルが指定するファイルを再度開きません。

1733 1744 

1734Linux および WSL2 では、symlink である設定ファイルは独自のパスで読み取り不可のままにすることができ、`git` はそれなしで実行されます。`~/.git-credentials` および `$XDG_CONFIG_HOME/git/credentials` はブロックされたままです。1745Linux および WSL2 では、シンボリックリンクである設定ファイルはそれ自身のパスで読み取り不可のままになることがあり、その場合 `git` はそのファイルなしで実行されます。`~/.git-credentials` および `$XDG_CONFIG_HOME/git/credentials` はブロックされたままです。

1735 1746 

1736再度開いたファイルがシークレット(`http.extraHeader` トークンなど)を保持する場合、そのパスを [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) に追加します。ファイルをカバーする `denyRead` エントリは常にこの再度開きより優先されます。1747再度開いたファイルがシークレット(`http.extraHeader` トークンなど)を保持する場合、そのパスを [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) に追加してください。ファイルをカバーする `denyRead` エントリは、常にこの再度開く処理より優先されます。

1737 1748 

1738<h3 id="permissions-defaultmode">1749<h3 id="permissions-defaultmode">

1739 `permissions.defaultMode`1750 `permissions.defaultMode`

1740</h3>1751</h3>

1741 1752 

1742新しいセッションが開始する[権限モード](/docs/ja/permission-modes)を設定します。未設定のままにすると、セッションはプランとサーフェスの[組み込みデフォルト](/docs/ja/permission-modes#which-mode-a-session-starts-in)で開始します。1753新しいセッションが開始する[権限モード](/docs/ja/permission-modes)を設定します。未設定のままにすると、セッションは使用しているサーフェスの[組み込みデフォルト](/docs/ja/permission-modes#which-mode-a-session-starts-in)で開始します。

1743 1754 

1744* **スコープ**: [`Any file`](#scopes)。`auto` および `bypassPermissions` はプロジェクトまたはローカル設定から有効にならないため、代わりに `~/.claude/settings.json` で設定してください。v2.1.257 より前では、`bypassPermissions` は任意のファイルから有効になりました。VS Code 拡張機能が開始する会話の場合、Claude Code はユーザー、管理、および `--settings` 値のみを読み取ります。1755* **スコープ**: [`Any file`](#scopes)。`auto` および `bypassPermissions` はプロジェクトまたはローカル設定からは有効にならないため、代わりに `~/.claude/settings.json` で設定してください。v2.1.257 より前では、`bypassPermissions` は任意のファイルから有効になりました。VS Code 拡張機能が開始する会話の場合、Claude Code はユーザー、管理、および `--settings` の値のみを読み取ります。

1745* **タイプ**: 文字列。次のいずれか:1756* **タイプ**: 文字列。次のいずれか:

1746 * `"default"`: Claude Code は確認なしで読み取りのみを実行します1757 * `"default"`: Claude Code は確認なしで読み取りのみを実行します

1747 * `"acceptEdits"`: Claude Code は確認なしでファイル編集と `mkdir` および `mv` などの一般的なファイルシステムコマンドも実行します1758 * `"acceptEdits"`: Claude Code は確認なしでファイル編集と `mkdir` や `mv` などの一般的なファイルシステムコマンドも実行します

1748 * `"plan"`: Claude Code は読み取りと計画を行いますが、承認されるまで編集をブロックします1759 * `"plan"`: Claude Code は読み取りと計画を行いますが、計画を承認するまで編集をブロックします

1749 * `"auto"`: Claude Code はすべてを実行し、バックグラウンド安全チェックを行います1760 * `"auto"`: Claude Code は日常的なプロンプトなしで実行します。シェルコマンドやネットワークリクエストなどのアクションが実行される前に、バックグラウンドの分類器がそれらがユーザーのリクエストに沿っているかを確認します

1750 * `"dontAsk"`: Claude Code はプロンプトを表示するすべての呼び出しを自動的に拒否します。読み取り、承認が不要な他のアクション、事前承認されたツールは引き続き実行されます1761 * `"dontAsk"`: Claude Code はプロンプトを表示するはずのすべての呼び出しを自動的に拒否します。読み取り、承認が不要な他のアクション、事前承認されたツールは引き続き実行されます

1751 * `"bypassPermissions"`: Claude Code はすべてを確認なしで実行します1762 * `"bypassPermissions"`: Claude Code はすべてを確認なしで実行します

1752 * `"manual"`: Claude Code v2.1.200 以降の `"default"` のエイリアス1763 * `"manual"`: `"default"` のエイリアス(Claude Code v2.1.200 以降)

1753* **デフォルト**: 未設定1764* **デフォルト**: 未設定

1754* **セッションごとのオーバーライド**: `--permission-mode` およびその同等の `--dangerously-skip-permissions`(`bypassPermissions` の場合)は 1 つのセッションのこのキーより優先されます1765* **セッションごとの上書き**: `--permission-mode`、および `bypassPermissions` に相当する `--dangerously-skip-permissions` は、1 つのセッションにおいてこのキーより優先されます

1755 1766 

1756```json settings.json theme={null}1767```json settings.json theme={null}

1757{1768{


1761}1772}

1762```1773```

1763 1774 

1764権限ルールはすべてのモードの上に層状化されます。`deny` ルールは `bypassPermissions` を含むすべてのモードでブロックします。[権限モード](/docs/ja/permission-modes)を参照してください。`manual` は CLI および VS Code 拡張機能で Manual というラベルが付いた権限モードに名前を付けます。エイリアスには Claude Code v2.1.200 以降が必要です。クラウドセッションでは、Claude Code はこのキーから `acceptEdits`、`plan`、`default`、`auto` のみを尊重します。VS Code 拡張機能が開始する会話の場合、[開始権限モードの拡張機能が読み取る設定](/docs/ja/permission-modes#switch-permission-modes)を参照してください。1775権限ルールはすべてのモードの上に重ねて適用されます。`deny` ルールは `bypassPermissions` を含むすべてのモードでブロックします。[権限モード](/docs/ja/permission-modes)を参照してください。`manual` は、CLI および VS Code 拡張機能で Manual というラベルが付いた権限モードを指します。このエイリアスには Claude Code v2.1.200 以降が必要です。クラウドセッションでは、Claude Code はこのキーのうち `acceptEdits`、`plan`、`default`、`auto` のみを尊重します。VS Code 拡張機能が開始する会話については、[拡張機能が開始権限モードとして読み取る設定](/docs/ja/permission-modes#switch-permission-modes)を参照してください。

1765 1776 

1766<h3 id="permissions-disablebypasspermissionsmode">1777<h3 id="permissions-disablebypasspermissionsmode">

1767 `permissions.disableBypassPermissionsMode`1778 `permissions.disableBypassPermissionsMode`

1768</h3>1779</h3>

1769 1780 

1770誰もが `bypassPermissions` モードに入るのを防ぎます。Claude Code は `--dangerously-skip-permissions` フラグを拒否し、[エージェント定義](/docs/ja/sub-agents#permission-modes)の `permissionMode: bypassPermissions` を無視するため、サブエージェントは親セッションの権限モードで実行されます。1781誰も `bypassPermissions` モードに入れないようにします。Claude Code は `--dangerously-skip-permissions` フラグを拒否し、[エージェント定義](/docs/ja/sub-agents#permission-modes)の `permissionMode: bypassPermissions` を無視するため、サブエージェントは親セッションの権限モードで実行されます。

1771 1782 

1772* **スコープ**: [`Any file`](#scopes)。通常、[管理設定](/docs/ja/managed-settings)で設定して、組織のポリシーを強制します。1783* **スコープ**: [`Any file`](#scopes)。通常、組織のポリシーを強制するために[管理設定](/docs/ja/managed-settings)で設定します。

1773* **タイプ**: 文字列 `"disable"`1784* **タイプ**: 文字列 `"disable"`

1774* **デフォルト**: 未設定1785* **デフォルト**: 未設定

1775* **セッションごとのオーバーライド**: このキーは `--dangerously-skip-permissions` より優先されます。キーが設定されている間、Claude Code はそれを拒否します1786* **セッションごとの上書き**: このキーは `--dangerously-skip-permissions` より優先されます。キーが設定されている間、Claude Code はそのフラグを拒否します

1776 1787 

1777```json settings.json theme={null}1788```json settings.json theme={null}

1778{1789{


1782}1793}

1783```1794```

1784 1795 

1785v2.1.223 より前では、Claude Code はバイパスが無効になっていても frontmatter 権限モードを適用していました。1796v2.1.223 より前では、Claude Code はバイパスが無効になっていてもフロントマターの権限モードを適用していました。

1786 1797 

1787<h3 id="skipautopermissionprompt">1798<h3 id="skipautopermissionprompt">

1788 `skipAutoPermissionPrompt`1799 `skipAutoPermissionPrompt`

1789</h3>1800</h3>

1790 1801 

1791Claude Code が最初に自動モード自体に入るときに表示する[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を説明する 1 回限りの通知をスキップします。例えば、独自の設定またはモードセレクターを通じて、組み込みデフォルトがセッションをそれで開始するのではなく。Claude Code はその通知を 1 回表示してから、それが表示されたことを記録するため、このキーは通知がまだ表示されていない場所でのみ重要です。1802組み込みデフォルトによってセッションが auto モードで開始された場合ではなく、ユーザー自身の設定やモードセレクターなどを通じて初めて auto モードに入ったときに Claude Code が表示する、[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を説明する 1 回限りの通知をスキップします。Claude Code はその通知を 1 回表示した後、表示済みであることを記録するため、このキーは通知がまだ表示されていない場合にのみ意味を持ちます。

1792 1803 

1793* **スコープ**: [`User or managed`](#scopes)。リポジトリはそれを設定することはできません。1804* **スコープ**: [`User or managed`](#scopes)。リポジトリがこれを設定することはできません。

1794* **タイプ**: ブール値1805* **タイプ**: ブール値

1795 * `true`: Claude Code は通知をスキップします1806 * `true`: Claude Code は通知をスキップします

1796 * `false`: 未設定と同じです。これらのファイルのいずれかが `true` を設定しない限り、通知が表示されます1807 * `false`: 未設定と同じです。これらのファイルのいずれかが `true` を設定しない限り、通知が 1 回表示されます

1797* **デフォルト**: 未設定。通知が 1 回表示されます1808* **デフォルト**: 未設定。通知が 1 回表示されます

1798 1809 

1799```json settings.json theme={null}1810```json settings.json theme={null}


1806 `skipDangerousModePermissionPrompt`1817 `skipDangerousModePermissionPrompt`

1807</h3>1818</h3>

1808 1819 

1809Claude Code が `bypassPermissions` モードに入る前に表示する確認ダイアログをスキップします。`--dangerously-skip-permissions` または `defaultMode: "bypassPermissions"` からかどうか。Claude Code は、そのダイアログを 1 回受け入れたときに、ユーザー設定にここに `true` を書き込みます。1820`--dangerously-skip-permissions` からか `defaultMode: "bypassPermissions"` からかに関わらず、セッションが `bypassPermissions` モードに入る前に Claude Code が表示する確認ダイアログをスキップします。そのダイアログを一度受け入れると、Claude Code はユーザー設定のこのキーに `true` を書き込みます。

1810 1821 

1811* **スコープ**: [`User, local, or managed`](#scopes)。信頼されていないリポジトリはダイアログをスキップすることはできません。1822* **スコープ**: [`User, local, or managed`](#scopes)。信頼されていないリポジトリがダイアログをスキップさせることはできません。

1812* **タイプ**: ブール値1823* **タイプ**: ブール値

1813 * `true`: Claude Code は `bypassPermissions` モードに入る前に確認ダイアログをスキップします1824 * `true`: Claude Code はセッションが `bypassPermissions` モードに入る前の確認ダイアログをスキップします

1814 * `false`: 未設定と同じです。これらのファイルのいずれかが `true` を設定しない限り、ダイアログが表示されます1825 * `false`: 未設定と同じです。これらのファイルのいずれかが `true` を設定しない限り、ダイアログが表示されます

1815* **デフォルト**: 未設定。ダイアログが表示されます1826* **デフォルト**: 未設定。ダイアログが表示されます

1816 1827 


1855}1866}

1856```1867```

1857 1868 

1858Claude Code はブール値キーの値を、それを設定する最も優先度の高い設定スコープから取得するため、管理対象の `enabled` または `failIfUnavailable` は開発者が設定したものをオーバーライドします。配列キーはセッションが読み込むすべての設定スコープ全体でマージされるため、開発者はエントリを追加できます。[ポリシーの拡大を開発者に防止させる](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)については、管理対象のみのロックを参照してください。組織に対してサンドボックスを必須にするには、[管理設定でサンドボックスを強制する](/docs/ja/sandboxing#enforce-sandboxing-with-managed-settings)を参照してください。1869管理設定が `enabled` や `failIfUnavailable` などのブール値キーを設定した場合、その値は開発者が設定したものをすべて上書きします。Claude Code は配列キーをセッションが読み込む設定スコープ全体でマージするため、開発者はエントリを追加できます。管理設定専用のロックについては、[ポリシーの拡大を開発者に防止させる](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を参照してください。組織に対してサンドボックスを必須にするには、[管理設定でサンドボックスを強制する](/docs/ja/sandboxing#enforce-sandboxing-with-managed-settings)を参照してください。

1859 1870 

1860<h3 id="sandbox-enabled">1871<h3 id="sandbox-enabled">

1861 `sandbox.enabled`1872 `sandbox.enabled`


1863 1874 

1864Bash コマンドの[サンドボックス](/docs/ja/sandboxing)をオンにします。`/sandbox` パネルでモードを選択すると、Claude Code はこのキーを現在のプロジェクトの `.claude/settings.local.json` に書き込みます。`~/.claude/settings.json` に設定して、すべてのプロジェクトをサンドボックス化します。1875Bash コマンドの[サンドボックス](/docs/ja/sandboxing)をオンにします。`/sandbox` パネルでモードを選択すると、Claude Code はこのキーを現在のプロジェクトの `.claude/settings.local.json` に書き込みます。`~/.claude/settings.json` に設定して、すべてのプロジェクトをサンドボックス化します。

1865 1876 

1866* **Scope**: [`Any file`](#scopes)1877* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

1867* **Type**: ブール値1878* **Type**: ブール値

1868 * `true`: Claude Code は Bash コマンドをサンドボックス化します1879 * `true`: Claude Code は Bash コマンドをサンドボックス化します

1869 * `false`: Bash コマンドはサンドボックスなしで実行されます1880 * `false`: Bash コマンドはサンドボックスなしで実行されます


1877}1888}

1878```1889```

1879 1890 

1880Linux と WSL2 では、サンドボックスは `bubblewrap` と `socat` が必要です。[Linux と WSL2 をセットアップする](/docs/ja/sandboxing#set-up-linux-and-wsl2)を参照してください。サンドボックスが起動できない場合、Claude Code は警告を表示し、[`failIfUnavailable`](#sandbox-failifunavailable)も設定しない限り、コマンドはサンドボックスなしで実行されます。1891Linux と WSL2 では、サンドボックスは `bubblewrap` と `socat` が必要です。[Linux と WSL2 をセットアップする](/docs/ja/sandboxing#set-up-linux-and-wsl2)を参照してください。サンドボックスが起動できない場合、[`failIfUnavailable`](#sandbox-failifunavailable) も設定していない限り、Claude Code はコマンドをサンドボックスなしで実行します。

1881 1892 

1882<h3 id="sandbox-failifunavailable">1893<h3 id="sandbox-failifunavailable">

1883 `sandbox.failIfUnavailable`1894 `sandbox.failIfUnavailable`

1884</h3>1895</h3>

1885 1896 

1886`sandbox.enabled` が `true` であるにもかかわらずサンドボックスが起動できない場合(依存関係が不足しているか、プラットフォームがサポートされていない場合)、Claude Code がスタートアップ時にエラーで終了するようにします。これがない場合、Claude Code は警告を表示し、コマンドはサンドボックスなしで実行されます。組織がサンドボックスを厳密な要件として必要とする場合は、管理設定で使用します。1897`sandbox.enabled` が `true` であるにもかかわらず、依存関係の不足やプラットフォームの非対応によりサンドボックスが起動できない場合に、Claude Code がスタートアップ時にエラーで終了するようにします。このキーがない場合、Claude Code はコマンドをサンドボックスなしで実行します。セキュリティゲートとしてサンドボックスを必須とする管理対象のデプロイでは、この設定を使用できます。

1887 1898 

1888* **Scope**: [`Any file`](#scopes)1899サンドボックスがサポートしていないプラットフォームでは、このキーがオンの場合、Claude Code は起動しません。[管理設定でサンドボックスを強制する](/docs/ja/sandboxing#enforce-sandboxing-with-managed-settings)を参照してください。

1900 

1901* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

1889* **Type**: ブール値1902* **Type**: ブール値

1890 * `true`: `sandbox.enabled` が `true` であるにもかかわらずサンドボックスが起動できない場合、Claude Code はスタートアップ時にエラーで終了します1903 * `true`: `sandbox.enabled` が `true` であるにもかかわらずサンドボックスが起動できない場合、Claude Code はスタートアップ時にエラーで終了します

1891 * `false`: Claude Code は警告を表示し、コマンドはサンドボックスなしで実行されます1904 * `false`: サンドボックスが起動できない場合、Claude Code はコマンドをサンドボックスなしで実行します

1892* **Default**: `false`1905* **Default**: `false`

1893 1906 

1894これにより、すべての管理対象マシンがコマンドをサンドボックス化するか、起動を拒否します:1907これにより、すべての管理対象マシンがコマンドをサンドボックス化するか、起動を拒否します:


1927}1940}

1928```1941```

1929 1942 

1930[サンドボックスモード](/docs/ja/sandboxing#sandbox-modes)を参照して、自動許可モードが何をプロンプトするか、およびプランモードでどのように動作するかを確認してください。1943[サンドボックスモード](/docs/ja/sandboxing#sandbox-modes)を参照して、自動許可モードが何をプロンプトするか、および plan モードでどのように動作するかを確認してください。

1931 1944 

1932<h3 id="sandbox-excludedcommands">1945<h3 id="sandbox-excludedcommands">

1933 `sandbox.excludedCommands`1946 `sandbox.excludedCommands`

1934</h3>1947</h3>

1935 1948 

1936Claude Code がサンドボックスの外で実行するコマンド(サンドボックスで動作しないツールなど)に名前を付けます。各エントリは、`Bash(...)` [権限ルール](/docs/ja/permissions#permission-rule-syntax)の内容と同じ構文を使用します:正確なコマンド、`docker *` などのプレフィックス、またはワイルドカードパターン。1949Claude Code がサンドボックスの外で実行するコマンド(サンドボックスで動作しないツールなど)に名前を付けます。各エントリは、`Bash(...)` [権限ルール](/docs/ja/permissions#permission-rule-syntax)の内容と同じ構文を使用します:正確なコマンド、`docker *` などのプレフィックス、またはワイルドカードパターン。ワイルドカードを含まないパターンは完全一致となるため、`docker` は引数なしの `docker` にのみ一致します。

1937 1950 

1938エントリは、Bash 呼び出しのすべてのコマンドをカバーする場合にのみ、Bash 呼び出しをサンドボックスから外します。一部の呼び出し形式はそれでもサンドボックス化されたままです。`docker *` エントリだけでは、`npm ci && docker build .` をサンドボックスから外しません。1951エントリは、Bash 呼び出しのすべてのコマンドをカバーする場合にのみ、Bash 呼び出しをサンドボックスから外します。一部の呼び出し形式はそれでもサンドボックス化されたままです。`docker *` エントリだけでは、`npm ci && docker build .` をサンドボックスから外しません。

1939 1952 

1940* **Scope**: [`Any file`](#scopes)1953* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

1941* **Type**: コマンドパターンの配列1954* **Type**: コマンドパターンの配列

1942* **Default**: 未設定。コマンドは除外されません1955* **Default**: 未設定。コマンドは除外されません

1943 1956 


1949}1962}

1950```1963```

1951 1964 

1952Claude Code は、以下の形状の 1 つを持つ場合、Bash 呼び出しをサンドボックス化したままにします:1965Claude Code は、Bash 呼び出しが以下のような形状のいずれかを持つ場合、その呼び出しをサンドボックス化したままにします:

1953 1966 

1954* `sudo`、`eval`、または `xargs` で始まるコマンド1967* `sudo`、`eval`、または `xargs` で始まるコマンド

1955* `cd`、`pushd`、または `popd`(呼び出しのどこにでも出現)1968* `cd`、`pushd`、または `popd`(呼び出しのどこにでも出現)

1956* コマンド置換、サブシェル、または `if` や `for` などの制御フロー ブロック1969* コマンド置換、サブシェル、または `if` や `for` などの制御フロー ブロック

1957* `docker build . > build.log` など、ファイル記述子を複製するもの以外のリダイレクト(`2>&1` など)1970* `docker build . > build.log` など、ファイル記述子を複製するもの以外のリダイレクト(`2>&1` など)

1958* 変数から来るコマンド名1971* 変数から来るコマンド名

1972* パス引数が絶対パスである、`~` で始まる、または `..` セグメントを含む `git clone`、`git init`、`git worktree add`、`git worktree move`、または `git bundle create`

1973 

1974たとえば、`cd build && docker compose up` は `docker *` エントリの下でサンドボックス化されたままであり、`cd` エントリを追加してもそれは変わりません。`git *` エントリの下では、`git clone <url> vendor/lib` はサンドボックスの外で実行されますが、`git clone <url> ~/tools` はサンドボックス化されたままです。クローンは、宛先パスが指す場所に、実行可能なものを含む可能性のあるファイルツリー全体を書き込みます。

1959 1975 

1960たとえば、`cd build && docker compose up` は `docker *` エントリの下でサンドボックス化されたままであり、`cd` エントリを追加してもそれは変わりません。1976除外されたコマンドも通常の権限フローを通過します。除外は便宜的なものであり、セキュリティ境界ではありません。ツールが特定の場所にのみ書き込む必要がある場合は、[`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) を使えばサンドボックス化されたままにできます。

1961 1977 

1962除外されたコマンドは通常の権限フローを通過します。除外は便宜的なものであり、セキュリティ境界ではありません。ツールが特定の場所にのみ書き込む必要がある場合は、[`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)を優先してください。Claude Code はセッションが読み込むすべての設定スコープ全体でエントリをマージし、このリストに対する管理対象のみのロックはないため、管理対象リストを狭く保ちます。1978サンドボックスが[管理者必須](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)でない限り、セッションが読み込む設定スコープのエントリは 1 つのリストに結合されます。管理者必須の間、Claude Code は `.claude/settings.json` と `.claude/settings.local.json` のエントリを無視するため、クローンしたリポジトリがコマンドをサンドボックスの外に出すことはできません。管理設定、`--settings`、および `~/.claude/settings.json` のエントリは引き続き適用され、このリストに対する管理設定専用のロックはありません。

1963 1979 

1964<h3 id="sandbox-allowunsandboxedcommands">1980<h3 id="sandbox-allowunsandboxedcommands">

1965 `sandbox.allowUnsandboxedCommands`1981 `sandbox.allowUnsandboxedCommands`

1966</h3>1982</h3>

1967 1983 

1968Claude がサンドボックスによってブロックされた後、`dangerouslyDisableSandbox` パラメータを使用してコマンドをサンドボックスの外で再試行できるようにします。これを `false` に設定して、Claude Code がそのパラメータを完全に無視し、Claude が実行するすべてのコマンドがサンドボックス化されるか、[`excludedCommands`](#sandbox-excludedcommands)に表示されるようにします。`/sandbox` **Overrides** タブはその状態を**厳密なサンドボックスモード**として表示します。厳密なサンドボックスを必要とするポリシーの場合は、管理設定で `false` を使用します。1984サンドボックスによってブロックされた後、Claude が `dangerouslyDisableSandbox` パラメータを使用してコマンドをサンドボックスの外で再試行できるようにします。`false` の場合、Claude Code はそのパラメータを無視します。その結果、サンドボックスの実行中は、Claude が実行するコマンドは [`excludedCommands`](#sandbox-excludedcommands) のエントリに一致しない限りサンドボックス化されます。`/sandbox` **Overrides** タブはその状態を**厳密なサンドボックスモード**として表示します。管理設定で `false` にすると、その対象となる開発者に対して厳密なサンドボックスモードがオンになります。

1969 1985 

1970* **Scope**: [`Any file`](#scopes)1986* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#turn-off-the-retry-with-strict-sandbox-mode))

1971* **Type**: ブール値1987* **Type**: ブール値

1972 * `true`: Claude がサンドボックスによってブロックされた後、`dangerouslyDisableSandbox` パラメータを使用してコマンドをサンドボックスの外で再試行できます1988 * `true`: Claude がサンドボックスによってブロックされた後、`dangerouslyDisableSandbox` パラメータを使用してコマンドをサンドボックスの外で再試行できます

1973 * `false`: Claude Code はそのパラメータを無視するため、Claude が実行するすべてのコマンドはサンドボックス化されるか、`excludedCommands` に表示されます1989 * `false`: Claude Code はそのパラメータを無視するため、サンドボックスの実行中は、Claude が実行するコマンドは `excludedCommands` のエントリに一致しない限りサンドボックス化されます

1974* **Default**: `true`1990* **Default**: `true`

1975 1991 

1976これにより、管理設定がカバーするすべてのユーザーに対して厳密なサンドボックスモードが強制されます:1992これにより、管理設定がカバーするすべてのユーザーに対して厳密なサンドボックスモードが強制されます:


1984}2000}

1985```2001```

1986 2002 

1987サンドボックスなしの再試行は通常の権限フローを通過し、マニュアルモードではプロンプトが表示されます。[サンドボックスなしの再試行エスケープハッチ](/docs/ja/sandboxing#the-unsandboxed-retry-escape-hatch)を参照してください。2003管理設定または `--settings` からの `false` は、サンドボックスを[管理者必須](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)にもします。ユーザー設定の `false` はプロジェクトの `true` よりも優先されますが、サンドボックスを管理者必須にはしません。プロジェクトの値よりも優先させるには Claude Code v2.1.285 以降が必要です。

2004 

2005サンドボックスなしの再試行を誰が承認するかは、権限モードと許可ルールによって決まります。[サンドボックスなしの再試行エスケープハッチ](/docs/ja/sandboxing#the-unsandboxed-retry-escape-hatch)を参照してください。

1988 2006 

1989[`!` シェルモードプロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)で自分で入力するコマンドがサンドボックス化されるときを確認するには、[厳密なサンドボックスモード](/docs/ja/sandboxing#the-unsandboxed-retry-escape-hatch)を参照してください。2007[`!` シェルモードプロンプト](/docs/ja/interactive-mode#shell-mode-with-prefix)で自分で入力するコマンドがサンドボックス化されるときを確認するには、[厳密なサンドボックスモード](/docs/ja/sandboxing#turn-off-the-retry-with-strict-sandbox-mode)を参照してください。

1990 2008 

1991<h3 id="sandbox-filesystem">2009<h3 id="sandbox-filesystem">

1992 `sandbox.filesystem`2010 `sandbox.filesystem`


2013 2031 

2014Claude Code はこれらのリストを OS サンドボックス境界で強制するため、`kubectl`、`terraform`、`npm` などのサンドボックス化されたコマンドが開始するすべてのサブプロセスに適用されます。Claude Code は[権限ルール](/docs/ja/sandboxing#permission-rules)を同じリストに追加します:`Edit` 許可および拒否ルールを `allowWrite` および `denyWrite` に、`Read` 拒否ルールを `denyRead` に、`WebFetch(domain:...)` 許可および拒否ルールを[`network`](#sandbox-network)ドメインリストに追加します。2032Claude Code はこれらのリストを OS サンドボックス境界で強制するため、`kubectl`、`terraform`、`npm` などのサンドボックス化されたコマンドが開始するすべてのサブプロセスに適用されます。Claude Code は[権限ルール](/docs/ja/sandboxing#permission-rules)を同じリストに追加します:`Edit` 許可および拒否ルールを `allowWrite` および `denyWrite` に、`Read` 拒否ルールを `denyRead` に、`WebFetch(domain:...)` 許可および拒否ルールを[`network`](#sandbox-network)ドメインリストに追加します。

2015 2033 

2016管理対象のみのロックが設定されていない限り、Claude Code はセッションが読み込む設定ファイル全体ですべてのリストをマージします。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly)は `allowRead` を管理設定からのエントリに制限し、[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly)は許可されたドメインに対して同じことを行います。2034ロックが適用されない限り、Claude Code はセッションが読み込む設定ファイル全体でこれらのリストをマージします。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly)は `allowRead` を管理設定からのエントリに制限し、[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly)は許可されたドメインに対して同じことを行います。[リポジトリロック](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)は、リポジトリの設定ファイルからのエントリを除外します。

2017 2035 

2018[サンドボックスを設定する](/docs/ja/sandboxing#configure-sandboxing)は、`--setting-sources` で除外するソースをカバーしています。セッション中にリストを編集すると、Claude Code は[実行中のセッションに変更を適用](/docs/ja/settings#when-edits-take-effect)します。2036[サンドボックスを設定する](/docs/ja/sandboxing#configure-sandboxing)は、`--setting-sources` で除外するソースをカバーしています。セッション中にリストを編集すると、Claude Code は[実行中のセッションに変更を適用](/docs/ja/settings#when-edits-take-effect)します。

2019 2037 


2031 2049 

2032絶対パスの `//path` プレフィックスも機能します。プロジェクト相対解決を期待して単一スラッシュ `/path` を使用する場合は、`./path` に切り替えます。この構文は、`//path` を絶対パスに、`/path` をプロジェクト相対に使用する[Read および Edit 権限ルール](/docs/ja/permissions#read-and-edit)とは異なります。サンドボックスファイルシステムパスは標準規則を使用するため、`/tmp/build` は絶対パスです。2050絶対パスの `//path` プレフィックスも機能します。プロジェクト相対解決を期待して単一スラッシュ `/path` を使用する場合は、`./path` に切り替えます。この構文は、`//path` を絶対パスに、`/path` をプロジェクト相対に使用する[Read および Edit 権限ルール](/docs/ja/permissions#read-and-edit)とは異なります。サンドボックスファイルシステムパスは標準規則を使用するため、`/tmp/build` は絶対パスです。

2033 2051 

2034Claude Code はディレクトリパスから末尾のスラッシュを削除するため、`~/.aws` と `~/.aws/` は同じディレクトリと一致します。v2.1.224 より前では、Claude Code は末尾のスラッシュをサンドボックスに渡し、Claude は `denyRead` または `denyWrite` エントリで書き込まれたパスの下のパスを読み取りまたは書き込みできました。2052Claude Code はディレクトリパスから末尾のスラッシュを削除するため、`~/.aws` と `~/.aws/` は同じディレクトリと一致します。v2.1.224 より前では、Claude Code は末尾のスラッシュをサンドボックスに渡していたため、末尾のスラッシュ付きで記述された `denyRead` または `denyWrite` エントリの下のパスを、Claude が引き続き読み取りまたは書き込みできました。

2035 2053 

2036Claude Code は末尾の `/**` も削除するため、`~/build/**` と `~/build` は同じディレクトリをカバーします。`*` などのワイルドカードが機能するかどうかは、エントリがどのリストにあるか、およびプラットフォームに依存します:2054Claude Code は末尾の `/**` も削除するため、`~/build/**` と `~/build` は同じディレクトリをカバーします。`*` などのワイルドカードが機能するかどうかは、エントリがどのリストにあるか、およびプラットフォームに依存します:

2037 2055 


2044 2062 

2045作業ディレクトリ、ユーザーごとの一時ディレクトリ、`--add-dir`、`/add-dir`、または `permissions.additionalDirectories` で追加したディレクトリを超えて、サンドボックス化されたコマンドが書き込むことができるパスを追加します。`kubectl` やビルドツールなどのサブプロセスがプロジェクト外に書き込む必要がある場合に使用します。2063作業ディレクトリ、ユーザーごとの一時ディレクトリ、`--add-dir`、`/add-dir`、または `permissions.additionalDirectories` で追加したディレクトリを超えて、サンドボックス化されたコマンドが書き込むことができるパスを追加します。`kubectl` やビルドツールなどのサブプロセスがプロジェクト外に書き込む必要がある場合に使用します。

2046 2064 

2047* **Scope**: [`Any file`](#scopes)2065* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2048* **Type**: [サンドボックスパスプレフィックス](#sandbox-path-prefixes)を使用するパス文字列の配列2066* **Type**: [サンドボックスパスプレフィックス](#sandbox-path-prefixes)を使用するパス文字列の配列

2049* **Default**: 未設定。サンドボックス化されたコマンドは、作業ディレクトリ、ユーザーごとの一時ディレクトリ、`--add-dir` または `/add-dir` で追加したディレクトリ、および [`permissions.additionalDirectories`](#permissions-additionaldirectories) のディレクトリに書き込むことができます2067* **Default**: 未設定。サンドボックス化されたコマンドは、作業ディレクトリ、ユーザーごとの一時ディレクトリ、`--add-dir` または `/add-dir` で追加したディレクトリ、および [`permissions.additionalDirectories`](#permissions-additionaldirectories) のディレクトリに書き込むことができます

2050 2068 


2060}2078}

2061```2079```

2062 2080 

2063Claude Code は `allowWrite` エントリと `Edit(...)` 許可権限ルールからのパスをセッションが読み込むすべての設定スコープ全体でマージし、[`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block)がオンの間、リポジトリ設定からのものを除外します。`allowWrite` エントリは[保護されたパス](/docs/ja/sandboxing#protected-paths)を解除できません。2081Claude Code は `allowWrite` エントリと `Edit(...)` 許可権限ルールからのパスをセッションが読み込むすべての設定スコープ全体でマージし、[`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block)がオンの間、リポジトリ設定からのものを除外します。[リポジトリロック](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)によってリポジトリのエントリが除外されることもあります。`allowWrite` エントリは[保護されたパス](/docs/ja/sandboxing#protected-paths)を解除できません。

2064 2082 

2065<h3 id="sandbox-filesystem-denywrite">2083<h3 id="sandbox-filesystem-denywrite">

2066 `sandbox.filesystem.denyWrite`2084 `sandbox.filesystem.denyWrite`


2114 2132 

2115[`denyRead`](#sandbox-filesystem-denyread)がブロックする領域内の特定のパスの読み取りを再度開き、ワークスペースのみの読み取りアクセスを構築します。正確またはワイルドカード `denyRead` エントリは、より広い `allowRead` 内でブロックされたままです。[重複テーブル](/docs/ja/sandboxing#configure-sandboxing)が示すとおりです。ワイルドカード `denyRead` エントリ(`~/**/.env` など)がディレクトリと一致する場合、Claude Code はその内容の読み取りもブロックします。v2.1.236 より前の macOS では、Claude Code はワイルドカード `denyRead` エントリが一致したパスを、より広い `allowRead` エントリがカバーしている場所で再度開き、一致したディレクトリの内容を読み取り可能なままにしました。2133[`denyRead`](#sandbox-filesystem-denyread)がブロックする領域内の特定のパスの読み取りを再度開き、ワークスペースのみの読み取りアクセスを構築します。正確またはワイルドカード `denyRead` エントリは、より広い `allowRead` 内でブロックされたままです。[重複テーブル](/docs/ja/sandboxing#configure-sandboxing)が示すとおりです。ワイルドカード `denyRead` エントリ(`~/**/.env` など)がディレクトリと一致する場合、Claude Code はその内容の読み取りもブロックします。v2.1.236 より前の macOS では、Claude Code はワイルドカード `denyRead` エントリが一致したパスを、より広い `allowRead` エントリがカバーしている場所で再度開き、一致したディレクトリの内容を読み取り可能なままにしました。

2116 2134 

2117* **Scope**: [`Any file`](#scopes)2135* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2118* **Type**: [サンドボックスパスプレフィックス](#sandbox-path-prefixes)を使用するパス文字列の配列2136* **Type**: [サンドボックスパスプレフィックス](#sandbox-path-prefixes)を使用するパス文字列の配列

2119* **Default**: 未設定2137* **Default**: 未設定

2120 2138 


2131}2149}

2132```2150```

2133 2151 

2134Claude Code は `.` エントリをプロジェクト設定ではプロジェクトルートに、ユーザー設定では `~/.claude` に解決します。Claude Code はセッションが読み込むすべての設定ファイル全体でエントリをマージします。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly)が設定されていない限り、[`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block)がオンの間、リポジトリ設定からのエントリを除外します。2152Claude Code は `.` エントリをプロジェクト設定ではプロジェクトルートに、ユーザー設定では `~/.claude` に解決します。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) が設定されていない限り、Claude Code はセッションが読み込む設定ファイル全体でエントリをマージし、[`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) がオンの間はリポジトリ設定からのエントリを除外します。[リポジトリロック](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)によってリポジトリのエントリが除外されることもあります。

2135 2153 

2136<h3 id="sandbox-filesystem-allowmanagedreadpathsonly">2154<h3 id="sandbox-filesystem-allowmanagedreadpathsonly">

2137 `sandbox.filesystem.allowManagedReadPathsOnly`2155 `sandbox.filesystem.allowManagedReadPathsOnly`


2142* **Scope**: [`Managed`](#scopes)2160* **Scope**: [`Managed`](#scopes)

2143* **Type**: ブール値2161* **Type**: ブール値

2144 * `true`: Claude Code は管理設定からの `allowRead` エントリのみを尊重します2162 * `true`: Claude Code は管理設定からの `allowRead` エントリのみを尊重します

2145 * `false`: `allowRead` エントリはセッションが読み込むすべての設定スコープからマージされます2163 * `false`: 他の設定ファイルからの `allowRead` エントリもマージされます

2146* **Default**: `false`2164* **Default**: `false`

2147 2165 

2148これにより、ホームディレクトリの読み取りがブロックされ、`~/work` が再度開かれ、開発者が他のものを再度開くのが停止されます:2166これにより、ホームディレクトリの読み取りがブロックされ、`~/work` が再度開かれ、開発者が他のものを再度開くのが停止されます:


2197 2215 

2198コマンドがプローブして拒否されることが予想されるパスのサンドボックス違反レポートを沈黙させます(例えば、スタートアップ時に `/etc/hosts` をチェックするツール)。これらの拒否は違反として表示されず、Claude が見るものにも表示されません。サンドボックスはアクセスをブロックしたままです。レポートのみが抑制されます。キーはコマンドに対して一致するサブストリング(`*` はすべてのコマンドに一致)で、値はそのコマンドで無視する違反のサブストリング(ファイルシステムパスなど)です。2216コマンドがプローブして拒否されることが予想されるパスのサンドボックス違反レポートを沈黙させます(例えば、スタートアップ時に `/etc/hosts` をチェックするツール)。これらの拒否は違反として表示されず、Claude が見るものにも表示されません。サンドボックスはアクセスをブロックしたままです。レポートのみが抑制されます。キーはコマンドに対して一致するサブストリング(`*` はすべてのコマンドに一致)で、値はそのコマンドで無視する違反のサブストリング(ファイルシステムパスなど)です。

2199 2217 

2200* **Scope**: [`Any file`](#scopes)2218* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2201* **Type**: コマンドサブストリングを違反サブストリングの配列にマップするオブジェクト(通常はパス)2219* **Type**: コマンドサブストリングを違反サブストリングの配列にマップするオブジェクト(通常はパス)

2202* **Default**: 未設定。すべての違反が報告されます2220* **Default**: 未設定。すべての違反が報告されます

2203 2221 


2217 2235 

2218Linux サンドボックスを非特権 Docker コンテナ内で実行します。bubblewrap は新しい `/proc` をマウントできません。代わりに、内部サンドボックスはコンテナの既存の `/proc` をバインドマウントします。これにより、新しいマウントが非表示にするプロセス情報が公開されます。これはセキュリティを低下させます。外部コンテナが既に必要な分離を提供する場合にのみ使用します。2236Linux サンドボックスを非特権 Docker コンテナ内で実行します。bubblewrap は新しい `/proc` をマウントできません。代わりに、内部サンドボックスはコンテナの既存の `/proc` をバインドマウントします。これにより、新しいマウントが非表示にするプロセス情報が公開されます。これはセキュリティを低下させます。外部コンテナが既に必要な分離を提供する場合にのみ使用します。

2219 2237 

2220* **Scope**: [`Any file`](#scopes)2238* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2221* **Type**: ブール値2239* **Type**: ブール値

2222 * `true`: 内部サンドボックスは新しい `/proc` をマウントする代わりに、コンテナの既存の `/proc` をバインドマウントします2240 * `true`: 内部サンドボックスは新しい `/proc` をマウントする代わりに、コンテナの既存の `/proc` をバインドマウントします

2223 * `false`: サンドボックスは新しい `/proc` をマウントします。これは非特権 Docker コンテナでは機能しません2241 * `false`: サンドボックスは新しい `/proc` をマウントします。これは非特権 Docker コンテナでは機能しません


2240 2258 

2241macOS でサンドボックス化されたコマンドがシステム TLS トラストサービス `com.apple.trustd.agent` に到達できるようにします。`gh`、`gcloud`、`terraform` などの Go ベースのツールは、[`network.httpProxyPort`](#sandbox-network-httpproxyport)を MITM プロキシとカスタム CA で使用する場合、TLS 証明書を検証するために必要です。これはトラストサービスを通じた潜在的なデータ流出パスを開くことでセキュリティを低下させます。2259macOS でサンドボックス化されたコマンドがシステム TLS トラストサービス `com.apple.trustd.agent` に到達できるようにします。`gh`、`gcloud`、`terraform` などの Go ベースのツールは、[`network.httpProxyPort`](#sandbox-network-httpproxyport)を MITM プロキシとカスタム CA で使用する場合、TLS 証明書を検証するために必要です。これはトラストサービスを通じた潜在的なデータ流出パスを開くことでセキュリティを低下させます。

2242 2260 

2243* **Scope**: [`Any file`](#scopes)2261* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2244* **Type**: ブール値2262* **Type**: ブール値

2245 * `true`: macOS でサンドボックス化されたコマンドは `com.apple.trustd.agent` に到達できます2263 * `true`: macOS でサンドボックス化されたコマンドは `com.apple.trustd.agent` に到達できます

2246 * `false`: macOS でサンドボックス化されたコマンドはシステム TLS トラストサービスに到達できません2264 * `false`: macOS でサンドボックス化されたコマンドはシステム TLS トラストサービスに到達できません


2284 `sandbox.ripgrep`2302 `sandbox.ripgrep`

2285</h3>2303</h3>

2286 2304 

2287Claude Code が使用するものの代わりに、独自の ripgrep バイナリをサンドボックスに指定します。たとえば、プラットフォームが異なる方法で構築された `rg` が必要な場合です。2305Claude Code が使用するものの代わりに、独自の ripgrep バイナリをサンドボックスに指定します。たとえば、プラットフォームが異なる方法でビルドされた `rg` を必要とする場合です。

2288 2306 

2289* **Scope**: [`User or managed`](#scopes)2307* **Scope**: [`User or managed`](#scopes)

2290* **Type**: ripgrep バイナリへのパスである `command` を含むオブジェクト、および前置する引数の配列である optional `args`2308* **Type**: ripgrep バイナリへのパスである `command` を含むオブジェクト、および前置する引数の配列である optional `args`


2614}2632}

2615```2633```

2616 2634 

2617`deny` の場合、プロキシはリクエストを失敗させます。`passthrough` の場合、プロキシはマスクされたプレースホルダーから計算された署名でリクエストを転送するため、AWS はそれを拒否し、呼び出しツールはプロキシエラーの代わりに AWS 自体の応答を受け取ります。2635`deny` の場合、プロキシはリクエストを失敗させます。`passthrough` の場合、プロキシはマスクされたプレースホルダーから計算された署名でリクエストを転送するため、AWS はそれを拒否し、呼び出しツールはプロキシエラーの代わりに AWS 自体のレスポンスを受け取ります。

2618 2636 

2619<h3 id="sandbox-network">2637<h3 id="sandbox-network">

2620 `sandbox.network`2638 `sandbox.network`


2624 2642 

2625* **Scope**: [`Any file`](#scopes)。`strictAllowlist`、`allowManagedDomainsOnly`、`tlsTerminate` は、それらのエントリが言うように、より少ないソースから読み取られます。2643* **Scope**: [`Any file`](#scopes)。`strictAllowlist`、`allowManagedDomainsOnly`、`tlsTerminate` は、それらのエントリが言うように、より少ないソースから読み取られます。

2626* **Type**: 以下のサブキーを含むオブジェクト2644* **Type**: 以下のサブキーを含むオブジェクト

2627* **Default**: 未設定。ドメインは事前に許可されず、サンドボックスは各新しいホストについてプロンプトします2645* **Default**: 未設定。ドメインは事前に許可されず、[新しい各ホストをどう扱うか](/docs/ja/sandboxing#hosts-outside-your-allowed-domains)は権限モードによって決まります

2628 2646 

2629これにより、GitHub と npm が事前に許可され、`uploads.github.com` がブロックされ、コマンドが localhost にバインドできます:2647これにより、GitHub と npm が事前に許可され、`uploads.github.com` がブロックされ、コマンドが localhost にバインドできます:

2630 2648 


2640}2658}

2641```2659```

2642 2660 

2643Claude Code は配列サブキーを設定スコープ全体でマージし、重複を排除するため、プロジェクトはドメインをユーザーリストに追加できます。`WebFetch(domain:...)` 許可および拒否[権限ルール](/docs/ja/sandboxing#permission-rules)は同じ許可および拒否リストをフィードします。2661Claude Code は配列サブキーを設定スコープ全体でマージするため、[リポジトリロック](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)が適用されない限り、プロジェクトはユーザーリストにドメインを追加できます。`WebFetch(domain:...)` 許可および拒否[権限ルール](/docs/ja/sandboxing#permission-rules)は同じ許可および拒否リストをフィードします。

2644 2662 

2645<h3 id="sandbox-network-allowunixsockets">2663<h3 id="sandbox-network-allowunixsockets">

2646 `sandbox.network.allowUnixSockets`2664 `sandbox.network.allowUnixSockets`


2648 2666 

2649macOS でサンドボックス化されたコマンドが接続できる Unix ソケットパスをリストします。Claude Code は Linux と WSL2 でこのリストを無視します。seccomp フィルタはソケットパスを検査できません。代わりに [`allowAllUnixSockets`](#sandbox-network-allowallunixsockets) を使用します。2667macOS でサンドボックス化されたコマンドが接続できる Unix ソケットパスをリストします。Claude Code は Linux と WSL2 でこのリストを無視します。seccomp フィルタはソケットパスを検査できません。代わりに [`allowAllUnixSockets`](#sandbox-network-allowallunixsockets) を使用します。

2650 2668 

2651* **Scope**: [`Any file`](#scopes)2669* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2652* **Type**: 文字列の配列。各ソケットパス2670* **Type**: 文字列の配列。各ソケットパス

2653* **Default**: 未設定。macOS サンドボックスはすべての Unix ソケットをブロックします2671* **Default**: 未設定。macOS サンドボックスはすべての Unix ソケットをブロックします

2654 2672 


2670 2688 

2671サンドボックス化されたコマンドがすべての Unix ソケットに接続できるようにします。Linux と WSL2 では、サンドボックスの [seccomp フィルタ](/docs/ja/sandboxing#set-up-linux-and-wsl2) は `socket(AF_UNIX, ...)` 呼び出しをブロックするため、これは Unix ソケットを許可する唯一の方法です。フィルタが不足している場合(`/sandbox` がその Dependencies タブで報告する場合)、サンドボックスは Unix ソケット呼び出しをブロックしません。[Linux と WSL2 をセットアップする](/docs/ja/sandboxing#set-up-linux-and-wsl2)を参照して、フィルタがどこから来るかを確認してください。2689サンドボックス化されたコマンドがすべての Unix ソケットに接続できるようにします。Linux と WSL2 では、サンドボックスの [seccomp フィルタ](/docs/ja/sandboxing#set-up-linux-and-wsl2) は `socket(AF_UNIX, ...)` 呼び出しをブロックするため、これは Unix ソケットを許可する唯一の方法です。フィルタが不足している場合(`/sandbox` がその Dependencies タブで報告する場合)、サンドボックスは Unix ソケット呼び出しをブロックしません。[Linux と WSL2 をセットアップする](/docs/ja/sandboxing#set-up-linux-and-wsl2)を参照して、フィルタがどこから来るかを確認してください。

2672 2690 

2673* **Scope**: [`Any file`](#scopes)2691* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2674* **Type**: ブール値2692* **Type**: ブール値

2675 * `true`: サンドボックス化されたコマンドはすべての Unix ソケットに接続できます2693 * `true`: サンドボックス化されたコマンドはすべての Unix ソケットに接続できます

2676 * `false`: サンドボックスは Unix ソケット接続をブロックします:macOS では `allowUnixSockets` のパスを除き、Linux と WSL2 ではフィルタが存在する場合は seccomp フィルタを通じて2694 * `false`: サンドボックスは Unix ソケット接続をブロックします:macOS では `allowUnixSockets` のパスを除き、Linux と WSL2 ではフィルタが存在する場合は seccomp フィルタを通じて


2692 `sandbox.network.allowLocalBinding`2710 `sandbox.network.allowLocalBinding`

2693</h3>2711</h3>

2694 2712 

2695macOS でサンドボックス化されたコマンドが localhost ポートにバインドできるようにします。例えば、開発サーバーを起動するためです。2713macOS でサンドボックス化されたコマンドがネットワークポートでリッスンし(開発サーバーの起動など)、localhost の任意のポートに接続できるようにします。ループバック以外のアドレスでリッスンするコマンドは、他のマシンからの接続を受け付けます。Linux と WSL2 では各サンドボックス化されたコマンドが独自のループバックインターフェースを持つため、このキーは効果がありません。Linux または WSL2 からホスト上のサーバーに到達するには、[コマンドが localhost 上のサーバーに到達できない](/docs/ja/sandboxing#a-command-fails-to-reach-a-server-on-localhost)を参照してください。

2696 2714 

2697* **Scope**: [`Any file`](#scopes)2715* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2698* **Type**: ブール値2716* **Type**: ブール値

2699 * `true`: macOS でサンドボックス化されたコマンドは localhost ポートにバインドできます2717 * `true`: macOS でサンドボックス化されたコマンドは任意のローカルアドレスでリッスンし、localhost の任意のポートに接続できます

2700 * `false`: macOS でサンドボックス化されたコマンドは localhost ポートにバインドできません2718 * `false`: macOS でサンドボックス化されたコマンドはポートでリッスンすることも、localhost 上のサーバーに直接接続することもできません

2701* **Default**: `false`2719* **Default**: `false`

2702 2720 

2703```json settings.json theme={null}2721```json settings.json theme={null}


2716 2734 

2717macOS サンドボックスが検索できる追加の XPC および Mach サービス名をリストします。iOS Simulator や Playwright などの XPC を通じて通信するツールは、ここにサービスをリストする必要があります。2735macOS サンドボックスが検索できる追加の XPC および Mach サービス名をリストします。iOS Simulator や Playwright などの XPC を通じて通信するツールは、ここにサービスをリストする必要があります。

2718 2736 

2719* **Scope**: [`Any file`](#scopes)2737* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))

2720* **Type**: 文字列の配列。各サービス名。単一の末尾 `*` はプレフィックスと一致し、`"*"` だけはすべてのサービスと一致します2738* **Type**: 文字列の配列。各サービス名。単一の末尾 `*` はプレフィックスと一致し、`"*"` だけはすべてのサービスと一致します

2721* **Default**: 未設定2739* **Default**: 未設定

2722 2740 


2738 2756 

2739サンドボックス化されたコマンドからの送信トラフィック用にドメインを事前に許可するため、サンドボックスはそれらについてプロンプトしません。`*.example.com` などのワイルドカードはサブドメインと一致し、optional `:port` サフィックスはエントリを 1 つのポートに制限します。ポートなしのエントリはすべてのポートと一致します。2757サンドボックス化されたコマンドからの送信トラフィック用にドメインを事前に許可するため、サンドボックスはそれらについてプロンプトしません。`*.example.com` などのワイルドカードはサブドメインと一致し、optional `:port` サフィックスはエントリを 1 つのポートに制限します。ポートなしのエントリはすべてのポートと一致します。

2740 2758 

2741* **Scope**: [`Any file`](#scopes)。[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly)が設定されている場合、管理設定のみ。2759* **Scope**: [`Any file`](#scopes)([プロジェクト設定とローカル設定には制限あり](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox))。[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly)が設定されている場合、管理設定のみ。

2742* **Type**: 文字列の配列。各ドメイン、ワイルドカードパターン、または IP リテラル。optional `:port` サフィックス付き2760* **Type**: 文字列の配列。各ドメイン、ワイルドカードパターン、または IP リテラル。optional `:port` サフィックス付き

2743* **Default**: 未設定。サンドボックスは新しいホストに初めて到達するときにプロンプトします2761* **Default**: 未設定。[新しい各ホストをどう扱うか](/docs/ja/sandboxing#hosts-outside-your-allowed-domains)は権限モードによって決まります

2744 2762 

2745これにより、GitHub がすべてのポートで事前に許可され、すべての npm サブドメイン、および 1 つの API ホストがポート 443 でのみ許可されます:2763これにより、GitHub がすべてのポートで事前に許可され、すべての npm サブドメイン、および 1 つの API ホストがポート 443 でのみ許可されます:

2746 2764 


2784 `sandbox.network.strictAllowlist`2802 `sandbox.network.strictAllowlist`

2785</h3>2803</h3>

2786 2804 

2787許可リスト外のホストへのアクセスをプロンプトする代わりにブロックします。許可リストは [`allowedDomains`](#sandbox-network-alloweddomains) と `WebFetch(domain:...)` 許可ルールからのドメイン、または [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) が設定されている場合は管理設定エントリのみです。Claude Code v2.1.219 以降が必要です。2805許可リスト外のホストへのサンドボックス化されたコマンドのアクセスを、承認を求めるプロンプトを表示する代わりに拒否します。許可リストは [`allowedDomains`](#sandbox-network-alloweddomains) と `WebFetch(domain:...)` 許可ルールからのドメイン、または [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) が設定されている場合は管理設定エントリのみです。リポジトリのエントリについては、[管理者必須のサンドボックスなしで適用されるロック](/docs/ja/sandboxing#locks-that-apply-without-an-admin-required-sandbox)を参照してください。Claude Code v2.1.219 以降が必要です。

2788 2806 

2789* **Scope**: [`User or managed`](#scopes)。リポジトリはそれをオンまたはオフにできません。2807* **Scope**: [`User or managed`](#scopes)。リポジトリはそれをオンまたはオフにできません。

2790* **Type**: ブール値2808* **Type**: ブール値

2791 * `true`: Claude Code は許可リスト外のホストへのサンドボックス化されたコマンドアクセスを拒否します2809 * `true`: Claude Code は許可リスト外のホストへのサンドボックス化されたコマンドアクセスを拒否します

2792 * `false`: 別の信頼できる設定ファイルが `true` を設定しない限り、Claude Code は許可リスト外のホストを権限モードの代わりに決定します:自動モードではコマンドの[コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)に対してホストをチェックし、`dontAsk` モードではブロックし、`bypassPermissions` モードおよび バイパスが利用可能なインタラクティブターミナルプランモードセッションでは許可し、それ以外の場合は尋ねます2810 * `false`: 別の信頼できる設定ファイルが `true` を設定しない限り、Claude Code は許可リスト外のホストを即座に拒否するのではなく、権限モードに応じて判断します:auto モードではコマンドの[コマンドごとの許可ドメイン](/docs/ja/sandboxing#per-command-allowed-domains-in-auto-mode)に対してホストをチェックし、`dontAsk` モードでは拒否し、`bypassPermissions` モードおよびバイパスが利用可能なインタラクティブターミナルの plan モードセッションでは許可し、それ以外の場合はユーザーに確認します

2793* **Default**: `false`2811* **Default**: `false`

2794 2812 

2795```json settings.json theme={null}2813```json settings.json theme={null}


2812 2830 

2813* **Scope**: [`Managed`](#scopes)2831* **Scope**: [`Managed`](#scopes)

2814* **Type**: ブール値2832* **Type**: ブール値

2815 * `true`: Claude Code は管理設定からの `allowedDomains` と `WebFetch(domain:...)` 許可ルールのみを尊重し、許可されていないドメインをブロックする代わりにプロンプトします2833 * `true`: Claude Code は管理設定からの `allowedDomains` と `WebFetch(domain:...)` 許可ルールのみを尊重し、許可されていないドメインをプロンプトする代わりにブロックします

2816 * `false`: ユーザー、プロジェクト、ローカル、`--settings` 設定からのドメインが許可リストにマージされます2834 * `false`: 他の設定ファイルからのドメインも許可リストにマージされます

2817* **Default**: `false`2835* **Default**: `false`

2818 2836 

2819これにより、許可リストが GitHub と npm にロックされ、開発者が追加するドメインが無視されます:2837これにより、許可リストが GitHub と npm にロックされ、開発者が追加するドメインが無視されます:


2829}2847}

2830```2848```

2831 2849 

2832拒否されたドメインはセッションが読み込むすべてのソースからマージされます。[ポリシーの拡大を開発者に防止させる](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を参照してください。2850キーが `true` の間、サンドボックスは[管理者必須](/docs/ja/sandboxing#repository-settings-under-an-admin-required-sandbox)となり、[プロキシポート](#sandbox-network-httpproxyport)を設定できるのは管理設定のみになります。

2851 

2852拒否されたドメインは引き続きセッションが読み込むすべてのソースからマージされます。[ポリシーの拡大を開発者に防止させる](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を参照してください。

2833 2853 

2834<h3 id="sandbox-network-httpproxyport">2854<h3 id="sandbox-network-httpproxyport">

2835 `sandbox.network.httpProxyPort`2855 `sandbox.network.httpProxyPort`

2836</h3>2856</h3>

2837 2857 

2838Claude Code が実行するものの代わりに、独自の HTTP プロキシをサンドボックスに指定します。組織はこれを行って、HTTPS トラフィックを検査し、独自のフィルタリングルールを適用するか、すべてのリクエストをログします。未設定の場合、Claude Code は HTTP トラフィック用に独自のプロキシを起動します。2858Claude Code が実行するものの代わりに、独自の HTTP プロキシをサンドボックスに指定します。組織はこれを使用して、HTTPS トラフィックを検査したり、独自のフィルタリングルールを適用したり、リクエストをログに記録したりします。フィルタリングは独自のプロキシが引き継ぎ、Claude Code はそこに送信されるトラフィックにドメインリストとネットワークプロンプトを適用しなくなります。未設定の場合、Claude Code は HTTP トラフィック用に独自のプロキシを起動します。

2839 2859 

2840* **Scope**: [`Any file`](#scopes)2860* **Scope**: [`Any file`](#scopes)。ただし、[他のサンドボックス設定によってポートを設定できるファイルが制限される](/docs/ja/sandboxing#custom-proxy-configuration)場合を除きます

2841* **Type**: 数値。ローカル TCP ポート2861* **Type**: 数値。ローカル TCP ポート

2842* **Default**: 未設定。Claude Code は独自のプロキシを実行します2862* **Default**: 未設定。Claude Code は独自のプロキシを実行します

2843 2863 


2851}2871}

2852```2872```

2853 2873 

2854プロキシが SOCKS トラフィックも実行する場合は、[`socksProxyPort`](#sandbox-network-socksproxyport)も設定します。2 つのうち 1 つだけが設定されている場合、Claude Code は他のプロトコル用に独自のプロキシを実行します。[カスタムプロキシ設定](/docs/ja/sandboxing#custom-proxy-configuration)を参照してください。2874プロキシで SOCKS トラフィックも扱う場合は、[`socksProxyPort`](#sandbox-network-socksproxyport) も設定します。2 つのうち一方のみを設定した場合、Claude Code はもう一方のプロトコル用に引き続き独自のプロキシを実行します。[カスタムプロキシ設定](/docs/ja/sandboxing#custom-proxy-configuration)を参照してください。

2855 2875 

2856<h3 id="sandbox-network-socksproxyport">2876<h3 id="sandbox-network-socksproxyport">

2857 `sandbox.network.socksProxyPort`2877 `sandbox.network.socksProxyPort`

2858</h3>2878</h3>

2859 2879 

2860Claude Code が実行するものの代わりに、独自の SOCKS5 プロキシをサンドボックスに指定します。未設定の場合、Claude Code は SOCKS トラフィック用に独自のプロキシを起動します。2880Claude Code が実行するものの代わりに、独自の SOCKS5 プロキシをサンドボックスに指定します。フィルタリングは独自のプロキシが引き継ぎ、Claude Code はそこに送信されるトラフィックにドメインリストとネットワークプロンプトを適用しなくなります。未設定の場合、Claude Code は SOCKS トラフィック用に独自のプロキシを起動します。

2861 2881 

2862* **Scope**: [`Any file`](#scopes)2882* **Scope**: [`Any file`](#scopes)。ただし、[他のサンドボックス設定によってポートを設定できるファイルが制限される](/docs/ja/sandboxing#custom-proxy-configuration)場合を除きます

2863* **Type**: 数値。ローカル TCP ポート2883* **Type**: 数値。ローカル TCP ポート

2864* **Default**: 未設定。Claude Code は独自のプロキシを実行します2884* **Default**: 未設定。Claude Code は独自のプロキシを実行します

2865 2885 


4256<span id="hook-and-skill-settings" />4276<span id="hook-and-skill-settings" />

4257 4277 

4258<h2 id="hooks-and-automation">4278<h2 id="hooks-and-automation">

4259 フック と自動化4279 フックと自動化

4260</h2>4280</h2>

4261 4281 

4262フックを登録し、実行するフックを制限し、ワークフローを制御します。フックイベントとペイロードについては、[フックリファレンス](/docs/ja/hooks)を参照してください。4282フックを登録し、実行するフックを制限し、ワークフローを制御します。フックイベントとペイロードについては、[フックリファレンス](/docs/ja/hooks)を参照してください。


4268[HTTP フック](/docs/ja/hooks#http-hook-fields)がターゲットできる URL を制限します。このキーを定義すると、Claude Code は HTTP フックを実行するのはその URL がパターンの 1 つと一致する場合のみで、残りはブロックして実行しません。空の配列はすべての HTTP フックをブロックします。4288[HTTP フック](/docs/ja/hooks#http-hook-fields)がターゲットできる URL を制限します。このキーを定義すると、Claude Code は HTTP フックを実行するのはその URL がパターンの 1 つと一致する場合のみで、残りはブロックして実行しません。空の配列はすべての HTTP フックをブロックします。

4269 4289 

4270* **スコープ**: [`Any file`](#scopes)。配列は設定ファイル全体でマージされます。4290* **スコープ**: [`Any file`](#scopes)。配列は設定ファイル全体でマージされます。

4271* **型**: URL パターンの配列。ワイルドカード として `*` を使用4291* **型**: URL パターンの配列。ワイルドカードとして `*` を使用

4272* **デフォルト**: 未設定。任意の URL が許可されます4292* **デフォルト**: 未設定。任意の URL が許可されます

4273 4293 

4274この例は `https://hooks.example.com/` 下のすべての URL と任意の `http://localhost` URL を許可します:4294この例は `https://hooks.example.com/` 下のすべての URL と任意の `http://localhost` URL を許可します:


4307 4327 

4308* **管理フックと SDK フックが実行されます**: 管理設定からのフックと [Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフック4328* **管理フックと SDK フックが実行されます**: 管理設定からのフックと [Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフック

4309* **強制有効プラグインフックが実行されます**: 管理設定が [`enabledPlugins`](#enabledplugins) を通じて強制有効にするプラグインからのフック。Claude Code は完全な `plugin@marketplace` ID でマッチするため、別のマーケットプレイスからの同じ名前のプラグインはブロックされたままです。これにより、組織マーケットプレイスを通じて検証済みフックを配布しながら、その他すべてをブロックできます。このようなプラグイン内の [mod](/docs/ja/plugins/mods/overview) は、[組織のものとしてカウント](/docs/ja/plugins/mods/admin#install-your-organizations-mods)される場合のみロードされます4329* **強制有効プラグインフックが実行されます**: 管理設定が [`enabledPlugins`](#enabledplugins) を通じて強制有効にするプラグインからのフック。Claude Code は完全な `plugin@marketplace` ID でマッチするため、別のマーケットプレイスからの同じ名前のプラグインはブロックされたままです。これにより、組織マーケットプレイスを通じて検証済みフックを配布しながら、その他すべてをブロックできます。このようなプラグイン内の [mod](/docs/ja/plugins/mods/overview) は、[組織のものとしてカウント](/docs/ja/plugins/mods/admin#install-your-organizations-mods)される場合のみロードされます

4310* **その他すべてはブロックされます**: ユーザー、プロジェクト、ローカルフック、他のインストール済みプラグインからのフック、エージェント frontmatter で宣言されたフック。[Claude Code に組み込まれた mod](/docs/ja/plugins/mods/overview#mods-built-into-claude-code) は実行し続けます。ユーザーの mod のみをブロックするには、代わりに [`allowManagedModsOnly`](/docs/ja/plugins/mods/admin#set-options-on-the-built-in-guard) を設定してください4330* **その他すべてはブロックされます**: ユーザー、プロジェクト、ローカルフック、他のインストール済みプラグインからのフックと mod、エージェントのフロントマターで宣言されたフック。[Claude Code に組み込まれた mod](/docs/ja/plugins/mods/overview#mods-built-into-claude-code) は実行し続けます。ユーザーの mod のみをブロックするには、代わりに [`allowManagedModsOnly`](/docs/ja/plugins/mods/admin#set-options-on-the-built-in-guard) を設定してください。

4311* **コマンドソースプラグインは無効になります**: Claude Code は [`command` ソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を持つプラグイン(管理 `enabledPlugins` で強制有効にされたプラグインを含む)も無効にします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) を明示的に `false` に設定した場合を除きます4331* **コマンドソースプラグインは無効になります**: Claude Code は [`command` ソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を持つプラグイン(管理 `enabledPlugins` で強制有効にされたプラグインを含む)も無効にします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) を明示的に `false` に設定した場合を除きます

4312* **マーケットプレイス `headersHelper` コマンドはブロックされます**: Claude Code はマーケットプレイス [`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) が明示的に `false` に設定されている場合、または管理設定自体が宣言するマーケットプレイスの場合を除きます。Claude Code v2.1.238 以降が必要です4332* **マーケットプレイス `headersHelper` コマンドはブロックされます**: Claude Code はマーケットプレイス [`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) が明示的に `false` に設定されている場合、または管理設定自体が宣言するマーケットプレイスの場合を除きます。Claude Code v2.1.238 以降が必要です

4313* **ステータスラインとファイル提案は管理設定に絞られます**: Claude Code は [`statusLine`](/docs/ja/statusline)、[`fileSuggestion`](#filesuggestion)、[`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) を管理設定からのみ読み込みます。[ステータスラインとファイル提案ゲート](#status-line-and-file-suggestion-gates)に従います4333* **ステータスラインとファイル提案は管理設定に絞られます**: Claude Code は [`statusLine`](/docs/ja/statusline)、[`fileSuggestion`](#filesuggestion)、[`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) を管理設定からのみ読み込みます。[ステータスラインとファイル提案ゲート](#status-line-and-file-suggestion-gates)に従います


4337* **管理設定内**: Claude Code はすべての設定済みフック(管理フックを含む)を無効にし、[Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフックは実行し続けます4357* **管理設定内**: Claude Code はすべての設定済みフック(管理フックを含む)を無効にし、[Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフックは実行し続けます

4338* **他の設定ファイル内**: Claude Code はユーザー、プロジェクト、ローカル、プラグインフックを無効にします。管理フック、Agent SDK フック、管理 [`enabledPlugins`](#enabledplugins) で強制有効にされたプラグインからのフックは実行し続けます4358* **他の設定ファイル内**: Claude Code はユーザー、プロジェクト、ローカル、プラグインフックを無効にします。管理フック、Agent SDK フック、管理 [`enabledPlugins`](#enabledplugins) で強制有効にされたプラグインからのフックは実行し続けます

4339 4359 

4360このキーは、コードがフックを登録するプラグインである [mod](/docs/ja/plugins/mods/overview) も停止します:

4361 

4362* **管理設定内**: 組織のものを含め、インストール済みのすべてのプラグイン内の mod が停止します

4363* **他の設定ファイル内**: ユーザーがインストールした mod が停止し、[組織の mod](/docs/ja/plugins/mods/admin#install-your-organizations-mods) は実行し続けます

4364 

4365Claude Code に組み込まれた mod は、どちらの場合も実行し続けます。それぞれに[独自のスイッチ](/docs/ja/plugins/mods/overview#mods-built-into-claude-code)があります。

4366 

4340管理設定がこのキーを設定している場合に Agent SDK フックを実行し続けるには、Claude Code v2.1.242 以降が必要です。4367管理設定がこのキーを設定している場合に Agent SDK フックを実行し続けるには、Claude Code v2.1.242 以降が必要です。

4341 4368 

4342フックが無効な間、[`/goal`](/docs/ja/goal) コマンドは実行できず、`/hooks` メニューはフックの代わりに通知を表示します。4369フックが無効な間、[`/goal`](/docs/ja/goal) コマンドは実行できず、`/hooks` メニューはフックの代わりに通知を表示します。


4348Claude Code は `statusLine`、`fileSuggestion`、`subagentStatusLine` について、この順序で 2 つの決定を行います:4375Claude Code は `statusLine`、`fileSuggestion`、`subagentStatusLine` について、この順序で 2 つの決定を行います:

4349 4376 

4350* **完全にオフ**: 管理設定が `disableAllHooks` を設定している場合、またはフォルダが設定ファイル内のフックと同じ [ワークスペーストラストルール](/docs/ja/permissions#what-runs-before-you-trust-a-folder)の下で信頼されていない場合4377* **完全にオフ**: 管理設定が `disableAllHooks` を設定している場合、またはフォルダが設定ファイル内のフックと同じ [ワークスペーストラストルール](/docs/ja/permissions#what-runs-before-you-trust-a-folder)の下で信頼されていない場合

4351* **管理設定に絞られます**: [`allowManagedHooksOnly`](#allowmanagedhooksonly) が設定されている場合、[設定優先度](/docs/ja/hooks#disable-or-remove-hooks)が適用された後に管理設定外で `disableAllHooks` が `true` である場合、または `--safe-mode` で Claude Code を起動した場合4378* **管理設定に絞られます**: [`allowManagedHooksOnly`](#allowmanagedhooksonly) が設定されている場合、[設定の優先順位](/docs/ja/hooks#disable-or-remove-hooks)が適用された後に管理設定外で `disableAllHooks` が `true` である場合、または `--safe-mode` で Claude Code を起動した場合

4352* **絞られた場合**: Claude Code はデプロイされた管理値があれば実行します。そうでない場合は警告なしに値をスキップします: ステータスラインは無効になり、`@` オートコンプリートは組み込みファイル提案にフォールバックします。4379 

4380絞られた場合、Claude Code はデプロイされた管理値があれば実行します。そうでない場合は警告なしにユーザーの値をスキップします: ステータスラインは無効になり、`@` オートコンプリートは組み込みファイル提案にフォールバックします。

4353 4381 

4354<h3 id="disableworkflows">4382<h3 id="disableworkflows">

4355 `disableWorkflows`4383 `disableWorkflows`

4356</h3>4384</h3>

4357 4385 

4358[動的ワークフロー](/docs/ja/workflows#turn-workflows-off)と、管理設定を通じた組織など、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします。自分自身のためだけにワークフローをオンまたはオフにするには、代わりに [`enableWorkflows`](#enableworkflows) を使用してください。これは `/config` の **Dynamic workflows** トグルが書き込みます。4386[動的ワークフロー](/docs/ja/workflows#turn-workflows-off)と、管理設定を通じた組織など、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします。自分自身のためだけにワークフローをオンまたはオフにするには、代わりに [`enableWorkflows`](#enableworkflows) を使用してください。これは `/config` の **Dynamic workflows** トグルがユーザー設定に書き込みます。

4359 4387 

4360* **スコープ**: [`Any file`](#scopes)4388* **スコープ**: [`Any file`](#scopes)

4361* **型**: ブール値4389* **型**: ブール値

4362 * `true`: Claude Code は動的ワークフローと、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします4390 * `true`: Claude Code は動的ワークフローと、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします

4363 * `false`: 未設定と同じです。ワークフローがオンかどうかは [`enableWorkflows`](#enableworkflows) とプランのデフォルトに従います4391 * `false`: 未設定と同じです。ワークフローがオンかどうかは [`enableWorkflows`](#enableworkflows) とプランのデフォルトに従います

4364* **デフォルト**: `false`4392* **デフォルト**: `false`

4365* **セッションごとのオーバーライド**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにします。2 つのうちどちらがオフにするかに関わらず、もう一方はオンに戻すことはできません4393* **セッションごとの上書き**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにします。2 つのうちどちらがオフにするかに関わらず、もう一方はオンに戻すことはできません

4366 4394 

4367```json settings.json theme={null}4395```json settings.json theme={null}

4368{4396{


4378 4406 

4379* **スコープ**: [`Any file`](#scopes)4407* **スコープ**: [`Any file`](#scopes)

4380* **型**: ブール値4408* **型**: ブール値

4381 * `true`: Claude Code は動的ワークフローをオンにします4409 * `true`: Claude Code は自分自身の動的ワークフローをオンにします

4382 * `false`: Claude Code は動的ワークフローをオフにします4410 * `false`: Claude Code は自分自身の動的ワークフローをオフにします

4383* **デフォルト**: 未設定。ワークフローはオンです。ただし Pro プランではオフです4411* **デフォルト**: 未設定。ワークフローはオンです。ただし Pro プランではオフです

4384* **セッションごとのオーバーライド**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにし、ここで `true` はそれが設定されている間はワークフローをオンに戻すことはできません4412* **セッションごとの上書き**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにし、ここで `true` はそれが設定されている間はワークフローをオンに戻すことはできません

4385 4413 

4386```json settings.json theme={null}4414```json settings.json theme={null}

4387{4415{


4395 `hooks`4423 `hooks`

4396</h3>4424</h3>

4397 4425 

4398Claude Code のライフサイクルの特定の時点(ツール呼び出しの前やセッション開始時など)で、[フック](/docs/ja/hooks)として独自のコマンド、プロンプト、エージェント、HTTP リクエスト、または MCP ツールを実行します。[フックリファレンス](/docs/ja/hooks#hook-events)はすべてのイベント、ペイロード、終了コードをリストします。各イベントはマッチャーグループのリストにマップされ、各グループはマッチャーが適用されるときに実行するハンドラーをリストします。4426Claude Code のライフサイクルの特定の時点(ツール呼び出しの前やセッション開始時など)で、[フック](/docs/ja/hooks)として独自のコマンド、プロンプト、エージェント、HTTP リクエスト、または MCP ツールを実行します。[フックリファレンス](/docs/ja/hooks#hook-events)はすべてのイベント、ペイロード、終了コードをリストします。各イベントは matcher グループのリストにマップされ、各グループは matcher が適用されるときに実行するハンドラーをリストします。

4399 4427 

4400* **スコープ**: [`Any file`](#scopes)。フックはファイル全体でマージされ、管理設定からのフックは他のファイルから削除できません。4428* **スコープ**: [`Any file`](#scopes)。フックは互いに置き換えられるのではなくファイル全体でマージされ、管理設定からのフックは他のファイルから削除できません。

4401* **型**: [フックイベント](/docs/ja/hooks#hook-events)でキー付けされたオブジェクト。各値は `"command"`、`"prompt"`、`"agent"`、`"http"`、または `"mcp_tool"` の `type` を持つ `{ "matcher", "hooks" }` グループの配列4429* **型**: [フックイベント](/docs/ja/hooks#hook-events)でキー付けされたオブジェクト。各値は `"command"`、`"prompt"`、`"agent"`、`"http"`、または `"mcp_tool"` の `type` を持つ `{ "matcher", "hooks" }` グループの配列

4402* **デフォルト**: 未設定。フックは実行されません4430* **デフォルト**: 未設定。フックは実行されません

4403 4431 


4418}4446}

4419```4447```

4420 4448 

4421すべてのイベント、マッチャーパターン、ハンドラーフィールドについては、[フックリファレンス](/docs/ja/hooks#configuration)を参照してください。フックをオフにするには、[`disableAllHooks`](#disableallhooks)を参照してください。フックを組織がデプロイするものに制限するには、[`allowManagedHooksOnly`](#allowmanagedhooksonly)を参照してください。4449すべてのイベント、matcher パターン、ハンドラーフィールドについては、[フックリファレンス](/docs/ja/hooks#configuration)を参照してください。フックをオフにするには、[`disableAllHooks`](#disableallhooks)を参照してください。フックを組織がデプロイするものに制限するには、[`allowManagedHooksOnly`](#allowmanagedhooksonly)を参照してください。

4422 4450 

4423<h3 id="httphookallowedenvvars">4451<h3 id="httphookallowedenvvars">

4424 `httpHookAllowedEnvVars`4452 `httpHookAllowedEnvVars`


4464 `workflowSizeGuideline`4492 `workflowSizeGuideline`

4465</h3>4493</h3>

4466 4494 

4467動的ワークフローが書き込む [エージェント数 Claude が目指す](/docs/ja/workflows#set-a-size-guideline)を設定します。Claude Code は値を Claude に助言として送信します。強制的な上限ではありません: `"small"` は 5 未満のエージェントを要求し、`"medium"` は 10 未満、`"large"` は 50 未満です。ワークフローが費やすものを制限したい場合は `"small"` を選択します。Claude Code v2.1.219 以降が必要です。4495Claude が書き込む動的ワークフローで [Claude が目指すエージェント数](/docs/ja/workflows#set-a-size-guideline)を設定します。Claude Code は値を Claude に助言として送信します。強制的な上限ではありません: `"small"` は 5 未満のエージェントを要求し、`"medium"` は 10 未満、`"large"` は 50 未満です。ワークフローが費やすものを制限したい場合は `"small"` を選択します。Claude Code v2.1.219 以降が必要です。

4468 4496 

4469* **スコープ**: [`Any file`](#scopes)。そこの値は `/config` の **Dynamic workflow size** 選択肢より優先されます。Claude Code は `~/.claude.json` に保存します。設定ファイルがキーを設定している間、Claude Code はその行を非表示にします。4497* **スコープ**: [`Any file`](#scopes)。そこの値は `/config` の **Dynamic workflow size** 選択肢より優先されます。Claude Code は `~/.claude.json` に保存します。設定ファイルがキーを設定している間、Claude Code はその行を非表示にします。

4470* **型**: 文字列。以下のいずれか:4498* **型**: 文字列。以下のいずれか:

4471 * `"unrestricted"`: ガイドラインなし。Claude はワークフローをタスクにサイズします4499 * `"unrestricted"`: ガイドラインなし。Claude はタスクに合わせてワークフローの規模を決めます

4472 * `"small"`: Claude は 5 未満のエージェントを目指します4500 * `"small"`: Claude は 5 未満のエージェントを目指します

4473 * `"medium"`: Claude は 10 未満のエージェントを目指します4501 * `"medium"`: Claude は 10 未満のエージェントを目指します

4474 * `"large"`: Claude は 50 未満のエージェントを目指します4502 * `"large"`: Claude は 50 未満のエージェントを目指します


5966* **マシン上の管理者ソースがリストを設定**: マシン独自の管理者ソースの `env` ブロックのみがカウントされます5994* **マシン上の管理者ソースがリストを設定**: マシン独自の管理者ソースの `env` ブロックのみがカウントされます

5967* **サーバー管理設定のみがリストを設定**: これらのサーバー管理設定の `env` 値もカウントされます5995* **サーバー管理設定のみがリストを設定**: これらのサーバー管理設定の `env` 値もカウントされます

5968 5996 

5969リストは、クラウドプロバイダーの認証情報とテナンシー変数、または `HTTPS_PROXY` と証明書設定などのネットワークパスを判定しません。管理 `env` ブロックでフロート用にそれらを設定します。5997リストは、クラウドプロバイダーの認証情報とテナンシー変数、または `HTTPS_PROXY` と証明書設定などのネットワークパスを判定しません。管理 `env` ブロックでフリート用にそれらを設定します。

5970 5998 

5971<h3 id="apikeyhelper">5999<h3 id="apikeyhelper">

5972 `apiKeyHelper`6000 `apiKeyHelper`


6000 6028 

6001`aws sso login` などの独自のコマンドを実行して、Claude Code が [Amazon Bedrock](/docs/ja/amazon-bedrock) に対して持つ認証情報が機能しなくなったときに `.aws` ディレクトリの認証情報をリフレッシュします。Claude Code は最初に現在の認証情報を STS に対してチェックし、そのチェックが失敗した場合にのみコマンドを実行してから、リフレッシュされた `.aws` ディレクトリを読み取ります。6029`aws sso login` などの独自のコマンドを実行して、Claude Code が [Amazon Bedrock](/docs/ja/amazon-bedrock) に対して持つ認証情報が機能しなくなったときに `.aws` ディレクトリの認証情報をリフレッシュします。Claude Code は最初に現在の認証情報を STS に対してチェックし、そのチェックが失敗した場合にのみコマンドを実行してから、リフレッシュされた `.aws` ディレクトリを読み取ります。

6002 6030 

6031同じコマンドと認証情報を使用する複数の Claude Code プロセス(別々のターミナルや IDE ウィンドウなど)で同時にチェックが失敗した場合、1 つのプロセスがコマンドを実行し、残りのプロセスは独自に実行を開始する代わりにその実行を待機します。リクエストを保留したまま 60 秒間待機したプロセスは、自らコマンドを実行します。この動作をオフにするには、[`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/ja/env-vars) を `1` に設定します。

6032 

6003* **スコープ**: [`Any file`](#scopes)6033* **スコープ**: [`Any file`](#scopes)

6004* **タイプ**: 文字列、シェルコマンドライン6034* **タイプ**: 文字列、シェルコマンドライン

6005* **デフォルト**: 未設定。Claude Code は AWS 認証情報をリフレッシュしません6035* **デフォルト**: 未設定。Claude Code は AWS 認証情報をリフレッシュしません


6123 6153 

6124Claude Code が Google Cloud Application Default Credentials の有効期限が切れているか読み込めないことを検出したときにリフレッシュするために独自のコマンドを実行して、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) リクエストが手動で再認証することなく機能し続けるようにします。6154Claude Code が Google Cloud Application Default Credentials の有効期限が切れているか読み込めないことを検出したときにリフレッシュするために独自のコマンドを実行して、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) リクエストが手動で再認証することなく機能し続けるようにします。

6125 6155 

6156同じコマンドと認証情報を使用する複数の Claude Code プロセス(別々のターミナルや IDE ウィンドウなど)が同時に認証情報の期限切れを検出した場合、1 つのプロセスがコマンドを実行し、残りのプロセスは独自に実行を開始する代わりにその実行を待機します。リクエストを保留したまま 60 秒間待機したプロセスは、自らコマンドを実行します。この動作をオフにするには、[`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/ja/env-vars) を `1` に設定します。

6157 

6126* **スコープ**: [`Any file`](#scopes)6158* **スコープ**: [`Any file`](#scopes)

6127* **タイプ**: 文字列、シェルコマンドライン6159* **タイプ**: 文字列、シェルコマンドライン

6128* **デフォルト**: 未設定。Claude Code の認証情報エラーは `gcloud auth application-default login` を自分で実行するよう指示します6160* **デフォルト**: 未設定。Claude Code の認証情報エラーは `gcloud auth application-default login` を自分で実行するよう指示します


6151}6183}

6152```6184```

6153 6185 

6154[`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/ja/env-vars) でリフレッシュ間隔を設定します。スクリプト要件と Claude Code が失敗したヘルパーを報告する場所については、[動的ヘッダー](/docs/ja/monitoring-usage#dynamic-headers)を参照してください。6186[`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/ja/env-vars) でリフレッシュ間隔を設定します。スクリプトの要件とヘルパーが失敗した場合の動作については、[動的ヘッダー](/docs/ja/monitoring-usage#dynamic-headers)を参照してください。

6155 6187 

6156<h2 id="updates-and-versioning">6188<h2 id="updates-and-versioning">

6157 アップデートとバージョン管理6189 アップデートとバージョン管理

skills.md +22 −4

Details

56 56 

57Claude は、失敗したコマンドや欠落したステップなど、実行を誤った場合にのみ記録されたファイルを編集するため、セッションごとの差分なしでファイルをコミットできます。v2.1.205 より前では、バンドルされたスキルは Claude に実行から学んだことをすべて折り込むよう指示し、頻繁なマージコンフリクトを引き起こしていました。57Claude は、失敗したコマンドや欠落したステップなど、実行を誤った場合にのみ記録されたファイルを編集するため、セッションごとの差分なしでファイルをコミットできます。v2.1.205 より前では、バンドルされたスキルは Claude に実行から学んだことをすべて折り込むよう指示し、頻繁なマージコンフリクトを引き起こしていました。

58 58 

59<h3 id="run-your-checks-before-each-commit">

60 各コミットの前にチェックを実行する

61</h3>

62 

63`verify` または `simplify` という名前のスキルが存在する状態でセッションが開始されると、Claude Code のコミット指示により、Claude はドキュメントやテストへの変更を除き、各コミットの直前にそのスキルを実行します。これには Claude Code v2.1.286 以降が必要です。セッション開始時に次の条件を満たしている場合、Claude はその指示を受け取ります。

64 

65* **場所**: スキルがエンタープライズ、個人、プロジェクト、または追加ディレクトリの[場所](#where-skills-live)から読み込まれるか、その名前の `.claude/commands/` ファイルから読み込まれること。`/verify` がリポジトリルートに記録するレシピはプロジェクトスキルであるため、対象になります。バンドルされた `/verify` と `/simplify`、プラグインスキル、claude.ai アカウントのスキルは対象外です。

66* **呼び出し**: Claude がスキルを呼び出せること。たとえば `disable-model-invocation: true` などで [Claude による呼び出しを停止した](#control-who-invokes-a-skill) 場合、Claude はこの指示を受け取りません。

67* **Git の指示**: [`includeGitInstructions`](/docs/ja/settings-reference#includegitinstructions) をオフにしていないこと。オフにすると、組み込みのコミットおよび PR に関するその他の指示とともに、この指示も削除されます。

68 

59<h3 id="work-on-claude-api-projects">69<h3 id="work-on-claude-api-projects">

60 Claude API プロジェクトで作業する70 Claude API プロジェクトで作業する

61</h3>71</h3>


290 300 

291Claude Code は、同期されたスキルの frontmatter に 2 つのルールを適用します:301Claude Code は、同期されたスキルの frontmatter に 2 つのルールを適用します:

292 302 

293* Claude Code は、あらゆる種類のセッションで frontmatter を尊重するため、`allowed-tools` グラントは通常の [権限フロー](/docs/ja/permissions) を通じて進みます。303* フロントマターはあらゆる種類のセッションで適用されるため、`allowed-tools` による許可は通常の [権限フロー](/docs/ja/permissions) を経由します。組織が `allowManagedPermissionRulesOnly` を設定している場合、この許可は [適用されません](#when-only-managed-permission-rules-apply)。

294* Claude Code は、スキルが提供する表示テキスト(説明など)をサニタイズします。制御文字を削除し、Claude に到達するテキスト(説明など)では、テキストが Claude Code の内部フォーマットを模倣できないように、角括弧をエスケープします。このサニタイズには Claude Code v2.1.228 以降が必要です。304* Claude Code は、スキルが提供する表示テキスト(説明など)をサニタイズします。制御文字を削除し、Claude に到達するテキスト(説明など)では、テキストが Claude Code の内部フォーマットを模倣できないように、角括弧をエスケープします。このサニタイズには Claude Code v2.1.228 以降が必要です。

295 305 

296<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">306<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">


603 613 

604`allowed-tools` フィールドは、スキルを呼び出すターン中にリストされたツールの権限を付与するため、Claude は承認を求めることなくそれらを使用できます。許可はあなたが次のメッセージを送信するときにクリアされます。スキルコンテンツは [コンテキストに留まる](#skill-content-lifecycle) にもかかわらず。スキルを再呼び出すと、そのターンに対して再度適用されます。これはどのツールが利用可能かを制限しません。すべてのツールは呼び出し可能なままであり、[権限設定](/docs/ja/permissions) はリストされていないツールを引き続き管理します。セッション全体ではなく単一のターンのツールを事前承認するには、代わりにそれらの権限設定に許可ルールを追加します。614`allowed-tools` フィールドは、スキルを呼び出すターン中にリストされたツールの権限を付与するため、Claude は承認を求めることなくそれらを使用できます。許可はあなたが次のメッセージを送信するときにクリアされます。スキルコンテンツは [コンテキストに留まる](#skill-content-lifecycle) にもかかわらず。スキルを再呼び出すと、そのターンに対して再度適用されます。これはどのツールが利用可能かを制限しません。すべてのツールは呼び出し可能なままであり、[権限設定](/docs/ja/permissions) はリストされていないツールを引き続き管理します。セッション全体ではなく単一のターンのツールを事前承認するには、代わりにそれらの権限設定に許可ルールを追加します。

605 615 

606ワークスペーストラストはこのフィールドをゲートしません。Claude Code は、信頼したことのないフォルダで `-p` 実行を含む、あなたまたは Claude がスキルを呼び出すときはいつでも、プロジェクトスキルの `allowed-tools` を適用します。スキルは自身に広いツールアクセスを付与できるため、Claude Code をそこで実行する前に、リポジトリにチェックインされたスキルの `allowed-tools` を確認してください。616ワークスペースの信頼はこのフィールドの適用を制限しません。Claude Code は、一度も信頼したことのないフォルダでの `-p` 実行であっても、プロジェクトスキルの `allowed-tools` を適用します。スキルは自身に広いツールアクセスを付与できるため、Claude Code をそこで実行する前に、リポジトリにチェックインされたスキルの `allowed-tools` を確認してください。組織全体でリポジトリのスキルからこのフィールドを無効にするには、[管理された権限ルールのみが適用される場合](#when-only-managed-permission-rules-apply) を参照してください。

607 617 

608このスキルでは、スキルを呼び出すときはいつでも、Claude は許可を求めることなく git コマンドを実行できます。618このスキルでは、スキルを呼び出すときはいつでも、Claude は許可を求めることなく git コマンドを実行できます。

609 619 


618 628 

619スキルがアクティブな間、Claude の利用可能なプールからツールを削除するには、スキルのフロントマターの `disallowed-tools` にそれらをリストします。制限はあなたが次のメッセージを送信するときにクリアされます。拒否ルールと同様に、フィールドは他のツールが残っている間、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior) を削除できません。すべてのスキルとプロンプト全体でツールをブロックするには、[権限設定](/docs/ja/permissions) に拒否ルールを追加します。629スキルがアクティブな間、Claude の利用可能なプールからツールを削除するには、スキルのフロントマターの `disallowed-tools` にそれらをリストします。制限はあなたが次のメッセージを送信するときにクリアされます。拒否ルールと同様に、フィールドは他のツールが残っている間、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior) を削除できません。すべてのスキルとプロンプト全体でツールをブロックするには、[権限設定](/docs/ja/permissions) に拒否ルールを追加します。

620 630 

631<h4 id="when-only-managed-permission-rules-apply">

632 管理された権限ルールのみが適用される場合

633</h4>

634 

635組織が管理設定で `allowManagedPermissionRulesOnly` を設定している場合、Claude Code はプロジェクトスキルと個人スキル、および [この設定の項目に記載されているその他のソース](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) の `allowed-tools` を無視します。これには Claude Code v2.1.282 以降が必要です。

636 

637影響を受けるスキルがリストするツールは、代わりに組織の管理ルールと通常の権限プロンプトを経由します。`/status` を実行すると、セッション内でこれまでに Claude Code が `allowed-tools` を無視した各スキルが一覧表示されます。どの管理ルールでも許可されていない、スキル内の注入されたコマンドは、[注入されたコマンドの権限チェック](#permission-checks-on-injected-commands) に従います。

638 

621<h3 id="pass-arguments-to-skills">639<h3 id="pass-arguments-to-skills">

622 スキルに引数を渡す640 スキルに引数を渡す

623</h3>641</h3>


766 784 

767注入されたコマンドは、スキルのレンダリング中に権限を求めるプロンプトを表示することはありません。Claude Code は最初に [権限ルール](/docs/ja/permissions) に対して各コマンドをチェックします。deny ルールが一致するコマンドは `Shell command permission check failed for pattern "..."` で呼び出しを中止します。785注入されたコマンドは、スキルのレンダリング中に権限を求めるプロンプトを表示することはありません。Claude Code は最初に [権限ルール](/docs/ja/permissions) に対して各コマンドをチェックします。deny ルールが一致するコマンドは `Shell command permission check failed for pattern "..."` で呼び出しを中止します。

768 786 

769[auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) の外では、コマンドの権限チェックが allow 以外のものを返す場合、Claude Code は同じエラーで呼び出しを中止します。これには通常あなたに尋ねるルールが含まれます。一致しないコマンドが中止されるのを防ぐには、[`allowed-tools`](#pre-approve-tools-for-a-skill) で事前に承認します。Deny および ask ルールは引き続き `allowed-tools` をオーバーライドします。[権限を管理する](/docs/ja/permissions#manage-permissions) を参照してください。787[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 以外では、コマンドの権限チェックが allow 以外を返す場合、Claude Code は同じエラーで呼び出しを中止します。これには通常はユーザーに確認を求めるルールも含まれます。一致しないコマンドがここで中止されるのを防ぐには、[`allowed-tools`](#pre-approve-tools-for-a-skill) で事前に承認します。組織が権限ルールを管理設定に制限している場合は、[管理された権限ルールのみが適用される場合](#when-only-managed-permission-rules-apply) を参照してください。拒否ルールと確認ルールは引き続き `allowed-tools` より優先されます。[権限を管理する](/docs/ja/permissions#manage-permissions) を参照してください。

770 788 

771auto mode では、そうでなければあなたの承認が必要なコマンドは呼び出しを中止しません。スキルは Claude にコマンドを最初に実行するよう指示して読み込まれ、Claude 独自の呼び出しは [auto mode の通常のチェック](/docs/ja/permission-modes#how-the-classifier-evaluates-actions) を通じて進みます。呼び出しは、`agent` を設定する [フォークされたスキル](#run-skills-in-a-subagent) でも、Claude が [注入されたコマンドを実行するシェルツール](#how-injected-commands-run) を持たないセッションでも中止されます。789auto mode では、そうでなければあなたの承認が必要なコマンドは呼び出しを中止しません。スキルは Claude にコマンドを最初に実行するよう指示して読み込まれ、Claude 独自の呼び出しは [auto mode の通常のチェック](/docs/ja/permission-modes#how-the-classifier-evaluates-actions) を通じて進みます。呼び出しは、`agent` を設定する [フォークされたスキル](#run-skills-in-a-subagent) でも、Claude が [注入されたコマンドを実行するシェルツール](#how-injected-commands-run) を持たないセッションでも中止されます。

772 790 


840 Claude のスキルアクセスを制限する858 Claude のスキルアクセスを制限する

841</h3>859</h3>

842 860 

843デフォルトでは、Claude は `disable-model-invocation: true` が設定されていないスキルを呼び出すことができます。`allowed-tools` を定義するスキルは、スキルを呼び出すターン中に、事前承認なしでこれらのツールへのアクセスを Claude に付与します。許可は次のメッセージを送信するときにクリアされます。[権限設定](/docs/ja/permissions) は引き続き、他のすべてのツールの基本的な承認動作を管理します。`/init` や `/security-review` を含むいくつかの組み込みコマンドも Skill ツールを通じて利用可能です。`/compact` などの他の組み込みコマンドはそうではありません。861デフォルトでは、Claude は `disable-model-invocation: true` が設定されていない任意のスキルを呼び出すことができます。[`allowed-tools`](#pre-approve-tools-for-a-skill) を定義するスキルは、そのスキルを呼び出すターンの間、使用ごとの承認なしでそれらのツールへのアクセスを Claude に付与します。この付与は次のメッセージを送信するとクリアされます。[権限設定](/docs/ja/permissions) は引き続き、その他のすべてのツールの基本的な承認動作を管理します。`/init` や `/security-review` を含むいくつかの組み込みコマンドも Skill ツールを通じて利用できます。`/compact` などのその他の組み込みコマンドは利用できません。

844 862 

845Claude が呼び出すことができるスキルを制御する 3 つの方法:863Claude が呼び出すことができるスキルを制御する 3 つの方法:

846 864 

sub-agents.md +6 −1

Details

1255| `x` | 実行中の場合は選択したフォークを停止するか、実行中でなくなった場合はその行を閉じます。メインセッション行またはトランスクリプトを `Enter` で開いたフォークの行では、`x` はプロンプトに入力します |1255| `x` | 実行中の場合は選択したフォークを停止するか、実行中でなくなった場合はその行を閉じます。メインセッション行またはトランスクリプトを `Enter` で開いたフォークの行では、`x` はプロンプトに入力します |

1256| `Esc` | フォーカスをプロンプト入力に戻す |1256| `Esc` | フォーカスをプロンプト入力に戻す |

1257 1257 

1258フォークまたはサブエージェントのトランスクリプトが開いている場合、フォローアップメッセージと[スキル](/docs/ja/skills)はそのエージェントに送信されますが、組み込みコマンドはメイン会話で実行されたままです。v2.1.199 以降では、そのビューで `/model` または `/fast` を入力すると、表示されているエージェントのモデルまたはファストモードではなく、メイン会話のモデルまたはファストモードを変更することを示す通知が表示されます。サイレントに実行される代わりに。1258フォークまたはサブエージェントのトランスクリプトが開いている場合、フォローアップメッセージと[スキル](/docs/ja/skills)はそのエージェントに送信され、組み込みコマンドはメイン会話に送信されます。ただし、次の安全策があります:

1259 

1260* `/compact`、`/clear`、`/rewind` はメイン会話に対して動作するため、このビューからこれらのいずれかを実行する前に、Claude Code は確認を求めます。

1261* `/model` と `/fast` は、表示しているエージェントではなくメイン会話のモデルと fast mode を設定するため、このビューからは実行されません。その理由は通知で表示されます。

1262 

1263表示しているエージェントが待機中の作業が完了する前にメッセージを読むようにするには、[`Ctrl+Enter` または `Ctrl+X Ctrl+S`](/docs/ja/keybindings#chat-actions) で送信します。エージェントが待機しているシェルコマンドやサブエージェントのうち、[バックグラウンド](/docs/ja/tools-reference#background-commands)に移動できるものはバックグラウンドに移動し、実行を続けます。エージェントが応答を書いている場合、またはバックグラウンドに移動できない作業を待っている場合は、そのまま処理を続け、それが完了した時点でメッセージを読みます。Claude Code v2.1.286 以降が必要です。

1259 1264 

1260<h3 id="how-forks-differ-from-other-subagents">1265<h3 id="how-forks-differ-from-other-subagents">

1261 フォークと他のサブエージェントの違い1266 フォークと他のサブエージェントの違い

Details

167 タイムアウトと出力制限167 タイムアウトと出力制限

168</h3>168</h3>

169 169 

170各コマンドはタイムアウト下で実行され、Claude がそれを管理します。コマンドにデフォルトより長い時間が必要な場合、その呼び出しで `timeout` パラメータを渡します。ユーザーがコマンドごとのタイムアウトを設定することはありません。2 つの[環境変数](/docs/ja/env-vars)が Claude が取得するものを制御します。170各コマンドはタイムアウト下で実行され、Claude がそれを管理します。コマンドにデフォルトより長い時間が必要な場合、その呼び出しで `timeout` パラメータを渡します。ユーザーがコマンドごとのタイムアウトを設定することはありません。

171 

1722 つの[環境変数](/docs/ja/env-vars)が、フォアグラウンドで実行されるコマンドに対して Claude が取得するものを制御します。

171 173 

172* `BASH_DEFAULT_TIMEOUT_MS` — Claude がタイムアウトを渡さない場合のデフォルト。デフォルトでは 2 分です。174* `BASH_DEFAULT_TIMEOUT_MS` — Claude がタイムアウトを渡さない場合のデフォルト。デフォルトでは 2 分です。

173* `BASH_MAX_TIMEOUT_MS` — デフォルトでは、Claude が要求するものを上限で制限します。有効な上限は 2 つの値の大きい方です。デフォルトでは 10 分です。175* `BASH_MAX_TIMEOUT_MS` — デフォルトでは、Claude が要求するものを上限で制限します。有効な上限は 2 つの値の大きい方です。デフォルトでは 10 分です。


201 バックグラウンドコマンドが停止するとき203 バックグラウンドコマンドが停止するとき

202</h4>204</h4>

203 205 

204[フォアグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)が開始したコマンドは、そのサブエージェントの実行が終了すると停止します。完了したか、失敗したか、中断されたかに関係なく。メインの会話またはバックグラウンドサブエージェントが開始したコマンドは、最終応答の後も実行し続けます。終了するまで、停止されるまで、またはその[時間制限](#time-limit-for-background-commands)に達するまで。`-p` フラグを使用した非対話型モードでは、[バックグラウンドコマンドは実行の最終結果の直後に終了します](/docs/ja/headless#background-tasks-at-exit)。206[フォアグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)が開始したコマンドは、そのサブエージェントの実行が終了すると停止します。完了したか、失敗したか、中断されたかに関係なく。メインの会話またはバックグラウンドサブエージェントが開始したコマンドは、最終応答の後も実行し続けます。終了するまで、停止されるまで、またはその[時間制限](#time-limit-for-background-commands)に達するまで。`-p` フラグを使用した非対話モードでは、[バックグラウンドコマンドは実行の最終結果の直後に終了します](/docs/ja/headless#background-tasks-at-exit)。

205 207 

206<h4 id="time-limit-for-background-commands">208<h4 id="time-limit-for-background-commands">

207 バックグラウンドコマンドの時間制限209 バックグラウンドコマンドの時間制限


229 231 

230フォアグラウンドコマンドが完了せずにタイムアウトに達すると、Claude Code はそれを停止する代わりにバックグラウンドに移動します。ただし、コマンドが `sleep` で始まる場合は除きます。移動されたコマンドの[時間制限](#time-limit-for-background-commands)は移動からカウントされ、フォアグラウンドサブエージェントの移動されたコマンドはそのサブエージェントの実行が終了すると停止します。232フォアグラウンドコマンドが完了せずにタイムアウトに達すると、Claude Code はそれを停止する代わりにバックグラウンドに移動します。ただし、コマンドが `sleep` で始まる場合は除きます。移動されたコマンドの[時間制限](#time-limit-for-background-commands)は移動からカウントされ、フォアグラウンドサブエージェントの移動されたコマンドはそのサブエージェントの実行が終了すると停止します。

231 233 

232[`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ja/env-vars#variables) を設定すると、バックグラウンドタスク機能の残りと共に自動バックグラウンド化を無効にします。234[`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ja/env-vars#variables) を設定するか、[bare モード](/docs/ja/headless#start-faster-with-bare-mode)で実行すると、バックグラウンドタスク機能の残りと共に自動バックグラウンド化が無効になるため、タイムアウトに達したコマンドは代わりに停止します。

233 235 

234バックグラウンドに移動されたコマンドの結果は、何が起こったかを示します。236バックグラウンドに移動されたコマンドの結果は、何が起こったかを示します。

235 237 

Details

22| `curl: (23)` または `curl: (56) Failure writing output to destination` | [接続性を確認するか、別のインストーラーを使用する](#curl-56-failure-writing-output-to-destination) |22| `curl: (23)` または `curl: (56) Failure writing output to destination` | [接続性を確認するか、別のインストーラーを使用する](#curl-56-failure-writing-output-to-destination) |

23| Linux でのインストール中に `Killed` または `Installation was killed before it could finish (exit code 137)` | [メモリを解放するか、スワップスペースを追加する](#install-killed-on-low-memory-linux-servers) |23| Linux でのインストール中に `Killed` または `Installation was killed before it could finish (exit code 137)` | [メモリを解放するか、スワップスペースを追加する](#install-killed-on-low-memory-linux-servers) |

24| インストール中に `Raw mode is not supported` | [インストーラーを再実行する](#raw-mode-is-not-supported-during-install) |24| インストール中に `Raw mode is not supported` | [インストーラーを再実行する](#raw-mode-is-not-supported-during-install) |

25| インストール中に `EACCES: permission denied` | [インストールディレクトリの権限を修正する](#permission-errors-during-installation) |

25| `TLS connect error` または `SSL/TLS secure channel` | [CA 証明書を更新する](#tls-or-ssl-connection-errors) |26| `TLS connect error` または `SSL/TLS secure channel` | [CA 証明書を更新する](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` またはダウンロードサーバーに到達できない | [ネットワークとプロキシ設定を確認する](#check-network-connectivity) |27| `Failed to fetch version` またはダウンロードサーバーに到達できない | [ネットワークとプロキシ設定を確認する](#check-network-connectivity) |

27| `irm is not recognized` または `The token '&&' is not a valid statement separator` | [シェルに適切なコマンドを使用する](#wrong-install-command-on-windows) |28| `irm is not recognized` または `The token '&&' is not a valid statement separator` | [シェルに適切なコマンドを使用する](#wrong-install-command-on-windows) |


295 ディレクトリ権限を確認する296 ディレクトリ権限を確認する

296</h3>297</h3>

297 298 

298インストーラーは macOS と Linux の `~/.local/bin/` と `~/.claude/` への書き込みアクセスが必要です。Windows ではインストール場所は `%USERPROFILE%` の下にあり、デフォルトではユーザーが書き込み可能なため、このセクションはそこではほとんど適用されません。299権限が原因でインストールが失敗した場合は、作成または書き込みできなかったパスが表示されます。Windows ではインストールは `%USERPROFILE%` の下に書き込まれ、そこはデフォルトでユーザーが書き込み可能なため、このセクションはそこではほとんど適用されません。

300 

301macOS と Linux では、インストールは次の場所に書き込みます:

302 

303* `~/.claude/downloads/`:インストールコマンドがダウンロードしたバイナリを配置する場所

304* `~/.local/bin/`:`claude` ランチャー

305* `~/.local/share/claude/`:ダウンロードした各バージョン

306* `~/.local/state/claude/`:ロックファイル

307* `~/.cache/claude/`:ステージングされたダウンロード

308* [`~/.claude.json`](/docs/ja/claude-directory):グローバル設定ファイル。インストーラーはここにインストール方法を記録します

309 

310`XDG_DATA_HOME`、`XDG_STATE_HOME`、または `XDG_CACHE_HOME` を設定している場合、インストールは `~/.local/share`、`~/.local/state`、`~/.cache` の代わりにそれらを使用します。[`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) を設定している場合、グローバル設定ファイルはホームディレクトリではなくそのディレクトリの下に置かれます。

299 311 

300ディレクトリが書き込み可能かどうかを確認してください:312ディレクトリが書き込み可能かどうかを確認してください:

301 313 


1032 Claude Code アクセスがこのアカウントに付与されていません1044 Claude Code アクセスがこのアカウントに付与されていません

1033</h3>1045</h3>

1034 1046 

1035サインインページに `Authorization failed` と表示され、Claude Code からログインした後に `Claude Code access has not been granted for this account. Contact your administrator.` というメッセージが表示される場合、Claude Enterprise オーガニゼーションはロールを Custom に設定しており、グループに割り当てられた [カスタムロール](https://support.claude.com/en/articles/13930452) のいずれも Claude Code アクセスを付与していません。Custom ロールでは、それらのカスタムロールからのみアクセスを取得するため、Claude Code で変更しても、このエラーは解決されません。1047サインインページに `Authorization failed` と表示され、Claude Code からログインした後に `Claude Code access has not been granted for this account. Contact your administrator.` というメッセージが表示される場合、Claude Enterprise 組織はロールを Custom に設定しており、グループに割り当てられた [カスタムロール](https://support.claude.com/en/articles/13930452) のいずれも Claude Code アクセスを付与していません。Custom ロールでは、それらのカスタムロールからのみアクセスを取得するため、Claude Code で変更しても、このエラーは解決されません。

1036 1048 

1037アクセスを取得するには:1049アクセスを取得するには:

1038 1050 

10391. Claude オーガニゼーションの所有者に、Claude Code アクセスを付与するカスタムロールをグループの 1 つに割り当てるか、ロールを Custom から User などの標準ロールに変更するよう依頼してください。所有者はオーガニゼーションの [ロール設定](https://claude.ai/admin-settings/roles) でロールを管理します。10511. Claude 組織の Owner に、Claude Code アクセスを付与するカスタムロールをグループの 1 つに割り当てるか、ロールを Custom から User などの標準ロールに変更するよう依頼してください。Owner は組織の [ロール設定](https://claude.ai/admin-settings/roles) でロールを管理します。

10402. 所有者が変更を加えた後、`claude` を実行してもう一度ログインしてください。10522. Owner が変更を加えた後、`claude` を実行してもう一度ログインしてください。

1041 1053 

1042<h3 id="this-organization-has-been-disabled-with-an-active-subscription">1054<h3 id="this-organization-has-been-disabled-with-an-active-subscription">

1043 このオーガニゼーションはアクティブなサブスクリプションで無効になっています1055 この組織はアクティブなサブスクリプションで無効になっています

1044</h3>1056</h3>

1045 1057 

1046アクティブな Claude サブスクリプションがあるにもかかわらず `API Error: 400 ... "This organization has been disabled"` が表示される場合、`ANTHROPIC_API_KEY` 環境変数がサブスクリプションをオーバーライドしています。これは、前の雇用主またはプロジェクトからの古い API キーがシェルプロファイルに設定されている場合に一般的に発生します。1058アクティブな Claude サブスクリプションがあるにもかかわらず `API Error: 400 ... "This organization has been disabled"` が表示される場合、`ANTHROPIC_API_KEY` 環境変数がサブスクリプションをオーバーライドしています。これは、前の雇用主またはプロジェクトからの古い API キーがシェルプロファイルに設定されている場合に一般的に発生します。


1098 1110 

1099`/login` を実行して再認証してください。これが頻繁に発生する場合は、トークン検証が正しいタイムスタンプに依存するため、システムクロックが正確であることを確認してください。1111`/login` を実行して再認証してください。これが頻繁に発生する場合は、トークン検証が正しいタイムスタンプに依存するため、システムクロックが正確であることを確認してください。

1100 1112 

11011 台のマシン上の並列セッションは保存されたログインを共有し、その更新を調整して、1 つのプロセスだけが一度にトークンを更新するようにします。v2.1.211 より前では、マシンをスリープから起動すると、2 つのセッションが同じトークンで更新される可能性があり、これは保存されたログインを取り消し、すべてのオープンセッションに一度にログインするよう求めました。11131 台のマシン上の並列セッションは保存されたログインを共有し、その更新を調整して、1 つのプロセスだけが一度にトークンを更新するようにします。いずれかのセッションで再度サインインした後に他のセッションがどう動作するかについては、[ログインしていない](/docs/ja/errors#not-logged-in) を参照してください。

1114 

1115v2.1.211 より前では、マシンをスリープから起動すると、2 つのセッションが同じトークンで更新される可能性があり、これは保存されたログインを取り消し、すべてのオープンセッションに一度にログインするよう求めました。

1102 1116 

1103macOS では、Claude Code は認証情報をログイン Keychain に保存します。Keychain が書き込みを拒否する場合(SSH セッションでロックされている場合、またはパスワードがアカウントパスワードと同期していない場合など)、Claude Code は代わりにログインをプレーンテキスト `~/.claude/.credentials.json` ファイルに保存します。Keychain が再び書き込み可能になるまで、API キーを作成する Console ログインは失敗します。1117macOS では、Claude Code は認証情報をログイン Keychain に保存します。Keychain が書き込みを拒否する場合(SSH セッションでロックされている場合、またはパスワードがアカウントパスワードと同期していない場合など)、Claude Code は代わりにログインをプレーンテキスト `~/.claude/.credentials.json` ファイルに保存します。Keychain が再び書き込み可能になるまで、API キーを作成する Console ログインは失敗します。

1104 1118 

Details

803. 大規模ファイルの作業を [subagent](/docs/ja/sub-agents) に移動して、別のコンテキストウィンドウで実行されるようにします803. 大規模ファイルの作業を [subagent](/docs/ja/sub-agents) に移動して、別のコンテキストウィンドウで実行されるようにします

814. 以前のカンバセーションがもう必要ない場合は `/clear` を実行します814. 以前のカンバセーションがもう必要ない場合は `/clear` を実行します

82 82 

83`/clear` の後にエラーが再発する場合は、[`/context`](/docs/ja/debug-your-config) を実行し、`Messages` 行とその上の行を比較します:

84 

85* **`Messages` が最大の行である場合**:新しい会話内のファイルまたはツール出力がウィンドウを再び満杯にしているため、手順 1〜3 をもう一度実行します

86* **他の行の合計のほうが大きい場合**:セッション開始時に読み込まれるものによって作業の余地がほとんど残っていないため、[起動時に読み込まれるものを削減します](/docs/ja/errors#prompt-is-too-long)

87 

83<h3 id="command-hangs-or-freezes">88<h3 id="command-hangs-or-freezes">

84 コマンドがハングまたはフリーズする89 コマンドがハングまたはフリーズする

85</h3>90</h3>

ultrareview.md +5 −5

Details

153 実行中のレビューを追跡する153 実行中のレビューを追跡する

154</h2>154</h2>

155 155 

156レビューは通常 5 ~ 10 分かかります。レビューはバックグラウンドタスクとして実行されるため、セッションで作業を続けたり、他のコマンドを開始したり、ターミナルを完全に閉じたりできます。[プルリクエストに検出結果を投稿](#post-findings-to-the-pull-request)することを選択した場合は、レビューが完了するまでセッションを開いたままにしてください。セッションが先に終了した場合、Claude Code は何も投稿しません。156レビューは通常 5 ~ 10 分かかります。レビューはバックグラウンドタスクとして実行されるため、セッションで作業を続けたり、他のコマンドを開始したりできます。[プルリクエストに検出結果を投稿](#post-findings-to-the-pull-request)することを選択した場合は、レビューが完了するまでセッションを開いたままにしてください。セッションが先に終了した場合、Claude Code は何も投稿しません。

157 157 

158`/tasks` を使用して、実行中および完了したレビューを表示し、レビューの詳細ビューを開くか、進行中のレビューを停止します。レビューを停止すると、Claude Code はクラウドセッションをアーカイブし、部分的な検出結果は返されません。158`/tasks` を使用して、実行中および完了したレビューを表示し、レビューの詳細ビューを開くか、進行中のレビューを停止します。レビューを停止すると、Claude Code はクラウドセッションをアーカイブし、部分的な検出結果は返されません。

159 159 


181 181 

182サブコマンドを実行すると、リポジトリ全体フォールバックと課金および利用規約プロンプトに同意したことになるため、入力を待たずに実行が開始されます。自分で実行することが同意としてカウントされます。Claude がたとえば Bash ツールを通じてサブコマンドを代わりに実行する場合、Claude Code はリポジトリ全体レビューを拒否します。182サブコマンドを実行すると、リポジトリ全体フォールバックと課金および利用規約プロンプトに同意したことになるため、入力を待たずに実行が開始されます。自分で実行することが同意としてカウントされます。Claude がたとえば Bash ツールを通じてサブコマンドを代わりに実行する場合、Claude Code はリポジトリ全体レビューを拒否します。

183 183 

184Claude Code v2.1.218 以降では、非対話的セッション(たとえば `claude -p '/code-review ultra'`)で `/code-review ultra` を実行してクラウドレビューを開始することもできます。Claude Code はレビューを起動し、`claude ultrareview` とは異なり、検出結果を待たずに追跡リンクを出力します。`claude ultrareview` は検出結果が到着するまでブロックします。レビューが使用クレジットを課金する場合、Claude Code は起動前に停止し、`claude ultrareview` を指します。これは課金確認に対話的セッションが必要なためです。v2.1.218 より前では、非対話的セッションの `/code-review ultra` はローカルレビューを実行していました。184`claude -p '/code-review ultra'` では検出結果を取得できないため、スクリプトでは `claude ultrareview` を使用してください。`-p` の実行はクラウドレビューを起動し、その完了を待たずに終了します。レビューで使用クレジットが課金される場合、`-p` の実行はレビューを起動せずに停止します。v2.1.218 より前では、非対話的セッションの `/code-review ultra` はローカルレビューを実行していました。

185 185 

186進捗メッセージとライブセッション URL は stderr に出力されるため、stdout は解析可能なままです。これらのフラグを使用して、出力、タイムアウト、および検出結果を投稿するかどうかを制御します。186`claude ultrareview` は進捗メッセージを stderr に出力するため、stdout は解析可能なままです。これらのフラグを使用して、出力、タイムアウト、および検出結果を投稿するかどうかを制御します。

187 187 

188| フラグ | 説明 |188| フラグ | 説明 |

189| - | - |189| - | - |


200* **1**:レビューの起動に失敗したか、完了前に停止されたか、クラウドセッションがエラーになったか、またはタイムアウトが経過しました200* **1**:レビューの起動に失敗したか、完了前に停止されたか、クラウドセッションがエラーになったか、またはタイムアウトが経過しました

201* **130**:Ctrl-C でサブコマンドを中断しました201* **130**:Ctrl-C でサブコマンドを中断しました

202 202 

203サブコマンドを中断した場合、リモートレビューは実行を続けます。stderr に出力されたセッション URL に従ってブラウザで監視してください。203検出結果が届く前にサブコマンドが終了した場合、検出結果はターミナルに届きません。また、再度実行するとそのレビューを再開するのではなく、新しいレビューが開始されます。新しいレビューはそれ自体で[1 回の実行としてカウントされます](#pricing-and-free-runs)。

204 204 

205`--post` を使用する場合、サブコマンドは検出結果を出力した直後に投稿を開始し、リンクを stderr に出力します。205`--post` を使用する場合、サブコマンドは検出結果を出力した直後に投稿を開始し、リンクを stderr に出力します。

206 206 

207* 実行が失敗した場合、停止された場合、タイムアウトした場合、または中断した場合、サブコマンドは何も投稿しません。207* 実行が失敗した場合、停止された場合、またはタイムアウトした場合、サブコマンドは何も投稿しません。

208* レビューが完了しても、コメントが投稿されない場合、Claude Code は理由を stderr に出力し、検出結果は stdout に残るため、手動で投稿できます。208* レビューが完了しても、コメントが投稿されない場合、Claude Code は理由を stderr に出力し、検出結果は stdout に残るため、手動で投稿できます。

209 209 

210GitHub プルリクエストの自動レビューについては、[Code Review](/docs/ja/code-review) がリポジトリと直接統合され、CLI ステップなしでインライン PR コメントとして検出結果を投稿します。210GitHub プルリクエストの自動レビューについては、[Code Review](/docs/ja/code-review) がリポジトリと直接統合され、CLI ステップなしでインライン PR コメントとして検出結果を投稿します。

Details

75 75 

76 この接続により、セッションは任意のパブリックリポジトリをクローンできますが、プライベートリポジトリで機能するのは Claude GitHub App がインストールされている場合のみです。[Claude GitHub App をインストール](https://github.com/apps/claude/installations/new) してください。使用したいプライベートリポジトリを持つ各 GitHub アカウントまたは Organization に対してインストールします。GitHub Organization では、Organization オーナーがインストールを承認する必要がある場合があります。App をインストールすると、[Auto-fix](/docs/ja/claude-code-on-the-web#auto-fix-pull-requests) も有効になります。これにより、Claude はこれらのリポジトリの pull request の CI 失敗とレビューコメントに応答できます。76 この接続により、セッションは任意のパブリックリポジトリをクローンできますが、プライベートリポジトリで機能するのは Claude GitHub App がインストールされている場合のみです。[Claude GitHub App をインストール](https://github.com/apps/claude/installations/new) してください。使用したいプライベートリポジトリを持つ各 GitHub アカウントまたは Organization に対してインストールします。GitHub Organization では、Organization オーナーがインストールを承認する必要がある場合があります。App をインストールすると、[Auto-fix](/docs/ja/claude-code-on-the-web#auto-fix-pull-requests) も有効になります。これにより、Claude はこれらのリポジトリの pull request の CI 失敗とレビューコメントに応答できます。

77 77 

78 接続すると、Claude は、自分が所有する GitHub アカウントのうち Claude GitHub App がインストールされているものを Claude 組織にもリンクします。Team および Enterprise プランでは、管理者は [接続済み GitHub アカウントのリスト](/docs/ja/admin-setup#connected-github-accounts) でそれらのアカウントを確認できます。

79 

78 オンボーディングがこの時点で Claude GitHub App をインストールするよう促し、後で実行したい場合は、**Skip** をクリックします。80 オンボーディングがこの時点で Claude GitHub App をインストールするよう促し、後で実行したい場合は、**Skip** をクリックします。

79 </Step>81 </Step>

80 82 

worktrees.md +290 −70

Details

4 4 

5# worktree を使用して並列セッションを実行する5# worktree を使用して並列セッションを実行する

6 6 

7> 並列 Claude Code セッションを個別の git worktree に分離して、変更が衝突しないようにします。`--worktree` フラグ、subagent の分離、`.worktreeinclude`、クリーンアップ、および非 git VCS フックについて説明します。7> 並列 Claude Code セッションを個別の git worktree に分離して、変更が衝突しないようにします。`--worktree` フラグ、サブエージェントの分離、`.worktreeinclude`、クリーンアップ、および非 git VCS フックについて説明します。

8 8 

9[git worktree](https://git-scm.com/docs/git-worktree) は、独自のファイルとブランチを持つ別の作業ディレクトリであり、メインのチェックアウトと同じリポジトリ履歴とリモートを共有します。各 Claude Code セッションを独自の worktree で実行すると、1 つのセッションでの編集は別のセッションのファイルに触れることがないため、Claude が 1 つのターミナルで機能を構築しながら、2 番目のターミナルでバグを修正できます。9[git worktree](https://git-scm.com/docs/git-worktree) は、独自のファイルとブランチを持つ別の作業ディレクトリであり、メインのチェックアウトと同じリポジトリ履歴とリモートを共有します。各 Claude Code セッションを独自の worktree で実行すると、1 つのセッションでの編集が別のセッションのファイルに触れることはないため、1 つのセッションで機能を構築しながら、2 つ目のセッションでバグを修正できます。

10 10 

11このページでは、CLI での worktree の分離について説明します。以下のすべての内容は git リポジトリを想定しています。その他のバージョン管理システムについては、[非 git バージョン管理](#non-git-version-control) を参照してください。[デスクトップアプリ](/docs/ja/desktop#work-in-parallel-with-sessions) は、新しいセッションごとに自動的に worktree を作成します。11<Note>

12 worktree には git リポジトリが必要です。その他のバージョン管理システムについては、[git のロジックを置き換えるフックを設定](#non-git-version-control)してください。[デスクトップアプリ](/docs/ja/desktop#work-in-parallel-with-sessions)では、セッションの開始時に **worktree** オプションを選択すると、そのセッション専用の worktree が作成されます。

13</Note>

12 14 

13Worktree は Claude を並列で実行するいくつかの方法の 1 つです。これらは、ファイル編集を分離しますが、[subagent](/docs/ja/sub-agents) と [agent team](/docs/ja/agent-teams) は作業自体を調整します。アプローチを比較するには [Claude を並列で実行する](/docs/ja/agents) を参照するか、worktree と subagent を一緒に使用するには [worktree で subagent を分離する](#isolate-subagents-with-worktrees) にスキップしてください。15worktree は Claude を並列で実行するいくつかの方法の 1 つで、ファイル編集を分離します。[サブエージェント](/docs/ja/sub-agents)は 1 つのセッション内で作業を分割し、[セッション間メッセージング](/docs/ja/cross-session-messaging)を使用すると、Claude は worktree 内のセッション間で調査結果を受け渡せます。アプローチを比較するには [エージェントを並列で実行する](/docs/ja/agents) を参照するか、worktree とサブエージェントを一緒に使用するには [worktree でサブエージェントを分離する](#isolate-subagents-with-worktrees) に進んでください。

16 

17ほとんどのセッションで必要なのは最初の 2 つのセクションだけです。[worktree で Claude を開始](#start-claude-in-a-worktree)し、[終了時にクリーンアップ](#clean-up-worktrees)します。[セッションを再開する](#resume-a-worktree-session)、[worktree の作成方法を変更する](#customize-worktree-creation)、または[失敗をデバッグする](#troubleshooting)必要がある場合は、このページの残りの部分に戻ってください。

14 18 

15<h2 id="start-claude-in-a-worktree">19<h2 id="start-claude-in-a-worktree">

16 worktree で Claude を開始する20 worktree で Claude を開始する

17</h2>21</h2>

18 22 

19`--worktree` または `-w` を渡して、分離された worktree を作成し、その中で Claude を開始します。デフォルトでは、worktree はリポジトリルートの `.claude/worktrees/<value>/` の下に作成され、`worktree-<value>` という名前の新しいブランチ上に作成されます。23`--worktree` または `-w` に名前を付けて渡すと、分離された worktree を作成し、その中で Claude を開始します。デフォルトでは、worktree はリポジトリルートの `.claude/worktrees/<name>/` の下に、`worktree-<name>` という名前の新しいブランチ上に作成されます。

20 24 

21```bash theme={null}25```bash theme={null}

22claude --worktree feature-auth26claude --worktree feature-auth

23```27```

24 28 

25Worktree を別の場所に配置するには、[`WorktreeCreate` フック](#non-git-version-control)を設定します。別のターミナルで異なる名前を使用してコマンドを再度実行して、2 番目の分離されたセッションを開始します。29別のターミナルで異なる名前を使用してコマンドを再度実行すると、2 つ目の分離されたセッションを開始できます。名前を省略すると、Claude は `bright-running-fox` などの名前を生成します。

26 30 

27```bash theme={null}31対話実行には[ワークスペースの信頼](/docs/ja/security)が必要です。そのディレクトリでこれまで Claude を実行したことがない場合は、そこで `claude` を 1 回実行して信頼ダイアログを受け入れてください。そうしないと、`--worktree` はエラーで終了し、それを行うよう求めます。`-p` を使用した非対話実行は信頼チェックをスキップするため、`claude -p --worktree` はそれなしで進行します。

28claude --worktree bugfix-123

29```

30 32 

31名前を省略すると、Claude は `bright-running-fox` などの名前を生成します。33<Tip>

34 `.claude/worktrees/` を `.gitignore` に追加して、worktree の内容がメインのチェックアウトで追跡されていないファイルとして表示されないようにします。

35</Tip>

32 36 

33```bash theme={null}37<h3 id="set-up-the-worktree-environment">

34claude --worktree38 worktree の環境をセットアップする

39</h3>

40 

41worktree は新しいチェックアウトなので、そこで開発環境を初期化してください。Claude に依存関係のインストールを依頼するか、`.claude/worktrees/` の下の worktree ディレクトリでプロジェクトのセットアップを自分で実行します。`.env` などの gitignore されたファイルをすべての新しい worktree に自動的に持ち込むには、[`.worktreeinclude` ファイル](#copy-gitignored-files-into-worktrees)を追加します。

42 

43<h3 id="ask-claude-to-create-a-worktree">

44 Claude に worktree の作成を依頼する

45</h3>

46 

47セッション中に Claude に「worktree で作業する」と指示することもでき、Claude は [`EnterWorktree`](/docs/ja/tools-reference) ツールを使用して worktree を作成します。worktree に入ると、Claude はターゲットパスを指定して `EnterWorktree` を呼び出すことで、`.claude/worktrees/` の下の別の worktree に直接切り替えることができます。前の worktree はディスク上に変更されずに残ります。

48 

49Claude がリポジトリの `.claude/worktrees/` ディレクトリの外のパスに入る場合、Claude Code は最初に承認を求めます。この移動により、セッションの作業ディレクトリ、書き込みアクセス、および `CLAUDE.md` や設定などのプロジェクト設定がその場所に移るためです。`EnterWorktree` の[権限ルール](/docs/ja/permissions)や「今後は確認しない」の選択ではこのプロンプトは抑制されず、`bypassPermissions` モードのみがスキップします。v2.1.206 より前は、Claude は既存の任意の worktree パスに確認なしで入ることができました。

50 

51<Note>

52 **フックのパスは worktree に追従しません。** Claude が worktree に入った後も、Claude Code は[フック](/docs/ja/hooks#reference-scripts-by-path)内の `${CLAUDE_PROJECT_DIR}` を元の場所のままにし、worktree のパスは別の方法でフックに渡します。

53 

54 * **`${CLAUDE_PROJECT_DIR}` は変わらない**: セッションが開始されたプロジェクトルートを引き続き指すため、`${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` などのフックコマンドは引き続きメインチェックアウト内のスクリプトを実行します。

55 * **`cwd` は Claude に追従する**: フックの[入力 JSON](/docs/ja/hooks#common-input-fields) の `cwd` フィールドは worktree のルートであり、Claude が `cd` を実行すると再び移動します。フックが worktree のパスを必要とする場合はこれを読み取ります。

56</Note>

57 

58<h2 id="clean-up-worktrees">

59 worktree をクリーンアップする

60</h2>

61 

62対話的な worktree セッションを終了すると、Claude は削除によって失われる作業がないか worktree を確認します。対象は、変更されたファイルや追跡されていないファイル、チェックアウトされたサブモジュール内のコミットされていない作業、および新しいコミットです。これらのルールは、Claude が git で作成した worktree に適用されます。[WorktreeCreate フック](/docs/ja/hooks#worktreecreate)が作成した worktree については、代わりに [WorktreeRemove](/docs/ja/hooks#worktreeremove) を参照してください。

63 

64* **worktree がクリーンな場合**: 名前のないセッションでは、Claude は worktree とそのブランチを自動的に削除します。[名前付き](/docs/ja/sessions#name-your-sessions)セッションでは最初にプロンプトが表示されるため、後で使用するために worktree を保持できます

65* **worktree に作業が含まれている場合**: Claude は worktree を保持するか削除するかを求めるプロンプトを表示します。保持するとディレクトリとブランチが保存されます。後で戻るには、Claude Code が終了時に出力する `claude --worktree <name> --resume` コマンドを実行します。削除すると worktree ディレクトリとそのブランチが、その中のすべての作業とともに削除されます

66* **worktree の状態を検証できない場合**: Claude Code が worktree の変更をカウントできない、またはサブモジュールのチェックアウトを検査できない場合、worktree を自動的に削除するのではなくプロンプトを表示します。プロンプトには確認できなかった内容が示されます

67 

68`-p` を使用した非対話実行には終了プロンプトがないため、Claude はその worktree をクリーンアップしません。また Claude Code は、作成時に各 worktree に設定したロックを、後続のセッションの[古いロックのスイープ](#clean-up-subagent-and-background-session-worktrees)が解放するまでそのまま残します。削除するには `git worktree remove` を実行します。worktree がロックされているために git が拒否した場合は、先にその worktree に対して `git worktree unlock` を実行してください。

69 

70Windows では、worktree を削除しても worktree 外のファイルは削除されません。worktree 内のフォルダーが NTFS ジャンクションやディレクトリのシンボリックリンクなど、別の場所へのリンクである場合、Claude Code はリンクのみを削除し、リンク先のフォルダーは保持します。v2.1.205 より前は、サブディレクトリにネストされたリンクを含む worktree を削除すると、リンク先のフォルダーが削除される可能性がありました。

71 

72<h2 id="resume-a-worktree-session">

73 worktree セッションを再開する

74</h2>

75 

76worktree 内で[終了](#clean-up-worktrees)せずに終わったセッションを再開すると、Claude Code はセッションをその worktree に戻します。これは対話的な再開、`-p` を使用した[非対話モード](/docs/ja/headless)での `--continue` と `--resume`、および Agent SDK に当てはまります。`--continue` は、起動したディレクトリの下に記録されている最新のセッションを選択します。worktree 内に戻った後も、Claude は [`ExitWorktree`](/docs/ja/tools-reference) ツールで worktree を終了できます。

77 

78セッションを worktree に戻す前に、Claude Code は worktree がメインのチェックアウトとは別のチェックアウトのままであることを検証し、チェックに失敗した worktree への再入を拒否します。git worktree の場合、チェックはその git メタデータを読み取ります。[`WorktreeCreate` フック](#non-git-version-control)が作成したものなど、git メタデータを持たない worktree はチェックに合格する場合があります。Claude Code が引き続き拒否するケースは、その回復方法とともに [Claude Code が worktree の使用を拒否する](#claude-code-refuses-to-use-a-worktree) に記載されています。メッセージとそれぞれからの回復方法については、[セッションが worktree の外で再開される](#the-session-resumes-outside-its-worktree) を参照してください。

79 

80起動する場所と再開の方法によって、Claude Code が再入する対象が変わります。

81 

82* **起動ディレクトリ**: メインのチェックアウトまたはリポジトリの別のディレクトリから `--resume` で再開します。Claude Code は、`.claude/worktrees/` の下に git で作成した worktree には、その内部から起動した場合でも再入します。その他の worktree の内部から起動した場合、Claude Code はそこからその worktree が安全であると確認できる場合にのみ再入します。独自のリポジトリである worktree、git メタデータを持たない worktree、または `git worktree add` で作成した worktree のサブディレクトリからの起動は拒否されるため、これらはメインのチェックアウトから起動してください。

83* **`--fork-session`**: フォークされたセッションは Claude を起動したディレクトリで開始され、Claude Code は元のセッションの worktree に手を加えません。

84* **削除された worktree**: worktree ディレクトリが存在しなくなった場合、Claude Code は Claude を起動したディレクトリでセッションを再開します。worktree がなくなったことを通知し、セッションの worktree バインディングをクリアします。

85 

86<Note>

87 v2.1.212 より前は、非対話的な再開は開始ディレクトリにとどまり、`ExitWorktree` は終了するアクティブな worktree セッションがないと報告していました。

88</Note>

89 

90Claude Code が git で作成した worktree に Claude が入るか出ると、トランスクリプトもそれに追従します。Claude Code は [`/cd`](/docs/ja/commands) と同じ方法で、セッションの新しい作業ディレクトリの下にセッションを記録するため、`/desktop` と `--resume` はそこでセッションを見つけます。終了すると同じ方法で元に戻ります。[`WorktreeCreate` フック](#non-git-version-control)によって作成された worktree は、トランスクリプトを起動ディレクトリに保持します。Claude Code v2.1.198 以降が必要です。

91 

92<h2 id="how-claude-code-enforces-isolation">

93 Claude Code が分離を強制する仕組み

94</h2>

95 

96セッションが worktree 内で分離されている間、Claude Code は以下のチェックで定義されるツール呼び出しをブロックします。セッションを `--worktree` で開始した場合も、Claude が `EnterWorktree` で worktree に入った場合も、worktree セッションを再開した場合も、同じルールが適用されます。

97 

98分離されたセッションから Claude が生成するすべてのサブエージェントにも同じ強制が適用されます。これはセッションが対話的な場合でも、[バックグラウンド](/docs/ja/agent-view#how-file-edits-are-isolated)で実行される場合でも適用されます。[独自の worktree で実行されるサブエージェント](#isolate-subagents-with-worktrees)にも同じチェックが適用されます。そのバージョン履歴は [サブエージェントファイルの書き込み](/docs/ja/sub-agents#write-subagent-files) にあります。

99 

100Claude Code は 4 つのチェックを適用します。

101 

102* **ファイル編集**: Claude Code は、メインチェックアウト内のパスを対象とする `Edit`、`Write`、または `NotebookEdit` をブロックします。

103* **コマンドの作業ディレクトリ**: Claude Code は、作業ディレクトリがメインチェックアウトに解決される Bash、PowerShell、または Monitor コマンド、あるいは作業ディレクトリがメインチェックアウトの外にとどまることを検証できないコマンドをブロックします。

104* **Git のリダイレクト**: Claude Code は、git をメインチェックアウトにリダイレクトする Bash または Monitor コマンドをブロックします。リダイレクトは、`git -C`、`--git-dir`、`GIT_DIR` または `GIT_WORK_TREE` 変数、あるいは git を実行する前のメインチェックアウトへの `cd` によって発生する可能性があります。

105* **コマンドの形式**: Claude Code は、コマンドが実行する git が worktree 内にとどまることをコマンドテキストから検証できない場合、Bash または Monitor コマンドをブロックします。これは、たとえばコマンド名が実行時に計算される場合、構文を解析できない場合、または `${!name}` や `${ command; }` などの展開がテキストに明記されていないコマンドを実行する可能性がある場合に発生します。Claude Code は、拒否されたコマンドを単純な個別のコマンドに分割するなど、書き直す方法を Claude に伝えます。このチェックをオフにすることはできません。

106 

107チェックは、Claude Code を起動したリポジトリに適用されます。リンクされた worktree のリンク元であるメインチェックアウトも対象になります。PowerShell コマンドについては、Claude Code は作業ディレクトリのチェックのみを適用します。

108 

109Claude は各拒否を、worktree の名前と続行方法を示すツールエラーとして受け取ります。拒否されたコマンドについては、[拒否メッセージの意味とその解消方法](/docs/ja/errors#command-blocked-by-the-worktree-isolation-checks) を参照してください。

110 

111<h2 id="isolate-subagents-with-worktrees">

112 worktree でサブエージェントを分離する

113</h2>

114 

115サブエージェントは独自の worktree で実行できるため、並列編集が競合しません。Claude に「エージェントに worktree を使用する」と指示するか、[カスタムサブエージェント](/docs/ja/sub-agents#supported-frontmatter-fields)のフロントマターに `isolation: worktree` を追加して分離を永続化します。

116 

117`.claude/agents/` 内のこのサブエージェントは、常に独自の worktree で実行されます。

118 

119```markdown theme={null}

120---

121name: refactorer

122description: Applies mechanical refactors across many files

123isolation: worktree

124---

125 

126Apply the requested refactor across every affected file, then run the tests

127and report the results.

35```128```

36 129 

37セッション中に Claude に「worktree で作業する」と指示することもでき、[`EnterWorktree`](/docs/ja/tools-reference)ツールを使用して作成します。Worktree に入ると、Claude は `.claude/worktrees/` の下の別の worktree に `EnterWorktree` をターゲットパスで呼び出すことで直接切り替えることができます。前の worktree はディスク上に変更されずに残ります。130各サブエージェントは一時的な worktree を取得し、サブエージェントが変更なしで完了すると Claude Code がそれを自動的に削除します。変更を含む worktree は、[以下の定期スイープ](#clean-up-subagent-and-background-session-worktrees)が作業を失わずに削除できるようになるまでディスク上に残ります。

38 131 

39リポジトリの `.claude/worktrees/` ディレクトリの外のパスに入ると、セッションの作業ディレクトリ、書き込みアクセス、および `CLAUDE.md` や設定などのプロジェクト設定をその場所に移動するため、最初に承認を求めます。`EnterWorktree` [権限ルール](/docs/ja/permissions)または「今後は聞かない」を選択しても、このプロンプトは表示されません。`bypassPermissions` モードのみがスキップします。v2.1.206 より前は、Claude は既存の worktree パスに承認なく入ることができました。132サブエージェントの worktree は `--worktree` と同じ[ベースブランチ](#choose-the-base-branch)を使用するため、`worktree.baseRef` が `"head"` に設定されていない限り、リポジトリのデフォルトブランチからブランチします。

40 133 

41v2.1.198 以降、worktree に入るか出るかは、セッショントランスクリプトをそのディレクトリのプロジェクトストレージに再配置します。これは [`/cd`](/docs/ja/commands)と同じ方法で行われるため、`/desktop` と `--resume` はその後そこでセッションを見つけます。[`WorktreeCreate` フック](#non-git-version-control)によって作成された Worktree は除外され、トランスクリプトを起動ディレクトリに保持します。134独自の worktree で実行されるサブエージェントは、[起動時に読み込む](/docs/ja/sub-agents#what-loads-at-startup)指示ファイルを、その worktree からではなくメインの会話から取得します。その worktree が `.claude/worktrees/` 配下のデフォルトの場所にある場合、サブエージェントは worktree 内のファイルを読み取る際にも、worktree のルートにある `CLAUDE.md` ファイルや `.claude/rules/` ディレクトリを読み込みません。これらが worktree のブランチ上で異なっている場合でも同様です。

42 135 

43Worktree は[サンドボックス](/docs/ja/sandboxing#filesystem-isolation)が有効な状態で動作します。サンドボックスはメインリポジトリの共有 `.git` ディレクトリへの書き込みを許可するため、`git commit` などのコマンドはリンクされた worktree 内からリファレンスとインデックスを更新できます。136<h3 id="clean-up-subagent-and-background-session-worktrees">

137 サブエージェントとバックグラウンドセッションの worktree をクリーンアップする

138</h3>

44 139 

45初めてディレクトリで `--worktree` をインタラクティブに使用する前に、そのディレクトリで `claude` を 1 回実行してワークスペース信頼ダイアログを受け入れてください。信頼がまだ受け入れられていない場合、`--worktree` はエラーで終了し、最初にディレクトリで `claude` を実行するよう求めるプロンプトが表示されます。`-p` を使用した非インタラクティブ実行は[信頼チェック](/docs/ja/security)をスキップするため、`claude -p --worktree` はそれなしで進行します。140Claude Code は定期的なスイープを実行し、Claude がサブエージェントと[バックグラウンドセッション](/docs/ja/agent-view#how-file-edits-are-isolated)用に作成した worktree のうち、[`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) 設定より古くなったものを、[保持スイープのルール](/docs/ja/claude-directory#cleaned-up-automatically)に従って削除します。

46 141 

47Claude Code が起動時に worktree ディレクトリに入ることができない場合、たとえば [`WorktreeCreate` フック](/docs/ja/hooks#worktreecreate)が作成したディレクトリ以外のものを出力した場合、またはセットアップ後にディレクトリが削除された場合、Claude Code はパスを名前として付けたエラーを出力し、コード 1 で終了します。v2.1.205 より前は、これはセッションをクラッシュさせ、`-p` を使用すると約 30 秒間スタールしてからコード 0 で終了していました。142`--worktree` セッションを[バックグラウンドに送る](/docs/ja/agent-view#send-the-session-to-the-background)と、その worktree はスイープで削除可能なバックグラウンドセッションの worktree になります。スイープは次の場合に worktree をそのまま残します。

48 143 

49メインチェックアウトから[プロジェクトスコープ](/docs/ja/plugins-reference#plugin-installation-scopes)でインストールされたプラグインは、同じリポジトリの worktree でも読み込まれるため、worktree ごとに再インストールする必要はありません。これは `--worktree` で worktree を作成する場合でも、`git worktree add` で作成する場合でも適用されます。Claude Code v2.1.200 以降が必要です。144* worktree にまだ作業が含まれている: 変更されたファイルや追跡されていないファイル、またはプッシュされていないコミット。

145* worktree 内のチェックアウトされたサブモジュールに変更されたファイルや追跡されていないファイルがある、または Claude Code が worktree のサブモジュールを検査できない。このチェックには Claude Code v2.1.274 以降が必要です。

146* [worktree の作成もブロックする 4 つのケース](#git-lfs-content-is-missing-from-a-worktree-claude-code-created)のいずれかに該当する: Claude Code がリポジトリ設定で定義されているフィルタードライバーを特定できない、またはそこにオフにできない設定項目が見つかった。

147* worktree が、バックグラウンドに送っていない `--worktree` セッションに属している(経過時間に関係なく)。

148* `git worktree add` で worktree を自分で作成した(その後その中で `--worktree <name>` セッションを実行し、そのセッションをバックグラウンドに送った場合でも)。

50 149 

51<Tip>150Claude Code は git で作成するすべての worktree の git メタデータにマーカーを書き込み、スイープはマーカーのない worktree([`WorktreeCreate` フック](#non-git-version-control)が作成した worktree を含む)を保持します。

52 `.claude/worktrees/` を `.gitignore` に追加して、worktree の内容がメインのチェックアウトで追跡されていないファイルとして表示されないようにします。151 

53</Tip>152エージェントの実行中、Claude Code は同時実行のクリーンアップで削除されないように、その worktree に `git worktree lock` をかけ、エージェントが完了するとロックを解放します。Claude Code は、バックグラウンドに送られたセッション用に作成した worktree にも、セッションの実行中に同じロックをかけるため、スイープはその worktree をそのまま残し、`git worktree remove` は削除を拒否します。

153 

154スイープは、プロセスが終了したセッションのために Claude Code が設定したロックも解放するため、強制終了されたバックグラウンドセッションが worktree を永続的にロックしたままにすることはありません。スイープは、`git worktree lock` で自分で設定したロックを解放することはありません。v2.1.210 より前は、強制終了されたセッションが残したロックは、`git worktree unlock` を実行するまで残っていました。

155 

156スイープが保持する worktree をクリーンアップするには、`git worktree remove` を実行し、worktree にコミットされていない変更または追跡されていないファイルがある場合は `--force` を追加します。worktree がロックされているために git が拒否した場合は、先にその worktree に対して `git worktree unlock` を実行してください。

157 

158<h2 id="customize-worktree-creation">

159 worktree の作成をカスタマイズする

160</h2>

161 

162Claude Code の worktree 作成のデフォルトは、ほとんどのセッションに対応しています。worktree を `.claude/worktrees/` の下に作成し、リポジトリのデフォルトブランチからブランチし、追跡されているファイルのみをチェックアウトします。このセクションのオプションでこれらのデフォルトを変更できます。

54 163 

55<h3 id="choose-the-base-branch">164<h3 id="choose-the-base-branch">

56 ベースブランチを選択する165 ベースブランチを選択する

57</h3>166</h3>

58 167 

59Worktree はリポジトリのデフォルトブランチ `origin/HEAD` からブランチするため、リモートと一致するクリーンなツリーから開始します。過去 24 時間でリポジトリをフェッチしたことがない場合、Claude Code は `origin/HEAD` をデフォルトブランチのフェッチで更新し、5 秒でキャップされ、フェッチが失敗した場合はローカルキャッシュされたリファレンスを使用します。リモートが設定されていない場合、または `origin/HEAD` がローカルキャッシュされておらずフェッチできない場合、worktree は現在のローカル `HEAD` にフォールバックします。168新しい worktree はリポジトリのデフォルトブランチからブランチするため、ほとんどのセッションではこの設定は必要ありません。代わりに現在の作業からブランチするには、[設定](/docs/ja/settings-reference#worktree)で `worktree.baseRef` を設定します。この設定は 2 つの値を受け入れます。

169 

170* `"fresh"`(デフォルト): リモート上のリポジトリのデフォルトブランチ(通常は `main`)からブランチするため、worktree はリモートと一致するクリーンなツリーから開始します。

171* `"head"`: 現在のローカル `HEAD` からブランチするため、worktree はプッシュされていないコミットと機能ブランチの状態を保持します。進行中の作業で動作する必要があるサブエージェントを分離する場合に使用します。worktree 内では、`"head"` はメインチェックアウトの `HEAD` ではなく、その worktree の `HEAD` に解決されます。

172 

173`worktree.baseRef` をブランチ名に設定することはできません。特定の既存ブランチから worktree を開始するには、[git で直接作成](#manage-worktrees-manually)してください。

60 174 

61更新には Claude Code v2.1.208 以降が必要です。それより前は、新しい worktree は既にローカルキャッシュされていた `origin/HEAD` を使用していました。175`"fresh"` ベースの場合、Claude Code は `origin/HEAD` を最新の状態に保ちます。過去 24 時間にリポジトリがフェッチされていない場合、デフォルトブランチを 5 秒を上限としてフェッチし、フェッチが失敗した場合はローカルにキャッシュされたリファレンスを使用します。リモートが設定されていない場合、または `origin/HEAD` がローカルにキャッシュされておらずフェッチできない場合、worktree は現在のローカル `HEAD` にフォールバックします。v2.1.208 より前は、fresh の worktree はローカルに既にキャッシュされていた `origin/HEAD` をそのまま使用していました。

62 176 

63代わりにローカル `HEAD` から常にブランチするには、[設定](/docs/ja/settings#worktree-settings)で `worktree.baseRef` を `"head"` に設定します。`baseRef` を `"head"` に設定すると、新しい worktree はプッシュされていないコミットと機能ブランチの状態を保持します。これは、進行中の作業で動作する必要がある subagent を分離する場合に便利です。セッションがリンクされた worktree 内で実行されている場合、`"head"` はメインチェックアウトの `HEAD` ではなく、その worktree の `HEAD` に解決されます。この設定は `"fresh"` または `"head"` のみを受け入れ、任意の git ref は受け入れません。177この例では、すべての新しい worktree が現在の作業からブランチするようにします。

64 178 

65```json theme={null}179```json theme={null}

66{180{


70}184}

71```185```

72 186 

73特定のプルリクエストからブランチするには、`#` が付いた PR 番号、または完全な GitHub プルリクエスト URL を渡します。Claude Code は `origin` から `pull/<number>/head` をフェッチし、`.claude/worktrees/pr-<number>` に worktree を作成します。187<h3 id="branch-from-a-pull-request">

188 プルリクエストからブランチする

189</h3>

190 

191特定のプルリクエストまたはマージリクエストからブランチするには、`#` を前に付けた番号、GitHub プルリクエスト URL、または `https://gitlab.com/group/repo/-/merge_requests/123` などの GitLab マージリクエスト URL を `--worktree` に渡します。Claude Code はその変更の head コミットを `origin` からフェッチし、`.claude/worktrees/pr-<number>` に worktree を作成します。シェルが `#` をコメントの開始として扱わないように、引数を引用符で囲んでください。

74 192 

75```bash theme={null}193```bash theme={null}

76claude --worktree "#1234"194claude --worktree "#1234"

77```195```

78 196 

79Worktree の作成方法を完全に制御するには、[`WorktreeCreate` フック](/docs/ja/hooks#worktreecreate)を設定します。これはデフォルトの `git worktree` ロジックを完全に置き換えます。197Claude Code は URL から番号のみを読み取ります。常にリポジトリの `origin` リモートからフェッチし、`origin` のホストに応じてフェッチパスを選択します。

80 

81<h3 id="reuse-a-worktree-name">

82 Worktree 名を再利用する

83</h3>

84 

85既に存在するディレクトリを持つ worktree 名を再利用すると、その worktree が再開されます。

86 

87再開された worktree は、以下のすべてが当てはまる場合、古いチップで再開する代わりに[現在のベース](#choose-the-base-branch)にリセットされます。

88 198 

89* コミットされていない変更または追跡されていないファイルがない。199* **github.com**: `pull/<number>/head` をフェッチします

90* Claude Code が作成したブランチ上にまだある。200* **gitlab.com**: `merge-requests/<number>/head` をフェッチします

91* コミットしたことがないか、プルリクエストがマージされ、リモートブランチが削除された。201* **GitHub Enterprise、セルフマネージド GitLab、またはその他のホスト**: まず `pull/<number>/head` を試し、次に `merge-requests/<number>/head` を試します

92 202 

93v2.1.208 より前は、再利用された名前は常に古い worktree を古いチップで再開していました。203v2.1.233 より前は、Claude Code は `--worktree` に対して `#<number>` と GitHub 形式のプルリクエスト URL のみを受け入れ、常に `pull/<number>/head` をフェッチしていました。

94 204 

95<h2 id="copy-gitignored-files-into-worktrees">205<h3 id="copy-gitignored-files-into-worktrees">

96 gitignore されたファイルを worktree にコピーする206 gitignore されたファイルを worktree にコピーする

97</h2>207</h3>

98 208 

99Worktree は新しいチェックアウトなので、メインリポジトリの `.env` や `.env.local` などの追跡されていないファイルは存在しません。Claude が worktree を作成するときに自動的にコピーするには、プロジェクトルートに `.worktreeinclude` ファイルを追加します。209worktree は新しいチェックアウトなので、メインリポジトリの `.env` や `.env.local` などの追跡されていないファイルは存在しません。Claude が worktree を作成するときに自動的にコピーするには、プロジェクトルートに `.worktreeinclude` ファイルを追加します。

100 210 

101このファイルは `.gitignore` 構文を使用します。パターンに一致し、かつ gitignore されているファイルのみがコピーされるため、追跡されているファイルは決して複製されません。211このファイルは `.gitignore` 構文を使用します。パターンに一致し、かつ gitignore されているファイルのみがコピーされるため、追跡されているファイルは決して複製されません。

102 212 

213`**/` で始まるパターンを記述し、対象のファイルがディレクトリ全体として gitignore されているディレクトリ内にある場合、Claude Code は、そのディレクトリ自体がパターンに一致する場合、または `**/` の後の最初の名前がディレクトリのパスに含まれる名前のいずれかである場合にのみ、それらをコピーします。たとえば `**/.claude/skills/*.md` と記述した場合、その最初の名前は `.claude` なので、Claude Code は無視された `.claude/` ディレクトリから一致するファイルをコピーします。`**/` パターンが届かない無視されたディレクトリからファイルをコピーするには、代わりにパターン内でディレクトリ名を指定します。`**/config.json` ではなく `vendor/**/config.json` と記述してください。v2.1.239 より前は、Claude Code は `**/` パターンについて、ディレクトリ自体がパターンに一致する場合にのみ、全体が無視されたディレクトリからファイルをコピーしていました。

214 

103この `.worktreeinclude` は 2 つの env ファイルと 1 つのシークレット設定を各新しい worktree にコピーします。215この `.worktreeinclude` は 2 つの env ファイルと 1 つのシークレット設定を各新しい worktree にコピーします。

104 216 

105```text .worktreeinclude theme={null}217```text .worktreeinclude theme={null}


108config/secrets.json220config/secrets.json

109```221```

110 222 

111これは `--worktree` で作成された worktree、[subagent worktree](#isolate-subagents-with-worktrees)、および[デスクトップアプリ](/docs/ja/desktop#work-in-parallel-with-sessions) の並列セッションに適用されます。223これは Claude Code が git で作成するすべての worktree に適用されます。対象は、`--worktree` の worktree、[サブエージェントの worktree](#isolate-subagents-with-worktrees)、および[デスクトップアプリ](/docs/ja/desktop#work-in-parallel-with-sessions)の並列セッションです。[`WorktreeCreate` フック](#non-git-version-control)を使用する場合は、フックスクリプト内でファイルをコピーしてください。

112 224 

113<h2 id="isolate-subagents-with-worktrees">225<h3 id="reuse-a-worktree-name">

114 worktree で subagent を分離する226 worktree 名を再利用する

115</h2>227</h3>

116 228 

117Subagent は独自の worktree で実行できるため、並列編集は競合しません。Claude に「エージェント用に worktree を使用する」と指示するか、[カスタム subagent](/docs/ja/sub-agents#supported-frontmatter-fields) にフロントマターに `isolation: worktree` を追加して永続的に設定します。各 subagent は一時的な worktree を取得し、subagent が変更なしで完了すると自動的に削除されます。229既にディレクトリが存在する名前を `--worktree` に渡すと、新しい worktree を作成する代わりに、その既存の worktree が開きます。

118 230 

119Subagent worktree は `--worktree` と同じ[ベースブランチ](#choose-the-base-branch)を使用するため、`worktree.baseRef` が `"head"` に設定されていない限り、リポジトリのデフォルトブランチから分岐します。231デフォルトの `"fresh"` [ベース](#choose-the-base-branch)では、以下のすべてが当てはまる場合、再度開かれた worktree は古いチップで続行する代わりにリポジトリのデフォルトブランチにリセットされます。

120 232 

121<h2 id="clean-up-worktrees">233* コミットされていない変更または追跡されていないファイルがない。

122 Worktree をクリーンアップする234* Claude Code が作成したブランチ上にまだある。

123</h2>235* 独自のコミットがない、またはプルリクエストやマージリクエストがマージされ、リモートブランチが削除されている。

236 

237Claude Code はマージされたケースを git の状態のみから検出します。具体的には、worktree がプッシュしたリモートブランチがもう存在せず、worktree 内のすべてのコミットが既にデフォルトブランチ上にある場合です。

238 

239その他のすべての場合、Claude Code は worktree を古いチップで再度開きます。

124 240 

125Worktree セッションを終了すると、クリーンアップは変更を加えたかどうかによって異なります。241* worktree がいずれかの条件を満たさない。

242* Claude Code が worktree の状態を検証できない。

243* `worktree.baseRef` が `"head"` である。

244* 名前がプルリクエストまたはマージリクエストの参照である。

126 245 

127* **コミットされていない変更なし、追跡されていないファイルなし、新しいコミットなし**: worktree とそのブランチは自動的に削除されます。セッションに[名前](/docs/ja/sessions#name-your-sessions)がある場合、Claude は代わりにプロンプトを表示するため、後で使用するために worktree を保持できます246v2.1.208 より前は、名前を再利用すると、Claude Code は常に古い worktree を古いチップで再度開いていました。

128* **コミットされていない変更、追跡されていないファイル、または新しいコミットが存在する**: Claude は worktree を保持するか削除するかを求めるプロンプトを表示します。保持するとディレクトリとブランチが保存されるため、後で戻ることができます。削除すると worktree ディレクトリとそのブランチが削除され、すべてのコミットされていない変更、追跡されていないファイル、およびコミットが破棄されます

129* **非対話的な実行**: `-p` と共に `--worktree` で作成された worktree は、終了プロンプトがないため自動的にクリーンアップされません。`git worktree remove` で削除します

130 247 

131Claude が subagent および[バックグラウンドセッション](/docs/ja/agent-view#how-file-edits-are-isolated)用に作成した worktree は、[`cleanupPeriodDays`](/docs/ja/settings#available-settings)設定より古い場合、コミットされていない変更、追跡されていないファイル、およびプッシュされていないコミットがない場合、自動的に削除されます。`--worktree` で作成した worktree は、このスイープによって削除されることはありません。248<h3 id="replace-worktree-creation-with-a-hook">

249 フックで worktree の作成を置き換える

250</h3>

251 

252[`WorktreeCreate` フック](/docs/ja/hooks#worktreecreate)を設定すると、`.claude/worktrees/` 以外の場所に worktree を配置することも含め、デフォルトの `git worktree` ロジックを完全に置き換えることができます。完全な例については、[非 git バージョン管理](#non-git-version-control) を参照してください。

253 

254<h2 id="what-worktrees-share-with-the-main-checkout">

255 worktree がメインチェックアウトと共有するもの

256</h2>

132 257 

133エージェントが実行中の間、Claude は worktree に対して `git worktree lock` を実行するため、同時実行クリーンアップがそれを削除することはできません。ロックはエージェントが完了すると解放されます。スイープが保持する worktree をクリーンアップするには、`git worktree remove` を実行し、worktree にコミットされていない変更または追跡されていないファイルがある場合は `--force` を追加します。258worktree は独自のファイルとブランチを持ちますが、以下をメインチェックアウトと共有します。

134 259 

135Windows では、worktree を削除する前に、Claude Code はその内部の任意の深さにある NTFS ジャンクションまたはディレクトリシンボリックリンクをリンクエントリとして削除するため、worktree を削除してもリンクが指すファイルは削除されません。v2.1.205 より前では、Claude Code はトップレベルのリンクのみをリンクエントリとして削除していたため、サブディレクトリにネストされたジャンクションを含む worktree を削除すると、worktree 外のリンクが指すディレクトリの内容が削除される可能性がありました。260* **リポジトリの `.git` ディレクトリ**: worktree 内の git コマンドはメインリポジトリの共有 `.git` ディレクトリに書き込み、[サンドボックス化](/docs/ja/sandboxing#filesystem-isolation)はそれらの書き込みを許可するため、サンドボックスが有効な状態でも `git commit` などのコマンドは worktree 内から動作します。

261* **プラグイン**: メインチェックアウトから[プロジェクトスコープ](/docs/ja/plugins/loading#find-where-a-plugin-is-enabled)でインストールされたプラグインは、同じリポジトリの worktree でも読み込まれるため、worktree ごとに再インストールする必要はありません。Claude Code v2.1.200 以降が必要です。

262* **権限の承認**: worktree セッションで Bash コマンドに対して「はい、今後は確認しない」を選択すると、ルールはメインチェックアウトの `.claude/settings.local.json` に保存されるため、メインチェックアウトとリポジトリの他のすべての worktree に適用され、worktree の削除後も残ります。Windows や、Claude Code が[リポジトリルートを使用しない](/docs/ja/settings#where-claude-code-looks-for-each-file)その他のケースでは、ルールはその worktree に残ります。v2.1.211 より前は、worktree で付与された承認はその worktree 内に保存され、他の場所には適用されず、worktree が削除されると失われていました。[承認が保存される場所](/docs/ja/permissions#permission-system)を参照してください。

263* **追跡されていないスキル、エージェント、コマンド**: worktree のチェックアウトのルートに `.claude/skills` ディレクトリがない場合(たとえば `.claude/skills` が gitignore されている場合)、Claude Code は worktree セッションでメインチェックアウトの[プロジェクトスキル](/docs/ja/skills#where-skills-live)を読み込みます。独自の `.claude/skills` ディレクトリを持つ worktree では、そのコピーのみが読み込まれます。

264 

265 同じ読み取りの引き継ぎは `.claude/agents` と `.claude/commands` にも適用されます。スキルについては、この引き継ぎには Claude Code v2.1.277 以降が必要です。

266 

267これらはすべて、worktree を `--worktree` で作成した場合も、`git worktree add` で作成した場合も、[デスクトップアプリ](/docs/ja/desktop#work-in-parallel-with-sessions)を通じて作成した場合も適用されます。

136 268 

137<h2 id="manage-worktrees-manually">269<h2 id="manage-worktrees-manually">

138 worktree を手動で管理する270 worktree を手動で管理する

139</h2>271</h2>

140 272 

141Worktree の場所とブランチ設定を完全に制御するには、Git を直接使用して worktree を作成します。これは特定の既存ブランチをチェックアウトするか、worktree をリポジトリの外に配置する必要がある場合に便利です。273特定の既存ブランチをチェックアウトする必要がある場合や、worktree をリポジトリの外に配置する必要がある場合は、Git を直接使用して worktree を作成します。

142 274 

143新しいブランチに worktree を作成します。275新しいブランチに worktree を作成します。

144 276 


146git worktree add ../project-feature-a -b feature-a278git worktree add ../project-feature-a -b feature-a

147```279```

148 280 

149既存のブランチから worktree を作成します。281既存のブランチから worktree を作成します。`fix-issue-456` は、リポジトリに既に存在するブランチに置き換えてください。

150 282 

151```bash theme={null}283```bash theme={null}

152git worktree add ../project-bugfix bugfix-123284git worktree add ../project-bugfix fix-issue-456

153```285```

154 286 

155Worktree で Claude を開始します。287worktree で Claude を開始します。

156 288 

157```bash theme={null}289```bash theme={null}

158cd ../project-feature-a && claude290cd ../project-feature-a

291claude

159```292```

160 293 

161Worktree をリストします。294worktree を一覧表示します。

162 295 

163```bash theme={null}296```bash theme={null}

164git worktree list297git worktree list


170git worktree remove ../project-feature-a303git worktree remove ../project-feature-a

171```304```

172 305 

173完全なコマンドリファレンスについては、[Git worktree ドキュメント](https://git-scm.com/docs/git-worktree) を参照してください。各新しい worktree で開発環境を初期化することを忘れないでください。依存関係をインストールし、仮想環境をセットアップするか、プロジェクトのセットアップが必要なものを実行します。306完全なコマンドリファレンスについては、[Git worktree ドキュメント](https://git-scm.com/docs/git-worktree) を参照してください。

174 307 

175<h2 id="non-git-version-control">308<h2 id="non-git-version-control">

176 非 git バージョン管理309 非 git バージョン管理

177</h2>310</h2>

178 311 

179Worktree の分離はデフォルトで git を使用します。SVN、Perforce、Mercurial、またはその他のシステムの場合、[`WorktreeCreate` および `WorktreeRemove` フック](/docs/ja/hooks#worktreecreate) を設定して、カスタム作成およびクリーンアップロジックを提供します。フックはデフォルトの git 動作を置き換えるため、`--worktree` を使用する場合、[`.worktreeinclude`](#copy-gitignored-files-into-worktrees) は処理されません。フックスクリプト内でローカル設定ファイルをコピーしてください。312worktree の分離はデフォルトで git を使用します。SVN、Perforce、Mercurial、またはその他のシステムの場合、[`WorktreeCreate` および `WorktreeRemove` フック](/docs/ja/hooks#worktreecreate) を設定して、カスタム作成およびクリーンアップロジックを提供します。フックはデフォルトの git 動作を置き換えるため、`--worktree` を使用する場合、[`.worktreeinclude`](#copy-gitignored-files-into-worktrees) は処理されません。フックスクリプト内でローカル設定ファイルをコピーしてください。

180 313 

181この `WorktreeCreate` フックは stdin から worktree 名を読み取り、新しい SVN 作業コピーをチェックアウトし、ディレクトリパスを出力して Claude Code がセッションの作業ディレクトリとして使用できるようにします。314この `WorktreeCreate` フックは、`jq` を使用して stdin の JSON から worktree 名を読み取り、新しい SVN 作業コピーをチェックアウトし、ディレクトリパスを出力して Claude Code がセッションの作業ディレクトリとして使用できるようにします。設定を [`settings.json`](/docs/ja/settings#where-settings-live) に追加します。

182 315 

183```json theme={null}316```json theme={null}

184{317{


199 332 

200セッションが終了するときにクリーンアップするために `WorktreeRemove` フックとペアにします。入力スキーマと削除例については、[フックリファレンス](/docs/ja/hooks#worktreecreate) を参照してください。333セッションが終了するときにクリーンアップするために `WorktreeRemove` フックとペアにします。入力スキーマと削除例については、[フックリファレンス](/docs/ja/hooks#worktreecreate) を参照してください。

201 334 

335`WorktreeCreate` フックを使用すると、git リポジトリの外で [`/batch`](/docs/ja/commands#all-commands) を実行することもできます。その場合、各 `/batch` サブエージェントはプロジェクトのバージョン管理コマンドで変更を公開し、プルリクエストを開けない場合は、代わりに公開した内容を報告します。git リポジトリの外で `/batch` を実行するには、Claude Code v2.1.281 以降が必要です。

336 

337<h2 id="troubleshooting">

338 トラブルシューティング

339</h2>

340 

341Claude Code は、worktree を作成するとき、起動時に worktree に入るとき、または再開したセッションを worktree に戻すときに、以下のエラーを報告します。

342 

343<h3 id="claude-code-can’t-enter-the-worktree-at-startup">

344 Claude Code が起動時に worktree に入れない

345</h3>

346 

347Claude Code が起動時に worktree ディレクトリに入ることができない場合、パスを示すエラーを出力し、コード 1 で終了します。これは、[`WorktreeCreate` フック](/docs/ja/hooks#worktreecreate)が作成したディレクトリ以外のものを出力した場合や、セットアップ後にディレクトリが削除された場合に発生する可能性があります。

348 

349<h3 id="worktree-creation-fails-on-a-symlinked-path">

350 シンボリックリンクされたパスで worktree の作成が失敗する

351</h3>

352 

353`.claude`、`.claude/worktrees`、または worktree ディレクトリ自体がシンボリックリンクである場合、Claude Code は worktree の作成を拒否し、エラーにはシンボリックリンクのパスが示されます。シンボリックリンクを削除して再試行してください。v2.1.212 より前は、リポジトリにこれらのパスのいずれかにコミットされたシンボリックリンクが既に含まれていた場合、worktree の作成はそれをたどり、リポジトリの外にファイルを作成する可能性がありました。

354 

355<h3 id="git-lfs-content-is-missing-from-a-worktree-claude-code-created">

356 Claude Code が作成した worktree で Git LFS ファイルがポインターファイルになる

357</h3>

358 

359`git lfs install --local` で [Git LFS](https://git-lfs.com) をセットアップした場合、Claude Code が作成する worktree には実際のファイルではなく LFS ポインターファイルが含まれます。`--local` フラグは、LFS フィルターをグローバル git 設定ではなく、リポジトリ独自の `.git/config` に書き込みます。通常の `git lfs install` はグローバル設定に書き込むため、影響を受けません。リポジトリ独自の設定で定義されているその他の[フィルタードライバー](https://git-scm.com/docs/gitattributes)にも同じことが当てはまります。

360 

361Claude Code は、worktree を作成する際にリポジトリ独自のフィルタードライバーをスキップします。フィルタードライバーはシェルコマンドであり、Claude を含め、リポジトリに書き込めるものなら何でもそこに配置できた可能性があるためです。v2.1.247 より前は、Claude Code は worktree の作成中にこれらのドライバーを実行していました。

362 

363実際のファイルを取得するには、worktree 内で `git lfs pull` を実行します。

364 

365まれな 4 つのケースでは、Claude Code は worktree をまったく作成しません。リポジトリの設定で定義されているフィルタードライバーを判別できない場合、またはそこでオフにできない設定項目が見つかった場合です。エラーと対応する修正方法を照らし合わせてください。

366 

367* **`Could not read the repository git config to neutralize filter drivers`**: Claude Code がリポジトリの `.git/config` を読み取れませんでした(たとえばそのファイルの権限が原因)。それを修正して再試行してください。

368* **`The repository git config defines a filter driver whose name cannot be neutralized (contains "=" or a newline)`**: `.git/config` 内のそのフィルタードライバーの名前を変更するか削除して、再試行してください。

369* **`The repository git config has a conditional include (includeIf)`**: `.git/config` 内の `includeIf` が取り込む設定をそのファイルに直接移動し、`includeIf` を削除して再試行してください。グローバル git 設定内の `includeIf` はこれをトリガーしません。

370* **`Git was not run: the repository's own git config sets <key>`**: メッセージには、`lfs.customtransfer.<name>.path` や `lfs.standalonetransferagent` など、Git LFS に実行するプログラムを指定するキーが示されます。その設定が自分のものであれば、グローバル git 設定に移動します。心当たりがない場合は、信頼していないツールやチェックアウトが書き込んだ可能性があるため、リポジトリの git 設定から削除してください。リポジトリの設定からキーがなくなったら再試行してください。

371 

372<h3 id="claude-code-refuses-to-use-a-worktree">

373 Claude Code が worktree の使用を拒否する

374</h3>

375 

376`Refusing to use <path> as an isolation worktree` で始まるエラーは、Claude Code がディレクトリをセッションまたはサブエージェントの分離されたチェックアウトとして採用する前にそのディレクトリの git ID を確認し、拒否したことを意味します。このチェックは、Claude Code が worktree を作成する場合、既存の worktree に入る場合、以前の実行の worktree を再利用する場合のいずれでも実行されます。

377 

378ほとんどの場合、メッセージの残りの部分には、ディレクトリの git メタデータがメインチェックアウトに解決されることが示されています。たとえば、その `.git` ファイルがメインリポジトリ自体の `.git` ディレクトリを指している場合や、`core.worktree` リダイレクトによって git がその作業ツリーをメインチェックアウトに解決する場合です。そのようなディレクトリからは、`git reset --hard` などの通常の git コマンドが worktree ではなくメインチェックアウトに作用してしまいます。Claude Code は、ディレクトリに読み取れない `.git` エントリがある場合も、worktree が安全であると想定せずに拒否します。

379 

380[`WorktreeCreate` フック](#non-git-version-control)が作成するディレクトリなど、git メタデータをまったく持たないディレクトリは、それを含む git リポジトリがない場合にのみチェックに合格します。フックがリポジトリ内にディレクトリを作成すると、git はそれをそのリポジトリのチェックアウトに解決し、Claude Code は `git resolves its working tree to` メッセージで拒否するため、フックはディレクトリをリポジトリの外に作成するようにしてください。

381 

382拒否されたディレクトリには作業が含まれている可能性があるため、Claude Code はそのまま残します。メッセージが `Refusing to use <path>` に続くものであっても、[再開メッセージ](#the-session-resumes-outside-its-worktree)に表示されるものであっても、メッセージと回復方法を照らし合わせてください。一部の末尾は再開メッセージにのみ表示されます。

383 

384* **`launch from the parent checkout` または `Run the resume from the project checkout` と表示される**: worktree 内から Claude Code を起動しました。代わりにメインチェックアウトから起動してください。worktree を再作成する必要はありません。

385* **`it cannot be resumed or re-entered` と表示される**: このセッションには、起動した場所からその worktree を安全と確認できるものがありません。worktree を再作成してください。ディレクトリとその作業は手動回復のためにディスク上に残ります。worktree に親チェックアウトがある場合は、そこから再開することもできます。

386* **`it contains the protected checkout` と表示される**: 拒否されたディレクトリは、ホームディレクトリなど、メインチェックアウトの親です。削除しないでください。`WorktreeCreate` フックが返すパスや `EnterWorktree` のターゲットなど、worktree のパスを変更して、worktree がチェックアウトを含まないようにしてください。

387* **`the protected checkout <path> has a .git entry that could not be examined` または `has git metadata that could not be resolved` と表示される**: 問題は worktree ではなくメインチェックアウトの git メタデータにあります。worktree を削除しないでください。また、メッセージ末尾の worktree を再作成するようにというアドバイスは、これら 2 つの末尾には当てはまらないため無視してください。メインチェックアウトを修復し(たとえば `.git` に対する権限の問題や git の `dubious ownership` による拒否)、再試行してください。

388* **`its recorded path has a network spelling` と表示される**: Claude Code はネットワークパスにある worktree へ再開することはありません。ローカルパスに worktree を再作成してください。

389* **その他の末尾**: メッセージには、`core.worktree` リダイレクトの削除や worktree の再作成など、問題とその修正方法が示されています。それに従ってください。git ID を検証できなかったというメッセージが表示されたディレクトリを削除する前に、worktree のパス内のシンボリックリンクや git 自体の実行失敗など、示された原因に先に対処してください。ディレクトリが正常である可能性があるためです。再作成する場合は、先に古いディレクトリから必要な変更を回収してください。古いディレクトリはディスク上に残ります。

390 

391<h3 id="the-session-resumes-outside-its-worktree">

392 セッションが worktree の外で再開される

393</h3>

394 

395セッションを対話的に再開し、Claude Code がそれを worktree に戻せない場合、Claude Code は以下のいずれかのメッセージでその旨を伝えます。Claude Code が worktree バインディングをクリアすると、そのクリアをセッションのトランスクリプトに記録します。[トランスクリプトの書き込みを抑制](/docs/ja/sessions#where-transcripts-are-stored)している場合、メッセージは代わりに、バインディングをクリアできなかったこと、および Claude Code が後の再開時に worktree を再確認することを示します。

396 

397| メッセージの先頭 | 発生したことと対処方法 |

398| :- | :- |

399| `Your worktree <path> no longer exists` | worktree ディレクトリが削除されました。セッションは分離なしで現在のディレクトリで続行され、Claude Code は worktree バインディングをクリアします。対処は不要です。 |

400| `Could not verify your worktree <path> this time` | Claude Code は、通常は一時的な理由で worktree を検証できませんでした。バインディングは保持され、セッションは分離なしで現在のディレクトリで続行されます。再試行するには再度再開してください。繰り返し発生する場合は、新しいセッションで worktree に入り、拒否メッセージを [Claude Code が worktree の使用を拒否する](#claude-code-refuses-to-use-a-worktree) と照らし合わせてください。このメッセージは、worktree ではなくメインチェックアウトのメタデータを示している場合があります。 |

401| `Did not re-enter your worktree <path>` | Claude Code は worktree バインディングを安全でないとして拒否しました。バインディングをクリアし、セッションは分離なしで続行されます。メッセージには具体的な拒否理由が含まれています。一部の拒否では再作成、その他の拒否ではパスの変更が修正方法となるため、[Claude Code が worktree の使用を拒否する](#claude-code-refuses-to-use-a-worktree) と照らし合わせてください。 |

402| `Could not re-enter your worktree <path>` | 起動した場所から Claude Code が worktree を安全と確認できませんでした。最も一般的な原因は worktree 内から起動したことです。バインディングは保持されます。メッセージの残りの部分に修正方法が示されているので、[Claude Code が worktree の使用を拒否する](#claude-code-refuses-to-use-a-worktree) と照らし合わせてください。 |

403 

404`-p` を使用した[非対話モード](/docs/ja/headless)および [Agent SDK](/docs/ja/agent-sdk/sessions) が実行する再開では、Claude Code は分離なしで続行するのではなく、worktree が存在しない場合を除くすべての拒否に対して stderr エラーで再開を停止します。

405 

406`--output-format stream-json` を使用すると、拒否は stdout にもサブタイプ `error_during_execution` の `result` メッセージとして届き、その `errors` 配列に同じテキストが含まれるため、Agent SDK アプリケーションはゼロ以外の終了コードだけでなく理由も受け取れます。v2.1.260 より前は、worktree の再開拒否で `result` メッセージは生成されませんでした。

407 

408メッセージは、表にある対話的なメッセージとは異なる形式になります。

409 

410* 表で `Did not re-enter` として示される拒否の場合は `Error: cannot resume into worktree <path>: ...This session was not started.`。Claude Code は終了前に worktree バインディングをクリアし、エラーにもそのことが示されます。次に会話を再開すると、セッションは worktree 分離なしで現在のディレクトリで続行されます。v2.1.260 より前は、Claude Code はクリアされたバインディングを書き込まなかったため、同じ再開を再試行するたびに同じエラーで失敗していました。

411 

412 [トランスクリプトの書き込みを抑制](/docs/ja/sessions#where-transcripts-are-stored)している場合、クリアを保存できません。その場合、エラーには同じコマンドが再び拒否されることが示され、worktree なしで続行する方法として `--fork-session` と新しい会話の開始が挙げられます。

413* `Could not verify` の場合は `Error: could not verify worktree <path> for this resume, so the resume was aborted...`

414* `Could not re-enter` の場合は `Error: ...The worktree binding is kept.`

415* worktree が存在しない場合は `Notice: the worktree <path> for this session no longer exists...`。Claude Code はこれを出力し、対話的な再開と同様にセッションを続行します

416 

417各エラーに埋め込まれた拒否の末尾は対話的な通知と共通であるため、引き続き [Claude Code が worktree の使用を拒否する](#claude-code-refuses-to-use-a-worktree) の該当項目と照らし合わせることができます。

418 

419stream-json の結果では、[`startup_failure_reason`](/docs/ja/agent-sdk/typescript#startup_failure_reason) は、`could not verify worktree` エラーの場合は `worktree_unverified`、`cannot resume into worktree` および `The worktree binding is kept` エラーの場合は `worktree_resume_refused` になります。アプリケーションはエラーテキストを照合する代わりに、これに基づいて分岐できます。v2.1.274 より前は、結果に `startup_failure_reason` フィールドは含まれていませんでした。

420 

202<h2 id="see-also">421<h2 id="see-also">

203 関連項目422 関連項目

204</h2>423</h2>

205 424 

206Worktree はファイルの分離を処理します。以下の関連ページでは、これらの分離されたチェックアウトに作業を委任し、作成したセッション間を切り替える方法について説明しています。425worktree はファイルの分離を処理します。以下の関連ページでは、これらの分離されたチェックアウトに作業を委任する方法、チェックアウト間で調査結果を受け渡す方法、および作成したセッション間を切り替える方法について説明しています。

207 426 

208* [Subagent](/docs/ja/sub-agents): セッション内の分離されたエージェントに作業を委任する427* [サブエージェント](/docs/ja/sub-agents): セッション内の分離されたエージェントに作業を委任する

209* [Agent team](/docs/ja/agent-teams): 複数の Claude セッションを自動的に調整する428* [セッション間メッセージング](/docs/ja/cross-session-messaging): worktree 内のセッション同士で調査結果を受け渡せるようにする

429* [エージェントチーム](/docs/ja/agent-teams): 複数の Claude セッションを自動的に調整する

210* [セッションを管理する](/docs/ja/sessions): 会話に名前を付け、再開し、切り替える430* [セッションを管理する](/docs/ja/sessions): 会話に名前を付け、再開し、切り替える

211* [デスクトップ並列セッション](/docs/ja/desktop#work-in-parallel-with-sessions): デスクトップアプリの worktree でサポートされるセッション431* [デスクトップ並列セッション](/docs/ja/desktop#work-in-parallel-with-sessions): デスクトップアプリの worktree でサポートされるセッション