SpyBara
Go Premium

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

39 files changed +3,892 −2,251. View all changes and history on the product overview
2026
Fri 2 03:00 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>

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

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

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

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 


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 サンドボックス設定

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 

commands.md +1 −1

Details

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` または Linux のホームディレクトリ(Desktop フォルダがない場合)に書き込んで、高いメモリ使用量を診断します。メモリ問題を報告するときは `-diagnostics.json` ファイルのみを添付してください。`.heapsnapshot` には完全な会話と認証情報が含まれているため、共有しないでください。[出力で何をするか](/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 サーバー、コマンド、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 以降が必要です |

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` を設定して、スキル、hooks、個人メモリファイルのウォークスルーも行うインタラクティブなフローを取得します。`/init` が OpenAI Codex または Google Gemini CLI 設定を見つけた場合、`/import` で引き継ぐことを提案します |

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 +774 −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)を参照してください。


186| `The connection dropped while downloading the update` | [インストールエラー](#the-connection-dropped-while-downloading-the-update) |186| `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) |187| `Download timed out: exceeded the total deadline` | [インストールエラー](#the-connection-dropped-while-downloading-the-update) |

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

189| `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) |190| `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) |191| `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) |192| `Couldn't verify your organization's policy for cloud sessions` | [コマンドラインエラー](#cloud-sessions-are-disabled-by-your-organizations-policy) |


250| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [プラグインエラー](#plugin-command-references-user-config) |251| `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) |252| `headersHelper for MCP server '<name>' references ${user_config.*}` | [プラグインエラー](#plugin-command-references-user-config) |

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

254| `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) |255| `path escapes plugin directory` | [プラグインエラー](#path-escapes-plugin-directory) |

254| `path could not be checked` | [プラグインエラー](#path-could-not-be-checked) |256| `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) |257| `its marketplace entry path does not stay inside the marketplace directory` | [プラグインエラー](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


418 サーバーエラー420 サーバーエラー

419</h2>421</h2>

420 422 

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 アカウントがクラシファイアーモデルを呼び出せない、またはサブエージェントが使用制限に達したなど、お客様側の原因もカバーしています。423これらのエラーのほとんどは推論プロバイダーから発生します。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 424 

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

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


432 434 

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

434 436 

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

436 438 

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

438 440 


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.454API 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```455```

454 456 

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

456 458 

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

458 460 

459**対応方法:**461**対応方法:**

460 462 

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

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

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

464 466 

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

466 468 


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

499 501 

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

501 503 

502**対応方法:**504**対応方法:**

503 505 

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

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

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

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

508 510 


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

528* `Your computer went to sleep mid-response`: Claude Code は、レスポンスがストリーミング中にコンピューターがスリープ状態になったことを検出しました。コンピューターが起動すると、Claude Code は接続を破損として扱い、読み取りを停止します。530* `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` でターンを終了していました。531* `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` で始まるものなど)が代わりに表示されていました。532* `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) を参照してください。533* `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 534 

533v2.1.227 より前では、`Connection lost mid-response` は `Connection closed mid-response` と読まれ、`The response stopped arriving` は `Response stalled mid-stream` と読まれていました。535v2.1.227 より前では、`Connection lost mid-response` は `Connection closed mid-response` と読まれ、`The response stopped arriving` は `Response stalled mid-stream` と読まれていました。

534 536 


5404 つのケースでは、Claude Code はこの通知をすぐに表示せずに障害を処理します。5424 つのケースでは、Claude Code はこの通知をすぐに表示せずに障害を処理します。

541 543 

542* レスポンスの前半で、Claude Code は障害を再試行するか、別のエラーでターンを終了します。[Automatic retries](#automatic-retries) を参照してください。544* レスポンスの前半で、Claude Code は障害を再試行するか、別のエラーでターンを終了します。[Automatic retries](#automatic-retries) を参照してください。

543* これらの障害の 1 つが Claude がレスポンスを完了した後に到着した場合、Claude Code は完全なレスポンスを保持し、この通知なしでターンを正常に終了します。v2.1.222 より前では、Claude Code はレスポンスが完了した後に接続が切断またはスタールした場合、この通知を表示し、レスポンスが完全であったにもかかわらずターンをエラーとして報告していました。545* これらの障害の 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 は最初のカットオフでこの通知を使用してターンを終了していました。546* [非対話セッション](/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 より前では、サブエージェントは最初のカットオフでこの通知を表示していました。547* [サブエージェント](/docs/ja/sub-agents#api-errors-in-subagents)では(セッションが対話かどうかに関わらず)、途中で切れたレスポンスがテキストを含むがツール呼び出しを含まない場合、Claude Code はサブエージェントに続行するよう促します。通知は、これらの継続が使い果たされた後にのみ、サブエージェントの最後のメッセージになります。v2.1.257 より前では、サブエージェントは最初の途切れでこの通知を表示していました。

546 548 

547**対応方法:**549**対応方法:**

548 550 

549* インタラクティブセッションでは、画面に残っているレスポンスを読んでください。Claude Code はエラーの前に Claude が完了したすべてのブロックを保持しますが、ターンが終了するときに中断された最終ブロックを破棄するため、最終文またはツール呼び出しが欠落している可能性があります。`continue` で返信して、Claude が最後に完了したブロックから再開するようにしてください。551* 対話セッションでは、画面に残っているレスポンスを読んでください。Claude Code はエラーの前に Claude が完了したすべてのブロックを保持しますが、ターンが終了するときに中断された最終ブロックを破棄するため、最終文またはツール呼び出しが欠落している可能性があります。`continue` で返信して、Claude が最後に完了したブロックから再開するようにしてください。

550* [non-interactive mode](/docs/ja/headless)(`-p`):552* [非対話モード](/docs/ja/headless)(`-p`)では:

551 * デフォルトのテキスト出力では、Claude Code は、ターンの前半から保持している最後に完了したテキストのブロックを出力し、その後このメッセージを出力します。何も保持していない場合、Claude Code はこのメッセージのみを出力します。例えば、Claude Code がターン中に会話をコンパクト化し、そのテキストをクリアしたためです。v2.1.219 より前では、Claude Code は `-p` テキスト出力でこのメッセージのみを出力し、既に生成されたレスポンスを削除していました。553 * デフォルトのテキスト出力では、Claude Code は、ターンの前半から保持している最後に完了したテキストのブロックを出力し、その後このメッセージを出力します。何も保持していない場合、Claude Code はこのメッセージのみを出力します。例えば、Claude Code がターン中に会話をコンパクト化し、そのテキストをクリアした場合です。v2.1.219 より前では、Claude Code は `-p` テキスト出力でこのメッセージのみを出力し、既に生成されたレスポンスを削除していました。

552 * `--output-format json` または `stream-json` では、Claude Code はこのメッセージを `result` フィールドで報告します。554 * `--output-format json` または `stream-json` では、Claude Code はこのメッセージを `result` フィールドで報告します。

553 * 接続が安定したら、ターンを続行するために、セッションを再開し、[Continue conversations](/docs/ja/headless#continue-conversations) で説明されているように `continue` を送信してください。555 * 接続が安定したら、ターンを続行するために、セッションを再開し、[Continue conversations](/docs/ja/headless#continue-conversations) で説明されているように `continue` を送信してください。

554 556 


556 Auto mode cannot determine the safety of an action558 Auto mode cannot determine the safety of an action

557</h3>559</h3>

558 560 

559[auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) がアクションを分類するために使用するモデルが決定を生成できなかったため、auto mode はアクションを自動的に承認しませんでした。表示されるメッセージは、クラシファイアーが失敗した方法によって異なります。561[auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) がアクションを分類するために使用するモデルが決定を生成できなかったため、auto モードはアクションを自動的に承認しませんでした。表示されるメッセージは、分類器が失敗した方法によって異なります。

560 562 

561作業ディレクトリ内の読み取り、検索、編集はクラシファイアーをスキップするため、これらすべてのケースで動作し続けます。563作業ディレクトリ内の読み取り、検索、編集は分類器をスキップするため、これらすべてのケースで動作し続けます。

562 564 

563クラシファイアーモデルが利用できない場合:565分類器モデルが利用できない場合:

564 566 

565```text theme={null}567```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.568<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 574 

573**対応方法:**575**対応方法:**

574 576 

575* 数秒後に再試行してください。Claude は同じメッセージを見て、通常は自動的に再試行します。一時的な障害は [auto mode eligibility](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) とは無関係です。設定を変更する必要はありません577* 数秒後に再試行してください。Claude は同じメッセージを見て、通常は自動的に再試行します。一時的な障害は [auto モードの利用資格](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) とは無関係です。設定を変更する必要はありません

576* 再試行が失敗し続ける場合は、読み取り専用タスクを続行し、後でブロックされたアクションに戻ってください578* 再試行が失敗し続ける場合は、読み取り専用タスクを続行し、後でブロックされたアクションに戻ってください

577* Amazon Bedrock では、メッセージがすべての再試行で返される場合は、アカウントがそれが示すモデルを呼び出せることを確認してください。標準の Amazon Bedrock モデルの場合、[IAM policy](/docs/ja/amazon-bedrock#iam-configuration) がそれを呼び出すことを許可していることを確認してください。Mantle モデル ID の場合は、[AWS アカウントチームに連絡してください](/docs/ja/amazon-bedrock#mantle-endpoint-errors)579* Amazon Bedrock では、メッセージがすべての再試行で返される場合は、アカウントがそれが示すモデルを呼び出せることを確認してください。標準の Amazon Bedrock モデルの場合、[IAM policy](/docs/ja/amazon-bedrock#iam-configuration) がそれを呼び出すことを許可していることを確認してください。Mantle モデル ID の場合は、[AWS アカウントチームに連絡してください](/docs/ja/amazon-bedrock#mantle-endpoint-errors)

578 580 

579OAuth トークンの有効期限が切れたか、別のセッションによってローテーションされたためにクラシファイアーリクエストが失敗した場合、Claude Code はトークンをリフレッシュし、リクエストを 1 回再試行するため、ルーチンのトークン有効期限はこのメッセージとして表示されません。v2.1.216 より前では、有効期限が切れたまたはローテーションされたトークンはすべてのクラシファイアーリクエストに失敗し、トークンがリフレッシュされるまで auto mode はこのメッセージで確認されたすべてのアクションを拒否していました。581OAuth トークンの有効期限が切れたか、別のセッションによってローテーションされたために分類器リクエストが失敗した場合、Claude Code はトークンをリフレッシュし、リクエストを 1 回再試行するため、日常的なトークンの有効期限切れはこのメッセージとして表示されません。v2.1.216 より前では、有効期限が切れたまたはローテーションされたトークンによってすべての分類器リクエストが失敗し、トークンがリフレッシュされるまで auto モードはこのメッセージで確認対象のすべてのアクションを拒否していました。

580 582 

581クラシファイアーが解析不可能なレスポンスを返した場合:583分類器が解析不可能なレスポンスを返した場合:

582 584 

583```text theme={null}585```text theme={null}

584Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details586Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details


589* アクションを再試行してください。これは通常、次の試行で成功します591* アクションを再試行してください。これは通常、次の試行で成功します

590* `claude --debug` を実行し、アクションを繰り返して、デバッグログで詳細を確認してください592* `claude --debug` を実行し、アクションを繰り返して、デバッグログで詳細を確認してください

591 593 

592別の API セーフティチェックが、以前の会話コンテンツのためにクラシファイアーリクエストをブロックした場合:594別の API セーフティチェックが、以前の会話コンテンツのために分類器リクエストをブロックした場合:

593 595 

594```text theme={null}596```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 details597Auto 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```598```

597 599 

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 が受け取るものは、アクションをリクエストした場所によって異なります。600Claude Code はアクションを拒否しますが、Claude にこれはアクションが安全でないという判断ではなく、再試行するのではなく他のタスクを続行するよう伝えます。これらの拒否は [auto モードの一時停止しきい値](/docs/ja/permission-modes#when-auto-mode-falls-back) にカウントされません。[非対話](/docs/ja/headless) `-p` 実行では、Claude Code は実行を停止しません。Claude が受け取るものは、アクションを要求した場所によって異なります。

599 601 

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` を含むエラー結果を返します602* `--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 に返します603* 対話セッションと `-p` 実行のメイン会話を含む、その他すべての場所では、Claude Code はその拒否を Claude に返します

602 604 

603v2.1.225 より前では、Claude Code はこれらの拒否を一時停止しきい値に対してカウントし、本物のクラシファイアーブロックと同じ拒否メッセージを返していました。605v2.1.225 より前では、Claude Code はこれらの拒否を一時停止しきい値にカウントし、本物の分類器ブロックと同じ拒否メッセージを返していました。

604 606 

605**対応方法:**607**対応方法:**

606 608 

607* これはお客様のアクションに関する決定ではありません。会話に既にあるコンテンツが、auto mode がクラシファイアーに会話を送信したときに API のセーフティフィルターをトリガーしました609* これはアクションに関する決定ではありません。会話に既にあるコンテンツが、auto モードが分類器に会話を送信したときに API のセーフティフィルターをトリガーしました

608* 再試行は役に立ちません。同じ会話コンテンツがフィルターを再度トリガーします610* 再試行は役に立ちません。同じ会話コンテンツがフィルターを再度トリガーします

609* インタラクティブセッションでは、別の [permission mode](/docs/ja/permission-modes) に切り替えて、プロンプトが表示されたときにアクションを承認できるようにしてください611* 対話セッションでは、別の [権限モード](/docs/ja/permission-modes) に切り替えて、プロンプトが表示されたときにアクションを承認できるようにしてください

610* トリガーするコンテンツなしで新しい会話を開始してください612* トリガーするコンテンツなしで新しい会話を開始してください

611 613 

612会話がクラシファイアーのコンテキストウィンドウより大きくなった場合:614会話が分類器のコンテキストウィンドウより大きくなった場合:

613 615 

614```text theme={null}616```text theme={null}

615Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)617Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)

616```618```

617 619 

618アクションに何が起こるかは、Claude がそれをリクエストした場所によって異なります。620アクションに何が起こるかは、Claude がそれを要求した場所によって異なります。

619 621 

620* インタラクティブセッションでは、auto mode はそのアクションに対して通常の権限プロンプトにフォールバックするため、手動で承認または拒否できます622* 対話セッションでは、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` を含むエラー結果を返し、実行は続行されます623* `--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` 実行の他の場所では、フォールバックするプロンプトがないため、アクションは実行されず、実行は続行されます624* [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) なしの `-p` 実行の他の場所では、フォールバックするプロンプトがないため、アクションは実行されず、実行は続行されます

623 625 

624**対応方法:**626**対応方法:**

625 627 

626* インタラクティブセッションでは、表示されるプロンプトでアクションを承認または拒否してください628* 対話セッションでは、表示されるプロンプトでアクションを承認または拒否してください

627* インタラクティブセッションでは、`/compact` を実行して会話サイズを削減し、後続のアクションがクラシファイアーウィンドウ内に収まるようにしてください629* 対話セッションでは、`/compact` を実行して会話サイズを削減し、後続のアクションが分類器ウィンドウ内に再び収まるようにしてください

628 630 

629<h3 id="the-server-returned-no-safety-verdict">631<h3 id="the-server-returned-no-safety-verdict">

630 The server returned no safety verdict632 The server returned no safety verdict

631</h3>633</h3>

632 634 

633[server-side classifier review](/docs/ja/permission-modes#server-side-classifier-review) では、auto mode はサーバーがそれに対して判定を与えないときにアクションを拒否します。拒否は、Claude Code が判定できる場合(`(timed out)` など)に括弧内にカテゴリを示します。635[サーバー側の分類器レビュー](/docs/ja/permission-modes#server-side-classifier-review) では、auto モードはサーバーがアクションに対して判定を返さないときにそのアクションを拒否します。拒否は、Claude Code が判定できる場合、括弧内にカテゴリ(`(timed out)` など)を示します。

634 636 

635```text theme={null}637```text theme={null}

636The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.638The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

637```639```

638 640 

639メッセージの残りの部分は、1 回の再試行が役に立つかどうかを Claude に伝えます。これらの拒否の前に、Claude Code は待機するため、Claude の次の試行は一度に続きません。インタラクティブセッションでの待機中、スピナーは `Auto mode check unavailable` とカウントダウンを表示し、`Esc` を押すとターンが中断されます。641メッセージの残りの部分は、1 回の再試行が役に立つかどうかを Claude に伝えます。これらの拒否の一部では、Claude の次の試行がすぐに続かないように、Claude Code は事前に待機します。対話セッションでの待機中、スピナーは `Auto mode check unavailable` とカウントダウンを表示し、`Esc` を押すとターンが中断されます。

640 642 

64110 回連続で判定がない場合、auto mode はターンを停止します。64310 回連続で判定のないレスポンスが続くと、auto モードはターンを停止します。

642 644 

643```text theme={null}645```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.646Auto 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```647```

646 648 

647停止メッセージは、各種セッションの異なる場所に表示されます。649停止メッセージは、セッションの種類ごとに異なる場所に表示されます。

648 650 

649* インタラクティブセッションでは、メッセージはトランスクリプトに警告として表示され、ターンが終了します651* 対話セッションでは、メッセージはトランスクリプトに警告として表示され、ターンが終了します

650* [non-interactive](/docs/ja/headless) `-p` 実行では、実行が終了し、実行エラーを報告します。デフォルトのテキスト出力では、メッセージは stderr に出力されます。652* [非対話](/docs/ja/headless) `-p` 実行では、実行が終了し、実行エラーを報告します。デフォルトのテキスト出力では、メッセージは stderr に出力されます。

651* [subagent](/docs/ja/sub-agents) が制限に達した場合、サブエージェントは完了する前に停止し、Claude は auto mode が停止したことを示すメモ付きで生成されたものを受け取ります653* [サブエージェント](/docs/ja/sub-agents) が制限に達した場合、サブエージェントは完了する前に停止し、Claude は auto モードがそれを停止したことを示すメモ付きで、それまでに生成されたものを受け取ります

652 654 

653**対応方法:**655**対応方法:**

654 656 

655* 別のメッセージを送信して、Claude が再度試行するようにしてください。応答数のカウントはリセットされます。657* 別のメッセージを送信して、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) は変更されないまま渡すものをリストします。658* 停止が繰り返され、リクエストが [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 への直接接続で変数を読み取りませんでした。659* 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) してください660* 代わりにアクションを自分で承認するには、[auto モードから切り替えてください](/docs/ja/permission-modes#switch-permission-modes)

659 661 

660v2.1.280 より前では、Claude Code は判定のないレスポンスからの各アクションを直ちに拒否し、ターンを停止することはありませんでした。662v2.1.280 より前では、Claude Code は判定のないレスポンスからの各アクションを直ちに拒否し、ターンを停止することはありませんでした。

661 663 


663 Agent terminated early due to an API error665 Agent terminated early due to an API error

664</h3>666</h3>

665 667 

666[subagent](/docs/ja/sub-agents) の API リクエストが終了的に失敗しました。例えば、使用制限に達したか、サーバーエラーの再試行が終了したため、サブエージェントはタスクを完了する前に停止しました。このメッセージには Claude Code v2.1.199 以降が必要です。それ以前は、API エラーテキストはサブエージェントの結果であるかのように Claude に返されていました。668[サブエージェント](/docs/ja/sub-agents) の API リクエストが回復不能な形で失敗しました。例えば、使用制限に達したか、サーバーエラーの再試行を使い果たしたため、サブエージェントはタスクを完了する前に停止しました。このメッセージには Claude Code v2.1.199 以降が必要です。それ以前は、API エラーテキストはサブエージェントの結果であるかのように Claude に返されていました。

667 669 

668```text theme={null}670```text theme={null}

669Agent terminated early due to an API error: <error detail>671Agent terminated early due to an API error: <error detail>


671 673 

672**対応方法:**674**対応方法:**

673 675 

674* コロンの後のエラー詳細をこのページの独自のセクション([Usage limits](#usage-limits) または [Server errors](#server-errors) など)と照合し、そのセクションの手順に従ってください676* コロンの後のエラー詳細を、このページの該当するセクション([Usage limits](#usage-limits) や [Server errors](#server-errors) など)と照合し、そのセクションの手順に従ってください

675* 基になるエラーがクリアされたら、Claude にタスクを再試行するか、[resume the subagent](/docs/ja/sub-agents#resume-subagents) するよう依頼してください677* 根本のエラーが解消されたら、Claude にタスクを再試行するか、[サブエージェントを再開する](/docs/ja/sub-agents#resume-subagents) よう依頼してください

676 678 

677レート制限、オーバーロード、またはサーバーエラーがテキスト出力を既に生成したフォアグラウンドサブエージェントを中断する場合、Claude はその部分的な出力を不完全としてマークされた状態で受け取り、このエラーは受け取りません。唯一の出力がツール呼び出しであるサブエージェントもこのエラーを取得します。v2.1.199 では、その形状は代わりに空の部分的な結果を返していました。[API errors in subagents](/docs/ja/sub-agents#api-errors-in-subagents) を参照してください。679レート制限、オーバーロード、またはサーバーエラーが、既にテキスト出力を生成したフォアグラウンドサブエージェントを中断した場合、Claude はこのエラーの代わりに、不完全としてマークされたその部分的な出力を受け取ります。出力がツール呼び出しのみだったサブエージェントもこのエラーを受け取ります。v2.1.199 では、その形の出力は代わりに空の部分的な結果を返していました。[API errors in subagents](/docs/ja/sub-agents#api-errors-in-subagents) を参照してください。

678 680 

679<h2 id="usage-limits">681<h2 id="usage-limits">

680 使用制限682 使用制限


885 認証エラー887 認証エラー

886</h2>888</h2>

887 889 

888これらのエラーは、Claude Code が API に対してあなたの身元を証明できないことを意味します。任意の時点で `/status` を実行して、現在アクティブな認証情報を確認できます。890これらのエラーは、Claude Code が API に対してユーザーの身元を証明できないことを意味します。`/status` をいつでも実行すると、現在有効な認証情報を確認できます。

889 891 

890<h3 id="not-logged-in">892<h3 id="not-logged-in">

891 ログインしていない893 ログインしていない

892</h3>894</h3>

893 895 

894このセッションで有効な認証情報が利用できません。896このセッションで使用できる有効な認証情報がありません。

895 897 

896```text theme={null}898```text theme={null}

897Not logged in · Please run /login899Not logged in · Please run /login

898```900```

899 901 

900Claude Desktop アプリが実行するセッション(Code タブや Cowork など)では、メッセージは `Authentication required · Sign in again to continue` と読み、アプリからもう一度サインインします。902Code タブや Cowork など、Claude Desktop アプリが実行するセッションでは、メッセージは `Authentication required · Sign in again to continue` となり、アプリから再度サインインします。

901 903 

902**対応方法:**904同じ[設定ディレクトリ](/docs/ja/claude-directory)を使用する別の Claude Code ウィンドウで claude.ai アカウントでサインインすると、このメッセージを表示している対話セッションは自動的にそのログインを使い始めます。再起動する必要はありません。

905 

906macOS の v2.1.286 より前では、別のウィンドウからサインインした後もセッションがこのメッセージを表示し続けることがありました。それらのバージョンでは、メッセージを表示しているセッションを再起動してください。

907 

908**対処方法:**

903 909 

904* `/login` を実行して、Claude サブスクリプションまたは Console アカウントで認証します910* `/login` を実行して、Claude サブスクリプションまたは Console アカウントで認証します

905* 環境変数で認証されることを想定していた場合は、`ANTHROPIC_API_KEY` が `claude` を起動したシェルで設定およびエクスポートされていることを確認します911* 環境変数で認証されることを想定していた場合は、`claude` を起動したシェルで `ANTHROPIC_API_KEY` が設定され、エクスポートされていることを確認します

906* CI または自動化で対話的ログインが不可能な場合は、起動時にキーを取得する [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトを設定します912* 対話的なログインができない CI や自動化では、起動時にキーを取得する [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトを設定します

907* [認証の優先順位](/docs/ja/authentication#authentication-precedence) を参照して、複数の認証情報が存在する場合に Claude Code が使用する認証情報を理解します913* 複数の認証情報が存在する場合に Claude Code がどれを使用するかについては、[認証の優先順位](/docs/ja/authentication#authentication-precedence)を参照してください

908 914 

909ログインを繰り返し求められる場合は、[ログインしていないか、トークンの有効期限が切れている](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired) を参照して、システムクロックの確認と macOS 認証情報ストレージの復旧手順を確認してください。915繰り返しログインを求められる場合は、システムクロックの確認と macOS の認証情報ストレージの復旧手順について、[ログインしていない、またはトークンの有効期限切れ](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired)を参照してください。

910 916 

911<h3 id="could-not-resolve-authentication-method">917<h3 id="could-not-resolve-authentication-method">

912 認証方法を解決できませんでした918 認証方法を解決できなかった

913</h3>919</h3>

914 920 

915セッションが認証情報なしで API クライアントに到達しました。[バックグラウンドセッション](/docs/ja/agent-view) とクラウドセッションは、ワーカーが認証情報なしで起動したときにこのメッセージを表示します。対話的、`-p`、および Agent SDK の実行は、同じ条件を [ログインしていない](#not-logged-in) として報告し、この文字列をデバッグログにのみ書き込みます。そこで見つけた場合は、代わりにそのエントリに従ってください。921セッションが認証情報なしで API クライアントに到達しました。[バックグラウンドセッション](/docs/ja/agent-view)とクラウドセッションでは、ワーカーが認証情報なしで起動したときにこのメッセージが表示されます。対話モード、`-p`、Agent SDK の実行では、同じ状態を[ログインしていない](#not-logged-in)として報告し、この文字列はデバッグログにのみ書き込みます。そのため、デバッグログでこのメッセージを見つけた場合は、そちらの項目に従ってください。

916 922 

917```text theme={null}923```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 omitted924Could 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```925```

920 926 

921現在のバージョンでは、エラーはワーカープロセスで認証情報が利用できなかったことを意味します。v2.1.174 より前では、有効な認証情報が設定されていても、アイドル状態の事前初期化されたワーカーに割り当てられたバックグラウンドセッションがこの方法で失敗する可能性がありました。v2.1.176 より前では、クラウドセッションがアイドル状態で要求される前に失敗する可能性もありました。アップグレードして復旧してください。927現在のバージョンでは、このエラーはワーカープロセスで使用できる認証情報がなかったことを意味します。v2.1.174 より前では、アイドル状態の事前初期化済みワーカーに割り当てられたバックグラウンドセッションが、有効な認証情報が設定されていてもこのように失敗することがありました。v2.1.176 より前では、割り当てられる前にアイドル状態だったクラウドセッションでも同様でした。アップグレードすると復旧します。

922 928 

923**対応方法:**929**対処方法:**

924 930 

925* バックグラウンドまたはクラウドセッションでこれが表示され、認証情報が既に設定されている場合は、v2.1.176 以降にアップグレードします931* バックグラウンドセッションまたはクラウドセッションでこのエラーが表示され、認証情報がすでに設定されている場合は、v2.1.176 以降にアップグレードします

926* `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN`、またはクラウドプロバイダーの認証情報が、対話的シェルだけでなく、ワーカーを起動する環境で設定されていることを確認します932* `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN`、またはクラウドプロバイダーの認証情報が、対話シェルだけでなく、ワーカーを起動する環境でも設定されていることを確認します

927* Agent SDK については、[クイックスタートの認証設定](/docs/ja/agent-sdk/quickstart#setup) を参照してください933* Agent SDK については、[クイックスタートの認証設定](/docs/ja/agent-sdk/quickstart#setup)を参照してください

928* 同じ環境の対話的セッションで `/status` を実行して、どの認証情報ソースが解決されるかを確認します934* 同じ環境の対話セッションで `/status` を実行し、どの認証情報ソースが解決されるかを確認します

929 935 

930<h3 id="invalid-api-key">936<h3 id="invalid-api-key">

931 無効な API キー937 無効な API キー

932</h3>938</h3>

933 939 

934`ANTHROPIC_API_KEY` 環境変数または `apiKeyHelper` スクリプトが API に拒否されたキーを返しました。または Claude Code が `ANTHROPIC_API_KEY` からのキーをブロックしてから送信しました。940`ANTHROPIC_API_KEY` 環境変数または `apiKeyHelper` スクリプトが返したキーを API が拒否したか、Claude Code が `ANTHROPIC_API_KEY` のキーを送信前にブロックしました。

935 941 

936```text theme={null}942```text theme={null}

937Invalid API key · Fix external API key943Invalid API key · Fix external API key

938```944```

939 945 

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) を参照して、説明を読み、値を修正する方法を確認してください。946メッセージが `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 947 

942**対応方法:**948**対処方法:**

943 949 

944* タイプミスがないか確認し、[Console](https://platform.claude.com/settings/keys) でキーが取り消されていないことを確認します950* タイプミスがないか確認し、[Console](https://platform.claude.com/settings/keys) でキーが失効していないことを確認します

945* 同じシェルで `env | grep ANTHROPIC` を実行するか、PowerShell で `Get-ChildItem Env:ANTHROPIC*` を実行します。direnv、dotenv シェルプラグイン、IDE ターミナルなどのツールは、プロジェクト内の `.env` ファイルから古いキーを明示的に設定せずに読み込むことができます951* 同じシェルで `env | grep ANTHROPIC` を実行するか、PowerShell では `Get-ChildItem Env:ANTHROPIC*` を実行します。direnv、dotenv シェルプラグイン、IDE のターミナルなどのツールは、ユーザーが明示的に設定しなくても、プロジェクト内の `.env` ファイルから古いキーを読み込むことがあります。

946* `ANTHROPIC_API_KEY` をアンセットして `/login` を実行し、代わりにサブスクリプション認証を使用します952* `ANTHROPIC_API_KEY` の設定を解除し、`/login` を実行して代わりにサブスクリプション認証を使用します

947* キーが [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトから来ている場合は、スクリプトを直接実行して、stdout に有効なキーを出力することを確認します953* キーが [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) スクリプトから取得される場合は、スクリプトを直接実行して、有効なキーが stdout に出力されることを確認します

948* `/status` を実行して、Claude Code が実際に使用している認証情報ソースを確認します954* `/status` を実行して、Claude Code が実際に使用している認証情報ソースを確認します

949 955 

950<h3 id="your-apikeyhelper-script-is-failing">956<h3 id="your-apikeyhelper-script-is-failing">

951 apiKeyHelper スクリプトが失敗しています957 apiKeyHelper スクリプトが失敗している

952</h3>958</h3>

953 959 

954Claude Code が [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定でコマンドを実行しましたが、キーを取得できませんでした。キーがないと、リクエストはプレースホルダー認証情報で API に到達し、API は `401` で拒否します。ターミナルの `Authentication` パネルには、以下のいずれが発生したかが表示されます:960Claude Code は [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定のコマンドを実行しましたが、キーが返されませんでした。キーがない場合、リクエストはプレースホルダーの認証情報で API に到達し、API はそれを `401` で拒否します。ターミナルの `Authentication` パネルには、次のどれが起きたかが表示されます。

955 961 

956* コマンドがエラーで終了したか、タイムアウトしました962* コマンドがエラーで終了したか、タイムアウトした

957* コマンドが stdout に何も出力しませんでした963* コマンドが stdout に何も出力しなかった

958* コマンドがキー以外の何かを出力しました。ログイン バナーやログ行など。パネルは `returned output that cannot be used as an API key` を表示し、何が間違っているかを示します。v2.1.227 より前では、Claude Code は周囲の空白をトリミングした後、コマンドが出力したものを送信していました。964* コマンドがログインバナーやログ行など、キー以外のものを出力した。パネルには `returned output that cannot be used as an API key` と表示され、出力を繰り返すことなく何が問題かが示されます。v2.1.227 より前では、Claude Code は前後の空白を取り除いた後、コマンドが出力したものをそのまま送信していました。

959 965 

960```text theme={null}966```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 output967Your 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```968```

963 969 

964[非対話モード](/docs/ja/headless) では、stderr も `apiKeyHelper failed:` というプレフィックス付きの具体的な理由を含みます。970[非対話モード](/docs/ja/headless)では、stderr にも `apiKeyHelper failed:` という接頭辞付きで具体的な理由が出力されます。

965 971 

966Claude Code はスクリプトを再実行し、このメッセージを表示する前にリクエストを最大 2 回まで再試行するため、失敗は 3 回の試行以内に表面化します。v2.1.208 より前では、Claude Code は完全な [再試行予算](#automatic-retries) を使用してプレースホルダー認証情報でリクエストを再送信し、その後、スクリプト失敗ではなく一般的な `401` 認証エラーを報告していました。972Claude Code は、このメッセージを表示する前にスクリプトを再実行してリクエストを最大 2 回再試行するため、失敗は 3 回の試行以内に表面化します。v2.1.208 より前では、Claude Code は[再試行の上限](#automatic-retries)をすべて使ってプレースホルダーの認証情報でリクエストを再送信し、スクリプトの失敗ではなく汎用的な `401` 認証エラーを報告していました。

967 973 

968`/login` を実行しても役に立ちません。ここでは、ヘルパーの出力が [優先順位](/docs/ja/authentication#authentication-precedence) で保存されたログインより優先されます。設定が存在する限り。974この場合、`/login` を実行しても解決しません。設定が存在する限り、ヘルパーの出力は保存されたログインよりも[優先されます](/docs/ja/authentication#authentication-precedence)。

969 975 

970**対応方法:**976**対処方法:**

971 977 

972* `apiKeyHelper` で設定されたコマンドをシェルで直接実行して、失敗を再現します978* `apiKeyHelper` に設定されたコマンドをシェルで直接実行して、失敗を再現します

973* コマンドが期限切れのセッションを報告する場合は、認証情報プロバイダーで再認証します。たとえば、SSO またはシークレットボールトに再度サインインします979* コマンドがセッションの有効期限切れを報告する場合は、SSO やシークレットボールトに再度サインインするなどして、認証情報プロバイダーで再認証します

974* コマンドを修正して、stdout にのみキーを出力するようにします。単一のトークンとして、最大 16,384 文字の印字可能 ASCII で、終了コード 0 で終了します。[apiKeyHelper で認証情報をローテーションする](/docs/ja/llm-gateway-connect#rotate-credentials-with-apikeyhelper) を参照して、動作するセットアップを確認してください。980* コマンドを修正して、キーのみを 16,384 文字以内の印字可能な ASCII の単一トークンとして stdout に出力し、終了コード 0 で終了するようにします。動作する設定については、[apiKeyHelper による認証情報のローテーション](/docs/ja/llm-gateway-connect#rotate-credentials-with-apikeyhelper)を参照してください。

975* `/status` を実行して、`apiKeyHelper` がアクティブな認証情報ソースであることを確認します。`apiKeyHelper` 行は `Failing` を表示し、最後の失敗の詳細(終了コードとコマンドのエラー出力など)を表示し、次の成功した実行後に消えます。v2.1.274 より前では、`/status` は認証情報ソースのみを表示し、失敗を表示しませんでした。981* `/status` を実行して失敗内容を確認し、`apiKeyHelper` が有効な認証情報ソースであることを確認します。`apiKeyHelper` の行には、終了コードやコマンドのエラー出力など、最後の失敗の詳細とともに `Failing` と表示され、次に実行が成功すると消えます。v2.1.274 より前では、`/status` には認証情報ソースのみが表示され、失敗は表示されませんでした。

976* コマンドが失敗するたびに、その終了コードとエラー出力がターミナルの `Authentication` パネルに表示されます。v2.1.212 より前では、パネルは `Cloud authentication` というタイトルでした。982* コマンドが失敗するたびに、その終了コードとエラー出力がターミナルの `Authentication` パネルにも表示されます。v2.1.212 より前では、パネルのタイトルは `Cloud authentication` でした。

977 983 

978<h3 id="invalid-request-header-value">984<h3 id="invalid-request-header-value">

979 無効なリクエストヘッダー値985 無効なリクエストヘッダー値

980</h3>986</h3>

981 987 

982Claude Code がリクエストヘッダーとして送信しようとしていた値に、HTTP ヘッダーが運べない文字が含まれています。改行、NUL バイト、または `U+00FF` より上の文字(カーリークォートやゼロ幅スペースなど)。Claude Code は何も送信される前にリクエストを停止し、修正する変数または設定に名前を付けます。通常の原因は、ドキュメントまたはチャットから貼り付けられた認証情報で、目に見えない文字または迷走改行が含まれていることです。988Claude Code がリクエストヘッダーとして送信しようとした値に、HTTP ヘッダーで扱えない文字が含まれています。これは、改行、NUL バイト、または曲線引用符やゼロ幅スペースなど `U+00FF` を超える文字です。Claude Code は何かを送信する前にリクエストを停止し、修正すべき変数または設定の名前を示します。よくある原因は、ドキュメントやチャットから貼り付けた認証情報に、目に見えない文字や余分な改行が含まれていたことです。

983 989 

984Claude Code は Claude API に直接リクエストを送信するとき、または [LLM ゲートウェイ](/docs/ja/llm-gateway) を通じてリクエストを送信するときにこのチェックを実行します。[Amazon Bedrock](/docs/ja/amazon-bedrock) などのサードパーティクラウドプロバイダーでは、Claude Code は送信前にこれを実行しません。990Claude Code は、Claude API に直接、または [LLM ゲートウェイ](/docs/ja/llm-gateway)経由でリクエストを送信するときにこのチェックを実行します。[Amazon Bedrock](/docs/ja/amazon-bedrock) などのサードパーティのクラウドプロバイダーでは、Claude Code は送信前にこのチェックを実行しません。

985 991 

986```text theme={null}992```text theme={null}

987Invalid auth token · Fix external auth token993Invalid auth token · Fix external auth token


989Invalid request header from the environment · Fix the environment variable995Invalid request header from the environment · Fix the environment variable

990```996```

991 997 

992メッセージの最初の部分は、不正な値がどこから来たかによって異なります:998メッセージの最初の部分は、不正な値がどこから来たかによって異なります。

993 999 

994* `Invalid auth token`:[`ANTHROPIC_AUTH_TOKEN`](/docs/ja/env-vars) または [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) からのベアラートークン1000* `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` ペアが問題かをカウントします。名前または値を繰り返さずに、両方を選択したため。1001* `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` など)からリクエストヘッダーにコピーする値。説明は修正する変数に名前を付けます。1002* `Invalid request header from the environment`: Claude Code が `CLAUDE_AGENT_SDK_CLIENT_APP` などの別の環境変数からリクエストヘッダーにコピーする値。説明に修正すべき変数の名前が示されます。

997 1003 

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) で失敗します。1004このチェックで検出された不正な `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 1005 

10002 番目の `·` の後、メッセージは問題を説明します。この完全な例のように:10062 つ目の `·` の後に、次の完全な例のようにメッセージが問題を説明します。

1001 1007 

1002```text theme={null}1008```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).1009Invalid 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```1010```

1005 1011 

1006位置は 1 から始まる文字をカウントします。説明は固定フレーズと文字数から構築されるため、値自体は含まれません。バイト順マーク、ゼロ幅スペース、カーリークォートなど、よく知られている目に見えない文字または活字文字である場合にのみ、問題のある文字に名前を付けます。その他はすべて `a non-ASCII character` として報告されます。1012位置は 1 から始まる文字数で数えます。説明は固定のフレーズと文字数から構成されるため、値そのものが含まれることはありません。問題の文字の名前が示されるのは、バイトオーダーマーク、ゼロ幅スペース、曲線引用符など、よく知られた不可視文字または活字上の文字である場合のみで、それ以外は `a non-ASCII character` として報告されます。

1007 1013 

1008**対応方法:**1014**対処方法:**

1009 1015 

1010* メッセージが名前を付ける変数または設定を再設定し、同じソースから貼り付けるのではなく、報告された位置の周囲の文字を再入力します1016* メッセージが示す変数または設定を再設定します。その際、同じソースから再度貼り付けるのではなく、報告された位置の周辺の文字を打ち直します

1011* `ANTHROPIC_CUSTOM_HEADERS` の場合は、1 行に 1 つの `Name: Value` ペアを保持し、メッセージがカウントするペアを書き直します1017* `ANTHROPIC_CUSTOM_HEADERS` の場合は、1 行に 1 つの `Name: Value` ペアを記述し、メッセージが示す番号のペアを書き直します

1012* `/status` を実行して、どの認証情報ソースがアクティブであるかを確認します1018* `/status` を実行して、有効な認証情報ソースを確認します

1013 1019 

1014<h3 id="this-organization-has-been-disabled">1020<h3 id="this-organization-has-been-disabled">

1015 このオーガニゼーションは無効になっています1021 この組織は無効化されている

1016</h3>1022</h3>

1017 1023 

1018Claude Code は、無効な Console オーガニゼーションから古い `ANTHROPIC_API_KEY` を使用しています。保存されたサブスクリプションログインがある場合、キーはそれをオーバーライドします。1024Claude Code が、無効化された Console 組織の古い `ANTHROPIC_API_KEY` を使用しています。サブスクリプションのログインが保存されている場合でも、キーがそれを上書きします。

1019 1025 

1020```text theme={null}1026```text theme={null}

1021Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead1027Your 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.1029API Error: 400 ... This organization has been disabled.

1024```1030```

1025 1031 

1026`·` の後のヒントは、保存された認証情報によって異なります。最初の形式は、保存された `/login` がキーをアンセットした後に引き継ぐことができるときに表示され、2 番目はキーが唯一の認証情報である場合に表示されます。1032`·` の後のヒントは、保存されている認証情報によって異なります。1 つ目の形式は、キーの設定を解除した後に保存済みの `/login` が代わりに使われる場合に表示され、2 つ目の形式は、キーが唯一の認証情報である場合に表示されます。

1027 1033 

1028環境変数は `/login` より優先されるため、シェルプロファイルでエクスポートされたキーまたは `.env` ファイルから読み込まれたキーは、動作する Pro または Max サブスクリプションがある場合でも使用されます。非対話モード(`-p`)では、キーが存在する場合は常に使用されます。1034環境変数は `/login` よりも優先されるため、シェルプロファイルでエクスポートされたキーや `.env` ファイルから読み込まれたキーは、有効な Pro または Max サブスクリプションがある場合でも使用されます。非対話モード(`-p`)では、キーが存在すれば常にそれが使用されます。

1029 1035 

1030**対応方法:**1036**対処方法:**

1031 1037 

1032* 現在のシェルで `ANTHROPIC_API_KEY` をアンセットし、シェルプロファイルから削除してから、`claude` を再起動します1038* 現在のシェルで `ANTHROPIC_API_KEY` の設定を解除してシェルプロファイルから削除し、`claude` を再起動します

1033* メッセージが `Update or unset` と言う場合、フォールバックする保存されたログインがありません。キーをアンセットして `/login` を実行するか、アクティブな Console オーガニゼーションからのキーに置き換えます1039* メッセージに `Update or unset` と表示される場合は、代わりに使える保存済みのログインがありません。キーの設定を解除して `/login` を実行するか、有効な Console 組織のキーに置き換えます。

1034* その後 `/status` を実行して、アクティブな認証情報がサブスクリプションであることを確認します1040* その後 `/status` を実行して、有効な認証情報がサブスクリプションであることを確認します

1035* 環境変数が設定されておらず、エラーが続く場合は、サポートに連絡するか、別のアカウントでサインインしてください1041* 環境変数が設定されていないのにエラーが続く場合は、サポートに問い合わせるか、別のアカウントでサインインしてください。

1036 1042 

1037<h3 id="your-organization-has-disabled-api-key-authentication">1043<h3 id="your-organization-has-disabled-api-key-authentication">

1038 オーガニゼーションが API キー認証を無効にしました1044 組織で API キー認証が無効化されている

1039</h3>1045</h3>

1040 1046 

1041このメッセージには Claude Code v2.1.169 以降が必要です。Console オーガニゼーションの管理者が API キー認証をオフにしたため、API は Claude Code が送信しているキーを拒否します。`·` の後の復旧ヒントは、キーがどこから来たかによって異なります:1047このメッセージには Claude Code v2.1.169 以降が必要です。Console 組織の管理者が API キー認証をオフにしているため、API は Claude Code が送信しているキーを拒否します。`·` の後の復旧のヒントは、キーの取得元によって異なります。

1042 1048 

1043```text theme={null}1049```text theme={null}

1044Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account1050Your 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 account1054Your organization has disabled API key authentication · Sign in again with your claude.ai account

1049```1055```

1050 1056 

1051最後の形式は Claude Desktop アプリが実行するセッション(Code タブや Cowork など)に表示され、アプリからもう一度サインインします。1057最後の形式は、Code タブや Cowork など Claude Desktop アプリが実行するセッションで表示され、その場合はアプリから再度サインインします。

1052 1058 

1053環境変数と `apiKeyHelper` は `/login` より優先されるため、どちらかがまだキーを供給している間は `/login` を実行するだけでは役に立ちません。[認証の優先順位](/docs/ja/authentication#authentication-precedence) を参照してください。1059環境変数と `apiKeyHelper` は `/login` よりも優先されるため、どちらかがまだキーを提供している間は、`/login` を実行するだけでは解決しません。[認証の優先順位](/docs/ja/authentication#authentication-precedence)を参照してください。

1054 1060 

1055**対応方法:**1061**対処方法:**

1056 1062 

1057* メッセージが `ANTHROPIC_API_KEY` に名前を付ける場合は、現在のシェルでアンセットし、シェルプロファイルまたは `.env` ファイルから削除してから、`claude` を再起動します1063* メッセージに `ANTHROPIC_API_KEY` が示されている場合は、現在のシェルで設定を解除し、シェルプロファイルまたは `.env` ファイルから削除してから、`claude` を再起動します

1058* メッセージが `apiKeyHelper` に名前を付ける場合は、`settings.json` から [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定を削除します1064* メッセージに `apiKeyHelper` が示されている場合は、`settings.json` から [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 設定を削除します

1059* `/login` を実行して claude.ai アカウントでサインインします1065* `/login` を実行して、claude.ai アカウントでサインインします

1060* その後 `/status` を実行して、アクティブな認証情報が API キーではなくサブスクリプションであることを確認します1066* その後 `/status` を実行して、有効な認証情報が API キーではなくサブスクリプションであることを確認します

1061* 自動化に API キー認証が必要な場合は、オーガニゼーション管理者に Console で再度有効にするよう依頼してください1067* 自動化のために API キー認証が必要な場合は、組織の管理者に Console で再度有効にするよう依頼します

1062 1068 

1063<h3 id="your-organization-has-disabled-claude-subscription-access">1069<h3 id="your-organization-has-disabled-claude-subscription-access">

1064 オーガニゼーションが Claude サブスクリプションアクセスを無効にしました1070 組織で Claude サブスクリプションアクセスが無効化されている

1065</h3>1071</h3>

1066 1072 

1067Claude オーガニゼーションは、サブスクリプションログインで Claude Code にサインインすることを許可していません。同じアカウントで `/login` を再度実行すると、同じエラーが返されます。1073Claude 組織で、サブスクリプションのログインによる Claude Code へのサインインが許可されていません。同じアカウントで `/login` を再度実行しても、同じエラーが返されます。

1068 1074 

1069```text theme={null}1075```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 access1076Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1071```1077```

1072 1078 

1073これはサーバー側のオーガニゼーション設定であるため、ローカル設定、環境変数、または CLI フラグからオーバーライドすることはできません。1079これはサーバー側の組織設定であるため、ローカル設定、環境変数、CLI フラグで上書きすることはできません。

1074 1080 

1075Agent SDK と `-p` 非対話モードは、これを `oauth_org_not_allowed` エラーコードとして表示します。1081Agent SDK と `-p` 非対話モードでは、これは `oauth_org_not_allowed` エラーコードとして表示されます。

1076 1082 

1077**対応方法:**1083**対処方法:**

1078 1084 

1079* 管理者にオーガニゼーションの Claude Code アクセスを有効にするよう依頼してください1085* 管理者に、組織で Claude Code へのアクセスを有効にするよう依頼します

1080* サブスクリプションの代わりに Console API キーで認証します。セットアップについては、[Claude Console 認証](/docs/ja/authentication#claude-console-authentication) を参照してください1086* サブスクリプションの代わりに Console の API キーで認証します。設定方法については、[Claude Console 認証](/docs/ja/authentication#claude-console-authentication)を参照してください。

1081* あなたが管理者で、アクセスを有効にするオプションが表示されない場合は、[Anthropic サポート](https://support.claude.com) に連絡してください1087* 管理者であるにもかかわらずアクセスを有効にするオプションが見当たらない場合は、[Anthropic サポート](https://support.claude.com)に問い合わせてください

1082 1088 

1083<h3 id="routines-are-disabled-by-your-organizations-policy">1089<h3 id="routines-are-disabled-by-your-organizations-policy">

1084 ルーチンはオーガニゼーションのポリシーで無効になっています1090 組織のポリシーによりルーティンが無効化されている

1085</h3>1091</h3>

1086 1092 

1087Team または Enterprise オーガニゼーションの Owner がオーガニゼーションレベルでルーチンをオフにしました。エラーは、[Routines](/docs/ja/routines) UI on claude.ai/code などからルーチンを作成または実行しようとするときに表示されます。Claude Code v2.1.227 以降では、同じ設定が CLI で [`/schedule` も非表示にします](/docs/ja/routines#troubleshooting)。1093Team または Enterprise 組織の Owner が、組織レベルでルーティンをオフにしています。このエラーは、claude.ai/code の [Routines](/docs/ja/routines) UI などからルーティンを作成または実行しようとしたときに表示されます。Claude Code v2.1.227 以降では、同じ設定により CLI の [`/schedule` も非表示になります](/docs/ja/routines#troubleshooting)。

1088 1094 

1089```text theme={null}1095```text theme={null}

1090Routines are disabled by your organization's policy.1096Routines are disabled by your organization's policy.

1091```1097```

1092 1098 

1093これはサーバー側の設定であるため、ローカル設定、環境変数、または CLI フラグからオーバーライドすることはできません。1099これはサーバー側の設定であるため、ローカル設定、環境変数、CLI フラグで上書きすることはできません。

1094 1100 

1095**対応方法:**1101**対処方法:**

1096 1102 

1097* オーガニゼーションの Owner に [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で **Routines** トグルを有効にするよう依頼してください1103* 組織の Owner に、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で **Routines** トグルを有効にするよう依頼します

1098* オーガニゼーションレベルのルーチンを必要としない 1 回限りのスケジュール作業については、[スケジュール済みタスク](/docs/ja/scheduled-tasks) を参照してください1104* 組織レベルのルーティンを必要としない単発のスケジュール作業については、[スケジュールタスク](/docs/ja/scheduled-tasks)を参照してください

1099 1105 

1100<h3 id="remote-control-requires-the-anthropic-api">1106<h3 id="remote-control-requires-the-anthropic-api">

1101 Remote Control には Anthropic API が必要です1107 Remote Control には Anthropic API が必要

1102</h3>1108</h3>

1103 1109 

1104セッションが Anthropic API に直接通信していないため、[Remote Control](/docs/ja/remote-control) が必要とします。1110セッションが Anthropic API と直接通信していません。[Remote Control](/docs/ja/remote-control) にはこれが必要です。

1105 1111 

1106```text theme={null}1112```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.1113Remote 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```1114```

1109 1115 

11102 番目の文は、セッションを Anthropic API から遠ざけた原因を説明します。v2.1.219 より前では、メッセージは最初の文だけでした。原因によって、メッセージは以下に名前を付けます:11162 つ目の文では、何がセッションを Anthropic API 以外にルーティングしたかを説明します。v2.1.219 より前では、メッセージは 1 つ目の文のみでした。原因に応じて、メッセージには次のものが示されます。

1111 1117 

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` など1118* `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 をブロックしませんでした1119* [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` ではなくローカルソケットを通じてリクエストを送信します1120* `ANTHROPIC_UNIX_SOCKET` が設定されているため、セッションが `api.anthropic.com` ではなくローカルソケット経由でリクエストを送信している

1115* `/login` を通じた enterprise [クラウドゲートウェイ](/docs/ja/claude-apps-gateway) サインイン。Remote Control をサポートしておらず、アンセットする変数がありません1121* `/login` で行ったエンタープライズ[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)のサインイン。これは Remote Control をサポートしておらず、解除する変数もありません

1116 1122 

1117**対応方法:**1123**対処方法:**

1118 1124 

1119* メッセージが名前を付ける変数(`CLAUDE_CODE_USE_BEDROCK` または `ANTHROPIC_BASE_URL` など)をアンセットし、セッションを再起動するか、Anthropic API に直接通信するセッションから Remote Control を起動します1125* `CLAUDE_CODE_USE_BEDROCK` や `ANTHROPIC_BASE_URL` など、メッセージが示す変数の設定を解除してセッションを再起動するか、Anthropic API と直接通信するセッションから Remote Control を開始します

1120* 変数がシェルで設定されていない場合は、[設定ファイル](/docs/ja/settings#where-settings-live) の `env` キーを確認してください。これはすべてのセッションに環境変数を適用します1126* シェルで変数が設定されていない場合は、すべてのセッションに環境変数を適用する[設定ファイル](/docs/ja/settings#where-settings-live)の `env` キーを確認します

1121* この他の Remote Control スタートアップメッセージについては、[Remote Control のトラブルシューティング](/docs/ja/remote-control#troubleshooting) を参照してください1127* このメッセージおよびその他の Remote Control 起動時のメッセージについては、[Remote Control のトラブルシューティング](/docs/ja/remote-control#troubleshooting)を参照してください

1122 1128 

1123<h3 id="remote-control-couldnt-refresh-your-login">1129<h3 id="remote-control-couldnt-refresh-your-login">

1124 Remote Control がログインを更新できませんでした1130 Remote Control がログインを更新できなかった

1125</h3>1131</h3>

1126 1132 

1127Claude Code は、保存された claude.ai ログインを使用して取得および更新する短命の認証情報で、ライブ [Remote Control](/docs/ja/remote-control) 接続を実行します。claude.ai がそのログインの受け入れを停止するか、Claude Code に保存されたログインが残っていない場合、Claude Code は Remote Control を停止し、再度サインインするよう求めます。どちらの失敗も、Claude Code がまだ接続しているときまたは後で認証情報を更新するときに発生する可能性があります。1133Claude Code は、保存された claude.ai のログインを使って取得・更新する短期間有効な認証情報で、[Remote Control](/docs/ja/remote-control) の接続を維持します。claude.ai がそのログインを受け付けなくなった場合や、Claude Code に保存済みのログインが残っていない場合、Claude Code は Remote Control を停止し、再度サインインする必要があります。どちらの失敗も、Claude Code がまだ接続中のときにも、後で認証情報を更新するときにも発生する可能性があります。

1128 1134 

1129Claude Code がログインサービスに保存されたログインの更新を要求し、応答がない場合、Remote Control を実行し続け、接続の現在の認証情報がまだ有効な間に更新を再試行します。Claude Code がログインサービスに到達できない、リクエストがタイムアウトする、またはサービスがログインを拒否せずに失敗する場合、更新は応答を取得しません。ログインサービスがその認証情報の有効期限が切れるときにまだ応答していない場合、Claude Code は Remote Control を停止し、`OAuth token refresh failed` を報告します。1135Claude Code がログインサービスに保存済みログインの更新を要求して応答が得られない場合、Remote Control を実行し続け、接続の現在の認証情報がまだ有効な間に更新を再試行します。Claude Code がログインサービスに到達できない場合、リクエストがタイムアウトした場合、またはサービスがログインを拒否せずに失敗した場合、更新の応答は得られません。その認証情報の有効期限が切れてもログインサービスが応答しない場合、Claude Code は Remote Control を停止し、`OAuth token refresh failed` を報告します。

1130 1136 

1131Claude Code が Remote Control を停止すると、警告と `Remote Control disconnected` で始まるトランスクリプト行に理由が表示されます。ローカルセッションは Remote Control なしで実行し続けます。このセクションでは、これらの行をカバーしています:1137Claude Code が Remote Control を停止すると、警告と、`Remote Control disconnected` で始まるトランスクリプトの行に理由が表示されます。ローカルセッションは Remote Control なしで実行を続けます。このセクションでは次の行を扱います。

1132 1138 

1133```text theme={null}1139```text theme={null}

1134Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control1140Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control


1140Remote Control disconnected — Signed out of Claude — run /login, then /remote-control1146Remote Control disconnected — Signed out of Claude — run /login, then /remote-control

1141```1147```

1142 1148 

1143Claude Code はメッセージの中央に原因に名前を付けます:1149Claude Code はメッセージの中間部分で原因を示します。

1144 1150 

1145* ` Claude.ai login expired` および `Claude.ai login was rejected`:claude.ai はもはや保存されたログイントークンを受け入れません。有効期限が切れたか取り消されたため1151* `Claude.ai login expired` と `Claude.ai login was rejected`: 保存されたログイントークンの有効期限が切れたか失効したため、claude.ai がそのトークンを受け付けなくなった

1146* ` OAuth token unavailable`:接続の認証情報が更新期限に達したときに、Claude Code に保存されたログイントークンがありませんでした1152* `OAuth token unavailable`: 接続の認証情報の更新時期が来たときに、Claude Code に保存済みのログイントークンがなかった

1147* ` OAuth token refresh failed`:claude.ai が Claude Code が再接続しているときに保存されたログイントークンを拒否し、トークンの更新は新しいものを生成しませんでした1153* `OAuth token refresh failed`: Claude Code の再接続中に claude.ai が保存済みのログイントークンを拒否し、トークンを更新しても新しいトークンが得られなかった

1148* ` JWT refresh failed: no OAuth token`:Claude Code は更新するための保存されたログイントークンを見つけませんでした1154* `JWT refresh failed: no OAuth token`: Claude Code が更新に使用する保存済みのログイントークンを見つけられなかった

1149* ` Signed out of Claude`:このマシンで、たとえば別のターミナルで `/logout` を実行してサインアウトしたため、Claude Code は接続を更新するための保存されたログインが残っていません1155* `Signed out of Claude`: 別のターミナルで `/logout` を実行するなどして、このマシンでサインアウトしたため、Claude Code に接続の更新に使える保存済みのログインが残っていない

1150 1156 

1151**対応方法:**1157**対処方法:**

1152 1158 

1153* `/login` を実行して再度サインインします1159* `/login` を実行して再度サインインします

1154* `/remote-control` を実行してセッションを再接続します。` run /login to restore Remote Control` で終わるメッセージはこのステップを必要としません。Claude Code はサインイン後に自動的に再接続します。1160* `/remote-control` を実行してセッションを再接続します。`run /login to restore Remote Control` で終わるメッセージでは、この手順は不要です。サインインすると Claude Code が自動的に再接続します。

1155 1161 

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 で追加されました。1162v2.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 1163 

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` で。1164v2.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 1165 

1160<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1166<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1161 サインイン済みアカウントが変更されたため Remote Control が停止しました1167 サインイン中のアカウントが変わったため Remote Control が停止した

1162</h3>1168</h3>

1163 1169 

1164Claude Code は、このマシンで別の claude.ai アカウントまたはオーガニゼーションにサインインしたときに、[Remote Control](/docs/ja/remote-control) セッション中にこの行を表示します。別のターミナルで `/login` を実行するなど、Claude Code セッションの外でスイッチを作成しました。1170[Remote Control](/docs/ja/remote-control) セッション中に、このマシンで別の claude.ai アカウントまたは組織にサインインすると、Claude Code にこの行が表示されます。この切り替えは、別のターミナルで `/login` を実行するなど、Claude Code セッションの外部で行われたものです。

1165 1171 

1166`/login` でサインインしている間に開始した Remote Control セッションは、その時点でサインインしていた claude.ai アカウントとオーガニゼーションに属しています。1172`/login` でサインインした状態で開始した Remote Control セッションは、その時点でサインインしていた claude.ai アカウントと組織に属します。

1167 1173 

1168```text theme={null}1174```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-control1175Remote 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```1176```

1171 1177 

1172Claude Code は claude.ai がアカウントまたはオーガニゼーションが変更されたことを確認するとすぐに Remote Control セッションを停止します。ローカルセッションは Remote Control なしで実行し続けます。1178Claude Code は、アカウントまたは組織が変わったことを claude.ai が確認するとすぐに Remote Control セッションを停止します。ローカルセッションは Remote Control なしで実行を続けます。

1173 1179 

1174**対応方法:**1180**対処方法:**

1175 1181 

1176* `/remote-control` を実行して、現在のアカウントまたはオーガニゼーションの下で新しい Remote Control セッションを開始します1182* `/remote-control` を実行して、現在のアカウントまたは組織で新しい Remote Control セッションを開始します

1177* 戻すには、`/login` を実行して前のアカウントまたはオーガニゼーションに再度サインインします。その後、`/remote-control` を実行します。1183* 元に戻すには、`/login` を実行して以前のアカウントまたは組織に再度サインインします。その後 `/remote-control` を実行します。

1178 1184 

1179v2.1.234 より前では、Claude Code は Claude Code セッションの外でアカウントまたはオーガニゼーションを切り替えたときに気付きませんでした。Claude Code は Remote Control セッションを接続したままにしておきました。Remote Control サーバーへの後のリクエストが `Remote Control server rejected the request (HTTP 404)` で失敗するまで。その失敗はスイッチの数時間後に来る可能性があります。1185v2.1.234 より前では、Claude Code セッションの外部で別のアカウントまたは組織に切り替えても、Claude Code はそれを検知しませんでした。Claude Code は、後続の Remote Control サーバーへのリクエストが `Remote Control server rejected the request (HTTP 404)` で失敗するまで、Remote Control セッションを接続したままにしていました。この失敗は、切り替えから数時間後に発生することもありました。

1180 1186 

1181<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1187<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1182 セッションを実行しているアプリがサインアウトしたか、アカウントを切り替えたため Remote Control が停止しました1188 セッションを実行しているアプリがサインアウトまたはアカウントを切り替えたため Remote Control が停止した

1183</h3>1189</h3>

1184 1190 

1185Claude デスクトップアプリまたは IDE がセッションをホストしている場合、Claude Code は `/login` ではなくそのアプリからログイントークンを取得します。claude.ai がそのトークンを拒否すると、Claude Code はアプリに新しいものを要求します。アプリが、サインアウトしたか、別の Claude アカウントにサインインしたと答える場合、Claude Code は [Remote Control](/docs/ja/remote-control) セッションを終了し、アプリに次のいずれかの行を送信します:1191Claude デスクトップアプリまたは IDE がセッションをホストしている場合、Claude Code は `/login` ではなくそのアプリからログイントークンを取得します。claude.ai がそのトークンを拒否すると、Claude Code はアプリに新しいトークンを要求します。アプリがサインアウトしている、または別の Claude アカウントにサインインしていると応答した場合、Claude Code は [Remote Control](/docs/ja/remote-control) セッションを終了し、アプリに次のいずれかの行を送信します。

1186 1192 

1187```text theme={null}1193```text theme={null}

1188Remote Control stopped — the app running this session is now signed in to a different Claude account1194Remote 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 on1195Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on

1190```1196```

1191 1197 

1192ローカルセッションは Remote Control なしで実行し続けます。1198ローカルセッションは Remote Control なしで実行を続けます。

1193 1199 

1194**対応方法:**1200**対処方法:**

1195 1201 

1196* アプリがサインアウトしている場合は、再度サインインしてから、アプリで Remote Control をオンに戻します1202* アプリがサインアウトしている場合は、アプリに再度サインインしてから、アプリで Remote Control をオンに戻します

1197* アプリがアカウントを切り替えた場合、Claude Code は終了したセッションを新しいアカウントの下で続行できません。そのアカウントの下で新しい Remote Control セッションを開始します。1203* アプリがアカウントを切り替えた場合、Claude Code は終了したセッションを新しいアカウントで続行できません。そのアカウントで新しい Remote Control セッションを開始してください。

1198 1204 

1199v2.1.238 より前では、Claude Code は両方のケースで [Remote Control がログインを更新できませんでした](#remote-control-couldnt-refresh-your-login) の下にリストされている `run /login` メッセージをアプリに送信していました。1205v2.1.238 より前では、どちらの場合も、Claude Code は [Remote Control がログインを更新できなかった](#remote-control-couldnt-refresh-your-login)に記載されている `run /login` のメッセージをアプリに送信していました。

1200 1206 

1201<h3 id="oauth-token-revoked-or-expired">1207<h3 id="oauth-token-revoked-or-expired">

1202 OAuth トークンが取り消されたか、有効期限が切れています1208 OAuth トークンが失効または期限切れ

1203</h3>1209</h3>

1204 1210 

1205保存されたログインは有効ではなくなりました。取り消されたトークンは、どこからでもサインアウトしたか、管理者がアクセスを削除したことを意味します。有効期限が切れたトークンは、自動更新がセッション中に失敗したことを意味します。1211保存されたログインが無効になっています。トークンの失効は、すべての場所でサインアウトしたか、管理者がアクセスを削除したことを意味します。トークンの期限切れは、セッション中に自動更新が失敗したことを意味します。

1206 1212 

1207どちらのメッセージも、Claude Code が送信したリクエストに対して API が返した拒否を報告します。保存されたログインが失敗した更新後に既にクリアされている場合、代わりに [ログインの有効期限が切れています](#login-expired) が表示されます。[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) で長命トークンで認証する場合、そのトークンが有効期限切れまたは取り消されたときに同じメッセージが表示されます。1213どちらのメッセージも、Claude Code が送信したリクエストに対して API が返した拒否を報告するものです。更新の失敗後に保存済みのログインがすでに消去されている場合は、代わりに[ログインの有効期限切れ](#login-expired)が表示されます。[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars) の長期間有効なトークンで認証している場合も、そのトークンの有効期限が切れるか失効すると同じメッセージが表示されます。

1208 1214 

1209```text theme={null}1215```text theme={null}

1210OAuth token revoked · Please run /login1216OAuth token revoked · Please run /login

1211Please run /login · API Error: 401 OAuth token has expired ...1217Please run /login · API Error: 401 OAuth token has expired ...

1212```1218```

1213 1219 

1214**対応方法:**1220**対処方法:**

1215 1221 

1216* `/login` を実行して再度サインインします1222* `/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 エラーで失敗しました。1223* `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 認証情報ストレージ復旧手順を参照してください1224* 起動するたびにログインを求められる場合は、[トラブルシューティング](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired)のシステムクロックの確認と macOS の認証情報ストレージの復旧手順を参照してください

1219* `403 Forbidden` や OAuth ブラウザの問題を含む他の失敗については、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication) を参照してください1225* `403 Forbidden` や OAuth のブラウザの問題など、その他の失敗については、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication)を参照してください

1220 1226 

1221<h3 id="api-error-401-invalid-authentication-credentials">1227<h3 id="api-error-401-invalid-authentication-credentials">

1222 API エラー:401 無効な認証認証情報1228 API Error: 401 Invalid authentication credentials

1223</h3>1229</h3>

1224 1230 

1225API は認証情報の形式を認識しましたが、その背後にあるアカウントまたはオーガニゼーションを拒否しました。Anthropic は、認証情報が最近取り消されたとき、オーガニゼーションが無効になったか、アクセスが削除されたとき、またはアカウント自体が非アクティブ化されたときにこのメッセージを返します。有効期限切れトークンが原因ではありません。認証情報は保存されたログインまたは承認された `ANTHROPIC_API_KEY` である可能性があり、修正は異なるため、まず `/status` を実行してどちらがアクティブであるかを確認してください。1231API は認証情報の形式を認識しましたが、その背後にあるアカウントまたは組織を拒否しました。Anthropic は、認証情報が最近失効した場合、組織が無効化されたかユーザーのアクセスを削除した場合、またはアカウント自体が無効化された場合にこのメッセージを返します。したがって、トークンの期限切れは原因ではありません。認証情報は保存されたログインの場合もあれば、承認済みの `ANTHROPIC_API_KEY` の場合もあり、修正方法が異なるため、まず `/status` を実行してどちらが有効かを確認してください。

1226 1232 

1227```text theme={null}1233```text theme={null}

1228Please run /login · API Error: 401 Invalid authentication credentials1234Please run /login · API Error: 401 Invalid authentication credentials

1229```1235```

1230 1236 

1231**対応方法:**1237**対処方法:**

1232 1238 

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` を実行してサブスクリプションにフォールバックします。1239* `/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 回実行します。認証情報が取り消された場合、新しいログインがそれを置き換えます。1240* `/status` にログインのみが表示される場合は、`/login` を 1 回実行します。認証情報が失効していた場合は、新しいログインで置き換えられます。

1235* 同じログインアカウントで同じメッセージが返される場合、アカウントまたはオーガニゼーションはアクティブではなくなりました。`/status` が報告するアカウントとオーガニゼーションを確認し、オーガニゼーション管理者にアクセスを復元するよう依頼してください。1241* 同じログインアカウントで同じメッセージが再び表示される場合は、アカウントまたは組織がアクティブではなくなっています。`/status` が報告するアカウントと組織を確認し、組織の管理者にアクセスの復元を依頼してください。

1236* [`ANTHROPIC_BASE_URL`](/docs/ja/env-vars) が [LLM ゲートウェイ](/docs/ja/llm-gateway) を指している場合、`401` の後のテキストは Anthropic のメッセージではなくゲートウェイのメッセージであり、`/login` はそれを変更しません。代わりにゲートウェイが期待する認証情報を修正してください。1242* [`ANTHROPIC_BASE_URL`](/docs/ja/env-vars) が [LLM ゲートウェイ](/docs/ja/llm-gateway)を指している場合、`401` の後のテキストは Anthropic ではなくゲートウェイのメッセージであり、`/login` では変わりません。代わりに、ゲートウェイが想定している認証情報を修正してください。

1237 1243 

1238<h3 id="login-expired">1244<h3 id="login-expired">

1239 ログインの有効期限が切れています1245 ログインの有効期限切れ

1240</h3>1246</h3>

1241 1247 

1242Claude Code は保存された claude.ai または Claude Console ログインを更新しようとしましたが、OAuth サービスは保存された更新トークンを拒否したため、Claude Code は保存された認証情報をクリアしました。その後、各モデルリクエストは、`/login` のみが新しい認証情報を作成できるため、API に到達する前にローカルで停止します。1248Claude Code は保存された claude.ai のログインを更新しようとしましたが、OAuth サービスが保存されたリフレッシュトークンを拒否したため、Claude Code は保存された認証情報を消去しました。それ以降、新しい認証情報を作成できるのは `/login` だけであるため、各モデルリクエストは API に到達する前にローカルでこのメッセージとともに停止します。

1243 1249 

1244v2.1.206 より前では、Claude Code はモデルリクエストを環境に残っている認証情報で送信し、すべてのモデルは [選択されたモデルに問題があります](#theres-an-issue-with-the-selected-model) または 401 で失敗しました。サインインを求めるプロンプトの代わりに。1250v2.1.206 より前では、Claude Code は環境に残っている認証情報を使ってモデルリクエストを送信し、その結果、サインインを促す代わりに、すべてのモデルが[選択したモデルに問題がある](#theres-an-issue-with-the-selected-model)または 401 で失敗していました。

1245 1251 

1246```text theme={null}1252```text theme={null}

1247Login expired · Please run /login1253Login expired · Please run /login

1248```1254```

1249 1255 

1250[非対話モード](/docs/ja/headless)(`-p`)および [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のように読み、構造化エラーコードは `authentication_failed` です:1256[非対話モード](/docs/ja/headless)(`-p`)と [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のようになり、構造化エラーコードは `authentication_failed` です。

1251 1257 

1252```text theme={null}1258```text theme={null}

1253Failed to authenticate: OAuth session expired and could not be refreshed1259Failed to authenticate: OAuth session expired and could not be refreshed

1254```1260```

1255 1261 

1256これは [OAuth トークンが取り消されたか、有効期限が切れています](#oauth-token-revoked-or-expired) と同じ状態ではありません。これらのメッセージは API が返した拒否を報告します。Claude Code 自体は、既に更新に失敗したログインに対して `Login expired` を生成するため、リクエストを送信しません。更新が失敗する理由がログインが古いのではなくアカウント自体が中断されている場合、Claude Code は代わりに [アカウントが保留中です](#your-account-is-on-hold) を表示します。1262これは [OAuth トークンが失効または期限切れ](#oauth-token-revoked-or-expired)とは異なる状態です。そちらのメッセージは API が返した拒否を報告するものです。`Login expired` は、すでに更新に失敗したログインに対して Claude Code 自身が生成するものであるため、リクエストは送信されません。ログインが古いのではなくアカウント自体が停止されているために更新が失敗した場合、Claude Code は代わりに[アカウントが保留中](#your-account-is-on-hold)を表示します。

1257 1263 

1258API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティプロバイダーで認証されたセッションは、保存されたログインを使用せず、このメッセージを表示しません。1264API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティのプロバイダーで認証されたセッションは、保存されたログインを使用しないため、このメッセージが表示されることはありません。

1259 1265 

1260リクエストが失敗する前にこの状態を確認できます。[`/status`](/docs/ja/commands) は `Login` 行を表示します。`Expired — log in again` を読み、保存されている有効期限切れログインのオーガニゼーションとメールを読みます。行は、保存されたログインがアクティブな認証情報であり、もはや更新できない場合にのみ表示されます。別の方法で認証されたセッションは、有効期限切れログインが保存されたままであっても、行を表示しません。v2.1.210 より前では、`/status` はこの状態で、クリアされた認証情報がそれを報告するものが何もないため、ログインが存在したことを示していません。1266リクエストが失敗する前にこの状態を確認できます。[`/status`](/docs/ja/commands) には、`Expired — log in again` と表示される `Login` 行と、期限切れのログインについて保存されている組織とメールアドレスが表示されます。この行は、保存されたログインが有効な認証情報であり、かつもう更新できない場合にのみ表示されます。別の方法で認証されたセッションでは、期限切れのログインが保存されたままであっても、この行は表示されません。v2.1.210 より前では、消去された認証情報から報告できる情報がなかったため、この状態では `/status` にログインが存在したことを示すものは何も表示されませんでした。

1261 1267 

1262**対応方法:**1268**対処方法:**

1263 1269 

1264* `/login` を実行して再度サインインします。サインインせずに再試行すると、すべてのリクエストで同じメッセージが表示されます。1270* `/login` を実行して再度サインインします。サインインせずに再試行すると、すべてのリクエストで同じメッセージが表示されます。

1265* 非対話モードでは、同じ環境で `claude` を実行し、`/login` を完了してから、コマンドを再実行します。対話的にサインインできない自動化の場合は、`ANTHROPIC_API_KEY` で認証するか、[`claude setup-token` で長命トークンを生成します](/docs/ja/authentication#generate-a-long-lived-token)。1271* 別の Claude Code ウィンドウで claude.ai アカウントでサインインする場合、このセッションがいつそのログインを自動的に使い始めるかについては、[ログインしていない](#not-logged-in)を参照してください。

1266* サインインが失敗し続ける場合は、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication) を参照してください1272* 非対話モードでは、同じ環境で `claude` を実行して `/login` を完了してから、コマンドを再実行します。対話的にサインインできない自動化では、`ANTHROPIC_API_KEY` で認証するか、[`claude setup-token` で長期間有効なトークンを生成](/docs/ja/authentication#generate-a-long-lived-token)します。

1273* サインインが失敗し続ける場合は、[ログインと認証](/docs/ja/troubleshoot-install#login-and-authentication)を参照してください

1267 1274 

1268<h3 id="could-not-refresh-your-login">1275<h3 id="could-not-refresh-your-login">

1269 ログインを更新できませんでした。別の Claude Code プロセスがそれを更新しています1276 別の Claude Code プロセスが更新中のためログインを更新できなかった

1270</h3>1277</h3>

1271 1278 

1272このメッセージはログインが拒否されたことを意味しません。保存された claude.ai ログインが有効期限切れになり、更新が必要でした。同じマシン上の別の Claude Code プロセスが共有更新ロックを保持していたか、終了してそれを残していたため、更新はこのセッションが待機している間に進行しませんでした。Claude Code はリクエストを送信する前に停止します:1279このメッセージは、ログインが拒否されたことを意味するものではありません。保存された claude.ai のログインの有効期限が切れており、更新が必要でした。同じマシン上の別の Claude Code プロセスが共有の更新ロックを保持していたか、ロックを残したまま終了しており、このセッションが待機している間に更新が進みませんでした。Claude Code は送信前にリクエストを停止します。

1273 1280 

1274```text theme={null}1281```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 /login1282Could 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```1283```

1277 1284 

1278[非対話モード](/docs/ja/headless)(`-p`)および [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のように読み、構造化エラーコードは `server_error` です:1285[非対話モード](/docs/ja/headless)(`-p`)と [Agent SDK](/docs/ja/agent-sdk/overview) では、メッセージは次のようになり、構造化エラーコードは `server_error` です。

1279 1286 

1280```text theme={null}1287```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 again1288Failed 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```1289```

1283 1290 

1284API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティプロバイダーで認証されたセッションは、保存されたログインを使用せず、このメッセージを表示しません。1291API キー、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/env-vars)、またはサードパーティのプロバイダーで認証されたセッションは、保存されたログインを使用しないため、このメッセージが表示されることはありません。

1285 1292 

1286**対応方法:**1293**対処方法:**

1287 1294 

1288* 1 分後に再試行してください。別のプロセスが最初に更新を完了する場合、このセッションは更新されたログインを使用します。1295* 1 分後に再試行します。別のプロセスが先に更新を完了した場合、このセッションは更新されたログインを使用します。

1289* メッセージが返され続ける場合は、他の Claude Code ウィンドウとプロセスを閉じてから、再試行してください。1296* メッセージが繰り返し表示される場合は、他の Claude Code のウィンドウとプロセスを閉じてから再試行します。

1290* 他の Claude Code プロセスが実行されていない状態で返される場合は、`/login` を実行してください。再度サインインすると、更新ロックで待機しません。1297* 他の Claude Code プロセスが実行されていないのにメッセージが表示される場合は、`/login` を実行します。再度サインインする場合は、更新ロックを待機しません。

1291 1298 

1292<h3 id="couldnt-save-your-login">1299<h3 id="couldnt-save-your-login">

1293 ログインを保存できませんでした1300 ログインを保存できなかった

1294</h3>1301</h3>

1295 1302 

1296claude.ai でサインインしましたが、Claude Code はログインを認証情報ストアに保存できなかったため、ログインは完了しませんでした。macOS では、ログインキーチェーンがロックされている場合(スリープまたはアイドル時など)、Claude Code が同じセッション中に既に認証情報を読み取ったまたは保存した後に発生する可能性があります。1303claude.ai でサインインしましたが、Claude Code がログインを認証情報ストアに保存できなかったため、ログインが完了しませんでした。macOS では、同じセッション中に Claude Code がすでにログインキーチェーンの認証情報を読み取りまたは保存した後に、スリープやアイドル状態などでキーチェーンがロックされると、これが発生することがあります。

1297 1304 

1298```text theme={null}1305```text theme={null}

1299Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.1306Couldn'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.1307Couldn't save your login. Try logging in again.

1301```1308```

1302 1309 

1303最初の形式は macOS に表示され、2 番目は他の場所に表示されます。一時的な認証情報ストア障害(タイムアウトまたは読み取り不可能なストアなど)は同じメッセージを生成します。13101 つ目の形式は macOS で表示され、2 つ目の形式はそれ以外のすべての環境で表示されます。タイムアウトやストアを読み取れないなど、認証情報ストアの一時的な障害でも同じメッセージが表示されます。

1304 1311 

1305**対応方法:**1312**対処方法:**

1306 1313 

1307* macOS では、ログインキーチェーンのロックを解除してから、`/login` を再度実行します1314* macOS では、ログインキーチェーンのロックを解除してから、`/login` を再度実行します

1308* 他のプラットフォームでは、`/login` を再度実行します1315* その他のプラットフォームでは、`/login` を再度実行します

1309* ログインがまだ保存されない場合は、[ログインしていないか、トークンの有効期限が切れている](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired) を参照してください。キーチェーンのロック解除コマンドと他の認証情報ストレージ復旧手順1316* それでもログインが保存されない場合は、キーチェーンのロック解除コマンドやその他の認証情報ストレージの復旧手順について、[ログインしていない、またはトークンの有効期限切れ](/docs/ja/troubleshoot-install#not-logged-in-or-token-expired)を参照してください

1310 1317 

1311<h3 id="failed-to-start-oauth-callback-server">1318<h3 id="failed-to-start-oauth-callback-server">

1312 OAuth コールバックサーバーを起動できませんでした1319 OAuth コールバックサーバーを起動できなかった

1313</h3>1320</h3>

1314 1321 

1315`/login`、`claude auth login`、または `claude setup-token` がブラウザを通じてサインインするとき、Claude Code は `127.0.0.1` でリッスンポートを開くため、ブラウザはサインイン結果をそれに返すことができます。このメッセージは Claude Code がそのポートを開くことができなかったことを意味し、サインインはブラウザウィンドウまたはログイン URL が表示される前に停止します:1322`/login`、`claude auth login`、または `claude setup-token` がブラウザ経由でサインインする際、Claude Code は `127.0.0.1` でリッスンポートを開き、ブラウザがサインイン結果を Claude Code に返せるようにします。このメッセージは Claude Code がそのポートを開けなかったことを意味し、ブラウザウィンドウやログイン URL が表示される前にサインインが停止します。

1316 1323 

1317```text theme={null}1324```text theme={null}

1318Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1325Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1319```1326```

1320 1327 

1321メッセージが `Is port 0 in use?` で終わる場合、IPv4 ループバックアドレス `127.0.0.1` でリッスンしようとする試みは完全に失敗しました。失敗はログイン URL が存在する前に発生するため、`Paste code here if prompted` フローは回避策として利用できません。1328メッセージが `Is port 0 in use?` で終わる場合、IPv4 のループバックアドレス `127.0.0.1` でのリッスンの試行そのものが失敗しています。ログイン URL が存在する前に失敗が発生するため、回避策として `Paste code here if prompted` フローを使用することはできません。

1322 1329 

1323**対応方法:**1330**対処方法:**

1324 1331 

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 が認証情報を選択する方法を説明しています。1332* ローカルのリスナーを使わずにすぐにサインインするには、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` を実行して、レポートに環境の詳細が含まれるようにしてください。1333* 代わりにこのマシンでブラウザのサインインを使用するには、Claude Code が `127.0.0.1` でリッスンできる必要があります。サンドボックス内で実行している場合は、サンドボックスのポリシーでローカルポートでのリッスンが許可されていることを確認してから、`/login` を再度実行します。リッスンできるはずなのに失敗する場合は、`/feedback` を実行して、レポートに環境の詳細が含まれるようにしてください。

1327 1334 

1328<h3 id="claude-login-not-accepted">1335<h3 id="claude-login-not-accepted">

1329 Claude ログインが受け入れられません1336 Claude のログインが受け付けられなかった

1330</h3>1337</h3>

1331 1338 

1332[クラウドセッション](/docs/ja/claude-code-on-the-web) を開始しようとしましたが、サーバーは 401 で作成を拒否しました。このマシンが送信した Claude ログインを受け入れませんでした。通常、ログインが有効期限切れまたは取り消されたためです。1339[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しようとしましたが、サーバーが 401 でセッションの作成を拒否しました。通常はログインの有効期限切れまたは失効が原因で、サーバーはこのマシンが送信した Claude のログインを受け付けませんでした。

1333 1340 

1334行の最初の部分は、サーバーが 1 つを与える場合はサーバー自身の理由です。それ以外の場合、行は次のように読みます:1341行の最初の部分は、サーバーが理由を示した場合はその理由になります。それ以外の場合、行は次のようになります。

1335 1342 

1336```text theme={null}1343```text theme={null}

1337Claude login not accepted · Run /login, then try again1344Claude login not accepted · Run /login, then try again

1338```1345```

1339 1346 

1340**対応方法:**1347**対処方法:**

1341 1348 

1342* `/login` を実行し、サインインを完了してから、セッションを再度開始します1349* `/login` を実行してサインインを完了してから、セッションを再度開始します

1343 1350 

1344<h3 id="artifacts-need-a-claude-ai-login">1351<h3 id="artifacts-need-a-claude-ai-login">

1345 Artifacts には claude.ai ログインが必要です1352 アーティファクトには claude.ai のログインが必要

1346</h3>1353</h3>

1347 1354 

1348Claude Code は、セッションに artifacts に使用できる claude.ai ログインがないため、[Artifacts](/docs/ja/artifacts) の公開または読み取りを拒否しました。1355セッションにアーティファクトに使用できる claude.ai のログインがないため、Claude Code は[アーティファクト](/docs/ja/artifacts)の公開または読み取りを拒否しました。

1349 1356 

1350メッセージのすべての形式は同じ単語で始まり、その後にセッションの認証方法に応じた救済が続きます。競合する認証情報がない場合は、次のように読みます:1357メッセージはどの形式でも同じ言葉で始まり、その後にセッションの認証方法に応じた対処法が続きます。競合する認証情報がない場合は、次のようになります。

1351 1358 

1352```text theme={null}1359```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.1360Artifacts 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```1361```

1355 1362 

1356**対応方法:**1363**対処方法:**

1357 1364 

1358* `/login` を実行し、**Claude account with subscription** を選択します。**Anthropic Console account** オプションは claude.ai 認証情報を提供しません。1365* `/login` を実行して **Claude account with subscription** を選択します。**Anthropic Console account** オプションでは claude.ai の認証情報は提供されません。

1359* メッセージが `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定、または前の `/login` で保存された Console キーなど、優先順位を取る認証情報に名前を付ける場合は、メッセージが言う方法でそれを削除してから、`/login` を実行します1366* `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定、以前の `/login` で保存された Console キーなど、優先される認証情報がメッセージに示されている場合は、メッセージに従ってそれを削除してから `/login` を実行します

1360* メッセージがこのリモートセッションがそれを起動したマシンを通じて認証されると言う場合は、そのマシンで claude.ai にサインインしてから、セッションを再接続します1367* このリモートセッションが起動元のマシンを介して認証するとメッセージに示されている場合は、そのマシンで claude.ai にサインインしてから、セッションを再接続します

1361* メッセージが認証情報がセッションのホスト環境によって注入されると言う場合は、そのセッションでそれを変更できません。claude.ai にサインインしているセッションを開始します1368* 認証情報がセッションのホスト環境によって注入されているとメッセージに示されている場合は、そのセッションでは変更できません。claude.ai にサインインしているセッションを開始してください

1362* [可用性](/docs/ja/artifacts#availability) については、プラン、モデルプロバイダー、オーガニゼーションポリシーなど、Artifacts が持つ他の要件を参照してください1369* プラン、モデルプロバイダー、組織のポリシーなど、アーティファクトのその他の要件については、[利用可能性](/docs/ja/artifacts#availability)を参照してください

1363 1370 

1364<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1371<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1365 管理者ポリシーがクラウドゲートウェイサインインを必要とします1372 管理者のポリシーによりクラウドゲートウェイのサインインが必要

1366</h3>1373</h3>

1367 1374 

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 つのメッセージのいずれかが表示されます:1375このマシンの管理者の[管理設定](/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 1376 

1370```text theme={null}1377```text theme={null}

1371Not signed in to the Cloud gateway — run /login.1378Not signed in to the Cloud gateway — run /login.

1372```1379```

1373 1380 

1374セッションにゲートウェイサインインがない場合、モデルリクエストはこのメッセージで失敗します。たとえば、ポリシーがマシンに到達してから `/login` を実行していないため。1381ポリシーがマシンに適用されてから `/login` を実行していないなど、セッションにゲートウェイのサインインがない場合、モデルリクエストはこのメッセージで失敗します。

1375 1382 

1376`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 認証情報も設定されており、管理設定が `forceLoginMethod` を設定している場合、Claude Code は代わりに起動時に次のメッセージで終了します:1383マシンに Anthropic が発行した認証情報もあり、管理設定で `forceLoginMethod` または `forceLoginOrgUUID` が設定されている場合、Claude Code は代わりに起動時に終了します。その認証情報は、`ANTHROPIC_API_KEY` または `ANTHROPIC_AUTH_TOKEN` 変数、`apiKeyHelper` 設定、または以前の Claude Console ログインで保存された API キーである可能性があります。メッセージは次のように始まります。

1377 1384 

1378```text theme={null}1385```text theme={null}

1379Administrator policy requires a Cloud gateway sign-in on this machine; the1386Administrator policy requires a Cloud gateway sign-in on this machine; the


1381ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.1388ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.

1382```1389```

1383 1390 

1384**対応方法:**1391**対処方法:**

1385 1392 

1386* `/login` を実行し、**Cloud gateway** 画面でサインインを完了します1393* `/login` を実行し、**Cloud gateway** 画面でサインインを完了します

1387* スタートアップメッセージについては、設定した `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 設定を削除し、`claude` を起動して `/login` を実行します1394* 起動時のメッセージについては、設定した `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 設定を削除します。保存された Console の API キーを削除するには `claude auth logout` を実行します。これにより、保存された claude.ai のログインも削除されます。`CLAUDE_CODE_USE_*` でクラウドプロバイダーを選択している場合、セッションはサインインなしで開始されます。それ以外の場合は、`claude` を起動して `/login` を実行します

1388* マシンがゲートウェイを必要としないと思われる場合は、それを管理する管理者に、管理設定から `forceLoginMethod` と `forceLoginGatewayUrl` を削除するよう依頼してください1395* マシンでゲートウェイを必須にすべきではないと考える場合は、マシンを管理している管理者に、管理設定から `forceLoginMethod` と `forceLoginGatewayUrl` を削除するよう依頼します

1389 1396 

1390v2.1.265 では、回帰により、API キー、`apiKeyHelper`、またはカスタムヘッダーで認証し、マシンに管理者要件がない一部の LLM ゲートウェイおよびプロキシ設定でも最初のメッセージが表示されました。v2.1.266 以降に更新してください。設定を変更する必要はありません。1397v2.1.265 では、回帰により、マシンに管理者の要件がない場合でも、API キー、`apiKeyHelper`、またはカスタムヘッダーで認証する一部の LLM ゲートウェイおよびプロキシの設定で 1 つ目のメッセージが表示されていました。v2.1.266 以降に更新してください。設定を変更する必要はありません。

1391 1398 

1392v2.1.261 より前では、`forceLoginMethod` を `"gateway"` に設定したマシンでは、Claude Code は古い保存されたログインを使用し、モデルリクエストを失敗させず、設定された環境認証情報を `This machine's managed settings require a first-party login` で報告しました。スタートアップメッセージの代わりに。v2.1.265 より前では、管理設定が `forceLoginGatewayUrl` のみを設定したマシンはゲートウェイサインインを必要とせず、Claude Code はそこで古い認証情報を使用していました。1399v2.1.261 より前では、`forceLoginMethod` を `"gateway"` に設定したマシンで、Claude Code はモデルリクエストを失敗させる代わりに残っている保存済みのログインを使用し、設定された環境の認証情報については起動時のメッセージではなく `This machine's managed settings require a first-party login` を報告していました。v2.1.265 より前では、管理設定で `forceLoginGatewayUrl` のみを設定したマシンではゲートウェイのサインインが必須にならず、Claude Code はそこに残っている認証情報を使用していました。

1393 1400 

1394<h3 id="your-account-is-on-hold">1401<h3 id="your-account-is-on-hold">

1395 アカウントが保留中です1402 アカウントが保留中

1396</h3>1403</h3>

1397 1404 

1398Claude アカウントがサスペンドされています。Claude Code は、保存されたログインを更新しようとして保留について学ぶときに最初のメッセージを表示し、2 番目はブラウザで完了したサインインが報告するときに表示されます:1405ログインに使用している Claude アカウントが停止されています。Claude Code は、保存されたログインを更新しようとして保留を知った場合に 1 つ目のメッセージを表示し、ブラウザで完了したサインインが保留を報告した場合に 2 つ目のメッセージを表示します。

1399 1406 

1400```text theme={null}1407```text theme={null}

1401Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1408Your 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/restricted1409Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1403```1410```

1404 1411 

1405同じアカウントで再度サインインしても、保留がアカウントにあるため、メッセージはクリアされません。ログインではなく。[非対話モード](/docs/ja/headless)(`-p`)および [Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `account_on_hold` です。v2.1.235 より前では、Claude Code は保留中のアカウントを [ログインの有効期限が切れています · /login を実行してください](#login-expired) として報告しました。その復旧手順は保留をクリアできません。1412保留はログインではなくアカウントにかけられているため、同じアカウントで再度サインインしてもメッセージは解消されません。[非対話モード](/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 1413 

1407**対応方法:**1414**対処方法:**

1408 1415 

1409* メッセージのリンクを開いて、保留の詳細を表示するか、それに異議を唱えます1416* メッセージ内のリンクを開いて、保留の詳細を確認するか、異議を申し立てます

1410* 保留の影響を受けない別の Claude アカウントまたは API キーがある場合は、保留が解決されている間、作業を続けることができます。そのアカウントで `/login` を実行するか、`ANTHROPIC_API_KEY` でキーを設定します1417* 保留の影響を受けない別の Claude アカウントや API キーがある場合は、保留が解決されるまでの間も作業を続けられます。そのアカウントで `/login` を実行するか、`ANTHROPIC_API_KEY` でキーを設定してください

1411 1418 

1412<h3 id="anthropic-profile-login-expired">1419<h3 id="anthropic-profile-login-expired">

1413 Anthropic プロファイルログインの有効期限が切れています1420 Anthropic プロファイルのログインの有効期限切れ

1414</h3>1421</h3>

1415 1422 

1416Claude Code は、保存されたログイン認証情報が有効期限切れの Anthropic 認証情報プロファイルを通じて認証しており、プロファイルは Claude Code が更新するために使用できる更新認証情報を保持していません。Claude Code は、同じ有効期限切れ認証情報を読み取るため、各リクエストをローカルで停止します。1423Claude Code は Anthropic 認証情報プロファイルを介して認証していますが、そのプロファイルに保存されたログイン認証情報の有効期限が切れており、プロファイルには Claude Code が更新に使用できるリフレッシュ認証情報がありません。再試行しても同じ期限切れの認証情報が読み取られるため、Claude Code は再試行せずに各リクエストをローカルで停止します。

1417 1424 

1418```text theme={null}1425```text theme={null}

1419Anthropic profile login expired · Re-authenticate your Anthropic profile1426Anthropic 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 profile1427Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

1421```1428```

1422 1429 

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` などのベアラートークン、またはサードパーティプロバイダーで認証されたセッションは、このメッセージを表示しません。1430これは、有効な認証情報が Anthropic 認証情報プロファイルから取得されている場合にのみ表示されます。このプロファイルは、`ANTHROPIC_PROFILE` 環境変数で選択したもの、Claude Code が Anthropic 設定ディレクトリでアクティブなプロファイルとして検出したもの、または [API キーなしでサインイン](/docs/ja/authentication#sign-in-without-an-api-key)したときに Claude Code が書き込んだもののいずれかです。API キー、`ANTHROPIC_AUTH_TOKEN` などのベアラートークン、またはサードパーティのプロバイダーで認証するセッションでは、このメッセージが表示されることはありません。

1424 1431 

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 がそれを発見したかによって異なります:1432[キーなしのサインインを提供している](/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 1433 

1427* `ANTHROPIC_PROFILE` を明示的に設定すると、メッセージは `Re-authenticate your Anthropic profile` で終わります。1434* `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` フォームを表示していました。1435* Claude Code が設定ディレクトリからプロファイルを検出した場合、メッセージは `/login` を提案します。これは、Claude Code が検出したプロファイルよりも有効な `/login` を優先し、代わりに claude.ai または Console アカウントで認証するためです。v2.1.234 より前では、この場合も Claude Code は `Re-authenticate your Anthropic profile` の形式を表示していました。

1429 1436 

1430**対応方法:**1437**対処方法:**

1431 1438 

1432* プロファイルに再度サインインしてから、再試行します。[キーレスサインインを提供する](/docs/ja/authentication#sign-in-without-an-api-key) マシンでは、`/login` を実行し、キーレス Console サインインまたは Claude Platform CLI の `ant auth login` が書き込んだプロファイルの Anthropic Console アカウントを選択します。他のプロファイルの場合は、それらを作成したツールを使用します1439* プロファイルに再度サインインしてから再試行します。[キーなしのサインインを提供している](/docs/ja/authentication#sign-in-without-an-api-key)マシンでは、キーなしの Console サインインまたは Claude Platform CLI の `ant auth login` が書き込んだプロファイルについては、`/login` を実行して Anthropic Console アカウントを選択します。その他のプロファイルについては、それを作成したツールを使用します

1433* 管理者がプロファイルの認証情報をプロビジョニングした場合は、新しいものを発行するよう依頼してください1440* 管理者がプロファイルの認証情報をプロビジョニングした場合は、新しい認証情報を発行するよう依頼します

1434* `/status` を実行してアクティブな認証情報ソースとプロファイル名を確認します1441* `/status` を実行して、有効な認証情報ソースとプロファイル名を確認します

1435* プロファイルの使用を停止するには、設定した場合は `ANTHROPIC_PROFILE` をアンセットし、`/login` または `ANTHROPIC_API_KEY` などの別の方法で認証します1442* プロファイルの使用をやめるには、`ANTHROPIC_PROFILE` を設定している場合は設定を解除してから、`/login` や `ANTHROPIC_API_KEY` など別の方法で認証します

1436 1443 

1437<h3 id="oauth-scope-requirement">1444<h3 id="oauth-scope-requirement">

1438 OAuth スコープ要件1445 OAuth スコープの要件

1439</h3>1446</h3>

1440 1447 

1441保存されたトークンは、新しい機能が必要とする権限スコープより前のものです:1448保存されたトークンは、新しい機能が必要とする権限スコープより前に作成されたものです。

1442 1449 

1443```text theme={null}1450```text theme={null}

1444OAuth token does not meet scope requirement: user:profile1451OAuth token does not meet scope requirement: user:profile

1445```1452```

1446 1453 

1447**対応方法:**1454**対処方法:**

1448 1455 

1449* `/login` を実行して、現在のスコープで新しいトークンを取得します。最初にログアウトする必要はありません。1456* `/login` を実行して、現在のスコープを持つ新しいトークンを取得します。先にログアウトする必要はありません。

1450 1457 

1451<h3 id="claude-ai-rejected-the-session-token">1458<h3 id="claude-ai-rejected-the-session-token">

1452 claude.ai がセッショントークンを拒否しました1459 claude.ai がセッショントークンを拒否した

1453</h3>1460</h3>

1454 1461 

1455[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) リクエストが失敗しました。claude.ai が Claude Code ログインからのトークンを拒否したため。通常、有効期限切れのログイン。更新できませんでした。拒否されたトークンはコネクタ自身の claude.ai での認可ではなく、ログインであるため、コネクタを再度認可しても解決しません。`/mcp` では、コネクタは `session token rejected` として表示され、その詳細ビューは次のように読みます:1462claude.ai が Claude Code のログインのトークンを拒否したため、[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)のリクエストが失敗しました。拒否されたトークンは、claude.ai でのコネクタ自体の認可ではなくログインのものであるため、コネクタを再度認可しても解決しません。`/mcp` では、コネクタは `session token rejected` と表示され、その詳細ビューには次のように表示されます。

1456 1463 

1457```text theme={null}1464```text theme={null}

1458claude.ai rejected the session token. Run /login, then reconnect.1465claude.ai rejected the session token. Run /login, then reconnect.

1459```1466```

1460 1467 

1461**対応方法:**1468**対処方法:**

1462 1469 

1463* `/login` を実行して再度サインインします1470* `/login` を実行して再度サインインします

1464* `/mcp` からコネクタを再接続するか、`/mcp reconnect <server>` を実行します。再度サインインする前に再接続すると、コネクタは同じ状態のままになります。`/mcp` パネルの **Reconnect** オプションは `your claude.ai session token was rejected` を報告します。入力された `/mcp reconnect <server>` フォームは、トークンがまだ拒否されていても、成功した再接続を報告します。1471* `/mcp` からコネクタを再接続するか、`/mcp reconnect <server>` を実行します。再度サインインする前に再接続しても、コネクタは同じ状態のままです。`/mcp` パネルの **Reconnect** オプションは `your claude.ai session token was rejected` を報告します。入力する `/mcp reconnect <server>` 形式では、トークンがまだ拒否されている場合でも再接続の成功が報告されます。

1465 1472 

1466v2.1.222 より前では、Claude Code はコネクタを認証が必要として標記しました。これはコネクタの認可フローを指しましたが、完了してもこの状態は解決しませんでした。1473v2.1.222 より前では、Claude Code は代わりにコネクタを認証が必要な状態としてマークしていたため、コネクタの認可フローに誘導されましたが、それを完了しても状態は解消されませんでした。

1467 1474 

1468<h3 id="mcp-server-needs-you-to-sign-in-again">1475<h3 id="mcp-server-needs-you-to-sign-in-again">

1469 MCP サーバーがもう一度サインインするよう求めています1476 MCP サーバーで再度サインインが必要

1470</h3>1477</h3>

1471 1478 

1472リモート [MCP サーバー](/docs/ja/mcp) がセッション中のツール呼び出しで認証情報を拒否しました。通常、サインインまたはトークンが有効期限切れになったため。ツール呼び出しは失敗し、`/mcp` はサーバーを [認証が必要](/docs/ja/mcp#authenticate-with-remote-mcp-servers) として標記します。1479リモートの [MCP サーバー](/docs/ja/mcp)が、セッション中のツール呼び出しで認証情報を拒否しました。通常は、サインインまたはトークンの有効期限が切れたか、ツールが必要とする権限がトークンにないことが原因です。ツール呼び出しは失敗し、`/mcp` はサーバーを[認証が必要](/docs/ja/mcp#authenticate-with-remote-mcp-servers)な状態としてマークします。

1473 1480 

1474Claude Code からサインインするサーバー(claude.ai コネクタを含む)の場合、サインインが有効期限切れまたは取り消されました:1481claude.ai コネクタを含め、Claude Code からサインインするサーバーの場合は、サインインの有効期限が切れたか失効しています。

1475 1482 

1476```text theme={null}1483```text theme={null}

1477MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)1484MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)

1478```1485```

1479 1486 

1480`/mcp` を実行し、サーバーを選択し、そのメニューから再度サインインします。1487`/mcp` を実行してサーバーを選択し、そのメニューから再度サインインします。

1481 1488 

1482[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) スクリプトで設定されたサーバーの場合、Claude Code はこれを表示する前にヘルパーを再実行し、呼び出しを 1 回再試行しました:1489[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) スクリプトで設定されたサーバーの場合、Claude Code はこのメッセージを表示する前に、すでにヘルパーを再実行して呼び出しを 1 回再試行しています。

1483 1490 

1484```text theme={null}1491```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)1492MCP 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```1493```

1487 1494 

1488ヘルパーがサーバーが受け入れる認証情報を返すことを確認してから、`/mcp` から再接続します。これはヘルパーを再実行します。1495ヘルパーがサーバーの受け付ける認証情報を返すことを確認してから、`/mcp` から再接続します。これによりヘルパーが再度実行されます。

1489 1496 

1490設定に静的な `Authorization` ヘッダーを持つサーバーの場合:1497設定に静的な `Authorization` ヘッダーがあるサーバーの場合:

1491 1498 

1492```text theme={null}1499```text theme={null}

1493MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)1500MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

1494```1501```

1495 1502 

1496サーバーが設定されている場所でヘッダー値を更新してから、`/mcp` から再接続します。1503サーバーが設定されている場所でヘッダーの値を更新してから、`/mcp` から再接続します。

1497 1504 

1498v2.1.273 より前では、3 つのケースすべてが `MCP server "<name>" requires re-authorization (token expired)` を表示していました。1505v2.1.273 より前では、サインインの有効期限切れ、`headersHelper`、`Authorization` ヘッダーのいずれの場合も `MCP server "<name>" requires re-authorization (token expired)` と表示されていました。

1499 1506 

1500サーバーは、HTTP 403 `insufficient_scope` でツール呼び出しを拒否して、スコープを認可するよう求めることもできます。時々、トークンが既にリストしているもの。メッセージはそのスコープに名前を付けます:1507サーバーは、スコープの認可を求めるために HTTP 403 `insufficient_scope` でツール呼び出しを拒否することもあります。トークンにすでに記載されているスコープの場合もあります。メッセージにはそのスコープが示されます。

1501 1508 

1502```text theme={null}1509```text theme={null}

1503MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate1510MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

1504```1511```

1505 1512 

1506`/mcp` を実行し、サーバーを選択し、そのメニューから再度認証します。1513`/mcp` を実行してサーバーを選択し、そのメニューから再度認証します。

1507 1514 

1508サーバーの設定が [`oauth.scopes`](/docs/ja/mcp#restrict-oauth-scopes) も [`authServerMetadataUrl`](/docs/ja/mcp#override-oauth-metadata-discovery) も設定しない場合、Claude Code はサーバーが名前を付けたスコープをリクエストします。どちらかの設定を使用すると、Claude Code はその設定のスコープをリクエストします。`oauth.scopes` をピン留めした場合は、再度認証する前にそのリストに欠落しているスコープを追加します。1515サーバーの設定で [`oauth.scopes`](/docs/ja/mcp#restrict-oauth-scopes) も [`authServerMetadataUrl`](/docs/ja/mcp#override-oauth-metadata-discovery) も設定されていない場合、Claude Code はサーバーが示したスコープを要求します。どちらかの設定がある場合、Claude Code は代わりにその設定のスコープを要求します。`oauth.scopes` を固定している場合は、再度認証する前に不足しているスコープをそのリストに追加してください。

1509 1516 

1510v2.1.274 より前では、このケースは `needs you to sign in again` メッセージを表示し、v2.1.273 より前は他のケースのように `requires re-authorization (token expired)` を表示していました。1517v2.1.274 より前では、このケースでは `needs you to sign in again` メッセージが表示され、v2.1.273 より前では他のケースと同様に `requires re-authorization (token expired)` が表示されていました。

1511 1518 

1512<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">1519<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1513 MCP サーバー URL が見つからないか、有効な URL ではありません1520 MCP サーバーの URL がないか有効な URL ではない

1514</h3>1521</h3>

1515 1522 

1516Claude Code がリモート MCP サーバーの OAuth サインインを開始することを拒否しました。サーバーの設定された `url` が URL として解析されないため。Claude Code がサーバーに報告するより具体的な設定問題がない限り、[`claude mcp login <name>`](/docs/ja/mcp#authenticate-from-the-command-line) をシェルで実行すると、拒否が出力されます:1523サーバーに設定された `url` が URL として解析できないため、Claude Code はリモートの MCP サーバーの OAuth サインインの開始を拒否しました。Claude Code がそのサーバーについてより具体的な設定の問題を報告しない限り、シェルで [`claude mcp login <name>`](/docs/ja/mcp#authenticate-from-the-command-line) を実行すると、拒否は次のように出力されます。

1517 1524 

1518```text theme={null}1525```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.1526Couldn'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```1527```

1521 1528 

1522**対応方法:**1529**対処方法:**

1523 1530 

1524* サーバーが設定されている場所でエントリの `url` をサーバーの実際のエンドポイントに設定するか、その [`${VAR}` リファレンス](/docs/ja/mcp#environment-variable-expansion-in-mcp-json) が名前を付ける環境変数を設定してから、サインインを再度実行します。1531* サーバーが設定されている場所で、エントリの `url` にサーバーの実際のエンドポイントを設定するか、その [`${VAR}` 参照](/docs/ja/mcp#environment-variable-expansion-in-mcp-json)が示す環境変数を設定してから、サインインを再度実行します。

1525 1532 

1526<h3 id="issuer-mismatch-in-authorization-response">1533<h3 id="issuer-mismatch-in-authorization-response">

1527 認可応答での発行者の不一致1534 認可レスポンスの発行者の不一致

1528</h3>1535</h3>

1529 1536 

1530[MCP OAuth サインイン](/docs/ja/mcp#authenticate-with-remote-mcp-servers) 中に、認可サーバーは Claude Code に `iss` パラメーターでリダイレクトバックしました。これは Claude Code がサーバーの OAuth メタデータから期待していた発行者に名前を付けていません。このステップでの間違った発行者は、認可サーバーの混合攻撃がどのように見えるかです。Claude Code は認可コードを交換する代わりにサインインを失敗させます。Claude Code はブラウザサインイン後の `/mcp` サーバーメニューにエラーを表示します:1537[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 1538 

1532```text theme={null}1539```text theme={null}

1533Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1540Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

1534```1541```

1535 1542 

1536`expected` はサーバーの OAuth メタデータからの発行者であり、`received` はリダイレクトが運んだ `iss` 値です。リダイレクトが `iss` パラメーターを運ばないサインインはチェックに合格します。サーバーのメタデータが `authorization_response_iss_parameter_supported` を設定しない限り。その場合、Claude Code はサインインを失敗させます。1543`expected` はサーバーの OAuth メタデータにある発行者で、`received` はリダイレクトに含まれていた `iss` の値です。リダイレクトに `iss` パラメーターが含まれていないサインインはチェックを通過しますが、サーバーのメタデータで `authorization_response_iss_parameter_supported` が設定されている場合は、Claude Code はサインインを失敗させます。

1537 1544 

1538**対応方法:**1545**対処方法:**

1539 1546 

1540* `/mcp` からサインインを再度試してください1547* `/mcp` からサインインを再試行します

1541* エラーが繰り返される場合は、サーバーオペレーターに報告してください。修正はサーバー側です。認可サーバーは、メタデータで宣伝する同じ発行者を `iss` パラメーターで返す必要があります1548* エラーが繰り返される場合は、サーバーの運用者に報告します。修正はサーバー側で行う必要があります。認可サーバーは、メタデータで公開しているのと同じ発行者を `iss` パラメーターで返す必要があります

1542* サーバーが修正されている間に接続するには、[`MCP_SDK_GENERATION=v1`](/docs/ja/env-vars) で Claude Code を起動します。その [ランタイム](/docs/ja/mcp#mcp-client-runtimes) はこのチェックを実行しません。これは混合攻撃に対する保護を削除するため、サーバー側の修正を優先してください1549* サーバーの修正中に接続するには、[`MCP_SDK_GENERATION=v1`](/docs/ja/env-vars) を指定して Claude Code を起動します。その[ランタイム](/docs/ja/mcp#mcp-client-runtimes)はこのチェックを実行しません。これにより混同攻撃に対する保護がなくなるため、サーバー側での修正を優先してください

1543 1550 

1544v2.1.232 より前では、Claude Code は段階的なロールアウトでのみ v2 ランタイムを使用するか、`MCP_SDK_GENERATION=v2` を設定したときに使用していました。1551v2.1.232 より前では、Claude Code は段階的なロールアウト中か、`MCP_SDK_GENERATION=v2` を設定した場合にのみ v2 ランタイムを使用していました。

1545 1552 

1546<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">1553<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1547 HTTPS 以外のトークンエンドポイントへの認証情報の送信を拒否しています1554 HTTPS 以外のトークンエンドポイントへの認証情報の送信を拒否

1548</h3>1555</h3>

1549 1556 

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 がサーバーのトークンを更新するたびに再度発生します。1557[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 1558 

1552完全な形式では、メッセージは MCP SDK から来ており、拒否したトークンエンドポイントを引用しています。デバッグログでは、サインインの場合は `Error during auth completion:` の後に続き、更新の場合は `Token refresh failed:` の後に続きます。シェルでは、`claude mcp login <name>` は `Couldn't complete authentication for "<name>":` の後に出力し、セッションでは `/mcp` はサーバーのメニューの下に表示されます:1559完全な形式では、メッセージは MCP SDK から出力され、拒否したトークンエンドポイントを引用します。デバッグログでは、サインインの場合は `Error during auth completion:` の後に、更新の場合は `Token refresh failed:` の後に続きます。シェルでは、`claude mcp login <name>` が `Couldn't complete authentication for "<name>":` の後にこれを出力し、セッション内では `/mcp` がサーバーのメニューの下にこれを表示します。

1553 1560 

1554```text theme={null}1561```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).1562Refusing 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```1563```

1557 1564 

1558Claude Code は、クエリ文字列または長いランダムに見えるパス セグメントを持つサーバー URL を、おそらくシークレットとして扱います。そのようなサーバーの場合、MCP SDK が発生させるサインインエラーを表示またはログに記録する前に編集します。このエラーは、リリース間で変更される可能性がある短い名前(`io` など)として読み、その後に `from the MCP SDK for` と編集されたサーバー URL が続きます。MCP SDK からの他のエラーはそこで同じ形状を取ります。編集されたメッセージは、サーバーのトークンエンドポイントが `localhost`、`127.0.0.1`、または `::1` 以外のアドレスで plain `http://` である場合にのみ、このエラーである可能性があります。1565Claude Code は、クエリ文字列や長いランダムに見えるパスセグメントを持つサーバー URL を、秘密情報を含む可能性があるものとして扱います。そのようなサーバーについては、MCP SDK が発生させるサインインエラーを表示またはログに記録する前に秘匿化します。この場合、このエラーは `io` のようなリリース間で変わる可能性のある短い名前の後に、`from the MCP SDK for` と秘匿化されたサーバー URL が続く形で表示されます。MCP SDK からのその他のエラーも同じ形になります。秘匿化されたメッセージがこのエラーである可能性があるのは、サーバーのトークンエンドポイントが `localhost`、`127.0.0.1`、`::1` 以外のアドレスにあるプレーンな `http://` である場合のみです。

1559 1566 

1560**対応方法:**1567**対処方法:**

1561 1568 

1562* そのトークンエンドポイントを HTTPS で提供します。たとえば、リバースプロキシまたはトンネルの背後にサーバーを配置して TLS を終了し、サーバーが `https://` アドレスをアドバタイズするように設定します1569* そのトークンエンドポイントを 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 で提供することを優先してください1570* サーバーを変更せずに接続するには、[`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 1571 

1565<h3 id="aws-credentials-expired-or-invalid">1572<h3 id="aws-credentials-expired-or-invalid">

1566 AWS 認証情報が有効期限切れまたは無効です1573 AWS の認証情報が期限切れまたは無効

1567</h3>1574</h3>

1568 1575 

1569AWS セッショントークンが有効期限切れまたは拒否されました。このメッセージは [Claude Platform on AWS](/docs/ja/claude-platform-on-aws) または [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint) からの 401 に表示されます。これらのプロバイダーが有効期限切れのセキュリティトークンを報告する方法です。1576AWS のセッショントークンの有効期限が切れたか、拒否されました。このメッセージは、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws) または [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint)からの 401 で表示されます。これらのプロバイダーは、期限切れのセキュリティトークンをこのように報告します。

1570 1577 

1571中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `AWS credentials expired or invalid` です:1578中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `AWS credentials expired or invalid` です。

1572 1579 

1573```text theme={null}1580```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 ...1581AWS 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```1582```

1576 1583 

1577v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されました。1584v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されていました。

1578 1585 

1579**対応方法:**1586**対処方法:**

1580 1587 

1581* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1588* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1582* [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) が設定されている場合は、メッセージで名前が付けられたコマンド(`aws sso login --profile myprofile` など)を別のターミナルで実行し、ブラウザサインインを完了してから、再試行します。それ以外の場合は、自分で使用する AWS 認証情報を更新します。SSO サインイン、アクセスキー、API キー、またはプロキシトークン1589* [`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) を参照してください1590* 対話セッションで `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 が有効であることを確認します1591* 更新コマンドが成功した後もエラーが繰り返される場合は、同じシェルとプロファイルで `aws sts get-caller-identity` を実行し、Claude Code の外部で ID が有効であることを確認します

1585 1592 

1586<h3 id="aws-authentication-failed">1593<h3 id="aws-authentication-failed">

1587 AWS 認証が失敗しました1594 AWS の認証に失敗した

1588</h3>1595</h3>

1589 1596 

1590AWS プロバイダーが 403 を返したか、[Amazon Bedrock](/docs/ja/amazon-bedrock) が 401 を返しました。1597AWS プロバイダーが 403 を返したか、[Amazon Bedrock](/docs/ja/amazon-bedrock) が 401 を返しました。

1591 1598 

1592Amazon Bedrock は有効期限切れのセキュリティトークンを 403 として報告しますが、403 は認可拒否(IAM 権限の欠落など `AccessDeniedException`)を報告する方法でもあります。Claude Code はこれら 2 つの原因を区別できません。1599Amazon Bedrock は期限切れのセキュリティトークンを 403 として報告しますが、IAM 権限の不足による `AccessDeniedException` などの認可の拒否も 403 として報告します。Claude Code はこの 2 つの原因を区別できません。

1593 1600 

1594Amazon Bedrock からの 401 は、リクエストパスの他の何か(企業プロキシなど)から来ているため、[AWS 認証情報が有効期限切れまたは無効です](#aws-credentials-expired-or-invalid) の下ではなくここに着地します。そのエンドポイントからの 401 は通常、他の何かから来ています。1601Amazon Bedrock は期限切れのトークンを 401 として報告しないため、Amazon Bedrock からの 401 も [AWS の認証情報が期限切れまたは無効](#aws-credentials-expired-or-invalid)ではなくここに分類されます。そのエンドポイントからの 401 は通常、企業のプロキシなど、リクエスト経路上の別の要素から返されます。

1595 1602 

1596認証情報の更新は有効期限切れトークンを修正でき、他の原因を修正できないため、メッセージは両方を提供します:1603認証情報を更新すると期限切れのトークンは解決しますが、その他の原因は解決できないため、メッセージでは両方を提示します。

1597 1604 

1598```text theme={null}1605```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 ...1606AWS 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```1607```

1601 1608 

1602中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `AWS authentication failed` です。1609中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `AWS authentication failed` です。

1603 1610 

1604403 が、指定されたモデル ID でモデルへのアクセス権がないという Amazon Bedrock の答えである場合、ヒントは代わりに Amazon Bedrock コンソールでアカウントとリージョンのモデルを有効にするよう指示します。1611403 が、指定されたモデル ID のモデルへのアクセス権がないという Amazon Bedrock の応答である場合、ヒントは代わりに、Amazon Bedrock コンソールでアカウントとリージョンに対してモデルを有効にするよう指示します。

1605 1612 

1606v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されました。1613v2.1.273 より前では、このメッセージは `awsAuthRefresh` が設定されている場合にのみ表示されていました。

1607 1614 

1608**対応方法:**1615**対処方法:**

1609 1616 

1610* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1617* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1611* 有効期限切れ認証情報が原因である可能性があるため、AWS 認証情報を更新します。設定されている場合は [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) コマンドで名前が付けられたコマンドを実行するか、SSO サインイン、アクセスキー、API キー、またはプロキシトークンを自分で更新します1618* 認証情報の期限切れが原因である場合に備えて、AWS の認証情報を更新します。設定されている場合はメッセージに示された [`awsAuthRefresh`](/docs/ja/amazon-bedrock#advanced-credential-configuration) コマンドを実行するか、SSO サインイン、アクセスキー、API キー、またはプロキシトークンを自分で更新します

1612* 認証情報が最新の場合は、[IAM 設定](/docs/ja/amazon-bedrock#iam-configuration) の IAM 権限が使用している ID に接続されていることを確認し、選択されたモデルがアカウントとリージョンで有効になっていることを確認します1619* 認証情報が最新である場合は、[IAM の設定](/docs/ja/amazon-bedrock#iam-configuration)にある IAM 権限が使用している ID にアタッチされていること、および選択したモデルがアカウントとリージョンで有効になっていることを確認します

1613* `aws sts get-caller-identity` を実行してリクエストが使用する ID を確認します1620* `aws sts get-caller-identity` を実行して、リクエストでどの ID が使用されているかを確認します

1614 1621 

1615<h3 id="google-cloud-credentials-expired-or-invalid">1622<h3 id="google-cloud-credentials-expired-or-invalid">

1616 Google Cloud 認証情報が有効期限切れまたは無効です1623 Google Cloud の認証情報が期限切れまたは無効

1617</h3>1624</h3>

1618 1625 

1619[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) の Google Cloud 認証情報が有効期限切れまたは拒否されました。リクエストが 401 を返しました。これは Agent Platform が認証情報の有効期限切れを報告する方法です。1626[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) 用の Google Cloud の認証情報の有効期限が切れたか、拒否されました。リクエストは 401 を返しました。Agent Platform は認証情報の期限切れをこのように報告します。

1620 1627 

1621中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `Google Cloud credentials expired or invalid` です:1628中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `Google Cloud credentials expired or invalid` です。

1622 1629 

1623```text theme={null}1630```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 ...1631Google 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```1632```

1626 1633 

1627**対応方法:**1634**対処方法:**

1628 1635 

1629* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1636* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1630* アプリケーションデフォルト認証情報で認証する場合は、メッセージで名前が付けられた [`gcpAuthRefresh`](/docs/ja/google-vertex-ai#advanced-credential-configuration) コマンドまたは `gcloud auth application-default login` を実行し、サインインを完了してから、再試行します1637* アプリケーションのデフォルト認証情報で認証している場合は、メッセージに示された [`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` のゲートウェイトークンを更新してから、再試行します1638* `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) を参照してください1639* サービスアカウントのキーファイルで認証している場合は、`GOOGLE_APPLICATION_CREDENTIALS` が有効なキーを指していることを確認します。[GCP の認証情報の設定](/docs/ja/google-vertex-ai#3-configure-gcp-credentials)を参照してください

1633* 更新後もエラーが繰り返される場合は、同じシェルで `gcloud auth application-default print-access-token` を使用して Claude Code の外で ID が機能することを確認します1640* 更新後もエラーが繰り返される場合は、同じシェルで `gcloud auth application-default print-access-token` を実行し、Claude Code の外部で ID が機能することを確認します

1634 1641 

1635v2.1.273 より前では、Agent Platform からの 401 は、Google Cloud 認証情報を更新できない一般的な `Please run /login` または `Failed to authenticate` メッセージを表示していました。1642v2.1.273 より前では、Agent Platform からの 401 では代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されていましたが、これでは Google Cloud の認証情報を更新できません。

1636 1643 

1637<h3 id="google-cloud-authentication-failed">1644<h3 id="google-cloud-authentication-failed">

1638 Google Cloud 認証が失敗しました1645 Google Cloud の認証に失敗した

1639</h3>1646</h3>

1640 1647 

1641[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) が 403 を返しました。これは有効期限切れ認証情報ではなく認可拒否に使用します。通常、認証する ID に IAM 権限がないか、モデルがプロジェクトで有効になっていません。1648[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) が 403 を返しました。Agent Platform は、期限切れの認証情報ではなく認可の拒否に 403 を使用します。通常は、認証に使用している ID に IAM 権限が不足しているか、プロジェクトでモデルが有効になっていないことが原因です。

1642 1649 

1643中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `Google Cloud authentication failed` です:1650中間のアクションのヒントは設定によって異なります。変わらない部分は先頭の `Google Cloud authentication failed` です。

1644 1651 

1645```text theme={null}1652```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 ...1653Google 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```1654```

1648 1655 

1649**対応方法:**1656**対処方法:**

1650 1657 

1651* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1658* 認証情報がこの環境によって管理されているとヒントに示されている場合、Claude Code を起動したアプリが認証情報を所有しており、ここにあるその他の手順は適用されません。再試行するか、管理者に問い合わせてください

1652* 認証する ID に [IAM 設定](/docs/ja/google-vertex-ai#iam-configuration) のロールが付与されていることを確認します1659* [IAM の設定](/docs/ja/google-vertex-ai#iam-configuration)にあるロールが、認証に使用している ID に付与されていることを確認します

1653* モデルがプロジェクトで有効になっていることを確認します。[モデルアクセスをリクエストする](/docs/ja/google-vertex-ai#2-request-model-access) を参照してください1660* プロジェクトでモデルが有効になっていることを確認します。[モデルへのアクセスのリクエスト](/docs/ja/google-vertex-ai#2-request-model-access)を参照してください

1654 1661 

1655v2.1.273 より前では、Agent Platform からの 403 は、Google Cloud 認証情報を更新できない一般的な `Please run /login` または `Failed to authenticate` メッセージを表示していました。1662v2.1.273 より前では、Agent Platform からの 403 では代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されていましたが、これでは Google Cloud の認証情報を更新できません。

1656 1663 

1657<h3 id="microsoft-foundry-authentication-failed">1664<h3 id="microsoft-foundry-authentication-failed">

1658 Microsoft Foundry 認証が失敗しました1665 Microsoft Foundry authentication failed

1659</h3>1666</h3>

1660 1667 

1661[Microsoft Foundry](/docs/ja/microsoft-foundry) が 401 または 403 を返しました。リクエストの Azure 認証情報が拒否されたか、その背後にある ID が Foundry リソースへのアクセス権を持っていません。`/login` は Azure 認証情報をミントできません。中央のアクション ヒントはセットアップによって異なります。安定した部分は先頭の `Microsoft Foundry authentication failed` です:1668[Microsoft Foundry](/docs/ja/microsoft-foundry) が 401 または 403 を返しました。リクエストの Azure 認証情報が拒否されたか、その背後の ID が Foundry リソースへのアクセス権を持っていません。`/login` では Azure 認証情報を発行できません。中央のアクションヒントは環境によって異なります。変わらない部分は先頭の `Microsoft Foundry authentication failed` です。

1662 1669 

1663```text theme={null}1670```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 ...1671Microsoft 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```1672```

1666 1673 

1667**対応方法:**1674**対処方法:**

1668 1675 

1669* ヒントが認証情報がこの環境で管理されていると言う場合、Claude Code を起動したアプリが認証情報を所有し、ここの他のステップは適用されません。再試行するか、管理者に連絡してください1676* ヒントに認証情報がこの環境によって管理されていると表示されている場合、Claude Code を起動したアプリが認証情報を所有しているため、ここにある他の手順は適用されません。再試行するか、管理者に問い合わせてください

1670* [Azure 認証情報を設定する](/docs/ja/microsoft-foundry#2-configure-azure-credentials) で設定した認証情報を更新します。`ANTHROPIC_FOUNDRY_API_KEY` をローテーションするか、新しい `ANTHROPIC_FOUNDRY_AUTH_TOKEN` をミントするか、`az login` を実行してデフォルト Microsoft Entra 認証情報チェーンが再度サインインできるようにします1677* [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) を参照してください1678* 認証情報が最新の場合は、その ID が Foundry リソースへのアクセス権を持っていることを確認してください。[Azure RBAC の設定](/docs/ja/microsoft-foundry#azure-rbac-configuration)を参照してください

1672 1679 

1673v2.1.273 より前では、Microsoft Foundry からの 401 または 403 は、Azure 認証情報を更新できない一般的な `Please run /login` または `Failed to authenticate` メッセージを表示していました。1680v2.1.273 より前では、Microsoft Foundry からの 401 または 403 に対して、代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されていましたが、これでは Azure 認証情報を更新できません。

1674 1681 

1675<h3 id="could-not-load-aws-or-google-cloud-credentials">1682<h3 id="could-not-load-aws-or-google-cloud-credentials">

1676 AWS またはGoogle Cloud 認証情報を読み込めませんでした1683 Could not load AWS or Google Cloud credentials

1677</h3>1684</h3>

1678 1685 

1679Claude Code は、実行されているマシンの AWS 認証情報プロバイダーチェーンまたは Google アプリケーションデフォルト認証情報から使用可能な認証情報を取得できなかったため、クラウドプロバイダーにリクエストが到達しませんでした。Claude Code はキャッシュされた認証情報をクリアし、表示する前に 2 回再試行します。`·` の後の詳細は、有効期限切れの SSO セッション、`Could not load the default credentials` として報告される欠落アプリケーションデフォルト認証情報、または `invalid_grant` として報告される取り消されたサインインなど、特定の原因に名前を付けます:1686Claude Code は、実行中のマシン上で AWS 認証情報プロバイダーチェーンまたは Google のアプリケーションのデフォルト認証情報から使用可能な認証情報を取得できなかったため、リクエストはクラウドプロバイダーに到達しませんでした。Claude Code はキャッシュされた認証情報をクリアし、2 回再試行してからこのメッセージを表示します。`·` の後の詳細には具体的な原因が示されます。たとえば、期限切れの SSO セッション、`Could not load the default credentials` として報告されるアプリケーションのデフォルト認証情報の欠落、`invalid_grant` として報告される取り消されたサインインなどです。

1680 1687 

1681```text theme={null}1688```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.1689API 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.1690API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1684```1691```

1685 1692 

1686[非対話モード](/docs/ja/headless) で `-p` を使用し、[Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `cloud_credential_error` です。v2.1.267 より前では、メッセージは `API Error:` の後の詳細テキストのみを表示し、構造化コードは `server_error` または `unknown` でした。1693`-p` を使用した[非対話モード](/docs/ja/headless)および [Agent SDK](/docs/ja/agent-sdk/overview) では、構造化エラーコードは `cloud_credential_error` です。v2.1.267 より前では、メッセージには `API Error:` の後の詳細テキストのみが表示され、構造化コードは `server_error` または `unknown` でした。

1687 1694 

1688**対応方法:**1695**対処方法:**

1689 1696 

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 の外で認証情報を確認する方法を示しています1697* `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) に従ってください1698* 詳細が `AWS default-chain credential resolve timed out` の場合、チェーンは失敗したのではなく停止しているため、代わりに [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out) の手順に従ってください

1692 1699 

1693<h3 id="aws-default-chain-credential-resolve-timed-out">1700<h3 id="aws-default-chain-credential-resolve-timed-out">

1694 AWS default-chain credential resolve がタイムアウトしました1701 AWS default-chain credential resolve timed out

1695</h3>1702</h3>

1696 1703 

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) をクリアし、このエラーが表示される前に再試行するため、このエラーが表示されるまでにチェーンは繰り返された試行でスタールしています。1704AWS のデフォルト認証情報プロバイダーチェーンが 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 1705 

1699```text theme={null}1706```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.1707API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1701```1708```

1702 1709 

1703一般的な原因は、AWS プロファイルの `credential_process` コマンドが受け取ることができない入力を待機し、インスタンスメタデータサービス(IMDS)がチェーンのプローブに応答しないコンテナまたは VM です。1710よくある原因は、AWS プロファイル内の `credential_process` コマンドが受け取れない入力を待機している場合や、コンテナや VM のインスタンスメタデータサービス(IMDS)がチェーンのプローブに応答しない場合です。

1704 1711 

1705v2.1.267 より前では、メッセージは `API Error: AWS default-chain credential resolve timed out` と読みました。1712v2.1.267 より前では、メッセージは `API Error: AWS default-chain credential resolve timed out` でした。

1706v2.1.207 より前では、スタールしたチェーンはリクエストを無期限に待機したままにしておきました。1713v2.1.207 より前では、チェーンが停止するとリクエストは失敗せずに無期限に待機し続けていました。

1707 1714 

1708**対応方法:**1715**対処方法:**

1709 1716 

1710* 同じシェルで同じ `AWS_PROFILE` を使用して `aws sts get-caller-identity` を実行します。それもハングする場合は、プロファイルを修正します。対話的にプロンプトを表示する `credential_process` コマンドが一般的な原因です。1717* 同じシェルで同じ `AWS_PROFILE` を使用して `aws sts get-caller-identity` を実行してください。これもハングする場合は、プロファイルを修正してください。対話的に入力を求める `credential_process` コマンドがよくある原因です。

1711* Claude Code を起動する前にサインインステップを完了します。たとえば `aws sso login --profile myprofile`。これにより、チェーンはブラウザフローを待機する代わりにローカル SSO キャッシュから解決されます1718* Claude Code を起動する前にサインイン手順を完了してください。たとえば `aws sso login --profile myprofile` を実行します

1712* チェーンが `aws-vault` などのラッパーを使用した MFA を使用した SSO など、60 秒以上の正当なインタラクティブサインインを実行する場合は、ミリ秒単位で制限を上げます。[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars)1719* `aws-vault` などのラッパーを介した MFA 付きの SSO のように、チェーンが実行する対話的なサインインに正当な理由で 60 秒以上かかる場合は、[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) でミリ秒単位の制限を引き上げてください

1713 1720 

1714<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1721<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1715 Bedrock セットアップ検証が AWS を待機中にタイムアウトしました1722 Bedrock setup verification timed out waiting for AWS

1716</h3>1723</h3>

1717 1724 

1718[Bedrock セットアップウィザード](/docs/ja/amazon-bedrock#sign-in-with-bedrock) の認証情報検証中の AWS への呼び出し(認証情報ルックアップまたは ID チェックなど)が 60 秒の制限内に完了しませんでした。ウィザードは待機を停止し、検証ステップを失敗させます:1725[Bedrock セットアップウィザード](/docs/ja/amazon-bedrock#sign-in-with-bedrock)の認証情報検証中に、認証情報の検索や ID チェックなどの AWS への呼び出しが 60 秒の制限内に完了しませんでした。ウィザードは待機を停止し、検証ステップを失敗させます。

1719 1726 

1720```text theme={null}1727```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.1728Timed 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```1729```

1723 1730 

1724数値は制限を反映しています。デフォルトでは 60 秒、または [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) で設定した値。1731数値は設定されている制限を反映しています。デフォルトは 60 秒で、[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) を設定している場合はその値になります。

1725 1732 

1726一般的な原因は、SSO トークン更新を含む AWS へのリクエストをスタールさせるネットワークまたはプロキシ、および見えない入力を待機しているまだ認証情報ヘルパーです。ヘルパーが正当にもっと時間が必要な場合にのみ制限を上げます。1733よくある原因は、SSO トークンの更新を含む AWS へのリクエストを停止させるネットワークやプロキシ、および表示されない入力を待機し続けている認証情報ヘルパーです。制限を引き上げるのは、ヘルパーが正当な理由でより長い時間を必要とする場合のみにしてください。

1727 1734 

1728AWS への単一のスタールしたリクエストは、独自のリクエストごとのタイムアウトで失敗することもあります。これは同じステップでより短いメッセージを表示します:1735AWS への単一のリクエストが停止した場合、そのリクエスト自体のタイムアウトによって失敗することもあり、その場合は同じステップでより短いメッセージが表示されます。

1729 1736 

1730```text theme={null}1737```text theme={null}

1731A request to AWS timed out. Check your network and proxy settings, then try again.1738A request to AWS timed out. Check your network and proxy settings, then try again.

1732```1739```

1733 1740 

1734同じタイムアウトがモデルピンステップで発生する場合、ウィザードはモデルを `unreachable` としてマークします。どちらのメッセージも表示する代わりに。1741モデル固定ステップで同じタイムアウトが発生した場合、ウィザードはどちらのメッセージも表示せず、モデルを `unreachable` としてマークします。

1735 1742 

1736**対応方法:**1743**対処方法:**

1737 1744 

1738* 同じシェルで `aws sts get-caller-identity` を実行します。それもハングする場合、スタールは Claude Code の外にあります。ネットワーク、プロキシ、または AWS プロファイルの認証情報ヘルパーで。最初にそれを修正します。1745* 同じシェルで `aws sts get-caller-identity` を実行してください。これもハングする場合、停止の原因は Claude Code の外部、つまりネットワーク、プロキシ、または AWS プロファイル内の認証情報ヘルパーにあります。まずそれを修正してください。

1739* ウィザードを開く前にインタラクティブサインインを完了します。たとえば `aws sso login --profile myprofile`1746* ウィザードを開く前に、対話的なサインインをすべて完了してください。たとえば `aws sso login --profile myprofile` を実行します

1740* AWS プロファイルの認証情報ヘルパーが正当に 60 秒以上の時間が必要な場合は、ミリ秒単位で制限を上げます。[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars)1747* AWS プロファイル内の認証情報ヘルパーが入力を求めるのに正当な理由で 60 秒以上必要な場合は、[`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ja/env-vars) でミリ秒単位の制限を引き上げてください

1741 1748 

1742<h3 id="cloud-gateway-session-expired">1749<h3 id="cloud-gateway-session-expired">

1743 クラウドゲートウェイセッションが有効期限切れです1750 Cloud gateway session expired

1744</h3>1751</h3>

1745 1752 

1746[Claude apps gateway](/docs/ja/claude-apps-gateway) を通じてサインインし、このマシンに保存されたゲートウェイセッションが有効期限切れになり、更新できなかったか、ゲートウェイはそれを受け入れなくなりました。たとえば、ゲートウェイの [JWT シークレットが置き換えられた](/docs/ja/claude-apps-gateway-deploy#jwt-secret-rotation) 後。対話的に `claude` を起動するときにこの行が表示される場合、セッションはゲートウェイからサインアウトして開いています:1753[Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)を介してサインインしており、このマシンに保存されたゲートウェイセッションの有効期限が切れて更新できなかったか、ゲートウェイがそのセッションを受け付けなくなっています。たとえば、ゲートウェイの [JWT シークレットが置き換えられた](/docs/ja/claude-apps-gateway-deploy#jwt-secret-rotation)後などです。`claude` を対話的に起動したときにこの行が表示された場合、セッションはゲートウェイからサインアウトした状態で開かれています。

1747 1754 

1748```text theme={null}1755```text theme={null}

1749Cloud gateway session expired — run /login to reconnect.1756Cloud gateway session expired — run /login to reconnect.

1750```1757```

1751 1758 

1752同じ行はセッション中に表示される場合があります。ゲートウェイ認証情報が有効期限切れになり、Claude Code が更新できないとき。1759ゲートウェイの認証情報の有効期限が切れ、Claude Code がそれを更新できない場合、セッションの途中でも同じ行が表示されることがあります。

1753 1760 

1754[非対話的](/docs/ja/headless) 実行、バックグラウンドまたは他の無人セッション、または `claude` サブコマンド(`claude auth` 以外)では、ゲートウェイがセッションを受け入れなくなったときに Claude Code は代わりにこのメッセージで終了します:1761[非対話](/docs/ja/headless)実行、バックグラウンドセッションやその他の無人セッション、または `claude auth` 以外の `claude` サブコマンドでは、ゲートウェイがセッションを受け付けなくなると、Claude Code は代わりに次のメッセージを表示して終了します。

1755 1762 

1756```text theme={null}1763```text theme={null}

1757Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1764Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

1758```1765```

1759 1766 

1760**対応方法:**1767**対処方法:**

1761 1768 

1762* セッションで `/login` を実行し、ブラウザサインインを完了します1769* セッション内で `/login` を実行し、ブラウザでのサインインを完了してください

1763* 非対話的な起動の場合は、同じ環境で `claude` を起動し、`/login` を実行してから、コマンドを再実行します1770* 非対話で起動している場合は、同じ環境で `claude` を起動して `/login` を実行してから、コマンドを再実行してください

1764 1771 

1765<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">1772<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1766 サインイン中にタイムアウトしました。続行するのを待機しています1773 Sign-in timed out while waiting for you to continue

1767</h3>1774</h3>

1768 1775 

1769[Claude apps gateway](/docs/ja/claude-apps-gateway) サインイン中に、ゲートウェイはサインインしたアカウントに名前を付け、Claude Code はそれを保存する前に確認するよう求めました。ゲートウェイの独自の有効期限を過ぎて確認を開いたままにしておき、ゲートウェイは更新トークンを発行しなかったため、続行したときに Claude Code は何も保存しませんでした:1776[Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)へのサインイン中に、ゲートウェイがサインインしたアカウントを示し、Claude Code は認証情報を保存する前にその確認を求めました。確認画面がサインイン自体の有効期限を過ぎても開いたままになっており、ゲートウェイはそれを更新できるリフレッシュトークンを発行していなかったため、続行したときに Claude Code は何も保存しませんでした。

1770 1777 

1771```text theme={null}1778```text theme={null}

1772Sign-in timed out while waiting for you to continue. Try again.1779Sign-in timed out while waiting for you to continue. Try again.

1773```1780```

1774 1781 

1775**対応方法:**1782**対処方法:**

1776 1783 

1777* `/login` を再度実行し、サインインの有効期限が切れる前にアカウントを確認します1784* `/login` を再度実行し、サインインの有効期限が切れる前にアカウントを確認してください

1778 1785 

1779<h3 id="gateway-refused-the-request">1786<h3 id="gateway-refused-the-request">

1780 ゲートウェイがリクエストを拒否しました1787 Gateway refused the request

1781</h3>1788</h3>

1782 1789 

1783[Claude apps gateway](/docs/ja/claude-apps-gateway) を通じてサインインしており、リクエストが 403 を返しました。ゲートウェイ、またはその背後にあるアップストリームがそれを拒否しました。再度サインインしても拒否は変わらないため、メッセージはゲートウェイ管理者を指しています:1790[Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway)を介してサインインしており、リクエストが 403 を返しました。ゲートウェイ、またはその背後のアップストリームがリクエストを拒否しています。再度サインインしても拒否は変わらないため、メッセージはゲートウェイ管理者に問い合わせるよう案内しています。

1784 1791 

1785```text theme={null}1792```text theme={null}

1786Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...1793Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

1787```1794```

1788 1795 

1789**対応方法:**1796**対処方法:**

1790 1797 

1791* ゲートウェイ管理者にリクエストを検索するよう依頼してください。`API Error:` テールはゲートウェイが返した拒否を運びます1798* ゲートウェイ管理者にリクエストを調べるよう依頼してください。`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) ごとに渡されます1799* 管理者向け:ゲートウェイの[アクセス制御ルール](/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 1800 

1794v2.1.273 より前では、ゲートウェイセッションの 403 は一般的な `Please run /login` または `Failed to authenticate` メッセージを表示し、再度サインインしても拒否はクリアされませんでした。1801v2.1.273 より前では、ゲートウェイセッションでの 403 に対して、代わりに汎用的な `Please run /login` または `Failed to authenticate` メッセージが表示されており、再度サインインしても拒否は解消されませんでした。

1795 1802 

1796<h2 id="network-and-connection-errors">1803<h2 id="network-and-connection-errors">

1797 ネットワークと接続エラー1804 ネットワークと接続エラー


2849* シェルから `claude doctor` を実行して、インストール診断を実行します2856* シェルから `claude doctor` を実行して、インストール診断を実行します

2850 2857 

2851<h2 id="command-line-errors">2858<h2 id="command-line-errors">

2852 コマンドラインエラー2859 コマンドラインのエラー

2853</h2>2860</h2>

2854 2861 

2855これらのエラーは、`claude` コマンドラインとそのサブコマンド、プロンプトで送信するコマンド名、および `/security-review` などのコンテキストを収集するためにシェルコマンドを実行してからプロンプトを実行するコマンドから発生します。また、CLI を再起動する `/tui` からも発生します。2862これらのエラーは、`claude` コマンドラインとそのサブコマンド、プロンプトで送信したコマンド名、および `/security-review` のようにプロンプトの実行前にシェルコマンドを実行してコンテキストを収集するコマンドから発生します。CLI を再起動する `/tui` からも発生します。

2856 2863 

2857<h3 id="conflict-between-bg-and-print">2864<h3 id="conflict-between-bg-and-print">

2858 \--bg と --print の競合2865 `--bg` と `--print` の競合

2859</h3>2866</h3>

2860 2867 

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 より前は、この組み合わせは暗黙的に接続できないバックグラウンドジョブを作成していました。2868このメッセージには 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 2869 

2863```text theme={null}2870```text theme={null}

2871--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```2872```

2865 2873 

2866**対処方法:**2874**対処方法:**

2875 

2876* `-p` または `--print` を外します。`--bg` はプロンプトを位置引数として受け取るため、`claude --bg "<task>"` で完全なコマンドになります。[シェルから新しいエージェントをディスパッチする](/docs/ja/agent-view#from-your-shell)を参照してください。

2877* バックグラウンドセッションを作成せずにプロンプトを非対話的に実行して結果を出力するには、`--bg` を外して `claude -p "<task>"` を実行します

2878 

2879<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

2880 システムプロンプトのフラグとそのファイル形式の競合

2881</h3>

2867 2882 

2868* `-p` または `--print` を削除してください。`--bg` はプロンプトを位置引数として受け取るため、`claude --bg "<task>"` が完全なコマンドです。[シェルから新しいエージェントをディスパッチする](/docs/ja/agent-view#from-your-shell)を参照してください。28831 回の `claude` 呼び出しで [`--append-subagent-system-prompt`](/docs/ja/cli-reference#cli-flags) と `--append-subagent-system-prompt-file` を一緒に渡したため、`claude` はセッションを開始せずに終了コード 1 で終了します:

2869* プロンプトを非対話的に実行し、バックグラウンドセッションを作成する代わりに結果を出力するには、`--bg` を削除して `claude -p "<task>"` を実行してください。2884 

2885```text theme={null}

2886Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

2887```

2888 

2889v2.1.283 より前は、`--system-prompt` と `--system-prompt-file`、または `--append-system-prompt` と `--append-system-prompt-file` を一緒に渡した場合も、これらのペアは[組み合わされる](/docs/ja/cli-reference#system-prompt-flags)のではなく競合していたため、`claude` は同じように終了していました。これらのバージョンでは、メッセージに組み合わせたペアの名前が表示されます。

2890 

2891**対処方法:**

2892 

2893* フラグのどちらか一方の形式を残し、もう一方を外します。固定のプロンプトファイルと実行ごとのテキストを組み合わせるには、両方のフラグを渡すのではなく、起動前にテキストをファイルにマージします

2870 2894 

2871<h3 id="invalid-agents-configuration">2895<h3 id="invalid-agents-configuration">

2872 無効な --agents 設定2896 無効な `--agents` 設定

2873</h3>2897</h3>

2874 2898 

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 はセッションを開始していました。2899`--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 2900 

2877```text theme={null}2901```text theme={null}

2878Error: Invalid --agents configuration:2902Error: Invalid --agents configuration:

2879<what failed>2903<what failed>

2880```2904```

2881 2905 

2882最初の行の後に続く内容は、値がどのように失敗したかによって異なります。Claude Code はこれらのチェックを順番に実行し、最初に失敗したもので停止します。値に 2 種類の問題がある場合、最初の問題を修正した後にのみ 2 番目の問題が表示されます。29061 行目の後に続く内容は、値がどのように失敗したかによって異なります。Claude Code はこれらのチェックを順番に実行し、最初に失敗したチェックで停止します。値に 2 種類の問題がある場合、2 つ目の問題は 1 つ目を修正した後にのみ表示されます:

2883 2907 

28841. 値が `{` で始まるが JSON として解析されない場合、または `--agents` ファイルの内容が解析されない場合、Claude Code は JSON パーサー自体のメッセージを含む 1 つの `invalid JSON:` 行を出力します。29081. 値が `{` で始まっているのに JSON として解析できない場合、または `--agents` ファイルの内容が解析できない場合、Claude Code は JSON パーサー自身のメッセージを含む `invalid JSON:` 行を 1 行出力します

28852. 解析されるが、エージェント定義が [CLI 定義サブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)のスキーマと一致しない場合、Claude Code は問題ごとに 1 行を出力します。29092. 解析はできるものの、エージェント定義が [CLI で定義されたサブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)のスキーマに一致しない場合、Claude Code は問題ごとに 1 行を出力します

28863. エージェント名が `-` で始まる場合、Claude Code は `<name>: agent names must not start with '-'` を出力します。29103. エージェント名が `-` で始まる場合、Claude Code は `<name>: agent names must not start with '-'` を出力します

2887 2911 

2888問題行が 20 行を超える場合、Claude Code は最初の 20 行を出力し、残りを `…and N more` に置き換えます。2912問題の行が 20 行を超える場合、Claude Code は最初の 20 行を出力し、残りを `…and N more` に置き換えます。

2889 2913 

2890`--print` を使用すると、`--agents` は[インラインオブジェクトの代わりに JSON ファイルへのパス](/docs/ja/sub-agents#choose-the-subagent-scope)も受け入れます。v2.1.281 より前は、`--agents` はインライン JSON のみを受け入れ、ファイルパスを無効な JSON として扱いました。ファイル形式には独自の拒否があり、このメッセージの代わりに出力されます。これらを含みます。2914`--print` を使用する場合、`--agents` はインラインオブジェクトの代わりに [JSON ファイルへのパス](/docs/ja/sub-agents#choose-the-subagent-scope)も受け付けます。v2.1.281 より前は、`--agents` はインライン JSON のみを受け付け、ファイルパスは無効な JSON として扱っていました。ファイル形式には独自の拒否メッセージがあり、このメッセージの代わりに出力されます。次のようなものがあります:

2891 2915 

2892* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code はインタラクティブセッションでファイルパスとして値を読み込みました。定義をインライン JSON として渡すか、`-p` を追加してファイルから読み込んでください。2916* **`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 はこのように失敗する可能性があります。パスまたはクォートを確認してから、コマンドを再度実行してください。2917* **`Error: --agents file not found: <path>`**: そのパスにファイルが存在しません。`{` で始まらず有効な JSON でもない値はパスとして読み取られるため、シェルによって崩れたインライン JSON もこのように失敗することがあります。パスまたはクォートを確認して、コマンドを再度実行してください。

2894 2918 

2895**対処方法:**2919**対処方法:**

2896 2920 

2897* メッセージが列挙する各問題を修正してから、コマンドを再度実行してください。[CLI 定義サブエージェントが受け取るフィールド](/docs/ja/sub-agents#choose-the-subagent-scope)を参照してください。2921* メッセージに列挙された各問題を修正してから、コマンドを再度実行します。[CLI で定義されたサブエージェントが受け取るフィールド](/docs/ja/sub-agents#choose-the-subagent-scope)を参照してください。

2898 2922 

2899<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2923<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2900 クラウドセッションは --restricted セッションから作成できません2924 `--restricted` セッションからクラウドセッションを作成できない

2901</h3>2925</h3>

2902 2926 

2903[`--restricted`](/docs/ja/cli-reference#cli-flags)でセッションを開始すると、Claude Code は[クラウドセッション](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)の作成を拒否します。新しいセッションは制限されたプロセスの外で実行され、制限モードを強制しないためです。Claude Code はサーバーに接続する前にクライアント側で拒否するため、クラウドセッションは作成されません。2927[`--restricted`](/docs/ja/cli-reference#cli-flags) を指定してセッションを開始した場合、Claude Code はそのセッションから[クラウドセッション](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)を作成することを拒否します。新しいセッションは制限されたプロセスの外で実行され、制限モードを適用しないためです。Claude Code はサーバーに接続する前にクライアント側で拒否するため、クラウドセッションは作成されません:

2904 2928 

2905```text theme={null}2929```text theme={null}

2906Cloud sessions cannot be created from a --restricted session: they would not enforce it.2930Cloud sessions cannot be created from a --restricted session: they would not enforce it.

2907```2931```

2908 2932 

2909**対処方法:**2933**対処方法:**

2910 2934 

2911* 制限されたセッションでタスクをローカルで実行してください。2935* 制限されたセッション内でタスクをローカルに実行します

2912* セッションの起動方法を制御できる場合は、`--restricted` なしで新しい `claude` セッションを開始し、そこからクラウドセッションを作成してください。2936* セッションの起動方法を制御できる場合は、`--restricted` を指定せずに新しい `claude` セッションを開始し、そこからクラウドセッションを作成します

2913 2937 

2914v2.1.248 より前は、Claude Code に `--restricted` フラグがなく、以前のバージョンはフラグ自体を不明なオプションエラーで拒否します。2938v2.1.248 より前の Claude Code には `--restricted` フラグがありませんでした。それより前のバージョンでは、フラグ自体が不明なオプションのエラーで拒否されます。

2915 2939 

2916<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2940<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2917 クラウドセッションは組織のポリシーで無効になっています2941 クラウドセッションが組織のポリシーによって無効になっている

2918</h3>2942</h3>

2919 2943 

2920組織の `allow_remote_sessions` ポリシーがオフになっているため、[クラウドセッション](/docs/ja/claude-code-on-the-web)とそれを使用するコマンドは利用できません。2944組織の `allow_remote_sessions` ポリシーがオフになっているため、[クラウドセッション](/docs/ja/claude-code-on-the-web)とそれを使用するコマンドは利用できません:

2921 2945 

2922```text theme={null}2946```text theme={null}

2923Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2947Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2924```2948```

2925 2949 

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)が返されていました。2950このメッセージは、[ターミナルからクラウドセッションを作成する](/docs/ja/claude-code-on-the-web#from-terminal-to-cloud)とき、および`/teleport`、`/remote-env`、`/web-setup` など、クラウドセッションを必要とするコマンドを送信したときに表示されます。v2.1.268 より前は、これらのコマンドを送信すると、代わりに [`Unknown command`](#unknown-command) が返されていました。

2927 2951 

2928これはサーバー側の組織ポリシーであるため、ローカル設定、環境変数、または CLI フラグからオーバーライドすることはできません。2952これはサーバー側の組織ポリシーであるため、ローカル設定、環境変数、CLI フラグで上書きすることはできません。

2929 2953 

2930Claude Code が組織のポリシーをまだ読み込んでいない場合、またはそれを取得できない場合、これらのコマンドは代わりに `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` と答えます。2954Claude Code が組織のポリシーをまだ読み込んでいない場合、または取得できない場合、これらのコマンドは代わりに `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` と応答します。

2931 2955 

2932**対処方法:**2956**対処方法:**

2933 2957 

2934* 組織の[オーナー](/docs/ja/server-managed-settings#access-control)に、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)の Claude Code 管理設定でクラウドセッションを有効にするよう依頼してください。2958* 組織の [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 を再起動して、もう一度試してください。2959* メッセージにポリシーを確認できなかったと表示されている場合は、ネットワーク接続を確認してから Claude Code を再起動し、再試行します

2936 2960 

2937<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2961<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2938 \--json-schema 値は有効な JSON Schema ではありません2962 `--json-schema` の値が有効な JSON Schema ではない

2939</h3>2963</h3>

2940 2964 

2941[非対話的モード](/docs/ja/headless#get-structured-output)で [`--json-schema`](/docs/ja/cli-reference#cli-flags)に渡したスキーマが JSON Schema コンパイルに失敗したため、`claude` はプロンプトを実行する代わりに終了コード 1 で終了します。v2.1.205 より前は、無効なスキーマは構造化されていない出力を生成し、`format` キーワードを使用したスキーマは無効として扱われていました。2965[非対話モード](/docs/ja/headless#get-structured-output)で [`--json-schema`](/docs/ja/cli-reference#cli-flags) に渡したスキーマが JSON Schema のコンパイルに失敗したため、`claude` はプロンプトを実行せずに終了コード 1 で終了します。v2.1.205 より前は、無効なスキーマではエラーなしに構造化されていない出力が生成され、`format` キーワードを使用するスキーマはすべて無効として扱われていました。

2942 2966 

2943```text theme={null}2967```text theme={null}

2944Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2968Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2945```2969```

2946 2970 

29472 番目のコロンの後のテキストはバリデータの診断であり、失敗したキーワードまたは場所を示します。`"format": "email"` などの `format` キーワードを使用するスキーマは有効です。Claude Code は `format` を注釈として受け入れ、それを強制しません。29712 つ目のコロンの後のテキストはバリデーターの診断であり、失敗したキーワードまたは場所を示します。`"format": "email"` のように `format` キーワードを使用するスキーマは有効です。Claude Code は `format` を注釈として受け付け、強制はしません。

2948 2972 

2949Claude Code はスキーマコンパイルの前に 2 つのチェックを実行します。解析可能でない JSON 値は `Error: --json-schema is not valid JSON` で拒否され、有効な JSON がオブジェクトでない場合は `Error: --json-schema must be a JSON object` で拒否されます。2973Claude Code はスキーマのコンパイル前に 2 つのチェックを実行します。JSON として解析できない値は `Error: --json-schema is not valid JSON` で拒否し、オブジェクトではない有効な JSON は `Error: --json-schema must be a JSON object` で拒否します。

2950 2974 

2951**対処方法:**2975**対処方法:**

2952 2976 

2953* 診断が示すスキーマの部分を修正してから、コマンドを再実行してください。2977* 診断が示すスキーマの部分を修正してから、コマンドを再実行します

2954* [構造化された出力を取得する](/docs/ja/headless#get-structured-output)で、動作するスキーマとコマンドを参照してください。2978* 動作するスキーマとコマンドについては、[構造化出力を取得する](/docs/ja/headless#get-structured-output)を参照してください

2955 2979 

2956<h3 id="settings-file-exceeds-the-2mib-limit">2980<h3 id="settings-file-exceeds-the-2mib-limit">

2957 設定ファイルが 2MiB の制限を超えています2981 設定ファイルが 2MiB の制限を超えている

2958</h3>2982</h3>

2959 2983 

2960[`--settings`](/docs/ja/cli-reference#cli-flags)に渡したファイルが 2 MiB より大きいため、`claude` は起動時に終了コード 1 で終了し、それを読み込みません。v2.1.214 より前は、Claude Code はサイズチェックなしでファイルを読み込み、数ギガバイトのファイルまたは `/dev/zero` などのデバイスファイルはメモリを無制限に増やしていました。2984[`--settings`](/docs/ja/cli-reference#cli-flags) に渡したファイルが 2 MiB を超えているため、`claude` は起動時にファイルを読み込まずに終了コード 1 で終了します。v2.1.214 より前は、Claude Code はサイズチェックなしでファイルを読み取っていたため、数ギガバイトのファイルや `/dev/zero` などのデバイスファイルによってメモリが際限なく増加していました。

2961 2985 

2962```text theme={null}2986```text theme={null}

2963Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2987Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2964```2988```

2965 2989 

2966Claude Code は、通常のファイルではない `--settings` パスも同じ方法で拒否します。デバイス、FIFO、またはソケットは `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` の後にパスを報告し、ディレクトリは `EISDIR` 理由を報告します。2990Claude Code は、通常のファイルではない `--settings` パスも同じように拒否します。デバイス、FIFO、ソケットの場合は `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` の後にパスが表示され、ディレクトリの場合は理由として `EISDIR` が表示されます。

2967 2991 

2968**対処方法:**2992**対処方法:**

2969 2993 

2970* `--settings` を 2 MiB 未満の通常の JSON 設定ファイルを指すようにしてください。形式については[設定](/docs/ja/settings)を参照してください。2994* `--settings` に 2 MiB 未満の通常の JSON 設定ファイルを指定します。形式については[設定](/docs/ja/settings)を参照してください。

2971 2995 

2972<h3 id="the-current-directory-no-longer-exists">2996<h3 id="the-current-directory-no-longer-exists">

2973 現在のディレクトリが存在しなくなりました2997 現在のディレクトリが存在しなくなった

2974</h3>2998</h3>

2975 2999 

2976シェルがディレクトリに入った後、別のシェルが削除または移動したワークツリーまたは一時ディレクトリなど、削除または移動されたディレクトリから `claude` を開始しました。Claude Code は作業ディレクトリを読み取ることができないため、インタラクティブモードと[非対話的](/docs/ja/headless)モードの両方で、セッションを開始する前に終了コード 1 で終了します。v2.1.239 より前は、Claude Code は縮小されたバンドルソースと生の `ENOENT ... uv_cwd` スタックを stderr に出力してクラッシュしていました。3000シェルがディレクトリに入った後に削除または移動されたディレクトリ(たとえば、別のシェルが削除した worktree や一時ディレクトリ)から `claude` を開始しました。Claude Code は作業ディレクトリを読み取れないため、対話モードでも[非対話モード](/docs/ja/headless)でも、セッションを開始する前に終了コード 1 で終了します。v2.1.239 より前は、このメッセージの代わりに、Claude Code が minify されたバンドルのソースと生の `ENOENT ... uv_cwd` スタックを stderr に出力してクラッシュしていました。

2977 3001 

2978```text theme={null}3002```text theme={null}

2979The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3003The 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.3004error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2981```3005```

2982 3006 

2983原因と修正は両方の形式で同じです。3007どちらの形式でも、原因と修正方法は同じです。

2984 3008 

2985Claude Code が権限の変更など別の理由で作業ディレクトリを読み取ることができない場合、メッセージはエラーコードを示します。`Can't read the current directory (EACCES). Start Claude Code from a different directory.`3009権限の変更など、別の理由で Claude Code が作業ディレクトリを読み取れない場合、メッセージには代わりにエラーコードが表示されます: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2986 3010 

2987macOS では、`~/Desktop`、`~/Documents`、`~/Downloads`、または iCloud Drive のディレクトリの `EPERM` は通常、macOS がターミナルアプリをそのフォルダからブロックしていることを意味します。そのフォルダを読み取る他のコマンドも同じ方法で失敗します。`ls` はそこで `Operation not permitted` を報告します。`sudo` を使用しても同じです。3011macOS では、`~/Desktop`、`~/Documents`、`~/Downloads`、または iCloud Drive 内のディレクトリに対する `EPERM` は、通常、macOS がターミナルアプリからそのフォルダーへのアクセスをブロックしていることを意味します。そのフォルダーを読み取る他のコマンドも同じように失敗します。そこで `ls` を実行すると、`sudo` を使っても `Operation not permitted` が報告されます。

2988 3012 

2989**対処方法:**3013**対処方法:**

2990 3014 

2991* ホームディレクトリやプロジェクトディレクトリなど、存在するディレクトリに変更してから、`claude` を再度実行してください。3015* ホームディレクトリやプロジェクトディレクトリなど、存在するディレクトリに移動してから、`claude` を再度実行します

2992* ディレクトリが同じパスで再作成された場合、シェルはまだ削除されたものを保持しています。`cd "$PWD"` を実行するか、ディレクトリを出て再度入ってから、`claude` を実行してください。3016* ディレクトリが同じパスに再作成された場合、シェルは削除された方のディレクトリをまだ保持しています。`cd "$PWD"` を実行するか、ディレクトリから出て再度入ってから、`claude` を再度実行します

2993* macOS の `EPERM` の場合は、Cmd+Q でターミナルアプリを終了し、再度開いて、そのフォルダに戻り、`claude` を実行してください。そのフォルダの `ls` がまだ失敗する場合は、**システム設定 > プライバシーとセキュリティ > ファイルとフォルダ**を開き、ターミナルアプリのフォルダをオンにしてから、ターミナルを再度開いてください。3017* macOS の `EPERM` の場合は、Cmd+Q でターミナルアプリを終了して再度開き、そのフォルダーに戻って `claude` を実行します。それでもそのフォルダーで `ls` が失敗する場合は、**システム設定 > プライバシーとセキュリティ > ファイルとフォルダ**を開き、ターミナルアプリに対してそのフォルダーをオンにしてから、ターミナルを開き直します

2994 3018 

2995<h3 id="temp-directory-refused-or-cannot-be-created">3019<h3 id="temp-directory-refused-or-cannot-be-created">

2996 一時ディレクトリが拒否されたか、作成できません3020 一時ディレクトリが拒否された、または作成できない

2997</h3>3021</h3>

2998 3022 

2999macOS と Linux では、Claude Code は起動時にプライベート一時ディレクトリを作成します。`claude-<uid>` はシステム一時ディレクトリまたは [`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars)オーバーライドの下にあります。ディレクトリを作成できない場合、またはそのパスにある既存のエントリが安全性チェックに失敗する場合、Claude Code は失敗を stderr に出力し、セッションを開始する代わりに終了コード 1 で終了します。3023macOS と Linux では、Claude Code は起動時に、システムの一時ディレクトリまたは [`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) で上書きした場所の下に、プライベートな一時ディレクトリ `claude-<uid>` を作成します。ディレクトリを作成できない場合、またはそのパスに既に存在するエントリが安全性チェックに失敗した場合、Claude Code は失敗内容を stderr に出力し、セッションを開始せずに終了コード 1 で終了します:

3000 3024 

3001```text wrap theme={null}3025```text wrap theme={null}

3002ENOSPC: no space left on device, mkdir '/tmp/claude-501'3026ENOSPC: 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.3032Temp 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```3033```

3011 3034 

3012**対処方法:**3035**対処方法:**

3013 3036 

3014* `ENOSPC` の場合は、一時ディレクトリを保持するボリュームのディスク領域を解放してください。3037* `ENOSPC` の場合は、一時ディレクトリを含むボリュームのディスク容量を空けます

3015* `Refusing to use it` の形式の場合は、リンクが指すものではなく、名前付きエントリ自体を削除し、Claude Code を再度開始してください。`owned by uid` の形式の場合は、管理者またはそのユーザーのみがそれを削除できます。3038* `Refusing to use it` の形式の場合は、リンク先ではなく、名前が示されたエントリ自体を削除してから Claude Code を再度起動します。`owned by uid` の形式の場合は、管理者またはそのユーザーのみが削除できます

3016* `is not readable` の場合は、名前付きディレクトリで `chmod 0700` を実行するか、削除して再度開始してください。3039* `is not readable` の場合は、名前が示されたディレクトリに対して `chmod 0700` を実行するか、ディレクトリを削除してから再度起動します

3017* これらのいずれかの場合は、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars)を制御するディレクトリに設定し、Claude Code を開始してください。拒否されたパスはそのままにしてください。3040* いずれの場合も、拒否されたパスはそのままにして、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を自分が管理するディレクトリに設定し、Claude Code を再度起動できます

3018 3041 

3019<h3 id="directory-couldnt-be-resolved-to-a-real-location">3042<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3020 ディレクトリを実際の場所に解決できませんでした3043 ディレクトリを実際の場所に解決できなかった

3021</h3>3044</h3>

3022 3045 

3023作業ディレクトリのサブディレクトリに対して `/add-dir` を実行しましたが、Claude Code はディレクトリを実際の場所に解決できませんでした。3046作業ディレクトリのサブディレクトリに対して `/add-dir` を実行しましたが、Claude Code がそのディレクトリを実際の場所に解決できませんでした。

3024 3047 

3025作業ディレクトリのサブディレクトリへのファイルアクセスは既にあるため、`/add-dir` はそのスキル、コマンド、エージェントのみを読み込みます。それらを読み込む前に、Claude Code はディレクトリの実際の場所(シンボリックリンクが解決されている)が作業ディレクトリ内にあることを確認します。Claude Code がその場所を解決できない場合、何も読み込まず、このメッセージを表示します。3048作業ディレクトリのサブディレクトリには既にファイルアクセス権があるため、`/add-dir` はそのスキル、コマンド、エージェントのみを読み込みます。これらを読み込む前に、Claude Code はシンボリックリンクを解決したディレクトリの実際の場所が作業ディレクトリ内にあることを確認します。Claude Code がその場所を解決できない場合、何も読み込まずに次のメッセージを表示します:

3026 3049 

3027```text theme={null}3050```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.3051packages/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```3052```

3030 3053 

3031**対処方法:**3054**対処方法:**

3032 3055 

3033* パスが作業ディレクトリ内の実際のディレクトリを示していることを確認してから、`/add-dir` を再度実行してください。3056* パスが作業ディレクトリ内の実在するディレクトリを指していることを確認してから、`/add-dir` を再度実行します

3034* メッセージはファイルアクセスを変更しません。ディレクトリの `.claude/` コンテンツが読み込まれなかったことのみを報告します。3057* このメッセージはファイルアクセスを変更しません。ディレクトリの `.claude/` の内容が読み込まれなかったことを報告するだけです

3035 3058 

3036v2.1.261 より前は、作業ディレクトリが `/net/<host>` オートマウント上にある場合、すべての `/add-dir <subdirectory>` に対してこのメッセージが表示されていました。Claude Code は設計上パスを解決することを拒否します。ディレクトリは問題なく、再試行は役に立ちません。3059v2.1.261 より前は、作業ディレクトリが `/net/<host>` の自動マウント上にある場合、すべての `/add-dir <subdirectory>` でもこのメッセージが表示されていました。この場所では Claude Code は設計上パスの解決を行わないため、ディレクトリに問題がなくても再試行では解決できませんでした。

3037 3060 

3038<h3 id="workspace-not-trusted-when-starting-remote-control">3061<h3 id="workspace-not-trusted-when-starting-remote-control">

3039 Remote Control 開始時にワークスペースが信頼されていません3062 Remote Control の開始時にワークスペースが信頼されていない

3040</h3>3063</h3>

3041 3064 

3042[Remote Control](/docs/ja/remote-control)サーバーモードを `claude remote-control` またはそのエイリアス `claude rc` で、信頼していないディレクトリで開始しました。コマンドはワークスペース信頼ダイアログを表示できないため、終了コード 1 で終了します。3065信頼していないディレクトリで `claude remote-control` またはそのエイリアスの `claude rc` を使用して [Remote Control](/docs/ja/remote-control) のサーバーモードを開始しましたが、コマンドがそのディレクトリを信頼するかどうかを尋ねることができませんでした。たとえば、リダイレクトまたはパイプされているために、コマンドの標準入力または標準出力がターミナルではない場合です。コマンドは終了コード 1 で終了します:

3043 3066 

3044```text theme={null}3067```text theme={null}

3045Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3068Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3046```3069```

3047 3070 

30482 つのバリアントも `Error: Workspace not trusted.` で始まり、ターミナルでも表示されます。ターミナルが小さすぎて、ディレクトリの信頼がオンになるものを表示できない場合、またはサイズを報告しなかった場合です。ウィンドウを拡大するか、通常のターミナルウィンドウに切り替えてから、`claude rc` を再度実行してください。3071同じく `Error: Workspace not trusted.` で始まる 2 つのバリエーションは、ディレクトリを信頼することで有効になる内容を表示するにはターミナルが小さすぎる場合、またはターミナルがサイズを報告しなかった場合に表示されます。ウィンドウを拡大するか通常のターミナルウィンドウに切り替えてから、`claude rc` を再度実行してください。

3049 3072 

3050ホームディレクトリではメッセージが異なります。ワークスペース信頼ダイアログはホームディレクトリの信頼を保存しないため、そこで受け入れることはこのチェックを満たすことができません。v2.1.214 より前は、ホームディレクトリは上記のメッセージを表示していました。そのアドバイスはそこで成功することはできません。3073ホームディレクトリでは、ワークスペースの信頼ダイアログがホームディレクトリの信頼を保存しないため、そこでダイアログを承認してもこのチェックを満たすことができません。そのため、メッセージが異なります。v2.1.214 より前は、ホームディレクトリでも上記のメッセージが表示されていましたが、その助言はホームディレクトリでは成功しません。

3051 3074 

3052```text theme={null}3075```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).3076Error: 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```3077```

3055 3078 

3056[`Trust <directory>?` 質問](/docs/ja/remote-control#requirements)で `n` を答えるか Enter を押すと、コマンドはディレクトリに名前を付ける `Remote Control did not start` メッセージを出力し、終了コード 1 で終了します。`claude rc` を再度実行して `y` で答えてください。3079[`Trust <directory>?` の質問](/docs/ja/remote-control#requirements)で `n` と答えるか Enter を押した場合、コマンドはディレクトリ名を含む `Remote Control did not start` メッセージを出力し、終了コード 1 で終了します。`claude rc` を再度実行して `y` と答えてください。

3057 3080 

3058**対処方法:**3081**対処方法:**

3059 3082 

3060* ターミナルから最初にディレクトリを信頼してください。そこで `claude rc` を実行して `y` で答えるか、そこで `claude` を実行して[ワークスペース信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を受け入れてから、元のコマンドを再度実行してください。3083* まずターミナルからディレクトリを信頼します。そのディレクトリで `claude rc` を実行して `y` と答えるか、そこで `claude` を実行して[ワークスペースの信頼ダイアログ](/docs/ja/permissions#project-allow-rules-and-workspace-trust)を承認してから、元のコマンドを再度実行します

3061* ホームディレクトリでは、プロジェクトディレクトリに変更して、そこで Remote Control を開始してください。3084* ホームディレクトリにいる場合は、プロジェクトディレクトリに移動してそこで Remote Control を開始します

3062 3085 

3063v2.1.284 より前は、コマンドはターミナルでも尋ねませんでした。3086v2.1.284 より前は、ターミナル内であってもコマンドは質問しませんでした。

3064 3087 

3065<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3088<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3066 Remote Control が開始するセッションに引き継がれません3089 Remote Control が開始するセッションに引き継がれない

3067</h3>3090</h3>

3068 3091 

3069`remote-control` 動詞の前にグローバル `claude` フラグを使用して[Remote Control](/docs/ja/remote-control)を開始しました。Remote Control が開始するセッションを制限または設定するフラグ(`--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools`、`--mcp-config` など)です。動詞の前に配置されたフラグはこれらのセッションに到達しません。Claude Code は代わりに開始を拒否し、フラグを示します。3092`remote-control` 動詞の前にグローバルな `claude` フラグを付けて [Remote Control](/docs/ja/remote-control) を開始しました。このフラグは、`--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools`、`--mcp-config` など、Remote Control が開始するセッションを制限または設定するものです。動詞の前に置かれたフラグは、これらのセッションには届きません。Claude Code は代わりに、フラグの名前を示して開始を拒否します:

3070 3093 

3071```text theme={null}3094```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`).3095Error: `--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```3096```

3074 3097 

3075Claude Code は、`--verbose`、`--model`、またはラッパーが注入した `--session-id` や `--plugin-dir` など、削除しても害のないグローバルフラグを拒否しません。それらを無視し、Remote Control は開始します。3098`--verbose`、`--model`、またはラッパーによって挿入された `--session-id` や `--plugin-dir` など、外しても問題のないグローバルフラグについては、Claude Code は拒否しません。これらは無視され、Remote Control が開始されます。

3076 3099 

3077Claude Code はまた、まだ害のないものとして認識していないグローバルフラグを拒否するため、新しいリリースで追加されたフラグは、後のリリースでそれを害のないものとしてマークするまで、このメッセージに表示される可能性があります。3100Claude Code は、まだ無害と認識していないグローバルフラグに対しても開始を拒否します。そのため、新しいリリースで追加されたフラグは、後のリリースで無害とマークされるまでこのメッセージに表示されることがあります。

3078 3101 

3079**対処方法:**3102**対処方法:**

3080 3103 

3081* 動詞の前からフラグを削除し、[Remote Control 独自のオプション](/docs/ja/remote-control#start-a-remote-control-session)をその後に渡してください。`claude remote-control --help` がそれらをリストします。3104* 動詞の前からフラグを削除し、[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 が開始するセッションの権限モードを設定してください。3105* 拒否されたフラグが `--permission-mode` の場合は、`claude remote-control --permission-mode <mode>` を実行して、Remote Control が開始するセッションの権限モードを設定します

3083 3106 

3084v2.1.248 より前は、`claude remote-control` はグローバルフラグが最初に来たときに独自のフラグを受け入れず、コマンドは不明なオプションエラーで失敗していました。3107v2.1.248 より前は、グローバルフラグが先に来ると `claude remote-control` は独自のフラグを受け付けず、コマンドは `unknown option` エラーで失敗していました。

3085 3108 

3086<h3 id="claude-import-is-not-yet-available-in-this-build">3109<h3 id="claude-import-is-not-yet-available-in-this-build">

3087 claude import はこのビルドではまだ利用できません3110 このビルドでは claude import はまだ利用できない

3088</h3>3111</h3>

3089 3112 

3090[`claude import`](/docs/ja/cli-reference#cli-commands)を実行しましたが、Claude Code はインポートフローがオフになっていることを検出したため、コマンドは終了コード 1 で終了し、インポートを開始する代わりにこのメッセージを出力します。v2.1.222 より前は、インポートフローがオフのビルドは `import` をプロンプトとして扱い、このメッセージを出力する代わりにインタラクティブセッションを開始していました。3113[`claude import`](/docs/ja/cli-reference#cli-commands) を実行しましたが、Claude Code がインポートフローがオフになっていることを検出したため、コマンドはインポートを開始せずに終了コード 1 で終了します。v2.1.222 より前は、インポートフローがオフのビルドでは `import` がプロンプトとして扱われ、このメッセージを出力する代わりに対話セッションが開始されていました。

3091 3114 

3092```text theme={null}3115```text theme={null}

3093`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3116`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3094```3117```

3095 3118 

3096Claude Code は、Anthropic から取得してディスクにキャッシュするフィーチャーフラグを通じて `claude import` をオンにします。このメッセージは、キャッシュされた値がオフであることを意味します。原因は通常、以下のいずれかです。3119Claude Code は、Anthropic から取得してディスクにキャッシュする機能フラグによって `claude import` をオンにします。このメッセージは、キャッシュされた値がオフであることを意味します。原因は通常、次のいずれかです:

3097 3120 

3098* インストール後にセッションを開始していないため、Claude Code はまだフラグを取得していません。最初の `claude import` は、フィーチャーが利用可能な場合でもこれを出力できます。3121* インストール後にまだセッションを開始していないため、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` は利用できません。3122* 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` は利用できません。3123* 機能フラグの取得をオフにする `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK`、または [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) を設定しているため、`claude import` は利用できないままです。

3101 3124 

3102**対処方法:**3125**対処方法:**

3103 3126 

3104* 新規インストールでは、`claude` を開始し、セッションが読み込まれるのを待ってから終了し、`claude import` を再度実行してください。3127* 新規インストールの場合は、`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 サーバーを読み込みません。3128* 機能フラグの取得がオフのままの環境では、設定を自分で行います。[`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 3129 

3107<h3 id="could-not-read-claude-code-config">3130<h3 id="could-not-read-claude-code-config">

3108 Claude Code 設定を読み込めませんでした3131 Claude Code の設定を読み取れなかった

3109</h3>3132</h3>

3110 3133 

3111ログインとプロジェクトごとの状態を保存するファイル `~/.claude.json` を解析できない間に [`claude import`](/docs/ja/cli-reference#cli-commands)を実行しました。サブコマンドはそのファイルを読み込んで可用性を確認しますが、インタラクティブセッションが表示する復旧ダイアログを表示しないため、終了コード 1 で終了します。v2.1.222 より前は、`claude import` は読み込み不可能な設定ファイルでインタラクティブセッションを開始し、その復旧ダイアログがファイルを処理していました。3134Claude Code がログイン情報とプロジェクトごとの状態を保存するファイル `~/.claude.json` を解析できない状態で、[`claude import`](/docs/ja/cli-reference#cli-commands) を実行しました。このサブコマンドは利用可否を確認するためにこのファイルを読み取りますが、対話セッションが表示する復旧ダイアログは表示しないため、終了コード 1 で終了します。v2.1.222 より前は、設定ファイルを読み取れない状態で `claude import` を実行すると対話セッションが開始され、その復旧ダイアログでファイルが処理されていました。

3112 3135 

3113```text theme={null}3136```text theme={null}

3114Could not read Claude Code config — run `claude` with no arguments to recover it.3137Could not read Claude Code config — run `claude` with no arguments to recover it.

3115```3138```

3116 3139 

3117**対処方法:**3140**対処方法:**

3118 3141 

3119* 引数なしで `claude` を実行してください。Claude Code は無効なファイルを検出し、リセットを提供します。その後、`claude import` を再度実行してください。3142* 引数なしで `claude` を実行します。Claude Code は無効なファイルを検出し、リセットを提案します。その後、`claude import` を再度実行します。

3120* 手動で編集した内容を保持するには、エディタで `~/.claude.json` の JSON 構文を修正してから、`claude import` を再度実行してください。3143* 手動で行った編集を残したい場合は、代わりにエディターで `~/.claude.json` の JSON 構文を修正してから、`claude import` を再実行します

3121 3144 

3122<h3 id="could-not-import-a-server-from-claude-desktop">3145<h3 id="could-not-import-a-server-from-claude-desktop">

3123 Claude Desktop からサーバーをインポートできませんでした3146 Claude Desktop からサーバーをインポートできなかった

3124</h3>3147</h3>

3125 3148 

3126Claude Code は `claude mcp add-from-claude-desktop` で選択したサーバーの 1 つを追加できませんでした。コマンドは他の選択されたサーバーをインポートし、追加できなかったサーバーごとに 1 行を出力します。v2.1.205 より前は、失敗した最初のサーバーがインポートを停止していました。3149`claude mcp add-from-claude-desktop` で選択したサーバーの 1 つを Claude Code が追加できませんでした。コマンドは選択した他のサーバーのインポートを続行し、追加できなかったサーバーごとに 1 行を出力します。v2.1.205 より前は、最初に失敗したサーバーでインポートが停止していました。

3127 3150 

3128```text theme={null}3151```text theme={null}

3129Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3152Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3130```3153```

3131 3154 

3132サーバー名の後のテキストは理由です。最も一般的なのは名前チェックです。Claude Desktop はサーバー名に空白やピリオドなどの文字を許可しますが、`claude mcp` はそれらを文字、数字、ハイフン、アンダースコアに制限しています。その他の理由には、検証に失敗するサーバー設定と、組織の [MCP ポリシー](/docs/ja/managed-mcp)によってブロックされるサーバーが含まれます。3155サーバー名の後のテキストが理由です。最も一般的なのは名前のチェックです。Claude Desktop ではサーバー名にスペースやピリオドなどの文字を使用できますが、`claude mcp` は英字、数字、ハイフン、アンダースコアのみに制限しています。その他の理由には、検証に失敗するサーバー設定や、組織の [MCP ポリシー](/docs/ja/managed-mcp)によってブロックされているサーバーがあります。

3133 3156 

3134**対処方法:**3157**対処方法:**

3135 3158 

3136* `claude_desktop_config.json` でサーバーの名前を変更して、文字、数字、ハイフン、アンダースコアのみを使用してから、`claude mcp add-from-claude-desktop` を再度実行してください。3159* `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)を参照してください。3160* `claude mcp add` または `claude mcp add-json` を使用して、有効な名前でそのサーバーを直接追加します。[Claude Desktop から MCP サーバーをインポートする](/docs/ja/mcp#import-mcp-servers-from-claude-desktop)を参照してください。

3138 3161 

3139<h3 id="cannot-add-mcp-server-to-the-managed-scope">3162<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3140 MCP サーバーを管理スコープに追加できません3163 managed スコープに MCP サーバーを追加できない

3141</h3>3164</h3>

3142 3165 

3143`--scope managed` を使用して `claude mcp add` または `claude mcp add-json` を実行しました。そのスコープは、[`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers)管理設定を通じて組織が提供するサーバーを保持しています。Claude Code はそれらを管理設定からのみ読み込むため、コマンドはそのスコープにサーバーを書き込むことができません。3166`--scope managed` を指定して `claude mcp add` または `claude mcp add-json` を実行しました。このスコープには、組織が [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) 管理設定を通じて提供するサーバーが格納されます。Claude Code はこれらを管理設定からのみ読み取るため、コマンドはこのスコープにサーバーを書き込むことができません。

3144 3167 

3145```text theme={null}3168```text theme={null}

3146Cannot add MCP server to scope: managed3169Cannot add MCP server to scope: managed

3147```3170```

3148 3171 

3149**対処方法:**3172**対処方法:**

3150 3173 

3151* 書き込み可能なスコープにサーバーを追加してください。`local`、`user`、または `project`。`--scope` なしで、コマンドは `local` を使用します。[MCP インストールスコープ](/docs/ja/mcp#mcp-installation-scopes)を参照してください。3174* 書き込み可能なスコープ(`local`、`user`、または `project`)にサーバーを追加します。`--scope` を指定しない場合、コマンドは `local` を使用します。[MCP のインストールスコープ](/docs/ja/mcp#mcp-installation-scopes)を参照してください

3152* 組織内のすべてのユーザーにサーバーを提供するには、デプロイする管理設定の [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers)に追加してください。3175* 組織内のすべてのユーザーにサーバーを提供するには、デプロイする管理設定の [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) にサーバーを追加します

3153 3176 

3154<h3 id="cant-read-mcp-json">3177<h3 id="cant-read-mcp-json">

3155 .mcp.json を読み込めません3178 .mcp.json を読み取れない

3156</h3>3179</h3>

3157 3180 

3158プロジェクトの [`.mcp.json`](/docs/ja/mcp#project-scope)を読み込むコマンド(`--scope project` を使用した `claude mcp add` または `claude mcp add-json`、または `claude mcp remove`)は、現在のディレクトリのファイルが通常のファイルではないか、2 MiB より大きいことを検出したため、ファイルを読み込む代わりにこのエラーで終了します。3181`--scope project` を指定した `claude mcp add` や `claude mcp add-json`、または `claude mcp remove` など、プロジェクトの [`.mcp.json`](/docs/ja/mcp#project-scope) を読み取るコマンドが、現在のディレクトリにあるこのファイルが通常のファイルではないか 2 MiB を超えていることを検出したため、ファイルを読み取らずにこのエラーで終了します。

3159 3182 

3160```text theme={null}3183```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.3184Can'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```3185```

3163 3186 

3164v2.1.257 より前は、`.mcp.json` の FIFO はコマンドを出力なしで永遠に待機させ、`/dev/zero` などのデバイスファイルへのシンボリックリンクはプロセスが強制終了されるまでメモリを増やしていました。3187v2.1.257 より前は、`.mcp.json` が FIFO の場合はコマンドが出力なしで永久に待機し、`/dev/zero` などのデバイスファイルへのシンボリックリンクの場合はプロセスが強制終了されるまでメモリが増加していました。

3165 3188 

3166**対処方法:**3189**対処方法:**

3167 3190 

3168* 現在のディレクトリの `.mcp.json` に何があるかを確認してください。[プロジェクトスコープ形式](/docs/ja/mcp#project-scope)の通常の JSON ファイルに置き換えるか、削除してから、コマンドを再度実行してください。3191* 現在のディレクトリの `.mcp.json` に何があるかを確認します。[プロジェクトスコープの形式](/docs/ja/mcp#project-scope)の通常の JSON ファイルに置き換えるか削除してから、コマンドを再度実行します。

3169 3192 

3170<h3 id="mcp-server-was-not-saved-or-removed">3193<h3 id="mcp-server-was-not-saved-or-removed">

3171 MCP サーバーは保存されたか削除されませんでした3194 MCP サーバーが保存または削除されなかった

3172</h3>3195</h3>

3173 3196 

3174`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しました。両方のスコープは `~/.claude.json` に保存され、書き込み後に Claude Code がそれを読み込むときに変更がそのファイルにありません。コマンドは成功行の代わりにこのエラーで終了します。3197`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しました。どちらのスコープも `~/.claude.json` に保存されますが、書き込み後に Claude Code がファイルを読み戻したとき、変更がファイルに反映されていませんでした。コマンドは成功メッセージの代わりにこのエラーで終了します。

3175 3198 

3176```text theme={null}3199```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.3200MCP 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```3201```

3179 3202 

3180削除後、メッセージは `was not removed from` を読み、`then remove the server again` で終わります。`local` スコープサーバーの場合、パスの後にサーバーが属するプロジェクトディレクトリが `(local scope for /path/to/project)` として続きます。3203削除の場合、メッセージは `was not removed from` となり、`then remove the server again` で終わります。`local` スコープのサーバーの場合、パスの後にエントリが属するプロジェクトディレクトリが `(local scope for /path/to/project)` として続きます。

3181 3204 

3182v2.1.283 より前は、`claude mcp add`、`claude mcp add-json`、`claude mcp remove` は変更がファイルに到達しなかった場合でも成功を報告していました。3205v2.1.283 より前は、`claude mcp add`、`claude mcp add-json`、`claude mcp remove` は、変更がファイルに反映されなかった場合でも成功を報告していました。

3183 3206 

3184**対処方法:**3207**対処方法:**

3185 3208 

3186* メッセージが示すファイルを書き込み可能にするか、サンドボックスの外でコマンドを実行してから、同じ追加または削除コマンドを再度実行してください。3209* メッセージに示されたファイルを書き込み可能にするか、サンドボックスの外でコマンドを実行してから、同じ追加または削除のコマンドを再度実行します。

3187 3210 

3188<h3 id="mcp-server-may-not-have-been-saved-or-removed">3211<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3189 MCP サーバーは保存されたか削除されなかった可能性があります3212 MCP サーバーが保存または削除されていない可能性がある

3190</h3>3213</h3>

3191 3214 

3192`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しました。Claude Code は `~/.claude.json` を読み込んで変更を確認できませんでした。変更はディスク上にあるかもしれません。括弧内のテキストはその読み込みからのエラーです。3215`user` または `local` [スコープ](/docs/ja/mcp#mcp-installation-scopes)のサーバーに対して `claude mcp add`、`claude mcp add-json`、または `claude mcp remove` を実行しましたが、Claude Code が変更を確認するために `~/.claude.json` を読み戻すことができませんでした。変更がディスクに反映されているかどうかは不明です。括弧内のテキストは、その読み取りで発生したエラーです。

3193 3216 

3194```text theme={null}3217```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.3218MCP 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```3219```

3197 3220 

3198削除後、メッセージは `may not have been removed` を読み、`then remove the server again if it is still listed` で終わります。3221削除の場合、メッセージは `may not have been removed` となり、`then remove the server again if it is still listed` で終わります。

3199 3222 

3200v2.1.283 より前は、コマンドは変更を確認できなかった場合でも成功を報告していました。3223v2.1.283 より前は、変更を確認できなかった場合でも、これらのコマンドは成功を報告していました。

3201 3224 

3202**対処方法:**3225**対処方法:**

3203 3226 

3204* `claude mcp get <name>` を実行して、変更がディスク上にあるかどうかを確認してください。`local` スコープサーバーの場合は、サーバーが属するプロジェクトディレクトリから実行してください。ローカルスコープはプロジェクトごとです。3227* `claude mcp get <name>` を実行して、変更がディスクに反映されているかどうかを確認します。`local` スコープのサーバーの場合、ローカルスコープはプロジェクトごとであるため、サーバーが属するプロジェクトディレクトリから実行します。

3205* サーバーが追加後に欠落している場合、または削除後もリストされている場合は、同じ追加または削除コマンドを再度実行してください。3228* 追加後にサーバーが見つからない場合、または削除後もまだ一覧に表示される場合は、同じ追加または削除のコマンドを再度実行します。

3206 3229 

3207<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3230<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3208 サーバーは Anthropic ホストで、ローカル OAuth をサポートしていません3231 サーバーが Anthropic によってホストされており、ローカル OAuth をサポートしていない

3209</h3>3232</h3>

3210 3233 

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 フローを開始することを拒否します。3234サードパーティの 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 3235 

3213```text theme={null}3236```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.3237"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```3238```

3216 3239 

3217**対処方法:**3240**対処方法:**

3218 3241 

3219* `claude mcp remove <name>` でエントリを削除して、同じ URL の claude.ai コネクタを非表示にすることができないようにしてください。3242* 同じ 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)。3243* 削除後、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 3244 

3222<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3245<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3223 サーバーは設定された headersHelper によって作成された Authorization ヘッダーを拒否しました3246 設定された headersHelper が生成した Authorization ヘッダーをサーバーが拒否した

3224</h3>3247</h3>

3225 3248 

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)しません。3249[`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 3250 

3228```text theme={null}3251```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.3252Server 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```3253```

3231 3254 

3232Claude Code は接続試行のたびにヘルパーを再実行するため、一時的な拒否(トークンローテーションレースなど)の後の再試行は、新しい認証情報で成功する可能性があります。3255Claude Code は接続を試行するたびにヘルパーを再実行するため、トークンのローテーションの競合など一時的な拒否の後であれば、再試行によって新しい認証情報で成功することがあります。

3233 3256 

3234**対処方法:**3257**対処方法:**

3235 3258 

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` 値を出力することを確認してください。3259* 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` でサーバーを選択し、**再接続**を選択してください。3260* ヘルパーまたはその認証情報のソースを修正した後、`/mcp` でサーバーを選択し、**Reconnect** を選びます

3238 3261 

3239v2.1.248 より前は、Claude Code はヘルパーが `Authorization` ヘッダーを提供するサーバーの OAuth ディスカバリーを実行していました。そのディスカバリーは、拒否された認証情報を報告する代わりに `Incompatible auth server: does not support dynamic client registration` で失敗する可能性があります。3262v2.1.248 より前は、ヘルパーが `Authorization` ヘッダーを提供するサーバーに対しても Claude Code は OAuth ディスカバリーを実行していました。そのディスカバリーは、拒否された認証情報を報告する代わりに `Incompatible auth server: does not support dynamic client registration` で失敗することがありました。

3240 3263 

3241<h3 id="mcp-permission-prompt-tool-not-found">3264<h3 id="mcp-permission-prompt-tool-not-found">

3242 MCP 権限プロンプトツールが見つかりません3265 MCP の権限プロンプトツールが見つからない

3243</h3>3266</h3>

3244 3267 

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 より前は、起動は接続の完了を待たなかったため、遅く開始しても健全なサーバーはこのエラーを生成していました。3268[`--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 3269 

3247```text theme={null}3270```text theme={null}

3248Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3271Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3249```3272```

3250 3273 

3251`Available MCP tools:` の後のリストは、待機が終了したときに接続されていた MCP ツールを示します。3274`Available MCP tools:` の後の一覧には、接続されていた MCP ツールの名前が示されます。

3252 3275 

3253**対処方法:**3276**対処方法:**

3254 3277 

3255* サーバーが開始して接続されたままであることを確認してください。同じディレクトリで `claude mcp list` を実行し、サーバーが接続済みとしてリストされていることを確認してください。3278* サーバーが起動して接続を維持していることを確認します。同じディレクトリで `claude mcp list` を実行し、サーバーが接続済みとして一覧に表示されることを確認してください

3256* ツール名がサーバーが公開する `mcp__<server>__<tool>` 名と一致することを確認してください。3279* ツール名が、サーバーが公開する `mcp__<server>__<tool>` の名前と一致していることを確認します

3257* サーバーが開始するのに 30 秒以上必要な場合は、[`MCP_TIMEOUT`](/docs/ja/env-vars)を上げてください。3280* サーバーの起動に 30 秒を超える時間が必要な場合は、[`MCP_TIMEOUT`](/docs/ja/env-vars) を引き上げます

3258 3281 

3259<h3 id="oauth-callback-port-is-already-in-use">3282<h3 id="oauth-callback-port-is-already-in-use">

3260 OAuth コールバックポートは既に使用中です3283 OAuth コールバックポートが既に使用されている

3261</h3>3284</h3>

3262 3285 

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 は利用可能なポートを選択するためです。3286OAuth でリモート 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 3287 

3265```text theme={null}3288```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.3289OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

3267```3290```

3268 3291 

3269Windows では、提案されたコマンドは代わりに `netstat -ano | findstr :<port>` です。3292Windows では、代わりに `netstat -ano | findstr :<port>` が提案されます。

3270 3293 

3271**対処方法:**3294**対処方法:**

3272 3295 

3273* メッセージからコマンドを実行して、ポートを保持しているプロセスを見つけ、それを停止するか、完了するのを待ってください。3296* メッセージに示されたコマンドを実行してポートを保持しているプロセスを特定し、そのプロセスを停止するか終了を待ちます

3274* 別のプログラムがそのポートを永続的に必要とする場合は、サーバーに別のリダイレクト URI を登録し、`MCP_OAUTH_CALLBACK_PORT` または `--callback-port` を使用してそのポートを設定してください。どちらを使用するかに関わらず。3297* 別のプログラムがそのポートを恒常的に必要とする場合は、サーバーに別のリダイレクト URI を登録し、`MCP_OAUTH_CALLBACK_PORT` または `--callback-port` のうち使用している方でそのポートを設定します

3275* その後、サインインを再度開始してください。例えば、`/mcp` でサーバーを選択することで。3298* その後、`/mcp` でサーバーを選択するなどして、サインインを再度開始します

3276 3299 

3277<h3 id="no-available-ports-for-oauth-redirect">3300<h3 id="no-available-ports-for-oauth-redirect">

3278 OAuth リダイレクト用の利用可能なポートがありません3301 OAuth リダイレクトに使用できるポートがない

3279</h3>3302</h3>

3280 3303 

3281[OAuth](/docs/ja/mcp#authenticate-with-remote-mcp-servers)を使用してリモート MCP サーバーにサインインするとき、Claude Code はサインインコールバックを受け取るためのローカルリスナーを開始します。Claude Code がそれのためにローカルポートをバインドできない場合、サインインはこのメッセージで失敗します。マシン上の何かが `127.0.0.1` でのリッスンを防止しています。例えば、セキュリティソフトウェアまたはローカルリスナーを拒否するサンドボックスポリシーです。3304[OAuth](/docs/ja/mcp#authenticate-with-remote-mcp-servers) でリモート MCP サーバーにサインインすると、Claude Code はサインインのコールバックを受け取るためのローカルリスナーを開始します。Claude Code がそのためのローカルポートをバインドできない場合、サインインはこのメッセージで失敗します。マシン上の何かが `127.0.0.1` でのリッスンを妨げています。たとえば、ローカルリスナーを拒否するセキュリティソフトウェアやサンドボックスポリシーです。

3282 3305 

3283```text theme={null}3306```text theme={null}

3284No available ports for OAuth redirect3307No available ports for OAuth redirect

3285```3308```

3286 3309 

3287v2.1.268 より前は、Claude Code はオペレーティングシステムが割り当てたポートにフォールバックしなかったため、メッセージは Claude Code が選択したポート範囲をカバーする Hyper-V が予約するポートのみがバインドできない場合にも表示されていました。これは Windows ホストで発生する可能性があります。3310v2.1.268 より前は、Claude Code はオペレーティングシステムが割り当てるポートにフォールバックしなかったため、自身で選んだポートをバインドできなかっただけの場合にもこのメッセージが表示されていました。これは、Claude Code がポートを選ぶ範囲を Hyper-V が予約している Windows ホストで発生することがあります。

3288 3311 

3289**対処方法:**3312**対処方法:**

3290 3313 

3291* セキュリティソフトウェアまたはサンドボックスポリシーが `127.0.0.1` でのリッスンをプロセスからブロックしているかどうかを確認し、Claude Code がローカルポートをバインドできるようにしてください。3314* セキュリティソフトウェアやサンドボックスポリシーが `127.0.0.1` でのプロセスのリッスンをブロックしていないかを確認し、Claude Code がローカルポートをバインドできるようにします

3292* その後、サインインを再度開始してください。例えば、`/mcp` でサーバーを選択することで。3315* その後、`/mcp` でサーバーを選択するなどして、サインインを再度開始します

3293 3316 

3294<h3 id="security-review-fails-without-origin-head">3317<h3 id="security-review-fails-without-origin-head">

3295 /security-review は origin/HEAD なしで失敗します3318 origin/HEAD がないと /security-review が失敗する

3296</h3>3319</h3>

3297 3320 

3298[`/security-review`](/docs/ja/commands#all-commands)は、ブランチを `origin/HEAD` に対して差分することで、レビューコンテキストを構築します。`origin/HEAD` は、`origin` リモートのデフォルトブランチがどれであるかを記録するローカル ref です。その ref が存在しない場合、差分を収集する git コマンドは失敗し、レビューは開始する前に停止します。3321[`/security-review`](/docs/ja/commands#all-commands) は、ブランチと `origin/HEAD` の差分を取ることでレビューのコンテキストを構築します。`origin/HEAD` は、`origin` リモートでどのブランチがデフォルトかを記録するローカルの ref です。この ref が存在しない場合、差分を収集する git コマンドが失敗し、レビューは開始前に停止します。

3299 3322 

3300```text theme={null}3323```text theme={null}

3301Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3324Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3304'git <command> [<revision>...] -- [<file>...]'3327'git <command> [<revision>...] -- [<file>...]'

3305```3328```

3306 3329 

3307メッセージは `git log` または別の `git diff` を引用する可能性があります。Git は、リモートがデフォルトブランチをアドバタイズし、フェッチ refspec がそれをカバーする場合にのみ `origin/HEAD` を作成します。これは、リモートへのコミット付きの完全な `git clone` です。ref は次のセットアップで欠落しています。3330メッセージには、代わりに `git log` や別の `git diff` が引用されることもあります。Git が `origin/HEAD` を作成するのは、リモートがデフォルトブランチを公開していて、フェッチの refspec がそれをカバーしている場合のみです。コミットを持つリモートを完全に `git clone` した場合はこれに該当します。次のような構成では ref が存在しません:

3308 3331 

3309* シングルブランチまたは CI チェックアウト。これは refspec を狭くフェッチします。3332* シングルブランチまたは CI のチェックアウトで、フェッチする refspec が狭すぎる場合

3310* サーバー側の HEAD がだれも押していないブランチを指すリモート。3333* サーバー側の HEAD が、誰もプッシュしていないブランチを指しているリモート

3311* `origin` リモートがないか、フェッチしたことがないリポジトリ。3334* `origin` リモートがないリポジトリ、または一度もフェッチしていないリポジトリ

3312 3335 

3313Claude Code は、[動的コンテキストを注入する](/docs/ja/skills#when-an-injected-command-fails)スキルに対して同じエラーを表示し、失敗した注入コマンドはそのスキルの呼び出しを中止します。コマンドが実行される前に 2 つの兄弟文字列が発火します。3336Claude Code は、[動的コンテキストを注入する](/docs/ja/skills#when-an-injected-command-fails)すべてのスキルで同じエラーを表示し、注入されたコマンドが失敗するとそのスキルの呼び出しは中止されます。関連する 2 つのメッセージは、コマンドが実行される前の段階で発生します:

3314 3337 

3315* `Shell command permission check failed for pattern "..."`: コマンドの権限チェックはそれを許可しませんでした。[注入コマンドの権限チェック](/docs/ja/skills#permission-checks-on-injected-commands)は、各権限モードでどの結果が中止されるか、および `allowed-tools` でコマンドを事前承認する方法をカバーしています。3338* `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)を参照してください。3339* ``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 3340 

3318**対処方法:**3341**対処方法:**

3319 3342 

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` を再実行してください。3343* リモートのデフォルトブランチを指定して 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 を広げてください。3344* ブランチを指定したくない場合は、`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` はブランチがそれから分岐するまで空の差分を見ます。3345* リポジトリにリモートがない場合は、`git remote add origin <url>` でリモートを追加し、ref を作成する前にフェッチします。リモートが空の場合は、まず `git push -u origin HEAD` でブランチをプッシュし、set-head コマンドでそのブランチを指定します。すると `origin/HEAD` はプッシュしたばかりのブランチを指すため、ブランチがそこから分岐するまで `/security-review` には空の差分が表示されます。

3323 3346 

3324<h3 id="input-must-be-provided-when-using-print">3347<h3 id="input-must-be-provided-when-using-print">

3325 \--print を使用する場合は入力を提供する必要があります3348 `--print` を使用する場合は入力を指定する必要がある

3326</h3>3349</h3>

3327 3350 

3328ベアの `claude` は、インタラクティブ UI を開始するために stdout がターミナルである必要があります。stdout がリダイレクトされるか、コンソールが実際のターミナルではない場合(PowerShell ISE や一部の IDE 出力ペインなど)、`claude` は代わりに[非対話的に](/docs/ja/headless)実行されます。これは `claude -p` と同じモードであり、プロンプトが必要なため、メッセージはフラグを渡さなかった場合でも `--print` を示します。プロンプトなしで `-p`/`--print` を渡し、stdin に何もパイプされていない場合、どこでも同じエラーが発生します。3351引数なしの `claude` が対話 UI を開始するには、stdout がターミナルである必要があります。stdout がリダイレクトされている場合、またはコンソールが実際のターミナルではない場合(PowerShell ISE や一部の IDE の出力ペインなど)、`claude` は代わりに[非対話的に](/docs/ja/headless)実行されます。これは `claude -p` と同じモードであり、プロンプトが必要です。そのため、フラグを渡していなくてもメッセージには `--print` が示されます。プロンプトを指定せず stdin にも何もパイプしないで `-p`/`--print` を渡した場合も、どこでも同じエラーが発生します。

3329 3352 

3330```text theme={null}3353```text theme={null}

3331Error: Input must be provided either through stdin or as a prompt argument when using --print3354Error: Input must be provided either through stdin or as a prompt argument when using --print

3332```3355```

3333 3356 

3334**対処方法:**3357**対処方法:**

3335 3358 

3336* インタラクティブ使用の場合は、実際のターミナルで `claude` を実行してください。Windows Terminal または PowerShell コンソール(ISE ではなく)、IDE の統合ターミナル(出力ペインではなく)。3359* 対話的に使用するには、実際のターミナルで `claude` を実行します。ISE ではなく Windows Terminal または PowerShell コンソールを使用し、出力ペインではなく IDE の統合ターミナルを使用してください

3337* ワンショット使用の場合は、プロンプトを渡してください。`claude -p "your question"`、またはパイプで `echo "your question" | claude -p`。3360* 1 回限りの使用では、プロンプトを渡します: `claude -p "your question"`。または `echo "your question" | claude -p` でパイプします

3338 3361 

3339<h3 id="input-contained-only-whitespace">3362<h3 id="input-contained-only-whitespace">

3340 入力に空白のみが含まれていました3363 入力が空白文字のみだった

3341</h3>3364</h3>

3342 3365 

3343[非対話的モード](/docs/ja/headless)では、Claude Code は、API がテキストのないメッセージを拒否するため、空白、タブ、または改行のみで構成されるプロンプトを送信する代わりに拒否します。表示されるメッセージは、空白のプロンプトがどこから来たかによって異なります。3366[非対話モード](/docs/ja/headless)では、API が表示可能なテキストを含まないメッセージを拒否するため、Claude Code はスペース、タブ、改行のみで構成されたプロンプトを送信せずに拒否します。表示されるメッセージは、空のプロンプトがどこから来たかによって異なります:

3344 3367 

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` で終了します。3368* **`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.`3369* **実行中の `--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 3370 

3348v2.1.229 より前は、Claude Code は空白のみのメッセージを API に送信し、API は 400 エラーで要求を拒否していました。3371v2.1.229 より前は、Claude Code は空白文字のみのメッセージを API に送信し、API はそのリクエストを 400 エラーで拒否していました。

3349 3372 

3350**対処方法:**3373**対処方法:**

3351 3374 

3352* プロンプトに表示されるテキストを含めてください。スクリプトが変数またはファイルからプロンプトを構築する場合は、Claude Code を呼び出す前にソースが空でないことを確認してください。3375* プロンプトに表示可能なテキストを含めます。スクリプトが変数やファイルからプロンプトを組み立てる場合は、Claude Code を呼び出す前にソースが空でないことを確認してください。

3353 3376 

3354<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3377<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3355 stream-json 入力は改行なしで 256M 文字を超えました3378 stream-json 入力が改行なしで 256M 文字を超えた

3356</h3>3379</h3>

3357 3380 

3358プログラムは `claude -p --input-format stream-json` 実行に stdin で改行なしで 268,435,456 文字以上を送信したため、Claude Code はこのエラーを stderr に出力し、終了コード 1 で終了し、より多くの入力をバッファリングする代わりに終了します。メッセージはその予算を `256M` として示します。v2.1.257 より前は、Claude Code はそのような入力を無制限にバッファリングし、プロセスがクラッシュするか強制終了されるまでメモリを増やしていました。3381プログラムが `claude -p --input-format stream-json` の実行に対して、改行なしで 268,435,456 文字を超える入力を stdin に送信したため、Claude Code はそれ以上入力をバッファリングせず、このエラーを stderr に出力して終了コード 1 で終了します。メッセージではこの上限を `256M` と表記しています。v2.1.257 より前は、Claude Code はこのような入力を無制限にバッファリングし、プロセスがクラッシュするか強制終了されるまでメモリが増加していました。

3359 3382 

3360```text theme={null}3383```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.3384Error: 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```3385```

3363 3386 

3364改行なしのこのような長い入力は通常、プロデューサーが stream-json プロデューサーではないことを意味します。例えば、バイナリファイルまたは誤ってパイプされたプレーンログ出力。予算を超える単一のメッセージは同じチェックに失敗します。3387改行なしでこれほど長い入力がある場合、通常はプロデューサーがそもそも stream-json のプロデューサーではないことを意味します。たとえば、バイナリファイルやプレーンなログ出力を誤ってパイプした場合です。1 つのメッセージが上限を超えた場合も、同じチェックで失敗します。

3365 3388 

3366**対処方法:**3389**対処方法:**

3367 3390 

3368* stdin にパイプされているものを確認してください。[`--input-format stream-json`](/docs/ja/cli-reference#cli-flags)を使用すると、すべてのメッセージは 1 つの改行で終了する JSON 行である必要があります。3391* stdin に何がパイプされているかを確認します。[`--input-format stream-json`](/docs/ja/cli-reference#cli-flags) では、すべてのメッセージが改行で終わる 1 行の JSON である必要があります

3369* プレーンテキストを代わりに送信するには、`--input-format stream-json` を削除してください。`claude -p` はデフォルトで stdin からプレーンテキストプロンプトを読み込みます。3392* 代わりにプレーンテキストを送信するには、`--input-format stream-json` を外します。`claude -p` はデフォルトで stdin からプレーンテキストのプロンプトを読み取ります

3370 3393 

3371<h3 id="unknown-command">3394<h3 id="unknown-command">

3372 不明なコマンド3395 不明なコマンド

3373</h3>3396</h3>

3374 3397 

3375このセッションのコマンドと一致しない `/` 名を送信したため、Claude Code は何も実行する代わりに名前を報告します。3398対話型のターミナルセッションで、このセッションのどのコマンドにも一致しない `/` 名を送信したため、Claude Code は何も実行せずにその名前を報告します:

3376 3399 

3377```text theme={null}3400```text theme={null}

3378Unknown command: /hepl. Did you mean /help?3401Unknown command: /hepl. Did you mean /help?

3379```3402```

3380 3403 

3381Claude Code は、このセッションのメニューにリストされている最も近いコマンド名またはエイリアスを提案します。何も近い場合、メッセージは名前の後で終了します。原因は通常、以下のいずれかです。3404Claude Code は、このセッションのメニューに表示される中で最も近いコマンド名またはエイリアスを提案します。近いものがない場合、メッセージは名前の後で終わります。原因は通常、次のいずれかです:

3382 3405 

3383* `/hepl` から `/help` への入力ミスなどのタイプミス。[コマンドメニューが入力と一致する方法](/docs/ja/commands#how-the-command-menu-matches-what-you-type)は、送信する前に近い一致を選択することをカバーしています。3406* `/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)などの独自のメッセージで答えます。3407* プラットフォーム、プラン、認証方法などの要件を満たしていないために、このセッションでは利用できない既存のコマンド。[`/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)からのコマンド。3408* このセッションでインストールまたは接続されていない[プラグイン](/docs/ja/plugins/overview)や [MCP サーバー](/docs/ja/mcp#use-mcp-prompts-as-commands)のコマンド

3386 3409 

3387Claude Code は、一致しない `/` 名をインタラクティブターミナルセッションでのみこのように答えます。他のすべてのセッションでは、プロンプトを通常のメッセージとして Claude に送信し、コマンドが実行されなかったこと、および Claude がセッションで実行できるコマンドのリストを示します。これらのセッションには以下が含まれます。3410Claude Code が一致しない `/` 名にこのように応答するのは、対話型のターミナルセッションのみです。それ以外のすべてのセッションでは、コマンドが実行されなかったことを示す注記と、そのセッションで Claude が実行できるコマンドの一覧を添えて、プロンプトを通常のメッセージとして Claude に送信します。これらのセッションには次のものが含まれます:

3388 3411 

3389* `-p` 実行3412* `-p` による実行

3390* [Agent SDK](/docs/ja/agent-sdk/overview)アプリケーション3413* [Agent SDK](/docs/ja/agent-sdk/overview) アプリケーション

3391* [Desktop app](/docs/ja/desktop)の Code タブ3414* [デスクトップアプリ](/docs/ja/desktop)の Code タブ

3392* [VS Code extension](/docs/ja/vs-code)のチャットパネル3415* [VS Code 拡張機能](/docs/ja/vs-code)のチャットパネル

3393* [クラウドセッション](/docs/ja/claude-code-on-the-web)と[ルーチン](/docs/ja/routines)3416* [クラウドセッション](/docs/ja/claude-code-on-the-web)と[ルーティン](/docs/ja/routines)

3394 3417 

3395これらのセッションの 1 つで実行できない組み込みコマンドの場合、Claude Code はコマンドが利用できないことを答えます。v2.1.274 より前は、クラウドセッションとルーチンのみが一致しない名前を Claude に送信していました。v2.1.273 より前は、それらも `Unknown command` で答えていました。3418これらのセッションで実行できない組み込みコマンドの場合、Claude Code はそれを Claude に送信せず、引き続きコマンドが利用できないと応答します。v2.1.274 より前は、一致しない名前を Claude に送信していたのはクラウドセッションとルーティンのみでした。v2.1.273 より前は、これらも `Unknown command` と応答していました。

3396 3419 

3397Claude Code は、`/` で始まるすべてのプロンプトをコマンドとして扱うわけではありません。最初の単語の後の `/` が句読点で始まる場合(Lean ドキュメントコメントを開く `/--` など)、またはパス(`/var/log/syslog` など)である場合、プロンプトを通常のメッセージとして Claude に送信します。3420Claude Code は、`/` で始まるすべてのプロンプトをコマンドとして扱うわけではありません。`/` の後の最初の単語が句読点で始まる場合(Lean のドキュメントコメントを開始する `/--` など)や、`/var/log/syslog` のようなパスである場合は、プロンプトを通常のメッセージとして Claude に送信します。

3398 3421 

3399v2.1.236 より前は、コマンドメニューが入力した名前の近い一致をリストしている間に `Enter` を押すと、Claude Code はその一致を実行したため、`/hepl` などのタイプミスはこのメッセージを生成する代わりに `/help` を実行していました。3422v2.1.236 より前は、入力した名前に近い候補をコマンドメニューが表示している状態で `Enter` を押すと、Claude Code はその候補を実行していました。そのため、`/hepl` のようなタイプミスでは、このメッセージを表示する代わりに `/help` が実行されていました。

3400 3423 

3401**対処方法:**3424**対処方法:**

3402 3425 

3403* 提案された名前を実行するか、`/` の後に名前の一部を入力して、このセッションで利用可能なものを確認してください。3426* 提案された名前を実行するか、`/` に続けて名前の一部を入力し、このセッションで利用できるものを確認します

3404* Claude Code が文書化されたコマンドを不明として報告する場合は、[コマンドリファレンス](/docs/ja/commands)でその行を確認して、それが示す要件を確認してください。3427* ドキュメントに記載されているコマンドを Claude Code が不明と報告する場合は、[コマンドリファレンス](/docs/ja/commands)でそのコマンドの行を確認し、記載された要件を確認します

3405 3428 

3406<h3 id="diff-is-too-large-for-ultrareview">3429<h3 id="diff-is-too-large-for-ultrareview">

3407 Diff は ultrareview には大きすぎます3430 差分が ultrareview には大きすぎる

3408</h3>3431</h3>

3409 3432 

3410ブランチとベースブランチ間の差分(コミットされていない変更とステージングされた変更を含む)は、[ultrareview](/docs/ja/ultrareview)のサイズ制限を超えているため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションが開始する前にレビューを拒否します。拒否されたレビューは無料実行を使用せず、使用クレジットを請求しません。メッセージは有効な制限、差分のサイズ、最も変更された行に貢献するファイルを示します。v2.1.216 より前は、メッセージは生の差分統計のみを表示していました。3433コミットされていない変更とステージされた変更を含む、ブランチとベースブランチの間の差分が [ultrareview](/docs/ja/ultrareview) のサイズ制限を超えているため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションの開始前にレビューを拒否します。拒否されたレビューは無料実行回数を消費せず、使用クレジットも請求されません。メッセージには、適用されている制限、差分のサイズ、変更行数が最も多いファイルが示されます。v2.1.216 より前は、メッセージには生の差分統計のみが表示されていました。

3411 3434 

3412```text theme={null}3435```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.3436Diff 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```3437```

3415 3438 

3416プルリクエストをレビューすると、同じ制限が適用されます。そのメッセージの形式は `PR #<N> is too large for ultrareview` で始まり、PR のファイルと行数を示します。3439プルリクエストのレビューにも同じ制限が適用されます。その場合のメッセージは `PR #<N> is too large for ultrareview` で始まり、PR のファイル数と行数が示されます。

3417 3440 

3418**対処方法:**3441**対処方法:**

3419 3442 

3420* より近いベースブランチ(`/code-review ultra develop` など)を渡して、レビューがそのブランチに対する差分のみをカバーするようにしてください。3443* `/code-review ultra develop` のように、作業により近いベースブランチを渡して、そのブランチとの差分のみがレビュー対象になるようにします

3421* 変更を小さなブランチに分割し、それぞれをレビューしてください。メッセージが示すファイルは最も変更された行に貢献するため、それらを独自のブランチに移動することから始めてください。3444* 変更をより小さなブランチに分割し、それぞれをレビューします。メッセージに示されたファイルが変更行数の大部分を占めているため、まずそれらを個別のブランチに移動します。

3422 3445 

3423<h3 id="could-not-find-merge-base-with-the-base-branch">3446<h3 id="could-not-find-merge-base-with-the-base-branch">

3424 ベースブランチとのマージベースが見つかりませんでした3447 ベースブランチとの merge-base が見つからなかった

3425</h3>3448</h3>

3426 3449 

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 オブジェクト形式など)の場合、この拒否が表示されます。3450`/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 3451 

3429```text theme={null}3452```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.3453Could 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```3454```

3432 3455 

3433最初の文の後のヒントは、Claude Code が観察したものに依存します。3456最初の文の後のヒントは、Claude Code が検出した内容によって異なります:

3434 3457 

3435* **ベースブランチを渡さなかった**: Claude Code はリポジトリのデフォルトブランチと比較し、上記の例のように明示的にベースを渡すことを提案します。3458* **ベースブランチを渡さなかった場合**: Claude Code はリポジトリのデフォルトブランチと比較し、上記の例のように、ベースを明示的に渡すよう提案します

3436* **クローンに既にあったベースブランチを渡した**: ヒントは ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)`` を読みます。3459* **クローンに既に存在するベースブランチを渡した場合**: ヒントは ``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` で失敗します。3460* **クローンに存在しないベースブランチを渡した場合**: 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 3461 

3439**対処方法:**3462**対処方法:**

3440 3463 

3441* 別のブランチが実際のベースである場合は、明示的に渡してください。`/code-review ultra <branch>`3464* 別のブランチが実際のベースである場合は、明示的に渡します: `/code-review ultra <branch>`

3442* クローンに完全な履歴がない可能性がある場合は、`git fetch --unshallow origin` を実行してレビューを再実行してください。3465* クローンに完全な履歴がない可能性がある場合は、`git fetch --unshallow origin` を実行してからレビューを再実行します

3443 3466 

3444<h3 id="your-checkout-has-no-branches">3467<h3 id="your-checkout-has-no-branches">

3445 チェックアウトにブランチがありません3468 チェックアウトにブランチがない

3446</h3>3469</h3>

3447 3470 

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` サブコマンドはクラウドセッションが開始する前にレビューを拒否します。3471チェックアウトには、コミットがあってもブランチがない場合があります。`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 3472 

3450```text theme={null}3473```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.3474Your 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```3475```

3453 3476 

3454v2.1.221 より前は、Claude Code はこのチェックアウトのすべての追跡ファイルをレビューしようとし、アップロードは失敗していました。3477v2.1.221 より前は、Claude Code はこのチェックアウトで追跡されているすべてのファイルのレビューを試み、アップロードが失敗していました。

3455 3478 

3456**対処方法:**3479**対処方法:**

3457 3480 

3458* 現在のコミットで `git checkout -b <name>` を使用してブランチを作成してから、レビューを再実行してください。3481* `git checkout -b <name>` で現在のコミットにブランチを作成してから、レビューを再実行します

3459 3482 

3460<h3 id="no-github-account-is-connected-to-your-claude-account">3483<h3 id="no-github-account-is-connected-to-your-claude-account">

3461 GitHub アカウントが Claude アカウントに接続されていません3484 Claude アカウントに GitHub アカウントが接続されていない

3462</h3>3485</h3>

3463 3486 

3464`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。クラウドセッションを作成する前に、Claude Code はサーバーに、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリに到達できるかどうかを尋ねます。アカウントが接続されていないか、接続が期限切れになっているため、クラウドクローンは失敗し、Claude Code は起動を拒否します。Claude Code は拒否された起動に無料実行を費やしたり、使用クレジットを請求したりしません。3487`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。Claude Code はクラウドセッションを作成する前に、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリにアクセスできるかどうかをサーバーに問い合わせます。アカウントが接続されていないか、接続の有効期限が切れているため、クラウドでのクローンは失敗することになり、Claude Code は起動を拒否します。拒否された起動では、Claude Code は無料実行回数を消費せず、使用クレジットも請求しません。

3465 3488 

3466```text theme={null}3489```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).3490Ultrareview 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```3491```

3469 3492 

3470[`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal)がセッションで利用できない場合、メッセージは claude.ai リンクのみを示します。3493セッションで [`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal) が利用できない場合、メッセージには claude.ai のリンクのみが示されます。

3471 3494 

3472**対処方法:**3495**対処方法:**

3473 3496 

3474* `/web-setup` を実行して GitHub CLI ログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github)でアカウントを接続してください。3497* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します

3475* 接続してから 1 分後にレビューを再実行してください。3498* 接続してから 1 分ほど待ってレビューを再実行します

3476 3499 

3477v2.1.248 より前は、Claude Code は起動前にこれをチェックしませんでした。3500v2.1.248 より前は、Claude Code は起動前にこのチェックを行っていませんでした。

3478 3501 

3479<h3 id="your-connected-github-account-cant-see-the-repository">3502<h3 id="your-connected-github-account-cant-see-the-repository">

3480 接続された GitHub アカウントはリポジトリを見ることができません3503 接続された GitHub アカウントがリポジトリを参照できない

3481</h3>3504</h3>

3482 3505 

3483`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)は PR のリポジトリを読み取ることができないため、クラウドクローンは失敗し、Claude Code は起動を拒否します。Claude Code は拒否された起動に無料実行を費やしたり、使用クレジットを請求したりしません。3506`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しましたが、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリを読み取れないため、クラウドでのクローンは失敗することになり、Claude Code は起動を拒否します。拒否された起動では、Claude Code は無料実行回数を消費せず、使用クレジットも請求しません。

3484 3507 

3485```text theme={null}3508```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.3509Your 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```3510```

3488 3511 

3489[`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal)がセッションで利用できない場合、メッセージはアプリのインストールのみを示します。3512セッションで [`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal) が利用できない場合、メッセージにはアプリのインストールのみが示されます。

3490 3513 

3491**対処方法:**3514**対処方法:**

3492 3515 

3493* ローカル `gh` CLI がリポジトリを読み取ることができる場合は、`/web-setup` を実行してそのログインを Claude アカウントに接続してください。3516* ローカルの `gh` CLI がリポジトリを読み取れる場合は、`/web-setup` を実行してそのログインを Claude アカウントに接続します

3494* 変更後にレビューを再実行してください。3517* 変更後にレビューを再実行します

3495 3518 

3496v2.1.248 より前は、Claude Code は起動前にこれをチェックしませんでした。3519v2.1.248 より前は、Claude Code は起動前にこのチェックを行っていませんでした。

3497 3520 

3498<h3 id="the-github-app-preflight-failed-transiently">3521<h3 id="the-github-app-preflight-failed-transiently">

3499 GitHub App プリフライトが一時的に失敗しました3522 GitHub App の事前チェックが一時的に失敗した

3500</h3>3523</h3>

3501 3524 

3502ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。2 つのステップが一緒に失敗しました。Claude Code はリポジトリのバンドルを構築またはアップロードできませんでした。アップロードの前に、クラウドサービスが GitHub からリポジトリをクローンできるかどうかを確認し、確定的な答えではなく、再試行が解決できるエラーで終了しました。例えば、ネットワークエラー、タイムアウト、または一時的なサーバーエラーです。完全なメッセージは、バンドルを停止したもので始まります。例えば `Could not upload repo bundle (<error>)`、プリフライト文で終わります。3525ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しましたが、2 つのステップが同時に失敗しました。Claude Code はリポジトリのバンドルをビルドまたはアップロードできませんでした。アップロードの前に、クラウドサービスが GitHub からリポジトリをクローンできるかどうかを確認しましたが、そのチェックは明確な結果ではなく、ネットワークエラー、タイムアウト、一時的なサーバーエラーなど、再試行で解消される可能性のあるエラーで終わりました。完全なメッセージは、バンドルを妨げた原因(たとえば `Could not upload repo bundle (<error>)`)で始まり、事前チェックに関する文で終わります:

3503 3526 

3504```text theme={null}3527```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 instead3528Could 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```3529```

3507 3530 

3508**対処方法:**3531**対処方法:**

3509 3532 

3510* しばらく後にコマンドを再実行してください。GitHub チェックが成功すると、Claude Code はクラウドクローンから開始できるため、失敗したアップロードはもはや起動をブロックしません。3533* 少し待ってからコマンドを再実行します。GitHub のチェックに合格すると、Claude Code は GitHub のクローンからセッションを開始できるため、アップロードの失敗によって起動が妨げられることはなくなります

3511* 再試行が失敗し続ける場合、メッセージの開始はアップロードを停止したものを示します。それが修正できるものである場合は、セッションがローカルリポジトリから代わりに開始できるように修正してください。3534* 再試行しても失敗し続ける場合は、メッセージの冒頭にアップロードを妨げた原因が示されています。その原因が修正可能なものであれば、修正することでローカルリポジトリからセッションを開始できるようになります

3512 3535 

3513v2.1.251 より前は、Claude Code は GitHub チェックが一時的にのみ失敗した場合でも `Please set up GitHub on https://claude.ai/code` でメッセージを終了し、セットアップアドバイスは一時的な失敗を解決することはできません。3536v2.1.251 より前は、GitHub のチェックが一時的に失敗しただけの場合でも、Claude Code はメッセージの末尾に `Please set up GitHub on https://claude.ai/code` を表示していましたが、セットアップに関する助言では一時的な失敗は解消できません。

3514 3537 

3515<h3 id="the-repository-upload-cant-follow-a-git-setting">3538<h3 id="the-repository-upload-cant-follow-a-git-setting">

3516 リポジトリのアップロードは git 設定に従うことができません3539 リポジトリのアップロードが git の設定に従えない

3517</h3>3540</h3>

3518 3541 

3519ローカルリポジトリをアップロードする[クラウドセッション](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github)、またはブランチの[ultrareview](/docs/ja/ultrareview)を開始しました。アップロードは、ファイルに適用される属性ルールを決定する git 設定の 1 つに従うことができません。アップロードが進行し、ルールを逃した場合、git が保存する前に変換するファイル(例えば、クリーンフィルタが暗号化するファイル)は、ディスク上のままクラウドに到達する可能性があります。Claude Code はアップロードを拒否する代わりに、何もアップロードされません。3542[ローカルリポジトリをアップロードするクラウドセッション](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github)、またはブランチの [ultrareview](/docs/ja/ultrareview) を開始しましたが、ファイルに適用される属性ルールを決定する git の設定のいずれかに、アップロードが従うことができません。アップロードを続行してルールを見落とすと、clean フィルターで暗号化されるファイルなど、git が保存前に変換するファイルが、ディスク上の状態のままクラウドに届く可能性があります。そのため Claude Code は代わりにアップロードを拒否し、何もアップロードされません:

3520 3543 

3521```text theme={null}3544```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.3545Not 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```3546```

3524 3547 

3525メッセージは設定と場所を示し、ヒットしたケースの修正で終わります。同じ拒否は `core.attributesFile` と `attr.tree` に対して表示され、それぞれ独自の修正があります。3548メッセージには設定とそれが設定されている場所が示され、該当するケースに対する修正方法で終わります。`core.attributesFile` と `attr.tree` についても同じ拒否が表示され、それぞれに独自の修正方法が示されます。

3526 3549 

3527メッセージは、その指令の条件がこのリポジトリに適用されない場合でも、git 設定が `include` または `includeIf` 指令を通じてプルインする設定ファイルに名前を付ける可能性があります。3550メッセージには、git の設定が `include` または `includeIf` ディレクティブで読み込む設定ファイルが示されることがあります。そのディレクティブの条件がこのリポジトリに該当しない場合でも同様です。

3528 3551 

3529**対処方法:**3552**対処方法:**

3530 3553 

3531* メッセージの最後の文の修正を適用してください。3554* メッセージの最後の文に示された修正を適用します

3532 3555 

3533<h3 id="github-isnt-connected-to-your-claude-account">3556<h3 id="github-isnt-connected-to-your-claude-account">

3534 GitHub がアカウントに接続されていません3557 GitHub が Claude アカウントに接続されていない

3535</h3>3558</h3>

3536 3559 

3537ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。例えば、`/autofix-pr` を使用しています。GitHub アカウントが Claude アカウントに接続されていないか、接続が期限切れになっているため、Claude Code は起動を拒否します。3560`/autofix-pr` などで、ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。Claude アカウントに GitHub アカウントが接続されていないか、接続の有効期限が切れているため、Claude Code は起動を拒否します:

3538 3561 

3539```text theme={null}3562```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-github3563GitHub 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```3564```

3542 3565 

3543[`/schedule`](/docs/ja/routines)でルーチンを作成するとき、同じメッセージはセットアップノートとして表示され、リポジトリに名前を付けます。ノートはルーチンの作成をブロックしません。3566[`/schedule`](/docs/ja/routines) でルーティンを作成する場合、同じメッセージがリポジトリ名を含むセットアップの注記として表示されます。この注記はルーティンの作成を妨げません。

3544 3567 

3545**対処方法:**3568**対処方法:**

3546 3569 

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 つの違いを確認してください。3570* `/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 分後にコマンドを再実行してください。3571* 接続してから 1 分ほど待ってコマンドを再実行します

3549 3572 

3550v2.1.268 より前は、Claude Code はこれを Claude GitHub App チェックの一時的な失敗として報告し、再試行またはアプリのインストールを提案していました。どちらも GitHub アカウントを接続しません。3573v2.1.268 より前は、Claude Code はこれを Claude GitHub App のチェックの一時的な失敗として報告し、再試行またはアプリのインストールを提案していましたが、どちらも GitHub アカウントを接続するものではありません。

3551 3574 

3552<h3 id="single-sign-on-authorization-needed">3575<h3 id="single-sign-on-authorization-needed">

3553 単一サインオン認可が必要です3576 シングルサインオンの認可が必要

3554</h3>3577</h3>

3555 3578 

3556[`/install-github-app`](/docs/ja/github-actions#quick-setup)を実行し、SAML シングルサインオンを強制する組織のリポジトリを選択しました。セットアップの前に、Claude Code は GitHub CLI を使用してリポジトリへのアクセスを確認し、GitHub はあなたの `gh` トークンがまだ組織に対して認可されていないため、そのチェックを拒否しました。ウィザードは警告を表示し、認可するステップを示します。3579[`/install-github-app`](/docs/ja/github-actions#quick-setup) を実行し、SAML シングルサインオンを強制している組織のリポジトリを選択しました。セットアップの前に、Claude Code は GitHub CLI でリポジトリへのアクセスを確認しますが、`gh` トークンがまだその組織に対して認可されていないため、GitHub がそのチェックを拒否しました。ウィザードには、認可の手順とともに警告が表示されます:

3557 3580 

3558```text theme={null}3581```text theme={null}

3559Single sign-on authorization needed3582Single 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.3583<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.

3561```3584```

3562 3585 

3563**対処方法:**3586**対処方法:**

3564 3587 

3565* `gh auth refresh -h github.com -s repo,workflow` を実行して GitHub CLI ログインを再認可し、GitHub がシングルサインオンを求めるときに組織を認可してください。3588* `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** を選択し、組織を認可してください。3589* `GH_TOKEN` の個人用アクセストークンで認証している場合は、[github.com/settings/tokens](https://github.com/settings/tokens) を開き、トークンの **Configure SSO** を選択して組織を認可します

3567* `/install-github-app` を再度実行してください。3590* `/install-github-app` を再度実行します

3568 3591 

3569v2.1.273 より前は、Claude Code はこの条件に対して `Admin permissions required` 警告を表示していました。3592v2.1.273 より前は、Claude Code はこの状況で代わりに `Admin permissions required` の警告を表示していました。

3570 3593 

3571<h3 id="failed-to-resume-the-conversation">3594<h3 id="failed-to-resume-the-conversation">

3572 会話の再開に失敗しました3595 会話の再開に失敗した

3573</h3>3596</h3>

3574 3597 

3575Claude Code は、[`claude --resume` ピッカー](/docs/ja/sessions#use-the-session-picker)から選択したセッションの保存されたトランスクリプトを読み込むか処理できなかったため、部分的に読み込まれた状態で続行する代わりにプロセスを終了します。メッセージには再試行するコマンドが含まれています。3598[`claude --resume` ピッカー](/docs/ja/sessions#use-the-session-picker)から選択したセッションの保存済みトランスクリプトを Claude Code が読み取りまたは処理できなかったため、部分的に読み込まれた状態で続行するのではなくプロセスを終了します。メッセージには再試行用のコマンドが含まれています:

3576 3599 

3577```text theme={null}3600```text theme={null}

3578Failed to resume the conversation.3601Failed to resume the conversation.

3579Run claude --resume <session-id> to retry, or claude to start a new session.3602Run claude --resume <session-id> to retry, or claude to start a new session.

3580```3603```

3581 3604 

3582Claude Code はメッセージを表示した後、終了コード 1 で終了します。実行中のセッション内の `/resume` ピッカーは、会話で `Failed to resume conversation` を報告し、現在のセッションは実行を続けます。v2.1.216 より前は、`claude --resume` ピッカーからの失敗した再開は `Resuming conversation…` スピナーで無期限に留まっていました。3605Claude Code はメッセージを表示した後、終了コード 1 で終了します。実行中のセッション内の `/resume` ピッカーでは、代わりに会話内に `Failed to resume conversation` が報告され、現在のセッションは引き続き実行されます。v2.1.216 より前は、`claude --resume` ピッカーからの再開が失敗すると、このメッセージを表示する代わりに `Resuming conversation…` のスピナーが表示されたままになっていました。

3583 3606 

3584**対処方法:**3607**対処方法:**

3585 3608 

3586* メッセージからセッション ID を使用して `claude --resume <session-id>` を実行して再試行してください。3609* メッセージに示されたセッション ID を使用して `claude --resume <session-id>` を実行し、再試行します

3587* 再試行が再度失敗する場合は、`claude update` を実行してから再開してください。v2.1.275 より前のバージョンは、保存されたトランスクリプトに読み込めないエントリが含まれている場合、再開に失敗します。3610* 再試行が毎回同じように失敗する場合は、`claude update` を実行してから再度再開します。v2.1.275 より前のバージョンでは、保存済みトランスクリプトに読み取れないエントリが含まれていると再開に失敗します。

3588* 再試行が再度失敗する場合は、`claude` を実行して新しいセッションを開始してください。3611* 再試行が再び失敗した場合は、`claude` を実行して新しいセッションを開始します

3589 3612 

3590<h3 id="no-conversation-found-with-the-session-id">3613<h3 id="no-conversation-found-with-the-session-id">

3591 セッション ID で会話が見つかりません3614 セッション ID に一致する会話が見つからない

3592</h3>3615</h3>

3593 3616 

3594セッション ID を `claude --resume <session-id>` に渡しましたが、保存されたトランスクリプトと一致しませんでした。3617`claude --resume <session-id>` にセッション ID を渡しましたが、一致する保存済みトランスクリプトがありませんでした:

3595 3618 

3596```text theme={null}3619```text theme={null}

3597No conversation found with session ID: <session-id>3620No conversation found with session ID: <session-id>

3598```3621```

3599 3622 

3600Claude Code はメッセージを表示した後、終了コード 1 で終了します。Claude Code は[現在のプロジェクトを最初に検索し、このマシン上のすべての他のプロジェクトを検索](/docs/ja/sessions#resume-a-session)して ID を検索します。v2.1.223 より前は、ルックアップは現在のプロジェクトディレクトリとその git ワークツリーで停止したため、セッションが最後に機能したディレクトリから再開してください。3623Claude Code はメッセージを表示した後、終了コード 1 で終了します。Claude Code は、[まず現在のプロジェクトを、次にこのマシン上の他のすべてのプロジェクト](/docs/ja/sessions#resume-a-session)を対象に ID を検索します。v2.1.223 より前は、検索は現在のプロジェクトディレクトリとその git worktree で終わっていたため、セッションが最後に作業していたディレクトリから再開する必要がありました。

3601 3624 

3602一般的な原因:3625よくある原因:

3603 3626 

3604* **入力ミスされた ID**: 非対話的実行の場合、ID は [`--output-format json` 出力](/docs/ja/headless#get-structured-output)の `session_id` フィールドです。3627* **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)に従います。3628* **トランスクリプトの削除**: Claude Code は、[保持期間の整理ルール](/docs/ja/claude-directory#cleaned-up-automatically)に従い、[保持期間](/docs/ja/sessions#where-transcripts-are-stored)(デフォルトは 30 日)を過ぎたトランスクリプトを削除します

3606* **別のマシン**: Claude Code はトランスクリプトをローカルに保存するため、セッションが実行されたマシンでセッションを再開してください。3629* **別のマシン**: Claude Code はトランスクリプトをローカルに保存するため、セッションを実行したマシンで再開します

3607* **重複コピー**: `~/.claude/projects` の下にプロジェクトディレクトリをコピーして 2 つのトランスクリプトが同じ ID を持つ場合、Claude Code はこのメッセージを報告し、1 つのコピーを任意に再開します。3630* **重複したコピー**: `~/.claude/projects` 配下のプロジェクトディレクトリをコピーしたために 2 つのトランスクリプトが同じ ID を持つ場合、Claude Code は一方のコピーを任意に再開するのではなく、このメッセージを報告します

3608 3631 

3609**対処方法:**3632**対処方法:**

3610 3633 

3611* インタラクティブセッションの場合は、`claude --resume` で[セッションピッカー](/docs/ja/sessions#use-the-session-picker)を開き、`Ctrl+A` を押してこのマシン上のすべてのプロジェクトに拡張してから、セッションを選択してください。3634* 対話セッションの場合は、`claude --resume` で[セッションピッカー](/docs/ja/sessions#use-the-session-picker)を開き、`Ctrl+A` を押してこのマシン上のすべてのプロジェクトに範囲を広げてから、セッションを選択します

3612* `claude -p` または [Agent SDK](/docs/ja/agent-sdk/overview)で作成されたセッションはピッカーに表示されないため、元の実行が出力した `session_id` に対して ID を再確認してください。3635* `claude -p` または [Agent SDK](/docs/ja/agent-sdk/overview) で作成したセッションはピッカーに表示されないため、元の実行で出力された `session_id` と ID を照合し直します

3613 3636 

3614<h3 id="windows-reported-an-error-ebadf">3637<h3 id="windows-reported-an-error-ebadf">

3615 Windows reported an error (EBADF) when Claude Code read this session's transcript file3638 Claude Code がこのセッションのトランスクリプトファイルを読み取る際に Windows がエラー(EBADF)を報告した

3616</h3>3639</h3>

3617 3640 

3618Windows でセッションを再開しました。保存された[トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)は正常に開きましたが、読み込みは EBADF システムエラーで失敗しました。システムエラーは読み込みが失敗した理由を示さないため、メッセージは可能性のある原因と試すべきことを提案します。3641Windows でセッションを再開し、保存された[トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)は正常に開かれましたが、その後の読み取りがシステムエラー EBADF で失敗しました。システムエラーは読み取りが失敗した理由を示さないため、メッセージでは考えられる原因と試すべき対処を提示します。

3619 3642 

3620```text theme={null}3643```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.3644Windows 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```3645```

3623 3646 

3624メッセージは、コマンド自体の失敗行に従います。例えば `Failed to resume session <session-id>`。`claude --resume` または [`claude -p`](/docs/ja/headless)コマンドはメッセージを表示した後、終了コード 1 で終了します。セッション内の `/resume` の後、現在のセッションは実行を続けます。3647このメッセージは、`Failed to resume session <session-id>` のようなコマンド自体の失敗行に続いて表示されます。`claude --resume` または [`claude -p`](/docs/ja/headless) コマンドは、これを表示した後に終了コード 1 で終了します。セッション内で `/resume` を実行した場合は、現在のセッションはそのまま実行を続けます。

3625 3648 

3626**対処方法:**3649**対処方法:**

3627 3650 

3628* セキュリティ、暗号化、またはエンドポイント管理ツールなど、ファイル読み込みをスキャンまたは傍受するソフトウェアから、セッショントランスクリプトを保持するフォルダを除外してください。トランスクリプトはデフォルトで `%USERPROFILE%\.claude\projects` の下に存在するか、[`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars)が示すディレクトリの下に存在します。3651* セッションのトランスクリプトを保存しているフォルダを、セキュリティ、暗号化、エンドポイント管理ツールなど、ファイルの読み取りをスキャンまたはインターセプトするソフトウェアの対象から除外します。トランスクリプトはデフォルトで `%USERPROFILE%\.claude\projects` の下、または [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) で指定されたディレクトリの下に保存されます

3629* 除外を追加できない場合は、代わりにそのソフトウェアの許可されたアプリケーションに Claude Code を追加してください。3652* 除外を追加できない場合は、代わりに Claude Code をそのソフトウェアの許可アプリケーションに追加します

3630* セッションを再度再開してください。3653* セッションを再度再開します

3631 3654 

3632v2.1.282 より前は、失敗には説明がありませんでした。`claude --resume <session-id>` は `Failed to resume session <session-id>` で終了し、`-p` 実行は `Failed to resume session: EBADF: bad file descriptor, read` などのシステムエラーテキストのみを出力していました。3655v2.1.282 より前は、失敗時に説明が表示されませんでした。`claude --resume <session-id>` は `Failed to resume session <session-id>` で終了し、`-p` の実行では `Failed to resume session: EBADF: bad file descriptor, read` のようなシステムエラーのテキストのみが出力されていました。

3633 3656 

3634<h3 id="cannot-switch-renderers-in-this-session">3657<h3 id="cannot-switch-renderers-in-this-session">

3635 このセッションではレンダラーを切り替えることができません3658 このセッションではレンダラーを切り替えられない

3636</h3>3659</h3>

3637 3660 

3638レンダラーを切り替えると、Claude Code はプロセスを再起動します。[`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering)をセッションで実行しましたが、Claude Code は再起動を拒否するため、切り替わらず、何も保存しません。表示されるメッセージは原因を示します。3661レンダラーを切り替えると、Claude Code はプロセスを再起動します。Claude Code が再起動を拒否するセッションで [`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering) を実行したため、切り替えは行われず、何も保存されません。表示されるメッセージによって原因がわかります。

3639 3662 

3640* `Cannot switch renderers while work is running in the background`: バックグラウンドで実行中のバックグラウンドシェルやサブエージェントなど、再起動が放棄するバックグラウンド作業があります。[`/tasks`](/docs/ja/commands)で作業が完了するか停止するのを待ってから、`/tui fullscreen` または `/tui default` を再度実行してください。3663* `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 は再起動し、再起動されたセッションはそれらなしで実行されていました。3664* `Cannot switch renderers in this session`:このセッションには、Claude Code が再起動後のプロセスに引き継げない制限があります。v2.1.234 より前は、Claude Code はそれでも再起動し、再起動後のセッションはそれらの制限なしで実行されていました

3642 3665 

3643制限メッセージでは、括弧内の部分は Claude Code が見つけた制限に名前を付けます。3666制限に関するメッセージでは、括弧内の部分に Claude Code が検出した制限が示されます。

3644 3667 

3645```text theme={null}3668```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.3669Cannot 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```3670```

3648 3671 

3649メッセージが括弧内に表示できる各理由:3672メッセージの括弧内に表示される可能性のある各理由:

3650 3673 

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)が含まれます。3674* `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 は代わりにプロンプトを表示します。3675* `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` として渡すルールと一緒に質問ルールを追加しました。質問ルールのフラグは存在しません。3676* `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`: 権限更新はセッション中にルールまたはディレクトリパスを追加しました。再起動されたプロセスのコマンドラインはそのテキストを同じ値として持つことができません。3677* `permission rules a command line cannot carry intact` および `added directories a command line cannot carry intact`:権限の更新によって、セッションの途中でルールまたはディレクトリパスが追加されました。再起動後のプロセスのコマンドラインでは、そのテキストを同じ値として引き継ぐことができません

3655 3678 

3656**対処方法:**3679**対処方法:**

3657 3680 

3658* これらの制限なしで開始されたセッションで、`/tui fullscreen` または `/tui default` を実行して戻してください。Claude Code はそこで [`tui` 設定](/docs/ja/settings-reference#tui)を保存します。3681* それらの制限なしで開始したセッションで `/tui fullscreen` を実行するか、元に戻すには `/tui default` を実行します。Claude Code はそのセッションで [`tui` 設定](/docs/ja/settings-reference#tui)を保存します

3659 3682 

3660<h3 id="couldnt-open-claude-desktop">3683<h3 id="couldnt-open-claude-desktop">

3661 Claude Desktop を開くことができませんでした3684 Claude Desktop を開けなかった

3662</h3>3685</h3>

3663 3686 

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 で終了します。3687セッション内で [`/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 3688 

3666括弧内のテキストは失敗したコマンドを示し、その終了ステータスと最初の行のエラー出力(生成された場合)を示します。macOS ではそのコマンドは `open` です。この例のように。Windows では `rundll32` です。3689括弧内のテキストには、失敗したコマンドが示され、終了ステータスとエラー出力の最初の行が生成された場合はそれらも含まれます。macOS ではこの例のようにコマンドは `open` で、Windows では `rundll32` です。

3667 3690 

3668```text theme={null}3691```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.3692Error: 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 3694 

3672**対処方法:**3695**対処方法:**

3673 3696 

3674* Claude Desktop を自分で開いてから、`/desktop` または `claude --desktop` を再度実行してください。3697* Claude Desktop を自分で開いてから、`/desktop` または `claude --desktop` を再度実行します

3675* 失敗したコマンドの完全なエラー出力を読むには、`/debug` でデバッグログをオンにし、`/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行してから、デバッグログを確認してください。3698* 失敗したコマンドのエラー出力全体を確認するには、`/debug` でデバッグログをオンにしてから `/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行し、デバッグログを確認します

3676 3699 

3677v2.1.285 より前は、メッセージは `Open Claude Desktop and run /desktop again.` で終わりました。v2.1.275 より前は、`Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかを言いませんでした。3700v2.1.285 より前は、メッセージの末尾が `Open Claude Desktop and run /desktop again.` でした。v2.1.275 より前は、メッセージは `Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかは示されませんでした。

3678 3701 

3679<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3702<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3680 /terminal-setup は Zed キーマップを変更しませんでした3703 /terminal-setup で Zed のキーマップが変更されなかった

3681</h3>3704</h3>

3682 3705 

3683Zed で [`/terminal-setup`](/docs/ja/terminal-config#enter-multiline-prompts)を実行しましたが、Claude Code は Zed `keymap.json` への更新を完了できなかったため、ファイルはそのままにしました。3706Zed で [`/terminal-setup`](/docs/ja/terminal-config#enter-multiline-prompts) を実行しましたが、Claude Code が Zed の `keymap.json` の更新を完了できなかったため、ファイルは元のまま残されました。

3684 3707 

3685各メッセージはキーマップへのパスを示し、自分で追加するキーバインディングブロックで終わります。3708各メッセージにはキーマップのパスが示され、末尾に自分で追加するためのキーボードショートカットのブロックが記載されます。

3686 3709 

3687```text theme={null}3710```text theme={null}

3688Couldn't update your Zed keymap, so it was left unchanged.3711Couldn't update your Zed keymap, so it was left unchanged.


3690{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3713{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3691```3714```

3692 3715 

3693メッセージの最初の行は原因を示します。3716メッセージの最初の行に原因が示されます。

3694 3717 

3695* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code はファイルを読み込むことができませんでした。例えば、ファイル権限のため。3718* `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.`: ファイルは正常に読み込まれましたが、`//` コメントと末尾のコンマが許可されている場合でも、キーバインディングブロックの配列として解析されません。3719* `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` バックアップにコピーできなかったため、何も変更しませんでした。3720* `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 は書き込む代わりに破棄しました。重複したキーを持つキーバインディングブロックはこれを引き起こす可能性があります。3721* `Couldn't update your Zed keymap, so it was left unchanged.`:マージ結果が、そのショートカットを含む有効なキーマップとして検証できなかったため、Claude Code は書き込まずに破棄しました。キーが重複しているキーボードショートカットのブロックが原因となる場合があります

3699 3722 

3700**対処方法:**3723**対処方法:**

3701 3724 

3702* メッセージのブロックを、メッセージが示すパスの `keymap.json` のトップレベル配列にコピーしてください。3725* メッセージ内のブロックを、メッセージに示されたパスにある `keymap.json` のトップレベルの配列にコピーします

3703* `isn't a readable list of keybindings` の場合は、構文エラーを修正するか、ファイルのトップレベル値を配列にしてから、`/terminal-setup` を再度実行してください。3726* `isn't a readable list of keybindings` の場合は、構文エラーを修正するか、ファイルのトップレベルの値を配列にしてから、`/terminal-setup` を再度実行します

3704 3727 

3705v2.1.247 より前は、`/terminal-setup` は `//` コメントまたは末尾のコンマを使用する Zed キーマップを解析できず、ファイル全体をバインディングのみで置き換えながら、バインディングがインストールされたと報告していました。以前のバージョンが置き換えたキーマップを復元するには、[マルチラインプロンプトを入力する](/docs/ja/terminal-config#enter-multiline-prompts)の下で説明されている `.bak` バックアップファイルを使用してください。3728v2.1.247 より前は、`/terminal-setup` は `//` コメントや末尾のカンマを使用した Zed のキーマップを解析できず、ファイル全体を自身のショートカットのみで置き換えたうえで、ショートカットがインストールされたと報告していました。以前のバージョンによって置き換えられたキーマップを復元するには、[複数行のプロンプトを入力する](/docs/ja/terminal-config#enter-multiline-prompts)で説明されている `.bak` バックアップファイルを使用します。

3706 3729 

3707<h3 id="skill-usage-reports-are-not-available-on-this-connection">3730<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3708 スキル使用レポートはこの接続では利用できません3731 この接続ではスキルの使用状況レポートを利用できない

3709</h3>3732</h3>

3710 3733 

3711[Remote Control](/docs/ja/remote-control)経由で、電話またはブラウザから [`/skill-doctor`](/docs/ja/skills#find-unused-skills)を実行しました。Claude Code は Remote Control 経由でスキル使用レポートを送信せず、代わりにこのメッセージで返信します。3734スマートフォンやブラウザから [Remote Control](/docs/ja/remote-control) 経由で [`/skill-doctor`](/docs/ja/skills#find-unused-skills) を実行しました。Claude Code はスキルの使用状況レポートを Remote Control 経由では送信せず、代わりに次のメッセージを返します。

3712 3735 

3713```text theme={null}3736```text theme={null}

3714Skill usage reports are not available on this connection.3737Skill usage reports are not available on this connection.


3716 3739 

3717**対処方法:**3740**対処方法:**

3718 3741 

3719* セッションが実行されているマシンのターミナルで `/skill-doctor` を実行するか、そこで `claude -p "/skill-doctor"` を実行してください。3742* セッションが実行されているマシンのターミナルで `/skill-doctor` を実行するか、そのマシンで `claude -p "/skill-doctor"` を実行します

3720 3743 

3721<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3744<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3722 カスタム出力スタイルは Remote Control 経由で選択できません3745 Remote Control 経由ではカスタム出力スタイルを選択できない

3723</h3>3746</h3>

3724 3747 

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)名は、存在しない名前と同じ返信を取得します。3748[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 3749 

3727```text theme={null}3750```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.3751Custom 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 3753 

3731**対処方法:**3754**対処方法:**

3732 3755 

3733* 組み込みスタイルを選択してください。例えば `/output-style concise`。3756* `/output-style concise` のように、組み込みスタイルを選択します

3734* カスタムスタイルを使用するには、プロジェクトの `.claude/settings.local.json` で [`outputStyle`](/docs/ja/settings-reference#outputstyle)を設定するか、セッション自体のターミナルがある場合はそこで `/output-style <style>` を実行してください。3757* カスタムスタイルを使用するには、プロジェクトの `.claude/settings.local.json` で [`outputStyle`](/docs/ja/settings-reference#outputstyle) を設定するか、セッション自体のターミナルがある場合はそこで `/output-style <style>` を実行します

3735 3758 

3736<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3759<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3737 出力スタイルはこのセッションが読み込まないローカル設定に保存されます3760 出力スタイルはこのセッションが読み込まないローカル設定に保存される

3738</h3>3761</h3>

3739 3762 

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 は効果がない設定を書き込む代わりに拒否します。3763設定ソースに `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 3764 

3742```text theme={null}3765```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.3766Output 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 3768 

3746**対処方法:**3769**対処方法:**

3747 3770 

3748* セッションの設定ソースに `local` を追加して、もう一度切り替えてください。3771* セッションの設定ソースに `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)を参照してください。3772* プロジェクトの `.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 3773 

3751<h2 id="plugin-errors">3774<h2 id="plugin-errors">

3752 プラグインエラー3775 プラグインエラー


4474 バックグラウンドセッションエラー4497 バックグラウンドセッションエラー

4475</h2>4498</h2>

4476 4499 

4477[バックグラウンドセッション](/docs/ja/agent-view)は独自のインタラクティブターミナルなしで実行されるため、ターミナルが必要なコマンドはそこで異なる動作をします。これらのメッセージはバックグラウンドセッションのトランスクリプト、それに接続するターミナル、ディスパッチ元のセッションまたはシェル、または以下の[worktree-guard エントリ](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved)の場合は worktree に分離されたセッションまたは worktree 分離サブエージェントを実行しているセッションに表示されます。メッセージが特定の表面に固有の場合、そのエントリに記載されています。4500[バックグラウンドセッション](/docs/ja/agent-view)は独自の対話型ターミナルなしで実行されるため、ターミナルが必要なコマンドはそこで異なる動作をします。これらのメッセージはバックグラウンドセッションのトランスクリプト、それに接続するターミナル、ディスパッチ元のセッションまたはシェル、または以下の[worktree-guard エントリ](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved)の場合は worktree に分離されたセッションまたは worktree 分離サブエージェントを実行しているセッションに表示されます。メッセージが特定のサーフェスに固有の場合、そのエントリに記載されています。

4478 4501 

4479<h3 id="commands-refused-in-a-background-session">4502<h3 id="commands-refused-in-a-background-session">

4480 バックグラウンドセッションで拒否されたコマンド4503 バックグラウンドセッションで拒否されたコマンド

4481</h3>4504</h3>

4482 4505 

4483インタラクティブダイアログを開くコマンドは、バックグラウンドセッションにターミナルが接続されていない間は実行できません。`/install-github-app`、`/mcp` 設定リスト、および MCP サーバーメニューの認証アクションは、メッセージで応答します。`/install-github-app` と `/mcp` 設定リストの場合、セッションは[エージェントビュー](/docs/ja/agent-view)の**入力が必要**に表示されるため、セッションを見つけて接続し、コマンドを再度実行できます。ターミナルが接続されている間、これらのコマンドは正常に機能します。4506対話型ダイアログを開くコマンドは、バックグラウンドセッションにターミナルが接続されていない間は実行できません。`/install-github-app`、`/mcp` 設定リスト、および MCP サーバーメニューの認証アクションは、メッセージで応答します。`/install-github-app` と `/mcp` 設定リストの場合、セッションは[エージェントビュー](/docs/ja/agent-view)の**入力が必要**に表示されるため、セッションを見つけて接続し、コマンドを再度実行できます。ターミナルが接続されている間、これらのコマンドは正常に機能します。

4484 4507 

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 を出力しました。4508v2.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 4509 


4499 パスを安全に解決できないため、書き込みまたはコマンドがブロックされました4522 パスを安全に解決できないため、書き込みまたはコマンドがブロックされました

4500</h3>4523</h3>

4501 4524 

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)での書き込みとコマンド作業ディレクトリをチェックします。解決前にシンボリックリンクを解決し、操作が共有チェックアウトに到達しないことを確認します。解決に失敗すると、操作をブロックして、そこに到達させません。メッセージは、拒否するパス形式と再試行方法に名前を付けます:4525Claude は、[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 4526 

4504```text theme={null}4527```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.4528This 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 つの理由のいずれかでそれを拒否しました:4558Claude は、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)で Bash または Monitor コマンドを実行し、Claude Code は 2 つの理由のいずれかでそれを拒否しました:

4536 4559 

4537* コマンドは git をメインチェックアウトに指します。4560* コマンドは git をメインチェックアウトに指します。

4538* Claude Code は、コマンドテキストからコマンドが実行する git が worktree 内に留まることを確認できません。git に名前を付けないコマンドでも、`${!name}` などの変数間接参照を展開するか、`${ command; }` などの Bash 関数置換を実行すると、実行時に値が生成される可能性があるため、この理由で拒否される可能性があります。4561* Claude Code は、コマンドテキストからコマンドが実行する git が worktree 内に留まることを確認できません。git に名前を付けないコマンドでも、`${!name}` などの変数間接参照を展開するか、`${ command; }` などの Bash 関数置換を実行すると、実行時に生成される値自体がコマンドになり得るため、この理由で拒否される可能性があります。

4539 4562 

4540メッセージの中央は、検証できなかったものに名前を付けます:4563メッセージの中央は、検証できなかったものに名前を付けます:

4541 4564 


4579```4602```

4580 4603 

4581* **`running in another terminal`**:ターミナルが会話を保持しています。例えば、`claude --resume` または `/resume` で再開したターミナル。行には `Open in a terminal` も表示されます。4604* **`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)プロセスがまだ終了していません。4605* **`already open in another running Claude session`**:別の非対話型 Claude Code プロセスがそれを保持しています。例えば、同じ会話の[バックグラウンドセッション](/docs/ja/agent-view#the-supervisor-process)プロセスがまだ終了していません。

4583 4606 

4584Claude Code は、行を開くときに入力した返信を保存し、セッションが次に開始するときにセッションの次のプロンプトとして送信します。4607Claude Code は、行を開くときに入力した返信を保存し、セッションが次に開始するときにセッションの次のプロンプトとして送信します。

4585 4608 


4593 このセッションの保存された会話はディスク上にもうありません4616 このセッションの保存された会話はディスク上にもうありません

4594</h3>4617</h3>

4595 4618 

4596[バックグラウンドセッション](/docs/ja/agent-view)を開きました。このセッションはバックグラウンドサービスがオフの間に終了し、[トランスクリプトクリーンアップ](/docs/ja/settings-reference#cleanupperioddays)がその保存された会話を削除しました。例えば、マシンが数週間オフになった後です。通常、そのような行を開くと、[保存された会話を再開](/docs/ja/agent-view#sessions-show-as-failed-after-shutdown)します。再開するものがないため、Claude Code は、セッションの元のプロンプトを再実行するよう求めずに拒否します:4619[バックグラウンドセッション](/docs/ja/agent-view)を開きました。このセッションはバックグラウンドサービスがオフの間に終了し、[トランスクリプトクリーンアップ](/docs/ja/settings-reference#cleanupperioddays)がその保存された会話を削除しました。例えば、マシンが数週間オフになった後です。通常、そのような行を開くと、[保存された会話を再開](/docs/ja/agent-view#sessions-show-as-failed-after-shutdown)します。再開するものがないため、Claude Code は、確認なしにセッションの元のプロンプトを再実行するのではなく、拒否します:

4597 4620 

4598```text theme={null}4621```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.4622This 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 を保持し、理由に名前を付けます4629* `claude rm <id>` を実行して行を削除します。[保持されたケース](/docs/ja/agent-view#what-deleting-a-session-removes)の 1 つが適用される場合、`claude rm` は行と worktree を保持し、理由に名前を付けます

4607* セッションの元のプロンプトを新しい会話として再度実行するには、`claude respawn <id>` を実行します4630* セッションの元のプロンプトを新しい会話として再度実行するには、`claude respawn <id>` を実行します

4608 4631 

4609v2.1.248 より前では、そのような行を開くと、セッションの元のプロンプトを再実行し、数週間前のタスクをフォアグラウンドに引き戻しました。4632v2.1.248 より前では、そのような行を開くと、拒否する代わりにセッションの元のプロンプトを再実行し、数週間前のタスクをフォアグラウンドに引き戻しました。

4610 4633 

4611<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">4634<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">

4612 Worktree にはどこにもプッシュされていないコミットがあります4635 Worktree にはどこにもプッシュされていないコミットがあります


4615[バックグラウンドセッション](/docs/ja/agent-view#what-deleting-a-session-removes)を削除しようとしました。その worktree は、Claude Code が他の場所に保存されていることを確認できないコミットを保持しています。Claude Code は、コミットを見ずに破棄するのではなく、worktree とセッション行を保持します。`claude rm` はブランチとプッシュされていないコミットに名前を付け、進め方を説明します:4638[バックグラウンドセッション](/docs/ja/agent-view#what-deleting-a-session-removes)を削除しようとしました。その worktree は、Claude Code が他の場所に保存されていることを確認できないコミットを保持しています。Claude Code は、コミットを見ずに破棄するのではなく、worktree とセッション行を保持します。`claude rm` はブランチとプッシュされていないコミットに名前を付け、進め方を説明します:

4616 4639 

4617```text theme={null}4640```text theme={null}

4618kept 7c5dcf5d — its worktree is still at "/home/you/project/.claude/worktrees/fix-login"4641kept 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.4642 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@0123456789abcdef0123456789abcdef4643 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4621```4644```

4622 4645 

4623Claude Code がコミットを要約できない場合、詳細行は `The worktree has unpushed commits` を読みます。[エージェントビュー](/docs/ja/agent-view)では、セッションの行は同じ理由で `not deleted` を表示します。4646Claude Code がコミットを要約できない場合、詳細行は代わりに `The worktree has unpushed commits` となります。[エージェントビュー](/docs/ja/agent-view)では、セッションの行は同じ理由で `not deleted` を表示します。

4624 4647 

4625リモート上のコミットは削除をブロックしません。ローカルコピーの `origin` リモートのデフォルトブランチ上のコミットもブロックしません。そのブランチがメインチェックアウト(リポジトリディレクトリ自体、worktree ではなく)でチェックアウトされている限り。4648リモート上のコミットは削除をブロックしません。`origin` リモートのデフォルトブランチのローカルコピー上のコミットもブロックしません。ただし、そのブランチがメインチェックアウト(worktree ではなく、リポジトリディレクトリ自体)でチェックアウトされている限りです。

4626 4649 

4627**対処方法:**4650**対処方法:**

4628 4651 

4629* コミットを保持するには、worktree のブランチをプッシュするか、メインチェックアウトでチェックアウトされたデフォルトブランチにマージしてから、セッションを再度削除します4652* コミットを保持するには、worktree のブランチをプッシュするか、メインチェックアウトでチェックアウトされたデフォルトブランチにマージしてから、セッションを再度削除します

4630* コミットを破棄するには、メッセージが出力した `claude rm <id> --discard-unpushed` コマンドを実行するか、エージェントビューのセッション行で `Ctrl+X` を 2 回押します。これにより、セッション、worktree、そのブランチ、プッシュされていないコミット、およびコミットされていない変更が削除されます。worktree が拒否以降にコミットを獲得した場合、Claude Code はそれを再度保持し、更新された状態を表示します4653* コミットを破棄するには、メッセージが出力した `claude rm <id> --discard-unpushed` コマンドを実行するか、エージェントビューのセッション行で再度 `Ctrl+X` を 2 回押します。これにより、セッション、worktree、そのブランチ、プッシュされていないコミット、およびコミットされていない変更が削除されます。worktree が拒否以降にコミットを獲得した場合、Claude Code はそれを再度保持し、更新された状態を表示します

4631* メッセージが worktree が別の完了したセッションによっても記録されていることを示す場合、再度削除してもそれは破棄されません:コミットをプッシュしてから、セッションを再度削除します4654* メッセージが worktree が別の完了したセッションによっても記録されていることを示す場合、再度削除してもそれは破棄されません:コミットをプッシュしてから、セッションを再度削除します

4632 4655 

4633v2.1.268 より前では、`claude rm` はコミット要約を `kept` 行自体に置いていました。Claude Code がコミットを要約できない場合、`kept` 行は要約の代わりに `worktree has commits that are not pushed anywhere` を読みました。4656v2.1.268 より前では、`claude rm` はコミット要約を `kept` 行自体に置いていました。`claude rm` がコミットを要約できない場合、`kept` 行は要約の代わりに `worktree has commits that are not pushed anywhere` となっていました。

4634 4657 

4635v2.1.260 より前では、メッセージはブランチまたはコミットに名前を付けず、再度削除することは同じ方法で拒否されました:セッションを削除してプッシュしないことは、`git worktree remove --force <path>` で worktree を自分で削除してから、`claude rm <id>` を再度実行することを意味していました。4658v2.1.260 より前では、メッセージはブランチまたはコミットに名前を付けず、再度削除することは同じ方法で拒否されました:セッションを削除してプッシュしないことは、`git worktree remove --force <path>` で worktree を自分で削除してから、`claude rm <id>` を再度実行することを意味していました。

4636 4659 


4713 セッションエージェントはもう利用できません4736 セッションエージェントはもう利用できません

4714</h3>4737</h3>

4715 4738 

4716[カスタムエージェント](/docs/ja/sub-agents#invoke-subagents-explicitly)を実行していたセッションを再開しました。`--agent` またはエージェント設定で開始され、Claude Code はその名前のエージェントを見つけませんでした。セッションの元のディレクトリを最初に検索します。[そのワークスペースを信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)している場合、再開するディレクトリを検索します。セッションは引き続き再開されますが、デフォルトツールとシステムプロンプトを使用するため、エージェントのツール制限は適用されなくなります:4739`--agent` または `agent` 設定で開始された[カスタムエージェント](/docs/ja/sub-agents#invoke-subagents-explicitly)を実行していたセッションを再開しましたが、Claude Code はその名前のエージェントを見つけられませんでした。Claude Code は、[そのワークスペースを信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)している場合はまずセッションの元のディレクトリを検索し、次に再開元のディレクトリを検索します。セッションは引き続き再開されますが、デフォルトツールを使用するため、エージェントのツール制限は適用されなくなります:

4717 4740 

4718```text theme={null}4741```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>.4742This 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```4743```

4721 4744 

4722警告は、Claude Code が検索したディレクトリのみに名前を付け、[バックグラウンドセッション](/docs/ja/agent-view)を起動するか、`/resume` または `claude --resume` を実行するか、[非インタラクティブモード](/docs/ja/headless)で再開するかどうかに関わらず、再開された会話に表示されます。そこでは stderr にも送信されます。`--input-format stream-json` を使用するセッションは、Agent SDK がスタートアップ後にエージェントを提供するため、表示されません。4745警告は、Claude Code が検索したディレクトリのみに名前を付け、[バックグラウンドセッション](/docs/ja/agent-view)を起動するか、`/resume` または `claude --resume` を実行するか、[非対話モード](/docs/ja/headless)で再開するかどうかに関わらず、再開された会話に表示されます。非対話モードでは stderr にも送信されます。`--input-format stream-json` を使用するセッションは、Agent SDK がスタートアップ後にエージェントを提供するため、表示されません。

4723 4746 

4724Claude Code はセッションへのフォールバックを保存しないため、警告は、対処するまで各再開で繰り返されます。組み込みの `claude` エージェントは、デフォルトツールセットへのフォールバックがそれに対して何も変わらないため、警告をトリガーしません。v2.1.216 より前では、Claude Code は静かにデフォルトエージェントとして続行し、ルックアップは再開するディレクトリのみをカバーしていたため、プロジェクトスコープのエージェントは別のディレクトリから再開すると失われました。4747Claude Code はセッションへのフォールバックを保存しないため、警告は、対処するまで各再開で繰り返されます。組み込みの `claude` エージェントは、デフォルトツールセットへのフォールバックがそれに対して何も変わらないため、警告をトリガーしません。v2.1.216 より前では、Claude Code は静かにデフォルトエージェントとして続行し、ルックアップは再開するディレクトリのみをカバーしていたため、プロジェクトスコープのエージェントは別のディレクトリから再開すると失われました。

4725 4748 

4726**対処方法:**4749**対処方法:**

4727 4750 

4728* セッションのプロジェクトの `.claude/agents/<name>.md` または個人エージェントの `~/.claude/agents/<name>.md` にエージェントファイルを再作成してから、再度再開します4751* セッションのプロジェクトの `.claude/agents/<name>.md` または個人エージェントの `~/.claude/agents/<name>.md` にエージェントファイルを再作成してから、再度再開します

4729* または、`--agent <name>` で再開して、存在するエージェントに名前を付けて、セッションをそのエージェントとして実行します4752* または、存在するエージェントを指定して `--agent <name>` で再開し、セッションをそのエージェントとして実行します

4730* エージェントがプロジェクトスコープで、セッションの元のディレクトリを信頼していない場合、そこで Claude Code を 1 回実行し、信頼ダイアログを受け入れてから、再度再開します4753* エージェントがプロジェクトスコープで、セッションの元のディレクトリを信頼していない場合、そこで Claude Code を 1 回実行し、信頼ダイアログを受け入れてから、再度再開します

4731 4754 

4732<h3 id="claude_code_process_wrapper-launcher-errors">4755<h3 id="claude_code_process_wrapper-launcher-errors">

4733 CLAUDE\_CODE\_PROCESS\_WRAPPER ランチャーエラー4756 CLAUDE\_CODE\_PROCESS\_WRAPPER ランチャーエラー

4734</h3>4757</h3>

4735 4758 

4736[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/ja/corporate-launcher)が設定されており、その値は使用できないため、Claude Code はランチャーなしで実行するのではなく、影響を受けるプロセスの開始を拒否します。構成の問題は、変数名で始まり、理由を述べるメッセージで報告されます。例えば:4759[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/ja/corporate-launcher)が設定されており、その値は使用できないため、Claude Code はランチャーなしで実行するのではなく、影響を受けるプロセスの開始を拒否します。設定の問題は、変数名で始まり、理由を述べるメッセージで報告されます。例えば:

4737 4760 

4738```text theme={null}4761```text theme={null}

4739CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4762CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4740```4763```

4741 4764 

4742開始するが Claude Code で自分自身を置き換えずに終了するランチャーは、それが開始していたセッションを失敗させ、エージェントビューのセッション行は、ランチャーが `must exec, not daemonize` に続いて、ランチャーが出力したものを報告します。バックグラウンドサービスに到達できないセッションは、ランチャーの問題を理由として `Couldn't reach the background service (...)` 内で報告します。4765開始するが Claude Code で自分自身を置き換えずに終了するランチャーは、それが開始していたセッションを失敗させ、エージェントビューのセッション行は、ランチャーが `must exec, not daemonize` であることを、ランチャーが出力したものに続けて報告します。ランチャーが原因で開始できない、またはバックグラウンドサービスに到達できないセッションは、ランチャーの問題を理由として `Couldn't reach the background service (...)` 内で報告します。

4743 4766 

4744**対処方法:**4767**対処方法:**

4745 4768 

4746* 変数を、`exec "$@"` を呼び出して終了する実行可能ファイルの絶対パスに設定します。完全な契約については、[ランチャー契約](/docs/ja/corporate-launcher#the-launcher-contract)を参照してください4769* 変数を、`exec "$@"` を呼び出して終了する実行可能ファイルの絶対パスに設定します。完全な契約については、[ランチャー契約](/docs/ja/corporate-launcher#the-launcher-contract)を参照してください

4747* `/status` をチェックします。これは Self-exec エントリで解決されたランチャーコマンドを表示し、実行中のバックグラウンドサービスが一致しない場合に警告するか、シェルから `claude daemon status` を実行します4770* `/status` をチェックします。これは Self-exec エントリで解決された起動コマンドを表示し、実行中のバックグラウンドサービスが一致しない場合に警告します。または、シェルから `claude daemon status` を実行します

4748* [設定](/docs/ja/corporate-launcher#set-up-the-launcher)の `env` ブロックで値を修正した後、`claude daemon stop --any` でバックグラウンドサービスを再開して、次のディスパッチがラップされたものを開始するようにします4771* [設定](/docs/ja/corporate-launcher#set-up-the-launcher)の `env` ブロックで値を修正した後、`claude daemon stop --any` でバックグラウンドサービスを再開して、次のディスパッチがラップされたものを開始するようにします

4749 4772 

4750<h3 id="eunknown-when-starting-a-background-session">4773<h3 id="eunknown-when-starting-a-background-session">


4767 4790 

4768**対処方法:**4791**対処方法:**

4769 4792 

4770* メッセージが `Couldn't start the session` を読む場合、v2.1.212 以降にアップグレードします。以前のバージョンでは、別のターミナルで最初に `claude daemon run` を実行してから、バックグラウンドセッションを再度開始することもできます。そのコマンドはバックグラウンドサービスをターミナルのフォアグラウンドで実行するため、サービスはそのターミナルが開いている限り続きます。4793* メッセージが `Couldn't start the session` となっている場合、v2.1.212 以降にアップグレードします。以前のバージョンでは、別のターミナルで最初に `claude daemon run` を実行してから、バックグラウンドセッションを再度開始することもできます。そのコマンドはバックグラウンドサービスをターミナルのフォアグラウンドで実行するため、サービスはそのターミナルが開いている限り続きます。

4771* npm インストールがバイナリを置き換えていた場合、完了するまで待ってから、バックグラウンドセッションを再度開始します4794* npm インストールがバイナリを置き換えていた場合、完了するまで待ってから、バックグラウンドセッションを再度開始します

4772* エラーが npm インストールが実行されていない間に v2.1.212 以降で表示される場合、Windows 管理者に Claude Code 実行可能ファイルを制限ポリシーで許可するよう依頼します4795* npm インストールが実行されていないのに v2.1.212 以降でエラーが表示される場合、制限ポリシーが Claude Code 実行可能ファイルをブロックしているかどうかを Windows 管理者に確認します

4773* ターミナルを閉じるとバックグラウンドサービスが停止する場合、Claude Code は PowerShell なしでそれを開始しました。PowerShell 7 をインストールするか、管理者に PowerShell をブロック解除するよう依頼して、サービスがターミナルより長く続くようにします。4796* ターミナルを閉じるとバックグラウンドサービスが停止する場合、Claude Code は PowerShell なしでそれを開始しました。PowerShell 7 をインストールするか、管理者に PowerShell をブロック解除するよう依頼して、サービスがターミナルより長く続くようにします。

4774 4797 

4775<h3 id="eacces-when-starting-a-background-session">4798<h3 id="eacces-when-starting-a-background-session">

4776 バックグラウンドセッションを開始するときの EACCES4799 バックグラウンドセッションを開始するときの EACCES

4777</h3>4800</h3>

4778 4801 

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)からセッションを開くときに表示されます:4802Claude 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 4803 

4781```text theme={null}4804```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'4805Couldn'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 finishes4813Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes

4791```4814```

4792 4815 

4793v2.1.257 より前では、待機は 10 秒で停止していたため、別の Claude Code プロセスがまだアップデートをダウンロードしている間にこのエラーが表示されました。v2.1.246 より前では、Claude Code は待機なしで直ちに失敗しました。4816v2.1.257 より前では、待機はすべての場合で 10 秒で停止していたため、別の Claude Code プロセスがまだアップデートをダウンロードしている間にこのエラーが表示されました。v2.1.246 より前では、Claude Code は待機なしで直ちに失敗しました。

4794 4817 

4795**対処方法:**4818**対処方法:**

4796 4819 

4797* 数秒待ってから、セッションを開くか再度ディスパッチします。メッセージが Claude Code が更新されていることを示す場合、アップデートが完了した後に再試行します。4820* 数秒待ってから、セッションを開くか再度ディスパッチします。メッセージが Claude Code が更新されていることを示す場合、アップデートが完了した後に再試行します。

4798* npm インストールが実行されていない間にエラーが持続する場合、ユーザーはインストールされたバイナリを実行できません。そのパーミッションとそのディレクトリのパーミッションをチェックするか、Claude Code を再インストールします。4821* npm インストールが実行されていない間にエラーが持続する場合、ユーザーはインストールされたバイナリを実行できません。その権限とそのディレクトリの権限をチェックするか、Claude Code を再インストールします。

4799 4822 

4800<h3 id="background-service-exited-before-it-became-reachable">4823<h3 id="background-service-exited-before-it-became-reachable">

4801 バックグラウンドサービスが到達可能になる前に終了しました4824 バックグラウンドサービスが到達可能になる前に終了しました


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'4830Couldn'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```4831```

4809 4832 

4810[エージェントビュー](/docs/ja/agent-view)からセッションを開く場合、同じ理由は `Couldn't start the background service —` に従います。サービスが終了する前に何も出力しなかった場合、メッセージは代わりに `nothing on stderr` を示しています。4833[エージェントビュー](/docs/ja/agent-view)からセッションを開く場合、同じ理由は `Couldn't start the background service —` に続きます。サービスが終了する前に何も出力しなかった場合、メッセージは代わりに `nothing on stderr` を示しています。

4811 4834 

4812Claude Code はサービスのエラー行で失敗を報告します。v2.1.246 より前では、失敗は 45 秒の待機後にのみ表示され、`background service did not become reachable within 45s` として、サービスのエラー行なしで表示されました。4835Claude Code はサービスのエラー行で失敗を報告します。v2.1.246 より前では、失敗は 45 秒の待機後にのみ表示され、`background service did not become reachable within 45s` として、サービスのエラー行なしで表示されました。

4813 4836 

48142 つの引用された理由は既知の原因を持っています:48372 つの引用された理由は既知の原因を持っています:

4815 4838 

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 自己更新はインストールウィンドウ中のすべての開始でこの失敗を生成しました。4839* `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 より前では、そのようなロックはファイルを削除するまですべての開始をブロックしました。4840* Windows で、すべての開始で終了コード 1 で `nothing on stderr`:`daemon.lock` は、Claude Code がシグナルを送信することも、消えたことを証明することもできないプロセスに名前を付けます。そのため、各新しいサービスは別のサービスがロックを保持していると結論付け、終了します。Claude Code が書き込み元の消失を証明できるロックは、独自に置き換えられ、この失敗を生成しません。失敗がすべての開始で繰り返される場合、`~/.claude/daemon.lock` を削除してから、セッションを開くか再度ディスパッチします。v2.1.257 より前では、そのようなロックはファイルを削除するまですべての開始をブロックしました。

4818 4841 

4819**対処方法:**4842**対処方法:**

4820 4843 


4825 バックグラウンドセッションを開始するときに作業ディレクトリが存在しなくなりました4848 バックグラウンドセッションを開始するときに作業ディレクトリが存在しなくなりました

4826</h3>4849</h3>

4827 4850 

4828[バックグラウンドセッション](/docs/ja/agent-view)を開始しようとしました。そのセッションは、もう存在しないディレクトリで実行されます。これは、エージェントビューからディスパッチするか、作業中のディレクトリが削除または移動された後に `/background` を実行するときに発生します。また、プロセスが終了し、そのディレクトリが消えたセッションに接続または再開するときにも発生します。新しいプロセスは同じディレクトリで開始するためです。Claude Code はセッションを開始せず、メッセージは見つからないディレクトリに名前を付けます:4851[バックグラウンドセッション](/docs/ja/agent-view)を開始したディレクトリが、セッションの開始中に削除されました。Claude Code はセッションを開始せず、メッセージは見つからないディレクトリに名前を付けます:

4829 4852 

4830```text theme={null}4853```text theme={null}

4831Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4854Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4843 バックグラウンドセッションをディスパッチするときにワークスペースが信頼されていません4866 バックグラウンドセッションをディスパッチするときにワークスペースが信頼されていません

4844</h3>4867</h3>

4845 4868 

4846[バックグラウンドセッション](/docs/ja/agent-view)を開始または再開しました。そのセッションは、[信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)していないディレクトリで実行されます。ワークスペース信頼ダイアログが表示されず、Claude Code はセッションを開始しません:4869[信頼](/docs/ja/permissions#project-allow-rules-and-workspace-trust)していないディレクトリで[バックグラウンドセッション](/docs/ja/agent-view)を開始または再開しましたが、ワークスペース信頼ダイアログを表示して確認することができませんでした。Claude Code はセッションを開始しません:

4847 4870 

4848```text theme={null}4871```text theme={null}

4849Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.4872Workspace 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 はホームディレクトリの信頼を保存しないため、以前のセッションでそこでダイアログを受け入れてもカウントされません。4879* **`The home directory is trusted one session at a time`**:セッションのディレクトリはホームディレクトリです。Claude Code はホームディレクトリの信頼を保存しないため、以前のセッションでそこでダイアログを受け入れてもカウントされません。

4857* **`<path> could not be resolved on disk`**:Claude Code はディスク上のセッションのディレクトリを見つけることができませんでした。4880* **`<path> could not be resolved on disk`**:Claude Code はディスク上のセッションのディレクトリを見つけることができませんでした。

4858 4881 

4882v2.1.286 より前の Windows では、信頼の記録がパスの大文字・小文字が異なる形で保存されていた場合、既に信頼したディレクトリでもこのメッセージが表示されることがありました。v2.1.286 以降にアップデートしてください。

4883 

4859**対処方法:**4884**対処方法:**

4860 4885 

4861* メッセージが名前を付けるディレクトリで `claude` を実行し、信頼ダイアログを受け入れてから、コマンドを再度実行します4886* メッセージが名前を付けるディレクトリで `claude` を実行し、信頼ダイアログを受け入れてから、コマンドを再度実行します

4862* ホームディレクトリメッセージの場合、ホームディレクトリのターミナルからコマンドを実行してダイアログが表示されるようにするか、プロジェクトディレクトリからセッションを開始します4887* ホームディレクトリメッセージの場合、ホームディレクトリのターミナルからコマンドを実行してダイアログが表示されるようにするか、プロジェクトディレクトリからセッションを開始します

4863* `could not be resolved on disk` メッセージの場合、ディレクトリを再作成するか、存在するディレクトリからセッションを開始します4888* `could not be resolved on disk` メッセージの場合、ディレクトリを再作成するか、存在するディレクトリから新しいセッションを開始します

4864 4889 

4865<h2 id="wrapper-and-ide-errors">4890<h2 id="wrapper-and-ide-errors">

4866 ラッパーと IDE エラー4891 ラッパーと IDE エラー

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

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| :- | :- |

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 

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| :- | :- | :- |

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

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

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>

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 

Details

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 

sandboxing.md +3 −2

Details

773 セキュリティ上の制限773 セキュリティ上の制限

774</h3>774</h3>

775 775 

776* **ネットワークフィルタリング**:サンドボックスは、プロセスが接続できるドメインを制限します。デフォルトでは、組み込みプロキシは発信トラフィックを終了または検査しないため、暗号化された接続の内容は検査されません。実験的な [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 設定は、[`mask` 認証情報置換](#mask-credentials)のためにプロキシで TLS を終了しますが、コンテンツフィルタリングは追加しません。ポリシーで許可されるのは信頼できるドメインのみであることを確認する責任があります。776* **ネットワークフィルタリング**:サンドボックスは、プロセスが接続できるドメインを制限します。デフォルトでは、組み込みプロキシは発信トラフィックの TLS を終端または検査しないため、暗号化された接続の内容は検査されません。実験的な [`network.tlsTerminate`](/docs/ja/settings-reference#sandbox-network-tlsterminate) 設定は、[`mask` 認証情報置換](#mask-credentials)のためにプロキシで TLS を終了しますが、コンテンツフィルタリングは追加しません。ポリシーで許可されるのは信頼できるドメインのみであることを確認する責任があります。

777 777 

778<Warning>778<Warning>

779 `github.com` などの広いドメインを許可すると、データ流出のパスが作成される可能性があります。プロキシは TLS を検査せずにクライアント提供のホスト名から許可決定を行うため、サンドボックス内で実行されるコードは [ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting)または同様の技術を使用して許可リスト外のホストに到達する可能性があります。脅威モデルがより強力な保証を必要とする場合は、TLS を終了してトラフィックを検査し、CA 証明書をサンドボックス内にインストールする [カスタムプロキシ](#custom-proxy-configuration)を設定してください。より強力な TLS 対応ネットワーク分離は開発の活発な領域です。779 `github.com` などの広いドメインを許可すると、データ流出のパスが作成される可能性があります。プロキシは TLS を検査せずにクライアント提供のホスト名から許可決定を行うため、サンドボックス内で実行されるコードは [ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting)または同様の技術を使用して許可リスト外のホストに到達する可能性があります。脅威モデルがより強力な保証を必要とする場合は、TLS を終了してトラフィックを検査し、CA 証明書をサンドボックス内にインストールする [カスタムプロキシ](#custom-proxy-configuration)を設定してください。より強力な TLS 対応ネットワーク分離は開発の活発な領域です。


802* **コンピュータ使用**:Claude がアプリを開いてスクリーンを制御する場合、分離された環境ではなく実際のデスクトップで実行されます。アプリごとの権限プロンプトが各アプリケーションをゲートします。[CLI でのコンピュータ使用](/docs/ja/computer-use)または [Desktop でのコンピュータ使用](/docs/ja/desktop#let-claude-use-your-computer)を参照してください。802* **コンピュータ使用**: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)を設定してください。803* **環境変数**:サンドボックス化された Bash コマンドはデフォルトで親プロセス環境を継承します。そこに設定されたすべての認証情報を含みます。サンドボックス化されたコマンドの特定の変数を設定解除またはマスクするには [`sandbox.credentials`](#protect-credentials)を使用するか、すべてのサブプロセスから認証情報を削除するには [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/ja/env-vars)を設定してください。

804* **サブエージェント**:[subagents](/docs/ja/sub-agents)は親セッションと同じプロセスで実行され、同じサンドボックス設定を使用します。親セッションでサンドボックス化が有効な場合、サブエージェント内の Bash コマンドはサンドボックス化されます。804* **サブエージェント**:[subagents](/docs/ja/sub-agents)は親セッションと同じプロセスで実行され、同じサンドボックス設定を使用します。親セッションでサンドボックス化が有効な場合、サブエージェント内の Bash コマンドはサンドボックス化されます。

805* **Mod**:[mod](/docs/ja/plugins/mods/overview) は Claude Code 内で独自のコードを実行するプラグインであり、mod が起動するプロセスはサンドボックス外で実行されます。[mod がアクセスできる範囲](/docs/ja/plugins/mods/overview#what-a-mod-can-reach)を参照してください。

805 806 

806<Warning>807<Warning>

807 効果的なサンドボックス化にはファイルシステムとネットワークの両方の分離が必要です。ネットワーク分離がない場合、侵害されたエージェントは SSH キーなどの機密ファイルを流出させる可能性があります。ファイルシステム分離がない場合、[ファイルシステムレイヤーを無効化](#disable-filesystem-isolation)することによるものであれ、侵害されたエージェントはシステムリソースにバックドアを仕掛けてネットワークアクセスを取得する可能性があります。デフォルトを広げるときは、`allowWrite` パス、広い `allowedDomains` エントリ、または `excludedCommands` 例外が反対側の制限を元に戻さないことを確認してください。808 効果的なサンドボックス化にはファイルシステムとネットワークの両方の分離が必要です。ネットワーク分離がない場合、侵害されたエージェントは SSH キーなどの機密ファイルを流出させる可能性があります。ファイルシステム分離がない場合、それが制限の緩いポリシーによるものであれ、[ファイルシステムレイヤーを無効化](#disable-filesystem-isolation)したことによるものであれ、侵害されたエージェントはシステムリソースにバックドアを仕掛けてネットワークアクセスを取得する可能性があります。デフォルトを広げるときは、`allowWrite` パス、広い `allowedDomains` エントリ、または `excludedCommands` 例外が反対側の制限を元に戻さないことを確認してください。

808</Warning>809</Warning>

809 810 

810<h2 id="see-also">811<h2 id="see-also">

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

1956* コマンド置換、サブシェル、または `if` や `for` などの制御フロー ブロック1956* コマンド置換、サブシェル、または `if` や `for` などの制御フロー ブロック

1957* `docker build . > build.log` など、ファイル記述子を複製するもの以外のリダイレクト(`2>&1` など)1957* `docker build . > build.log` など、ファイル記述子を複製するもの以外のリダイレクト(`2>&1` など)

1958* 変数から来るコマンド名1958* 変数から来るコマンド名

1959* パス引数が絶対パスである、`~` で始まる、または `..` セグメントを含む `git clone`、`git init`、`git worktree add`、`git worktree move`、または `git bundle create`

1959 1960 

1960たとえば、`cd build && docker compose up` は `docker *` エントリの下でサンドボックス化されたままであり、`cd` エントリを追加してもそれは変わりません。1961たとえば、`cd build && docker compose up` は `docker *` エントリの下でサンドボックス化されたままであり、`cd` エントリを追加してもそれは変わりません。`git *` エントリの下では、`git clone <url> vendor/lib` はサンドボックスの外で実行されますが、`git clone <url> ~/tools` はサンドボックス化されたままです。クローンは、宛先パスが指す場所に、実行可能なものを含む可能性のあるファイルツリー全体を書き込みます。

1961 1962 

1962除外されたコマンドは通常の権限フローを通過します。除外は便宜的なものであり、セキュリティ境界ではありません。ツールが特定の場所にのみ書き込む必要がある場合は、[`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)を優先してください。Claude Code はセッションが読み込むすべての設定スコープ全体でエントリをマージし、このリストに対する管理対象のみのロックはないため、管理対象リストを狭く保ちます。1963除外されたコマンドは通常の権限フローを通過します。除外は便宜的なものであり、セキュリティ境界ではありません。ツールが特定の場所にのみ書き込む必要がある場合は、[`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)を優先してください。Claude Code はセッションが読み込むすべての設定スコープ全体でエントリをマージし、このリストに対する管理対象のみのロックはないため、管理対象リストを狭く保ちます。

1963 1964 


4256<span id="hook-and-skill-settings" />4257<span id="hook-and-skill-settings" />

4257 4258 

4258<h2 id="hooks-and-automation">4259<h2 id="hooks-and-automation">

4259 フック と自動化4260 フックと自動化

4260</h2>4261</h2>

4261 4262 

4262フックを登録し、実行するフックを制限し、ワークフローを制御します。フックイベントとペイロードについては、[フックリファレンス](/docs/ja/hooks)を参照してください。4263フックを登録し、実行するフックを制限し、ワークフローを制御します。フックイベントとペイロードについては、[フックリファレンス](/docs/ja/hooks)を参照してください。


4268[HTTP フック](/docs/ja/hooks#http-hook-fields)がターゲットできる URL を制限します。このキーを定義すると、Claude Code は HTTP フックを実行するのはその URL がパターンの 1 つと一致する場合のみで、残りはブロックして実行しません。空の配列はすべての HTTP フックをブロックします。4269[HTTP フック](/docs/ja/hooks#http-hook-fields)がターゲットできる URL を制限します。このキーを定義すると、Claude Code は HTTP フックを実行するのはその URL がパターンの 1 つと一致する場合のみで、残りはブロックして実行しません。空の配列はすべての HTTP フックをブロックします。

4269 4270 

4270* **スコープ**: [`Any file`](#scopes)。配列は設定ファイル全体でマージされます。4271* **スコープ**: [`Any file`](#scopes)。配列は設定ファイル全体でマージされます。

4271* **型**: URL パターンの配列。ワイルドカード として `*` を使用4272* **型**: URL パターンの配列。ワイルドカードとして `*` を使用

4272* **デフォルト**: 未設定。任意の URL が許可されます4273* **デフォルト**: 未設定。任意の URL が許可されます

4273 4274 

4274この例は `https://hooks.example.com/` 下のすべての URL と任意の `http://localhost` URL を許可します:4275この例は `https://hooks.example.com/` 下のすべての URL と任意の `http://localhost` URL を許可します:


4307 4308 

4308* **管理フックと SDK フックが実行されます**: 管理設定からのフックと [Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフック4309* **管理フックと 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)される場合のみロードされます4310* **強制有効プラグインフックが実行されます**: 管理設定が [`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) を設定してください4311* **その他すべてはブロックされます**: ユーザー、プロジェクト、ローカルフック、他のインストール済みプラグインからのフックと 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` に設定した場合を除きます4312* **コマンドソースプラグインは無効になります**: 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 以降が必要です4313* **マーケットプレイス `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)に従います4314* **ステータスラインとファイル提案は管理設定に絞られます**: 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) がプロセス内で登録するフックは実行し続けます4338* **管理設定内**: Claude Code はすべての設定済みフック(管理フックを含む)を無効にし、[Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフックは実行し続けます

4338* **他の設定ファイル内**: Claude Code はユーザー、プロジェクト、ローカル、プラグインフックを無効にします。管理フック、Agent SDK フック、管理 [`enabledPlugins`](#enabledplugins) で強制有効にされたプラグインからのフックは実行し続けます4339* **他の設定ファイル内**: Claude Code はユーザー、プロジェクト、ローカル、プラグインフックを無効にします。管理フック、Agent SDK フック、管理 [`enabledPlugins`](#enabledplugins) で強制有効にされたプラグインからのフックは実行し続けます

4339 4340 

4341このキーは、コードがフックを登録するプラグインである [mod](/docs/ja/plugins/mods/overview) も停止します:

4342 

4343* **管理設定内**: 組織のものを含め、インストール済みのすべてのプラグイン内の mod が停止します

4344* **他の設定ファイル内**: ユーザーがインストールした mod が停止し、[組織の mod](/docs/ja/plugins/mods/admin#install-your-organizations-mods) は実行し続けます

4345 

4346Claude Code に組み込まれた mod は、どちらの場合も実行し続けます。それぞれに[独自のスイッチ](/docs/ja/plugins/mods/overview#mods-built-into-claude-code)があります。

4347 

4340管理設定がこのキーを設定している場合に Agent SDK フックを実行し続けるには、Claude Code v2.1.242 以降が必要です。4348管理設定がこのキーを設定している場合に Agent SDK フックを実行し続けるには、Claude Code v2.1.242 以降が必要です。

4341 4349 

4342フックが無効な間、[`/goal`](/docs/ja/goal) コマンドは実行できず、`/hooks` メニューはフックの代わりに通知を表示します。4350フックが無効な間、[`/goal`](/docs/ja/goal) コマンドは実行できず、`/hooks` メニューはフックの代わりに通知を表示します。


4348Claude Code は `statusLine`、`fileSuggestion`、`subagentStatusLine` について、この順序で 2 つの決定を行います:4356Claude Code は `statusLine`、`fileSuggestion`、`subagentStatusLine` について、この順序で 2 つの決定を行います:

4349 4357 

4350* **完全にオフ**: 管理設定が `disableAllHooks` を設定している場合、またはフォルダが設定ファイル内のフックと同じ [ワークスペーストラストルール](/docs/ja/permissions#what-runs-before-you-trust-a-folder)の下で信頼されていない場合4358* **完全にオフ**: 管理設定が `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 を起動した場合4359* **管理設定に絞られます**: [`allowManagedHooksOnly`](#allowmanagedhooksonly) が設定されている場合、[設定の優先順位](/docs/ja/hooks#disable-or-remove-hooks)が適用された後に管理設定外で `disableAllHooks` が `true` である場合、または `--safe-mode` で Claude Code を起動した場合

4352* **絞られた場合**: Claude Code はデプロイされた管理値があれば実行します。そうでない場合は警告なしに値をスキップします: ステータスラインは無効になり、`@` オートコンプリートは組み込みファイル提案にフォールバックします。4360 

4361絞られた場合、Claude Code はデプロイされた管理値があれば実行します。そうでない場合は警告なしにユーザーの値をスキップします: ステータスラインは無効になり、`@` オートコンプリートは組み込みファイル提案にフォールバックします。

4353 4362 

4354<h3 id="disableworkflows">4363<h3 id="disableworkflows">

4355 `disableWorkflows`4364 `disableWorkflows`

4356</h3>4365</h3>

4357 4366 

4358[動的ワークフロー](/docs/ja/workflows#turn-workflows-off)と、管理設定を通じた組織など、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします。自分自身のためだけにワークフローをオンまたはオフにするには、代わりに [`enableWorkflows`](#enableworkflows) を使用してください。これは `/config` の **Dynamic workflows** トグルが書き込みます。4367[動的ワークフロー](/docs/ja/workflows#turn-workflows-off)と、管理設定を通じた組織など、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします。自分自身のためだけにワークフローをオンまたはオフにするには、代わりに [`enableWorkflows`](#enableworkflows) を使用してください。これは `/config` の **Dynamic workflows** トグルがユーザー設定に書き込みます。

4359 4368 

4360* **スコープ**: [`Any file`](#scopes)4369* **スコープ**: [`Any file`](#scopes)

4361* **型**: ブール値4370* **型**: ブール値

4362 * `true`: Claude Code は動的ワークフローと、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします4371 * `true`: Claude Code は動的ワークフローと、設定が到達するすべてのユーザーのためのバンドルワークフローコマンドをオフにします

4363 * `false`: 未設定と同じです。ワークフローがオンかどうかは [`enableWorkflows`](#enableworkflows) とプランのデフォルトに従います4372 * `false`: 未設定と同じです。ワークフローがオンかどうかは [`enableWorkflows`](#enableworkflows) とプランのデフォルトに従います

4364* **デフォルト**: `false`4373* **デフォルト**: `false`

4365* **セッションごとのオーバーライド**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにします。2 つのうちどちらがオフにするかに関わらず、もう一方はオンに戻すことはできません4374* **セッションごとの上書き**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにします。2 つのうちどちらがオフにするかに関わらず、もう一方はオンに戻すことはできません

4366 4375 

4367```json settings.json theme={null}4376```json settings.json theme={null}

4368{4377{


4378 4387 

4379* **スコープ**: [`Any file`](#scopes)4388* **スコープ**: [`Any file`](#scopes)

4380* **型**: ブール値4389* **型**: ブール値

4381 * `true`: Claude Code は動的ワークフローをオンにします4390 * `true`: Claude Code は自分自身の動的ワークフローをオンにします

4382 * `false`: Claude Code は動的ワークフローをオフにします4391 * `false`: Claude Code は自分自身の動的ワークフローをオフにします

4383* **デフォルト**: 未設定。ワークフローはオンです。ただし Pro プランではオフです4392* **デフォルト**: 未設定。ワークフローはオンです。ただし Pro プランではオフです

4384* **セッションごとのオーバーライド**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにし、ここで `true` はそれが設定されている間はワークフローをオンに戻すことはできません4393* **セッションごとの上書き**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/ja/env-vars) は 1 つのセッションのワークフローをオフにし、ここで `true` はそれが設定されている間はワークフローをオンに戻すことはできません

4385 4394 

4386```json settings.json theme={null}4395```json settings.json theme={null}

4387{4396{


4395 `hooks`4404 `hooks`

4396</h3>4405</h3>

4397 4406 

4398Claude Code のライフサイクルの特定の時点(ツール呼び出しの前やセッション開始時など)で、[フック](/docs/ja/hooks)として独自のコマンド、プロンプト、エージェント、HTTP リクエスト、または MCP ツールを実行します。[フックリファレンス](/docs/ja/hooks#hook-events)はすべてのイベント、ペイロード、終了コードをリストします。各イベントはマッチャーグループのリストにマップされ、各グループはマッチャーが適用されるときに実行するハンドラーをリストします。4407Claude Code のライフサイクルの特定の時点(ツール呼び出しの前やセッション開始時など)で、[フック](/docs/ja/hooks)として独自のコマンド、プロンプト、エージェント、HTTP リクエスト、または MCP ツールを実行します。[フックリファレンス](/docs/ja/hooks#hook-events)はすべてのイベント、ペイロード、終了コードをリストします。各イベントは matcher グループのリストにマップされ、各グループは matcher が適用されるときに実行するハンドラーをリストします。

4399 4408 

4400* **スコープ**: [`Any file`](#scopes)。フックはファイル全体でマージされ、管理設定からのフックは他のファイルから削除できません。4409* **スコープ**: [`Any file`](#scopes)。フックは互いに置き換えられるのではなくファイル全体でマージされ、管理設定からのフックは他のファイルから削除できません。

4401* **型**: [フックイベント](/docs/ja/hooks#hook-events)でキー付けされたオブジェクト。各値は `"command"`、`"prompt"`、`"agent"`、`"http"`、または `"mcp_tool"` の `type` を持つ `{ "matcher", "hooks" }` グループの配列4410* **型**: [フックイベント](/docs/ja/hooks#hook-events)でキー付けされたオブジェクト。各値は `"command"`、`"prompt"`、`"agent"`、`"http"`、または `"mcp_tool"` の `type` を持つ `{ "matcher", "hooks" }` グループの配列

4402* **デフォルト**: 未設定。フックは実行されません4411* **デフォルト**: 未設定。フックは実行されません

4403 4412 


4418}4427}

4419```4428```

4420 4429 

4421すべてのイベント、マッチャーパターン、ハンドラーフィールドについては、[フックリファレンス](/docs/ja/hooks#configuration)を参照してください。フックをオフにするには、[`disableAllHooks`](#disableallhooks)を参照してください。フックを組織がデプロイするものに制限するには、[`allowManagedHooksOnly`](#allowmanagedhooksonly)を参照してください。4430すべてのイベント、matcher パターン、ハンドラーフィールドについては、[フックリファレンス](/docs/ja/hooks#configuration)を参照してください。フックをオフにするには、[`disableAllHooks`](#disableallhooks)を参照してください。フックを組織がデプロイするものに制限するには、[`allowManagedHooksOnly`](#allowmanagedhooksonly)を参照してください。

4422 4431 

4423<h3 id="httphookallowedenvvars">4432<h3 id="httphookallowedenvvars">

4424 `httpHookAllowedEnvVars`4433 `httpHookAllowedEnvVars`


4464 `workflowSizeGuideline`4473 `workflowSizeGuideline`

4465</h3>4474</h3>

4466 4475 

4467動的ワークフローが書き込む [エージェント数 Claude が目指す](/docs/ja/workflows#set-a-size-guideline)を設定します。Claude Code は値を Claude に助言として送信します。強制的な上限ではありません: `"small"` は 5 未満のエージェントを要求し、`"medium"` は 10 未満、`"large"` は 50 未満です。ワークフローが費やすものを制限したい場合は `"small"` を選択します。Claude Code v2.1.219 以降が必要です。4476Claude が書き込む動的ワークフローで [Claude が目指すエージェント数](/docs/ja/workflows#set-a-size-guideline)を設定します。Claude Code は値を Claude に助言として送信します。強制的な上限ではありません: `"small"` は 5 未満のエージェントを要求し、`"medium"` は 10 未満、`"large"` は 50 未満です。ワークフローが費やすものを制限したい場合は `"small"` を選択します。Claude Code v2.1.219 以降が必要です。

4468 4477 

4469* **スコープ**: [`Any file`](#scopes)。そこの値は `/config` の **Dynamic workflow size** 選択肢より優先されます。Claude Code は `~/.claude.json` に保存します。設定ファイルがキーを設定している間、Claude Code はその行を非表示にします。4478* **スコープ**: [`Any file`](#scopes)。そこの値は `/config` の **Dynamic workflow size** 選択肢より優先されます。Claude Code は `~/.claude.json` に保存します。設定ファイルがキーを設定している間、Claude Code はその行を非表示にします。

4470* **型**: 文字列。以下のいずれか:4479* **型**: 文字列。以下のいずれか:

4471 * `"unrestricted"`: ガイドラインなし。Claude はワークフローをタスクにサイズします4480 * `"unrestricted"`: ガイドラインなし。Claude はタスクに合わせてワークフローの規模を決めます

4472 * `"small"`: Claude は 5 未満のエージェントを目指します4481 * `"small"`: Claude は 5 未満のエージェントを目指します

4473 * `"medium"`: Claude は 10 未満のエージェントを目指します4482 * `"medium"`: Claude は 10 未満のエージェントを目指します

4474 * `"large"`: Claude は 50 未満のエージェントを目指します4483 * `"large"`: Claude は 50 未満のエージェントを目指します


5966* **マシン上の管理者ソースがリストを設定**: マシン独自の管理者ソースの `env` ブロックのみがカウントされます5975* **マシン上の管理者ソースがリストを設定**: マシン独自の管理者ソースの `env` ブロックのみがカウントされます

5967* **サーバー管理設定のみがリストを設定**: これらのサーバー管理設定の `env` 値もカウントされます5976* **サーバー管理設定のみがリストを設定**: これらのサーバー管理設定の `env` 値もカウントされます

5968 5977 

5969リストは、クラウドプロバイダーの認証情報とテナンシー変数、または `HTTPS_PROXY` と証明書設定などのネットワークパスを判定しません。管理 `env` ブロックでフロート用にそれらを設定します。5978リストは、クラウドプロバイダーの認証情報とテナンシー変数、または `HTTPS_PROXY` と証明書設定などのネットワークパスを判定しません。管理 `env` ブロックでフリート用にそれらを設定します。

5970 5979 

5971<h3 id="apikeyhelper">5980<h3 id="apikeyhelper">

5972 `apiKeyHelper`5981 `apiKeyHelper`


6000 6009 

6001`aws sso login` などの独自のコマンドを実行して、Claude Code が [Amazon Bedrock](/docs/ja/amazon-bedrock) に対して持つ認証情報が機能しなくなったときに `.aws` ディレクトリの認証情報をリフレッシュします。Claude Code は最初に現在の認証情報を STS に対してチェックし、そのチェックが失敗した場合にのみコマンドを実行してから、リフレッシュされた `.aws` ディレクトリを読み取ります。6010`aws sso login` などの独自のコマンドを実行して、Claude Code が [Amazon Bedrock](/docs/ja/amazon-bedrock) に対して持つ認証情報が機能しなくなったときに `.aws` ディレクトリの認証情報をリフレッシュします。Claude Code は最初に現在の認証情報を STS に対してチェックし、そのチェックが失敗した場合にのみコマンドを実行してから、リフレッシュされた `.aws` ディレクトリを読み取ります。

6002 6011 

6012同じコマンドと認証情報を使用する複数の Claude Code プロセス(別々のターミナルや IDE ウィンドウなど)で同時にチェックが失敗した場合、1 つのプロセスがコマンドを実行し、残りのプロセスは独自に実行を開始する代わりにその実行を待機します。リクエストを保留したまま 60 秒間待機したプロセスは、自らコマンドを実行します。この動作をオフにするには、[`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/ja/env-vars) を `1` に設定します。

6013 

6003* **スコープ**: [`Any file`](#scopes)6014* **スコープ**: [`Any file`](#scopes)

6004* **タイプ**: 文字列、シェルコマンドライン6015* **タイプ**: 文字列、シェルコマンドライン

6005* **デフォルト**: 未設定。Claude Code は AWS 認証情報をリフレッシュしません6016* **デフォルト**: 未設定。Claude Code は AWS 認証情報をリフレッシュしません


6123 6134 

6124Claude Code が Google Cloud Application Default Credentials の有効期限が切れているか読み込めないことを検出したときにリフレッシュするために独自のコマンドを実行して、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) リクエストが手動で再認証することなく機能し続けるようにします。6135Claude Code が Google Cloud Application Default Credentials の有効期限が切れているか読み込めないことを検出したときにリフレッシュするために独自のコマンドを実行して、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) リクエストが手動で再認証することなく機能し続けるようにします。

6125 6136 

6137同じコマンドと認証情報を使用する複数の Claude Code プロセス(別々のターミナルや IDE ウィンドウなど)が同時に認証情報の期限切れを検出した場合、1 つのプロセスがコマンドを実行し、残りのプロセスは独自に実行を開始する代わりにその実行を待機します。リクエストを保留したまま 60 秒間待機したプロセスは、自らコマンドを実行します。この動作をオフにするには、[`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/ja/env-vars) を `1` に設定します。

6138 

6126* **スコープ**: [`Any file`](#scopes)6139* **スコープ**: [`Any file`](#scopes)

6127* **タイプ**: 文字列、シェルコマンドライン6140* **タイプ**: 文字列、シェルコマンドライン

6128* **デフォルト**: 未設定。Claude Code の認証情報エラーは `gcloud auth application-default login` を自分で実行するよう指示します6141* **デフォルト**: 未設定。Claude Code の認証情報エラーは `gcloud auth application-default login` を自分で実行するよう指示します


6151}6164}

6152```6165```

6153 6166 

6154[`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/ja/env-vars) でリフレッシュ間隔を設定します。スクリプト要件と Claude Code が失敗したヘルパーを報告する場所については、[動的ヘッダー](/docs/ja/monitoring-usage#dynamic-headers)を参照してください。6167[`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/ja/env-vars) でリフレッシュ間隔を設定します。スクリプトの要件とヘルパーが失敗した場合の動作については、[動的ヘッダー](/docs/ja/monitoring-usage#dynamic-headers)を参照してください。

6155 6168 

6156<h2 id="updates-and-versioning">6169<h2 id="updates-and-versioning">

6157 アップデートとバージョン管理6170 アップデートとバージョン管理

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>

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 でサポートされるセッション