SpyBara
Go Premium

Documentation 2026-09-30 23:00 UTC to 2026-10-01 21:02 UTC

63 files changed +5,185 −1,177. View all changes and history on the product overview
2026
Thu 1 21:59

admin-setup.md +1 −0

Details

106| [claude.ai 同期を無効にする](/docs/ja/settings-reference#syncclaudeaiskills) | Claude Code が開発者が claude.ai で有効にした[スキル](/docs/ja/skills#how-synced-skills-behave)と[プラグイン](/docs/ja/plugins/loading#synced-plugins)を読み込むのを停止します。組織の claude.ai でスキルをオフにすると、Claude Code は両方の同期を停止します。v2.1.273 以降では、既に同期したものも削除します。スキルをオフにせずにどちらか一方を停止するには、マネージド設定でそのキーを `false` に設定します | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |106| [claude.ai 同期を無効にする](/docs/ja/settings-reference#syncclaudeaiskills) | Claude Code が開発者が claude.ai で有効にした[スキル](/docs/ja/skills#how-synced-skills-behave)と[プラグイン](/docs/ja/plugins/loading#synced-plugins)を読み込むのを停止します。組織の claude.ai でスキルをオフにすると、Claude Code は両方の同期を停止します。v2.1.273 以降では、既に同期したものも削除します。スキルをオフにせずにどちらか一方を停止するには、マネージド設定でそのキーを `false` に設定します | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |

107| [フック制限](/docs/ja/settings-reference#allowmanagedhooksonly) | 実行するフックを制限し、HTTP フック URL を制限します。[`allowManagedHooksOnly` で実行される内容](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly)の完全な効果リストを参照してください | `allowManagedHooksOnly`、`allowedHttpHookUrls` |107| [フック制限](/docs/ja/settings-reference#allowmanagedhooksonly) | 実行するフックを制限し、HTTP フック URL を制限します。[`allowManagedHooksOnly` で実行される内容](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly)の完全な効果リストを参照してください | `allowManagedHooksOnly`、`allowedHttpHookUrls` |

108| [ログイン強制](/docs/ja/settings-reference#forceloginmethod) | ログインを特定の方法または Anthropic 組織に制限します。メソッド制限は VS Code 拡張機能、Agent SDK、`claude setup-token`、`/install-github-app` 全体に適用され、ターミナルのインタラクティブログイン画面(`/login` または初回オンボーディングで到達)はメソッドを事前選択しますが強制しません。Claude Code は、ターミナル、VS Code 拡張機能、Agent SDK での claude.ai アカウントログインの組織を検証し、Claude Console ログインまたは[ゲートウェイ](/docs/ja/claude-apps-gateway)サインインではチェックしません。v2.1.212 より前は、ターミナルログインのみが両方のキーを適用していました。設定すると、`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` によって認証されたセッションはスタートアップでブロックされます。クラウドプロバイダーセッションは影響を受けません | `forceLoginMethod`、`forceLoginOrgUUID` |108| [ログイン強制](/docs/ja/settings-reference#forceloginmethod) | ログインを特定の方法または Anthropic 組織に制限します。メソッド制限は VS Code 拡張機能、Agent SDK、`claude setup-token`、`/install-github-app` 全体に適用され、ターミナルのインタラクティブログイン画面(`/login` または初回オンボーディングで到達)はメソッドを事前選択しますが強制しません。Claude Code は、ターミナル、VS Code 拡張機能、Agent SDK での claude.ai アカウントログインの組織を検証し、Claude Console ログインまたは[ゲートウェイ](/docs/ja/claude-apps-gateway)サインインではチェックしません。v2.1.212 より前は、ターミナルログインのみが両方のキーを適用していました。設定すると、`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` によって認証されたセッションはスタートアップでブロックされます。クラウドプロバイダーセッションは影響を受けません | `forceLoginMethod`、`forceLoginOrgUUID` |

109| [プロバイダー制限](/docs/ja/settings-reference#allowedproviders) | マシンが使用できる API プロバイダーを制限します。リストに記載されていないプロバイダー上のセッションはスタートアップ時、ログイン時、および次に API に接続するときに拒否されます。Claude Code v2.1.285 以降が必要です | `allowedProviders` |

109| [エージェントビューを無効にする](/docs/ja/agent-view#how-background-sessions-are-hosted) | `claude agents`、`--bg`、`/background`、およびオンデマンドスーパーバイザーをオフにします | `disableAgentView` |110| [エージェントビューを無効にする](/docs/ja/agent-view#how-background-sessions-are-hosted) | `claude agents`、`--bg`、`/background`、およびオンデマンドスーパーバイザーをオフにします | `disableAgentView` |

110| [企業ランチャーを構成する](/docs/ja/corporate-launcher) | [バックグラウンドエージェントスーパーバイザー](/docs/ja/agent-view#how-background-sessions-are-hosted)、そのワーカー、および[その他のカバーされたバックグラウンドプロセス](/docs/ja/corporate-launcher#what-the-launcher-covers)に、エージェントビューをオフにする代わりに、必須の企業ランチャーをプレフィックスします | `processWrapper` |111| [企業ランチャーを構成する](/docs/ja/corporate-launcher) | [バックグラウンドエージェントスーパーバイザー](/docs/ja/agent-view#how-background-sessions-are-hosted)、そのワーカー、および[その他のカバーされたバックグラウンドプロセス](/docs/ja/corporate-launcher#what-the-launcher-covers)に、エージェントビューをオフにする代わりに、必須の企業ランチャーをプレフィックスします | `processWrapper` |

111| [モデル制限](/docs/ja/model-config#restrict-model-selection) | `availableModels` はピッカーに表示されるモデルをフィルタリングします。`enforceAvailableModels` を追加すると、自動選択されたデフォルトモデルも制限されます。このセッティングが CLI、ウェブ、IDE にどのように到達するかについては、[サーフェスカバレッジ](/docs/ja/model-config#surface-coverage)を参照してください | `availableModels`、`enforceAvailableModels` |112| [モデル制限](/docs/ja/model-config#restrict-model-selection) | `availableModels` はピッカーに表示されるモデルをフィルタリングします。`enforceAvailableModels` を追加すると、自動選択されたデフォルトモデルも制限されます。このセッティングが CLI、ウェブ、IDE にどのように到達するかについては、[サーフェスカバレッジ](/docs/ja/model-config#surface-coverage)を参照してください | `availableModels`、`enforceAvailableModels` |

Details

418 ```418 ```

419</CodeGroup>419</CodeGroup>

420 420 

421リダイレクトをブロックを確認するには、コールバックを `PreToolUse` に `Write|Edit` マッチャーで登録し、エージェントに `/etc` の下にファイルを作成するよう指示します。メッセージストリーム内の Write ツールの結果に `Writing to /etc is not allowed` が含まれ、ファイルは作成されません。

422 

421<h3 id="auto-approve-specific-tools">423<h3 id="auto-approve-specific-tools">

422 特定のツールを自動承認する424 特定のツールを自動承認する

423</h3>425</h3>


468 470 

469イベントが発火すると、すべての一致するフックが並列で実行されます。権限決定については、最も制限的な結果が適用されます。単一の `deny` は他のフックが何を返すかに関わらずツール呼び出しをブロックします。完了順序は非決定的であるため、別のフックが最初に実行されたことに依存するのではなく、各フックが独立して動作するように記述してください。471イベントが発火すると、すべての一致するフックが並列で実行されます。権限決定については、最も制限的な結果が適用されます。単一の `deny` は他のフックが何を返すかに関わらずツール呼び出しをブロックします。完了順序は非決定的であるため、別のフックが最初に実行されたことに依存するのではなく、各フックが独立して動作するように記述してください。

470 472 

471以下の例は、すべてのツール呼び出しに対して 3 つの独立したチェックを登録します。473以下の例は、すべてのツール呼び出しに対して 3 つの独立したチェックを登録します。例の中のフック名(Python の `audit_logger` や TypeScript の `auditLogger` など)は、定義するコールバックの代わりになります。

472 474 

473<CodeGroup>475<CodeGroup>

474 ```python Python theme={null}476 ```python Python theme={null}


500 マルチツールマッチャーでフィルタリングする502 マルチツールマッチャーでフィルタリングする

501</h3>503</h3>

502 504 

503マルチツールマッチャーを使用して、関連するツール間で 1 つのコールバックを共有します。この例は異なるスコープを持つ 3 つのマッチャーを登録します。505マルチツールマッチャーを使用して、関連するツール間で 1 つのコールバックを共有します。この例は異なるスコープを持つ 3 つのマッチャーを登録し、各フックが名前の代わりになります。

504 506 

505* パイプで区切られた正確なリスト(`Write|Edit|NotebookEdit`)は、ファイル変更ツールに対してのみ `file_security_hook` をトリガーします。507* パイプで区切られた正確なリスト(`Write|Edit|NotebookEdit`)は、ファイル変更ツールに対してのみ `file_security_hook` をトリガーします。

506* 正規表現(`^mcp__`)は、`mcp__` で始まる名前を持つ MCP ツールに対して `mcp_audit_hook` をトリガーします。508* 正規表現(`^mcp__`)は、`mcp__` で始まる名前を持つ MCP ツールに対して `mcp_audit_hook` をトリガーします。


585 ```587 ```

586</CodeGroup>588</CodeGroup>

587 589 

590フックが発火することを確認するには、コールバックを登録し、エージェントに小さなタスクをサブエージェントに委譲するよう指示します。例えば、現在のディレクトリ内のファイルをリストアップするなど。サブエージェントが完了すると、コールバックはサブエージェントの ID とトランスクリプトパスを含む `[SUBAGENT] Completed:` 行を出力します。

591 

588<h3 id="make-http-requests-from-hooks">592<h3 id="make-http-requests-from-hooks">

589 フックから HTTP リクエストを実行する593 フックから HTTP リクエストを実行する

590</h3>594</h3>

Details

121 121 

122権限モードは、Claude がツールをどのように使用するかについてグローバルコントロールを提供します。`query()` を呼び出すときに権限モードを設定するか、ストリーミングセッション中に動的に変更できます。122権限モードは、Claude がツールをどのように使用するかについてグローバルコントロールを提供します。`query()` を呼び出すときに権限モードを設定するか、ストリーミングセッション中に動的に変更できます。

123 123 

124設定しない場合、Claude Code は [セッションが開始するモード](/docs/ja/permission-modes#which-mode-a-session-starts-in) のルールに従って開始権限モードを選択します。

125 

126* セッションの [設定ファイル](/docs/ja/settings#where-settings-live) から `permissions.defaultMode` が適用される場合

127* それ以外の場合は、[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) である可能性がある組み込みデフォルト

128 

129自動モードで開始するセッションは、[自動モードがアクションを評価する方法](/docs/ja/permission-modes#how-auto-mode-evaluates-actions) で説明されているように、`Bash` エントリなどの広い許可ルールを削除します。アプリケーションが `default` モードまたはそのようなルールに依存している場合は、`default` を明示的に渡してください。

130 

131TypeScript Agent SDK v0.3.286 より前では、`permissionMode` を省略することは `default` を渡すことと同じでした。

132 

124<h3 id="available-modes">133<h3 id="available-modes">

125 利用可能なモード134 利用可能なモード

126</h3>135</h3>

agent-sdk/python.md +247 −73

Details

517 async def set_model(self, model: str | None = None) -> None517 async def set_model(self, model: str | None = None) -> None

518 async def rewind_files(self, user_message_id: str) -> None518 async def rewind_files(self, user_message_id: str) -> None

519 async def get_mcp_status(self) -> McpStatusResponse519 async def get_mcp_status(self) -> McpStatusResponse

520 async def get_context_usage(self) -> ContextUsageResponse

520 async def reconnect_mcp_server(self, server_name: str) -> None521 async def reconnect_mcp_server(self, server_name: str) -> None

521 async def toggle_mcp_server(self, server_name: str, enabled: bool) -> None522 async def toggle_mcp_server(self, server_name: str, enabled: bool) -> None

522 async def stop_task(self, task_id: str) -> None523 async def stop_task(self, task_id: str) -> None


536| `receive_messages()` | Claude からのすべてのメッセージを非同期イテレータとして受け取ります |537| `receive_messages()` | Claude からのすべてのメッセージを非同期イテレータとして受け取ります |

537| `receive_response()` | ResultMessage を含むまでのメッセージを受け取ります |538| `receive_response()` | ResultMessage を含むまでのメッセージを受け取ります |

538| `interrupt()` | 割り込み信号を送信します(ストリーミングモードでのみ機能) |539| `interrupt()` | 割り込み信号を送信します(ストリーミングモードでのみ機能) |

539| `set_permission_mode(mode)` | 現在のセッションのパーミッションモードを変更します |540| `set_permission_mode(mode)` | 現在のセッションの権限モードを変更します |

540| `set_model(model)` | 現在のセッションのモデルを変更します。[Claude Code のデフォルトモデル](/docs/ja/model-config) にリセットするには `None` を渡します |541| `set_model(model)` | 現在のセッションのモデルを変更します。[Claude Code のデフォルトモデル](/docs/ja/model-config) にリセットするには `None` を渡します |

541| `rewind_files(user_message_id)` | ファイルを指定されたユーザーメッセージの状態に復元します。`enable_file_checkpointing=True` が必要です。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing) を参照 |542| `rewind_files(user_message_id)` | ファイルを指定されたユーザーメッセージの状態に復元します。`enable_file_checkpointing=True` が必要です。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing) を参照 |

542| `get_mcp_status()` | すべての設定済み MCP サーバーのステータスを取得します。[`McpStatusResponse`](#mcpstatusresponse) を返します |543| `get_mcp_status()` | すべての設定済み MCP サーバーのステータスを取得します。[`McpStatusResponse`](#mcpstatusresponse) を返します |

544| `get_context_usage()` | カテゴリ、スキル、ツール別のコンテキストウィンドウ使用状況の内訳を取得します。インタラクティブセッションで `/context` が表示するのと同じデータです。[`ContextUsageResponse`](#contextusageresponse) を返します。内訳を計算するために、Claude Code はメッセージストリームに表示されないいくつかのトークンカウント API リクエストを行います。[これらのリクエストがどのように処理されるかを参照](#contextusageresponse) |

543| `reconnect_mcp_server(server_name)` | 失敗したか切断された MCP サーバーへの再接続を試みます |545| `reconnect_mcp_server(server_name)` | 失敗したか切断された MCP サーバーへの再接続を試みます |

544| `toggle_mcp_server(server_name, enabled)` | セッション中に MCP サーバーを有効または無効にします。無効にするとそのツールが削除されます |546| `toggle_mcp_server(server_name, enabled)` | セッション中に MCP サーバーを有効または無効にします。stdio、SSE、または HTTP サーバーを無効にするとそのツールが削除されます |

545| `stop_task(task_id)` | 実行中のバックグラウンドタスクを停止します。ステータス `"stopped"` の [`TaskNotificationMessage`](#tasknotificationmessage) がメッセージストリームに続きます |547| `stop_task(task_id)` | 実行中のバックグラウンドタスクを停止します。ステータス `"stopped"` の [`TaskNotificationMessage`](#tasknotificationmessage) がメッセージストリームに続きます |

546| `get_server_info()` | サーバーの初期化情報(利用可能なコマンドと出力スタイルを含む)を取得します |548| `get_server_info()` | サーバーの初期化情報(利用可能なコマンドと出力スタイルを含む)を取得します |

547| `disconnect()` | Claude から切断します |549| `disconnect()` | Claude から切断します |


616 例 - ClaudeSDKClient でのストリーミング入力618 例 - ClaudeSDKClient でのストリーミング入力

617</h4>619</h4>

618 620 

621`query()` はユーザーメッセージ辞書の非同期イテレータも受け入れるため、送信時にプロンプトを組み立てたり、画像などのコンテンツブロックを含めたりできます。Claude Code は最初に生成されたメッセージが到着するとすぐに応答を開始し、イテレータが完了するのを待たず、`receive_response()` はそのレスポンスを終了する `ResultMessage` で停止します。Claude が回答する前に読むべきすべてのものを 1 つのメッセージに入れてください。このジェネレータが行うように、各 `query()` 呼び出しを独自の `receive_response()` ループとペアにしてください。

622 

619```python theme={null}623```python theme={null}

620import asyncio624import asyncio

621from claude_agent_sdk import ClaudeSDKClient625from claude_agent_sdk import ClaudeSDKClient

622 626 

623 627 

624async def message_stream():628async def message_stream():

625 """Generate messages dynamically."""629 """Assemble the prompt at send time and yield it as one user message."""

626 yield {630 readings = {"Temperature": "25°C", "Humidity": "60%"}

627 "type": "user",631 data = ", ".join(f"{name}: {value}" for name, value in readings.items())

628 "message": {"role": "user", "content": "Analyze the following data:"},

629 }

630 await asyncio.sleep(0.5)

631 yield {

632 "type": "user",

633 "message": {"role": "user", "content": "Temperature: 25°C, Humidity: 60%"},

634 }

635 await asyncio.sleep(0.5)

636 yield {632 yield {

637 "type": "user",633 "type": "user",

638 "message": {"role": "user", "content": "What patterns do you see?"},634 "message": {

635 "role": "user",

636 "content": f"Analyze the following sensor data and describe any patterns you see: {data}",

637 },

639 }638 }

640 639 

641 640 


705</Note>704</Note>

706 705 

707<h4 id="example-advanced-permission-control">706<h4 id="example-advanced-permission-control">

708 例 - 高度なパーミッション制御707 例 - 高度な権限制御

709</h4>708</h4>

710 709 

711```python theme={null}710```python theme={null}


1607| `scope` | `str`(オプション) | 設定スコープ |1606| `scope` | `str`(オプション) | 設定スコープ |

1608| `tools` | `list`(オプション) | このサーバーが提供するツール。各ツールには`name`、`description`、`annotations`フィールドがあります |1607| `tools` | `list`(オプション) | このサーバーが提供するツール。各ツールには`name`、`description`、`annotations`フィールドがあります |

1609 1608 

1609<h3 id="contextusageresponse">

1610 `ContextUsageResponse`

1611</h3>

1612 

1613[`ClaudeSDKClient.get_context_usage()`](#methods)からの応答。これはClaude Codeがインタラクティブセッションで`/context`コマンド用にレンダリングするのと同じペイロードであるため、トークンカウントと共に、Claude Codeが`/context`使用グリッドを描画するために使用する`color`と`gridRows`などの表示フィールドを含みます。

1614 

1615Claude Codeは[トークンカウント](https://platform.claude.com/docs/en/build-with-claude/token-counting)APIに複数のリクエストを送信することでこのペイロードを構築します。これらのリクエストはメッセージストリームに表示されないため、ストリームを読み取るコスト追跡はそれらを見ません。Anthropic APIでは、トークンカウントは請求されません。

1616 

1617```python theme={null}

1618class ContextUsageResponse(TypedDict):

1619 categories: list[ContextUsageCategory]

1620 totalTokens: int

1621 maxTokens: int

1622 rawMaxTokens: int

1623 percentage: float

1624 model: str

1625 isAutoCompactEnabled: bool

1626 memoryFiles: list[dict[str, Any]]

1627 mcpTools: list[dict[str, Any]]

1628 agents: list[dict[str, Any]]

1629 gridRows: list[list[dict[str, Any]]]

1630 autoCompactThreshold: NotRequired[int]

1631 deferredBuiltinTools: NotRequired[list[dict[str, Any]]]

1632 systemTools: NotRequired[list[dict[str, Any]]]

1633 systemPromptSections: NotRequired[list[dict[str, Any]]]

1634 slashCommands: NotRequired[dict[str, Any]]

1635 skills: NotRequired[dict[str, Any]] # skill usage with frontmatter breakdown

1636 messageBreakdown: NotRequired[dict[str, Any]] # message tokens by type

1637 apiUsage: NotRequired[dict[str, Any] | None]

1638```

1639 

1640各`ContextUsageCategory`エントリは`name`、`tokens`、`color`、およびオプションの`isDeferred`フラグを含みます。`totalTokens`はセッションの現在のコンテキスト使用状況であり、`maxTokens`はその使用状況が測定されるウィンドウです。そのウィンドウはモデルのコンテキストウィンドウ、または自動コンパクション ウィンドウが適用される場合はより低いウィンドウであり、`rawMaxTokens`は`maxTokens`と同じ値を含みます。`apiUsage`はセッションの実行合計ではなく、最新のAPI応答からの使用状況を保持します。Claude Codeはオプションの`deferredBuiltinTools`、`systemTools`、`systemPromptSections`キーを設定しないため、型が宣言していても、それらが存在しないことを期待してください。

1641 

1610<h3 id="sdkpluginconfig">1642<h3 id="sdkpluginconfig">

1611 `SdkPluginConfig`1643 `SdkPluginConfig`

1612</h3>1644</h3>


2712 2744 

2713すべての組み込み Claude Code ツールの入出力スキーマのドキュメント。Python SDK はこれらを型としてエクスポートしませんが、メッセージ内のツール入出力の構造を表します。2745すべての組み込み Claude Code ツールの入出力スキーマのドキュメント。Python SDK はこれらを型としてエクスポートしませんが、メッセージ内のツール入出力の構造を表します。

2714 2746 

2747各出力は、そのツールの [`UserMessage.tool_use_result`](#usermessage) から読み込む値です。キー名は Claude Code が発行する通りに表示されます。「存在する場合」または「オプション」というコメント付きで `| None` と注釈が付けられたキーは、適用されない場合は省略されます。

2748 

2715<h3 id="agent">2749<h3 id="agent">

2716 Agent2750 Agent

2717</h3>2751</h3>


2729 "run_in_background": bool | None, # エージェントはデフォルトでバックグラウンドで実行されます。同期実行する場合は False に設定2763 "run_in_background": bool | None, # エージェントはデフォルトでバックグラウンドで実行されます。同期実行する場合は False に設定

2730 "name": str | None, # スポーンされたエージェントの名前2764 "name": str | None, # スポーンされたエージェントの名前

2731 "team_name": str | None, # 非推奨。無視されます2765 "team_name": str | None, # 非推奨。無視されます

2732 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 非推奨。無視されます。サブエージェントは親セッションの権限モードを継承します。エージェント定義フロントマターがこれをオーバーライドする場合があります2766 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 非推奨。無視されます。サブエージェント継承ルールがサブエージェントの権限モードを決定します

2733 "isolation": "worktree" | "remote" | None, # エージェントの変更の分離モード2767 "isolation": "worktree" | "remote" | None, # エージェントの変更の分離モード

2734}2768}

2735```2769```


2884 2918 

2885**ツール名:** `Bash`2919**ツール名:** `Bash`

2886 2920 

2887フォアグラウンドの上限については、[タイムアウトと出力制限](/docs/ja/tools-reference#timeout-and-output-limits) を参照してください。バックグラウンド時間制限については、[バックグラウンドコマンド](/docs/ja/tools-reference#background-commands) を参照してください。2921フォアグラウンドの上限については、[タイムアウトと出力制限](/docs/ja/tools-reference#timeout-and-output-limits) を参照してください。バックグラウンド時間制限については、[バックグラウンドコマンドの時間制限](/docs/ja/tools-reference#time-limit-for-background-commands) を参照してください。

2888 2922 

2889**入力:**2923**入力:**

2890 2924 


2926 "command": str | None, # シェルスクリプト。各 stdout 行はイベント、終了はウォッチを終了2960 "command": str | None, # シェルスクリプト。各 stdout 行はイベント、終了はウォッチを終了

2927 "ws": dict | None, # WebSocket ソース:{"url": str, "protocols": list[str] | None}。各テキストフレームはイベント2961 "ws": dict | None, # WebSocket ソース:{"url": str, "protocols": list[str] | None}。各テキストフレームはイベント

2928 "description": str, # 通知に表示される短い説明2962 "description": str, # 通知に表示される短い説明

2929 "timeout_ms": int | None, # この期限後に強制終了(デフォルト 300000、最大 3600000。有効な期限は最大 1800000)2963 "timeout_ms": int | None, # 期限(ミリ秒)(デフォルト 300000、最大 3600000。有効な期限は最大 1800000)

2930}2964}

2931```2965```

2932 2966 


2961 2995 

2962```python theme={null}2996```python theme={null}

2963{2997{

2964 "message": str, # 確認メッセージ2998 "filePath": str, # 編集されたファイル

2965 "replacements": int, # 実行された置換の数2999 "oldString": str, # 置換されたテキスト

2966 "file_path": str, # 編集されたファイルパス3000 "newString": str, # それを置換したテキスト

3001 "originalFile": str | None, # 編集前のファイルコンテンツ

3002 "structuredPatch": [ # 変更の差分ハンク

3003 {

3004 "oldStart": int,

3005 "oldLines": int,

3006 "newStart": int,

3007 "newLines": int,

3008 "lines": list[str],

3009 }

3010 ],

3011 "userModified": bool, # ユーザーが提案された編集を受け入れる前に変更したかどうか

3012 "replaceAll": bool, # すべての出現が置換されたかどうか

3013 "gitDiff": { # ファイルのオプションの git 差分サマリー

3014 "filename": str,

3015 "status": "modified" | "added",

3016 "additions": int,

3017 "deletions": int,

3018 "changes": int,

3019 "patch": str,

3020 "repository": str | None, # 利用可能な場合は GitHub owner/repo

3021 } | None,

2967}3022}

2968```3023```

2969 3024 


2983}3038}

2984```3039```

2985 3040 

2986**出力(テキストファイル):**3041出力は Claude が読み込んだ内容に応じて、以下の形状のいずれかを取ります。`type` キーをチェックして区別してください。

3042 

3043**出力(type:`"text"`):**

3044 

3045```python theme={null}

3046{

3047 "type": "text",

3048 "file": {

3049 "filePath": str, # 読み込まれたファイル

3050 "content": str, # 返されたコンテンツ

3051 "numLines": int, # 返されたコンテンツの行数

3052 "startLine": int, # コンテンツが開始する行番号

3053 "totalLines": int, # ファイルの総行数

3054 "truncatedByTokenCap": bool | None, # 全ファイル読み込みがトークン上限を超えた場合に存在し True。コンテンツは最初のページ

3055 },

3056}

3057```

3058 

3059**出力(type:`"image"`):**

3060 

3061```python theme={null}

3062{

3063 "type": "image",

3064 "file": {

3065 "base64": str, # Base64 エンコードされた画像データ

3066 "type": "image/jpeg" | "image/png" | "image/gif" | "image/webp", # 画像 MIME タイプ

3067 "originalSize": int, # 元のファイルサイズ(バイト)

3068 "dimensions": { # 座標マッピング用のオプションのサイジング情報

3069 "originalWidth": int | None, # オプション。元の幅(ピクセル)

3070 "originalHeight": int | None, # オプション。元の高さ(ピクセル)

3071 "displayWidth": int | None, # オプション。リサイズ後の幅

3072 "displayHeight": int | None, # オプション。リサイズ後の高さ

3073 } | None,

3074 },

3075}

3076```

3077 

3078**出力(type:`"notebook"`):**

3079 

3080```python theme={null}

3081{

3082 "type": "notebook",

3083 "file": {

3084 "filePath": str, # 読み込まれたノートブック

3085 "cells": list, # ノートブックセル

3086 },

3087}

3088```

3089 

3090**出力(type:`"pdf"`):**

3091 

3092```python theme={null}

3093{

3094 "type": "pdf",

3095 "file": {

3096 "filePath": str, # 読み込まれた PDF

3097 "base64": str, # Base64 エンコードされた PDF データ

3098 "originalSize": int, # ファイルサイズ(バイト)

3099 },

3100}

3101```

3102 

3103**出力(type:`"parts"`):**

2987 3104 

2988```python theme={null}3105```python theme={null}

2989{3106{

2990 "content": str, # 行番号付きのファイル内容3107 "type": "parts",

2991 "total_lines": int, # ファイルの総行数3108 "file": {

2992 "lines_returned": int, # 実際に返された行数3109 "filePath": str, # 読み込まれた PDF

3110 "originalSize": int, # ファイルサイズ(バイト)

3111 "count": int, # 画像として抽出されたページ数

3112 "outputDir": str, # 抽出されたページ画像を含むディレクトリ

3113 },

3114 "firstPage": int | None, # オプション。最初に抽出されたページのドキュメントページ番号

2993}3115}

2994```3116```

2995 3117 

2996**出力(画像):**3118**出力(type:`"file_unchanged"`):**

2997 3119 

2998```python theme={null}3120```python theme={null}

2999{3121{

3000 "image": str, # Base64 エンコードされた画像データ3122 "type": "file_unchanged", # ファイルはこのセッションで Claude が最後に読み込んだ以降変更されていないため、コンテンツは繰り返されません

3001 "mime_type": str, # 画像の MIME タイプ3123 "file": {

3002 "file_size": int, # ファイルサイズ(バイト)3124 "filePath": str,

3125 },

3126 "source": "seeded" | None, # 以前のコピーが起動時に読み込まれた CLAUDE.md またはメモリファイルから来た場合に存在

3003}3127}

3004```3128```

3005 3129 


3022 3146 

3023```python theme={null}3147```python theme={null}

3024{3148{

3025 "message": str, # 成功メッセージ3149 "type": "create" | "update", # 書き込みが新しいファイルを作成したか、既存のファイルを上書きしたか

3026 "bytes_written": int, # 書き込まれたバイト数3150 "filePath": str, # 書き込まれたファイル

3027 "file_path": str, # 書き込まれたファイルパス3151 "content": str, # 書き込まれたコンテンツ

3152 "structuredPatch": [ # 差分ハンク。新しいファイル、何も変更されなかった場合、または Claude Code が差分をスキップした場合は空

3153 {

3154 "oldStart": int,

3155 "oldLines": int,

3156 "newStart": int,

3157 "newLines": int,

3158 "lines": list[str],

3159 }

3160 ],

3161 "originalFile": str | None, # 以前のコンテンツ。新しいファイルの場合または以前のコンテンツが大きすぎて含められない場合は None

3162 "gitDiff": { # ファイルのオプションの git 差分サマリー

3163 "filename": str,

3164 "status": "modified" | "added",

3165 "additions": int,

3166 "deletions": int,

3167 "changes": int,

3168 "patch": str,

3169 "repository": str | None, # 利用可能な場合は GitHub owner/repo

3170 } | None,

3171 "userModified": bool | None, # オプション。ユーザーが受け入れる前に提案されたコンテンツを編集したかどうか

3028}3172}

3029```3173```

3030 3174 


3047 3191 

3048```python theme={null}3192```python theme={null}

3049{3193{

3050 "matches": list[str], # マッチしたファイルパスの配列3194 "durationMs": int, # 検索の実行に要した時間(ミリ秒)

3051 "count": int, # 見つかったマッチの数3195 "numFiles": int, # 返されたパスの数。切り詰め後

3052 "search_path": str, # 使用された検索ディレクトリ3196 "filenames": list[str], # マッチしたファイルパス

3197 "truncated": bool, # 結果が 100 ファイルの上限で切り詰められたかどうか

3198 "totalMatches": int | None, # オプション。切り詰め前のマッチするファイルの総数。countIsComplete が False の場合は下限

3199 "countIsComplete": bool | None, # オプション。totalMatches が正確かどうか

3053}3200}

3054```3201```

3055 3202 

3203`totalMatches` と `countIsComplete` には Claude Code v2.1.191 以降が必要です。

3204 

3056<h3 id="grep">3205<h3 id="grep">

3057 Grep3206 Grep

3058</h3>3207</h3>


3073 "-B": int | None, # 各マッチの前に表示する行3222 "-B": int | None, # 各マッチの前に表示する行

3074 "-A": int | None, # 各マッチの後に表示する行3223 "-A": int | None, # 各マッチの後に表示する行

3075 "-C": int | None, # 前後に表示する行3224 "-C": int | None, # 前後に表示する行

3225 "context": int | None, # 前後に表示する行。-C はエイリアス

3226 "-o": bool | None, # 各行のマッチした部分のみを出力

3076 "head_limit": int | None, # 出力を最初の N 行/エントリに制限3227 "head_limit": int | None, # 出力を最初の N 行/エントリに制限

3228 "offset": int | None, # head_limit を適用する前に最初の N 行/エントリをスキップ

3077 "multiline": bool | None, # マルチラインモードを有効化3229 "multiline": bool | None, # マルチラインモードを有効化

3078}3230}

3079```3231```

3080 3232 

3081**出力(content モード):**3233**出力:**

3082 3234 

3083```python theme={null}3235```python theme={null}

3084{3236{

3085 "matches": [3237 "mode": "content" | "files_with_matches" | "count" | None, # 使用された出力モード

3086 {3238 "numFiles": int, # 結果内のファイル数。content モードでは常に 0

3087 "file": str,3239 "filenames": list[str], # files_with_matches モードのマッチするファイル。他のモードでは空

3088 "line_number": int | None,3240 "content": str | None, # content モードのマッチする行、または count モードのファイルごとのカウント

3089 "line": str,3241 "numLines": int | None, # コンテンツ内の行数。content モードに存在

3090 "before_context": list[str] | None,3242 "numMatches": int | None, # 総マッチ数。count モードに存在

3091 "after_context": list[str] | None,3243 "totalFiles": int | None, # オプション。files_with_matches モードで head_limit と offset の前の総数

3092 }3244 "totalLines": int | None, # オプション。content モードで head_limit と offset の前の総数

3093 ],3245 "appliedLimit": int | None, # head_limit が結果を切り詰めた場合に存在

3094 "total_matches": int,3246 "appliedOffset": int | None, # オフセットが適用された場合に存在

3095}3247}

3096```3248```

3097 3249 

3098**出力(files\_with\_matches モード):**3250Grep は各出力モードでこの dict 形状を返します。どのオプションキーが存在するかは `output_mode` に依存します。

3099 3251 

3100```python theme={null}3252`totalFiles` には Claude Code v2.1.208 以降が必要です。`totalLines` には Claude Code v2.1.210 以降が必要です。

3101{

3102 "files": list[str], # マッチを含むファイル

3103 "count": int, # マッチを含むファイルの数

3104}

3105```

3106 3253 

3107<h3 id="notebookedit">3254<h3 id="notebookedit">

3108 NotebookEdit3255 NotebookEdit


3126 3273 

3127```python theme={null}3274```python theme={null}

3128{3275{

3129 "message": str, # 成功メッセージ3276 "new_source": str, # セルに書き込まれたソース

3130 "edit_type": "replaced" | "inserted" | "deleted", # 実行された編集のタイプ3277 "old_source": str | None, # 以前のセルソース。replace と delete に存在

3131 "cell_id": str | None, # 影響を受けたセル ID3278 "cell_id": str | None, # 編集されたセルの ID。利用可能な場合

3132 "total_cells": int, # 編集後のノートブックの総セル数3279 "cell_type": "code" | "markdown", # セルタイプ

3280 "language": str, # ノートブックのプログラミング言語

3281 "edit_mode": str, # 使用された編集モード

3282 "error": str | None, # 操作が失敗した場合のエラーメッセージ

3283 "notebook_path": str, # ノートブックファイル

3284 "original_file": str, # 編集前のノートブックコンテンツ

3285 "updated_file": str, # 編集後のノートブックコンテンツ

3133}3286}

3134```3287```

3135 3288 


3227 3380 

3228```python theme={null}3381```python theme={null}

3229{3382{

3230 "message": str, # 成功メッセージ3383 "oldTodos": [ # 更新前の todo リスト

3231 "stats": {"total": int, "pending": int, "in_progress": int, "completed": int},3384 {

3385 "content": str,

3386 "status": "pending" | "in_progress" | "completed",

3387 "activeForm": str,

3388 }

3389 ],

3390 "newTodos": [ # 更新後の todo リスト

3391 {

3392 "content": str,

3393 "status": "pending" | "in_progress" | "completed",

3394 "activeForm": str,

3395 }

3396 ],

3232}3397}

3233```3398```

3234 3399 


3400 3565 

3401```python theme={null}3566```python theme={null}

3402{3567{

3403 "message": str, # 確認メッセージ3568 "plan": str | None, # ユーザーに提示されたプラン

3404 "approved": bool | None, # ユーザーがプランを承認したかどうか3569 "isAgent": bool, # サブエージェントがツールを呼び出した場合は True

3570 "filePath": str | None, # プランがファイルに保存された場合に存在

3571 "hasTaskTool": bool | None, # オプション。現在のコンテキストで Agent ツールが利用可能かどうか

3572 "planWasEdited": bool | None, # ユーザーが承認する前にプランを編集した場合に存在し True

3573 "awaitingLeaderApproval": bool | None, # チームメイトがプランをチームリーダーに承認を求めて送信した場合に存在し True

3574 "requestId": str | None, # その承認リクエストのオプション ID

3405}3575}

3406```3576```

3407 3577 


3419}3589}

3420```3590```

3421 3591 

3592結果は dict ではなくリストであるため、`tool_use_result` はこのツールに対して `list` を保持します。

3593 

3422**出力:**3594**出力:**

3423 3595 

3424```python theme={null}3596```python theme={null}

3425{3597[ # リソースごとに 1 つのエントリ

3426 "resources": [

3427 {3598 {

3428 "uri": str,3599 "uri": str, # リソース URI

3429 "name": str,3600 "name": str, # リソース名

3430 "description": str | None,3601 "mimeType": str | None, # オプション。MIME タイプ

3431 "mimeType": str | None,3602 "description": str | None, # オプション。説明

3432 "server": str,3603 "server": str, # このリソースを提供するサーバー

3433 }3604 }

3434 ],3605]

3435 "total": int,

3436}

3437```3606```

3438 3607 

3439<h3 id="readmcpresource">3608<h3 id="readmcpresource">


3456```python theme={null}3625```python theme={null}

3457{3626{

3458 "contents": [3627 "contents": [

3459 {"uri": str, "mimeType": str | None, "text": str | None, "blob": str | None}3628 {

3629 "uri": str, # リソース URI

3630 "mimeType": str | None, # オプション。MIME タイプ

3631 "text": str | None, # テキストコンテンツ、またはバイナリコンテンツに関する注記

3632 "blobSavedTo": str | None, # Claude Code がバイナリコンテンツをディスクに保存した場合に存在。保存されたファイルのパス

3633 }

3460 ],3634 ],

3461 "server": str,3635 "error": str | None, # サーバーがリソースを読み込めなかった場合に存在

3462}3636}

3463```3637```

3464 3638 

Details

97 戻り値97 戻り値

98</h4>98</h4>

99 99 

100[`Query`](#query-object) オブジェクトを返します。これは `AsyncGenerator<`[`SDKMessage`](#sdkmessage)`, void>` を拡張し、追加のメソッドを備えています。100[`Query`](#query-object) オブジェクトを返します。このオブジェクトは `AsyncGenerator<`[`SDKMessage`](#sdkmessage)`, void>` を拡張し、追加のメソッドを備えています。

101 101 

102<h3 id="startup">102<h3 id="startup">

103 `startup()`103 `startup()`

104</h3>104</h3>

105 105 

106プロンプトが利用可能になる前に CLI サブプロセスをプリウォーミングします。これはサブプロセスを生成し、初期化ハンドシェイクを完了します。返された [`WarmQuery`](#warmquery) ハンドルは後でプロンプトを受け入れ、既に準備ができているプロセスに書き込むため、最初の `query()` 呼び出しはサブプロセスの生成と初期化コストをインラインで支払うことなく解決します。セッションの作業ディレクトリがまだわからない場合は、代わりに [`prewarm()`](#prewarm) を使用してください。106CLI サブプロセスをプリウォーミングします。プロセスを生成し、プロンプトが利用可能になる前に初期化ハンドシェイクを完了します。返された [`WarmQuery`](#warmquery) ハンドルは後でプロンプトを受け入れ、既に準備ができているプロセスに書き込むため、最初の `query()` 呼び出しはサブプロセスの生成と初期化のコストをインラインで支払うことなく解決します。セッションの作業ディレクトリがまだわからない場合は、代わりに [`prewarm()`](#prewarm) を使用してください。

107 107 

108```typescript theme={null}108```typescript theme={null}

109function startup(params?: {109function startup(params?: {


131 例131 例

132</h4>132</h4>

133 133 

134`startup()` を早期に呼び出します。たとえば、アプリケーション起動時に呼び出してから、プロンプトが準備できたら返されたハンドルで `.query()` を呼び出します。これにより、サブプロセスの生成と初期化をクリティカルパスから外します。134`startup()` を早期に呼び出します。たとえば、アプリケーション起動時に呼び出し、プロンプトが準備できたら返されたハンドルで `.query()` を呼び出します。これにより、サブプロセスの生成と初期化がクリティカルパスから外れます。

135 135 

136```typescript theme={null}136```typescript theme={null}

137import { startup } from "@anthropic-ai/claude-agent-sdk";137import { startup } from "@anthropic-ai/claude-agent-sdk";


151 151 

152*アルファ版。* どのセッションに対応するかわかる前に Claude Code プロセスをスペアとして開始します。後で [`claim()`](#spareprocess) を使用してセッションにバインドできます。ユーザーがフォルダを選択する前に起動するアプリケーションで使用します。TypeScript Agent SDK v0.3.282 以降が必要です。152*アルファ版。* どのセッションに対応するかわかる前に Claude Code プロセスをスペアとして開始します。後で [`claim()`](#spareprocess) を使用してセッションにバインドできます。ユーザーがフォルダを選択する前に起動するアプリケーションで使用します。TypeScript Agent SDK v0.3.282 以降が必要です。

153 153 

154`prewarm()` は [`startup()`](#startup) と同じ初期化ハンドシェイクを完了します。`options.cwd` を設定した場合はそのディレクトリで、それ以外の場合は Claude Code 設定ディレクトリの下のプライベート一時ディレクトリでプロセスが待機します。セッションの作業ディレクトリ、その `SessionStart` フック、その stdio MCP サーバー、その CLAUDE.md と git コンテキストはクレームを待ちます。スペアは待機中に約 230 ~ 260 MB のメモリを保持します。[`spawnClaudeCodeProcess`](#options) が別のマシンまたはコンテナで Claude Code を実行する場合は、`options.cwd` をそこに存在するディレクトリに設定して、スペアが待機するようにします。154`prewarm()` は [`startup()`](#startup) と同じ初期化ハンドシェイクを完了します。`options.cwd` を設定した場合はそのディレクトリで、それ以外の場合は Claude Code 設定ディレクトリ下のプライベート一時ディレクトリでプロセスが待機します。セッションの作業ディレクトリ、その `SessionStart` フック、その stdio MCP サーバー、その CLAUDE.md と git コンテキストはクレームを待ちます。スペアは待機中に約 230 ~ 260 MB のメモリを保持します。[`spawnClaudeCodeProcess`](#options) が別のマシンまたはコンテナで Claude Code を実行する場合は、`options.cwd` をそこに存在するディレクトリに設定して、スペアが待機するようにしてください。

155 155 

156```typescript theme={null}156```typescript theme={null}

157function prewarm(params?: {157function prewarm(params?: {


160}): Promise<SpareProcess>;160}): Promise<SpareProcess>;

161```161```

162 162 

163`options` と `initializeTimeoutMs` は `startup()` と同じ意味ですが、`options.cwd` はスペアが待機するディレクトリのみを設定します。プロミスはプロセスが初期化ハンドシェイクを完了したら [`SpareProcess`](#spareprocess) で解決します。`prewarm()` は `options` が `resume`、`continue`、または `forkSession` を設定する場合にスローします。スペアはまだセッションを持たないためです。クレームが設定できないすべてのもの(`mcpServers`、`hooks`、`canUseTool`、`settingSources`、`systemPrompt`、`plugins` など)はスペアの生涯にわたって固定されるため、これらのオプションの異なるセットごとに 1 つのスペアを保持し、それらが変更されたら再度プリウォームします。163`options` と `initializeTimeoutMs` は `startup()` と同じ意味ですが、`options.cwd` はスペアが待機するディレクトリのみを設定します。プロミスは、プロセスが初期化ハンドシェイクを完了したら [`SpareProcess`](#spareprocess) で解決します。`prewarm()` は `options` が `resume`、`continue`、または `forkSession` を設定する場合にスローします。スペアにはセッションがないためです。クレームが設定できないもの(`mcpServers`、`hooks`、`canUseTool`、`settingSources`、`systemPrompt`、`plugins` など)はスペアの存続期間中固定されるため、それらのオプションの異なるセットごとに 1 つのスペアを保持し、変更時に再度プリウォーミングしてください。

164 164 

165<h4 id="example-2">165<h4 id="example-2">

166 例166 例

167</h4>167</h4>

168 168 

169アプリケーション起動時にプリウォームしてから、ユーザーがセッションを開始したときにスペアをクレームします。169アプリケーション起動時にプリウォーミングし、ユーザーがセッションを開始したときにスペアをクレームします。

170 170 

171```typescript theme={null}171```typescript theme={null}

172import { prewarm } from "@anthropic-ai/claude-agent-sdk";172import { prewarm } from "@anthropic-ai/claude-agent-sdk";


223 `ToolAnnotations`223 `ToolAnnotations`

224</h4>224</h4>

225 225 

226`@modelcontextprotocol/sdk/types.js` から再エクスポートされます。すべてのフィールドはオプションのヒントです。クライアントはセキュリティ決定のためにそれらに依存すべきではありません。226`@modelcontextprotocol/sdk/types.js` で定義されています。すべてのフィールドはオプションのヒントです。クライアントはセキュリティ決定のためにそれらに依存すべきではありません。

227 227 

228| フィールド | 型 | デフォルト | 説明 |228| フィールド | 型 | デフォルト | 説明 |

229| :- | :- | :- | :- |229| :- | :- | :- | :- |


276| `options.instructions` | `string` | オプションのサーバー指示。`initialize` から返され、MCP 指示ブロックとしてモデルに表示されます |276| `options.instructions` | `string` | オプションのサーバー指示。`initialize` から返され、MCP 指示ブロックとしてモデルに表示されます |

277| `options.tools` | `Array<SdkMcpToolDefinition>` | [`tool()`](#tool) で作成されたツール定義の配列 |277| `options.tools` | `Array<SdkMcpToolDefinition>` | [`tool()`](#tool) で作成されたツール定義の配列 |

278| `options.alwaysLoad` | `boolean` | `true` の場合、このサーバーのすべてのツールは初期プロンプトに留まり、[ツール検索](/docs/ja/agent-sdk/tool-search) の背後で遅延されることはありません。[`tool()`](#tool) のツール単位の `alwaysLoad` と組み合わせます |278| `options.alwaysLoad` | `boolean` | `true` の場合、このサーバーのすべてのツールは初期プロンプトに留まり、[ツール検索](/docs/ja/agent-sdk/tool-search) の背後で遅延されることはありません。[`tool()`](#tool) のツール単位の `alwaysLoad` と組み合わせます |

279| `options.timeout` | `number` | このサーバーのツール呼び出しのタイムアウト(ミリ秒)。Claude Code はこれを [`MCP_TOOL_TIMEOUT`](/docs/ja/env-vars) の代わりにこのサーバーに適用します。1000 以上の整数を渡します。Claude Code は他の値を無視します。TypeScript Agent SDK v0.3.248 以降が必要です |279| `options.timeout` | `number` | このサーバーのツール呼び出しのタイムアウト(ミリ秒)。Claude Code はこれを [`MCP_TOOL_TIMEOUT`](/docs/ja/env-vars) の代わりにこのサーバーに適用します。1000 以上の整数を渡してください。Claude Code は他の値を無視します。TypeScript Agent SDK v0.3.248 以降が必要です |

280 280 

281<h3 id="listsessions">281<h3 id="listsessions">

282 `listSessions()`282 `listSessions()`


308| `summary` | `string` | 表示タイトル:カスタムタイトル、最新のプロンプト、自動生成されたサマリー、または最初のプロンプト |308| `summary` | `string` | 表示タイトル:カスタムタイトル、最新のプロンプト、自動生成されたサマリー、または最初のプロンプト |

309| `lastModified` | `number` | エポック以降のミリ秒単位での最後の変更時刻 |309| `lastModified` | `number` | エポック以降のミリ秒単位での最後の変更時刻 |

310| `fileSize` | `number \| undefined` | セッションファイルサイズ(バイト)。ローカル JSONL ストレージの場合のみ入力されます |310| `fileSize` | `number \| undefined` | セッションファイルサイズ(バイト)。ローカル JSONL ストレージの場合のみ入力されます |

311| `customTitle` | `string \| undefined` | ユーザーが設定したセッションタイトル(`--name`、`/rename`、フックの `sessionTitle` 出力、または [`renameSession()`](#renamesession) 経由など)。それ以外の場合は AI が生成したセッションタイトル(セッションがある場合) |311| `customTitle` | `string \| undefined` | `--name`、`/rename`、フックの `sessionTitle` 出力、または [`renameSession()`](#renamesession) で設定されている場合のセッションのカスタムタイトル。それ以外の場合は、セッションがある場合は AI 生成のセッションタイトル |

312| `firstPrompt` | `string \| undefined` | セッション内の最初の意味のあるユーザープロンプト |312| `firstPrompt` | `string \| undefined` | セッション内の最初の意味のあるユーザープロンプト |

313| `gitBranch` | `string \| undefined` | セッション終了時の git ブランチ |313| `gitBranch` | `string \| undefined` | セッション終了時の git ブランチ |

314| `cwd` | `string \| undefined` | セッションの作業ディレクトリ |314| `cwd` | `string \| undefined` | セッションの作業ディレクトリ |


351| パラメータ | 型 | デフォルト | 説明 |351| パラメータ | 型 | デフォルト | 説明 |

352| :- | :- | :- | :- |352| :- | :- | :- | :- |

353| `sessionId` | `string` | 必須 | 読み取るセッション UUID(`listSessions()` を参照) |353| `sessionId` | `string` | 必須 | 読み取るセッション UUID(`listSessions()` を参照) |

354| `options.dir` | `string` | `undefined` | セッションを検索するプロジェクトディレクトリ。省略した場合、すべてのプロジェクトを検索します |354| `options.dir` | `string` | `undefined` | セッションを検出するプロジェクトディレクトリ。省略した場合、すべてのプロジェクトを検索します |

355| `options.limit` | `number` | `undefined` | 返すメッセージの最大数 |355| `options.limit` | `number` | `undefined` | 返すメッセージの最大数 |

356| `options.offset` | `number` | `undefined` | 開始からスキップするメッセージ数 |356| `options.offset` | `number` | `undefined` | 開始からスキップするメッセージ数 |

357 357 


408 408 

409| パラメータ | 型 | デフォルト | 説明 |409| パラメータ | 型 | デフォルト | 説明 |

410| :- | :- | :- | :- |410| :- | :- | :- | :- |

411| `sessionId` | `string` | 必須 | 検索するセッションの UUID |411| `sessionId` | `string` | 必須 | ルックアップするセッションの UUID |

412| `options.dir` | `string` | `undefined` | プロジェクトディレクトリパス。省略した場合、すべてのプロジェクトディレクトリを検索します |412| `options.dir` | `string` | `undefined` | プロジェクトディレクトリパス。省略した場合、すべてのプロジェクトディレクトリを検索します |

413 413 

414[`SDKSessionInfo`](#return-type-sdksessioninfo) を返すか、セッションが見つからない場合は `undefined` を返します。414[`SDKSessionInfo`](#return-type-sdksessioninfo) を返すか、セッションが見つからない場合は `undefined` を返します。


465 `resolveSettings()`465 `resolveSettings()`

466</h3>466</h3>

467 467 

468CLI と同じマージエンジンを使用して、Claude Code プロセスを生成せずに、指定されたディレクトリの有効な Claude Code 設定を解決します。`query()` 呼び出しを呼び出す前に、設定がどのような設定を見るかを検査するために使用します。468CLI を生成せずに、CLI と同じマージエンジンを使用して、指定されたディレクトリの有効な Claude Code 設定を解決します。`query()` 呼び出しを呼び出す前に、設定がどのような設定を見るかを検査するために使用します。

469 469 

470<Note>470<Note>

471 この関数はアルファ版であり、安定化前に API が変更される可能性があります。471 この関数はアルファ版であり、安定化前に API が変更される可能性があります。


474スナップショットはライブ `query()` セッションが適用するものと異なります。474スナップショットはライブ `query()` セッションが適用するものと異なります。

475 475 

476* **`policyHelper`**:`resolveSettings()` は MDM ソース(macOS plist と Windows HKLM/HKCU を含む)を読み取りますが、管理者が設定した `policyHelper` サブプロセスを実行しません。476* **`policyHelper`**:`resolveSettings()` は MDM ソース(macOS plist と Windows HKLM/HKCU を含む)を読み取りますが、管理者が設定した `policyHelper` サブプロセスを実行しません。

477* **サーバー管理設定**:`resolveSettings()` は [サーバー管理設定](/docs/ja/server-managed-settings#fetch-and-caching-behavior) をフェッチしません。それらを含めるには `options.serverManagedSettings` として渡します。477* **サーバー管理設定**:`resolveSettings()` は [サーバー管理設定](/docs/ja/server-managed-settings#fetch-and-caching-behavior) をフェッチしません。それらを含めるには `options.serverManagedSettings` として渡してください。

478* **`defaultMode`**:スナップショットは `permissions.defaultMode` をすべてのティアから現状のまま返すため、プロジェクトおよびローカル設定からの `'auto'` および `'bypassPermissions'` 値を含めることができます。これは [ライブセッションが無視する](/docs/ja/permission-modes#which-mode-a-session-starts-in) ものです。478* **`defaultMode`**:スナップショットは `permissions.defaultMode` をすべてのティアからそのまま返すため、プロジェクトおよびローカル設定からの `'auto'` および `'bypassPermissions'` 値を含めることができます。これは [ライブセッションが無視する](/docs/ja/permission-modes#which-mode-a-session-starts-in) ものです。

479 479 

480```typescript theme={null}480```typescript theme={null}

481function resolveSettings(481function resolveSettings(


492| パラメータ | 型 | デフォルト | 説明 |492| パラメータ | 型 | デフォルト | 説明 |

493| :- | :- | :- | :- |493| :- | :- | :- | :- |

494| `options.cwd` | `string` | `process.cwd()` | プロジェクトおよびローカル設定を相対的に解決するディレクトリ |494| `options.cwd` | `string` | `process.cwd()` | プロジェクトおよびローカル設定を相対的に解決するディレクトリ |

495| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | すべてのソース | どのファイルシステムソースをロードするか。ユーザー、プロジェクト、およびローカル設定をスキップするには `[]` を渡します。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms) はすべての場合にロードされます。`resolveSettings()` は `options.serverManagedSettings` を渡す場合のみサーバー管理設定を含めます |495| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | すべてのソース | どのファイルシステムソースをロードするか。ユーザー、プロジェクト、およびローカル設定をスキップするには `[]` を渡してください。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms) はすべての場合にロードされます。`resolveSettings()` は `options.serverManagedSettings` を渡す場合のみサーバー管理設定を含めます |

496| `options.managedSettings` | `Settings` | `undefined` | 埋め込みホストによって提供されるポリシーティア設定。[`Options`](#options) の [`managedSettings`](#options) と同じルールに従います。ただし、`resolveSettings()` は設定された [`policyHelper`](/docs/ja/settings-reference#policyhelper) を実行しないため、スナップショットはライブセッションがドロップする設定を含めることができます |496| `options.managedSettings` | `Settings` | `undefined` | 埋め込みホストによって提供されるポリシーティア設定。[`Options`](#options) の [`managedSettings`](#options) と同じルールに従います。ただし、`resolveSettings()` は設定された [`policyHelper`](/docs/ja/settings-reference#policyhelper) を実行しないため、スナップショットはライブセッションがドロップする設定を含めることができます |

497| `options.serverManagedSettings` | `Settings` | `undefined` | `/api/claude_code/settings` からのサーバー管理設定ペイロード。制限のないキーはフィルタリングなしで通過します |497| `options.serverManagedSettings` | `Settings` | `undefined` | `/api/claude_code/settings` からのサーバー管理設定ペイロード。制限のないキーはフィルタリングなしで通過します |

498 498 


504 504 

505| プロパティ | 型 | 説明 |505| プロパティ | 型 | 説明 |

506| :- | :- | :- |506| :- | :- | :- |

507| `effective` | `Settings` | すべての有効なソースを優先順位順に適用した後のマージされた設定 |507| `effective` | `Settings` | すべての有効なソースを優先順序で適用した後のマージされた設定 |

508| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | `effective` の各トップレベルキーについて、値を提供したソース |508| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | `effective` の各トップレベルキーについて、値を提供したソース |

509| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | ソースごとの生の設定。最も低い優先度から最も高い優先度の順に並べられています |509| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | ソースごとの生の設定。最も低い優先度から最も高い優先度の順に並べられています |

510 510 


512 例512 例

513</h4>513</h4>

514 514 

515以下の例はプロジェクトディレクトリの設定を解決し、クリーンアップ期間を制御するソースを出力します。設定ファイルが `cleanupPeriodDays` を設定しないマシンでは、両方の出力行は値に対して `undefined` を表示します。これはエラーではなく、予想される出力です。515以下の例は、プロジェクトディレクトリの設定を解決し、クリーンアップ期間を制御するソースを出力します。設定ファイルが `cleanupPeriodDays` を設定しないマシンでは、両方の出力行は値に対して `undefined` を表示します。これはエラーではなく、予想される出力です。

516 516 

517```typescript theme={null}517```typescript theme={null}

518import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";518import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";


539| プロパティ | 型 | デフォルト | 説明 |539| プロパティ | 型 | デフォルト | 説明 |

540| :- | :- | :- | :- |540| :- | :- | :- | :- |

541| `abortController` | `AbortController` | `new AbortController()` | 操作をキャンセルするためのコントローラー |541| `abortController` | `AbortController` | `new AbortController()` | 操作をキャンセルするためのコントローラー |

542| `additionalDirectories` | `string[]` | `[]` | Claude Code がアクセスできる追加ディレクトリ。SDK は各エントリを Claude Code に `--add-dir` として渡すため、`project` 設定ソースを使用すると Claude Code は [ディレクトリのスキル、コマンド、サブエージェントも読み込みます](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration) |542| `additionalDirectories` | `string[]` | `[]` | Claude が アクセスできる追加ディレクトリ。SDK は各エントリを Claude Code に `--add-dir` として渡すため、`project` 設定ソースを使用すると Claude Code は [ディレクトリのスキル、コマンド、サブエージェントも読み込みます](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration) |

543| `agent` | `string` | `undefined` | メインスレッドのエージェント名。エージェントは `agents` オプションまたは設定で定義されている必要があります |543| `agent` | `string` | `undefined` | メインスレッドのエージェント名。エージェントは `agents` オプションまたは設定で定義されている必要があります |

544| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | プログラムでサブエージェントを定義します |544| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | プログラムでサブエージェントを定義します |

545| `agentProgressSummaries` | `boolean` | `false` | `true` の場合、サブエージェントの 1 行の進捗サマリーを生成し、`summary` フィールド経由で [`task_progress`](#sdktaskprogressmessage) イベントで転送します。フォアグラウンドおよびバックグラウンドサブエージェントに適用されます |545| `agentProgressSummaries` | `boolean` | `false` | `true` の場合、サブエージェントの 1 行の進捗サマリーを生成し、[`task_progress`](#sdktaskprogressmessage) イベントの `summary` フィールドで転送します。フォアグラウンドおよびバックグラウンドサブエージェントに適用されます |

546| `allowDangerouslySkipPermissions` | `boolean` | `false` | 権限をバイパスすることを有効にします。`permissionMode: 'bypassPermissions'` を使用する場合に必須です。スタートアップ時またはその後 `setPermissionMode()` を通じて設定できます。[plan mode](/docs/ja/agent-sdk/permissions#plan-mode-plan) で `permissionMode: 'plan'` との相互作用を確認してください |546| `allowDangerouslySkipPermissions` | `boolean` | `false` | 権限をバイパスすることを有効にします。`permissionMode: 'bypassPermissions'` を使用する場合に必須です。スタートアップ時またはその後 `setPermissionMode()` を通じて設定できます。[プランモード](/docs/ja/agent-sdk/permissions#plan-mode-plan)を参照して、`permissionMode: 'plan'` との相互作用を確認してください |

547| `allowedTools` | `string[]` | `[]` | プロンプトなしで自動承認するツール。これは Claude をこれらのツールのみに制限しません。[タスク追跡ツール](/docs/ja/agent-sdk/todo-tracking#model-availability) の 1 つをここで指定すると、Claude Code もセッションをオプトインします。リストされていない他のツールは `permissionMode` と `canUseTool` にフォールスルーします。ツールをブロックするには `disallowedTools` を使用してください。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules) を参照してください |547| `allowedTools` | `string[]` | `[]` | プロンプトなしで自動承認するツール。これは Claude を これらのツールのみに制限しません。[タスク追跡ツール](/docs/ja/agent-sdk/todo-tracking#model-availability)の 1 つをここに名前を付けると、Claude Code もセッションをオプトインします。リストされていない他のツールは `permissionMode` と `canUseTool` にフォールスルーします。`disallowedTools` を使用してツールをブロックします。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules)を参照してください |

548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | ベータ機能を有効にします |548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | ベータ機能を有効にします |

549| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | カスタム権限関数。[権限フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated) がプロンプトにフォールスルーする場合にのみ呼び出されます。`allowedTools`、許可ルール、または `permissionMode` で自動承認された呼び出しには呼び出されません。許可ルールは [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) を事前承認しません。詳細は [`CanUseTool`](#canusetool) を参照してください |549| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | カスタム権限関数。[権限フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)がプロンプトにフォールスルーする場合にのみ呼び出されます。`allowedTools`、許可ルール、または `permissionMode` で自動承認された呼び出しには呼び出されません。許可ルールは [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)を事前承認しません。詳細は [`CanUseTool`](#canusetool) を参照してください |

550| `continue` | `boolean` | `false` | 最新の会話を続行します |550| `continue` | `boolean` | `false` | 最新の会話を続行します |

551| `cwd` | `string` | `process.cwd()` | 現在の作業ディレクトリ |551| `cwd` | `string` | `process.cwd()` | 現在の作業ディレクトリ |

552| `debug` | `boolean` | `false` | Claude Code プロセスのデバッグモードを有効にします |552| `debug` | `boolean` | `false` | Claude Code プロセスのデバッグモードを有効にします |

553| `debugFile` | `string` | `undefined` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします |553| `debugFile` | `string` | `undefined` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします |

554| `disallowedTools` | `string[]` | `[]` | 拒否するツール。`"Bash"` のような単純な名前はツールを Claude のコンテキストから削除します。`"Bash(rm *)"` のようなスコープ付きルールはツールを利用可能なままにし、`bypassPermissions` を含むすべての権限モードで一致する呼び出しを拒否します。[書かれたとおりの](/docs/ja/permissions#bash-rule-limits) コマンドの場合です。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules) を参照してください |554| `disallowedTools` | `string[]` | `[]` | 拒否するツール。`"Bash"` のような単純な名前はツールを Claude のコンテキストから削除します。`"Bash(rm *)"` のようなスコープ付きルールはツールを利用可能なままにし、[書かれたコマンド](/docs/ja/permissions#bash-rule-limits)に対して `bypassPermissions` を含むすべての権限モードで一致する呼び出しを拒否します。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules)を参照してください |

555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Claude が応答に費やす努力の量を制御します。適応的思考と連携して思考の深さをガイドします。[努力レベルを調整](/docs/ja/model-config#adjust-effort-level) を参照してください |555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Claude が応答に費やす努力の量を制御します。適応的思考と連携して思考の深さをガイドします。[努力レベルを調整](/docs/ja/model-config#adjust-effort-level)を参照してください |

556| `enableFileCheckpointing` | `boolean` | `false` | ファイル変更追跡を有効にして巻き戻しを可能にします。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing) を参照してください |556| `enableFileCheckpointing` | `boolean` | `false` | ファイル変更追跡を有効にして巻き戻しを可能にします。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing)を参照してください |

557| `env` | `Record<string, string \| undefined>` | `process.env` | 環境変数。設定すると、このサブプロセス環境を `process.env` とマージするのではなく置き換えるため、`PATH` のような継承変数を保持するには `{ ...process.env, YOUR_VAR: 'value' }` を渡してください。このパターンの例は [遅いまたは停止した API レスポンスを処理](#handle-slow-or-stalled-api-responses) を参照し、基盤となる CLI が読む変数については [環境変数](/docs/ja/env-vars) を参照してください。User-Agent ヘッダーでアプリを識別するには `CLAUDE_AGENT_SDK_CLIENT_APP` を設定してください |557| `env` | `Record<string, string \| undefined>` | `process.env` | 環境変数。設定すると、このサブプロセス環境を `process.env` とマージするのではなく置き換えるため、`PATH` のような継承変数を保持するには `{ ...process.env, YOUR_VAR: 'value' }` を渡してください。このパターンの例は [遅いまたは停止した API レスポンスを処理](#handle-slow-or-stalled-api-responses)を参照し、基盤となる CLI が読み取る変数については [環境変数](/docs/ja/env-vars)を参照してください。`CLAUDE_AGENT_SDK_CLIENT_APP` を設定して User-Agent ヘッダーでアプリを識別します |

558| `executable` | `'bun' \| 'deno' \| 'node'` | 自動検出 | 使用する JavaScript ランタイム |558| `executable` | `'bun' \| 'deno' \| 'node'` | 自動検出 | 使用する JavaScript ランタイム |

559| `executableArgs` | `string[]` | `[]` | 実行可能ファイルに渡す引数 |559| `executableArgs` | `string[]` | `[]` | 実行可能ファイルに渡す引数 |

560| `extraArgs` | `Record<string, string \| null>` | `{}` | 追加引数 |560| `extraArgs` | `Record<string, string \| null>` | `{}` | 追加引数 |

561| `fallbackModel` | `string` | `undefined` | プライマリモデルが失敗した場合に使用するモデル。カンマ区切りリストを受け入れます。順序とキャップについては [フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains) を参照してください。ガイダンスについては [モデルを選択](/docs/ja/agent-sdk/configuration#choose-a-model) を参照してください |561| `fallbackModel` | `string` | `undefined` | プライマリモデルが失敗した場合に使用するモデル。カンマ区切りリストを受け入れます。順序と上限については [フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains)を参照してください。ガイダンスについては [モデルを選択](/docs/ja/agent-sdk/configuration#choose-a-model)を参照してください |

562| `forkSession` | `boolean` | `false` | `resume` で再開する場合、元のセッション ID を続行するのではなく新しいセッション ID にフォークします |562| `forkSession` | `boolean` | `false` | `resume` で再開する場合、元のセッション ID を続行する代わりに新しいセッション ID にフォークします |

563| `forwardSubagentText` | `boolean` | `false` | サブエージェントのテキストと思考ブロックをアシスタントおよびユーザーメッセージとして `parent_tool_use_id` を設定して転送し、コンシューマーがネストされたトランスクリプトをレンダリングできるようにします。このオプションがない場合、Claude Code はサブエージェント `tool_use` および `tool_result` ブロックを出力しますが、テキストや思考は出力しません。すべてのネストの深さのサブエージェントからのメッセージは Claude Code v2.1.219 以降で転送されます。v2.1.219 より前では、深さ 1 のサブエージェントからのメッセージのみが表示されました。フォークされたスキルが生成するサブエージェントのメッセージおよびネストされたフォークされたスキルのメッセージには v2.1.275 以降が必要です |563| `forwardSubagentText` | `boolean` | `false` | サブエージェントのテキストと思考ブロックをアシスタントおよびユーザーメッセージとして `parent_tool_use_id` を設定して転送し、コンシューマーがネストされたトランスクリプトをレンダリングできるようにします。このオプションがない場合、Claude Code はサブエージェント `tool_use` および `tool_result` ブロックを出力しますが、テキストまたは思考は出力しません。すべてのネストの深さのサブエージェントからのメッセージは Claude Code v2.1.219 以降で転送されます。v2.1.219 より前では、深さ 1 のサブエージェントからのメッセージのみが表示されました。フォークされたスキルが生成するサブエージェントのメッセージ、およびネストされたフォークされたスキルのメッセージには v2.1.275 以降が必要です |

564| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | イベントのフックコールバック |564| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | イベントのフックコールバック |

565| `includeHookEvents` | `boolean` | `false` | フックライフサイクルイベントをメッセージストリームに [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage)、および [`SDKHookResponseMessage`](#sdkhookresponsemessage) として含めます。`SessionStart` および `Setup` フックのライフサイクルイベントは常に含まれ、このオプションは不要です。`Notification`、`SessionEnd`、`PreCompact`、`PostCompact` などの一部のフックイベントは、このオプションを使用しても `SDKHookStartedMessage` を生成しません。これらのイベントの場合、Claude Code は 1 秒以上実行されるコマンドフックが出力を生成している間は `SDKHookProgressMessage` を出力し、[バックグラウンドで実行](/docs/ja/hooks#run-hooks-in-the-background) されるフックが完了したときのみ `SDKHookResponseMessage` を出力します |565| `includeHookEvents` | `boolean` | `false` | フックライフサイクルイベントをメッセージストリームに [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage)、および [`SDKHookResponseMessage`](#sdkhookresponsemessage) として含めます。`SessionStart` および `Setup` フックのライフサイクルイベントは常に含まれ、このオプションは不要です。`Notification`、`SessionEnd`、`PreCompact`、`PostCompact` などの一部のフックイベントは、このオプションを使用しても `SDKHookStartedMessage` を生成しません。これらのイベントについては、Claude Code は コマンドフックが 1 秒以上実行される場合に出力を生成する `SDKHookProgressMessage` を出力し、[バックグラウンドで実行](/docs/ja/hooks#run-hooks-in-the-background)するフックが完了した場合にのみ `SDKHookResponseMessage` を出力します |

566| `includePartialMessages` | `boolean` | `false` | 部分メッセージイベントを含めます |566| `includePartialMessages` | `boolean` | `false` | 部分メッセージイベントを含めます |

567| `loadTimeoutMs` | `number` | `60000` | *アルファ。* 再開の具体化中に各 `sessionStore.load()` および `sessionStore.listSubkeys()` 呼び出しのタイムアウト(ミリ秒)。アダプターがこのウィンドウ内で解決しない場合、クエリはハングするのではなく失敗します。`sessionStore` が設定されていない場合は無視されます |567| `loadTimeoutMs` | `number` | `60000` | *アルファ。* 再開の具体化中に各 `sessionStore.load()` および `sessionStore.listSubkeys()` 呼び出しのタイムアウト(ミリ秒)。アダプターがこのウィンドウ内で解決しない場合、クエリはハングする代わりに失敗します。`sessionStore` が設定されていない場合は無視されます |

568| `managedSettings` | `Settings` | `undefined` | ホストプロセスがスポーンされたセッションに提供するポリシー層設定。管理者がデプロイした管理設定を持つマシンでは、管理者の最優先管理ソースが `parentSettingsBehavior: 'merge'` を設定しない限り、Claude Code はこれらを無視し、[`policyHelper`](/docs/ja/settings-reference#policyhelper) が管理設定を提供している間はマージしません。マージされた値は制限のみのフィルターを通過します。[親設定を制限](/docs/ja/claude-apps-gateway#restrict-parent-settings) はフィルターが許可するもの、および `allowManaged*Only` ロックをカバーします。[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定するホストは、このペイロードから直接 3 つのキーを読み取ります。Claude Code v2.1.222 以降の [モデル設定](/docs/ja/model-config#restrict-model-selection)、管理ソースが設定していない場合は v2.1.246 以降の [`modelPricing`](/docs/ja/settings-reference#modelpricing)、および v2.1.247 以降の `ENABLE_TOOL_SEARCH` env エントリ |568| `managedSettings` | `Settings` | `undefined` | ホストプロセスがスポーンされたセッションに提供するポリシー層設定。管理者がデプロイした管理設定を持つマシンでは、管理者の最優先管理ソースが `parentSettingsBehavior: 'merge'` を設定しない限り、Claude Code はこれらを無視し、[`policyHelper`](/docs/ja/settings-reference#policyhelper) が管理設定を提供している間はマージしません。マージされた値は制限のみのフィルターを通過します。[親設定を制限](/docs/ja/claude-apps-gateway#restrict-parent-settings)はフィルターが許可するものと `allowManaged*Only` ロックをカバーしています。[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定するホストには、このペイロードから直接読み取られる 3 つのキーがあります。Claude Code v2.1.222 以降の [モデル設定](/docs/ja/model-config#restrict-model-selection)、管理ソースが設定していない場合の v2.1.246 以降の [`modelPricing`](/docs/ja/settings-reference#modelpricing)、および v2.1.247 以降の `ENABLE_TOOL_SEARCH` env エントリ |

569| `maxBudgetUsd` | `number` | `undefined` | クライアント側のコスト推定がこの USD 値に達したときにクエリを停止します。呼び出し自体の支出のみをカウントします。再開されたセッションから復元された合計はカウントされません。精度の注意事項とリセット動作については、[コストと使用状況を追跡](/docs/ja/agent-sdk/cost-tracking) を参照してください |569| `maxBudgetUsd` | `number` | `undefined` | クライアント側のコスト推定がこの USD 値に達したときにクエリを停止します。呼び出し自体の支出のみをカウントします。再開されたセッションから復元された合計はカウントされません。精度の注意事項とリセット動作については [コストと使用状況を追跡](/docs/ja/agent-sdk/cost-tracking)を参照してください |

570| `maxThinkingTokens` | `number` | `undefined` | *非推奨:* 代わりに `thinking` を使用してください。思考プロセスの最大トークン数 |570| `maxThinkingTokens` | `number` | `undefined` | *非推奨:* 代わりに `thinking` を使用してください。思考プロセスの最大トークン数 |

571| `maxTurns` | `number` | `undefined` | 最大エージェンティックターン数(ツール使用ラウンドトリップ) |571| `maxTurns` | `number` | `undefined` | 最大エージェンティックターン数(ツール使用ラウンドトリップ) |

572| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP サーバー設定 |572| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP サーバー設定 |

573| `model` | `string` | CLI のデフォルト | Claude モデルエイリアスまたは完全なモデル名。[受け入れられた値とプロバイダー固有の ID](/docs/ja/model-config#available-models) を参照してください |573| `model` | `string` | CLI からのデフォルト | Claude モデルエイリアスまたは完全なモデル名。[受け入れられた値とプロバイダー固有の ID](/docs/ja/model-config#available-models) を参照してください |

574| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | MCP 誘導リクエストを処理するためのコールバック。MCP サーバーがユーザー入力をリクエストし、フックが最初に処理しない場合に呼び出されます。提供されない場合、未処理の誘導リクエストは自動的に拒否されます |574| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | MCP 誘導リクエストを処理するためのコールバック。MCP サーバーがユーザー入力をリクエストし、フックが最初に処理しない場合に呼び出されます。提供されない場合、処理されない誘導リクエストは自動的に拒否されます |

575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | エージェント結果の出力形式を定義します。詳細は [構造化出力](/docs/ja/agent-sdk/structured-outputs) を参照してください |575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | エージェント結果の出力形式を定義します。詳細は [構造化出力](/docs/ja/agent-sdk/structured-outputs)を参照してください |

576| `outputStyle` | `string` | `undefined` | `Options` フィールドではありません。インライン [`settings`](/docs/ja/settings) オブジェクトまたは設定ファイルで `outputStyle` を設定してください。[出力スタイルを有効化](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style) を参照してください |576| `outputStyle` | `string` | `undefined` | `Options` フィールドではありません。インライン [`settings`](/docs/ja/settings) オブジェクトまたは設定ファイルで `outputStyle` を設定してください。[出力スタイルを有効化](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください |

577| `pathToClaudeCodeExecutable` | `string` | バンドルされたネイティブバイナリから自動解決 | Claude Code 実行可能ファイルへのパス。オプション依存関係がインストール中にスキップされた場合、またはプラットフォームがサポートされているセットにない場合にのみ必要です |577| `pathToClaudeCodeExecutable` | `string` | バンドルされたネイティブバイナリから自動解決 | Claude Code 実行可能ファイルへのパス。オプションの依存関係がインストール中にスキップされた場合、またはプラットフォームがサポートされているセットにない場合にのみ必要です |

578| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | セッションの権限モード |578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | セッションの権限モード。省略した場合、セッションはオートモードで開始できます。Claude Code がスタート権限モードを選択する方法については [権限モード](/docs/ja/agent-sdk/permissions#permission-modes)を参照してください |

579| `permissionPromptToolName` | `string` | `undefined` | 権限プロンプト用の MCP ツール名 |579| `permissionPromptToolName` | `string` | `undefined` | 権限プロンプトの MCP ツール名 |

580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 権限プロンプトに応答するのは誰か: `'host'` はそれらを [`canUseTool`](#canusetool) コールバックまたは `permissionPromptToolName` ツールにルーティングし、`'none'` は [プロンプトが表示されるはずだった呼び出しを拒否](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated) します。Claude Code v2.1.259 以降が必要です |580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 権限プロンプトに応答する者: `'host'` はそれらを [`canUseTool`](#canusetool) コールバックまたは `permissionPromptToolName` ツールにルーティングし、`'none'` は [プロンプトが表示されるはずだった呼び出しを拒否](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)します。Claude Code v2.1.259 以降が必要です |

581| `persistSession` | `boolean` | `true` | `false` の場合、セッションのディスクへの永続化を無効にします。セッションは後で再開できません |581| `persistSession` | `boolean` | `true` | `false` の場合、ディスクへのセッション永続化を無効にします。セッションは後で再開できません |

582| `planModeInstructions` | `string` | `undefined` | plan mode のカスタムワークフロー指示。`permissionMode` が `'plan'` の場合、この文字列はデフォルトの plan mode ワークフロー本体を置き換えます。CLI は引き続き読み取り専用強制プリアンブルと ExitPlanMode プロトコルフッターでラップします |582| `planModeInstructions` | `string` | `undefined` | プランモードのカスタムワークフロー指示。`permissionMode` が `'plan'` の場合、この文字列はデフォルトのプランモードワークフロー本体を置き換えます。CLI は引き続き読み取り専用強制プリアンブルと ExitPlanMode プロトコルフッターでラップします |

583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | ローカルパスからカスタムプラグインを読み込みます。詳細は [プラグイン](/docs/ja/agent-sdk/plugins) を参照してください |583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | ローカルパスからカスタムプラグインを読み込みます。詳細は [プラグイン](/docs/ja/agent-sdk/plugins)を参照してください |

584| `projectConfigRoot` | `string` | `undefined` | `cwd` がワークツリーである信頼できるチェックアウトの絶対パス。Claude Code はプロジェクト設定、`.mcp.json`、およびプロジェクトの `.claude/` コマンド、エージェント、スキル、ワークフロー、ルーチン、および出力スタイルを `cwd` ではなくこのディレクトリから読み込み、`CLAUDE_PROJECT_DIR` をそれに設定します。フック、`apiKeyHelper` などのヘルパースクリプト、および stdio MCP サーバーはこのディレクトリをワーキングディレクトリとして開始します。`CLAUDE.md` ファイルと `.claude/rules/` は引き続き `cwd` から読み込まれます。Claude Code v2.1.275 以降が必要です |584| `projectConfigRoot` | `string` | `undefined` | `cwd` がワークツリーである信頼できるチェックアウトの絶対パス。Claude Code はプロジェクト設定、`.mcp.json`、およびプロジェクトの `.claude/` コマンド、エージェント、スキル、ワークフロー、ルーチン、および出力スタイルをこのディレクトリから `cwd` の代わりに読み取り、`CLAUDE_PROJECT_DIR` をそれに設定します。フック、`apiKeyHelper` などのヘルパースクリプト、および stdio MCP サーバーはこのディレクトリをワーキングディレクトリとして開始します。`CLAUDE.md` ファイルと `.claude/rules/` は引き続き `cwd` から読み込まれます。Claude Code v2.1.275 以降が必要です |

585| `promptSuggestions` | `boolean` | `false` | プロンプト提案を有効にします。ターン後、Claude Code は予測される次のユーザープロンプトを含む `prompt_suggestion` メッセージを出力します。アカウントが使用制限に近い、または達している場合など、一部のターンでは Claude Code は提案を生成しません。[Claude Code が提案をスキップする場合](/docs/ja/interactive-mode#when-claude-code-skips-suggestions) を参照してください |585| `promptSuggestions` | `boolean` | `false` | プロンプト提案を有効にします。ターン後、Claude Code は予測される次のユーザープロンプトを含む `prompt_suggestion` メッセージを出力します。アカウントが使用制限に近い、または達している場合など、一部のターンでは Claude Code は提案を生成しません。[Claude Code が提案をスキップする場合](/docs/ja/interactive-mode#when-claude-code-skips-suggestions)を参照してください |

586| `resume` | `string` | `undefined` | 再開するセッション ID |586| `resume` | `string` | `undefined` | 再開するセッション ID |

587| `resumeDropsTurn` | `string` | `undefined` | `resumeSessionAt` を使用: 切り詰め再開が破棄するターンのプロンプト UUID。破棄された範囲に吸収されたキューに入ったメッセージなど、そのターンに帰属しないものが含まれている場合、Claude Code は再開を拒否し、拒否メッセージで `--resume-drops-turn` フラグを指定します。Agent SDK とプリントモード再開のみがペアを読み取ります。Claude Code v2.1.223 以降が必要です |587| `resumeDropsTurn` | `string` | `undefined` | `resumeSessionAt` を使用: 切り詰め再開が破棄することを意図するターンのプロンプト UUID。破棄された範囲に、吸収されたキューに入ったメッセージやタスク通知など、そのターンに帰属しないものが含まれている場合、Claude Code は再開を拒否し、拒否メッセージで `--resume-drops-turn` フラグを名前付けします。Agent SDK とプリントモード再開のみがペアを読み取ります。Claude Code v2.1.223 以降が必要です |

588| `resumeSessionAt` | `string` | `undefined` | 特定のメッセージ UUID でセッションを再開します |588| `resumeSessionAt` | `string` | `undefined` | 特定のメッセージ UUID でセッションを再開します |

589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | サンドボックス動作をプログラムで設定します。詳細は [サンドボックス設定](#sandboxsettings) を参照してください |589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | サンドボックス動作をプログラムで設定します。詳細は [サンドボックス設定](#sandboxsettings)を参照してください |

590| `sessionId` | `string` | 自動生成 | 自動生成する代わりに特定の UUID をセッションに使用します |590| `sessionId` | `string` | 自動生成 | 自動生成する代わりに特定の UUID をセッションに使用します |

591| `sessionStore` | [`SessionStore`](/docs/ja/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | セッショントランスクリプトを外部バックエンドにミラーリングして、別のホストがそれらを再開できるようにします。[セッションを外部ストレージに永続化](/docs/ja/agent-sdk/session-storage) を参照してください |591| `sessionStore` | [`SessionStore`](/docs/ja/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | セッショントランスクリプトを外部バックエンドにミラーリングして、別のホストがそれらを再開できるようにします。[セッションを外部ストレージに永続化](/docs/ja/agent-sdk/session-storage)を参照してください |

592| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *アルファ。* `sessionStore` のフラッシュモード。`sessionStore` が設定されていない場合は無視されます |592| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *アルファ。* `sessionStore` のフラッシュモード。`sessionStore` が設定されていない場合は無視されます |

593| `settings` | `string \| Settings` | `undefined` | インライン [settings](/docs/ja/settings) オブジェクト、設定ファイルパス、またはインライン JSON 文字列。[優先順位](/docs/ja/settings#settings-precedence) でフラグ設定層を入力します。[`applyFlagSettings()`](#applyflagsettings) で実行時に変更します |593| `settings` | `string \| Settings` | `undefined` | インライン [settings](/docs/ja/settings) オブジェクト、設定ファイルパス、またはインライン JSON 文字列。[優先順位](/docs/ja/settings#settings-precedence)でフラグ設定層を入力します。[`applyFlagSettings()`](#applyflagsettings) でランタイムに変更します |

594| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI デフォルト(すべてのソース) | 読み込むファイルシステム設定を制御します。ユーザー、プロジェクト、ローカル設定を無効にするには `[]` を渡します。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms) は関係なく読み込まれます。サーバー管理設定は、セッションが [適格な設定](/docs/ja/server-managed-settings#platform-availability) で組織認証情報を使用して認証するときにフェッチされます。[Claude Code 機能を使用](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control) を参照してください |594| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI デフォルト(すべてのソース) | どのファイルシステム設定を読み込むかを制御します。ユーザー、プロジェクト、ローカル設定を無効にするには `[]` を渡します。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms)は関係なく読み込まれます。サーバー管理設定は、セッションが [適格な設定](/docs/ja/server-managed-settings#platform-availability)で組織認証情報を使用して認証する場合に取得されます。[Claude Code 機能を使用](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)を参照してください |

595| `skills` | `string[] \| 'all'` | `undefined` | セッションで利用可能なスキル。すべての検出されたスキルを有効にするには `'all'` を渡すか、スキル名のリストを渡します。正確な名前のみを渡してください。Agent SDK v0.3.221 以降では、SDK は Claude Code プロセスを開始する前に、形式が正しくないワイルドカードフォーム名をエラーで拒否します。設定すると、SDK は Skill ツールを `allowedTools` に自動的に追加します。`tools` も渡す場合は、そのリストに `'Skill'` を含めてください。[スキル](/docs/ja/agent-sdk/skills) を参照してください |595| `skills` | `string[] \| 'all'` | `undefined` | セッションで利用可能なスキル。すべての検出されたスキルを有効にするには `'all'` を渡すか、スキル名のリストを渡します。正確な名前のみを渡してください。Agent SDK v0.3.221 以降では、SDK は形式が正しくないワイルドカード形式の名前を Claude Code プロセスを開始する前にエラーで拒否します。設定すると、SDK は Skill ツールを `allowedTools` に自動的に追加します。`tools` も渡す場合は、そのリストに `'Skill'` を含めてください。[スキル](/docs/ja/agent-sdk/skills)を参照してください |

596| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Claude Code プロセスをスポーンするカスタム関数。VM、コンテナ、またはリモート環境で Claude Code を実行するために使用します |596| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Claude Code プロセスをスポーンするカスタム関数。VM、コンテナ、またはリモート環境で Claude Code を実行するために使用します |

597| `stderr` | `(data: string) => void` | `undefined` | stderr 出力のコールバック |597| `stderr` | `(data: string) => void` | `undefined` | stderr 出力のコールバック |

598| `strictMcpConfig` | `boolean` | `false` | `mcpServers` で渡されたサーバーのみを使用し、プロジェクト `.mcp.json`、ユーザー設定、プラグイン提供の MCP サーバー、および [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) を無視します |598| `strictMcpConfig` | `boolean` | `false` | `mcpServers` で渡されたサーバーのみを使用し、プロジェクト `.mcp.json`、ユーザー設定、プラグイン提供の MCP サーバー、および [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)を無視します |

599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined`(最小プロンプト) | システムプロンプト設定。カスタムプロンプトの場合は文字列を渡すか、Claude Code のシステムプロンプトを使用するには `{ type: 'preset', preset: 'claude_code' }` を渡します。エクスポートされた `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 定数を静的部分とリクエストごとの部分の間に含む文字列の配列を渡して、[カスタムプロンプトの静的部分をキャッシュ](/docs/ja/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) します。プリセットオブジェクト形式を使用する場合、追加の指示で拡張するには `append` を追加し、セッションごとのコンテキストを最初のユーザーメッセージに移動するには `excludeDynamicSections: true` を設定して、[マシン間でのプロンプトキャッシュの再利用を改善](/docs/ja/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) します。セッションが最初のリクエストで記録したプロンプトを再利用する代わりに、すべてのリクエストでプロンプトを再構築するには `snapshot: false` を設定します。カスタムプロンプトで `snapshot` を設定するには、`{ type: 'custom', prompt }` 形式を渡します。`{ type: 'custom' }` 形式と `snapshot` フィールドには TypeScript Agent SDK v0.3.257 以降が必要です |599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined`(最小プロンプト) | システムプロンプト設定。カスタムプロンプトの場合は文字列を渡すか、Claude Code のシステムプロンプトを使用するには `{ type: 'preset', preset: 'claude_code' }` を渡します。エクスポートされた `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 定数を静的部分とリクエストごとの部分の間に含む文字列の配列を渡して、[カスタムプロンプトの静的部分をキャッシュ](/docs/ja/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)します。プリセットオブジェクト形式を使用する場合、追加の指示で拡張するには `append` を追加し、セッションごとのコンテキストを最初のユーザーメッセージに移動するには `excludeDynamicSections: true` を設定して、[マシン間でのプロンプトキャッシュの再利用を改善](/docs/ja/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)します。セッションが最初のリクエストで記録したプロンプトを再利用する代わりに、すべてのリクエストでプロンプトを再構築するには `snapshot: false` を設定します。カスタムプロンプトで `snapshot` を設定するには、`{ type: 'custom', prompt }` 形式を渡します。`{ type: 'custom' }` 形式と `snapshot` フィールドには TypeScript Agent SDK v0.3.257 以降が必要です |

600| `taskBudget` | `{ total: number }` | `undefined` | *アルファ。* API 側のタスク予算(トークン)。設定すると、モデルは残りのトークン予算を通知され、ツール使用のペースを調整し、制限前にラップアップできます |600| `taskBudget` | `{ total: number }` | `undefined` | *アルファ。* API 側のタスク予算(トークン)。設定すると、モデルは残りのトークン予算を知らされるため、ツール使用のペースを調整し、制限前にラップアップできます |

601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | サポートされているモデルの場合は `{ type: 'adaptive' }` | Claude の思考/推論動作を制御します。オプションについては [`ThinkingConfig`](#thinkingconfig) を参照してください |601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | サポートされているモデルの場合 `{ type: 'adaptive' }` | Claude の思考/推論動作を制御します。オプションについては [`ThinkingConfig`](#thinkingconfig)を参照してください |

602| `title` | `string` | `undefined` | セッションの表示タイトル。`resume` または `continue` で再開する場合、再開されたセッションの永続化されたタイトルが優先されます。既存のセッションを再タイトルするには [`renameSession()`](#renamesession) を使用してください |602| `title` | `string` | `undefined` | セッションの表示タイトル。`resume` または `continue` で再開する場合、再開されたセッションの永続化されたタイトルが優先されます。既存のセッションを再タイトルするには [`renameSession()`](#renamesession) を使用してください |

603| `toolAliases` | `Record<string, string>` | `undefined` | 組み込みツール名を MCP ツール名にマップして、Claude が組み込みの代わりに MCP 実装を呼び出すようにします。例えば、`{ Bash: 'mcp__workspace__bash' }` |603| `toolAliases` | `Record<string, string>` | `undefined` | 組み込みツール名を MCP ツール名にマップして、Claude が組み込みの代わりに MCP 実装を呼び出すようにします。例えば、`{ Bash: 'mcp__workspace__bash' }` |

604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 組み込みツール動作の設定。詳細は [`ToolConfig`](#toolconfig) を参照してください |604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 組み込みツール動作の設定。詳細は [`ToolConfig`](#toolconfig)を参照してください |

605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | ツール設定。ツール名の配列を渡すか、プリセットを使用して Claude Code のデフォルトツールを取得します |605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | ツール設定。ツール名の配列を渡すか、プリセットを使用して Claude Code のデフォルトツールを取得します |

606| `verbatimPrompts` | `boolean` | `false` | すべてのプロンプトを書かれたとおりに配信します。SDK は各ユーザーメッセージを `client_composed: true` で送信します。Claude Code がこれらのメッセージでスキップするものについては [`client_composed`](#sdkusermessage) を参照してください。プロンプトテキストにエンドユーザーが入力しなかったコンテンツが含まれている場合にこのオプションを使用してください。ターンごとの制御については、オフのままにして、代わりにストリーミングされたメッセージで個別に `client_composed` を設定してください。TypeScript Agent SDK v0.3.280 以降および Claude Code v2.1.248 以降が必要です。これらの SDK バージョンでバンドルされている Claude Code バージョンは Claude Code 要件を満たします |606| `verbatimPrompts` | `boolean` | `false` | すべてのプロンプトを書かれたとおりに配信します。SDK は各ユーザーメッセージを `client_composed: true` で送信します。Claude Code がこれらのメッセージでスキップするものについては [`client_composed`](#sdkusermessage)を参照してください。プロンプトテキストにエンドユーザーが入力しなかったコンテンツが含まれている場合にこのオプションを使用します。ターンごとの制御については、これをオフのままにして、代わりにストリーミングされたメッセージで個別に `client_composed` を設定してください。TypeScript Agent SDK v0.3.280 以降と Claude Code v2.1.248 以降が必要です。これらの SDK バージョンにバンドルされている Claude Code バージョンは Claude Code 要件を満たしています |

607 607 

608<h4 id="handle-slow-or-stalled-api-responses">608<h4 id="handle-slow-or-stalled-api-responses">

609 遅いまたは停止した API レスポンスを処理609 遅いまたは停止した API レスポンスを処理

610</h4>610</h4>

611 611 

612CLI サブプロセスは、API タイムアウトとスタール検出を制御するいくつかの環境変数を読み取ります。`env` オプションを通じてそれらを渡します:612CLI サブプロセスは、API タイムアウトと停止検出を制御するいくつかの環境変数を読み取ります。`env` オプションを通じてそれらを渡します:

613 613 

614```typescript theme={null}614```typescript theme={null}

615import { query } from "@anthropic-ai/claude-agent-sdk";615import { query } from "@anthropic-ai/claude-agent-sdk";


628```628```

629 629 

630* `API_TIMEOUT_MS`: Anthropic クライアントのリクエストごとのタイムアウト(ミリ秒)。デフォルト `600000`。メインループとすべてのサブエージェントに適用されます。630* `API_TIMEOUT_MS`: Anthropic クライアントのリクエストごとのタイムアウト(ミリ秒)。デフォルト `600000`。メインループとすべてのサブエージェントに適用されます。

631* `CLAUDE_CODE_MAX_RETRIES`: 最大 API リトライ数。デフォルト `10`、上限 `15`。各リトライは独自の `API_TIMEOUT_MS` ウィンドウを取得するため、最悪の場合の実時間は大約 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` プラスバックオフです。より長い停止を待つ必要がある無人実行の場合は、[`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/ja/errors#tune-retry-behavior) を設定してください: 一時的な容量エラーを無限に再試行し、Claude Code v2.1.199 以降では、他の一時的なエラーのデフォルトを `300` に引き上げ、この変数のキャップを削除します。631* `CLAUDE_CODE_MAX_RETRIES`: 最大 API リトライ数。デフォルト `10`、上限 `15`。各リトライは独自の `API_TIMEOUT_MS` ウィンドウを取得するため、最悪の場合の壁時間は大約 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` プラスバックオフです。無人実行で長いアウタージを待つ必要がある場合は、[`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/ja/errors#tune-retry-behavior) を設定します。一時的な容量エラーを無限に再試行し、Claude Code v2.1.199 以降では、他の一時的なエラーのデフォルトを `300` に引き上げ、この変数の上限を削除します。

632* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: サブエージェント用のスタール監視犬。ストリーム監視犬がオンの場合、デフォルトは `CLAUDE_STREAM_IDLE_TIMEOUT_MS` プラス 5 分で、その変数を引き上げない限り `600000` になります。ストリーム監視犬がオフの場合、デフォルトは `600000` です。v2.1.257 より前では、デフォルトは常に `600000` でした。632* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: サブエージェントの停止ウォッチドッグ。ストリームウォッチドッグがオンの場合、デフォルトは `CLAUDE_STREAM_IDLE_TIMEOUT_MS` プラス 5 分で、その変数を引き上げない限り `600000` になります。ストリームウォッチドッグがオフの場合、デフォルトは `600000` です。v2.1.257 より前では、デフォルトは常に `600000` でした。

633 633 

634 タイマーは各ストリームイベントでリセットされます。スタール時、Claude Code はサブエージェントを中止し、スタールを親に報告します。バックグラウンドサブエージェントの場合、タスクも失敗とマークし、部分的な結果を添付します。634 タイマーは各ストリームイベントでリセットされます。停止時、Claude Code はサブエージェントを中止し、停止を親に報告します。バックグラウンドサブエージェントの場合、タスクも失敗とマークし、部分的な結果を添付します。

635* `CLAUDE_ENABLE_STREAM_WATCHDOG` と `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: ヘッダーが到着したがレスポンスボディがストリーミングを停止したときにリクエストを中止するストリーム監視犬。監視犬はすべてのプロバイダーでデフォルトでオンです。無効にするには `CLAUDE_ENABLE_STREAM_WATCHDOG=0` を設定してください。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` はデフォルト `300000` で、その最小値にクランプされます。中止後、[自動リトライ](/docs/ja/errors#automatic-retries) は、レスポンスがどこまで進んだかに基づいて Claude Code が何をするかをカバーします。635* `CLAUDE_ENABLE_STREAM_WATCHDOG` と `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: ヘッダーが到着したがレスポンスボディがストリーミングを停止したときにリクエストを中止するストリームウォッチドッグ。ウォッチドッグはすべてのプロバイダーでデフォルトでオンです。無効にするには `CLAUDE_ENABLE_STREAM_WATCHDOG=0` を設定します。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` はデフォルト `300000` で、その最小値にクランプされます。中止後、[自動リトライ](/docs/ja/errors#automatic-retries)は Claude Code が何をするかをカバーしており、レスポンスがどこまで進んだかに基づいています。

636 636 

637 監視犬が `ANTHROPIC_BASE_URL` の背後にあるゲートウェイが保持するレスポンスをキープアライブピングで待機している間、`includePartialMessages` を設定するホストは `ping` [ストリームイベント](#sdkpartialassistantmessage) を受け取り続けるため、これらのフレームを実時間として読み取り、最後の実ストリームイベントから 5 分後のサイレンスでセッションをタイムアウトしないでください。v2.1.257 より前では、フレームは停止しました。637 ウォッチドッグが `ANTHROPIC_BASE_URL` の背後にあるゲートウェイが保持するレスポンスを待っている間、キープアライブピングで、`includePartialMessages` を設定するホストは引き続き `ping` [ストリームイベント](#sdkpartialassistantmessage)を受け取るため、これらのフレームを沈黙でセッションをタイムアウトするのではなく活性度として読み取ってください。v2.1.257 より前では、フレームは最後の実際のストリームイベントから 5 分後に停止しました。

638 638 

639<h3 id="query-object">639<h3 id="query-object">

640 `Query` オブジェクト640 `Query` オブジェクト


696 696 

697| メソッド | 説明 |697| メソッド | 説明 |

698| :- | :- |698| :- | :- |

699| `interrupt()` | クエリを中断します。ストリーミング入力モードでのみ利用可能です。CLI が [`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_receipt_v1` 機能をアドバタイズする場合、中断が到着したときに保留中だった [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) メッセージをリストして解決します。v2.1.205 より前の CLI では `undefined` に解決します |699| `interrupt()` | クエリを中断します。ストリーミング入力モードでのみ利用可能です。CLI が [`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_receipt_v1` 機能をアドバタイズする場合、中断が到着したときに保留中だったメッセージをリストする [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) で解決します。v2.1.205 より前の CLI では `undefined` で解決します |

700| `rewindFiles(userMessageId, options?)` | ファイルを指定されたユーザーメッセージの状態に復元します。変更をプレビューするには `{ dryRun: true }` を渡します。`enableFileCheckpointing: true` が必要です。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing) を参照してください |700| `rewindFiles(userMessageId, options?)` | ファイルを指定されたユーザーメッセージの状態に復元します。`{ dryRun: true }` を渡して変更をプレビューします。`enableFileCheckpointing: true` が必要です。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing)を参照してください |

701| `setPermissionMode()` | 権限モードを変更します(ストリーミング入力モードでのみ利用可能) |701| `setPermissionMode()` | 権限モードを変更します(ストリーミング入力モードでのみ利用可能) |

702| `setModel()` | モデルを変更します(ストリーミング入力モードでのみ利用可能)。`undefined` または文字列 `"default"` を渡すと、[Claude Code のデフォルトモデル](/docs/ja/model-config) にリセットされます |702| `setModel()` | モデルを変更します(ストリーミング入力モードでのみ利用可能)。`undefined` または文字列 `"default"` を渡すと、[Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットされます |

703| `setMaxThinkingTokens()` | *非推奨:* 代わりに `thinking` オプションを使用してください。最大思考トークン数を変更します。`null` を渡すと、思考をセッションデフォルトにリセットします: ミッドセッションオーバーライドはクリアされ、思考が無効になっているセッションでは思考はオフのままです |703| `setMaxThinkingTokens()` | *非推奨:* 代わりに `thinking` オプションを使用してください。最大思考トークンを変更します。`null` を渡すと、思考をセッションデフォルトにリセットします。セッション中のオーバーライドはクリアされ、思考が無効になっているセッションでは思考はオフのままです |

704| `applyFlagSettings(settings)` | 実行時にセッションのフラグ設定層に設定をマージします(ストリーミング入力モードでのみ利用可能)。[`applyFlagSettings()`](#applyflagsettings) を参照してください |704| `applyFlagSettings(settings)` | ランタイムでセッションのフラグ設定層に設定をマージします(ストリーミング入力モードでのみ利用可能)。[`applyFlagSettings()`](#applyflagsettings)を参照してください |

705| `updateSettings(source, settings)` | プロジェクトのローカル設定ファイルまたはユーザー設定ファイルに 1 つのホワイトリスト登録キーを書き込み、値が後のセッションで永続化されるようにします。[`updateSettings()`](#updatesettings) を参照してください。TypeScript SDK v0.3.257 以降が必要で、Claude Code v2.1.257 をバンドルしています |705| `updateSettings(source, settings)` | プロジェクトのローカル設定ファイルまたはユーザー設定ファイルに 1 つのホワイトリストキーを書き込み、値が後のセッションで永続化されるようにします。[`updateSettings()`](#updatesettings)を参照してください。TypeScript SDK v0.3.257 以降が必要で、Claude Code v2.1.257 をバンドルしています |

706| `initializationResult()` | サポートされているコマンド、モデル、アカウント情報、出力スタイル設定を含む完全な初期化結果を返します |706| `initializationResult()` | サポートされているコマンド、モデル、アカウント情報、および出力スタイル設定を含む完全な初期化結果を返します |

707| `reinitialize()` | 実行中の CLI に `initialize` 制御リクエストを再送信し、キャッシュされた最初の接続結果の代わりに新しい結果を返します。トランスポートギャップ後(セッションへの再接続後など)に使用して、保留中の権限リクエストが `canUseTool` コールバックに再度到達するようにします。リクエスト ID ごとにコールバックをべき等にしてください。応答が失敗したリクエストは再度ディスパッチされるためです。Claude Code v2.1.195 以降が必要です |707| `reinitialize()` | 実行中の CLI に `initialize` 制御リクエストを再送信し、キャッシュされた最初の接続結果の代わりに新しい結果を返します。トランスポートギャップ後(セッションを切断後に再接続するなど)に使用して、保留中の権限リクエストが `canUseTool` コールバックに再度到達するようにします。リクエスト ID ごとにコールバックをべき等にしてください。応答が失われたリクエストは再度ディスパッチされるためです。Claude Code v2.1.195 以降が必要です |

708| `supportedCommands()` | 利用可能なコマンドを返します。Agent SDK v0.3.216 からリストはミッドセッションコマンド変更を反映します。[`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) を参照してください |708| `supportedCommands()` | 利用可能なコマンドを返します。Agent SDK v0.3.216 からリストはセッション中のコマンド変更を反映します。[`SDKCommandsChangedMessage`](#sdkcommandschangedmessage)を参照してください |

709| `supportedModels()` | 表示情報を含む利用可能なモデルを返します |709| `supportedModels()` | 表示情報を含む利用可能なモデルを返します |

710| `supportedAgents()` | [`AgentInfo`](#agentinfo)`[]` として利用可能なサブエージェントを返します |710| `supportedAgents()` | 利用可能なサブエージェントを [`AgentInfo`](#agentinfo)`[]` として返します |

711| `mcpServerStatus()` | 接続された MCP サーバーのステータスを [`McpServerStatus`](#mcpserverstatus)`[]` として返します |711| `mcpServerStatus()` | 接続された MCP サーバーのステータスを [`McpServerStatus`](#mcpserverstatus)`[]` として返します |

712| `getContextUsage(opts?)` | セッションのコンテキストウィンドウ使用状況をカテゴリ、スキル、ツール別に分類した [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) を返します。デフォルト `detail` では、対話型セッションで `/context` が表示するのと同じデータです。[`detail` オプション](#sdkcontrolgetcontextusageresponse) には Agent SDK v0.3.257 以降が必要です |712| `getContextUsage(opts?)` | セッションのコンテキストウィンドウ使用状況をカテゴリ、スキル、ツール別に分類する [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse)を返します。デフォルト `detail` では、対話型セッションで `/context` が表示するのと同じデータで、メッセージストリームに表示されないトークンカウント API リクエストで計算されます。[これらのリクエストがどのように処理されるか](#sdkcontrolgetcontextusageresponse)を参照してください。[`detail` オプション](#sdkcontrolgetcontextusageresponse)には Agent SDK v0.3.257 以降が必要です |

713| `readFile(path, options?)` | セッションのファイルシステムからファイルを読み取ります。Claude Code は `cwd` に対してパスを解決します。[`readFile()` が読み取れるもの](#what-readfile-can-read) は提供するファイルをリストします。読み取りキャップを変更するには `{ maxBytes }` を渡します(デフォルト 1 MB、上限 10 MB)。画像などのバイナリファイルの場合は `{ encoding: 'base64' }` を渡します。[`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) で解決するか、権限拒否、ファイルの欠落、またはトランスポートエラーの場合は `null` で解決します。TypeScript SDK v0.2.121 以降が必要です |713| `readFile(path, options?)` | セッションのファイルシステムからファイルを読み取ります。Claude Code はパスを `cwd` に対して解決します。[`readFile()` が読み取れるもの](#what-readfile-can-read)は提供するファイルをリストします。`{ maxBytes }` を渡して読み取りキャップを変更し(デフォルト 1 MB、上限 10 MB)、`{ encoding: 'base64' }` を画像などのバイナリファイルに渡します。[`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse)で解決するか、権限拒否、ファイルの欠落、またはトランスポートエラーで `null` で解決します。TypeScript SDK v0.2.121 以降が必要です |

714| `reloadPlugins(options?)` | ディスクからプラグインを再読み込みして、ミッドセッション中にインストールまたは編集したプラグインが実行中のセッションに到達するようにします。セッションのコマンド、サブエージェント、プラグイン、MCP サーバーステータスをリストする [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) で解決します。Agent SDK v0.2.85 以降が必要です。[`holdOnCacheImpact` オプション](#sdkcontrolreloadpluginsresponse) には Agent SDK v0.3.268 以降が必要です |714| `reloadPlugins(options?)` | ディスクからプラグインを再読み込みして、セッション中にインストールまたは編集したプラグインが実行中のセッションに到達するようにします。セッションのコマンド、サブエージェント、プラグイン、および MCP サーバーステータスをリストする [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse)で解決します。Agent SDK v0.2.85 以降が必要です。[`holdOnCacheImpact` オプション](#sdkcontrolreloadpluginsresponse)には Agent SDK v0.3.268 以降が必要です |

715| `reloadSkills()` | ディスクからスキルを再読み込みして、ミッドセッション中に追加または編集したスキルが実行中のセッションで利用可能になるようにします。再読み込み後に利用可能なスキルをリストする [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) で解決します。Agent SDK v0.3.163 以降が必要です |715| `reloadSkills()` | ディスクからスキルを再読み込みして、セッション中に追加または編集したスキルが実行中のセッションで利用可能になるようにします。再読み込み後に利用可能なスキルをリストする [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse)で解決します。Agent SDK v0.3.163 以降が必要です |

716| `reloadOutputStyles()` | ディスクから [出力スタイル](/docs/ja/output-styles) を再読み込みして、ミッドセッション中に追加または編集したスタイルファイルが実行中のセッションで利用可能になるようにします。再読み込み後に利用可能なスタイル名をリストする [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) で解決します。Agent SDK v0.3.261 以降が必要です |716| `reloadOutputStyles()` | ディスクから [出力スタイル](/docs/ja/output-styles)を再読み込みして、セッション中に追加または編集したスタイルファイルが実行中のセッションで利用可能になるようにします。再読み込み後に利用可能なスタイル名をリストする [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse)で解決します。Agent SDK v0.3.261 以降が必要です |

717| `accountInfo()` | アカウント情報を返します |717| `accountInfo()` | アカウント情報を返します |

718| `reconnectMcpServer(serverName)` | MCP サーバーを名前で再接続します。名前が `.mcp.json` または `~/.claude.json` などの設定ファイルのエントリとも一致する場合、Claude Code は [`mcpServers`](#options) または `setMcpServers()` を通じて設定したサーバーを再接続し、設定ファイルエントリではありません。その解決順序には Claude Code v2.1.257 以降が必要です |718| `reconnectMcpServer(serverName)` | MCP サーバーを名前で再接続します。名前が `.mcp.json` または `~/.claude.json` などの設定ファイルのエントリとも一致する場合、Claude Code は設定ファイルエントリではなく、[`mcpServers`](#options)または `setMcpServers()` を通じて設定したサーバーを再接続します。その解決順序には Claude Code v2.1.257 以降が必要です |

719| `toggleMcpServer(serverName, enabled)` | `reconnectMcpServer()` と同じ名前解決で MCP サーバーを名前で有効または無効にします。無効にするとサーバーが切断されます |719| `toggleMcpServer(serverName, enabled)` | `reconnectMcpServer()` と同じ名前解決で MCP サーバーを名前で有効または無効にします。stdio、SSE、または HTTP サーバーを無効にするとそれを切断し、ツールを削除します。セッション中に `setMcpServers()` で追加したサーバーの場合、ツール削除には Claude Code v2.1.285 以降が必要です |

720| `setMcpServers(servers)` | このセッションの MCP サーバーセットを動的に置き換えます。追加および削除されたサーバーと任意のエラーを指定する [`McpSetServersResult`](#mcpsetserversresult) で解決します |720| `setMcpServers(servers)` | このセッションの MCP サーバーセットを動的に置き換えます。追加および削除されたサーバーと任意のエラーを名前付けする [`McpSetServersResult`](#mcpsetserversresult)で解決します |

721| `readMcpResource(serverName, uri)` | *アルファ。* 接続された MCP サーバーから 1 つの MCP Apps `ui://` リソースを読み取り、アプリケーションがツールのウィジェットをレンダリングできるようにします。[`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) で解決します。TypeScript Agent SDK v0.3.280 以降が必要です |721| `readMcpResource(serverName, uri)` | *アルファ。* 接続された MCP サーバーから 1 つの MCP Apps `ui://` リソースを読み取り、アプリケーションがツールのウィジェットをレンダリングできるようにします。[`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse)で解決します。TypeScript Agent SDK v0.3.280 以降が必要です |

722| `streamInput(stream)` | マルチターン会話のためにクエリにメッセージをストリーミングします |722| `streamInput(stream)` | マルチターン会話のためにクエリにメッセージをストリーミングします |

723| `stopTask(taskId)` | ID でバックグラウンドタスクを実行中に停止します |723| `stopTask(taskId)` | ID でバックグラウンドタスクを実行中に停止します |

724| `close()` | クエリを閉じて基盤となるプロセスを終了します。クエリを強制的に終了し、すべてのリソースをクリーンアップします |724| `close()` | クエリを閉じ、基盤となるプロセスを終了します。クエリを強制的に終了し、すべてのリソースをクリーンアップします |

725 725 

726<h4 id="applyflagsettings">726<h4 id="applyflagsettings">

727 `applyFlagSettings()`727 `applyFlagSettings()`

728</h4>728</h4>

729 729 

730クエリを再開することなく実行中のセッションで [settings](/docs/ja/settings) を変更します。信頼できない入力をエージェントが読み取った後に権限を厳しくするなど、専用セッターがない設定がミッドセッション中に変更される必要がある場合に使用します。`setModel()` と `setPermissionMode()` はこれら 2 つのキーの専用セッターです。`applyFlagSettings()` は任意のサブセット設定キーを受け入れる一般的な形式で、ここで `model` を渡すことは `setModel()` と同じように動作します。730実行中のセッションで [設定](/docs/ja/settings)を変更し、クエリを再開しません。セッション中に変更が必要な専用セッターがない設定(信頼できない入力を読み取った後に `permissions` を厳しくするなど)を使用する場合に使用します。`setModel()` と `setPermissionMode()` はこれら 2 つのキーの専用セッターです。`applyFlagSettings()` は `model` をここに渡すと `setModel()` と同じように動作する一般的な形式です。

731 731 

732一部のキーのみがミッドセッション中に有効になります:732一部のキーのみがセッション中に有効になります:

733 733 

734* **次のターンで適用**: `effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。`agent` を切り替えると、そのエージェントのモデルオーバーライドとフックも次のターンで適用されます。そのシステムプロンプトは次のターンで、または [記録されたシステムプロンプトを再利用](/docs/ja/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session) するセッションではセッションがコンパクト化されると適用されます。734* **次のターンで適用**: `effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。`agent` を切り替えると、そのエージェントのモデルオーバーライドとフックも次のターンで適用されます。そのシステムプロンプトは次のターンで、または [記録されたシステムプロンプトを再利用](/docs/ja/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session)するセッションではセッションがコンパクト化されると適用されます。

735* **現在のターン中に適用**: `model`。Claude がターンで作業している間に `model` を切り替えると、Claude が既に生成しているレスポンスは古いモデルで完了し、ターンの残り(Claude Code がモデルに対して行う次の呼び出しから開始)は新しいモデルを使用します。サブエージェントは独自のモデルを保持します。v2.1.212 より前では、ミッドターンスイッチは次のターンを待機していました。735* **現在のターン中に適用**: `model`。Claude がターンで作業している間に `model` を切り替えると、Claude が既に生成しているレスポンスは古いモデルで完了し、ターンの残り(Claude Code がモデルに対して行う次の呼び出しから開始)は新しいモデルを使用します。サブエージェントは独自のモデルを保持します。v2.1.212 より前では、セッション中の切り替えは次のターンを待ちました。

736* **ミッドセッション中に効果なし**: システムプロンプトオプション。これらはスタートアップで 1 回解決されるため、実行中のセッションは呼び出しが成功しても元の値を保持します。それらを変更するには、新しいセッションを開始してください。736* **セッション中に効果なし**: システムプロンプトオプション。これらはスタートアップで 1 回解決されるため、実行中のセッションは呼び出しが成功しても元の値を保持します。それらを変更するには、新しいセッションを開始してください。

737 737 

738`effortLevel` は [努力レベル](/docs/ja/model-config#adjust-effort-level) 名を受け入れます。また、`"ultracode"` も受け入れます。これは [ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode) を使用した `xhigh` 努力をリクエストします。`applyFlagSettings()` は `effortLevel` をその値なしで宣言するため、TypeScript で同等の `{ ultracode: true, effortLevel: "xhigh" }` を渡すか、[`ultracode`](/docs/ja/settings-reference#ultracode) キーのみを渡して、セッションの現在の努力レベルで ultracode をオンにしてください。`ultracode` 値には Claude Code v2.1.203 以降が必要で、設定ファイルの `effortLevel` キーではなく `applyFlagSettings()` によってのみ受け入れられます。v2.1.284 より前では、`ultracode` キーのみもレベルを `xhigh` に設定していました。738`effortLevel` は [努力レベル](/docs/ja/model-config#adjust-effort-level)名を受け入れます。また、`"ultracode"` も受け入れます。これは [ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode)をオンにして `xhigh` 努力をリクエストします。`applyFlagSettings()` はその値なしで `effortLevel` を宣言するため、TypeScript では同じ結果に対して `{ ultracode: true, effortLevel: "xhigh" }` を渡すか、[`ultracode`](/docs/ja/settings-reference#ultracode)キーのみを渡して ultracode をセッションの現在の努力レベルでオンにします。`ultracode` 値には Claude Code v2.1.203 以降が必要で、設定ファイルの `effortLevel` キーではなく `applyFlagSettings()` によってのみ受け入れられます。v2.1.284 より前では、`ultracode` キーのみもレベルを `xhigh` に設定しました。

739 739 

740値はフラグ設定層に書き込まれ、`query()` の `settings` オプションがスタートアップで設定したものにマージされます。これは [ページ上の優先順位セクション](#settings-precedence) がプログラムオプションと呼ぶのと同じ層です。740値はフラグ設定層に書き込まれ、`query()` の `settings` オプションがスタートアップで設定したものにマージされます。これは [ページ上の優先順位セクション](#settings-precedence)がプログラムオプションと呼ぶのと同じ層です。

741 741 

742連続した呼び出しは最上位キーを浅くマージします。`{ permissions: {...} }` を含む 2 番目の呼び出しは、前の呼び出しから `permissions` オブジェクト全体を置き換え、深くマージするのではなく置き換えます。742連続した呼び出しは最上位キーを浅くマージします。`{ permissions: {...} }` を含む 2 番目の呼び出しは、前の呼び出しから `permissions` オブジェクト全体を置き換えるのではなく、深くマージします。

743 743 

744`applyFlagSettings()` で設定したキーをクリアするには、そのキーに `null` を渡します。ほとんどのキーは、最初に `query()` の `settings` オプションで設定された値にフォールバックし、次に低優先度ソースにフォールバックします。クリアされた `model` は、設定ファイルが `model` を設定している場合でも、[Claude Code のデフォルトモデル](/docs/ja/model-config) にリセットされます。`undefined` を渡すと JSON シリアル化がそれをドロップするため効果がありません。744`applyFlagSettings()` で設定したキーをクリアするには、そのキーに `null` を渡します。ほとんどのキーは、最初に `query()` の `settings` オプションで設定された値にフォールバックし、次に低優先度のソースにフォールバックします。クリアされた `model` は、設定ファイルが `model` を設定している場合でも、[Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットされます。`undefined` を渡すと JSON シリアル化がそれをドロップするため効果がありません。

745 745 

746`model` 以外の 3 つのキーはフォールバックする代わりにセッション状態をリセットします:746`model` 以外の 3 つのキーはフォールバックする代わりにセッション状態をリセットします:

747 747 

748* `effortLevel: null` は、`query()` の `effort` オプションまたは設定ファイルの `effortLevel` ではなく、セッションをモデルのデフォルト努力レベルに戻します。748* `effortLevel: null` は、`query()` の `effort` オプションまたは設定ファイルの `effortLevel` ではなく、セッションをモデルのデフォルト努力レベルに戻します。

749* `agent: null` は、`query()` の `agent` オプションまたは設定ファイルの `agent` を復元するのではなく、次のターンからメインスレッドをエージェントなしで実行します。クリアされたエージェントが独自のモデルを適用していた場合、セッションはスタートアップで解決したモデルに戻ります。749* `agent: null` は、`query()` の `agent` オプションまたは設定ファイルの `agent` を復元するのではなく、次のターンから専用エージェントなしでメインスレッドを実行します。クリアされたエージェントが独自のモデルを適用していた場合、セッションはスタートアップで解決したモデルに戻ります。

750* `ultracode: null` は `false` と同様に ultracode をオフにし、設定ファイルから `ultracode` 値を復元するのではなく、オフにします。セッションは現在の努力レベルを保持するため、同じ呼び出しで `effortLevel` を渡して変更してください。750* `ultracode: null` は `false` と同様に ultracode をオフにし、設定ファイルから `ultracode` 値を復元するのではなく。セッションは現在の努力レベルを保持するため、同じ呼び出しで `effortLevel` を渡して変更します。

751 751 

752ストリーミング入力モードでのみ利用可能で、`setModel()` と `setPermissionMode()` と同じ制約があります。752ストリーミング入力モードでのみ利用可能で、`setModel()` と `setPermissionMode()` と同じ制約があります。

753 753 

754以下の例は、ミッドセッション中にアクティブなモデルを切り替え、その後オーバーライドをクリアして、モデルを [Claude Code のデフォルトモデル](/docs/ja/model-config) にリセットします。754以下の例は、セッション中にアクティブなモデルを切り替え、その後オーバーライドをクリアして、モデルを [Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットします。

755 755 

756```typescript theme={null}756```typescript theme={null}

757import { query } from "@anthropic-ai/claude-agent-sdk";757import { query } from "@anthropic-ai/claude-agent-sdk";

758 758 

759const q = query({ prompt: messageStream });759const q = query({ prompt: messageStream });

760 760 

761// セッションの残りの部分のモデルをオーバーライドします761// セッションの残りの期間、モデルをオーバーライドします

762await q.applyFlagSettings({ model: "claude-opus-4-6" });762await q.applyFlagSettings({ model: "claude-opus-4-6" });

763 763 

764// 後で: オーバーライドをクリアします。モデルは Claude Code のデフォルトにリセットされます764// 後で: オーバーライドをクリアします。モデルは Claude Code のデフォルトにリセットされます


773 `updateSettings()`773 `updateSettings()`

774</h4>774</h4>

775 775 

776設定ファイルをディスクに 1 つのホワイトリスト登録キーを書き込み、値が後のセッションで永続化されるようにします。各ソースは 1 つのキーを受け入れ、文字列値を持ちます:776設定ファイルをディスクに書き込み、値が後のセッションで永続化されるようにします。各ソースは 1 つのキーを受け入れ、文字列値を持ちます:

777 777 

778* **`"localSettings"`**: `outputStyle` を受け入れ、プロジェクトのローカル設定ファイル `.claude/settings.local.json` にマージします。新しいスタイルはセッションの次のリクエストで有効になります。778* **`"localSettings"`**: `outputStyle` を受け入れ、プロジェクトのローカル設定ファイル `.claude/settings.local.json` にマージします。新しいスタイルはセッションの次のリクエストで有効になります。

779* **`"userSettings"`**: `effortLevel` を受け入れ、セッションの現在のモデルのデフォルト [努力レベル](/docs/ja/model-config#adjust-effort-level) としてユーザー設定ファイルの [`modelSettings`](/docs/ja/settings-reference#modelsettings) に保存します。`max` を渡すと、`max` はセッションのみであるため何も書き込みません。実行中のセッションはいずれにせよ現在の努力レベルを保持するため、それも変更したい場合は [`applyFlagSettings()`](#applyflagsettings) を呼び出してください。このソースには TypeScript SDK v0.3.277 以降が必要で、Claude Code v2.1.277 をバンドルしています。779* **`"userSettings"`**: `effortLevel` を受け入れ、セッションの現在のモデルのデフォルト [努力レベル](/docs/ja/model-config#adjust-effort-level)としてユーザー設定ファイルの [`modelSettings`](/docs/ja/settings-reference#modelsettings) の下に保存します。`max` を渡すと、`max` はセッションのみであるため何も書き込みません。実行中のセッションはいずれにせよ現在の努力レベルを保持するため、それも変更する場合は [`applyFlagSettings()`](#applyflagsettings)を呼び出してください。このソースには TypeScript SDK v0.3.277 以降が必要で、Claude Code v2.1.277 をバンドルしています。

780 780 

781リクエストが他のキーを含む場合、セッションがリモートトランスポートで実行される場合、およびセッションの [`settingSources`](#options) が指定したソースを除外する場合、呼び出しは拒否されます。キーの削除はサポートされていません。781呼び出しは、リクエストが他のキーを含む場合、セッションがリモートトランスポートで実行される場合、およびセッションの [`settingSources`](#options)が名前を付けたソースを除外する場合に拒否されます。キーの削除はサポートされていません。

782 782 

783<h3 id="warmquery">783<h3 id="warmquery">

784 `WarmQuery`784 `WarmQuery`

785</h3>785</h3>

786 786 

787[`startup()`](#startup) によって返されるハンドル。サブプロセスは既にスポーンされ初期化されているため、このハンドルで `query()` を呼び出すと、スタートアップレイテンシーなしで準備完了プロセスにプロンプトを直接書き込みます。787[`startup()`](#startup)によって返されるハンドル。サブプロセスは既にスポーンおよび初期化されているため、このハンドルで `query()` を呼び出すと、スタートアップレイテンシーなしで準備完了プロセスにプロンプトを直接書き込みます。

788 788 

789```typescript theme={null}789```typescript theme={null}

790interface WarmQuery extends AsyncDisposable {790interface WarmQuery extends AsyncDisposable {


799 799 

800| メソッド | 説明 |800| メソッド | 説明 |

801| :- | :- |801| :- | :- |

802| `query(prompt)` | 事前ウォーミングされたサブプロセスにプロンプトを送信し、[`Query`](#query-object) を返します。`WarmQuery` ごとに 1 回のみ呼び出すことができます |802| `query(prompt)` | 事前ウォーミングされたサブプロセスにプロンプトを送信し、[`Query`](#query-object)を返します。`WarmQuery` ごとに 1 回のみ呼び出すことができます |

803| `close()` | プロンプトを送信せずにサブプロセスを閉じます。不要になった warm query を破棄するために使用します |803| `close()` | プロンプトを送信せずにサブプロセスを閉じます。不要になった warm query を破棄するために使用します |

804 804 

805`WarmQuery` は `AsyncDisposable` を実装するため、自動クリーンアップのために `await using` で使用できます。805`WarmQuery` は `AsyncDisposable` を実装するため、自動クリーンアップのために `await using` で使用できます。


808 `SpareProcess`808 `SpareProcess`

809</h3>809</h3>

810 810 

811*アルファ。* [`prewarm()`](#prewarm) によって返されるハンドル: セッションにまだバインドされていない開始された Claude Code プロセスで、1 回クレームできます。TypeScript Agent SDK v0.3.282 以降が必要です。811*アルファ。* [`prewarm()`](#prewarm)によって返されるハンドル: セッションにまだバインドされていない開始された Claude Code プロセスで、1 回クレームできます。TypeScript Agent SDK v0.3.282 以降が必要です。

812 812 

813```typescript theme={null}813```typescript theme={null}

814interface SpareProcess extends AsyncDisposable {814interface SpareProcess extends AsyncDisposable {


828 828 

829| メンバー | 説明 |829| メンバー | 説明 |

830| :- | :- |830| :- | :- |

831| `claim({ prompt, options })` | スペアを `options.cwd` のセッションにバインドし、最初のメッセージを送信します。`query()` と同様に [`Query`](#query-object) を同期的に返します。1 回のみ呼び出すことができます |831| `claim({ prompt, options })` | スペアを `options.cwd` のセッションにバインドし、最初のメッセージを送信します。`query()` と同様に [`Query`](#query-object)を同期的に返します。1 回のみ呼び出すことができます |

832| `claimed` | Claude Code がクレームを受け入れると、セッションのワーキングディレクトリと ID で解決します。Claude Code がクレームを拒否する場合、プロセスが終了またはクローズされた場合、および `option_not_applied` で始まるメッセージを含む場合に拒否します。セッションは要求した `model` または `maxThinkingTokens` なしで実行されています |832| `claimed` | Claude Code がクレームを受け入れると、セッションのワーキングディレクトリと ID で解決します。Claude Code がクレームを拒否する場合、プロセスが終了または最初に閉じられた場合、および `option_not_applied` で始まるメッセージを含む場合に拒否します。要求した `model` または `maxThinkingTokens` なしでセッションが実行されている場合 |

833| `exited` | プロセスが終了すると、クレームされたかどうかに関わらず解決します。クレーム前に終了するスペアを置き換えます |833| `exited` | プロセスが終了すると解決します。クレーム前に終了するスペアを置き換えます |

834| `close()` | プロセスを終了します。クレーム前にこれはスペアを破棄し、`claimed` を拒否します |834| `close()` | プロセスを終了します。クレーム前にこれはスペアを破棄し、`claimed` を拒否します |

835 835 

836`options.cwd` は必須です。クレームは `additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` のフラグ設定オーバーレイ、`appendSystemPrompt`、`title`、`agents`、および `env` のセッションごとのトークンも設定できます。836`options.cwd` は必須です。クレームは `additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` のフラグ設定オーバーレイ、`appendSystemPrompt`、`title`、`agents`、および `env` のセッションごとのトークンも設定できます。

837 837 

838Claude Code はクレームを拒否できます。例えば、存在しないフォルダまたはプロジェクト設定が `env`、`agent`、または `model` を設定するフォルダの場合です。`claimed` が `option_not_applied` で始まるメッセージで拒否する場合、セッションは要求した `model` または `maxThinkingTokens` なしで実行されています。他の拒否の場合、プロンプトは実行されていないため、代わりに `query()` でセッションを開始してください。838Claude Code はクレームを拒否できます。例えば、存在しないフォルダまたはプロジェクト設定が `env`、`agent`、または `model` を設定するフォルダの場合。`claimed` が `option_not_applied` で始まるメッセージで拒否する場合、セッションは要求した `model` または `maxThinkingTokens` なしで実行されています。他の拒否の場合、プロンプトは実行されていないため、代わりに `query()` でセッションを開始してください。

839 839 

840<h3 id="sdkcontrolinitializeresponse">840<h3 id="sdkcontrolinitializeresponse">

841 `SDKControlInitializeResponse`841 `SDKControlInitializeResponse`


857};857};

858```858```

859 859 

860`hooks_applied` は Claude Code が `initialize` リクエストが含む `hooks` を登録したかどうかを報告します。SDK はセッション開始時にそのリクエストを 1 回送信し、各 [`reinitialize()`](#query-object) 呼び出しで再度送信します。フィールドには Agent SDK v0.3.238 以降が必要です。860`hooks_applied` は Claude Code が `initialize` リクエストが実行した `hooks` を登録したかどうかを報告します。SDK はセッションが開始されるときにそのリクエストを 1 回送信し、各 [`reinitialize()`](#query-object)呼び出しで再度送信します。フィールドには Agent SDK v0.3.238 以降が必要です。

861 861 

862Claude Code はリクエストがフックを含まない場合、フィールドを省略します。リクエストがフックを含む場合、値はリクエストがセッションの最初の初期化であるかどうか、および繰り返されるものの場合、それがセッションに到達した方法に依存します:862Claude Code はリクエストがフックを実行しなかった場合、フィールドを省略します。リクエストがフックを実行した場合、値はリクエストがセッションの最初の初期化であるかどうか、および繰り返されるものの場合、セッションに到達した方法に依存します:

863 863 

864* `true`: Claude Code はフックを登録しました。セッションの最初の初期化はこの値を返します。CLI の stdin を通じて送信された繰り返し初期化も `true` を返します。その場合、新しいリクエストのフックは以前に登録されたフックを置き換えます。864* `true`: Claude Code はフックを登録しました。セッションの最初の初期化はこの値を返します。CLI の stdin を通じて送信された繰り返し初期化もこの値を返します。その場合、新しいリクエストのフックは以前に登録されたフックを置き換えます。

865* `false`: Claude Code はフックを無視しました。リモートセッションに送信された繰り返し初期化はこの値を返すため、セッションに参加する 2 番目のクライアントは最初のクライアントが登録したフックを置き換えることはできません。865* `false`: Claude Code はフックを無視しました。リモートセッションに送信された繰り返し初期化はこの値を返すため、セッションに参加する 2 番目のクライアントは最初のクライアントが登録したフックを置き換えることはできません。

866 866 

867Agent SDK v0.3.238 より前では、レスポンスはフィールドを含まず、Claude Code はすべての繰り返し初期化で `hooks` を無視していました。867Agent SDK v0.3.238 より前では、レスポンスはフィールドを実行しなかったため、Claude Code はすべての繰り返し初期化でフックを無視しました。

868 868 

869レスポンスは常に `fast_mode_state` を報告し、何かが [fast mode](/docs/ja/fast-mode) をブロックする場合、`fast_mode_disabled_reason` はブロックされた状態を説明できるように理由コードを含めます。両方の動作には Claude Code v2.1.219 以降が必要です。v2.1.219 より前では、fast mode が利用できない場合、レスポンスは `fast_mode_state` を省略し、理由を含むことはありませんでした。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage) を参照してください。869レスポンスは常に `fast_mode_state` を報告し、何かが [fast mode](/docs/ja/fast-mode)をブロックする場合、`fast_mode_disabled_reason` はブロックされた状態を説明できるように理由コードを含みます。両方の動作には Claude Code v2.1.219 以降が必要です。v2.1.219 より前では、fast mode が利用可能でない場合、レスポンスは `fast_mode_state` を省略し、理由を実行しませんでした。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage)を参照してください。

870 870 

871成功した `initialize` の制御レスポンスラッパーは、`pending_permission_requests` 配列も含みます。フィールドは `SDKControlInitializeResponse` ペイロード内ではなく、レスポンスラッパー自体にあります。各エントリは、セッションが実行中に権限リクエストのためにストリーミングするのと同じ `{ type: "control_request", request_id, request }` 形状を持つ完全な `control_request` メッセージです。871成功した `initialize` の制御レスポンスラッパーは `pending_permission_requests` 配列も実行します。フィールドは上記の `SDKControlInitializeResponse` ペイロード内ではなく、レスポンスラッパー自体にあります。各エントリは、セッションが実行中にストリーミングする権限リクエストと同じ `{ type: "control_request", request_id, request }` 形状を持つ完全な `control_request` メッセージです。

872 872 

873配列は、この Claude Code プロセスが発行し、まだ解決していない権限リクエストをリストします。SDK はあなたのために配列を読み取り、各エントリを [`canUseTool`](#canusetool) コールバックにディスパッチします。これは、トランスポートギャップ後に [`reinitialize()`](#query-object) がトリガーするのと同じ再配信です。繰り返されたリクエスト ID をべき等に処理してください。エントリは、接続が切断される前にコールバックが既に受け取ったリクエストを繰り返すことができるためです。873配列は、この Claude Code プロセスが発行し、まだ解決していない権限リクエストをリストします。SDK はあなたのために配列を読み取り、各エントリを [`canUseTool`](#canusetool)コールバックにディスパッチします。これは [`reinitialize()`](#query-object)がトランスポートギャップ後にトリガーするのと同じ再配信です。繰り返されたリクエスト ID をべき等に処理してください。エントリは、接続が切断される前にコールバックが既に受け取ったリクエストを繰り返すことができるためです。

874 874 

875配列は成功した `initialize` レスポンスで常に存在し、このプロセスに未解決の権限リクエストがない場合は空です。Claude Code v2.1.268 以降が必要です。以前のバージョンはフィールドを省略できるため、ワイヤープロトコルを自分で解析する場合、欠落しているフィールドを古い CLI として扱い、何も保留中でないという証拠ではなく扱ってください。875配列は成功した `initialize` レスポンスで常に存在し、このプロセスに未解決の権限リクエストがない場合は空です。Claude Code v2.1.268 以降が必要です。以前のバージョンはフィールドを省略できるため、ワイヤプロトコルを自分で解析する場合、欠落しているフィールドを古い CLI として扱い、何も保留中でないという証拠ではなく扱ってください。

876 876 

877<h3 id="sdkcontrolinterruptresponse">877<h3 id="sdkcontrolinterruptresponse">

878 `SDKControlInterruptResponse`878 `SDKControlInterruptResponse`

879</h3>879</h3>

880 880 

881割り込み受信: [`interrupt()`](#query-object) が [`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_receipt_v1` 機能をアドバタイズする CLI で解決する値。Claude Code v2.1.205 以降が必要です。以前の CLI は空の成功ペイロードで割り込みに応答するため、`interrupt()` は `undefined` に解決します。881中断レシート: [`interrupt()`](#query-object)が [`SDKSystemMessage.capabilities`](#sdksystemmessage)で `interrupt_receipt_v1` 機能をアドバタイズする CLI で解決する値。Claude Code v2.1.205 以降が必要です。以前の CLI は空の成功ペイロードで中断に応答するため、`interrupt()` は `undefined` で解決します。

882 882 

883```typescript theme={null}883```typescript theme={null}

884type SDKControlInterruptResponse = {884type SDKControlInterruptResponse = {


887};887};

888```888```

889 889 

890`still_queued` は割り込みが到着したときに保留中だったユーザーメッセージの UUID をリストします: キューに残っているメッセージ、および Claude Code が既に次のターンのキューから取り出したメッセージ。セッションの最初のターンが開始されると、Claude Code は割り込みがない限り、リストされたメッセージを処理します。最初のターンが開始される前に割り込みを行う場合、Claude Code はそのターンが開始されるとすぐに中止し、そのターンのリストされたメッセージはレスポンスを取得しません。890`still_queued` は、中断が到着したときに保留中だったユーザーメッセージの UUID をリストします。キューに入ったままのメッセージ、および Claude Code が既に次のターンのキューから取り出したメッセージ。セッションの最初のターンが開始されると、Claude Code は中断しない限り、リストされたメッセージを処理します。最初のターンが開始される前に中断する場合、Claude Code はそのターンが開始されるとすぐに中止し、そのターンのリストされたメッセージはレスポンスを取得しません。

891 891 

892受信を使用して、何かを再送信するかどうかを決定します。リストされたメッセージをキャンセルしない場合、レスポンスを取得するかどうかに関わらず会話に入るため、再送信するとそれを Claude に 2 回配信します。892レシートを使用して、何を再送信するかを決定します。リストされたメッセージで キャンセルしないものは、レスポンスを取得するかどうかに関わらず会話に入るため、それを再送信すると Claude に 2 回配信されます。

893 893 

894これらの注意事項でリストを解釈します:894これらの注意事項でリストを解釈します:

895 895 

896* UUID でエンキューされたメッセージのみが表示されます。空の配列は他に何も実行されないことを意味しません。896* UUID で登録されたメッセージのみが表示されます。空の配列は他に何も実行されないことを意味しません。

897* メインスレッドメッセージのみがリストされます。サブエージェントに宛てられたメッセージはスコープ外です。897* メインスレッドメッセージのみがリストされます。サブエージェントに対処されたメッセージはスコープ外です。

898* リストには、[スケジュール済みタスク](/docs/ja/scheduled-tasks) トリガーなど、クライアントが送信しなかった UUID を含めることができます。エラーとして扱うのではなく、認識しない UUID を無視してください。898* リストには、[スケジュール済みタスク](/docs/ja/scheduled-tasks)トリガーなど、クライアントが送信しなかった UUID が含まれる場合があります。認識しない UUID を無視し、エラーとして扱わないでください。

899 899 

900制御プロトコルを `interrupt()` ではなく直接駆動するクライアントは、`interrupt` 制御リクエストで `cancel_queued: true` を設定できます。Claude Code v2.1.219 以降は [`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_cancel_queued_v1` 機能でサポートをアドバタイズします。古い CLI はフィールドを無視し、キューに入ったメッセージを通常どおり実行したままにします。そのような割り込みは、`still_queued` の下にリストされるすべてのメッセージをキャンセルします: 代わりに `cancelled` の下にリストされ、`still_queued` は空で、それらのどれも実行されません。900CLI の制御プロトコルを `interrupt()` ではなく直接駆動するクライアントは、`interrupt` 制御リクエストで `cancel_queued: true` を設定できます。Claude Code v2.1.219 以降は [`SDKSystemMessage.capabilities`](#sdksystemmessage)で `interrupt_cancel_queued_v1` 機能でサポートをアドバタイズします。以前の CLI はフィールドを無視し、キューに入ったメッセージを通常どおり実行したままにします。そのような中断はリストされるはずだったすべてのメッセージをキャンセルします: レシートはそれらを `cancelled` の下にリストし、`still_queued` は空で、それらのどれも実行されません。

901 901 

902`cancelled` リストは `still_queued` と同じ注意事項を含みます。`interrupt()` メソッドは `cancel_queued` を送信しないため、それが解決する受信は `cancelled` を含みません。902`cancelled` リストは `still_queued` と同じ注意事項を実行します。`interrupt()` メソッドは `cancel_queued` を送信しないため、それが解決するレシートは `cancelled` を実行しません。

903 903 

904受信は割り込みが処理される瞬間のスナップショットで、クリーン割り込みで中断されたターンの [`SDKResultMessage`](#sdkresultmessage) の前に到着します。その結果の後のキューを検査するのではなく、受信を読み取ってください: ループは次のキューに入ったターンをすぐに開始するため、結果の後に検査するキューは既に変更されています。904レシートは中断が処理される瞬間に撮られたスナップショットで、クリーンな中断では中断されたターンの [`SDKResultMessage`](#sdkresultmessage)の前に到着します。そのレシートの後のレシートを読み取るのではなく、キューを検査してください: ループは次のキューに入ったターンをすぐに開始するため、レシートの後に検査するキューは既に変更されています。

905 905 

906<h3 id="sdkcontrolgetcontextusageresponse">906<h3 id="sdkcontrolgetcontextusageresponse">

907 `SDKControlGetContextUsageResponse`907 `SDKControlGetContextUsageResponse`

908</h3>908</h3>

909 909 

910[`getContextUsage()`](#query-object) の戻り値の型。デフォルト `detail` では、これは対話型セッションで `/context` コマンドが Claude Code がレンダリングするのと同じペイロードで、トークンカウントと共に `/context` 使用グリッドを描画するために Claude Code が使用する `color` および `gridRows` などの表示フィールドを含みます。910[`getContextUsage()`](#query-object)の戻り値の型。デフォルト `detail` では、これは Claude Code が対話型セッションで `/context` コマンドに対してレンダリングするのと同じペイロードで、トークンカウントと共に `color` および `gridRows` などの表示フィールドを実行します。Claude Code は `/context` 使用グリッドを描画するために使用します。

911 911 

912メソッドのオプション `detail` 引数は、Claude Code が各カテゴリをカウントする方法を選択します。デフォルト `'full'` では、Claude Code はトークンカウント API リクエストで各カテゴリをカウントします。最後のレスポンスの使用状況とローカル推定から答えを取得するには `{ detail: 'summary' }` を渡します。トークンカウントリクエストは送信されず、カテゴリごとの数値は概算です。`detail` 引数には Agent SDK v0.3.257 以降が必要です。912メソッドのオプション `detail` 引数は、Claude Code が各カテゴリをカウントする方法を選択します。`detail` 引数には Agent SDK v0.3.257 以降が必要です。

913 913 

914メソッドの代わりに `/context` をプロンプトとして送信する場合、Claude Code は結果を配信するアシスタントメッセージの `context_usage` フィールドに [`SDKContextUsage`](#sdkcontextusage) ペイロードを添付します。そのフィールドには Agent SDK v0.3.232 以降が必要です。914* **`'full'`**: デフォルト。Claude Code は [トークンカウント](https://platform.claude.com/docs/en/build-with-claude/token-counting) API リクエストで各カテゴリをカウントします。これらのリクエストはメッセージストリームに表示されないため、ストリームを読み取るコスト追跡はそれらを表示しません。Anthropic API では、トークンカウントは請求されません。

915* **`'summary'`**: `{ detail: 'summary' }` を渡して、最後のレスポンスの使用状況とローカル推定から答えを取得します。トークンカウントリクエストは送信されず、カテゴリごとの数値は概算です。

916 

917代わりにメソッドを呼び出す場合、`/context` をプロンプトとして送信すると、Claude Code は結果を配信するアシスタントメッセージの `context_usage` フィールドに [`SDKContextUsage`](#sdkcontextusage)ペイロードを添付します。そのフィールドには Agent SDK v0.3.232 以降が必要です。

915 918 

916```typescript theme={null}919```typescript theme={null}

917type SDKControlGetContextUsageResponse = {920type SDKControlGetContextUsageResponse = {


1008};1011};

1009```1012```

1010 1013 

1011トークン帰属をコレクションフィールドから読み取ります:1014トークン属性をコレクションフィールドから読み取ります:

1012 1015 

1013* `categories` はカテゴリごとの合計を保持します。各エントリの `kind` は [`SDKContextUsageCategory`](#sdkcontextusagecategory) と同じ値でカテゴリを分類します。表示 `name` ではなく `kind` でカテゴリを分類してください。フィールドには Agent SDK v0.3.268 以降が必要です。1016* `categories` はカテゴリごとの合計を保持します。各エントリの `kind` は [`SDKContextUsageCategory`](#sdkcontextusagecategory)と同じ値で行を分類します。表示 `name` ではなく、それで行を分類します。フィールドには Agent SDK v0.3.268 以降が必要です。

1014* `mcpTools` と `agents` はトークンを個別の MCP ツールとサブエージェントに帰属させます。1017* `mcpTools` および `agents` は個々の MCP ツールおよびサブエージェントにトークンを属性付けします。

1015* `memoryFiles` は各読み込まれたメモリファイルとそのコストをリストします。1018* `memoryFiles` は読み込まれた各メモリファイルをそのコストと共にリストします。

1016* `skills.skillFrontmatter` は、含まれる各スキルにスキルリストのトークンを帰属させます。スキルごとの数値は、Claude Code が実際に送信するスキルリストエントリを測定します。これはスキルの完全なフロントマターより短くなる可能性があります。`skills.totalSkills` を `skills.includedSkills` と比較して、検出されたすべてのスキルがリストに含まれているかどうかを確認します。1019* `skills.skillFrontmatter` は各含まれるスキルにスキルリストのトークンを属性付けします。スキルごとの数値は、Claude Code が実際に送信するスキルのリストエントリを測定します。これはスキルの完全なフロントマターより短くなる可能性があります。`skills.totalSkills` を `skills.includedSkills` と比較して、すべての検出されたスキルがリストに含まれているかどうかを確認します。

1017 1020 

1018`totalTokens` はセッションの現在のコンテキスト使用状況で、`maxTokens` はその使用状況が測定されるウィンドウです。そのウィンドウはモデルのコンテキストウィンドウ、または 1 つが適用される場合は低い自動コンパクション ウィンドウです。`rawMaxTokens` は `maxTokens` と同じ値を含み、`percentage` は `totalTokens` をそのウィンドウのパーセンテージとして丸めたものです。1021`totalTokens` はセッションの現在のコンテキスト使用状況で、`maxTokens` はその使用状況が測定されるウィンドウです。そのウィンドウはモデルのコンテキストウィンドウ、または自動コンパクション ウィンドウが適用される場合はより低いウィンドウです。`rawMaxTokens` は `maxTokens` と同じ値を実行し、`percentage` は `totalTokens` をそのウィンドウのパーセンテージとして丸めたものです。`apiUsage` は、セッションの実行合計ではなく、最新の API レスポンスからの使用状況を保持します。

1019 1022 

1020Claude Code は、オプション `deferredBuiltinTools`、`systemTools`、および `systemPromptSections` 診断を設定しないままにするため、型が宣言していても存在しないことを期待してください。1023Claude Code はオプション `deferredBuiltinTools`、`systemTools`、および `systemPromptSections` 診断を設定しないため、型が宣言していても存在しないことを期待してください。

1021 1024 

1022<h3 id="sdkcontrolreadfileresponse">1025<h3 id="sdkcontrolreadfileresponse">

1023 `SDKControlReadFileResponse`1026 `SDKControlReadFileResponse`

1024</h3>1027</h3>

1025 1028 

1026[`readFile()`](#query-object) の戻り値の型。1029[`readFile()`](#query-object)の戻り値の型。

1027 1030 

1028```typescript theme={null}1031```typescript theme={null}

1029type SDKControlReadFileResponse = {1032type SDKControlReadFileResponse = {


1034};1037};

1035```1038```

1036 1039 

1037`contents` はファイルテキストを保持するか、`encoding: 'base64'` をリクエストした場合は base64 データを保持します。レスポンスの `encoding` フィールドはその場合 `'base64'` に設定されます。`absPath` は解決された絶対パスです。`truncated` は、ファイルが `maxBytes` キャップより長く、コンテンツがその制限で切り詰められた場合に設定されます。1040`contents` はファイルテキスト、または `encoding: 'base64'` をリクエストした場合は base64 データを保持します。レスポンスの `encoding` フィールドはその場合 `'base64'` に設定されます。`absPath` は解決された絶対パスです。`truncated` は、ファイルが `maxBytes` キャップより長く、コンテンツがその制限で切り詰められた場合に設定されます。

1038 1041 

1039<h4 id="what-readfile-can-read">1042<h4 id="what-readfile-can-read">

1040 `readFile()` が読み取れるもの1043 `readFile()` が読み取れるもの


1042 1045 

1043`readFile()` は Read ツールより狭いファイルセットを提供します:1046`readFile()` は Read ツールより狭いファイルセットを提供します:

1044 1047 

1045* `cwd` および `additionalDirectories` などのセッションのワーキングディレクトリの 1 つ内の通常ファイル1048* `cwd` および `additionalDirectories` などのセッションのワーキングディレクトリ内の通常ファイル

1046* セッションのツール結果などの Claude Code 独自のファイルのいくつか1049* ツール結果などのセッションの Claude Code 独自ファイルのいくつか

1047 1050 

1048Read 拒否および質問ルールは引き続き一致するパスをブロックし、広い Read 許可ルールは `readFile()` にファイルシステムの残りを開きません。他のすべてについて、呼び出しは `null` で解決します。1051Read 拒否および質問ルールは引き続き一致するパスをブロックし、広い Read 許可ルールは `readFile()` に残りのファイルシステムを開きません。他のすべてについて、呼び出しは `null` で解決します。

1049 1052 

1050<h3 id="sdkcontrolreloadpluginsresponse">1053<h3 id="sdkcontrolreloadpluginsresponse">

1051 `SDKControlReloadPluginsResponse`1054 `SDKControlReloadPluginsResponse`

1052</h3>1055</h3>

1053 1056 

1054[`reloadPlugins()`](#query-object) の戻り値の型。1057[`reloadPlugins()`](#query-object)の戻り値の型。

1055 1058 

1056```typescript theme={null}1059```typescript theme={null}

1057type SDKControlReloadPluginsResponse = {1060type SDKControlReloadPluginsResponse = {


1076 1079 

1077コレクションフィールドは呼び出し後のセッションを説明します:1080コレクションフィールドは呼び出し後のセッションを説明します:

1078 1081 

1079* `commands`、`agents`、および `mcpServers`: セッションのコマンド、サブエージェント、MCP サーバーステータス。`supportedCommands()`、`supportedAgents()`、および `mcpServerStatus()` が返すのと同じ形状です。`supportedAgents()` は初期化時にキャプチャされたリストを返し続けるため、再読み込み後のセットについてはここで `agents` を読み取ってください1082* `commands`、`agents`、および `mcpServers`: セッションのコマンド、サブエージェント、および MCP サーバーステータス。`supportedCommands()`、`supportedAgents()`、および `mcpServerStatus()` が返すのと同じ形状。`supportedAgents()` は初期化でキャプチャされたリストを返し続けるため、再読み込み後のセットについてはここで `agents` を読み取ります

1080* `plugins`: 各読み込まれたプラグインとその `name` およびインストール `path`。`version` はプラグインのマニフェストが宣言するものを繰り返し、プラグイン作成者が制御するため、信頼する前に検証してください。マニフェストが宣言しない場合は省略されます1083* `plugins`: 各読み込まれたプラグインとそのインストール `path`。`version` はプラグインのマニフェストが宣言するものを繰り返し、プラグイン作成者が制御するため、信頼する前に検証してください。マニフェストが宣言しない場合は省略されます

1081* `error_count`: プラグイン読み込みからのエラー数1084* `error_count`: プラグイン読み込みからのエラー数

1082 1085 

1083会話のプロンプトキャッシュを無効にするリロードを保持するには、`{ holdOnCacheImpact: true }` を `reloadPlugins()` に渡します。Claude Code は対話型 `/reload-plugins` コマンドが [キャッシュコストについて警告](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin) する前に行うチェックを実行します。オプションには Agent SDK v0.3.268 以降が必要です。v2.1.268 より古い Claude Code 実行可能ファイル(`pathToClaudeCodeExecutable` で指定したものなど)はオプションを無視し、リロードを適用します。1086`reloadPlugins()` に `{ holdOnCacheImpact: true }` を渡して、会話のプロンプトキャッシュを無効にする再読み込みを保持し、適用する代わりに保持します。Claude Code は対話型 `/reload-plugins` コマンドが [キャッシュコストについて警告](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)する前に行うチェックを実行します。オプションには Agent SDK v0.3.268 以降が必要です。`pathToClaudeCodeExecutable` が指す v2.1.268 より前の Claude Code 実行可能ファイルはオプションを無視し、再読み込みを適用します。

1084 1087 

1085オプションを渡すと、`held` を読み取って何が起こったかを確認します:1088オプションを渡すと、`held` を読み取って何が起こったかを学びます:

1086 1089 

1087* `true`: リロードは適用されず、コレクションフィールドはセッションをそのまま説明します。`cache_impact` は適用が何を変更するかを示します。とにかく適用するには、オプションなしで `reloadPlugins()` を再度呼び出してください。1090* `true`: 再読み込みは適用されず、コレクションフィールドはセッションをそのまま説明します。`cache_impact` は適用が変更するものを言います。とにかく適用するには、オプションなしで `reloadPlugins()` を再度呼び出します。

1088* `false`: チェックはキャッシュ影響を見つけず、リロードが適用されました。1091* `false`: チェックはキャッシュ影響を見つけず、再読み込みが適用されました。

1089* 存在しない: オプションを渡さなかったか、Claude Code 実行可能ファイルが v2.1.268 より古く、リロードを適用しました。1092* 不在: オプションを渡さなかったか、Claude Code 実行可能ファイルが v2.1.268 より前で再読み込みを適用しました。

1090 1093 

1091`cache_impact` は `held: true` と共にのみ存在します。`mcp_servers_added` と `mcp_servers_removed` はリロードが登録または削除するプラグイン MCP サーバーを、スコープ付き `plugin:<plugin>:<server>` 名として指定します。名前はプラグイン作成者が作成するため、表示する前に検証してください。`lsp_tool_change` は適用が LSP ツールを追加または削除するかどうかを示し、どちらもしない場合は `null` です。`may-` 形式は、チェックが保留中のプラグインセットを完全に見ることができなかったことを意味します。1094`cache_impact` は `held: true` と共にのみ存在します。`mcp_servers_added` および `mcp_servers_removed` は再読み込みが登録または削除するプラグイン MCP サーバーをスコープ付き `plugin:<plugin>:<server>` 名として名前付けます。名前はプラグイン作成者が作成するため、表示する前に検証してください。`lsp_tool_change` は適用が LSP ツールを追加または削除するかどうかを言うか、どちらでもない場合は `null`。`may-` 形式は、チェックが保留中のプラグインセットを完全に見ることができなかったことを意味します。

1092 1095 

1093<h3 id="sdkcontrolreloadskillsresponse">1096<h3 id="sdkcontrolreloadskillsresponse">

1094 `SDKControlReloadSkillsResponse`1097 `SDKControlReloadSkillsResponse`

1095</h3>1098</h3>

1096 1099 

1097[`reloadSkills()`](#query-object) の戻り値の型。1100[`reloadSkills()`](#query-object)の戻り値の型。

1098 1101 

1099```typescript theme={null}1102```typescript theme={null}

1100type SDKControlReloadSkillsResponse = {1103type SDKControlReloadSkillsResponse = {


1102};1105};

1103```1106```

1104 1107 

1105`skills` は再読み込み後に利用可能なスキルをリストします。`supportedCommands()` が返すのと同じ [`SlashCommand`](#slashcommand) 形状です。1108`skills` は再読み込み後に利用可能なスキルをリストし、`supportedCommands()` が返すのと同じ [`SlashCommand`](#slashcommand)形状です。

1106 1109 

1107<h3 id="sdkcontrolreloadoutputstylesresponse">1110<h3 id="sdkcontrolreloadoutputstylesresponse">

1108 `SDKControlReloadOutputStylesResponse`1111 `SDKControlReloadOutputStylesResponse`

1109</h3>1112</h3>

1110 1113 

1111[`reloadOutputStyles()`](#query-object) の戻り値の型。1114[`reloadOutputStyles()`](#query-object)の戻り値の型。

1112 1115 

1113```typescript theme={null}1116```typescript theme={null}

1114type SDKControlReloadOutputStylesResponse = {1117type SDKControlReloadOutputStylesResponse = {


1122 `SDKControlMcpReadResourceResponse`1125 `SDKControlMcpReadResourceResponse`

1123</h3>1126</h3>

1124 1127 

1125[`readMcpResource()`](#query-object) の戻り値の型。MCP サーバーの `resources/read` 結果を含みます。TypeScript Agent SDK v0.3.280 以降が必要です。1128[`readMcpResource()`](#query-object)の戻り値の型。MCP サーバーの `resources/read` 結果を実行します。TypeScript Agent SDK v0.3.280 以降が必要です。

1126 1129 

1127```typescript theme={null}1130```typescript theme={null}

1128type SDKControlMcpReadResourceResponse = {1131type SDKControlMcpReadResourceResponse = {


1136};1139};

1137```1140```

1138 1141 

1139`readMcpResource()` にサーバー名を `mcpServerStatus()` が報告するのと同様に、および `ui://` URI(ツールが [`_meta`](#mcpserverstatus) で宣言する `ui.resourceUri` など)を渡します。呼び出しは他の URI スキーム、アプリケーションが自分でホストする [SDK MCP サーバー](#createsdkmcpserver)、および接続されていないサーバーに対して拒否します。初期化メッセージの [`capabilities`](#sdksystemmessage) に `mcp_read_resource_v1` が含まれている場合に利用可能です。1142`readMcpResource()` にサーバー名を `mcpServerStatus()` が報告するのと同じように、および `ui://` URI(ツールが [`_meta`](#mcpserverstatus)で宣言する `ui.resourceUri` など)を渡します。呼び出しは他の URI スキーム、アプリケーションが自分でホストする [SDK MCP サーバー](#createsdkmcpserver)、および接続されていないサーバーに対して拒否します。初期化メッセージの [`capabilities`](#sdksystemmessage)に `mcp_read_resource_v1` が含まれている場合に利用可能です。

1140 1143 

1141各 `contents` エントリは、サーバーが送信した 1 つのコンテンツアイテムで、`com.anthropic/` プレフィックスの下の `_meta` キーを除きます。これは Claude Code 用に予約されています。`blob` はバイナリアイテムの base64 データを保持し、`_meta` はアイテム独自の `_meta` で、MCP Apps サーバーはリソースの `ui.csp` および `ui.permissions` を配置します。1144各 `contents` エントリは、`com.anthropic/` プレフィックスの下の `_meta` キーを除いて、サーバーが送信した 1 つのコンテンツアイテムです。これは Claude Code 用に予約されています。`blob` はバイナリアイテムの base64 データを保持し、`_meta` はアイテム自体の `_meta` で、MCP Apps サーバーはリソースの `ui.csp` および `ui.permissions` を配置します。

1142 1145 

1143コンテンツは信頼できない第三者の HTML であるため、サンドボックスでレンダリングしてください。1146コンテンツは信頼できない第三者の HTML であるため、サンドボックスでレンダリングしてください。

1144 1147 


1170 1173 

1171| フィールド | 必須 | 説明 |1174| フィールド | 必須 | 説明 |

1172| :- | :- | :- |1175| :- | :- | :- |

1173| `description` | はい | このエージェントを使用する場合の自然言語説明 |1176| `description` | はい | このエージェントをいつ使用するかの自然言語説明 |

1174| `tools` | いいえ | 許可されたツール名の配列。省略した場合、[サブエージェントで利用可能なすべてのツール](/docs/ja/sub-agents#available-tools) を継承します。スキルをエージェントのコンテキストにプリロードするには、ここで `'Skill'` をリストするのではなく `skills` フィールドを使用してください |1177| `tools` | いいえ | 許可されたツール名の配列。省略した場合、[サブエージェントで利用可能なすべてのツール](/docs/ja/sub-agents#available-tools)を継承します。スキルをエージェントのコンテキストにプリロードするには、ここで `'Skill'` をリストするのではなく `skills` フィールドを使用します |

1175| `disallowedTools` | いいえ | このエージェントで明示的に許可しないツール名の配列。MCP サーバーレベルのパターンも受け入れられます: `mcp__server` または `mcp__server__*` はそのサーバーからすべてのツールを削除し、`mcp__*` はすべての MCP ツールをすべてのサーバーから削除します |1178| `disallowedTools` | いいえ | このエージェントに対して明示的に許可しないツール名の配列。MCP サーバーレベルのパターンも受け入れられます: `mcp__server` または `mcp__server__*` はそのサーバーからすべてのツールを削除し、`mcp__*` はすべての MCP ツールをすべてのサーバーから削除します |

1176| `prompt` | はい | エージェントのシステムプロンプト |1179| `prompt` | はい | エージェントのシステムプロンプト |

1177| `model` | いいえ | このエージェントのモデルオーバーライド。`'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'` などのエイリアス、または完全なモデル ID を受け入れます。`'inherit'` はメインモデルを使用します。省略した場合、Claude Code は [サブエージェントモデル順序](/docs/ja/sub-agents#choose-a-model) でモデルを選択します |1180| `model` | いいえ | このエージェントのモデルオーバーライド。`'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'` などのエイリアス、または完全なモデル ID を受け入れます。`'inherit'` はメインモデルを使用します。省略した場合、Claude Code は [サブエージェントモデル順序](/docs/ja/sub-agents#choose-a-model)でモデルを選択します |

1178| `mcpServers` | いいえ | このエージェント用の MCP サーバー仕様 |1181| `mcpServers` | いいえ | このエージェントの MCP サーバー仕様 |

1179| `skills` | いいえ | エージェントコンテキストにプリロードするスキル名の配列 |1182| `skills` | いいえ | エージェントコンテキストにプリロードするスキル名の配列 |

1180| `initialPrompt` | いいえ | このエージェントがメインスレッドエージェントとして実行される場合、最初のユーザーターンとして自動送信されます |1183| `initialPrompt` | いいえ | このエージェントがメインスレッドエージェントとして実行される場合、最初のユーザーターンとして自動送信されます |

1181| `maxTurns` | いいえ | 停止する前のエージェンティックターン数(API ラウンドトリップ)の最大数 |1184| `maxTurns` | いいえ | 停止する前のエージェンティックターン数(API ラウンドトリップ)の最大数 |

1182| `background` | いいえ | 呼び出されたときにこのエージェントをノンブロッキングバックグラウンドタスクとして実行します |1185| `background` | いいえ | 呼び出されたときにこのエージェントをノンブロッキングバックグラウンドタスクとして実行します |

1183| `omitClaudeMd` | いいえ | このエージェントがサブエージェントとして実行される場合、ユーザー、プロジェクト、ローカル CLAUDE.md ファイルなしで実行します。管理ポリシーファイルは引き続き読み込まれます。Agent ツールプロンプトから必要なすべてを取得するエージェント用に使用します。このエージェントがメインスレッドエージェントとして実行される場合は無視されます。TypeScript Agent SDK v0.3.271 以降が必要です |1186| `omitClaudeMd` | いいえ | このエージェントがサブエージェントとして実行される場合、ユーザー、プロジェクト、ローカル CLAUDE.md ファイルなしでこのエージェントを実行します。管理ポリシーファイルは引き続き読み込まれます。Agent ツールプロンプトから必要なすべてを取得するエージェントに使用します。このエージェントがメインスレッドエージェントとして実行される場合は無視されます。TypeScript Agent SDK v0.3.271 以降が必要です |

1184| `memory` | いいえ | このエージェントのメモリソース: `'user'`、`'project'`、または `'local'` |1187| `memory` | いいえ | このエージェントのメモリソース: `'user'`、`'project'`、または `'local'` |

1185| `effort` | いいえ | このエージェントの推論努力レベル。名前付きレベルまたは整数を受け入れます |1188| `effort` | いいえ | このエージェントの推論努力レベル。名前付きレベルまたは整数を受け入れます |

1186| `permissionMode` | いいえ | このエージェント内のツール実行の権限モード。[サブエージェント継承ルール](/docs/ja/agent-sdk/permissions#available-modes) は、それが適用される場合を決定します。[`PermissionMode`](#permissionmode) を参照してください |1189| `permissionMode` | いいえ | このエージェント内のツール実行の権限モード。[サブエージェント継承ルール](/docs/ja/agent-sdk/permissions#available-modes)はいつ適用されるかを決定します。[`PermissionMode`](#permissionmode)を参照してください |

1187| `criticalSystemReminder_EXPERIMENTAL` | いいえ | 実験的: システムプロンプトに追加された重要なリマインダー |1190| `criticalSystemReminder_EXPERIMENTAL` | いいえ | 実験的: システムプロンプトに追加された重要なリマインダー |

1188 1191 

1189<h3 id="agentmcpserverspec">1192<h3 id="agentmcpserverspec">


1218 デフォルト動作1221 デフォルト動作

1219</h4>1222</h4>

1220 1223 

1221`settingSources` が省略されるか `undefined` の場合、`query()` は Claude Code CLI と同じファイルシステム設定を読み込みます: ユーザー、プロジェクト、ローカル。[Claude Code 機能を使用](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control) を参照して、入力を無効にする方法を確認してください。1224`settingSources` が省略されるか `undefined` の場合、`query()` は Claude Code CLI と同じファイルシステム設定を読み込みます: ユーザー、プロジェクト、ローカル。[settingSources が制御しないもの](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)を参照して、関係なく読み込まれる入力と、それらを無効にする方法を確認してください。

1222 1225 

1223<h4 id="why-use-settingsources">1226<h4 id="why-use-settingsources">

1224 settingSources を使用する理由1227 settingSources を使用する理由


1250});1253});

1251```1254```

1252 1255 

1253CLAUDE.md プロジェクト指示を読み込むには、`settingSources` に `"project"` を含めてください。CLAUDE.md 読み込みがシステムプロンプトオプションとどのように相互作用するかについては、[システムプロンプトを変更](/docs/ja/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) を参照してください。1256CLAUDE.md プロジェクト指示を読み込むには、`settingSources` に `"project"` を含めます。CLAUDE.md 読み込みがシステムプロンプトオプションとどのように相互作用するかについては、[システムプロンプトを変更](/docs/ja/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions)を参照してください。

1254 1257 

1255<h4 id="settings-precedence">1258<h4 id="settings-precedence">

1256 設定優先順位1259 設定優先順位


1273 | "default" // 標準権限動作1276 | "default" // 標準権限動作

1274 | "acceptEdits" // ファイル編集を自動受け入れ1277 | "acceptEdits" // ファイル編集を自動受け入れ

1275 | "bypassPermissions" // 権限チェックをバイパス。明示的な質問ルールはプロンプトを表示1278 | "bypassPermissions" // 権限チェックをバイパス。明示的な質問ルールはプロンプトを表示

1276 | "plan" // 計画モード - 編集なしで探索1279 | "plan" // プランニングモード - 編集なしで探索

1277 | "dontAsk" // 権限をプロンプトしない、事前承認されていない場合は拒否1280 | "dontAsk" // 権限をプロンプトしない、事前承認されていない場合は拒否

1278 | "auto"; // モデル分類器が権限プロンプトを承認または拒否1281 | "auto"; // モデル分類器がシェルコマンドやネットワークリクエストなどのアクションをレビュー

1279```1282```

1280 1283 

1281<h3 id="canusetool">1284<h3 id="canusetool">


1284 1287 

1285ツール使用を制御するためのカスタム権限関数型。1288ツール使用を制御するためのカスタム権限関数型。

1286 1289 

1287関数は対話型権限プロンプトの SDK 置き換えです: [権限評価フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated) がプロンプトに解決する場合にのみ呼び出されます。`allowedTools` エントリ、設定許可ルール、または `acceptEdits` や `bypassPermissions` などの権限モードで既に承認されたツール呼び出しは、それを呼び出しません。すべてのツール呼び出しをゲートするには、代わりに [`PreToolUse` フック](/docs/ja/agent-sdk/hooks) を使用してください。1290関数は対話型権限プロンプトの SDK 置き換えです。[権限評価フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)がプロンプトに解決する場合にのみ呼び出されます。`allowedTools` エントリ、設定許可ルール、または `acceptEdits` や `bypassPermissions` などの権限モードで既に承認されたツール呼び出しは、それを呼び出しません。すべてのツール呼び出しをゲートするには、代わりに [`PreToolUse` フック](/docs/ja/agent-sdk/hooks)を使用します。

1288 1291 

1289許可ルールは [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) を事前承認しません。[権限がどのように評価されるか](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated) を参照して、どれがコールバックに到達し、`dontAsk` および `auto` モードで何が起こるかを確認してください。1292許可ルールは [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)を事前承認しません。[権限がどのように評価されるか](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)を参照して、どれがコールバックに到達し、`dontAsk` および `auto` モードで何が起こるかを確認してください。

1290 1293 

1291```typescript theme={null}1294```typescript theme={null}

1292type CanUseTool = (1295type CanUseTool = (


1309 1312 

1310| オプション | 型 | 説明 |1313| オプション | 型 | 説明 |

1311| :- | :- | :- |1314| :- | :- | :- |

1312| `signal` | `AbortSignal` | 操作を中止する必要がある場合にシグナルされます |1315| `signal` | `AbortSignal` | 操作を中止する場合に通知されます |

1313| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 提案された権限更新。ユーザーがこのツールに対して再度プロンプトされないようにします。Bash プロンプトは `localSettings` [宛先](#permissionupdatedestination) を含む提案を含むため、`updatedPermissions` で返すと、ルールを `.claude/settings.local.json` に書き込み、セッション間で永続化します。 |1316| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 提案された権限更新。ユーザーがこのツールに対して再度プロンプトされないようにします。Bash プロンプトには `localSettings` [宛先](#permissionupdatedestination)を含む提案が含まれるため、`updatedPermissions` で返すと、ルールを `.claude/settings.local.json` に書き込み、セッション全体で永続化します。 |

1314| `blockedPath` | `string` | 権限リクエストをトリガーしたファイルパス(該当する場合) |1317| `blockedPath` | `string` | 権限リクエストをトリガーしたファイルパス(該当する場合) |

1315| `mcpServer` | `{ name: string; source: string }` | `mcp__*` ツールの場合、それを提供する MCP サーバーおよびそのサーバーの定義がどこから来たか。[`McpServerProvenance`](#mcpserverprovenance) のフィールド。他のツールの場合は存在しません。Agent SDK v0.3.274 以降が必要です |1318| `mcpServer` | `{ name: string; source: string }` | `mcp__*` ツールの場合、それを提供する MCP サーバーとそのサーバーの定義がどこから来たか。[`McpServerProvenance`](#mcpserverprovenance)のフィールド。他のツールでは不在です。Agent SDK v0.3.274 以降が必要です |

1316| `decisionReason` | `string` | この権限リクエストがトリガーされた理由を説明します |1319| `decisionReason` | `string` | この権限リクエストがトリガーされた理由を説明します |

1317| `defaultToNo` | `boolean` | ` true` の場合、単一の迷い込んだキーストロークがこのリクエストを承認してはいけません: プロンプトを拒否オプションで開き、承認を事前選択しないでください。ワンキー承認ショートカットを提供しないでください。Agent SDK v0.3.268 以降が必要です |1320| `defaultToNo` | `boolean` | `true` の場合、単一の迷走キーストロークがこのリクエストを承認してはいけません: プロンプトを拒否オプションで開き、承認を事前選択しないでください。1 キー承認ショートカットを提供しないでください。Agent SDK v0.3.268 以降が必要です |

1318| `suppressAlwaysAllowRule` | `boolean` | ` true` の場合、このリクエストの永続的な常時許可選択肢を提供しないでください。書き込むルールはリクエスト自体のアクションより多くを許可するためです。Agent SDK v0.3.268 以降が必要です |1321| `suppressAlwaysAllowRule` | `boolean` | `true` の場合、このリクエストに対して永続的な常時許可選択肢を提供しないでください。書き込むルールはリクエスト自体のアクションより多くを許可するためです。Agent SDK v0.3.268 以降が必要です |

1319| `toolUseID` | `string` | アシスタントメッセージ内のこの特定のツール呼び出しの一意の識別子 |1322| `toolUseID` | `string` | アシスタントメッセージ内のこの特定のツール呼び出しの一意の識別子 |

1320| `agentID` | `string` | サブエージェント内で実行している場合、サブエージェントの ID |1323| `agentID` | `string` | サブエージェント内で実行している場合、サブエージェントの ID |

1321| `requestId` | `string` | `control_request` エンベロープの `request_id`。アプリケーションが SDK の外で送信する `control_response`(署名付き HTTP POST など)は、Claude Code プロセスが返信をリクエストと一致させることができるようにこの値をエコーする必要があります |1324| `requestId` | `string` | `control_request` エンベロープの `request_id`。アプリケーションが SDK の外で送信する `control_response`(署名付き HTTP POST など)は、Claude Code プロセスが返信をリクエストと一致させることができるようにこの値をエコーする必要があります |

1322 1325 

1323コールバックは通常、[`PermissionResult`](#permissionresult) を返すことでリクエストを解決します。これは SDK がそのトランスポートを通じて `control_response` として書き込みます。このリクエストの `control_response` をアプリケーションが既に独自のチャネルを通じて送信した場合にのみ `null` を返します。`requestId` をエコーします。SDK はその後、トランスポートへのレスポンスの書き込みをスキップします。他の場合に `null` を返すと、`control_response` が送信されず、権限プロンプトはタイムアウトしないため、ツール呼び出しは無期限にブロックされたままになります。1326コールバックは通常、[`PermissionResult`](#permissionresult)を返すことでリクエストを解決し、SDK はそれを `control_response` として トランスポート上に書き込みます。このリクエストの `control_response` を既に独自のチャネルで送信した場合にのみ `null` を返し、`requestId` をエコーします。SDK はトランスポートへのレスポンス書き込みをスキップします。他の場合に `null` を返すと、`control_response` が送信されず、権限プロンプトはタイムアウトしないため、ツール呼び出しは無期限にブロックされたままになります。

1324 1327 

1325`requestId` オプションと `null` 戻り値には Claude Code v2.1.199 以降が必要です。1328`requestId` オプションと `null` 戻り値には Claude Code v2.1.199 以降が必要です。

1326 1329 


1362 1365 

1363| フィールド | 型 | 説明 |1366| フィールド | 型 | 説明 |

1364| :- | :- | :- |1367| :- | :- | :- |

1365| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | [`AskUserQuestion`](/docs/ja/agent-sdk/user-input#question-format) オプションの `preview` フィールドをオプトインし、そのコンテンツ形式を設定します。設定されていない場合、Claude はプレビューを出力しません |1368| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | [`AskUserQuestion`](/docs/ja/agent-sdk/user-input#question-format)オプションの `preview` フィールドをオプトインし、そのコンテンツ形式を設定します。設定されていない場合、Claude はプレビューを出力しません |

1366 1369 

1367<h3 id="mcpserverconfig">1370<h3 id="mcpserverconfig">

1368 `McpServerConfig`1371 `McpServerConfig`


1456 1459 

1457| フィールド | 型 | 説明 |1460| フィールド | 型 | 説明 |

1458| :- | :- | :- |1461| :- | :- | :- |

1459| `type` | `'local'` | `'local'` である必要があります(現在ローカルプラグインのみサポート) |1462| `type` | `'local'` | `'local'` である必要があります(現在ローカルプラグインのみがサポートされています) |

1460| `path` | `string` | プラグインディレクトリへの絶対パスまたは相対パス |1463| `path` | `string` | プラグインディレクトリへの絶対パスまたは相対パス |

1461| `skipMcpDiscovery` | `boolean` | `true` の場合、SDK はこのプラグインからスキル、フック、エージェント、コマンドを読み込みますが、その `.mcp.json` またはマニフェスト `mcpServers` は読み込みません。アプリケーションがプラグインの MCP 接続を所有している場合に設定します。 |1464| `skipMcpDiscovery` | `boolean` | `true` の場合、SDK はこのプラグインからスキル、フック、エージェント、コマンドを読み込みますが、その `.mcp.json` またはマニフェスト `mcpServers` は読み込みません。アプリケーションがプラグインの MCP 接続を所有している場合に設定します。 |

1462 1465 


1469];1472];

1470```1473```

1471 1474 

1472プラグインの作成と使用の完全な情報については、[プラグイン](/docs/ja/agent-sdk/plugins) を参照してください。1475プラグインの作成と使用に関する完全な情報については、[プラグイン](/docs/ja/agent-sdk/plugins)を参照してください。

1473 1476 

1474<h2 id="message-types">1477<h2 id="message-types">

1475 メッセージタイプ1478 メッセージタイプ


1544};1547};

1545```1548```

1546 1549 

1547`message` フィールドは Anthropic SDK の [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create) です。`id`、`content`、`model`、`stop_reason`、`usage` などのフィールドが含まれます。1550`message` フィールドは Anthropic SDK の [`BetaMessage`](https://platform.claude.com/docs/ja/api/messages/create) です。`id`、`content`、`model`、`stop_reason`、`usage` などのフィールドが含まれます。

1548 1551 

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

1550 1553 


1555 1558 

1556`aborted` は、割り込みまたは中止がストリーム完了前にアシスタントメッセージを切り詰めた場合に `true` です:メッセージに `stop_reason` がなく、コンテンツが単語の途中で終わる可能性があります。フィールドは正常に完了したメッセージには存在しません。Agent SDK v0.3.214 以降が必要です。1559`aborted` は、割り込みまたは中止がストリーム完了前にアシスタントメッセージを切り詰めた場合に `true` です:メッセージに `stop_reason` がなく、コンテンツが単語の途中で終わる可能性があります。フィールドは正常に完了したメッセージには存在しません。Agent SDK v0.3.214 以降が必要です。

1557 1560 

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

1559 1562 

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

1561 1564 

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

1563 1566 

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

1565 `SDKUserMessage`1568 `SDKUserMessage`


1584};1587};

1585```1588```

1586 1589 

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

1588 1591 

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

1590 1593 

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

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

1593 1596 

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

1595 1598 

1596`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) です。`completed` 結果では、`content` はサブエージェントのレポートを保持し、Claude Code が `tool_result` テキストに追加するエージェント ID と使用状況トレーラーは含みません。そのため、そのテキストを解析する代わりに `tool_use_result` からレンダリングしてください。

1597 1600 

1598結果に `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 以降が必要です。

1599 1602 

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

1601 1604 

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

1603 `SDKUserMessageReplay`1606 `SDKUserMessageReplay`


1620};1623};

1621```1624```

1622 1625 

1623セッション外から注入されたユーザーターン。その [`origin`](#sdkmessageorigin) の種類が `peer` または `channel` であるターンは、アクティブなターン中に配信されたか、セッションがアイドル状態の間に新しいターンを開始したかに関わらず、ストリームに再生として到達します。v2.1.207 より前では、セッションがアイドル状態の間に配信された注入ターンはストリームにメッセージを生成せず、トランスクリプトを再読み込みするときにのみ表示されました。1626セッション外から挿入されたユーザーターン([`origin`](#sdkmessageorigin) の種類が `peer` または `channel` であるもの)は、アクティブなターン中に配信されたか、セッションがアイドル状態の間に新しいターンを開始したかに関わらず、ストリームに再生として到達します。v2.1.207 より前では、セッションがアイドル状態の間に配信された挿入ターンはストリームにメッセージを生成せず、トランスクリプトを再読み込みするときにのみ表示されました。

1624 1627 

1625<h3 id="sdkresultmessage">1628<h3 id="sdkresultmessage">

1626 `SDKResultMessage`1629 `SDKResultMessage`


1698 };1701 };

1699```1702```

1700 1703 

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

1702 1705 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1722 1725 

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

1724 1727 

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

1726| - | - |1729| - | - |

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

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

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

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

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

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

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

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

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

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

1737 1740 

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

1739 1742 

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

1741 1744 

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

1743 1746 

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

1745 1748 

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

1747 1750 

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

1749 `user_message_uuid`1752 `user_message_uuid`

1750</h4>1753</h4>

1751 1754 

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

1753 1756 

1754ターンが答えるメッセージは、ターンの開始方法によって異なります:1757ターンが答えるメッセージは、ターンの開始方法に依存します:

1755 1758 

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

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

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

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

1760 1763 

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

1762 1765 

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

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

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

1766 1769 

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

1768 1771 

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

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

1771* `uuid` を持つメッセージに答えないターン:ターンが `uuid` なしで送信したメッセージに答えたか、Claude Code がターンを開始し、`uuid` を持つ通常のメッセージを取得しなかった1774* あなたのメッセージに答えないターン、または `uuid` なしで送信したメッセージに答えるターン

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

1773 1776 

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

1775 `user_message_uuids`1778 `user_message_uuids`

1776</h4>1779</h4>

1777 1780 

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

1779 1782 

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

1781 1784 

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

1783 1786 

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

1785 1788 

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

1787 `resume_reason`1790 `resume_reason`

1788</h4>1791</h4>

1789 1792 

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

1791 1794 

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

1793 1796 

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

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

1796 1799 

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

1798 1801 

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

1800 `queued_turn_count`1803 `queued_turn_count`

1801</h4>1804</h4>

1802 1805 

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

1804 1807 

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

1806 1809 

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

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

1809 1812 

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

1811 `startup_failure_reason`1814 `startup_failure_reason`

1812</h4>1815</h4>

1813 1816 

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

1815 1818 

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

1817 1820 

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

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

1820 1823 

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

1822type SDKStartupFailureReason =1825type SDKStartupFailureReason =

1823 | "org_pin_api_key_conflict"1826 | "org_pin_api_key_conflict"

1827 | "provider_not_allowed"

1824 | "org_verify_failed"1828 | "org_verify_failed"

1825 | "org_pin_mismatch"1829 | "org_pin_mismatch"

1826 | "managed_settings_invalid"1830 | "managed_settings_invalid"


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

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

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

1846| `org_verify_failed` | サインインの組織をピンに対して検証できなかった。例えば、ネットワーク障害または失効したトークンのため |1850| `provider_not_allowed` | 管理設定が [このマシンが使用できる API プロバイダーをリストアップ](/docs/ja/settings-reference#allowedproviders) し、セッションがリストされていないプロバイダーまたは設定がピンしていないエンドポイント用に設定されている。Claude Code v2.1.285 以降が必要です |

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

1847| `org_pin_mismatch` | サインインがピンが許可しない組織に属している |1852| `org_pin_mismatch` | サインインがピンが許可しない組織に属している |

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

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

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

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


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

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

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

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

1858| `worktree_unverified` | セッションのワークツリーを今すぐ検証できず、再試行が成功する可能性があります |1863| `worktree_unverified` | セッションのワークツリーを今検証できず、再試行が成功する可能性がある |

1859| `cli_version_too_old` | この Claude Code バージョンが Anthropic が必要とする最小値より下です |1864| `cli_version_too_old` | この Claude Code バージョンが Anthropic が必要とする最小値より下 |

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

1861 1866 

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


1904 1909 

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

1906 1911 

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

1908 

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

1910 1913 

1911* 努力レベル:`effort` は、[努力レベル](/docs/ja/model-config#adjust-effort-level)。Claude Code がセッションの次のリクエストで送信するか、何も送信しない場合は `null`。Claude Code は、[リモートコントロール](/docs/ja/remote-control) クライアントに送信する初期化メッセージでのみフィールドを設定し、アプリケーションが読み取る初期化メッセージから省略します。Agent SDK v0.3.234 以降が必要です。1914* 各 `mcp_servers` エントリの `source`:サーバーの定義がどこから来たか。[`McpServerStatus`](#mcpserverstatus) の `source` と同じ値。Agent SDK v0.3.274 以降が必要です

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

1912 1916 

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

1914 1918 

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

1916| - | - |1920| - | - |

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

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

1919 1923 

1920`plugin_errors` 配列はプラグイン読み込み失敗をリストします。エントリは、読み込まれず `plugins` から不在であるプラグイン、または読み込まれたがそのパーツの 1 つ(フックファイルなど)がないプラグインを説明します。何も失敗しなかった場合、キーは省略されます。`SDKSystemMessage` は Agent SDK v0.3.283 以降で `plugin_errors` を宣言します。1924`plugin_errors` 配列はプラグイン読み込み失敗をリストします。エントリは、読み込まれず `plugins` から存在しないプラグイン、または hooks ファイルなどの部分なしで読み込まれたプラグインを説明します。何も失敗しなかった場合、キーは省略されます。`SDKSystemMessage` は Agent SDK v0.3.283 以降で `plugin_errors` を宣言します。

1921 1925 

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

1923 1927 

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

1925 1929 

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

1927| - | - | - |1931| - | - | - |

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

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

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

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

1932 1936 

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

1934 `SDKPartialAssistantMessage`1938 `SDKPartialAssistantMessage`

1935</h3>1939</h3>

1936 1940 

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

1938 1942 

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

1940type SDKPartialAssistantMessage = {1944type SDKPartialAssistantMessage = {


1950};1954};

1951```1955```

1952 1956 

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

1954 1958 

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

1956 `SDKCompactBoundaryMessage`1960 `SDKCompactBoundaryMessage`


1975 `SDKInformationalMessage`1979 `SDKInformationalMessage`

1976</h3>1980</h3>

1977 1981 

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

1979 1983 

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

1981 1985 

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

1983 1987 

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

1985type SDKInformationalMessage = {1989type SDKInformationalMessage = {


1998 `SDKWorkerShuttingDownMessage`2002 `SDKWorkerShuttingDownMessage`

1999</h3>2003</h3>

2000 2004 

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

2002 2006 

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

2004type SDKWorkerShuttingDownMessage = {2008type SDKWorkerShuttingDownMessage = {


2032 `SDKPermissionDeniedMessage`2036 `SDKPermissionDeniedMessage`

2033</h3>2037</h3>

2034 2038 

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

2036 2040 

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

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

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

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

2041 2045 

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

2043 2047 

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

2045type SDKPermissionDeniedMessage = {2049type SDKPermissionDeniedMessage = {


2060| - | - | - |2064| - | - | - |

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

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

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

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

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

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

2067 2071 

2068<h3 id="sdkpermissiondenial">2072<h3 id="sdkpermissiondenial">


2083 `SDKContextUsage`2087 `SDKContextUsage`

2084</h3>2088</h3>

2085 2089 

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

2087 2091 

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

2089type SDKContextUsage = {2093type SDKContextUsage = {


2120};2124};

2121```2125```

2122 2126 

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

2124 2128 

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

2126| - | - | - |2130| - | - | - |

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

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

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

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

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

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

2133| `mcp_tools` | `object[]` | 各 MCP ツールに属性付けされたトークン。`mcp__linear__create_issue` などのワイヤー名と `server_name` |2137| `mcp_tools` | `object[]` | 各 MCP ツールに属性付けされたトークン。ワイヤー名(例えば `mcp__linear__create_issue`)と `server_name` |

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

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

2136| `skills` | `object[]` | スキルリスト内の各スキルに属性付けされたトークン。ソース識別子と、プラグインスキルの場合はプラグインの名前(`plugin_name`)。スキルがトークンに貢献しない場合は不在 |2140| `skills` | `object[]` | スキルリスト内の各スキルに属性付けされたトークン。ソース識別子と、プラグインスキルの場合、`plugin_name` 内のプラグインの名前。スキルがトークンに貢献しない場合は存在しません |

2137 2141 

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

2139 2143 

2140* `hard_limit`:ウィンドウは Claude Code がモデル自体の制限と信じるもの。API はリクエストを拒否します2144* `hard_limit`:ウィンドウは Claude Code がモデル自体の制限と信じるもの。API がリクエストを拒否する過去

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

2142 2146 

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

2144 2148 

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

2146 `SDKContextUsageCategory`2150 `SDKContextUsageCategory`


2156};2160};

2157```2161```

2158 2162 

2159表は、行の各フィールドに Claude Code が何を入れるかをリストします。2163表は Claude Code が行の各フィールドに何を入れるかをリストします。

2160 2164 

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

2162| - | - | - |2166| - | - | - |

2163| `name` | `string` | 行の表示名。`/context` が印刷するもの。`Messages` など。名前ではなく `kind` で行を分類 |2167| `name` | `string` | `/context` が印刷する行の表示名。例えば `Messages`。名前ではなく `kind` で行を分類 |

2164| `tokens` | `number` | 行のトークンカウント。行はゼロトークンを含む可能性があります |2168| `tokens` | `number` | 行のトークンカウント。行はゼロトークンを持つことができます |

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

2166 2170 

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

2168 2172 

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

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

2171* `buffer`:圧縮予約2175* `buffer`:圧縮リザーブ

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

2173 2177 

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


2203 2207 

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

2205| - | - |2209| - | - |

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

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

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

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

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

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

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

2213 2217 

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

2215 タスク通知サブタイプ2219 タスク通知サブキンド

2216</h3>2220</h3>

2217 2221 

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

2219 2223 

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

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

2222 2226 

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

2224 2228 

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

2226 2230 

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

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

2229</h4>2233</h4>

2230 2234 

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

2232 2236 

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

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

2235</h3>2239</h3>

2236 2240 

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

2238 2242 

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

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

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

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

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

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

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

2246 2250 

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

2248 フック型2252 フック型


3184};3188};

3185```3189```

3186 3190 

3187オプションのタイムアウトとバックグラウンド実行を備えた Bash コマンドを実行します。作業ディレクトリはコマンド間で永続化されます。マルチターンセッションの後のターンで実行されるコマンドも含まれます。エクスポートされた環境変数などのシェル状態は永続化されません。ディレクトリ変更がどの程度引き継がれるかの制限については、[コマンド間で永続化されるもの](/docs/ja/tools-reference#what-persists-between-commands) を参照してください。フォアグラウンドの上限を設定するものについては、[タイムアウトと出力の制限](/docs/ja/tools-reference#timeout-and-output-limits) を参照してください。バックグラウンド時間制限については、[バックグラウンドコマンド](/docs/ja/tools-reference#background-commands) を参照してください。3191オプションのタイムアウトとバックグラウンド実行を備えた Bash コマンドを実行します。作業ディレクトリはコマンド間で永続化されます。マルチターンセッションの後のターンで実行されるコマンドも含まれます。エクスポートされた環境変数などのシェル状態は永続化されません。ディレクトリ変更がどの程度引き継がれるかの制限については、[コマンド間で永続化されるもの](/docs/ja/tools-reference#what-persists-between-commands) を参照してください。フォアグラウンドの上限を設定するものについては、[タイムアウトと出力の制限](/docs/ja/tools-reference#timeout-and-output-limits) を参照してください。バックグラウンド時間制限については、[バックグラウンドコマンドの時間制限](/docs/ja/tools-reference#time-limit-for-background-commands) を参照してください。

3188 3192 

3189<h3 id="monitor">3193<h3 id="monitor">

3190 Monitor3194 Monitor


4088 4092 

4089`timedOutAfterMs` はタイムアウト(ミリ秒単位)で、コマンドがタイムアウトに達し、明示的に開始するのではなくバックグラウンドに移動した場合に設定されます。`backgroundCwdHint` はバックグラウンド化されたコマンドに `cd`、`pushd`、`popd`、`chdir` などのディレクトリ変更組み込みが含まれていた場合に設定され、セッション作業ディレクトリが変更されなかったことを注記します。両方のフィールドは Claude Code v2.1.210 以降が必要です。4093`timedOutAfterMs` はタイムアウト(ミリ秒単位)で、コマンドがタイムアウトに達し、明示的に開始するのではなくバックグラウンドに移動した場合に設定されます。`backgroundCwdHint` はバックグラウンド化されたコマンドに `cd`、`pushd`、`popd`、`chdir` などのディレクトリ変更組み込みが含まれていた場合に設定され、セッション作業ディレクトリが変更されなかったことを注記します。両方のフィールドは Claude Code v2.1.210 以降が必要です。

4090 4094 

4091フォアグラウンドで実行されているサブエージェントがバックグラウンド化されたコマンドを所有している場合、コマンドは[そのサブエージェントの実行が終了するときに終了します](/docs/ja/tools-reference#background-commands)。Claude Code はそのようなコマンドで `backgroundEndsWithFinalResponse` を `true` に設定し、コマンドがターンを超えて存続する場合はフィールドを省略します。メインの会話またはバックグラウンドサブエージェントによって開始されたコマンドと同様です。このフィールドは Claude Code v2.1.227 以降が必要です。4095フォアグラウンドで実行されているサブエージェントがバックグラウンド化されたコマンドを所有している場合、コマンドは[そのサブエージェントの実行が終了するときに終了します](/docs/ja/tools-reference#when-a-background-command-stops)。Claude Code はそのようなコマンドで `backgroundEndsWithFinalResponse` を `true` に設定し、コマンドがターンを超えて存続する場合はフィールドを省略します。メインの会話またはバックグラウンドサブエージェントによって開始されたコマンドと同様です。このフィールドは Claude Code v2.1.227 以降が必要です。

4092 4096 

4093Claude Code は `gitOperation.commit.branch` を git のコミットサマリー行で名付けられたブランチに設定し、デタッチされた HEAD でコミットされたブランチの場合は省略します。このフィールドは Agent SDK v0.3.227 以降が必要です。Claude Code は `gh pr reopen` コマンドを `reopened` PR アクションとして報告します。これは Agent SDK v0.3.234 以降が必要です。4097Claude Code は `gitOperation.commit.branch` を git のコミットサマリー行で名付けられたブランチに設定し、デタッチされた HEAD でコミットされたブランチの場合は省略します。このフィールドは Agent SDK v0.3.227 以降が必要です。Claude Code は `gh pr reopen` コマンドを `reopened` PR アクションとして報告します。これは Agent SDK v0.3.234 以降が必要です。

4094 4098 

agent-view.md +2 −20

Details

8 8 

9`claude agents` で開くエージェントビューは、すべてのバックグラウンドセッションの 1 つの画面です。実行中のもの、入力が必要なもの、完了したものが表示されます。新しいセッションをディスパッチし、トランスクリプトをスクロールする代わりに一目でセッションの状態を確認し、セッションが必要とするときだけ介入します。各バックグラウンドセッションは完全な Claude Code の会話であり、ターミナルが接続されていなくてもバックグラウンドで実行し続けるため、いつでも開いて、返信して、去ることができます。9`claude agents` で開くエージェントビューは、すべてのバックグラウンドセッションの 1 つの画面です。実行中のもの、入力が必要なもの、完了したものが表示されます。新しいセッションをディスパッチし、トランスクリプトをスクロールする代わりに一目でセッションの状態を確認し、セッションが必要とするときだけ介入します。各バックグラウンドセッションは完全な Claude Code の会話であり、ターミナルが接続されていなくてもバックグラウンドで実行し続けるため、いつでも開いて、返信して、去ることができます。

10 10 

11<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-light.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=7a186c96ed47d6700d084d77e786be65" className="dark:hidden" alt="ターミナルのエージェントビュー:ヘッダーは Claude Code v2.1.140、モデル、作業ディレクトリ、および概要カウントを表示します。セッションは「入力が必要」、「実行中」、「完了」の下にグループ化され、下部にディスパッチ入力とキーボードヒントのフッターがあります。" width="1772" height="780" data-path="images/agent-view-light.png" />11<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-light.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=d6905012bee31f3e6b3920b09c05dd02" className="dark:hidden" alt="ターミナルのエージェントビュー。上部の行は、入力を待機しているセッション、実行中のセッション、完了したセッションの数をカウントします。4 つのセッションは「入力が必要」、「実行中」、「完了」の下にグループ化されています。各行はセッションの名前、最新のステータスまたは質問、および時間を表示します。下部には新しいタスクを説明するための入力と、キーボードヒントの行があります。" width="1872" height="680" data-path="images/agent-view-light.png" />

12 12 

13<img src="https://mintcdn.com/claude-code/1B48Qz2Z9hac4SLG/images/agent-view-dark.png?fit=max&auto=format&n=1B48Qz2Z9hac4SLG&q=85&s=a5bed7434bae368faea3a8f023b52aa2" className="hidden dark:block" alt="ターミナルのエージェントビュー:ヘッダーは Claude Code v2.1.140、モデル、作業ディレクトリ、および概要カウントを表示します。セッションは「入力が必要」、「実行中」、「完了」の下にグループ化され、下部にディスパッチ入力とキーボードヒントのフッターがあります。" width="1772" height="780" data-path="images/agent-view-dark.png" />13<img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-dark.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=fc3c195bfc57e313ced1f1beb36cee93" className="hidden dark:block" alt="ターミナルのエージェントビュー。上部の行は、入力を待機しているセッション、実行中のセッション、完了したセッションの数をカウントします。4 つのセッションは「入力が必要」、「実行中」、「完了」の下にグループ化されています。各行はセッションの名前、最新のステータスまたは質問、および時間を表示します。下部には新しいタスクを説明するための入力と、キーボードヒントの行があります。" width="1872" height="680" data-path="images/agent-view-dark.png" />

14 14 

15Claude が複数の独立したタスクに対して、あなたが毎ステップを監視することなく作業できる場合に、エージェントビューを使用します。バグ修正、プルリクエストレビュー、不安定なテストの調査を 3 つの行としてディスパッチし、別のウィンドウで作業を続け、行が入力が必要であることを示すか、結果が得られたときに確認します。15Claude が複数の独立したタスクに対して、あなたが毎ステップを監視することなく作業できる場合に、エージェントビューを使用します。バグ修正、プルリクエストレビュー、不安定なテストの調査を 3 つの行としてディスパッチし、別のウィンドウで作業を続け、行が入力が必要であることを示すか、結果が得られたときに確認します。

16 16 


966 966 

967Claude Code は、`Enter` からまたは `claude attach` から実行される[シェルコマンド](#run-a-shell-command)を実行している行を再開しません。これはコマンドを再度実行するためです。行のメッセージと `claude attach` の両方は、コマンドが再度実行されないことを示しています。967Claude Code は、`Enter` からまたは `claude attach` から実行される[シェルコマンド](#run-a-shell-command)を実行している行を再開しません。これはコマンドを再度実行するためです。行のメッセージと `claude attach` の両方は、コマンドが再度実行されないことを示しています。

968 968 

969<h4 id="terminal-host-died">

970 ターミナルホストが停止した

971</h4>

972 

973Linux と WSL では、スーパーバイザーはセッションを開くかどうかに関わらず数秒ごとに各ホストプロセスをチェックし、プロセスが終了しているがスーパーバイザーへの接続が閉じられていない場合、セッションを失敗としてマークします。

974 

975* エージェントビューでは、行は `terminal host process died — press Enter to restart` を表示します。それで `Enter` を押すと、Claude Code はセッションを新しいホストプロセスで再開します。

976* シェルから、`claude attach <id>` は既に失敗としてマークされたセッションを再開します。それ以外の場合は原因を報告して終了し、`claude attach <id>` を再度実行するよう指示します。

977 

978<h4 id="session-isn’t-responding">

979 セッションが応答していない

980</h4>

981 

982スーパーバイザーが開いた状態を受け入れるが、約 10 秒間出力が到着しない場合、Claude Code は試みを終了し、再開を提供します。単にスタールしたセッション(例えば、マシンスリープ全体)はこの提供に到達しません。スーパーバイザーは[開く時に自動的にそれを再開します](#read-session-state)。

983 

984* エージェントビューでは、フッターは `Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).` を表示します。同じ行で再度 `Enter` を押すと、Claude Code は応答しないプロセスを停止し、セッションを再開します。その 2 番目の押下なしに何も停止しません。

985* シェルから、`claude attach <id>` は原因を報告して終了し、`claude stop <id>` を実行してから `claude attach <id>` を実行するよう指示します。

986 

987<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">969<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

988 セッションが `possibly low memory` ノートで開始前に失敗する970 セッションが `possibly low memory` ノートで開始前に失敗する

989</h3>971</h3>

Details

384 384 

385`opus` などのモデルエイリアスはピンとして機能せず、Claude Code が認識しないモデル ID(アプリケーション推論プロファイル ARN など)も同様です。385`opus` などのモデルエイリアスはピンとして機能せず、Claude Code が認識しないモデル ID(アプリケーション推論プロファイル ARN など)も同様です。

386 386 

387これらのチェックがアカウントが呼び出せないモデルを見つけた場合、Claude Code はこのマシンで最大 1 日間その拒否を記憶し、その時間中は Amazon Bedrock に再度問い合わせることなく記憶されたモデルをスキップして起動します。Claude Code は、現在のデフォルトモデルの記憶された拒否を、最後のチェック以降 10 分が経過すると起動時に再度チェックするため、管理者が再度有効にしたデフォルトが戻ります。メモリをオフにするには、[`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/ja/env-vars)を設定してください。

388 

389<h3 id="when-a-model-is-disabled-mid-session">

390 モデルがセッション中に無効化される場合

391</h3>

392 

393セッションが実行されているモデルへのアカウントアクセスが失われた場合(例えば、管理者が Amazon Bedrock アカウントでそれを無効化した場合)、Claude Code は各リクエストが失敗する代わりにセッションを別のモデルに切り替え、`Switched to <fallback> because <model> is not available` を表示します。スタートアップフォールバックと同じモデルを試します。同じティアの以前のバージョンを最初に試し、Opus セッションで Opus バージョンが利用できない場合、デフォルト Sonnet モデルを試します。

394 

395切り替えは、ピン留めしていないティアにのみ適用されます。これはスタートアップフォールバックと同じ条件です。選択した特定のバージョン、または[アプリケーション推論プロファイル ARN](#map-each-model-version-to-an-inference-profile)でセッションを実行している場合、そのモデルを保持し、フォールバックモデルチェーンがないため、リクエストは失敗します。[自動モード](/docs/ja/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)では、Claude Code は Amazon Bedrock で自動モードがサポートするモデルにのみ切り替えます。それらのモデルも利用できない場合、リクエストは[AWS 認証失敗](/docs/ja/errors#aws-authentication-failed)で失敗し、モデルを有効にするためのヒントが表示されます。

396 

397設定した[フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains)はティア切り替えを置き換えます。これらの拒否では Claude Code は設定したフォールバックに切り替えます。拒否されたリクエストが切り替わるのではなく失敗するようにするには、[`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/ja/env-vars)を設定してください。設定したフォールバックチェーンはこれらの拒否で切り替わります。すべての拒否されたリクエストが失敗するようにしたい場合は、チェーンも削除してください。

398 

387<h2 id="cross-region-inference-profile-prefixes">399<h2 id="cross-region-inference-profile-prefixes">

388 クロスリージョン推論プロファイルプレフィックス400 クロスリージョン推論プロファイルプレフィックス

389</h2>401</h2>

artifacts.md +1 −1

Details

398| [環境変数](/docs/ja/env-vars) | `CLAUDE_CODE_DISABLE_ARTIFACT=1` を設定します |398| [環境変数](/docs/ja/env-vars) | `CLAUDE_CODE_DISABLE_ARTIFACT=1` を設定します |

399| [権限ルール](/docs/ja/permissions) | `permissions.deny` に `Artifact` を追加します |399| [権限ルール](/docs/ja/permissions) | `permissions.deny` に `Artifact` を追加します |

400 400 

401[`--settings`](/docs/ja/cli-reference#cli-flags) ファイルで、または `CLAUDE_CODE_DISABLE_ARTIFACT` でアーティファクトをオフにした場合、あるいは管理者が [管理設定](/docs/ja/server-managed-settings) でアーティファクトをオフにした場合、どの設定ファイルもアーティファクトを再度オンにすることはできません。v2.1.242 より前では、[優先度スタック](/docs/ja/settings#settings-precedence) の上位にあるファイルが、下位のファイルで `"enableArtifact": false` が設定されていても、アーティファクトを再度オンにすることができました。401[`--settings`](/docs/ja/cli-reference#cli-flags) ファイルで、または `CLAUDE_CODE_DISABLE_ARTIFACT` でアーティファクトをオフにした場合、あるいは管理者が [管理設定](/docs/ja/server-managed-settings) でアーティファクトをオフにした場合、どの設定ファイルもアーティファクトを再度オンにすることはできません。

402 402 

403プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` で `"enableArtifact": false` を設定して、そのプロジェクト内のセッションのアーティファクトをオフにすることもできます。どちらのファイルでも `"enableArtifact": true` はアーティファクトを再度オンにしません。プロジェクトおよびローカル設定でこのキーを尊重するには、Claude Code v2.1.242 以降が必要です。403プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` で `"enableArtifact": false` を設定して、そのプロジェクト内のセッションのアーティファクトをオフにすることもできます。どちらのファイルでも `"enableArtifact": true` はアーティファクトを再度オンにしません。プロジェクトおよびローカル設定でこのキーを尊重するには、Claude Code v2.1.242 以降が必要です。

404 404 

Details

194* **Amazon Bedrock などのクラウドプロバイダーセッション**: `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 認証情報、または以前の Claude Console ログインによって保存された API キーがマシン上にまだ存在する間のみブロックされます。それを削除するとセッションが開始します。これらのセッションはクラウドプロバイダーに対して認証され、クラウドプロバイダーのアクセスポリシーがそれらを管理します194* **Amazon Bedrock などのクラウドプロバイダーセッション**: `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 認証情報、または以前の Claude Console ログインによって保存された API キーがマシン上にまだ存在する間のみブロックされます。それを削除するとセッションが開始します。これらのセッションはクラウドプロバイダーに対して認証され、クラウドプロバイダーのアクセスポリシーがそれらを管理します

195* **[Anthropic プロファイルまたはフェデレーション認証情報](#anthropic-profiles-and-federation-credentials)**: `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 認証情報、または以前の Claude Console ログインによって保存された API キーもマシン上に存在する場合を除き、ブロックされません。キーはプロファイルが属する組織を確認しません195* **[Anthropic プロファイルまたはフェデレーション認証情報](#anthropic-profiles-and-federation-credentials)**: `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` 認証情報、または以前の Claude Console ログインによって保存された API キーもマシン上に存在する場合を除き、ブロックされません。キーはプロファイルが属する組織を確認しません

196 196 

197<h3 id="restrict-which-api-providers-a-machine-may-use">

198 マシンが使用できる API プロバイダーを制限する

199</h3>

200 

201[管理設定](/docs/ja/managed-settings)の [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) は、Anthropic API、Amazon Bedrock、LLM ゲートウェイなど、管理マシンが Claude に到達できるサービスをリストします。これは `forceLoginMethod` と `forceLoginOrgUUID` を補完します。これらは、セッションが Anthropic と通信するときに使用するアカウントを管理します。Claude Code v2.1.285 以降が必要です。

202 

203```json managed-settings.json theme={null}

204{

205 "forceLoginMethod": "claudeai",

206 "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],

207 "allowedProviders": ["anthropic", "bedrock"]

208}

209```

210 

211このファイルを使用すると、claude.ai 組織にサインインした開発者または Amazon Bedrock 用に設定された開発者は正常に起動します。他のプロバイダー用に設定されたセッションは起動時に拒否され、実行中のセッションがそのセッションに切り替わると、次のリクエストで拒否されます。[管理設定がこの API プロバイダーを許可していません](/docs/ja/errors#managed-settings-dont-allow-this-api-provider)は各メッセージを表示します。

212 

213* **LLM ゲートウェイまたはプロキシを許可する**: `"customEndpoint"` をリストし、同じソースの管理 `env` ブロックでゲートウェイの URL を設定します。[設定リファレンス](/docs/ja/settings-reference#allowedproviders)はすべての値をリストし、どのエンドポイント変数が管理 `env` ピンを必要とするかを示します。

214* **管理マシンにデプロイする**: リストをポリシーの残りを含む管理ソースに配置します。エントリの [スコープ注記](/docs/ja/settings-reference#allowedproviders)は、サーバー管理リストがそれとどのように組み合わされるかを示します。

215* **サーバー管理設定のみ**: [サーバー管理設定](/docs/ja/server-managed-settings)でのみ設定するリストは、組織の設定を取得するセッションにのみ到達するため、デバイス管理で到達できないマシンの利便性として扱い、強制として扱わないでください。[プラットフォーム可用性](/docs/ja/server-managed-settings#platform-availability)はどのセッションがそれらを取得するかをリストします。

216 

197<h2 id="credential-management">217<h2 id="credential-management">

198 認証情報管理218 認証情報管理

199</h2>219</h2>

Details

285 `/permissions` から編集ルール285 `/permissions` から編集ルール

286</h2>286</h2>

287 287 

288設定ファイルを開かずに分類器ルールを表示および編集するには、[`/permissions`](/docs/ja/permissions#manage-permissions) を実行して **Auto mode** タブを選択します。このタブは Claude Code v2.1.246 以降が必要であり、[auto mode がセッションで利用可能](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)な場合にのみ表示されます。288設定ファイルを開かずに分類器ルールと `environment` エントリを表示および編集するには、[`/permissions`](/docs/ja/permissions#manage-permissions) を実行して **Auto mode** タブを選択します。このタブは Claude Code v2.1.246 以降が必要であり、[auto mode がセッションで利用可能](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)な場合にのみ表示されます。

289 289 

290このタブには、[分類器が設定を読み込むスコープ](#where-the-classifier-reads-configuration)のそれぞれから `allow`、`soft_deny`、`hard_deny`、および `environment` エントリが一覧表示され、各セクションに対して組み込みルールが有効かどうかが表示されます。Claude Code は [管理設定](/docs/ja/server-managed-settings)または `--settings` フラグからのエントリを読み取り専用として表示し、タブで行ったすべての変更を `~/.claude/settings.json` に保存します。タブから以下の操作ができます。290Claude Code は [管理設定](/docs/ja/server-managed-settings)または `--settings` フラグからのエントリを読み取り専用として表示し、タブで行ったすべての変更を `~/.claude/settings.json` に保存します。

291 

292* `allow`、`soft_deny`、および `hard_deny` セクションのルールを追加、編集、または削除します。セクションに最初のルールを追加すると、Claude Code は `"$defaults"` も挿入して、[組み込みルール](#override-the-block-and-allow-rules)が有効なままになるようにします。

293* `allow`、`soft_deny`、または `hard_deny` の組み込みルールをオフにするか、再度オンにします。Claude Code は、そのセクションのリストに `"$defaults"` を追加または削除することで選択を記録するため、セクションの組み込みルールをオフにする前に、少なくとも 1 つの独自ルールが必要です。

294* `environment` エントリをエディタで 1 つのドキュメントとして編集します。まだ `environment` エントリを設定していない場合、Claude Code は最初に組み込み環境を置き換えるかどうかを尋ね、その後、組み込みテキスト全体でエディタを開きます。保存すると、Claude Code はドキュメントで `autoMode.environment` 配列を置き換えます。`"$defaults"` 行を含めて、[組み込みエントリを保持](#define-trusted-infrastructure)します。

295 291 

296<h2 id="route-all-shell-commands-through-the-classifier">292<h2 id="route-all-shell-commands-through-the-classifier">

297 すべてのシェルコマンドを分類器を通してルーティングする293 すべてのシェルコマンドを分類器を通してルーティングする

Details

35* [`managed`](#managed):IdP グループ別の管理設定ポリシー35* [`managed`](#managed):IdP グループ別の管理設定ポリシー

36* [`telemetry`](#telemetry):オブザーバビリティスタックへの OTLP フォワーディング36* [`telemetry`](#telemetry):オブザーバビリティスタックへの OTLP フォワーディング

37* [`access_control`、`limits`、`timeouts`、`rate_limits`](#http-tuning):IP 許可/拒否、リクエストサイズ上限、アップストリーム初バイト到達時間、IP ごとのサインイン制限37* [`access_control`、`limits`、`timeouts`、`rate_limits`](#http-tuning):IP 許可/拒否、リクエストサイズ上限、アップストリーム初バイト到達時間、IP ごとのサインイン制限

38* [`load_test_mode`](#load_test_mode):モデルプロバイダーを呼び出さずにゲートウェイをロードテストする

38 39 

39<h2 id="secret-expansion">40<h2 id="secret-expansion">

40 シークレット展開41 シークレット展開


55 `listen`56 `listen`

56</h3>57</h3>

57 58 

58`listen` ブロックはゲートウェイがサービスを提供する場所を制御します。バインドアドレスとポート、外部から見えるオリジン、およびオプションの TLS 終了です。59`listen` ブロックは、ゲートウェイがサービスを提供する場所を制御します。バインドアドレスとポート、外部から見えるオリジン、およびオプションの TLS 終了を指定します。

59 60 

60| フィールド | 必須 | 説明 |61| フィールド | 必須 | 説明 |

61| - | - | - |62| - | - | - |

62| `host` | いいえ | バインドアドレス。デフォルト `0.0.0.0`。 |63| `host` | いいえ | バインドアドレス。デフォルト `0.0.0.0`。 |

63| `port` | いいえ | バインドポート。デフォルト `8080`。 |64| `port` | いいえ | バインドポート。デフォルト `8080`。 |

64| `public_url` | `host` がループバックでない場合を除き必須 | 外部から見える `https://` オリジン。IdP の `redirect_uri` と検出メタデータを構築するために使用されます。`host` がループバックアドレスでない場合は常に必須です。TLS が ALB、Ingress、Cloud Run などのプロキシで終了するか、`tls` を通じてゲートウェイ自体で終了するかに関わらず必須です。ゲートウェイは `X-Forwarded-*` ヘッダーから独自のオリジンを導出することはありません。これらはクライアントがなりすまし可能です。これなしではブート失敗します。以下の `trusted_proxies` はクライアント IP 解決のみを制御します。また、[テレメトリ](#telemetry)を有効にするためにも必須です。ゲートウェイはこの URL からクライアントにプッシュする OTLP エンドポイントを構築するためです。 |65| `public_url` | `host` がループバックでない場合は必須 | 外部から見える `https://` オリジン。IdP の `redirect_uri` と検出メタデータを構築するために使用されます。`host` がループバックアドレスでない場合は常に必須です。TLS が ALB、Ingress、Cloud Run などのプロキシで終了するか、`tls` を通じてゲートウェイ自体で終了するかに関わらず必須です。ゲートウェイは `X-Forwarded-*` ヘッダーから独自のオリジンを導出することはありません。これらはクライアントがなりすまし可能です。これなしではブート失敗します。以下の `trusted_proxies` はクライアント IP 解決のみを制御します。また、[テレメトリ](#telemetry)を有効にするためにも必須です。ゲートウェイはこの URL からクライアントにプッシュする OTLP エンドポイントを構築するためです。 |

65| `tls.cert` / `tls.key` | いいえ | ゲートウェイが TLS を自身で終了する場合の PEM パス |66| `tls.cert` / `tls.key` | いいえ | ゲートウェイが TLS を自身で終了する場合の PEM パス |

66| `trusted_proxies` | いいえ | ゲートウェイの前にあるロードバランサーの CIDR または IP。設定されている場合、ゲートウェイはこれらのピアからのみ `X-Forwarded-For` を信頼し、IP ごとのレート制限と監査のために実際のクライアント IP を記録します。nginx の `set_real_ip_from` と同等です。`X-Forwarded-For` エントリが `ipv4:port` または `[ipv6]:port` として書かれている場合(一部のロードバランサーがそうするように)、ポートを削除して読み取られます。ポートが追加された括弧なしの IPv6 アドレスは、異なるアドレスとして読み取られるか、まったく読み取られない可能性があるため、そのフォームを書き込むプロキシのポートオプションをオフにしてください。 |67| `trusted_proxies` | いいえ | ゲートウェイの前にあるロードバランサーの CIDR または IP。設定されている場合、ゲートウェイはこれらのピアからのみ `X-Forwarded-For` を信頼し、IP ごとのレート制限と監査のために実際のクライアント IP を記録します。nginx の `set_real_ip_from` と同等です。`X-Forwarded-For` エントリが `ipv4:port` または `[ipv6]:port` として書かれている場合(一部のロードバランサーがそうするように)、ポートを削除して読み込まれます。ポートが付加されたブラケットなしの IPv6 アドレスは、異なるアドレスとして読み込まれるか、まったく読み込まれない可能性があるため、そのフォームを書き込むプロキシのポートオプションをオフにしてください。 |

67 68 

68<h3 id="oidc">69<h3 id="oidc">

69 `oidc`70 `oidc`


75 76 

76| フィールド | 必須 | 説明 |77| フィールド | 必須 | 説明 |

77| - | - | - |78| - | - | - |

78| `issuer` | はい | OIDC 検出ベース。`/.well-known/openid-configuration` で検出を提供する必要があります。本番環境では HTTPS を使用してください。ゲートウェイは `http://` 発行者を受け入れます。`http://localhost:8081` などのループバック発行者は、`CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` がゲートウェイの環境に設定されていない限り、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)によって拒否されます。 |79| `issuer` | はい | OIDC 検出ベース。`/.well-known/openid-configuration` で検出を提供する必要があります。本番環境では HTTPS を使用してください。ゲートウェイは `http://` 発行者を受け入れます。`http://localhost:8081` などのループバック発行者は、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)によって拒否されます。ただし、ゲートウェイの環境で `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` が設定されている場合を除きます。 |

79| `client_id` / `client_secret` | はい | OAuth クライアント登録から |80| `client_id` / `client_secret` | はい | OAuth クライアント登録から取得 |

80| `allowed_email_domains` | いいえ | `email` クレームがこれらのドメインのいずれかにない id\_token を拒否します。大文字と小文字を区別しません。マルチテナント IdP の設定ミスに対する多層防御です。この設定とは無関係に、`email_verified` クレームが明示的に `false` である id\_token は常に拒否されます。 |81| `allowed_email_domains` | いいえ | `email` クレームがこれらのドメインのいずれかに含まれていない id\_token を拒否します。大文字と小文字を区別しません。マルチテナント IdP の設定ミスに対する多層防御です。この設定とは無関係に、`email_verified` クレームが明示的に `false` である id\_token は常に拒否されます。 |

81| `allowed_groups` | いいえ | サインインを `groups_claim` に対してマッチされるこれらの IdP グループのメンバーに制限します。許可されたメールドメイン内のユーザーがこれらのグループのいずれにも属していない場合は拒否されます。IdP がグループクレームを発行する必要があります。マッチングは、そのクレーム内の値に対する正確で大文字と小文字を区別する文字列比較であり、ゲートウェイはネストされたグループを展開しません。サブグループのメンバーを許可するには、ここにサブグループをリストするか、IdP を設定してフラット化されたメンバーシップを発行してください。 |82| `allowed_groups` | いいえ | サインインをこれらの IdP グループのメンバーに制限します。`groups_claim` に対してマッチングされます。許可されたメールドメイン内にいるが、これらのグループのいずれにも属していないユーザーは拒否されます。IdP がグループクレームを発行する必要があります。マッチングは、そのクレーム内の値に対する正確で大文字と小文字を区別する文字列比較です。ゲートウェイはネストされたグループを展開しません。サブグループのメンバーを許可するには、ここにサブグループをリストするか、IdP を設定してフラット化されたメンバーシップを発行してください。 |

82| `groups_claim` | いいえ | グループメンバーシップを含む id\_token クレーム。デフォルト `groups`。Microsoft Entra は `roles` の下にアプリロールを発行します。フラットキーまたは `/resource_access/gateway/roles` などのネストされたクレーム用の RFC 6901 JSON ポインターを受け入れます。 |83| `groups_claim` | いいえ | グループメンバーシップを含む id\_token クレーム。デフォルト `groups`。Microsoft Entra はアプリロールを `roles` の下に発行します。フラットキーまたは `/resource_access/gateway/roles` などのネストされたクレーム用の RFC 6901 JSON ポインタを受け入れます。 |

83| `google_groups` | いいえ | Google Workspace Admin SDK Directory API を通じてサインインしたユーザーのグループを検索します。Google の id\_token はグループクレームを含まないためです。`service_account_json_path` を `https://www.googleapis.com/auth/admin.directory.group.readonly` スコープでドメイン全体の委任を持つサービスアカウントキーファイルに設定し、`admin_email` をサービスアカウントが偽装する Workspace 管理者に設定します。Directory API は実際の管理者サブジェクトを必要とします。各ユーザーのグループメールアドレスがそのグループクレームになるため、`allowed_groups` と `managed.policies.match.groups` はグループメールでマッチします。 |84| `google_groups` | いいえ | Google Workspace Admin SDK Directory API を通じてサインインしたユーザーのグループを検索します。Google の id\_token はグループクレームを含まないためです。`service_account_json_path` を `https://www.googleapis.com/auth/admin.directory.group.readonly` スコープでドメイン全体の委任を持つサービスアカウントキーファイルに設定し、`admin_email` を Workspace 管理者に設定します。サービスアカウントが偽装します。Directory API は実際の管理者サブジェクトが必要です。各ユーザーのグループメールアドレスがそのグループクレームになるため、`allowed_groups` と `managed.policies.match.groups` はグループメールでマッチングします。 |

84| `email_claim` | いいえ | ユーザーのメールを含む id\_token クレーム。デフォルト `email`。ADFS や Entra B2C などの一部の IdP は、代わりに `upn` または `preferred_username` を発行します。フラットキー、JSON ポインター、または最初に存在するキーが使用されるフォールバックキーのリストを受け入れます。 |85| `email_claim` | いいえ | ユーザーのメールを含む id\_token クレーム。デフォルト `email`。ADFS や Entra B2C などの一部の IdP は、代わりに `upn` または `preferred_username` を発行します。フラットキー、JSON ポインタ、または最初に存在するキーが使用されるフォールバックキーのリストを受け入れます。 |

85| `scopes` | いいえ | ゲートウェイが要求する OIDC スコープの完全なオーバーライド。デフォルト `[openid, profile, email, offline_access]`。IdP が認識しないスコープを拒否する場合、またはグループやメールを発行するためにカスタムスコープが必要な場合に設定します。`openid` を含める必要があります。`offline_access` を削除するとリフレッシュトークンが無効になるため、開発者は `session.ttl_hours` ごとにブラウザログインを再実行します。Google のリフレッシュトークンフローなどの IdP ごとのスコープレシピについては、[アイデンティティプロバイダーのセットアップ](/docs/ja/claude-apps-gateway-deploy#identity-provider-setup)を参照してください。 |86| `scopes` | いいえ | ゲートウェイが要求する OIDC スコープの完全なオーバーライド。デフォルト `[openid, profile, email, offline_access]`。IdP が認識しないスコープを拒否する場合、またはグループまたはメールを発行するためにカスタムスコープが必要な場合に設定します。`openid` を含める必要があります。`offline_access` を削除するとリフレッシュトークンが無効になるため、開発者は `session.ttl_hours` ごとにブラウザログインを再実行します。IdP ごとのスコープレシピ(Google のリフレッシュトークンフローなど)については、[アイデンティティプロバイダーのセットアップ](/docs/ja/claude-apps-gateway-deploy#identity-provider-setup)を参照してください。 |

86| `scope_on_refresh` | いいえ | リフレッシュトークンを交換するときに、サインインリクエストと同じリストで `scope` も送信します。デフォルト `false`。リフレッシュリクエストは `scope` を省略します。ほとんどの IdP はすべてのリフレッシュで id\_token を返し、これを必要としません。IdP が再度 `openid` を要求された場合にのみリフレッシュ時に id\_token を返す場合は `true` に設定します。Okta はそのリフレッシュグラントについてこれを文書化しています。id\_token がない場合、すべてのリフレッシュはリフレッシュされたアクセストークンを受け入れる IdP の userinfo エンドポイントに依存します。グループでサインインまたはポリシーマッチをゲートし、IdP のリフレッシュ時 id\_token がそれらを省略する場合は、`userinfo_fallback: true` も設定して、ゲートウェイが userinfo エンドポイントからそれらを入力するようにしてください。許可されたスコープが要求されたスコープより少ない IdP は、これがオンの場合、既存のセッションを含めて `invalid_scope` でリフレッシュを拒否できます。`scopes` にエントリを追加した後にリフレッシュが `token_endpoint` で失敗し始めた場合は、キーを設定解除してください。ゲートウェイサーバーで Claude Code v2.1.260 以降が必要です。 |87| `scope_on_refresh` | いいえ | リフレッシュトークンを交換するときに、サインインリクエストと同じリストで `scope` も送信します。デフォルト `false`:リフレッシュリクエストは `scope` を省略します。ほとんどの IdP はすべてのリフレッシュで id\_token を返し、これを必要としません。IdP がリフレッシュ時に id\_token を返す場合にのみ `true` に設定します。`openid` を再度要求された場合。Okta はそのリフレッシュグラントについてこれを文書化しています。id\_token がない場合、すべてのリフレッシュは IdP の userinfo エンドポイントが更新されたアクセストークンを受け入れることに依存します。サインインをゲートしたり、グループのポリシーをマッチングしたりする場合、IdP のリフレッシュ時 id\_token がそれらを省略する場合は、`userinfo_fallback: true` も設定して、ゲートウェイが userinfo エンドポイントからそれらを入力するようにしてください。要求されたスコープより少ないスコープを付与した IdP は、これがオンの場合、既存のセッションの場合でも `invalid_scope` でリフレッシュを拒否できます。`token_endpoint` でリフレッシュが失敗し始めた場合は、キーを設定した後、キーを設定解除してください。ゲートウェイサーバーで Claude Code v2.1.260 以降が必要です。 |

87| `extra_auth_params` | いいえ | IdP 認可リクエストに逐語的に追加される追加クエリパラメーター。これは、Google リフレッシュトークンの `access_type: offline`、一部の Entra テナントの `domain_hint`、またはステップアップフローの `acr_values` など、IdP 固有の動作のオーバーライドメカニズムです。ゲートウェイが管理するプロトコルパラメーターはオーバーライドできません。`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode`、`client_id`。 |88| `extra_auth_params` | いいえ | IdP 認可リクエストに逐語的に追加される追加クエリパラメータ。これは、Google リフレッシュトークンの `access_type: offline`、一部の Entra テナントの `domain_hint`、またはステップアップフローの `acr_values` など、IdP 固有の動作のオーバーライドメカニズムです。ゲートウェイが管理するプロトコルパラメータはオーバーライドできません:`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode`、および `client_id`。 |

88| `userinfo_fallback` | いいえ | id\_token がメールまたはグループを省略する場合、`/userinfo` からそれらを取得します。Keycloak 軽量アクセストークン、Okta org サーバー、ADFS 最小トークンに必要です。id\_token は権威的なままです。userinfo はギャップのみを埋めます。デフォルト `false`。 |89| `userinfo_fallback` | いいえ | id\_token がメールまたはグループを省略する場合、`/userinfo` からそれらを取得します。Keycloak 軽量アクセストークン、Okta org サーバー、および ADFS 最小トークンに必要です。id\_token は権限のままです。userinfo はギャップのみを埋めます。デフォルト `false`。 |

89| `use_pkce` | いいえ | 認可リクエストで PKCE(S256)チャレンジを送信します。デフォルト `true`。IdP がこの機密クライアントの PKCE を拒否する場合のみ `false` に設定します。 |90| `use_pkce` | いいえ | 認可リクエストで PKCE(S256)チャレンジを送信します。デフォルト `true`。IdP がこの機密クライアントの PKCE を拒否する場合のみ `false` に設定します。 |

90| `clock_skew_seconds` | いいえ | id\_token 時間クレームを検証するときにクロックドリフトを許容します。デフォルト `0`。厳密です。サインイン直後にホスト/IdP クロックスキューのため「トークン期限切れ/まだ有効でない」エラーが表示される場合は、これを上げてください。 |91| `clock_skew_seconds` | いいえ | id\_token 時間クレームを検証するときにクロックドリフトを許容します。デフォルト `0`(厳密)。サインイン直後にホスト/IdP クロックスキューのため「トークン期限切れ/まだ有効でない」エラーが表示される場合は、これを上げてください。 |

91| `token_endpoint_auth_method` | いいえ | トークンエンドポイント認証方法をオーバーライドします。`client_secret_basic` または `client_secret_post` を受け入れます。デフォルトで自動ネゴシエーションされます。 |92| `token_endpoint_auth_method` | いいえ | トークンエンドポイント認証方法をオーバーライドします。`client_secret_basic` または `client_secret_post` を受け入れます。デフォルトで自動ネゴシエーション。 |

92| `id_token_signed_response_alg` | いいえ | 予想される id\_token 署名アルゴリズム。デフォルト `RS256`。ES256、PS256、または EdDSA で署名する IdP に設定します。 |93| `id_token_signed_response_alg` | いいえ | 予想される id\_token 署名アルゴリズム。デフォルト `RS256`。ES256、PS256、または EdDSA で署名する IdP に設定します。 |

93| `additional_authorized_parties` | いいえ | `client_id` を超えて受け入れる追加の `azp` 値。Keycloak ブローカーとトークン交換フロー用 |94| `additional_authorized_parties` | いいえ | `client_id` を超えて受け入れる追加の `azp` 値。Keycloak ブローカーとトークン交換フロー用 |

94| `discovery_url` | いいえ | `issuer` から導出する代わりに、この URL から検出ドキュメントを取得します。発行者ホストを書き換えるプロキシの背後にある IdP 用です。パスは `/.well-known/` を含む必要があります。 |95| `discovery_url` | いいえ | `issuer` から導出する代わりに、この URL から検出ドキュメントを取得します。発行者ホストを書き換えるプロキシの背後にある IdP の場合。パスは `/.well-known/` を含む必要があります。 |

95| `use_proxy` | いいえ | ゲートウェイ独自の IdP リクエストを `HTTPS_PROXY` または `HTTP_PROXY` のフォワードプロキシを通じて送信し、`NO_PROXY` を尊重します。設定解除または `false` の場合、これらのリクエストは直接実行されます。v2.1.227 以降が必要です。以下の[フォワードプロキシを通じた IdP リクエスト](#idp-requests-through-a-forward-proxy)を参照してください。 |96| `use_proxy` | いいえ | ゲートウェイ独自の IdP リクエストを `HTTPS_PROXY` または `HTTP_PROXY` のフォワードプロキシを通じて送信し、`NO_PROXY` を尊重します。`false` はそれらのリクエストを直接に保ちます。v2.1.227 以降が必要です。以下の[フォワードプロキシを通じた IdP リクエスト](#idp-requests-through-a-forward-proxy)を参照してください。 |

96| `form_action_origins` | いいえ | `/device` ページの `Content-Security-Policy: form-action` ディレクティブの追加オリジン。ゲートウェイはすでに `'self'` と検出された `authorization_endpoint` オリジンを許可していますが、Chrome は `form-action` をリダイレクトチェーン全体に対して強制します。IdP が Azure AD が ADFS にフェデレーションされている場合、ハブスポーク Okta、または企業 SSO インターセプターなど、2 番目のホストを通じてリダイレクトする場合は、認可リクエストがリダイレクトされる可能性があるすべてのオリジンをリストします。 |97| `form_action_origins` | いいえ | `/device` ページの `Content-Security-Policy: form-action` ディレクティブの追加オリジン。ゲートウェイはすでに `'self'` と検出された `authorization_endpoint` オリジンを許可していますが、Chrome は全リダイレクトチェーンに対して `form-action` を強制します。IdP が Azure AD が ADFS にフェデレーションされている、ハブスポーク Okta、または企業 SSO インターセプターなど、2 番目のホストを通じてリダイレクトする場合、認可リクエストがリダイレクトする可能性があるすべてのオリジンをリストします。 |

97| `ca_cert_pem` | いいえ | ファイルへのパスではなく、PEM エンコードされた CA 証明書自体。IdP リクエストのみのシステムトラストストアを置き換えます。マウントされたファイルを読み込むには、`${file:/etc/gateway/idp-ca.pem}` と書きます。企業 PKI の背後にある Keycloak または Dex に使用します。 |98| `ca_cert_pem` | いいえ | ファイルへのパスではなく、PEM エンコードされた CA 証明書自体。IdP リクエストのみのシステムトラストストアを置き換えます。マウントされたファイルを読み込むには、`${file:/etc/gateway/idp-ca.pem}` と書きます。企業 PKI の背後にある Keycloak または Dex に使用します。 |

98 99 

99<h4 id="idp-requests-through-a-forward-proxy">100<h4 id="idp-requests-through-a-forward-proxy">

100 フォワードプロキシを通じた IdP リクエスト101 フォワードプロキシを通じた IdP リクエスト

101</h4>102</h4>

102 103 

103推論アップストリームはすべてのバージョンで `HTTPS_PROXY` と `HTTP_PROXY` を尊重します。IdP、検出、JWKS、トークン、userinfo へのゲートウェイ独自のリクエストは、`oidc.use_proxy: true` を設定しない限り直接実行されます。これには v2.1.227 以降が必要です。プロキシ変数が設定され、`use_proxy` が設定解除され、発行者が `NO_PROXY` でカバーされていない場合、ゲートウェイはこれらのリクエストを直接保つし、ブート時に選択するよう求める通知をログに記録します。`use_proxy: false` はそれらを直接保つし、通知をサイレンスします。104推論アップストリームはすべてのバージョンで `HTTPS_PROXY` と `HTTP_PROXY` を尊重します。ゲートウェイ独自の IdP、検出、JWKS、トークン、および userinfo へのリクエストは、`oidc.use_proxy: true` を設定しない限り直接です。v2.1.227 以降が必要です。プロキシ変数が設定され、`use_proxy` が設定解除され、発行者が `NO_PROXY` でカバーされていない場合、ゲートウェイはそれらのリクエストを直接に保ち、ブート時に選択するよう求める通知をログに記録します。`use_proxy: false` はそれらを直接に保ち、通知をサイレンスします。

104 105 

105`use_proxy: true` の場合、ポッドは各 IdP エンドポイントのホスト名を自身で解決し、プロキシに解決された IP アドレスへの `CONNECT` を要求するため、プロキシは発行者だけでなく、検出ドキュメントが名前を付けるすべてのホストの IP アドレスへの `CONNECT` を受け入れる必要があります。`http://` プロキシ URL を使用してください。`ca_cert_pem` と[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)はプロキシされたパスにも適用されます。106`use_proxy: true` の場合、ポッドは各 IdP エンドポイントのホスト名を自身で解決し、プロキシに解決された IP アドレスへの `CONNECT` を要求します。プロキシは、発行者だけでなく、検出ドキュメントが名前を付けるすべてのホストの IP アドレスへの `CONNECT` を受け入れる必要があります。`http://` プロキシ URL を使用します。`ca_cert_pem` と[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)はプロキシされたパスにも適用されます。

107 

108[プロキシのみのエグレス](#proxy-only-egress)はこれらの両方を変更します。アクティブな場合、IdP リクエストは `use_proxy: false` を設定しない限りプロキシに従い、ゲートウェイは最初にそれを解決せずにプロキシに各 IdP ホスト名を渡します。

109 

110<h4 id="proxy-only-egress">

111 プロキシのみのエグレス

112</h4>

113 

114ゲートウェイの環境で `HTTPS_PROXY` の隣に `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` を設定します。ポッドがそのフォワードプロキシを通じてのみ他のホストに到達でき、パブリック DNS 名を自身で解決できない場合、またはプロキシが IP アドレスへの `CONNECT` を拒否する場合。v2.1.277 以降が必要です。これは `gateway.yaml` キーではなく環境変数です。設定ファイルの何もゲートウェイのアドレスチェックを緩和できないようにするためです。

115 

116```bash theme={null}

117export HTTPS_PROXY=http://proxy.corp.example.com:3128

118export NO_PROXY=

119export no_proxy=

120export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1

121```

122 

123ゲートウェイはプロキシのみのエグレスがアクティブな場合、ブート時に 1 つの `network:` 行をログに記録します。

124 

125以下の各行は、`HTTPS_PROXY` が設定されたゲートウェイ上の 1 つのクラスのアウトバウンドリクエストです。デフォルトおよびプロキシのみのエグレスがアクティブな場合。

126 

127| アウトバウンドリクエスト | デフォルト | プロキシのみのエグレスアクティブ |

128| - | - | - |

129| `provider: anthropic` アップストリーム、Workload Identity Federation トークン交換、`telemetry.forward_to` エクスポート | ローカルで解決およびチェックされ、その後、プロキシを通じてチェックされた IP アドレスへの `CONNECT`。`NO_PROXY` にリストされたテレメトリコレクターは代わりに直接到達します | プロキシに渡されたホスト名 |

130| IdP 検出、JWKS、トークン、および userinfo | [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy) でない限り直接。その後、チェックされた IP アドレスへの `CONNECT` | ホスト名がプロキシに渡されます。ただし、`oidc.use_proxy: false` は内部 IdP を直接に保ちます |

131| Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、および Microsoft Foundry アップストリーム。Google グループ検索 | ホスト名がプロキシに渡されます | 変更なし |

132 

133プロキシのみのエグレスは、ゲートウェイの環境がこれら 3 つの条件をすべて満たさない限り、オフのままです:

134 

135* `HTTPS_PROXY` または `HTTP_PROXY` が設定されています。

136* `NO_PROXY` と `no_proxy` は空です。プラットフォームがいずれかをポッドに注入する場合、ゲートウェイコンテナの両方を空の値に設定します。`NO_PROXY` にテレメトリコレクターをリストすると、プロキシのみのエグレスがオフのままです。

137* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` がオンになっていません。ポッド独自のループバック上のコレクターまたは IdP は、プロキシのみのエグレスと組み合わせることはできません。ループバックアドレスがプロキシに渡されるとプロキシホスト独自のものになるため、代わりにプロキシが到達できるアドレスをそれらのサービスに与えてください。同じ理由で、ゲートウェイはプロキシのみのエグレスがアクティブな場合、`localhost` スタイルの名前を完全に拒否します。

138 

139これらの条件のいずれかが満たされていない場合、ゲートウェイはブート時に警告をログに記録し、それを停止した変数に名前を付け、デフォルトの動作を保ちます。

140 

141プロキシのみのエグレスがアクティブになったら、内部コレクターと IP アドレスで設定されたホストを含む、プロキシ内のすべての宛先を許可します。[`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy) で内部 IdP を直接に保つことができます。

142 

143<Warning>

144 これをオンにするのは、プロキシのアローリストがゲートウェイ独自のチェック以上に厳密な場合のみです。プロキシは `169.254.169.254` や `metadata.google.internal` などのクラウドメタデータエンドポイント、リンクローカルアドレス、およびプロキシホスト独自のループバックを拒否する必要があります。また、名前だけでなく、名前が解決するアドレスによってそれらを拒否する必要があります。ゲートウェイはもはやそれらのいずれかに解決するホスト名をキャッチしないためです。どこでも接続するプロキシは、これらのリクエストのゲートウェイの[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)を削除します。

145</Warning>

106 146 

107<h3 id="session">147<h3 id="session">

108 `session`148 `session`

109</h3>149</h3>

110 150 

111`session` ブロックはサインイン後にゲートウェイが鋳造するベアラートークンを形成します。それらに署名するシークレットと、どのくらい長く生きるかです。151`session` ブロックは、ゲートウェイがサインイン後に鋳造するベアラートークンを形成します。それらに署名するシークレットと、どのくらい長く生きるかです。

112 152 

113| フィールド | 必須 | 説明 |153| フィールド | 必須 | 説明 |

114| - | - | - |154| - | - | - |

115| `jwt_secret` | はい | 少なくとも 32 バイトのエントロピー。例えば `openssl rand -base64 32` から。ゲートウェイの HS256 ベアラートークンに署名します。単一の文字列または回転用の配列を受け入れます。インデックス 0 が署名し、すべてのエントリが検証します。回転するには、新しいシークレットを先頭に追加し、`ttl_hours` を待ってから古いものを削除します。 |155| `jwt_secret` | はい | 少なくとも 32 バイトのエントロピー。例えば `openssl rand -base64 32` から。ゲートウェイの HS256 ベアラートークンに署名します。単一の文字列または回転用の配列を受け入れます。インデックス 0 が署名し、すべてのエントリが検証します。回転するには、新しいシークレットを先頭に追加し、`ttl_hours` を待ってから古いものを削除します。 |

116| `ttl_hours` | いいえ | ゲートウェイベアラートークンの有効期間。デフォルト `1`。IdP がリフレッシュトークンを発行する場合、CLI は有効期限前に静かにリフレッシュします。より短い有効期間はより速く廃止されます。より長い有効期間は IdP ラウンドトリップが少なくなります。IdP が `offline_access` が利用できないためリフレッシュトークンを発行できない場合、静かなリフレッシュはないため、開発者が 1 時間ごとにブラウザログインに戻されるのを避けるために、これを `8` または `12` に上げてください。 |156| `ttl_hours` | いいえ | ゲートウェイベアラートークンの有効期間。デフォルト `1`。IdP がリフレッシュトークンを発行する場合、CLI は有効期限前に自動的にリフレッシュします。有効期間が短いほど、より速くプロビジョニング解除されます。長いほど、IdP ラウンドトリップが少なくなります。IdP が `offline_access` が利用できないためリフレッシュトークンを発行できない場合、サイレントリフレッシュはないため、これを `8` または `12` に上げて、開発者を 1 時間ごとにブラウザログインに戻すのを避けてください。 |

117 157 

118<h3 id="store">158<h3 id="store">

119 `store`159 `store`

120</h3>160</h3>

121 161 

122`store` ブロックはゲートウェイを PostgreSQL データベースに指します。これはデバイスグラントとレート制限カウンターを保持します。162`store` ブロックはゲートウェイを PostgreSQL データベースに指します。デバイスグラントとレート制限カウンターを保持します。

123 163 

124| フィールド | 必須 | 説明 |164| フィールド | 必須 | 説明 |

125| - | - | - |165| - | - | - |

126| `postgres_url` | はい | `postgres://` または `postgresql://` URL。必須。デバイスグラント集合場所。ブラウザコールバックが書き込み、ポーリング CLI が読み取る場所。クロスレプリカ状態が必要です。ゲートウェイはブート時とアップグレード時に独自のスキーママイグレーションを実行するため、ロールはターゲットスキーマでテーブルを作成および変更する権限が必要です。[アップグレード](/docs/ja/claude-apps-gateway-deploy#upgrades)と [Postgres](/docs/ja/claude-apps-gateway-deploy#postgres)を参照してください。 |166| `postgres_url` | はい | `postgres://` または `postgresql://` URL。必須:デバイスグラント集合。ブラウザコールバックが書き込み、ポーリング CLI が読み込む場所。レプリカ間の状態が必要です。ゲートウェイはブート時およびアップグレード時に独自のスキーママイグレーションを実行するため、ロールはターゲットスキーマでテーブルを作成および変更する権限が必要です。[アップグレード](/docs/ja/claude-apps-gateway-deploy#upgrades)および [Postgres](/docs/ja/claude-apps-gateway-deploy#postgres) を参照してください。 |

127| `username` | いいえ | `postgres_url` のユーザーをオーバーライドします |167| `username` | いいえ | `postgres_url` のユーザーをオーバーライドします |

128| `password` | いいえ | データベース認証情報。認証情報が URL から外れるように、ここに設定します。任意の文字を受け入れ、URL 認証情報よりも優先されます。 |168| `password` | いいえ | データベース認証情報。`postgres_url` ではなくここに設定して、認証情報を URL から外します。任意の文字を受け入れ、URL 認証情報よりも優先されます。 |

129| `max_connections` | いいえ | レプリカあたりの Postgres 接続プール サイズ。デフォルト `5`。保守的で共有データベースに優しいです。[支出制限](#admin)が有効な場合、ホットパスは推論リクエストごとにいくつかの操作を実行するため、負荷の下で専用データベースの場合は上げ、レプリカ × これをデータベースの `max_connections` 以下に保ちます。 |169| `max_connections` | いいえ | レプリカあたりの Postgres 接続プール サイズ。デフォルト `5`。保守的で共有データベースに優しいです。[支出制限](#admin)が有効な場合、ホットパスは推論リクエストごとに数回の操作を実行するため、専用データベースが負荷の下にある場合はこれを上げ、レプリカ × これをデータベースの `max_connections` 以下に保ちます。 |

170| `connect_timeout_seconds` | いいえ | ゲートウェイが Postgres 接続を開くときに待機する秒数。`1` から `60` の整数。デフォルト `5`。新しいゲートウェイインスタンスが起動するときに接続試行がタイムアウトする場合は、これを上げてください。ゲートウェイサーバーで Claude Code v2.1.274 以降が必要です。以前のバージョンはキーが設定されている場合、起動を拒否します。 |

171| `readiness_grace_seconds` | いいえ | Postgres が応答を停止した後、`/readyz` が準備完了を報告し続ける秒数。`0` から `3600` の整数。デフォルト `0`。値を選択する方法については、[停止動作](/docs/ja/claude-apps-gateway-deploy#outage-behavior)を参照してください。ゲートウェイサーバーで Claude Code v2.1.282 以降が必要です。以前のバージョンはキーが設定されている場合、起動を拒否します。 |

130 172 

131ローカル開発の場合、`postgres_url` を使い捨て Postgres コンテナに指します。例えば `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。173ローカル開発の場合、`postgres_url` を使い捨て Postgres コンテナに指します。例えば `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。

132 174 


134 `upstreams`176 `upstreams`

135</h3>177</h3>

136 178 

137`upstreams` は順序付きリストです。ゲートウェイは要求されたモデルを解決する最初のアップストリームに推論を転送します。179`upstreams` は順序付きリストです。ゲートウェイは、要求されたモデルを解決する最初のアップストリームに推論を転送します。

138 180 

139`5xx`、`429`、`401`、`403`、`404`、またはタイムアウトで、ゲートウェイは次のアップストリームにフェイルオーバーします。他の `4xx` はそうしません。これらのエラーはリクエストではなくアップストリームに起因するためです。`401` または `403` はゲートウェイ独自の認証情報がそのアップストリームに対して失敗したことを意味します。`404` はそのアップストリームが要求されたモデルを提供しないことを意味するため、リスト内の後のアップストリームはまだそれを提供できます。181`5xx`、`429`、`401`、`403`、`404`、またはタイムアウト時に、ゲートウェイは次のアップストリームにフェイルオーバーします。他の `4xx` はそうしません。これらのエラーはリクエストではなくアップストリームに起因するためです。`401` または `403` は、ゲートウェイがそのアップストリームに対して使用した認証情報が失敗したことを意味します。`404` はそのアップストリームが要求されたモデルを提供しないことを意味するため、リスト内の後のアップストリームはまだできます。

140 182 

141アップストリームで `forward_user_identity: true` を設定する場合、開発者のメールを含むリクエストに返す `429` はフェイルオーバーしません。[per-user limit denial が開発者に到達する方法](#per-user-identity-headers-for-a-proxy-you-run)を参照してください。183アップストリームで `forward_user_identity: true` を設定する場合、開発者のメールを含むリクエストに返す `429` はフェイルオーバーしません。[開発者がどのように per-user 制限拒否に到達するか](#per-user-identity-headers-for-a-proxy-you-run)を参照してください。

142 184 

143`404` でのフェイルオーバーにはゲートウェイ v2.1.198 以降が必要です。以前のリリースは、リスト内の後のアップストリームがモデルを提供している場合でも、最初の `404` をクライアントに返しました。185`404` でのフェイルオーバーにはゲートウェイ v2.1.198 以降が必要です。以前のリリースは、リスト内の後のアップストリームがモデルを提供している場合でも、最初の `404` をクライアントに返しました。

144 186 

145同じプロバイダーの複数のアップストリームは、異なる `name:` を設定する必要があります。187同じプロバイダーの複数のアップストリームは、異なる `name:` を設定する必要があります。

146 188 

147Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry クライアントはスタートアップ時に一度構築され、それらの SDK は認証情報を内部的にリフレッシュするため、クラウド認証情報のローテーションは再起動を必要としません。静的 Anthropic API キーとベアラーはスタートアップ時に読み取られます。[Anthropic API](#anthropic-api) を参照してください。189Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、および Microsoft Foundry クライアントはスタートアップ時に 1 回構築され、SDK は内部的に認証情報をリフレッシュするため、クラウド認証情報のローテーションは再起動を必要としません。静的 Anthropic API キーとベアラーはスタートアップ時に読み込まれます。[Anthropic API](#anthropic-api) を参照してください。

148 190 

149<h4 id="upstream-error-messages">191<h4 id="upstream-error-messages">

150 アップストリームエラーメッセージ192 アップストリームエラーメッセージ

151</h4>193</h4>

152 194 

153ゲートウェイはアップストリームの 1 つのエラー応答、またはアップストリームがどのように応答したかに応じて独自の `502` を返します。195ゲートウェイは、アップストリームがどのように応答したかに応じて、1 つのアップストリームのエラー応答またはそれ独自の `502` を返します:

154 196 

155* **ゲートウェイが[フェイルオーバー](#multiple-upstreams)しないステータスをアップストリームが返した**。そのアップストリームの応答。ゲートウェイはさらなるアップストリームを試みません。197* **ゲートウェイが[フェイルオーバー](#multiple-upstreams)しないステータスをアップストリームが返した**:そのアップストリームの応答。ゲートウェイはさらなるアップストリームを試みません。

156* **ゲートウェイが試みたすべてのアップストリームが[フェイルオーバー](#multiple-upstreams)する方法で失敗した**。最後の `429`。どれも `429` を返さなかった場合、ゲートウェイは順に、最後の `401` または `403`、最後の `404`、最後の `501` を優先します。どれもそれらのいずれも返さなかった場合、ゲートウェイ独自の `502`。`all upstreams failed (N attempted)`。N は [`upstreams`](#upstreams) のすべてのエントリをカウントします。要求されたモデルを提供しないためゲートウェイがスキップしたエントリを含みます。198* **ゲートウェイが試みたすべてのアップストリームが[フェイルオーバー](#multiple-upstreams)する方法で失敗した**:最後の `429`。いずれも `429` を返さなかった場合、ゲートウェイは順に、最後の `401` または `403`、最後の `404`、最後の `501` を優先します。いずれも返さなかった場合、ゲートウェイ独自の `502`。`all upstreams failed (N attempted)`。N は [`upstreams`](#upstreams) のすべてのエントリをカウントします。要求されたモデルを提供しないためゲートウェイがスキップしたエントリを含みます。

157 199 

158ゲートウェイがアップストリームの応答を返す場合、アップストリームのステータスコードを保ちます。アップストリームのメッセージを保つかどうかはプロバイダーに依存します。Anthropic API アップストリームのエラー本体は開発者に変更されずに到達します。200ゲートウェイがアップストリームの応答を返す場合、アップストリームのステータスコードを保ちます。アップストリームのメッセージを保つかどうかはプロバイダーに依存します。Anthropic API アップストリームのエラー本体は開発者に変更されずに到達します。

159 201 

160Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry アップストリームはそれらのエラーテキストでアカウント ID、ロール ARN、プロジェクト ID に名前を付けることができます。ゲートウェイはその完全なテキストを[操作ログ](/docs/ja/claude-apps-gateway-deploy#logs)に記録します。開発者がこれらのアップストリームから見るものは拒否に依存します。202Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、および Microsoft Foundry アップストリームは、エラーテキストでアカウント ID、ロール ARN、およびプロジェクト ID に名前を付けることができます。ゲートウェイはその完全なテキストを[運用ログ](/docs/ja/claude-apps-gateway-deploy#logs)に記録します。開発者がこれらのアップストリームから見るものは、拒否に依存します:

161 203 

162* Anthropic の標準エラーエンベロープの `400` または `413`。`prompt is too long` などのアップストリーム独自のメッセージ。Claude Platform on AWS、Agent Platform、Microsoft Foundry はモデル API 拒否のためこのエンベロープを返します。204* Anthropic の標準エラーエンベロープの `400` または `413`:`prompt is too long` などのアップストリーム独自のメッセージ。Claude Platform on AWS、Agent Platform、および Microsoft Foundry はモデル API 拒否のためこのエンベロープを返します。

163* プロバイダー独自の形状の `400` または `413`。`capability_rejected:` トークン。ゲートウェイが拒否を分類できない場合、`400` で `upstream rejected the request` または `413` で `request too large for this upstream`。205* プロバイダー独自の形状の `400` または `413`:`capability_rejected:` トークン。ゲートウェイが拒否を分類できない場合、`400` で `upstream rejected the request` または `413` で `request too large for this upstream`。

164* その他のステータス。`429` で `upstream rate limit exceeded` などのステータスごとの汎用コピー。206* その他のステータス:`429` で `upstream rate limit exceeded` などのステータスごとの汎用コピー。

165 207 

166例えば、ゲートウェイは Amazon Bedrock の `Input is too long for requested model.` を `capability_rejected: prompt_too_long` に置き換えます。Claude Code はそのトークンで[自動的にコンパクト](/docs/ja/errors#prompt-is-too-long)にします。`prompt is too long` と同じようにです。208例えば、ゲートウェイは Amazon Bedrock の `Input is too long for requested model.` を `capability_rejected: prompt_too_long` に置き換えます。Claude Code は `prompt is too long` と同様に、そのトークンで[自動的にコンパクト](/docs/ja/errors#prompt-is-too-long)にします。

167 209 

168クラウドアップストリームの `400` または `413` メッセージを保つか、`capability_rejected:` トークンで置き換えるには、ゲートウェイ v2.1.233 以降が必要です。210クラウドアップストリームの `400` または `413` メッセージを保つか、`capability_rejected:` トークンで置き換えるには、ゲートウェイ v2.1.233 以降が必要です。

169 211 


171 Anthropic API213 Anthropic API

172</h4>214</h4>

173 215 

174最小限の Anthropic アップストリームは [Claude Console](https://platform.claude.com) からの API キーです。216最小限の Anthropic アップストリームは、[Claude Console](https://platform.claude.com) からの API キーです:

175 217 

176```yaml theme={null}218```yaml theme={null}

177upstreams:219upstreams:


183 # base_url: https://api.anthropic.com # default; override for a forward proxy225 # base_url: https://api.anthropic.com # default; override for a forward proxy

184```226```

185 227 

1862 つの認証情報フォームは送信するヘッダーが異なります。2282 つの認証情報フォームは、送信するヘッダーが異なります:

187 229 

188* **`api_key`**。`x-api-key` を送信します。Claude Console でローテーションし、環境変数を更新します。230* **`api_key`**:`x-api-key` を送信します。Claude Console でローテーションし、環境変数を更新します。

189* **`oauth_token`**。`Authorization: Bearer` を送信します。組織が長期 API キーではなく短期トークンを発行する場合、ベアラーフォームを使用します。ベアラーはスタートアップ時に一度読み取られるため、シークレットを再マウントして再起動することでリフレッシュします。231* **`oauth_token`**:`Authorization: Bearer` を送信します。組織が長期 API キーではなく短期トークンを発行する場合、ベアラーフォームを使用します。ベアラーはスタートアップ時に 1 回読み込まれるため、シークレットを再マウントして再起動することでリフレッシュします。

190 232 

191静的キーまたはベアラーの代わりに、Workload Identity Federation を使用できます。[Workload Identity Federation ガイド](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)に従って federation ルールを作成し、ワークロードの OIDC JWT をファイルとしてマウントします。例えば、Kubernetes プロジェクトサービスアカウントトークンまたは CI プラットフォームの id-token。ゲートウェイは JWT を短期ベアラーと交換し、自動的にリフレッシュします。トークンファイルはすべての交換で再読み取りされるため、ローテーションされたプロジェクトトークンは再起動なしで取得されます。233静的キーまたはベアラーの代わりに、Workload Identity Federation を使用できます。[Workload Identity Federation ガイド](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)に従ってフェデレーションルールを作成し、ワークロードの OIDC JWT をファイルとしてマウントします。例えば、Kubernetes プロジェクトサービスアカウントトークンまたは CI プラットフォームの id-token。ゲートウェイは JWT を短期ベアラーと交換し、自動的にリフレッシュします。トークンファイルはすべての交換で再読み込みされるため、ローテーションされたプロジェクトトークンは再起動なしで取得されます。

192 234 

193```yaml theme={null}235```yaml theme={null}

194upstreams:236upstreams:


204<a id="per-user-identity-headers-for-a-proxy-you-run" />246<a id="per-user-identity-headers-for-a-proxy-you-run" />

205 247 

206<h5 id="per-user-identity-headers-for-a-proxy-you-run">248<h5 id="per-user-identity-headers-for-a-proxy-you-run">

207 あなたが実行するプロキシの per-user identity ヘッダー249 実行するプロキシの per-user アイデンティティヘッダー

208</h5>250</h5>

209 251 

210`provider: anthropic` アップストリームの `base_url` を Anthropic API ではなく実行するプロキシに指すことができます。各リクエストを送信した開発者をそのプロキシに伝えるには、そのアップストリームで `forward_user_identity: true` を設定します。プロキシはその後、開発者ごとに支出を属性化できます。ゲートウェイで Claude Code v2.1.233 以降が実行されている必要があります。252`provider: anthropic` アップストリームの `base_url` を Anthropic API ではなく実行するプロキシに指すことができます。そのプロキシに各リクエストを送信した開発者を伝えるには、そのアップストリームで `forward_user_identity: true` を設定します。プロキシはその後、開発者ごとに支出を属性付けることができます。Claude Code v2.1.233 以降を実行しているゲートウェイが必要です。

211 253 

212例えば、`upstream-gateway.internal.example.com` のプロキシの場合。254例えば、`upstream-gateway.internal.example.com` のプロキシの場合:

213 255 

214```yaml theme={null}256```yaml theme={null}

215upstreams:257upstreams:


220 forward_user_identity: true # default false262 forward_user_identity: true # default false

221```263```

222 264 

223ゲートウェイはそのアップストリームに転送するすべてのリクエストにこれらのヘッダーを追加します。265ゲートウェイは、そのアップストリームに転送するすべてのリクエストにこれらのヘッダーを追加します。

224 266 

225| ヘッダー | 値 |267| ヘッダー | 値 |

226| - | - |268| - | - |


228| `x-claude-gateway-user-id` | トークンの `sub` クレームからの開発者の IdP サブジェクト。 |270| `x-claude-gateway-user-id` | トークンの `sub` クレームからの開発者の IdP サブジェクト。 |

229| `x-claude-gateway-user-email` | IdP が提供した場合、開発者のメール。 |271| `x-claude-gateway-user-email` | IdP が提供した場合、開発者のメール。 |

230 272 

231IdP トークンがメールを含まない場合、ゲートウェイは `x-claude-gateway-user-id` のみを送信し、2 つのメールヘッダーを省略します。IdP がメールを別のクレームに入れる場合は、[`oidc.email_claim`](#oidc) をそのクレームに設定します。273IdP トークンがメールを含まない場合、ゲートウェイは `x-claude-gateway-user-id` のみを送信し、2 つのメールヘッダーを省略します。IdP がメールを別のクレームに入れる場合、[`oidc.email_claim`](#oidc) をそのクレームに設定します。

232 274 

233プロキシが開発者のメールを含むリクエストに `429` で応答する場合、ゲートウェイはその応答を開発者にそのまま返し、次のアップストリームにフェイルオーバーしません。プロキシの per-user バジェットまたはレート制限が保持されます。プロキシの他の応答は通常の[フェイルオーバールール](#upstreams)に従います。開発者の IdP トークンがメールを含まない場合、ゲートウェイはメールヘッダーなしでリクエストを転送するため、そのようなリクエストへの `429` はアップストリーム容量としてカウントされ、フェイルオーバーします。ゲートウェイサーバーで v2.1.267 より前では、すべての `429` がフェイルオーバーしました。275プロキシが開発者のメールを含むリクエストに `429` で応答する場合、ゲートウェイはその応答を開発者にそのまま返し、次のアップストリームにフェイルオーバーしません。プロキシの per-user 予算またはレート制限が保持されます。プロキシの他の応答は通常の[フェイルオーバールール](#upstreams)に従います。開発者の IdP トークンがメールを含まない場合、ゲートウェイはメールヘッダーなしでリクエストを転送するため、そのようなリクエストへの `429` はアップストリーム容量としてカウントされ、フェイルオーバーします。ゲートウェイサーバーの v2.1.267 より前では、すべての `429` がフェイルオーバーしました。

234 276 

235`forward_user_identity` を、`base_url` が操作するプロキシであるアップストリームにのみ設定します。ゲートウェイは開発者メールを、その `base_url` が名前を付けるサーバーに送信します。`base_url` が Anthropic API(デフォルト)の場合、ゲートウェイは起動を拒否します。277`forward_user_identity` は、`base_url` が実行するプロキシであるアップストリームにのみ設定します。ゲートウェイは開発者メールを、その `base_url` が名前を付けるサーバーに送信します。`base_url` が Anthropic API(デフォルト)の場合、ゲートウェイは起動を拒否します。

236 278 

237<h4 id="amazon-bedrock">279<h4 id="amazon-bedrock">

238 Amazon Bedrock280 Amazon Bedrock

239</h4>281</h4>

240 282 

241ゲートウェイが置き換えるか前に置く、クライアント側の Amazon Bedrock デプロイメントについては、[Amazon Bedrock の Claude Code](/docs/ja/amazon-bedrock) を参照してください。ゲートウェイ側のアップストリーム。283クライアント側の Amazon Bedrock デプロイメント(ゲートウェイが置き換えるか前に置く)については、[Claude Code on Amazon Bedrock](/docs/ja/amazon-bedrock) を参照してください。ゲートウェイ側のアップストリーム:

242 284 

243```yaml theme={null}285```yaml theme={null}

244upstreams:286upstreams:


257 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com299 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

258```300```

259 301 

260空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します。環境変数、`~/.aws/credentials`、ECS タスクロール、EC2 インスタンスメタデータ、または EKS の IRSA。本番環境では、コンテナイメージに静的キーを埋め込む代わりに、ゲートウェイポッドに IAM ロールを付与します。302空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します:環境変数、`~/.aws/credentials`、ECS タスクロール、EC2 インスタンスメタデータ、または EKS 上の IRSA。本番環境では、コンテナイメージに静的キーを埋め込む代わりに、ゲートウェイポッドに IAM ロールを与えます。

261 303 

262明示的な認証情報は完全である必要があります。`aws_access_key_id` と `aws_secret_access_key` が一緒に設定されていない場合、または `aws_session_token` が設定されていない場合、ゲートウェイはブート時に失敗します。v2.1.207 より前では、部分的な `auth:` ブロックが検証に合格しました。304明示的な認証情報は完全である必要があります。`aws_access_key_id` と `aws_secret_access_key` が一緒に設定されていない場合、または `aws_session_token` が設定されていない場合、ゲートウェイはブート時に失敗します。v2.1.207 より前では、部分的な `auth:` ブロックが検証に合格しました。

263 305 

264| セットアップ | 方法 |306| セットアップ | 方法 |

265| - | - |307| - | - |

266| IAM 権限 | ゲートウェイのプリンシパルに推論プロファイル ARN と基盤モデル ARN の両方に `bedrock:InvokeModel` と `bedrock:InvokeModelWithResponseStream` を付与します。US リージョンの組み込みカタログの場合。`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` と `arn:aws:bedrock:*::foundation-model/anthropic.*`。また、基盤モデル ARN に `bedrock:CountTokens` を付与します。ゲートウェイはそれを使用して、クライアントが放棄したリクエストの入力トークンをカウントするため、[支出制限](#admin)は正確なままです。これなしでは、ゲートウェイはそのカウントのために 1 トークン Bedrock リクエストにフォールバックします。 |308| IAM 権限 | ゲートウェイのプリンシパルに `bedrock:InvokeModel` と `bedrock:InvokeModelWithResponseStream` を推論プロファイル ARN と基礎モデル ARN の両方に付与します。US リージョンの組み込みカタログの場合:`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` と `arn:aws:bedrock:*::foundation-model/anthropic.*`。また、基礎モデル ARN に `bedrock:CountTokens` を付与します。ゲートウェイはそれを使用して、クライアントが放棄したリクエストの入力トークンをカウントします。無料です。[支出制限](#admin)が正確に保たれるようにするためです。これなしでは、ゲートウェイはそのカウントのための 1 トークン Bedrock リクエストにフォールバックします。 |

267| モデルアクセス | Amazon Bedrock は商用リージョンでデフォルトでモデルアクセスを有効にします。残りのアカウントレベルゲートは Anthropic のワンタイムユースケースフォームです。AWS アカウント内の誰もそれを送信していない場合、Amazon Bedrock コンソールを開き、モデルカタログから Anthropic モデルを選択し、フォームを完成させます。AWS Organizations フォームと送信者が必要とする権限については、[ユースケース詳細を送信](/docs/ja/amazon-bedrock#1-submit-use-case-details)を参照してください。 |309| モデルアクセス | Amazon Bedrock はデフォルトで商用リージョンでモデルアクセスを有効にします。残りのアカウントレベルゲートは Anthropic のワンタイムユースケースフォームです。AWS アカウント内の誰もそれを送信していない場合、Amazon Bedrock コンソールを開き、モデルカタログから Anthropic モデルを選択し、フォームを完成させます。AWS Organizations フォームと送信者が必要な権限については、[ユースケース詳細を送信](/docs/ja/amazon-bedrock#1-submit-use-case-details)を参照してください。 |

268| EKS(IRSA) | 上記のポリシーと、クラスターの OIDC プロバイダーのトラストポリシーを持つ IAM ロールを作成します。ゲートウェイのサービスアカウントにスコープされます。サービスアカウントに `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` でアノテーションを付けます。`auth: {}` はそれを取得します。 |310| EKS(IRSA) | クラスターの OIDC プロバイダーにスコープされたゲートウェイのサービスアカウントの信頼ポリシーを持つ IAM ロールを作成します。サービスアカウントに `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` で注釈を付けます。`auth: {}` がそれを取得します。 |

269| ECS / EC2 | IAM ロールをタスク定義またはインスタンスプロファイルにアタッチします。`auth: {}` はそれを取得します。 |311| ECS / EC2 | IAM ロールをタスク定義またはインスタンスプロファイルにアタッチします。`auth: {}` がそれを取得します。 |

270| その他の場所 | `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、`AWS_SESSION_TOKEN` 環境変数を通じて認証情報を渡すか、`${VAR}` 展開で `auth:` に明示的に設定します。 |312| その他の場所 | `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、および `AWS_SESSION_TOKEN` 環境変数を通じて認証情報を渡すか、`${VAR}` 展開で `auth:` に明示的に設定します |

271| リージョン | `region:` は API エンドポイントリージョンです。クロスリージョン推論プロファイルは、どれを選択するかに関わらず、地理(US、EU、APAC)全体でルーティングします。非 US リージョンまたはプロビジョニングされたスループット ARN の場合、正しいアップストリームごとの ID を持つ [`models:`](#models) ブロックを追加します。 |313| リージョン | `region:` は API エンドポイントリージョンです。クロスリージョン推論プロファイルは、どれを選択するかに関わらず、地理(US、EU、APAC)全体でルーティングします。US 以外のリージョンまたはプロビジョニングされたスループット ARN の場合、正しい per-upstream ID を持つ [`models:`](#models) ブロックを追加します。 |

314 

315<h5 id="apply-an-amazon-bedrock-guardrail">

316 Amazon Bedrock ガードレールを適用

317</h5>

318 

319ゲートウェイが Bedrock アップストリームを通じて送信するすべての推論リクエストに Amazon Bedrock ガードレールを適用するには、そのアップストリームに `guardrail` ブロックを追加します。ゲートウェイサーバーで Claude Code v2.1.281 以降が必要です。

320 

321```yaml theme={null}

322upstreams:

323 - provider: bedrock

324 region: us-east-1

325 auth: {}

326 guardrail:

327 id: gr-abc123 # guardrail ID or full ARN

328 version: "1" # a published version number, or DRAFT

329 # keep the quotes: a bare 1 fails at boot

330```

331 

332<Warning>

333 ゲートウェイはガードレール入力タグをサポートしていません。プロンプトにガード コンテンツタグを追加しないため、Amazon Bedrock がタグ付き入力にのみ適用するガードレールフィルターはゲートウェイを通じたトラフィックで実行されません。入力タグに依存するフィルターについては、Amazon Bedrock ドキュメントの[入力タグ](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html)を参照してください。

334</Warning>

335 

336また、このアップストリームのリクエストに署名するプリンシパル(ゲートウェイの AWS プリンシパル、または [`assume_role`](#bedrock-in-another-aws-account) で `role_arn` に名前を付けたロール)にガードレールで `bedrock:ApplyGuardrail` を付与します。

337 

338すべての `bedrock` アップストリームで `guardrail` を設定するか、どれにも設定しないでください。ゲートウェイは混合で起動を拒否します。[フェイルオーバー](#multiple-upstreams)がリクエストをガードレールのない Bedrock アップストリームに送信する可能性があるためです。

339 

340ガードレールは Bedrock アップストリームのみをカバーします。`upstreams` に別のプロバイダーをリストする場合、ゲートウェイはガードレールなしでそのプロバイダーにリクエストを送信します。

341 

342`/v1/messages` リクエストの本体が `amazon-bedrock-guardrailConfig` などの `amazon-bedrock-*` フィールドを含む場合、ガードレール セットを持つ Bedrock アップストリームに到達すると、ゲートウェイは 400 で応答し、転送しません。

343 

344<a id="bedrock-in-another-aws-account" />

345 

346<h5 id="bedrock-in-another-aws-account">

347 別の AWS アカウントの Bedrock

348</h5>

349 

350Bedrock アップストリームで `assume_role` を設定し、ゲートウェイは独自の AWS アイデンティティを使用して、名前を付けたロールで `sts:AssumeRole` を呼び出すだけです。別の AWS アカウントにある可能性があります。そのアップストリームからのすべての Bedrock リクエストは、STS が返す 1 時間の認証情報で署名されるため、長期アクセスキーはアカウント間を通過しません。

351 

352Claude Code v2.1.281 以降を実行しているゲートウェイが必要です。以前のゲートウェイはキーを見つけたときに起動を拒否します。

353 

354```yaml theme={null}

355upstreams:

356 - name: bedrock-isolated

357 provider: bedrock

358 region: us-east-1

359 auth: {} # the gateway's own role: it only calls STS

360 assume_role:

361 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

362 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # when the role's trust policy requires one

363```

364 

365`assume_role` ブロックは 3 つのキーを取ります:

366 

367| キー | 意味 |

368| - | - |

369| `role_arn` | ゲートウェイが想定する IAM ロール。`arn:aws:iam::` または `arn:aws-us-gov:iam::` ARN として。このアップストリームが必要とする [Bedrock 権限](#amazon-bedrock)、`bedrock:CountTokens` を含む、およびアップストリームが `guardrail` を設定する場合は `bedrock:ApplyGuardrail` を与えます。 |

370| `external_id` | オプション。すべての `sts:AssumeRole` 呼び出しで外部 ID として送信されます。ロールの信頼ポリシーが 1 つを必要とする場合に設定し、すべての数字の場合は引用符で囲みます。 |

371| `session_name` | オプション。`email` または `sub` は各開発者に独自のセッションを与えます。[Per-developer AWS コスト属性](#per-developer-aws-cost-attribution)を参照してください。設定解除されている場合、すべてのリクエストは `claude-apps-gateway` という名前の 1 つのセッションを使用します。 |

372 

373ロールの信頼ポリシーはゲートウェイ独自のプリンシパル(IRSA または ECS タスクロールなど)に名前を付けます。そのプリンシパルはロールで `sts:AssumeRole` が必要で、Bedrock 権限はありません。`external_id` を設定しない場合は `Condition` を削除します。

374 

375```json theme={null}

376{

377 "Version": "2012-10-17",

378 "Statement": [{

379 "Effect": "Allow",

380 "Principal": { "AWS": "arn:aws:iam::111111111111:role/claude-gateway" },

381 "Action": "sts:AssumeRole",

382 "Condition": { "StringEquals": { "sts:ExternalId": "your-external-id" } }

383 }]

384}

385```

386 

387* STS が拒否または到達不可の場合、ゲートウェイはアップストリーム独自の認証情報でリクエストを送信しません。STS エラーをログに記録し、何をチェックするかを記録してから、リストした次のアップストリームを試みます。[アップストリームエラーメッセージ](#upstream-error-messages)は、アップストリームが成功しない場合にクライアントが受け取るものをカバーしています。`assume_role` のない後のアップストリームはそれ独自の認証情報でリクエストを提供するため、それが望むものの場合のみリストします。

388* ゲートウェイは地域 STS エンドポイント `sts.<region>.amazonaws.com` を呼び出します。ネットワークはそれに到達する必要があります。FIPS エンドポイントの場合、AWS 設定ファイルの `use_fips_endpoint` ではなく、ゲートウェイの環境で `AWS_USE_FIPS_ENDPOINT=true` を設定します。

389* `assume_role` は `provider: bedrock` にのみ適用され、SigV4 ソース認証情報が必要です。ゲートウェイは `aws_bearer_token` の隣に設定されている場合、起動を拒否します。

390* ゲートウェイが許可するすべての開発者はこのアップストリームを使用できます。[`managed`](#managed) はどの開発者がどのモデルを使用できるかを制御します。ロールを通じて提供されるモデルが別のアカウントからも提供されるのを防ぐには、`upstream_model` マップがこのアップストリームの名前のみを持つカスタム id を与えます。そのような id の場合、ゲートウェイはすべての他のアップストリームをスキップするため、リクエストもそれに到達する放棄されたリクエストのトークンカウントも別のアカウントにフェイルオーバーできません。組み込みモデル名はまだすべてのアップストリームで順に試みられます。これを含みます。そのアカウントもそれらを提供する場合を除き、このアップストリームを最後にリストします。

391 

392この例は、分離されたアップストリームのみが提供するカスタム id を持つ 1 つのモデルを与えます:

393 

394```yaml theme={null}

395models:

396 - id: claude-opus-restricted # a custom id, not a built-in model name

397 upstream_model:

398 bedrock-isolated: us.anthropic.claude-opus-4-8 # the only upstream that serves it

399```

400 

401<a id="per-developer-aws-cost-attribution" />

402 

403<h5 id="per-developer-aws-cost-attribution">

404 Per-developer AWS コスト属性

405</h5>

406 

407デフォルトでは、ゲートウェイはすべての Bedrock リクエストに 1 つの認証情報で署名するため、AWS はすべての開発者のリクエストを単一の IAM プリンシパルの下で見ます。[`assume_role`](#bedrock-in-another-aws-account) に `session_name: email` を追加し、ゲートウェイは開発者ごとに 1 時間ごとに `sts:AssumeRole` を呼び出し、セッション名をその開発者のメールに設定し、返された認証情報でリクエストに署名するため、各開発者のリクエストは独自の想定ロールセッションの下で AWS に到達します。ロールはゲートウェイ独自のアカウントにある可能性があります。

408 

409Claude Code v2.1.281 以降を実行しているゲートウェイが必要です。[AWS でのコスト属性](/docs/ja/claude-apps-gateway-on-aws#cost-attribution)は IAM ロールと AWS 請求がセッションを表示する場所をカバーしています。

410 

411```yaml theme={null}

412upstreams:

413 - provider: bedrock

414 region: us-east-1

415 auth: {} # the gateway's own role: it only calls STS

416 assume_role:

417 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user

418 session_name: email # or sub

419```

420 

421`session_name` は、検証されたクレームが AWS `RoleSessionName` になるかを選択します:`email` または `sub`。ゲートウェイは ASCII 文字、数字、および `_+,.@-` 以外の任意の文字を UTF-8 バイトごとに `=XX` 16 進数として書き込み、64 文字より長い結果をプレフィックスとハッシュに短縮するため、各開発者のセッション名は有効で一意のままです。トークンがクレームを欠いている開発者からのリクエストはこのアップストリームを通じて送信されず、オペレーター ログは `sub` に切り替えるか [`oidc.email_claim`](#oidc) を設定するよう指示します。

422 

423アクティブな開発者は、ゲートウェイレプリカあたり 1 時間あたり 1 つの STS 呼び出しをコストします。同時最初リクエストは 1 つの呼び出しを共有します。

424 

425ゲートウェイはこのロールで 1 つの呼び出しも行います。クライアントが放棄したリクエストのトークンカウント。[支出制限](/docs/ja/claude-apps-gateway-spend-limits)が正確に保たれるようにするためです。そのカウントと[1 トークンフォールバックリクエスト](#amazon-bedrock)は共有 `claude-apps-gateway` セッションで署名されるため、AWS はフォールバックを `claude-apps-gateway` ではなく開発者に属性付けします。

426 

427厳密な per-developer 属性の場合、すべての Bedrock アップストリームで `assume_role` を `session_name` で設定します。それなしのアップストリームは独自の認証情報でリクエストに署名します。

272 428 

273<h4 id="claude-platform-on-aws">429<h4 id="claude-platform-on-aws">

274 Claude Platform on AWS430 Claude Platform on AWS

275</h4>431</h4>

276 432 

277Claude Platform on AWS は `aws-external-anthropic.<region>.api.aws` で AWS インフラストラクチャ上の第一者 Anthropic API を提供します。第一者モデル ID を使用し、送信されたとおりに `anthropic-beta` ヘッダーを尊重し、`count_tokens` を提供するため、Bedrock 固有の翻訳は適用されません。`anthropicAws` プロバイダーには Claude Code v2.1.198 以降が必要です。以前のゲートウェイリリースはブート時にそれを拒否します。433Claude Platform on AWS は、`aws-external-anthropic.<region>.api.aws` で AWS インフラストラクチャ上の第一者 Anthropic API を提供します。第一者モデル ID を使用し、`anthropic-beta` ヘッダーを送信されたとおりに尊重し、`count_tokens` を提供するため、Bedrock 固有の翻訳は適用されません。`anthropicAws` プロバイダーには Claude Code v2.1.198 以降が必要です。以前のゲートウェイリリースはブート時にそれを拒否します。

278 434 

279同じプラットフォームのクライアント側デプロイメントについては、[Claude Platform on AWS の Claude Code](/docs/ja/claude-platform-on-aws) を参照してください。ゲートウェイ側のアップストリーム。435同じプラットフォームのクライアント側デプロイメントについては、[Claude Code on Claude Platform on AWS](/docs/ja/claude-platform-on-aws) を参照してください。ゲートウェイ側のアップストリーム:

280 436 

281```yaml theme={null}437```yaml theme={null}

282upstreams:438upstreams:


295 # base_url: https://aws-external-anthropic.us-east-1.api.aws451 # base_url: https://aws-external-anthropic.us-east-1.api.aws

296```452```

297 453 

298プラットフォームは Amazon Bedrock とは別の AWS アカウントで実行され、独自のサービス名 `aws-external-anthropic` の SigV4 リクエストに署名するため、Bedrock スコープの IAM ロールはそれを認可しません。`auth.api_key` の API キーは SigV4 認証情報も設定されている場合に優先されます。空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します。[Amazon Bedrock](#amazon-bedrock) アップストリームが使用するのと同じチェーンです。454プラットフォームはゲートウェイの環境で Amazon Bedrock とは別の AWS アカウントで実行され、独自のサービス名 `aws-external-anthropic` の SigV4 リクエストに署名するため、Bedrock スコープの IAM ロールはそれを認可しません。`auth.api_key` の API キーは SigV4 認証情報も設定されている場合に優先されます。空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します。[Amazon Bedrock](#amazon-bedrock) アップストリームが使用するのと同じチェーン。

299 455 

300| フィールド | 必須 | 説明 |456| フィールド | 必須 | 説明 |

301| - | - | - |457| - | - | - |

302| `region` | はい | AWS リージョン。小文字、数字、ハイフン。ゲートウェイは `https://aws-external-anthropic.<region>.api.aws` としてエンドポイントを導出します。 |458| `region` | はい | AWS リージョン。小文字、数字、およびハイフン。ゲートウェイはそれからエンドポイントを `https://aws-external-anthropic.<region>.api.aws` として導出します。 |

303| `workspace_id` | はい | すべてのリクエストでヘッダーとして送信されます。プラットフォームはそれを必要とします。 |459| `workspace_id` | はい | すべてのリクエストでヘッダーとして送信されます。プラットフォームはそれを必要とします |

304| `auth.api_key` | いいえ | プラットフォームの API キー。`x-api-key` として送信されます。ベアラートークンではありません。2 つの認証モードは API キーまたは SigV4 です。 |460| `auth.api_key` | いいえ | プラットフォームの API キー。`x-api-key` として送信されます。ベアラートークンではありません。2 つの認証モードは API キーまたは SigV4 です。 |

305| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | いいえ | 明示的な SigV4 認証情報。一方を他方なしで設定するとブート時に失敗します。`auth.aws_session_token` はそれらと一緒に受け入れられます。 |461| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | いいえ | 明示的な SigV4 認証情報。一方を他方なしで設定するとブート時に失敗します。`auth.aws_session_token` はそれらと一緒に受け入れられます。 |

306| `base_url` | いいえ | 導出されたエンドポイントをオーバーライドします。 |462| `base_url` | いいえ | 導出されたエンドポイントをオーバーライド |

307 463 

308プラットフォームは第一者モデル ID を解決するため、組み込みカタログは [`models:`](#models) ブロックなしでそれにルーティングします。`models:` リストをキュレートする場合、エントリを `anthropicAws:` で第一者 ID でキーします。464プラットフォームは第一者モデル ID を解決するため、組み込みカタログは [`models:`](#models) ブロックなしでそれにルーティングします。`models:` リストをキュレートする場合、エントリを `anthropicAws:` で第一者 ID でキーします。

309 465 


311 Google Cloud Agent Platform467 Google Cloud Agent Platform

312</h4>468</h4>

313 469 

314同等のクライアント側セットアップについては、[Google Cloud の Claude Code](/docs/ja/google-vertex-ai) を参照してください。ゲートウェイ側のアップストリーム。470同等のクライアント側セットアップについては、[Claude Code on Google Cloud](/docs/ja/google-vertex-ai) を参照してください。ゲートウェイ側のアップストリーム:

315 471 

316```yaml theme={null}472```yaml theme={null}

317upstreams:473upstreams:


325 # base_url: https://us-east5-aiplatform.p.googleapis.com481 # base_url: https://us-east5-aiplatform.p.googleapis.com

326```482```

327 483 

328空の `auth` ブロックは Application Default Credentials を使用します。`GOOGLE_APPLICATION_CREDENTIALS`、GCE メタデータ、または GKE Workload Identity。サービスアカウント JSON キーファイルはサポートされていますが、推奨されません。Workload Identity を使用するか、GCE または Cloud Run インスタンスにサービスアカウントをアタッチします。484空の `auth` ブロックは Application Default Credentials を使用します:`GOOGLE_APPLICATION_CREDENTIALS`、GCE メタデータ、または GKE Workload Identity。サービスアカウント JSON キーファイルはサポートされていますが、推奨されません。Workload Identity を使用するか、GCE または Cloud Run インスタンスにサービスアカウントをアタッチします。

329 485 

330`region: global` を設定して、リージョナルエンドポイントの代わりに [Google Cloud の Agent Platform のグローバルエンドポイント](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)を使用します。Google はその後、各リクエストを利用可能なリージョンにルーティングするため、リージョンごとのモデル可用性を追跡しません。特定のリージョンを設定するとすべてのリクエストをそれにピンします。486Google Cloud の Agent Platform の[グローバルエンドポイント](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)を使用するには `region: global` を設定します。Google はその後、各リクエストを利用可能なリージョンにルーティングするため、per-region モデル可用性を追跡しません。特定のリージョンを設定するとすべてのリクエストをそれにピンします。

331 487 

332| セットアップ | 方法 |488| セットアップ | 方法 |

333| - | - |489| - | - |

334| IAM 権限 | ゲートウェイのサービスアカウントにプロジェクトで `roles/aiplatform.user` を付与するか、`aiplatform.endpoints.predict` を持つカスタムロール。Google Cloud の Agent Platform API(`aiplatform.googleapis.com`)を有効にします。 |490| IAM 権限 | ゲートウェイのサービスアカウントにプロジェクトで `roles/aiplatform.user` を付与するか、`aiplatform.endpoints.predict` を持つカスタムロール。Google Cloud の Agent Platform API(`aiplatform.googleapis.com`)を有効にします。 |

335| モデルアクセス | Model Garden で、プロジェクトの Claude モデルを有効にします。それらは特定のリージョンに公開されます。サポートされているリージョンについてはモデルカードを確認してください。 |491| モデルアクセス | Model Garden で、プロジェクトの Claude モデルを有効にします。特定のリージョンに公開されます。サポートされているリージョンについてはモデルカードを確認してください。 |

336| GKE(Workload Identity) | GCP サービスアカウントをゲートウェイの Kubernetes サービスアカウントにバインドし、KSA に `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` でアノテーションを付けます。`auth: {}` はそれを取得します。 |492| GKE(Workload Identity) | GCP サービスアカウントをゲートウェイの Kubernetes サービスアカウントにバインドし、KSA に `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` で注釈を付けます。`auth: {}` がそれを取得します。 |

337| Cloud Run / GCE | サービスのサービスアカウントを `roles/aiplatform.user` を持つものに設定します。`auth: {}` はそれを取得します。 |493| Cloud Run / GCE | サービスのサービスアカウントを `roles/aiplatform.user` を持つものに設定します。`auth: {}` がそれを取得します。 |

338| その他の場所 | `auth: { service_account_json: /secrets/sa.json }`。JSON キーファイルへのパス。マウントされたシークレットとして。フィールドはキーコンテンツではなくファイルパスを取得するため、`${file:…}` 展開は関係ありません。 |494| その他の場所 | `auth: { service_account_json: /secrets/sa.json }`。マウントされたシークレットとしての JSON キーファイルへのパス。フィールドはキーコンテンツではなくファイルパスを取るため、`${file:…}` 展開は関係ありません。 |

339 495 

340<h4 id="microsoft-foundry">496<h4 id="microsoft-foundry">

341 Microsoft Foundry497 Microsoft Foundry

342</h4>498</h4>

343 499 

344クライアント側の Microsoft Foundry デプロイメントについては、[Microsoft Foundry の Claude Code](/docs/ja/microsoft-foundry) を参照してください。ゲートウェイ側のアップストリーム。500クライアント側の Microsoft Foundry デプロイメントについては、[Claude Code on Microsoft Foundry](/docs/ja/microsoft-foundry) を参照してください。ゲートウェイ側のアップストリーム:

345 501 

346```yaml theme={null}502```yaml theme={null}

347upstreams:503upstreams:


353 # api_key: ${FOUNDRY_API_KEY}509 # api_key: ${FOUNDRY_API_KEY}

354```510```

355 511 

356`use_azure_ad: true` は `DefaultAzureCredential` を通じて解決します。AKS、ACI、または App Service の Managed Identity。Azure CLI。または環境認証情報。API キーは機能しますが、プロジェクト全体であり、自動的にローテーションしません。Microsoft Foundry のエンドポイントは `resource:` から導出されます。Azure Government などのソブリンクラウドのオプション `base_url` を設定してオーバーライドします。512`use_azure_ad: true` は `DefaultAzureCredential` を通じて解決します:AKS、ACI、または App Service 上の Managed Identity。Azure CLI。または環境認証情報。API キーは機能しますが、プロジェクト全体であり、自動的にローテーションしません。Microsoft Foundry のエンドポイントは `resource:` から導出されます。Azure Government などのソブリンクラウドの場合、オプションの `base_url` を設定してオーバーライドします。

357 513 

358| セットアップ | 方法 |514| セットアップ | 方法 |

359| - | - |515| - | - |

360| RBAC | ゲートウェイのアイデンティティに Microsoft Foundry リソースで `Azure AI User` または `Cognitive Services User` を付与します。 |516| RBAC | ゲートウェイのアイデンティティに Microsoft Foundry リソースで `Azure AI User` または `Cognitive Services User` を付与 |

361| デプロイメント | Microsoft Foundry は正規モデル ID ではなく、管理者が選択したデプロイメント名を使用します。各正規 ID をデプロイメント名にマップする [`models:`](#models) ブロックを追加します。 |517| デプロイメント | Microsoft Foundry は正規モデル ID ではなく、管理者が選択したデプロイメント名を使用します。各正規 ID をデプロイメント名にマップする [`models:`](#models) ブロックを追加します。 |

362| AKS(ワークロードアイデンティティ) | User-Assigned Managed Identity をクラスターの OIDC 発行者とフェデレーションし、ゲートウェイのサービスアカウントにバインドします。`use_azure_ad: true` は `WorkloadIdentityCredential` を通じてそれを取得します。 |518| AKS(ワークロードアイデンティティ) | User-Assigned Managed Identity をクラスターの OIDC 発行者とフェデレーションし、ゲートウェイのサービスアカウントにバインドします。`use_azure_ad: true` は `WorkloadIdentityCredential` を通じてそれを取得します。 |

363| ACI / App Service | リソースでシステム割り当てまたはユーザー割り当てのマネージドアイデンティティを有効にします。`use_azure_ad: true` はそれを取得します。 |519| ACI / App Service | リソースでシステム割り当てまたはユーザー割り当てマネージドアイデンティティを有効にします。`use_azure_ad: true` がそれを取得します。 |

364| その他の場所 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。`{ }` 内の `${…}` を引用します。 |520| その他の場所 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。`{ }` 内の `${…}` を引用符で囲みます。 |

521 

522<h4 id="static-headers-on-upstream-requests">

523 アップストリームリクエストの静的ヘッダー

524</h4>

525 

526ゲートウェイが 1 つのアップストリームに送信するリクエストに固定ヘッダーを追加するには、そのアップストリームで `headers:` を設定します。実行するプロキシがヘッダーでトラフィックをルーティングまたは属性付けする場合に使用します。

527 

528`headers:` にはゲートウェイサーバーで Claude Code v2.1.277 以降が必要です。以前のゲートウェイはキーを見つけたときに起動を拒否します。すべてのレプリカをアップグレードしてからキーを追加し、以前のバージョンにロールバックする前にキーを削除します。

529 

530ヘッダーは `base_url` が名前を付けるサーバー、または `base_url` が設定されていない場合はプロバイダー独自のエンドポイントに移動します。プロキシがそれらを削除しない限り、プロバイダーもそれらを受け取ります。

531 

532この例は、`upstream-proxy.internal.example.com` のプロキシを通じて `provider: vertex` アップストリームに到達します。プロキシが読み取る `x-source` ヘッダーを設定し、`PROXY_TOKEN` 環境変数からのトークンを `x-proxy-token` として送信します:

533 

534```yaml theme={null}

535upstreams:

536 - provider: vertex

537 region: us-east5

538 project_id: example-prod

539 base_url: https://upstream-proxy.internal.example.com

540 auth: {}

541 headers:

542 x-source: claude-apps-gateway

543 x-proxy-token: ${PROXY_TOKEN}

544```

545 

546値は、どちらの端にもスペースのない印字可能な ASCII テキストです。数字、`true`、または `false` を引用符で囲んで、YAML がそれをテキストとして読むようにします。

547 

548シークレットを設定ファイルから外すには、[シークレット展開](#secret-expansion)を使用して、`${VAR}` で環境変数から、または `${file:/path}` でファイルから値を読み込みます。空の値に解決する `${VAR}` はゲートウェイの起動を停止します。

549 

550`headers:` はすべてのプロバイダーで機能し、各アップストリームは独自のみを送信します。

551 

552ゲートウェイがアップストリームに送信するすべてのリクエストがそれらを含むわけではありません:

553 

554| ゲートウェイがこのアップストリームに送信するリクエスト | `headers:` を含む |

555| - | - |

556| `/v1/messages`。ストリーミングまたはそうでなく、および `/v1/messages/count_tokens` | はい |

557| 別のアップストリームからフェイルオーバーしたリクエスト | はい。このアップストリームの `headers:` のみ |

558| クライアントが放棄したリクエストの Amazon Bedrock の `CountTokens` 呼び出し | いいえ |

559| Workload Identity Federation トークン交換 | いいえ |

560 

561AWS SigV4 でリクエストに署名する Amazon Bedrock または Claude Platform on AWS アップストリームでは、これらのヘッダーは署名の一部であるため、プロキシはそれらを変更されずに通す必要があります。

562 

563ゲートウェイが予約するヘッダー名を使用する場合、起動エラーはそのヘッダーに名前を付けて起動を拒否します。予約名には以下が含まれます:

564 

565* `authorization` と `x-api-key`

566* `host`、`content-type`、および `user-agent`

567* `anthropic-`、`x-goog-`、`x-amz-`、または `x-amzn-` で始まる任意の名前

365 568 

366<h4 id="multiple-upstreams">569<h4 id="multiple-upstreams">

367 複数のアップストリーム570 複数のアップストリーム

368</h4>571</h4>

369 572 

370同じプロバイダーは異なる `name:` で複数回表示できます。これは異なるリージョン、異なるアカウント(異なる認証情報チェーン経由)、プロビジョニングされたスループット対オンデマンド、およびクロスプロバイダーフォールバックをカバーします。573同じプロバイダーは異なる `name:` で複数回表示できます。これは異なるリージョン、異なるアカウント(異なる認証情報チェーン経由)、プロビジョニングされたスループット対オンデマンド、およびクロスプロバイダーフェイルバックをカバーします。

371 574 

372ゲートウェイはアップストリームを順に試みます。`5xx`、`429`、`401`、`403`、`404`、タイムアウト、および欠落エンドポイント(`501`)がフェイルオーバーします。他の `4xx` はそうしません。575ゲートウェイはアップストリームを順に試みます。`5xx`、`429`、`401`、`403`、`404`、タイムアウト、および欠落エンドポイント(`501`)がフェイルオーバーします。他の `4xx` はそうしません。

373 576 

374`429` はアップストリーム容量ごとであるため、プロビジョニングされたスループット(PT)枯渇はオンデマンドにフェイルオーバーします。アップストリームで [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) を設定する場合、開発者のメールを含むリクエストへの `429` は per-user 拒否であり、フェイルオーバーしません。577`429` は per-upstream 容量であるため、プロビジョニングされたスループット(PT)枯渇はオンデマンドにフェイルオーバーします。アップストリームで [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) を設定する場合、開発者のメールを含むリクエストへの `429` は per-user 拒否であり、フェイルオーバーしません。

578 

579すべてのリクエストは最初のアップストリームで開始されます。リクエストは、それより前のすべてのアップストリームが失敗したか、要求されたモデルを提供しない場合のみ、後のアップストリームに到達します。

580 

581ゲートウェイは失敗したアップストリームの記録を保ちません。アップストリームがダウンしている間、それに到達するすべてのリクエストはそれを試み、失敗するのを待ってから先に進みます。

582 

583Anthropic API アップストリームの場合、[`timeouts.upstream_ttfb_ms`](#http-tuning)はダウンアップストリームでの待機を制限します。その設定は他のプロバイダーには適用されません。ゲートウェイはアップストリームが応答を開始するまで最大 1 時間待機します。

375 584 

376`404` はアップストリームモデル可用性ごとであるため、モデルを有効にしていないアップストリームは、それを提供する後のアップストリームをブロックしません。要求されたモデルを解決できないアップストリームはネットワークラウンドトリップなしでスキップされます。585`404` は per-upstream モデル可用性であるため、モデルを有効にしていないアップストリームは、それを提供する後のアップストリームをブロックしません。要求されたモデルを解決できないアップストリームはネットワークラウンドトリップなしでスキップされます。

377 586 

378この例は、プロビジョニングされたスループット Amazon Bedrock 割り当てを最初にルーティングし、オンデマンドと 2 番目のアカウントにオーバーフローし、最後に Anthropic API にフォールバックします。587この例は、プロビジョニングされたスループット Amazon Bedrock 割り当てを最初にルーティングし、オンデマンドと 2 番目のアカウントにオーバーフロー、最後に Anthropic API にフォールバックします:

379 588 

380```yaml theme={null}589```yaml theme={null}

381upstreams:590upstreams:


389 provider: bedrock598 provider: bedrock

390 region: us-west-2599 region: us-west-2

391 auth: {}600 auth: {}

392 # Different account: a separate Bedrock allotment via assumed-role creds.601 # Different account: a separate Bedrock allotment via static keys.

393 - name: bedrock-acct2602 - name: bedrock-acct2

394 provider: bedrock603 provider: bedrock

395 region: us-east-1604 region: us-east-1


415 624 

416| レバー | 方法 |625| レバー | 方法 |

417| - | - |626| - | - |

418| 異なるリージョン | リージョンごとに 1 つの Amazon Bedrock アップストリーム。それぞれ独自の `region:`。[`auto_include_builtin_models: true`](#models) を使用すると、クロスリージョン推論プロファイルは自動的にルーティングします。リージョンピン留めデプロイメントの場合は `models:` ブロックを使用します。 |627| 異なるリージョン | リージョンごとに 1 つの Amazon Bedrock アップストリーム。独自の `region:` を持つ。[`auto_include_builtin_models: true`](#models) でクロスリージョン推論プロファイルは自動的にルーティングします。リージョンピン配置デプロイメントの場合、`models:` ブロックを使用します。 |

419| 異なるアカウント | アカウントごとに 1 つの Amazon Bedrock アップストリーム。それぞれ `auth:` に独自の認証情報。デフォルトチェーン(`auth: {}`)はポッドのアイデンティティを使用します。2 番目のアカウントの場合は、明示的な認証情報またはベアラートークンを設定します。 |628| 異なるアカウント | アカウントごとに 1 つの Amazon Bedrock アップストリーム。デフォルトチェーン(`auth: {}`)はポッドのアイデンティティを使用します。2 番目のアカウントの場合、短期認証情報でそれに到達するために [`assume_role`](#bedrock-in-another-aws-account) を追加するか、`auth:` で明示的な認証情報またはベアラートークンを設定します。 |

420| プロビジョニングされたスループット | そのアップストリームの名前の `models:` でモデルをプロビジョニングされたスループット ARN にマップします。他のアップストリームはオンデマンド ID を保つため、PT 容量はフェイルオーバーする前に枯渇します。 |629| プロビジョニングされたスループット | モデルをそのアップストリームの名前の `models:` のプロビジョニングされたスループット ARN にマップします。他のアップストリームはオンデマンド ID を保つため、PT 容量はフェイルオーバーする前に枯渇します。 |

421| VPC / FIPS エンドポイント | アップストリームで `base_url:` を VPC エンドポイントまたは FIPS エンドポイント URL に設定します。 |630| VPC / FIPS エンドポイント | アップストリームで `base_url:` を VPC エンドポイントまたは FIPS エンドポイント URL に設定 |

422| モデルスコープルーティング | 組み込み Claude モデルではないカスタムモデル `id` のみが、`upstream_model:` マップから欠落しているアップストリームをスキップします。ゲートウェイはすべてのアップストリームで組み込みモデルを試み、マップにエントリがない場合はプロバイダーのデフォルト ID を使用するため、組み込みモデルの場合、マップはアップストリームが試みられるかどうかではなく、アップストリームが受け取る ID を変更します。ID を拒否するアップストリームは、他のアップストリームエラーと同じ[フェイルオーバールール](#upstreams)に従います。 |631| モデルスコープルーティング | カスタムモデル `id` のみ。組み込み Claude モデルではなく、`upstream_model:` マップに存在しないアップストリームをスキップします。ゲートウェイは組み込みモデルをすべてのアップストリームで順に試み、マップに エントリがない場合はプロバイダーのデフォルト ID を使用するため、組み込みモデルの場合、マップはアップストリームが試みられるかどうかではなく、アップストリームが受け取る ID を変更します。ID を拒否するアップストリームは、他のアップストリームエラーと同じ[フェイルオーバールール](#upstreams)に従います。 |

423 632 

424クラウドプロバイダー間、または直接 Anthropic API へのフェイルオーバーは、リクエストを管理する契約、地理、およびその他の条件を変更します。633クラウドプロバイダー間、または直接 Anthropic API へのフェイルオーバーは、リクエストを制御する契約、地理、およびその他の条件を変更します。

425 634 

426CLI はゲートウェイに同じ機能ゲーティングを適用します。特定のリクエストがどのアップストリームを提供するかに関わらず、フェイルオーバーはアップストリームが拒否する本体フィールドを送信しません。635CLI は、どのアップストリームが特定のリクエストを提供するかに関わらず、ゲートウェイに同じ機能ゲーティングを適用するため、フェイルオーバーはアップストリームが拒否する本体フィールドを送信しません。

427 636 

428<h2 id="optional-sections">637<h2 id="optional-sections">

429 オプションセクション638 オプションセクション


433 `admin`642 `admin`

434</h3>643</h3>

435 644 

436オプション。`/v1/organizations/spend_limits` を有効にします。これは Anthropic のパブリック Admin API をミラーリングし、`/v1/messages` で開発者ごとの支出強制を行います。[支出制限](/docs/ja/claude-apps-gateway-spend-limits)で、キャップがどのように設定および強制されるかを参照してください。このセクションは、機能をオンにしてチューニングする `gateway.yaml` キーをカバーします。645オプション。`/v1/organizations/spend_limits` を有効にします。これは Anthropic のパブリック Admin API をミラーリングし、`/v1/messages` でデベロッパーごとの支出強制を行います。キャップの設定と強制方法については [支出制限](/docs/ja/claude-apps-gateway-spend-limits) を参照してください。このセクションでは、この機能をオンにしてチューニングする `gateway.yaml` キーについて説明します。

437 646 

438```yaml theme={null}647```yaml theme={null}

439admin:648admin:

440 # 管理エンドポイント用の名前付き静的 API キー。x-api-key として送信されます。649 # 管理エンドポイント用の名前付き静的 API キー。x-api-key として送信されます。

441 # ID は監査ログに admin-key:<id> として表示されるため、各キーは650 # id は監査ログに admin-key:<id> として表示されるため、各キーは

442 # 属性可能です。回転用の配列:新しいキーを追加し、クライアントをロール、651 # 追跡可能です。ローテーション用の配列:新しいキーを追加し、

443 # 古いものを削除します。652 # クライアントをロールし、古いキーを削除します。

444 write_keys:653 write_keys:

445 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }654 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

446 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }655 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }

447 read_keys:656 read_keys:

448 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }657 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

449 # 通常のゲートウェイ JWT(API キーなし)経由で完全な管理者を付与された IdP グループ。658 # 通常のゲートウェイ JWT(API キーなし)を介して完全な管理者権限を付与される IdP グループ。

450 admin_groups: [platform-finops]659 admin_groups: [platform-finops]

451 blocked_message: request an increase at https://go.example.com/claude-limits660 blocked_message: request an increase at https://go.example.com/claude-limits

452```661```

453 662 

454| フィールド | 必須 | 説明 |663| フィールド | 必須 | 説明 |

455| - | - | - |664| - | - | - |

456| `write_keys` | いいえ | `{id, key}` の配列。これらのいずれかと一致する `x-api-key` は、支出制限をリスト、設定、削除できます。キー値は少なくとも 32 文字である必要があります。`id` は `read_keys` と `write_keys` 全体で一意である必要があります。 |665| `write_keys` | いいえ | `{id, key}` の配列。これらのいずれかと一致する `x-api-key` は、支出制限をリスト、設定、削除できます。キー値は最低 32 文字である必要があります。`id` は `read_keys` と `write_keys` 全体で一意である必要があります。 |

457| `read_keys` | いいえ | `{id, key}` の配列。読み取り専用:すべての `GET` エンドポイント。キャップのリスト、ID による 1 つの取得、[`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) と [`/audit`](/docs/ja/claude-apps-gateway-spend-limits#%2Faudit) の読み取りを含みます。 |666| `read_keys` | いいえ | `{id, key}` の配列。読み取り専用:すべての `GET` エンドポイント(キャップのリスト、ID による 1 つの取得、[`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) と [`/audit`](/docs/ja/claude-apps-gateway-spend-limits#%2Faudit) の読み取りを含む)。 |

458| `admin_groups` | いいえ | IdP グループ名。`groups` クレームがこれらのいずれかを含むゲートウェイ JWT は、完全な管理者アクセス、読み取りと書き込みを持ち、`oidc:<sub>` として監査されます。人間の管理者に使用します。マシンに API キーを使用します。このリストの空のエントリはゲートウェイをブート時に停止します。[ゲートウェイをブート時に停止するマッチャー値](#matcher-values-that-stop-the-gateway-at-boot)を参照してください。 |667| `admin_groups` | いいえ | IdP グループ名。`groups` クレームにこれらのいずれかを含むゲートウェイ JWT は、完全な管理者アクセス(読み取りと書き込み)を持ち、`oidc:<sub>` として監査されます。人間の管理者にはこれを使用し、マシンには API キーを使用してください。このリストの空のエントリはブート時にゲートウェイを停止します。[ゲートウェイをブート時に停止させるマッチャー値](#matcher-values-that-stop-the-gateway-at-boot) を参照してください。 |

459| `blocked_message` | いいえ | ブロックされた開発者が見る `429 billing_error` に逐語的に追加されます。URL または Slack チャネルなど、完全な指示を書きます。未設定の場合、ゲートウェイはデフォルトメッセージのみを送信します。[強制がどのように機能するか](/docs/ja/claude-apps-gateway-spend-limits#how-enforcement-works)を参照してください。 |668| `blocked_message` | いいえ | ブロックされたデベロッパーが見る `429 billing_error` に逐語的に追加されます。URL や Slack チャネルなど、完全な指示を記述してください。設定されていない場合、ゲートウェイはデフォルトメッセージのみを送信します。[強制の仕組み](/docs/ja/claude-apps-gateway-spend-limits#how-enforcement-works) を参照してください。 |

460| `audit_retention_days` | いいえ | デフォルト `365`。古い `admin_audit` 行はスイープされます。 |669| `audit_retention_days` | いいえ | デフォルト `365`。古い `admin_audit` 行は削除されます。 |

461| `spend_retention_months` | いいえ | デフォルト `13`。この期間より古い `spend` カウンター行はスイープされます。デフォルトは、年間比較レポート用に完全な年と現在の部分月を保持します。 |670| `spend_retention_months` | いいえ | デフォルト `13`。この期間より古い `spend` カウンター行は削除されます。デフォルトは前年比レポート用に完全な 1 年と現在の部分月を保持します。 |

462| `identity_retention_days` | いいえ | デフォルト `90`。`principal_emails` 行の最後に見た TTL。各開発者のメール、表示名、グループ(PII)を保持します。意図的に支出保持より短いため、プロビジョニング解除されたアイデンティティは、その匿名支出カウンターが残っている間に期限切れになります。 |671| `identity_retention_days` | いいえ | デフォルト `90`。`principal_emails` 行の最後に見た TTL。各デベロッパーのメール、表示名、グループ(PII)を保持します。意図的に支出保持より短いため、プロビジョニング解除されたアイデンティティは古くなりますが、その匿名支出カウンターは残ります。 |

463| `group_limit_mode` | いいえ | `min`(デフォルト)または `max`。開発者が複数のグループにキャップがある場合、`min` は最も制限的なものを強制し、`max` は最も制限的でないものを強制します。強制と `/effective` の両方で使用されます。 |672| `group_limit_mode` | いいえ | `min`(デフォルト)または `max`。デベロッパーが複数のグループにキャップがある場合、`min` は最も制限的なものを強制し、`max` は最も制限的でないものを強制します。強制と `/effective` の両方で使用されます。 |

464 673 

465<h3 id="enforcement">674<h3 id="enforcement">

466 `enforcement`675 `enforcement`

467</h3>676</h3>

468 677 

469`enforcement` ブロックは、ストアが利用できない場合の支出制限チェックの動作を制御します。678`enforcement` ブロックは、ストアが利用できない場合に支出制限チェックがどのように動作するかを制御します。

470 679 

471| フィールド | 必須 | 説明 |680| フィールド | 必須 | 説明 |

472| - | - | - |681| - | - | - |

473| `fail_closed_on_error` | いいえ | デフォルト `false`。支出強制は Postgres 停止時にオープンで失敗するため、推論は稼働したままです。`true` に設定してクローズで失敗:上限を超えた開発者はブロックされますが、ストアに到達できない場合は他のすべてもブロックされます。[`admin:`](#admin) ブロックが必要です:支出強制は `admin` が設定されている場合にのみ実行され、これを `true` に設定して `admin` ブロックなしでゲートウェイは起動を拒否します。 |682| `fail_closed_on_error` | いいえ | デフォルト `false`。支出強制は Postgres 停止時にオープンで失敗するため、推論は稼働し続けます。`true` に設定してクローズで失敗させます:キャップを超えたデベロッパーはブロックされますが、ストアに到達できない場合は他のすべてのユーザーもブロックされます。[`admin:`](#admin) ブロックが必要です:支出強制は `admin` が設定されている場合にのみ実行され、これを `true` に設定せずにゲートウェイが起動することを拒否します。 |

474 683 

475<h3 id="pricing">684<h3 id="pricing">

476 `pricing`685 `pricing`

477</h3>686</h3>

478 687 

479`pricing` ブロックは、支出メーターに USD リスト価格の代わりに請求する内容を指示するため、キャップと [`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) は契約レートを反映します。金額は USD のままで、請求書ではなく見積もりのままです。2 つの前提条件:688`pricing` ブロックは、支出メーターに USD リスト価格の代わりに請求する内容を指示するため、キャップと [`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) は契約レートを反映します。金額は USD のままで、請求書ではなく見積もりです。2 つの前提条件があります:

480 689 

481* ゲートウェイサーバー上の Claude Code v2.1.227 以降。以前のバージョンはブート時に不明なキーを拒否します。690* ゲートウェイサーバー上の Claude Code v2.1.227 以降。以前のバージョンはブート時に不明なキーを拒否します。

482* [`admin:`](#admin) ブロック、または v2.1.268 以降では、少なくとも 1 つのポリシーを持つ [`managed:`](#managed) ブロック。支出メーターのみが `pricing` を読み込むためです。ゲートウェイは `pricing` が設定されていて両方のブロックがない場合、起動を拒否します。691* [`admin:`](#admin) ブロック、または v2.1.268 以降では、少なくとも 1 つのポリシーを持つ [`managed:`](#managed) ブロック。ゲートウェイは `pricing` が設定されていて、どちらのブロックもない場合、起動を拒否します。これは何も読まないためです。

483 692 

484```yaml theme={null}693```yaml theme={null}

485pricing:694pricing:


495 704 

496| フィールド | 必須 | 説明 |705| フィールド | 必須 | 説明 |

497| - | - | - |706| - | - | - |

498| `multiplier` | いいえ | デフォルト `1`。メーターはリスト価格またはオーバーライドされたかどうかに関わらず、すべてのメーター量にこれを乗算するため、`0.85` は価格の 85% を請求します。0 より大きく、最大 10 である必要があります。1 より上の値は [マークアップ](#mark-prices-up)です。 |707| `multiplier` | いいえ | デフォルト `1`。メーターはリスト価格またはオーバーライドされたかどうかに関わらず、すべてのメーター量にこれを乗算するため、`0.85` は価格の 85% を請求します。0 より大きく最大 10 である必要があり、1 より上の値は [マークアップ](#mark-prices-up) です。 |

499| `overrides` | いいえ | `{upstream, model, input, output, cache_read, cache_write}` の行。USD/百万トークン。4 つのレートすべてが必須です。各レートは 0 より大きく、最大 10000 である必要があります。 |708| `overrides` | いいえ | 100 万トークンあたり USD での `{upstream, model, input, output, cache_read, cache_write}` の行。4 つのレートすべてが必要です。各レートは 0 より大きく最大 10000 である必要があります。 |

500 709 

501メーターがオーバーライド行をマッチする方法:710メーターがオーバーライド行をどのようにマッチングするか:

502 711 

503* 行は、`upstream`([`upstreams[].name`](#upstreams))が `model` に対して提供するリクエストのリスト価格を置き換えます。これには、より高い [高速モード](/docs/ja/fast-mode#understand-the-cost-tradeoff) レートが含まれるため、高速と標準リクエストは同じ 4 つのレートでメーターされます。712* 行は、`upstream`([`upstreams[].name`](#upstreams))が `model` に対して提供するリクエストのリスト価格を置き換えます。これには、より高い [高速モード](/docs/ja/fast-mode#understand-the-cost-tradeoff) レートが含まれるため、高速リクエストと標準リクエストは同じ 4 つのレートでメーターされます。

504* `claude-sonnet-4-6` などの組み込み ID([`models[].id`](#models) のようにマッチ)は、メーターがそのモデルとして価格設定するすべての日付形式、地域 Amazon Bedrock 形式、または Google Cloud の Agent Platform 形式をカバーします。エイリアスまたは推論プロファイル ARN などの他の文字列は、クライアントが送信した ID またはアップストリームに送信された文字列と大文字小文字を区別せずにマッチします。713* `claude-sonnet-4-6` などの組み込み ID([`models[].id`](#models) のようにマッチング)は、メーターがそのモデルとして価格設定するすべての日付付き形式、地域の Amazon Bedrock 形式、または Google Cloud の Agent Platform 形式をカバーします。エイリアスや推論プロファイル ARN などの他の文字列は、クライアントが送信した ID または上流に送信された文字列と大文字小文字を区別しないでマッチングします。

505* 行が重複する場合、メーターは最初の行ではなく最も具体的な行を選択します:アップストリームに送信された正確なモデル文字列である `model` を持つ行、次にクライアントが送信した正確な ID にマッチする行、次に組み込みモデルに名前を付ける行。714* 行が重複する場合、メーターは最初の行ではなく最も具体的な行を選択します:上流に送信された正確なモデル文字列である `model` を持つ行、次にクライアントが送信した正確な ID とマッチングする行、次に組み込みモデルに名前を付ける行。

506* 不明なアップストリーム名はブートに失敗し、1 つのアップストリームに対して同じモデルに名前を付ける 2 つの行も失敗します。これには、組み込みモデルの 2 つのスペルが含まれます。ゲートウェイはブート時に、リクエスト可能なモデルが使用できない行について警告します。715* 不明な上流名はブート失敗を引き起こし、1 つの上流に対して同じモデルに名前を付ける 2 つの行も同様です(組み込みモデルの 1 つのスペルを含む)。ゲートウェイはブート時に、リクエスト可能なモデルが使用できない行について警告します。

507* Web 検索リクエストは \$0.01 リスト価格のままです。乗算器はそれらにも適用されます。716* Web 検索リクエストは \$0.01 リスト価格のままです。乗数はそれらにも適用されます。

508 717 

509地域ごとのレートについては、各地域に独自の名前付きアップストリームを指定し、アップストリームごとに 1 つの行を指定します。718地域ごとのレートについては、各地域に独自の名前付き上流を与え、上流ごとに 1 つの行を与えます。

510 719 

511<h4 id="mark-prices-up">720<h4 id="mark-prices-up">

512 価格をマークアップする721 価格をマークアップする

513</h4>722</h4>

514 723 

515ゲートウェイサーバー上で v2.1.271 以降を使用すると、`multiplier` を 1 より上に設定でき、最大 10 まで、プロバイダーが請求するより多くをメーターするため、例えば内部チャージバックレート。この例は、すべてのリクエストを価格の 120% でメーターします:724ゲートウェイサーバー上の v2.1.271 以降では、`multiplier` を 1 より上に設定でき、最大 10 まで、プロバイダーが請求する以上にメーターするため、例えば内部チャージバックレートです。この例は、すべてのリクエストを価格の 120% でメーターします:

516 725 

517```yaml theme={null}726```yaml theme={null}

518pricing:727pricing:

519 multiplier: 1.2728 multiplier: 1.2

520```729```

521 730 

522[`admin:`](#admin) ブロックを使用すると、マークアップは支出制限にも適用されます。メーターは価格の 120% をカウントするため、開発者はキャップに早く到達します。ゲートウェイはブート時に、そのことを示す警告をログします。731[`admin:`](#admin) ブロックを使用すると、マークアップは支出制限にも適用されます。メーターは価格の 120% をカウントするため、デベロッパーはキャップに早く到達します。ゲートウェイはブート時に、そのことを示す警告をログに記録します。

523 732 

524乗算器は、アップストリームプロバイダーがリクエストに請求する内容を変更しません。733乗数は、上流プロバイダーがリクエストに請求する内容を変更しません。

525 734 

526ゲートウェイが [署名されたクライアントにレートを送信](#send-the-rates-to-signed-in-clients)する場合、開発者はマークアップを見るために Claude Code v2.1.271 以降が必要です。以前のクライアントは 1 より上の `multiplier` を無視し、それなしでコストを表示します。735ゲートウェイが [署名済みクライアントにレートを送信](#send-the-rates-to-signed-in-clients) する場合、デベロッパーは Claude Code v2.1.271 以降を必要とします。以前のクライアントは 1 より上の `multiplier` を無視し、それなしでコストを表示します。

527 736 

528v2.1.271 より前のゲートウェイサーバーは、1 より上の `multiplier` を設定した場合、起動を拒否します。737v2.1.271 より前のゲートウェイサーバーは、`multiplier` を 1 より上に設定した場合、起動を拒否します。

529 738 

530<h4 id="send-the-rates-to-signed-in-clients">739<h4 id="send-the-rates-to-signed-in-clients">

531 署名されたクライアントにレートを送信する740 署名済みクライアントにレートを送信する

532</h4>741</h4>

533 742 

534ゲートウェイサーバー上で v2.1.268 以降を使用すると、ゲートウェイは `pricing` からのレートを提供する [`managed`](#managed) ポリシーに入れます。[`modelPricing`](/docs/ja/settings-reference#modelpricing) マネージド設定として。ポリシーにマッチした開発者は、`/usage`、ステータス行、OpenTelemetry で各モデル ID を提供する最初のアップストリームの `pricing` レートを見ます。ポリシーにマッチしない開発者はマネージド設定を受け取らないため、彼らの数字はリスト価格のままです。クライアントは Claude Code v2.1.242 以降で設定を適用します。743ゲートウェイサーバー上の v2.1.268 以降では、ゲートウェイは `pricing` からのレートを、提供する [`managed`](#managed) ポリシーに [`modelPricing`](/docs/ja/settings-reference#modelpricing) マネージド設定として入れます。ポリシーにマッチするデベロッパーは、`/usage`、ステータス行、OpenTelemetry で各モデル ID を提供する最初の上流の `pricing` レートを見ます。ポリシーにマッチしないデベロッパーはマネージド設定を受け取らないため、その数字はリスト価格のままです。クライアントは Claude Code v2.1.242 以降で設定を適用します。

535 744 

536* ゲートウェイが追加するもの:ポリシーの `cli` ブロックが既に `modelPricing` を設定していない限り、ゲートウェイは `multiplier` を追加し、クライアントがリクエストできるすべてのモデル ID について、そのモデル ID を提供する最初のアップストリームのオーバーライド行を追加します。フェイルオーバーアップストリームのみが請求するレートはゲートウェイに留まります。745* ゲートウェイが追加するもの:ポリシーの `cli` ブロックが既に `modelPricing` を設定していない限り、ゲートウェイは `multiplier` と、クライアントがリクエストできるすべてのモデル ID について、それを提供する最初の上流のオーバーライド行を追加します。フェイルオーバー上流のみが請求するレートはゲートウェイに留まります。

537* 1 つのポリシーをオプトアウト:ポリシーの `cli` ブロックで `modelPricing` を `{}` に設定し、その開発者はリスト価格のままです。746* 1 つのポリシーをオプトアウトする:そのポリシーの `cli` ブロックで `modelPricing` を `{}` に設定し、そのデベロッパーはリスト価格のままです。

538* ポリシー独自のレートを保持:`cli` ブロックが独自の `multiplier` または `overrides` で `modelPricing` を設定するポリシーは、その `modelPricing` 全体を保持し、ゲートウェイはそれに独自のレートを追加しません。747* ポリシー独自のレートを保持する:`cli` ブロックが独自の `multiplier` または `overrides` で `modelPricing` を設定するポリシーは、その `modelPricing` 全体を保持し、ゲートウェイはそれに独自のレートを追加しません。

539 748 

540<h3 id="models">749<h3 id="models">

541 `models`750 `models`

542</h3>751</h3>

543 752 

544`models` ブロックはオプションの管理者がキュレーションしたモデルリストで、`/v1/models` で提供され、アップストリームごとのモデル ID を変換するために使用されます。US 以外の Amazon Bedrock リージョン、Amazon Bedrock プロビジョニングスループット ARN、Microsoft Foundry デプロイメント名に必須です。753`models` ブロックはオプションの管理者キュレーション済みモデルリストで、`/v1/models` で提供され、上流ごとにモデル ID を変換するために使用されます。これは、米国以外の Amazon Bedrock リージョン、Amazon Bedrock プロビジョニング済みスループット ARN、および Microsoft Foundry デプロイメント名に必須です。

545 754 

546```yaml theme={null}755```yaml theme={null}

547auto_include_builtin_models: true # false:以下のリストのみを公開756auto_include_builtin_models: true # false: 以下のリストのみを公開

548models:757models:

549 - id: claude-opus-4-8758 - id: claude-opus-4-8

550 label: Claude Opus 4.8759 label: Claude Opus 4.8

551 # description:オプションのテキスト。クライアントに表示される場合がある760 # description: クライアントで表示されるオプションテキスト

552 upstream_model:761 upstream_model:

553 anthropic: claude-opus-4-8762 anthropic: claude-opus-4-8

554 bedrock: us.anthropic.claude-opus-4-8 # または推論プロファイル ARN763 bedrock: us.anthropic.claude-opus-4-8 # または推論プロファイル ARN

555 foundry: your-opus-deployment-name764 foundry: your-opus-deployment-name

556```765```

557 766 

558`upstream_model` の下の各キーは、設定されたアップストリームの `name` と一致する必要があります。デフォルトはプロバイダー名です。アップストリームと一致しないキーはブートに失敗するため、使用しないプロバイダーの行は省略します。767`upstream_model` の各キーは、設定された上流の `name` と一致する必要があります。デフォルトはプロバイダー名です。キーが上流と一致しない場合、ブート失敗を引き起こすため、使用しないプロバイダーの行は省略してください。

559 768 

560<h3 id="managed">769<h3 id="managed">

561 `managed`770 `managed`

562</h3>771</h3>

563 772 

564`managed` ブロックは、IdP グループまたはメールドメインでキーイングされた、ロールベースのアクセスポリシーを定義します。ポリシーは順番に評価されます。最初のマッチが選択され、`match: {}` キャッチオール基盤にマージされます。ユーザーごとに `GET /managed/settings` で ETag/304 キャッシング付きで提供されます。773`managed` ブロックは、IdP グループまたはメールドメインをキーとしたロールベースのアクセスポリシーを定義します。ポリシーは順序で評価され、最初のマッチが選択され、`match: {}` キャッチオール基盤にマージされます。これらは `GET /managed/settings` でユーザーごとに ETag/304 キャッシング付きで提供されます。

565 774 

566```yaml theme={null}775```yaml theme={null}

567managed:776managed:


571 cli:780 cli:

572 availableModels: [claude-sonnet-4-6]781 availableModels: [claude-sonnet-4-6]

573 permissions: { deny: ["WebFetch", "WebSearch"] }782 permissions: { deny: ["WebFetch", "WebSearch"] }

574 # デフォルトキャッチオール最後:認証されたすべてのユーザーにマッチします。783 # デフォルトキャッチオール最後:認証されたすべてのユーザーにマッチング。

575 - match: {}784 - match: {}

576 cli:785 cli:

577 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]786 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

578```787```

579 788 

580`match: {}` キャッチオール。慣例的に最後にリストされます。基盤層として扱われます。他のすべてのポリシーは、設定しないキーについてキャッチオールから継承するため、ロール別エントリは組織デフォルトから異なるものだけをリストする必要があります。マージルールはキータイプに依存します:789`match: {}` キャッチオール(慣例的に最後にリストされる)は基盤層として扱われます。他のすべてのポリシーは、設定しないキーについてキャッチオールから継承するため、ロールごとのエントリは組織のデフォルトから異なる内容のみをリストする必要があります。マージルールはキータイプに依存します:

581 790 

582* **許可リスト**:`availableModels` と `permissions.allow`。特定のポリシーのリストは基盤のリストを完全に置き換えます。791* **許可リスト**:`availableModels` と `permissions.allow`。特定のポリシーのリストは基盤のリストを完全に置き換えます。

583* **拒否リストとフックアレイ**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces`、およびすべての `hooks` イベントタイプアレイ。これらは基盤とポリシーの和集合を取得するため、組織全体の拒否または監査フックは、ロール別オーバーライドによって誤ってドロップされることはできません。792* **拒否リストとフック配列**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces`、およびすべての `hooks` イベントタイプ配列。これらは基盤とポリシーの和集合を取るため、組織全体の拒否または監査フックはロールごとのオーバーライドで誤って削除されることはありません。

584* **レコードタイプキー**:`env`、`modelOverrides`、`skillOverrides`。これらは浅くマージするため、ロール別 `env` ブロックは設定するキーをオーバーライドし、基盤から残りを継承します。793* **レコード型キー**:`env`、`modelOverrides`、`skillOverrides`。これらは浅くマージするため、ロールごとの `env` ブロックは設定するキーをオーバーライドし、基盤から残りを継承します。

585 794 

586`availableModels` は `/v1/messages` でサーバー側でも強制されるため、拒否されたモデルはクライアントが送信するものに関わらず `400` を返します。795`availableModels` は `/v1/messages` でサーバー側でも強制されるため、拒否されたモデルはクライアントが送信する内容に関わらず `400` を返します。

587 796 

588ゲートウェイはリクエストをリレーする前に `model` 値自体を検証するため、形式が正しくない値がアップストリームに到達することはありません。2 つのケースで `400` でリクエストを拒否します:797ゲートウェイはリクエストを中継する前に `model` 値自体を検証するため、不正な形式の値は上流に到達しません。2 つの場合に `400` でリクエストを拒否します:

589 798 

590* 値が欠落しているか空の場合、ゲートウェイはメッセージ `model is required` でリクエストを拒否します。このチェックには Claude Code v2.1.228 以降を実行しているゲートウェイが必要です。799* 値が欠落しているか空の場合、ゲートウェイはメッセージ `model is required` でリクエストを拒否します。このチェックには Claude Code v2.1.228 以降を実行しているゲートウェイが必要です。

591* 値が存在しているが文字列ではない場合、ゲートウェイはメッセージ `model must be a string` でリクエストを拒否します。Claude Code v2.1.221 以降を実行しているゲートウェイが必要です。800* 値が存在しているが文字列ではない場合、ゲートウェイはメッセージ `model must be a string` でリクエストを拒否します。Claude Code v2.1.221 以降を実行しているゲートウェイが必要です。

592 801 

593| マッチャー | 動作 |802| マッチャー | 動作 |

594| - | - |803| - | - |

595| `match: {}` | 認証されたすべてのユーザーにマッチします。これで開始し、後で上にグループスコープポリシーを追加します。 |804| `match: {}` | すべての認証されたユーザーにマッチング。これで開始し、後で上にグループスコープのポリシーを追加します。 |

596| `match: { groups: [a, b] }` | JWT の `groups` クレームがリストされたグループのいずれかを含む場合にマッチします。大文字小文字を区別します:グループは IdP の正確な大文字小文字と一致する必要があります。 |805| `match: { groups: [a, b] }` | JWT の `groups` クレームにリストされたグループのいずれかが含まれている場合にマッチング。大文字小文字を区別します:グループは IdP の正確な大文字小文字と一致する必要があります。 |

597| `match: { email_domain: example.com }` | JWT の `email` クレームの最後の `@` の後の部分にマッチします。大文字小文字を区別しません。ポリシーごとに 1 つのドメインを受け入れます。 |806| `match: { email_domain: example.com }` | JWT の `email` クレームの最後の `@` の後の部分にマッチング。大文字小文字を区別しません。ポリシーごとに 1 つのドメインを受け入れます。 |

598| `match: { groups: [a], email_domain: example.com }` | 両方の条件がマッチする必要があります。 |807| `match: { groups: [a], email_domain: example.com }` | 両方の条件がマッチングする必要があります |

599 808 

600ポリシーにマッチしない認証されたユーザーは、ゲートウェイのデフォルトを取得します。これは、カタログ内のすべてのモデルと管理設定なしを意味します。最後に `match: {}` キャッチオールを追加して、保証されたデフォルトポリシーが必要な場合。809認証されたユーザーがポリシーにマッチしない場合、ゲートウェイのデフォルトを取得します。これはカタログ内のすべてのモデルとマネージド設定なしを意味します。保証されたデフォルトポリシーが必要な場合は、最後に `match: {}` キャッチオールを追加してください。

601 810 

602<Note>811<Note>

603 ゲートウェイは独自のユーザーディレクトリを保持しません。ユーザーの IdP トークンから各リクエストを認可し、トークンの `groups` クレームからグループメンバーシップを読み込み、それに対してポリシーを評価します。列挙するロスターはなく、事前作成するアカウントもありません。したがって、SCIM エンドポイントはありません。SCIM が同期するものがないためです。812 ゲートウェイは独自のユーザーディレクトリを保持しません。ユーザーの IdP トークンから各リクエストを認可し、トークンの `groups` クレームからグループメンバーシップを読み取り、それに対してポリシーを評価します。列挙するロスターはなく、事前作成するアカウントもなく、したがって SCIM エンドポイントもありません。SCIM が同期するものがないためです。

604 813 

605 ユーザーとグループのライフサイクル管理を、真実の源である IdP のネイティブ SCIM プロビジョニングまたは専用アイデンティティガバナンスプラットフォームで実行します。メンバーシップとプロビジョニング解除はそこで管理され、トークンを通じてゲートウェイに自動的に流れます。Claude アカウント自体の SCIM プロビジョニングが必要な場合、それは [Claude for Enterprise](/docs/ja/admin-setup) 機能です。814 ユーザーとグループのライフサイクル管理を、真実の源である IdP のネイティブ SCIM プロビジョニングまたは専用のアイデンティティガバナンスプラットフォームで実行してください。そこで管理されるメンバーシップとプロビジョニング解除は、トークンを通じてゲートウェイに自動的に流れます。Claude アカウント自体の SCIM プロビジョニングが必要な場合、それは [Claude for Enterprise](/docs/ja/admin-setup) 機能です。

606 815 

607 2 つの伝播クロックが適用されます:816 2 つの伝播クロックが適用されます:

608 817 

609 * **ポリシーコンテンツ**:ポリシーを編集して再デプロイすると、接続されたクライアントの次のマネージド設定ポーリング時に到達します。1 時間以内。[次の起動時にのみ適用される変更](/docs/ja/server-managed-settings#fetch-and-caching-behavior)を除きます。818 * **ポリシーコンテンツ**:ポリシーを編集して再デプロイすると、接続されたクライアントの次のマネージド設定ポーリング時に到達します。1 時間以内。[次の起動時にのみ適用される変更](/docs/ja/server-managed-settings#fetch-and-caching-behavior) を除きます。

610 * **グループメンバーシップ**:ユーザーのグループメンバーシップを変更すると、どのポリシーが彼らにマッチするかが変わります。これは次のセッション再発行時に有効になります。つまり、次の無言リフレッシュ。`session.ttl_hours` で制限されます。819 * **グループメンバーシップ**:ユーザーのグループメンバーシップを変更すると、どのポリシーがそれらにマッチングするかが変わります。これは次のセッション再ミント時に有効になります。つまり、次のサイレントリフレッシュ。`session.ttl_hours` で制限されます。

611</Note>820</Note>

612 821 

613<h4 id="matcher-values-that-stop-the-gateway-at-boot">822<h4 id="matcher-values-that-stop-the-gateway-at-boot">

614 ゲートウェイをブート時に停止するマッチャー値823 ゲートウェイをブート時に停止させるマッチャー値

615</h4>824</h4>

616 825 

617ブート時に、ゲートウェイはすべてのポリシーの `match` ブロックと [`admin_groups`](#admin) リストをチェックします。これらの値のいずれかがゲートウェイをフィールドに名前を付けるエラーで停止します:826ブート時に、ゲートウェイはすべてのポリシーの `match` ブロックと [`admin_groups`](#admin) リストをチェックします。これらの値のいずれかがゲートウェイを停止させ、フィールドに名前を付けるエラーが発生します:

618 827 

619* 空の `groups` リスト828* 空の `groups` リスト

620* `groups` または `admin_groups` の空のエントリ829* `groups` または `admin_groups` の空のエントリ

621* 空の `email_domain`830* 空の `email_domain`

622* `@`、空白、またはコンマを含む `email_domain`。ゲートウェイはこのチェック前に値をトリムし、1 つの先頭 `@` を削除します。`example.com` などの 1 つの裸のドメインを書きます。831* `@`、空白、またはコンマを含む `email_domain`。ゲートウェイはこのチェック前に値をトリミングし、1 つの先頭 `@` を削除します。`example.com` などの 1 つの裸のドメインを記述してください。

623 832 

624v2.1.232 より前では、ゲートウェイはこれらの値で起動しました。各値はこの効果を持っていました:833v2.1.232 より前では、ゲートウェイはこれらの値で起動しました。各値はこの効果を持っていました:

625 834 

626* 空の `email_domain`:ゲートウェイはドメインチェックをスキップしたため、空の `email_domain` と `groups` リストなしのポリシーはすべての認証されたユーザーにマッチしました。835* 空の `email_domain`:ゲートウェイはドメインチェックをスキップしたため、空の `email_domain` と `groups` リストなしのポリシーはすべての認証されたユーザーにマッチングしました。

627* 空の `groups` リスト:ポリシーは誰にもマッチしませんでした。836* 空の `groups` リスト:ポリシーは誰にもマッチングしませんでした。

628* `@`、空白、またはコンマを含む `email_domain`:ポリシーは誰にもマッチしませんでした。837* `@`、空白、またはコンマを含む `email_domain`:ポリシーは誰にもマッチングしませんでした。

629* `groups` または `admin_groups` の空のエントリ:エントリはそのユーザーの IdP `groups` クレームも空のエントリを含む場合にのみユーザーにマッチしました。`admin_groups` では、そのマッチは管理者アクセスを付与しました。`admin_groups` リストに空のエントリが含まれていない場合、誰もこの方法で管理者アクセスを取得しませんでした。838* `groups` または `admin_groups` の空のエントリ:エントリはそのユーザーの IdP `groups` クレームにも空のエントリが含まれている場合にのみユーザーにマッチングしました。`admin_groups` では、そのマッチングは管理者アクセスを付与しました。`admin_groups` リストに空のエントリが含まれていない場合、誰もこの方法で管理者アクセスを取得しませんでした。

630 839 

631<h4 id="what-goes-in-cli">840<h4 id="what-goes-in-cli">

632 `cli` に何が入るか841 `cli` に何を入れるか

633</h4>842</h4>

634 843 

635各 `cli` 値は、完全な Claude Code `managed-settings.json` ドキュメント。MDM または `/etc/claude-code/managed-settings.json` を通じてデプロイするのと同じスキーマ。ここでは YAML として表現されます。CLI は、マネージド層で配信されたドキュメントを適用します。ユーザーとプロジェクト設定の上。サーバー管理設定の代わりに。したがって、[OS レベルのポリシーソースに制限されている設定](/docs/ja/server-managed-settings#current-limitations)(`policyHelper` と `wslInheritsWindowsSettings` など)を無視します。844各 `cli` 値は完全な Claude Code `managed-settings.json` ドキュメント。MDM または `/etc/claude-code/managed-settings.json` を介してデプロイするのと同じスキーマ。YAML として表現されます。CLI は配信されたドキュメントをマネージド層で適用し、ユーザーとプロジェクト設定の上に、サーバーマネージド設定の代わりに適用します。したがって、[OS レベルのポリシーソースに限定される設定](/docs/ja/server-managed-settings#current-limitations)(`policyHelper` や `wslInheritsWindowsSettings` など)を無視します。

636 845 

637ゲートウェイは、ブート時に CLI の設定スキーマに対して各ドキュメントを検証するため、認識されないトップレベルキーはすべての違反キーに名前を付けるエラーでブートに失敗します。スキーマの意図的にオープンな部分は、新しいクライアントがゲートウェイのスキーマが認識しないエントリを認識する可能性があるため、任意の値を受け入れます。これらのオープンキーは `env`、`pluginConfigs`、`permissions` の下にネストされたキーです。846ゲートウェイは各ドキュメントをブート時に CLI の設定スキーマに対して検証するため、認識されないトップレベルキーはブート失敗を引き起こし、すべての違反キーに名前を付けるエラーが発生します。スキーマの意図的にオープンな部分はまだ任意の値を受け入れます。新しいクライアントがゲートウェイのスキーマが認識しないエントリを認識する可能性があるためです。これらのオープンキーには `env`、`pluginConfigs`、`permissions` の下にネストされたキーが含まれます。

638 847 

639検証はゲートウェイのインストール済みバージョンにバンドルされたスキーマを使用するため、新しい Claude Code リリースで導入されたトップレベル設定キーをマネージド設定に入れるには、最初にゲートウェイをアップグレードする必要があります。新しいポリシーを 1 つのクライアントでスモークテストしてから、ロールアウトします。848検証はゲートウェイのインストール済みバージョンにバンドルされたスキーマを使用するため、新しい Claude Code リリースで導入されたトップレベル設定キーをマネージド設定に入れるには、最初にゲートウェイをアップグレードする必要があります。新しいポリシーを 1 つのクライアントでスモークテストしてからロールアウトしてください。

640 849 

641完全なキーリファレンスは [Claude Code 設定](/docs/ja/settings-reference#all-settings) にあります。オペレーターが最初に到達するキー:850完全なキーリファレンスは [Claude Code 設定](/docs/ja/settings-reference#all-settings) にあります。オペレーターが最初に手を伸ばすキー:

642 851 

643```yaml theme={null}852```yaml theme={null}

644managed:853managed:


657 disableBypassPermissionsMode: disable # --dangerously-skip-permissions をブロック866 disableBypassPermissionsMode: disable # --dangerously-skip-permissions をブロック

658 allowManagedPermissionRulesOnly: true # ユーザー/プロジェクト権限ルールを無視867 allowManagedPermissionRulesOnly: true # ユーザー/プロジェクト権限ルールを無視

659 868 

660 # CLI プロセスにプッシュされた環境。DISABLE_UPDATES はバックグラウンドと手動更新をブロック;DISABLE_AUTOUPDATER はバックグラウンド更新のみを停止。869 # CLI プロセスにプッシュされた環境。DISABLE_UPDATES はバックグラウンドと

870 # 手動更新をブロックします。DISABLE_AUTOUPDATER はバックグラウンド更新のみを停止します。

661 env:871 env:

662 DISABLE_UPDATES: "1" # 独自の配布経由でバージョンをピン872 DISABLE_UPDATES: "1" # 独自の配布を介してバージョンをピン留め

663 873 

664 # 組織全体のフック。フックコマンドはゲートウェイではなく開発者マシンで実行されるため、パスはポリシー内のすべてのクライアント OS に存在する必要があります。874 # 組織全体のフック。フックコマンドはゲートウェイではなく

875 # デベロッパーマシンで実行されるため、パスはポリシー内のすべてのクライアント OS に存在する必要があります。

665 hooks:876 hooks:

666 PostToolUse:877 PostToolUse:

667 - matcher: "Edit|Write"878 - matcher: "Edit|Write"


672| キー | 強制者 | 効果 |883| キー | 強制者 | 効果 |

673| - | - | - |884| - | - | - |

674| `availableModels` | ゲートウェイ + CLI | モデル許可リスト。`/v1/messages` でもチェックされるため、パッチされたクライアントはバイパスできません。 |885| `availableModels` | ゲートウェイ + CLI | モデル許可リスト。`/v1/messages` でもチェックされるため、パッチされたクライアントはバイパスできません。 |

675| `permissions.allow` / `.deny` | CLI | ツールとコマンドルール。[権限](/docs/ja/permissions)を参照してください。 |886| `permissions.allow` / `.deny` | CLI | ツールとコマンドルール。[権限](/docs/ja/permissions) を参照してください。 |

676| `permissions.disableBypassPermissionsMode` | CLI | `disable` に設定して [`bypassPermissions`](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) をブロック。すべてのツール呼び出しを自動承認するモード、および `--dangerously-skip-permissions` フラグ。 |887| `permissions.disableBypassPermissionsMode` | CLI | `disable` に設定して [`bypassPermissions`](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)(権限プロンプトをスキップするモード)と `--dangerously-skip-permissions` フラグをブロックします。 |

677| `allowManagedPermissionRulesOnly` | CLI | `true` の場合、マネージド設定は権限ルールの唯一の設定ソースになります。[`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) エントリは Claude Code がその後無視するすべてのソースをリストします。 |888| `allowManagedPermissionRulesOnly` | CLI | `true` の場合、マネージド設定は権限ルールの唯一の設定ソースになります。[`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) エントリは Claude Code が無視するすべてのソースをリストします。 |

678| `env` | CLI | CLI プロセスにマージされた環境変数。テレメトリ、自動更新、モデル名オーバーライドに使用します。 |889| `env` | CLI | CLI プロセスにマージされた環境変数。テレメトリ、自動更新、モデル名オーバーライドに使用します。 |

679| `hooks` | CLI | 組織全体の [フック](/docs/ja/hooks)。 |890| `hooks` | CLI | 組織全体の [フック](/docs/ja/hooks) |

680| `managedMcpServers` | CLI | リモート MCP サーバー [マッチする開発者ごとに提供](/docs/ja/managed-mcp#provide-servers-through-managed-settings)。彼らが自分で追加するサーバーの横に、`http` と `sse` のみ。[ポリシー内の MCP サーバー](#mcp-servers-in-a-policy)を参照してください。ゲートウェイサーバーとクライアント上で Claude Code v2.1.259 以降が必要です。以前のクライアントはキーを無視します。 |891| `managedMcpServers` | CLI | [マッチングするすべてのデベロッパーに提供される](/docs/ja/managed-mcp#provide-servers-through-managed-settings) リモート MCP サーバー。彼ら自身が追加するサーバー、`http` と `sse` のみ。[ポリシー内の MCP サーバー](#mcp-servers-in-a-policy) を参照してください。ゲートウェイサーバー上の Claude Code v2.1.259 以降とクライアント上が必要です。以前のクライアントはキーを無視します。 |

681 892 

682これらの設定はネットワーク経由で到着するため、CLI は以下にリストされた設定を適用する前に、各開発者にセキュリティ承認ダイアログを表示します:893これらの設定はネットワーク経由で到着するため、CLI は以下にリストされた設定を適用する前に、各デベロッパーにセキュリティ承認ダイアログを表示します:

683 894 

684* `hooks`895* `hooks`

685* プロキシとベース URL 変数など、開発者の承認が必要な `env` 変数896* プロキシとベース URL 変数など、デベロッパーの承認が必要な `env` 変数

686* `apiKeyHelper` と `statusLine` などのシェル実行設定897* `apiKeyHelper` や `statusLine` などのシェル実行設定

687* サンドボックスバイナリ設定 `sandbox.bwrapPath`、`sandbox.socatPath`、`sandbox.ripgrep`898* サンドボックスバイナリ設定 `sandbox.bwrapPath`、`sandbox.socatPath`、`sandbox.ripgrep`

688* `sandbox.network.tlsTerminate` とプロキシポート設定など、トラフィックをインターセプト、認証情報を注入、または分離を弱める Sandbox 設定。[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs)はすべてをリストします。899* `sandbox.network.tlsTerminate` やプロキシポート設定など、トラフィックをインターセプト、認証情報を注入、または分離を弱める Sandbox 設定。[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs) はすべてをリストします。

689 900 

690[承認メモリ](/docs/ja/server-managed-settings#approval-memory)は、承認がどのくらい続くか、およびダイアログが再度表示されるときをカバーします。901[承認メモリ](/docs/ja/server-managed-settings#approval-memory) は承認がどのくらい続くか、ダイアログがいつ再度表示されるかをカバーします。

691 902 

692Claude Code は、モデル選択設定や数値制限など、開発者の承認ダイアログを表示せずに配信された `env` 変数の一部を適用します。他の配信変数は、開発者の承認が必要な場合があります。空でないプロキシ、ベース URL、または `OTEL_EXPORTER_OTLP_ENDPOINT` 値は常にそうです。配信変数が承認を必要とする場合、ダイアログはそれに名前を付けます。903Claude Code は、モデル選択設定や数値制限など、デベロッパーの承認ダイアログを表示せずに配信された `env` 変数の一部を適用します。他の配信変数はデベロッパーの承認が必要な場合があります。空でないプロキシ、ベース URL、または `OTEL_EXPORTER_OTLP_ENDPOINT` 値は常にそうです。配信変数が承認を必要とする場合、ダイアログはそれに名前を付けます。

693 904 

694[環境変数と承認ダイアログ](/docs/ja/server-managed-settings#environment-variables-and-the-approval-dialog)には詳細があります。配信値が承認を必要とするかどうかを決定する 4 つのプライバシートグルを含みます。v2.1.218 より前では、Claude Code はより少ない変数を開発者に尋ねずに適用したため、より多くの配信変数がダイアログをトリガーしました。905[環境変数と承認ダイアログ](/docs/ja/server-managed-settings#environment-variables-and-the-approval-dialog) には詳細があります。配信値がそれらが承認を必要とするかどうかを決定する 4 つのプライバシートグルを含みます。v2.1.218 より前では、Claude Code はより少ない変数をデベロッパーに尋ねずに適用したため、より多くの配信変数がダイアログをトリガーしました。

695 906 

696ゲートウェイの [テレメトリ](#telemetry) 設定は `OTEL_EXPORTER_OTLP_ENDPOINT` をプッシュするため、`telemetry.forward_to` を設定すると、各インタラクティブクライアントで承認ダイアログがトリガーされます。ダイアログは、組織から開発者を保護するのではなく、開発者のマシンを侵害または敵対的なゲートウェイから保護します。907ゲートウェイの [テレメトリ](#telemetry) 設定は `OTEL_EXPORTER_OTLP_ENDPOINT` をプッシュするため、`telemetry.forward_to` を設定すると各インタラクティブクライアントでダイアログをトリガーします。ダイアログは組織をデベロッパーから保護するのではなく、デベロッパーのマシンを侵害されたまたは敵対的なゲートウェイから保護します。

697 908 

698`-p` フラグを使用した非インタラクティブ実行はダイアログを表示できません。その実行のみのためにプッシュされた設定を適用し、それらを承認済みとして記録しないため、開発者の次のインタラクティブセッションはまだダイアログを表示します。v2.1.207 より前では、非インタラクティブ実行は設定を承認済みとして保存し、後のインタラクティブセッションはそれらのダイアログを表示しませんでした。909[非インタラクティブ実行](/docs/ja/server-managed-settings#security-approval-dialogs)(`claude -p` や Agent SDK セッションなど)はダイアログを表示できません。その実行のためにプッシュされた設定を適用し、それらを承認済みとして記録しないため、デベロッパーの次のインタラクティブセッションはまだダイアログを表示します。v2.1.207 より前では、非インタラクティブ実行は設定を承認済みとして保存し、後のインタラクティブセッションはそれらのダイアログを表示しませんでした。

699 910 

700開発者が拒否した場合、Claude Code はポリシーを適用せずにそのセッションを終了します。新しいフックまたはダイアログをトリガーする env var を広いポリシーにプッシュすることは、Claude Code がマッチする開発者に次の起動時にダイアログを表示することを意味します。ダイアログは実行中のセッションで次の時間ごとのポーリング時に表示され、そうでなければ開発者の次の起動時に表示されます。911デベロッパーが拒否した場合、Claude Code はポリシーを適用するのではなく、そのセッションを終了します。新しいフック、またはダイアログをトリガーする任意の env 変数を広いポリシーにプッシュする場合、マッチングするすべてのデベロッパーはそのインタラクティブセッションでダイアログを見ます。実行中のインタラクティブセッションは次の時間ごとのポーリングでそれを表示し、そうでなければデベロッパーの次のインタラクティブ起動時に表示されます。

701 912 

702`cli` キーは以前のリリースで `settings` という名前でした。その綴りはまだエイリアスとして受け入れられていますが、新しいデプロイメントは `cli` を使用する必要があります。913`cli` キーは以前のリリースで `settings` という名前でした。そのスペルはまだエイリアスとして受け入れられていますが、新しいデプロイメントは `cli` を使用する必要があります。

703 914 

704<h4 id="mcp-servers-in-a-policy">915<h4 id="mcp-servers-in-a-policy">

705 ポリシー内の MCP サーバー916 ポリシー内の MCP サーバー

706</h4>917</h4>

707 918 

708ポリシーが一致する Claude Code クライアントに MCP サーバーを提供するには、そのポリシーの `cli` ブロックで [`managedMcpServers`](/docs/ja/managed-mcp#provide-servers-through-managed-settings) を設定します。ゲートウェイサーバーとクライアント上で Claude Code v2.1.259 以降が必要です。919ポリシーが一致する Claude Code クライアントに MCP サーバーを提供するには、そのポリシーの `cli` ブロックで [`managedMcpServers`](/docs/ja/managed-mcp#provide-servers-through-managed-settings) を設定します。ゲートウェイサーバー上の Claude Code v2.1.259 以降とクライアント上が必要です。

709 920 

710ゲートウェイは [Claude Code がクライアントで適用するのと同じルール](/docs/ja/managed-mcp#what-an-entry-can-contain)で各エントリをブート時にチェックし、エントリがチェックに失敗した場合、ゲートウェイは起動を拒否してエントリに名前を付けます。921ゲートウェイは各エントリをブート時に [Claude Code がクライアントで適用するのと同じルール](/docs/ja/managed-mcp#what-an-entry-can-contain) でチェックし、エントリがチェックに失敗した場合、ゲートウェイは起動を拒否し、エントリに名前を付けます。

711 922 

712`gateway.yaml` に `${VAR}` 参照を書く場合、ゲートウェイはブート時に [シークレット展開](#secret-expansion) を通じてその環境から解決するため、マッチする各クライアントはリテラル値を受け取り、それを読み込むことができます。[提供されたサーバーのヘッダーガイダンス](/docs/ja/managed-mcp#provide-servers-through-managed-settings)は展開された値に適用されます。923`gateway.yaml` に `${VAR}` リファレンスを記述する場合、ゲートウェイは [シークレット展開](#secret-expansion) を通じてブート時にその環境から解決するため、マッチングするすべてのクライアントはリテラル値を受け取り、それを読むことができます。[提供されるサーバーのヘッダーガイダンス](/docs/ja/managed-mcp#provide-servers-through-managed-settings) は展開された値に適用されます。

713 924 

714ゲートウェイは `cli` ブロック内の `.mcp.json` スペル `mcpServers` を拒否し、ブートエラーは使用するキーとして `managedMcpServers` に名前を付けます。v2.1.259 より前では、ゲートウェイは `cli` ブロック内の MCP サーバー定義を拒否しました。925ゲートウェイは `cli` ブロックの `.mcp.json` スペル `mcpServers` を拒否し、そのブート エラーは `managedMcpServers` を使用するキーに名前を付けます。v2.1.259 より前では、ゲートウェイは `cli` ブロック内の MCP サーバー定義を拒否しました。

715 926 

716<h4 id="claude-desktop-overlay">927<h4 id="claude-desktop-overlay">

717 Claude Desktop オーバーレイ928 Claude Desktop オーバーレイ

718</h4>929</h4>

719 930 

720組織が [Claude Desktop](/docs/ja/desktop) もデプロイする場合、同じゲートウェイが両方のクライアントに提供します。Claude Desktop の [マネージド設定](https://claude.com/docs/third-party/claude-desktop/configuration) で `bootstrapUrl` を `<listen.public_url>/user/bootstrap` にポイントします。Claude Desktop はその URL から OAuth 発行者を導出し、このゲートウェイに対して同じデバイスコード サインインを実行し、レスポンスから設定を取得します。931組織が [Claude Desktop](/docs/ja/desktop) もデプロイする場合、同じゲートウェイが両方のクライアントを提供します。Claude Desktop の [マネージド設定](https://claude.com/docs/third-party/claude-desktop/configuration) の `bootstrapUrl` を `<listen.public_url>/user/bootstrap` に指します。Claude Desktop はその URL から OAuth 発行者を導出し、このゲートウェイに対して同じデバイスコード サインインを実行し、応答からその設定を取得します。

721 932 

722<Note>933<Note>

723 ゲートウェイサーバー上で Claude Code v2.1.203 以降が必要で、明示的なオプトイン:`/user/bootstrap` はポリシーがマッチするユーザーが `desktop` キーを持たない限り 404 を返します。空の `desktop: {}` はポリシーをオプトインし、`match: {}` 基盤層の `desktop` キーはすべてのポリシーをオプトインします。監査ログは各リクエストを `desktop_bootstrap.serve` または `desktop_bootstrap.denied` として記録します。934 ゲートウェイサーバー上の Claude Code v2.1.203 以降が必要で、明示的なオプトイン:`/user/bootstrap` はポリシーがユーザーと一致する `desktop` キーを持たない限り 404 を返します。空の `desktop: {}` はポリシーをオプトインし、`match: {}` 基盤層の `desktop` キーはそれを継承するすべてのポリシーをオプトインします。監査ログは各リクエストを `desktop_bootstrap.serve` または `desktop_bootstrap.denied` として記録します。

724</Note>935</Note>

725 936 

726ゲートウェイはレスポンスの多くをマッチしたポリシーの `cli` ブロックとトップレベルゲートウェイ設定から導出します:937ゲートウェイは応答の多くをマッチングされたポリシーの `cli` ブロックとトップレベルゲートウェイ設定から導出します:

727 938 

728* モデルリスト。`availableModels` から939* `availableModels` からのモデルリスト

729* 無効なツール。裸のツール名 `permissions.deny` エントリから。ポリシーの `desktop` ブロックで `disabledBuiltinTools` を設定する場合、ゲートウェイはあなたの値と導出されたリストの和集合を提供するため、この方法でより多くのツールを無効にできますが、`permissions.deny` を通じて無効にしたものを再度有効にすることはできません。940* 裸のツール名 `permissions.deny` エントリから無効化されたツール。ポリシーの `desktop` ブロックで `disabledBuiltinTools` を設定する場合、ゲートウェイはあなたの値と導出されたリストの和集合を提供するため、この方法でより多くのツールを無効化できますが、`permissions.deny` を通じて無効化したツールを再度有効化することはできません。

730* エグレス許可リスト。`sandbox.network.allowedDomains` から。ポリシーの `desktop` ブロックで `coworkEgressAllowedHosts` を設定する場合、ゲートウェイは導出されたリストの代わりにその値を使用します。941* `sandbox.network.allowedDomains` からの出力許可リスト。ポリシーの `desktop` ブロックで `coworkEgressAllowedHosts` を設定する場合、ゲートウェイは導出されたリストの代わりにその値を使用します。

731* ゲートウェイ自体をポイントする OTLP エンドポイント。これは宛先にファンアウトします。[`telemetry`](#telemetry) フォワーディングが設定されている場合に含まれます。942* ゲートウェイ自体を指す OTLP エンドポイント、および署名済みユーザーのアイデンティティ属性。ゲートウェイはそのエンドポイントで受け取るエクスポートを `forward_to` 宛先にリレーします。[`telemetry.forward_to`](#telemetry) と `listen.public_url` の両方を設定する場合、エンドポイントと属性を含めます。

732 943 

733 Claude Desktop はすべてのシグナルを 1 つのエンコーディングでエクスポートします:`http/protobuf`、またはポリシーの `env` で `OTEL_EXPORTER_OTLP_PROTOCOL` またはそのシグナルごとのバリアントを `http/json` に設定する場合は `http/json`。ゲートウェイサーバー上の Claude Code v2.1.261 より前では、レスポンスは関係なく `http/json` を設定したため、protobuf のみを受け入れるコレクターは Claude Desktop のエクスポートを拒否しました。944 Claude Desktop はすべてのシグナルを 1 つのエンコーディングでエクスポートします:`http/protobuf`、または `OTEL_EXPORTER_OTLP_PROTOCOL` またはそのシグナルごとのバリアントの 1 つをポリシーの `env` で `http/json` に設定する場合は `http/json`。ゲートウェイサーバー上の Claude Code v2.1.261 より前では、応答は関係なく `http/json` を設定したため、protobuf のみを受け入れるコレクターは Claude Desktop のエクスポートを拒否しました。

734 945 

735ポリシーの `desktop` ブロックで `disabledBuiltinTools`、`coworkEgressAllowedHosts`、または Claude Desktop 独自の `managedMcpServers` 設定を設定するには、ゲートウェイサーバー上で Claude Code v2.1.232 以降が必要です。Claude Desktop の `managedMcpServers` はオブジェクトではなく配列値を取ります。946ポリシーの `desktop` ブロックで `disabledBuiltinTools`、`coworkEgressAllowedHosts`、または Claude Desktop 独自の `managedMcpServers` 設定を設定するには、ゲートウェイサーバー上の Claude Code v2.1.232 以降が必要です。Claude Desktop の `managedMcpServers` はオブジェクトではなく配列値を取ります。

736 947 

737ゲートウェイは Claude Desktop 相当がないキー(`hooks` やスコープ権限ルール(`Bash(npm *)` など))をブートストラップレスポンスから省略します。948ゲートウェイは Claude Desktop 相当がないキー(`hooks` やスコープ権限ルール(`Bash(npm *)` など))をブートストラップ応答から省略します。

738 949 

739`cli` の横にオプションの `desktop` ブロックを追加して、Claude Desktop 設定を直接設定します。Claude Desktop の [マネージド設定リファレンス](https://claude.com/docs/third-party/claude-desktop/configuration) からの設定を平坦なキー名として書きます。ゲートウェイが読み込むのみのキー(`bootstrapUrl` など)を省略します。MDM またはローカルファイルから。ゲートウェイはブート時にそれらを拒否します。v2.1.232 より前では、ゲートウェイは `chatTabEnabled` と `disableAutoUpdates` などの固定リストの 11 個の機能ゲートキーを受け入れ、他のすべてのキーをブート時に拒否しました。v2.1.227 より前では、ゲートウェイは `chatTabEnabled` と `chatAdvancedFileAnalysisEnabled` もブート時に拒否しました。950`cli` の横にオプションの `desktop` ブロックを追加して、Claude Desktop 設定を直接設定します。Claude Desktop の [マネージド設定リファレンス](https://claude.com/docs/third-party/claude-desktop/configuration) からの設定をフラットキー名として記述します。Claude Desktop が MDM またはローカルファイルからのみ読み取るキー(`bootstrapUrl` など)は省略してください。ゲートウェイはブート時にそれらを拒否します。v2.1.232 より前では、ゲートウェイは `chatTabEnabled` や `disableAutoUpdates` などの固定リストの 11 個の機能ゲートキーを受け入れ、他のすべてのキーをブート時に拒否しました。v2.1.227 より前では、ゲートウェイは `chatTabEnabled` と `chatAdvancedFileAnalysisEnabled` もブート時に拒否しました。

740 951 

741```yaml theme={null}952```yaml theme={null}

742managed:953managed:


750 banner: { text: "Contractor build: internal use only" }961 banner: { text: "Contractor build: internal use only" }

751```962```

752 963 

753すべてのキーはオプションです。Claude Desktop は省略したキーに対して独自のデフォルトを適用します。ゲートウェイは各 `desktop` ブロックをブート時に Claude Desktop 自体が使用する設定スキーマに対して検証するため、間違いはゲートウェイ起動時にキーに名前を付けるエラーとして表示され、接続されたすべてのデスクトップに到達しません。ゲートウェイはブロックに以下が含まれる場合に失敗します:964すべてのキーはオプションです。Claude Desktop は省略したキーについて独自のデフォルトを適用します。ゲートウェイは各 `desktop` ブロックをブート時に Claude Desktop 自体が使用する設定スキーマに対して検証するため、間違いはゲートウェイ起動時にエラーとしてキーに名前を付けるのではなく、接続されたすべてのデスクトップに到達します。ゲートウェイはブロックに以下が含まれている場合に失敗します:

754 965 

755* 不明なキー966* 不明なキー

756* Claude Desktop が拒否または無言でドロップするであろう認識されたキー。空の値やネストされたエントリ内のスペルミスされたサブキーなど。v2.1.260 より前では、ゲートウェイは `managedMcpServers` または `orgPluginSettings` エントリのネストされたオブジェクト内のスペルミスされたフィールドを無言でドロップしました。ブート時に失敗する代わりに。967* Claude Desktop が拒否するか静かにドロップする認識されたキー。空の値やネストされたエントリ内のスペル間違いなど。v2.1.260 より前では、ゲートウェイは `managedMcpServers` または `orgPluginSettings` エントリのネストされたオブジェクト内のスペル間違いフィールドを静かにドロップするのではなく、ブート時に失敗しました。

757* ゲートウェイが自身で計算するキー:推論接続、モデルリスト、OTLP リレー。[`upstreams`](#upstreams)、[`models`](#models)、[`telemetry`](#telemetry) セクションの `forward_to` を通じてそれらを設定します。968* ゲートウェイが自身で計算するキー:推論接続、モデルリスト、OTLP リレー。[`upstreams`](#upstreams)、[`models`](#models)、[`telemetry`](#telemetry) セクションの `forward_to` を通じてそれらを設定します。

758* 現在のキーのレガシーエイリアス。ブートエラーで、ゲートウェイは書くべき正規キーに名前を付けます。969* 現在のキーのレガシーエイリアス。ブートエラーでは、ゲートウェイは記述する正規キーに名前を付けます。

759 970 

760非推奨の値またはエントリ形状(`transport` なしの `managedMcpServers` エントリなど)を使用する場合、ゲートウェイは起動し、置き換えに名前を付ける警告をログします。971非推奨の値またはエントリ形状(`transport` なしの `managedMcpServers` エントリなど)を使用する場合、ゲートウェイは起動し、置き換えに名前を付ける警告をログに記録します。

761 972 

762ゲートウェイは `desktop` ブロックを `cli` ブロックと同様にインストール済みバージョンにバンドルされたスキーマに対して検証します。新しい Claude Desktop リリースで導入された設定を配信するには、最初にゲートウェイをアップグレードします。例えば、`userPluginMarketplacesEnabled` と `userPluginUploadsEnabled` はゲートウェイサーバー上で Claude Code v2.1.260 以降と Claude Desktop 1.37937.0 以降が必要です。メンバーのマシン上で。973ゲートウェイは `cli` ブロックと同様に、インストール済みバージョンにバンドルされたスキーマに対して `desktop` ブロックを検証します。新しい Claude Desktop リリースで導入された設定を配信するには、最初にゲートウェイをアップグレードしてください。例えば、`userPluginMarketplacesEnabled` と `userPluginUploadsEnabled` には、ゲートウェイサーバー上の Claude Code v2.1.260 以降と、メンバーのマシン上の Claude Desktop 1.37937.0 以降が必要です。

763 974 

764ポリシーの `desktop` ブロックで `orgPluginSettings` を設定する場合、ゲートウェイは Claude Desktop 1.15200.0 以降が読み込む配列形式で提供します。古いデスクトップは配列を無視し、プラグインツールポリシーを強制しないため、それに依存する前にメンバーを 1.15200.0 以降に更新します。975`blockReadsOutsideWorkingDirectories`、`disableBypassPermissionsMode`、`configRecheckIntervalMinutes`、`sshClientPath` には、ゲートウェイサーバー上の Claude Code v2.1.281 以降が必要です。Microsoft 365 `managedMcpServers` エントリの `microsoftAuthBroker` の `required` 値と `continuousAccessEvaluation` フィールドも同様です。Claude Desktop リリースが `required` 値より前の場合、それを `disabled` として読み取るため、すべてのメンバーの Claude Desktop がそれをサポートした後にのみ `required` を設定してください。Claude Desktop の [マネージド設定リファレンス](https://claude.com/docs/third-party/claude-desktop/configuration) は各キーを最初に読むリリースをリストします。

765 976 

766ゲートウェイはポリシーの `desktop` ブロックが設定しないキーを `match: {}` キャッチオールの `desktop` ブロックから埋めます。ポリシーの `cli` ブロックを基盤から埋めるのと同じ方法で。ベースとロールポリシーの両方で `disabledBuiltinTools` または `builtinToolPolicy` を設定する場合、ゲートウェイはベースの制限を保持します:977ポリシーの `desktop` ブロックで `orgPluginSettings` を設定する場合、ゲートウェイは Claude Desktop 1.15200.0 以降が読む配列形式で提供します。古いデスクトップは配列を無視し、プラグインツールポリシーを強制しないため、それに依存する前にメンバーを 1.15200.0 以降に更新してください。

767 978 

768* `disabledBuiltinTools`:ゲートウェイはベースのリストとポリシーのリストの和集合を使用します。979ゲートウェイは、ポリシーの `desktop` ブロックが設定しないキーを `match: {}` キャッチオールの `desktop` ブロックから埋めます。ポリシーの `cli` ブロックを基盤から埋めるのと同じ方法です。基盤とロールポリシーの両方で `disabledBuiltinTools` または `builtinToolPolicy` を設定する場合、ゲートウェイは基盤の制限を保持します:

769* `builtinToolPolicy`:ベースでツールを `allow` 以外の値に設定する場合、ゲートウェイはロールポリシーで同じツールに対して `allow` を設定しても、その値を保持します。

770 980 

771他のすべてのキーについて、ロールポリシーで設定する場合、ゲートウェイはロールポリシーの値を使用します。ゲートウェイは配列またはネストされたオブジェクト(`banner` など)を全体で置き換えるため、ロールポリシーで `banner.text` を設定する場合、ゲートウェイはベースの `banner.backgroundColor` をドロップします。981* `disabledBuiltinTools`:ゲートウェイは基盤のリストとポリシーのリストの和集合を使用します。

982* `builtinToolPolicy`:基盤でツールを `allow` 以外の値に設定する場合、ロールポリシーで同じツールに `allow` を設定しても、ゲートウェイはその値を保持します。

772 983 

773Claude Desktop をデプロイしない場合、ポリシーから `desktop` を完全に省略します。ゲートウェイはその後、すべてのユーザーに対して `/user/bootstrap` から 404 を返します。984他のすべてのキーについて、ロールポリシーで設定する場合、ゲートウェイはロールポリシーの値を使用します。ゲートウェイは配列またはネストされたオブジェクト(`banner` など)を全体で置き換えるため、ロールポリシーで `banner.text` を設定する場合、ゲートウェイは基盤の `banner.backgroundColor` をドロップします。

985 

986Claude Desktop をデプロイしない場合、ポリシーから `desktop` を完全に省略してください。ゲートウェイはすべてのユーザーに対して `/user/bootstrap` から 404 を返します。

774 987 

775<h4 id="precedence-with-other-managed-sources">988<h4 id="precedence-with-other-managed-sources">

776 他のマネージドソースとの優先順位989 他のマネージドソースとの優先順位

777</h4>990</h4>

778 991 

779デバイスに MDM 配信ポリシーまたはローカル `managed-settings.json` もある場合、ゲートウェイ配信設定がランク付けされます。最初。[マネージド層内の優先順位](/docs/ja/managed-settings#precedence-within-the-managed-tier)はマネージド設定ページで、ローカルソースが適用される場合を説明し、[すべての管理ソースから読み込まれる Claude Code キー](/docs/ja/managed-settings#keys-read-from-every-admin-source)を持っています。サンドボックスロックキー、`forceRemoteSettingsRefresh`、変数ごとの `env` マージなど、どのソースを選択したかに関わらず。[`policyHelper`](/docs/ja/settings-reference#policyhelper) は MDM プロファイルまたはマネージド設定ファイルで設定され、ゲートウェイが設定を配信しない場合にのみ実行されます。エントリは出力が置き換えるものを説明します。992デバイスに MDM 配信ポリシーまたはローカル `managed-settings.json` がある場合、ゲートウェイ配信設定が最初にランクされます。[マネージド層内の優先順位](/docs/ja/managed-settings#precedence-within-the-managed-tier) はマネージド設定ページにあり、ローカルソースが適用される場合、およびサンドボックスロックキー、`forceRemoteSettingsRefresh`、変数ごとの `env` マージなど、どのソースを選択したかに関わらず Claude Code が読むすべての管理ソースの [キー](/docs/ja/managed-settings#keys-read-from-every-admin-source) があります。MDM プロファイルまたはマネージド設定ファイルで設定された [`policyHelper`](/docs/ja/settings-reference#policyhelper) は、ゲートウェイが設定を配信しない場合にのみ実行されます。エントリはその出力が置き換えるものを示します。

780 993 

781[Claude Desktop](/docs/ja/desktop) などの埋め込みホストは SDK `managedSettings` オプションを通じてポリシーを提供できます。[埋め込みホストからの親設定](/docs/ja/managed-settings#parent-settings-from-embedding-hosts)は Claude Code がそれを適用する場合を説明し、[親設定を制限](/docs/ja/claude-apps-gateway#restrict-parent-settings)は `allowManaged*Only` ロックなしでもまだ適用される許可方向設定をリストします。994[Claude Desktop](/docs/ja/desktop) などの埋め込みホストは SDK `managedSettings` オプションを通じてポリシーを提供できます。[埋め込みホストからの親設定](/docs/ja/managed-settings#parent-settings-from-embedding-hosts) は Claude Code がそれを適用する場合を示し、[親設定を制限する](/docs/ja/claude-apps-gateway#restrict-parent-settings) は `allowManaged*Only` ロックなしでもまだ適用される許可方向設定をリストします。

782 995 

783ゲートウェイポリシーはマシン上のすべての Claude Code 呼び出しに適用されます。非インタラクティブ `claude -p` 実行と Agent SDK によって生成されたセッションを含みます。ゲートウェイがスタートアップ時に到達不可能な場合、署名されたセッションはポリシーなしで実行するのではなく、エラーで終了します。996ゲートウェイポリシーはマシン上のすべての Claude Code 呼び出しに適用されます。非インタラクティブ `claude -p` 実行と Agent SDK によって生成されたセッションを含みます。ゲートウェイが起動時に到達不可能な場合、署名済みセッションはポリシーなしで実行するのではなく、エラーで終了します。

784 997 

785<h3 id="telemetry">998<h3 id="telemetry">

786 `telemetry`999 `telemetry`

787</h3>1000</h3>

788 1001 

789CLI は OpenTelemetry Protocol(OTLP)を HTTP メトリクス、ログ、有効な場合はトレースでゲートウェイに送信します。ゲートウェイはそれらを逐語的に各設定先にリレーします。エクスポートは OpenTelemetry Protocol(OTLP)を HTTP 経由で使用します。リレーをスキップして、セッションが直接コレクターにエクスポートするには、[ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。[使用状況の監視](/docs/ja/monitoring-usage)で、CLI が発行するメトリクスとイベントを参照してください。1002CLI はメトリクス、ログ、有効な場合はトレースをゲートウェイに送信し、ゲートウェイはそれらを逐語的に各設定された宛先にリレーします。エクスポートは OpenTelemetry Protocol(OTLP)over HTTP を使用します。リレーをスキップして、セッションが直接コレクターにエクスポートするようにするには、[ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。[使用状況の監視](/docs/ja/monitoring-usage) については、CLI が発行するメトリクスとイベントを参照してください。

1003 

1004`/login` を通じて署名されたセッションでは、CLI は各エクスポートに認証されたユーザーのアイデンティティをスタンプします。ゲートウェイが発行した JWT から読み取られます:`user.id`、`user.email`、`user.groups` 属性。デベロッパーごとのコスト帰属と使用状況帰属は、デベロッパー側の設定なしで機能します。

1005 

1006[Claude Desktop](#claude-desktop-overlay) と Cowork セッションがゲートウェイを通じて署名されている場合、テレメトリに `user.email` と `user.groups` を `enduser.id` と共にスタンプするため、1 つのクエリで `user.email` または `user.groups` でターミナル、Desktop、Cowork 使用状況をカバーできます。`user.groups` はコンマ区切りの IdP グループリストです。

790 1007 

791CLI は、ゲートウェイ発行 JWT から読み込まれた認証されたユーザーのアイデンティティで各エクスポートにスタンプを付けます:`user.id`、`user.email`、`user.groups` 属性。開発者ごとのコストと使用状況の属性は、開発者側の設定なしで機能します。1008Desktop と Cowork テレメトリは `enduser.sub` も含みます。ユーザーのメールが変わった場合でも同じままである `sub` クレームをアイデンティティプロバイダーが発行します。ターミナルセッションは同じ値を `user.id` の下にスタンプするため、ターミナル `user.id` に対して `enduser.sub` をマッチングするクエリは、1 人のユーザーのターミナル、Desktop、Cowork 使用状況をカバーします。Desktop と Cowork エクスポートでは、`user.id` は主体ではなく匿名識別子です。

792 1009 

793[Claude Desktop](#claude-desktop-overlay) と Cowork セッションがゲートウェイ経由でサインインすると、`user.email` と `user.groups` を `enduser.id` と一緒にテレメトリにスタンプを付けるため、1 つのクエリで `user.email` または `user.groups` でターミナル、Desktop、Cowork 使用状況をカバーできます。`user.groups` はコンマ区切りの IdP グループリストです。1010Claude Code からのすべての OpenTelemetry データと同様に、これらの属性は組織が設定する宛先にのみ送信され、Anthropic には送信されません。

794 1011 

795Claude Code からのすべての OpenTelemetry データと同様に、これらの属性は組織が設定する宛先にのみ移動し、Anthropic には移動しません。1012ユーザーのグループリストがパーセントエンコード後に 255 文字より長い場合、またはグループ名にコンマまたは等号が含まれている場合、ゲートウェイはそのユーザーの Desktop と Cowork テレメトリから `user.groups` を省略します。そのユーザーのターミナルセッションは完全なリストを含みます。

796 1013 

797ユーザーのグループリストがパーセントエンコード後に 255 文字より長い場合、またはグループ名にコンマまたは等号が含まれている場合、ゲートウェイはそのユーザーの Desktop と Cowork テレメトリから `user.groups` を省略します。そのユーザーのターミナルセッションは完全なリストを引き続き実行します。1014主体がパーセントエンコード後に 255 文字より長い場合、またはスペース、印字可能 ASCII 外の文字、または `,` `;` `=` `\` `"` `%` のいずれかを含む場合、ゲートウェイは `enduser.sub` を省略します。そのユーザーの Desktop と Cowork テレメトリは他の属性を保持します。

798 1015 

799ゲートウェイサーバー上で Claude Code v2.1.265 以降が必要で、Desktop と Cowork テレメトリで `user.email` と `user.groups` が必要です。各開発者のマシン上で Claude Desktop 1.24012 以降が `user.groups` に必要です。1016Desktop と Cowork テレメトリで `user.email` と `user.groups` を使用するには、ゲートウェイサーバー上の Claude Code v2.1.265 以降と、各デベロッパーのマシン上の Claude Desktop 1.24012 以降が必要です。

1017 

1018`enduser.sub` を使用するには、ゲートウェイサーバー上の Claude Code v2.1.274 以降が必要です。

800 1019 

801```yaml theme={null}1020```yaml theme={null}

802telemetry:1021telemetry:


816<Warning>1035<Warning>

817 各宛先は `metrics`、`logs`、`traces` に独立してオプトインし、デフォルトはメトリクスのみです。シグナルは感度が異なります:1036 各宛先は `metrics`、`logs`、`traces` に独立してオプトインし、デフォルトはメトリクスのみです。シグナルは感度が異なります:

818 1037 

819 * **メトリクス**:トークンカウント、リクエストカウント、レイテンシなどの集計カウンター1038 * **メトリクス**:トークンカウント、リクエストカウント、レイテンシーなどの集計カウンター

820 * **ログとトレース**:完全な bash コマンド、ツール入力、ファイルパスを含むことができます。Claude Code が開発者のマシンで行うすべてをカバーします。1039 * **ログとトレース**:完全な Bash コマンド、ツール入力、ファイルパスを含むことができ、Claude Code がデベロッパーのマシンで行うすべてをカバーします。

821 1040 

822 ログとトレースは、アクセス制御と保持ポリシーがデータを保証する宛先でのみ有効にします。1041 ログとトレースは、そのデータが保証するアクセス制御と保持ポリシーを持つ宛先でのみ有効にしてください。

823</Warning>1042</Warning>

824 1043 

825各 `forward_to` URL は `https://` を使用する必要があります。ゲートウェイ独自のループバックインターフェース上のコレクターの場合は 1 つの例外:1044各 `forward_to` URL は `https://` を使用する必要があります。ゲートウェイ独自のループバックインターフェイス上のコレクターの場合は 1 つの例外があります:

1045 

1046* `http://localhost:<port>` は設定検証を通過しますが、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary) は `ECONNREFUSED_SSRF` ですべてのエクスポートをブロックします。ゲートウェイの環境で `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` を設定しない限り。

1047* `http://127.0.0.1:<port>` または `http://[::1]:<port>` はその変数が設定されていない限りブート失敗します。

826 1048 

827* `http://localhost:<port>` は設定検証を通過しますが、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)は `ECONNREFUSED_SSRF` ですべてのエクスポートをブロックします。`CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` をゲートウェイの環境に設定しない限り。1049クラスター内コレクターの場合、独自の内部アドレスで HTTPS を公開するか、変数が設定されたサイドカーとして実行します。

828* `http://127.0.0.1:<port>` または `http://[::1]:<port>` はその変数が設定されていない限りブートに失敗します。

829 1050 

830クラスター内コレクターの場合、HTTPS で独自の内部アドレスで公開するか、変数が設定されたサイドカーとして実行します。1051`HTTPS_PROXY` が設定されている場合、ゲートウェイはそのプロキシを通じてエクスポートを送信します。

831 1052 

832テレメトリは CLI でデフォルトでオフです。`telemetry.forward_to` と `listen.public_url` の両方を設定すると、ゲートウェイはそれをオンにします。接続されたクライアント用に `/managed/settings` を通じて 6 つの環境変数をプッシュします:1053内部コレクターに直接到達するには、ホスト名またはドメイン(`.internal.example.com` など)の先頭ドットを持つドメインで `NO_PROXY` に追加します。ゲートウェイサーバー上の Claude Code v2.1.277 以降が必要です。ゲートウェイがプロキシなしでコレクターに到達できることを確認してください。先頭ドットのないエントリは、その下の名前ではなく、その正確な名前のみにマッチングします。CIDR 範囲はマッチングしません。

1054 

1055[プロキシのみの出力](#proxy-only-egress) がオンになっている場合、プロキシでコレクターを許可してください。`NO_PROXY` エントリはプロキシのみの出力をオフにするためです。

1056 

1057テレメトリは CLI ではデフォルトでオフです。`telemetry.forward_to` と `listen.public_url` の両方を設定する場合、ゲートウェイは `/managed/settings` を通じて 6 つの環境変数をプッシュして、接続されたクライアントのテレメトリをオンにします:

833 1058 

834* `CLAUDE_CODE_ENABLE_TELEMETRY=1`1059* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

835* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_TRACES_EXPORTER`。少なくとも 1 つの `forward_to` 宛先がそのシグナルを有効にする場合は `otlp` に設定され、そうでない場合は `none` に設定されます。1060* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_TRACES_EXPORTER`。少なくとも 1 つの `forward_to` 宛先がそのシグナルを有効にする場合は `otlp` に設定され、そうでない場合は `none` に設定されます。

836* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`1061* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

837* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`1062* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

838 1063 

839ゲートウェイサーバー上の Claude Code v2.1.265 より前では、ゲートウェイはすべての 3 つのエクスポーターセレクターを `otlp` としてプッシュしました。宛先がオプトインしなかったシグナルを含みます。1064[独自のラベルを追加](#add-your-own-labels) する場合、ゲートウェイは `OTEL_RESOURCE_ATTRIBUTES` もプッシュします。

840 1065 

841プッシュされたエンドポイントはパブリック URL から構築されるため、メトリクスとログは開発者またはポリシーからの OTEL 設定を必要としません。1066ゲートウェイサーバー上の Claude Code v2.1.265 より前では、ゲートウェイは 3 つのエクスポーターセレクターすべてを `otlp` としてプッシュしました。宛先がオプトインしなかったシグナルを含みます。

842 1067 

843`/login` を通じてサインインした開発者は、独自の OTEL 設定でエクスポートをリダイレクトできません:1068プッシュされたエンドポイントはパブリック URL から構築されるため、メトリクスとログはデベロッパーまたはポリシーからの OTEL 設定を必要としません。

844 1069 

845* **ローカルに設定された変数**:Claude Code はプッシュされた変数をマネージド層で適用するため、各変数はローカルで設定する値をオーバーライドします。1070`/login` を通じて署名されたデベロッパーは、独自の OTEL 設定でエクスポートをリダイレクトできません:

846* **ローカルに設定されたエンドポイント**:OTLP/HTTP エクスポート有効にすると、CLI はローカルに設定されたエンドポイントを無視します。ゲートウェイがプッシュしたテレメトリ変数があるかどうかに関わらず。エクスポートはゲートウェイに移動します。ポリシーが [コレクターをエンドポイントとして名前を付けない](#export-directly-to-your-collector)限り。

847 1071 

848`forward_to` 宛先がシグナルにない場合、ゲートウェイはそれを受け入れて破棄します。開発者が既に Claude Code テレメトリを 1 つのコレクターにエクスポートしている場合、それを `forward_to` 宛先として追加します。ログまたはトレースをエクスポートする場合は、それらを有効にして、サインイン後もデータを受け取り続けるようにします。リレーをスキップするには、代わりに [ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。1072* **ローカルに設定された変数**:Claude Code はプッシュされた変数をマネージド層で適用するため、各変数はデベロッパーがローカルで設定する値をオーバーライドします。

1073* **ローカルに設定されたエンドポイント**:OTLP/HTTP エクスポートが有効な場合、CLI はローカルに設定されたエンドポイントを無視します。ゲートウェイがテレメトリ変数をプッシュしたかどうかに関わらず。そのエクスポートはゲートウェイに送信されます。ポリシーが [コレクターをエンドポイントとして名前を付ける](#export-directly-to-your-collector) 場合を除きます。

849 1074 

850[トレース](/docs/ja/monitoring-usage#traces-beta)はさらに各クライアントで `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` を必要とします。ゲートウェイはその変数をプッシュしないため、マネージドポリシーの `env` ブロックを通じて設定します。開発者はそれを [セキュリティ承認ダイアログ](#managed)で承認します。プッシュされたエンドポイントがすでてトリガーするのと同じダイアログです。1075シグナルの `forward_to` 宛先がない場合、ゲートウェイはそれを受け入れて破棄します。デベロッパーが既に Claude Code テレメトリを 1 つのコレクターにエクスポートしている場合、それを `forward_to` 宛先として追加し、ログまたはトレースを有効にします。サインイン後もデータを受け取り続けるため。リレーをスキップするには、代わりに [ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。

851 1076 

852それを `1` に設定するのは、トレースしたいグループのポリシーのみです。ポリシーが設定しない場合、`match: {}` キャッチオールポリシーが設定する場合、その値を継承します。[マージルール](#managed)に従って。グループのクライアントが開発者がローカルで変数を設定しても、トレースを送信しないようにするには、そのグループのポリシーで `0` に設定します。1077[トレース](/docs/ja/monitoring-usage#traces-beta) には各クライアントで `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` も必要です。ゲートウェイはプッシュしないため、マネージドポリシーの `env` ブロックで設定してください。デベロッパーはプッシュされたエンドポイントが既にトリガーする同じ [セキュリティ承認ダイアログ](#managed) で承認します。

853 1078 

854protobuf と JSON OTLP エンコーディングの両方がリレーされ、OpenTelemetry 互換バックエンドは宛先として機能します。1079トレースしたいグループのみのポリシーで `1` に設定してください。ポリシーが設定しない場合、`match: {}` キャッチオールポリシーがそれを設定する場合、そのポリシーから値を継承します。[マージルール](#managed) に従います。デベロッパーがローカルで変数を設定した場合でも、グループのクライアントがトレースを送信しないようにするには、そのグループのポリシーで `0` に設定してください。

1080 

1081Protobuf と JSON OTLP エンコーディングの両方がリレーされ、OpenTelemetry 互換のバックエンドが宛先として機能します。

1082 

1083<h4 id="add-your-own-labels">

1084 独自のラベルを追加する

1085</h4>

1086 

1087ゲートウェイを通じて署名されたセッションのテレメトリに `service.namespace` や `deployment.environment.name` などの固定ラベルを付けるには、`telemetry.resource_attributes` を設定します。各ラベルは OpenTelemetry リソース属性で、すべての宛先は同じラベルを受け取ります。

1088 

1089セッションは `telemetry.forward_to` と `listen.public_url` も設定する場合にのみラベルを取得します。この例は 2 つのラベルを追加します:

1090 

1091```yaml theme={null}

1092telemetry:

1093 forward_to:

1094 - url: https://otel-collector.internal.example.com

1095 resource_attributes:

1096 service.namespace: claude

1097 deployment.environment.name: prod

1098```

1099 

1100ゲートウェイはラベルがこれらのルールのいずれかを破る場合、起動を拒否し、スタートアップエラーはラベルに名前を付けます:

1101 

1102* 名前は文字、数字、`.`、`_`、`-` のみを使用します。

1103* 名前は予約されていません。任意の文字ケースで比較すると、予約名は `user.`、`enduser.`、`identity.` で始まるすべてのもの、および `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version`、`wsl.version` です。

1104* 値は空でない印字可能 ASCII で、スペースなし、`,` `;` `=` `\` `"` `%` なし。

1105* 値はパーセントエンコード後に最大 255 文字です。ゲートウェイがカウントするため、`/`、`:`、`@` は各 3 文字です。

1106* 値はテキストなので、数字、`true`、`false` をクォートしてください。

1107 

1108ゲートウェイサーバー上の Claude Code v2.1.281 以降が必要です。`telemetry.resource_attributes` を設定するため。以前のゲートウェイはキーを見つけると起動を拒否します。すべてのレプリカをアップグレードしてからキーを追加し、以前のバージョンにロールバックする前にキーを削除してください。

1109 

1110`/login` を通じて署名されたターミナルセッションは、他の [テレメトリ変数](#telemetry) と共にプッシュされた `OTEL_RESOURCE_ATTRIBUTES` としてラベルを受け取ります。ポリシーの `env` ブロックで `OTEL_RESOURCE_ATTRIBUTES` を設定する場合、そのポリシーが一致するターミナルセッションはラベルの代わりにその値を取得します。Claude Desktop はゲートウェイから `user.email` および他のアイデンティティ属性と共にラベルを受け取ります。

1111 

1112Claude Code はすべてのメトリクスデータポイントに各ラベルをコピーするため、リソース属性をインデックス化しないバックエンドでそれでフィルタリングできます。そのコピーをオフにするには、[メトリクスカーディナリティ制御](/docs/ja/monitoring-usage#metrics-cardinality-control) を参照してください。

855 1113 

856<h4 id="export-directly-to-your-collector">1114<h4 id="export-directly-to-your-collector">

857 コレクターに直接エクスポートする1115 コレクターに直接エクスポートする

858</h4>1116</h4>

859 1117 

860`/login` を通じてサインインしたセッションがリレーを通じてではなく、コレクターに直接テレメトリを送信するには、[マネージドポリシー](#managed)の `env` ブロックでコレクターの `https://` ベース URL に `OTEL_EXPORTER_OTLP_ENDPOINT` を設定します。Claude Code は `/v1/metrics`、`/v1/logs`、`/v1/traces` を URL に追加します。例えば `https://otel-collector.example.com:4318`。各シグナルをそこに OTLP/HTTP 経由でエクスポートします。各開発者のマシン上で Claude Code v2.1.265 以降が必要です。以前のクライアントはリレーを通じてエクスポートします。1118`/login` を通じて署名されたセッションがリレーを通じてではなくコレクターにテレメトリを直接送信するようにするには、[マネージドポリシー](#managed) の `env` ブロックでコレクターの `https://` ベース URL に `OTEL_EXPORTER_OTLP_ENDPOINT` を設定します。Claude Code は URL に `/v1/metrics`、`/v1/logs`、`/v1/traces` を追加します。例えば `https://otel-collector.example.com:4318`。各シグナルを OTLP/HTTP でそこにエクスポートします。各デベロッパーのマシン上の Claude Code v2.1.265 以降が必要です。以前のクライアントはリレーを通じてエクスポートします。

861 1119 

862コレクターに認証するには、同じ `env` ブロックで `OTEL_EXPORTER_OTLP_HEADERS` を設定します。セッションはこの方法で名前を付けられたコレクターに開発者のゲートウェイセッショントークンを送信しません。1120コレクターに認証するには、同じ `env` ブロックで `OTEL_EXPORTER_OTLP_HEADERS` を設定します。セッションはこの方法で名前を付けられたコレクターにデベロッパーのゲートウェイセッショントークンを送信しません。

863 1121 

864ポリシーでこのエンドポイントを追加または変更すると、Claude Code は [セキュリティ承認ダイアログ](#managed)でそれを適用する前に各開発者に承認を求めます。1122ポリシーでこのエンドポイントを追加または変更する場合、Claude Code は各デベロッパーに [セキュリティ承認ダイアログ](#managed) でそれを承認するよう求めます。インタラクティブセッションで適用する前に。

865 1123 

866Claude Code はシグナルを直接エクスポートする前にエンドポイントをチェックし、チェックが失敗するとそのシグナルをリレーに保持します。チェックには以下が含まれます:1124Claude Code はシグナルを直接エクスポートする前にエンドポイントをチェックし、チェックが失敗するとそのシグナルをリレーに保持します。チェックには以下が含まれます:

867 1125 

868* エンドポイントはゲートウェイ自体から来ます。MDM プロファイルまたはローカル `managed-settings.json` で同じ変数を設定する場合、エクスポートはリレーに留まります。1126* エンドポイントはゲートウェイ自体から来ます。MDM プロファイルまたはローカル `managed-settings.json` で同じ変数を設定する場合、エクスポートはリレーに留まります。

869* URL は `https://` を使用するか、ループバックアドレスに `http://` を使用します。1127* URL は `https://` を使用するか、ループバックアドレスへの `http://` を使用します。

870* URL は `/v1/<signal>` で終わるパスに解決され、クエリまたはフラグメントはありません。Claude Code はジェネリック変数からそのパスを自身で構築します。`OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` などのシグナルごとの変数を使用する場合は、完全なパスをそこに含めます。1128* URL は `/v1/<signal>` で終わるパスに解決され、クエリまたはフラグメントはありません。Claude Code はジェネリック変数からそのパスを自身で構築します。`OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` などのシグナルごとの変数を記述したとおりに使用するため、完全なパスをそこに含めます。

871* URL はゲートウェイ独自のホストではありません。ゲートウェイに対処されたエンドポイントはリレーパスとセッショントークンを保持します。1129* URL はゲートウェイ独自のホストではありません。ゲートウェイに対処されたエンドポイントはリレーパスとそのセッショントークンを保持します。

872* あなたも開発者も [`otelHeadersHelper`](/docs/ja/settings-reference#otelheadershelper) を設定していません。任意の設定ソースで。ヘルパーが設定されている場合、すべてのシグナルはリレーに留まります。1130* あなたもデベロッパーも、任意の設定ソースで [`otelHeadersHelper`](/docs/ja/settings-reference#otelheadershelper) を設定していません。ヘルパーが設定されている場合、すべてのシグナルはリレーに留まります。

873 1131 

874名前を付けるエンドポイントはエクスポートがどこに移動するかのみを変更します。どのシグナルがエクスポートするかは、`OTEL_*_EXPORTER` セレクターで選択します。1132あなたが名前を付けるエンドポイントはエクスポートがどこに行くかのみを変更します。ゲートウェイが既にプッシュしない限り、どのシグナルがエクスポートするかを選択する変数を設定する必要があります:

875 1133 

876エンドポイント単独ではエクスポートをオンにしないため、ゲートウェイが既にプッシュしていない限り、それをオンにする変数も設定します:1134* ゲートウェイが既に [テレメトリ変数をプッシュ](#telemetry) する場合、それらは有効化、セレクター、プロトコルをカバーし、プッシュされた `<public_url>` 値をあなたの明示的なエンドポイントがオーバーライドします。`forward_to` 宛先がオプトインしないシグナルについてのみ、自分で `OTEL_*_EXPORTER` セレクターを `otlp` に設定してください。

1135* そうでない場合、`CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` セレクター、`OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf` も設定してください。

877 1136 

878* ゲートウェイが既に [テレメトリ変数をプッシュ](#telemetry)する場合、それらは有効化、セレクター、プロトコルをカバーし、プッシュされた `<public_url>` 値をオーバーライドします。`forward_to` 宛先が有効にしないシグナルについてのみ、`OTEL_*_EXPORTER` セレクターを `otlp` に自身で設定します。1137デベロッパーがサインアウトするか、別のゲートウェイにサインインする場合、コレクターへのエクスポートは停止し、Claude Code は各残りのバッチを遅延配信するのではなく削除します。

879* そうでない場合、`CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` セレクター、`OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf` も設定します。

880 

881開発者がサインアウトするか、別のゲートウェイにサインインすると、コレクターへのエクスポートは停止し、Claude Code は各残りのバッチをドロップします。

882 1138 

883<h4 id="when-a-destination-fails">1139<h4 id="when-a-destination-fails">

884 宛先が失敗する場合1140 宛先が失敗する場合

885</h4>1141</h4>

886 1142 

887ゲートウェイはバッファリング、再試行、またはテレメトリを保存しないため、宛先に到達しないエクスポートは遅く配信するのではなくドロップされます。各宛先は独立して成功または失敗し、エクスポートクライアントはどちらの方法でも成功レスポンスを受け取るため、失敗した配信はゲートウェイのログにのみ表示されます。1143ゲートウェイはバッファリング、再試行、またはテレメトリを保存しないため、宛先に到達しないエクスポートは遅延配信するのではなく削除されます。各宛先は独立して成功または失敗し、エクスポートクライアントはどちらの場合でも成功応答を受け取るため、失敗した配信はゲートウェイのログにのみ表示されます。

888 1144 

8895 つの連続した失敗した配信の後、ゲートウェイは 30 秒のストレッチで宛先へのフォワーディングを一時停止し、各一時停止をログします。配信が成功するまで。エラーレスポンス、タイムアウト、接続エラーはすべて失敗した配信としてカウントされます。`400`、`413`、`415`、`422`、`431` を除き、コレクターがそのエクスポートのペイロードを形式が正しくないか大きすぎるとして拒否したことを意味します。11455 つの連続した失敗した配信の後、ゲートウェイは 30 秒間隔でそれへの転送を一時停止し、各一時停止をログに記録します。配信が成功するまで。エラー応答、タイムアウト、接続エラーはすべて失敗した配信としてカウントされます。`400`、`413`、`415`、`422`、`431` を除きます。これらはコレクターがそのエクスポートのペイロードを不正な形式または大きすぎるとして拒否したことを意味します。

890 1146 

891拒否されたペイロードは失敗カウントを進めたり、リセットしたりしません:ゲートウェイは宛先へのフォワーディングを続け、最初の拒否と 100 番目ごとに、宛先に名前を付けるステータスを警告します。1147拒否されたペイロードは失敗カウントを進めたり、リセットしたりしません:ゲートウェイは宛先への転送を続け、最初の拒否と 100 番目ごとに警告をログに記録します。それに名前を付けます。

892 1148 

893<h3 id="http-tuning">1149<h3 id="http-tuning">

894 HTTP チューニング1150 HTTP チューニング

895</h3>1151</h3>

896 1152 

8974 つのオプションのトップレベルブロック、`access_control`、`limits`、`timeouts`、`rate_limits`。HTTP サーフェスをチューニングします。デフォルトはほとんどのデプロイメントに適しています。11534 つのオプションのトップレベルブロック `access_control`、`limits`、`timeouts`、`rate_limits` は HTTP サーフェスをチューニングします。デフォルトはほとんどのデプロイメントに適しています。

898 1154 

899| ブロック | キー | デフォルト | 説明 |1155| ブロック | キー | デフォルト | 説明 |

900| - | - | - | - |1156| - | - | - | - |

901| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | `trusted_proxies` 解決後のクライアントアドレスによるインバウンド IP 許可/拒否。`deny_cidrs` が最初にチェックされます。クライアントがマッチする場合、`allow_cidrs` もマッチしても拒否されます。`allow_cidrs` が空でない場合、ゲートウェイはデフォルト拒否です。`/healthz` と `/readyz` は `allow_cidrs` から除外されます。信頼できるプロキシが `X-Forwarded-For` エントリを送信し、それが IP アドレスではない場合、実際のクライアントは不明で、ゲートウェイは何をチェックするかに名前を付ける警告を 1 回ログします。どちらかのリストがリクエストに適用される場合、それはリクエストを拒否し、`403` と監査理由 `xff_unparseable` を返します。どちらでもない場合、リクエストを提供し、プロキシ独自のアドレスを IP ごとのレート制限と監査のクライアント IP として使用します。 |1157| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | インバウンド IP は `trusted_proxies` 解決後のクライアントアドレスで許可/拒否します。`deny_cidrs` が最初にチェックされます。クライアントがそれにマッチングする場合、`allow_cidrs` もマッチングしても拒否されます。`allow_cidrs` が空でない場合、ゲートウェイはデフォルト拒否です。`/healthz` と `/readyz` は `allow_cidrs` から除外されます。信頼されたプロキシが IP アドレスではない `X-Forwarded-For` エントリを送信する場合、実際のクライアントは不明で、ゲートウェイは確認する内容に名前を付ける警告を 1 回ログに記録します。リストのいずれかがリクエストに適用される場合、それは `403` と監査理由 `xff_unparseable` で拒否します。どちらも適用されない場合、リクエストを提供し、プロキシ独自のアドレスをクライアント IP として使用します。IP ごとのレート制限と監査用。 |

902| `limits` | `max_request_bytes` | 32 MiB | 最大インバウンドリクエストボディ。サイズを超えるリクエストはボディがバッファリングされる前に `413` を取得します。大きなファイルまたは画像リクエストの場合は増やします。 |1158| `limits` | `max_request_bytes` | 32 MiB | 最大インバウンドリクエストボディ。サイズを超えたリクエストはボディがバッファリングされる前に `413` を取得します。大きなファイルまたは画像リクエストの場合は上げてください。 |

903| `limits` | `max_request_header_bytes` | 未設定 | 設定すると、サイズを超えるヘッダーは `431` を返します。 |1159| `limits` | `max_request_header_bytes` | 未設定 | 設定されている場合、サイズを超えたヘッダーは `431` を返します。 |

904| `limits` | `max_url_length` | 未設定 | 設定すると、長すぎる URL は `414` を返します。 |1160| `limits` | `max_url_length` | 未設定 | 設定されている場合、長すぎる URL は `414` を返します。 |

905| `timeouts` | `upstream_ttfb_ms` | 120000 | アップストリームのレスポンスヘッダー(初バイト時間)を待つ最大時間。レスポンスボディはその後、ウォールクロックキャップなしでストリーミングされます。直接 Anthropic アップストリームパスに適用されます。他のすべてのプロバイダーはプロバイダー SDK 独自のタイムアウトで制限されます。 |1161| `timeouts` | `upstream_ttfb_ms` | 120000 | 上流のレスポンスヘッダーの最大待機時間(最初のバイトまでの時間)。レスポンスボディはその後、ウォールクロック上限なしでストリーミングされます。直接 Anthropic 上流パスに適用されます。他のすべてのプロバイダーでは、ゲートウェイはレスポンスが開始されるまで最大 1 時間待機します。 |

906| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 認証されていないデバイス認可エンドポイントの IP ごとのレート制限。共有エグレス IP または NAT の背後にある大規模な組織の場合は増やします。これらの制限は、デバイスグラント サインインフローにのみ適用され、`/v1/messages` 推論には適用されません。[ユーザーコードブルートフォース耐性](/docs/ja/claude-apps-gateway-deploy#user-code-brute-force-resistance)を参照してください。 |1162| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 認証されていないデバイス認可エンドポイントの IP ごとのレート制限。共有出力 IP または NAT の背後にある大規模な組織の場合は上げてください。[大規模ロールアウト](/docs/ja/claude-apps-gateway-deploy#large-rollouts) はそのサイズ方法を示します。これらの制限はデバイス付与サインインフローにのみ適用され、`/v1/messages` 推論には適用されません。[ユーザーコードブルートフォース耐性](/docs/ja/claude-apps-gateway-deploy#user-code-brute-force-resistance) を参照してください。 |

907| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` での `user_code` 送信の IP ごとのレート制限。 |1163| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` での `user_code` 送信の IP ごとのレート制限。別のデベロッパーのコードを推測するのを止めるものです。[大規模ロールアウト](/docs/ja/claude-apps-gateway-deploy#large-rollouts) はどこまで上げるかを示します。 |

1164 

1165両方の `access_control` リストを空のままにする場合(デフォルト)、ゲートウェイはクライアントアドレスを提供するため、ネットワークのみがそれに到達できるユーザーを制限します。ゲートウェイは [マネージド設定](#managed) をプッシュできるため、これは重要です。デベロッパーマシンでコマンドを実行します。

1166 

1167`allow_cidrs` が空の間、ゲートウェイは 2 つの場所で警告を記録します。リクエストへの応答方法は変わりません:

1168 

1169* **ブート時**:運用ログの警告は、プライベート範囲 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`100.64.0.0/10`、`127.0.0.0/8`、`::1/128`、`fc00::/7` のみを許可することを推奨します。デベロッパーが接続する他の内部範囲も同様です。ゲートウェイをループバックアドレスにバインドし、`trusted_proxies` も `public_url` も設定しない場合(ローカル開発のように)、警告は表示されません。

1170* **実行時**:リクエストが最初にこれらのプライベート範囲外のアドレスから到着する場合、ゲートウェイは警告をログに記録し、クライアント IP を含む [`access.public_client` 監査イベント](/docs/ja/claude-apps-gateway-deploy#logs) を発行します。両方はプロセスごとに 1 回発火します。リンクローカルアドレス `169.254.0.0/16` と `fe80::/10` はパブリックとしてカウントされません。ゲートウェイは `/healthz` と `/readyz` をこのチェック実行前に応答するため、パブリック範囲からのヘルスプローブはそれをトリガーしません。

908 1171 

909`access_control` リストを両方とも空のままにする場合、これはデフォルトで、ゲートウェイはすべてのクライアントアドレスに提供するため、ネットワークのみがそれに到達できるユーザーを制限します。これは重要です。ゲートウェイは [マネージド設定](#managed)をプッシュできるため、開発者マシンでコマンドを実行します。1172両方のシグナルはゲートウェイが解決するクライアントアドレスを使用します。ロードバランサー、ポートフォワード、またはトンネルがトラフィックをリレーし、`listen.trusted_proxies` にリストされていない場合、ゲートウェイはリレーのアドレスを見ます。通常はプライベートなため、実行時警告もプライベート許可リストもそれをキャッチしません。

910 1173 

911`allow_cidrs` が空の間、ゲートウェイは 2 つの場所で警告します。リクエストへの回答方法を変更することなく:1174そのようなフロントエンドの背後で、最初に [`listen.trusted_proxies`](#listen) を設定して、ゲートウェイが実際のクライアントアドレスを見るようにし、ゲートウェイとその前のすべてをパブリックインターネットから到達不可能に保ってください。

912 1175 

913* **ブート時**:運用ログの警告は、プライベート範囲 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`100.64.0.0/10`、`127.0.0.0/8`、`::1/128`、`fc00::/7` のみを許可することを推奨します。開発者が接続する他の内部範囲を加えます。ゲートウェイをループバックアドレスにバインドし、`trusted_proxies` も `public_url` も設定しない場合、ローカル開発のように、警告は表示されません。1176<h3 id="load_test_mode">

914* **実行時**:リクエストが最初にこれらのプライベート範囲外のアドレスから到着すると、ゲートウェイは警告をログし、[`access.public_client` 監査イベント](/docs/ja/claude-apps-gateway-deploy#logs)をクライアント IP で発行します。両方とも 1 回プロセスごとに発火します。リンクローカルアドレス、`169.254.0.0/16` と `fe80::/10` は、パブリックとしてカウントされません。ゲートウェイは `/healthz` と `/readyz` をこのチェック実行前に回答するため、パブリック範囲からのヘルスプローブはそれをトリガーしません。1177 `load_test_mode`

1178</h3>

1179 

1180`load_test_mode` ブロックを使用すると、モデルプロバイダーを呼び出さずにゲートウェイをロードテストできます。オンの間、ゲートウェイは各プロバイダーリクエストを通常どおり構築して署名し、送信する代わりに破棄し、通常のレスポンスパスを通じて缶詰の返信をストリーミングします。返信は、それが缶詰であることを示す文で始まるフィラーテキストです。

1181 

1182ゲートウェイサーバー上の Claude Code v2.1.282 以降が必要です。以前のゲートウェイはキーを見つけると起動を拒否します。すべてのレプリカをアップグレードしてからブロックを追加し、以前のバージョンにロールバックする前にブロックを削除してください。

1183 

1184以下の例はデフォルトでモードをオンにします。約 750 トークンのテキストの返信が約 10 秒でストリーミングされます:

1185 

1186```yaml theme={null}

1187load_test_mode:

1188 enabled: true

1189 reply_tokens: 750 # 大体、各缶詰返信が含むテキストのトークン数

1190 reply_seconds: 9.5 # ストリーミング返信がどのくらい続くか

1191```

1192 

1193| フィールド | 必須 | 説明 |

1194| - | - | - |

1195| `enabled` | はい | `true` はモードをオンにします。`false` はモードをオフにしてファイルに数字を保持します。ブロックが存在する場合、ゲートウェイはそれなしで起動を拒否します。 |

1196| `reply_tokens` | いいえ | デフォルト `750`。大体、各缶詰返信が含むテキストのトークン数。1 から 100000 までの整数。 |

1197| `reply_seconds` | いいえ | デフォルト `9.5`。ストリーミング返信がどのくらい続くか。0 から 600 まで。`0` は返信全体を一度に送信します。非ストリーミングリクエストへの返信は常に一度に来ます。 |

1198 

1199このモードでのロードテストはゲートウェイ、Postgres、ゲートウェイの前のすべてをカバーします。プロバイダーの制限、速度、ネットワークパスはカバーしません。

1200 

1201プロバイダーにモデルリクエストは送信されないため、レプリカの CPU リクエストは見積もりで、本番より低く読み取られます。本番はプロバイダーへのトラフィックも暗号化します。小規模なパイロットで実際のプロバイダーに対してレプリカカウントを確認してください。v2.1.283 より前では、見積もりは非常に低く読み取られます。

915 1202 

916両方のシグナルはゲートウェイが解決するクライアントアドレスを使用します。ロードバランサー、ポートフォワード、またはトンネルがトラフィックをリレーし、`listen.trusted_proxies` にリストされていない場合、ゲートウェイはリレーのアドレスを見ます。通常はプライベートです。したがって、実行時警告もプライベート許可リストもそれをキャッチしません。1203モードがオンの間、リクエストは最大 7 桁の整数を保持する `x-load-test-user` ヘッダーを含むことができます。ゲートウェイは各数字を別のデベロッパーとしてカウントします。リクエストと共に来たデベロッパーのメールとグループを使用します。

917 1204 

918そのようなフロントエンドの背後で、[`listen.trusted_proxies`](#listen)を最初に設定して、ゲートウェイが実際のクライアントアドレスを見るようにし、ゲートウェイとその前のすべてをパブリックインターネットから到達不可能に保ちます。1205ロードテストデプロイメントに独自の空のデータベースを与えてください。ゲートウェイはモードがオンで、任意のデベロッパーが既に何かを費やしたデータベースに対して起動を拒否するためです。

1206 

1207<Warning>

1208 デベロッパーが使用するゲートウェイでこれをオンにしないでください。すべてのリクエストは缶詰の返信を取得し、モデルは呼び出されません。ゲートウェイはブート時に `load_test_mode is on` 警告をログに記録し、モードがオンの間、各 `inference` [監査イベント](/docs/ja/claude-apps-gateway-deploy#logs) を `load_test: true` でマークします。

1209</Warning>

919 1210 

920<h2 id="complete-example">1211<h2 id="complete-example">

921 完全な例1212 完全な例


968store:1259store:

969 postgres_url: ${GATEWAY_POSTGRES_URL}1260 postgres_url: ${GATEWAY_POSTGRES_URL}

970 # max_connections: 51261 # max_connections: 5

1262 # connect_timeout_seconds: 5

1263 # readiness_grace_seconds: 300 # keep passing the readiness check through a database failover

971 1264 

972# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)1265# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)

973# and per-developer spend enforcement on /v1/messages. Omit to disable.1266# and per-developer spend enforcement on /v1/messages. Omit to disable.


987# enforcement:1280# enforcement:

988# fail_closed_on_error: false1281# fail_closed_on_error: false

989 1282 

1283# Load test this deployment without calling a model provider. Never on a

1284# gateway that developers use: every request gets a canned reply.

1285# load_test_mode:

1286# enabled: true

1287# # reply_tokens: 750

1288# # reply_seconds: 9.5

1289 

990# Meter at contracted rates instead of USD list price. Requires admin: or a1290# Meter at contracted rates instead of USD list price. Requires admin: or a

991# managed: policy. With managed:, the same rates also go to signed-in clients.1291# managed: policy. With managed:, the same rates also go to signed-in clients.

992# Rates below are placeholders, not real contract prices.1292# Rates below are placeholders, not real contract prices.


1082 1382 

1083`parentSettingsBehavior: "merge"` は Claude Desktop の出力許可リストの配信を埋め込み Claude Code セッションで機能させ続けます。[Claude Desktop セッションにポリシーを配信する](/docs/ja/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)はメカニズムと opt-in が配置される場所を説明しています。1383`parentSettingsBehavior: "merge"` は Claude Desktop の出力許可リストの配信を埋め込み Claude Code セッションで機能させ続けます。[Claude Desktop セッションにポリシーを配信する](/docs/ja/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)はメカニズムと opt-in が配置される場所を説明しています。

1084 1384 

1385開発者がクラウドプロバイダー変数または独自の `ANTHROPIC_BASE_URL` でゲートウェイをバイパスするのを防ぐには、同じファイルに `"allowedProviders": ["gateway"]` を追加します。Claude Code はその後、マシン上でクラウドゲートウェイ用に設定されていないすべてのセッションを拒否し、`forceLoginGatewayUrl` が指定するゲートウェイ、またはファイルの `env` ブロックが `ANTHROPIC_BASE_URL` として設定する URL を持つゲートウェイのみを認めます。`claude gateway` はこのリストを設定するマシンでの実行を拒否するため、ゲートウェイホストではこのキーをオフのままにしてください。設定リファレンスの [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) エントリを参照してください。Claude Code v2.1.285 以降が必要です。

1386 

1085`managed-settings.json` ファイルを各デバイスにデプロイします。通常は MDM プラットフォーム経由です。ファイルパスはプラットフォームによって異なります。[各メカニズムがポリシーを保存する場所](/docs/ja/managed-settings#where-each-mechanism-stores-the-policy)を参照してください。1387`managed-settings.json` ファイルを各デバイスにデプロイします。通常は MDM プラットフォーム経由です。ファイルパスはプラットフォームによって異なります。[各メカニズムがポリシーを保存する場所](/docs/ja/managed-settings#where-each-mechanism-stores-the-policy)を参照してください。

1086 1388 

1087デフォルトでは、Windows のレジストリポリシーまたは macOS のマネージドプリファレンス plist は、[上記の例外キーとクロスソースチェック](#precedence-with-other-managed-sources)を除き、`managed-settings.json` ファイルとマージするのではなく置き換えます。このスニペットの 3 つのキーはすべて最優先ソースルールに従うため、Group Policy または設定プロファイルを通じてポリシーを配信するフリートは、代わりにそのメカニズムにすべての 3 つを配置する必要があります。1389デフォルトでは、Windows のレジストリポリシーまたは macOS のマネージドプリファレンス plist は、[上記の例外キーとクロスソースチェック](#precedence-with-other-managed-sources)を除き、`managed-settings.json` ファイルとマージするのではなく置き換えます。このスニペットの 3 つのキーはすべて最優先ソースルールに従うため、Group Policy または設定プロファイルを通じてポリシーを配信するフリートは、代わりにそのメカニズムにすべての 3 つを配置する必要があります。


1090 1392 

1091Claude Code は [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/ja/settings-reference#gatewayinternalnetworks)、および [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) の `"gateway"` 値をマシン上のマネージドソースからのみ認識します。`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパーです。開発者が独自の `~/.claude/settings.json` でこれらを設定しても効果がなく、ゲートウェイペイロードで設定しても同様です。1393Claude Code は [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/ja/settings-reference#gatewayinternalnetworks)、および [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) の `"gateway"` 値をマシン上のマネージドソースからのみ認識します。`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパーです。開発者が独自の `~/.claude/settings.json` でこれらを設定しても効果がなく、ゲートウェイペイロードで設定しても同様です。

1092 1394 

1395`forceLoginMethod` と `forceLoginOrgUUID` をペイロードから除外してください。Claude Code はスタートアップ認証情報チェックのためにペイロードから両方のキーを読み込みます。そのため、Anthropic が発行した認証情報をマシンに保持している開発者は、サインイン後でも[管理者ポリシーがクラウドゲートウェイサインインを必要とする](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)の下で説明されているスタートアップ終了を取得します。

1396 

1093<h2 id="related">1397<h2 id="related">

1094 関連1398 関連

1095</h2>1399</h2>

Details

150* ディレクトリは少なくとも 1 つのコミットを持つ git リポジトリである必要があります150* ディレクトリは少なくとも 1 つのコミットを持つ git リポジトリである必要があります

151* バンドルされたリポジトリは 100 MB 未満である必要があります。より大きなリポジトリは現在のブランチのみをバンドルすることにフォールバックし、その後ワーキングツリーの単一の圧縮スナップショットにフォールバックし、スナップショットがまだ大きすぎる場合のみ失敗します151* バンドルされたリポジトリは 100 MB 未満である必要があります。より大きなリポジトリは現在のブランチのみをバンドルすることにフォールバックし、その後ワーキングツリーの単一の圧縮スナップショットにフォールバックし、スナップショットがまだ大きすぎる場合のみ失敗します

152* 追跡されていないファイルは含まれません。クラウドセッションが見るべきファイルで `git add` を実行します152* 追跡されていないファイルは含まれません。クラウドセッションが見るべきファイルで `git add` を実行します

153* macOS、Linux、WSL では、Claude Code は属性ルールがファイルに適用される方法に影響する git 設定(インクルードされた設定ファイルで設定された `core.attributesFile` など)に従うことができない場合、アップロードを拒否します。[拒否メッセージ](/docs/ja/errors#the-repository-upload-cant-follow-a-git-setting)は設定と修正に名前を付けます

153* バンドルから作成されたセッションは、[GitHub 接続](#github-authentication-options)がそのリポジトリへのプッシュアクセスを持つ場合にのみ、GitHub リモートにプッシュバックできます154* バンドルから作成されたセッションは、[GitHub 接続](#github-authentication-options)がそのリポジトリへのプッシュアクセスを持つ場合にのみ、GitHub リモートにプッシュバックできます

154 155 

155<h3 id="send-follow-ups-from-the-cli">156<h3 id="send-follow-ups-from-the-cli">

Details

1561| `paste-cache/` | 大きな貼り付けの内容 |1561| `paste-cache/` | 大きな貼り付けの内容 |

1562| `image-cache/<session>/` | Claude Code v2.1.274 以前で保存された添付画像。それ以降のバージョンでは、貼り付けた画像と添付画像は `~/.claude` の外に保存されます。[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars)が制御する一時ディレクトリの下の各セッションの `images/` ディレクトリに保存されます。スイープは、年齢に関係なく、ここにある他のセッションの残されたディレクトリを削除します |1562| `image-cache/<session>/` | Claude Code v2.1.274 以前で保存された添付画像。それ以降のバージョンでは、貼り付けた画像と添付画像は `~/.claude` の外に保存されます。[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars)が制御する一時ディレクトリの下の各セッションの `images/` ディレクトリに保存されます。スイープは、年齢に関係なく、ここにある他のセッションの残されたディレクトリを削除します |

1563| `uploads/<session>/` | Web またはモバイルアプリから添付したファイル、およびモバイルアプリから添付した写真。[リモートコントロール](/docs/ja/remote-control)セッションにメッセージを送信する場合。[クラウドセッション](/docs/ja/claude-code-on-the-web)への添付は、代わりにそのセッション自身のクラウド環境に保存され、マシン上には保存されません |1563| `uploads/<session>/` | Web またはモバイルアプリから添付したファイル、およびモバイルアプリから添付した写真。[リモートコントロール](/docs/ja/remote-control)セッションにメッセージを送信する場合。[クラウドセッション](/docs/ja/claude-code-on-the-web)への添付は、代わりにそのセッション自身のクラウド環境に保存され、マシン上には保存されません |

1564| `dev-mods/<session>/` | [Claude が作成した Mods](/docs/ja/plugins/mods/create#ask-claude-for-a-mod)。セッション中に作成されたもの |

1564| `session-env/` | セッションごとの環境メタデータ |1565| `session-env/` | セッションごとの環境メタデータ |

1565| `tasks/` | タスクツールで書き込まれたタスクリスト。リストごとに 1 つのディレクトリ |1566| `tasks/` | タスクツールで書き込まれたタスクリスト。リストごとに 1 つのディレクトリ |

1566| `shell-snapshots/` | 起動時にキャプチャされたエイリアス、関数、シェルオプション。[Bash ツール](/docs/ja/tools-reference#bash-tool-behavior)によって各コマンドに適用されます。クリーンな終了時に削除されます。スイープはクラッシュ後に残されたものをクリアします |1567| `shell-snapshots/` | 起動時にキャプチャされたエイリアス、関数、シェルオプション。[Bash ツール](/docs/ja/tools-reference#bash-tool-behavior)によって各コマンドに適用されます。クリーンな終了時に削除されます。スイープはクラッシュ後に残されたものをクリアします |

Details

84| `--dangerously-skip-permissions` | 権限プロンプトをスキップします。`--permission-mode bypassPermissions` と同等です。[権限モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)でこれが何をスキップし、何をスキップしないかを参照してください。`--bg` で開始されたセッションの場合、モードは[スーパーバイザーがセッションを再開するときに保持](/docs/ja/agent-view#permission-mode-model-and-effort)されます | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | 権限プロンプトをスキップします。`--permission-mode bypassPermissions` と同等です。[権限モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)でこれが何をスキップし、何をスキップしないかを参照してください。`--bg` で開始されたセッションの場合、モードは[スーパーバイザーがセッションを再開するときに保持](/docs/ja/agent-view#permission-mode-model-and-effort)されます | `claude --dangerously-skip-permissions` |

85| `--debug` | デバッグモードを有効にします。オプションのカテゴリフィルタリング(`--debug='mcp,startup'` または `--debug='!1p'` など)を使用します。フィルターは `=` 形式でのみバインドされます。スペース区切りフィルターはフィルタリングなしでデバッグモードを有効にします | `claude --debug='mcp,startup'` |85| `--debug` | デバッグモードを有効にします。オプションのカテゴリフィルタリング(`--debug='mcp,startup'` または `--debug='!1p'` など)を使用します。フィルターは `=` 形式でのみバインドされます。スペース区切りフィルターはフィルタリングなしでデバッグモードを有効にします | `claude --debug='mcp,startup'` |

86| `--debug-file <path>` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします。`CLAUDE_CODE_DEBUG_LOGS_DIR` よりも優先されます | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします。`CLAUDE_CODE_DEBUG_LOGS_DIR` よりも優先されます | `claude --debug-file /tmp/claude-debug.log` |

87| `--desktop` | [Claude Desktop アプリ](/docs/ja/desktop)を現在のディレクトリで開き、ターミナルでセッションを開始せずに終了します。`--continue` を追加するか、セッション ID を使用して `--resume` を追加して、[代わりに Desktop でそのセッションを開く](/docs/ja/desktop#coming-from-the-cli)ことができます。ここで `--resume` はセッション ID のみを取り、名前またはトランスクリプトパスは取りません。プロンプトと `--verbose` および `--debug` フラグ以外の他のフラグは取りません。アプリがセッション自体を開始するため。macOS および x64 Windows で Claude サブスクリプションでサインインしている場合に利用可能です。Claude Code v2.1.285 以降が必要です | `claude --desktop` |

87| `--disable-slash-commands` | このセッションのすべてのスキルとコマンドを無効にします | `claude --disable-slash-commands` |88| `--disable-slash-commands` | このセッションのすべてのスキルとコマンドを無効にします | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | 拒否ルール。ベアツール名は一致するツールを Claude のコンテキストから削除します。`"Edit"` は Edit を削除し、`"*"` はすべてのツールを削除し、`"mcp__*"` はすべての MCP ツールを削除します。`Bash(rm *)` などのスコープ付きルールはツールを利用可能なままにし、[書かれたとおりに](/docs/ja/permissions#bash-rule-limits)一致する呼び出しのみを拒否します。[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior)という名前のルールは、他のツールが残っている間はそれを削除できません | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |89| `--disallowedTools`, `--disallowed-tools` | 拒否ルール。ベアツール名は一致するツールを Claude のコンテキストから削除します。`"Edit"` は Edit を削除し、`"*"` はすべてのツールを削除し、`"mcp__*"` はすべての MCP ツールを削除します。`Bash(rm *)` などのスコープ付きルールはツールを利用可能なままにし、[書かれたとおりに](/docs/ja/permissions#bash-rule-limits)一致する呼び出しのみを拒否します。[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior)という名前のルールは、他のツールが残っている間はそれを削除できません | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | 現在のセッションの[努力レベル](/docs/ja/model-config#adjust-effort-level)を設定します。オプション:`low`、`medium`、`high`、`xhigh`、`max`、または `ultracode`。利用可能なレベルはモデルによって異なります。`ultracode` は [ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode) をオンにして `xhigh` 努力をリクエストし、Claude Code v2.1.203 以降が必要です。このセッションの [`modelSettings`](/docs/ja/settings-reference#modelsettings) と [`effortLevel`](/docs/ja/settings-reference#effortlevel) 設定をオーバーライドし、保持されません | `claude --effort high` |90| `--effort` | 現在のセッションの[努力レベル](/docs/ja/model-config#adjust-effort-level)を設定します。オプション:`low`、`medium`、`high`、`xhigh`、`max`、または `ultracode`。利用可能なレベルはモデルによって異なります。`ultracode` は [ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode) をオンにして `xhigh` 努力をリクエストし、Claude Code v2.1.203 以降が必要です。このセッションの [`modelSettings`](/docs/ja/settings-reference#modelsettings) と [`effortLevel`](/docs/ja/settings-reference#effortlevel) 設定をオーバーライドし、保持されません | `claude --effort high` |


116| `--permission-prompts` | プリントモードで権限プロンプトに誰が答えるかを設定します。デフォルトの `host` を使用すると、Claude Code はそれらをエージェント SDK ホストまたは `--permission-prompt-tool` ツールに送信します。誰も答えられない場合は `none` を渡し、Claude Code は代わりにそれらを拒否します。[無人実行で権限プロンプトをオフにする](/docs/ja/headless#turn-off-permission-prompts-in-unattended-runs)を参照してください。Claude Code v2.1.259 以降が必要です | `claude -p --permission-prompts none "query"` |117| `--permission-prompts` | プリントモードで権限プロンプトに誰が答えるかを設定します。デフォルトの `host` を使用すると、Claude Code はそれらをエージェント SDK ホストまたは `--permission-prompt-tool` ツールに送信します。誰も答えられない場合は `none` を渡し、Claude Code は代わりにそれらを拒否します。[無人実行で権限プロンプトをオフにする](/docs/ja/headless#turn-off-permission-prompts-in-unattended-runs)を参照してください。Claude Code v2.1.259 以降が必要です | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | ディレクトリまたは `.zip` アーカイブからプラグインを読み込むか、[プラグインのフォルダ](/docs/ja/plugins/create#load-a-directory-or-archive-for-one-session)から複数を読み込みます。このセッションのみ。各フラグは 1 つのパスを取ります。より多くのパスについてはフラグを繰り返します。`--plugin-dir A --plugin-dir B.zip`。プラグインのフォルダを渡すには Claude Code v2.1.265 以降が必要です | `claude --plugin-dir ./my-plugin` |118| `--plugin-dir` | ディレクトリまたは `.zip` アーカイブからプラグインを読み込むか、[プラグインのフォルダ](/docs/ja/plugins/create#load-a-directory-or-archive-for-one-session)から複数を読み込みます。このセッションのみ。各フラグは 1 つのパスを取ります。より多くのパスについてはフラグを繰り返します。`--plugin-dir A --plugin-dir B.zip`。プラグインのフォルダを渡すには Claude Code v2.1.265 以降が必要です | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | URL からプラグイン `.zip` アーカイブをフェッチします。このセッションのみ。複数のプラグインについてはフラグを繰り返すか、単一の引用値でスペース区切り URL を渡します | `claude --plugin-url https://example.com/plugin.zip` |119| `--plugin-url` | URL からプラグイン `.zip` アーカイブをフェッチします。このセッションのみ。複数のプラグインについてはフラグを繰り返すか、単一の引用値でスペース区切り URL を渡します | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | 対話モードなしで応答を出力します(プログラム的な使用の詳細については[エージェント SDK ドキュメント](/docs/ja/agent-sdk/overview)を参照してください) | `claude -p "query"` |120| `--print`, `-p` | 対話モードなしで応答を出力します(プログラム的な使用の詳細については[エージェント SDK ドキュメント](/docs/ja/agent-sdk/overview)を参照してください)。バックグラウンドセッションで `--resume` を実行している場合で、まだ実行中の場合は、[セッションを再開](/docs/ja/sessions#resume-a-running-background-session)を参照してください | `claude -p "query"` |

120| `--prompt-suggestions` | 各ターンの後に予測される次のユーザープロンプトを含む `prompt_suggestion` メッセージを出力します。非常に短い会話は何も生成しない可能性があります。`--print`、`--output-format stream-json`、`--verbose` が必要です。[プロンプト提案](/docs/ja/interactive-mode#prompt-suggestions)を参照してください | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |121| `--prompt-suggestions` | 各ターンの後に予測される次のユーザープロンプトを含む `prompt_suggestion` メッセージを出力します。非常に短い会話は何も生成しない可能性があります。`--print`、`--output-format stream-json`、`--verbose` が必要です。[プロンプト提案](/docs/ja/interactive-mode#prompt-suggestions)を参照してください | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |

121| `--ref <branch>` | `--environment` を使用して、新しいセッションのチェックアウトをローカル `HEAD` の代わりに名前付きリファレンスに基づかせます | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |122| `--ref <branch>` | `--environment` を使用して、新しいセッションのチェックアウトをローカル `HEAD` の代わりに名前付きリファレンスに基づかせます | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |

122| `--remote` | `--cloud` の非推奨エイリアス。既存セッション形式を含みます | `claude --remote "Fix the login bug"` |123| `--remote` | `--cloud` の非推奨エイリアス。既存セッション形式を含みます | `claude --remote "Fix the login bug"` |


124| `--remote-control-session-name-prefix <prefix>` | 明示的な名前が設定されていない場合、自動生成された[リモートコントロール](/docs/ja/remote-control)セッション名のプレフィックス。デフォルトはマシンのホスト名で、`myhost-graceful-unicorn` などの名前を生成します。`CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` を設定して同じ効果を得ます | `claude remote-control --remote-control-session-name-prefix dev-box` |125| `--remote-control-session-name-prefix <prefix>` | 明示的な名前が設定されていない場合、自動生成された[リモートコントロール](/docs/ja/remote-control)セッション名のプレフィックス。デフォルトはマシンのホスト名で、`myhost-graceful-unicorn` などの名前を生成します。`CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` を設定して同じ効果を得ます | `claude remote-control --remote-control-session-name-prefix dev-box` |

125| `--replay-user-messages` | stdin からのユーザーメッセージを stdout に再出力して確認します。`--input-format stream-json` と `--output-format stream-json` が必要です | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |126| `--replay-user-messages` | stdin からのユーザーメッセージを stdout に再出力して確認します。`--input-format stream-json` と `--output-format stream-json` が必要です | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | 制限モードで開始します。評価ハーネスが共有マシン上で `claude` を駆動し、Claude Code がそのマシンのコマンドを実行したり、ユーザーおよびプロジェクト設定を読み取ったりしてはいけない場合に使用します。Claude Code は、`--tools` で個別に名前を付けない限り、`default` プリセットを通じて、コマンドまたはコードを実行するビルトインツールと WebFetch を削除します。また、ビルトインファイルツールを[作業ディレクトリ](/docs/ja/permissions#working-directories)に限定し、[管理設定](/docs/ja/managed-settings)と `--settings` のみを読み込み、[`bypassPermissions`](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)を拒否し、[クラウドセッションの作成を拒否](/docs/ja/errors#cloud-sessions-cannot-be-created-from-a-restricted-session)します。Claude Code v2.1.248 以降が必要です | `claude --restricted -p "query"` |127| `--restricted` | 制限モードで開始します。評価ハーネスが共有マシン上で `claude` を駆動し、Claude Code がそのマシンのコマンドを実行したり、ユーザーおよびプロジェクト設定を読み取ったりしてはいけない場合に使用します。Claude Code は、`--tools` で個別に名前を付けない限り、`default` プリセットを通じて、コマンドまたはコードを実行するビルトインツールと WebFetch を削除します。また、ビルトインファイルツールを[作業ディレクトリ](/docs/ja/permissions#working-directories)に限定し、[管理設定](/docs/ja/managed-settings)と `--settings` のみを読み込み、[`bypassPermissions`](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)を拒否し、[クラウドセッションの作成を拒否](/docs/ja/errors#cloud-sessions-cannot-be-created-from-a-restricted-session)します。Claude Code v2.1.248 以降が必要です | `claude --restricted -p "query"` |

127| `--resume`, `-r` | ID または名前で特定のセッションを再開するか、セッションを選択するための対話型ピッカーを表示します。ID の代わりに、セッションの `.jsonl` [トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)への絶対パスを渡すことができます。ピッカーと名前検索には、このディレクトリを `/add-dir` で追加したセッションが含まれます。セッション ID を渡すと、Claude Code は現在のプロジェクトディレクトリとその git ワークツリーを検索してから、このマシン上の他のすべてのプロジェクトを検索します。v2.1.223 より前は、ID 検索は現在のプロジェクトディレクトリとその git ワークツリーのみをカバーしていました。[バックグラウンドセッション](/docs/ja/agent-view)はピッカーに `bg` でマークされて表示されます | `claude --resume auth-refactor` |128| `--resume`, `-r` | ID または名前で特定のセッションを再開するか、セッションを選択するための対話型ピッカーを表示します。ID の代わりに、セッションの `.jsonl` [トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)への絶対パスを渡すことができます。ピッカーと名前検索には、このディレクトリを `/add-dir` で追加したセッションが含まれます。セッション ID を渡すと、Claude Code は現在のプロジェクトディレクトリとその git ワークツリーを検索してから、このマシン上の他のすべてのプロジェクトを検索します。v2.1.223 より前は、ID 検索は現在のプロジェクトディレクトリとその git ワークツリーのみをカバーしていました。[バックグラウンドセッション](/docs/ja/agent-view)はピッカーに `bg` でマークされて表示されます。まだ実行中のセッションを再開すると、[そのセッション](/docs/ja/sessions#resume-a-running-background-session)を `claude attach` を通じてこのターミナルで開き、コマンドラインで渡すプロンプトはそれに次のターンとして送信されます。v2.1.285 より前は、Claude Code は拒否し、代わりに実行する `claude attach` コマンドを出力しました | `claude --resume auth-refactor` |

128| `--safe-mode` | 壊れた設定をトラブルシューティングするためにすべてのカスタマイズを無効にして開始します。CLAUDE.md、スキル、プラグイン、フック、MCP サーバー、カスタムコマンドとエージェント、出力スタイル、ワークフロー、カスタムテーマ、カスタムキーバインディング、ステータスラインとファイル提案コマンド、LSP サーバー、自動メモリは読み込まれません。認証、モデル選択、ビルトインツール、権限は通常どおり機能します。これは [`--bare`](/docs/ja/headless#start-faster-with-bare-mode) と異なります。管理設定ポリシーは引き続き適用されます。ポリシー設定フック、ステータスライン、ファイル提案コマンドを含みます。管理プラグイン、管理スキル、管理 CLAUDE.md、ポリシー設定 MCP サーバーは含まれません。[自動モデルフォールバック](/docs/ja/model-config#automatic-model-fallback)をトリガーするカスタマイズかどうかを確認するのに役立ちます。[`CLAUDE_CODE_SAFE_MODE`](/docs/ja/env-vars) を設定します | `claude --safe-mode` |129| `--safe-mode` | 壊れた設定をトラブルシューティングするためにすべてのカスタマイズを無効にして開始します。CLAUDE.md、スキル、プラグイン、フック、MCP サーバー、カスタムコマンドとエージェント、出力スタイル、ワークフロー、カスタムテーマ、カスタムキーバインディング、ステータスラインとファイル提案コマンド、LSP サーバー、自動メモリは読み込まれません。認証、モデル選択、ビルトインツール、権限は通常どおり機能します。これは [`--bare`](/docs/ja/headless#start-faster-with-bare-mode) と異なります。管理設定ポリシーは引き続き適用されます。ポリシー設定フック、ステータスライン、ファイル提案コマンドを含みます。管理プラグイン、管理スキル、管理 CLAUDE.md、ポリシー設定 MCP サーバーは含まれません。[自動モデルフォールバック](/docs/ja/model-config#automatic-model-fallback)をトリガーするカスタマイズかどうかを確認するのに役立ちます。[`CLAUDE_CODE_SAFE_MODE`](/docs/ja/env-vars) を設定します | `claude --safe-mode` |

129| `--session-id` | 会話に特定のセッション ID を使用します(有効な UUID である必要があります) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |130| `--session-id` | 会話に特定のセッション ID を使用します(有効な UUID である必要があります) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | 読み込む設定ソースのコンマ区切りリスト(`user`、`project`、`local`)。[エージェントビュー](/docs/ja/agent-view#what-carries-over-when-you-background)と[エージェントチーム](/docs/ja/agent-teams#context-and-communication)を参照してください。このセッションから開始するセッションがリストを継承します | `claude --setting-sources user,project` |131| `--setting-sources` | 読み込む設定ソースのコンマ区切りリスト(`user`、`project`、`local`)。[エージェントビュー](/docs/ja/agent-view#what-carries-over-when-you-background)と[エージェントチーム](/docs/ja/agent-teams#context-and-communication)を参照してください。このセッションから開始するセッションがリストを継承します | `claude --setting-sources user,project` |

Details

439 439 

440* **Claude が実行するコマンド**:クラウド環境は独自のコマンドタイムアウトを設定しないため、Bash ツールのデフォルトが適用されます。Claude はデフォルトでコマンドを 2 分間待機し、最大 10 分間要求できます。440* **Claude が実行するコマンド**:クラウド環境は独自のコマンドタイムアウトを設定しないため、Bash ツールのデフォルトが適用されます。Claude はデフォルトでコマンドを 2 分間待機し、最大 10 分間要求できます。

441 441 

442 コマンドが[タイムアウト](/docs/ja/tools-reference#timeout-and-output-limits)に達すると、Claude Code は `sleep` で始まるコマンドを除き、それを停止する代わりに[バックグラウンドに移動](/docs/ja/tools-reference#background-commands)します。この方法で移動されたコマンドは、Claude Code がそれを[バックグラウンド時間制限](/docs/ja/tools-reference#background-commands)で停止する前に、最大 30 分間実行し続けることができます。`BASH_DEFAULT_TIMEOUT_MS` を `1800000` ミリ秒より上に設定すると、その制限とフォアグラウンドデフォルトの両方が長くなります。442 コマンドが[タイムアウト](/docs/ja/tools-reference#timeout-and-output-limits)に達すると、Claude Code は `sleep` で始まるコマンドを除き、それを停止する代わりに[バックグラウンドに移動](/docs/ja/tools-reference#foreground-commands-that-move-to-the-background)します。この方法で移動されたコマンドは、Claude Code がそれを[バックグラウンド時間制限](/docs/ja/tools-reference#time-limit-for-background-commands)で停止する前に、最大 30 分間実行し続けることができます。`BASH_DEFAULT_TIMEOUT_MS` を `1800000` ミリ秒より上に設定すると、その制限とフォアグラウンドデフォルトの両方が長くなります。

443* **SessionStart hooks**:Claude Code は、hook エントリで[`timeout`](/docs/ja/hooks#common-fields)(秒単位)を設定しない限り、600 秒後に `command` hook をキャンセルします。Claude Code は[`async: true`](/docs/ja/hooks#run-hooks-in-the-background)で実行する hook に対してタイムアウトを適用しません。443* **SessionStart hooks**:Claude Code は、hook エントリで[`timeout`](/docs/ja/hooks#common-fields)(秒単位)を設定しない限り、600 秒後に `command` hook をキャンセルします。Claude Code は[`async: true`](/docs/ja/hooks#run-hooks-in-the-background)で実行する hook に対してタイムアウトを適用しません。

444* **セットアップスクリプト**:約 5 分以上かかるスクリプトはキャッシュされません。[スクリプト要件](#script-requirements)は、その制限内に留まる方法をカバーしています。444* **セットアップスクリプト**:約 5 分以上かかるスクリプトはキャッシュされません。[スクリプト要件](#script-requirements)は、その制限内に留まる方法をカバーしています。

445* **アイドルセッション**:数分間アクティビティがない場合、セッションの VM はファイルが保存された状態で一時停止され、一時停止された VM は後で回収される可能性があります。[環境変数の設定](#set-environment-variables)は、各ケースでセッションが何を取得するかについて説明し、[Environment expired](/docs/ja/claude-code-on-the-web#environment-expired)は VM が回収されたセッションを再度開く方法をカバーしています。445* **アイドルセッション**:数分間アクティビティがない場合、セッションの VM はファイルが保存された状態で一時停止され、一時停止された VM は後で回収される可能性があります。[環境変数の設定](#set-environment-variables)は、各ケースでセッションが何を取得するかについて説明し、[Environment expired](/docs/ja/claude-code-on-the-web#environment-expired)は VM が回収されたセッションを再度開く方法をカバーしています。

commands.md +1 −1

Details

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

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

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

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

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

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

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

Details

1634 1634 

1635より小さな会話ではなく、より大きなウィンドウが必要な場合、Fable モデル、Sonnet 5 以降、Opus 4.6 以降、および Sonnet 4.6 は 100 万トークンのコンテキストウィンドウをサポートしています。プランごとの利用可能性と `[1m]` モデルバリアントの選択方法については、[拡張コンテキスト](/docs/ja/model-config#extended-context)を参照してください。コンパクションはより大きな制限でも同じ方法で機能します。1635より小さな会話ではなく、より大きなウィンドウが必要な場合、Fable モデル、Sonnet 5 以降、Opus 4.6 以降、および Sonnet 4.6 は 100 万トークンのコンテキストウィンドウをサポートしています。プランごとの利用可能性と `[1m]` モデルバリアントの選択方法については、[拡張コンテキスト](/docs/ja/model-config#extended-context)を参照してください。コンパクションはより大きな制限でも同じ方法で機能します。

1636 1636 

1637Sonnet 5.5 と Sonnet 5 は 1M コンテキストウィンドウで実行され、選択する `[1m]` バリアントはありません。その自動コンパクションのしきい値と LLM ゲートウェイの例外については、[Sonnet 5.5 と Sonnet 5 コンテキストウィンドウ](/docs/ja/model-config#sonnet-5-5-and-sonnet-5-context-window)を参照してください。1637Sonnet 5.5 と Sonnet 5 は 1M コンテキストウィンドウで実行され、選択する `[1m]` バリアントはありません。その自動コンパクションのしきい値については、[Sonnet 5.5 と Sonnet 5 コンテキストウィンドウ](/docs/ja/model-config#sonnet-5-5-and-sonnet-5-context-window)を参照してください。また、[ゲートウェイの背後にあるコンテキストウィンドウ](/docs/ja/model-config#context-window-behind-a-gateway)で、`ANTHROPIC_BASE_URL` を[LLM ゲートウェイ](/docs/ja/llm-gateway)に設定したときに Claude Code がウィンドウをどのようにサイズ設定するかについて参照してください。

1638 1638 

1639自動コンパクションが実行される時点は、あなたのモデルと設定によって異なります。モデルごとの境界については[デフォルト自動コンパクトしきい値](/docs/ja/model-config#default-auto-compact-thresholds)を参照してください。Claude Code があなたのモデル ID([LLM ゲートウェイ](/docs/ja/llm-gateway)エイリアスなど)に対して間違ったウィンドウを想定している場合は、[ゲートウェイまたはカスタムモデル ID のウィンドウを修正](/docs/ja/model-config#correct-the-window-for-a-gateway-or-custom-model-id)を参照してください。1639自動コンパクションが実行される時点は、あなたのモデルと設定によって異なります。モデルごとの境界については[デフォルト自動コンパクトしきい値](/docs/ja/model-config#default-auto-compact-thresholds)を参照してください。Claude Code があなたのモデル ID([LLM ゲートウェイ](/docs/ja/llm-gateway)エイリアスなど)に対して間違ったウィンドウを想定している場合は、[ゲートウェイまたはカスタムモデル ID のウィンドウを修正](/docs/ja/model-config#correct-the-window-for-a-gateway-or-custom-model-id)を参照してください。

1640 1640 

costs.md +1 −2

Details

51 51 

52行のミス、予想される再構築、およびウォーム状態またはコールド状態の部分は以下を意味します。52行のミス、予想される再構築、およびウォーム状態またはコールド状態の部分は以下を意味します。

53 53 

54* **ミス**: キャッシュが既に保持していたコンテンツを再処理したリクエスト。最後のミスの時刻と、それらのリクエストがキャッシュに書き戻したトークン数が表示されます。Claude Code は、リクエストがキャッシュから読み取ることができた内容の 5% 以上かつ最低 2,000 トークン以上を再処理した場合、そのリクエストをミスとしてカウントします。[キャッシュを無効化するアクション](/docs/ja/prompt-caching#actions-that-invalidate-the-cache) は通常の原因をリストしています。54* **ミス**: キャッシュが既に保持していたコンテンツを再処理したリクエスト。最後のミスの時刻と、それらのリクエストがキャッシュに書き戻したトークン数が表示されます。[キャッシュを無効化するアクション](/docs/ja/prompt-caching#actions-that-invalidate-the-cache) は通常の原因をリストしています。Claude Code が最後のミスの可能性のある原因を特定できる場合、行はそれも名前を付けます。例えば `likely cause: tool definitions changed` のようにです。可能性のある原因テキストには Claude Code v2.1.260 以降が必要です。

55 Claude Code が最後のミスの可能性のある原因を特定できる場合、行はそれも名前を付けます。例えば `likely cause: tool definitions changed` のようにです。可能性のある原因テキストには Claude Code v2.1.260 以降が必要です。

56* **予想される再構築**: Claude Code が会話を再度書き直した場合。[圧縮](/docs/ja/prompt-caching#compacting-the-conversation) またはコンテキストから古いツール結果をクリアすることで、同じ種類のミスを予想される再構築としてカウントします。この部分は、少なくとも 1 つの予想される再構築が発生した後にのみ表示されます。55* **予想される再構築**: Claude Code が会話を再度書き直した場合。[圧縮](/docs/ja/prompt-caching#compacting-the-conversation) またはコンテキストから古いツール結果をクリアすることで、同じ種類のミスを予想される再構築としてカウントします。この部分は、少なくとも 1 つの予想される再構築が発生した後にのみ表示されます。

57* **ウォーム状態またはコールド状態**: キャッシュされたプレフィックスが [キャッシュ有効期間](/docs/ja/prompt-caching#cache-lifetime) 内にあるかどうか。有効な TTL が表示されます。キャッシュがコールド状態の場合、行はセッションがアイドル状態だった期間を表示します。API がキャッシュトークンを報告していない場合、行は代わりに `no prompt caching reported by the API` で終わります。56* **ウォーム状態またはコールド状態**: キャッシュされたプレフィックスが [キャッシュ有効期間](/docs/ja/prompt-caching#cache-lifetime) 内にあるかどうか。有効な TTL が表示されます。キャッシュがコールド状態の場合、行はセッションがアイドル状態だった期間を表示します。API がキャッシュトークンを報告していない場合、行は代わりに `no prompt caching reported by the API` で終わります。

58 57 

desktop.md +8 −0

Details

967 967 

968CLI セッションを Desktop に移動するには、ターミナルで `/desktop` を実行します。Claude はセッションを保存し、デスクトップアプリで開いてから CLI を終了します。このコマンドは、Claude サブスクリプションでサインインしている場合、macOS と x64 Windows で利用可能です。API キー認証、Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では利用できません。968CLI セッションを Desktop に移動するには、ターミナルで `/desktop` を実行します。Claude はセッションを保存し、デスクトップアプリで開いてから CLI を終了します。このコマンドは、Claude サブスクリプションでサインインしている場合、macOS と x64 Windows で利用可能です。API キー認証、Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では利用できません。

969 969 

970シェルから、[`claude --desktop`](/docs/ja/cli-reference#cli-flags) は Desktop を直接開き、ターミナルセッションを開始しません。Claude Code v2.1.285 以降が必要で、`/desktop` と同じプラットフォームおよびサインイン要件があります。他の引数がない場合、現在のディレクトリで Desktop を開きます。既存の CLI セッションを Desktop で開くには、このディレクトリの最新の会話に対して `--continue` を追加するか、`/status` が表示するセッション ID で `--resume` を追加します:

971 

972```bash theme={null}

973claude --desktop --resume <session-id>

974```

975 

976Claude Code は `Opening session <session-id> in Claude Desktop` を出力し、セッションはアプリで開き、コマンドは終了します。セッション名は ID の代わりに機能しません。Claude Code は別のターミナルで開いているセッションや、バックグラウンドで実行中のセッションを移動しません。Claude Desktop がインストールされていない場合、コマンドはダウンロードリンクを出力して終了します。

977 

970Desktop 内から CLI セッションを再開することもできます。`/resume` を使用します。このコマンドはローカルセッションで利用可能で、SSH、WSL、またはクラウドセッションでは利用できません。978Desktop 内から CLI セッションを再開することもできます。`/resume` を使用します。このコマンドはローカルセッションで利用可能で、SSH、WSL、またはクラウドセッションでは利用できません。

971 979 

972Desktop でターミナルセッションを続行するには:980Desktop でターミナルセッションを続行するには:

desktop-linux.md +12 −0

Details

163 163 

164`claude-desktop` がこのメッセージで終了する場合、root として起動しました。通常のユーザーとしてログインして、そこから起動してください。164`claude-desktop` がこのメッセージで終了する場合、root として起動しました。通常のユーザーとしてログインして、そこから起動してください。

165 165 

166<h3 id="your-sign-in-won’t-be-saved-on-this-device">

167 このデバイスではサインインが保存されません

168</h3>

169 

170Claude Desktop はサインインをデスクトップのキーリング(GNOME Keyring や KDE Wallet など)に保存します。ロック解除されたキーリングに到達できない場合、サインインは保存されず、アプリを起動するたびに再度サインインします。システムに一致するケースを選択してください。

171 

172* **キーリングがインストールされていない(KDE Plasma 以外のデスクトップ)**:`--no-install-recommends` でインストールした場合、または推奨パッケージをスキップする最小イメージの場合、apt はキーリングをインストールしませんでした。`sudo apt install gnome-keyring` で GNOME Keyring をインストールしてください。

173* **KDE Plasma に GNOME Keyring もインストールされている**:KDE Wallet は Plasma デスクトップに付属しています。2 つのキーリングが競合し、Claude Desktop は KDE Wallet が機能していても、このお知らせを表示することがあります。`sudo apt remove gnome-keyring` で余分なものを削除してから、コンピュータを再起動してください。

174* **キーリングがインストールされているがロックされている**:ロック解除してください。

175 

176修正後、アプリを再起動してサインインしてください。その後、アプリを終了して再度起動し、サインインしたままアプリが開くことを確認してください。

177 

166<h3 id="cowork-isn’t-available">178<h3 id="cowork-isn’t-available">

167 Cowork が利用できない179 Cowork が利用できない

168</h3>180</h3>

env-vars.md +8 −6

Details

56 </Tab>56 </Tab>

57</Tabs>57</Tabs>

58 58 

59代入行は成功時に何も出力しないため、`claude` を実行する前に同じシェルで変数を出力して確認します。59代入行は成功時に何も出力しないため、同じシェルで変数を出力して確認します。

60 60 

61<Tabs>61<Tabs>

62 <Tab title="macOS、Linux、WSL">62 <Tab title="macOS、Linux、WSL">


127タイムアウト、トークン予算、再試行回数などの数値変数は、変数の行に「プレーンな数字のみ」と記載されている場合を除き、プレーンな数字に加えて科学記法と数字区切り記法を受け入れます。例えば、Claude Code は `2e3` を 2000 として、`64_000` を 64000 として読み込みます。v2.1.211 より前は、これらの記法により、`1e6` がタイムアウトを 1 に設定するなど、はるかに小さい値が静かに設定される可能性がありました。127タイムアウト、トークン予算、再試行回数などの数値変数は、変数の行に「プレーンな数字のみ」と記載されている場合を除き、プレーンな数字に加えて科学記法と数字区切り記法を受け入れます。例えば、Claude Code は `2e3` を 2000 として、`64_000` を 64000 として読み込みます。v2.1.211 より前は、これらの記法により、`1e6` がタイムアウトを 1 に設定するなど、はるかに小さい値が静かに設定される可能性がありました。

128 128 

129<Note>129<Note>

130 動作をオン/オフにする変数の場合、`1` または `true` を設定してオンにし、`0` または `false` を設定してオフにします。大文字小文字は問いません。130 動作をオン/オフにする変数の場合、`1`、`true`、`yes`、または `on` を設定してオンにし、`0`、`false`、`no`、または `off` を設定してオフにします。大文字小文字は問いません。

131 131 

132 一部の変数は、設定されているかどうかのみを読み取るため、`0` を含む空でない値はすべて動作をオンにし、変数を設定解除するか空の値に設定することで動作をオフにします。これらの変数は次のように機能します:132 一部の変数は、設定されているかどうかのみを読み取るため、`0` を含む空でない値はすべて動作をオンにし、変数を設定解除するか空の値に設定することで動作をオフにします。これらの変数は次のように機能します:

133 133 


192| `API_FORCE_IDLE_TIMEOUT` | ストリーミングモデル応答がバイトを受け取らないときに中止する 5 分間のボディアイドルタイムアウトをオーバーライドします。`0` に設定してタイムアウトをオフにします。例えば、遅い [ゲートウェイ](/docs/ja/llm-gateway) またはローカルモデルがチャンク間で 5 分以上一時停止する場合、または `1` に設定してすべてのプロバイダーに対してオンに保ちます。設定されていない場合、タイムアウトは直接 Anthropic API、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、および `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` が設定された Amazon Bedrock 以外のプロバイダーでアクティブです。[ストリーム監視犬](/docs/ja/network-config#streaming-idle-watchdogs) は独立して実行され、ここで `0` を設定した場合でも長い無音の一時停止を中止します |192| `API_FORCE_IDLE_TIMEOUT` | ストリーミングモデル応答がバイトを受け取らないときに中止する 5 分間のボディアイドルタイムアウトをオーバーライドします。`0` に設定してタイムアウトをオフにします。例えば、遅い [ゲートウェイ](/docs/ja/llm-gateway) またはローカルモデルがチャンク間で 5 分以上一時停止する場合、または `1` に設定してすべてのプロバイダーに対してオンに保ちます。設定されていない場合、タイムアウトは直接 Anthropic API、[Claude Platform on AWS](/docs/ja/claude-platform-on-aws)、および `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` が設定された Amazon Bedrock 以外のプロバイダーでアクティブです。[ストリーム監視犬](/docs/ja/network-config#streaming-idle-watchdogs) は独立して実行され、ここで `0` を設定した場合でも長い無音の一時停止を中止します |

193| `API_TIMEOUT_MS` | API リクエストのタイムアウト(ミリ秒単位)(デフォルト:600000、または 10 分;最大:2147483647)。遅いネットワークでリクエストがタイムアウトする場合、またはプロキシを通じてルーティングする場合は増加させます。最大値を超える値は基盤となるタイマーをオーバーフローさせ、リクエストが直ちに失敗します |193| `API_TIMEOUT_MS` | API リクエストのタイムアウト(ミリ秒単位)(デフォルト:600000、または 10 分;最大:2147483647)。遅いネットワークでリクエストがタイムアウトする場合、またはプロキシを通じてルーティングする場合は増加させます。最大値を超える値は基盤となるタイマーをオーバーフローさせ、リクエストが直ちに失敗します |

194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock 認証用の API キー([Amazon Bedrock API キー](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) を参照) |194| `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock 認証用の API キー([Amazon Bedrock API キー](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) を参照) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Bash または PowerShell ツールコマンドのデフォルトタイムアウト(ミリ秒単位)(デフォルト:120000、または 2 分)。30 分より長いデフォルトは、バックグラウンドコマンドの [デフォルト時間制限](/docs/ja/tools-reference#background-commands) にもなります。バックグラウンド時間制限には Claude Code v2.1.285 以降が必要です |195| `BASH_DEFAULT_TIMEOUT_MS` | Bash または PowerShell ツールコマンドのデフォルトタイムアウト(ミリ秒単位)(デフォルト:120000、または 2 分)。30 分より長いデフォルトは、バックグラウンドコマンドの [デフォルト時間制限](/docs/ja/tools-reference#time-limit-for-background-commands) にもなります。バックグラウンド時間制限には Claude Code v2.1.285 以降が必要です |

196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code がコマンドの結果に読み込む bash 出力の最大文字数(デフォルト:30000;最大:150000)。[`bashOutputMaxChars`](/docs/ja/settings-reference#bashoutputmaxchars) 設定を設定した場合、Claude Code はこの変数を無視します。[出力制限](/docs/ja/tools-reference#output-limits) を参照してください |196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code がコマンドの結果に読み込む bash 出力の最大文字数(デフォルト:30000;最大:150000)。[`bashOutputMaxChars`](/docs/ja/settings-reference#bashoutputmaxchars) 設定を設定した場合、Claude Code はこの変数を無視します。[出力制限](/docs/ja/tools-reference#output-limits) を参照してください |

197| `BASH_MAX_TIMEOUT_MS` | モデルが Bash または PowerShell ツールコマンドに設定できる最大タイムアウト(ミリ秒単位)(デフォルト:600000、または 10 分)。有効な上限は、これと `BASH_DEFAULT_TIMEOUT_MS` の大きい方です。有効な上限が 2 時間より長い場合、バックグラウンドコマンドの [最大時間制限](/docs/ja/tools-reference#background-commands) にもなります。バックグラウンド時間制限には Claude Code v2.1.285 以降が必要です |197| `BASH_MAX_TIMEOUT_MS` | モデルが Bash または PowerShell ツールコマンドに設定できる最大タイムアウト(ミリ秒単位)(デフォルト:600000、または 10 分)。有効な上限は、これと `BASH_DEFAULT_TIMEOUT_MS` の大きい方です。有効な上限が 2 時間より長い場合、バックグラウンドコマンドの [最大時間制限](/docs/ja/tools-reference#time-limit-for-background-commands) にもなります。バックグラウンド時間制限には Claude Code v2.1.285 以降が必要です |

198| `BETA_TRACING_ENDPOINT` | [詳細ベータトレーシング](/docs/ja/monitoring-usage#traces-beta) の OTLP エンドポイント:`ENABLE_BETA_TRACING_DETAILED=1` を使用すると、ログとトレースは設定されたエクスポーターではなくそこに送信されます。シェル、ユーザー設定、または管理設定で設定します。[プロジェクトおよびローカル設定](/docs/ja/settings-reference#variables-claude-code-ignores-in-env) では無視されます |198| `BETA_TRACING_ENDPOINT` | [詳細ベータトレーシング](/docs/ja/monitoring-usage#traces-beta) の OTLP エンドポイント:`ENABLE_BETA_TRACING_DETAILED=1` を使用すると、ログとトレースは設定されたエクスポーターではなくそこに送信されます。シェル、ユーザー設定、または管理設定で設定します。[プロジェクトおよびローカル設定](/docs/ja/settings-reference#variables-claude-code-ignores-in-env) では無視されます |

199| `CCR_FORCE_BUNDLE` | [`claude --cloud`](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github) がリモートから複製する代わりにローカルリポジトリをバンドルしてアップロードするように強制するには `1` に設定します |199| `CCR_FORCE_BUNDLE` | [`claude --cloud`](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github) がリモートから複製する代わりにローカルリポジトリをバンドルしてアップロードするように強制するには `1` に設定します |

200| `CLAUDECODE` | Claude Code が生成するサブプロセス(Bash および PowerShell ツール、tmux セッション、[フック](/docs/ja/hooks) コマンド、[ステータスライン](/docs/ja/statusline) コマンド、stdio [MCP サーバー](/docs/ja/mcp) サブプロセス)で `1` に設定されます。IDE 拡張機能は統合ターミナルでもこれを設定します。Claude Code が生成したサブプロセス内でスクリプトが実行されているかどうかを検出するために使用します。Claude Code が開始した stdio MCP サーバー内ではなく、ツール呼び出しまたはフックによって直接生成されたプロセスであるかどうかを確認するには、代わりに `CLAUDE_CODE_CHILD_SESSION` を使用します |200| `CLAUDECODE` | Claude Code が生成するサブプロセス(Bash および PowerShell ツール、tmux セッション、[フック](/docs/ja/hooks) コマンド、[ステータスライン](/docs/ja/statusline) コマンド、stdio [MCP サーバー](/docs/ja/mcp) サブプロセス)で `1` に設定されます。IDE 拡張機能は統合ターミナルでもこれを設定します。Claude Code が生成したサブプロセス内でスクリプトが実行されているかどうかを検出するために使用します。Claude Code が開始した stdio MCP サーバー内ではなく、ツール呼び出しまたはフックによって直接生成されたプロセスであるかどうかを確認するには、代わりに `CLAUDE_CODE_CHILD_SESSION` を使用します |


203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | すべての組み込み [サブエージェント](/docs/ja/sub-agents) タイプ(Explore や Plan など)を無効にするには `1` に設定します。非対話モード(`-p` フラグ)にのみ適用されます。SDK ユーザーが白紙の状態を望む場合に便利です。これにより、エージェントツール呼び出しが `subagent_type` を省略した場合に Claude Code が実行する `general-purpose` も削除されます。そのような呼び出しは [`subagent_type is required`](/docs/ja/errors#subagent-type-is-required) で失敗します |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | すべての組み込み [サブエージェント](/docs/ja/sub-agents) タイプ(Explore や Plan など)を無効にするには `1` に設定します。非対話モード(`-p` フラグ)にのみ適用されます。SDK ユーザーが白紙の状態を望む場合に便利です。これにより、エージェントツール呼び出しが `subagent_type` を省略した場合に Claude Code が実行する `general-purpose` も削除されます。そのような呼び出しは [`subagent_type is required`](/docs/ja/errors#subagent-type-is-required) で失敗します |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | SDK で作成された MCP サーバーからのツール名の `mcp__<server>__` プレフィックスをスキップするには `1` に設定します。ツールは元の名前を使用します。SDK 使用のみ |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | SDK で作成された MCP サーバーからのツール名の `mcp__<server>__` プレフィックスをスキップするには `1` に設定します。ツールは元の名前を使用します。SDK 使用のみ |

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#what-your-screen-reader-hears) では、カーソルが行の開始位置にある状態で、Claude Code が新しい行または変更された行を書き込む前に待機するミリ秒数。デフォルト `50`。`0` に設定して直ちに書き込みます。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 以降が必要です |


263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | ファイル [チェックポイント](/docs/ja/checkpointing) を無効にするには `1` に設定します。`/rewind` コマンドはコード変更を復元できません。[`fileCheckpointingEnabled`](/docs/ja/settings-reference#filecheckpointingenabled) 設定をオーバーライドします |263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | ファイル [チェックポイント](/docs/ja/checkpointing) を無効にするには `1` に設定します。`/rewind` コマンドはコード変更を復元できません。[`fileCheckpointingEnabled`](/docs/ja/settings-reference#filecheckpointingenabled) 設定をオーバーライドします |

264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 組み込みコミットおよび PR ワークフロー指示と git ステータススナップショットを Claude のコンテキストから削除するには `1` に設定します。独自の git ワークフロースキルを使用する場合に便利です。設定されている場合、[`includeGitInstructions`](/docs/ja/settings-reference#includegitinstructions) 設定より優先されます |264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 組み込みコミットおよび PR ワークフロー指示と git ステータススナップショットを Claude のコンテキストから削除するには `1` に設定します。独自の git ワークフロースキルを使用する場合に便利です。設定されている場合、[`includeGitInstructions`](/docs/ja/settings-reference#includegitinstructions) 設定より優先されます |

265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API で Opus 4.0 および 4.1 を現在の Opus バージョンに自動的にリマップするのを防ぐには `1` に設定します。古いモデルを意図的にピン留めしたい場合に使用します。リマップは Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では実行されません |265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API で Opus 4.0 および 4.1 を現在の Opus バージョンに自動的にリマップするのを防ぐには `1` に設定します。古いモデルを意図的にピン留めしたい場合に使用します。リマップは Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では実行されません |

266| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | [Amazon Bedrock](/docs/ja/amazon-bedrock#when-a-model-is-disabled-mid-session) および [Google Cloud の Agent Platform](/docs/ja/google-vertex-ai#when-a-model-is-disabled-mid-session) で Claude Code がセッション中にアカウントがモデルへのアクセスを失ったときに古いモデルに切り替わるのを停止するには `1` に設定します。拒否されたリクエストは直ちに失敗します。設定した [フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains) はその拒否で切り替わり、[スタートアップモデルチェック](/docs/ja/amazon-bedrock#startup-model-checks) は引き続き起動時に切り替わります。Claude Code v2.1.285 以降が必要です |

266| `CLAUDE_CODE_DISABLE_MOUSE` | [フルスクリーンレンダリング](/docs/ja/fullscreen) でマウストラッキングを無効にするには `1` に設定します。`PgUp` および `PgDn` を使用したキーボードスクロールは引き続き機能します。ターミナルのネイティブコピーオンセレクト動作を保持するために使用します |267| `CLAUDE_CODE_DISABLE_MOUSE` | [フルスクリーンレンダリング](/docs/ja/fullscreen) でマウストラッキングを無効にするには `1` に設定します。`PgUp` および `PgDn` を使用したキーボードスクロールは引き続き機能します。ターミナルのネイティブコピーオンセレクト動作を保持するために使用します |

267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | [フルスクリーンレンダリング](/docs/ja/fullscreen) でマウスホイールスクロールを保持しながら、クリック、ドラッグ、ホバー処理を無効にするには `1` に設定します。ホイールスクロールが Claude Code 内で機能するが、クリックがカーソルを配置したり、ツール出力を展開したり、リンクを開いたりしないようにしたい場合に使用します。両方が設定されている場合、`CLAUDE_CODE_DISABLE_MOUSE` が優先されます。Claude Code v2.1.195 以降が必要です |268| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | [フルスクリーンレンダリング](/docs/ja/fullscreen) でマウスホイールスクロールを保持しながら、クリック、ドラッグ、ホバー処理を無効にするには `1` に設定します。ホイールスクロールが Claude Code 内で機能するが、クリックがカーソルを配置したり、ツール出力を展開したり、リンクを開いたりしないようにしたい場合に使用します。両方が設定されている場合、`CLAUDE_CODE_DISABLE_MOUSE` が優先されます。Claude Code v2.1.195 以降が必要です |

268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 接続リセットや TLS ハンドシェイクエラーなどの接続レベルエラーで API リクエストが失敗した場合、Claude Code が [mTLS クライアント証明書とキー](/docs/ja/network-config#mtls-authentication) を再読み込みするのを停止するには `1` に設定します。リロードが無効な場合、Claude Code は回転されたファイルを次に設定を適用するか、次のスタートアップ時にのみ読み込みます。Claude Code v2.1.232 以降が必要です |269| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 接続リセットや TLS ハンドシェイクエラーなどの接続レベルエラーで API リクエストが失敗した場合、Claude Code が [mTLS クライアント証明書とキー](/docs/ja/network-config#mtls-authentication) を再読み込みするのを停止するには `1` に設定します。リロードが無効な場合、Claude Code は回転されたファイルを次に設定を適用するか、次のスタートアップ時にのみ読み込みます。Claude Code v2.1.232 以降が必要です |


366| `CLAUDE_CODE_RETRY_WATCHDOG` | eval ハーネス、CI ジョブ、リモートワーカーなどの無人セッション用に `1` に設定します。`CLAUDE_CODE_MAX_RETRIES` 試行後に失敗する代わりに、`429` および `529` 容量エラーを無期限に再試行します。Claude Code は、標準速度リクエストが支出制限またはクレジット使用済みを報告する `429` を取得すると直ちに失敗します。[ゲートウェイ支出キャップ](/docs/ja/errors#spend-limit-reached) からリセットされるもの。v2.1.239 より前は、監視犬はこれらを無期限に再試行していました。高速モードリクエストについては、[レート制限を処理](/docs/ja/fast-mode#handle-rate-limits) を参照してください。監視犬は試行間で最大 5 分バックオフするか、応答がレート制限リセット時間を報告する場合はリセットまで待機するため、使用制限に達したセッションは残りのウィンドウを待ちます。v2.1.199 以降では、サーバーエラー、タイムアウト、ドロップされた接続などの他の一時的なエラーのデフォルト再試行回数も上げられます。約 3 時間のバックオフに対して 300 に、`CLAUDE_CODE_MAX_RETRIES` を明示的に設定した場合、15 のキャップを削除します。Claude Code v2.1.186 以降が必要です |367| `CLAUDE_CODE_RETRY_WATCHDOG` | eval ハーネス、CI ジョブ、リモートワーカーなどの無人セッション用に `1` に設定します。`CLAUDE_CODE_MAX_RETRIES` 試行後に失敗する代わりに、`429` および `529` 容量エラーを無期限に再試行します。Claude Code は、標準速度リクエストが支出制限またはクレジット使用済みを報告する `429` を取得すると直ちに失敗します。[ゲートウェイ支出キャップ](/docs/ja/errors#spend-limit-reached) からリセットされるもの。v2.1.239 より前は、監視犬はこれらを無期限に再試行していました。高速モードリクエストについては、[レート制限を処理](/docs/ja/fast-mode#handle-rate-limits) を参照してください。監視犬は試行間で最大 5 分バックオフするか、応答がレート制限リセット時間を報告する場合はリセットまで待機するため、使用制限に達したセッションは残りのウィンドウを待ちます。v2.1.199 以降では、サーバーエラー、タイムアウト、ドロップされた接続などの他の一時的なエラーのデフォルト再試行回数も上げられます。約 3 時間のバックオフに対して 300 に、`CLAUDE_CODE_MAX_RETRIES` を明示的に設定した場合、15 のキャップを削除します。Claude Code v2.1.186 以降が必要です |

367| `CLAUDE_CODE_SAFE_MODE` | セーフモードで開始するには `1` に設定します:CLAUDE.md、スキル、プラグイン、フック、MCP サーバー、カスタムコマンドとエージェント、出力スタイル、ワークフロー、カスタムテーマ、カスタムキーバインディング、ステータスラインおよびファイル提案コマンド、LSP サーバー、自動メモリは読み込まれません。設定の破損をトラブルシューティングするため。管理設定ポリシーは引き続き適用されます。ポリシー設定フック、ステータスライン、ファイル提案コマンドを含む。管理プラグイン、管理スキル、管理 CLAUDE.md、ポリシー設定 MCP サーバーは読み込まれません。[`--safe-mode`](/docs/ja/cli-reference#cli-flags) を渡すことと同等です。直接生成された子プロセスは変数を継承します |368| `CLAUDE_CODE_SAFE_MODE` | セーフモードで開始するには `1` に設定します:CLAUDE.md、スキル、プラグイン、フック、MCP サーバー、カスタムコマンドとエージェント、出力スタイル、ワークフロー、カスタムテーマ、カスタムキーバインディング、ステータスラインおよびファイル提案コマンド、LSP サーバー、自動メモリは読み込まれません。設定の破損をトラブルシューティングするため。管理設定ポリシーは引き続き適用されます。ポリシー設定フック、ステータスライン、ファイル提案コマンドを含む。管理プラグイン、管理スキル、管理 CLAUDE.md、ポリシー設定 MCP サーバーは読み込まれません。[`--safe-mode`](/docs/ja/cli-reference#cli-flags) を渡すことと同等です。直接生成された子プロセスは変数を継承します |

368| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` が設定されている場合、セッションごとに特定のスクリプトを呼び出すことができる回数を制限する JSON オブジェクト。キーはコマンドテキストに対して一致するサブストリングです。値は整数呼び出し制限です。例えば、`{"deploy.sh": 2}` は `deploy.sh` を最大 2 回呼び出すことを許可します。マッチングはサブストリングベースであるため、`./scripts/deploy.sh $(evil)` などのシェル展開トリックはキャップに対してカウントされます。`xargs` または `find -exec` を通じたランタイムファンアウトは検出されません。これは多層防御コントロールです |369| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` が設定されている場合、セッションごとに特定のスクリプトを呼び出すことができる回数を制限する JSON オブジェクト。キーはコマンドテキストに対して一致するサブストリングです。値は整数呼び出し制限です。例えば、`{"deploy.sh": 2}` は `deploy.sh` を最大 2 回呼び出すことを許可します。マッチングはサブストリングベースであるため、`./scripts/deploy.sh $(evil)` などのシェル展開トリックはキャップに対してカウントされます。`xargs` または `find -exec` を通じたランタイムファンアウトは検出されません。これは多層防御コントロールです |

369| `CLAUDE_CODE_SCROLL_SPEED` | [フルスクリーンレンダリング](/docs/ja/fullscreen#mouse-wheel-scrolling) でマウスホイールスクロール乗数を設定します。最大 20 までの正の値を受け入れます。`0.5` などの 1 未満の小数値を含めて、加速トラックパッドおよびホイールスクロールを遅くします。ターミナルが既に増幅されたホイールイベントを送信します。ターミナルが増幅なしで 1 ホイールイベントを送信する場合は `3` に設定して `vim` と一致させます。JetBrains IDE ターミナルでは無視されます。Claude Code は独自のスクロール処理を使用します |370| `CLAUDE_CODE_SCROLL_SPEED` | [フルスクリーンレンダリング](/docs/ja/fullscreen#mouse-wheel-scrolling) でマウスホイールスクロール乗数を設定します。最大 20 までの正の値を受け入れます。`0.5` などの 1 未満の小数値を含めて、加速トラックパッドおよびホイールスクロールを遅くします。ターミナルが増幅なしで 1 ホイールイベントを送信する場合は `3` に設定して `vim` と一致させます。JetBrains IDE ターミナルでは無視されます。Claude Code は独自のスクロール処理を使用します |

370| `CLAUDE_CODE_SEND_FEEDBACK` | セッションの [Claude が作成したフィードバック](/docs/ja/tools-reference#sendfeedback-tool-behavior) をオフにするには `0` に設定します。アカウントが既にアクセス権を持つ場所でオンにするには `1` に設定します。変数はアクセス権を付与できず、`DISABLE_FEEDBACK_COMMAND` および [`feedbackDrafts`](/docs/ja/settings-reference#feedbackdrafts) 設定の `off` 値などのフィードバックをオフにする他のスイッチは引き続き適用されます |371| `CLAUDE_CODE_SEND_FEEDBACK` | セッションの [Claude が作成したフィードバック](/docs/ja/tools-reference#sendfeedback-tool-behavior) をオフにするには `0` に設定します。アカウントが既にアクセス権を持つ場所でオンにするには `1` に設定します。変数はアクセス権を付与できず、`DISABLE_FEEDBACK_COMMAND` および [`feedbackDrafts`](/docs/ja/settings-reference#feedbackdrafts) 設定の `off` 値などのフィードバックをオフにする他のスイッチは引き続き適用されます |

371| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/docs/ja/hooks#sessionend) フックの時間予算をオーバーライドします(ミリ秒単位)。値は、独自の `timeout` を設定しないフックのタイムアウトでもあります。セッション終了、`/clear`、および対話的 `/resume` を通じたセッション切り替えに適用されます。デフォルトでは予算は 1.5 秒で、設定ファイルで設定された最高のフックごとの `timeout` に自動的に上げられます。最大 60 秒。プラグイン提供フックのタイムアウトは予算を上げません |372| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/docs/ja/hooks#sessionend) フックの時間予算をオーバーライドします(ミリ秒単位)。値は、独自の `timeout` を設定しないフックのタイムアウトでもあります。セッション終了、`/clear`、および対話的 `/resume` を通じたセッション切り替えに適用されます。デフォルトでは予算は 1.5 秒で、設定ファイルで設定された最高のフックごとの `timeout` に自動的に上げられます。最大 60 秒。プラグイン提供フックのタイムアウトは予算を上げません |

372| `CLAUDE_CODE_SESSION_ID` | Bash および PowerShell ツールサブプロセス、[フックコマンド](/docs/ja/hooks) サブプロセス、および stdio [MCP サーバー](/docs/ja/mcp) サブプロセスで現在のセッション ID に自動的に設定されます。Bash、PowerShell、フックの場合、これはフック JSON 入力の `session_id` フィールドと一致し、`/clear` で更新されます。MCP サーバーサブプロセスは、生成されたときに受け取った ID を保持します。`--resume <session-id>` では、再開された ID を受け取ります。`--continue` または明示的な ID なしで `--resume` では、初期スタートアップ ID を代わりに受け取る可能性があります。スクリプトと外部ツールを Claude Code セッションと相関させるために使用します |373| `CLAUDE_CODE_SESSION_ID` | Bash および PowerShell ツールサブプロセス、[フックコマンド](/docs/ja/hooks) サブプロセス、および stdio [MCP サーバー](/docs/ja/mcp) サブプロセスで現在のセッション ID に自動的に設定されます。Bash、PowerShell、フックの場合、これはフック JSON 入力の `session_id` フィールドと一致し、`/clear` で更新されます。MCP サーバーサブプロセスは、生成されたときに受け取った ID を保持します。`--resume <session-id>` では、再開された ID を受け取ります。`--continue` または明示的な ID なしで `--resume` では、初期スタートアップ ID を代わりに受け取る可能性があります。スクリプトと外部ツールを Claude Code セッションと相関させるために使用します |


381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | クライアント側 [高速モード](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性チェックをスキップするには `1` に設定します。プロキシがチェックのリクエストを拒否するのではなく傍受する場合。API は、組織が高速モードを無効にしている場合、高速モードリクエストを引き続き拒否します |382| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | クライアント側 [高速モード](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性チェックをスキップするには `1` に設定します。プロキシがチェックのリクエストを拒否するのではなく傍受する場合。API は、組織が高速モードを無効にしている場合、高速モードリクエストを引き続き拒否します |

382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Microsoft Foundry の Azure 認証をスキップします。プロキシまたはゲートウェイが独自の `Authorization` ヘッダーを挿入する場合。Claude Code は Azure 認証情報なしでリクエストを送信し、例えば `ANTHROPIC_CUSTOM_HEADERS` を通じて提供する `Authorization` ヘッダーを保持します。`ANTHROPIC_FOUNDRY_API_KEY` または `ANTHROPIC_FOUNDRY_AUTH_TOKEN` が設定されている場合は無視されます。v2.1.203 より前は、この変数は API キーも設定されていない限り、Microsoft Foundry クライアントがリクエストを送信できないままにしました |383| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Microsoft Foundry の Azure 認証をスキップします。プロキシまたはゲートウェイが独自の `Authorization` ヘッダーを挿入する場合。Claude Code は Azure 認証情報なしでリクエストを送信し、例えば `ANTHROPIC_CUSTOM_HEADERS` を通じて提供する `Authorization` ヘッダーを保持します。`ANTHROPIC_FOUNDRY_API_KEY` または `ANTHROPIC_FOUNDRY_AUTH_TOKEN` が設定されている場合は無視されます。v2.1.203 より前は、この変数は API キーも設定されていない限り、Microsoft Foundry クライアントがリクエストを送信できないままにしました |

383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle の AWS 認証をスキップします(例えば、LLM ゲートウェイを使用する場合) |384| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle の AWS 認証をスキップします(例えば、LLM ゲートウェイを使用する場合) |

385| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [スタートアップモデルチェック](/docs/ja/amazon-bedrock#startup-model-checks) が [Amazon Bedrock](/docs/ja/amazon-bedrock) および [Google Cloud の Agent Platform](/docs/ja/google-vertex-ai) でこのマシンで見つかったモデルをアカウントが呼び出せないことを記憶するのを停止するには `1` に設定します。最大 1 日間。Claude Code v2.1.285 以降が必要です |

384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | プロンプト履歴とセッショントランスクリプトをディスクに書き込むのをスキップするには `1` に設定します。この変数で開始されたセッションは `--resume`、`--continue`、または上矢印履歴に表示されません。一時的なスクリプト化されたセッションに便利です |386| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | プロンプト履歴とセッショントランスクリプトをディスクに書き込むのをスキップするには `1` に設定します。この変数で開始されたセッションは `--resume`、`--continue`、または上矢印履歴に表示されません。一時的なスクリプト化されたセッションに便利です |

385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud の Agent Platform の Google 認証をスキップします(例えば、LLM ゲートウェイを使用する場合) |387| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud の Agent Platform の Google 認証をスキップします(例えば、LLM ゲートウェイを使用する場合) |

386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `--output-format stream-json` で開始されたセッションが、スタートアップ失敗の場合、[Claude Code が開始を拒否した理由を名前で示す結果メッセージ](/docs/ja/agent-sdk/typescript#startup_failure_reason) を書き込むようにするには `1` に設定します。それ以外の場合は stderr のみで終了します。Claude Code v2.1.274 以降が必要です |388| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `--output-format stream-json` で開始されたセッションが、スタートアップ失敗の場合、[Claude Code が開始を拒否した理由を名前で示す結果メッセージ](/docs/ja/agent-sdk/typescript#startup_failure_reason) を書き込むようにするには `1` に設定します。それ以外の場合は stderr のみで終了します。Claude Code v2.1.274 以降が必要です |

errors.md +147 −121

Details

322| `Transcript writes are failing (...)` | [セッション保存の警告](#transcript-writes-are-failing) |322| `Transcript writes are failing (...)` | [セッション保存の警告](#transcript-writes-are-failing) |

323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [セッション保存の警告](#transcript-saving-is-off-skip-prompt-history) |323| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [セッション保存の警告](#transcript-saving-is-off-skip-prompt-history) |

324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [セッション保存の警告](#transcript-saving-is-off-child-session-marker) |324| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [セッション保存の警告](#transcript-saving-is-off-child-session-marker) |

325| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [設定の警告](#fullscreen-failed-start-notice) |325| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [フルスクリーンレンダリング](/docs/ja/fullscreen#fullscreen-renderer-didnt-finish-starting) |

326| `Claude Code exited after an unrecoverable interface error (...)` | [設定の警告](#exited-after-an-unrecoverable-interface-error) |326| `Claude Code exited after an unrecoverable interface error (...)` | [設定の警告](#exited-after-an-unrecoverable-interface-error) |

327| `Agent descriptions are over the 15.0k-token limit` | [設定の警告](#agent-descriptions-are-over-the-15000-token-limit) |327| `Agent descriptions are over the 15.0k-token limit` | [設定の警告](#agent-descriptions-are-over-the-15000-token-limit) |

328| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [設定の警告](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |328| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [設定の警告](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |


331| `Remote managed settings failed to load (<cause>)` | [設定の警告](#remote-managed-settings-failed-to-load) |331| `Remote managed settings failed to load (<cause>)` | [設定の警告](#remote-managed-settings-failed-to-load) |

332| `Managed settings were not approved; exiting without applying them.` | [設定の警告](#managed-settings-were-not-approved) |332| `Managed settings were not approved; exiting without applying them.` | [設定の警告](#managed-settings-were-not-approved) |

333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [設定の警告](#managed-settings-block-the-default-model) |333| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [設定の警告](#managed-settings-block-the-default-model) |

334| `Your organization's managed settings allow Claude Code to use: <providers>` | [設定の警告](#managed-settings-dont-allow-this-api-provider) |

335| `Your organization's managed settings allow Claude Code to use no API provider at all` | [設定の警告](#managed-settings-dont-allow-this-api-provider) |

334| `MCP server <name> is blocked by enterprise managed policy` | [設定の警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |336| `MCP server <name> is blocked by enterprise managed policy` | [設定の警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |

335| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [設定の警告](#managed-settings-document-could-not-be-parsed) |337| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [設定の警告](#managed-settings-document-could-not-be-parsed) |

336| `Managed settings drop-in directory could not be read` | [設定の警告](#managed-settings-document-could-not-be-parsed) |338| `Managed settings drop-in directory could not be read` | [設定の警告](#managed-settings-document-could-not-be-parsed) |

339| `Unable to read managed policy settings` | [設定の警告](#unable-to-read-managed-policy-settings) |

337| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [設定の警告](#otelheadershelper-failed) |340| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [設定の警告](#otelheadershelper-failed) |

338| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [設定の警告](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |341| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [設定の警告](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

339| `headersHelper not run — this workspace has no persisted trust` | [設定の警告](#headershelper-not-run) |342| `headersHelper not run — this workspace has no persisted trust` | [設定の警告](#headershelper-not-run) |


2867 無効な --agents 設定2870 無効な --agents 設定

2868</h3>2871</h3>

2869 2872 

2870`--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 はセッションを開始し、読み込めない定義を省略していました。2873`--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 はセッションを開始していました。

2871 2874 

2872```text theme={null}2875```text theme={null}

2873Error: Invalid --agents configuration:2876Error: Invalid --agents configuration:


3117 Claude Desktop からサーバーをインポートできませんでした3120 Claude Desktop からサーバーをインポートできませんでした

3118</h3>3121</h3>

3119 3122 

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

3121 3124 

3122```text theme={null}3125```text theme={null}

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


3208"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.3211"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.

3209```3212```

3210 3213 

3211Claude Code はこれらのホストを URL で照合するため、`claude mcp add` または `.mcp.json` で追加したサーバーがそれらの 1 つを指している場合、メッセージが表示されます。

3212 

3213**対処方法:**3214**対処方法:**

3214 3215 

3215* `claude mcp remove <name>` でエントリを削除して、同じ URL の claude.ai コネクタを非表示にすることができないようにしてください。3216* `claude mcp remove <name>` でエントリを削除して、同じ URL の claude.ai コネクタを非表示にすることができないようにしてください。


3657 Claude Desktop を開くことができませんでした3658 Claude Desktop を開くことができませんでした

3658</h3>3659</h3>

3659 3660 

3660[`/desktop`](/docs/ja/desktop#coming-from-the-cli)またはそのエイリアス `/app` を実行しましたが、Claude Desktop を開くために Claude Code が使用するシステムコマンドが失敗しました。セッションはターミナルに留まります。3661[`/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 で終了します。

3662 

3663括弧内のテキストは失敗したコマンドを示し、その終了ステータスと最初の行のエラー出力(生成された場合)を示します。macOS ではそのコマンドは `open` です。この例のように。Windows では `rundll32` です。

3661 3664 

3662```text theme={null}3665```text theme={null}

3663Error: 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 run /desktop again.3666Error: 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.

3664```3667```

3665 3668 

3666**対処方法:**3669**対処方法:**

3667 3670 

3668* Claude Desktop を自分で開いてから、`/desktop` を再度実行してください。3671* Claude Desktop を自分で開いてから、`/desktop` または `claude --desktop` を再度実行してください。

3669* そのコマンドの完全なエラー出力を読むには、`/debug` でデバッグログをオンにし、`/desktop` を再度実行してから、デバッグログを確認してください。3672* 失敗したコマンドの完全なエラー出力を読むには、`/debug` でデバッグログをオンにし、`/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行してから、デバッグログを確認してください。

3670 3673 

3671v2.1.275 より前は、メッセージは `Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかを言いませんでした。3674v2.1.285 より前は、メッセージは `Open Claude Desktop and run /desktop again.` で終わりました。v2.1.275 より前は、`Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかを言いませんでした。

3672 3675 

3673<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3676<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3674 /terminal-setup は Zed キーマップを変更しませんでした3677 /terminal-setup は Zed キーマップを変更しませんでした


3749これらのエラーは、[プラグイン](/docs/ja/plugins/overview)と[マーケットプレイス](/docs/ja/plugins/overview)の設定から発生します。このページのメッセージを生成しないプラグインの問題(マーケットプレイス URL が読み込まれない、またはプラグインがインストールされても表示されないなど)については、[プラグインのトラブルシューティング](/docs/ja/plugins/troubleshooting)を参照してください。3752これらのエラーは、[プラグイン](/docs/ja/plugins/overview)と[マーケットプレイス](/docs/ja/plugins/overview)の設定から発生します。このページのメッセージを生成しないプラグインの問題(マーケットプレイス URL が読み込まれない、またはプラグインがインストールされても表示されないなど)については、[プラグインのトラブルシューティング](/docs/ja/plugins/troubleshooting)を参照してください。

3750 3753 

3751<h3 id="plugin-eval-is-currently-in-early-access">3754<h3 id="plugin-eval-is-currently-in-early-access">

3752 plugin eval は現在早期アクセス段階です3755 plugin eval は現在早期アクセス中です

3753</h3>3756</h3>

3754 3757 

3755[`claude plugin eval`](/docs/ja/plugin-evals)または `claude plugin eval init` を実行し、何もする前に終了コード 1 で次のいずれかのメッセージが表示されました:3758[`claude plugin eval`](/docs/ja/plugin-evals)または `claude plugin eval init` を実行し、何もする前に終了コード 1 で以下のいずれかのメッセージで終了しました:

3756 3759 

3757```text theme={null}3760```text theme={null}

3758`plugin eval` is currently in early access3761`plugin eval` is currently in early access


3762`plugin eval` is currently unavailable3765`plugin eval` is currently unavailable

3763```3766```

3764 3767 

3765最初のメッセージは、ビルドがコマンドが一般的に利用可能になった最初のバージョンである v2.1.269 より古いことを意味します。2 番目のメッセージは、Anthropic がサーバー側でコマンドをオフにしたことを意味します。マシン上の何もそれをオンに戻しません。3768最初のメッセージは、ビルドが v2.1.269 より古いことを意味します。これはコマンドが一般的に利用可能になった最初のバージョンです。2 番目のメッセージは、Anthropic がサーバー側でコマンドをオフにしたことを意味します。マシン上の何もそれをオンに戻しません。

3766 3769 

3767**対処方法:**3770**対処方法:**

3768 3771 


3770* 現在のビルドで 2 番目のメッセージが表示される場合は、別の `claude update` の後で後で再度試してください3773* 現在のビルドで 2 番目のメッセージが表示される場合は、別の `claude update` の後で後で再度試してください

3771 3774 

3772<h3 id="marketplace-is-registered-from-an-untrusted-source">3775<h3 id="marketplace-is-registered-from-an-untrusted-source">

3773 マーケットプレイスが信頼されていないソースから登録されている3776 マーケットプレイスが信頼されていないソースから登録されています

3774</h3>3777</h3>

3775 3778 

3776マーケットプレイスは、[公式 Anthropic マーケットプレイス用に予約されている名前](/docs/ja/plugins/marketplace-reference#marketplace-file)で登録されていますが、登録されたソースが `anthropics` GitHub リポジトリではありません。Claude Code は、マーケットプレイスを読み込むか更新するたびに予約名を再確認するため、マーケットプレイスとそこからインストールされたプラグインの読み込みが停止します。v2.1.205 より前は、マーケットプレイスが追加されたときにのみ名前がチェックされたため、その名前が予約される前に登録されたエントリは読み込み続けていました。3779マーケットプレイスは、[公式 Anthropic マーケットプレイス用に予約されている](/docs/ja/plugins/marketplace-reference#marketplace-file)名前で登録されていますが、登録されたソースは `anthropics` GitHub リポジトリではありません。Claude Code は、マーケットプレイスを読み込むか更新するたびに予約名を再確認するため、マーケットプレイスとそこからインストールされたプラグインの読み込みが停止します。v2.1.205 より前では、名前が予約される前に登録されたエントリは読み込みを続けていました。

3777 3780 

3778```text theme={null}3781```text theme={null}

3779Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3782Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

3780```3783```

3781 3784 

3782ソースが GitHub リポジトリまたは Git URL ではなく、ローカルディレクトリなどの場合、中央の文は `can only be used with GitHub sources from the 'anthropics' organization` の代わりに読み込まれます。`claude plugin marketplace add` は同じチェックを実行し、予約名を拒否して `Failed to add marketplace:` の後に同じ予約名の文が続きます。3785ソースが GitHub リポジトリまたは Git URL ではなく、ローカルディレクトリなどのマーケットプレイスの場合、中央の文は `can only be used with GitHub sources from the 'anthropics' organization` の代わりに読みます。`claude plugin marketplace add` は同じチェックを実行し、予約名を `Failed to add marketplace:` で拒否し、その後に同じ予約名の文が続きます。

3783 3786 

3784**対処方法:**3787**対処方法:**

3785 3788 

3786* マーケットプレイスが既に登録されている場合は、`claude plugin marketplace remove <name>` を実行してから、公式の `github.com/anthropics` リポジトリから再度追加してください3789* マーケットプレイスが既に登録されている場合は、`claude plugin marketplace remove <name>` を実行してから、公式の `github.com/anthropics` リポジトリから再度追加してください

3787* 名前が予約される前にその名前を使用していたサードパーティマーケットプレイスを公開する場合は、名前を変更し、ユーザーにあなたのソースから再度追加するよう依頼してください3790* 名前が予約される前に使用した第三者マーケットプレイスを公開する場合は、名前を変更し、ユーザーにソースから再度追加するよう依頼してください

3788* [マーケットプレイススキーマ](/docs/ja/plugins/marketplace-reference#marketplace-file)の予約名リストを参照してください3791* [マーケットプレイススキーマ](/docs/ja/plugins/marketplace-reference#marketplace-file)の下の予約名リストを参照してください

3789 3792 

3790<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">3793<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">

3791 マーケットプレイス名が予約名の別のスペルである3794 マーケットプレイス名は予約名の別のスペルです

3792</h3>3795</h3>

3793 3796 

3794マーケットプレイスの名前自体は予約名ではありませんが、Claude Code はそれを別のスペルとして扱います。[予約マーケットプレイス名](/docs/ja/plugins/marketplace-reference#reserved-name-spellings)は、どのスペルが予約名としてカウントされるかをリストしています。Claude Code はマーケットプレイスを追加するときにそのような名前を拒否します:3797マーケットプレイスの名前自体は予約名ではありませんが、Claude Code はそれを別のスペルとして扱います。[予約名](/docs/ja/plugins/marketplace-reference#reserved-name-spellings)は、どのスペルが予約名として数えられるかをリストします。Claude Code は、マーケットプレイスを追加するときにそのような名前を拒否します:

3795 3798 

3796```text theme={null}3799```text theme={null}

3797Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.3800Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

3798```3801```

3799 3802 

3800マーケットプレイスが既にそのような名前で登録されている場合、そのエントリは読み込みが停止し、`/plugin`、`claude plugin install`、および `claude plugin update` は警告を表示します:3803マーケットプレイスが既にそのような名前で登録されている場合、そのエントリは読み込みを停止し、`/plugin`、`claude plugin install`、および `claude plugin update` は警告します:

3801 3804 

3802```text wrap theme={null}3805```text wrap theme={null}

3803known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins3806known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

3804```3807```

3805 3808 

3806名前がシェルクォートを必要とする場合、追加時の拒否は `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.` と表示されます。3809名前がシェルクォートを必要とする場合、追加時の拒否は `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.` と読みます。

3807 3810 

3808**対処方法:**3811**対処方法:**

3809 3812 

3810* マーケットプレイスの名前を予約名のスペルにならない名前に変更し、再度追加してください3813* マーケットプレイスの名前を予約名のスペルではない名前に変更し、再度追加してください

3811* 無視されたエントリの警告については、`claude plugin marketplace remove` コマンドを実行するか、`~/.claude/plugins/known_marketplaces.json` からエントリを削除してください3814* 無視されたエントリの警告については、提供される `claude plugin marketplace remove` コマンドを実行するか、`~/.claude/plugins/known_marketplaces.json` からエントリを削除してください

3812 3815 

3813<h3 id="claude-code-refuses-the-marketplace-name">3816<h3 id="claude-code-refuses-the-marketplace-name">

3814 Claude Code がマーケットプレイス名を拒否している3817 Claude Code がマーケットプレイス名を拒否します

3815</h3>3818</h3>

3816 3819 

3817登録されたマーケットプレイスの名前は、[公式 Anthropic マーケットプレイスになりすまし](/docs/ja/plugins/marketplace-reference#reserved-names)ており、そのセクションがリストしているルールに従っています。3820登録されたマーケットプレイスの名前は、[公式 Anthropic マーケットプレイスを偽装します](/docs/ja/plugins/marketplace-reference#reserved-names)。そのセクションがリストするルールの下で。

3818 3821 

3819マーケットプレイスがそのような名前で登録されていて、チェックがそれをブロックする前に、マーケットプレイスとそこからインストールされたプラグインは読み込みが停止します。Claude Code はマーケットプレイスのカタログを読み込むたびに名前をチェックするためです。名前が公式のものを模倣している場合、`claude plugin list` と `/plugin` **Errors** タブは、影響を受けた各プラグインを次のように始まるメッセージで報告します:3822マーケットプレイスがチェックがそれをブロックする前にそのような名前で登録された場合、マーケットプレイスとそこからインストールされたプラグインは読み込みを停止します。Claude Code はマーケットプレイスのカタログを読むたびに名前をチェックするためです。名前が公式のものを模倣する場合、`claude plugin list` と `/plugin` **エラー**タブは、以下で始まるメッセージで影響を受けた各プラグインを報告します:

3820 3823 

3821```text theme={null}3824```text theme={null}

3822Claude Code refuses the marketplace name "anthropic-plugins-v2"3825Claude Code refuses the marketplace name "anthropic-plugins-v2"

3823```3826```

3824 3827 

3825模倣する名前の場合、マーケットプレイス自体のエラーは `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own` と表示されます。`claude plugin marketplace add` は、なりすまし名を `Marketplace name impersonates an official Anthropic/Claude marketplace` で拒否します。3828模倣する名前の場合、マーケットプレイス自体のエラーは `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own` と読みます。`claude plugin marketplace add` は、`Marketplace name impersonates an official Anthropic/Claude marketplace` で任意の偽装名を拒否します。

3826 3829 

3827v2.1.282 より前は、`claude plugin list` と `/plugin` は、模倣する名前のプラグインを読み込みに失敗したものとして報告し、マーケットプレイスの名前が原因であることを名前を付けずに報告していました。3830v2.1.282 より前では、`claude plugin list` と `/plugin` は、マーケットプレイスの名前が原因として名前を付けずに、模倣する名前のプラグインを読み込みに失敗したものとして報告していました。

3828 3831 

3829**対処方法:**3832**対処方法:**

3830 3833 

3831* `claude plugin marketplace remove <name>` を実行してください。これはマーケットプレイスからインストールされたプラグインもアンインストールし、保存されたデータを削除します3834* `claude plugin marketplace remove <name>` を実行してください。これはマーケットプレイスからインストールされたプラグインもアンインストールし、保存されたデータを削除します

3832* マーケットプレイスを保持する代わりに、その保守者が名前を変更するまで待ってから、`claude plugin marketplace update <name>` を実行してください3835* マーケットプレイスを代わりに保持するには、メンテナーが名前を変更するまで待ってから、`claude plugin marketplace update <name>` を実行してください

3833* マーケットプレイスを公開する場合は、`marketplace.json` で名前を変更してください。ユーザーはマーケットプレイスを削除する代わりに更新します3836* マーケットプレイスを公開する場合は、`marketplace.json` で名前を変更してください。ユーザーはマーケットプレイスを削除する代わりに更新します

3834 3837 

3835<h3 id="marketplace-is-already-added-from-a-different-source">3838<h3 id="marketplace-is-already-added-from-a-different-source">

3836 マーケットプレイスが別のソースから既に追加されている3839 マーケットプレイスは既に別のソースから追加されています

3837</h3>3840</h3>

3838 3841 

3839あなたは [`/plugin install <plugin> --marketplace <source>`](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を通じてマーケットプレイスの追加を確認し、そのソースから Claude Code が取得したカタログが、別のソースから既に追加したマーケットプレイスと同じ名前を付けています。Claude Code は既存のマーケットプレイスを保持し、それを置き換えず、プラグインはインストールされません。3842[`/plugin install <plugin> --marketplace <source>`](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を通じてマーケットプレイスの追加を確認し、そのソースから Claude Code が取得したカタログは、既に別のソースから追加したマーケットプレイスと同じ名前で自分自身に名前を付けます。Claude Code は既存のマーケットプレイスを保持し、それを置き換えず、プラグインはインストールされません。

3840 3843 

3841```text theme={null}3844```text theme={null}

3842Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.3845Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


3848* 新しいソースに切り替えるには、`/plugin marketplace remove <name>` を実行してから、インストールを再試行してください3851* 新しいソースに切り替えるには、`/plugin marketplace remove <name>` を実行してから、インストールを再試行してください

3849 3852 

3850<h3 id="plugin-command-references-user-config">3853<h3 id="plugin-command-references-user-config">

3851 プラグインコマンドがシェルコマンドで user\_config を参照している3854 プラグインコマンドがシェルコマンドで user\_config を参照しています

3852</h3>3855</h3>

3853 3856 

3854プラグインフック、[monitor](/docs/ja/plugins/components#monitors)、または MCP [`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) コマンドが `${user_config.KEY}` [プラグインオプション](/docs/ja/plugins/manifest-reference#user-configuration)を参照し、置換された文字列がシェルに渡されます。`$(...)` 、バッククォート、または `;` を含む設定値はそこでコードとして実行されるため、Claude Code は値を置換する代わりにコンポーネントの起動を拒否します。チェックはコマンドテンプレートで実行されるため、値がまだ設定されていない場合でもエラーが表示されます。v2.1.207 より前は、値がシェルコマンドに置換されていました。3857プラグインフック、[monitor](/docs/ja/plugins/components#monitors)、または MCP [`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication)コマンドは、`${user_config.KEY}` [プラグインオプション](/docs/ja/plugins/manifest-reference#user-configuration)を参照し、置換された文字列はシェルに渡されます。`$(...)` を含む設定値、バックティック、または `;` はそこでコードとして実行されるため、Claude Code は値を置換する代わりにコンポーネントの開始を拒否します。チェックはコマンドテンプレートで実行されるため、値がまだ設定されていない場合でもエラーが表示されます。v2.1.207 より前では、値はシェルコマンドに置換されていました。

3855 3858 

3856表現は、オプションを参照したサーフェスによって異なります。シェル形式フックは以下のように報告します:3859表現は、どの表面がオプションを参照したかによって異なります。シェル形式フックは以下を報告します:

3857 3860 

3858```text theme={null}3861```text theme={null}

3859Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}3862Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}

3860```3863```

3861 3864 

3862モニターは以下のように報告します:3865モニターは以下を報告します:

3863 3866 

3864```text theme={null}3867```text theme={null}

3865Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.3868Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.

3866```3869```

3867 3870 

3868MCP `headersHelper` は以下のように報告します:3871MCP `headersHelper` は以下を報告します:

3869 3872 

3870```text theme={null}3873```text theme={null}

3871headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).3874headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).


3873 3876 

3874**対処方法:**3877**対処方法:**

3875 3878 

3876* フックの場合は、`args` 配列を追加して [exec 形式](/docs/ja/hooks#exec-form-and-shell-form)で実行し、各 `${user_config.KEY}` が間にシェルなしで 1 つの引数になるようにします。または参照を削除し、スクリプト内から `$CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数を読み込みます3879* フックの場合、`args` 配列を追加して、[exec 形式](/docs/ja/hooks#exec-form-and-shell-form)で実行されるようにします。ここで、各 `${user_config.KEY}` は、その間にシェルがない 1 つの引数になります。または参照をドロップし、スクリプト内から `$CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数を読み取ります

3877* モニターの場合は、参照を削除し、モニタースクリプトが設定ファイルから値を読み込むようにします3880* モニターの場合、参照をドロップし、モニタースクリプトに設定ファイルから値を読み取らせます

3878* `headersHelper` の場合は、`${user_config.KEY}` をシェル解析されないサーバーの `headers` フィールドに移動するか、ヘルパースクリプト内から値を読み込みます3881* `headersHelper` の場合、`${user_config.KEY}` をサーバーの `headers` フィールドに移動します。これはシェル解析されません。または、ヘルパースクリプト内から値を読み取ります

3879 3882 

3880<h3 id="plugin-archive-integrity-check-failed">3883<h3 id="plugin-archive-integrity-check-failed">

3881 プラグインアーカイブの整合性チェックが失敗した3884 プラグインアーカイブの整合性チェックが失敗しました

3882</h3>3885</h3>

3883 3886 

3884プラグインのマーケットプレイスエントリは、`sha256` ピン付きの [`archive` ソース](/docs/ja/plugins/marketplace-reference#archive-plugin-source)を使用しており、ダウンロードされたファイルのダイジェストがピンと一致しません。Claude Code はインストールを拒否するため、プラグインキャッシュに何も変更されません。不一致には 3 つの考えられる原因があります:3887プラグインのマーケットプレイスエントリは、`sha256` ピン付きの [`archive` ソース](/docs/ja/plugins/marketplace-reference#archive-plugin-source)を使用し、ダウンロードされたファイルのダイジェストはピンと一致しません。Claude Code はインストールを拒否するため、プラグインキャッシュに何も変わりません。不一致には 3 つの考えられる原因があります:

3885 3888 

3886* 著者がピンを計算した後、URL のファイルが変更された3889* 著者がピンを計算した後、URL のファイルが変更されました

3887* 著者がマーケットプレイスエントリに間違ったダイジェストを入力した3890* 著者がマーケットプレイスエントリに間違ったダイジェストを入力しました

3888* URL が著者がピンしたファイルとは異なるファイルを提供している3891* URL は著者がピンしたファイルとは異なるファイルを提供します

3889 3892 

3890```text theme={null}3893```text theme={null}

3891Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.3894Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.


3894**対処方法:**3897**対処方法:**

3895 3898 

3896* プラグインを公開する場合は、URL が提供する正確なファイルのダイジェストを再計算します。例えば `shasum -a 256 my-plugin.zip` または PowerShell で `Get-FileHash -Algorithm SHA256 my-plugin.zip` を使用し、マーケットプレイスエントリの `sha256` を更新してください3899* プラグインを公開する場合は、URL が提供する正確なファイルのダイジェストを再計算します。例えば `shasum -a 256 my-plugin.zip` または PowerShell で `Get-FileHash -Algorithm SHA256 my-plugin.zip` を使用し、マーケットプレイスエントリの `sha256` を更新してください

3897* プラグインをインストールする場合は、`/plugin marketplace update <name>` を実行してカタログをリフレッシュし、エントリが修正されている場合に備えて、インストールを再試行してください3900* プラグインをインストールする場合は、`/plugin marketplace update <name>` を実行してカタログをリフレッシュします。エントリが修正された場合、インストールを再試行してください

3898* リフレッシュ後もダイジェストが一致しない場合は、インストール前にマーケットプレイス所有者にどのファイルをピンしたかを確認してください3901* リフレッシュ後もダイジェストが一致しない場合は、インストール前にマーケットプレイス所有者にどのファイルをピンしたかを尋ねてください

3899 3902 

3900<h3 id="path-escapes-plugin-directory">3903<h3 id="path-escapes-plugin-directory">

3901 パスがプラグインディレクトリをエスケープしている3904 パスがプラグインディレクトリをエスケープします

3902</h3>3905</h3>

3903 3906 

3904プラグインコンポーネントパス(プラグインの `plugin.json` またはその[マーケットプレイスエントリ](/docs/ja/plugins/marketplace-reference#plugin-entries)で宣言)が、プラグイン自体のディレクトリの外に解決されます。Claude Code はそのパスを削除し、プラグインの残りを読み込みます。メッセージ内のコンポーネント名(`commands` や `hooks` など)は、パスを宣言したフィールドに名前を付けます。3907プラグインコンポーネントパスは、プラグインの `plugin.json` またはその[マーケットプレイスエントリ](/docs/ja/plugins/marketplace-reference#plugin-entries)で宣言され、プラグイン自体のディレクトリの外に解決されます。Claude Code はそのパスをドロップし、プラグインの残りを読み込みます。メッセージ内のコンポーネント名(`commands` や `hooks` など)は、パスを宣言したフィールドに名前を付けます。

3905 3908 

3906```text theme={null}3909```text theme={null}

3907commands path escapes plugin directory: ./../shared.md3910commands path escapes plugin directory: ./../shared.md

3908```3911```

3909 3912 

3910`claude plugin` コマンド出力では、同じエラーは `Path escapes plugin directory: ./../shared.md (commands)` と表示されます。3913`claude plugin` コマンド出力では、同じエラーは `Path escapes plugin directory: ./../shared.md (commands)` と読みます。

3911 3914 

3912Claude Code は、`../shared-utils` のようにプラグインの外を指すパスと、プラグインの外につながるシンボリックリンク([マーケットプレイスシンボリックリンクルール](/docs/ja/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)が許可するもの以外)の両方を拒否します。シンボリックリンクの場合、メッセージはパスが解決される場所も示します:3915Claude Code は、`../shared-utils` のように書かれたプラグイン外を指すパスと、プラグイン外に導くシンボリックリンク([マーケットプレイスシンボリックリンクルール](/docs/ja/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)が許可するものではない)の両方を拒否します。シンボリックリンクの場合、メッセージはパスが解決される場所も示します:

3913 3916 

3914```text theme={null}3917```text theme={null}

3915commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory3918commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

3916```3919```

3917 3920 

3918macOS と Linux では、Claude Code はコンポーネントパスにバックスラッシュが含まれている場合も拒否します。パスがプラグイン内に留まっていても、Windows スタイルのセパレータを使用するコンポーネントパスを持つプラグインは Windows で読み込まれ、他のプラットフォームではこの拒否をトリガーします:3921macOS と Linux では、Claude Code はコンポーネントパスにバックスラッシュが含まれているパスも拒否します。パスがプラグイン内に留まる場合でも。Windows スタイルのセパレータを使用するコンポーネントパスを持つプラグインは Windows で読み込まれ、他のプラットフォームでこの拒否をトリガーします:

3919 3922 

3920```text theme={null}3923```text theme={null}

3921commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform3924commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

3922```3925```

3923 3926 

3924v2.1.251 より前は、Claude Code はマーケットプレイスエントリで宣言された `commands` パスを、プラグインディレクトリの外を指している場合でも読み込みました。Claude Code は既に `plugin.json` で宣言されたパスとマーケットプレイスエントリの他のコンポーネントパスを拒否していました。3927v2.1.251 より前では、Claude Code はマーケットプレイスエントリで宣言された `commands` パスを、プラグインディレクトリの外を指していても読み込みました。

3925 3928 

3926v2.1.257 より前は、チェックはパスのスペルのみを確認し、シンボリックリンクがどこにつながるかは確認しませんでした。3929v2.1.257 より前では、チェックはパスのスペルのみを調べ、シンボリックリンクが導く場所を調べませんでした。

3927 3930 

3928**対処方法:**3931**対処方法:**

3929 3932 

3930* 参照されたファイルをプラグインディレクトリ内に移動し、`./` 相対パスでそれを指すようにしてください3933* 参照されたファイルをプラグインディレクトリ内に移動し、`./` 相対パスでそれを指してください

3931* パスがプラグイン外のファイルへのシンボリックリンクの場合は、シンボリックリンクをファイルのコピーに置き換えてください3934* パスがプラグイン外のファイルへのシンボリックリンクである場合は、シンボリックリンクをファイルのコピーに置き換えてください

3932* メッセージがパスにバックスラッシュが含まれていると言う場合は、例えば `./commands/deploy.md` のようにフォワードスラッシュでパスを記述してください3935* メッセージがパスにバックスラッシュが含まれていると言う場合は、パスを前方スラッシュで書いてください。例えば `./commands/deploy.md`

3933* 同じマーケットプレイス内の他のプラグインとファイルを共有するには、プラグインディレクトリ内のシンボリックリンクを使用してリンクし、[シンボリックリンクルール](/docs/ja/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)に従ってください3936* 同じマーケットプレイス内の他のプラグインとファイルを共有するには、プラグインディレクトリ内のシンボリックリンクでそれらをリンクし、[シンボリックリンクルール](/docs/ja/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)に従ってください

3934 3937 

3935<h3 id="path-could-not-be-checked">3938<h3 id="path-could-not-be-checked">

3936 パスをチェックできませんでした3939 パスをチェックできませんでした

3937</h3>3940</h3>

3938 3941 

3939Claude Code はプラグインパスが存在するかどうかをオペレーティングシステムに問い合わせ、「見つかりません」以外のエラーを受け取ったため、パスが名前を付けるものを読み込みません。プラグインのどの程度が読み込まれるかは、どのパスが失敗したかによって異なります:3942Claude Code はプラグインパスが存在するかどうかをオペレーティングシステムに尋ね、「見つかりません」以外のエラーを取得したため、パスが名前を付けるものを読み込みません。プラグインの読み込み量は、どのパスが失敗したかによって異なります:

3940 3943 

3941* プラグインの [デフォルトコンポーネント場所](/docs/ja/plugins/manifest-reference#standard-layout)の 1 つ(`skills/` フォルダ、`monitors/monitors.json` ファイル、またはプラグインルートの [`SKILL.md`](/docs/ja/plugins/components#skills)など):プラグインの他のコンポーネントは引き続き読み込まれます3944* プラグインの[デフォルトコンポーネント位置](/docs/ja/plugins/manifest-reference#standard-layout)の 1 つ(`skills/` フォルダ、`monitors/monitors.json` ファイル、またはプラグインルートの [`SKILL.md`](/docs/ja/plugins/components#skills)):プラグインの他のコンポーネントは引き続き読み込まれます

3942* プラグイン自体のディレクトリ:そのプラグインからは何も読み込まれません3945* プラグイン自体のディレクトリ:そのプラグインから何も読み込まれません

3943 3946 

3944存在しないパスについてはこのエラーは表示されません。`/plugin` では、エラーはプラグインの下に表示され、パスとオペレーティングシステムが返したコードに名前を付けます:3947このエラーは、まったく存在しないパスに対しては表示されません。`/plugin` では、エラーはプラグインの下に表示され、パスとオペレーティングシステムが返したコードに名前を付けます:

3945 3948 

3946```text theme={null}3949```text theme={null}

3947skills path could not be checked: /home/user/my-plugin/skills (ELOOP)3950skills path could not be checked: /home/user/my-plugin/skills (ELOOP)

3948```3951```

3949 3952 

3950`claude plugin list` では、同じエラーは `Path not found: /home/user/my-plugin/skills (skills, ELOOP)` と表示されます。3953`claude plugin list` では、同じエラーは `Path not found: /home/user/my-plugin/skills (skills, ELOOP)` と読みます。

3951 3954 

3952このエラーを生成する原因には以下が含まれます:3955このエラーを生成する原因には以下が含まれます:

3953 3956 

3954* `ELOOP`:パス内のシンボリックリンクが自分自身を指しているか、ループを形成している3957* `ELOOP`:パス内のシンボリックリンクが自分自身を指すか、ループを形成します

3955* `EIO` または `ESTALE`:パスが壊れているか古いネットワークマウント上にある3958* `EIO` または `ESTALE`:パスは壊れているか古いネットワークマウント上にあります

3956* `EACCES`:パスの上のディレクトリの 1 つがそれを通過する権限を拒否している3959* `EACCES`:パスの上のディレクトリの 1 つがそれを横断する権限を拒否します

3957 3960 

3958**対処方法:**3961**対処方法:**

3959 3962 


3962* コードが `EACCES` の場合は、パスの上のディレクトリに対する実行権限を復元してください3965* コードが `EACCES` の場合は、パスの上のディレクトリに対する実行権限を復元してください

3963* パスを修正した後、`/reload-plugins` を実行するか、Claude Code を再起動して、プラグインまたはコンポーネントを読み込んでください3966* パスを修正した後、`/reload-plugins` を実行するか、Claude Code を再起動して、プラグインまたはコンポーネントを読み込んでください

3964 3967 

3965v2.1.265 より前は、Claude Code はチェックできないデフォルトコンポーネントフォルダを存在しないものとして扱い、エラーなしでそのコンポーネントなしでプラグインを読み込みました。3968v2.1.265 より前では、Claude Code はチェックできないデフォルトコンポーネントフォルダを存在しないものとして扱い、エラーなしでそのコンポーネントなしでプラグインを読み込みました。

3966 3969 

3967<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">3970<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">

3968 マーケットプレイスエントリパスがマーケットプレイスディレクトリ内に留まらない3971 マーケットプレイスエントリパスはマーケットプレイスディレクトリ内に留まりません

3969</h3>3972</h3>

3970 3973 

3971プラグインの[マーケットプレイスエントリ](/docs/ja/plugins/marketplace-reference#plugin-entries)は、Claude Code がマーケットプレイス自体のディレクトリ内の場所に解決できないソースパスを宣言しているため、プラグインはインストールまたは読み込まれません。拒否は以下をカバーしています:3974プラグインの[マーケットプレイスエントリ](/docs/ja/plugins/marketplace-reference#plugin-entries)は、Claude Code がマーケットプレイス自体のディレクトリ内の位置に解決できないソースパスを宣言するため、プラグインはインストールまたは読み込まれません。拒否は以下をカバーします:

3972 3975 

3973* 絶対パス、`..` でマーケットプレイスから抜け出す、またはネットワークパスのようにスペルされたエントリパス3976* 絶対的なエントリパス、`..` でマーケットプレイスから登ります、またはネットワークパスのようにスペルされています

3974* macOS と Linux では、先頭の `./` の後のどこかにバックスラッシュが含まれているエントリパス3977* macOS と Linux では、先頭の `./` の後のどこかにバックスラッシュを含むエントリパス

3975* git または URL などのリモートソースから取得されたマーケットプレイス内のエントリで、マーケットプレイスディレクトリの外に解決するシンボリックリンクを通じてターゲットに到達する3978* git または URL などのリモートソースから取得されたマーケットプレイス内のエントリ。マーケットプレイスディレクトリの外に解決するシンボリックリンクを通じてターゲットに到達します

3976* マーケットプレイスの `marketplace.json` への直接 URL から追加された相対エントリ:Claude Code はそのファイルのみをダウンロードするため、パスが名前を付けるローカルプラグインファイルは存在しません。[相対パスを持つプラグインが URL ベースのマーケットプレイスで失敗する](/docs/ja/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)を参照してください3979* マーケットプレイスの `marketplace.json` への直接 URL から追加された相対エントリ:Claude Code はそのファイルのみをダウンロードするため、パスが名前を付けるローカルプラグインファイルは存在しません。[相対パスを持つプラグインが URL ベースのマーケットプレイスで失敗します](/docs/ja/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)を参照してください

3977 3980 

3978`claude plugin install` は拒否を次のように報告します:3981`claude plugin install` は拒否を次のように報告します:

3979 3982 


3981Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)3984Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)

3982```3985```

3983 3986 

3984既にインストールされているプラグインのエントリが同じチェックに失敗した場合、`claude plugin list` はプラグインを `failed to load` として表示します:3987既にインストールされているプラグインのエントリが同じチェックに失敗する場合、`claude plugin list` はプラグインを `failed to load` として表示します:

3985 3988 

3986```text theme={null}3989```text theme={null}

3987Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.3990Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.


3989 3992 

3990**対処方法:**3993**対処方法:**

3991 3994 

3992* マーケットプレイスを保守する場合は、エントリの `source` を `./plugins/my-plugin` のようなプレーンな相対パスとして記述し、それが通過するシンボリックリンクをマーケットプレイスディレクトリ内を指すようにしてください3995* マーケットプレイスを維持する場合は、エントリの `source` を `./plugins/my-plugin` などの単純な相対パスとして書き、それが横断するシンボリックリンクをマーケットプレイスディレクトリ内を指すようにしてください

3993* マーケットプレイスを直接 URL から追加した場合、相対エントリは解決できません。マーケットプレイス作成者に [別のプラグインソース](/docs/ja/plugins/marketplace-reference#plugin-sources)を使用するよう依頼するか、代わりに git リポジトリからマーケットプレイスを追加してください3996* マーケットプレイスを直接 URL から追加した場合、相対エントリは解決できません。マーケットプレイス作成者に[別のプラグインソース](/docs/ja/plugins/marketplace-reference#plugin-sources)を使用するよう依頼するか、代わりに git リポジトリからマーケットプレイスを追加してください

3994 3997 

3995<h3 id="failed-to-load-marketplace-configuration">3998<h3 id="failed-to-load-marketplace-configuration">

3996 マーケットプレイス設定の読み込みに失敗した3999 マーケットプレイス設定の読み込みに失敗しました

3997</h3>4000</h3>

3998 4001 

3999Claude Code は、`~/.claude/plugins/known_marketplaces.json` のレジストリファイルに追加したプラグインマーケットプレイスを保持しています。`claude plugin install` などのレジストリが必要なプラグインコマンドは、Claude Code がファイルを使用できない場合、次の 2 つのメッセージのいずれかで失敗します:4002Claude Code は、`~/.claude/plugins/known_marketplaces.json` のレジストリファイルに追加したプラグインマーケットプレイスを保持します。`claude plugin install` などのレジストリが必要なプラグインコマンドは、Claude Code がファイルを使用できない場合、2 つのメッセージのいずれかで失敗します:

4000 

4001* `Failed to load marketplace configuration`:ファイルが有効な JSON ではない、または読み込めません。空のファイルもこのように失敗します。

4002* `Marketplace configuration file is corrupted`:ファイルは有効な JSON ですが、その内容がレジストリスキーマと一致しません。

4003 4003 

4004ファイルが見つからない場合は失敗ではありません。Claude Code はそれをマーケットプレイスなしのレジストリとして扱います。4004* `Failed to load marketplace configuration`:ファイルは存在しますが、有効な JSON ではないか、読み取ることができません。空のファイルもこの方法で失敗します。

4005* `Marketplace configuration file is corrupted`:ファイルは有効な JSON ですが、その内容はレジストリスキーマと一致しません。

4005 4006 

4006空のファイルの場合、`claude plugin install` は以下のように報告します:4007空のファイルの場合、`claude plugin install` は以下を報告します:

4007 4008 

4008```text theme={null}4009```text theme={null}

4009✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF4010✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF

4010```4011```

4011 4012 

4012v2.1.246 より前は、`claude plugin install` はこの失敗を報告しませんでした。4013v2.1.246 より前では、`claude plugin install` はこの失敗を報告しませんでした。

4013 4014 

4014**対処方法:**4015**対処方法:**

4015 4016 

4016* `~/.claude/plugins/known_marketplaces.json` を開き、JSON を修復するか、メッセージが名前を付けるエントリがレジストリスキーマと一致しないように修正してください4017* `~/.claude/plugins/known_marketplaces.json` を開き、JSON を修復するか、メッセージが名前を付けるエントリをレジストリスキーマと一致するように修正してください

4017* 修復できない場合は、ファイルを削除するか、その内容を `{}` に置き換えてから、`claude plugin marketplace add <source>` で各マーケットプレイスを再度追加してください。Claude Code は、信頼したフォルダで次回起動するときに、ユーザーまたはマネージド設定で [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces)で宣言したマーケットプレイスを再登録します。4018* 修復できない場合は、ファイルを削除するか、その内容を `{}` に置き換えてから、`claude plugin marketplace add <source>` で各マーケットプレイスを再度追加してください。Claude Code は、信頼したフォルダで次回起動するときに、ユーザーまたは管理設定が [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) で宣言するマーケットプレイスを再登録します。

4018 4019 

4019<h3 id="plugin-is-required-by-your-organization">4020<h3 id="plugin-is-required-by-your-organization">

4020 プラグインは組織で必須です4021 プラグインは組織で必須です

4021</h3>4022</h3>

4022 4023 

4023`claude plugin disable` を実行するか、`/plugin` **Installed** タブを使用して、組織が必須としてマークしている [claude.ai から同期されたプラグイン](/docs/ja/plugins/loading#synced-plugins)をオフにしました:4024`claude plugin disable` を実行するか、`/plugin` **インストール済み**タブを使用して、組織が必須としてマークする [claude.ai から同期されたプラグイン](/docs/ja/plugins/loading#synced-plugins)をオフにしました:

4024 4025 

4025```text theme={null}4026```text theme={null}

4026Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.4027Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.


4028 4029 

4029Claude Code は何も保存せず、プラグインは有効なままです。4030Claude Code は何も保存せず、プラグインは有効なままです。

4030 4031 

4031必須プラグインが依存するプラグインを無効にしようとすると、Claude Code は同じ方法で拒否し、それが必要な必須プラグインに名前を付けるメッセージを表示します。4032必須プラグインが依存するプラグインを無効にしようとすると、Claude Code は同じ方法で拒否し、それを必要とする必須プラグインに名前を付けるメッセージを表示します。

4032 4033 

4033**対処方法:**4034**対処方法:**

4034 4035 


4038 プラグインはアンインストールされませんでした4039 プラグインはアンインストールされませんでした

4039</h3>4040</h3>

4040 4041 

4041[`claude plugin uninstall`](/docs/ja/plugins/cli-reference#plugin-uninstall)を実行するか、`/plugin` **Installed** タブで **Uninstall** を選択し、アンインストールが `"<plugin>" was not uninstalled:` で始まるメッセージで停止しました。そのコロンの後のテキストが `installed_plugins.json` の代わりに設定ファイルに名前を付けている場合、原因は `installed_plugins.json` 内のコンテンツで、このバージョンの Claude Code が読み込めません。その形式については、[`installed_plugins.json` がこのバージョンが読み込めないレコードを保持している](/docs/ja/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)を参照してください。4042[`claude plugin uninstall`](/docs/ja/plugins/cli-reference#plugin-uninstall)を実行するか、`/plugin` **インストール済み**タブで **アンインストール**を選択し、アンインストールは `"<plugin>" was not uninstalled:` で始まるメッセージで停止しました。そのコロンの後のテキストが設定ファイルの名前ではなく `installed_plugins.json` で始まる場合、原因は `installed_plugins.json` 内のこのバージョンの Claude Code が読み取ることができないコンテンツです。その形式については、[`installed_plugins.json` はこのバージョンが読み取ることができないレコードを保持しています](/docs/ja/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read)を参照してください。

4042 4043 

4043Claude Code がプラグインのエントリを `enabledPlugins` から削除し、そのスコープの設定ファイルを読み込み直したとき、プラグインはまだそこでオンになっていたか、またはそれをオンにできるファイルを読み込むか確認できませんでした。設定エントリがそれをオンに戻す可能性があるときにプラグインの保存されたオプション、シークレット、およびデータを削除すると、それらが失われるため、アンインストールは代わりに停止します:プラグインはインストールされたままで、保存されたものは何も削除されません。4044Claude Code がプラグインのエントリを `enabledPlugins` から削除し、そのスコープの設定ファイルを読み直したとき、プラグインはそこでまだオンに切り替えられたか、それをオンに切り替えることができるファイルを読み取ったり確認したりできませんでした。プラグインの保存されたオプション、シークレット、およびデータを削除しながら、設定エントリがそれをオンに切り替えることができるのは、それらを失うことになるため、アンインストールは代わりに停止します:プラグインはインストールされたままで、保存されたものは削除されません。

4044 4045 

4045```text theme={null}4046```text theme={null}

4046✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.4047✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.


4048 4049 

4049メッセージの中央はファイルと原因に名前を付けます:4050メッセージの中央はファイルと原因に名前を付けます:

4050 4051 

4051* `it is still switched on in <file>, although the settings change reported no error`:設定の書き込みは成功を報告しましたが、ファイルが読み込み直されたときもエントリはそこにあります4052* `it is still switched on in <file>, although the settings change reported no error`:設定の書き込みは成功を報告しましたが、エントリはファイルを読み直すときにまだそこにあります

4052* `it is still switched on in <file>, and the settings change failed (<error>)`:ファイルを保存できず、括弧内の理由があります4053* `it is still switched on in <file>, and the settings change failed (<error>)`:ファイルを保存できませんでした。括弧内の理由のため

4053* `<file> is there and could not be read`:ファイルは存在しますが、設定として読み込めません。例えば有効な JSON ではないため、プラグインを有効にする可能性があります4054* `<file> is there and could not be read`:ファイルは存在しますが、設定として読み取ることができませんでした。例えば、有効な JSON ではないため、プラグインを有効にしたままの可能性があります

4054* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code はプロジェクトまたはローカル設定ファイルを読み込みませんでした。ファイル、またはそれを保持する `.claude` フォルダが、ネットワークの場所にリンクしているか、そのパスを確認できなかったためです4055* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code はプロジェクトまたはローカル設定ファイルを読み取りませんでした。ファイル、またはそれを保持する `.claude` フォルダは、ネットワークの場所にリンクしているか、そのパスを調べることができなかったためです

4055 4056 

4056`claude plugin uninstall` は終了コード 1 で終了し、`--json` を使用するとその結果は `failureCode: "settings_still_on"` を含みます。`/plugin` は同じメッセージを表示します。4057`claude plugin uninstall` は終了コード 1 で、`--json` を使用すると結果は `failureCode: "settings_still_on"` を含みます。`/plugin` は同じメッセージを表示します。

4057 4058 

4058**対処方法:**4059**対処方法:**

4059 4060 


4626terminal host process died — press Enter to restart4627terminal host process died — press Enter to restart

4627```4628```

4628 4629 

4629チェックが実行される前に行を開くと、フッターは `This session's terminal host process died (the conversation is saved) — press Enter to restart it` を表示し、行は失敗になります。

4630 

4631シェルから、`claude attach <id>` は既に死んだホストで失敗とマークされたセッションを再開し、そうでなければ原因を出力して終了します:4630シェルから、`claude attach <id>` は既に死んだホストで失敗とマークされたセッションを再開し、そうでなければ原因を出力して終了します:

4632 4631 

4633```text theme={null}4632```text theme={null}


5023 5022 

5024Claude Code はこれらのメッセージのほとんどを stderr に書き込み、会話には書き込みません。また、ほとんどのメッセージはスタートアップ時に書き込みます。エントリは、デバッグログや会話ビューのスタートアップ通知など、別の場所に表示される場合、または [認識されないモデル診断行](#unrecognized-model-id-on-a-request) のようにリクエスト時など別の時間に表示される場合に、そのことを記載します。5023Claude Code はこれらのメッセージのほとんどを stderr に書き込み、会話には書き込みません。また、ほとんどのメッセージはスタートアップ時に書き込みます。エントリは、デバッグログや会話ビューのスタートアップ通知など、別の場所に表示される場合、または [認識されないモデル診断行](#unrecognized-model-id-on-a-request) のようにリクエスト時など別の時間に表示される場合に、そのことを記載します。

5025 5024 

5026<h3 id="fullscreen-failed-start-notice">

5027 フルスクリーンレンダラーが起動を完了しませんでした

5028</h3>

5029 

5030このマシン上の以前の [フルスクリーン](/docs/ja/fullscreen) セッションが起動を完了する前に終了したため、Claude Code はこのセッションをクラシックレンダラーで起動し、次のいずれかの通知を出力します。

5031 

5032```text theme={null}

5033Claude Code's fullscreen renderer didn't finish starting last time on this machine, so this launch is using the classic renderer. It will try fullscreen again next launch; /tui default keeps the classic renderer.

5034 

5035Claude Code's fullscreen renderer has repeatedly failed to start on this machine, so it has been turned off here. Run /tui fullscreen to try it again (this also resets after an update).

5036```

5037 

5038**対応方法:**

5039 

5040* [フルスクリーンレンダリング](/docs/ja/fullscreen#fullscreen-renderer-didnt-finish-starting) に従ってください。どの通知が表示されるか、Claude Code が後続のセッションで何を行うか、およびフルスクリーンを再度試すか、クラシックレンダラーを保持する方法が説明されています。

5041* 終了したセッションが終了メッセージを出力した場合は、[Claude Code が回復不可能なインターフェイスエラーの後に終了しました](#exited-after-an-unrecoverable-interface-error) を参照して、その名前を確認してください。

5042 

5043v2.1.236 より前では、Claude Code は通知を出力せず、失敗した起動後もフルスクリーンレンダリングでセッションを起動し続けていました。

5044 

5045<h3 id="exited-after-an-unrecoverable-interface-error">5025<h3 id="exited-after-an-unrecoverable-interface-error">

5046 Claude Code が回復不可能なインターフェイスエラーの後に終了しました5026 回復不可能なインターフェイスエラーの後に Claude Code が終了しました

5047</h3>5027</h3>

5048 5028 

5049Claude Code は、ターミナルインターフェイスが回復できないエラーに遭遇して終了するときにこのメッセージを出力します。これはどちらのレンダラーでも発生する可能性があります。2 番目の文は、エラーが [フルスクリーン](/docs/ja/fullscreen) レンダラーの起動中に発生した場合にのみ表示されます。5029Claude Code は、ターミナルインターフェイスが回復できないエラーに遭遇して終了するときにこのメッセージを出力します。これはどちらのレンダラーでも発生する可能性があります。2 番目の文は、エラーが [フルスクリーン](/docs/ja/fullscreen) レンダラーの起動中に発生した場合にのみ表示されます。


5193* 設定を管理している場合は、ユーザーが実行できるモデルを `availableModels` に追加するか、すべてのフォールバックをブロックする `deniedModels` エントリを絞り込んでください。[特定のモデルまたはバージョンをブロック](/docs/ja/model-config#block-specific-models-or-versions) はデフォルトオプションがどのようにステップダウンするかを説明しています。5173* 設定を管理している場合は、ユーザーが実行できるモデルを `availableModels` に追加するか、すべてのフォールバックをブロックする `deniedModels` エントリを絞り込んでください。[特定のモデルまたはバージョンをブロック](/docs/ja/model-config#block-specific-models-or-versions) はデフォルトオプションがどのようにステップダウンするかを説明しています。

5194* 設定を管理していない場合は、メッセージを管理者に送信してください。独自の設定ファイルは、管理された `availableModels` または `deniedModels` リストを拡大することはできません。5174* 設定を管理していない場合は、メッセージを管理者に送信してください。独自の設定ファイルは、管理された `availableModels` または `deniedModels` リストを拡大することはできません。

5195 5175 

5176<h3 id="managed-settings-dont-allow-this-api-provider">

5177 管理設定がこの API プロバイダーを許可していません

5178</h3>

5179 

5180組織の [管理設定](/docs/ja/managed-settings) は [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) リストを設定し、セッションの API プロバイダーがそれにないか、セッションがそのエントリが要求する方法でピン留めされていないエンドポイントを使用しています。Claude Code はスタートアップ前、ログイン前、またはセッションが次に API に接続するときに拒否します。メッセージは許可されたプロバイダーで始まります。

5181 

5182```text theme={null}

5183Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.

5184```

5185 

5186リストが空の場合、メッセージは代わりに以下のように読みます。

5187 

5188```text theme={null}

5189Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.

5190```

5191 

5192すべてのエントリが認識されない場合、括弧内は `(allowedProviders lists only unrecognized entries)` と読みます。

5193 

5194**対応方法:**

5195 

5196* メッセージの `To continue:` ステップに従ってください。

5197* 設定を管理している場合、メッセージの `Admins:` で始まる行は、追加するエントリまたはピン留めする値に名前を付け、[`allowedProviders`](/docs/ja/settings-reference#allowedproviders) エントリは、どのソースの `env` ブロックがそれをピン留めできるかを示しています。

5198 

5196<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5199<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

5197 MCP サーバーはエンタープライズ管理ポリシーによってブロックされています5200 MCP サーバーはエンタープライズ管理ポリシーによってブロックされています

5198</h3>5201</h3>


5246* マシンを管理している場合は、名前が付けられたドキュメントを JSON オブジェクトとして解析するように修正するか、ファイル、プロファイル、またはレジストリ値を削除してください。空の `managed-settings.json` は `{}` としてカウントされ、起動をブロックしません。5249* マシンを管理している場合は、名前が付けられたドキュメントを JSON オブジェクトとして解析するように修正するか、ファイル、プロファイル、またはレジストリ値を削除してください。空の `managed-settings.json` は `{}` としてカウントされ、起動をブロックしません。

5247* そうでない場合は、管理者に、デプロイされたドキュメントを修正するよう依頼してください。独自の設定ファイルの何もこのエラーを引き起こしたり、クリアしたりしません。5250* そうでない場合は、管理者に、デプロイされたドキュメントを修正するよう依頼してください。独自の設定ファイルの何もこのエラーを引き起こしたり、クリアしたりしません。

5248 5251 

5252<h3 id="unable-to-read-managed-policy-settings">

5253 管理ポリシー設定を読み取ることができません

5254</h3>

5255 

5256組織は [管理設定](/docs/ja/managed-settings) をデプロイしており、デプロイされたソースの 1 つが存在しますが、オペレーティングシステムが読み取りを拒否するのではなく、I/O エラーなどの理由で読み取ることができませんでした。他の管理ソースがポリシーを供給していない場合、Claude Code はポリシーが実行される可能性があるソースなしで実行するのではなく、スタートアップで終了します。

5257 

5258```text theme={null}

5259Unable to read managed policy settings.

5260This machine may require organization login enforcement, but the policy file failed to load.

5261Contact your administrator.

5262 

5263Detail: <source>: <reason>

5264```

5265 

5266同じ状態で、サインインフロー、既に実行中のセッションからの API リクエスト、および [`claude gateway`](/docs/ja/claude-apps-gateway) サーバーは、[`allowedProviders`](/docs/ja/settings-reference#allowedproviders) に名前を付ける最初の行のバリアントで拒否されます。

5267 

5268オペレーティングシステムが拒否した読み取り(ルートのみのファイルなど)はこの終了を生成しません。[セッションはそのソースのポリシーなしで開始します](/docs/ja/managed-settings#find-entries-claude-code-dropped)。解析できないソースの場合、Claude Code は [ソースに名前を付ける別のメッセージで終了します](#managed-settings-document-could-not-be-parsed)。

5269 

5270**対応方法:**

5271 

5272* マシンを管理している場合は、`Detail:` 行が名前を付ける問題を修正して、デプロイされたソースを読み取ることができるようにするか、ソースを削除してください。

5273* そうでない場合は、メッセージを管理者に送信してください。独自の設定ファイルの何もこのエラーを引き起こしたり、クリアしたりしません。

5274 

5275v2.1.285 より前では、claude.ai または Claude Console 認証情報でサインインしたセッションのみがこのメッセージで終了し、オペレーティングシステムが拒否した読み取りもそれを生成していました。

5276 

5249<h3 id="otelheadershelper-failed">5277<h3 id="otelheadershelper-failed">

5250 otelHeadersHelper が失敗しました5278 otelHeadersHelper が失敗しました

5251</h3>5279</h3>


5344* 警告が括弧内に名前を付けるソースでルールを修正してください。設定ファイルパス、または `--allowed-tools` フラグ自体。ディスク上に存在しない `claude-settings-<hash>.json` パスはインライン `--settings` 値を表します。そのフラグに渡す JSON を修正してください。5372* 警告が括弧内に名前を付けるソースでルールを修正してください。設定ファイルパス、または `--allowed-tools` フラグ自体。ディスク上に存在しない `claude-settings-<hash>.json` パスはインライン `--settings` 値を表します。そのフラグに渡す JSON を修正してください。

5345* ソースが `managed policy settings` と読む場合は、警告を管理設定を保守している人に転送してください。自分でそれをクリアすることはできません。5373* ソースが `managed policy settings` と読む場合は、警告を管理設定を保守している人に転送してください。自分でそれをクリアすることはできません。

5346 5374 

5347Claude Code は同じ形状の deny および ask ルールについて警告しません。それらが一致する追加コマンドを拒否またはプロンプトします。また、サブコマンドが最初の `*` の前に来るルール(`Bash(git commit *)` など)、または `*` の後にオプション以外の単語がないルール(`Bash(git *)` など)、または `:*` プレフィックスルール(`Bash(git:*)` など)についても警告しません。

5348 

5349[バックグラウンドセッション](/docs/ja/agent-view) または `--output-format json` または `stream-json` では、Claude Code は警告をデバッグログに stderr の代わりに書き込むため、マシン読み取り出力はクリーンなままです。`--debug` で `~/.claude/debug/<session-id>.txt` でキャプチャしてください。v2.1.246 より前では、Claude Code はこれらのルールを警告なしで受け入れていました。5375[バックグラウンドセッション](/docs/ja/agent-view) または `--output-format json` または `stream-json` では、Claude Code は警告をデバッグログに stderr の代わりに書き込むため、マシン読み取り出力はクリーンなままです。`--debug` で `~/.claude/debug/<session-id>.txt` でキャプチャしてください。v2.1.246 より前では、Claude Code はこれらのルールを警告なしで受け入れていました。

5350 5376 

5351<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">5377<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">


5458 応答の品質がいつもより低いように見える5484 応答の品質がいつもより低いように見える

5459</h2>5485</h2>

5460 5486 

5461Claude の回答がいつもより能力が低いように見えるが、エラーが表示されていない場合、原因は通常、モデル自体ではなく会話の状態です。Claude Code はモデルバージョンを静かに変更することはありません。3 つの特定のケースでフォールバックモデルに切り替わることができます。5487Claude の回答がいつもより能力が低いように見えるが、エラーが表示されていない場合、原因は通常、モデル自体ではなく会話の状態です。Claude Code はモデルバージョンを静かに変更することはありません。これらのケースでフォールバックモデルに切り替わることができます。

5462 5488 

5463* 設定された [`--fallback-model`](/docs/ja/cli-reference#cli-flags) は可用性エラーの後、そのターンのみ引き継ぎ、トランスクリプトに通知が表示されます5489* 設定された [`--fallback-model`](/docs/ja/cli-reference#cli-flags) は可用性エラーの後、そのターンのみ引き継ぎ、トランスクリプトに通知が表示されます

5464* Amazon Bedrock または Google Cloud の Agent Platform スタートアップチェックがデフォルトモデルが利用不可であることを検出します5490* Amazon Bedrock または Google Cloud の Agent Platform スタートアップチェックがデフォルトモデルが利用不可であることを検出するか、アカウントが [セッション中にそれへのアクセスを失う](/docs/ja/amazon-bedrock#when-a-model-is-disabled-mid-session)

5465* [自動モデルフォールバック](/docs/ja/model-config#automatic-model-fallback) は Fable 5.1、Fable 5、Opus 5.5、Sonnet 5.5、Opus 5 でセッションをフラグが付いたカテゴリのフォールバックモデルに移動し、そのカテゴリにフォールバックモデルがある場合、トランスクリプトに通知が表示されます5491* [自動モデルフォールバック](/docs/ja/model-config#automatic-model-fallback) は Fable 5.1、Fable 5、Opus 5.5、Sonnet 5.5、Opus 5 でセッションをフラグが付いたカテゴリのフォールバックモデルに移動し、そのカテゴリにフォールバックモデルがある場合、トランスクリプトに通知が表示されます

5466 5492 

5467以下のモデル選択チェックは 2 番目と 3 番目のケースをキャッチします。最初のケースはトランスクリプト通知として表示され、`/model` の変更ではなく表示されます。[モデル設定](/docs/ja/model-config) は各フォールバックが適用される時期を説明しています。5493以下のモデル選択チェックは 2 番目と 3 番目のケースをキャッチします。最初のケースはトランスクリプト通知として表示され、`/model` の変更ではなく表示されます。[モデル設定](/docs/ja/model-config) は各フォールバックが適用される時期を説明しています。

Details

293 293 

294`opus` などのモデルエイリアスはピンとして機能せず、Claude Code が認識しないモデル ID も同様です。294`opus` などのモデルエイリアスはピンとして機能せず、Claude Code が認識しないモデル ID も同様です。

295 295 

296これらのチェックがプロジェクトが呼び出せないモデルを見つけた場合、Claude Code はこのマシン上でその拒否を最大 1 日間記憶し、その間の起動時に記憶されたモデルをスキップして Agent Platform に再度問い合わせません。Claude Code は、現在のデフォルトモデルの記憶された拒否を、最後のチェック以降 10 分が経過した後に起動時に再度チェックするため、管理者が再度有効にしたデフォルトが戻ります。メモリをオフにするには、[`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/ja/env-vars)を設定してください。

297 

298<h3 id="when-a-model-is-disabled-mid-session">

299 セッション中にモデルが無効化された場合

300</h3>

301 

302プロジェクトがセッションで実行しているモデルへのアクセスを失った場合(例えば、管理者が [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)で無効化した場合)、Claude Code は各リクエストが失敗する代わりにセッションを別のモデルに切り替え、`Switched to <fallback> because <model> is not available` を表示します。起動時フォールバックと同じモデルを試します。同じティアの以前のバージョンを最初に試し、Opus セッションで Opus バージョンが利用できない場合は、デフォルト Sonnet モデルを試します。

303 

304切り替えは、ピン留めしていないティアにのみ適用されます。これは起動時フォールバックと同じ条件です。選択した特定のバージョンでのセッションはそのモデルを保持し、フォールバックモデルチェーンがない場合、リクエストは失敗します。[auto モード](/docs/ja/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)では、Claude Code は Agent Platform で auto モードがサポートするモデルにのみ切り替えます。それらのモデルも利用できない場合、リクエストは失敗します。

305 

306設定した[フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains)はティア切り替えを置き換えます。これらの拒否時に Claude Code は設定したフォールバックに切り替えます。拒否されたリクエストが切り替わらずに失敗するようにするには、[`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/ja/env-vars)を設定してください。設定したフォールバックチェーンはこれらの拒否時に切り替わります。すべての拒否されたリクエストが失敗するようにしたい場合は、チェーンも削除してください。

307 

296<h2 id="iam-configuration">308<h2 id="iam-configuration">

297 IAM 設定309 IAM 設定

298</h2>310</h2>

headless.md +2 −2

Details

298 ツールを自動承認する298 ツールを自動承認する

299</h3>299</h3>

300 300 

301`--allowedTools` を使用して、Claude が特定のツールをプロンプトなしで使用できるようにします。この例はテストスイートを実行して失敗を修正し、Claude が Bash コマンドを実行してファイルを読み書きできるようにします(権限を求めずに)。301`--allowedTools` を使用して、Claude が特定のツールをプロンプトなしで使用できるようにします。`Read` と `Edit` をリストすると、Claude はファイルを読み書きできます。`Bash` をリストすると、シェルコマンドについても同じことができます。ただし、[auto mode](/docs/ja/permission-modes#how-auto-mode-evaluates-actions) で開始される実行では、Claude Code は広いアロー ルールとして裸の `Bash` エントリをドロップし、auto mode が代わりに各コマンドを評価します。この例はテストスイートを実行して失敗を修正し、これら 3 つのツールをリストします。

302 302 

303```bash theme={null}303```bash theme={null}

304claude -p "Run the test suite and fix any failures" \304claude -p "Run the test suite and fix any failures" \

305 --allowedTools "Bash,Read,Edit"305 --allowedTools "Bash,Read,Edit"

306```306```

307 307 

308個別のツールをリストする代わりにセッション全体のベースラインを設定するには、[permission mode](/docs/ja/permission-modes) を渡します。`-p` の場合、[built-in starting permission mode](/docs/ja/permission-modes#which-mode-a-session-starts-in) はすべてのプランで Manual なので、必要な権限モードを渡します。308個別のツールをリストする代わりにセッション全体のベースラインを設定するには、[permission mode](/docs/ja/permission-modes) を渡します。権限モードを設定しない実行は、[built-in starting permission mode](/docs/ja/permission-modes#which-mode-a-session-starts-in) を取得します。これは `auto` の場合があるため、必要な権限モードを渡します。

309 309 

310* **`auto`**:`--permission-mode auto` を渡して、ほとんどのアクションをあなたの代わりに分類器にレビューさせます310* **`auto`**:`--permission-mode auto` を渡して、ほとんどのアクションをあなたの代わりに分類器にレビューさせます

311* **`dontAsk`**:Claude Code はそれ以外の場合はプロンプトするすべての呼び出しを拒否します。これはロックダウンされた CI 実行に役立ちます。Manual モードで承認が不要なアクション(作業ディレクトリでのファイル読み取りや [read-only command set](/docs/ja/permissions#read-only-commands))は依然として実行され、`--allowedTools` エントリまたは `permissions.allow` ルールがカバーするアクションも実行されます。`AskUserQuestion`、connector tools [your organization set to `ask`](/docs/ja/mcp#organization-controls-on-connector-tools)、および [`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) とマークされた MCP ツールは、許可ルールが一致する場合でも拒否されます311* **`dontAsk`**:Claude Code はそれ以外の場合はプロンプトするすべての呼び出しを拒否します。これはロックダウンされた CI 実行に役立ちます。Manual モードで承認が不要なアクション(作業ディレクトリでのファイル読み取りや [read-only command set](/docs/ja/permissions#read-only-commands))は依然として実行され、`--allowedTools` エントリまたは `permissions.allow` ルールがカバーするアクションも実行されます。`AskUserQuestion`、connector tools [your organization set to `ask`](/docs/ja/mcp#organization-controls-on-connector-tools)、および [`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) とマークされた MCP ツールは、許可ルールが一致する場合でも拒否されます

hooks-guide.md +3 −1

Details

1014 1014 

1015`PreToolUse` hooks は任意の権限モードチェックの前に発火します。すべての [権限モード](/docs/ja/permission-modes)(`dontAsk` を含む)で発火します。`permissionDecision: "deny"` を返す hook は、`bypassPermissions` モードまたは `--dangerously-skip-permissions` でもツールをブロックします。これにより、ユーザーが権限モードを変更してバイパスできないポリシーを適用できます。1015`PreToolUse` hooks は任意の権限モードチェックの前に発火します。すべての [権限モード](/docs/ja/permission-modes)(`dontAsk` を含む)で発火します。`permissionDecision: "deny"` を返す hook は、`bypassPermissions` モードまたは `--dangerously-skip-permissions` でもツールをブロックします。これにより、ユーザーが権限モードを変更してバイパスできないポリシーを適用できます。

1016 1016 

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)コネクタツールも抑制できません。Hooks は制限を厳しくできますが、許可ルールが許可する範囲を超えて緩和することはできません。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 は制限を厳しくできますが、許可ルールが許可する範囲を超えて緩和することはできません。

1018 

1019インストールした [mod](/docs/ja/plugins/mods/overview) が `tool.check` を hook できる場合、hook が管理設定にない限り、`PreToolUse` hook がブロックした呼び出しを承認できます。[Hooks で権限を拡張](/docs/ja/permissions#extend-permissions-with-hooks)は、mod に対してどのルールが優先されるかをリストしています。

1018 1020 

1019<h3 id="hook-not-firing">1021<h3 id="hook-not-firing">

1020 Hook が発火しない1022 Hook が発火しない

Details

346* Claude Code にコマンドをバックグラウンドで実行するよう指示する346* Claude Code にコマンドをバックグラウンドで実行するよう指示する

347* `Ctrl+B` を押して、通常の Bash ツール呼び出しをバックグラウンドに移動する。Tmux ユーザーは tmux のプリフィックスキーのため、`Ctrl+B` を 2 回押す必要があります。347* `Ctrl+B` を押して、通常の Bash ツール呼び出しをバックグラウンドに移動する。Tmux ユーザーは tmux のプリフィックスキーのため、`Ctrl+B` を 2 回押す必要があります。

348 348 

349コマンドが完了する前にタイムアウトに達した場合、Claude Code は自動的に[それをバックグラウンドに移動](/docs/ja/tools-reference#background-commands)します。停止する代わりにバックグラウンドに移動します。ただし、コマンドが `sleep` で始まる場合は除きます。コマンドが実行される時間を変更するには、[Bash タイムアウト環境変数](/docs/ja/tools-reference#timeout-and-output-limits)を設定してください。349コマンドが完了する前にタイムアウトに達した場合、Claude Code は自動的に[それをバックグラウンドに移動](/docs/ja/tools-reference#foreground-commands-that-move-to-the-background)します。停止する代わりにバックグラウンドに移動します。ただし、コマンドが `sleep` で始まる場合は除きます。[`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ja/env-vars#variables)でバックグラウンドタスクをオフにしているか、[ベアモード](/docs/ja/headless#start-faster-with-bare-mode)で開始している場合、コマンドはタイムアウト時に停止します。タイムアウトを変更するには、[Bash タイムアウト環境変数](/docs/ja/tools-reference#timeout-and-output-limits)を設定してください。

350 350 

351**主な機能:**351**主な機能:**

352 352 


358* macOS と Linux では、オペレーティングシステムが重大なメモリプレッシャーを報告する場合、Claude Code はバックグラウンドタスクを停止します。ただし、セッションが少なくとも 30 分間アイドル状態にあり、ターンまたはサブエージェントが実行されていない場合に限ります。Claude Code v2.1.193 以降が必要です358* macOS と Linux では、オペレーティングシステムが重大なメモリプレッシャーを報告する場合、Claude Code はバックグラウンドタスクを停止します。ただし、セッションが少なくとも 30 分間アイドル状態にあり、ターンまたはサブエージェントが実行されていない場合に限ります。Claude Code v2.1.193 以降が必要です

359 * [デバッグログ](/docs/ja/debug-your-config)には、タスクが停止された理由、またはプレッシャーイベントがそれらを実行し続けた理由が記載されています359 * [デバッグログ](/docs/ja/debug-your-config)には、タスクが停止された理由、またはプレッシャーイベントがそれらを実行し続けた理由が記載されています

360 * [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/ja/env-vars)を `1` に設定して、メモリプレッシャー停止をオフにします360 * [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/ja/env-vars)を `1` に設定して、メモリプレッシャー停止をオフにします

361* バックグラウンド Bash および PowerShell コマンドには時間制限があり、コマンドがバックグラウンドに入った時点から数えられます。30 分、またはコマンドがバックグラウンドで開始されるときに Claude が要求する `timeout`(最大 2 時間まで)。例えば `Ctrl+B` で実行中にバックグラウンドに移動するコマンドは、移動から 30 分を取得します。コマンドが制限に達すると、Claude Code はそれを停止し、Claude に理由を伝えます。Claude は、作業がまだ必要な場合、より長い `timeout` で再度開始できます。2 つの環境変数は制限をミリ秒単位で引き上げ、どちらも短縮することはできません。361* バックグラウンド Bash および PowerShell コマンドには時間制限があり、コマンドがバックグラウンドに入った時点から数えられます。30 分、またはコマンドがバックグラウンドで開始されるときに Claude が要求する `timeout`(最大 2 時間まで)。例えば `Ctrl+B` で実行中にバックグラウンドに移動するコマンドは、移動から 30 分を取得します。コマンドが制限に達すると、Claude Code はそれを停止し、Claude に理由を伝えます。Claude は、作業がまだ必要な場合、より長い `timeout` で再度開始できます。制限を引き上げるには、[バックグラウンドコマンドの時間制限を引き上げる](/docs/ja/tools-reference#raise-the-time-limit-for-background-commands)を参照してください。ツール参照を参照してください

362 * [`BASH_DEFAULT_TIMEOUT_MS`](/docs/ja/env-vars)を `1800000` より上に設定して、30 分のデフォルトをその値に置き換えます。移動されたコマンドにも適用されます362* フォアグラウンド[サブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)が開始したバックグラウンドコマンドは、そのサブエージェントの実行が終了するときに終了します。完了、失敗、または中断されたかどうかに関わらず。ツール参照の[バックグラウンドコマンドが停止するとき](/docs/ja/tools-reference#when-a-background-command-stops)を参照してください

363 * [`BASH_MAX_TIMEOUT_MS`](/docs/ja/env-vars)を `7200000` より上に設定して、2 時間の最大値を引き上げます。`BASH_DEFAULT_TIMEOUT_MS` を `7200000` より上に設定すると、同じ方法で引き上げられます

364* フォアグラウンド[サブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)が開始したバックグラウンドコマンドは、そのサブエージェントの実行が終了するときに終了します。完了、失敗、または中断されたかどうかに関わらず。ツール参照の[バックグラウンドコマンド](/docs/ja/tools-reference#background-commands)を参照してください

365 363 

366すべてのバックグラウンドタスク機能を無効にするには、`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 環境変数を `1` に設定します。詳細は[環境変数](/docs/ja/env-vars)を参照してください。364すべてのバックグラウンドタスク機能を無効にするには、[`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ja/env-vars#variables)環境変数を `1` に設定してください。[ベアモード](/docs/ja/headless#start-faster-with-bare-mode)で開始することでもオフになります。

367 365 

368**一般的なバックグラウンド実行コマンド:**366**一般的なバックグラウンド実行コマンド:**

369 367 

keybindings.md +1 −3

Details

545* キリル文字などの非ラテンレイアウトの場合、Claude Code はターミナルが Kitty キーボードプロトコルを使用し、その位置を報告する場合、キーの US レイアウト位置で Ctrl ショートカットをマッチさせます。そのようなターミナルでロシア語レイアウトがアクティブな場合、Ctrl キーと物理的な W キーを押すと `ctrl+w` がトリガーされます。位置を報告しないターミナルでは、Claude Code はターミナルがキープレスに対して送信するものをマッチさせます。ASCII 制御コードは Latin ショートカットをトリガーし、キリル文字として到着するキープレスはバインディングにマッチしません。545* キリル文字などの非ラテンレイアウトの場合、Claude Code はターミナルが Kitty キーボードプロトコルを使用し、その位置を報告する場合、キーの US レイアウト位置で Ctrl ショートカットをマッチさせます。そのようなターミナルでロシア語レイアウトがアクティブな場合、Ctrl キーと物理的な W キーを押すと `ctrl+w` がトリガーされます。位置を報告しないターミナルでは、Claude Code はターミナルがキープレスに対して送信するものをマッチさせます。ASCII 制御コードは Latin ショートカットをトリガーし、キリル文字として到着するキープレスはバインディングにマッチしません。

546* AZERTY などのラテン文字を並べ替えるレイアウトの場合、Claude Code はキーが入力する文字をマッチさせるため、Ctrl キーと A というラベルのキーを押すと `ctrl+a` がトリガーされます。546* AZERTY などのラテン文字を並べ替えるレイアウトの場合、Claude Code はキーが入力する文字をマッチさせるため、Ctrl キーと A というラベルのキーを押すと `ctrl+a` がトリガーされます。

547 547 

548v2.1.247 より前では、Ghostty、Kitty、WezTerm、iTerm2 などの Kitty キーボードプロトコルを使用するターミナルで、非ラテンレイアウトの下で Ctrl ショートカットを押してもそのバインディングはトリガーされませんでした。

549 

550<h3 id="chords">548<h3 id="chords">

551 コード549 コード

552</h3>550</h3>


697* スペルミスのあるモディファイア(例:`ctl+k`)。Claude Code は認識できない部分を削除し、残りのキーストロークにバインディングを適用します。この例では `k` です。695* スペルミスのあるモディファイア(例:`ctl+k`)。Claude Code は認識できない部分を削除し、残りのキーストロークにバインディングを適用します。この例では `k` です。

698* 無効なコンテキスト名696* 無効なコンテキスト名

699* 無効なアクション値(アクションが文字列または `null` ではない場合など)697* 無効なアクション値(アクションが文字列または `null` ではない場合など)

700* 不明なアクション名(登録されたアクションのタイプミスなど)。Claude Code はバインディングをスキップし、そのキーのデフォルトバインディングを有効に保ちます。v2.1.246 より前では、不明なアクション名を持つバインディングはそのキーを静かに無効化していました698* 不明なアクション名(登録されたアクションのタイプミスなど)。Claude Code はバインディングをスキップし、そのキーのデフォルトバインディングを有効に保ちます。

701* 予約済みショートカットの競合699* 予約済みショートカットの競合

702* 同じコンテキスト内の重複バインディング700* 同じコンテキスト内の重複バインディング

703 701 

llm-gateway.md +2 −0

Details

45 45 

46[組織向けの LLM gateway をロールアウト](/docs/ja/llm-gateway-rollout)では、各ステップを説明し、各ステップで配布する設定ファイルを示しています。ゲートウェイは組織セットアップの 1 つの部分です。ポリシー実施、使用状況の可視性、データ処理の決定については、[組織向けに Claude Code をセットアップ](/docs/ja/admin-setup)を参照してください。46[組織向けの LLM gateway をロールアウト](/docs/ja/llm-gateway-rollout)では、各ステップを説明し、各ステップで配布する設定ファイルを示しています。ゲートウェイは組織セットアップの 1 つの部分です。ポリシー実施、使用状況の可視性、データ処理の決定については、[組織向けに Claude Code をセットアップ](/docs/ja/admin-setup)を参照してください。

47 47 

48`ANTHROPIC_BASE_URL` を通じて到達するゲートウェイを、管理対象マシンが使用できる唯一の宛先にするには、同じ管理設定ファイルで [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) を `["customEndpoint"]` に設定し、ゲートウェイの `ANTHROPIC_BASE_URL` をそのファイルの `env` ブロックに配置します。Claude Code はその後、Anthropic に直接接続する場合や開発者独自のプロキシを含む他の場所を指すセッションを拒否し、`ANTHROPIC_BASE_URL` をそこに設定した値でのみ受け入れます。`ANTHROPIC_BEDROCK_BASE_URL` などのプロバイダー固有のエンドポイント変数を通じて到達するゲートウェイの場合、`allowedProviders` エントリはどの変数をピン留めするかを指定します。Claude Code v2.1.285 以降が必要です。

49 

48<h2 id="subscriptions-and-gateways">50<h2 id="subscriptions-and-gateways">

49 サブスクリプションとゲートウェイ51 サブスクリプションとゲートウェイ

50</h2>52</h2>

Details

310 310 

311Claude Code は検出リクエストを以下の両方のクレデンシャルヘッダーで送信し、値が解決されないヘッダーは省略します。両方のヘッダーを送信するには Claude Code v2.1.248 以降が必要です。以前のバージョンは `ANTHROPIC_AUTH_TOKEN` が設定されている場合は `Authorization` のみを送信し、それ以外の場合は `x-api-key` のみを送信します。311Claude Code は検出リクエストを以下の両方のクレデンシャルヘッダーで送信し、値が解決されないヘッダーは省略します。両方のヘッダーを送信するには Claude Code v2.1.248 以降が必要です。以前のバージョンは `ANTHROPIC_AUTH_TOKEN` が設定されている場合は `Authorization` のみを送信し、それ以外の場合は `x-api-key` のみを送信します。

312 312 

313* `Authorization`:`ANTHROPIC_AUTH_TOKEN` をベアラートークンとして、またはそれ以外の場合は [`apiKeyHelper`](/docs/ja/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 値をベアラートークンとして。その場合、Claude Code はリクエストを送信する前にヘルパーが戻るのを待ちます。313* `Authorization`:`ANTHROPIC_AUTH_TOKEN` をベアラートークンとして、またはそれ以外の場合は [`apiKeyHelper`](/docs/ja/llm-gateway-connect#rotate-credentials-with-apikeyhelper) 値をベアラートークンとして。

314* `x-api-key`:Claude Code が解決した API キー(`ANTHROPIC_API_KEY` など)。ヘルパー値が唯一のクレデンシャルである場合、このヘッダーもそれを含むため、値は両方のヘッダーに到達します。314* `x-api-key`:Claude Code が解決した API キー(`ANTHROPIC_API_KEY` など)。ヘルパー値が唯一のクレデンシャルである場合、このヘッダーもそれを含むため、値は両方のヘッダーに到達します。

315 315 

316Claude Code は `ANTHROPIC_CUSTOM_HEADERS` からのすべてのヘッダーも送信します。カスタムヘッダーが空でない値を持つ場合、Claude Code はそれを同じ名前の組み込みヘッダーの代わりに送信し、名前を大文字と小文字を区別せずにマッチングします。316Claude Code は `ANTHROPIC_CUSTOM_HEADERS` からのすべてのヘッダーも送信します。カスタムヘッダーが空でない値を持つ場合、Claude Code はそれを同じ名前の組み込みヘッダーの代わりに送信し、名前を大文字と小文字を区別せずにマッチングします。

mcp.md +6 −6

Details

273 273 

274* ``⏸ Pending approval (run `claude` to approve)``: まだ承認していない `.mcp.json` からのプロジェクトスコープサーバー。Claude Code はそれを `claude mcp list` と `claude mcp get <name>` の両方に表示します。対話的に `claude` を実行して、それを確認して承認してください。274* ``⏸ Pending approval (run `claude` to approve)``: まだ承認していない `.mcp.json` からのプロジェクトスコープサーバー。Claude Code はそれを `claude mcp list` と `claude mcp get <name>` の両方に表示します。対話的に `claude` を実行して、それを確認して承認してください。

275* `✘ Rejected (see disabledMcpjsonServers in settings)`: [`disabledMcpjsonServers`](/docs/ja/settings-reference#disabledmcpjsonservers) エントリが拒否する `.mcp.json` サーバー。Claude Code はそれを `claude mcp get <name>` にのみ表示します。275* `✘ Rejected (see disabledMcpjsonServers in settings)`: [`disabledMcpjsonServers`](/docs/ja/settings-reference#disabledmcpjsonservers) エントリが拒否する `.mcp.json` サーバー。Claude Code はそれを `claude mcp get <name>` にのみ表示します。

276* `⊘ Disabled for this project (re-enable via /mcp)`: プロジェクトの [`disabledMcpServers`](#disable-a-server-without-removing-it) リストが名前を付けるサーバー。Claude Code はそれを `claude mcp list` と `claude mcp get <name>` の両方に表示します。`/mcp` パネルからサーバーをオンに戻してください。v2.1.238 より前では、両方のコマンドが無効なサーバーに接続して健全性チェックを実行し、接続結果を報告していました。276* `⊘ Disabled for this project (re-enable via /mcp)`: プロジェクトの [`disabledMcpServers`](#disable-a-server-without-removing-it) リストが名前を付けるサーバー。Claude Code はそれを `claude mcp list` と `claude mcp get <name>` の両方に表示します。`/mcp` パネルからサーバーをオンに戻してください。

277 277 

278WebSocket サーバーは `claude mcp list` 出力に表示されません。`claude mcp get <name>` または `/mcp` パネルを使用してそれらを確認してください。278WebSocket サーバーは `claude mcp list` 出力に表示されません。`claude mcp get <name>` または `/mcp` パネルを使用してそれらを確認してください。

279 279 


321 321 

322* **隠れた空白**: Claude Code は MCP 設定値が隠れた先頭または末尾の空白を持つときに警告します。これはしばしば末尾の改行を持つトークンを貼り付けることから来ます。Claude Code は `command`、`url`、各 `args` エントリ、および `env` と `headers` の下の値とキー名をチェックします。Claude Code は警告を `claude mcp list` 出力と `/mcp` に表示し、影響を受けたフィールドに名前を付けます。例えば `Leading or trailing whitespace in: headers.Authorization`。Claude Code は空白をトリムしません。書き込まれたとおりに値を使用するため、設定を編集してそれを削除してください。322* **隠れた空白**: Claude Code は MCP 設定値が隠れた先頭または末尾の空白を持つときに警告します。これはしばしば末尾の改行を持つトークンを貼り付けることから来ます。Claude Code は `command`、`url`、各 `args` エントリ、および `env` と `headers` の下の値とキー名をチェックします。Claude Code は警告を `claude mcp list` 出力と `/mcp` に表示し、影響を受けたフィールドに名前を付けます。例えば `Leading or trailing whitespace in: headers.Authorization`。Claude Code は空白をトリムしません。書き込まれたとおりに値を使用するため、設定を編集してそれを削除してください。

323* **複数のスコープで同じ名前**: 異なるエンドポイントで複数の [スコープ](#mcp-installation-scopes) で同じサーバー名を定義する場合、Claude Code は `claude mcp list` 出力と `/mcp` で競合について警告します。Claude Code は OAuth サインインをエンドポイントごとに保存するため、1 つのプロジェクトで読み込まれる定義を認証すると、別の定義が読み込まれるプロジェクトで別にサインインする必要があります。必要なエンドポイントを保持し、他を `claude mcp remove <name> --scope <scope>` で削除してください。警告では、Claude Code は各スコープのエンドポイントを設定に書き込まれたとおりに引用します。[`${VAR}` 参照](#environment-variable-expansion-in-mcp-json) は展開されないため、API キーなどの解決された値を表示しません。323* **複数のスコープで同じ名前**: 異なるエンドポイントで複数の [スコープ](#mcp-installation-scopes) で同じサーバー名を定義する場合、Claude Code は `claude mcp list` 出力と `/mcp` で競合について警告します。Claude Code は OAuth サインインをエンドポイントごとに保存するため、1 つのプロジェクトで読み込まれる定義を認証すると、別の定義が読み込まれるプロジェクトで別にサインインする必要があります。必要なエンドポイントを保持し、他を `claude mcp remove <name> --scope <scope>` で削除してください。警告では、Claude Code は各スコープのエンドポイントを設定に書き込まれたとおりに引用します。[`${VAR}` 参照](#environment-variable-expansion-in-mcp-json) は展開されないため、API キーなどの解決された値を表示しません。

324* **予約名**: Claude Code は `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview`、`Claude Browser` を含む組み込みサーバーの名前を予約しています。設定が予約名を持つサーバーを定義する場合、Claude Code はロード時にそれをスキップし、名前を変更するよう求める警告を表示します。`claude mcp add` は予約名を拒否します。`Claude Preview` と `Claude Browser` は両方とも [Claude Code デスクトップアプリのプレビューペイン](/docs/ja/desktop#preview-your-app) が使用する組み込みサーバーに名前を付けます。v2.1.205 より前では、`Claude Browser` は予約されていなかったため、ユーザー設定サーバーはその名前で登録できました。324* **予約名**: Claude Code は `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview`、`Claude Browser` を含む組み込みサーバーの名前を予約しています。設定が予約名を持つサーバーを定義する場合、Claude Code はロード時にそれをスキップし、名前を変更するよう求める警告を表示します。`claude mcp add` は予約名を拒否します。`Claude Preview` と `Claude Browser` は両方とも [Claude Code デスクトップアプリのプレビューペイン](/docs/ja/desktop#preview-your-app) が使用する組み込みサーバーに名前を付けます。

325* **環境変数の欠落**: サーバーの設定の [`${VAR}` 参照](#environment-variable-expansion-in-mcp-json) が設定されていない変数に名前を付け、`:-default` がない場合、Claude Code は `claude mcp list` 出力と `/mcp` で警告し、変数に名前を付けます。`${VAR}` テキストは展開されないままサーバーを読み込みます。変数を設定するか、`${VAR:-default}` フォールバックを追加してください。リモートサーバーの `url` と `headers` では、一部の認証情報変数 [空として読み込まれます](#credential-variables-that-read-as-empty) 代わりに、警告なしで。325* **環境変数の欠落**: サーバーの設定の [`${VAR}` 参照](#environment-variable-expansion-in-mcp-json) が設定されていない変数に名前を付け、`:-default` がない場合、Claude Code は `claude mcp list` 出力と `/mcp` で警告し、変数に名前を付けます。`${VAR}` テキストは展開されないままサーバーを読み込みます。変数を設定するか、`${VAR:-default}` フォールバックを追加してください。リモートサーバーの `url` と `headers` では、一部の認証情報変数 [空として読み込まれます](#credential-variables-that-read-as-empty) 代わりに、警告なしで。

326 326 

327<h4 id="tool-availability">327<h4 id="tool-availability">


417 失敗した最初の接続417 失敗した最初の接続

418</h4>418</h4>

419 419 

420HTTP または SSE サーバーの最初の接続が 5xx レスポンス、接続拒否、タイムアウトなどの一時的なエラーで失敗する場合、Claude Code は最大 3 回再試行します。接続がまだ失敗する場合、Claude Code はサーバーを失敗としてマークします。Claude Code はこのように起動時と、セッション中にサーバーが追加されるときに再試行します。これには Claude Code が [クラウドセッション](/docs/ja/claude-code-on-the-web) に設定から追加するサーバーと、Agent SDK の [`setMcpServers()`](/docs/ja/agent-sdk/typescript) で追加するサーバーが含まれます。420HTTP または SSE サーバーの最初の接続が 5xx レスポンス、接続拒否、タイムアウトなどの一時的なエラーで失敗する場合、Claude Code は最大 3 回再試行します。接続がまだ失敗する場合、Claude Code はサーバーを失敗としてマークします。

421 421 

422Claude Code はこれらの場合には再試行しません。422Claude Code はこれらの場合には再試行しません。

423 423 


553 553 

554プラグインサーバーは `/mcp` に表示され、プラグインから来ることを示すインジケータが付きます。554プラグインサーバーは `/mcp` に表示され、プラグインから来ることを示すインジケータが付きます。

555 555 

556プラグインの stdio サーバーの場合、`claude mcp get` は `Command: stdio`、空の `Args:` 行、および各環境変数を `NAME=[REDACTED]` として出力します。値は認証情報を運ぶことができるため、隠されています。

557 

556**プラグイン MCP ツール名**:558**プラグイン MCP ツール名**:

557 559 

558プラグインにバンドルされた MCP サーバーからのツールは、呼び出し可能な名前にプラグイン名とサーバーキーの両方を含めます。完全な形式は `mcp__plugin_<plugin-name>_<server-name>__<tool-name>` です。`A-Z`、`a-z`、`0-9`、`_`、`-` の外の任意の文字は `_` に置き換えられます。`my-plugin` という名前のプラグインにバンドルされた `database-tools` サーバーの場合、`query` ツールは以下のように呼び出し可能です。560プラグインにバンドルされた MCP サーバーからのツールは、呼び出し可能な名前にプラグイン名とサーバーキーの両方を含めます。完全な形式は `mcp__plugin_<plugin-name>_<server-name>__<tool-name>` です。`A-Z`、`a-z`、`0-9`、`_`、`-` の外の任意の文字は `_` に置き換えられます。`my-plugin` という名前のプラグインにバンドルされた `database-tools` サーバーの場合、`query` ツールは以下のように呼び出し可能です。


1458* トップレベルのプロパティ名は 1 ~ 64 文字の長さで、ASCII 文字と数字、`_`、`.`、`-` のみを使用する必要があります1460* トップレベルのプロパティ名は 1 ~ 64 文字の長さで、ASCII 文字と数字、`_`、`.`、`-` のみを使用する必要があります

1459* スキーマは JSON Schema draft 2020-12 メタスキーマに対して有効である必要があります。Claude Code は `$schema` を宣言していないスキーマと draft 2020-12 を宣言しているスキーマにこのチェックを適用します。他の方言を宣言しているスキーマはこのチェックをスキップしますが、上記のプロパティ名チェックは引き続き適用されます1461* スキーマは JSON Schema draft 2020-12 メタスキーマに対して有効である必要があります。Claude Code は `$schema` を宣言していないスキーマと draft 2020-12 を宣言しているスキーマにこのチェックを適用します。他の方言を宣言しているスキーマはこのチェックをスキップしますが、上記のプロパティ名チェックは引き続き適用されます

1460 1462 

1461Claude Code は [ルートレベルのコンビネータの書き換え](#tool-input-schemas-with-a-root-level-combinator) の後、実際に送信するスキーマに対してチェックを実行します。

1462 

1463Claude Code がツールを除外する場合、その理由をサーバーのログに記録し、除外したツールとその理由を Claude に伝えるため、ツールが見つからない理由を Claude に尋ねることができます。サーバーのスキーマを修正すると、Claude Code が次にサーバーのツールを読み込むときにツールが復帰します。1463Claude Code がツールを除外する場合、その理由をサーバーのログに記録し、除外したツールとその理由を Claude に伝えるため、ツールが見つからない理由を Claude に尋ねることができます。サーバーのスキーマを修正すると、Claude Code が次にサーバーのツールを読み込むときにツールが復帰します。

1464 1464 

1465Claude Code は Anthropic から取得するフィーチャーフラグを通じて除外をオンにします。[フラグ取得がオフになっているデプロイメント](/docs/ja/env-vars#features-that-need-feature-flag-fetching) または フラグが到着したことのないマシン(エアギャップマシンなど)では、Claude Code はチェックを実行してサーバーのログにどのツールが拒否されるかを記録しますが、ツールのスキーマを API に送信します。API は [ツールの位置で名前を付けた 400 エラー](/docs/ja/errors#tool-input-schema-is-invalid) でそのスキーマを含むリクエストを拒否します。v2.1.216 より前では、デプロイメントはこれらのチェックを実行していませんでした。1465Claude Code は Anthropic から取得するフィーチャーフラグを通じて除外をオンにします。[フラグ取得がオフになっているデプロイメント](/docs/ja/env-vars#features-that-need-feature-flag-fetching) またはフラグが到着したことのないマシン(エアギャップマシンなど)では、Claude Code はチェックを実行してサーバーのログにどのツールが拒否されるかを記録しますが、ツールのスキーマを API に送信します。API は [ツールの位置で名前を付けた 400 エラー](/docs/ja/errors#tool-input-schema-is-invalid) でそのスキーマを含むリクエストを拒否します。v2.1.216 より前では、デプロイメントはこれらのチェックを実行していませんでした。

1466 1466 

1467[ルートレベルのコンビネータ処理](#tool-input-schemas-with-a-root-level-combinator) は独立しており、フラグ取得がオフの場合またはフラグが到着したことのない場合、独自の動作を保持します。1467[ルートレベルのコンビネータ処理](#tool-input-schemas-with-a-root-level-combinator) は独立しており、フラグ取得がオフの場合またはフラグが到着したことのない場合、独自の動作を保持します。

1468 1468 

Details

360 360 

361 次に起こることは、問題がどこにあるかを示します。361 次に起こることは、問題がどこにあるかを示します。

362 362 

363 * コマンドが開始され、入力を待ちます。サーバー自体は機能しています。`claude mcp get <name>` を実行し、そこに表示されるコマンドが実行したばかりのコマンドと一致することを確認します。表示されるコマンドが入力したものと異なる場合、サーバーコマンドの前に `--` セパレーターを省略した可能性があります。サーバーを削除し、`--` を配置して再度追加します。`.mcp.json` を手で書いた場合は、その構文と場所を確認します。363 * コマンドが開始され、入力を待ちます。サーバー自体は機能しています。

364 

365 `claude mcp get <name>` を実行し、そこに表示されるコマンドが実行したばかりのコマンドと一致することを確認します。表示されるコマンドが入力したものと異なる場合、サーバーコマンドの前に `--` セパレーターを省略した可能性があります。サーバーを削除し、`--` を配置して再度追加します。`.mcp.json` を手で書いた場合は、その構文と場所を確認します。v2.1.285 より前は、`claude mcp get` は `type` フィールドなしで保存された stdio エントリ(手書きの `.mcp.json` エントリなど)に対して `Command` 行を出力しませんでした。これらのバージョンでは、代わりに `claude mcp list` を実行します。これはどちらの方法でもコマンドラインを出力します。

364 * コマンドエラー:メッセージは Node.js やブラウザなど、不足しているものに名前を付けます。366 * コマンドエラー:メッセージは Node.js やブラウザなど、不足しているものに名前を付けます。

365 </Accordion>367 </Accordion>

366 368 

Details

1430* `error.type`: Claude Code がセッションを停止した理由。`refused` イベントでのみ存在。1430* `error.type`: Claude Code がセッションを停止した理由。`refused` イベントでのみ存在。

1431 * `"helper_failed"`: [ポリシーヘルパー実行が失敗](/docs/ja/settings-reference#helper-failures)1431 * `"helper_failed"`: [ポリシーヘルパー実行が失敗](/docs/ja/settings-reference#helper-failures)

1432 * `"policy_invalid"`: 管理設定に Claude Code が開始するのを停止するエラーが含まれるか、管理ソースが読み込みに失敗したため、Claude Code は組織ログイン強制を確認できません1432 * `"policy_invalid"`: 管理設定に Claude Code が開始するのを停止するエラーが含まれるか、管理ソースが読み込みに失敗したため、Claude Code は組織ログイン強制を確認できません

1433 * `"provider_not_allowed"`: セッションが API プロバイダーを使用するか、プロバイダーのトラフィックをホストに送信するため、管理 [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) リストが許可しません。Claude Code v2.1.285 以降が必要

1433 * `"consent_rejected"`: ユーザーがサーバー管理設定の[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs)を拒否1434 * `"consent_rejected"`: ユーザーがサーバー管理設定の[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs)を拒否

1434 * `"force_refresh_failed"`: [`forceRemoteSettingsRefresh`](/docs/ja/settings-reference#forceremotesettingsrefresh) が必要とする設定フェッチが失敗1435 * `"force_refresh_failed"`: [`forceRemoteSettingsRefresh`](/docs/ja/settings-reference#forceremotesettingsrefresh) が必要とする設定フェッチが失敗

1435 * `"gateway_rejected"`: [Claude アプリゲートウェイ](/docs/ja/claude-apps-gateway)が管理設定ロードに HTTP 403 で応答1436 * `"gateway_rejected"`: [Claude アプリゲートウェイ](/docs/ja/claude-apps-gateway)が管理設定ロードに HTTP 403 で応答

Details

246| `storage.googleapis.com` | 2.1.116 より前のバージョンのネイティブインストーラーとネイティブ自動更新プログラム |246| `storage.googleapis.com` | 2.1.116 より前のバージョンのネイティブインストーラーとネイティブ自動更新プログラム |

247| `registry.npmjs.org` | プラグインインストール(npm ソースプラグインパッケージの取得とプラグインの Node.js パッケージ依存関係のインストール)、`npx` で起動された MCP サーバー、および Claude Code 自体の npm と bun インストール用パッケージレジストリ |247| `registry.npmjs.org` | プラグインインストール(npm ソースプラグインパッケージの取得とプラグインの Node.js パッケージ依存関係のインストール)、`npx` で起動された MCP サーバー、および Claude Code 自体の npm と bun インストール用パッケージレジストリ |

248| `bridge.claudeusercontent.com` | [Chrome の Claude](/docs/ja/chrome) 拡張機能 WebSocket ブリッジ |248| `bridge.claudeusercontent.com` | [Chrome の Claude](/docs/ja/chrome) 拡張機能 WebSocket ブリッジ |

249| `*.frame.claudeusercontent.com` | [Artifact](/docs/ja/artifacts) コンテンツ読み取り。CLI は Claude がアーティファクトを開いたときにこのホストからアーティファクトのファイルを取得し、Artifact ツールがアカウントで[利用可能](/docs/ja/artifacts#availability)な場合のみです。ツールをオフにしてこの要件を削除するには、[`"enableArtifact": false`](/docs/ja/settings-reference#enableartifact) または [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/ja/env-vars) を設定してください。Claude Code は非推奨の [`disableArtifact`](/docs/ja/settings-reference#disableartifact) 設定も尊重します。これらの設定がどのように相互作用するかについては、[アーティファクトを無効にする](/docs/ja/artifacts#disable-artifacts)を参照してください |249| `*.frame.claudeusercontent.com` | [Artifact](/docs/ja/artifacts) コンテンツ読み取り。CLI は Claude がアーティファクトを開いたときにこのホストからアーティファクトのファイルを取得し、Artifact ツールがアカウントで[利用可能](/docs/ja/artifacts#availability)な場合のみです。ツールをオフにしてこの要件を削除するには、[`"enableArtifact": false`](/docs/ja/settings-reference#enableartifact) または [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/ja/env-vars) を設定してください |

250| `github.com` | GitHub ホスト型[プラグインマーケットプレイス](/docs/ja/plugins/overview)とプラグインのクローン(公式 Anthropic マーケットプレイスを含む)。HTTPS または SSH 経由。GitHub `owner/repo` ソースを HTTPS のみでクローンするには、[`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ja/env-vars) を設定してください |250| `github.com` | GitHub ホスト型[プラグインマーケットプレイス](/docs/ja/plugins/overview)とプラグインのクローン(公式 Anthropic マーケットプレイスを含む)。HTTPS または SSH 経由。GitHub `owner/repo` ソースを HTTPS のみでクローンするには、[`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ja/env-vars) を設定してください |

251| `raw.githubusercontent.com` | [`/release-notes`](/docs/ja/commands) のチェンジログフィード。対話型セッションでは、Claude Code はキャッシュされたチェンジログがまだ実行中のバージョンをカバーしていない場合(更新後の初回起動など)、スタートアップ時にバックグラウンドでそれを取得します。非対話型およびクラウドセッションは決してそれを取得しません |251| `raw.githubusercontent.com` | [`/release-notes`](/docs/ja/commands) のチェンジログフィード。対話型セッションでは、Claude Code はキャッシュされたチェンジログがまだ実行中のバージョンをカバーしていない場合(更新後の初回起動など)、スタートアップ時にバックグラウンドでそれを取得します。非対話型およびクラウドセッションは決してそれを取得しません |

252| `*-review.googlesource.com` | `googlesource.com` チェックアウトでの Gerrit 変更検索。Claude Desktop Code タブセッションが [信頼済み](/docs/ja/permissions#project-allow-rules-and-workspace-trust)チェックアウトで開始または再開され、その `origin` が `googlesource.com` ホストである場合、Claude Code はそのホストの `-review` サーバーに匿名で、HEAD の `Change-Id` に一致するオープン変更を 1 回(開始または再開ごと)要求します。他のセッションタイプはこの検索をスキップし、他の Gerrit ホストには接続されません。オプション:[`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) で無効化 |252| `*-review.googlesource.com` | `googlesource.com` チェックアウトでの Gerrit 変更検索。Claude Desktop Code タブセッションが [信頼済み](/docs/ja/permissions#project-allow-rules-and-workspace-trust)チェックアウトで開始または再開され、その `origin` が `googlesource.com` ホストである場合、Claude Code はそのホストの `-review` サーバーに匿名で、HEAD の `Change-Id` に一致するオープン変更を 1 回(開始または再開ごと)要求します。他のセッションタイプはこの検索をスキップし、他の Gerrit ホストには接続されません。オプション:[`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) で無効化 |

Details

86| Claude Code の実行方法 | 組み込み開始権限モード |86| Claude Code の実行方法 | 組み込み開始権限モード |

87| :- | :- |87| :- | :- |

88| 設定ファイルが `disableAutoMode` を `"disable"` に設定 | `default` |88| 設定ファイルが `disableAutoMode` を `"disable"` に設定 | `default` |

89| `claude -p` または [Agent SDK](/docs/ja/agent-sdk/permissions) | `default` |89| `claude -p` または [Agent SDK](/docs/ja/agent-sdk/permissions#permission-modes) | [フィーチャーフラグを取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)するセッションでは `default`。テレメトリがオフの場合やサードパーティプロバイダーなど、フィーチャーフラグを取得しないセッションでは、Claude Code v2.1.285 以降では `auto`、以前のバージョンでは `default`。auto デフォルトを保留するポリシーを持つ組織内のセッションは、代わりに `default` で開始します |

90| ターミナルまたは [VS Code 拡張機能](/docs/ja/vs-code)を通じて | `auto`(Claude Code v2.1.283 以降)。以前のバージョンでは、Pro、Max、または Team プランで [フィーチャーフラグを取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)するセッションでは `auto`、それ以外は `default` |90| ターミナルまたは [VS Code 拡張機能](/docs/ja/vs-code)を通じて | Claude Code v2.1.283 以降では `auto`。以前のバージョンでは、Pro、Max、または Team プランで [フィーチャーフラグを取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)するセッションでは `auto`、それ以外は `default` |

91 91 

92[インストールまたはアップグレード後の最初のセッション](/docs/ja/env-vars#first-session-after-an-install-or-upgrade)では、Claude Code はフィーチャーフラグが到達する前に開始権限モードを選択できます。そのセッションは表が示すものとは異なる権限モードで開始する可能性があり、次のセッションは表に一致します。92[インストールまたはアップグレード後の最初のセッション](/docs/ja/env-vars#first-session-after-an-install-or-upgrade)では、Claude Code はフィーチャーフラグが到達する前に開始権限モードを選択できます。そのセッションは表が示すものとは異なる権限モードで開始する可能性があり、次のセッションは表に一致します。

93 93 


98* ターミナルでは、セッションの上部に 1 回98* ターミナルでは、セッションの上部に 1 回

99* VS Code 拡張機能では、新しい会話画面のカードとして、却下するまで表示されます99* VS Code 拡張機能では、新しい会話画面のカードとして、却下するまで表示されます

100 100 

101Pro、Max、Team プランでは、`~/.claude/settings.json` が `auto` 以外の `defaultMode` を設定し、他の設定ファイルが設定しない場合、セッションはそのモードで開始し続けます。Claude Code はターミナルまたは VS Code 拡張機能で 1 回、設定を auto モードに変更するかどうかを尋ねます。却下した場合、設定はそのままです。101`~/.claude/settings.json` が `auto` 以外の `defaultMode` を設定し、他の設定ファイルが設定しない場合、セッションはそのモードで開始し続けます。Pro、Max、Team プランおよび [フィーチャーフラグを取得しない](/docs/ja/env-vars#features-that-need-feature-flag-fetching)セッションでは、Claude Code はターミナルまたは VS Code 拡張機能で 1 回、設定を auto モードに変更するかどうかを尋ねます。却下した場合、設定はそのままです。

102 102 

103<h3 id="start-in-a-different-mode">103<h3 id="start-in-a-different-mode">

104 異なる権限モードで開始する104 異なる権限モードで開始する


322 Bedrock、Agent Platform、または Foundry での auto モード322 Bedrock、Agent Platform、または Foundry での auto モード

323</h3>323</h3>

324 324 

325[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)、[Microsoft Foundry](/docs/ja/microsoft-foundry)、およびサインイン済みの[Claude apps gateway](/docs/ja/claude-apps-gateway)セッションでは、auto モードはデフォルトで利用可能です。Claude Code v2.1.283 以降では、インタラクティブターミナルと[VS Code](/docs/ja/vs-code)セッションの[組み込みの開始権限モード](#which-mode-a-session-starts-in)でもあります。開始権限モードを自分で選択するには、[別の権限モードで開始](#start-in-a-different-mode)で説明されているように `permissions.defaultMode` を設定するか、VS Code 拡張機能のモード指示器から権限モードを選択します。325[Amazon Bedrock](/docs/ja/amazon-bedrock)、[Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)、[Microsoft Foundry](/docs/ja/microsoft-foundry)、およびサインイン済みの[Claude apps gateway](/docs/ja/claude-apps-gateway)セッションでは、auto モードはデフォルトで利用可能です。何も権限モードを設定しない場合、これらのプロバイダーでは、インタラクティブターミナルと VS Code セッションの[組み込みの開始権限モード](#which-mode-a-session-starts-in)でもあります。開始権限モードを自分で選択するには、[別の権限モードで開始](#start-in-a-different-mode)で説明されているように `permissions.defaultMode` を設定するか、VS Code 拡張機能のモード指示器から権限モードを選択します。

326 326 

327これらのプロバイダーでは、Claude Sonnet 5 以降、Opus 4.7 以降、および Fable モデルのみがサポートされています。他のモデルでは、セッションは代わりに Manual で開始します。327これらのプロバイダーでは、Claude Sonnet 5 以降、Opus 4.7 以降、および Fable モデルのみがサポートされています。他のモデルでは、セッションは代わりに Manual で開始します。

328 328 

permissions.md +14 −3

Details

601 601 

602[Claude Code フック](/docs/ja/hooks-guide)は、実行時に権限評価を実行するカスタムシェルコマンドを登録する方法を提供します。Claude Code がツール呼び出しを行うと、PreToolUse フックは権限プロンプトの前に実行されます。ただし、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior)を除くすべてのツールに対して実行されます。フック出力はツール呼び出しを拒否し、プロンプトを強制し、またはプロンプトをスキップしてコールを続行させることができます。602[Claude Code フック](/docs/ja/hooks-guide)は、実行時に権限評価を実行するカスタムシェルコマンドを登録する方法を提供します。Claude Code がツール呼び出しを行うと、PreToolUse フックは権限プロンプトの前に実行されます。ただし、[`EndConversation`](/docs/ja/tools-reference#endconversation-tool-behavior)を除くすべてのツールに対して実行されます。フック出力はツール呼び出しを拒否し、プロンプトを強制し、またはプロンプトをスキップしてコールを続行させることができます。

603 603 

604フック決定は権限ルールをバイパスしません。Claude Code は deny ルールと ask ルールを、フックが何を返すかに関係なく評価します。マッチする deny ルールはコールをブロックし、マッチする ask ルールはフックが `"allow"` または `"ask"` を返した場合でもプロンプトを表示します。これは、[権限を管理する](#manage-permissions)で説明されている deny 優先の優先順位を保持し、管理設定で設定された deny ルールを含みます。604PreToolUse フック決定は権限ルールをバイパスしません。Claude Code は deny ルールと ask ルールを、フックが何を返すかに関係なく評価します。マッチする deny ルールはコールをブロックし、マッチする ask ルールはフックが `"allow"` または `"ask"` を返した場合でもプロンプトを表示します。これは、[権限を管理する](#manage-permissions)で説明されている deny 優先の優先順位を保持し、管理設定で設定された deny ルールを含みます。

605 

606その優先順位は、設定ファイル内のフックとプラグインの `hooks/hooks.json` 内のフックをカバーしています。インストールする[mod](/docs/ja/plugins/mods/overview)が `tool.check` をフックする場合、ルールと `PreToolUse` フックが決定した後に応答し、その応答はそれらを置き換えることができます。

607 

608* **Ask ルール**: mod は ask ルールがプロンプトを表示するコールを承認できます

609* **`PreToolUse` フックからのブロック**: mod はコールを承認できます。ただし、フックが管理設定にある場合を除きます

610* **自動モード分類器**: [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、mod が承認するコールは分類器チェックなしで実行されます

611* **Deny ルール**: 管理設定を持つマシン上、または Team または Enterprise プランでサインインしている場合、deny ルールはデフォルトで mod より優先され、組織はそれを変更できます。その他の場所では、mod は deny ルールが拒否するコールを承認できます

612 

613[mod を信頼するかどうかを決定する](/docs/ja/plugins/mods/overview#decide-whether-to-trust-a-mod)を参照するか、管理設定をデプロイする場合は[組織の mod を管理する](/docs/ja/plugins/mods/admin#know-what-happens-by-default)を参照してください。

605 614 

606[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool)でマークされた MCP ツールも、フックが `"allow"` を返した場合でもプロンプトを表示します。コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))も同様に、その設定が Claude Code に到達するセッションではプロンプトを表示します。615[`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool)でマークされた MCP ツールも、フックが `"allow"` を返した場合でもプロンプトを表示します。コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))も同様に、その設定が Claude Code に到達するセッションではプロンプトを表示します。

607 616 


719 728 

720設定スコープ全体でも同じことが当てはまります。ユーザー設定で権限が許可されており、プロジェクト設定で拒否されている場合、拒否ルールがそれをブロックします。逆も同様です。ユーザーレベルの deny がプロジェクトレベルの allow をブロックします。これは、任意のスコープからの deny ルールが allow ルールの前に評価されるためです。729設定スコープ全体でも同じことが当てはまります。ユーザー設定で権限が許可されており、プロジェクト設定で拒否されている場合、拒否ルールがそれをブロックします。逆も同様です。ユーザーレベルの deny がプロジェクトレベルの allow をブロックします。これは、任意のスコープからの deny ルールが allow ルールの前に評価されるためです。

721 730 

731この優先順位は、設定ファイルとコマンドライン引数の間のものです。deny ルールがインストールした [mod](/docs/ja/plugins/mods/overview) に対して有効かどうかについては、[フックで権限を拡張する](#extend-permissions-with-hooks)を参照してください。

732 

722埋め込みホストは、SDK の `managedSettings` オプションを介して追加の管理ポリシーを提供できます。これには、管理者が `allowManaged*Only` ロックを設定していない限り、権限許可ルールが含まれます。[Claude Desktop セッションにポリシーを配信する](/docs/ja/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)では、埋め込み元ポリシーがいつ適用されるかについて説明しています。733埋め込みホストは、SDK の `managedSettings` オプションを介して追加の管理ポリシーを提供できます。これには、管理者が `allowManaged*Only` ロックを設定していない限り、権限許可ルールが含まれます。[Claude Desktop セッションにポリシーを配信する](/docs/ja/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)では、埋め込み元ポリシーがいつ適用されるかについて説明しています。

723 734 

724<h2 id="project-allow-rules-and-workspace-trust">735<h2 id="project-allow-rules-and-workspace-trust">


765| 設定ファイル内の[Hooks](/docs/ja/hooks)、[`env`](/docs/ja/settings-reference#env)ブロック、[`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper)などのヘルパーコマンド、およびプロジェクトスキルの[hooks](/docs/ja/hooks#hooks-in-skills-and-agents)と[`allowed-tools`](/docs/ja/skills#pre-approve-tools-for-a-skill) | 使用 | 使用。ワークスペーストラストはどのセッションでもスキルの `allowed-tools` をゲートしません |776| 設定ファイル内の[Hooks](/docs/ja/hooks)、[`env`](/docs/ja/settings-reference#env)ブロック、[`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper)などのヘルパーコマンド、およびプロジェクトスキルの[hooks](/docs/ja/hooks#hooks-in-skills-and-agents)と[`allowed-tools`](/docs/ja/skills#pre-approve-tools-for-a-skill) | 使用 | 使用。ワークスペーストラストはどのセッションでもスキルの `allowed-tools` をゲートしません |

766| `.claude/settings.json` 内の `permissions.allow` ルールと `additionalDirectories` | トラストダイアログを受け入れるまで使用されません。ダイアログは再度表示され、それらをリストします | 使用されません。Claude Code は stderr に[`this workspace has not been trusted`](/docs/ja/errors#workspace-has-not-been-trusted)警告を出力します |777| `.claude/settings.json` 内の `permissions.allow` ルールと `additionalDirectories` | トラストダイアログを受け入れるまで使用されません。ダイアログは再度表示され、それらをリストします | 使用されません。Claude Code は stderr に[`this workspace has not been trusted`](/docs/ja/errors#workspace-has-not-been-trusted)警告を出力します |

767| プロジェクト[subagent](/docs/ja/sub-agents#hooks-in-subagent-frontmatter)のフロントマターフック、プロジェクト[`@skills-dir` プラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository)、およびリポジトリまたは `--add-dir` ディレクトリからの[`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces)エントリ | 使用されず、ダイアログは提供されません | 使用されません |778| プロジェクト[subagent](/docs/ja/sub-agents#hooks-in-subagent-frontmatter)のフロントマターフック、プロジェクト[`@skills-dir` プラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository)、およびリポジトリまたは `--add-dir` ディレクトリからの[`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces)エントリ | 使用されず、ダイアログは提供されません | 使用されません |

768| リポジトリまたは `--add-dir` ディレクトリからの subagent のフロントマター内のインライン[`mcpServers`](/docs/ja/sub-agents#scope-mcp-servers-to-a-subagent)。v2.1.238 より前では、Claude Code はこれらのサーバーを両方の状況で読み込んでいました | 使用されず、ダイアログは提供されません | 使用されません |779| リポジトリまたは `--add-dir` ディレクトリからの subagent のフロントマター内のインライン[`mcpServers`](/docs/ja/sub-agents#scope-mcp-servers-to-a-subagent) | 使用されず、ダイアログは提供されません | 使用されません |

769| `.mcp.json` 内のサーバー。リポジトリが[独自の設定で承認](/docs/ja/mcp#project-server-approvals-and-workspace-trust)するものを含む | Claude Code は接続する前にあなたに尋ねます。リポジトリ独自の承認はカウントされません | 承認されているかどうかに関わらず接続されます。SDK はセッティングソースがプロジェクト設定を含む場合にのみそれらを読み込みます。同じフォルダの `claude mcp list` はそのようなサーバーを保留中として報告します |780| `.mcp.json` 内のサーバー。リポジトリが[独自の設定で承認](/docs/ja/mcp#project-server-approvals-and-workspace-trust)するものを含む | Claude Code は接続する前にあなたに尋ねます。リポジトリ独自の承認はカウントされません | 承認されているかどうかに関わらず接続されます。SDK はセッティングソースがプロジェクト設定を含む場合にのみそれらを読み込みます。同じフォルダの `claude mcp list` はそのようなサーバーを保留中として報告します |

770| `.mcp.json` 内のサーバー上の[`headersHelper`](/docs/ja/mcp#trust-a-folder-before-its-headershelper-runs)。v2.1.238 より前では、Claude Code はヘルパーを両方の状況で実行していました | トラストダイアログを受け入れるまで実行されません。ダイアログは再度表示され、ヘルパーが宣言されている場所を名前で指定します。Claude Code はそれまでサーバーを静的 `headers` のみで接続します | 実行されません。Claude Code はサーバーを静的 `headers` のみで接続し、サーバーごとに stderr に[`headersHelper not run`](/docs/ja/errors#headershelper-not-run)行を出力します |781| `.mcp.json` 内のサーバー上の[`headersHelper`](/docs/ja/mcp#trust-a-folder-before-its-headershelper-runs) | トラストダイアログを受け入れるまで実行されません。ダイアログは再度表示され、ヘルパーが宣言されている場所を名前で指定します。Claude Code はそれまでサーバーを静的 `headers` のみで接続します | 実行されません。Claude Code はサーバーを静的 `headers` のみで接続し、サーバーごとに stderr に[`headersHelper not run`](/docs/ja/errors#headershelper-not-run)行を出力します |

771 782 

772このフォルダを信頼する必要がある行については、手動で信頼してください。`~/.claude.json` で `projects["<path>"].hasTrustDialogAccepted` を `true` に設定します。`<path>` はリポジトリルート、またはリポジトリ外のフォルダ自体です。Claude Code はスキップされた subagent フックまたはインライン MCP サーバーのデバッグログ行、スキップされた許可ルールの stderr 警告、およびスキップされたヘルパーの `headersHelper not run` 行に正確なキーを出力します。783このフォルダを信頼する必要がある行については、手動で信頼してください。`~/.claude.json` で `projects["<path>"].hasTrustDialogAccepted` を `true` に設定します。`<path>` はリポジトリルート、またはリポジトリ外のフォルダ自体です。Claude Code はスキップされた subagent フックまたはインライン MCP サーバーのデバッグログ行、スキップされた許可ルールの stderr 警告、およびスキップされたヘルパーの `headersHelper not run` 行に正確なキーを出力します。

773 784 

Details

29すべてのサブコマンドは、これらの終了コード、プラグイン引数、およびスコープ値を共有します:29すべてのサブコマンドは、これらの終了コード、プラグイン引数、およびスコープ値を共有します:

30 30 

31* **終了コード**: 成功時は `0`、失敗時は `1`。`validate` は予期しないエラーに対して終了 `2` を追加し、`eval` は[そのセクション](#plugin-eval)にリストされたコードを追加します。31* **終了コード**: 成功時は `0`、失敗時は `1`。`validate` は予期しないエラーに対して終了 `2` を追加し、`eval` は[そのセクション](#plugin-eval)にリストされたコードを追加します。

32* **プラグイン引数**: `<plugin>` 引数はプラグイン `name` または `name@marketplace` です。2 つのマーケットプレイスが同じ名前を提供する場合は、修飾形式を使用してください。32* **プラグイン引数**: `<plugin>` 引数はプラグイン `name` または `name@marketplace` です。2 つのマーケットプレイスが同じ名前を提供する場合は、修飾形式を使用してください。`configure` は修飾形式のみを取ります。

33* **スコープ**: `--scope` は `user`、`project`、または `local` を取り、コマンドが書き込む設定ファイルに名前を付けます。`update` は `managed` も取ります。33* **スコープ**: `--scope` は `user`、`project`、または `local` を取り、コマンドが書き込む設定ファイルに名前を付けます。`update` は `managed` も取ります。

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">


87| フラグ | 説明 |87| フラグ | 説明 |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | インストールスコープ: `user`、`project`、または `local`。デフォルトは `user` |89| `-s, --scope <scope>` | インストールスコープ: `user`、`project`、または `local`。デフォルトは `user` |

90| `--config <key=value>` | プラグインのマニフェストが宣言する [`userConfig`](/docs/ja/plugins/manifest-reference) オプションを設定します。各オプションについてフラグを繰り返します。Claude Code v2.1.147 以降が必要です |90| `--config <key=value>` | プラグインのマニフェストが宣言する [`userConfig`](/docs/ja/plugins/manifest-reference) オプションを設定します。各オプションについてフラグを繰り返します。Claude Code v2.1.147 以降が必要です。`<server>.<key>` として書かれたキーは、プラグイン内に同梱されたバンドルファイルの[バンドル MCP サーバー](/docs/ja/plugins/components#include-a-packaged-mcpb-server)が独自の `user_config` で宣言する設定を設定します。`<server>.<key>` 形式には Claude Code v2.1.285 以降が必要です |

91| `-y, --yes` | `Run this command now?` プロンプトなしで表示されたインストールコマンドを受け入れます。Bash ツールまたはフックからなど、Claude Code セッション内で実行されるコマンドでは無視されます。Claude Code v2.1.229 以降が必要です |91| `-y, --yes` | `Run this command now?` プロンプトなしで表示されたインストールコマンドを受け入れます。Bash ツールまたはフックからなど、Claude Code セッション内で実行されるコマンドでは無視されます。Claude Code v2.1.229 以降が必要です |

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 以降が必要です |


293| :- | :- |293| :- | :- |

294| `--json` | リストを JSON として出力 |294| `--json` | リストを JSON として出力 |

295| `--available` | マーケットプレイスが提供するがインストールしていないプラグインもリストします。`--json` なしでは効果がありません |295| `--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 以降が必要です |

296 297 

297Claude Code は、各プラグインがどのようにロードされるかでグループ化された人間が読める出力を出力します:298Claude Code は、各プラグインがどのようにロードされるかでグループ化された人間が読める出力を出力します:

298 299 


324| `notes` | 文字列の配列 | ロードして機能するプラグインのオーサリング警告 |325| `notes` | 文字列の配列 | ロードして機能するプラグインのオーサリング警告 |

325| `errorDetails` | オブジェクトの配列 | 各 `errors` エントリごとに 1 つのオブジェクト。診断 `type` と、プラグイン、マーケットプレイス、サーバー、またはファイルなど、それが参照する名前を提供します。Claude Code v2.1.268 以降が必要です |326| `errorDetails` | オブジェクトの配列 | 各 `errors` エントリごとに 1 つのオブジェクト。診断 `type` と、プラグイン、マーケットプレイス、サーバー、またはファイルなど、それが参照する名前を提供します。Claude Code v2.1.268 以降が必要です |

326| `noteDetails` | オブジェクトの配列 | 各 `notes` エントリの同じ詳細オブジェクト。Claude Code v2.1.268 以降が必要です |327| `noteDetails` | オブジェクトの配列 | 各 `notes` エントリの同じ詳細オブジェクト。Claude Code v2.1.268 以降が必要です |

328| `hasUserConfig` | ブール値 | プラグインがロードされ、そのマニフェストが [`userConfig` オプション](/docs/ja/plugins/manifest-reference#user-configuration)を宣言する場合に存在し、`true`。ロードに失敗したプラグインの場合は存在しません。マニフェストが何を宣言しても。保存された値は含まれません。Claude Code v2.1.285 以降が必要です |

329| `projectEnabled` | ブール値 | プロジェクトの共有 `.claude/settings.json` がプラグインをオンにするかどうか。マーケットプレイスインストールのみ。Claude Code v2.1.285 以降が必要です |

330| `dataDirSize` | オブジェクト | `--data-size` を使用すると、プラグインの[保存されたデータディレクトリ](#what-an-uninstall-deletes-and-keeps)のサイズが `bytes` および `human` として表示されます。ディレクトリが見つからないか空の場合は存在しません。マーケットプレイスインストールのみ。Claude Code v2.1.285 以降が必要です |

331| `dataDirUnreadable` | ブール値 | `--data-size` を使用すると、保存されたデータディレクトリが存在するが測定できない場合は `true`。マーケットプレイスインストールのみ。Claude Code v2.1.285 以降が必要です |

327 332 

328`--json --available` を使用すると、Claude Code は配列の代わりに 1 つのオブジェクトを出力します。その `installed` フィールドはインストール済みプラグインオブジェクトの配列を保持し、その `available` フィールドはインストールされていない各マーケットプレイスプラグインを以下のフィールドを持つオブジェクトとして保持します。333`--json --available` を使用すると、Claude Code は配列の代わりに 1 つのオブジェクトを出力します。その `installed` フィールドはインストール済みプラグインオブジェクトの配列を保持し、その `available` フィールドはインストールされていない各マーケットプレイスプラグインを以下のフィールドを持つオブジェクトとして保持します。

329 334 


367 372 

368ロードされていないプラグインの場合、Claude Code は ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` を出力し、`1` で終了します。373ロードされていないプラグインの場合、Claude Code は ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` を出力し、`1` で終了します。

369 374 

375<h3 id="plugin-configure">

376 plugin configure

377</h3>

378 

379インストール済みプラグインの [`userConfig`](/docs/ja/plugins/manifest-reference#user-configuration) オプションを表示し、どれが設定されているか、または stdin でパイプされた値を保存します。Claude Code v2.1.285 以降が必要です。

380 

381```bash theme={null}

382claude plugin configure <plugin>

383```

384 

385| フラグ | 説明 |

386| :- | :- |

387| `--values-stdin` | stdin から JSON オブジェクトとしてオプション値を読み込み、保存します。省略したオプションは保存された値を保持します |

388| `--json` | stdout に 1 つの JSON オブジェクトとして結果を出力します。`--values-stdin` なしで、オブジェクトはオプションの `schema` と `choices`、開始 `inputs`、および `configured` と `unconfigured` オプション名を含みます。`--values-stdin` を使用すると、`saved` オプション名と、読み込める場合は `unconfigured` オプション名を含みます |

389 

390フラグなしで、コマンドは各オプションを最大 3 つのラベルでリストします:`required` または `optional`、その後マニフェストが機密として宣言するオプションの場合は `sensitive`、その後 `set` または `not set`。保存された値は出力されません。`--json` を使用すると、出力には機密でないオプションの保存された値が含まれ、機密オプションのテキストは含まれません。

391 

392値を保存するには、JSON オブジェクトとしてファイルに書き込み、オプションキーを文字列値にマップし、ファイルを stdin で渡します。`formatter@my-marketplace` を `claude plugin list` が表示するプラグインの id に置き換えます。この例は、`{"api_url": "https://example.com"}` を含むファイル `values.json` から `api_url` という名前の 1 つのオプションを設定します:

393 

394```bash theme={null}

395claude plugin configure formatter@my-marketplace --values-stdin < values.json

396```

397 

398Claude Code は各値をオプションの宣言された型に対して検証し、`Configuration saved. Restart Claude Code to apply it.` を出力します。マニフェストが宣言しないキーを渡すか、検証に失敗する値を渡す場合、コマンドは何も保存せず、`Failed to save configuration:` を理由と共に出力し、`1` で終了します。`--json` を使用すると、拒否された値は `message` を含む `refused` フィールドを持つ stdout のオブジェクトも出力し、1 つのオプションが原因の場合はその `option` キーを含みます。

399 

400`claude plugin list` が表示するプラグインの完全な `name@marketplace` id を渡します。`configure` はベア `name` を受け入れません。ロードされたプラグインにそのような id がない場合、コマンドは `No installed plugin has the id "<plugin>".` を出力し、`1` で終了します。

401 

402バンドル MCP サーバーの設定については、[`plugin install --config`](#plugin-install) または `/plugin` の **Configure** 項目を参照してください。

403 

370<h3 id="plugin-prune">404<h3 id="plugin-prune">

371 plugin prune405 plugin prune

372</h3>406</h3>

Details

791 791 

792`hooks/hooks.json` のフックと `hooks` マニフェストキーの両方が読み込まれます。すべてのイベントとそのペイロードについては、[Hook events](/docs/ja/hooks#hook-events) を参照してください。792`hooks/hooks.json` のフックと `hooks` マニフェストキーの両方が読み込まれます。すべてのイベントとそのペイロードについては、[Hook events](/docs/ja/hooks#hook-events) を参照してください。

793 793 

794JavaScript 関数として Claude Code 内で実行され、そのインターフェイスに描画できるフックを記述するには、同じ `hooks/hooks.json` の `modules` キーの下にモジュールファイルをリストします。1 つを持つプラグインは mod です。[mod を作成する](/docs/ja/plugins/mods/create)を参照してください。

795 

794<h4 id="when-plugin-hooks-fire">796<h4 id="when-plugin-hooks-fire">

795 プラグインフックが発火するとき797 プラグインフックが発火するとき

796</h4>798</h4>


868 870 

869サーバーはバンドルのマニフェストの `name` からその名前を取ります。871サーバーはバンドルのマニフェストの `name` からその名前を取ります。

870 872 

873バンドルのマニフェスト自体は、サーバーがユーザーから必要とする設定を `user_config` ブロックで宣言できます。保存された値がない必須設定を持つバンドルされたサーバーは開始されません。`/plugin` **Errors** タブは `Bundled MCP server "<name>" was not started: it needs configuration` を表示します。

874 

875ユーザーは 2 つの方法のいずれかで値を提供します。

876 

877* **`/plugin` で**: **Installed** タブでプラグインを選択し、**Configure** を選択します。

878* **インストール時、シェルから**: `claude plugin install` に [`--config <server>.<key>=<value>`](/docs/ja/plugins/cli-reference#plugin-install) を渡します。Claude Code v2.1.285 以降が必要で、プラグイン内にパッケージ化されたバンドルに対してのみ機能します。

879 

871トランスポートと認証については、[MCP](/docs/ja/mcp#plugin-provided-mcp-servers) を参照してください。880トランスポートと認証については、[MCP](/docs/ja/mcp#plugin-provided-mcp-servers) を参照してください。

872 881 

873<h3 id="lsp-servers">882<h3 id="lsp-servers">


1071 設定ダイアログが表示されるとき1080 設定ダイアログが表示されるとき

1072</h3>1081</h3>

1073 1082 

1074ダイアログは対話型の `/plugin` インターフェースにのみ表示されます。ユーザーが以下のいずれかを実行したときに、まだ設定されていないオプションに対して開きます。1083ダイアログは対話型の `/plugin` インターフェースの一部です。ユーザーが以下のいずれかを実行したときに、まだ設定されていないオプションに対して開きます。

1075 1084 

1076* `/plugin` でプラグインをインストールする1085* `/plugin` でプラグインをインストールする

1077* セッション内で `/plugin install <plugin>@<marketplace>` を実行する1086* セッション内で `/plugin install <plugin>@<marketplace>` を実行する


1079 1088 

1080ユーザーがいつでも同じダイアログを開くには、`/plugin configure <plugin>@<marketplace>` を実行します。1089ユーザーがいつでも同じダイアログを開くには、`/plugin configure <plugin>@<marketplace>` を実行します。

1081 1090 

1082`claude plugin install` シェルコマンドは `userConfig` 値のプロンプトを表示しません。シェルから値を設定するには、各値を `--config KEY=VALUE` として渡します。オプションが設定されていない場合、コマンドは `userConfig options not yet set` という行を出力し、それらを設定する両方の方法を示します。[`userConfig` ダイアログが表示されない](/docs/ja/plugins/troubleshooting#the-userconfig-dialog-never-appears)場合、その行が引用されます。1091VS Code 拡張機能の [プラグイン管理ダイアログ](/docs/ja/vs-code#install-plugins)は、インストール後にフォームとして未設定のオプションを求め、プラグインの行のギアアイコンはすべてのオプションを含むフォームを再度開きます。

1092 

1093`claude plugin install` シェルコマンドは `userConfig` 値のプロンプトを表示しません。シェルから値を設定するには、インストール時に各値を `--config KEY=VALUE` として渡すか、その後 [`claude plugin configure --values-stdin`](/docs/ja/plugins/cli-reference#plugin-configure) にJSON オブジェクトをパイプします。

1094 

1095オプションが設定されていない場合、`claude plugin install` は `userConfig options not yet set` という行を出力します。その行の正確なテキストについては、[`userConfig` ダイアログが表示されない](/docs/ja/plugins/troubleshooting#the-userconfig-dialog-never-appears)を参照してください。

1083 1096 

1084オプションフィールド、各値が保存される場所、コンポーネントが保存された値を参照する方法、および `${user_config.*}` を拒否するフィールドについては、[ユーザー設定](/docs/ja/plugins/manifest-reference#user-configuration)を参照してください。1097オプションフィールド、各値が保存される場所、コンポーネントが保存された値を参照する方法、および `${user_config.*}` を拒否するフィールドについては、[ユーザー設定](/docs/ja/plugins/manifest-reference#user-configuration)を参照してください。

1085 1098 

Details

72 概要の最後の文は、このセッションでプラグインが使用可能かどうかを示しています。72 概要の最後の文は、このセッションでプラグインが使用可能かどうかを示しています。

73 73 

74 * **Active now**: `Plugin is now active.` リロードは不要です。74 * **Active now**: `Plugin is now active.` リロードは不要です。

75 * **Active, but a server needs setup**: `Plugin is now active.` の後に `Its bundled MCP server needs configuration before it can start` が続きます。プラグインの[バンドルされた MCP サーバー](/docs/ja/plugins/components#include-a-packaged-mcpb-server)は、オプションを設定するまで開始できません。`/plugin` の **Installed** タブでプラグインを選択し、**Configure** を選択してサーバーのオプションを設定します。

75 * **Reload needed**: `Run /reload-plugins to activate.` パネルが閉じ、Claude Code がそのリロードを実行します。リロードが[プロンプトキャッシュを無効化](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)する場合、警告が表示され、代わりにプラグインは保留中のままになります。`/reload-plugins --force` を実行してアクティブ化すると、キャッシュされていない 1 つのリクエストがかかります。76 * **Reload needed**: `Run /reload-plugins to activate.` パネルが閉じ、Claude Code がそのリロードを実行します。リロードが[プロンプトキャッシュを無効化](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)する場合、警告が表示され、代わりにプラグインは保留中のままになります。`/reload-plugins --force` を実行してアクティブ化すると、キャッシュされていない 1 つのリクエストがかかります。

76 * **Load failed**: `The plugin couldn't be loaded`。`/plugin` の **Errors** タブを開いて理由を確認し、[インストール後: プラグインが機能しない](/docs/ja/plugins/troubleshooting#plugin-installed-but-not-working)を参照してください。77 * **Load failed**: `The plugin couldn't be loaded`。`/plugin` の **Errors** タブを開いて理由を確認し、[インストール後: プラグインが機能しない](/docs/ja/plugins/troubleshooting#plugin-installed-but-not-working)を参照してください。

77 </Step>78 </Step>


288 289 

289* 入力して名前または説明でフィルタリングします。290* 入力して名前または説明でフィルタリングします。

290* **Space** を押して選択したプラグインを有効化または無効化し、**f** でお気に入りにします。291* **Space** を押して選択したプラグインを有効化または無効化し、**f** でお気に入りにします。

291* **Enter** を押してプラグインの詳細を開きます。そこのメニューは **Disable plugin** または **Enable plugin**、**Update now**、および **Uninstall** を提供します。設定を取得するプラグインは **Configure options** も提供します。292* **Enter** を押してプラグインの詳細を開きます。

293 

294プラグインの詳細メニューは **Disable plugin** または **Enable plugin**、**Update now**、および **Uninstall** を提供します。設定を取得するプラグインには 2 つの追加項目が表示され、プラグインは両方を表示できます。

295 

296* **Configure options**: プラグインのマニフェストが [`userConfig` オプション](/docs/ja/plugins/manifest-reference#user-configuration)を宣言するときに表示されます。これらのオプションのダイアログを開きます

297* **Configure**: プラグインが[バンドルされた MCP サーバー](/docs/ja/plugins/components#include-a-packaged-mcpb-server)を含むときに表示されます。そのサーバー自体の `user_config` 設定を設定します

292 298 

293タブは **Managed** スコープのプラグインも表示できます。組織は [管理設定](/docs/ja/settings#settings-files)を通じてそれらをインストールし、ここでそれらを有効化、無効化、またはアンインストールすることはできません。299タブは **Managed** スコープのプラグインも表示できます。組織は [管理設定](/docs/ja/settings#settings-files)を通じてそれらをインストールし、ここでそれらを有効化、無効化、またはアンインストールすることはできません。

294 300 

Details

146| [`dependencies`](#dependencies) | Array of strings or objects | このプラグインが機能するために有効にする必要があるプラグイン |146| [`dependencies`](#dependencies) | Array of strings or objects | このプラグインが機能するために有効にする必要があるプラグイン |

147| [`settings`](#settings) | Object | プラグインが有効な間に Claude Code が適用する設定。`agent` と `subagentStatusLine` のみが有効です |147| [`settings`](#settings) | Object | プラグインが有効な間に Claude Code が適用する設定。`agent` と `subagentStatusLine` のみが有効です |

148| [`userConfig`](#user-configuration) | Object | プラグインが有効な場合に Claude Code がユーザーに入力を促す値 |148| [`userConfig`](#user-configuration) | Object | プラグインが有効な場合に Claude Code がユーザーに入力を促す値 |

149| `types` | Path | [mod](/docs/ja/plugins/mods/reference#files) の `$.state` 値と `$` 名詞を宣言する `.d.ts` ファイル |

149| [`channels`](#channels) | Array of objects | プラグインが提供するメッセージチャネル。各チャネルは MCP サーバーの 1 つにバインドされます |150| [`channels`](#channels) | Array of objects | プラグインが提供するメッセージチャネル。各チャネルは MCP サーバーの 1 つにバインドされます |

150| `skills` | Path, or array of paths | スキルをスキャンするディレクトリ。各ディレクトリは `<name>/SKILL.md` フォルダまたは `SKILL.md` を直接保持する 1 つのフォルダです。`"."` はプラグインルートを指定します。デフォルトの `skills/` スキャンに追加されます |151| `skills` | Path, or array of paths | スキルをスキャンするディレクトリ。各ディレクトリは `<name>/SKILL.md` フォルダまたは `SKILL.md` を直接保持する 1 つのフォルダです。`"."` はプラグインルートを指定します。デフォルトの `skills/` スキャンに追加されます |

151| [`commands`](#commands) | Path, array of paths, or object | フラットな `.md` コマンドファイル、それらのディレクトリ、またはコマンド名を `source` または `content` にマップするオブジェクト。デフォルトの `commands/` スキャンを置き換えます |152| [`commands`](#commands) | Path, array of paths, or object | フラットな `.md` コマンドファイル、それらのディレクトリ、またはコマンド名を `source` または `content` にマップするオブジェクト。デフォルトの `commands/` スキャンを置き換えます |


170 171 

171Claude Code はすべてのコンポーネントをその下に名前空間化するため、プラグイン `deploy-tools` のエージェント `reviewer` は `deploy-tools:reviewer` として表示されます。172Claude Code はすべてのコンポーネントをその下に名前空間化するため、プラグイン `deploy-tools` のエージェント `reviewer` は `deploy-tools:reviewer` として表示されます。

172 173 

174`claude plugin validate` は、名前が Anthropic 独自のプラグインの 1 つとして機能しないことも確認します。チェックは大文字小文字を無視し、セパレータの任意の実行を 1 つとして扱います。

175 

176| 名前 | 結果 |

177| :- | :- |

178| `claude-`、`anthropic-`、`anthropics-`、または `cc-plugin-` で始まる | エラー |

179| `claude`、`anthropic`、`anthropics`、`claude-code`、または `claude-mods` である | エラー |

180| `official-claude-tools` など、`official` を `claude` または `anthropic` の隣に配置する | エラー |

181| `mcp-for-claude` など、`claude`、`anthropic`、または `anthropics` を全単語として他の場所に持つ | 警告 |

182 

183エラーは `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` と読み、警告は `Plugin name "<name>" reads as one of Anthropic's own` と読みます。`claude plugin init` と `claude plugin tag` はエラーを引き出す名前を拒否します。これらのコマンドのみが名前をチェックします。Claude Code は、拒否する名前を持つプラグインをインストールして読み込みます。

184 

173<h3 id="displayname">185<h3 id="displayname">

174 `displayName`186 `displayName`

175</h3>187</h3>

Details

484| `Author name cannot be empty` | エラー | `owner.name` |484| `Author name cannot be empty` | エラー | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | エラー | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | エラー | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | エラー | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | エラー | `plugins[i].name` |

487| `Plugin name "x" is reserved: it passes as one of Anthropic's own` | エラー | `plugins[i].name`。マニフェストの [`name`](/docs/ja/plugins/manifest-reference#name) で予約名を参照してください |

488| `Plugin name "x" reads as one of Anthropic's own` | 警告 | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | エラー | `name` |489| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | エラー | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | エラー | `plugins[i].name` |490| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | エラー | `plugins[i].name` |

489| `Duplicate plugin name "x" found in marketplace` | エラー | 2 つのエントリが同じ `name` を共有しています |491| `Duplicate plugin name "x" found in marketplace` | エラー | 2 つのエントリが同じ `name` を共有しています |

plugins/mods/admin.md +375 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 組織向けの mod を管理する

6 

7> 管理設定で Claude Code の mod を制御します。ユーザーがインストールした mod を停止し、自分たちの mod のみを許可し、mod が実行できることを確認し、独自の mod でポリシーを実施します。

8 

9[mod](/docs/ja/plugins/mods/overview) は Claude Code 内で実行されるプラグインで、それをインストールしたユーザーの権限で実行されます。Mod はサンドボックス化されていません。[管理設定](/docs/ja/managed-settings) を通じて、ユーザーのマシンで mod が実行されるかどうか、どの mod が実行されるか、実行順序を決定できます。他の mod が何をするかを監視または拒否する独自の mod をインストールすることもできます。

10 

11このページは、ファイル、MDM、または claude.ai 管理コンソールを通じて Claude Code の管理設定をデプロイする担当者向けです。Mod は Claude Code v2.1.287 以降ではデフォルトで有効です。実行したい内容に合わせて、以下のセクションから選択してください。

12 

13* **ユーザーの独自 mod を除外する(独自の mod の有無を問わず)**: [ユーザーがインストールした mod の読み込みを停止する](#stop-user-installed-mods-from-loading)

14* **何も変更しない場合に何が起こるかを確認する**: [デフォルトで何が起こるかを理解する](#know-what-happens-by-default)

15* **mod を有効にして他の制限を設定する**: [許可する範囲を選択する](#choose-how-much-to-allow)

16 

17<Note>

18 以下のケースは他のページで説明されています。

19 

20 * **管理設定をまだデプロイしていない**: [管理設定をデプロイする](/docs/ja/managed-settings) から始めてください

21 * **ユーザーがインストールできるプラグインを制御したい**: [組織向けのプラグインを管理する](/docs/ja/plugins/org) を参照してください

22</Note>

23 

24<h2 id="stop-user-installed-mods-from-loading">

25 ユーザーがインストールした mod の読み込みを停止する

26</h2>

27 

28ユーザーが持ち込むすべての mod が読み込まれないようにするには、[組み込みガード](#know-what-happens-by-default)(Claude Code がユーザーがインストールするすべての mod の前に読み込むポリシー mod)で `allowManagedModsOnly` オプションを設定します。このオプションは、マネージド設定の `pluginConfigs` に `cc-plugin-sec-default@builtin` をキーとして配置します。

29 

30```json managed-settings.json theme={null}

31{

32 "pluginConfigs": {

33 "cc-plugin-sec-default@builtin": {

34 "options": {

35 "allowManagedModsOnly": true

36 }

37 }

38 }

39}

40```

41 

42マネージド設定でこのオプションを設定すると:

43 

44* **ユーザーが持ち込む mod は読み込まれません**:ユーザーがインストールしたプラグイン内の mod、`--plugin-dir` で読み込まれた mod、および [Claude がセッション中に作成した mod](/docs/ja/plugins/mods/create#ask-claude-for-a-mod) が対象です

45* **組織の mod は引き続き読み込まれます**:[組織のものとしてカウントされる](#install-your-organizations-mods) mod はチェックされません。その他のすべての mod はユーザーのものとしてカウントされ、読み込まれません。これには、GitHub または他のリモートマーケットプレイスから有効にしたプラグイン内の mod、および組織が claude.ai でメンバー向けに有効にした mod が含まれます。組織のものとしてカウントされるものがない場合、インストールされた mod は読み込まれません

46* **ユーザーはこれを元に戻せません**:ガードはマネージド設定からのみオプションを読み取るため、ユーザー、プロジェクト、またはローカル設定ファイル内の同じエントリ、または `--settings` で渡されたファイル内のエントリは何も変わりません

47* **ファイルまたは MDM ポリシーはすべてのプロバイダーに対応します**:オプションをファイルとして、または MDM を通じて配信する場合、Amazon Bedrock、Google Cloud の Agent Platform、および Microsoft Foundry で同じように機能します。claude.ai 管理コンソールからの配信については、[プラットフォームの可用性](/docs/ja/server-managed-settings#platform-availability) を参照してください

48* **ユーザーの他のカスタマイズは引き続き機能します**:[設定ファイル内の hooks](/docs/ja/hooks)、ステータス行、および `/goal` は影響を受けません

49* **組み込み mod は引き続き実行されます**:`AGENTS.md` サポートなど Claude Code に組み込まれた mod には、[それぞれ独自のスイッチ](/docs/ja/plugins/mods/overview#mods-built-into-claude-code) があります

50 

51ユーザーのマシンでオプションを確認するには、`--plugin-dir` と mod を保持するディレクトリのパス(例:`claude --plugin-dir ./first-mod`)を使用して Claude Code を起動します。mod の hooks は実行されず、トランスクリプトとデバッグログに [ガードのメッセージ](/docs/ja/plugins/mods/troubleshoot#messages-from-the-built-in-guard) が表示されます。このメッセージは mod と `allowManagedModsOnly` の名前を示します。mod が読み込まれる場合は、[ポリシーが有効であることを確認する](/docs/ja/managed-settings#check-that-a-policy-is-in-force) および [オプションが有効になるかどうかを決定するルール](#set-options-on-the-built-in-guard) を参照してください。

52 

53早期アクセス中に `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` を `0` に設定した場合は、このオプションに置き換えてください。Claude Code v2.1.287 以降は、任意の値で変数を無視するため、そこに `0` があると mod は有効なままになります。

54 

55<h2 id="know-what-happens-by-default">

56 デフォルトで何が起こるかを理解する

57</h2>

58 

59独自の mod 設定がない場合、ユーザーは以下を取得します。

60 

61* **Mod は有効です。** ユーザーは、プラグイン設定が許可するマーケットプレイスから mod を含むプラグインをインストールするか、`--plugin-dir` を使用してディレクトリから読み込むことができます。

62* **組み込みガードが最初に実行されます。** Claude Code は、ユーザーがインストールしたすべての mod の前に、`sec-default@builtin` という名前の組み込み mod を読み込みます。ユーザーはそれをオフにすることはできません。`/plugin` とデバッグログは、それを `cc-plugin-sec-default` として一覧表示します。ガードは以下のいずれかが真の場合に読み込まれます。

63 

64 * マシンに管理設定がある

65 * ユーザーが Team または Enterprise プランで Claude Code にサインインしている

66 

67 API キー、または Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry を通じて認証するユーザーは、管理設定を持つマシンでのみガードを取得します。

68* **ガードは管理対象を保護します。** ユーザーの mod は、管理フックが受け取るもの、システムプロンプト、管理対象の `CLAUDE.md` およびその他の管理対象の指示、mod が設定として読み取るもの、または管理対象の MCP サーバーのツールと説明を変更することはできません。

69* **その他はすべて許可されます。** ガードは他の制限を追加しません。ユーザーの mod は、ファイルの読み取りと書き込み、プロセスの開始、ネットワークリクエストの実行、ツール呼び出しとプロンプトの書き直し、ツール呼び出しの拒否、そうでなければプロンプトが表示されるツール呼び出しの承認、インターフェイスへの描画をすべてそのユーザーの権限で実行できます。

70* **拒否ルールと管理フックが優先されます。** ガードが読み込まれる場所では、ユーザーの mod は、`deny` ルールが拒否する呼び出しを承認することはできません。ルールを保持する設定ファイルがどれであれ。管理設定の `PreToolUse` フックからのブロックも最終的です。どちらも Claude のツール呼び出しに適用されます。どちらも mod 独自の [`$.fs` と `$.process` 呼び出し](/docs/ja/plugins/mods/api#reach-files-processes-and-the-network) には適用されません。`Read(.env)` が拒否されている場合、mod は `$.fs.read` でそのファイルを読み取るか、それを実行するプログラムを開始できます。これらの呼び出しを制限するには、mod の読み込みを防ぐか、[ポリシー mod](#enforce-a-policy-with-a-mod-of-your-own) で呼び出しをフックしてください。

71* **他の権限チェックはオーバーライドできます。** ツール呼び出しを承認するユーザーの mod は、`ask` ルールがプロンプトを表示する呼び出し、または管理設定外の `PreToolUse` フックがブロックした呼び出しを承認できます。自動モードでは、mod が承認する呼び出しは分類器チェックなしで実行されます。

72 

73ガードのソースは、[Claude Code リポジトリの `mods/sec-default` ディレクトリ](https://github.com/anthropics/claude-code/tree/main/mods/sec-default) で公開されています。

74 

75<h3 id="know-which-controls-still-apply">

76 どのコントロールが引き続き適用されるかを知る

77</h3>

78 

79Mod は既に持っているコントロールを置き換えません。

80 

81* **設定フックは引き続き機能します。** 設定ファイルおよびプラグインの `hooks/hooks.json` 内のコマンド、HTTP、プロンプト、エージェントフックは以前と同じように実行され、mod と並行して実行されます。これについて非推奨のものはありません。

82* **拒否ルールはガードが読み込まれる場所で優先されます。** ユーザーの mod は、`deny` ルールが拒否する呼び出しを承認することはできません。ただし、[`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard) を設定する場合を除きます。

83* **管理フックが最初に実行されます。** 管理設定の `PreToolUse` フックは、mod がツール呼び出しを見る前に実行され、そのブロックは最終的です。mod がその後呼び出しを書き直す場合、管理フックは書き直された呼び出しで再度実行されるため、ブロックは引き続き適用されます。他の設定ファイルおよびプラグインからの `PreToolUse` フックは最後の mod の後に実行されるため、独自の結果を返すツール実行の代わりに返す mod は、それらが実行されるのを防ぎます。[Mod が実行される順序](/docs/ja/plugins/mods/events#the-order-mods-run-in) を参照してください。

84* **ネットワークポリシーは `$.http.fetch` をカバーします。** 組織が Web フェッチをオフにするか、セッションの非必須ネットワークトラフィックがオフになっている場合、Claude Code は mod が `$.http.fetch` で実行するネットワークリクエストを拒否します。ポリシーは mod が `$.process.run` で開始するプログラムをカバーしません。そのプログラムはユーザー独自のアクセスでネットワークに到達します。

85* **プラグインコントロールは mod をカバーします。** Mod はプラグインであるため、[ユーザーがインストールできるものを制限する設定](/docs/ja/plugins/org#restrict-what-users-can-install)(`strictKnownMarketplaces` など)は、それをインストールできるかどうかを決定します。

86* **Mod は権限プロンプトを変更できません。** Mod は Claude Code のインターフェイスの大部分を再スタイル化できますが、権限プロンプトはできないため、プロンプトが表示するものを変更できません。Mod は、[デフォルトで何が起こるかを理解する](#know-what-happens-by-default) で説明されているように、プロンプトが表示される前にツール呼び出しを承認または拒否できます。

87* **信頼プロンプトが最初に表示されます。** ユーザーがまだ信頼していないディレクトリでのインタラクティブセッションでは、信頼プロンプトに答えるまで mod は読み込まれません。

88* **`--safe-mode` はインストールされた mod をオフにします(独自の mod を含む)。** セッションを `claude --safe-mode` で開始して、mod が問題を引き起こしたかどうかを確認します。

89 

90これらのコントロールのいずれも mod をサンドボックス化しません。許可する mod はユーザーとして実行され、ファイル、プロセス、ネットワークへのユーザーのアクセスを持ちます。

91 

92<h2 id="decide-whether-to-leave-mods-on">

93 Mod を有効にするかどうかを決定する

94</h2>

95 

96Mod は、Claude Code 内で実行されるため、プラグインの他の部分よりも多くのことができます。すべてのプロンプトとツール呼び出しを見ることができ、それらを変更でき、権限プロンプトが表示される前にツール呼び出しを許可または拒否できます。

97 

98ユーザーが mod として読み込むことができるものは、既に持っているプラグインコントロールに依存します。

99 

100| 現在のプラグインコントロール | ユーザーが mod として読み込むことができるもの |

101| :- | :- |

102| なし | マーケットプレイスから、`--plugin-dir` を使用したディレクトリから、または Claude がセッション中に作成した mod |

103| マーケットプレイスの許可リスト | 許可するマーケットプレイスから、または `--plugin-dir` を使用したディレクトリから。Claude がセッション中に作成した mod は、許可リストが [`skills-dir`](/docs/ja/plugins/org#keep-skills-directory-plugins-loading) を含む場合にのみ読み込まれます。 |

104| マーケットプレイスの許可リストと `disableSideloadFlags` | 許可するマーケットプレイスから |

105 

106[組織向けのプラグインを管理する](/docs/ja/plugins/org) は、プラグインが読み込まれるすべての方法と各方法を制御する設定を一覧表示しています。

107 

108ユーザーがインストールする前にマーケットプレイス内の mod を確認するには、[mod が実行できることを確認する](#review-what-a-mod-can-do) を参照してください。ユーザーの mod を確認するまで除外するには、[ユーザーがインストールした mod の読み込みを停止する](#stop-user-installed-mods-from-loading) を参照してください。

109 

110<h3 id="review-what-a-mod-can-do">

111 Mod が実行できることを確認する

112</h3>

113 

114実行せずに mod が実行できることを確認できます。シェルで、プラグインのディレクトリで `claude plugin validate` を実行します。

115 

116```bash theme={null}

117claude plugin validate ./some-mod

118```

119 

120出力の 2 行は mod のコードを説明しています。

121 

122```text theme={null}

123 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}

124 ❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open

125```

126 

127`hooks:` 行は mod が受け取るイベントを一覧表示しています。`calls:` 行は mod のコードが呼び出す mod API メソッドを一覧表示しています。[Mod API](/docs/ja/plugins/mods/api)(mod のコードで `$` として記述)は、mod がファイル、プロセス、ネットワークに到達する方法です。Claude Code は、このコマンドが読み取ることができない方法で mod API を使用する mod の読み込みを拒否します。

128 

129`calls:` 行でこれらを探してください。

130 

131| 呼び出し | 意味 |

132| :- | :- |

133| `$.fs.read`, `$.fs.write` | ユーザーが実行できる場所のファイルを読み取りまたは書き込みます |

134| `$.process.run`, `$.process.spawn` | ユーザーとしてプログラムを開始します |

135| `$.http.fetch` | ネットワークリクエストを実行します |

136| `$.env.get`, `$.settings.read` | API キーを保持できる環境変数と設定を読み取ります。`env reads:` 行は各変数に名前を付けます。 |

137| `$.env.set` | Claude Code およびそれが開始するすべてのコマンドと MCP サーバーの環境変数を設定し、それらが実行するものを変更できます。`env writes:` 行は各変数に名前を付けます。 |

138| `$.mcp.call` | 接続された MCP サーバーのツールを呼び出し、セッションの権限ルールの下で実行します |

139| `$.model.complete` | ユーザーのプランまたは API キーをモデル呼び出しに使用します |

140| `$.prompt.submit` | プロンプトを送信し、ユーザー独自の言葉として送信できます |

141| `$.session.send` | 別のセッションまたはサブエージェントの Claude が読む メッセージを送信します |

142 

143`hooks:` 行では、[`tool.call`](/docs/ja/plugins/mods/reference#tools) と [`prompt.submit`](/docs/ja/plugins/mods/reference#prompts-and-what-claude-reads) は mod がすべてのツール呼び出しとすべてのプロンプトを見ることができ、それらを変更できることを意味しています。[`session.append`](/docs/ja/plugins/mods/reference#session) は mod が保存される前に会話の各行を書き直すことができることを意味しています。[`ui.render{component=AskUserQuestion}`](/docs/ja/plugins/mods/interface#change-what-claude-code-already-draws) は mod が Claude がユーザーに質問するために使用するダイアログを再描画できることを意味しています。`tool.check` は mod が権限プロンプトが表示される前にツール呼び出しを承認または拒否できることを意味しています。[デフォルトで何が起こるかを理解する](#know-what-happens-by-default) は、その答えに優先する規則とフックを一覧表示しています。

144 

145<h2 id="choose-how-much-to-allow">

146 許可する範囲を選択する

147</h2>

148 

149Mod ポリシーは、インストールされた mod がまったくない状態から、ユーザーが選択した任意の mod まで、独自の mod が他の mod をチェックし、各ポリシーは数個の管理設定です。最初の列で必要なポリシーを見つけ、2 番目の列が名前を付けるものを設定します。[管理設定をデプロイする](/docs/ja/managed-settings) は、管理設定がどこに存在するかをカバーしています。

150 

151| 必要なもの | 設定 |

152| :- | :- |

153| インストールされた mod なし、フックは変更なし | [`allowManagedModsOnly`](#set-options-on-the-built-in-guard) を設定し、独自の mod をデプロイしません |

154| インストールされた mod なし、フックもなし、管理フックを含む | `disableAllHooks` を `true` に設定します |

155| 組織の mod のみ | ガードの [`allowManagedModsOnly` オプション](#stop-user-installed-mods-from-loading) を設定し、[mod をインストール](#install-your-organizations-mods) してそれらが組織のものとしてカウントされるようにします |

156| 承認するマーケットプレイスからの任意の mod | [マーケットプレイス制限](/docs/ja/plugins/org#restrict-what-users-can-install) を保持し、`disableSideloadFlags` を `true` に設定します |

157| 任意の mod、独自の mod が他の mod をチェック | [mod をインストール](#install-your-organizations-mods) し、`prependPlugins` で `sec-default@builtin` と共にリストします |

158 

159各設定が実行すること。

160 

161* **`allowManagedModsOnly`**: 組み込みガードのオプション。ユーザーの独自 mod は読み込まれず、設定フック、ステータス行、`/goal` は引き続き機能します。[ユーザーがインストールした mod の読み込みを停止する](#stop-user-installed-mods-from-loading) はそれがカバーするものを一覧表示しています。

162* **`allowManagedHooksOnly`**: より広い設定。[組織の mod](#install-your-organizations-mods) と Claude Code に組み込まれた mod のみが読み込まれます。ユーザーが自分でインストールした mod は読み込まれません。設定はユーザー独自の設定ファイル内のフックもブロックします。設定する前に [「`allowManagedHooksOnly` の下で実行されるもの」](/docs/ja/settings-reference#what-runs-under-allowmanagedhooksonly) を読んでください。

163* **`disableAllHooks`**: 最も広い設定。管理設定では、インストールされたすべてのプラグイン(組織のものを含む)の mod を停止し、設定ファイル内のすべてのフックをオフにするため、管理設定の `PreToolUse` フックはもはや何もブロックしません。カスタムステータス行と `/goal` も機能しなくなります。設定する前に [`disableAllHooks`](/docs/ja/settings-reference#disableallhooks) を読んでください。

164* **`disableSideloadFlags`**: スタートアップで `--plugin-dir` と `--plugin-url` を拒否するため、誰もディレクトリから mod を読み込まず、Claude がセッション中に作成した mod の読み込みを防ぎます。設定は `--agents` と `--mcp-config` も拒否します。設定する前に [`disableSideloadFlags`](/docs/ja/settings-reference#disablesideloadflags) を読んでください。

165 

166Claude Code に組み込まれた mod(`AGENTS.md` サポートなど)は、これらの設定の影響を受けません。各 mod には [独自のスイッチ](/docs/ja/plugins/mods/overview#mods-built-into-claude-code) があります。

167 

168mod が読み込まれなかったユーザーは、デバッグログで理由を見つけます。[拒否メッセージ](/docs/ja/plugins/mods/troubleshoot#refusal-messages) は `allowManagedHooksOnly` と `disableAllHooks` の行を一覧表示し、[組み込みガードからのメッセージ](/docs/ja/plugins/mods/troubleshoot#messages-from-the-built-in-guard) は `allowManagedModsOnly` の行を持っています。

169 

170<h3 id="set-options-on-the-built-in-guard">

171 組み込みガードでオプションを設定する

172</h3>

173 

174組み込みガードは 2 つのオプションを取ります。[ユーザーがインストールした mod の読み込みを停止する](#stop-user-installed-mods-from-loading) の例のように、管理設定の `pluginConfigs` の下に、`cc-plugin-sec-default@builtin` をキーとして設定します。

175 

176表は、各オプションが設定されていない場合と `true` に設定されている場合にユーザーが取得するものを示しています。

177 

178| オプション | 設定されていない | `true` |

179| :- | :- | :- |

180| `allowManagedModsOnly` | ユーザーの独自 mod が読み込まれます | [組織の mod](#install-your-organizations-mods) と Claude Code に組み込まれた mod のみが読み込まれます。Claude Code はユーザーがインストールした mod または `--plugin-dir` で名前を付けた mod を含む他のすべての mod を拒否します。 |

181| `allowModsToOverrideDenyRules` | 拒否ルールはユーザーの mod より優先されます | ツール呼び出しを承認するユーザーの mod は、`deny` ルールが拒否する呼び出しを承認できます |

182 

183これらのルールはオプションが有効になるかどうかを決定します。

184 

185* **ID はここで 1 つのスペルを持ちます**: Claude Code はオプションを `cc-plugin-sec-default@builtin` の下でのみ読み取ります。`prependPlugins` は `sec-default@builtin` も受け入れ、`pluginConfigs` は受け入れません。

186* **管理設定のみがカウントされます**: ユーザー、プロジェクト、またはローカル設定ファイル内の同じエントリ、または `--settings` で渡されたファイル内のエントリは、オプションを設定したり、オプションを緩和したりしません

187* **ガードが読み込まれる必要があります**: `prependPlugins` を設定する場合、[リストでガードに名前を付けます](#install-your-organizations-mods)。ガードが読み込まれない場所では、どちらのオプションも適用されません。

188* **ガードは閉じた状態で失敗します**: ガードが管理設定を読み取ることができない場合、すべてのユーザーの mod を読み込み時に拒否します。ユーザーの mod が承認した呼び出しの拒否ルールをチェックできない場合、呼び出しを拒否します。

189 

190[組み込みガードからのメッセージ](/docs/ja/plugins/mods/troubleshoot#messages-from-the-built-in-guard) は、どちらのオプションが適用される場合にユーザーが見るものです。

191 

192<h2 id="run-your-organization’s-own-mods">

193 組織独自の mod をデプロイする

194</h2>

195 

196組織独自の mod をすべてのユーザーにデプロイし、ユーザーの mod との相対的な実行位置を選択し、ポリシーを強制するために使用できます。

197 

198<h3 id="install-your-organizations-mods">

199 組織の mod をインストールして順序を設定する

200</h3>

201 

202組織の mod は、ユーザーの mod が存在しない場所で読み込まれ、その前に実行できるため、Claude Code は mod が組織から来たものであることを判断できる必要があります。mod が組織のものとして扱われるのは、以下のすべてが当てはまる場合のみです。

203 

204* 管理対象の `enabledPlugins` が mod のプラグインを `true` に設定する

205* 管理対象の設定が、プラグインの [marketplace](/docs/ja/plugins/create-marketplace) をユーザーのマシン上のディレクトリとして、絶対パスで指定する。`extraKnownMarketplaces` エントリがそれを行い、ユーザーのマーケットプレイスも登録する

206* マーケットプレイスがプラグインを相対パスでリストアップするため、Claude Code はそのディレクトリから [in-place で読み込みます](/docs/ja/plugins/loading#in-place-and-copied-plugins)

207 

208これらを満たすために、デバイス管理でマーケットプレイスディレクトリをすべてのマシンの同じパスにコピーします。ディレクトリとその上のすべてのディレクトリを、管理対象の設定ファイルと同様に、管理者のみが書き込み可能にします。そこに書き込むことができる人は誰でも mod を書き直すことができます。claude.ai 管理コンソールから配信する管理対象の設定はキーを含むことができますが、マシンにディレクトリを配置することはできません。

209 

210ディレクトリはマーケットプレイスのマニフェストとプラグインを保持します。

211 

212```text theme={null}

213/opt/acme/claude-plugins/

214├── .claude-plugin/

215│ └── marketplace.json

216└── plugins/

217 └── acme-guard/

218 ├── .claude-plugin/

219 │ └── plugin.json

220 └── hooks/

221 ├── hooks.json

222 └── register.js

223```

224 

225マニフェストはプラグインをそのディレクトリに相対的なパスでリストアップします。

226 

227```json /opt/acme/claude-plugins/.claude-plugin/marketplace.json theme={null}

228{

229 "name": "acme-tools",

230 "owner": { "name": "Acme" },

231 "plugins": [

232 { "name": "acme-guard", "source": "./plugins/acme-guard", "description": "Acme policy mod" }

233 ]

234}

235```

236 

237Claude Code がキャッシュにコピーするプラグインは、管理対象の `enabledPlugins` がそれを有効にしている場合でも、ユーザーのものとしてカウントされます。これは GitHub、git、URL、または npm ソースからのすべてのプラグインをカバーします。その mod はユーザーの mod の中で実行され、`prependPlugins` と `appendPlugins` はそれをスキップし、`allowManagedModsOnly` または `allowManagedHooksOnly` の下では読み込まれません。ユーザーのデバッグログには、プラグインの id で始まり、`is enabled by managed settings, but` が続く行があります。

238 

239Claude Code は、ツールを実行するなど、アクションを実行しようとするたびにイベントを発生させ、それを順番に各 mod に渡します。組織のものとしてカウントされる mod は、どこにもリストアップされていない場合でも、[ユーザーの mod の前に実行されます](/docs/ja/plugins/mods/events#the-order-mods-run-in)。その位置を設定するには、その id を 2 つの設定のいずれかにリストアップします。id はプラグインの名前、`@`、およびマーケットプレイスの名前です。例えば、`acme-guard@acme-tools` です。

240 

241* **`prependPlugins`**: 組織の mod はすべてのユーザーの mod の前にすべてのイベントを見て、その後すべての結果を見ます。イベントを変更したり、拒否したり、ユーザーの mod をスキップできます。

242* **`appendPlugins`**: 組織の mod はすべてのユーザーの mod の後に実行されるため、それらの mod が渡すイベントのみを、渡す形式で見ます。

243 

244この例は、`acme-tools` マーケットプレイスを `/opt/acme/claude-plugins` で宣言し、そこから `acme-guard` を有効にし、その mod を最初に実行し、その後に組み込みガードを実行します。

245 

246```json managed-settings.json theme={null}

247{

248 "extraKnownMarketplaces": {

249 "acme-tools": {

250 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

251 }

252 },

253 "enabledPlugins": { "acme-guard@acme-tools": true },

254 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]

255}

256```

257 

258各キーは 1 つのジョブを実行します。

259 

260* **`extraKnownMarketplaces`**: `acme-tools` マーケットプレイスを保持するディレクトリに名前を付けます。`path` は `.claude-plugin/marketplace.json` を含むディレクトリの絶対パスです。

261* **`enabledPlugins`**: これらの管理対象の設定を受け取るすべてのユーザーに対して `acme-guard` をオンにします。

262* **`prependPlugins`**: `acme-guard` を最初に、組み込みガードを 2 番目に配置し、両方ともユーザーがインストールする mod の前に配置します。Claude Code はリストアップした順序に従います。

263 

264ユーザーのマシンが設定を受け取ったことを確認するには、[ポリシーが有効であることを確認する](/docs/ja/managed-settings#check-that-a-policy-is-in-force) を参照してください。

265 

266mod がどこで実行されるかを確認するには、そのマシンで `claude --debug` を使用してセッションを開始し、[デバッグログ](/docs/ja/plugins/mods/troubleshoot#read-the-debug-log) で mod の id を検索します。

267 

268* **`hooks module acme-guard@acme-tools loaded`、`tier prepend` 付き**: mod は組織のものとしてカウントされ、最初に実行されます。

269* **同じ行に `tier user` 付き**: Claude Code はそれをユーザーの mod として扱います。2 番目の行、`prependPlugins names acme-guard@acme-tools, which is not an enabled managed plugin with a hooks module; skipped` は、リストがそれをスキップしたことを示しています。

270 

271これらのルールは、2 つのリストのどの id が有効になるかを決定します。

272 

273* **リストはデフォルトを置き換えます**: 管理対象の設定で `prependPlugins` を設定する場合、組み込みガードを保つために `sec-default@builtin` をそこに名前を付けます。ガードは組み込まれており、`enabledPlugins` エントリは必要ありません。

274* **独自の id は組織のものとしてカウントされる必要があります**: 管理対象の設定では、プラグインが組織の mod の 3 つの条件を満たさない id をスキップします。

275* **リポジトリはそれらを設定できません**: Claude Code は両方の設定を管理対象の設定から読み取り、リポジトリの設定ファイルからは読み取りません。ユーザーは `~/.claude/settings.json` でそれらを設定して、管理対象の設定がなく、Team または Enterprise プランでサインインしていないマシンでのみ独自の mod の順序を設定できます。他の場所では、Claude Code はユーザー設定の両方のキーを無視します。そこのリストは、組み込みガードを追加したり削除したりしません。

276 

277<h3 id="enforce-a-policy-with-a-mod-of-your-own">

278 独自の mod でポリシーを強制する

279</h3>

280 

281すべてのユーザーの mod を除外するには、独自の mod は必要ありません。[`allowManagedModsOnly`](#stop-user-installed-mods-from-loading) を設定します。一部のユーザーの mod を許可して他を拒否したい場合、または mod が何をするかを記録したい場合は、ポリシー mod を作成します。

282 

283別の mod が読み込まれようとするたびに、mod は `claude plugin validate` が出力するリストを、[`plugin.register`](/docs/ja/plugins/mods/reference#other-mods) という名前のイベントで受け取ります。`prependPlugins` の mod はそのリストを読み取り、mod を拒否できます。また、[任意の mod API 呼び出しを名前でフック](/docs/ja/plugins/mods/api#reach-files-processes-and-the-network) して、他のすべての mod のその呼び出しを記録または拒否することもできます。名前は `$.` なしのメソッドなので、`fs.write` のフックはすべての `$.fs.write` 呼び出しを見ます。

284 

285このポリシー mod は、独自のコードが `$.process.run` または `$.process.spawn` を呼び出すユーザーの mod を拒否します。また、監査ログを保持し、各ツール呼び出しと mod が書き込むファイルをデバッグログに書き込みます。最初に実行されるため、ログはユーザーの mod が変更する前に要求されたものを記録します。`acme-guard/hooks/register.js` として保存します。

286 

287```javascript acme-guard/hooks/register.js theme={null}

288// ユーザーの mod が呼び出してはいけないメソッド、各々は namespace.method でスペル

289const BLOCKED_CALLS = ['process.run', 'process.spawn']

290 

291export function register(on) {

292 // 別の mod が読み込まれようとするたびに実行

293 on('plugin.register', async ($, e, next) => {

294 // その mod のコード内のブロックリストにある呼び出しを保持

295 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))

296 if (e.tier === 'user' && blocked.length > 0) {

297 // refuse を返すと mod の読み込みが防止され、テキストが理由です

298 return { refuse: 'Acme policy: mods may not call ' + blocked.join(', ') }

299 }

300 // 他のすべての mod を読み込ませる

301 return next(e)

302 })

303 

304 // 各ツール呼び出しを記録し、その後変更なしで進める

305 on('tool.call', async ($, e, next) => {

306 $.ui.log('audit tool.call ' + e.tool, { to: 'debug' })

307 return next(e)

308 })

309 

310 // どの mod がファイルを書き込んだか、その後パスを記録し、mod が選択したため引用符で囲む

311 on('fs.write', async ($, e, next) => {

312 $.ui.log('audit fs.write by ' + next.origin.plugin + ' ' + JSON.stringify(e.path), { to: 'debug' })

313 return next(e)

314 })

315}

316```

317 

318ファイルは 3 つのフックを登録します。

319 

320* **`plugin.register`**: 別の mod が読み込まれるかどうかを決定します。ブロックされたメソッドを呼び出すユーザーの mod を拒否し、他のすべての mod を渡します。

321* **`tool.call`**: 各ツール呼び出しに対して `audit tool.call Bash` などの行をデバッグログに書き込み、何も変更しません。

322* **`fs.write`**: 別の mod が行う各 `$.fs.write` 呼び出しに対して `audit fs.write by reader "/tmp/notes.md"` などの行を書き込み、何も変更しません。mod の名前が最初に来て、パスが引用符で囲まれているため、mod が選択するパスは行の別のフィールドとして渡すことはできません。

323 

324`plugin.register` フックはイベントの 2 つのフィールドを読み取ります。

325 

326* **`e.tier`**: mod が実行される場所、`prepend`、`user`、`append`、または `builtin` のいずれか。人がインストールするすべての mod は `user` です。

327* **`e.uses.calls`**: mod が呼び出す mod API メソッド、各々は `process.run` などの `namespace.method` でスペル、`claude plugin validate` が出力する `$.` なし。

328 

329ユーザーが `$.process.run` を呼び出す mod をインストールすると、mod は読み込まれず、デバッグログに `refused by acme-guard:` で終わる行と理由があります。拒否は、[プラグインディレクトリをホットリロードするセッション](/docs/ja/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing) のトランスクリプトにも到達します。mod 全体を拒否せずに呼び出しをブロックするには、その呼び出しの名前のフックから `{ deny: 'your reason' }` を返します。

330 

331監査行をデバッグログ以外の場所に送信するには、同じフックから `$.http.fetch` を呼び出します。

332 

333セッションは mod なしで実行できます。インストールされた mod を実行するワーカースレッドが [3 回クラッシュ](/docs/ja/plugins/mods/troubleshoot#mods-that-run-in-the-hooks-worker-are-off-for-this-session) した場合、Claude Code は組み込みではないすべての mod(組織のものを含む)をアンロードし、ユーザーが `/reload-plugins` を実行するか新しいセッションを開始するまでそのままにします。また、`--safe-mode` で Claude Code を開始するユーザーは、インストールされた mod(組織のものを含む)なしで実行されます。

334 

335[mod を作成する](/docs/ja/plugins/mods/create) は mod が必要とするファイルをカバーしています。[他の mod を判定する mod をテストする](/docs/ja/plugins/mods/test#test-a-mod-that-judges-other-mods) はこのポリシー mod のテストファイルを持っています。

336 

337<h4 id="refuse-mods-when-your-check-fails">

338 チェックが失敗したときに mod を拒否する

339</h4>

340 

341`plugin.register` フックがスローするか時間制限を超えた場合、Claude Code はフックをスキップするため、チェックは開いて失敗し、チェック中の mod は読み込まれます。閉じて失敗し、ユーザーの mod を拒否するには、チェックを名前付き関数に移動し、拒否を返す `.catch` ハンドラーを追加します。このバージョンのファイルは `plugin.register` フックのみを示しているため、最初のバージョンから 2 つの監査フックを `register` に保持します。

342 

343```javascript acme-guard/hooks/register.js theme={null}

344const BLOCKED_CALLS = ['process.run', 'process.spawn']

345 

346// 前と同じチェック、独自の関数に移動

347async function checkMod($, e, next) {

348 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))

349 if (e.tier === 'user' && blocked.length > 0) {

350 return { refuse: 'Acme policy: mods may not call ' + blocked.join(', ') }

351 }

352 return next(e)

353}

354 

355export function register(on) {

356 // ハンドラーは checkMod がスローするか時間制限を超えたときのみ実行

357 on('plugin.register', checkMod).catch(async ($, e, next) => {

358 // 組織の mod と組み込み mod を読み込ませる

359 if (e.tier !== 'user') return next(e)

360 // チェックできなかったユーザーの mod を拒否

361 return { refuse: 'Acme policy check failed, so this mod was not loaded' }

362 })

363}

364```

365 

366ハンドラーが配置されると、チェックがスローされたか時間制限を超えたときにチェック中だった mod は読み込まれず、拒否行は 2 番目の理由を含みます。例えば、`refused by acme-guard: Acme policy check failed, so this mod was not loaded` のように。ハンドラーは `user` ティア外のすべての mod を `next(e)` に渡すため、失敗したチェックは組織がリストアップする mod を停止しません。[失敗するフックを処理する](/docs/ja/plugins/mods/events#handle-a-hook-that-fails) は他のイベントの `.catch` をカバーしています。

367 

368<h2 id="next-steps">

369 次のステップ

370</h2>

371 

372* [プラグインセキュリティ](/docs/ja/plugins/security): ユーザーのマシンで任意のプラグインが実行できることと、インストール前にプラグインを確認する方法

373* [Mod の概要](/docs/ja/plugins/mods/overview): mod とは何か、フック、スキル、MCP サーバーとの比較

374* [Mod が実行される順序](/docs/ja/plugins/mods/events#the-order-mods-run-in): `prependPlugins` と `appendPlugins` がユーザーの mod とどのように適合するか

375* [設定と環境変数](/docs/ja/plugins/mods/reference#settings-and-environment-variables): このページで名前が付けられたすべての設定を 1 つの表で

plugins/mods/api.md +218 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# mods API を使用する

6 

7> Claude Code mod から mods API を呼び出して、コマンドとツールを追加し、モデルを呼び出し、タイマーで作業を実行し、他のセッションにメッセージを送信し、ファイルとネットワークにアクセスします。

8 

9mods API は、mod が動作するために呼び出すメソッドのセットです。コマンドとツールを追加し、モデルを呼び出し、イベント間で作業を実行し、ファイルシステム、プロセス、ネットワークにアクセスします。すべてのフックは、最初の引数として `$` を受け取り、メソッドは `$.ui` や `$.fs` などの名前空間でグループ化されています。[Events](/docs/ja/plugins/mods/events) はフックが実行されるタイミングを決定し、mods API はフックが実行されたときに呼び出すものです。

10 

11[最初の mod を作成](/docs/ja/plugins/mods/create) してからここを開始してください。すべてのメソッドについては、[mods API メソッド](/docs/ja/plugins/mods/reference#mods-api-methods) を参照するか、[ビルド用の型](/docs/ja/plugins/mods/create#get-the-types-for-your-build) を読んでください。

12 

13<h2 id="add-a-command-or-a-tool">

14 コマンドまたはツールを追加する

15</h2>

16 

17mod はユーザーが実行するコマンドと Claude が呼び出すツールを追加できます。両方を [`session.start`](/docs/ja/plugins/mods/reference#session) フックに登録します。Claude Code はそのフックを最初のプロンプトの前に待つため、登録したものは最初のターンから利用可能です。

18 

19<h3 id="add-a-command">

20 コマンドを追加する

21</h3>

22 

23コマンドはユーザー向けです。登録してから、その名前の [`command.run`](/docs/ja/plugins/mods/reference#commands-and-configuration) を処理します。この例は、オプションの日数を取る `/standup` コマンドを追加します。

24 

25```javascript theme={null}

26on('session.start', async ($, e, next) => {

27 // /standup をコマンドリストに追加し、ユーザーがそこで見る説明を付ける

28 await $.command.register({ name: 'standup', description: 'Summarize what changed today', argumentHint: '[days]' })

29 return next(e)

30})

31 

32// マッチャーはフックを /standup に制限するため、他のコマンドは到達しない

33on('command.run', { command: 'standup' }, async ($, e) => {

34 // e.args はコマンド名の後に入力されたテキスト、または空の文字列

35 return { text: 'Summary for the last ' + (e.args || '1') + ' day(s): ...' }

36})

37```

38 

39セッションが開始した後、`/standup` はその説明とともに `/` を入力したときに表示されるリストに表示されます。`argumentHint` は、コマンドを入力してスペースを入力した後、プロンプトに `/standup [days]` として表示されます。`/standup 3` を実行すると、2 番目のフックは `Summary for the last 3 day(s): ...` を返し、トランスクリプトはプラグイン名の後にそのテキストを表示します。フックは `next` を呼び出しません。コマンドはあなたのもの以外に動作がないためです。

40 

41返す `text` はトランスクリプトに出力され、Claude がそれを読みます。何も出力しない場合、[ペイン](/docs/ja/plugins/mods/interface#pick-where-to-draw) を開くだけのコマンドの場合は、`{}` を返します。Claude が作業中にコマンドを実行できるようにするには、登録に `immediate: true` を追加します。

42 

43組み込みコマンドが使用していない名前を選択してください。セッションで `/` を入力して、それらを確認してください。`$.command.register` は、`"/focus" refused: it is the built-in /focus` などのメッセージで、取得された名前に対してスローします。スローするフックはスキップされるため、その `session.start` フックの残りも実行されません。そのフックの最後にコマンドを登録するか、呼び出しを `try` と `catch` でラップします。

44 

45<h3 id="add-a-tool">

46 ツールを追加する

47</h3>

48 

49ツールは Claude 向けです。名前、Claude が読む説明、入力用の JSON Schema で登録します。Claude は、`mcp__`、プラグイン名、2 つのアンダースコア、登録した名前で構成される長い名前の下にそれを見ます。その呼び出しを、その完全な名前にフィルタリングされた [`tool.call`](/docs/ja/plugins/mods/events#guard-or-change-a-tool-call) フックで処理します。この例は、`my-mod` という名前のプラグインから、`ticket` を登録するため、完全な名前は `mcp__my-mod__ticket` です。Claude に問題追跡ツールでチケットを検索するツールを提供します。

50 

51```javascript theme={null}

52on('session.start', async ($, e, next) => {

53 await $.tool.register({

54 name: 'ticket',

55 // Claude はこの説明からツールを呼び出すタイミングを決定する

56 description: 'Look up a ticket by its id and return its title and status',

57 // Claude が送信する必要がある引数:id という名前の 1 つの必須文字列

58 inputSchema: { type: 'object', properties: { id: { type: 'string' } }, required: ['id'] },

59 })

60 return next(e)

61})

62 

63// 完全なツール名は mcp__、プラグイン名、登録された名前

64on('tool.call', { tool: 'mcp__my-mod__ticket' }, async ($, e) => {

65 // ツールの引数は e のフィールドなので、id は e.id

66 const response = await $.http.fetch('https://tickets.example.com/api/' + encodeURIComponent(e.id))

67 // どちらの場合でも結果を返すため、Claude は検索が失敗したときに学習する

68 return { result: response.ok ? response.text : 'Lookup failed with status ' + response.status }

69})

70```

71 

72チケットについて質問すると、Claude は `mcp__my-mod__ticket` をその id で呼び出すことができます。2 番目のフックはチケットを取得し、応答本文を返します。Claude はそれをツールの結果として読みます。サーバーがエラーステータスで応答すると、Claude は `Lookup failed with status` と数字を読みます。

73 

74<h2 id="call-a-model">

75 モデルを呼び出す

76</h2>

77 

78mod は、テキストの並べ替えや要約などの小さなジョブのために、会話の外で独自にモデルに質問を尋ねることができます。`$.model.complete` はセッションの認証情報を使用して 1 つのプロンプトをモデルに送信し、返信に解決します。会話履歴はありません。

79 

80このフックは、[コマンドとして登録された](#add-a-command) `/triage` コマンドに答え、小さなモデルに、その後に入力されたテキストにラベルを付けるよう尋ねます。

81 

82```javascript theme={null}

83on('command.run', { command: 'triage' }, async ($, e) => {

84 const r = await $.model.complete({

85 model: 'haiku',

86 // システムプロンプトはジョブを設定し、プロンプトはラベル付けするテキストを運ぶ

87 system: 'Reply with one word: bug, feature, or question.',

88 prompt: e.args,

89 // 1 語は少数のトークンが必要で、呼び出しは 15 秒後にあきらめる

90 maxTokens: 20,

91 timeoutMs: 15000,

92 })

93 // r.text は、モデルが応答したときのみ存在するため、最初に r.isAnswered をチェック

94 const label = r.isAnswered ? r.text.trim() : 'unknown'

95 return { text: 'Label: ' + label }

96})

97```

98 

99`/triage the export button does nothing` を実行すると、mod はそのテキストをモデルに送信し、その答え(`Label: bug` など)を出力します。Claude の会話は要求の一部ではありません。モデルが応答しない場合、ラベルは `unknown` です。

100 

101Claude API の失敗は呼び出しを拒否しないため、`r.isAnswered` をチェックし、それが `false` の場合は `r.reason` を読んでください。呼び出しは、Claude Code が送信しない要求(組織がブロックするモデルなど)に対してのみ拒否します。[ビルド用の型](/docs/ja/plugins/mods/create#get-the-types-for-your-build) は、`effort` などの他のオプションをリストし、[制限](/docs/ja/plugins/mods/reference#limits) は `maxTokens` のデフォルトを示します。

102 

103`$.model.fork({ prompt })` は、代わりに現在の会話に 1 つの質問を尋ね、同じモデルとシステムプロンプトを使用するため、Claude API はプロンプトキャッシュからほとんどを提供します。

104 

105これらの呼び出しはユーザーのプランまたは API キーを使用します。

106 

107<h2 id="run-work-in-the-background">

108 バックグラウンドで作業を実行する

109</h2>

110 

1111 つのイベントを超える作業(1 分ごとに何かをチェックするなど)は、`session.start` から開始するタイマーで実行されます。フック自体は 1 つのイベントに対して実行され、独自の実行時間の 10 秒の時間制限があります。`next` または mods API 呼び出しで費やされた時間はカウントされません。ただし、`$.clock.sleep` は例外です。`$.clock.every` と `$.clock.after` は `setInterval` と `setTimeout` の代わりになり、遅延はミリ秒で最初に来ます。`$.clock.after(5000, fn)` は `fn` を 1 回呼び出し、今から 5 秒後です。各々はタイマーを返し、`cancel()` メソッドを持ち、`await $.clock.now()` はミリ秒単位の時間を与えます。

112 

113このフックはプルリクエストのチェックを 1 分ごとに検索し、プロンプトの下に結果を表示します。`summarize` はコマンドの JSON 出力を数語に変換する独自の関数です。

114 

115```javascript theme={null}

116on('session.start', async ($, e, next) => {

117 // 60,000 ミリ秒ごとに関数を呼び出し、今から 1 分後に開始

118 $.clock.every(60_000, async () => {

119 const status = await $.process.run(['gh', 'pr', 'checks', '--json', 'state'])

120 // プロンプトの下の行を最新の要約に置き換える

121 $.ui.status('checks: ' + summarize(status.stdout))

122 })

123 // タイマーを待たずに戻るため、セッションはすぐに開始される

124 return next(e)

125})

126```

127 

128セッションは通常どおり開始されます。1 分後、プロンプトの下に `⚠`、mod の名前、その後 `checks:` とあなたの要約を含む行が表示されます。その後、1 分ごとに置き換えられます。タイマーのコールバックはイベント外で実行されるため、ターン間で実行され続け、ターンを開始しません。コールバックがスローする場合、エラーは [デバッグログ](/docs/ja/plugins/mods/troubleshoot#read-the-debug-log) に移動し、タイマーは次の間隔で再度実行されます。

129 

130<h3 id="show-something-without-starting-a-turn">

131 ターンを開始せずに何かを表示する

132</h3>

133 

134バックグラウンドジョブは、ターンを開始せずにユーザーに何かを表示できます。これらの各呼び出しは、異なる場所にテキストを配置します。

135 

136| 呼び出し | ユーザーが見るもの |

137| :- | :- |

138| `$.ui.status(text)` | プロンプトの下の 1 行で、変更するまで残ります。`⚠` と mod の名前で始まります。`⚠ my-mod: checks: 3 passing` など。 |

139| `$.ui.toast(text)` | 右上の小さなボックスで、mod の名前がテキストの上にあり、数秒後に消えます |

140| `$.ui.log(text)` | Claude が読まない、トランスクリプト内の薄い行。`●` と mod の名前で始まります。`● my-mod: build finished` など。 |

141 

142<h3 id="start-a-turn-from-a-background-job">

143 バックグラウンドジョブからターンを開始する

144</h3>

145 

146バックグラウンドジョブが Claude の注意が必要なものを見つけた場合、`$.prompt.submit({ text })` でプロンプトを送信してターンを開始できます。Claude は、送信者として mod に名前を付ける文の後にテキストを読みます。ユーザー自身の言葉として送信するには、その文なしで、`asUser: true` を追加します。呼び出しはセッションがアイドル状態になるまで待機してから、新しいターンを開始します。そのターンが開始されたときに解決するため、Claude が作業中に実行されるハンドラーで `await` しないでください。

147 

148<h3 id="stop-background-work">

149 バックグラウンド作業を停止する

150</h3>

151 

152バックグラウンド作業は 2 つの方法で停止します。モジュールが再読み込みされるとタイマーが停止します。フック内の長時間実行作業の場合、[`next.signal`](/docs/ja/plugins/mods/reference#the-hook-function) は `AbortSignal` で、フックが処理しているイベントが放棄されたときに中止されます。たとえば、ユーザーが割り込むと、長時間実行されるものに渡します。

153 

154<h2 id="send-and-receive-messages-between-sessions">

155 セッション間でメッセージを送受信する

156</h2>

157 

158mod は、別のセッションまたはこのセッションのサブエージェントの 1 つにプレーンテキストメッセージを送信し、到着して離れるメッセージを観察できます。`$.session.send({ to, text })` は 1 つを送信し、SendMessage ツールが行う配信と同じです。`to` は、セッションの場合は `{ sessionId }`、`$.agent.list()` からのサブエージェントの場合は `{ agentId }`、または受信したメッセージが来たアドレスです。呼び出しはメッセージがキューに入ったら解決し、`{ isDelivered: true }` で解決します。何も配信されなかった場合、`{ isDelivered: false, reason }` で解決し、`reason` は理由を述べます。

159 

160このフックは、[コマンドとして登録された](#add-a-command) `/ping` コマンドに答え、その後に入力したセッション ID のセッションにステータスを尋ねます。

161 

162```javascript theme={null}

163on('command.run', { command: 'ping' }, async ($, e) => {

164 // e.args は /ping の後に入力されたセッション ID

165 const sent = await $.session.send({ to: { sessionId: e.args }, text: 'Status? One line.' })

166 // 呼び出しはどちらの場合でも解決するため、isDelivered をチェックして何が起こったかを学習

167 if (!sent.isDelivered) $.ui.toast('Not delivered: ' + sent.reason)

168 // 空の結果はこのセッションのトランスクリプトに何も出力しない

169 return {}

170})

171```

172 

173メッセージがキューに入ると、セッションに何も表示されず、他のセッションの Claude は `Status? One line.` を読みます。何も配信されなかった場合、右上の小さなボックスが理由を示し、数秒後に消えます。

174 

1752 つのイベントにより、mod はメッセージを観察できます。両方から `next(e)` を返して、各メッセージを変更されずに渡します。

176 

177| イベント | 発火するタイミング | 有用なフィールド |

178| :- | :- | :- |

179| `session.receive` | メッセージがこのセッションに到着し、Claude がそれを読む前 | `e.text`、および `e.origin.kind`(別のセッションまたはエージェント、`task-notification`、または `scheduled-trigger` の場合は `peer` または `peer-send-message` など)。`{ consumed: reason }` を返して Claude から保持します。 |

180| `session.send` | メッセージが SendMessage ツールまたは mod から離れようとしている | `e.to`、`e.text`、および `e.origin.kind`(`model` または `plugin`) |

181 

182[インバウンドメッセージを拒否](/docs/ja/cross-session-messaging#control-inbound-messages) するように設定されたセッションは、`session.receive` が発火する前にメッセージを拒否するため、フックはそれを見ません。承認待ちのメッセージはフックに最初に到達するため、mod はまだ承認していないメッセージを読むことができます。フックの `next(e)` はメッセージが配信されないときに拒否します。

183 

184受信したメッセージの送信者の名前は、送信者が書いたものなので、それに基づいて決定しないでください。

185 

186<h2 id="reach-files-processes-and-the-network">

187 ファイル、プロセス、ネットワークにアクセスする

188</h2>

189 

190mod は、Claude Code を実行しているユーザーと同じ権限で、mods API を通じてファイルシステム、プロセス、ネットワークにアクセスします。フックモジュール自体には Node.js API、`setTimeout` などのタイマーグローバル、独自のネットワークまたはファイルアクセスはありません。`URL`、`TextEncoder`、`AbortController`、`crypto.subtle` などの標準 JavaScript および Web API が利用可能です。以下の各名前空間は、1 種類のアクセスをカバーしています。

191 

192| 名前空間 | 何をするか |

193| :- | :- |

194| `$.fs` | `read(path)`、`write(path, text)`、`exists(path)`、`stat(path)`、`list(path)` はファイルとディレクトリで動作 |

195| `$.process` | `run(['git', 'status'])` はコマンドを開始し、終了時に解決。`spawn` は長時間実行コマンドの出力をストリーム。 |

196| `$.http` | `http` または `https` 上の `fetch(url, init)`。本文が読み込まれたら `{ status, ok, headers, text }` に解決。 |

197| `$.store` | プラグイン独自の JSON キー値ストア、セッション間で保持 |

198| `$.env` | 環境変数を `get` および `set`。名前をリテラル文字列として記述。 |

199| `$.settings` | 設定ファイルと管理ポリシーが保持するものを `read` |

200| `$.session` | `messages()` はトランスクリプトを `{ role, text, toolUses }` のリストとして返す。また、作業ディレクトリ、モデルなど。[`usage()`](/docs/ja/plugins/mods/reference#mods-api-methods) はコンテキストウィンドウの使用とプラン制限を返す。 |

201| `$.mcp` | 接続された MCP サーバーのツールを `call` |

202 

203ファイルとプロセスには、独自のいくつかのルールがあります。

204 

205* **パス**:相対パスはセッションの作業ディレクトリの下

206* **`$.fs.list`**:1 つのディレクトリのエントリを `{ name, kind, size, isLink }` として返し、サブディレクトリに下降しない

207* **`$.process.run`**:引数リストを取り、シェルを使用しない。終了コードに関係なく `{ exitCode, stdout, stderr }` に解決。プログラムが開始できないか、タイムアウト時にまだ実行中の場合は拒否します。デフォルトは 30 秒なので、`try` と `catch` でラップします。

208 

209これらの呼び出しのそれぞれは、それ自体がイベントであり、`$.fs.read` の場合は `fs.read` など、`$.` なしで名前空間とメソッドに対して名前が付けられています。[チェーンの前にある](/docs/ja/plugins/mods/events#the-order-mods-run-in) mod は、呼び出しを観察、書き直し、または拒否できます。これは、組織が mod が到達するものを制限する方法です。

210 

211<h2 id="next-steps">

212 次のステップ

213</h2>

214 

215* [イベントに反応する](/docs/ja/plugins/mods/events):ツール呼び出し、プロンプト、ターンをフック

216* [インターフェイスに描画する](/docs/ja/plugins/mods/interface):mod が収集するものをペインまたはプロンプトの上に表示

217* [mod をテストする](/docs/ja/plugins/mods/test):テストでこれらの呼び出しのいずれかをスタブ

218* [Mods リファレンス](/docs/ja/plugins/mods/reference):すべてのイベント、すべての mods API メソッド、制限

plugins/mods/create.md +395 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# mod を作成する

6 

7> Claude に説明から Claude Code mod を書かせるか、ツール呼び出しをカウントしてコマンドを追加する mod を自分で書きます。リロードと検証ループについて学びます。

8 

9mod は Claude Code [プラグイン](/docs/ja/plugins/overview)で、hooks module と呼ばれるエントリファイルを持っています。hooks module は JavaScript または TypeScript ファイルで、イベントが発生したときに Claude Code が呼び出す関数を含みます。mod を作成する方法は 2 つあります。

10 

11* **Claude に書かせる**: Claude Code セッションで[何をしたいかを説明](#ask-claude-for-a-mod)します

12* **自分で書く**: [チュートリアルに従って](#write-a-mod-yourself)mod のコードがどのように機能するかを学びます。Node.js、バンドラー、またはビルドステップは必要ありません。Claude Code は `.js` ファイルと `.ts` ファイルを直接読み込むためです。

13 

14mod が適切なツールかどうかまだ決めていない場合は、まず[概要のページで比較を読んでください](/docs/ja/plugins/mods/overview#compare-mods-settings-hooks-skills-and-mcp-servers)。

15 

16<Note>

17 Mod には Claude Code v2.1.287 以降が必要です。シェルで `claude --version` を実行してチェックしてください。mod がロードできるかどうかを確認するには、[mod がロードできるかどうかを確認する](/docs/ja/plugins/mods/troubleshoot#check-whether-mods-can-load)を参照してください。

18</Note>

19 

20<h2 id="ask-claude-for-a-mod">

21 Claude に mod を書かせる

22</h2>

23 

24インタラクティブな Claude Code セッションで、作成したい mod について説明すると、Claude がそれを書きます。Claude は `plugin-authoring` という組み込み[スキル](/docs/ja/skills)から動作します。このスキルは、mod をどこに書くか、バージョンにどのイベントとメソッドがあるか、mod がどのようにロードされるかを Claude に伝えます。Claude は mod を要求するときにスキルをロードできます。または、Claude Code プロンプトで `/plugin-authoring` を実行して自分でロードできます。

25 

26mod は承認すると実行されます。ただし、[mod Claude が書いたものがロードできないセッション](#sessions-that-skip-the-approval)では実行されません。

27 

28<Steps>

29 <Step title="mod について説明する">

30 自分の言葉で mod を要求します。たとえば、`make a mod that shows the current git branch above the prompt` のように。Claude は、セッションの mods フォルダ内の独自のディレクトリに mod を書きます。これは `~/.claude/dev-mods/` の後にセッションの ID が続きます。mod の完全なパスは `~/.claude/dev-mods/3f2a9c1e-5b7d-4e8a-9c21-6d0f4b8a7e13/git-branch/` のようになります。

31 

32 <Note>

33 `default` および `acceptEdits` [権限モード](/docs/ja/permission-modes#protected-paths)では、`~/.claude` は保護されたパスであるため、Claude Code は Claude が mod の各ファイルを作成する前に確認を求めます。各ファイルが表示されたら承認してください。

34 </Note>

35 </Step>

36 

37 <Step title="mod を承認する">

38 Claude が最初のファイルを保存すると、Claude Code はセッションのホットリロードを有効にするかどうかを尋ねます。ホットリロードは、このセッションで Claude が書いた mod を実行し、後で変更されるたびにそれを取得します。

39 

40 次のいずれかの答えを選択してください。

41 

42 * **このセッションで有効にする**: セッションの mods フォルダ内の mod はターンの終了時にロードされ、それらを変更するターンの終了時に再ロードされます。答えはセッション全体に対して有効です。再開後も含まれます。

43 * **今はしない**: 今のところ何もロードされません。ファイルは Claude が書いた場所に留まり、mod は次回そのセッションが開始されるときにロードされます。mod がロードされないようにするには、そのディレクトリを削除してください。

44 </Step>

45 

46 <Step title="mod がロードされたことを確認する">

47 Claude Code プロンプトで `/plugin` を実行し、Tab キーを押して **Installed** タブが選択されるまで続けます。mod が一覧表示され、そこでオフにできます。

48 </Step>

49 

50 <Step title="mod を試す">

51 要求したものを使用します。例のプロンプトの場合、現在のブランチ名がプロンプトボックスの上に表示されます。mod が期待したことをしない場合は、Claude に何を変更するかを伝えてください。mod は、そのファイルを変更するターンの終了時に再ロードされるため、Claude が終了するとすぐに変更を試すことができます。

52 </Step>

53</Steps>

54 

55<h3 id="use-the-mod-in-other-sessions">

56 他のセッションで mod を使用する

57</h3>

58 

59Claude が書いた mod は、それを作成したセッションでのみロードされます。Claude Code は、そのセッションの mods フォルダを [`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) より古くなると削除します。mod を保持するには、mods フォルダからそのディレクトリを `~/mods/git-branch` などの自分の場所にコピーしてください。次に、ロード方法を選択します。

60 

61* **開始するセッションで**: シェルで `claude --plugin-dir ~/mods/git-branch` を実行します

62* **他の人向け**: [マーケットプレイスに追加](#share-your-mod)して、インストールできるようにします

63 

64<h3 id="sessions-that-skip-the-approval">

65 mod Claude が書いたものがロードできないセッション

66</h3>

67 

68Claude が書いた mod は、信頼できるワークスペースで承認後にのみロードされます。このワークスペースでは mod の実行が許可されています。これらのセッションではロードされません。

69 

70* **誰も承認する人がいない**: `claude -p` 実行や [`dontAsk` モード](/docs/ja/permission-modes)のように、セッションはプロンプトを表示できません

71* **ワークスペースが信頼されていない**: ディレクトリの信頼プロンプトを受け入れていません

72* **Mod が停止している**: `--safe-mode` または `--bare` で開始した、`disableAllHooks` を設定した、または組織の[管理設定がそれをブロック](/docs/ja/plugins/mods/admin#choose-how-much-to-allow)している

73 

74<h2 id="write-a-mod-yourself">

75 自分で mod を書く

76</h2>

77 

78このチュートリアルでは、`first-mod` という名前の mod を構築します。この mod は Claude が行うツール呼び出しをカウントし、Claude が動作している間にスピナーの横にカウントを表示し、`/tally` コマンドを追加して印刷します。その後、Claude Code がモジュールの横に書いた型宣言を読み、`claude plugin validate` を実行します。これらは、バージョンが提供するイベントとメソッド、および Claude Code がコードから読み取るものを示します。

79 

80この記録は完成した mod を示しています。スピナーはツール呼び出しをカウントし、`/tally` はカウントを印刷し、セッションの実行中にコードの編集が有効になります。

81 

82<Frame>

83 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-first-mod-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=eb561134afa90375777408453ba51c77" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. The spinner reads 'Thinking · tool calls: 1' and the count rises as Claude works. The /tally command prints 'first-mod: Claude has made 3 tool calls since this mod loaded'. A line says first-mod reloaded and lists its four hooks. On the next prompt the spinner reads 'Thinking · tools used: 1'." data-path="images/mods-first-mod-light.mp4" />

84 

85 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-first-mod-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=09779dadc7ef66c2b1e2da0c2e31ac72" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. The spinner reads 'Thinking · tool calls: 1' and the count rises as Claude works. The /tally command prints 'first-mod: Claude has made 3 tool calls since this mod loaded'. A line says first-mod reloaded and lists its four hooks. On the next prompt the spinner reads 'Thinking · tools used: 1'." data-path="images/mods-first-mod-dark.mp4" />

86</Frame>

87 

883 つのファイルを書きます。

89 

90```text theme={null}

91first-mod/

92├── .claude-plugin/

93│ └── plugin.json

94└── hooks/

95 ├── hooks.json

96 └── register.js

97```

98 

99* **`plugin.json`**: プラグインの[マニフェスト](/docs/ja/plugins/manifest-reference)

100* **`hooks.json`**: [コードファイルを指します](/docs/ja/plugins/mods/reference#files)

101* **`register.js`**: コード。hooks module と呼ばれます

102 

103<Steps>

104 <Step title="プラグインディレクトリを作成する">

105 ファイルを保持する 2 つのディレクトリを作成します。

106 

107 <Tabs>

108 <Tab title="Bash or Zsh">

109 ```bash theme={null}

110 mkdir -p first-mod/.claude-plugin first-mod/hooks

111 ```

112 </Tab>

113 

114 <Tab title="PowerShell">

115 ```powershell theme={null}

116 New-Item -ItemType Directory -Force first-mod\.claude-plugin, first-mod\hooks

117 ```

118 </Tab>

119 </Tabs>

120 </Step>

121 

122 <Step title="マニフェストを書く">

123 mod はプラグインで、mod には[マニフェスト](/docs/ja/plugins/manifest-reference)が必要です。この mod のマニフェストには特別なフィールドはありません。これを `first-mod/.claude-plugin/plugin.json` として保存します。

124 

125 ```json first-mod/.claude-plugin/plugin.json theme={null}

126 {

127 "name": "first-mod",

128 "version": "0.1.0",

129 "description": "Counts Claude's tool calls, shows the count beside the spinner, and adds a /tally command",

130 "author": { "name": "Your Name" }

131 }

132 ```

133 </Step>

134 

135 <Step title="Claude Code にコードの場所を伝える">

136 Claude Code がプラグインをロードするとき、プラグインの `hooks/hooks.json` を読みます。そのファイルの `modules` キーはコードへのパスを提供し、それを持つことがプラグインを mod にします。1 つのパスをリストします。これは `hooks.json` に相対的です。ここでは、次のステップで書く `register.js` を指します。

137 

138 これを `first-mod/hooks/hooks.json` として保存します。

139 

140 ```json first-mod/hooks/hooks.json theme={null}

141 {

142 "description": "The first-mod hooks module",

143 "modules": ["./register.js"]

144 }

145 ```

146 </Step>

147 

148 <Step title="コードを書く">

149 このファイルは mod のコード。hooks module と呼ばれます。mod がロードされると、Claude Code はファイルがエクスポートする `register` 関数を呼び出し、[`on`](/docs/ja/plugins/mods/reference#the-hook-function) という関数を渡します。`on` への各呼び出しは、イベントハンドラー(hook と呼ばれる)をそれが名前を付けるイベントに登録します。

150 

151 これを `first-mod/hooks/register.js` として保存します。

152 

153 ```javascript first-mod/hooks/register.js theme={null}

154 // The count, shared by the hooks below

155 let calls = 0

156 

157 // Claude Code calls this once when the mod loads

158 export function register(on) {

159 // Runs when the session starts, before your first prompt

160 on('session.start', async ($, e, next) => {

161 // Add the /tally command

162 await $.command.register({

163 name: 'tally',

164 description: 'Show how many tool calls Claude has made',

165 })

166 // Let the session start as usual

167 return next(e)

168 })

169 

170 // Runs each time Claude is about to use a tool

171 on('tool.call', async ($, e, next) => {

172 calls += 1

173 // Ask Claude Code to draw the interface again, so the new count shows

174 $.ui.invalidate('ui.render')

175 // Let the tool run as usual

176 return next(e)

177 })

178 

179 // Runs when you type /tally, and only then, because of the matcher

180 on('command.run', { command: 'tally' }, async () => {

181 // The text to print in the transcript

182 return { text: 'Claude has made ' + calls + ' tool calls since this mod loaded' }

183 })

184 

185 // Runs each time Claude Code draws the spinner

186 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

187 // Keep Claude Code's spinner, with the count added after its word

188 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

189 })

190 }

191 ```

192 

193 ファイルは `calls` にカウントを保持し、4 つの hook を登録します。

194 

195 * **[`session.start`](/docs/ja/plugins/mods/reference#session)** はセッションが開始されるときに実行されます。最初のプロンプトの前に、mod が再ロードされるたびに実行されます。Claude Code に `/tally` コマンドを追加します。

196 * **[`tool.call`](/docs/ja/plugins/mods/reference#tools)** は Claude がツールを使用しようとするたびに実行されます。`calls` に 1 を追加し、Claude Code にインターフェイスを再度描画するよう要求します。

197 * **[`command.run`](/docs/ja/plugins/mods/reference#commands-and-configuration)** は `/tally` を入力するときに実行されます。印刷するテキストを返します。

198 * **[`ui.render`](/docs/ja/plugins/mods/reference#interface)** は Claude Code がスピナーを描画するたびに実行されます。スピナーの単語の後にカウントを追加します。

199 

200 [例の mod がどのように機能するか](#how-the-example-mod-works)は、各 hook が取る 3 つの引数と各引数が返すものについて説明しています。

201 </Step>

202 

203 <Step title="mod をロードする">

204 `--plugin-dir` フラグで Claude Code を開始します。これはプラグインディレクトリを 1 つのセッションにロードします。インストールしません。

205 

206 ```bash theme={null}

207 claude --plugin-dir ./first-mod

208 ```

209 </Step>

210 

211 <Step title="mod を試す">

212 Claude に、いくつかのツール呼び出しを必要とするものを実行するよう要求します。たとえば、`list the files here and read the README` のように。Claude が動作している間、スピナーの単語の後に、`Thinking · tool calls: 2…` のように上昇するカウントが続きます。Claude が終了したら、`/tally` を入力して Enter キーを押します。トランスクリプトは `first-mod: Claude has made 2 tool calls since this mod loaded` を表示します。独自のカウント付きです。Claude Code はプラグインの名前をコマンドのテキストの前に置きます。

213 

214 インタラクティブセッションなしでコマンドをチェックするには、非インタラクティブモードで実行します。

215 

216 ```bash theme={null}

217 claude -p "/tally" --plugin-dir ./first-mod

218 ```

219 

220 ```text theme={null}

221 first-mod: Claude has made 0 tool calls since this mod loaded

222 ```

223 

224 `/tally` がコマンドリストにない場合、モジュールはロードされませんでした。[mod が何もしない理由を見つける](/docs/ja/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)を参照してください。

225 </Step>

226 

227 <Step title="セッションの実行中にコードを変更する">

228 セッションを開いたままにします。`register.js` で、`ui.render` hook の `' · tool calls: '` を `' · tools used: '` に変更して保存します。強調表示された行は変更される行です。

229 

230 ```javascript first-mod/hooks/register.js {4} theme={null}

231 // Runs each time Claude Code draws the spinner

232 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

233 // Keep Claude Code's spinner, with the count added after its word

234 return next({ ...e, props: { ...e.props, suffix: ' · tools used: ' + calls + '…' } })

235 })

236 ```

237 

238 トランスクリプトの行は `first-mod` が再ロードされたことを示し、その hook をリストします。次のスピナーは新しいテキストを使用します。たとえば、`Thinking · tools used: 1…` のように。

239 </Step>

240</Steps>

241 

242<h3 id="how-the-example-mod-works">

243 例の mod がどのように機能するか

244</h3>

245 

246`on` に渡す各関数は hook で、イベントハンドラーです。Claude Code はすべての hook に同じ 3 つの引数を渡します。

247 

248* **mods API**。`$` という名前です。mod が自身の外に到達するために呼び出すことができるすべてのメソッド。`$.ui` や `$.command` などの[名前空間](/docs/ja/plugins/mods/reference#mods-api-methods)内です

249* **イベント**。`e` という名前です。ツール呼び出しの名前と引数などの[イベントの入力](/docs/ja/plugins/mods/reference#events)。プレーンデータとして

250* **次のハンドラー**。[`next`](/docs/ja/plugins/mods/events#how-a-hook-handles-an-event) という名前です。イベントを他の mod に渡し、次に Claude Code 独自の動作に渡す関数。結果を返します

251 

252`first-mod` の hook は、hook ができる 3 つの方法でイベントを処理します。

253 

254* **観察**: `session.start` hook はコマンドを登録し、`tool.call` hook はコールをカウントして再描画を要求します。どちらも `next(e)` を返すため、セッションが開始され、ツールが通常どおり実行されます。

255* **回答**: `command.run` hook は独自の結果を返し、`next` を呼び出しません。`on` への 2 番目の引数 `{ command: 'tally' }` はフィルターで、[matcher](/docs/ja/plugins/mods/events#filter-which-events-a-hook-handles) と呼ばれます。hook は `/tally` に対してのみ実行されます。

256* **書き直す**: `ui.render` hook は `e` のコピーで `next` を呼び出します。その `suffix` はカウントを保持します。Claude Code は通常のスピナーを描画し、単語の後にテキストを描画します

257 

258Claude Code は `--plugin-dir` でロードされたディレクトリを監視し、ファイルが変更されると hooks module をホットリロードします。各リロードは `register` を再度実行するため、`calls` は `0` に戻り、`/tally` は再度カウントを開始します。リロード全体で値を保持するには、[状態を保持する](/docs/ja/plugins/mods/interface#keep-state)を参照してください。

259 

260<h2 id="keep-working-on-a-mod">

261 mod の作業を続ける

262</h2>

263 

264mod がロードされたら、Claude に変更させたり、コードをバージョンの型定義と照合したり、Claude Code が見つけたイベントと呼び出しをリストしたり、テストしたりできます。

265 

266<h3 id="change-a-mod-with-claude">

267 Claude で mod を変更する

268</h3>

269 

270既に持っている mod を変更するには、`--plugin-dir` を mod のディレクトリに向けてセッションを開始します。Claude が書いたものが同じセッションでロードされるようにします。

271 

272```bash theme={null}

273claude --plugin-dir ./first-mod

274```

275 

276次に、変更を要求します。たとえば、`add a /tally-reset command to this mod that sets the tally back to zero` のように。Claude は hooks module を編集し、`claude plugin validate` を実行し、報告されたものを修正します。`--plugin-dir` でロードするディレクトリは[保護されたパス](/docs/ja/permission-modes#protected-paths)であるため、`default` および `acceptEdits` モードでは、Claude の mod への各編集を承認するよう求められます。保護されたパステーブルは他の権限モードの結果を示します。

277 

278Claude がターンの終了時に保存したファイルは、ターンの終了時に再ロードされるため、Claude が終了するとすぐに `/tally-reset` を試すことができます。

279 

280<h3 id="get-the-types-for-your-build">

281 バージョンの型定義を取得する

282</h3>

283 

284Claude Code が `--plugin-dir` に渡すディレクトリから mod をロードまたは再ロードするたびに、または [Claude が書いた](#ask-claude-for-a-mod) mod の場合、TypeScript 宣言ファイル(`.d.ts` で終わる)を mod のディレクトリ内の `.claude-plugin/types/` に書き込みます。実行している Claude Code バージョンの正確なイベント、mods API メソッド、および要素について説明しているため、エディターは hook を自動補完および型チェックできます。宣言をオンラインで参照するには、Claude Code リポジトリの [`mods/types/claude-code.d.ts`](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) を読んでください。その最初の行は、それを書いたバージョンに名前を付けます。ディレクトリには次のファイルが含まれます。

285 

286| パス | 宣言内容 |

287| :- | :- |

288| `claude-code/index.d.ts` | すべてのイベントとその入力と結果、すべての mods API 名前空間とメソッド、各サーフェスが描画できる要素 |

289| `claude-code-tools/index.d.ts` | 組み込みツールの入力と結果。`e.tool === 'Bash'` をチェックすると `e` が絞り込まれます |

290| `claude-code-mcp/index.d.ts` | mod のファイルを最後に保存したときに接続された MCP ツールの入力 |

291| プラグイン用に名前が付けられたディレクトリ内の `index.d.ts` | そのプラグインが mods API に追加するもの。`plugin.json` の `dependencies` の下にリストされている各プラグイン用に 1 つのディレクトリがあります |

292| `tsconfig.json` | hooks module に適したコンパイラオプション |

293 

294mod に独自の `tsconfig.json` がない場合、Claude Code は mod のルートに生成されたものを拡張する `tsconfig.json` を追加します。エディターと `tsc -p ./first-mod` は、さらにセットアップなしで mod を型チェックできます。

295 

296イベントとメソッドはリリース間で変更される可能性があるため、意見が異なる場合は、このページを含むすべてのページよりもこれらのファイルを信頼してください。

297 

298`claude-code/index.d.ts` はビルドの最も完全なリファレンスで、すべての mods API メソッドにコメントと例があります。何かを検索するには、ファイルで名前を検索します。たとえば、`'tool.call'` のように。

299 

300<h3 id="check-what-claude-code-reads-from-your-mod">

301 Claude Code がモジュールから読み取るものを確認する

302</h3>

303 

304セッションを実行したり、コードを実行したりせずに、Claude Code がモジュールをどのように見るかを確認するには、`claude plugin validate` を使用します。マニフェストをチェックし、Claude Code が mod をロードするときに hooks module のソースで実行するのと同じ静的分析を実行します。シェルで、mod のディレクトリで実行します。

305 

306```bash theme={null}

307claude plugin validate ./first-mod

308```

309 

310`first-mod` の場合、出力には次の行が含まれます。

311 

312```text theme={null}

313 ❯ ./register.js hooks: session.start, tool.call, command.run{command=tally}, ui.render{component=Spinner}

314 ❯ ./register.js calls: $.command.register, $.ui.invalidate

315 

316✔ Validation passed

317```

318 

319`hooks:` 行は、モジュールが hook するイベントをリストします。各イベントは、中括弧内のフィルター付きです。`calls:` 行は、呼び出すすべての mods API メソッドをリストします。環境変数を読み取るまたは設定するモジュールは、`env reads:` および `env writes:` 行も取得します。[`$.state`](/docs/ja/plugins/mods/interface#keep-state) を使用するモジュールは、`state reads:` および `state writes:` を取得します。

320 

321hook するつもりだったイベントが最初の行から欠落している場合、Claude Code はその hook も呼び出しません。通常の原因は、イベント名のスペルミスです。コマンドは `"tool.calls" is not an event` などのエラーとして報告します。

322 

323静的分析がすべての hook と呼び出しを見つけることができるように、これらのルールに従ってください。

324 

325* 各 mods API 呼び出しを完全に綴ります。`$`、名前空間、メソッド。`$.store.get('notes')` のように。`$` を同じファイルの最上位で宣言された関数に渡すことができます。`loadNotes` という名前の関数の場合、`calls:` 行は `$.store.get (via loadNotes)` を読みます。`$` をメソッド、hook 内で定義された関数、または別のファイルからインポートした関数に渡すと、検証が失敗します。[`$.state`](/docs/ja/plugins/mods/interface#keep-state) が使用する `read` および `update` 関数は、それを取ることができるインポートです。`$` またはその名前空間の 1 つを変数に割り当てたり、分割したり、計算された名前でインデックスを付けたりしないでください。`const ui = $.ui` は `$.ui is used as a value` で失敗します。

326* 各 `on` 呼び出しでイベント名を文字列リテラルとして書きます。`'tool.call'` のように。変数、または名前のリストのループは、`the event name passed to on() is not a string literal` で失敗します。

327* `register` 内で、`on` という名前の 2 番目の変数またはパラメーターを宣言しないでください。検証は `"on" is declared again (shadowed)` で失敗します。

328* プラグインディレクトリ内のファイルからのみインポートします。相対パスで。許可される唯一の裸のインポートは、型といくつかのヘルパーの `claude-code` です。

329* ファイルの最上部で `import` 宣言を使用します。`import { name } from './file.js'` のように。動的な `import()` は `a dynamic import(); a hooks module imports its own files with an import declaration` で失敗します。

330* すべてのファイルを ES モジュールとして書きます。`import` を使用し、`require` は使用しません。[リファレンス](/docs/ja/plugins/mods/reference#files)は Claude Code がロードするファイル拡張子をリストします。

331 

332<h3 id="test-the-mod">

333 mod をテストする

334</h3>

335 

336mod の自動テストを書き、シェルから `claude plugin test` で実行できます。セッション、サインイン、またはネットワークはありません。テストは hook が処理するイベントを発生させ、hook が何をしたかをチェックします。

337 

338このテストは 2 つのツール呼び出しを発生させ、`/tally` を実行し、hook が両方をカウントしたことをチェックします。これを `first-mod/tests/first-mod.test.ts` として保存します。

339 

340```typescript first-mod/tests/first-mod.test.ts theme={null}

341import { expect, test } from 'claude-code/testing'

342 

343test('/tally reports the tool calls the mod has seen', async ($, on) => {

344 // Answer each tool call in Claude Code's place, so no tool runs

345 on('tool.call', () => ({ result: 'ok' }))

346 

347 // Raise two tool calls, which the mod's tool.call hook counts

348 await $.tool.call({ tool: 'Bash', command: 'ls' })

349 await $.tool.call({ tool: 'Read', file_path: 'README.md' })

350 

351 // Run /tally and check the text its hook returns

352 const answer = await $.command.run({ command: 'tally', args: '' })

353 expect(answer.text).toBe('Claude has made 2 tool calls since this mod loaded')

354})

355```

356 

357シェルで、`first-mod` ディレクトリからテストを実行します。

358 

359```bash theme={null}

360claude plugin test

361```

362 

363出力は各テストと合格したかどうかを名前で示します。タイミングは実行ごとに異なります。

364 

365```text theme={null}

366tests/first-mod.test.ts:

367(pass) /tally reports the tool calls the mod has seen [22.87ms]

368 

369 1 pass

370 0 fail

371Ran 1 test across 1 file. [0.19s]

372```

373 

374[mod をテストする](/docs/ja/plugins/mods/test)は、モデル呼び出しまたはストアをスタブ化し、タイマーと描画をテストすることをカバーしています。

375 

376<h2 id="share-your-mod">

377 mod を共有する

378</h2>

379 

380mod はプラグインであるため、マニフェストでバージョン管理し、人々は `/plugin` コマンドでインストールおよび更新します。他の人に提供するには、[マーケットプレイスに追加](/docs/ja/plugins/publish)してください。

381 

382その前に、プラグインの `name` をチェックしてください。`claude plugin validate` は、[Anthropic 独自のように見える](/docs/ja/plugins/manifest-reference#name)名前で失敗します。たとえば、`claude-` で始まる名前。イベントとメソッドはリリース間で変更される可能性があるため、README はテストした Claude Code バージョンを示す場所です。

383 

384インストールされたコピーに対してではなく、`--plugin-dir` を使用してディレクトリに対して開発を続けます。Claude Code はインストールされたプラグインをバージョンでキャッシュするため、バージョンを上げてもう一度インストールするまで、編集はインストールされたコピーに到達しません。

385 

386<h2 id="next-steps">

387 次のステップ

388</h2>

389 

390* [インターフェイスに描画する](/docs/ja/plugins/mods/interface): ペインを開き、プロンプトの上に描画し、ボタンとテキストフィールドを追加します

391* [イベントに反応する](/docs/ja/plugins/mods/events): ツール呼び出し、プロンプト、ターンをフック化します

392* [mods API を使用する](/docs/ja/plugins/mods/api): コマンドとツールを追加し、モデルを呼び出し、タイマーで作業を実行します

393* [mod をテストする](/docs/ja/plugins/mods/test): Claude Code が答えるものをスタブ化し、タイマーと描画をテストします

394* [mod をトラブルシューティングする](/docs/ja/plugins/mods/troubleshoot): mod が何もしない理由とデバッグログ

395* [組み込み mod のソースを読む](/docs/ja/plugins/mods/overview#read-the-source-of-built-in-mods): 完全なプラグイン。各 hooks module とテスト付き

plugins/mods/events.md +336 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# イベントに mod で反応する

6 

7> mod から Claude Code イベントを処理する:観察、書き換え、またはツール呼び出し、プロンプト、ターンに答える、フック が処理するイベントをフィルタリングする、および他の mod を計画する。

8 

9hook はイベントハンドラです。Claude Code が名前付きイベントが発生したときに実行する関数です。Claude Code は、ツールを実行する、プロンプトを送信する、モデルにリクエストを送信する、またはセッションを開始または終了するなど、アクションを起こそうとしている各ポイントでイベントを発火させます。hook は Claude Code がアクションを起こす前に実行されるため、イベントを観察したり、書き換えたり、Claude Code の代わりに答えたりできます。hook は [`on(eventName, handler)`](/docs/ja/plugins/mods/reference#the-hook-function) で登録します。

10 

11ここから始める前に、[最初の mod を構築](/docs/ja/plugins/mods/create)してください。すべてのイベントとその正確なフィールドについては、[リファレンス](/docs/ja/plugins/mods/reference#events)を参照するか、[ビルド用の型を読んでください](/docs/ja/plugins/mods/create#get-the-types-for-your-build)。

12 

13<h2 id="how-a-hook-handles-an-event">

14 hook がイベントを処理する方法

15</h2>

16 

17hook はイベントと Claude Code がそれについて何をするかの間に位置するため、イベントを観察したり、書き換えたり、それ自体で答えたりできます。3 つの引数を受け取ります:[mods API](/docs/ja/plugins/mods/api) を `$` として、イベントを `e` として、次のハンドラを `next` として。イベントのハンドラはミドルウェアチェーンを形成します。`next(e)` は次のハンドラを呼び出します。これは別の mod の hook か、チェーンの最後では Claude Code 独自の動作であり、結果に解決されます。hook が `next` で何をするかが、3 つのうちどれをするかを決定します。

18 

19<h3 id="observe-an-event">

20 イベントを観察する

21</h3>

22 

23イベントを変更せずに観察するには、作業を行い、`next(e)` を返します。この hook は Claude が使用しようとしている各ツールをログに記録します:

24 

25```javascript theme={null}

26on('tool.call', async ($, e, next) => {

27 // ツールが実行される前に実行される

28 $.ui.log('Claude is about to use ' + e.tool)

29 // イベントを変更せずに渡す

30 return next(e)

31})

32```

33 

34各ツールが実行される前に、`● my-mod: Claude is about to use Bash` のような薄い行がトランスクリプトに表示されます。ここで `my-mod` はプラグインの名前です。ツールは mod なしで実行されるのと同じように実行されます。

35 

36イベント後にアクションを実行するには、`await next(e)` を実行し、作業を行い、結果を返します。この hook は各ツールが実行された後にログに記録します:

37 

38```javascript theme={null}

39on('tool.call', async ($, e, next) => {

40 // ツールを実行し、その結果を待つ

41 const result = await next(e)

42 // ツールが実行された後に実行される

43 $.ui.log(e.tool + ' finished')

44 // 結果を変更せずに返す

45 return result

46})

47```

48 

49行は各ツールが完了した後に表示されるようになります。hook が `next(e)` が解決したものを返すため、Claude は同じ結果を読みます。

50 

51<h3 id="rewrite-an-event">

52 イベントを書き換える

53</h3>

54 

55Claude Code が作用する内容(プロンプトのテキストなど)を変更するには、イベントの変更されたコピーで `next` を呼び出します。イベント自体は不変です:すべての深さで凍結されており、フィールドに割り当てるとスローされます。この hook は各プロンプトが送信される前にトリミングします:

56 

57```javascript theme={null}

58on('prompt.submit', async ($, e, next) => {

59 // イベントのコピーをテキストが変更された状態で渡す

60 return next({ ...e, text: e.text.trim() })

61})

62```

63 

64後のハンドラと Claude Code は、トリミングされたプロンプトを受け取り、元のプロンプトを見ることはありません。結果を変更することもできます:`await next(e)` を実行してから、フィールドが置き換えられた結果のコピーを返します。

65 

66<h3 id="answer-an-event">

67 イベントに答える

68</h3>

69 

70イベント自体を処理するには、`next` を呼び出さずに結果を返します。これはチェーンをショートサーキットするため、後の mod と Claude Code 独自の動作は実行されません。この hook はすべての Bash コマンドを拒否します:

71 

72```javascript theme={null}

73on('tool.call', { tool: 'Bash' }, async () => {

74 // next への呼び出しがないため、コマンドは実行されない

75 return { deny: 'Bash is turned off in this project. Use the file tools.' }

76})

77```

78 

79Claude が Bash コマンドを試みると、コマンドは実行されず、Claude は `deny` テキストをツールの結果として読みます。各イベントには独自の結果形状があり、[イベントリファレンス](/docs/ja/plugins/mods/reference#events)がリストアップしています。

80 

81<h3 id="filter-which-events-a-hook-handles">

82 hook が処理するイベントをフィルタリングする

83</h3>

84 

85hook を一部のイベントのみで実行するには、`on` の 2 番目の引数としてフィルタを渡します。Claude Code はフィルタを matcher と呼びます。これはイベントのフィールドと比較されるフィールドを持つオブジェクトであり、hook はすべてのフィールドが一致する場合にのみ実行されます。フィールドは値、許可された値の配列、または正規表現です。

86 

87この例の各行は、同じ関数 `hook` をより狭いツール呼び出しセットに登録します:

88 

89```javascript theme={null}

90// 文字列は 1 つの値と一致する:Bash 呼び出しのみ

91on('tool.call', { tool: 'Bash' }, hook)

92// 配列は任意の値と一致する:Edit 呼び出しと Write 呼び出し

93on('tool.call', { tool: ['Edit', 'Write'] }, hook)

94// 正規表現はパターンで一致する:1 つの MCP サーバーのすべてのツール

95on('tool.call', { tool: /^mcp__github__/ }, hook)

96```

97 

98`hook` は Bash、Edit、または Write 呼び出しで 1 回実行され、名前が `mcp__github__` で始まるツールへの呼び出しで 1 回実行されます。Read などの他のツールへの呼び出しは 3 つのいずれにも一致しないため、`hook` はそれに対して実行されません。

99 

100イベント名はワイルドカードです。`'classic.*'` はすべての[設定 hook イベント](#hook-the-settings-hook-events)と一致します。`'*'` は[テレメトリイベント](/docs/ja/plugins/mods/reference#telemetry)を除くすべてのイベントと一致します。テレメトリイベントは名前で、または `'telemetry.*'` として hook します。

101 

102各イベントを matcher ごとに 1 回登録します。matcher なしで `session.start` に対して `on` を 2 回呼び出すと、モジュールは `on("session.start") is registered twice without a matcher` で読み込みに失敗します。mod がセッション開始時に行うすべてのことを 1 つの hook に入れます。

103 

104<h2 id="hook-what-claude-is-doing">

105 Claude が何をしているかを hook する

106</h2>

107 

108これらのイベントを hook して、ツール呼び出し、プロンプト、またはターンが発生しているのを見たり、変更したりします。すべてのイベントと hook が返すことができるものについては、[イベントリファレンス](/docs/ja/plugins/mods/reference#events)を参照してください。

109 

110<h3 id="guard-or-change-a-tool-call">

111 ツール呼び出しをガードまたは変更する

112</h3>

113 

114`tool.call` hook は Claude が使用しようとしている各ツールを見るため、呼び出しを拒否したり、その引数を変更したり、それを通したりできます。`tool.call` は Claude Code がツールを実行しようとしているときに発火します。これには subagent が行う呼び出しと MCP ツールへの呼び出しが含まれます。`e.tool` はツールの名前であり、ツールの引数は `e` のフィールドです。例えば Bash の場合は `e.command` です。`next(e)` を呼び出すと、Claude Code は権限チェックを実行してからツールを実行します。

115 

116この hook は force-push を行う Bash コマンドを拒否し、Claude に理由を伝えます:

117 

118```javascript theme={null}

119// matcher は hook を Bash 呼び出しに制限するため、e.command はシェルコマンド

120on('tool.call', { tool: 'Bash' }, async ($, e, next) => {

121 if (/git push .*--force/.test(e.command)) {

122 // next を呼び出さずに返すことでイベントに答えるため、コマンドは実行されない

123 return { deny: 'Force pushes are not allowed in this repository. Push to a new branch instead.' }

124 }

125 // 他のすべてのコマンドは権限チェックを経由して Bash に進む

126 return next(e)

127})

128```

129 

130Claude が `git push --force` を試みると、コマンドは実行されず、hook が `next` を呼び出さないため権限プロンプトは表示されません。Claude は `deny` テキストをツールの結果として読むため、Claude が作用できる指示として書いてください。他のすべての Bash コマンドは mod なしで実行されるのと同じように実行されます。

131 

132ツールが実行された後にアクションを実行するには、`await next(e)` を実行し、作業を行い、`next` が与えたものを返します。この hook は Claude が変更する各 `.mdx` ファイルをログに記録します。[`$.ui.log`](/docs/ja/plugins/mods/api#show-something-without-starting-a-turn) を使用します。これはトランスクリプトに薄い行を追加し、Claude は読みません:

133 

134```javascript theme={null}

135on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {

136 // 権限チェックとツールを待ち、それらが生成したものを保持する

137 const result = await next(e)

138 // 拒否された呼び出しは { deny } として戻り、失敗したものは isError が設定されている

139 const changed = !result.deny && !result.isError

140 if (changed && e.file_path.endsWith('.mdx')) $.ui.log('Claude changed ' + e.file_path)

141 // ツールが返したものを Claude が読むように、結果をそのまま返す

142 return result

143})

144```

145 

146Claude が `.mdx` ファイルを編集または書き込んだ後、トランスクリプトの薄い行がファイルに名前を付けます。別の種類のファイルの場合、または拒否または失敗した呼び出しの場合は何もログに記録されません。hook が受け取った結果を返すため、Claude の呼び出しの見方は変わりません。

147 

148呼び出しを変更するには、変更された引数を `next` に渡します。呼び出しを再試行するには、`next(e)` を再度呼び出します:最初の結果で `isError` を見る hook は、ツールを 2 番目の時間実行して、その結果を返すことができます。呼び出しに自分で答えるには、`next` を呼び出さずに `result` フィールドを持つオブジェクト(例えば `{ result: 'Skipped by my-mod' }` など)を返します。そうすると、権限プロンプトは表示されず、ツールは実行されないため、返す結果は Claude が何が起こったかについて学ぶすべてです。

149 

150組織の[管理設定](/docs/ja/server-managed-settings)の hook は、任意の mod の `tool.call` hook の前に実行され、そのうちの 1 つからのブロックは最終的です。

151 

152<h4 id="hold-a-tool-call-until-the-user-decides">

153 ユーザーが決定するまでツール呼び出しを保持する

154</h4>

155 

156hook はツール呼び出しを一時停止し、先に進む前にユーザーに何をするかを尋ねることができます。`tool.call` hook は `next` を呼び出す前または返す前に `await` でき、ツール呼び出しはそれまで保留されたままです。質問をユーザーに提示するには、`$.ui.ask` を呼び出します。これはあなたの質問を Claude があなたに何かを尋ねるために使用するダイアログで、番号付きのオプションリストの上に表示し、ユーザーが選んだラベルに解決されます。オプションの後、ダイアログは異なる答えを入力するための行と **Chat about this** 行を追加します。

157 

158この例の `RISKY` パターンは `rm -r`、`rm -rf`、`git reset --hard`、および `--force` を含む `git push` と一致し、`git push -f` などの他のスペルを見落とします。このモジュールは RISKY パターンと一致する Bash コマンドを実行する前に尋ねます:

159 

160```javascript theme={null}

161const RISKY = /\brm\s+-rf?\b|\bgit\s+reset\s+--hard\b|\bgit\s+push\b.*--force/

162 

163export function register(on) {

164 on('tool.call', { tool: 'Bash' }, async ($, e, next) => {

165 // 質問なしで他のすべてのコマンドを通す

166 if (!RISKY.test(e.command)) return next(e)

167 // 安全な答えから始めるため、誰も答えない質問はコマンドを拒否する

168 let answer = 'Refuse'

169 try {

170 // ツール呼び出しはここで待機し、ユーザーが 2 つのラベルのいずれかを選ぶまで

171 answer = await $.ui.ask('Run this command? ' + e.command, ['Run it', 'Refuse'])

172 } catch {

173 // ユーザーが質問を却下したか、これは誰も尋ねる人がいない claude -p 実行

174 }

175 if (answer !== 'Run it') {

176 // next を呼び出さずに答えるため、コマンドは実行されない

177 return { deny: 'The user declined this command. Ask before trying a different approach.' }

178 }

179 return next(e)

180 })

181}

182```

183 

184Claude が `rm -rf build` などのコマンドを試みると、質問がコマンドと共に表示され、コマンドは答えを待ちます:

185 

186* **ユーザーが Run it を選ぶ**:hook は `next(e)` を呼び出し、通常の権限チェックはその後も実行されます

187* **ユーザーが Refuse を選ぶ**:コマンドは実行されず、Claude は `deny` テキストを読みます

188* **ユーザーが答えを入力する**:`$.ui.ask` は入力されたテキストに解決されます。hook はそれを `Run it` と比較するため、他のテキストはコマンドを拒否します。

189* **誰も答えない**:ユーザーが質問を却下するか **Chat about this** を選ぶと、または `claude -p` 実行では `$.ui.ask` が拒否されるため、`catch` ブロックは答えを `Refuse` のままにします

190 

191`$.ui.ask` などの mods API 呼び出しの中で待機を保持してください。その時間は hook の[10 秒の時間制限](/docs/ja/plugins/mods/reference#limits)に対してカウントされないためです。自分の promise を待つのに費やされた時間はカウントされます。Claude Code は時間切れになった hook をスキップするため、保持されたコマンドは実行されます。

192 

193<h3 id="rewrite-or-add-to-a-prompt">

194 プロンプトを書き換えるまたは追加する

195</h3>

196 

197`prompt.submit` hook は各プロンプトをターンが開始される前に見るため、テキストを書き換えたり、それに追加したりできます。`e.text` は入力されたものです。

198 

199| これを行うには | これを返す |

200| :- | :- |

201| プロンプトを書き換える。トランスクリプトのメッセージは新しいテキストを表示する。 | `next({ ...e, text: newText })` |

202| Claude のみが読むテキストを追加し、プロンプトの後 | `next({ ...e, context: [...(e.context ?? []), extraText] })` |

203| プロンプトが送信されるのを停止する | `{ drop: 'the reason' }` |

204 

205この hook は、プロンプトがプルリクエストに言及するたびに、Claude に現在のブランチ名を追加します:

206 

207```javascript theme={null}

208on('prompt.submit', async ($, e, next) => {

209 // プルリクエストに言及しないプロンプトをそのまま渡す

210 if (!/\bPR\b|pull request/i.test(e.text)) return next(e)

211 const git = await $.process.run(['git', 'branch', '--show-current'])

212 // git リポジトリの外ではコマンドが失敗するため、追加するブランチはない

213 if (git.exitCode !== 0) return next(e)

214 // 前の hook が追加したコンテキストを保持し、Claude 用にもう 1 行追加する

215 return next({ ...e, context: [...(e.context ?? []), 'Current branch: ' + git.stdout.trim()] })

216})

217```

218 

219`open a PR for this change` などのプロンプトを送信すると、メッセージはトランスクリプトで同じに見え、Claude は `Current branch: feature/auth` などの行もそれの後に読みます。プルリクエストに言及しないプロンプトは変更されずに通過し、`git` は実行されません。

220 

221[他のイベント](/docs/ja/plugins/mods/reference#prompts-and-what-claude-reads)は Claude が読むもののその他をカバーします:システムプロンプトの各セクションの `prompt.section`、最初のメッセージで送信されるコンテキストの `prompt.context`、スキルのテキストの `skill.prompt`。これらの hook からのテキストがリクエスト間で変更される場合、[プロンプトキャッシュが無効化されます](/docs/ja/prompt-caching)。

222 

223<h3 id="follow-a-turn">

224 ターンをフォローする

225</h3>

226 

227ターンは 1 つのプロンプトに答えて Claude が行うすべてです。`turn.start`、`turn.step`、および `turn.complete` を hook してフォローします:

228 

229| イベント | いつ発火するか | hook が何をできるか |

230| :- | :- | :- |

231| `turn.start` | ターンが開始される | 観察。`e.turnId` は他の 2 つのイベントでターンを識別します。 |

232| `turn.step` | Claude Code がモデルに 1 つのリクエストを送信しようとしている。ツール呼び出しを持つターンは複数あります。`e.agentId` は subagent のリクエストに対して設定されます。 | 各リクエストのトークン使用量を読み、`next({ ...e, model })` で別のモデルに送信するか、モデルを呼び出さずに答える |

233| `turn.complete` | ターンが終了した。ユーザーが中断したターンを含む。`e.isAborted` は `true` です。`e.answer` は Claude の最終テキスト、`e.durationMs` はそれにかかった時間、`e.usage` はターンのトークン合計です。subagent のターンは `e.agentId` が設定された状態で発火します。 | 観察するか、`{ text: 'Done in 12 seconds' }` などの `text` フィールドを持つオブジェクトを返して、答えの下に行を表示する |

234 

235`turn.step` hook を非同期ジェネレータとして書いてください。イベントがストリーミングされるためです。`yield* next(e)` はレスポンスをストリーミングされるときに転送し、完成した結果に評価されます。この hook は各リクエストの Claude API が[プロンプトキャッシュ](/docs/ja/prompt-caching)から提供した量をログに記録します:

236 

237```javascript theme={null}

238// function* は hook をジェネレータにし、レスポンスを部分的に渡すことができる

239on('turn.step', async function* ($, e, next) {

240 // リクエストを送信し、到着時に各部分を転送し、完成した結果を保持する

241 const result = yield* next(e)

242 // トークン数を報告しない結果をスキップする

243 if (result.usage) {

244 $.ui.log('cache read ' + result.usage.cache_read_input_tokens + ' · wrote ' + result.usage.cache_creation_input_tokens)

245 }

246 // 結果を変更せずに返すため、ターンは通常通り続行される

247 return result

248})

249```

250 

251Claude のレスポンスは mod なしで画面にストリーミングされます。各リクエストが完了した後、トランスクリプトの薄い行がキャッシュから読み取られたトークン数と書き込まれたトークン数を示します。ツール呼び出しを持つターンは複数のリクエストを持つため、複数の行を追加します。

252 

253`result.usage` は Claude API がリクエストに対して報告する 4 つのトークン数を保持します。さらに答えた `model`:`input_tokens`、`output_tokens`、`cache_read_input_tokens`、および `cache_creation_input_tokens`。hook は subagent のリクエストに対しても実行されるため、メインの会話のみが必要な場合は `e.agentId` をチェックしてください。

254 

255<h3 id="hook-the-settings-hook-events">

256 設定 hook イベントを hook する

257</h3>

258 

259設定 hook は、設定ファイルで構成するコマンド、HTTP、プロンプト、およびエージェント hook です。各[設定 hook イベント](/docs/ja/hooks#hook-events)(`Stop`、`SessionEnd`、`PostToolUse` など)は、`classic.` の後に設定 hook イベントの名前が続く `classic.Stop` などのイベントでもあります。`e` は設定 hook が stdin で受け取る JSON であり、`transcript_path` を含みます。

260 

261この hook は Claude が応答を終了したときに発火する `Stop` を使用して、セッションのトランスクリプトが保存されている場所をログに記録します:

262 

263```javascript theme={null}

264on('classic.Stop', async ($, e, next) => {

265 // e は設定ファイルの Stop hook が stdin から読む同じフィールドを持つ

266 $.ui.log('Transcript saved at ' + e.transcript_path)

267 // イベントを渡すため、設定ファイルの Stop hook はまだ実行される

268 return next(e)

269})

270```

271 

272Claude が応答を終了するたびに、トランスクリプトの薄い行がトランスクリプトファイルのパスを示します。hook は `next(e)` を返すため、イベントを観察し、ターンの終了方法について何も変更しません。

273 

274<h2 id="run-alongside-other-mods">

275 他の mod と並行して実行する

276</h2>

277 

278複数の mod が同じイベントを hook でき、そのいずれかが失敗する可能性があります。mod がツール呼び出しをブロックする場合、チェーン内のその位置と hook が失敗したときに何が起こるかを確認してください。

279 

280<h3 id="the-order-mods-run-in">

281 mod が実行される順序

282</h3>

283 

284同じイベントの hook は 1 つのミドルウェアチェーンを形成します。各 mod の `next` は次の mod の hook を呼び出し、最後の `next` は Claude Code 独自の動作に到達します。最初の mod は最も外側です:他の前にイベントを見て、その後に結果を見て、他が実行されるかどうかを決定します。後の mod は前の mod がイベントを見るのを止めることはできません。

285 

286Claude Code は各 mod がどこから来るかによってチェーンを順序付けます:

287 

2881. 組み込みガード `sec-default@builtin`。Claude Code に組み込まれた mod。`/plugin` は `cc-plugin-sec-default` としてリストアップします。[ここで読み込まれます](/docs/ja/plugins/mods/admin#know-what-happens-by-default)。組織が [`prependPlugins`](/docs/ja/plugins/mods/admin#install-your-organizations-mods) にリストアップする mod。その後、組織に属し、`appendPlugins` にない他の mod

2892. インストールする mod

2903. 組織が `appendPlugins` にリストアップする mod

2914. Claude Code に組み込まれた他の mod

292 

293インストールする mod の中で、mod はマニフェストの `dependencies` の下にリストアップする mod の前に実行されます。1 つのモジュール内で、hook は `register` が `on` を呼び出した順序で実行されます。

294 

295<h4 id="where-settings-hooks-run-in-the-order">

296 設定 hook が順序で実行される場所

297</h4>

298 

299設定ファイルで構成された `PreToolUse` hook はツール呼び出し中にも実行され、mod のチェーンの固定ポイントで実行されます:

300 

301* **管理設定からの `PreToolUse` hook**:最初の mod の `tool.call` hook の前に実行され、そのうちの 1 つからのブロックは最終的であるため、mod はその呼び出しを見ません。

302* **他のすべての設定ファイルおよびプラグインの `hooks/hooks.json` からの `PreToolUse` hook**:最後の mod が `next` を呼び出した後、Claude Code 独自の動作の一部として実行されます。`tool.call` に答える mod が `next` を呼び出さずに、それらの実行を保持し、`next` を呼び出す mod はそれらの決定を返される結果で見ます。

303 

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 を保持する決定をリストアップしています。

305 

306<h3 id="handle-a-hook-that-fails">

307 失敗した hook を処理する

308</h3>

309 

310失敗した hook はセッションを破壊しません。代わりに何が起こるかを決定できます。`.catch` ハンドラのない hook がスロー、タイムアウト、または間違った形の結果を返すと、次に何が起こるかは `next` を呼び出したかどうかに依存します:

311 

312* **`next` を呼び出す前に失敗した**:Claude Code はそれをスキップし、次のハンドラがその代わりに実行されます

313* **`next` が解決した後に失敗した**:その結果は成立し、何も 2 番目の時間実行されません

314 

3151 行は mod、イベント、および理由に名前を付けます。例えば `my-mod: tool.call hook skipped: threw Error: boom`。それを読む場所はセッションに依存します。[mod が何もしない理由を見つけ出す](/docs/ja/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)がリストアップしています。描画が検証されない `ui.render` hook は異なる方法で報告されます。[要素からツリーを構築する](/docs/ja/plugins/mods/interface#build-a-tree-from-elements)が説明しています。

316 

317呼び出しをブロックする hook を失敗クローズにするには、その代わりに答える `.catch` エラーハンドラを追加します。ここで、`guard` は hook 関数です:

318 

319```javascript theme={null}

320// on は登録を返し、.catch はその 1 つの hook にハンドラを接続する

321on('tool.call', { tool: 'Bash' }, guard).catch(async ($, e, next) => {

322 // next.error.kind は 'throw' または 'timeout' であり、guard がどのように失敗したかを示す

323 return { deny: 'The command guard failed, so this command was not run: ' + next.error.kind }

324})

325```

326 

327`guard` が機能している間、ハンドラは実行されません。`guard` が Bash 呼び出しでスロー、またはタイムアウトすると、Claude Code は同じイベントでハンドラを呼び出します。ハンドラは `{ deny }` を返すため、コマンドは実行されず、Claude はテキストを `throw` または `timeout` で終わるのを読みます。ハンドラなしでは、Claude Code は `guard` をスキップしてコマンドを実行します。ハンドラは[1 秒](/docs/ja/plugins/mods/reference#limits)で答える必要があります。

328 

329<h2 id="next-steps">

330 次のステップ

331</h2>

332 

333* [mods API を使用する](/docs/ja/plugins/mods/api):コマンドとツールを追加し、モデルを呼び出し、タイマーで作業を実行する

334* [インターフェースに描画する](/docs/ja/plugins/mods/interface):hook が収集したものをペインまたはプロンプトの上に表示する

335* [mod をテストする](/docs/ja/plugins/mods/test):テストからこれらのイベントのいずれかを発火させる

336* [Mods リファレンス](/docs/ja/plugins/mods/reference):すべてのイベント、すべての mods API メソッド、および制限

plugins/mods/interface.md +867 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# モッドでインターフェースに描画する

6 

7> Claude Code モッドからペイン、プロンプト上部のバンド、ボタン、テキストフィールドを描画し、押下と入力を処理し、再描画とセッション間で状態を保持します。

8 

9モッドは Claude Code でそれ自身のインターフェースを描画し、Claude Code が既に描画しているインターフェースの一部を変更できます。モッドが描画できる各場所は[レンダーサイト](/docs/ja/plugins/mods/reference#render-sites)と呼ばれます。例えば、ペイン、プロンプト上部のバンド、またはスピナーなどです。Claude Code はレンダーサイトを描画しようとするたびに[`ui.render`](/docs/ja/plugins/mods/reference#interface)イベントを発生させ、そのイベントのフックはそこに何を描画するかを返します。

10 

11このマップは、モッドがターミナルセッションのどこに描画できるかを示しています。

12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Claude Code ターミナルセッションのマップ。モッドはトランスクリプトの右側にペインをサイドバーとして追加でき、トランスクリプトの右上にトーストを追加でき、トランスクリプトにログ行を追加でき、プロンプト上部にバンドを追加でき、プロンプト下部にステータス行を追加できます。モッドはメッセージ、ツール呼び出し行、スピナーを再描画できます。プロンプトは Claude Code 独自のものです。" width="600" height="336" data-path="images/mods-screen-map.svg" />

14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Claude Code ターミナルセッションのマップ。モッドはトランスクリプトの右側にペインをサイドバーとして追加でき、トランスクリプトの右上にトーストを追加でき、トランスクリプトにログ行を追加でき、プロンプト上部にバンドを追加でき、プロンプト下部にステータス行を追加できます。モッドはメッセージ、ツール呼び出し行、スピナーを再描画できます。プロンプトは Claude Code 独自のものです。" width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 

17より狭いターミナルでは、ペインはトランスクリプトの横ではなくプロンプトの上に配置されます。

18 

19[最初のモッド](/docs/ja/plugins/mods/create)を作成してからここを始めてください。実装例から始めます。これは 2 つのタブとカウンターを持つペインを構築し、その後、変更したい各部分のセクションを読んでください。

20 

21<Note>

22 1 つのプロップまたは制限を調べるには、[リファレンス](/docs/ja/plugins/mods/reference#render-sites)を参照してください。

23</Note>

24 

25<h2 id="build-a-pane-with-tabs">

26 タブ付きペインを構築する

27</h2>

28 

29このセクションでは、`/hello-tabs` コマンドを追加するモッドを構築します。このコマンドはペインを開きます。ペインは、広いフルスクリーンターミナルではトランスクリプトの横にあるサイドバー、またはそれ以外の場合はプロンプト上部のフレーム領域です。このペインは 2 つのタブを表示し、2 番目のタブにはカウンターに 1 を加えるボタンがあります。カウントは Claude Code を再起動した後も残ります。

30 

31完成したモッドは次のようになります。記録はペインを開き、2 番目のタブに切り替え、ボタンを数回押し、最初のタブに戻ります。

32 

33<Frame>

34 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=49d520094d87b5b44bfe50fa49677f06" aria-label="/hello-tabs コマンドが Claude Code プロンプトに入力され、フレーム付きペインが上に開き、上部に「1: One」と「2: Two」があり、テキスト「This is the first tab.」が表示されます。2 番目のタブは「Add one」ボタンを「Count: 1」の横に表示し、カウントが 3 に上がります。ペインは最初のタブに戻ります。" data-path="images/mods-hello-tabs-light.mp4" />

35 

36 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=ff7a14d713d6e5d3b0000efa8522ea4b" aria-label="/hello-tabs コマンドが Claude Code プロンプトに入力され、フレーム付きペインが上に開き、上部に「1: One」と「2: Two」があり、テキスト「This is the first tab.」が表示されます。2 番目のタブは「Add one」ボタンを「Count: 1」の横に表示し、カウントが 3 に上がります。ペインは最初のタブに戻ります。" data-path="images/mods-hello-tabs-dark.mp4" />

37</Frame>

38 

39Claude Code には組み込みのタブ要素がないため、タブは行内の 2 つのボタンです。モッドはどのタブがアクティブかを追跡し、その行の下にそのタブのコンテンツを描画します。

40 

41<Steps>

42 <Step title="プラグインを作成する">

43 モッドはマニフェスト、`hooks.json` がコードを指す、およびコードファイルを持つプラグインです。[モッドを作成する](/docs/ja/plugins/mods/create#write-a-mod-yourself)は各ファイルについて説明しています。`hello-tabs` という名前のディレクトリを作成し、その中に `.claude-plugin` と `hooks` ディレクトリを作成してから、最初の 2 つのファイルを保存します。

44 

45 マニフェストを `hello-tabs/.claude-plugin/plugin.json` として保存します。

46 

47 ```json hello-tabs/.claude-plugin/plugin.json theme={null}

48 {

49 "name": "hello-tabs",

50 "version": "0.1.0",

51 "description": "Opens a pane with two tabs and a counter",

52 "author": { "name": "Your Name" }

53 }

54 ```

55 

56 `hello-tabs/hooks/hooks.json` でエントリーポイントに名前を付けます。

57 

58 ```json hello-tabs/hooks/hooks.json theme={null}

59 {

60 "modules": ["./register.js"]

61 }

62 ```

63 </Step>

64 

65 <Step title="コードを書く">

66 コードは 3 つのジョブを実行し、各フックで 1 つずつ実行します。

67 

68 * `/hello-tabs` コマンドを追加する

69 * そのコマンドを実行するときペインを開く

70 * ペインのコンテンツを描画する。タブの行とオープンタブのボディ

71 

72 2 つのモジュールレベルの変数、`tab` と `count` がペインの状態を保持します。

73 

74 これを `hello-tabs/hooks/register.js` として保存します。

75 

76 ```javascript hello-tabs/hooks/register.js theme={null}

77 // ペインの id。ペインを開くときと描画時に認識するために使用

78 const PANE = 'hello-tabs'

79 

80 // ペインが表示するもの。どのタブがオープンか、カウンターの値

81 let tab = 'one'

82 let count = 0

83 

84 export function register(on) {

85 // 最初のプロンプトの前に実行され、リロード後に再度実行

86 on('session.start', async ($, e, next) => {

87 await $.command.register({ name: 'hello-tabs', description: 'Open the hello-tabs pane' })

88 // 以前のセッションが保存したカウントを読み込む(存在する場合)

89 const saved = await $.store.get('count')

90 if (typeof saved === 'number') count = saved

91 return next(e)

92 })

93 

94 // /hello-tabs を入力したときに実行

95 on('command.run', { command: 'hello-tabs' }, async ($) => {

96 // ペインを開き、キーボードを与え、Esc で閉じることを許可

97 await $.ui.open({ id: PANE, title: 'Hello tabs', focus: true, closeOnEscape: true })

98 // トランスクリプトに何も出力しない

99 return {}

100 })

101 

102 // Claude Code がペインを描画するたびに実行

103 on('ui.render', { component: 'Pane' }, async ($, e, next) => {

104 // 他のモッドのペインはそのままにする

105 if (e.requestId !== PANE) return next(e)

106 // このアプリが描画できる要素を取得

107 const { Box, Text, Button } = $.ui.resolve(e)

108 // Claude Code にこのフックを再度実行するよう要求

109 const redraw = () => $.ui.invalidate('ui.render')

110 

111 // 1 つのタブ。押されたときそのタブに切り替えるボタン

112 const tabButton = (name, label, hotkey) =>

113 Button({

114 key: 'tab-' + name,

115 label,

116 hotkey,

117 plain: true,

118 // オープンされていないタブを暗くする

119 dimColor: tab !== name,

120 onPress: () => {

121 tab = name

122 redraw()

123 },

124 })

125 

126 // タブの下に表示されるもの。どのタブがオープンかによる

127 const body =

128 tab === 'one'

129 ? [Text({ children: ['This is the first tab.'] })]

130 : [

131 Box({

132 flexDirection: 'row',

133 columnGap: 2,

134 children: [

135 Button({

136 key: 'more',

137 label: 'Add one',

138 hotkey: 'a',

139 onPress: async () => {

140 count += 1

141 redraw()

142 // カウントを保存して再起動後も残すようにする

143 await $.store.set('count', count)

144 },

145 }),

146 Text({ children: ['Count: ' + count] }),

147 ],

148 }),

149 ]

150 

151 // ペイン全体。タブの行、空行、その後ボディ

152 return Box({

153 flexDirection: 'column',

154 children: [

155 Box({

156 flexDirection: 'row',

157 columnGap: 3,

158 children: [tabButton('one', 'One', '1'), tabButton('two', 'Two', '2')],

159 }),

160 Text({ children: [' '] }),

161 ...body,

162 ],

163 })

164 })

165 }

166 ```

167 

168 各フックはコードが明確にしていないことも実行します。

169 

170 * \*\*[`session.start`](/docs/ja/plugins/mods/reference#session)\*\*は[`$.store`](#keep-state)から保存されたカウントも読み込みます。これはセッション間で永続化するキー値ストアです。

171 * \*\*[`command.run`](/docs/ja/plugins/mods/api#add-a-command)\*\*は Claude Code にペインが存在することを伝えるだけです。ペインを開くこと自体は何も描画しません。Claude Code は `ui.render` を発生させてそこに何が入るかを尋ねます。

172 * \*\*`ui.render`\*\*は要素ツリーを返します。これは他のボックス、テキスト、ボタンを保持する `Box` であり、実行されるたびに `tab` と `count` から再度構築されます。

173 

174 ボタンを押すとその `onPress` コールバックが実行され、変数が変更され、`redraw` が呼ばれます。Claude Code は `ui.render` フックを再度実行し、フックは新しい値から新しいツリーを構築します。すべてのインタラクティブな描画はそのレンダーサイクルを使用します。コールバックが状態を変更し、フックが新しい状態から再度レンダリングします。

175 </Step>

176 

177 <Step title="ペインを開く">

178 シェルで `claude --plugin-dir ./hello-tabs` で Claude Code を起動します。Claude Code プロンプトで `/hello-tabs` を実行します。ペインが開き、上部に `1: One` と `2: Two` が表示されます。`2` を押してから、**Add one** のホットキーである `a` を数回押します。カウントが上がります。

179 </Step>

180 

181 <Step title="カウントが保存されたことを確認する">

182 Esc を押してペインを閉じ、セッションを終了します。シェルで同じ `claude --plugin-dir ./hello-tabs` コマンドで Claude Code を再度起動し、Claude Code プロンプトで `/hello-tabs` を実行します。カウントは残したままです。

183 

184 カウントをクリアするには、モッドに `$.store.delete('count')` を呼び出させます。[状態を保持する](#keep-state)は各種類の値がどのくらい続くかをカバーしています。

185 </Step>

186</Steps>

187 

188<h2 id="pick-where-to-draw">

189 描画する場所を選ぶ

190</h2>

191 

192`ui.render` フックは、希望するレンダーサイトに絞り込まない限り、すべてのレンダーサイトに対して実行されます。レンダーサイトを選択するには、`on` の 2 番目の引数として[マッチャー](/docs/ja/plugins/mods/events#filter-which-events-a-hook-handles)と呼ばれるフィルターを渡します。`{ component: 'Pane' }` はペインに対してのみフックを実行します。フック内では、`e.component` がサイトに名前を付け、`e.surface` はどのアプリが描画しているかを示し、`e.props` はサイト独自のデータを保持します。ペインの場合、`e.requestId` はそれを開いた `id` です。

193 

1942 つのサイトはモッドがそれらを埋めるまで空です。ペインとバンドです。タブを選択して、各サイトが何であり、どのように描画するかを確認してください。

195 

196<Tabs>

197 <Tab title="ペイン">

198 ペインは、広いフルスクリーンターミナルではトランスクリプトの横にあるサイドバー、またはそれ以外の場合はプロンプト上部のフレーム領域です。複数のペインがオープンされている場合、各ペインはそのタイトルを表示するタブを取得します。

199 

200 ペインは、モッドが `$.ui.open` を `id` で呼び出すときに表示されます。例えば `$.ui.open({ id: 'hello-tabs' })` のように。[適切なタイミングでペインを開く](#open-a-pane-at-the-right-time)は他のフィールドと、ペインがより広いターミナルを待つときをカバーしています。

201 

202 ペインに描画するには、`{ component: 'Pane' }` でフィルターし、`e.requestId` が `id` であることを確認します。

203 </Tab>

204 

205 <Tab title="プロンプト上部のバンド">

206 バンドはプロンプト入力の直上のストリップです。常に存在し、すべてのモッドがそれを共有します。

207 

208 フックは何かを表示するツリーを返すか、何も表示しない場合は `next(e)` を返します。ツリーは、モッド[の後に実行される](/docs/ja/plugins/mods/events#the-order-mods-run-in)ものが描画するものを置き換えます。それらを保持するには、`await next(e)` の結果をツリー内の[`Box`](#build-a-tree-from-elements)の子の中に配置します。

209 

210 バンドに描画するには、`{ component: 'AbovePrompt' }` でフィルターします。

211 </Tab>

212</Tabs>

213 

214<h3 id="change-what-claude-code-already-draws">

215 Claude Code が既に描画しているものを変更する

216</h3>

217 

218Claude Code はそのインターフェースのほとんどを自分で描画します。メッセージ、ツール呼び出し行、スピナーなど。これらの各部分もレンダーサイトであるため、モッドはそれをリスタイルまたは置き換えることができます。1 つを変更するには、`ui.render` フックをこのテーブルの名前でフィルターします。

219 

220| サイト | それが何であるか |

221| :- | :- |

222| `UserMessage`、`AssistantMessage` | トランスクリプト内のメッセージ |

223| `ToolUse`、`ToolResult`、`ToolGroup` | ツール呼び出しの行、その結果、および折りたたまれた呼び出しの実行 |

224| `CommandOutput` | コマンドが出力した行 |

225| `AskUserQuestion` | Claude があなたに質問するために開くダイアログ |

226| `Spinner`、`ToolProgress`、`TurnDuration` | ターンのステータス行。Claude が作業している間にアニメーションする行、実行中のツールのライブ進捗行、ターンを閉じる行 |

227| `InfoNotice`、`SessionMode`、`PromptHint` | ロゴの下のステータス行、フッターのモードラベル、プロンプトの下のヒント行 |

228 

229Claude Code が既に描画しているサイトでは、フックには 3 つの選択肢があります。詳細を変更する、描画を置き換える、またはそのままにする。タブを選択して、スピナーに適用された各ものを確認してください。例は、[チュートリアルモッド](/docs/ja/plugins/mods/create#write-a-mod-yourself)のように別のフックがカウントする `calls` 変数を読みます。

230 

231<Tabs>

232 <Tab title="詳細を変更する">

233 Claude Code の描画を保持し、その一部を変更するには、変更された `props` を持つイベントのコピーを `next` に渡します。このフックはスピナーの単語の後のテキストを変更します。

234 

235 ```javascript theme={null}

236 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

237 // Claude Code のスピナーを保持し、その単語の後のテキストを変更

238 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

239 })

240 ```

241 

242 スピナーはそのアニメーションと単語を保持し、テキストが単語に続きます。

243 

244 ```text theme={null}

245 Thinking · tool calls: 2…

246 ```

247 </Tab>

248 

249 <Tab title="描画を置き換える">

250 スピナーがある場所に独自のツリーを描画するには、ツリーを返し、`next` を呼び出さないでください。このフックはスピナーがある場所にテキストの 1 行を描画します。

251 

252 ```javascript theme={null}

253 on('ui.render', { component: 'Spinner' }, async ($, e) => {

254 const { Text } = $.ui.resolve(e)

255 // next への呼び出しがないため、この行はスピナーの場所に描画されます

256 return Text({ children: ['Claude has made ' + calls + ' tool calls'] })

257 })

258 ```

259 

260 Claude が作業している間、行が表示され、Claude Code のスピナーは表示されません。

261 

262 ```text theme={null}

263 Claude has made 2 tool calls

264 ```

265 </Tab>

266 

267 <Tab title="そのままにする">

268 Claude Code が描画するようにサイトをそのままにするには、`next(e)` を返します。フックはしばしば一部のイベントに対してそれを実行し、他のイベントに対しては実行しません。このフックはカウントするまでスピナーをそのままにします。

269 

270 ```javascript theme={null}

271 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

272 // まだ表示するものがないため、イベントを変更せずに渡す

273 if (calls === 0) return next(e)

274 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

275 })

276 ```

277 

278 最初のツール呼び出しの前に、スピナーはモッドなしで表示される方法で表示されます。

279 

280 ```text theme={null}

281 Thinking…

282 ```

283 </Tab>

284</Tabs>

285 

286権限プロンプトはレンダーサイトではないため、モッドはそれが表示するものを変更できません。質問ダイアログ `AskUserQuestion` は 1 つであるため、モッドはそれを変更できます。

287 

288ターミナルと Desktop アプリはすべての同じサイトを発生させません。`Pane`、`AbovePrompt`、`Spinner`、およびトランスクリプトサイトは両方で機能します。他のいくつかのステータス行はターミナルでのみ発生します。[レンダーサイトテーブル](/docs/ja/plugins/mods/reference#render-sites)は各サイトが発生する場所をリストしています。

289 

290<h3 id="open-a-pane-at-the-right-time">

291 適切なタイミングでペインを開く

292</h3>

293 

294ペインはモッドがそれを開くときにのみ表示されます。どのように、いつ開くかは、キーボードフォーカスを取得するかどうか、どのくらいのスペースを要求するか、および狭いターミナルで表示されるかどうかを決定します。

295 

296ペインを開くには、選択した `id` で[`$.ui.open`](/docs/ja/plugins/mods/reference#mods-api-methods)を呼び出します。`id` はペインの名前です。`ui.render` フックはそれをチェックし、ペインを閉じるときに再度渡します。

297 

298```javascript theme={null}

299await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })

300```

301 

302ペインを閉じるには、それを開いた `id` で `$.ui.close` を呼び出します。

303 

304```javascript theme={null}

305await $.ui.close({ id: 'hello-tabs' })

306```

307 

308`id` の他に、`$.ui.open` はこれらのオプションフィールドを取ります。

309 

310| フィールド | それが実行すること |

311| :- | :- |

312| `title` | 複数のペインがオープンされているときのペインのタブラベル |

313| `focus` | [キーボードフォーカス](#know-which-keys-your-mod-can-receive)をリクエスト |

314| `closeOnEscape` | Esc でペインを閉じるようにします。`true` を渡すか、フィールドを省略してください。Claude Code は `false` を拒否します。 |

315| `holdToasts` | [`$.ui.toast`](/docs/ja/plugins/mods/api#show-something-without-starting-a-turn)からの小さな通知であるトーストを、ペインが閉じるまで保持します |

316| `rows` | ペインがプロンプト上部に配置されるときに要求する高さ。デフォルトはスペースの 3 分の 1 です。 |

317| `columns` | ペインがトランスクリプトの横に配置されるときに要求する幅 |

318 

319Claude が作業している間にコマンドがペインを開くようにするには、[コマンドを登録](/docs/ja/plugins/mods/api#add-a-command)するときに `immediate: true` を追加します。それなしでは、ターン中に入力されたコマンドはターンが終わるまで待ちます。

320 

321<h4 id="when-a-pane-waits-for-a-wider-terminal">

322 ペインがより広いターミナルを待つとき

323</h4>

324 

325モッドが要求されずに開くペインは狭いターミナルに表示されないため、小さな画面を引き継ぐことはできません。表示されるかどうかは、それを開いたものによって異なります。

326 

327* **ユーザーが実行したコマンドやボタンを押すなど、ユーザーが実行したもの**によって開かれた場合、ペインは任意の幅で表示されます

328* **タイマーまたは[`turn.start`](/docs/ja/plugins/mods/events#follow-a-turn)フックなど、モッドが自分で実行したもの**によって開かれた場合、ペインは少なくとも 144 列幅のターミナルでのみ表示されます。ユーザーが一度そのペインを自分で開いた後は、110 列で十分です。

329 

330ペインが表示されるとき、`$.ui.open` は `{ isPlaced: true }` に解決されます。ペインが待機しているとき、`isPlaced` は `false` で、`reason` は理由を説明する文字列です。待機中のペインはユーザーがそれを開くか、ターミナルを広げるときに表示されます。ペインを開かずに何かが利用可能であることを言うには、`$.ui.toast('Your message')` を呼び出します。これは数秒後に消える小さな通知を表示します。

331 

332<h2 id="build-a-tree-from-elements">

333 要素からツリーを構築する

334</h2>

335 

336`ui.render` フックが返すものは要素ツリーです。これは描画する内容の説明であり、ボックス、テキスト、および制御が互いにネストされています。描画を説明し、Claude Code はターミナルまたは Desktop アプリでそれをレンダリングします。

337 

338要素を取得するには、フック内で `$.ui.resolve(e)` を呼び出します。例えば `const { Box, Text, Button } = $.ui.resolve(e)` のように。各要素は関数です。プロップを渡し、その中に入るべき要素と文字列を `children` に配置します。

339 

340ほとんどの描画は 4 つの要素を使用します。タブを選択して、各要素とターミナルがそれをどのように描画するかを確認してください。

341 

342<Tabs>

343 <Tab title="テキスト">

344 `Text` は文字列を描画し、`bold` や `color` などのオプションのスタイリングを使用します。

345 

346 ```javascript theme={null}

347 Text({ children: ['This is the first tab.'] })

348 ```

349 

350 ```text theme={null}

351 This is the first tab.

352 ```

353 </Tab>

354 

355 <Tab title="ボックス">

356 `Box` は内部にあるものを行または列に配置します。これは、ボタンとテキスト行を 2 列離して並べて配置します。

357 

358 ```javascript theme={null}

359 Box({

360 flexDirection: 'row',

361 columnGap: 2,

362 children: [

363 Button({ key: 'more', label: 'Add one', onPress: addOne }),

364 Text({ children: ['Count: 0'] }),

365 ],

366 })

367 ```

368 

369 ```text theme={null}

370 [ Add one ] Count: 0

371 ```

372 </Tab>

373 

374 <Tab title="ボタン">

375 `Button` はユーザーが押すことができるコントロールです。`onPress` コールバックを実行します。`plain: true` を使用すると、括弧がなく、ホットキーが表示されます。

376 

377 ```javascript theme={null}

378 Button({ key: 'more', label: 'Add one', onPress: addOne })

379 Button({ key: 'tab-one', label: 'One', hotkey: '1', plain: true, onPress: showTabOne })

380 ```

381 

382 ```text theme={null}

383 [ Add one ]

384 1: One

385 ```

386 </Tab>

387 

388 <Tab title="入力">

389 `Input` はテキストフィールドです。ユーザーが Enter を押すと、`onSubmit` コールバックをテキストで実行します。

390 

391 ```javascript theme={null}

392 Input({

393 key: 'new-note',

394 label: 'Note',

395 placeholder: 'Type a note and press Enter',

396 value: '',

397 submitLabel: 'add',

398 onSubmit: addNote,

399 })

400 ```

401 

402 ```text theme={null}

403 Note: Type a note and press Enter ⏎ add

404 ```

405 </Tab>

406</Tabs>

407 

408このテーブルはすべての要素をリストしています。

409 

410| 要素 | それが描画するもの | どこで |

411| :- | :- | :- |

412| `Box` | フレックスコンテナ。`flexDirection`、`columnGap`、`padding`、`borderStyle`、`width` などのレイアウトプロップを取ります。 | どこでも |

413| `Text` | スタイル付きテキスト。`color`、`bold`、`dimColor`、`italic`、`wrap` を取ります。`color` はテーマキーまたは `'red'` などの色です。`wrap` は `'wrap'`、`'truncate'`、`'truncate-start'`、`'truncate-middle'`、または `'truncate-end'` です。 | どこでも |

414| `Button` | `onPress` を呼び出すコントロール | どこでも |

415| `Link`、`Code`、`Markdown` | `href` とオプションの `label` を持つリンク、コードブロック、および Claude の返信の方法でフォーマットされたテキスト。`Markdown` は `children` ではなく `text` プロップでコンテンツを取り、`onLinkPress` を渡すときは `key` が必要です。 | どこでも |

416| `Input`、`Select` | テキストフィールドとピッカー | ターミナル、Desktop |

417| `Svg` | SVG ドキュメント | Desktop |

418| `Client` | 2 番目のファイルで描画される領域。アニメーションとポインター入力用。そのファイルはモッド API を取得しません。フックに到達するのはデータを投稿することだけで、`ui.message` イベントとして到達します。 | ターミナル、Desktop |

419| `Raster`、`Image` | [色付きセルのグリッド](#draw-a-grid-of-colored-cells)と画像 | ターミナル |

420 

421モジュールが `.tsx` または `.jsx` ファイルの場合、ツリーを JSX として記述できます。`$.ui.resolve(e)` から要素を分割代入してください。フックモジュールには要素グローバルがないためです。

422 

423ツリーがアプリが持たない要素、要素が取らないプロップ、または子が入らない場所を使用する場合、Claude Code はサイトの独自のバージョンを描画します。

424 

425`--plugin-dir` で開始されたセッションでは、トランスクリプト行がそう言います。例えば `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`。[デバッグログ](/docs/ja/plugins/mods/troubleshoot#read-the-debug-log)は `ui.render (Pane): a hook returned a tree that does not validate` として同じ理由で記録します。他に何も表示されないため、描画が表示されない場合は、その行またはログを確認してください。

426 

427<h3 id="draw-a-grid-of-colored-cells">

428 色付きセルのグリッドを描画する

429</h3>

430 

431ヒートマップ、スパークライン、またはターミナルのゲームボードの場合、各セルに対して 1 つの `Raster` を描画し、`Box` ではありません。`Raster` は `key`、`columns` と `rows` のサイズ、および `cells` を取ります。これはすべてのセルを 1 つの文字列にパックします。各セルは 3 つの数字です。文字のコードポイント、その色、背景色。色は `0xc62828` のような赤、または `0x01000000` のようなターミナルのデフォルトの 16 進数です。

432 

433Desktop アプリには `Raster` がないため、`e.surface` をチェックしてそこにテキストを描画します。このペインボディは 3 x 2 のヒートマップを描画します。

434 

435```javascript theme={null}

436// 「ターミナルのデフォルト色を使用」を意味する値

437const DEFAULT_COLOR = 0x01000000

438 

439// [文字、色] ペアの行を Raster が取る 1 つの文字列にパック

440// 1 つのセルは 3 つの数字です。文字のコードポイント、その色、背景色

441function cellsOf(rows) {

442 const numbers = rows.flat().flatMap(([char, color]) => [char.codePointAt(0), color, DEFAULT_COLOR])

443 return new Uint8Array(Uint32Array.from(numbers).buffer).toBase64()

444}

445 

446on('ui.render', { component: 'Pane' }, async ($, e, next) => {

447 // id が 'heat' のペインでのみ描画

448 if (e.requestId !== 'heat') return next(e)

449 const { Box, Text, Raster } = $.ui.resolve(e)

450 // 3 つのセルの 2 行。各セルはブロック文字とその色

451 const rows = [

452 [['█', 0x2e7d32], ['█', 0xf9a825], ['█', 0xc62828]],

453 [['█', 0x2e7d32], ['█', 0x2e7d32], ['█', 0xf9a825]],

454 ]

455 if (e.surface !== 'terminal') {

456 return Text({ children: ['The heat map needs the terminal.'] })

457 }

458 return Box({

459 flexDirection: 'column',

460 children: [Raster({ key: 'grid', columns: 3, rows: 2, cells: cellsOf(rows) })],

461 })

462})

463```

464 

465ターミナルでは、ペインはグリッドを表示します。

466 

467<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-heat-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=b91bcce3bad74bc851149133d4acc5d5" alt="ターミナル内のペイン。色付きブロックの小さなグリッドを保持します。2 行の 3 つ。上の行は緑、琥珀色、赤です。下の行は緑、緑、琥珀色です。" width="360" height="132" data-path="images/mods-heat-map.svg" />

468 

469`rows` 配列は変更する部分であり、`cellsOf` はそれをパックされた文字列に変換します。フックは `id` が `heat` のペインでのみ描画するため、`$.ui.open({ id: 'heat' })` をコマンドから開きます。[`hello-tabs` の例](#build-a-pane-with-tabs)がそのペインを開く方法のように。

470 

471各文字は 1 セル幅である必要があります。既に画面上にある `Raster` をアニメーション化するには、ペインの `id` を `requestId` として、`Raster` の `key`、同じサイズ、および新しいセルで `$.ui.blit` を呼び出します。この例では、`$.ui.blit({ requestId: 'heat', key: 'grid', columns: 3, rows: 2, cells: cellsOf(newRows) })` です。`ui.render` フックを再度実行せずにその 1 つの要素を再描画します。

472 

473<h2 id="respond-to-presses-and-typing">

474 押下とタイピングに応答する

475</h2>

476 

477ユーザーがボタンを押す、フィールドに入力する、またはモッドが描画したリストから選択するとき、Claude Code はそのコントロールに与えた関数を呼び出し、モジュール内で実行されます。各コントロールは独自のコールバックを取ります。

478 

479* **`Button`**: `onPress(e)` を取ります。ここで `e.surface` は押下が来たアプリです

480* **`Input`**: `onSubmit(value)` と `onInput(value)` を取ります

481* **`Select`**: `onSelect(value)` を取ります。選択肢は `options` にあります。少なくとも 1 つの選択肢を持つリスト。例えば `[{ value: 'sm', label: 'Small' }, { value: 'lg', label: 'Large' }]`

482 

483テストは `key` でコントロールを押すか入力するため、各コントロールに 1 つを与えます。コントロールの各使用は[`ui.press`、`ui.input`、または `ui.select`](/docs/ja/plugins/mods/reference#interface)も発生させます。`e.element` に `key` があり、別のモッドはそれらのイベントをフックできます。そのフックはコールバックの前に実行されるため、ユーザーが `Input` に入力するものを見て、それを変更するか、コールバックの代わりに答えることができます。モッド API には別のモッドのボタンを押すメソッドがありません。

484 

485<h3 id="know-which-keys-your-mod-can-receive">

486 キーボードフォーカスとホットキー

487</h3>

488 

489モッドはキーボード自体を読むことはありません。ユーザーがキーを押し、Claude Code はそれがコントロールのどれであるかを決定し、そのコントロールのコールバックが実行されます。[バンド上の数字ホットキー](/docs/ja/plugins/mods/reference#elements)を除いて、これはペインまたはバンドがキーボードフォーカスを持っている間にのみ発生します。それ以外の場合、キーはプロンプトに移動します。

490 

491<h4 id="how-a-pane-gets-keyboard-focus">

492 ペインがキーボードフォーカスを取得する方法

493</h4>

494 

495ペインは 3 つの方法のいずれかでキーボードフォーカスを取得します。

496 

497* モッドがコマンドまたは押下から `focus: true` で開く

498* ユーザーが Ctrl+X を押してから Tab を押す

499* ユーザーがそれをクリックする

500 

501Claude Code は `focus: true` をプロンプトが空で、他に何もキーボードフォーカスを持たない間にのみ付与します。ユーザーが入力している間に開くペインはそのキーストロークを取得しません。

502 

503<h4 id="what-each-key-does">

504 各キーが実行すること

505</h4>

506 

507このテーブルは、ペインまたはバンドがキーボードフォーカスを持っている間、キーが実行することをリストしています。

508 

509| キー | それが実行すること |

510| :- | :- |

511| Tab | 次のコントロールに移動 |

512| 上下 | 描画がフィットしている間、コントロール間を移動します。ペインまたはバンドが表示できるより多くの行を持つ場合、それらはスクロールします。 |

513| Enter | フォーカスされた `Button` を押す、フォーカスされた `Input` を送信する、または `Select` で選択 |

514| ボタンのホットキー | そのボタンを押す。`Input` がフォーカスを持っている間、すべての印字可能キーはフィールドに移動します。 |

515| Esc | キーボードフォーカスをプロンプトに返します。`closeOnEscape: true` を使用すると、ペインも閉じます。 |

516 

517モッドは Tab またはアロー キーを他のものにバインドできないため、ゲームは `w`、`a`、`s`、`d` で操舵します。

518 

519<h4 id="set-a-hotkey-and-the-first-focus">

520 ホットキーと最初のフォーカスを設定する

521</h4>

522 

523コントロール上の 2 つのプロップがキーボードがそれに到達する方法を決定します。

524 

525* **`hotkey`**: ユーザーが `Button` を 1 つのキーで押すことを許可するには、`hotkey: 'a'` のように 1 つの数字または 1 つの小文字の `hotkey` を与えます

526* **`autoFocus`**: ペインが開くときどのコントロールがフォーカスを持つかを選択するには、`autoFocus: true` を追加します。他のコントロールからプロップを省略してください。Claude Code は `autoFocus: false` を拒否します。

527 

528ホットキーがどのように表示されるかはボタンとアプリによって異なります。

529 

530| ボタン | ターミナルで | Desktop アプリで |

531| :- | :- | :- |

532| 括弧付き、デフォルト | `[ Add one ]`。ホットキーは表示されません | ラベルと小さなキー |

533| `plain: true` を使用 | `1: One` | ラベルと小さなキー |

534 

535ターミナルでは、括弧付きボタンのラベルにキーに名前を付けるか、`plain: true` を使用して、ユーザーが何を押すかを見ることができます。[要素リファレンス](/docs/ja/plugins/mods/reference#elements)には他の `Button` ルールがあります。`action`、バンド上の数字ホットキー、および 1 つのホットキー上の 2 つのボタン。

536 

537<h3 id="take-typed-input-and-draw-a-row-for-each-item">

538 入力を取得し、各アイテムの行を描画する

539</h3>

540 

541多くのペインはテキストフィールドとその下のリストです。このセクションの例はノートペインです。ノートを入力して Enter を押して追加し、各ノートには削除する `x` ボタンがあります。2 つのノートが追加されたとき、ターミナルはペインをこのように描画します。

542 

543```text theme={null}

544╭──────────────────────────────────────────────────────────╮

545│ Note: Type a note and press Enter ⏎ add ✕ │

546│ x buy milk │

547│ x call bob │

548╰──────────────────────────────────────────────────────────╯

549```

550 

551例は 2 つのテクニックを使用します。

552 

553* **入力を取得**: `Input` はユーザーが Enter を押すとフィールドのテキストで `onSubmit(value)` を呼び出し、すべての変更で `onInput(value)` を呼び出します

554* **リストを描画**: データを各行にマップし、すべての行のボタンに独自の `key` を与えます

555 

556このフックはペインのコンテンツを描画します。

557 

558```javascript theme={null}

559// ペインが描画するリスト

560let notes = []

561 

562on('ui.render', { component: 'Pane' }, async ($, e, next) => {

563 // id が 'notes' のペインでのみ描画

564 if (e.requestId !== 'notes') return next(e)

565 const { Box, Text, Button, Input } = $.ui.resolve(e)

566 const redraw = () => $.ui.invalidate('ui.render')

567 

568 return Box({

569 flexDirection: 'column',

570 children: [

571 Input({

572 key: 'new-note',

573 label: 'Note',

574 placeholder: 'Type a note and press Enter',

575 // 毎回フィールドを空で描画します。これは送信後にクリアします

576 value: '',

577 submitLabel: 'add',

578 autoFocus: true,

579 // フィールドで Enter を押すときに実行

580 onSubmit: async (value) => {

581 // 空の行を無視

582 if (!value.trim()) return

583 notes = [...notes, value.trim()]

584 redraw()

585 await $.store.set('notes', notes)

586 },

587 }),

588 // 各ノートに対して 1 行。削除ボタン、その後ノートのテキスト

589 ...notes.map((note, i) =>

590 Box({

591 flexDirection: 'row',

592 columnGap: 1,

593 children: [

594 Button({

595 // 独自のキー。各行のボタンを区別できるように

596 key: 'delete-' + i,

597 label: 'x',

598 plain: true,

599 onPress: async () => {

600 notes = notes.filter((_, j) => j !== i)

601 redraw()

602 await $.store.set('notes', notes)

603 },

604 }),

605 Text({ children: [note] }),

606 ],

607 }),

608 ),

609 ],

610 })

611})

612```

613 

614ペインを試すには。

615 

616* **ノートを追加**: 行を入力して Enter を押します。行は新しい行として表示され、フィールドは空になります。

617* **ノートを削除**: Tab を押してノートの `x` ボタンがフォーカスを持つまで、その後 Enter を押します。`x` はボタンのラベルであり、ホットキーではないため、文字を入力してもそれを押しません。

618 

619各変更は `hello-tabs` と同じレンダーサイクルに従います。コールバックが `notes` を変更し、`redraw` を呼び出し、リストを `$.store` に保存します。

620 

621フィールドは各送信後に空になります。これは `value` プロップのためです。`value` はフィールドが描画されるときに保持するテキストであり、ユーザーのタイピングはフックが再度フィールドを描画するまでそれを置き換えます。例は常にフィールドを `''` で描画します。

622 

623例はノートを保存し、それらを読み込みません。次のセッションでそれらを戻すには、`hello-tabs` が `count` を読み込む方法で `session.start` フックでそれらを読み込みます。

624 

6253 つのプロップはフィールドの行を構成します。`Note: Type a note and press Enter ⏎ add`。

626 

627| プロップ | 例では | それが何であるか |

628| :- | :- | :- |

629| `label` | `Note` | フィールドの前のテキスト。ターミナルはその後に `: ` を描画します。 |

630| `placeholder` | `Type a note and press Enter` | フィールドが空の間に表示される暗いテキスト |

631| `submitLabel` | `add` | `⏎` の後の単語。Enter が実行することを言います |

632 

633`Input` を送信してもターンを開始しません。コールバックが [`$.prompt.submit`](/docs/ja/plugins/mods/api#start-a-turn-from-a-background-job) を呼び出さない限り。

634 

635<h2 id="redraw-when-something-changes">

636 サイトを再描画する

637</h2>

638 

639描画はスナップショットです。`ui.render` フックが最後に実行したときに返したものを表示します。何か新しいものを表示するには、フックを再度実行する必要があります。Claude Code はいくつかの変更に対して再度実行し、モッドは残りを要求します。

640 

641<h3 id="when-claude-code-redraws-without-being-asked">

642 Claude Code が要求なしで再描画するとき

643</h3>

644 

645Claude Code はサイトのプロップが変更されるか、ターミナルの幅が変更されるときに `ui.render` フックを再度実行します。タイマーでフックを実行しません。モジュール内の変数が変更されたときは判断できません。

646 

647<h3 id="redraw-when-your-data-changes">

648 データが変更されたときに再描画する

649</h3>

650 

651データが変更された後にサイトを再度描画するには、`$.ui.invalidate('ui.render')` を呼び出します。このペインは押下をカウントします。ボタンのコールバックは `count` を変更し、再描画を要求します。

652 

653```javascript theme={null}

654let count = 0

655 

656on('ui.render', { component: 'Pane' }, async ($, e, next) => {

657 if (e.requestId !== 'counter') return next(e)

658 const { Box, Text, Button } = $.ui.resolve(e)

659 return Box({

660 flexDirection: 'row',

661 columnGap: 2,

662 children: [

663 Button({

664 key: 'more',

665 label: 'Add one',

666 onPress: () => {

667 count += 1

668 // データが変更されたため、Claude Code にペインを再度描画するよう要求

669 $.ui.invalidate('ui.render')

670 },

671 }),

672 Text({ children: ['Count: ' + count] }),

673 ],

674 })

675})

676```

677 

678各押下はペイン内の数字を上げます。[`hello-tabs` の例](#build-a-pane-with-tabs)は同じ呼び出しを `redraw` 関数にラップします。

679 

680[`$.state`](#keep-a-value-in-\$-state)に保持する値は呼び出しを必要としません。値を書くことはそれを読むサイトを再描画するためです。

681 

682<h3 id="redraw-on-a-timer">

683 タイマーで再描画する

684</h3>

685 

686時計、カウントダウン、またはセッション外の値を最新に保つには、スケジュールで再描画します。モジュールの `session.start` フックでタイマーを開始します。モジュールが既に 1 つを持っている場合、`hello-tabs` のように、[`$.clock.every`](/docs/ja/plugins/mods/api#run-work-in-the-background)行をそれに追加します。

687 

688```javascript theme={null}

689on('session.start', async ($, e, next) => {

690 // 1000 ミリ秒ごとに、Claude Code にサイトを再度描画するよう要求

691 $.clock.every(1000, () => $.ui.invalidate('ui.render'))

692 return next(e)

693})

694```

695 

696Claude Code は 1 秒に 1 回 `ui.render` フックを実行します。タイマーはモジュールがリロードされるときに停止し、新しいコピーは独自のものを開始します。

697 

698<h3 id="how-often-a-site-can-redraw">

699 サイトが再描画できる頻度

700</h3>

701 

702Claude Code は再描画の頻度を制限するため、モッドはデータが変更されるたびに `$.ui.invalidate` を呼び出すことができます。表示されているペインとバンドは他のサイトより高い制限を持ち、[制限テーブル](/docs/ja/plugins/mods/reference#limits)に数字があります。

703 

704制限より速く来る呼び出しは 1 つの再描画に結合されます。その再描画はフックを 1 回実行し、フックはその時点でのデータを読むため、最新の値が表示され、その間の値は表示されません。アニメーションは制限より速く実行できません。

705 

706<h2 id="keep-state">

707 状態を保持する

708</h2>

709 

710モジュールには値を保持する 3 つの場所があり、値がどのくらい続くかが異なります。モジュールがリロードされるまで、セッションが終了するまで、または次のセッションまで続きます。値がどのくらい続く必要があるかで選択してください。

711 

712| 保持場所 | 続く期間 | 用途 |

713| :- | :- | :- |

714| モジュールレベルの変数 | モジュールがリロードされるまで。開発中にファイルを保存するたびに発生します | `hello-tabs` の `tab` のように失っても問題ない値 |

715| `$.state` | セッションが終了するか、ユーザーが `/clear`、`/resume`、または `/branch` を実行するまで | 描画が依存し、リロードを生き残るべき値 |

716| `$.store` | モジュールが削除するか、[`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) の期間、セッションがストアを読み書きしないまで。ストアはキー値ストアで、プラグイン自体の JSON ファイルとして `~/.claude/plugins/store/` に保存されます。 | 設定、履歴、ユーザーが次回見つけることを期待するもの |

717 

718`$.store.get(key)` は値または `undefined` に解決され、`$.store.set(key, value)` は任意の JSON 値を受け取ります。

719 

720<h3 id="keep-a-value-in-state">

721 `$.state` に値を保持する

722</h3>

723 

724`$.state` はセッションの長さの間値を保持し、自動的に再描画します。これはリアクティブな状態です。値を読む `ui.render` フックはそれにサブスクライブするため、値を書くたびに Claude Code はそのサイトを再描画し、`$.ui.invalidate` を呼び出す必要はありません。`$.state` の値は、変数とは異なり、モジュールのリロードも生き残ります。

725 

726これを設定するには、値を宣言し、マニフェストを宣言に指定し、各値を定義して使用します。例は `hello-tabs` の `count` を `$.state` に移動します。

727 

728<h4 id="declare-the-values">

729 値を宣言する

730</h4>

731 

732型ファイルで値を宣言します。外側のキーはプラグインの名前で、その下の各エントリは値とその型です。これを `hello-tabs/types/index.d.ts` として保存します。

733 

734```typescript hello-tabs/types/index.d.ts theme={null}

735declare module 'claude-code' {

736 interface PluginState {

737 'hello-tabs': {

738 tab: 'one' | 'two'

739 count: number

740 }

741 }

742}

743```

744 

745<h4 id="point-the-manifest-at-the-declaration">

746 マニフェストを宣言に指定する

747</h4>

748 

749`claude plugin validate` がコードをそのファイルに対して検証できるようにするには、マニフェストに `types` フィールドをそのパスで追加します。

750 

751```json hello-tabs/.claude-plugin/plugin.json theme={null}

752{

753 "name": "hello-tabs",

754 "version": "0.1.0",

755 "description": "Opens a pane with two tabs and a counter",

756 "author": { "name": "Your Name" },

757 "types": "./types/index.d.ts"

758}

759```

760 

761<h4 id="define-read-and-write-a-value">

762 値を定義、読み取り、書き込みする

763</h4>

764 

765モジュールで、各値をデフォルトで定義し、描画中に読み取り、コールバックから書き込みます。`atom` は値とそのデフォルトに名前を付け、`read` はそれを返し、`update` はそれを書き込みます。3 つのヘルパーは `$.state.get` と `$.state.set` をあなたのために呼び出します。

766 

767```javascript theme={null}

768import { atom, read, update } from 'claude-code'

769 

770// モジュールの最上部:値に名前を付け、デフォルトを指定します

771const count = atom({ plugin: 'hello-tabs', key: 'count' }, 0)

772 

773// ui.render フック内:値を読み取って描画します

774const n = await read($, count)

775 

776// ボタン内:古い値から新しい値を書き込みます

777onPress: () => update($, count, (value) => value + 1)

778```

779 

780`ui.render` フックが `count` を読み取ったため、ボタンがそれを書き込むたびに Claude Code はフックを再度実行します。

781 

782コードに 3 つのルールが適用されます。

783 

784* **`plugin` と `key` をリテラル文字列として書き込みます**:`claude plugin validate` はソースからそれらを読み取ります

785* **型ファイルですべての値を宣言します**:そうしないと、検証は `hello-tabs.count is not declared` で失敗します

786* **コールバックまたは別のイベントのフックから書き込みます**:`ui.render` フックは状態を読み取ることができ、それを書き込むことはできないため、`onPress`、`onSubmit`、または別のイベントのフックから書き込みます

787 

788<h4 id="change-hello-tabs-to-use-state">

789 `hello-tabs` を `$.state` を使用するように変更する

790</h4>

791 

792`hello-tabs` の `count` を `$.state` に移動するには、それを使用するすべての行を変更します。

793 

794* **モジュールの最上部**:`import` 行を追加し、`let count = 0` を `atom` 行に置き換えます

795* **`ui.render` フック内**:`tabButton` の前に `read` 行を追加し、`Text` で `'Count: ' + n` を描画します

796* **Add one ボタン内**:`onPress` を [Save from more than one session](#save-from-more-than-one-session) のものに置き換えます。これはカウントを保存し、それを書き込みます

797* **`session.start` フック内**:`saved` を読み取る 2 行を [Load a saved value again after `/clear`](#load-a-saved-value-again-after-clear) の `loadCount` 呼び出しに置き換えます

798 

799`tab` はまだ変数であるため、タブボタンの `redraw` を保持します。

800 

801<h3 id="load-a-saved-value-again-after-clear">

802 `/clear` の後に保存された値を再度読み込む

803</h3>

804 

805モッドが `session.start` で `$.store` から保存された値を `$.state` にコピーする場合、`/clear`、`/resume`、または `/branch` の後に再度コピーする必要があります。これらのコマンドはすべての `$.state` 値をデフォルトに戻し、`session.start` は再度発火しません。[`classic.SessionStart`](/docs/ja/plugins/mods/events#hook-the-settings-hook-events) は各値の後に発火し、`e.source` は `clear`、`resume`、または `fork` に設定されるため、値を再度コピーします。そうしないと、描画はデフォルトを表示し、`$.state` 値を保存するコールバックは保存したものをデフォルトで上書きします。

806 

807このコードは両方のフックから `count` を読み込みます。これは `count` がアトムで `update` がインポートされている `hello-tabs` の `$.state` バージョンに基づいています。`loadCount` を `register` の上に配置し、`loadCount` 呼び出しを既に持っている `session.start` フックに追加します。`classic.SessionStart` はスタートアップと圧縮後にも発火します。圧縮は `$.state` をリセットしないため、`source` のフィルターはフックを 3 つのリセットに保ちます。

808 

809```javascript theme={null}

810// 保存されたカウントを $.store から $.state にコピーするか、何も保存されていない場合は 0

811async function loadCount($) {

812 const saved = Number((await $.store.get('count')) ?? 0)

813 await update($, count, () => saved)

814}

815 

816// 最初のプロンプトの前に実行され、リロード後に再度実行されます

817on('session.start', async ($, e, next) => {

818 await loadCount($)

819 return next(e)

820})

821 

822// /clear、/resume、/branch の後に再度実行されます。fork を報告します

823on('classic.SessionStart', { source: ['clear', 'resume', 'fork'] }, async ($, e, next) => {

824 await loadCount($)

825 return next(e)

826})

827```

828 

829両方のフックが配置されると、ペインは `/clear` の後に保存されたカウントを表示し、`0` ではなく、**Add one** の次のプレスは保存されたカウントに追加されます。

830 

831`loadCount` は保存された値を `$.state` のものに上書きし、`session.start` はモジュールがリロードされるたびに再度発火します。ストアが遅れないようにするには、**Add one** ボタンが行うように、すべての変更で保存します。

832 

833セッションなしでリロードを確認するには、[`/clear` の後の描画をテストします](/docs/ja/plugins/mods/test#test-a-drawing-after-clear)。

834 

835<h3 id="save-from-more-than-one-session">

836 複数のセッションから保存する

837</h3>

838 

839マシン上のモッドを実行するすべてのセッションは 1 つの `$.store` を共有します。`get` の後に `set` が続くことはアトミックではありません。2 つのセッションが各値を読み取り、変更し、書き戻すと、競合が発生し、2 番目の書き込みが最初の書き込みを置き換えます。

840 

8412 つの選択肢がそれをより可能性が低くします。

842 

843* **各アイテムに独自のキーを付与します**:`set` は独自のキーのみを変更するため、異なるキーを書き込むセッションは互いに上書きしません

844* **書き込む直前に再度読み取ります**:複数のセッションが変更する値の場合、コールバックでキーを `get` し、`session.start` で読み込んだコピーからではなく、その値から新しい値を構築します。別のセッションの書き込みは、`get` と `set` の間に着地した場合でも失われます。

845 

846このボタンはストアが現在保持しているものに 1 を追加し、描画を更新します。

847 

848```javascript theme={null}

849onPress: async () => {

850 // ストアが現在保持しているものを読み取ります。別のセッションが変更した可能性があります

851 const saved = Number((await $.store.get('count')) ?? 0)

852 // 新しいカウントを保存し、それを表示します

853 await $.store.set('count', saved + 1)

854 await update($, count, () => saved + 1)

855}

856```

857 

8582 番目のセッションがこのセッションが開始されてから独自のボタンを 3 回押した場合、このプレスはそれらの 3 つを含むカウントを表示して保存します。

859 

860<h2 id="next-steps">

861 次のステップ

862</h2>

863 

864* [イベントに反応する](/docs/ja/plugins/mods/events)。ツール呼び出しとターンから描画をフィード

865* [モッド API を使用する](/docs/ja/plugins/mods/api)。タイマーとモデル呼び出しから描画をフィード

866* [描画をテストする](/docs/ja/plugins/mods/test#test-a-drawing)。複数のサーフェスでボタンをテストから押す

867* [レンダーサイト](/docs/ja/plugins/mods/reference#render-sites)と[要素](/docs/ja/plugins/mods/reference#elements)。各サイトのプロップと各要素のプロップ

plugins/mods/overview.md +269 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Mods の概要

6 

7> mod を使用して Claude Code にペイン、コマンド、ツール呼び出しルールを追加します。mod でできることや、mod の作成方法、インストール方法、mod が実行される場所を確認してください。

8 

9mod は Claude Code の外観と動作を変更する [プラグイン](/docs/ja/plugins/overview) です。JavaScript または TypeScript のイベントハンドラで構成されています。Claude Code はイベント(ツール呼び出し、送信されたプロンプト、インターフェイスの一部が描画されるなど)が発生したときにハンドラを呼び出し、ハンドラはイベントを監視したり、変更したり、引き継いだりできます。mod を使用して、各リクエスト後のコンテキストの満杯度をチャートするペインなど、Claude Code に独自の機能を追加します。mod のファイルと完全な例については、[mod の仕組み](#how-a-mod-works) を参照してください。

10 

11<Note>

12 Claude Code の既存の [hooks](/docs/ja/hooks) もイベントで実行されます。設定ファイルで構成するシェルコマンド、HTTP リクエスト、またはプロンプトとして実行されます。mod のハンドラは Claude Code 内で実行される関数です。Claude Code は両方の種類の hooks を呼び出します。このページでは、「hook」は mod のハンドラを意味し、設定ファイルの種類は「settings hook」です。

13</Note>

14 

15<h2 id="what-a-mod-can-do">

16 mod でできること

17</h2>

18 

19Settings hooks、skills、status lines、MCP サーバーは Claude Code の外で動作します。各々はスクリプトを実行するか、Claude にテキストまたはツールを提供します。mod は Claude Code 内で実行されるため、それらができないことができます。

20 

21* **使用できるインターフェイスを描画する**: トランスクリプトの横のペイン、またはプロンプトの上のバンド。タブ、ボタン、テキストフィールドを含みます。[インターフェイスに描画する](/docs/ja/plugins/mods/interface) を参照してください。

22* **Claude Code 独自のインターフェイスを再描画する**: ツール呼び出しの行、スピナー、Claude が質問をするダイアログなど、Claude Code が自身で描画する部分を置き換えたり、スタイルを変更したりします。[Claude Code が既に描画しているものを変更する](/docs/ja/plugins/mods/interface#change-what-claude-code-already-draws) を参照してください。

23* **ツール呼び出しまたはリクエストに介入する**: たとえば、ツール呼び出しを保持しながらユーザーに質問したり、ツールを実行せずに回答したり、1 つのリクエストを別のモデルに送信したりします。[ツール呼び出しをガードまたは変更する](/docs/ja/plugins/mods/events#guard-or-change-a-tool-call) と [ターンをフォローする](/docs/ja/plugins/mods/events#follow-a-turn) を参照してください。

24* **コマンドで独自のコードを実行する**: Claude ターンなしで、Claude が作業中でも、すぐに関数を実行する `/command`。[コマンドまたはツールを追加する](/docs/ja/plugins/mods/api#add-a-command-or-a-tool) を参照してください。

25* **hooks 間でデータを共有する**: mod の hooks はそのファイル内の変数を共有するため、1 つの hook が記録したものを別の hook が表示できます。たとえば、1 つの hook がツール呼び出しをカウントしながら別の hook がスピナーの横にカウントを表示したり、1 つが各リクエストのトークン使用量を読み取りながら別がペインでチャートしたりできます。[イベントに反応する](/docs/ja/plugins/mods/events) を参照してください。

26 

27Mod は Claude Code CLI と Claude Desktop アプリの Code タブで動作します。VS Code 拡張機能、`claude -p`、クラウドセッションなど、他の場所での動作を理解するには、[mod が実行される場所](#where-mods-run) を参照してください。settings hook、skill、または MCP サーバーが既に必要なことを実行している場合は、mod を作成する前に [それらを比較してください](#compare-mods-settings-hooks-skills-and-mcp-servers)。組織の mod を管理するには、[組織の mod を管理する](/docs/ja/plugins/mods/admin) を参照してください。

28 

29<h2 id="get-a-mod">

30 mod を取得する

31</h2>

32 

33次の 3 つの方法のいずれかで mod を開始できます。

34 

35* **既に持っているものを使用する**: Claude Code 独自の機能の一部は mod です。たとえば `/diff`。[Claude Code に組み込まれた Mod](#mods-built-into-claude-code) を参照してください。

36* **作成する**: Claude Code セッションで必要なものを説明すると、Claude が mod を作成します。[Claude に mod を依頼する](/docs/ja/plugins/mods/create#ask-claude-for-a-mod) を参照してください。mod のコードの仕組みを学ぶには、[自分で作成してください](/docs/ja/plugins/mods/create#write-a-mod-yourself)。

37* **インストールする**: [mod をインストールまたは更新する](#install-or-update-a-mod) を参照してください。

38 

39<h3 id="install-or-update-a-mod">

40 mod をインストールまたは更新する

41</h3>

42 

43<Warning>

44 Mod はあなたの権限で実行されるコードです。ファイルの読み取りと書き込み、プロセスの開始、ネットワークリクエストの実行ができます。信頼できる著者とマーケットプレイスからのみ mod をインストールしてください。[mod を信頼するかどうかを決定する](#decide-whether-to-trust-a-mod) を参照してください。

45</Warning>

46 

47Mod はマーケットプレイスからプラグインとしてインストールされます。プラグインの名前、`@`、マーケットプレイスの名前を指定します。これらの例は、`your-org` という名前のマーケットプレイスから `token-chart` という名前のプラグインをインストールします。

48 

49* Claude Code セッションで `/plugin install token-chart@your-org` を実行します。

50* シェルで `claude plugin install token-chart@your-org` を実行します。

51 

52[プラグインをインストールする](/docs/ja/plugins/install) はマーケットプレイス、スコープ、VS Code 拡張機能と Desktop アプリ、および [プラグインを更新し続ける](/docs/ja/plugins/install#keep-plugins-updated) をカバーしており、すべてが mod を含むプラグインに変更なしで適用されます。

53 

54セッションが開いている間にシェルから mod をインストールまたは更新する場合は、そのセッションで `/reload-plugins` を実行してロードします。それ以外の場合は、Claude Code を次回起動するときにロードされます。

55 

56<h2 id="decide-whether-to-trust-a-mod">

57 mod を信頼するかどうかを判断する

58</h2>

59 

60mod は Claude Code 内であなたの権限で実行されるコードです。mod は信頼できる作成者と[マーケットプレイスからのみインストール](/docs/ja/plugins/security)してください。

61 

62<h3 id="what-a-mod-can-reach">

63 mod が到達できる範囲

64</h3>

65 

66mod はあなたの権限で実行されるため、インストールする前に、それが何にアクセスできるかを知っておいてください。読み込まれると、mod は以下のことができます。

67 

68* **あなたのマシンであなたとして動作する**: ユーザーアカウントがアクセスできる場所ならどこでもファイルを読み書きし、プログラムを起動し、ネットワークリクエストを行う

69* **あなたのシークレットを読む**: 環境変数と設定ファイル(どちらかに保存している API キーを含む)

70* **あなたのセッションを見る**: 送信するすべてのプロンプトと Claude が行うすべてのツール呼び出し

71* **あなたのセッションを変更する**: プロンプトまたはツール呼び出しを書き直し、あなたが入力したかのようにプロンプトを送信し、別のセッションにメッセージを送信する

72* **あなたに尋ねずに動作する**: あなたが尋ねられる前にツール呼び出しを承認する

73* **あなたの使用量を消費する**: あなたのプランまたは API キーでモデルを呼び出す

74 

75ツール呼び出しを承認する mod は、`ask` ルールがプロンプトを表示するもの、または独自の `PreToolUse` フックがブロックしたものを承認できます。[フックで権限を拡張する](/docs/ja/permissions#extend-permissions-with-hooks)には、そのような mod が承認できるもの(`deny` ルールが拒否する呼び出しを承認できる場合を含む)が記載されています。

76 

77mod は Claude Code のインターフェイスの大部分を再スタイル化できますが、権限プロンプトはできません。プロンプトが表示する内容を変更することはできません。

78 

79<h3 id="list-what-a-mod-does-before-you-install-one">

80 mod をインストールする前に、mod が何をするかをリストアップする

81</h3>

82 

83mod をインストールする前に、どのイベントをフックし、ファイルを読むやネットワークリクエストを行うなど Claude Code に何をするよう要求するかをリストアップできます。実行することなく確認できます。まず、プラグインのファイルを取得します。たとえば、リポジトリをクローンします。次に、シェルで、プラグインのディレクトリに対して `claude plugin validate` を実行します。

84 

85```bash theme={null}

86claude plugin validate ./some-mod

87```

88 

89出力の `hooks:` と `calls:` の行は、mod が処理するイベントと Claude Code に要求する内容をリストアップします。[mod が何をできるかを確認する](/docs/ja/plugins/mods/admin#review-what-a-mod-can-do)には、出力と確認すべき呼び出しが表示されます。

90 

91<h2 id="turn-mods-on-or-off">

92 mod をオンまたはオフにする

93</h2>

94 

95Mod には Claude Code v2.1.287 以降が必要で、デフォルトではオンです。シェルで `claude --version` を実行して確認し、古い場合は Claude Code を更新してください。

96 

97Mod をオフにするには、停止する数と期間を選択します。それらをオンに戻すには、同じ変更を元に戻します。

98 

99* **1 つの mod**: [**Installed** タブの `/plugin`](/docs/ja/plugins/install#manage-installed-plugins) からそのプラグインを無効化またはアンインストールする

100* **すべてのインストール済み mod、1 つのセッション**: [`--safe-mode`](/docs/ja/cli-reference#cli-flags) で Claude Code を開始します。これは他のカスタマイズも除外します。

101* **インストールしたすべての mod、すべてのセッション**: `~/.claude/settings.json` で [`"disableAllHooks": true`](/docs/ja/settings-reference#disableallhooks) を設定します。Settings hooks とカスタムステータスラインも停止します。組織が管理するものは実行し続けます。

102 

103組織を通じて Claude Code を使用する場合、管理者は、どの mod がロードされるかを制限することもできます。管理者は [ユーザーがインストールした mod がロードされるのを停止する](/docs/ja/plugins/mods/admin#stop-user-installed-mods-from-loading) から開始します。

104 

105Mod があなたのためにロードできるかどうかを確認するには、[mod がロードできるかどうかを確認する](/docs/ja/plugins/mods/troubleshoot#check-whether-mods-can-load) を参照してください。

106 

107<Note>

108 早期アクセス中に `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` を設定した場合は、削除してください。Claude Code v2.1.287 以降はそれを無視するため、`0` に設定しても mod をオフに保ちません。

109</Note>

110 

111<h3 id="see-which-mods-a-session-loaded">

112 セッションがロードした mod を確認する

113</h3>

114 

115ターミナルセッションがロードした mod を確認するには、Claude Code プロンプトで `/plugin` を実行します。タブの下の薄い行はカウントと名前を示します。たとえば `1 mod active · first-mod`。インストールした mod がそこに名前が付いていない場合は、[mod が何もしない理由を確認する](/docs/ja/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing) を参照してください。

116 

117<h2 id="how-a-mod-works">

118 mod の仕組み

119</h2>

120 

121Mod は [プラグイン](/docs/ja/plugins/overview) であり、hooks と呼ばれるイベントハンドラを登録するコードを持っています。Claude Code はイベント(Claude がツールを呼び出すときやスピナーが描画されるときなど)が発生したときに hook を実行します。小さな mod には 3 つのファイルがあります。

122 

123```text theme={null}

124first-mod/

125├── .claude-plugin/

126│ └── plugin.json

127└── hooks/

128 ├── hooks.json

129 └── register.js

130```

131 

132* **`plugin.json`**: プラグインの [マニフェスト](/docs/ja/plugins/manifest-reference)

133* **`hooks.json`**: [コードファイルを指す](/docs/ja/plugins/mods/reference#files)

134* **`register.js`**: [コード](/docs/ja/plugins/mods/create#write-a-mod-yourself)。hooks モジュールと呼ばれます。Claude Code にどのイベントで関数を実行するかを指示します。

135 

136これは完全な `register.js` です。Claude が実行するツール呼び出しをカウントし、Claude が作業中にスピナーの横にカウントを表示します。`Thinking · tool calls: 3…` のように。

137 

138```javascript hooks/register.js theme={null}

139// 以下の 2 つの hooks で共有されるカウント

140let calls = 0

141 

142// Claude Code は mod がロードされるときにこれを 1 回呼び出す

143export function register(on) {

144 // Claude がツールを使用しようとするたびに実行される

145 on('tool.call', async ($, e, next) => {

146 calls += 1

147 // Claude Code にインターフェイスを再度描画するよう要求し、新しいカウントが表示されるようにする

148 $.ui.invalidate('ui.render')

149 // ツールを通常通り実行させる

150 return next(e)

151 })

152 

153 // Claude Code がスピナーを描画するたびに実行される

154 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

155 // Claude Code のスピナーを保持し、単語の後にカウントを追加する

156 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })

157 })

158}

159```

160 

161ファイルは 2 つの hooks を登録し、両方とも上部の `calls` 変数を使用します。

162 

163* **[`tool.call`](/docs/ja/plugins/mods/reference#tools) hook** は Claude がツールを使用しようとするたびに実行されます。`calls` に 1 を追加し、Claude Code にインターフェイスを再度描画するよう要求し、ツールを通常通り実行させます。

164* **[`ui.render`](/docs/ja/plugins/mods/reference#interface) hook** は Claude Code がスピナーを描画するたびに実行されます。Claude Code 独自のスピナーを保持し、単語の後にカウントを追加します。

165 

166この記録は mod が動作しているところを示しています。プロンプトボックスの上のスピナー行を見てください。Claude がディレクトリをリストし、2 つのファイルを読む間、`Thinking · tool calls: 1…` を読み、次に `2…`、次に `3…` を読みます。

167 

168<Frame>

169 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="Claude Code セッションで、プロンプト「ここのファイルをリストして README を読む」が入力され、送信されます。Claude が作業している間、スピナーは「Thinking · tool calls: 1」を読み、次に 2、次に 3 を読みます。Claude がファイルをリストし、2 つを読むとき。" data-path="images/mods-overview-light.mp4" />

170 

171 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=d5223da2fef16ceaaa214a36d72c0536" aria-label="Claude Code セッションで、プロンプト「ここのファイルをリストして README を読む」が入力され、送信されます。Claude が作業している間、スピナーは「Thinking · tool calls: 1」を読み、次に 2、次に 3 を読みます。Claude がファイルをリストし、2 つを読むとき。" data-path="images/mods-overview-dark.mp4" />

172</Frame>

173 

174<h3 id="what-a-hook-can-do-with-an-event">

175 hook がイベントで何ができるか

176</h3>

177 

178Claude Code は hook を実行してからイベントに作用するため、hook は次に何が起こるかを決定します。3 つの選択肢があります。

179 

180* **観察**: 何が起こっているかに注意し、例の `tool.call` hook のように変更されずに続行させる

181* **書き直す**: イベントを変更してから続行する。`ui.render` hook がスピナーにカウントを追加するとき

182* **回答**: イベント自体を処理し、通常の動作が実行されないようにする。たとえば、コマンドを拒否する

183 

184独自のコード外で何かを実行するには、描画、コマンド追加、モデル呼び出し、ファイル読み取り、プロセス開始、ネットワークリクエスト実行など、hook は mods API を呼び出します。Hook にはこれらのことを行う他の方法がないため、Claude Code は [mod をインストールする前にそれが何をするかをリストできます](#list-what-a-mod-does-before-you-install-one)。

185 

186各選択肢の背後にあるコードについては、[イベントに反応する](/docs/ja/plugins/mods/events#how-a-hook-handles-an-event) を参照してください。Hook が呼び出せるものについては、[mods API を使用する](/docs/ja/plugins/mods/api) を参照してください。

187 

188<h3 id="where-mods-run">

189 mod が実行される場所

190</h3>

191 

192Mod の hooks はプラグインをロードするあらゆる種類のセッションで実行されます。描画はより狭いです。ターミナルと Desktop アプリのみが mod のペイン、バンド、置き換えられた行を表示します。このテーブルは Claude Code を実行する可能性のある各場所をリストしています。

193 

194| Claude Code を実行する場所 | Hooks が実行される | Mod が描画するもの |

195| :- | :- | :- |

196| ターミナルの `claude`。エディタの統合ターミナルと JetBrains プラグインを含む | はい | はい |

197| Desktop アプリの Code タブ。WSL セッションを除く | はい | はい。[elements テーブル](/docs/ja/plugins/mods/reference#elements) がターミナルのみとしてマークするもの以外 |

198| Desktop アプリの [WSL セッション](/docs/ja/desktop-wsl) | いいえ。WSL セッションではプラグインが利用できないため | いいえ |

199| VS Code 拡張機能のチャットパネル | はい | いいえ |

200| `claude -p` と [Agent SDK](/docs/ja/agent-sdk/overview) | はい | いいえ |

201| claude.ai またはモバイルアプリからの [Remote Control](/docs/ja/remote-control) | はい。マシン上のセッション | マシン上のターミナル |

202| [クラウドセッション](/docs/ja/claude-code-on-the-web) | はい。[クラウドセッションに到達する](/docs/ja/cloud-environments#what-carries-over-from-your-setup) プラグイン | いいえ |

203 

204描画できる mod は、実行しているアプリを確認し、何も描画されない場所でトランスクリプトの行またはコマンドのテキスト返信にフォールバックできます。

205 

206<h2 id="control-mods-for-your-organization">

207 組織の mod を制御する

208</h2>

209 

210管理者は [管理設定](/docs/ja/managed-settings) を通じて mod が実行されるかどうかと、どの mod が実行されるかを決定します。[組織の mod を管理する](/docs/ja/plugins/mods/admin) はデフォルトで何が起こるか、mod をレビューする方法、独自の mod でポリシーを実施する方法をカバーしています。

211 

212<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">

213 Mod、settings hooks、skills、MCP サーバーを比較する

214</h2>

215 

216Mod、settings hooks、skills、MCP サーバーは重複しています。このテーブルは各々が何であり、いつそれを選ぶかを示しています。

217 

218| | Mod | Settings hook | Skill | MCP サーバー |

219| :- | :- | :- | :- | :- |

220| それが何であるか | Claude Code が独自のプロセスで呼び出す関数を含むプラグイン | Claude Code がライフサイクルイベントで実行するシェルコマンド、HTTP リクエスト、またはプロンプト | Claude が読む `SKILL.md` ファイルの指示 | Claude にツールを提供する外部プロセスまたはサービス |

221| 何を変更できるか | ツール呼び出し、プロンプト、コマンド、ターン、インターフェイスが描画するもの | ツール呼び出しまたはプロンプトが進むかどうか、ツール呼び出しの引数と結果、Claude 用に追加されたコンテキスト | Claude が知ることと実行すること | Claude が持つツール |

222| インターフェイスに描画できるか | はい | いいえ | いいえ | いいえ |

223| 何を書くか | JavaScript または TypeScript | スクリプトと `settings.json` エントリ | Markdown | 任意の言語のサーバー |

224| 次の場合に選ぶ | ペイン、プロンプトの上のバンド、カスタムコマンド、またはイベントを書き直したい | スクリプトでイベントをブロック、許可、またはログしたい。既に持っている | 同じ指示をチャットに何度も貼り付けている | Claude が外部システムに到達する必要がある |

225 

226他のそれぞれには独自のページがあります。[Hooks](/docs/ja/hooks)、[Skills](/docs/ja/skills)、[MCP](/docs/ja/mcp)。プラグインはすべて 4 つを保持できるため、mod は skill と MCP サーバーと同じプラグインで出荷できます。

227 

228<h2 id="mods-built-into-claude-code">

229 Claude Code に組み込まれた Mod

230</h2>

231 

232Claude Code 独自の機能の一部は mod です。セッションが持つものを確認するには、Claude Code プロンプトで `/plugin` を実行し、**Installed** タブに移動します。これは **Built-in** の下にリストしています。組み込み mod を更新またはアンインストールすることはできず、テーブルの最後の列は各々をオフにする方法を示しています。[`mods active` 行](#see-which-mods-a-session-loaded) は組み込み mod を除外しています。

233 

234このテーブルは `/plugin` が表示する名前で各エントリをリストしています。

235 

236| `/plugin` の名前 | 何をするか | どこでオンか | オフにする方法 |

237| :- | :- | :- | :- |

238| `cc-plugin-agents-md` | `AGENTS.md` をプロジェクト指示としてロードする | すべてのセッション。[`AGENTS.md` を読めないもの](/docs/ja/memory#when-agents-md-support-is-unavailable) を除く | `/plugin` で無効化するか、[どの指示ファイルがロードされるかを選択する](/docs/ja/memory#choose-which-instruction-files-load) |

239| `cc-plugin-diff` | [`/diff`](/docs/ja/interactive-mode#review-changes-with-%2Fdiff) を引き継ぎ、そのペインを描画する | インタラクティブターミナルセッション | `/plugin` で無効化します。`/diff` は残り、Claude Code の組み込みバージョンのコマンドが回答します。 |

240| `cc-plugin-plugin-authoring` | Claude に mod を書くための [`plugin-authoring` skill](/docs/ja/plugins/mods/create#ask-claude-for-a-mod) を提供する。Skill を保持し、mod コードはない。 | Anthropic がインストール済み mod をリモートでオフにしていない限り | `/plugin` で無効化 |

241| `cc-plugin-sec-default` | ユーザーがインストールした mod から組織が管理するものを保護する | [ガードがロードされる場所](/docs/ja/plugins/mods/admin#know-what-happens-by-default) | できません。管理者が [管理設定で順序を設定します](/docs/ja/plugins/mods/admin#install-your-organizations-mods) |

242| `cc-plugin-telemetry` | Claude Code とその組み込み mod がログするアナリティクスレコードを送信する | Claude Code 独自のアナリティクスがオンの場所 | `/plugin` で無効化するか、アナリティクスをオフにします。たとえば [`DISABLE_TELEMETRY`](/docs/ja/env-vars) で |

243| `cc-plugin-you-should-know` | Claude がより長いタスクに取り組んでいる間、あなたの背中を見守るサイドエージェントを実行します。見落とす可能性のある価値のある情報を見つけると、プロンプトの上にメモを表示します。 | デフォルトで無効化。組織で利用可能な場合、`/plugin` -> **Installed** -> **Show disabled** にリストされています。[`/plugin enable cc-plugin-you-should-know@builtin`](/docs/ja/plugins/cli-reference#plugin-in-a-session) で有効化します。 | `/plugin` で無効化 |

244 

245インストール済み mod を停止する settings と flags。`disableAllHooks`、`--bare`、`--safe-mode` は組み込み mod を停止しません。

246 

247<h3 id="read-the-source-of-built-in-mods">

248 組み込み mod のソースを読む

249</h3>

250 

251これらの mod のソースは [Claude Code リポジトリの `mods` ディレクトリ](https://github.com/anthropics/claude-code/tree/main/mods) で公開されています。各々は hooks モジュールとテストを含む完全なプラグインです。

252 

253* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): `/diff` ペイン。キーボードアクションにバインドされたボタンとスクロール。mod が自身で処理

254* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): `AGENTS.md` をプロジェクト指示としてロード。[`userConfig`](/docs/ja/plugins/components#user-configuration) オプション付き

255* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): [デフォルトで何が起こるかを知る](/docs/ja/plugins/mods/admin#know-what-happens-by-default) で説明されているガード。ポリシーを実施する mod のモデル

256* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): 他の mod が呼び出せるメソッドを追加し、それらの型を出荷

257 

258<h2 id="next-steps">

259 次のステップ

260</h2>

261 

262* [Mod を作成する](/docs/ja/plugins/mods/create): ツール呼び出しをカウントし、スピナーの横にカウントを表示し、コマンドを追加するものを構築し、編集とリロードループを学ぶ

263* [インターフェイスに描画する](/docs/ja/plugins/mods/interface): ペイン、プロンプトの上のバンド、ボタン、テキストフィールド、状態

264* [イベントに反応する](/docs/ja/plugins/mods/events): ツール呼び出し、プロンプト、ターン、mod が実行される順序

265* [mods API を使用する](/docs/ja/plugins/mods/api): コマンド、ツール、モデル呼び出し、タイマー、ファイル

266* [Mod をテストする](/docs/ja/plugins/mods/test): セッションなしで実行される自動テスト

267* [Mod をトラブルシューティングする](/docs/ja/plugins/mods/troubleshoot): mod が何もしない理由とデバッグログ

268* [組織の mod を管理する](/docs/ja/plugins/mods/admin): デフォルト、管理設定、mod のレビュー、ポリシー mod

269* [Mods リファレンス](/docs/ja/plugins/mods/reference): すべてのイベント、メソッド、要素、制限

plugins/mods/test.md +422 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# モッドをテストする

6 

7> イベントを発生させ、Claude Code の回答をスタブし、ボタンを押すモッドの自動テストを書きます。セッション、サインイン、ネットワークは不要です。

8 

9モッドの自動テストを書いて、シェルから [`claude plugin test`](/docs/ja/plugins/mods/reference#commands) で実行できます。テストはフックが処理するイベントを発生させ、フックが何をしたかをチェックするため、セッションに到達する前に問題を見つけることができます。最初の例は [モッドを作成する](/docs/ja/plugins/mods/create) のモッドをテストします。

10 

11<h2 id="write-a-test">

12 テストを書く

13</h2>

14 

15テストはモッドを読み込み、Claude Code が行うようにイベントをフックを通して送信し、セッション、サインイン、ネットワークなしでフックが何をしたかをチェックします。テストはシェルから `claude plugin test` で実行し、各テストファイルはテストキット(`claude-code/testing` モジュール内のテストライブラリ)をインポートします。

16 

17各テストファイルに `.test.ts` で終わる名前(例:`first-mod.test.ts`)を付け、プラグインディレクトリ内のどこかに保存します。すべてのテストファイルには少なくとも 1 つの `test()` が必要です。そうでないと、`declares no test(): nothing ran` で実行が失敗します。テストファイルはモッド自体のファイルと兄弟の `.ts` ヘルパーをインポートできるため、ゲームのルールなどのプレーン関数をキットなしでユニットテストできます。

18 

19このテストは 2 つのツール呼び出しを発生させ、[モッドを作成する](/docs/ja/plugins/mods/create) の `/tally` コマンドを実行し、返信が両方をカウントしていることをチェックします。最初の行は [スタブ](#stub-what-claude-code-would-answer) で、Claude Code の代わりにツール呼び出しに答えます。`first-mod/tests/first-mod.test.ts` として保存します:

20 

21```typescript first-mod/tests/first-mod.test.ts theme={null}

22import { expect, test } from 'claude-code/testing'

23 

24test('/tally reports the tool calls the mod has seen', async ($, on) => {

25 // Answer each tool call in Claude Code's place, so no tool runs

26 on('tool.call', () => ({ result: 'ok' }))

27 

28 // Raise two tool calls, which the mod's tool.call hook counts

29 await $.tool.call({ tool: 'Bash', command: 'ls' })

30 await $.tool.call({ tool: 'Read', file_path: 'README.md' })

31 

32 // Run /tally and check the text its hook returns

33 const answer = await $.command.run({ command: 'tally', args: '' })

34 expect(answer.text).toBe('Claude has made 2 tool calls since this mod loaded')

35})

36```

37 

38シェルで `first-mod` ディレクトリからテストを実行します:

39 

40```bash theme={null}

41claude plugin test

42```

43 

44出力は各テストとそれが成功したかどうかを名前で示し、実行ごとに異なるタイミングを表示します:

45 

46```text theme={null}

47tests/first-mod.test.ts:

48(pass) /tally reports the tool calls the mod has seen [22.87ms]

49 

50 1 pass

51 0 fail

52Ran 1 test across 1 file. [0.19s]

53```

54 

55各 `$.tool.call` はモッドの [`tool.call`](/docs/ja/plugins/mods/reference#tools) フックを通過し、カウントに 1 を追加してスタブに呼び出しを渡しました。`ls` は実行されず、ファイルは読み込まれませんでした。`$.command.run` はモッドの [`command.run`](/docs/ja/plugins/mods/reference#commands-and-configuration) フックに移動し、`answer` はそのフックが返したオブジェクトです。

56 

57テストが失敗すると、コマンドはステータス 1 で終了するため、CI で機能します。独自のモッドがそれを実行するシェルで読み込めない場合、`claude plugin test: hooks modules are turned off` で始まる行と理由を出力し、ステータス 1 で終了します。

58 

59<h3 id="stub-what-claude-code-would-answer">

60 Claude Code が答えるものをスタブする

61</h3>

62 

63テストではモデル、ストア、またはツールが実行されないため、モッドが Claude Code の回答を期待する場所では、テストはスタブで回答を提供します。テスト関数はそのために 2 つの引数を受け取ります:

64 

65* **`$`**: テスト独自の `$` で、Claude Code が立つ場所に立ちます。これはフックが受け取る [mods API](/docs/ja/plugins/mods/reference#mods-api-methods) ではありません。各メソッドは同じ名前のイベントを発生させ、モッドのフックを通して送信し、結果に解決します:`$.tool.call({ tool: 'Bash', command: 'ls' })` は `tool.call` を発生させます。`$.command.run`、`$.prompt.submit`、`$.session.start`、`$.turn.complete` は同じように機能し、`$.classic.Stop` と他の `$.classic` メソッドは [設定フックイベント](/docs/ja/plugins/mods/events#hook-the-settings-hook-events) を発生させます。テストは `ui.close` などの mods API 呼び出しを直接発生させることはできません。モッドを通してトリガーします。例えば、ペインを閉じるボタンを押します。

66* **`on`**: スタブを登録するために呼び出します。スタブは Claude Code の代わりに答えるフックです。mods API 呼び出しの `$.` なしでスタブに名前を付けます。そのため、`store.get` として登録されたスタブはモッドの `$.store.get` に答えます。モッドが [`$.model.complete`](/docs/ja/plugins/mods/api#call-a-model) または [`$.store.get`](/docs/ja/plugins/mods/interface#keep-state) を呼び出すと、スタブが回答を提供します。

67 

68この例はモデル呼び出しをスタブします。フックは `grader` という名前のモッドに属し、文をモデルに送信して返信が `PASS` で始まるかどうかを報告する `/grade` コマンドを処理します。ファイルはテスト中のフックのみを保持するため、モッドは [モッドを作成する](/docs/ja/plugins/mods/create#write-a-mod-yourself) のように `plugin.json` と `hooks.json` も必要です。セッションで `/grade` と入力するには、モッドは [コマンドを登録](/docs/ja/plugins/mods/api#add-a-command) する必要があります:

69 

70```javascript grader/hooks/register.js theme={null}

71export function register(on) {

72 on('command.run', { command: 'grade' }, async ($, e) => {

73 // e.args is the text typed after /grade

74 const reply = await $.model.complete({

75 model: 'haiku',

76 system: 'Grade the sentence. Start your reply with PASS or FAIL.',

77 prompt: e.args,

78 })

79 const passed = reply.isAnswered && reply.text.startsWith('PASS')

80 return { text: passed ? 'Passed' : 'Try again' }

81 })

82}

83```

84 

85このテストはモデル呼び出しをスタブして、フックが成功した返信で何をするかをチェックします:

86 

87```typescript grader/tests/grader.test.ts theme={null}

88import { expect, test } from 'claude-code/testing'

89 

90test('a passing grade is reported', async ($, on) => {

91 // Answer the mod's $.model.complete call with a fixed reply, so no model runs

92 on('model.complete', () => ({

93 value: {

94 isAnswered: true,

95 text: 'PASS\nNice sentence.',

96 usage: { input_tokens: 10, output_tokens: 5, cache_read_input_tokens: 0, cache_creation_input_tokens: 0 },

97 },

98 }))

99 

100 // Run /grade, which makes the mod call the model

101 const answer = await $.command.run({ command: 'grade', args: 'The cat sat on the mat.' })

102 expect(answer.text).toBe('Passed')

103})

104```

105 

106テストは成功します。フックの `reply` は `value` の下のオブジェクトで、その `text` は `PASS` で始まるためです。他のブランチをチェックするには、スタブが `FAIL` で始まる `text` を返す 2 番目のテストを追加し、`Try again` を期待します。

107 

108mods API 呼び出しのスタブは `value` フィールドを持つオブジェクトを返します。これはモッドで呼び出しが解決するものを保持します:`{ value: 7 }` は `$.store.get` を `7` に解決させます。[`turn.step`](/docs/ja/plugins/mods/reference#turns) または `tool.call` などの Claude Code のイベントのスタブは、そのイベント独自の結果(`{ result: 'ok' }` など)を返します。`$.session.send` と `$.prompt.fill` はイベントの結果もテーブルが示すように取ります。[スタブが返すものを調べる](#look-up-what-a-stub-returns) は各一般的な名前がどの形式を取るかを示します。2 つのエラーはスタブが間違っているか不足していることを意味します。失敗したテストの出力には `the engine reported:` で始まるブロックが含まれ、各エラーがそこに表示されます:

109 

110* `returned neither { value } nor { deny }`: mods API 呼び出しのスタブが裸の値を返した

111* `no implementation for` の後に名前が続く:モッドがその呼び出しを行い、スタブがそれに答えない

112 

113キットはまた、メモリ内モックをエクスポートします。これはネームスペース全体に答えます。`mock.clock(on)` は [`$.clock`](/docs/ja/plugins/mods/api#run-work-in-the-background) に答え、`mock.store(on, { count: 7 })` はそれらのエントリで始まるストアから `$.store` に答え、`mock.env(on, { CI: 'true' })` はそれらの変数から `$.env.get` に答えます。`mock.clock` はモッククロックを返し、テストはそれを進めるため、タイマーのテストは待機しません。`mock.store` は何も返さないため、モッドが何を保存したかをチェックするには、[描画テスト](#test-a-drawing) が行うように 2 つの `store` スタブを自分で書きます。

114 

115<h3 id="follow-the-test-kit’s-rules">

116 テストキットのルールに従う

117</h3>

118 

119テストキットには独自のルールがいくつかあり、1 つを破ると新しいテスト作成者が最初に遭遇するエラーが生成されます:

120 

121* **`$` の最初の呼び出しの前にすべてのスタブを登録します。** その後に `on` を呼び出すと、`on("ui.render") after the test first called $` などのエラーがスローされます。

122 

123* **[`session.start`](/docs/ja/plugins/mods/reference#session) は単独では実行されません。** 各テストはモジュールが新しく読み込まれた状態で開始され、フックは呼び出されないため、モジュールレベルの変数は初期値を保持します。フックが `session.start` が設定するものに依存する場合、最初にそれを発生させます:

124 

125 ```typescript theme={null}

126 // Answer the event after your hook passes it on with next(e)

127 on('session.start', () => ({ cwd: '/work' }))

128 // Answer the $.command.register call your hook makes

129 on('command.register', () => ({ value: undefined }))

130 // Raise the event, which runs your session.start hook

131 await $.session.start({ surface: 'terminal', isInteractive: true, cwd: '/work' })

132 ```

133 

134 2 番目のスタブは、`session.start` フック(例えば [チュートリアル](/docs/ja/plugins/mods/create#write-a-mod-yourself) のもの)が行う `$.command.register` 呼び出しに答えます。それなしでは、その呼び出しは `no implementation for command.register` で拒否され、キットはフックをスキップするため、フック内の呼び出しの後の何も実行されません。テストはその時点で失敗しません。スキップされたフックは、後のチェックが失敗した場合にのみ `the engine reported:` の下にリストされます。

135 

136* **`next(e)` を返すフックにはスタブが必要です。** 例えば、Claude がアイドル状態の間は何も描画しないために `next(e)` を返す [`ui.render`](/docs/ja/plugins/mods/reference#interface) フックは、[マウント](#test-a-drawing) が `no implementation for ui.render` で失敗します。プレーンデータとして要素を返すスタブを登録します:

137 

138 ```typescript theme={null}

139 // Stands for what Claude Code would draw at the site

140 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))

141 ```

142 

143 スタブが登録されると、マウントが成功し、`ui.find({ type: 'Text' })` はフックが `next(e)` を返すたびにその要素を返します。

144 

145* **`turn.step` のスタブは非同期ジェネレータです**。テストはストリームを最後まで読んで結果を取得します:

146 

147 ```typescript theme={null}

148 on('turn.step', async function* ($, e) {

149 // Each yield is one piece of the model's streamed reply

150 yield { kind: 'text', index: 0, text: 'ok' }

151 // The return value is the result of the whole request

152 return { turnId: e.turnId, index: e.index, answer: 'ok', toolUses: [], stopReason: 'end_turn', usage: null }

153 })

154 

155 // Raise one request to the model, which runs your turn.step hook

156 const stream = $.turn.step({ turnId: 't', index: 0, model: 'claude-test', messageCount: 1 })

157 // Read every piece until the stream says it's done

158 let step = await stream.next()

159 while (step.done !== true) step = await stream.next()

160 const result = step.value

161 ```

162 

163 ループが終了すると、`result` はスタブが返したオブジェクトで、モッドの `turn.step` フックが変更する機会を持った後です。ここで `result.answer` は `'ok'` です。

164 

165* **ツール呼び出しをツールの名前と引数をフィールドとして発生させます**。例えば `await $.tool.call({ tool: 'Bash', command: 'ls' })`、`{ result }` を返す `tool.call` スタブを登録します。

166 

167<h3 id="look-up-what-a-stub-returns">

168 スタブが返すものを調べる

169</h3>

170 

171モッドがテストで行う mods API 呼び出しはすべて、キットが自分で答える少数を除いて、スタブが答える必要があります:[`$.ui.invalidate`](/docs/ja/plugins/mods/interface#redraw-when-something-changes) と [`$.state`](/docs/ja/plugins/mods/interface#keep-state) 呼び出し。`$.clock` 呼び出しの場合、`mock.clock(on)` を使用するか、モッドの `$.clock.now()` は `no implementation for clock.now` で失敗します。

172 

173このテーブルはモッドが最も使用するものをリストします。最初の列はモッドが行う呼び出しまたは `next(e)` で渡すイベントです。2 番目はその名前の下で `on` に渡す関数です。そのため、`$.store.get` 行は `on('store.get', ($, e) => ({ value: saved.get(e.key) }))` になります。スタブ内の `'...'` は入力するテキストをマークします:

174 

175| モッドが呼び出すまたは渡すもの | スタブ |

176| :- | :- |

177| `$.command.register`、`$.tool.register`、`$.ui.toast`、`$.ui.log`、`$.ui.status`、`$.ui.close`、`$.store.set` | `() => ({ value: undefined })`。`ui.toast` と `ui.log` の場合、テキストは `e.text` です。 |

178| `$.store.get` | `($, e) => ({ value: saved.get(e.key) })` |

179| `$.fs.read` | `($, e) => ({ value: e.path.endsWith('notes.md') ? '# Notes' : '' })`。`e.path` は絶対パスとして到着するため、`endsWith` と比較します。 |

180| `$.ui.open` | `() => ({ value: { isPlaced: true } })` |

181| `$.ui.ask` | `tool.call` スタブ。質問は `AskUserQuestion` ツールへの呼び出しとして到着するため:`($, e) => ({ result: { answers: { [e.questions[0].question]: 'Run it' } } })`。モッドが他のツール呼び出しを渡す場合は最初に `e.tool` をチェックします。 |

182| `$.model.complete` | `() => ({ value: { isAnswered: true, text: '...', usage } })` |

183| `$.process.run` | `($, e) => ({ value: { exitCode: 0, stdout: '...', stderr: '' } })`。`e.argv` は引数リストで、`e.init` は `cwd` と `timeoutMs` を保持します。 |

184| 失敗すべき mods API 呼び出し | `() => ({ deny: 'the reason' })`。これはモッドで呼び出しを拒否させます。スローするスタブはスキップされます。 |

185| `session.start` | `() => ({ cwd: '/work' })` |

186| `turn.start` | `($, e) => ({ turnId: e.turnId })` |

187| `tool.call` | `() => ({ result: '...' })` |

188| `turn.complete` | `() => ({ text: '' })`。`$.turn.complete({ turnId, answer, durationMs, isAborted: false, usage: null })` で発生させます。 |

189| `prompt.submit` | `($, e) => ({ text: e.text })` |

190| `prompt.fill` | `() => ({ isFilled: true })` |

191| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |

192| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |

193| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |

194| `$.session.id`、`$.agent.list` | `() => ({ value: 'abc123' })`、`() => ({ value: [] })` |

195| `session.send` | `() => ({ isDelivered: true })`。`e.to` はモッドが `{ sessionId }` を渡した場合でも文字列として到着します。 |

196| `session.receive` | `($, e) => ({ text: e.text })`。`$.session.receive({ origin: { kind: 'peer-send-message' }, text })` で発生させます。 |

197| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })` |

198 

199`expect` には `toBe`、`toEqual`、`toMatch`、`toMatchObject`、`toContain`、`toBeDefined`、`toBeUndefined`、`toThrow` のアサーションがあり、それらのいずれかの前に `.not` があります。

200 

201<h2 id="test-a-timer">

202 タイマーをテストする

203</h2>

204 

205タイマーで作業を実行するモッドには、テストが制御するクロックが必要です。そのため、テストは待機する代わりに時間を前に進めることができます。`const clock = mock.clock(on)` は `0` で開始し、テストが移動するときのみ移動するモッククロックを返します。別の時間で開始するには、ミリ秒で渡します。例えば `mock.clock(on, { now: 5000 })` のように。クロックには次のメソッドがあります:

206 

207| メソッド | 何をするか |

208| :- | :- |

209| `await clock.advance(1000)` | 時間をそのミリ秒数だけ前に移動し、期限が来たタイマーを実行します |

210| `await clock.set(5000)` | 時間をその値に移動します。`advance` のように |

211| `clock.now()` | 時間を返します。これはモッドの `$.clock.now()` が解決するものです |

212| `await clock.settle()` | 既に期限が来ているタイマー(例えば、ゼロ遅延の `$.clock.after` 呼び出しのチェーン)を実行します。時間を移動しません |

213| `await clock.sleep(2000)` | スタブ内で、テストがそこまで進むまでそのスタブのみが答えるようにします。これは遅いモデルまたはプロセスをシミュレートする方法です |

214 

215このフックは `countdown` という名前のモッドに属し、秒数を取る `/countdown` コマンドを処理し、1 秒の `$.clock.every` タイマーを開始し、ゼロでトーストを表示します。`grader` と同様に、ファイルはテスト中のフックのみを保持し、コマンドを登録しません:

216 

217```javascript countdown/hooks/register.js theme={null}

218export function register(on) {

219 on('command.run', { command: 'countdown' }, async ($, e) => {

220 // e.args is the text typed after /countdown

221 let left = Number(e.args)

222 const timer = $.clock.every(1000, () => {

223 left -= 1

224 if (left === 0) {

225 timer.cancel()

226 $.ui.toast('Time is up')

227 }

228 })

229 // Print nothing in the transcript

230 return {}

231 })

232}

233```

234 

235このテストは `/countdown 3` を実行し、モッククロックを移動するため、3 秒間の動作をチェックします。3 秒待つ必要はありません:

236 

237```typescript countdown/tests/countdown.test.ts theme={null}

238import { expect, mock, test } from 'claude-code/testing'

239 

240test('the countdown ends with a toast', async ($, on) => {

241 // Answer every $.clock call from a clock the test controls

242 const clock = mock.clock(on)

243 // Collect the text of each toast the mod shows

244 const toasts: string[] = []

245 on('ui.toast', ($, e) => {

246 toasts.push(e.text)

247 return { value: undefined }

248 })

249 

250 await $.command.run({ command: 'countdown', args: '3' })

251 // After two seconds the timer has fired twice, and no toast is due

252 await clock.advance(2000)

253 expect(toasts).toEqual([])

254 // The third second brings the count to zero

255 await clock.advance(1000)

256 expect(toasts).toEqual(['Time is up'])

257})

258```

259 

260最初の `expect` はトーストが早く来ないことを示し、2 番目はそれが 1 回来ることを示します。各 `advance` は期限が来たタイマーが実行された後に解決するため、次の行のチェックはそれらの効果を見ます。

261 

262<h2 id="test-a-drawing">

263 描画をテストする

264</h2>

265 

266テストはモッドの [レンダリングサイト](/docs/ja/plugins/mods/reference#render-sites) の 1 つを描画し、要素を押し、入力し、見つけることができます。`$.ui.mount` はサイトをモッドの `ui.render` フックを通して描画し、それぞれのメソッドを持つハンドルを返します。1 つのテストで複数のアプリをカバーするには、`surface` をアプリに設定して描画します。このテストは [タブを使用してペインを構築する](/docs/ja/plugins/mods/interface#build-a-pane-with-tabs) からペインを開き、タブを切り替え、ボタンを押し、ターミナルと Desktop アプリのカウントをチェックします:

267 

268```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}

269import { expect, test } from 'claude-code/testing'

270 

271// What Claude Code passes to a ui.render hook for this pane, apart from the app

272const PANE = {

273 plugin: 'hello-tabs',

274 component: 'Pane',

275 requestId: 'hello-tabs',

276 viewport: { columns: 100, rows: 30 },

277 props: {

278 title: 'Hello tabs',

279 isFocused: true,

280 bodyColumns: 60,

281 placement: 'inline',

282 scroll: { offset: 0, bodyRows: 10 },

283 view: {},

284 },

285} as const

286 

287test('the second tab counts presses and saves the count', async ($, on) => {

288 // Stub $.store with a Map, so the test can read what the mod saved

289 const saved = new Map<string, unknown>()

290 on('store.get', ($, e) => ({ value: saved.get(e.key) }))

291 on('store.set', ($, e) => {

292 saved.set(e.key, e.value)

293 return { value: undefined }

294 })

295 

296 // Draw the pane once for each app

297 for (const surface of ['terminal', 'desktop'] as const) {

298 const ui = await $.ui.mount({ ...PANE, surface })

299 // Press the buttons by the key the mod gave them

300 await ui.press({ key: 'tab-two' })

301 await ui.press({ key: 'more' })

302 // The second tab's count line is in the drawing

303 expect(await ui.find({ type: 'Text', text: /^Count: \d+$/ })).toBeDefined()

304 await ui.unmount()

305 }

306 

307 // One press in each app makes two

308 expect(saved.get('count')).toBe(2)

309})

310```

311 

312シェルで `hello-tabs` ディレクトリから `claude plugin test` を実行します。テストは両方のアプリがカウント行を描画し、モッドが `2` を保存したときに成功します。最初のアプリから 2 番目のアプリへのカウントは、両方のマウントが同じ読み込まれたモジュールを使用するため、引き継がれます。

313 

314`$.ui.mount` が返すハンドルには次のメソッドがあり、モッドが与えた `key` で要素をアドレス指定します:

315 

316| メソッド | 何をするか |

317| :- | :- |

318| `press({ key: 'more' })` | その `key` を持つ `Button` を押します |

319| `input({ key: 'new-note', text: 'buy milk' })` | テキストを `key` を持つ `Input` に入力し、Enter を押します。`kind: 'change'` を追加して、送信せずに入力します。 |

320| `select({ key: 'size', value: 'large' })` | その `key` を持つ `Select` でその値を持つオプションを選択します |

321| `find({ key: 'more' })` または `find({ type: 'Text', text: 'Count: 2' })` | 最初にマッチする要素を `{ type, props, children }` として返すか、`undefined` を返します。`text` は文字列または正規表現です。 |

322| `unmount()` | 描画を削除します |

323 

324各メソッドはハンドラーが完了した後に解決するため、次の行で結果をチェックできます。`props` を Claude Code がそのサイトに渡すものに設定します。[レンダリングサイトテーブル](/docs/ja/plugins/mods/reference#render-sites) は各サイトの props をリストし、[ビルドのタイプ](/docs/ja/plugins/mods/create#get-the-types-for-your-build) はそれらのタイプを持ちます。

325 

326描画テストはフックが返すツリーをチェックし、そのアプリに対して有効かどうかをチェックします。アプリがそれをどのように描画するかはチェックしないため、実際のセッションで新しいレイアウトを見てください。

327 

328<h3 id="test-a-drawing-after-clear">

329 `/clear` の後に描画をテストする

330</h3>

331 

332各テストはすべての `$.state` 値がデフォルトで開始します。これは `/clear` がそれらを残す方法です。モッドが次に何をするかをテストするには、`session.start` をスキップし、`source: 'clear'` で `classic.SessionStart` を発生させ、モッドが描画するものをチェックします。

333 

334このテストは [保存された値を `/clear` の後に再度読み込む](/docs/ja/plugins/mods/interface#load-a-saved-value-again-after-clear) からモジュールをチェックします。[描画をテストする](#test-a-drawing) からファイルに追加します。ここで `PANE` が定義されています。そのファイルの最初のテストはボタンがカウントを保存することを期待します。[複数のセッションから保存する](/docs/ja/plugins/mods/interface#save-from-more-than-one-session) のボタンのように:

335 

336```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}

337test('the saved count comes back after /clear', async ($, on) => {

338 // The store already holds a count of 7

339 on('store.get', () => ({ value: 7 }))

340 // Answer the event after your hook passes it on with next(e)

341 on('classic.SessionStart', () => ({}))

342 

343 // Raise the event that fires after /clear, which runs your hook

344 await $.classic.SessionStart({ source: 'clear' })

345 

346 const ui = await $.ui.mount({ ...PANE, surface: 'terminal' })

347 await ui.press({ key: 'tab-two' })

348 // The pane shows the stored count, not the default of 0

349 expect(await ui.find({ type: 'Text', text: 'Count: 7' })).toBeDefined()

350})

351```

352 

353テストは、モッドの `classic.SessionStart` フックがペインが描画される前に保存された `7` を `$.state` にコピーしたときに成功します。モジュールにそのフックがない場合、ペインは `Count: 0` を描画し、`find` は `undefined` を返し、テストは `toBeDefined` で失敗します。

354 

355<h2 id="test-a-mod-that-judges-other-mods">

356 他のモッドを判断するモッドをテストする

357</h2>

358 

359組織が [`prependPlugins`](/docs/ja/plugins/mods/admin) にリストするモッドは、別のモッドが読み込まれる前にそれを拒否できます。1 つをテストするには、モッドのティアを設定し、テストに 2 番目のモッドを与えて、モッドが許可または拒否します:

360 

361* **`tier`**: テストファイルの上部で 1 回呼び出します。例えば `tier('prepend')` のように。モッドを `prepend`、`append`、または `builtin` として読み込みます。これは [モッドが実行される順序](/docs/ja/plugins/mods/events#the-order-mods-run-in) でのその場所です。それなしでは、モッドは `user` として読み込まれます。

362* **`plugins`**: テスト本体の前にテストにオプションオブジェクトを渡します。その `plugins` 配列は、`name` と `register` 関数を持つ、インラインで書いたモッドを保持します。別の場所に 1 つを読み込むには、`tier` を追加します。

363 

364このテストファイルは [管理ページからのポリシーモッド](/docs/ja/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) を最初に読み込みます。ポリシーモッドがプロセスを開始するモッドを拒否し、そうでないモッドを許可することをチェックします:

365 

366```typescript acme-guard/tests/guard.test.ts theme={null}

367import { expect, test, tier } from 'claude-code/testing'

368 

369// Load the mod under test ahead of every other mod

370tier('prepend')

371 

372// A second mod whose code calls $.process.run, which the policy blocks

373const runner = {

374 name: 'runner',

375 register(on) {

376 on('tool.call', async ($, e, next) => {

377 await $.process.run(['ls'])

378 return { result: 'runner answered' }

379 })

380 },

381}

382 

383// A second mod that calls nothing the policy blocks

384const reader = {

385 name: 'reader',

386 register(on) {

387 on('tool.call', async ($, e, next) => {

388 return { result: 'reader answered' }

389 })

390 },

391}

392 

393test('refuses a mod that starts a process', { plugins: [runner] }, async ($, on) => {

394 on('tool.call', () => ({ result: 'claude code answered' }))

395 let message = ''

396 try {

397 // The first call on $ loads the mods, so the refusal is thrown here

398 await $.tool.call({ tool: 'Bash', command: 'ls' })

399 } catch (error) {

400 message = error.message

401 }

402 expect(message).toBe('runner: refused by acme-guard: Acme policy: mods may not call process.run')

403})

404 

405test('admits a mod that starts no process', { plugins: [reader] }, async ($, on) => {

406 on('tool.call', () => ({ result: 'claude code answered' }))

407 const out = await $.tool.call({ tool: 'Bash', command: 'ls' })

408 // The answer comes from reader, which shows that it loaded

409 expect(out).toEqual({ result: 'reader answered' })

410})

411```

412 

413シェルで `acme-guard` ディレクトリから `claude plugin test` を実行します。両方のテストは管理ページが示すようにポリシーモッドで成功します。

414 

415キットはテストの最初の `$` 呼び出しですべてのモッドを読み込みます。モッドが 1 つを拒否すると、その呼び出しはスローされ、メッセージは拒否されたモッド、それを拒否したモッド、および理由を名前で示します。2 番目のテストでは何も拒否されないため、`reader` はスタブに到達する前にツール呼び出しに答えます。

416 

417<h2 id="next-steps">

418 次のステップ

419</h2>

420 

421* [モッドをトラブルシューティングする](/docs/ja/plugins/mods/troubleshoot):モッドがセッションで何もしない理由を見つけます

422* [モッドリファレンス](/docs/ja/plugins/mods/reference):スタブを書くための各イベントの入力と結果

plugins/mods/troubleshoot.md +284 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# mod のトラブルシューティング

6 

7> Claude Code mod が何もしない理由を調べます。症状またはメッセージを原因と照合し、拒否メッセージを確認し、デバッグログを読みます。

8 

9mod のモジュールまたはそのいずれかの hooks が失敗すると、Claude Code はそれをスキップしてセッションが続行されるため、壊れた mod は何もしない mod のように見えることがあります。Claude Code が mod から読み込んだ内容と、問題を報告する場所を確認することから始めてください。その後、症状またはメッセージを見つけてください。

10 

11<h2 id="find-out-why-a-mod-does-nothing">

12 mod が何もしない理由を調べる

13</h2>

14 

15mod が何もしない場合、2 つのチェックで理由が分かります。Claude Code が mod のファイルから読み込んだ内容と、何かをスキップするときに書く行です。最初のチェックについては、シェルで [`claude plugin validate`](/docs/ja/plugins/mods/create#check-what-claude-code-reads-from-your-mod) を mod のディレクトリで実行します。例えば `claude plugin validate ./first-mod` のようにします。セッションを開始せずに、スペルが間違ったイベント、不正なマニフェスト、Claude Code が読み込めないモジュールをキャッチします。

16 

17モジュールが読み込まれない場合、hooks がスキップされる場合、または別の mod があなたの mod を拒否する場合、Claude Code は mod の名前を付けた 1 行を書きます。その行を読む場所はセッションによって異なります。

18 

19* **プラグインディレクトリをホットリロードするセッション**: トランスクリプト内の薄い行。これは `--plugin-dir` で開始した対話型セッション、または Claude が書いた mod の [ホットリロードを有効にした](/docs/ja/plugins/mods/create#ask-claude-for-a-mod) セッションです。

20* **マーケットプレイスからインストールした mod を実行するセッションなど、その他の対話型セッション**: [デバッグログ](#read-the-debug-log) のみ。取得するには、セッションを `claude --debug` で開始します。

21* **`--plugin-dir` を使用した `claude -p` 実行**: stderr、デフォルトのテキスト出力形式で。別の mod による拒否はデバッグログのみに移動します。

22 

23<h2 id="check-whether-mods-can-load">

24 mod が読み込めるかどうかを確認する

25</h2>

26 

27mod が読み込めるかどうかを確認するには、mod をインストールせずに、シェルから `claude plugin test` を実行します。mod を保持していないディレクトリから実行します。セッションは不要です。出力されるメッセージは状態を示します。

28 

29| メッセージに含まれる内容 | 意味 |

30| :- | :- |

31| `no hooks module to load` | mod は読み込めます。コマンドはこのディレクトリでテストする mod を見つかりませんでした。 |

32| `hooks modules are turned off here` | 設定が mod を除外しています。あなた自身の設定の `disableAllHooks`、または組織のポリシー |

33| `hooks modules are turned off in this process` | Anthropic がインストール済み mod をリモートで無効にしました。マシン上の設定でそれらをオンに戻すことはできません。 |

34 

35組織は `allowManagedModsOnly` を設定して、独自の mod のみを許可することもできます。このコマンドはこれを報告しません。その場合、インストールした mod は読み込まれず、[メッセージが理由を示します](/docs/ja/plugins/mods/troubleshoot#messages-from-the-built-in-guard)。

36 

37<h2 id="the-mod-doesn’t-load">

38 mod が読み込まれない

39</h2>

40 

41mod が追加するものは何も表示されません。コマンド、描画、動作の変更はありません。

42 

43<h3 id="your-version-is-older-than-2-1-287">

44 バージョンが 2.1.287 より古い

45</h3>

46 

47`claude --version` は 2.1.287 より古いバージョンを出力します。バージョンは mod がデフォルトでオンになる前のものです。

48 

49[Claude Code を更新します](/docs/ja/setup#update-claude-code)。

50 

51<h3 id="the-mods-active-line-doesn’t-name-the-mod">

52 `mods active` 行が mod の名前を示していない

53</h3>

54 

55mod が追加するものは何も表示されず、`/plugin` の [`mods active` 行](/docs/ja/plugins/mods/overview#see-which-mods-a-session-loaded) にその名前がありません。hooks モジュールが読み込まれませんでした。Claude Code がそれを拒否したとき、デバッグログには `hooks module`、mod の名前、`not loaded:` で始まる行があります。例えば `--plugin-dir` で読み込まれた mod の場合 `hooks module first-mod@inline not loaded: disableAllHooks in managed settings` のようになります。

56 

57コロンの後の理由を読んでください。[拒否メッセージ](#refusal-messages) セクションに各メッセージが記載されています。ログにそのような行がない場合は、このグループの他のエントリを確認してください。

58 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 `claude -p` 実行が `hooks module not loaded` を出力する

61</h3>

62 

63行は mod の名前で始まり、stderr に移動します。hooks モジュールが拒否されました。非対話型実行にはトランスクリプトがないため、メッセージは stderr に移動します。

64 

65コロンの後の理由を読んでください。[拒否メッセージ](#refusal-messages) セクションに各メッセージが記載されています。

66 

67<h3 id="refusal-messages">

68 拒否メッセージ

69</h3>

70 

71これらはそれぞれ、デバッグログの `hooks module`、mod の名前、`not loaded:` に続きます。

72 

73| メッセージの開始 | 意味 |

74| :- | :- |

75| `hooks modules are turned off for installed plugins in this process` | Anthropic がインストール済み mod をリモートで無効にしました。マシン上の設定でそれらをオンに戻すことはできません。 |

76| `disableAllHooks in managed settings` | 組織がインストール済みプラグインからの hooks をオフにしました |

77| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` が設定されているか、マネージド設定以外の設定ファイルで `disableAllHooks` が設定されています |

78| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Claude Code を `--bare` で開始しました |

79| `another plugin of that name loads first` | 2 つのプラグインが同じ名前を共有しています。マネージド版、または最初に読み込まれたものが使用されます。 |

80 

81<h3 id="messages-from-the-built-in-guard">

82 組み込みガードからのメッセージ

83</h3>

84 

85マネージド設定を持つマシン上、または Team または Enterprise プランでサインインしているユーザーの場合、[組み込みガード](/docs/ja/plugins/mods/admin#know-what-happens-by-default) は mod またはそのいずれかの回答を拒否できます。各メッセージは、組織の管理者が設定するオプションの名前を示します。

86 

87| メッセージに含まれる内容 | 意味 | 表示される場所 |

88| :- | :- | :- |

89| `mods are limited to your organization's by policy (allowManagedModsOnly)` | 組織は [独自の mod](/docs/ja/plugins/mods/admin#install-your-organizations-mods) のみを許可しているため、あなたの mod は読み込まれませんでした | デバッグログ、および [プラグインディレクトリをホットリロードするセッション](#find-out-why-a-mod-does-nothing) のトランスクリプト |

90| `tried to lift a deny rule in your settings` | mod の [`tool.check`](/docs/ja/plugins/mods/reference#tools) hook が `deny` ルールが拒否する呼び出しを承認しました。呼び出しは拒否されたままです。 | トランスクリプトとデバッグログ。セッション内の各 mod に対して 1 回。`claude -p` 実行では、デバッグログのみ。 |

91| `the deny rules in your settings could not be checked for this call, so it is refused` | ガードが mod が承認した呼び出しをチェック中に失敗したため、呼び出しを拒否しました | Claude が拒否された呼び出しについて読む理由 |

92 

93<h3 id="validate-passes-and-lists-no-hooks-line">

94 `validate` が成功し、`hooks` 行がリストされていない

95</h3>

96 

97`hooks/hooks.json` に `modules` キーがないか、キーのスペルが間違っています。

98 

99`"modules": ["./register.js"]` を追加します。

100 

101<h3 id="hooks-module-did-not-load">

102 `hooks module did not load`

103</h3>

104 

105行は mod の名前で始まり、`hooks module did not load:` と理由が続きます。問題がコード内にある場合、ファイルと行を示します。Claude Code はモジュールを読み込めませんでした。例えば、トップレベルコードが例外をスローしたためです。

106 

107理由が示すエラーを修正します。

108 

109<h3 id="options-do-not-fit-plugin-json-userconfig">

110 `options do not fit plugin.json userConfig`

111</h3>

112 

113行は mod の名前で始まり、`hooks module did not load: options do not fit plugin.json userConfig:` と理由が続きます。オプションが [`userConfig`](/docs/ja/plugins/components#user-configuration) フィールドに適合しません。例えば、フィールドの `max` を超える数値、または必須フィールドに値がありません。

114 

115値を設定または変更します。行の末尾は `settings.json` の `pluginConfigs` エントリの名前を示します。

116 

117<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">

118 初めて開いたディレクトリで mod が読み込まれない

119</h3>

120 

121ディレクトリの信頼プロンプトに答えていません。

122 

123`claude` でそのディレクトリで対話型セッションを開始し、開かれる信頼プロンプトを受け入れます。

124 

125<h3 id="no-installed-plugin-loads-at-all">

126 インストール済みプラグインが読み込まれない

127</h3>

128 

129Claude Code を `--safe-mode` で開始しました。

130 

131フラグなしで開始します。

132 

133<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">

134 hooks がスキップされるか mod がアンロードされる

135</h2>

136 

137mod が読み込まれ、その後 Claude Code がそのいずれかの hooks をスキップするか、アンロードしました。

138 

139<h3 id="hook-skipped">

140 `hook skipped`

141</h3>

142 

143行は mod とイベントの名前を示し、`hook skipped:` と理由を示します。例えば `first-mod: tool.call hook skipped: threw Error: boom` のようになります。hooks が例外をスロー、[10 秒のタイムリミット](/docs/ja/plugins/mods/reference#limits) を超過、または間違った形状の結果を返しました。行は mod がリロードされるまで、イベントと失敗の種類ごとに 1 回表示されます。

144 

145エラーを修正します。デバッグログには発生するたびに行があります。

146 

147<h3 id="it-crashed-the-hooks-worker">

148 `it crashed the hooks worker`

149</h3>

150 

151行は mod の名前で始まります。例えば `first-mod was unloaded: it crashed the hooks worker` のようになります。インストール済み mod は 1 つのワーカースレッドを共有します。ワーカーが応答を停止するか、クラッシュし、Claude Code がそれをこの mod に追跡して、アンロードしました。スレッドをブロックする hooks。例えば、await しないループが 1 つの原因です。

152 

153hooks を修正します。

154 

155<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">

156 `mods that run in the hooks worker are off for this session`

157</h3>

158 

159行は `hooks: mods that run in the hooks worker are off for this session: it crashed 3 times` と読みます。ワーカーが 3 回停止し、Claude Code が停止を 1 つの mod に追跡できなかったため、組み込みでない mod をすべてアンロードしました。組織がインストールする mod を含みます。この行はすべての対話型セッションのトランスクリプトに到達します。

160 

161`/reload-plugins` を実行してそれらを再度読み込みます。

162 

163<h2 id="a-tool-call-is-denied">

164 ツール呼び出しが拒否される

165</h2>

166 

167mod が読み込まれ、その hooks が実行され、それが触れたツール呼び出しが拒否されます。

168 

169<h3 id="a-hook-changed-this-call’s-input-after-the-model-wrote-it">

170 `a hook changed this call's input after the model wrote it`

171</h3>

172 

173自動モードでは、拒否されたツール呼び出しはこの理由を示します。hooks が [サーバー側分類器](/docs/ja/permission-modes#server-side-classifier-review) がレビューした後、ツール呼び出しの入力を変更したため、そのレビューは実行される内容をカバーしません。hooks は mod の [`tool.call`](/docs/ja/plugins/mods/reference#tools) または [`turn.step`](/docs/ja/plugins/mods/reference#turns) hooks、または [`PreToolUse`](/docs/ja/hooks#pretooluse) 設定 hooks である可能性があります。メッセージはどれかを示しません。

174 

175メッセージは Claude に記録されたとおりに呼び出しを再度発行するよう指示します。それも拒否された場合、hooks は毎回入力を変更するため、mod または hooks をオフにするか、自動モードを離れて呼び出しを自分で承認します。

176 

177<h3 id="a-message-about-the-deny-rules-in-your-settings">

178 設定の拒否ルールに関するメッセージ

179</h3>

180 

181`tried to lift a deny rule in your settings` と `the deny rules in your settings could not be checked for this call, so it is refused` は両方とも組み込みガードから来ます。

182 

183[組み込みガードからのメッセージ](#messages-from-the-built-in-guard) で確認してください。

184 

185<h2 id="a-drawing-doesn’t-appear-or-respond">

186 描画が表示されないか応答しない

187</h2>

188 

189mod が読み込まれ、そのペイン、バンド、またはコントロールが期待どおりに動作しません。

190 

191<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">

192 ペインまたはバンドが空であるか、Claude Code の通常のコンテンツを表示する

193</h3>

194 

195[ツリー](/docs/ja/plugins/mods/interface#build-a-tree-from-elements) が hooks から返されたものが検証されませんでした。`--plugin-dir` を使用すると、トランスクリプトは `ui.render (Pane) refused:` と理由を示します。例えば `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own` のようになります。デバッグログには `a hook returned a tree that does not validate` と同じ理由があります。

196 

197その行の理由を読んでください。一般的な原因は、要素が取らないプロップと、アプリが持たない要素です。

198 

199<h3 id="ui-open-runs-and-no-pane-appears">

200 `$.ui.open` が実行され、ペインが表示されない

201</h3>

202 

203呼び出しはユーザーが行ったものから来ておらず、ターミナルは 144 列より狭いです。

204 

205コマンドまたはボタンからペインを開くか、呼び出しの `isPlaced` 結果を確認します。[適切なタイミングでペインを開く](/docs/ja/plugins/mods/interface#open-a-pane-at-the-right-time) を参照してください。

206 

207<h3 id="hotkeys-do-nothing">

208 ホットキーが何もしない

209</h3>

210 

211ペインにキーボードフォーカスがありません。

212 

213Ctrl+X を押してから Tab を押すか、ペインをクリックします。`focus: true` を使用してコマンドから開きます。

214 

215<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">

216 描画がターミナルで機能し、Desktop アプリでは機能しない

217</h3>

218 

219サイトまたは要素はそこで利用できません。

220 

221[レンダリングサイト](/docs/ja/plugins/mods/reference#render-sites) と [要素](/docs/ja/plugins/mods/reference#elements) テーブルを確認してください。

222 

223<h2 id="an-edit-or-a-value-is-lost">

224 編集または値が失われる

225</h2>

226 

227mod が実行され、行った変更または保持していた値がありません。

228 

229<h3 id="your-edits-don’t-take-effect">

230 編集が有効にならない

231</h3>

232 

233インストールした plugin を編集しています。Claude Code はインストール済みバージョンのキャッシュされたコピーを実行します。

234 

235`claude --plugin-dir ./first-mod` のように、作業コピーを指す `--plugin-dir` で開発します。保存時にリロードされます。

236 

237<h3 id="a-value-resets-when-the-module-reloads">

238 モジュールがリロードされるときに値がリセットされる

239</h3>

240 

241モジュールレベルの変数は各リロード時に再初期化されます。

242 

243[値を `$.state` または `$.store` に保持します](/docs/ja/plugins/mods/interface#keep-state)。

244 

245<h3 id="a-value-resets-after-/clear-/resume-or-/branch">

246 `/clear`、`/resume`、または `/branch` の後に値がリセットされる

247</h3>

248 

249値がリセットされるか、保存された値がデフォルトに置き換わります。これらのコマンドはそれぞれ `$.state` をデフォルトにリセットし、`session.start` は再度発火しません。

250 

251[`classic.SessionStart` hooks で保存された値を再度読み込みます](/docs/ja/plugins/mods/interface#load-a-saved-value-again-after-clear)。

252 

253<h2 id="read-the-debug-log">

254 デバッグログを読む

255</h2>

256 

257デバッグログには、Claude Code が読み込むまたは拒否するすべてのモジュール、失敗するすべての hooks、拒否するすべての結果の行があります。トランスクリプトに何も表示されない場合は、ここを確認してください。書き込むには、シェルで Claude Code を `--debug` で開始するか、`--debug-file <path>` で場所を選択します。

258 

259```bash theme={null}

260claude --debug-file ./mod-debug.log --plugin-dir ./first-mod

261```

262 

263別のターミナルで、ファイルをフォローして mod の名前でフィルタリングします。

264 

265```bash theme={null}

266tail -f ./mod-debug.log | grep first-mod

267```

268 

269読み込まれた mod には、その名前を示し、hooks するイベントをリストする行があります。`--plugin-dir` で読み込まれた mod は、その名前の後に `@inline` が続く形で表示されます。

270 

271```text theme={null}

272hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

273```

274 

275検証されなかった描画は拒否された結果としてカウントされ、行も取得します。ログに独自の行を書き込むには、[`$.ui.log`](/docs/ja/plugins/mods/api#show-something-without-starting-a-turn) を 2 番目の引数で呼び出します。例えば `$.ui.log('message', { to: 'debug' })` のようにします。2 番目の引数がない場合、`$.ui.log` はトランスクリプトに薄い行を追加します。

276 

277`--plugin-dir` で読み込まれた mod を編集している間、トランスクリプトは mod の名前を示し、その hooks をリストする各リロードの行を表示します。保存がモジュールを破損する場合、行は `reload failed, the previous version stays loaded:` と理由を示し、最後に機能したバージョンが実行され続けます。

278 

279<h2 id="next-steps">

280 次のステップ

281</h2>

282 

283* [mod をテストする](/docs/ja/plugins/mods/test): セッションに到達する前に問題をキャッチします

284* [プラグインのトラブルシューティング](/docs/ja/plugins/troubleshooting): mod に固有ではないプラグインのインストールと読み込みに関する問題

plugins/org.md +6 −3

Details

212| `pluginTrustMessage` | プラグインがインストールされる前に `/plugin` が表示する信頼警告にテキストを追加します | 警告独自のテキストを変更しません |212| `pluginTrustMessage` | プラグインがインストールされる前に `/plugin` が表示する信頼警告にテキストを追加します | 警告独自のテキストを変更しません |

213| `allowedChannelPlugins` | チャネルメッセージをプッシュできるプラグインのデフォルトリストを置き換えます。`channelsEnabled: true` が必要です | [チャネルプラグインが実行できるものを制限する](/docs/ja/channels#restrict-which-channel-plugins-can-run) を参照してください |213| `allowedChannelPlugins` | チャネルメッセージをプッシュできるプラグインのデフォルトリストを置き換えます。`channelsEnabled: true` が必要です | [チャネルプラグインが実行できるものを制限する](/docs/ja/channels#restrict-which-channel-plugins-can-run) を参照してください |

214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/ja/env-vars) | インタラクティブターミナルセッションが公式マーケットプレイスを自動登録するのを停止します | 既に登録されているマーケットプレイスを削除しません。許可リストとブロックリストはそれなしで同じ自動登録をゲートします。それを設定して開始したマシンは、設定を解除した後に自動登録を再開しません |214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/ja/env-vars) | インタラクティブターミナルセッションが公式マーケットプレイスを自動登録するのを停止します | 既に登録されているマーケットプレイスを削除しません。許可リストとブロックリストはそれなしで同じ自動登録をゲートします。それを設定して開始したマシンは、設定を解除した後に自動登録を再開しません |

215| [`allowManagedModsOnly`](/docs/ja/plugins/mods/admin#stop-user-installed-mods-from-loading) | [組織のものとしてカウント](/docs/ja/plugins/mods/admin#install-your-organizations-mods) されない、インストール済みの [mod](/docs/ja/plugins/mods/overview) をすべて読み込みから停止します | mod を含むプラグインがインストールされるのを停止しません。そのためには、このテーブルのマーケットプレイスキーを使用します |

215 216 

216テーブルのすべてのキーはマネージド設定です。ただし、`enabledPlugins`、`syncClaudeAiPlugins`、および `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` は除きます:217テーブルのすべてのキーはマネージド設定です。ただし、`enabledPlugins`、`syncClaudeAiPlugins`、`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`、および `allowManagedModsOnly` は除きます:

217 218 

218* **`enabledPlugins`**: 任意のスコープで設定でき、マネージド設定がそれをロックします。219* **`enabledPlugins`**: 任意のスコープで設定でき、マネージド設定がそれをロックします。

219* **`syncClaudeAiPlugins`**: 各ユーザーは独自のユーザーまたはローカル設定でも設定できます。[設定リファレンス](/docs/ja/settings-reference#syncclaudeaiplugins) でそのスコープを参照してください。220* **`syncClaudeAiPlugins`**: 各ユーザーは独自のユーザーまたはローカル設定でも設定できます。[設定リファレンス](/docs/ja/settings-reference#syncclaudeaiplugins) でそのスコープを参照してください。

220* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: これは、[フリート全体の更新をオフにする](#turn-updates-off-for-the-whole-fleet) の下に示されているマネージド `env` ブロックを通じて配信する環境変数です。221* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: これは、[フリート全体の更新をオフにする](#turn-updates-off-for-the-whole-fleet) の下に示されているマネージド `env` ブロックを通じて配信する環境変数です。

222* **`allowManagedModsOnly`**: これはビルトインプラグインのオプションであり、マネージド設定の `pluginConfigs` の下に設定します。[ユーザーがインストールした mod が読み込みを停止する](/docs/ja/plugins/mods/admin#stop-user-installed-mods-from-loading) を参照してください。

221 223 

222ここの各設定キーは [設定リファレンス](/docs/ja/settings-reference) にエントリを持ちます。224ここの各設定キーは [設定リファレンス](/docs/ja/settings-reference) にエントリを持ちます。

223 225 


261 スキルディレクトリプラグインを読み込み続ける263 スキルディレクトリプラグインを読み込み続ける

262</h4>264</h4>

263 265 

264スキルディレクトリプラグインは、ユーザーが `~/.claude/skills/` または `.mcp.json` を持つプロジェクトの `.claude/skills/` の下に `.claude-plugin/plugin.json` マニフェストを持つフォルダに保持するプラグインです。`{ "source": "skills-dir" }` エントリなしで許可リストを設定する場合、それらは読み込みを停止します。プレーン [スキル](/docs/ja/skills)、つまり `SKILL.md` はそのマニフェストなしで読み込み続けます。266スキルディレクトリプラグインは、ユーザーが `~/.claude/skills/` または `.claude-plugin/plugin.json` マニフェストを持つプロジェクトの `.claude/skills/` の下に保持するプラグインです。`{ "source": "skills-dir" }` エントリなしで許可リストを設定する場合、それらは読み込みを停止します。プレーン [スキル](/docs/ja/skills)、つまり `SKILL.md` はそのマニフェストなしで読み込み続けます。

265 267 

266<h4 id="marketplaces-hosted-on-claude-ai">268<h4 id="marketplaces-hosted-on-claude-ai">

267 claude.ai でホストされているマーケットプレイス269 claude.ai でホストされているマーケットプレイス


308 公式マーケットプレイスと独自のマーケットプレイスを許可する310 公式マーケットプレイスと独自のマーケットプレイスを許可する

309</h3>311</h3>

310 312 

311ほとんどの組織は公式マーケットプレイスと独自のマーケットプレイスを許可し、両方を登録してすべてのマシンがそれらを持つようにします。このマネージド設定ポリシーは両方のマーケットプレイスを許可し、両方を登録し、 2 つのプラグインを強制的に有効にし、`--plugin-dir` を拒否します:313ほとんどの組織は公式マーケットプレイスと独自のマーケットプレイスを許可し、両方を登録してすべてのマシンがそれらを持つようにします。このマネージド設定ポリシーは両方のマーケットプレイスを許可し、両方を登録し、2 つのプラグインを強制的に有効にし、`--plugin-dir` を拒否します:

312 314 

313```json theme={null}315```json theme={null}

314{316{


457* [マーケットプレイスリファレンス](/docs/ja/plugins/marketplace-reference#marketplace-sources): `extraKnownMarketplaces`、`strictKnownMarketplaces`、および `blockedMarketplaces` が受け入れる `source` 値459* [マーケットプレイスリファレンス](/docs/ja/plugins/marketplace-reference#marketplace-sources): `extraKnownMarketplaces`、`strictKnownMarketplaces`、および `blockedMarketplaces` が受け入れる `source` 値

458* [マーケットプレイスをホストして維持する](/docs/ja/plugins/host-marketplace): ポリシーが指す マーケットプレイスを実行する460* [マーケットプレイスをホストして維持する](/docs/ja/plugins/host-marketplace): ポリシーが指す マーケットプレイスを実行する

459* [プラグインセキュリティと信頼](/docs/ja/plugins/security): プラグインがマシンで実行できるもの、およびインストール前に 1 つをレビューする方法461* [プラグインセキュリティと信頼](/docs/ja/plugins/security): プラグインがマシンで実行できるもの、およびインストール前に 1 つをレビューする方法

462* [組織のモッドを管理する](/docs/ja/plugins/mods/admin): モッド(Claude Code 内で JavaScript を実行するプラグイン)をオフにするか制限する

460* [サーバーマネージド設定](/docs/ja/server-managed-settings): claude.ai 管理コンソールからこれらのキーを配信する463* [サーバーマネージド設定](/docs/ja/server-managed-settings): claude.ai 管理コンソールからこれらのキーを配信する

461* [プラグインをトラブルシューティング](/docs/ja/plugins/troubleshooting#blocked-by-your-organization): ポリシーがユーザーをブロックするときにユーザーが見るメッセージ464* [プラグインをトラブルシューティング](/docs/ja/plugins/troubleshooting#blocked-by-your-organization): ポリシーがユーザーをブロックするときにユーザーが見るメッセージ

Details

30* [**Skills**](/docs/ja/plugins/components#skills):Claude が関連する場合に読み込む `SKILL.md` 命令。コマンドとして実行することもできます30* [**Skills**](/docs/ja/plugins/components#skills):Claude が関連する場合に読み込む `SKILL.md` 命令。コマンドとして実行することもできます

31* [**Agents**](/docs/ja/plugins/components#agents):Claude が委譲できるサブエージェント定義31* [**Agents**](/docs/ja/plugins/components#agents):Claude が委譲できるサブエージェント定義

32* [**Hooks**](/docs/ja/plugins/components#hooks):編集後など、ライフサイクルのポイントで Claude Code が実行するコマンド32* [**Hooks**](/docs/ja/plugins/components#hooks):編集後など、ライフサイクルのポイントで Claude Code が実行するコマンド

33* [**A hooks module**](/docs/ja/plugins/mods/overview):JavaScript 関数として記述された hooks。ペインを描画したり、コマンドを追加したりすることもできます。1 つを持つプラグインは mod と呼ばれます

33* [**MCP servers**](/docs/ja/plugins/components#mcp-servers):プラグインが有効な場合に Claude Code が接続するツールサーバー34* [**MCP servers**](/docs/ja/plugins/components#mcp-servers):プラグインが有効な場合に Claude Code が接続するツールサーバー

34 35 

35このダイアグラムは、`my-plugin` という名前のプラグインを示しており、これらの各コンポーネントを 1 つずつ保持しており、プラグインが読み込まれた後に各ファイルから何を取得するかを示しています。36このダイアグラムは、`my-plugin` という名前のプラグインを示しており、スキル、エージェント、hooks、および MCP サーバーを保持しており、プラグインが読み込まれた後に各ファイルから何を取得するかを示しています。

36 37 

37<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory.svg" />38<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory.svg" />

38 39 

Details

29プラグインはユーザー権限でマシン上でコードを実行するコンテンツと、Claudeのコンテキストに指示として入るコンテンツを含むことができるため、[インストール前にプラグインをレビューしてください](#review-a-plugin-before-you-install)。インストール済みプラグインが実行できることは以下の通りです:29プラグインはユーザー権限でマシン上でコードを実行するコンテンツと、Claudeのコンテキストに指示として入るコンテンツを含むことができるため、[インストール前にプラグインをレビューしてください](#review-a-plugin-before-you-install)。インストール済みプラグインが実行できることは以下の通りです:

30 30 

31* **Hooks**:プラグインの[hooks](/docs/ja/hooks)はClaudeコードのライフサイクルの特定の時点(ツール呼び出しの前後など)でシェルコマンドとして実行されます。31* **Hooks**:プラグインの[hooks](/docs/ja/hooks)はClaudeコードのライフサイクルの特定の時点(ツール呼び出しの前後など)でシェルコマンドとして実行されます。

32* **Mods**:プラグインの [mod](/docs/ja/plugins/mods/overview) は Claude Code 内で JavaScript を実行し、あなたの権限を持ちます。インストール前に mod が何をするかを確認するには、[mod を信頼するかどうかを決定する](/docs/ja/plugins/mods/overview#decide-whether-to-trust-a-mod)を参照してください。

32* **MCPおよびLSPサーバー**:Claudeコードは有効なプラグインが宣言する[MCPサーバー](/docs/ja/mcp)に接続し、Claudeにそれらのツールを提供します。stdio MCPサーバーはClaudeコードがマシン上で開始するプロセスとして実行されます。Claudeコードはプラグインが宣言する言語サーバーも開始します。33* **MCPおよびLSPサーバー**:Claudeコードは有効なプラグインが宣言する[MCPサーバー](/docs/ja/mcp)に接続し、Claudeにそれらのツールを提供します。stdio MCPサーバーはClaudeコードがマシン上で開始するプロセスとして実行されます。Claudeコードはプラグインが宣言する言語サーバーも開始します。

33* **`bin/`ディレクトリ**:Claudeコードは有効な各プラグインの`bin/`ディレクトリをBashツールのシェルの`PATH`に追加するため、Claudeのバッシュコマンドはそこの任意の実行可能ファイルを実行できます。34* **`bin/`ディレクトリ**:Claudeコードは有効な各プラグインの`bin/`ディレクトリをBashツールのシェルの`PATH`に追加するため、Claudeのバッシュコマンドはそこの任意の実行可能ファイルを実行できます。

34* **Skills、commands、およびagents**:これらはClaudeのコンテキストに指示として入るため、Claudeが既に持っているツールで何をするかに影響します。35* **Skills、commands、およびagents**:これらはClaudeのコンテキストに指示として入るため、Claudeが既に持っているツールで何をするかに影響します。


37Claudeコードの[権限ルール](/docs/ja/permissions)と[サンドボックス](/docs/ja/sandboxing)はClaudeが行うツール呼び出しをカバーしており、プラグイン自体が実行するコードはカバーしていません:38Claudeコードの[権限ルール](/docs/ja/permissions)と[サンドボックス](/docs/ja/sandboxing)はClaudeが行うツール呼び出しをカバーしており、プラグイン自体が実行するコードはカバーしていません:

38 39 

39* **Hooksおよびサーバープロセス**:コマンドhooksはフルユーザー権限でシェルコマンドを実行します。ClaudeコードはhooksとMCPサーバーをサンドボックスの外で実行します。40* **Hooksおよびサーバープロセス**:コマンドhooksはフルユーザー権限でシェルコマンドを実行します。ClaudeコードはhooksとMCPサーバーをサンドボックスの外で実行します。

40* **Claudeのツール呼び出し**:プラグインのMCPツールへの呼び出し、およびプラグインの`bin/`から実行可能ファイルを実行するBashコマンドはツール呼び出しであるため、権限ルールが適用されます。41* **Claude のツール呼び出し**:プラグインの MCP ツールへの呼び出し、およびプラグインの `bin/` から実行可能ファイルを実行する Bash コマンドはツール呼び出しであるため、権限ルールが適用されます。mod が何をできるかについては、[mod を信頼するかどうかを決定する](/docs/ja/plugins/mods/overview#decide-whether-to-trust-a-mod)を参照してください。

41 42 

42プラグインをインストールするとそれも有効になります。ただし、そのマニフェストまたはマーケットプレイスエントリが[`defaultEnabled: false`](/docs/ja/plugins/install#choose-an-install-scope)を設定しており、自分で有効にしていない場合を除きます。43プラグインをインストールするとそれも有効になります。ただし、そのマニフェストまたはマーケットプレイスエントリが[`defaultEnabled: false`](/docs/ja/plugins/install#choose-an-install-scope)を設定しており、自分で有効にしていない場合を除きます。

43 44 

Details

201 201 

202成功した追加は `Successfully added marketplace: <name>` を出力します。202成功した追加は `Successfully added marketplace: <name>` を出力します。

203 203 

204<h3 id="invalid-git-url">

205 `Invalid git URL`

206</h3>

207 

208マーケットプレイスを追加したか、プラグインをインストールしたか、git アドレスから更新を実行し、コマンドが `Invalid git URL` で失敗しました。

209 

210Claude Code は git アドレスを実行する前にすべてのチェックを行います。サポートしていないプロトコルを持つアドレスを拒否します。また、git がアドレスが示すものとは異なるサーバーまたはフォルダに名前を付けるとして読むことができるアドレスも拒否します。

211 

212アドレスの後のテキストは、変更する内容を名前付けします。メッセージが言うようにアドレスを書き直し、コマンドを再度実行してください。

213 

214代わりに `is blocked by enterprise policy` と言う拒否は、組織の設定から来ています。[マーケットプレイスソースはエンタープライズポリシーによってブロックされています](#marketplace-source-is-blocked-by-enterprise-policy)を参照してください。

215 

204<h3 id="path-does-not-exist">216<h3 id="path-does-not-exist">

205 `Path does not exist: <path>`217 `Path does not exist: <path>`

206</h3>218</h3>


410 422 

411シェルで `claude plugin install` は別のメッセージを出力します。ターゲットスコープで既にインストールされているプラグインの場合、`Plugin "<name>@<marketplace>" is already installed (scope: user)` を出力して終了 0 で終了します。キャッシュディレクトリが見つからない場合、同じコマンドは再度ダウンロードします。423シェルで `claude plugin install` は別のメッセージを出力します。ターゲットスコープで既にインストールされているプラグインの場合、`Plugin "<name>@<marketplace>" is already installed (scope: user)` を出力して終了 0 で終了します。キャッシュディレクトリが見つからない場合、同じコマンドは再度ダウンロードします。

412 424 

425<h3 id="plugin-would-share-its-folder">

426 `"<plugin>" was not installed: it would share its folder with "<other>"`

427</h3>

428 

429`claude plugin install`、`/plugin`、またはセッション内のインストール提案を通じてプラグインをインストールし、Claude Code はこの行で拒否しました。または、`would share its saved data with` で拒否しました。

430 

431拒否されたプラグインの id と、インストールされたプラグインの id はディスク上の同じフォルダにマップされます。`.` と `@` が `-` として書き込まれると、それらは同じです。macOS と Windows では、大文字のみが異なる id も同じフォルダにマップされます。両方をインストールすると、1 つのプラグインのファイルが他のプラグインのフォルダに入るため、Claude Code は拒否し、インストールされたプラグインはそのファイルを保持します。

432 

433メッセージは方法を名前付けします:

434 

435* **他のプラグインがインストールされている**:メッセージは `Only one of the two can be installed.` と言い、`claude plugin uninstall` コマンド、または `/plugin` のアンインストール手順を名前付けします。それを実行し、再度インストールしてください。アンインストールが削除するものについては、[アンインストールが削除して保持するもの](/docs/ja/plugins/cli-reference#what-an-uninstall-deletes-and-keeps)を参照してください。

436* **両方の id が 1 つのインストールで到着する**。例えば、プラグインとそれが必要とする依存関係:インストール順序は役に立ちません。マーケットプレイスの 2 つのプラグインをリストしている保守者のみが、それらの 1 つの名前を変更することで修正できます。2 つが異なるマーケットプレイスから来る場合、どちらかの保守者が修正できます。

437 

413<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">438<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

414 `This plugin uses a source type your Claude Code version does not support`439 `This plugin uses a source type your Claude Code version does not support`

415</h3>440</h3>


790* **`URL is unset or invalid`**: URL が使用する `${user_config.*}` オプションが設定されていません。`/plugin configure <plugin>` を実行して設定してください815* **`URL is unset or invalid`**: URL が使用する `${user_config.*}` オプションが設定されていません。`/plugin configure <plugin>` を実行して設定してください

791* **`has an invalid MCP url`** または **`headersHelper for MCP server '<server>' references ${user_config.*}`**: プラグイン自体の設定に問題があります。プラグインの MCP 設定で `url` または `headersHelper` を修正するか、プラグインがあなたのものでない場合はプラグインの作成者に報告してください。`headersHelper` の場合は、[プラグイン コマンドが user\_config を参照](/docs/ja/errors#plugin-command-references-user-config) の下に独自のエントリがあります816* **`has an invalid MCP url`** または **`headersHelper for MCP server '<server>' references ${user_config.*}`**: プラグイン自体の設定に問題があります。プラグインの MCP 設定で `url` または `headersHelper` を修正するか、プラグインがあなたのものでない場合はプラグインの作成者に報告してください。`headersHelper` の場合は、[プラグイン コマンドが user\_config を参照](/docs/ja/errors#plugin-command-references-user-config) の下に独自のエントリがあります

792 817 

818<h4 id="bundled-mcp-server-name-was-not-started-it-needs-configuration">

819 `Bundled MCP server "<name>" was not started: it needs configuration`

820</h4>

821 

822プラグインは、サーバーを [MCPB バンドル](/docs/ja/plugins/components#include-a-packaged-mcpb-server) として含めており、`user_config` を宣言し、必須の設定に保存された値がないか、保存された値がバンドル自体の検証に失敗しているため、Claude Code はサーバーの起動をスキップします。プラグインの残りは機能します。

823 

824`/plugin` の **Installed** タブでプラグインを選択し、**Configure** を選択して値を指定してください。保存した後、`/plugin` は `Configuration saved.` を表示して閉じ、Claude Code は [インストール済みプラグインの管理](/docs/ja/plugins/install#manage-installed-plugins) の下で説明されているようにプラグインをリロードします。そのリロードが適用されると、サーバーが起動します。v2.1.285 より前では、Claude Code はこの行を表示せずにサーバーをスキップしました。

825 

793<h4 id="server-is-configured-but-never-connects">826<h4 id="server-is-configured-but-never-connects">

794 サーバーが設定されているが接続しない827 サーバーが設定されているが接続しない

795</h4>828</h4>


841ワークスペース用に設定されていない言語サーバーは、内部パッケージの未解決のインポートを報告できます。Claude Code 側で修正するものはなく、診断は Claude がコードを編集するのを止めません。874ワークスペース用に設定されていない言語サーバーは、内部パッケージの未解決のインポートを報告できます。Claude Code 側で修正するものはなく、診断は Claude がコードを編集するのを止めません。

842 875 

843<h2 id="build-a-plugin">876<h2 id="build-a-plugin">

844 プラグインを構築877 プラグインを構築する

845</h2>878</h2>

846 879 

847プラグインを開発し、`--plugin-dir` で読み込むか、ローカルマーケットプレイスからインストールしています。これらのエントリはプラグインを開発している間に発生する失敗をカバーしています。各変更後にチェックを実行するには、[テストとデバッグ](/docs/ja/plugins/create#test-and-debug)を参照してください。880`--plugin-dir` でプラグインを読み込むか、ローカルマーケットプレイスからインストールしてプラグインを開発しています。これらのエントリは、プラグイン開発中に発生する障害をカバーしています。各変更後にチェックを実行するには、[テストとデバッグ](/docs/ja/plugins/create#test-and-debug) を参照してください。

848 881 

849プラグインのユーザーにも到達する 2 つの失敗は[プラグインがインストールされているが機能していない](#plugin-installed-but-not-working)の下にエントリを持っています:882プラグインのユーザーにも到達する 2 つの障害は、[プラグインがインストールされているが機能していない](#plugin-installed-but-not-working) の下にエントリがあります。

850 883 

851* **発火しないフック**:[発火しないフック](#failed-to-load-hooks-from-and-hooks-that-dont-fire)を参照してください884* **発火しないフック**: [発火しないフック](#failed-to-load-hooks-from-and-hooks-that-dont-fire) を参照してください

852* **開始しない MCP サーバー**:[開始しない MCP サーバー](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)を参照してください885* **起動しない MCP サーバー**: [起動しない MCP サーバー](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start) を参照してください

853 886 

854<h3 id="commands-path-not-found">887<h3 id="commands-path-not-found">

855 `commands path not found: <path>`888 `commands path not found: <path>`

856</h3>889</h3>

857 890 

858**Errors** タブは `commands path not found: <absolute path>` をガイダンス `Check that the path in your manifest or marketplace config is correct` で表示します。同じメッセージは `skills`、`agents`、`hooks` に対して表示されます。891**Errors** タブに `commands path not found: <absolute path>` が表示され、ガイダンスとして「マニフェストまたはマーケットプレイス設定のパスが正しいことを確認してください」と表示されます。同じメッセージは `skills`、`agents`、`hooks` に対しても表示されます。

859 892 

860Claude Code はマニフェストまたはマーケットプレイスエントリからパスをプラグインルートに対して解決し、そこに何も見つかりませんでした。メッセージのパスは確認した絶対パスであるため、ディスク上のものと比較してください。パスを修正するか、ディレクトリを作成し、`/reload-plugins` を実行してください。893Claude Code は `plugin.json` またはマーケットプレイスエントリからのパスをプラグインルートに対して解決し、そこに何も見つかりませんでした。メッセージ内のパスはチェックした絶対パスなので、ディスク上の内容と比較してください。パスを修正するか、ディレクトリを作成してから `/reload-plugins` を実行してください。

861 894 

862マニフェストのパスはプラグインルートに対して相対的で、`./` で始まります。プラグインルートの外側に解決されるパスは、代わりに `<component> path escapes plugin directory` として報告され、ドロップされます。895マニフェスト内のパスはプラグインルートに相対的で、`./` で始まります。プラグインルートの外に解決されるパスは、代わりに `<component> path escapes plugin directory` として報告され、削除されます。

863 896 

864<h3 id="plugin-dir-loads-a-plugin-with-no-components">897<h3 id="plugin-dir-loads-a-plugin-with-no-components">

865 `--plugin-dir` をマーケットプレイスルートで実行しても、`plugins/` の下のプラグインを読み込まない898 `--plugin-dir` がマーケットプレイスルートにあると `plugins/` の下のプラグインが読み込まれない

866</h3>899</h3>

867 900 

868`claude --plugin-dir <path>` を開始し、エラーは表示されませんが、プラグインのスキル、エージェント、フックはありません。901`claude --plugin-dir <path>` を開始し、エラーは表示されませんが、プラグインのスキル、エージェント、フックが表示されません。

869 902 

870`--plugin-dir` はプラグインのルートディレクトリを取得します。`.claude-plugin/plugin.json` と `skills/` などのコンポーネントディレクトリを含むディレクトリです。代わりにマーケットプレイスルートを指すと、Claude Code は `marketplace.json` を読み込まないため、`plugins/` の下のプラグインは読み込まれず、エラーは表示されません。v2.1.281 より前では、Claude Code はマーケットプレイスルートを、そのディレクトリにちなんで名前が付けられた 1 つの空のプラグインとして読み込みました。フラグをプラグインディレクトリ自体に指してください:903`--plugin-dir` はプラグインのルートディレクトリ(`.claude-plugin/plugin.json` と `skills/` などのコンポーネントディレクトリを含むディレクトリ)を取ります。代わりにマーケットプレイスルートを指定すると、Claude Code は `marketplace.json` を読まないため、`plugins/` の下のプラグインは読み込まれず、エラーは表示されません。v2.1.281 より前では、Claude Code はマーケットプレイスルートをそのディレクトリにちなんだ名前の 1 つの空のプラグインとして読み込みました。フラグをプラグインディレクトリ自体に指定してください。

871 904 

872```shell theme={null}905```shell theme={null}

873claude --plugin-dir ./my-marketplace/plugins/my-plugin906claude --plugin-dir ./my-marketplace/plugins/my-plugin

874```907```

875 908 

876次に、`/plugin` で **Installed** を開き、プラグインの詳細ペインを開きます。これはそのコンポーネントをリストします。909その後、`/plugin` で **Installed** を開き、プラグインの詳細ペインでそのコンポーネントを一覧表示します。

877 910 

878<h3 id="files-the-plugin-references-outside-its-directory-arent-found">911<h3 id="files-the-plugin-references-outside-its-directory-arent-found">

879 プラグインがそのディレクトリの外側で参照するファイルが見つからない912 プラグインがそのディレクトリの外で参照するファイルが見つからない

880</h3>913</h3>

881 914 

882プラグインはソースディレクトリで `--plugin-dir` で機能しますが、インストール後に失敗し、`../shared-utils` などのパスについてのエラーが表示されます。915プラグインは `--plugin-dir` でソースディレクトリから機能しますが、インストール後に `../shared-utils` などのパスに関するエラーで失敗します。

883 916 

884Claude Code はインストールされたプラグインをキャッシュにコピーし、そこから読み込むため、プラグイン自体のディレクトリの外側に到達するパスはキャッシュで何も指しません。共有ファイルをプラグインディレクトリ内に移動するか、それを通じて参照してください。キャッシュがどこにあるか、パスがどのように解決されるかについては、[ディスク上のプラグインを見つける](/docs/ja/plugins/loading#find-plugins-on-disk)を参照してください。917Claude Code はインストール済みプラグインをキャッシュにコピーし、そこから読み込むため、プラグイン自体のディレクトリの外に到達するパスはキャッシュ内で何も指しません。共有ファイルをプラグインディレクトリ内に移動するか、その中のシンボリックリンクを通じて参照してください。キャッシュの場所とパスの解決方法については、[ディスク上のプラグインを検索](/docs/ja/plugins/loading#find-plugins-on-disk) を参照してください。

885 918 

886<h3 id="claude-plugin-root-shows-forward-slashes-on-windows">919<h3 id="claude-plugin-root-shows-forward-slashes-on-windows">

887 `${CLAUDE_PLUGIN_ROOT}` は Windows でスラッシュを前方に表示920 `${CLAUDE_PLUGIN_ROOT}` が Windows で前方スラッシュを表示する

888</h3>921</h3>

889 922 

890Windows では、プラグインフックは `${CLAUDE_PLUGIN_ROOT}` を `C:/Users/you/...` として受け取り、バックスラッシュを期待していたスクリプトが壊れます。923Windows では、プラグインフックが `${CLAUDE_PLUGIN_ROOT}` を `C:\Users\you\...` ではなく `C:/Users/you/...` として受け取り、バックスラッシュを期待するスクリプトが破損します。

891 924 

892Claude Code は Windows で Git Bash を通じてシェル形式のフックを実行し、目的上、プラグインルートを前方スラッシュ Win32 形式で置き換えます。Bash ビルトイン、MSYS ツール、ネイティブ Windows バイナリはすべてその形式を受け入れます。925Claude Code は Windows 上でシェル形式のフックを Git Bash を通じて実行し、意図的にプラグインルートを前方スラッシュ Win32 形式で置換します。Bash ビルトイン、MSYS ツール、ネイティブ Windows バイナリはすべてその形式を受け入れます。

893 926 

894スクリプトがバックスラッシュを必要とする場合は、[exec 形式とシェル形式](/docs/ja/hooks#exec-form-and-shell-form)で説明されているネイティブパスを保持する形式の 1 つに切り替えてください:927スクリプトがバックスラッシュを必要とする場合は、フックを [exec 形式とシェル形式](/docs/ja/hooks#exec-form-and-shell-form) の下で説明されているネイティブパスを保持する形式の 1 つに切り替えてください。

895 928 

896* exec 形式フック。`args` 配列でプロセスを直接生成します929* プロセスを `args` 配列で直接生成する exec 形式フック

897* `"shell": "powershell"` を持つフック930* `"shell": "powershell"` を持つフック

898 931 

899<h3 id="plugin-loads-but-its-skills-are-missing">932<h3 id="plugin-loads-but-its-skills-are-missing">

900 プラグインが読み込まれるがそのスキルが見つからない933 プラグインは読み込まれるがスキルが見つからない

901</h3>934</h3>

902 935 

903プラグインは **Installed** の下にエラーなくリストされていますが、`/` を入力するときにそのスキルは提供されません。936プラグインは **Installed** の下にエラーなしで一覧表示されていますが、`/` を入力してもスキルが提供されません。

904 937 

905スキルはプラグインルートの `skills/` から読み込まれ、コマンドはプラグインルートの `commands/` から読み込まれます。`.claude-plugin/plugin.json` のみが `.claude-plugin/` 内に属し、`.claude-plugin/` 内の `skills/` ディレクトリはスキャンされません。ディレクトリをプラグインルートに移動し、`/reload-plugins` を実行してください。その後、`/plugin` のプラグインの詳細ペインはスキルをリストし、`/` を入力するとそれらが提供されます。938スキルはプラグインルートの `skills/` から読み込まれ、コマンドはプラグインルートの `commands/` から読み込まれます。`.claude-plugin/` の中には `plugin.json` だけが属し、`.claude-plugin/` 内の `skills/` ディレクトリはスキャンされません。ディレクトリをプラグインルートに移動し、`/reload-plugins` を実行してください。その後、`/plugin` のプラグイン詳細ペインにスキルが一覧表示され、`/` を入力するとそれらが提供されます。

906 939 

907各スキルは `SKILL.md` を含むディレクトリです。`SKILL.md` ファイルではなくそのディレクトリを指すマニフェストの `skills` エントリは、`path is a file; skills entries must be directories containing SKILL.md` として報告されます。940各スキルは `SKILL.md` を含むディレクトリです。`SKILL.md` ファイルではなくそのディレクトリを指すマニフェスト内の `skills` エントリは、`path is a file; skills entries must be directories containing SKILL.md` として報告されます。

908 941 

909<h3 id="skill-loads-but-claude-never-invokes-the-skill">942<h3 id="skill-loads-but-claude-never-invokes-the-skill">

910 スキルが読み込まれるが Claude は決してスキルを呼び出さない943 スキルは読み込まれるが Claude がスキルを呼び出さない

911</h3>944</h3>

912 945 

913プラグインのスキルは `/<plugin>:<skill>` コマンドを入力するときに実行されますが、Claude は平文のリクエストに応じてそれを呼び出しません。946プラグインのスキルは `/<plugin>:<skill>` コマンドを入力すると実行されますが、Claude は通常のリクエストに応じてそれを呼び出しません。

914 947 

915これらの原因を順番に確認してください:948これらの原因を順番にチェックしてください。

916 949 

917* **スキルが `disable-model-invocation: true` を設定**:そのフィールドが設定されている場合、あなただけがスキルを呼び出すことができます。[最初のプラグインを作成](/docs/ja/plugins/create#create-your-first-plugin)のテンプレートスキルはそれを設定します。Claude に独自に呼び出させたいスキルから行を削除してください。[スキルを呼び出す人を制御](/docs/ja/skills#control-who-invokes-a-skill)はフィールドをカバーしています950* **スキルが `disable-model-invocation: true` を設定している**: そのフィールドが設定されている場合、スキルを呼び出すことができるのはあなただけです。[最初のプラグインを作成](/docs/ja/plugins/create#create-your-first-plugin) のテンプレートスキルがそれを設定しています。Claude が独自にスキルを呼び出すようにしたい場合は、スキルからその行を削除してください。[スキルを呼び出すユーザーを制御](/docs/ja/skills#control-who-invokes-a-skill) がそのフィールドをカバーしています

918* **説明は人々がどのように尋ねるかと一致しない**:[スキルがトリガーされない](/docs/ja/skills#skill-not-triggering)のチェックを実行してください951* **説明が人々の質問方法と一致していない**: [スキルがトリガーされていない](/docs/ja/skills#skill-not-triggering) のチェックを実行してください

919* **説明が切り詰められている**:多くのスキルがインストールされている場合、Claude Code は説明を短縮してリストの文字予算に合わせます。これは Claude が要求と一致するために必要なキーワードを削除できます。[スキルの説明が短くカットされている](/docs/ja/skills#skill-descriptions-are-cut-short)を参照してください952* **説明が切り詰められている**: 多くのスキルがインストールされている場合、Claude Code は説明を短縮してリストの文字予算に合わせます。これにより、Claude がリクエストを一致させるために必要なキーワードが削除される可能性があります。[スキルの説明が短く切り詰められている](/docs/ja/skills#skill-descriptions-are-cut-short) を参照してください

920 953 

9211 つずつチェックするのではなく、現実的なプロンプト全体でスキルがどのくらい頻繁にトリガーされるかを測定するには、[`tool_used: Skill` グレーダー](/docs/ja/plugin-evals#create-your-first-eval-suite)を使用して eval ケースを書き、各説明変更後に `claude plugin eval` で実行してください。9541 つずつチェックするのではなく、現実的なプロンプト全体でスキルがどのくらいの頻度でトリガーされるかを測定するには、[`tool_used: Skill` グレーダー](/docs/ja/plugin-evals#create-your-first-eval-suite) を使用して eval ケースを作成し、各説明変更後に `claude plugin eval` で実行してください。

922 955 

923<h3 id="is-not-a-plugin-or-skill-folder">956<h3 id="is-not-a-plugin-or-skill-folder">

924 `claude plugin eval init` から `<directory> is not a plugin or skill folder`957 `claude plugin eval init` から `<directory> is not a plugin or skill folder`

925</h3>958</h3>

926 959 

927プラグインのルートではないディレクトリから `claude plugin eval init` を実行しました。例えば、ホームディレクトリまたはプラグインをサブディレクトリに保つリポジトリのルート。`init` は作業ディレクトリの下にスイートを書き込むため、プラグインが決して見ないであろう `evals/` ディレクトリを作成する代わりに停止します。960プラグインのルートではないディレクトリ(ホームディレクトリやプラグインをサブディレクトリに保持するリポジトリのルートなど)から `claude plugin eval init` を実行しました。`init` はワーキングディレクトリの下にスイートを書き込むため、プラグインが見ることのない `evals/` ディレクトリを作成する代わりに停止します。

928 961 

929プラグインのルート、`.claude-plugin/plugin.json` またはスキルの `SKILL.md` を保持するディレクトリに変更し、コマンドを再度実行してください。目的上、スイートを別の場所にスキャフォールドするには、`--eval-dir` を渡してください。[eval でプラグインをテスト](/docs/ja/plugin-evals)を参照してください。962プラグインのルート(`.claude-plugin/plugin.json` またはスキルの `SKILL.md` を保持するディレクトリ)に変更し、コマンドを再度実行してください。意図的に別の場所にスイートをスキャフォールドするには、`--eval-dir` を渡してください。[プラグインを eval でテスト](/docs/ja/plugin-evals) を参照してください。

930 963 

931<h3 id="the-userconfig-dialog-never-appears">964<h3 id="the-userconfig-dialog-never-appears">

932 `userConfig` ダイアログが決して表示されない965 `userConfig` ダイアログが表示されない

933</h3>966</h3>

934 967 

935プラグインは `userConfig` オプションを宣言しますが、インストール時に設定ダイアログが表示されません。968プラグインが `userConfig` オプションを宣言していますが、インストール時に設定ダイアログが表示されません。

936 969 

937インタラクティブインストールはダイアログを表示し、シェルコマンドは代わりに値をフラグとして取得します:970インストールが値を要求するかどうかは、実行する場所によって異なります。

938 971 

939* **セッションで `/plugin install`、または `/plugin` の Discover タブ**:ダイアログはこのインタラクティブインストールの一部です972* **セッション内の `/plugin install`、または `/plugin` の Discover タブ**: ダイアログはこのインタラクティブインストールの一部です

940* **シェルで `claude plugin install`**:`userConfig` 値を要求しません。渡す `--config KEY=VALUE` 値を保存し、オプションが設定されたままの場合、`N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` を出力します。設定されていないオプションが必須の場合、`(M required)` は `not yet set` に従います。973* **VS Code 拡張機能の Manage plugins ダイアログ**: インストール後に未設定オプションのフォームを要求します。v2.1.285 より前では、そこでのインストールはオプションフォームを表示しなかったため、ターミナルセッションから `/plugin configure <plugin>@<marketplace>` で値を設定してください

974* **シェルの `claude plugin install`**: `userConfig` 値を要求しません。渡す `--config KEY=VALUE` 値を保存し、オプションが未設定のままの場合、`N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` と出力します。未設定オプションのいずれかが必須の場合、`(M required)` が `not yet set` に続きます。

941 975 

942シェルからインストールした場合は、`--config` で値を渡してください。オプションごとに 1 つのフラグ:976シェルからインストールした場合は、`--config` で値を渡し、オプションごとに 1 つのフラグを使用してください。

943 977 

944```shell theme={null}978```shell theme={null}

945claude plugin install my-plugin@my-marketplace --config api_url=https://example.com979claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

946```980```

947 981 

948すべてのオプションが設定されている場合、インストール出力は `not yet set` 行を運びません。代わりに後でダイアログを開くには、セッションで `/plugin configure my-plugin@my-marketplace` を実行してください。982すべてのオプションが設定されている場合、インストール出力に `not yet set` 行は含まれません。

983 

984代わりに後でダイアログを開くには、セッション内で `/plugin configure my-plugin@my-marketplace` を実行してください。シェルから、[`claude plugin configure`](/docs/ja/plugins/cli-reference#plugin-configure) は、どのオプションがまだ未設定であるかを示し、stdin でパイプされた値を保存します。Claude Code v2.1.285 以降が必要です。

949 985 

950マニフェストが宣言しない `--config` キーを渡す場合、プラグインはまだインストールされ、コマンドは `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` を出力し、その後にプラグインが宣言するキーが続きます。986マニフェストが宣言しない `--config` キーを渡す場合、プラグインはまだインストールされ、コマンドは `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` を出力し、その後にプラグインが宣言するキーが続きます。

951 987 

988[MCPB バンドルファイル](/docs/ja/plugins/components#include-a-packaged-mcpb-server) を配布するプラグインの場合、独自の `user_config` を宣言すると、メッセージは代わりに `isn't declared in this plugin's userConfig or by its bundled MCP servers.` と読み、既知のキーにはそのサーバーのキー(`<server>.<key>` として記述)が含まれます。マニフェストが URL で参照するバンドルはインストール時に読み込まれないため、そのキーは一覧表示されず、メッセージは `/plugin` で設定するよう指示します。`<server>.<key>` キーの設定には Claude Code v2.1.285 以降が必要です。

989 

952<h3 id="claude-plugin-validate-reports-errors">990<h3 id="claude-plugin-validate-reports-errors">

953 `claude plugin validate` がエラーを報告991 `claude plugin validate` がエラーを報告する

954</h3>992</h3>

955 993 

956`claude plugin validate <path>` を実行するか、セッションで `/plugin validate <path>` を実行し、`Found N errors` と `Validation failed` を出力し、コード 1 で終了しました。994`claude plugin validate <path>` を実行するか、セッション内で `/plugin validate <path>` を実行し、`Found N errors` と `Validation failed` を出力してから、終了コード 1 で終了しました。

957 995 

958バリデーターは渡したパスのマニフェストを読み込みます:プラグインディレクトリの `.claude-plugin/plugin.json`、またはマーケットプレイスディレクトリの `.claude-plugin/marketplace.json`。マーケットプレイスの場合、エントリ自体のマニフェストの問題にエントリインデックスをプレフィックスします。例えば、`plugins[1] plugin.json → json: ...`。996バリデーターは、指定したパスのマニフェストを読み込みます。プラグインディレクトリの場合は `.claude-plugin/plugin.json`、マーケットプレイスディレクトリの場合は `.claude-plugin/marketplace.json`。マーケットプレイスの場合、エントリ自体のマニフェスト内の問題にはエントリインデックスをプレフィックスとして付け、`plugins[1] plugin.json → json: ...` として表示します。

959 997 

960表は検証を停止するメッセージと 2 つの警告 `No frontmatter block found` と `Unknown field '<key>'` をカバーしています。これらは `--strict` を渡すときのみ停止します。説明の欠落など、他の警告はリストされていません。998テーブルは検証を停止するメッセージと 2 つの警告(`No frontmatter block found` と `Unknown field '<key>'`)をカバーしており、`--strict` を渡す場合にのみ検証を停止します。説明の欠落など、その他の警告は一覧表示されません。

961 999 

962| メッセージ | 原因 | 修正 |1000| メッセージ | 原因 | 修正 |

963| :- | :- | :- |1001| :- | :- | :- |

964| `File not found: <path>` | パスにマニフェストがないか、存在しません。 | プラグインまたはマーケットプレイスルートに対してコマンドを実行してください。`.claude-plugin/` を含むディレクトリです。 |1002| `File not found: <path>` | パスにマニフェストがないか、存在しません。 | プラグインまたはマーケットプレイスルート(`.claude-plugin/` を含むディレクトリ)に対してコマンドを実行してください。 |

965| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | ディレクトリに `.claude-plugin/` マニフェストがありません。 | マニフェストを作成するか、正しいディレクトリを指してください。 |1003| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | ディレクトリに `.claude-plugin/` マニフェストがありません。 | マニフェストを作成するか、正しいディレクトリを指定してください。 |

966| `Invalid JSON syntax: <parse error>` | マニフェストまたは `hooks/hooks.json` は有効な JSON ではありません。 | JSON を修正してください。`hooks/hooks.json` を修正するまで、セッションはそのファイルのフックなしでプラグインを読み込みます。 |1004| `Invalid JSON syntax: <parse error>` | マニフェストまたは `hooks/hooks.json` が有効な JSON ではありません。 | JSON を修正してください。`hooks/hooks.json` を修正するまで、セッションはそのファイル内のフックなしでプラグインを読み込みます。 |

967| `Path not found: <path>. The runtime loader will report this as a load failure.` | マニフェストのコンポーネントパスが存在しません。 | パスを修正するか、ディレクトリを作成してください。 |1005| `Path not found: <path>. The runtime loader will report this as a load failure.` | マニフェスト内のコンポーネントパスが存在しません。 | パスを修正するか、ディレクトリを作成してください。 |

968| `Path contains ".." which could be a path traversal attempt: <path>` | コンポーネントパスはプラグインディレクトリをエスケープします。 | プラグインルート内のパスを使用してください。 |1006| `Path contains ".." which could be a path traversal attempt: <path>` | コンポーネントパスがプラグインディレクトリをエスケープします。 | プラグインルート内のパスを使用してください。 |

969| `Path is a file; skills entries must be directories containing SKILL.md` | `skills` エントリは `SKILL.md` ではなくそのディレクトリを指しています。 | 親ディレクトリを指してください。またはルートレベルの `SKILL.md` の場合は `.`。 |1007| `Path is a file; skills entries must be directories containing SKILL.md` | `skills` エントリが `SKILL.md` ではなくそのディレクトリを指しています。 | 親ディレクトリ、またはルートレベルの `SKILL.md` の場合は `.` を指してください。 |

970| `No frontmatter block found` または `YAML frontmatter failed to parse: <error>` | スキル、エージェント、またはコマンドファイルに不足しているか無効な YAML frontmatter があります。 | `---` デリミタ間に frontmatter を追加または修正してください。プラグインディレクトリを検証するときに報告されます。 |1008| `No frontmatter block found` または `YAML frontmatter failed to parse: <error>` | スキル、エージェント、またはコマンドファイルに YAML frontmatter がないか、無効です。 | `---` デリミタ間に frontmatter を追加または修正してください。プラグインディレクトリを検証するときに報告されます。 |

971| `Unknown field '<key>'` | マニフェストにスキーマが定義しないフィールドがあります。 | それを削除するか、メッセージが提案する名前を使用してください。Claude Code は読み込み時に不明なフィールドを無視します。 |1009| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | プラグインの `name` は [予約名](/docs/ja/plugins/manifest-reference#name) の 1 つです。 | プラグインが何をするかに基づいてプラグインの名前を変更してください。 |

1010| `Unknown field '<key>'` | マニフェストにスキーマが定義していないフィールドがあります。 | それを削除するか、メッセージが提案する名前を使用してください。Claude Code は読み込み時に未知のフィールドを無視します。 |

972 1011 

973各修正後にコマンドを再度実行して、エラーが出力されなくなるまで実行してください。1012各修正後にコマンドを再度実行し、エラーが出力されなくなるまで続けてください。

974 1013 

975`plugin.json` フィールドは[マニフェストリファレンス](/docs/ja/plugins/manifest-reference)にあり、マーケットプレイスレベルのメッセージは[マーケットプレイス検証エラー](#marketplace-validation-errors)の下にあります。1014`plugin.json` フィールドは [マニフェストリファレンス](/docs/ja/plugins/manifest-reference) にあり、マーケットプレイスレベルのメッセージは [マーケットプレイス検証エラー](#marketplace-validation-errors) の下にあります。

976 1015 

977<h3 id="plugin-has-conflicting-manifests">1016<h3 id="plugin-has-conflicting-manifests">

978 `Plugin <name> has conflicting manifests`1017 `Plugin <name> has conflicting manifests`

979</h3>1018</h3>

980 1019 

981プラグインは `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.` で読み込みに失敗します。1020プラグインが `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.` で読み込みに失敗します。

982 1021 

983プラグインは独自の `plugin.json` を持ち、そのマーケットプレイスエントリは `strict: false` を設定しながら、`commands`、`agents`、`skills`、`hooks`、`outputStyles`、または `themes` のいずれかを宣言しています。エントリからそれらのフィールドを削除するか、エントリで `strict: true` を設定して、Claude Code がそれらを `plugin.json` に追加するようにしてください。[厳密モード](/docs/ja/plugins/marketplace-reference#strict-mode)を参照してください。1022プラグインには独自の `plugin.json` があり、そのマーケットプレイスエントリは `strict: false` を設定しながら、`commands`、`agents`、`skills`、`hooks`、`outputStyles`、または `themes` のいずれかを宣言しています。エントリからこれらのフィールドを削除するか、エントリで `strict: true` を設定して、Claude Code がそれらを `plugin.json` に追加するようにしてください。[Strict モード](/docs/ja/plugins/marketplace-reference#strict-mode) を参照してください。

984 1023 

985<h3 id="warning-no-commands-found-in-plugin-custom-directory">1024<h3 id="warning-no-commands-found-in-plugin-custom-directory">

986 `Warning: No commands found in plugin <name> custom directory`1025 `Warning: No commands found in plugin <name> custom directory`

987</h3>1026</h3>

988 1027 

989プラグインが読み込まれるとき、`claude --debug` ログは `~/.claude/debug/<session-id>.txt` で `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` を記録します。セッションまたは **Errors** タブに何も表示されません。1028プラグインが読み込まれると、`~/.claude/debug/<session-id>.txt` の `claude --debug` ログに `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` が記録されます。セッションまたは **Errors** タブには何も表示されません。

990 1029 

991マニフェストの `commands` パスは存在しますが、`.md` ファイルを保持せず、サブディレクトリに `SKILL.md` を保持しません。コマンドファイルを追加するか、マニフェストからパスを削除してください。1030マニフェスト内の `commands` パスは存在しますが、`.md` ファイルを保持していないか、サブディレクトリに `SKILL.md` がありません。コマンドファイルを追加するか、マニフェストからパスを削除してください。

992 1031 

993<h2 id="host-a-marketplace">1032<h2 id="host-a-marketplace">

994 マーケットプレイスをホスト1033 マーケットプレイスをホスト

Details

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 

86<Note>86<Note>

87 動的に選択された間隔と[組み込みメンテナンスプロンプト](#run-the-built-in-maintenance-prompt)はすべてのプロバイダーで機能し、[フィーチャーフラグ取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)がオフになっている場合でも機能します。Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry、または取得がオフになっている場合、両方とも Claude Code v2.1.248 以降が必要です。その場合、以前のバージョンでは、間隔なしのプロンプトは固定 10 分スケジュールで実行され、プロンプトなしの `/loop` は使用メッセージを出力します。87 動的に選択された間隔と[組み込みメンテナンスプロンプト](#run-the-built-in-maintenance-prompt)はすべてのプロバイダーで機能し、[フィーチャーフラグ取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)がオフになっている場合でも機能します。Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry、または取得がオフになっている場合、両方とも Claude Code v2.1.248 以降が必要です。

88</Note>88</Note>

89 89 

90<h3 id="run-the-built-in-maintenance-prompt">90<h3 id="run-the-built-in-maintenance-prompt">

Details

87ランナーは一度に 1 つのオーナーに対応します。ランナーが最初に取得するセッションはランナーをそのセッションのオーナーにロックし、ランナーはそのオーナーのセッションのみを実行し、設定容量まで実行します。オーナーが誰であるかは、セッションがどのように開始されたかによって異なります。87ランナーは一度に 1 つのオーナーに対応します。ランナーが最初に取得するセッションはランナーをそのセッションのオーナーにロックし、ランナーはそのオーナーのセッションのみを実行し、設定容量まで実行します。オーナーが誰であるかは、セッションがどのように開始されたかによって異なります。

88 88 

89* **ユーザーが開始するセッション**: オーナーはそのユーザーのアカウントです。89* **ユーザーが開始するセッション**: オーナーはそのユーザーのアカウントです。

90* **Claude Tag チャネルセッション**: Claude はそれらをユーザーアカウントなしで実行するため、オーナーはセッションを開始した[Claude Tag エージェント](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity)です。そのエージェントが開始するすべてのチャネルセッションは同じオーナーを持ち、Slack メッセージを送信した人です。そのため、`--capacity`が 1 より大きい場合、または正の`--drain-grace-sec`で実行する場合、ランナーはそれにロックされたセッションを提供し、異なる人が開始したセッションを実行します。ユーザーにロックされたランナーはこれらを取得しません。Claude Tag エージェントにロックされたランナーはユーザーのセッションを取得しません。90* **Claude Tag チャネルセッション**: Claude はそれらをユーザーアカウントなしで実行するため、オーナーはセッションを開始した[Claude Tag エージェント](https://claude.com/docs/claude-tag/concepts/glossary#agent-identity)です。そのエージェントが開始するすべてのチャネルセッションは同じオーナーを持ち、Slack メッセージを送信した人です。そのため、`--capacity`が 1 より大きい場合、または正の`--drain-grace-sec`で実行する場合、ランナーはそれにロックされたセッションを提供し、異なる人が開始したセッションを実行します。

91 91 

92したがって、最小フリートサイズは、一度にアクティブであると予想されるオーナーの数です。ユーザーと Claude Tag エージェントをカウントします。92したがって、最小フリートサイズは、一度にアクティブであると予想されるオーナーの数です。ユーザーと Claude Tag エージェントをカウントします。

93 93 

Details

163 管理ソース全体でのキー単位の例外163 管理ソース全体でのキー単位の例外

164</h3>164</h3>

165 165 

1663 つの種類のキーがマージなしルールの例外です。166これらのキーはマージなしルールの例外です。

167 167 

168* **クロスソースロックキー**:サンドボックスホワイトリストロックなど、[管理設定ページに記載されている](/docs/ja/managed-settings#precedence-within-the-managed-tier)小さなキーセット。Claude Code は、管理者が管理する管理ソースがそれらを設定する場合にそれらを尊重します。ユーザーが書き込み可能な HKCU レジストリ層は除外されます。168* **クロスソースロックキー**:サンドボックスホワイトリストロックなど、[管理設定ページに記載されている](/docs/ja/managed-settings#precedence-within-the-managed-tier)小さなキーセット。Claude Code は、管理者が管理する管理ソースがそれらを設定する場合にそれらを尊重します。ユーザーが書き込み可能な HKCU レジストリ層は除外されます。

169 169 


171* **`env` ブロック**:テレメトリユニットと認証情報キーとペアになったルーティング変数を除き、以下で説明するように、管理者が管理するソース全体でキーごとにマージされます。各環境変数について、それを定義する最優先ソースが優先され、下位の管理ソースは上位のソースが設定しない変数を埋めます。したがって、エンドポイント管理 `env` エントリは、サーバー管理構成がその変数を設定しない場合、またはキャッシュされたサーバー値が[サーバー確認待ちで保留中](#fetch-and-caching-behavior)の場合に適用されます。Claude Code v2.1.223 以降が必要です。v2.1.223 より前は、Claude Code は選択されたソースの全体 `env` ブロックのみを適用します。171* **`env` ブロック**:テレメトリユニットと認証情報キーとペアになったルーティング変数を除き、以下で説明するように、管理者が管理するソース全体でキーごとにマージされます。各環境変数について、それを定義する最優先ソースが優先され、下位の管理ソースは上位のソースが設定しない変数を埋めます。したがって、エンドポイント管理 `env` エントリは、サーバー管理構成がその変数を設定しない場合、またはキャッシュされたサーバー値が[サーバー確認待ちで保留中](#fetch-and-caching-behavior)の場合に適用されます。Claude Code v2.1.223 以降が必要です。v2.1.223 より前は、Claude Code は選択されたソースの全体 `env` ブロックのみを適用します。

172 * **テレメトリユニット**:`OTEL_EXPORTER_OTLP_*` エクスポーターキー、`OTEL_LOG_*` コンテンツキャプチャトグル、`OTEL_LOGS_EXPORTER`、およびベータトレーシング変数 `ENABLE_BETA_TRACING_DETAILED` と `BETA_TRACING_ENDPOINT` は、それらのいずれかを設定する最優先ソースをユニットとして従います。`otelHeadersHelper` 認証情報キーを配信するソースもユニットを要求しますが、これらの変数は選択されたソースである場合にのみ配置されます。選択されていないが、キーを配信するソースはそれらのいずれも提供せず、下位のソースがそれらを埋めるのをブロックします。いずれにせよ、1 つのソースからのエクスポーターエンドポイントは、別のソースからの認証情報とペアになることはできません。172 * **テレメトリユニット**:`OTEL_EXPORTER_OTLP_*` エクスポーターキー、`OTEL_LOG_*` コンテンツキャプチャトグル、`OTEL_LOGS_EXPORTER`、およびベータトレーシング変数 `ENABLE_BETA_TRACING_DETAILED` と `BETA_TRACING_ENDPOINT` は、それらのいずれかを設定する最優先ソースをユニットとして従います。`otelHeadersHelper` 認証情報キーを配信するソースもユニットを要求しますが、これらの変数は選択されたソースである場合にのみ配置されます。選択されていないが、キーを配信するソースはそれらのいずれも提供せず、下位のソースがそれらを埋めるのをブロックします。いずれにせよ、1 つのソースからのエクスポーターエンドポイントは、別のソースからの認証情報とペアになることはできません。

173 * **認証情報ペアのルーティング**:`apiKeyHelper` または `otelHeadersHelper` などの選択されたソースのみの認証情報キーとペアになったルーティング変数を配信するソースは、それがスロットに勝つ場合にのみそれらのルーティング変数を提供します。173 * **認証情報ペアのルーティング**:`apiKeyHelper` または `otelHeadersHelper` などの選択されたソースのみの認証情報キーとペアになったルーティング変数を配信するソースは、それがスロットに勝つ場合にのみそれらのルーティング変数を提供します。

174* **`allowedProviders`**:マシンに設定されたリストとサーバー管理リストは、[そのエントリの Scope ノート](/docs/ja/settings-reference#allowedproviders)に記載されているように組み合わされます。Claude Code v2.1.285 以降が必要です。

174* **ゲートウェイサインインキー**:Claude Code は [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/ja/settings-reference#gatewayinternalnetworks)、または [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) の `"gateway"` 値をサーバー管理設定から読み取ることはありません。したがって、サーバー管理設定の値は適用されず、MDM ポリシーまたは管理設定ファイルで設定されたものも隠されません。[`managedSourcesBehavior` エントリ](/docs/ja/settings-reference#managedsourcesbehavior)は、マシン上のどの管理ソースがそれらを提供するかを説明しています。175* **ゲートウェイサインインキー**:Claude Code は [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/ja/settings-reference#gatewayinternalnetworks)、または [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) の `"gateway"` 値をサーバー管理設定から読み取ることはありません。したがって、サーバー管理設定の値は適用されず、MDM ポリシーまたは管理設定ファイルで設定されたものも隠されません。[`managedSourcesBehavior` エントリ](/docs/ja/settings-reference#managedsourcesbehavior)は、マシン上のどの管理ソースがそれらを提供するかを説明しています。

175 176 

176<h3 id="fetch-and-caching-behavior">177<h3 id="fetch-and-caching-behavior">


179 180 

180Claude Code は起動時に Anthropic のサーバーから設定をフェッチし、アクティブなセッション中は 1 時間ごとに更新をポーリングします。181Claude Code は起動時に Anthropic のサーバーから設定をフェッチし、アクティブなセッション中は 1 時間ごとに更新をポーリングします。

181 182 

182[Claude apps gateway](#platform-availability) を通じてサインインしたクライアントは、ゲートウェイから設定をフェッチし、セッションが開始される前にそのフェッチを待つため、以下のリストのフェッチはそれに適用されません。[フェッチが失敗した場合の処理](#enforce-fail-closed-startup)については、「強制的にクローズされた起動を適用する」を参照してください。183[Claude apps gateway](#platform-availability) を通じてサインインしたクライアントは、ゲートウェイから設定をフェッチし、セッションが開始される前にそのフェッチを待つため、以下のリストのフェッチはそれに適用されません。[強制的にクローズされた起動を適用する](#enforce-fail-closed-startup)は、そのフェッチが失敗した場合に何が起こるかをカバーしています。

183 184 

184**キャッシュされた設定なしの初回起動:**185**キャッシュされた設定なしの初回起動:**

185 186 

sessions.md +20 −2

Details

29 29 

30`claude --continue` は完了した [バックグラウンドセッション](/docs/ja/agent-view)を開きますが、実行中のセッションは開きません。完了したバックグラウンドセッションを開くには Claude Code v2.1.257 以降が必要です。最新の会話が [バックグラウンドに移動した](/docs/ja/agent-view#send-the-session-to-the-background)セッションで、そこで実行中の場合、Claude Code は `Your most recent conversation is running in the background` と終了し、そのセッションの ID を表示します。[`claude agents`](/docs/ja/agent-view#attach-to-a-session)からセッションにアタッチするか、`claude --resume` を実行して別のセッションを選択します。30`claude --continue` は完了した [バックグラウンドセッション](/docs/ja/agent-view)を開きますが、実行中のセッションは開きません。完了したバックグラウンドセッションを開くには Claude Code v2.1.257 以降が必要です。最新の会話が [バックグラウンドに移動した](/docs/ja/agent-view#send-the-session-to-the-background)セッションで、そこで実行中の場合、Claude Code は `Your most recent conversation is running in the background` と終了し、そのセッションの ID を表示します。[`claude agents`](/docs/ja/agent-view#attach-to-a-session)からセッションにアタッチするか、`claude --resume` を実行して別のセッションを選択します。

31 31 

32<span id="resume-a-running-background-session" />

33 

34`claude --resume` または `/resume` で再開する会話が、実行中の [バックグラウンドセッション](/docs/ja/agent-view)に属する場合、Claude Code は実行中のセッション自体を開きます。コマンドラインで `--bg` を使用すると、再開は [バックグラウンドディスパッチ](/docs/ja/agent-view#from-your-shell)になります。v2.1.285 より前は、Claude Code は拒否し、`claude attach <id>` でセッションを開くか、`claude stop <id>` で最初に停止するよう指示していました。

35 

36* **シェルから**:`claude --resume <session>` は、トランスクリプト自体を読み込む代わりに、同じターミナルでそのセッションに対して [`claude attach`](/docs/ja/agent-view#attach-to-a-session)を実行します。`claude --resume <session> "check the tests too"` のようにコマンドラインで渡すプロンプトは、最初にセッションの次のターンとして送信され、Claude Code は `Sent your prompt to the background session (<id>); opening it…` を出力してからアタッチします。ターミナルで入力した `claude -p --resume <session> "prompt"` も同じように動作するため、`-p` はその実行を非対話型に保ちません。

37 

38 Claude Code は、コマンドラインに以下のいずれかがある場合、セッションを開きません。

39 

40 * パイプまたはリダイレクトされた入力または出力

41 * `--permission-mode`、`--model`、`--settings` などのセッションを設定するフラグ

42 * `--output-format json` または `--json-schema` などの出力を読み込むフラグ

43 * `--max-turns` または `--max-budget-usd` などの実行を制限またはリワインドするフラグ

44 

45 これらのいずれかがある場合、または [エージェントビューがオフになっている](/docs/ja/agent-view#turn-off-agent-view)場合、Claude Code は何も送信せず、ステータス 1 で終了し、セッションがバックグラウンドで実行中であることを出力し、それを開く `claude attach <id>` コマンドを表示するか、ID を判定できない場合は `claude agents` で見つけるよう指示します。`--fork-session` を追加して、会話のコピーを再開します。セッション自体で会話を続行するには、フラグを適用して、`claude stop <id>` を実行してからコマンドを繰り返します。

46 

47 `/` または `!` で始まるプロンプトは送信されず、セッションが質問への回答を待っている間のプロンプトも送信されません。どちらの場合も Claude Code はセッションを開かず、メッセージには `Your prompt was not sent to it` と理由が含まれます。

48* **セッション内から**:`/resume` は現在の会話をバックグラウンドに移動し、このターミナルを実行中のセッションにアタッチし、`Opening "<title>", running in the background (<id>)` を出力します。空のプロンプトで `←` を押すとエージェントビューに戻ります。これは、残した会話もリストします。現在の会話がバックグラウンドに移動できない場合(例えば、バックグラウンドセッションにすでにアタッチしている場合、またはセッション永続性がオフの場合)、`/resume` は代わりに実行する `claude attach` コマンドを出力します。

49 

32任意のディレクトリから `claude --resume <session-id>` を実行できます。Claude Code は現在のプロジェクトディレクトリとその git worktrees でまず ID を検索し、次にこのマシン上の他のすべてのプロジェクトで検索するため、他の場所で開始されたセッションや [`/cd`](/docs/ja/commands)で移動したセッションを見つけます。クロスプロジェクト検索は、正確に 1 つの他のプロジェクトがそれのメッセージを含むトランスクリプトを保持している場合にのみ ID を解決するため、手動でコピーされた重複は Claude Code が見つからないと報告し、任意のコピーを再開するのではなく、見つかりません。保存されたセッションが ID と一致しない場合、Claude Code は `No conversation found with session ID: <session-id>` と報告します。v2.1.223 より前は、ルックアップは現在のプロジェクトディレクトリとその git worktrees で停止したため、セッションが最後に機能していたディレクトリから再開する必要がありました。50任意のディレクトリから `claude --resume <session-id>` を実行できます。Claude Code は現在のプロジェクトディレクトリとその git worktrees でまず ID を検索し、次にこのマシン上の他のすべてのプロジェクトで検索するため、他の場所で開始されたセッションや [`/cd`](/docs/ja/commands)で移動したセッションを見つけます。クロスプロジェクト検索は、正確に 1 つの他のプロジェクトがそれのメッセージを含むトランスクリプトを保持している場合にのみ ID を解決するため、手動でコピーされた重複は Claude Code が見つからないと報告し、任意のコピーを再開するのではなく、見つかりません。保存されたセッションが ID と一致しない場合、Claude Code は `No conversation found with session ID: <session-id>` と報告します。v2.1.223 より前は、ルックアップは現在のプロジェクトディレクトリとその git worktrees で停止したため、セッションが最後に機能していたディレクトリから再開する必要がありました。

33 51 

34<h3 id="what-a-resumed-session-restores">52<h3 id="what-a-resumed-session-restores">

35 再開されたセッションが復元するもの53 再開されたセッションが復元するもの

36</h3>54</h3>

37 55 

38再開されたセッションは、会話とそれに保存された状態を復元します。56Claude Code がトランスクリプトから会話を読み込むと、再開されたセッションは会話とそれに保存された状態を復元します。

39 57 

40* 会話履歴:ツール呼び出しと結果を含む完全な履歴。前のプロセスが終了したときに実行中だったツール(例えばクラッシュ)は、再開時に完了または再実行されません。Claude はその呼び出しが結果が記録される前に切断されたとマークされているのを見て、再度実行する前に有効になったかどうかを確認するよう指示されます。ただし、[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars#variables)が設定されている場合は除きます。v2.1.281 より前は、Claude Code は切断された呼び出しを会話から削除するか、中断したものとして Claude に表示していました。58* 会話履歴:ツール呼び出しと結果を含む完全な履歴。前のプロセスが終了したときに実行中だったツール(例えばクラッシュ)は、再開時に完了または再実行されません。Claude はその呼び出しが結果が記録される前に切断されたとマークされているのを見て、再度実行する前に有効になったかどうかを確認するよう指示されます。ただし、[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars#variables)が設定されている場合は除きます。v2.1.281 より前は、Claude Code は切断された呼び出しを会話から削除するか、中断したものとして Claude に表示していました。

41* モデル:セッションは使用していたモデルで続行されます。モデルが廃止されたか `availableModels` で許可されていない場合、`--model` フラグまたは `ANTHROPIC_MODEL` ファミリー環境変数が起動時に 1 つを選択する場合、または [Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry](/docs/ja/third-party-integrations)などのプロバイダー固有のデプロイ ID を使用するプロバイダーの場合は復元されません。[モデル設定](/docs/ja/model-config#setting-your-model)の解決順序を参照してください。59* モデル:セッションは使用していたモデルで続行されます。モデルが廃止されたか `availableModels` で許可されていない場合、`--model` フラグまたは `ANTHROPIC_MODEL` ファミリー環境変数が起動時に 1 つを選択する場合、または [Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry](/docs/ja/third-party-integrations)などのプロバイダー固有のデプロイ ID を使用するプロバイダーの場合は復元されません。[モデル設定](/docs/ja/model-config#setting-your-model)の解決順序を参照してください。


51 再開時の権限モード69 再開時の権限モード

52</h4>70</h4>

53 71 

54再開されたセッションが開始される権限モードは、再開方法によって異なります。72再開されたセッションが開始される権限モードは、再開方法によって異なります。以下の場合は、Claude Code がトランスクリプトから会話を読み込むときに適用されます。[実行中のバックグラウンドセッションを開く](#resume-a-running-background-session)場合、そのセッションは存在する権限モードを保持します。

55 73 

56* ターミナル:`claude --continue`、`claude --resume <session-id>`、または `claude --resume <name>`(名前が 1 つのセッションと一致する場合)で `-p` なし。Claude Code はセッションが存在していた権限モードを復元します。ただし、表の場合は除きます。`--permission-mode` または `--dangerously-skip-permissions` を渡して復元されたモードをオーバーライドします。74* ターミナル:`claude --continue`、`claude --resume <session-id>`、または `claude --resume <name>`(名前が 1 つのセッションと一致する場合)で `-p` なし。Claude Code はセッションが存在していた権限モードを復元します。ただし、表の場合は除きます。`--permission-mode` または `--dangerously-skip-permissions` を渡して復元されたモードをオーバーライドします。

57* 非対話型:`claude -p --resume` または `claude -p --continue`。Claude Code は新しい `claude -p` 実行が開始される権限モードで実行を開始します。ただし、プランモードで終了したセッションは [以下の条件](#resume-in-plan-mode-with-p)下でプランモードで再開されます。75* 非対話型:`claude -p --resume` または `claude -p --continue`。Claude Code は新しい `claude -p` 実行が開始される権限モードで実行を開始します。ただし、プランモードで終了したセッションは [以下の条件](#resume-in-plan-mode-with-p)下でプランモードで再開されます。

settings-reference.md +338 −245

Details

577 設定インデックス577 設定インデックス

578</h2>578</h2>

579 579 

580以下のすべてのキーはそのエントリにリンクしています。スコープは、それが入ることができる[ファイル](/docs/ja/settings#settings-files-and-who-they-affect)をリストしています。`User` は `~/.claude/settings.json`、`Project` は `.claude/settings.json`、`Local` は `.claude/settings.local.json`、`Managed` は[組織がデプロイするもの](/docs/ja/managed-settings)です。`Any file` は 4 つすべてを意味し、`Global config` は [`~/.claude.json`](#global-config-settings)を意味します。580以下のすべてのキーはそのエントリにリンクしています。スコープは、それが入ることができる[ファイル](/docs/ja/settings#settings-files-and-who-they-affect)をリストしています。`User` は `~/.claude/settings.json`、`Project` は `.claude/settings.json`、`Local` は `.claude/settings.local.json`、`Managed` は[組織がデプロイするもの](/docs/ja/managed-settings)です。`Any file` は 4 つすべてを意味し、`Global config` は [`~/.claude.json`](#global-config-settings) を意味します。

581 581 

582<ReferenceFilter582<ReferenceFilter

583 noun="settings"583 noun="settings"


589}}589}}

590/>590/>

591 591 

592| Key | Description | Topic | Scope |592| キー | 説明 | トピック | スコープ |

593| :- | :- | :- | :- |593| :- | :- | :- | :- |

594| [`advisorModel`](#advisormodel) | Claude が[アドバイザーツール](/docs/ja/advisor)に答えるときに使用するモデルを選択します | Model and responses | Any file |594| [`advisorModel`](#advisormodel) | Claude が[アドバイザーツール](/docs/ja/advisor)に質問するときに回答するモデルを選択します | モデルと応答 | Any file |

595| [`agent`](#agent) | すべてのセッションを、プロンプト、ツール、モデルを持つ名前付き[サブエージェント](/docs/ja/sub-agents)として開始します | Agents, sessions, and worktrees | Any file |595| [`agent`](#agent) | すべてのセッションをプロンプト、ツール、モデルを持つ名前付き[サブエージェント](/docs/ja/sub-agents)として開始します | エージェント、セッション、ワークツリー | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Claude が決定したときに[プッシュ通知をスマートフォンに送信](/docs/ja/remote-control#mobile-push-notifications)することを許可します | Remote, desktop, and notifications | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Claude が決定したときに[プッシュ通知をスマートフォンに送信](/docs/ja/remote-control#mobile-push-notifications)することを許可します | リモート、デスクトップ、通知 | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | デプロイされた[`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json)と一緒に Claude Code が自身で取得する[claude.ai コネクタ](/docs/ja/mcp)をロードします | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | デプロイされた [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) と一緒に Claude Code が自身で取得する[claude.ai コネクタ](/docs/ja/mcp)をロードします | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | デプロイされた[`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json)と一緒に組み込み[Claude in Chrome](/docs/ja/chrome)サーバーを実行することを許可します | MCP | Managed |598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | デプロイされた [`managed-mcp.json`](/docs/ja/managed-mcp#exclusive-control-with-managed-mcp-json) と一緒に組み込み[Claude in Chrome](/docs/ja/chrome) サーバーを実行することを許可します | MCP | Managed |

599| [`allowedChannelPlugins`](#allowedchannelplugins) | メッセージをプッシュできる[チャネルプラグイン](/docs/ja/channels#restrict-which-channel-plugins-can-run)のデフォルト許可リストを置き換えます | Plugins and skills | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | メッセージをプッシュできる[チャネルプラグイン](/docs/ja/channels#restrict-which-channel-plugins-can-run)のデフォルト許可リストを置き換えます | プラグインとスキル | Managed |

600| [`allowedHttpHookUrls`](#allowedhttphookurls) | [HTTP フック](/docs/ja/hooks)がターゲットできる URL を制限します | Hooks and automation | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | [HTTP フック](/docs/ja/hooks)がターゲットにできる URL を制限します | フックと自動化 | Any file |

601| [`allowedMcpServers`](#allowedmcpservers) | ユーザーが追加できる[MCP サーバー](/docs/ja/mcp)を許可リストに登録します | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | ユーザーが追加できる[MCP サーバー](/docs/ja/mcp)を許可リストに登録します | MCP | Any file |

602| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 組織がデプロイする[フック](/docs/ja/hooks)のみを実行します | Hooks and automation | Managed |602| [`allowedProviders`](#allowedproviders) | マシンが使用できる[API プロバイダー](/docs/ja/third-party-integrations)を制限します | 認証とプロバイダー | Managed |

603| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | マネージド[MCP](/docs/ja/mcp)許可リストが適用される唯一のものにします | MCP | Managed |603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 組織がデプロイする[フック](/docs/ja/hooks)のみを実行します | フックと自動化 | Managed |

604| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | [マネージド設定](/docs/ja/managed-settings)を[権限ルール](/docs/ja/permissions#managed-settings)の唯一の設定ソースにします | Permission settings | Managed |604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | マネージド[MCP](/docs/ja/mcp)許可リストのみが適用されるようにします | MCP | Managed |

605| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | すべてのセッションで[拡張思考](/docs/ja/model-config#extended-thinking)をオフにします | Model and responses | Any file |605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | [マネージド設定](/docs/ja/managed-settings)を[権限ルール](/docs/ja/permissions#managed-settings)の唯一の設定ソースにします | 権限設定 | Managed |

606| [`apiKeyHelper`](#apikeyhelper) | 独自のコマンドで[API 認証情報](/docs/ja/authentication#credential-management)を生成します | Authentication and providers | Any file |606| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | すべてのセッションで[拡張思考](/docs/ja/model-config#extended-thinking)をオフにします | モデルと応答 | Any file |

607| [`askUserQuestionTimeout`](#askuserquestiontimeout) | 未回答の質問が[アイドル時間後に自動継続](/docs/ja/tools-reference#question-auto-continue-timeout)することを許可します | Interface and terminal | User or managed |607| [`apiKeyHelper`](#apikeyhelper) | 独自のコマンドで[API 認証情報](/docs/ja/authentication#credential-management)を生成します | 認証とプロバイダー | Any file |

608| [`attribution`](#attribution) | Claude Code がコミットとプルリクエストに追加する属性をカスタマイズします | Git and attribution | Any file |608| [`askUserQuestionTimeout`](#askuserquestiontimeout) | 未回答の質問がアイドル時間後に[自動継続](/docs/ja/tools-reference#question-auto-continue-timeout)することを許可します | インターフェースとターミナル | User or managed |

609| [`attribution.commit`](#attribution-commit) | Claude Code がコミットに追加するトレーラーを変更または非表示にします | Git and attribution | Any file |609| [`appendPlugins`](#appendplugins) | ユーザーがインストールするすべてのモッドの後に組織の[モッド](/docs/ja/plugins/mods/admin)を実行します | プラグインとスキル | User or managed |

610| [`attribution.pr`](#attribution-pr) | プルリクエスト説明の属性行を変更または非表示にします | Git and attribution | Any file |610| [`attribution`](#attribution) | Claude Code がコミットとプルリクエストに追加する属性をカスタマイズします | Git と属性 | Any file |

611| [`attribution.sessionUrl`](#attribution-sessionurl) | [クラウド](/docs/ja/claude-code-on-the-web)および[リモートコントロール](/docs/ja/remote-control)コミットから claude.ai セッションリンクを省略します | Git and attribution | Any file |611| [`attribution.commit`](#attribution-commit) | Claude Code がコミットに追加するトレーラーを変更または非表示にします | Git と属性 | Any file |

612| [`autoCompactEnabled`](#autocompactenabled) | [自動コンパクション](/docs/ja/context-window)をオフまたはオンにします | Memory and context | Any file |612| [`attribution.pr`](#attribution-pr) | プルリクエスト説明の属性行を変更または非表示にします | Git と属性 | Any file |

613| [`autoCompactWindow`](#autocompactwindow) | Claude Code が[コンパクト](/docs/ja/context-window)する前にコンテキストがどのくらい満杯になるかを設定します | Memory and context | Any file |613| [`attribution.sessionUrl`](#attribution-sessionurl) | [クラウド](/docs/ja/claude-code-on-the-web)および[リモートコントロール](/docs/ja/remote-control)コミットから claude.ai セッションリンクを省略します | Git と属性 | Any file |

614| [`autoConnectIde`](#autoconnectide) | 外部ターミナルから実行中の[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#from-external-terminals) IDE に自動的に接続します | Global config settings | Global config |614| [`autoCompactEnabled`](#autocompactenabled) | [自動圧縮](/docs/ja/context-window)をオフまたはオンにします | メモリとコンテキスト | Any file |

615| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | オープンセッションで待機し、claude.ai 使用制限がリセットされた後に[タスクを自動的に継続](/docs/ja/interactive-mode#wait-for-a-usage-limit-to-reset)します | Interface and terminal | User or managed |615| [`autoCompactWindow`](#autocompactwindow) | Claude Code が[圧縮](/docs/ja/context-window)する前にコンテキストがどのくらい満杯になるかを設定します | メモリとコンテキスト | Any file |

616| [`autoInstallIdeExtension`](#autoinstallideextension) | VS Code ターミナルから[IDE 拡張機能](/docs/ja/vs-code#install-the-extension)の自動インストールをオフにします | Global config settings | Global config |616| [`autoConnectIde`](#autoconnectide) | 外部ターミナルから実行中の[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#from-external-terminals) IDE に自動的に接続します | グローバル設定 | Global config |

617| [`autoMemoryDirectory`](#automemorydirectory) | [自動メモリ](/docs/ja/memory#auto-memory)を選択したディレクトリに保存します | Memory and context | Any file |617| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | オープンセッションで待機し、claude.ai 使用制限がリセットされた後に[タスクを自動的に継続](/docs/ja/interactive-mode#wait-for-a-usage-limit-to-reset)します | インターフェースとターミナル | User or managed |

618| [`autoMemoryEnabled`](#automemoryenabled) | [自動メモリ](/docs/ja/memory#auto-memory)をオフまたはオンにします | Memory and context | Any file |618| [`autoInstallIdeExtension`](#autoinstallideextension) | VS Code ターミナルから[IDE 拡張機能](/docs/ja/vs-code#install-the-extension)の自動インストールをオフにします | グローバル設定 | Global config |

619| [`autoMode`](#automode) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器に独自の許可および拒否ルールを追加します | Permission settings | User or managed |619| [`autoMemoryDirectory`](#automemorydirectory) | [自動メモリ](/docs/ja/memory#auto-memory)を選択したディレクトリに保存します | メモリとコンテキスト | Any file |

620| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 狭い許可ルールが一致するものでも、すべてのシェルコマンドを[自動モード分類器](/docs/ja/permission-modes#what-the-classifier-blocks-by-default)を通して送信します | Permission settings | User or managed |620| [`autoMemoryEnabled`](#automemoryenabled) | [自動メモリ](/docs/ja/memory#auto-memory)をオフまたはオンにします | メモリとコンテキスト | Any file |

621| [`autoScrollEnabled`](#autoscrollenabled) | フルスクリーンレンダリングで[新しい出力に従う](/docs/ja/fullscreen#auto-follow)ことを有効にします | Interface and terminal | Any file |621| [`autoMode`](#automode) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器に独自の許可および拒否ルールを追加します | 権限設定 | User or managed |

622| [`autoUpdatesChannel`](#autoupdateschannel) | 最新ではなく安定した[リリースチャネル](/docs/ja/setup#configure-release-channel)に従います | Updates and versioning | Any file |622| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 狭い許可ルールに一致するものであっても、すべてのシェルコマンドを[自動モード分類器](/docs/ja/permission-modes#what-the-classifier-blocks-by-default)に送信します | 権限設定 | User or managed |

623| [`availableModels`](#availablemodels) | [ユーザーが選択できるモデルを制限](/docs/ja/model-config#restrict-model-selection)します | Model and responses | Any file |623| [`autoScrollEnabled`](#autoscrollenabled) | フルスクリーンレンダリングで[新しい出力に従う](/docs/ja/fullscreen#auto-follow)ことをオンにします | インターフェースとターミナル | Any file |

624| [`availableModelsMatch`](#availablemodelsmatch) | 各 `availableModels` モデル ID エントリが[それが名前を付けるバージョンのみを許可](/docs/ja/model-config#block-specific-models-or-versions)するようにします | Model and responses | Managed |624| [`autoUpdatesChannel`](#autoupdateschannel) | 最新ではなく安定した[リリースチャネル](/docs/ja/setup#configure-release-channel)に従います | 更新とバージョン管理 | Any file |

625| [`awaySummaryEnabled`](#awaysummaryenabled) | ターミナルに戻ったときに表示される[セッション要約](/docs/ja/interactive-mode#session-recap)をオフにします | Remote, desktop, and notifications | Any file |625| [`availableModels`](#availablemodels) | [ユーザーが選択できるモデルを制限](/docs/ja/model-config#restrict-model-selection)します | モデルと応答 | Any file |

626| [`awsAuthRefresh`](#awsauthrefresh) | 独自のコマンドで `.aws` の期限切れ[Bedrock 認証情報](/docs/ja/amazon-bedrock#advanced-credential-configuration)をリフレッシュします | Authentication and providers | Any file |626| [`availableModelsMatch`](#availablemodelsmatch) | 各 `availableModels` モデル ID エントリが[それが名前を付けるバージョンのみを許可](/docs/ja/model-config#block-specific-models-or-versions)するようにします | モデルと応答 | Managed |

627| [`awsCredentialExport`](#awscredentialexport) | 独自のコマンドから JSON として[Bedrock 認証情報](/docs/ja/amazon-bedrock#advanced-credential-configuration)を提供します | Authentication and providers | Any file |627| [`awaySummaryEnabled`](#awaysummaryenabled) | ターミナルに戻ったときに表示される[セッション要約](/docs/ja/interactive-mode#session-recap)をオフにします | リモート、デスクトップ、通知 | Any file |

628| [`axScreenReader`](#axscreenreader) | [スクリーンリーダーフレンドリーな出力](/docs/ja/accessibility)をレンダリングします | Interface and terminal | Any file |628| [`awsAuthRefresh`](#awsauthrefresh) | 独自のコマンドで `.aws` の期限切れ[Bedrock 認証情報](/docs/ja/amazon-bedrock#advanced-credential-configuration)をリフレッシュします | 認証とプロバイダー | Any file |

629| [`bashEditDiffEnabled`](#basheditdiffenabled) | すべての権限モードで[Bash コマンドが変更したファイル](/docs/ja/hooks#bash)を記録します | Interface and terminal | User or managed |629| [`awsCredentialExport`](#awscredentialexport) | 独自のコマンドから JSON として[Bedrock 認証情報](/docs/ja/amazon-bedrock#advanced-credential-configuration)を提供します | 認証とプロバイダー | Any file |

630| [`bashOutputMaxChars`](#bashoutputmaxchars) | 成功したコマンドの[出力](/docs/ja/tools-reference#output-limits)のうち Claude が受け取るインライン量を設定します | Memory and context | Any file |630| [`axScreenReader`](#axscreenreader) | [スクリーンリーダーフレンドリーな出力](/docs/ja/accessibility)をレンダリングします | インターフェースとターミナル | Any file |

631| [`blockedMarketplaces`](#blockedmarketplaces) | 組織の[プラグインマーケットプレイス](/docs/ja/plugins/overview)ソースをブロックします | Plugins and skills | Managed |631| [`bashEditDiffEnabled`](#basheditdiffenabled) | [Bash コマンドの実行中に変更されたファイル](/docs/ja/hooks#bash)をすべての権限モードで記録します | インターフェースとターミナル | User or managed |

632| [`browserExternalPageTools`](#browserexternalpagetools) | [デスクトップ](/docs/ja/desktop)ブラウザペインの外部ページで Claude のツールをオフにします | Tools | Managed |632| [`bashOutputMaxChars`](#bashoutputmaxchars) | 成功したコマンドの[出力](/docs/ja/tools-reference#output-limits)の量を Claude がインラインで受け取るように設定します | メモリとコンテキスト | Any file |

633| [`channelsEnabled`](#channelsenabled) | 組織の[チャネル](/docs/ja/channels#enable-channels-for-your-organization)を許可します | Plugins and skills | Managed |633| [`blockedMarketplaces`](#blockedmarketplaces) | 組織の[プラグインマーケットプレイス](/docs/ja/plugins/overview)ソースをブロックします | プラグインとスキル | Managed |

634| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | `--chrome` を渡さずにすべてのインタラクティブ CLI セッションで[Chrome 統合](/docs/ja/chrome)をオンにします | Global config settings | Global config |634| [`browserExternalPageTools`](#browserexternalpagetools) | [デスクトップ](/docs/ja/desktop)ブラウザペインの外部ページで Claude のツールをオフにします | ツール | Managed |

635| [`claudeMd`](#claudemd) | マネージド設定から組織全体の[CLAUDE.md](/docs/ja/memory#deploy-organization-wide-claude-md)指示を注入します | Memory and context | Managed |635| [`channelsEnabled`](#channelsenabled) | 組織の[チャネル](/docs/ja/channels#enable-channels-for-your-organization)を許可します | プラグインとスキル | Managed |

636| [`claudeMdExcludes`](#claudemdexcludes) | メモリがロードされるときに特定の[CLAUDE.md](/docs/ja/memory#exclude-specific-claude-md-files)ファイルをスキップします | Memory and context | Any file |636| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | `--chrome` を渡さずにすべてのインタラクティブ CLI セッションで[Chrome 統合](/docs/ja/chrome)をオンにします | グローバル設定 | Global config |

637| [`cleanupPeriodDays`](#cleanupperioddays) | Claude Code が[トランスクリプト](/docs/ja/data-usage#data-retention)を削除する前に保持する日数を選択します | Privacy and telemetry | Any file |637| [`claudeMd`](#claudemd) | マネージド設定から組織全体の[CLAUDE.md](/docs/ja/memory#deploy-organization-wide-claude-md)指示を注入します | メモリとコンテキスト | Managed |

638| [`companyAnnouncements`](#companyannouncements) | スタートアップ時に組織のアナウンスメントを表示します | Interface and terminal | Any file |638| [`claudeMdExcludes`](#claudemdexcludes) | メモリがロードされるときに特定の[CLAUDE.md](/docs/ja/memory#exclude-specific-claude-md-files)ファイルをスキップします | メモリとコンテキスト | Any file |

639| [`copyFullResponse`](#copyfullresponse) | [`/copy`](/docs/ja/commands)がコードブロックピッカーを表示せずに完全な応答をコピーするようにします | Global config settings | Global config |639| [`cleanupPeriodDays`](#cleanupperioddays) | Claude Code が[トランスクリプト](/docs/ja/data-usage#data-retention)を削除する前に保持する日数を選択します | プライバシーとテレメトリ | Any file |

640| [`copyOnSelect`](#copyonselect) | [フルスクリーンレンダリング](/docs/ja/fullscreen#use-the-mouse)およびエージェントビューでマウスで選択したテキストの自動コピーをオフにします | Global config settings | Global config |640| [`companyAnnouncements`](#companyannouncements) | スタートアップで組織のお知らせを表示します | インターフェースとターミナル | Any file |

641| [`crossSessionInbound`](#crosssessioninbound) | Claude Code が[他のセッションからのメッセージ](/docs/ja/cross-session-messaging#control-inbound-messages)を配信するか、配信せずに通知を表示するか、または拒否するかを選択します | Agents, sessions, and worktrees | Any file |641| [`copyFullResponse`](#copyfullresponse) | [`/copy`](/docs/ja/commands)がコードブロックピッカーを表示せずに完全な応答をコピーするようにします | グローバル設定 | Global config |

642| [`defaultShell`](#defaultshell) | [`!` プレフィックス](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したシェルコマンドを実行する Bash または PowerShell を選択します | Interface and terminal | Any file |642| [`copyOnSelect`](#copyonselect) | [フルスクリーンレンダリング](/docs/ja/fullscreen#use-the-mouse)およびエージェントビューでマウスで選択したテキストの自動コピーをオフにします | グローバル設定 | Global config |

643| [`defaultToAgentsView`](#defaulttoagentsview) | 引数なしで `claude` を実行するときに新しい会話の代わりに[エージェントビュー](/docs/ja/agent-view)を開きます | Global config settings | Global config |643| [`crossSessionInbound`](#crosssessioninbound) | Claude Code が[他のセッションからのメッセージ](/docs/ja/cross-session-messaging#control-inbound-messages)を配信するか、配信せずに通知を表示するか、拒否するかを選択します | エージェント、セッション、ワークツリー | Any file |

644| [`defaultShell`](#defaultshell) | [`!` プレフィックス](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したシェルコマンドを実行する Bash または PowerShell を選択します | インターフェースとターミナル | Any file |

645| [`defaultToAgentsView`](#defaulttoagentsview) | 引数なしで `claude` を実行するときに新しい会話の代わりに[エージェントビュー](/docs/ja/agent-view)を開きます | グローバル設定 | Global config |

644| [`deniedMcpServers`](#deniedmcpservers) | URL、コマンド、または名前で特定の[MCP サーバー](/docs/ja/mcp)をブロックします | MCP | Any file |646| [`deniedMcpServers`](#deniedmcpservers) | URL、コマンド、または名前で特定の[MCP サーバー](/docs/ja/mcp)をブロックします | MCP | Any file |

645| [`deniedModels`](#deniedmodels) | [特定のモデルをブロック](/docs/ja/model-config#block-specific-models-or-versions)します。`availableModels` が許可するものでも | Model and responses | Managed |647| [`deniedModels`](#deniedmodels) | [特定のモデルをブロック](/docs/ja/model-config#block-specific-models-or-versions)します。`availableModels` が許可するものであっても | モデルと応答 | Managed |

646| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | [Claude Desktop および Cowork トランスクリプト](/docs/ja/claude-directory#cleaned-up-automatically)の経過日数制限を設定します | Privacy and telemetry | User or managed |648| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | [Claude Desktop および Cowork トランスクリプト](/docs/ja/claude-directory#cleaned-up-automatically)の年齢制限を日数で設定します | プライバシーとテレメトリ | User or managed |

647| [`dialogExpiry`](#dialogexpiry) | Claude Code が[リモートコントロール](/docs/ja/remote-control)または SDK ホストが転送されたダイアログに答えるのを待つ時間を設定します | Interface and terminal | User or managed |649| [`dialogExpiry`](#dialogexpiry) | Claude Code がダイアログをキャンセルする前に[リモートコントロール](/docs/ja/remote-control)または SDK ホストが転送されたダイアログに応答するのを待つ時間を設定します | インターフェースとターミナル | User or managed |

648| [`diffTool`](#difftool) | Claude の提案されたファイル変更が[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#features)差分ビューアで開くか、ターミナルに留まるかを選択します | Global config settings | Global config |650| [`diffTool`](#difftool) | Claude の提案されたファイル変更が[VS Code](/docs/ja/vs-code)または[JetBrains](/docs/ja/jetbrains#features)差分ビューアで開くか、ターミナルに留まるかを選択します | グローバル設定 | Global config |

649| [`disableAgentView`](#disableagentview) | バックグラウンドエージェントと[エージェントビュー](/docs/ja/agent-view)をオフにします | Agents, sessions, and worktrees | Any file |651| [`disableAgentView`](#disableagentview) | バックグラウンドエージェントと[エージェントビュー](/docs/ja/agent-view)をオフにします | エージェント、セッション、ワークツリー | Any file |

650| [`disableAllHooks`](#disableallhooks) | [フック](/docs/ja/hooks)、カスタム[ステータスライン](/docs/ja/statusline)、およびカスタム[`@` ファイル提案](/docs/ja/interactive-mode#quick-commands)コマンドを一度にオフにします | Hooks and automation | Any file |652| [`disableAllHooks`](#disableallhooks) | [フック](/docs/ja/hooks)、カスタム[ステータスライン](/docs/ja/statusline)、およびカスタム[`@` ファイル提案](/docs/ja/interactive-mode#quick-commands)コマンドを一度にオフにします | フックと自動化 | Any file |

651| [`disableArtifact`](#disableartifact) | 非推奨。`enableArtifact` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします | Remote, desktop, and notifications | Any file |653| [`disableArtifact`](#disableartifact) | 非推奨。`enableArtifact` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします | リモート、デスクトップ、通知 | Any file |

652| [`disableAutoMode`](#disableautomode) | 権限モードサイクルから[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を削除します | Permission settings | Any file |654| [`disableAutoMode`](#disableautomode) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を権限モードサイクルから削除します | 権限設定 | Any file |

653| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | [デスクトップ](/docs/ja/desktop)ブラウザペインをユーザーと Claude の localhost に制限します | Tools | Managed |655| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | [デスクトップ](/docs/ja/desktop)ブラウザペインをユーザーと Claude の localhost に制限します | ツール | Managed |

654| [`disableBundledSkills`](#disablebundledskills) | Claude Code に含まれる[スキル](/docs/ja/skills#bundled-skills)および[ワークフロー](/docs/ja/workflows)をオフにします | Plugins and skills | Any file |656| [`disableBundledSkills`](#disablebundledskills) | Claude Code に含まれる[スキル](/docs/ja/skills#bundled-skills)と[ワークフロー](/docs/ja/workflows)をオフにします | プラグインとスキル | Any file |

655| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | [claude.ai コネクタ](/docs/ja/mcp#disable-claude-ai-connectors)をオフにして、Claude Code がそれらを取得しないようにします | MCP | Any file |657| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | [claude.ai コネクタ](/docs/ja/mcp#disable-claude-ai-connectors)をオフにして、Claude Code がそれらを取得しないようにします | MCP | Any file |

656| [`disableCommandPluginSources`](#disablecommandpluginsources) | マーケットプレイス宣言コマンドを実行してインストールする[プラグイン](/docs/ja/plugins/overview)をブロックします | Plugins and skills | Managed |658| [`disableCommandPluginSources`](#disablecommandpluginsources) | マーケットプレイス宣言コマンドを実行してインストールする[プラグイン](/docs/ja/plugins/overview)をブロックします | プラグインとスキル | Managed |

657| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Claude Code が[`claude-cli://` ハンドラー](/docs/ja/deep-links)を登録するのを停止します | Remote, desktop, and notifications | Any file |659| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Claude Code が[`claude-cli://` ハンドラー](/docs/ja/deep-links)を登録するのを停止します | リモート、デスクトップ、通知 | Any file |

658| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | デバイスで実行される[Desktop Code セッション](/docs/ja/desktop#local-sessions-on-managed-devices)をオフにして、SSH を他のホストとクラウドに残します | Remote, desktop, and notifications | Managed |660| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | デバイスで実行される[Desktop Code セッション](/docs/ja/desktop#local-sessions-on-managed-devices)をオフにして、SSH を他のホストとクラウドに残します | リモート、デスクトップ、通知 | Managed |

659| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | プロジェクトの[`.mcp.json`](/docs/ja/mcp#project-scope)から特定のサーバーを拒否します | MCP | Any file |661| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | プロジェクトの[`.mcp.json`](/docs/ja/mcp#project-scope)から特定のサーバーを拒否します | MCP | Any file |

660| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | [デスクトップ](/docs/ja/desktop)iOS Simulator ペインで Claude のツールをブロックします | Tools | Managed |662| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | [デスクトップ](/docs/ja/desktop)iOS Simulator ペインで Claude のツールをブロックします | ツール | Managed |

661| [`disableRemoteControl`](#disableremotecontrol) | [リモートコントロール](/docs/ja/remote-control)をすべての場所でオフにします | Remote, desktop, and notifications | Any file |663| [`disableRemoteControl`](#disableremotecontrol) | [リモートコントロール](/docs/ja/remote-control)をそれが開始できるすべての場所でオフにします | リモート、デスクトップ、通知 | Any file |

662| [`disableSideloadFlags`](#disablesideloadflags) | [プラグイン](/docs/ja/plugins/overview)、[サブエージェント](/docs/ja/sub-agents)、および[MCP サーバー](/docs/ja/mcp)をサイドロードする CLI フラグを拒否します | Enterprise and managed settings | Managed |664| [`disableSideloadFlags`](#disablesideloadflags) | [プラグイン](/docs/ja/plugins/overview)、[サブエージェント](/docs/ja/sub-agents)、[MCP サーバー](/docs/ja/mcp)をサイドロードする CLI フラグを拒否します | エンタープライズとマネージド設定 | Managed |

663| [`disableSkillShellExecution`](#disableskillshellexecution) | [スキル](/docs/ja/skills)およびカスタムコマンドがインラインシェルを実行するのを停止します | Plugins and skills | Any file |665| [`disableSkillShellExecution`](#disableskillshellexecution) | [スキル](/docs/ja/skills)とカスタムコマンドがインラインシェルを実行するのを停止します | プラグインとスキル | Any file |

664| [`disableWorkflows`](#disableworkflows) | すべてのユーザーの[動的ワークフロー](/docs/ja/workflows)をオフにします。自分自身の場合は `enableWorkflows` を使用します | Hooks and automation | Any file |666| [`disableWorkflows`](#disableworkflows) | [動的ワークフロー](/docs/ja/workflows)をすべてのユーザーに対してオフにします。自分自身の場合は `enableWorkflows` を使用します | フックと自動化 | Any file |

665| [`editorMode`](#editormode) | 入力プロンプトで[vim キーバインディング](/docs/ja/interactive-mode#vim-editor-mode)を使用します | Interface and terminal | Any file |667| [`editorMode`](#editormode) | 入力プロンプトで[vim キーバインディング](/docs/ja/interactive-mode#vim-editor-mode)を使用します | インターフェースとターミナル | Any file |

666| [`effortLevel`](#effortlevel) | 保存されたレベルを持たないモデルのデフォルト[努力レベル](/docs/ja/model-config#adjust-effort-level)を設定します | Model and responses | Any file |668| [`effortLevel`](#effortlevel) | 保存されたレベルを持たないモデルのデフォルト[努力レベル](/docs/ja/model-config#adjust-effort-level)を設定します | モデルと応答 | Any file |

667| [`emojiCompletionEnabled`](#emojicompletionenabled) | プロンプト入力で[`:shortcode:` 絵文字の提案と置換](/docs/ja/interactive-mode#emoji-shortcodes)をオフにします | Interface and terminal | Any file |669| [`emojiCompletionEnabled`](#emojicompletionenabled) | プロンプト入力で[`:shortcode:` 絵文字の提案と置換](/docs/ja/interactive-mode#emoji-shortcodes)をオフにします | インターフェースとターミナル | Any file |

668| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | プロンプトなしでプロジェクト[`.mcp.json`](/docs/ja/mcp#project-server-approvals-and-workspace-trust)ファイル内のすべてのサーバーを承認します | MCP | Any file |670| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | プロジェクト[`.mcp.json`](/docs/ja/mcp#project-server-approvals-and-workspace-trust)ファイル内のすべてのサーバーをプロンプトなしで承認します | MCP | Any file |

669| [`enableArtifact`](#enableartifact) | 任意のファイルで `false` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします。ファイルはそれをオンに戻すことはできません | Remote, desktop, and notifications | Any file |671| [`enableArtifact`](#enableartifact) | 任意のファイルで `false` を使用して[Artifact ツール](/docs/ja/artifacts)をオフにします。ファイルはそれをオンに戻すことはできません | リモート、デスクトップ、通知 | Any file |

670| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | プロジェクトの[`.mcp.json`](/docs/ja/mcp#project-server-approvals-and-workspace-trust)から特定のサーバーを承認します | MCP | Any file |672| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | プロジェクトの[`.mcp.json`](/docs/ja/mcp#project-server-approvals-and-workspace-trust)から特定のサーバーを承認します | MCP | Any file |

671| [`enabledPlugins`](#enabledplugins) | スコープごとに個別の[プラグイン](/docs/ja/plugins/overview)をオンまたはオフにします | Plugins and skills | Any file |673| [`enabledPlugins`](#enabledplugins) | スコープごとに個別の[プラグイン](/docs/ja/plugins/overview)をオンまたはオフにします | プラグインとスキル | Any file |

672| [`enableWorkflows`](#enableworkflows) | プランのデフォルトに対して[動的ワークフロー](/docs/ja/workflows)をオンまたはオフにします | Hooks and automation | Any file |674| [`enableWorkflows`](#enableworkflows) | [動的ワークフロー](/docs/ja/workflows)をプランのデフォルトに対してオンまたはオフにします | フックと自動化 | Any file |

673| [`enforceAvailableModels`](#enforceavailablemodels) | [`/model` デフォルト選択](/docs/ja/model-config#enforce-the-allowlist-for-the-default-model)を `availableModels` 許可リスト内に保ちます | Model and responses | Any file |675| [`enforceAvailableModels`](#enforceavailablemodels) | [`/model` デフォルト選択](/docs/ja/model-config#enforce-the-allowlist-for-the-default-model)を `availableModels` 許可リスト内に保ちます | モデルと応答 | Any file |

674| [`env`](#env) | すべてのセッションとそのサブプロセスの[環境変数](/docs/ja/env-vars#in-settings-files)を設定します | Memory and context | Any file |676| [`env`](#env) | すべてのセッションとそのサブプロセスの[環境変数](/docs/ja/env-vars#in-settings-files)を設定します | メモリとコンテキスト | Any file |

675| [`externalEditorContext`](#externaleditorcontext) | [Ctrl+G](/docs/ja/interactive-mode#general-controls)を押して編集するときに Claude の最後の応答をコメントとして表示します | Global config settings | Global config |677| [`externalEditorContext`](#externaleditorcontext) | [Ctrl+G](/docs/ja/interactive-mode#general-controls)を押して編集するときに Claude の最後の応答をコメントとして表示します | グローバル設定 | Global config |

676| [`extraKnownMarketplaces`](#extraknownmarketplaces) | リポジトリまたは組織の[マーケットプレイス](/docs/ja/plugins/overview)を登録します | Plugins and skills | Any file |678| [`extraKnownMarketplaces`](#extraknownmarketplaces) | リポジトリまたは組織の[マーケットプレイス](/docs/ja/plugins/overview)を登録します | プラグインとスキル | Any file |

677| [`fallbackModel`](#fallbackmodel) | プライマリがオーバーロードされたときの[バックアップモデル](/docs/ja/model-config#fallback-model-chains)に名前を付けます | Model and responses | Any file |679| [`fallbackModel`](#fallbackmodel) | プライマリがオーバーロードされたときの[バックアップモデル](/docs/ja/model-config#fallback-model-chains)に名前を付けます | モデルと応答 | Any file |

678| [`fastMode`](#fastmode) | 利用可能なセッションで[高速モード](/docs/ja/fast-mode)をオンにします | Model and responses | Any file |680| [`fastMode`](#fastmode) | 利用可能なセッションで[高速モード](/docs/ja/fast-mode)をオンにします | モデルと応答 | Any file |

679| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | ユーザーが各セッションで[高速モード](/docs/ja/fast-mode)をオンにすることを要求します | Model and responses | Any file |681| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | ユーザーが各セッションで[高速モード](/docs/ja/fast-mode)をオンにすることを要求します | モデルと応答 | Any file |

680| [`feedbackDrafts`](#feedbackdrafts) | Claude が[フィードバックドラフト](/docs/ja/tools-reference#sendfeedback-tool-behavior)をキューに入れるかどうかを制御します | Privacy and telemetry | User or managed |682| [`feedbackDrafts`](#feedbackdrafts) | Claude が[フィードバックドラフト](/docs/ja/tools-reference#sendfeedback-tool-behavior)をキューに入れるかどうかを制御します | プライバシーとテレメトリ | User or managed |

681| [`feedbackSurveyRate`](#feedbacksurveyrate) | [セッション品質調査](/docs/ja/data-usage#session-quality-surveys)が表示される頻度を変更します | Privacy and telemetry | Any file |683| [`feedbackSurveyRate`](#feedbacksurveyrate) | [セッション品質調査](/docs/ja/data-usage#session-quality-surveys)が表示される頻度を変更します | プライバシーとテレメトリ | Any file |

682| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | [`/rewind`](/docs/ja/checkpointing)が復元するファイルスナップショットをオフまたはオンにします | Memory and context | Any file |684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | [`/rewind`](/docs/ja/checkpointing)が復元するファイルスナップショットをオフまたはオンにします | メモリとコンテキスト | Any file |

683| [`fileSuggestion`](#filesuggestion) | 独自のコマンドから[`@` ファイルオートコンプリート](/docs/ja/interactive-mode#quick-commands)を提供します | Interface and terminal | Any file |685| [`fileSuggestion`](#filesuggestion) | 独自のコマンドから[`@` ファイルオートコンプリート](/docs/ja/interactive-mode#quick-commands)を提供します | インターフェースとターミナル | Any file |

684| [`footerLinksRegexes`](#footerlinksregexes) | 出力内の問題またはレビュー ID を入力ボックスの下の[クリック可能なリンク](/docs/ja/statusline#clickable-links)にします | Interface and terminal | User or managed |686| [`footerLinksRegexes`](#footerlinksregexes) | 出力内の問題またはレビュー ID を入力ボックスの下の[クリック可能なリンク](/docs/ja/statusline#clickable-links)にします | インターフェースとターミナル | User or managed |

685| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | ログイン画面が接続する[ゲートウェイ URL](/docs/ja/claude-apps-gateway#set-the-gateway-url)を設定します | Authentication and providers | Managed |687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | ログイン画面が接続する[ゲートウェイ URL](/docs/ja/claude-apps-gateway#set-the-gateway-url)を設定します | 認証とプロバイダー | Managed |

686| [`forceLoginMethod`](#forceloginmethod) | [ログインを制限](/docs/ja/authentication#restrict-login-to-your-organization)して claude.ai、Claude Console、または[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)にします | Authentication and providers | Any file |688| [`forceLoginMethod`](#forceloginmethod) | [ログインを制限](/docs/ja/authentication#restrict-login-to-your-organization)して claude.ai、Claude Console、または[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)にします | 認証とプロバイダー | Any file |

687| [`forceLoginOrgUUID`](#forceloginorguuid) | [claude.ai ログインを組織にピン留め](/docs/ja/authentication#restrict-login-to-your-organization)します。マネージドソースのみがそれを強制します | Authentication and providers | Any file |689| [`forceLoginOrgUUID`](#forceloginorguuid) | [claude.ai ログインを組織にピン留め](/docs/ja/authentication#restrict-login-to-your-organization)します。マネージドソースのみがそれを強制します | 認証とプロバイダー | Any file |

688| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | [サーバーマネージド設定](/docs/ja/server-managed-settings)が新しく取得されるまでスタートアップをブロックします | Enterprise and managed settings | Managed |690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | [サーバーマネージド設定](/docs/ja/server-managed-settings)が新しく取得されるまでスタートアップをブロックします | エンタープライズとマネージド設定 | Managed |

689| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | `/login` が組織が内部的に使用するパブリック IPv4 スペース上の[クラウドゲートウェイ](/docs/ja/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)に到達することを許可します | Authentication and providers | Managed |691| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | `/login` が組織が内部的に使用するパブリック IPv4 スペース上の[クラウドゲートウェイ](/docs/ja/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)に到達することを許可します | 認証とプロバイダー | Managed |

690| [`gcpAuthRefresh`](#gcpauthrefresh) | 独自のコマンドで[Google Cloud 認証情報](/docs/ja/google-vertex-ai#advanced-credential-configuration)をリフレッシュします | Authentication and providers | Any file |692| [`gcpAuthRefresh`](#gcpauthrefresh) | 独自のコマンドで[Google Cloud 認証情報](/docs/ja/google-vertex-ai#advanced-credential-configuration)をリフレッシュします | 認証とプロバイダー | Any file |

691| [`hooks`](#hooks) | Claude Code のライフサイクルのポイントで[フック](/docs/ja/hooks)として独自のコマンドを実行します | Hooks and automation | Any file |693| [`hooks`](#hooks) | Claude Code のライフサイクルのポイントで[フック](/docs/ja/hooks)として独自のコマンドを実行します | フックと自動化 | Any file |

692| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | [HTTP フック](/docs/ja/hooks)がヘッダーに入れることができる環境変数を制限します | Hooks and automation | Any file |694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | [HTTP フック](/docs/ja/hooks)がヘッダーに入れることができる環境変数を制限します | フックと自動化 | Any file |

693| [`includeCoAuthoredBy`](#includecoauthoredby) | 非推奨。`attribution` を使用してコミットと PR の属性を非表示または変更します | Git and attribution | Any file |695| [`includeCoAuthoredBy`](#includecoauthoredby) | 非推奨。`attribution` を使用してコミットと PR 属性を非表示または変更します | Git と属性 | Any file |

694| [`includeGitInstructions`](#includegitinstructions) | Claude の context から組み込みコミットおよび PR 指示を削除します | Git and attribution | Any file |696| [`includeGitInstructions`](#includegitinstructions) | Claude のコンテキストから組み込みコミットと PR 指示を削除します | Git と属性 | Any file |

695| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Claude があなたを待っているときに[プッシュ通知](/docs/ja/remote-control#mobile-push-notifications)を取得します | Remote, desktop, and notifications | Any file |697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Claude があなたを待っているときに[プッシュ通知](/docs/ja/remote-control#mobile-push-notifications)を取得します | リモート、デスクトップ、通知 | Any file |

696| [`isolatePeerMachines`](#isolatepeermachines) | Claude が[別のマシンのセッションの 1 つにメッセージを送信](/docs/ja/cross-session-messaging#require-approval-for-cross-machine-messages)する前に確認を求めます | Agents, sessions, and worktrees | Any file |698| [`isolatePeerMachines`](#isolatepeermachines) | Claude が別のマシンのセッションの 1 つに[メッセージを送信](/docs/ja/cross-session-messaging#require-approval-for-cross-machine-messages)する前に確認を求めます | エージェント、セッション、ワークツリー | Any file |

697| [`keybindingFlavor`](#keybindingflavor) | 非推奨で効果がありません。単語編集ショートカットは常に[readline 規約に従う](/docs/ja/interactive-mode#make-ctrl-w-delete-back-to-whitespace)ます | Interface and terminal | Any file |699| [`keybindingFlavor`](#keybindingflavor) | 非推奨で効果がありません。単語編集ショートカットは常に[readline 規約に従う](/docs/ja/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | インターフェースとターミナル | Any file |

698| [`language`](#language) | Claude が英語以外の言語で応答するようにします | Model and responses | Any file |700| [`language`](#language) | Claude が英語以外の言語で応答するようにします | モデルと応答 | Any file |

699| [`leftArrowOpensAgents`](#leftarrowopensagents) | [バックグラウンドセッションとエージェントビューを開く](/docs/ja/agent-view#switch-sessions-without-leaving-the-terminal)ショートカット `←` をオフにします | Global config settings | Global config |701| [`leftArrowOpensAgents`](#leftarrowopensagents) | [セッションをバックグラウンドにしてエージェントビューを開く](/docs/ja/agent-view#switch-sessions-without-leaving-the-terminal) `←` ショートカットをオフにします | グローバル設定 | Global config |

700| [`managedMcpServers`](#managedmcpservers) | ユーザーが追加するものと一緒にすべてのユーザーにリモート[MCP サーバー](/docs/ja/managed-mcp#provide-servers-through-managed-settings)を提供します | MCP | Managed |702| [`managedMcpServers`](#managedmcpservers) | ユーザーが追加するものと一緒にすべてのユーザーにリモート[MCP サーバー](/docs/ja/managed-mcp#provide-servers-through-managed-settings)を提供します | MCP | Managed |

701| [`managedSourcesBehavior`](#managedsourcesbehavior) | デプロイするすべての[マネージドソース](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)を構成する代わりに、最優先のものだけを使用します | Enterprise and managed settings | Managed |703| [`managedSourcesBehavior`](#managedsourcesbehavior) | デプロイするすべての[マネージドソース](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)を構成する代わりに、最優先度のものだけを使用します | エンタープライズとマネージド設定 | Managed |

702| [`maxEffortLevel`](#maxeffortlevel) | すべてのモデルまたはモデルごと、すべてのプロバイダーで[努力レベル](/docs/ja/model-config#adjust-effort-level)をキャップします | Model and responses | Any file |704| [`maxEffortLevel`](#maxeffortlevel) | すべてのモデルまたはモデルごと、すべてのプロバイダーで[努力レベル](/docs/ja/model-config#adjust-effort-level)をキャップします | モデルと応答 | Any file |

703| [`maxProseWidth`](#maxprosewidth) | 広いターミナルで Claude の応答内の散文がどのくらい広く実行されるかをキャップします | Interface and terminal | Any file |705| [`maxProseWidth`](#maxprosewidth) | Claude の応答の散文が広いターミナルで実行される幅をキャップします | インターフェースとターミナル | Any file |

704| [`minimumVersion`](#minimumversion) | [自動更新](/docs/ja/setup#pin-a-minimum-version)がバージョン以下のものをインストールするのを防ぎます | Updates and versioning | Any file |706| [`minimumVersion`](#minimumversion) | [自動更新](/docs/ja/setup#pin-a-minimum-version)がバージョン以下のものをインストールするのを防ぎます | 更新とバージョン管理 | Any file |

705| [`model`](#model) | Claude Code が開始する[モデル](/docs/ja/model-config#set-a-default-model-for-new-sessions)を変更します | Model and responses | Any file |707| [`model`](#model) | Claude Code が開始する[モデル](/docs/ja/model-config#set-a-default-model-for-new-sessions)を変更します | モデルと応答 | Any file |

706| [`modelOverrides`](#modeloverrides) | [モデル ID をマップ](/docs/ja/model-config#override-model-ids-per-version)して、Bedrock ARN などのプロバイダーの ID にします | Model and responses | Any file |708| [`modelOverrides`](#modeloverrides) | [モデル ID をマップ](/docs/ja/model-config#override-model-ids-per-version)して、Bedrock ARN などのプロバイダーの ID にします | モデルと応答 | Any file |

707| [`modelPicker`](#modelpicker) | [`/model` ピッカー](/docs/ja/model-config#available-models)がリストするモデルを選択し、独自の順序と独自のラベルで選択します | Model and responses | User or managed |709| [`modelPicker`](#modelpicker) | [`/model` ピッカー](/docs/ja/model-config#available-models)がリストするモデルを選択します。独自の順序と独自のラベル付きで | モデルと応答 | User or managed |

708| [`modelPricing`](#modelpricing) | リスト価格ではなく組織の契約レートで支出を報告します | Model and responses | Managed |710| [`modelPricing`](#modelpricing) | リスト価格の代わりに組織の契約レートで支出を報告します | モデルと応答 | Managed |

709| [`modelSettings`](#modelsettings) | モデルごとに保存された[努力レベル](/docs/ja/model-config#adjust-effort-level)を保持するか、1 つのモデルの努力をキャップします | Model and responses | Any file |711| [`modelSettings`](#modelsettings) | モデルごとに保存された[努力レベル](/docs/ja/model-config#adjust-effort-level)を保つか、1 つのモデルの努力をキャップします | モデルと応答 | Any file |

710| [`otelHeadersHelper`](#otelheadershelper) | 独自のコマンドで回転する[OpenTelemetry](/docs/ja/monitoring-usage#dynamic-headers)ヘッダーを生成します | Authentication and providers | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | 独自のコマンドで回転する[OpenTelemetry](/docs/ja/monitoring-usage#dynamic-headers)ヘッダーを生成します | 認証とプロバイダー | Any file |

711| [`outputStyle`](#outputstyle) | [出力スタイル](/docs/ja/output-styles)で Claude の役割、トーン、出力形式を変更します | Model and responses | Any file |713| [`outputStyle`](#outputstyle) | Claude の役割、トーン、出力形式を[出力スタイル](/docs/ja/output-styles)で変更します | モデルと応答 | Any file |

712| [`parentSettingsBehavior`](#parentsettingsbehavior) | [SDK または IDE ホスト](/docs/ja/managed-settings#let-an-embedding-host-add-policy)が[マネージド設定](/docs/ja/managed-settings)をデプロイするときに渡す制限を適用または削除します | Enterprise and managed settings | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | [SDK または IDE ホスト](/docs/ja/managed-settings#let-an-embedding-host-add-policy)が[マネージド設定](/docs/ja/managed-settings)をデプロイするときに渡す制限を適用または削除します | エンタープライズとマネージド設定 | Managed |

713| [`permissionExplainerEnabled`](#permissionexplainerenabled) | v2.1.257 で削除されました。シェル権限プロンプトの `Ctrl+E` コマンド説明と一緒に削除されました | Global config settings | Global config |715| [`permissionExplainerEnabled`](#permissionexplainerenabled) | v2.1.257 で削除されました。シェル権限プロンプトの `Ctrl+E` コマンド説明と一緒に | グローバル設定 | Global config |

714| [`permissions`](#permissions) | 許可、質問、拒否ルール、および開始[権限モード](/docs/ja/permission-modes)を設定します | Permission settings | Any file |716| [`permissions`](#permissions) | 許可、質問、拒否ルール、および開始[権限モード](/docs/ja/permission-modes)を設定します | 権限設定 | Any file |

715| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Claude に[現在のディレクトリ外のディレクトリ](/docs/ja/permissions#working-directories)へのファイルアクセスを付与します | Permission settings | Any file |717| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Claude に[現在のディレクトリ外のディレクトリ](/docs/ja/permissions#working-directories)へのファイルアクセスを付与します | 権限設定 | Any file |

716| [`permissions.allow`](#permissions-allow) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をプロンプトなしで承認します | Permission settings | Any file |718| [`permissions.allow`](#permissions-allow) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をプロンプトなしで承認します | 権限設定 | Any file |

717| [`permissions.ask`](#permissions-ask) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)の前に常にプロンプトを表示します | Permission settings | Any file |719| [`permissions.ask`](#permissions-ask) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)の前に常にプロンプトを表示します | 権限設定 | Any file |

718| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | ファイルツールが[作業ディレクトリ](/docs/ja/permissions#working-directories)外の読み取りをすべての権限モードで拒否するようにします | Permission settings | Any file |720| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | ファイルツールがすべての権限モードで[作業ディレクトリ](/docs/ja/permissions#working-directories)外の読み取りを拒否するようにします | 権限設定 | Any file |

719| [`permissions.defaultMode`](#permissions-defaultmode) | 新しいセッションが開始する[権限モード](/docs/ja/permission-modes#which-mode-a-session-starts-in)を設定します | Permission settings | Any file |721| [`permissions.defaultMode`](#permissions-defaultmode) | 新しいセッションが開始する[権限モード](/docs/ja/permission-modes#which-mode-a-session-starts-in)を設定します | 権限設定 | Any file |

720| [`permissions.deny`](#permissions-deny) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をブロックします。秘密を保持するファイルの読み取りを含みます | Permission settings | Any file |722| [`permissions.deny`](#permissions-deny) | リストされた[ツール使用](/docs/ja/permissions#permission-rule-syntax)をブロックします。秘密を保持するファイルの読み取りを含む | 権限設定 | Any file |

721| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 誰もが[bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)に入るのを防ぎます | Permission settings | Any file |723| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 誰もが[bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)に入るのを防ぎます | 権限設定 | Any file |

722| [`plansDirectory`](#plansdirectory) | [プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)がプランファイルを書き込む場所を選択します | Memory and context | Any file |724| [`plansDirectory`](#plansdirectory) | [プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)がプランファイルを書き込む場所を選択します | メモリとコンテキスト | Any file |

723| [`pluginConfigs`](#pluginconfigs) | [プラグイン](/docs/ja/plugins/overview)の設定ダイアログで提供した回答を保存します | Plugins and skills | User or managed |725| [`pluginConfigs`](#pluginconfigs) | [プラグイン](/docs/ja/plugins/overview)の設定ダイアログに与えた回答を保存します | プラグインとスキル | User or managed |

724| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | `/plugin` でプラグインインストール提案を表示できる[マーケットプレイス](/docs/ja/plugins/org#restrict-what-users-can-install)を選択します | Plugins and skills | Managed |726| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | `/plugin` でプラグインインストール提案を表示できる[マーケットプレイス](/docs/ja/plugins/org#restrict-what-users-can-install)を選択します | プラグインとスキル | Managed |

725| [`pluginTrustMessage`](#plugintrustmessage) | [プラグイン](/docs/ja/plugins/overview)信頼警告に独自のテキストを追加します | Plugins and skills | Managed |727| [`pluginTrustMessage`](#plugintrustmessage) | [プラグイン](/docs/ja/plugins/overview)信頼警告に独自のテキストを追加します | プラグインとスキル | Managed |

726| [`policyHelper`](#policyhelper) | スタートアップで[マネージド設定](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を計算する実行可能ファイルを実行します | Enterprise and managed settings | Managed |728| [`policyHelper`](#policyhelper) | スタートアップで[マネージド設定](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を計算する実行可能ファイルを実行します | エンタープライズとマネージド設定 | Managed |

727| [`policyHelper.path`](#policyhelper-path) | Claude Code が実行する[ヘルパー実行可能ファイル](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)に名前を付けます | Enterprise and managed settings | Managed |729| [`policyHelper.path`](#policyhelper-path) | Claude Code が実行する[ヘルパー実行可能ファイル](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)に名前を付けます | エンタープライズとマネージド設定 | Managed |

728| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | バックグラウンドで[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を間隔で再実行します | Enterprise and managed settings | Managed |730| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | バックグラウンドで[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を間隔で再実行します | エンタープライズとマネージド設定 | Managed |

729| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Claude Code が[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を待つ時間を設定します | Enterprise and managed settings | Managed |731| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Claude Code が[ヘルパー](/docs/ja/managed-settings#compute-the-policy-with-a-helper-program)を待つ時間を設定します | エンタープライズとマネージド設定 | Managed |

730| [`preferredNotifChannel`](#preferrednotifchannel) | タスク完了の[ターミナルベルまたはデスクトップ通知](/docs/ja/terminal-config#get-a-terminal-bell-or-notification)を選択します | Remote, desktop, and notifications | Any file |732| [`preferredNotifChannel`](#preferrednotifchannel) | タスク完了の[ターミナルベルまたはデスクトップ通知](/docs/ja/terminal-config#get-a-terminal-bell-or-notification)を選択します | リモート、デスクトップ、通知 | Any file |

731| [`prefersReducedMotion`](#prefersreducedmotion) | [スピナー、シマー、フラッシュアニメーションを削減またはオフ](/docs/ja/accessibility#accessibility-settings)にします | Interface and terminal | Any file |733| [`prefersReducedMotion`](#prefersreducedmotion) | [スピナー、シマー、フラッシュアニメーションを削除またはオフ](/docs/ja/accessibility#accessibility-settings)にします | インターフェースとターミナル | Any file |

732| [`processWrapper`](#processwrapper) | Claude Code のバックグラウンドプロセスを macOS および Linux の[企業ランチャー](/docs/ja/corporate-launcher)を通して実行します | Agents, sessions, and worktrees | User or managed |734| [`prependPlugins`](#prependplugins) | ユーザーがインストールするすべてのモッドの前に組織の[モッド](/docs/ja/plugins/mods/admin)を実行します | プラグインとスキル | User or managed |

733| [`promptCacheTtl`](#promptcachettl) | メイン会話の[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | Model and responses | Any file |735| [`processWrapper`](#processwrapper) | Claude Code のバックグラウンドプロセスを macOS および Linux の[企業ランチャー](/docs/ja/corporate-launcher)を通じて実行します | エージェント、セッション、ワークツリー | User or managed |

734| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 入力ボックスのグレーアウトされた[プロンプト提案](/docs/ja/interactive-mode#prompt-suggestions)を非表示にします | Interface and terminal | Any file |736| [`promptCacheTtl`](#promptcachettl) | メイン会話の[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | モデルと応答 | Any file |

735| [`prStatusFooterEnabled`](#prstatusfooterenabled) | プロンプトフッターの[PR レビューステータス](/docs/ja/interactive-mode#pr-review-status)バッジとその背後にあるプルリクエストチェックをオフにします | Global config settings | Global config |737| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 入力ボックスのグレーアウトされた[プロンプト提案](/docs/ja/interactive-mode#prompt-suggestions)を非表示にします | インターフェースとターミナル | Any file |

736| [`prUrlTemplate`](#prurltemplate) | PR リンクを github.com ではなく内部コードレビューツールにポイントします | Git and attribution | Any file |738| [`prStatusFooterEnabled`](#prstatusfooterenabled) | プロンプトフッターの[PR レビューステータス](/docs/ja/interactive-mode#pr-review-status)バッジとその背後にあるプルリクエストチェックをオフにします | グローバル設定 | Global config |

737| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | `claude --cloud` のデフォルト[クラウド環境](/docs/ja/cloud-environments)を選択します。自己ホスト型 `ccpool_` ID はユーザーおよびマネージド設定および `--settings` からのみ読み取られます | Remote, desktop, and notifications | Any file |739| [`prUrlTemplate`](#prurltemplate) | PR リンクを github.com の代わりに内部コードレビューツールに指します | Git と属性 | Any file |

738| [`remoteControlAtStartup`](#remotecontrolatstartup) | セッション開始時に[リモートコントロール](/docs/ja/remote-control#enable-remote-control-for-all-sessions)に自動的に接続します | Remote, desktop, and notifications | Any file |740| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | `claude --cloud` のデフォルト[クラウド環境](/docs/ja/cloud-environments)を選択します。自己ホスト型 `ccpool_` ID はユーザーおよびマネージド設定と `--settings` からのみ読み取られます | リモート、デスクトップ、通知 | Any file |

739| [`requiredMaximumVersion`](#requiredmaximumversion) | 組織が許可するバージョンより新しいバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | Updates and versioning | Managed |741| [`remoteControlAtStartup`](#remotecontrolatstartup) | セッション開始時に[リモートコントロール](/docs/ja/remote-control#enable-remote-control-for-all-sessions)に自動的に接続します | リモート、デスクトップ、通知 | Any file |

740| [`requiredMinimumVersion`](#requiredminimumversion) | 組織が要求するバージョンより古いバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | Updates and versioning | Managed |742| [`requiredMaximumVersion`](#requiredmaximumversion) | 組織が許可するバージョンより新しいバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | 更新とバージョン管理 | Managed |

741| [`respectGitignore`](#respectgitignore) | gitignored ファイルを[`@` ファイルピッカー](/docs/ja/interactive-mode#quick-commands)から除外します | Interface and terminal | Any file |743| [`requiredMinimumVersion`](#requiredminimumversion) | 組織が要求するバージョンより古いバージョンで[起動を拒否](/docs/ja/setup#pin-a-minimum-version)します | 更新とバージョン管理 | Managed |

742| [`respondToBashCommands`](#respondtobashcommands) | [`!` シェルコマンド](/docs/ja/interactive-mode#shell-mode-with-prefix)実行後に Claude が応答するのを停止します | Interface and terminal | Any file |744| [`respectGitignore`](#respectgitignore) | gitignored ファイルを[`@` ファイルピッカー](/docs/ja/interactive-mode#quick-commands)から除外します | インターフェースとターミナル | Any file |

743| [`sandbox`](#sandbox) | macOS、Linux、WSL2 で[Bash コマンドをファイルシステムとネットワークから分離](/docs/ja/sandboxing)します | Sandbox settings | Any file |745| [`respondToBashCommands`](#respondtobashcommands) | [`!` シェルコマンド](/docs/ja/interactive-mode#shell-mode-with-prefix)の実行後に Claude が応答するのを停止します | インターフェースとターミナル | Any file |

744| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で Apple Events を送信することを許可します | Sandbox settings | User or managed |746| [`sandbox`](#sandbox) | macOS、Linux、WSL2 で[Bash コマンドをファイルシステムとネットワークから分離](/docs/ja/sandboxing)します | サンドボックス設定 | Any file |

745| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Claude が[サンドボックス](/docs/ja/sandboxing#the-unsandboxed-retry-escape-hatch)外でブロックされたコマンドを再試行することを許可するか、禁止します | Sandbox settings | Any file |747| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で Apple Events を送信することを許可します | サンドボックス設定 | User or managed |

746| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | [サンドボックス化](/docs/ja/sandboxing#auto-allow-mode)されたコマンドを権限プロンプトなしで実行します | Sandbox settings | Any file |748| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Claude がブロックされたコマンドを[サンドボックス](/docs/ja/sandboxing#the-unsandboxed-retry-escape-hatch)外で再試行することを許可するか、禁止します | サンドボックス設定 | Any file |

747| [`sandbox.bwrapPath`](#sandbox-bwrappath) | [サンドボックス](/docs/ja/sandboxing)を `PATH` 外の bubblewrap バイナリにポイントします | Sandbox settings | Managed |749| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | [サンドボックス化](/docs/ja/sandboxing#auto-allow-mode)されたコマンドを権限プロンプトなしで実行します | サンドボックス設定 | Any file |

748| [`sandbox.credentials`](#sandbox-credentials) | [サンドボックス](/docs/ja/sandboxing#protect-credentials)内の認証情報ファイルと変数を非表示またはマスクします | Sandbox settings | Any file |750| [`sandbox.bwrapPath`](#sandbox-bwrappath) | [サンドボックス](/docs/ja/sandboxing)を `PATH` 外の bubblewrap バイナリに指します | サンドボックス設定 | Managed |

749| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | [マスクされた認証情報](/docs/ja/sandboxing#mask-credentials)が信頼されたテストネットワーク上のプレーン HTTP サービスに到達することを許可します | Sandbox settings | User or managed |751| [`sandbox.credentials`](#sandbox-credentials) | [サンドボックス](/docs/ja/sandboxing#protect-credentials)内の認証情報ファイルと変数を非表示またはマスクします | サンドボックス設定 | Any file |

750| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | カスタム名の AWS キー変数を[再署名](/docs/ja/sandboxing#re-sign-aws-requests)用の 1 つの認証情報にリンクします | Sandbox settings | User or managed |752| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | [マスクされた認証情報](/docs/ja/sandboxing#mask-credentials)が信頼できるテストネットワーク上のプレーン HTTP サービスに到達することを許可します | サンドボックス設定 | User or managed |

751| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | [サンドボックス](/docs/ja/sandboxing#mask-environment-variables)内の環境変数を設定解除またはマスクします | Sandbox settings | Any file |753| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | カスタム名の AWS キー変数を[再署名](/docs/ja/sandboxing#re-sign-aws-requests)用の 1 つの認証情報にリンクします | サンドボックス設定 | User or managed |

752| [`sandbox.credentials.files`](#sandbox-credentials-files) | [サンドボックス](/docs/ja/sandboxing#mask-credential-files)内の認証情報ファイルの読み取りをブロックまたはマスクします | Sandbox settings | Any file |754| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | [サンドボックス](/docs/ja/sandboxing#mask-environment-variables)内の環境変数を設定解除またはマスクします | サンドボックス設定 | Any file |

753| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | ストリーミング、事前署名、または[SigV4A AWS リクエスト](/docs/ja/sandboxing#re-sign-aws-requests)が失敗するか通過するかを選択します | Sandbox settings | User or managed |755| [`sandbox.credentials.files`](#sandbox-credentials-files) | [サンドボックス](/docs/ja/sandboxing#mask-credential-files)内の認証情報ファイルの読み取りをブロックまたはマスクします | サンドボックス設定 | Any file |

754| [`sandbox.enabled`](#sandbox-enabled) | macOS、Linux、WSL2 で[Bash サンドボックス](/docs/ja/sandboxing#get-started)をオンにします | Sandbox settings | Any file |756| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | ストリーミング、事前署名、または[SigV4A AWS リクエスト](/docs/ja/sandboxing#re-sign-aws-requests)が失敗するか通過するかを選択します | サンドボックス設定 | User or managed |

755| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Linux [サンドボックス](/docs/ja/sandboxing)を非特権コンテナ内で実行します | Sandbox settings | Any file |757| [`sandbox.enabled`](#sandbox-enabled) | macOS、Linux、WSL2 で[Bash サンドボックス](/docs/ja/sandboxing#get-started)をオンにします | サンドボックス設定 | Any file |

756| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | `gh`、`gcloud`、`terraform` が macOS の[サンドボックス](/docs/ja/sandboxing#troubleshooting)内の MITM プロキシの背後で TLS を検証することを許可します | Sandbox settings | Any file |758| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Linux [サンドボックス](/docs/ja/sandboxing)を非特権コンテナ内で実行します | サンドボックス設定 | Any file |

757| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | 常に[サンドボックス](/docs/ja/sandboxing)外で実行されるコマンドに名前を付けます | Sandbox settings | Any file |759| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | `gh`、`gcloud`、`terraform` が[サンドボックス](/docs/ja/sandboxing#troubleshooting)内の macOS で MITM プロキシの背後で TLS を検証することを許可します | サンドボックス設定 | Any file |

758| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | [サンドボックス](/docs/ja/sandboxing)ができないときに起動を拒否します。サンドボックス化されていない状態で実行する代わりに | Sandbox settings | Any file |760| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Claude Code が[サンドボックス](/docs/ja/sandboxing)外で実行できるコマンドに名前を付けます | サンドボックス設定 | Any file |

759| [`sandbox.filesystem`](#sandbox-filesystem) | [サンドボックス化](/docs/ja/sandboxing#filesystem-isolation)されたコマンドが読み取りおよび書き込みできるパスを制御します | Sandbox settings | Any file |761| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | [サンドボックス](/docs/ja/sandboxing)ができないときに、サンドボックス化されていない状態で実行する代わりに起動を拒否します | サンドボックス設定 | Any file |

760| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | 開発者が[組織がブロックした読み取りパス](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を再度開くのを停止します | Sandbox settings | Managed |762| [`sandbox.filesystem`](#sandbox-filesystem) | [サンドボックス化](/docs/ja/sandboxing#filesystem-isolation)されたコマンドが読み取りおよび書き込みできるパスを制御します | サンドボックス設定 | Any file |

761| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | [`denyRead`](#sandbox-filesystem-denyread)がブロックする領域内での読み取りを再度開きます | Sandbox settings | Any file |763| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | 開発者が[組織がブロックした読み取りパス](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)を再度開くのを防ぎます | サンドボックス設定 | Managed |

762| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが書き込みできるパスを追加します | Sandbox settings | Any file |764| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | [`denyRead`](#sandbox-filesystem-denyread)がブロックする領域内での読み取りを再度開きます | サンドボックス設定 | Any file |

763| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが特定のパスを読み取るのをブロックします | Sandbox settings | Any file |765| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが書き込みできるパスを追加します | サンドボックス設定 | Any file |

764| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが特定のパスに書き込むのをブロックします | Sandbox settings | Any file |766| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが特定のパスを読み取るのをブロックします | サンドボックス設定 | Any file |

765| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | ネットワーク分離を保持しながら[ファイルシステム分離をオフ](/docs/ja/sandboxing#disable-filesystem-isolation)にします | Sandbox settings | User or managed |767| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが特定のパスに書き込むのをブロックします | サンドボックス設定 | Any file |

766| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | コマンドがプローブすることが予想されるパスの違反レポートをサイレンスします | Sandbox settings | Any file |768| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | ネットワーク分離を保ちながら[ファイルシステム分離をオフ](/docs/ja/sandboxing#disable-filesystem-isolation)にします | サンドボックス設定 | User or managed |

767| [`sandbox.network`](#sandbox-network) | [サンドボックス化](/docs/ja/sandboxing#network-isolation)されたコマンドが到達するホスト、ポート、ソケットを制御します | Sandbox settings | Any file |769| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | コマンドがプローブすることが予想されるパスの違反レポートをサイレンスします | サンドボックス設定 | Any file |

768| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがすべての Unix ソケットに接続することを許可します | Sandbox settings | Any file |770| [`sandbox.network`](#sandbox-network) | [サンドボックス化](/docs/ja/sandboxing#network-isolation)されたコマンドが到達するホスト、ポート、ソケットを制御します | サンドボックス設定 | Any file |

769| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがそれらのプロンプトを表示しないようにドメインを事前許可します | Sandbox settings | Any file |771| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがすべての Unix ソケットに接続することを許可します | サンドボックス設定 | Any file |

770| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で localhost ポートにバインドすることを許可します | Sandbox settings | Any file |772| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドがプロンプトを表示しないようにドメインを事前に許可します | サンドボックス設定 | Any file |

771| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | macOS [サンドボックス化](/docs/ja/sandboxing)ツール(iOS Simulator または Playwright など)が XPC サービスに到達することを許可します | Sandbox settings | Any file |773| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で localhost ポートにバインドすることを許可します | サンドボックス設定 | Any file |

772| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | ネットワーク許可リストを[マネージド設定](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)にロックします | Sandbox settings | Managed |774| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | macOS [サンドボックス化](/docs/ja/sandboxing)ツール(iOS Simulator または Playwright など)が XPC サービスに到達することを許可します | サンドボックス設定 | Any file |

773| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で使用できる Unix ソケットパスをリストします | Sandbox settings | Any file |775| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | ネットワーク許可リストを[マネージド設定](/docs/ja/sandboxing#keep-developers-from-widening-the-policy)にロックします | サンドボックス設定 | Managed |

774| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドのドメインをブロックします。許可されたワイルドカード内でも | Sandbox settings | Any file |776| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドが macOS で使用できる Unix ソケットパスをリストします | サンドボックス設定 | Any file |

775| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | [サンドボックス](/docs/ja/sandboxing#custom-proxy-configuration)HTTP トラフィックを独自のプロキシを通してルーティングします | Sandbox settings | Any file |777| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | [サンドボックス化](/docs/ja/sandboxing)されたコマンドのドメインをブロックします。許可されたワイルドカード内でも | サンドボックス設定 | Any file |

776| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | [サンドボックス](/docs/ja/sandboxing#custom-proxy-configuration)SOCKS トラフィックを独自のプロキシを通してルーティングします | Sandbox settings | Any file |778| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | [サンドボックス](/docs/ja/sandboxing#custom-proxy-configuration)HTTP トラフィックを独自のプロキシを通じてルーティングします | サンドボックス設定 | Any file |

777| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | プロンプトの代わりに[許可リスト](/docs/ja/sandboxing#network-isolation)外のホストを拒否します | Sandbox settings | User or managed |779| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | [サンドボックス](/docs/ja/sandboxing#custom-proxy-configuration)SOCKS トラフィックを独自のプロキシを通じてルーティングします | サンドボックス設定 | Any file |

778| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | [サンドボックス](/docs/ja/sandboxing#network-isolation)プロキシが TLS を終了して HTTPS リクエストを読み取ることができるようにします | Sandbox settings | User or managed |780| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | プロンプトの代わりに[許可リスト](/docs/ja/sandboxing#network-isolation)外のホストを拒否します | サンドボックス設定 | User or managed |

779| [`sandbox.ripgrep`](#sandbox-ripgrep) | [サンドボックス](/docs/ja/sandboxing)内で独自の ripgrep バイナリを使用します | Sandbox settings | User or managed |781| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | [サンドボックス](/docs/ja/sandboxing#network-isolation)プロキシが TLS を終了して HTTPS リクエストを読み取ることができるようにします | サンドボックス設定 | User or managed |

780| [`sandbox.socatPath`](#sandbox-socatpath) | [サンドボックス](/docs/ja/sandboxing)プロキシを `PATH` 外の `socat` バイナリにポイントします | Sandbox settings | Managed |782| [`sandbox.ripgrep`](#sandbox-ripgrep) | [サンドボックス](/docs/ja/sandboxing)内で独自の ripgrep バイナリを使用します | サンドボックス設定 | User or managed |

781| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | [プラン受け入れ画面](/docs/ja/permission-modes#review-and-approve-a-plan)に「コンテキストをクリア」オプションを表示します | Interface and terminal | Any file |783| [`sandbox.socatPath`](#sandbox-socatpath) | [サンドボックス](/docs/ja/sandboxing)プロキシを `PATH` 外の `socat` バイナリに指します | サンドボックス設定 | Managed |

782| [`showThinkingSummaries`](#showthinkingsummaries) | Claude の[思考](/docs/ja/model-config#extended-thinking)の要約を折りたたまれたスタブの代わりに表示します | Model and responses | Any file |784| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | [プラン受け入れ画面](/docs/ja/permission-modes#review-and-approve-a-plan)に「コンテキストをクリア」オプションを表示します | インターフェースとターミナル | Any file |

783| [`showTurnDuration`](#showturnduration) | 各応答後の「Cooked for」期間を非表示にします | Interface and terminal | Any file |785| [`showThinkingSummaries`](#showthinkingsummaries) | 折りたたまれたスタブの代わりに Claude の[思考](/docs/ja/model-config#extended-thinking)の要約を表示します | モデルと応答 | Any file |

784| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)用にコンテキストをより多くまたはより少なく予約します | Memory and context | Any file |786| [`showTurnDuration`](#showturnduration) | 各応答後の「Cooked for」期間を非表示にします | インターフェースとターミナル | Any file |

785| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)内の各スキルの説明長をキャップします | Memory and context | Any file |787| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)用にコンテキストをより多くまたはより少なく予約します | メモリとコンテキスト | Any file |

786| [`skillOverrides`](#skilloverrides) | [SKILL.md を編集せずにスキルを非表示または折りたたむ](/docs/ja/skills#override-skill-visibility-from-settings) | Plugins and skills | Any file |788| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | [スキルリスティング](/docs/ja/skills#skill-descriptions-are-cut-short)内の各スキルの説明の長さをキャップします | メモリとコンテキスト | Any file |

787| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 組み込みデフォルトではなく自分で[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)に入るときに Claude Code が表示する 1 回限りの通知をスキップします | Permission settings | User or managed |789| [`skillOverrides`](#skilloverrides) | [スキルを非表示または折りたたむ](/docs/ja/skills#override-skill-visibility-from-settings)。SKILL.md を編集せずに | プラグインとスキル | Any file |

788| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | [bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)の前の確認ダイアログをスキップします | Permission settings | User, local, or managed |790| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 組み込みデフォルトではなく自分で[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)に入るときに Claude Code が表示する 1 回限りの通知をスキップします | 権限設定 | User or managed |

789| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Anthropic に到達できないときに[WebFetch ホスト名チェック](/docs/ja/tools-reference#webfetch-tool-behavior)をスキップします | Privacy and telemetry | Any file |791| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | [bypassPermissions モード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)の前の確認ダイアログをスキップします | 権限設定 | User, local, or managed |

790| [`spellcheck`](#spellcheck) | インストールする[スペルチェッカー](/docs/ja/interactive-mode#check-spelling-as-you-type)でプロンプト入力の誤字にアンダーラインを引きます | Interface and terminal | User or managed |792| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Anthropic に到達できないときに[WebFetch ホスト名チェック](/docs/ja/tools-reference#webfetch-tool-behavior)をスキップします | プライバシーとテレメトリ | Any file |

791| [`spinnerTipsEnabled`](#spinnertipsenabled) | Claude が作業中にスピナーのヒントを非表示にします | Interface and terminal | Any file |793| [`spellcheck`](#spellcheck) | インストールする[スペルチェッカー](/docs/ja/interactive-mode#check-spelling-as-you-type)でプロンプト入力の単語に下線を引きます | インターフェースとターミナル | User or managed |

792| [`spinnerTipsOverride`](#spinnertipsoverride) | スピナーローテーションに独自のヒントを追加するか、組み込みヒントを置き換えます | Interface and terminal | Any file |794| [`spinnerTipsEnabled`](#spinnertipsenabled) | Claude が作業している間、スピナーのヒントを非表示にします | インターフェースとターミナル | Any file |

793| [`spinnerVerbs`](#spinnerverbs) | ターンの実行中に表示される動詞を追加または置き換えます | Interface and terminal | Any file |795| [`spinnerTipsOverride`](#spinnertipsoverride) | スピナーローテーションに独自のヒントを追加するか、組み込みヒントを置き換えます | インターフェースとターミナル | Any file |

794| [`sshConfigs`](#sshconfigs) | Desktop 環境ドロップダウンに[SSH 接続](/docs/ja/desktop#pre-configure-ssh-connections-for-your-team)を追加します | Remote, desktop, and notifications | User or managed |796| [`spinnerVerbs`](#spinnerverbs) | ターンの実行中に表示される動詞を追加または置き換えます | インターフェースとターミナル | Any file |

795| [`sshHostAllowlist`](#sshhostallowlist) | [Desktop SSH セッション](/docs/ja/desktop#restrict-which-ssh-hosts-users-can-connect-to)が到達できるホストを制限します | Remote, desktop, and notifications | Managed |797| [`sshConfigs`](#sshconfigs) | [SSH 接続](/docs/ja/desktop#pre-configure-ssh-connections-for-your-team)をデスクトップ環境ドロップダウンに追加します | リモート、デスクトップ、通知 | User or managed |

796| [`statusLine`](#statusline) | [ステータスライン](/docs/ja/statusline)をプロンプトの下にレンダリングする独自のコマンドを実行します | Interface and terminal | Any file |798| [`sshHostAllowlist`](#sshhostallowlist) | [Desktop SSH セッション](/docs/ja/desktop#restrict-which-ssh-hosts-users-can-connect-to)が到達できるホストを制限します | リモート、デスクトップ、通知 | Managed |

797| [`strictKnownMarketplaces`](#strictknownmarketplaces) | ユーザーが追加およびインストールできる[マーケットプレイス](/docs/ja/plugins/overview)ソースを許可リストに登録します | Plugins and skills | Managed |799| [`statusLine`](#statusline) | 独自のコマンドを実行して、プロンプトの下に[ステータスライン](/docs/ja/statusline)をレンダリングします | インターフェースとターミナル | Any file |

798| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | ユーザーおよびプロジェクトソースから[スキル](/docs/ja/skills)、[エージェント](/docs/ja/sub-agents)、[フック](/docs/ja/hooks)、[MCP サーバー](/docs/ja/mcp)をブロックします | Plugins and skills | Managed |800| [`strictKnownMarketplaces`](#strictknownmarketplaces) | ユーザーが追加およびインストールできる[マーケットプレイス](/docs/ja/plugins/overview)ソースを許可リストに登録します | プラグインとスキル | Managed |

799| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | [エージェント](/docs/ja/sub-agents)をプラグインおよびマネージドソースにロックします | Plugins and skills | Managed |801| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | [スキル](/docs/ja/skills)、[エージェント](/docs/ja/sub-agents)、[フック](/docs/ja/hooks)、[MCP サーバー](/docs/ja/mcp)をユーザーおよびプロジェクトソースからブロックします | プラグインとスキル | Managed |

800| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | [フック](/docs/ja/hooks)をプラグインおよびマネージドソースにロックします | Plugins and skills | Managed |802| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | [エージェント](/docs/ja/sub-agents)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |

801| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | [MCP サーバー](/docs/ja/mcp)をプラグインおよびマネージドソースにロックします | Plugins and skills | Managed |803| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | [フック](/docs/ja/hooks)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |

802| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | [スキル](/docs/ja/skills)をプラグインおよびマネージドソースにロックします | Plugins and skills | Managed |804| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | [MCP サーバー](/docs/ja/mcp)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |

803| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | サブエージェントおよびメイン会話外の他のリクエストの[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | Model and responses | Any file |805| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | [スキル](/docs/ja/skills)をプラグインおよびマネージドソースにロックします | プラグインとスキル | Managed |

804| [`subagentStatusLine`](#subagentstatusline) | [サブエージェント](/docs/ja/sub-agents)タスク表示の行を独自のコマンドで書き直します | Interface and terminal | Any file |806| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | サブエージェントおよびメイン会話外の他のリクエストの[プロンプトキャッシュライフタイム](/docs/ja/prompt-caching#cache-lifetime)を選択します | モデルと応答 | Any file |

805| [`switchModelsOnFlag`](#switchmodelsonflag) | [安全分類器](/docs/ja/model-config#ask-before-switching)がリクエストにフラグを立てたときにモデルを自動的に切り替えるか一時停止します | Model and responses | Any file |807| [`subagentStatusLine`](#subagentstatusline) | 独自のコマンドで[サブエージェント](/docs/ja/sub-agents)タスク表示の行を書き直します | インターフェースとターミナル | Any file |

806| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | [claude.ai アカウントで有効になっているプラグイン](/docs/ja/plugins/loading#synced-plugins)のロードを停止し、新しいものをダウンロードするのを停止します | Plugins and skills | User, local, or managed |808| [`switchModelsOnFlag`](#switchmodelsonflag) | [安全分類器](/docs/ja/model-config#ask-before-switching)がリクエストにフラグを立てるときに自動的にモデルを切り替えるか一時停止します | モデルと応答 | Any file |

807| [`syncClaudeAiSkills`](#syncclaudeaiskills) | [claude.ai アカウントで有効になっているスキル](/docs/ja/skills#how-synced-skills-behave)のロードを停止し、新しいものをダウンロードするのを停止します | Plugins and skills | User, local, or managed |809| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | [claude.ai アカウントで有効になっているプラグイン](/docs/ja/plugins/loading#synced-plugins)のロードを停止し、新しいものをダウンロードするのを停止します | プラグインとスキル | User, local, or managed |

808| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | diff およびコードブロックの構文強調表示をオフにします | Interface and terminal | Any file |810| [`syncClaudeAiSkills`](#syncclaudeaiskills) | [claude.ai アカウントで有効になっているスキル](/docs/ja/skills#how-synced-skills-behave)のロードを停止し、新しいものをダウンロードするのを停止します | プラグインとスキル | User, local, or managed |

809| [`taskOutputMaxChars`](#taskoutputmaxchars) | v2.1.277 で削除されました。それがサイズを設定した `TaskOutput` ツールと一緒に削除されました | Memory and context | Any file |811| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | diff およびコードブロックの構文強調表示をオフにします | インターフェースとターミナル | Any file |

810| [`teammateDefaultModel`](#teammatedefaultmodel) | v2.1.234 で削除されました。Claude Code がチームメイトのモデルを選択する方法については[チームメイトとモデルを指定](/docs/ja/agent-teams#specify-teammates-and-models)を参照してください | Global config settings | Global config |812| [`taskOutputMaxChars`](#taskoutputmaxchars) | v2.1.277 で削除されました。それがサイズを設定した `TaskOutput` ツールと一緒に | メモリとコンテキスト | Any file |

811| [`teammateMode`](#teammatemode) | [エージェントチームチームメイトの表示](/docs/ja/agent-teams#choose-a-display-mode)方法を選択します | Agents, sessions, and worktrees | Any file |813| [`teammateDefaultModel`](#teammatedefaultmodel) | v2.1.234 で削除されました。[チームメイトとモデルを指定](/docs/ja/agent-teams#specify-teammates-and-models)を参照して、Claude Code がチームメイトのモデルを選択する方法を確認してください | グローバル設定 | Global config |

812| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | それをサポートするターミナルでターミナルプログレスバーを非表示にします | Interface and terminal | Any file |814| [`teammateMode`](#teammatemode) | [エージェントチームチームメイトの表示](/docs/ja/agent-teams#choose-a-display-mode)方法を選択します | エージェント、セッション、ワークツリー | Any file |

813| [`terminalTitleFromRename`](#terminaltitlefromrename) | [`/rename`](/docs/ja/sessions#name-your-sessions)および `--name` がターミナルタブタイトルを変更するのを停止します | Interface and terminal | Any file |815| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | サポートするターミナルのターミナルプログレスバーを非表示にします | インターフェースとターミナル | Any file |

814| [`theme`](#theme) | インターフェイス[カラーテーマ](/docs/ja/terminal-config#match-the-color-theme)を選択します。組み込みまたはカスタム | Interface and terminal | Any file |816| [`terminalTitleFromRename`](#terminaltitlefromrename) | [`/rename`](/docs/ja/sessions#name-your-sessions)と `--name` がターミナルタブタイトルを変更するのを停止します | インターフェースとターミナル | Any file |

815| [`timeFormat`](#timeformat) | インターフェイスの時刻を 12 時間または 24 時間クロック、UTC、または strftime パターンで表示します | Interface and terminal | Any file |817| [`theme`](#theme) | インターフェース[カラーテーマ](/docs/ja/terminal-config#match-the-color-theme)を選択します。組み込みまたはカスタム | インターフェースとターミナル | Any file |

816| [`timeZone`](#timezone) | インターフェイスの時刻をシステムのタイムゾーン以外のタイムゾーンで表示します | Interface and terminal | Any file |818| [`timeFormat`](#timeformat) | インターフェースの時刻を 12 時間または 24 時間時計、UTC、または strftime パターンで表示します | インターフェースとターミナル | Any file |

817| [`tui`](#tui) | [フルスクリーン](/docs/ja/fullscreen)または従来のターミナルレンダラーを選択します | Interface and terminal | Any file |819| [`timeZone`](#timezone) | インターフェースの時刻をシステムのタイムゾーン以外のタイムゾーンで表示します | インターフェースとターミナル | Any file |

818| [`ultracode`](#ultracode) | Claude が尋ねられることなく各実質的なタスクの[ワークフロー](/docs/ja/workflows#let-claude-decide-with-ultracode)を計画するようにします | Model and responses | Any file |820| [`tui`](#tui) | [フルスクリーン](/docs/ja/fullscreen)またはクラシックターミナルレンダラーを選択します | インターフェースとターミナル | Any file |

819| [`useAutoModeDuringPlan`](#useautomodeduringplan) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器が[プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)でシェルコマンドをレビューすることを許可します。`false` に設定してプロンプトを取得します | Permission settings | User, local, or managed |821| [`ultracode`](#ultracode) | Claude が尋ねられることなく、実質的なタスクごとに[ワークフロー](/docs/ja/workflows#let-claude-decide-with-ultracode)を計画するようにします | モデルと応答 | Any file |

820| [`verbose`](#verbose) | 切り詰められた要約の代わりに[完全なツール出力](/docs/ja/cli-reference#cli-flags)を表示します。両方が設定されている場合、`viewMode` が優先されます | Interface and terminal | Any file |822| [`useAutoModeDuringPlan`](#useautomodeduringplan) | [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器が[プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)でシェルコマンドをレビューすることを許可します。プロンプトを取得するには `false` を設定します | 権限設定 | User, local, or managed |

821| [`viewMode`](#viewmode) | すべてのセッションを[デフォルト、詳細、またはフォーカスビュー](/docs/ja/cli-reference#cli-flags)で開始します | Interface and terminal | Any file |823| [`verbose`](#verbose) | 切り詰められた要約の代わりに[完全なツール出力](/docs/ja/cli-reference#cli-flags)を表示します。両方が設定されている場合、`viewMode` が優先されます | インターフェースとターミナル | Any file |

822| [`vimInsertModeRemaps`](#viminsertmoderemaps) | `jj` などの 2 キー[INSERT モードシーケンス](/docs/ja/interactive-mode#remap-insert-mode-key-sequences)を Escape にマップします | Interface and terminal | User or managed |824| [`viewMode`](#viewmode) | すべてのセッションを[デフォルト、詳細、またはフォーカスビュー](/docs/ja/cli-reference#cli-flags)で開始します | インターフェースとターミナル | Any file |

823| [`voice`](#voice) | [音声ディクテーション](/docs/ja/voice-dictation)をオンにして、ホールドまたはタップモードを選択します | Interface and terminal | Any file |825| [`vimInsertModeRemaps`](#viminsertmoderemaps) | 2 キー[INSERT モードシーケンス](/docs/ja/interactive-mode#remap-insert-mode-key-sequences)(`jj` など)を Escape にマップします | インターフェースとターミナル | User or managed |

824| [`voiceEnabled`](#voiceenabled) | 古い単一キー形式で[音声ディクテーション](/docs/ja/voice-dictation)をオンにします | Interface and terminal | Any file |826| [`voice`](#voice) | [音声ディクテーション](/docs/ja/voice-dictation)をオンにして、ホールドまたはタップモードを選択します | インターフェースとターミナル | Any file |

825| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | フルスクリーンレンダリングで[マウスホイール加速](/docs/ja/fullscreen#mouse-wheel-scrolling)をオフにします | Interface and terminal | Any file |827| [`voiceEnabled`](#voiceenabled) | 古い単一キー形式で[音声ディクテーション](/docs/ja/voice-dictation)をオンにします | インターフェースとターミナル | Any file |

826| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | プロンプト内の単語 `ultracode` が[ワークフロー](/docs/ja/workflows)を開始することを許可します。`false` に設定して入力します | Hooks and automation | Any file |828| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | フルスクリーンレンダリングで[マウスホイール加速](/docs/ja/fullscreen#mouse-wheel-scrolling)をオフにします | インターフェースとターミナル | Any file |

827| [`workflowSizeGuideline`](#workflowsizeguideline) | Claude が[動的ワークフロー](/docs/ja/workflows)で目指すエージェント数を設定します | Hooks and automation | Any file |829| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | プロンプト内の単語 `ultracode` が[ワークフロー](/docs/ja/workflows)を開始することを許可します。それを入力せずに入力するには `false` を設定します | フックと自動化 | Any file |

828| [`worktree`](#worktree) | Claude Code が git [worktrees](/docs/ja/worktrees)を作成する方法を設定します | Agents, sessions, and worktrees | Any file |830| [`workflowSizeGuideline`](#workflowsizeguideline) | Claude が[動的ワークフロー](/docs/ja/workflows)で目指すエージェント数を設定します | フックと自動化 | Any file |

829| [`worktree.baseRef`](#worktree-baseref) | 新しい[worktrees](/docs/ja/worktrees)をリモートデフォルトブランチまたはローカル HEAD からブランチします | Agents, sessions, and worktrees | Any file |831| [`worktree`](#worktree) | Claude Code が git [ワークツリー](/docs/ja/worktrees)を作成する方法を設定します | エージェント、セッション、ワークツリー | Any file |

830| [`worktree.bgIsolation`](#worktree-bgisolation) | バックグラウンドセッションが[worktree](/docs/ja/worktrees)なしで作業コピーを編集することを許可します | Agents, sessions, and worktrees | Any file |832| [`worktree.baseRef`](#worktree-baseref) | 新しい[ワークツリー](/docs/ja/worktrees)をリモートデフォルトブランチまたはローカル HEAD からブランチします | エージェント、セッション、ワークツリー | Any file |

831| [`worktree.sparsePaths`](#worktree-sparsepaths) | 各[worktree](/docs/ja/worktrees)で必要なディレクトリのみをチェックアウトします | Agents, sessions, and worktrees | Any file |833| [`worktree.bgIsolation`](#worktree-bgisolation) | バックグラウンドセッションが[ワークツリー](/docs/ja/worktrees)なしで作業コピーを編集することを許可します | エージェント、セッション、ワークツリー | Any file |

832| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 大きなディレクトリを各[worktree](/docs/ja/worktrees)に複製する代わりにシンボリックリンクします | Agents, sessions, and worktrees | Any file |834| [`worktree.sparsePaths`](#worktree-sparsepaths) | 各[ワークツリー](/docs/ja/worktrees)で必要なディレクトリのみをチェックアウトします | エージェント、セッション、ワークツリー | Any file |

833| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | WSL が Windows ポリシーチェーンから[マネージド設定](/docs/ja/managed-settings)を読み取ることを許可します | Enterprise and managed settings | Managed |835| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 各[ワークツリー](/docs/ja/worktrees)で大きなディレクトリを複製する代わりにシンボリックリンクします | エージェント、セッション、ワークツリー | Any file |

836| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | WSL が Windows ポリシーチェーンから[マネージド設定](/docs/ja/managed-settings)を読み取ることを許可します | エンタープライズとマネージド設定 | Managed |

834 837 

835<h2 id="model-and-responses">838<h2 id="model-and-responses">

836 モデルと応答839 モデルと応答


3490 3493 

3491ターンが完了すると、Claude Code はメインスレッドでターン出力に対して各エントリの `pattern` 正規表現をマッチングするため、遅い正規表現は完了するまで UI をブロックします。`(a+)+$` などのネストされた量指定子は特定の入力に対して指数関数的に長くかかり、セッションをフリーズさせる可能性があるため、各 `pattern` を線形に保ち、`+` または `*` のネストを避けてください。3494ターンが完了すると、Claude Code はメインスレッドでターン出力に対して各エントリの `pattern` 正規表現をマッチングするため、遅い正規表現は完了するまで UI をブロックします。`(a+)+$` などのネストされた量指定子は特定の入力に対して指数関数的に長くかかり、セッションをフリーズさせる可能性があるため、各 `pattern` を線形に保ち、`+` または `*` のネストを避けてください。

3492 3495 

3493フッターバッジは[カスタムステータスライン](/docs/ja/statusline)が設定されている場合と並んでレンダリングされます。どちらも他方を置き換えません。セッションデータから独自のコンテンツを計算するスクリプト駆動行にはステータスラインを使用し、会話から ID をリンクに変換するにはフッターバッジを使用します。スクリプトなし。3496フッターバッジは[カスタムステータスライン](/docs/ja/statusline)が設定されている場合と並んでレンダリングされます。どちらも他方を置き換えません。セッションデータから独自のコンテンツを計算するスクリプト駆動行にはステータスラインを使用し、会話から ID をリンクに変換するにはフッターバッジを使用します。

3494 3497 

3495<h3 id="keybindingflavor">3498<h3 id="keybindingflavor">

3496 `keybindingFlavor`3499 `keybindingFlavor`


3673 `spinnerTipsOverride`3676 `spinnerTipsOverride`

3674</h3>3677</h3>

3675 3678 

3676Claude Code が Claude の作業中に表示する[スピナーヒント](#spinnertipsenabled)に独自のヒントを追加するか、組み込みヒントを置き換えます。Claude Code はあなたのヒントを組み込みのものと同じローテーションに入れます。最も長く表示されていないヒントを選択し、クールダウン中のヒントをスキップし、優先度でタイを破ります。3679Claude Code が Claude の作業中に表示する[スピナーヒント](#spinnertipsenabled)に独自のヒントを追加するか、組み込みヒントを置き換えます。Claude Code はあなたのヒントを組み込みのものと同じローテーションに入れます。

3677 3680 

3678[`spinnerTipsEnabled`](#spinnertipsenabled) を `false` に設定すると、Claude Code はすべてのヒント(あなたのものを含む)を非表示にします。3681[`spinnerTipsEnabled`](#spinnertipsenabled) を `false` に設定すると、Claude Code はすべてのヒント(あなたのものを含む)を非表示にします。

3679 3682 


3681* **タイプ**: `tips`、`tipsFile`、`label`、および `excludeDefault` フィールドを持つオブジェクト。各フィールドはオプションです3684* **タイプ**: `tips`、`tipsFile`、`label`、および `excludeDefault` フィールドを持つオブジェクト。各フィールドはオプションです

3682* **デフォルト**: 未設定、Claude Code は組み込みヒントのみを表示します3685* **デフォルト**: 未設定、Claude Code は組み込みヒントのみを表示します

3683 3686 

3684ヒントオブジェクト、`tipsFile`、`label`、およびスコープ行のルール(プロジェクトおよびローカル設定がプレーン文字列のみを提供)には Claude Code v2.1.247 以降が必要です。以前のバージョンでは、プロジェクトまたはローカルファイルの `excludeDefault` も適用されます。3687ヒントオブジェクト、`tipsFile`、`label`、およびスコープ行のルール(プロジェクトおよびローカル設定がプレーン文字列のみを提供)には Claude Code v2.1.247 以降が必要です。

3685 3688 

3686各 `tips` エントリはプレーン文字列またはこれらのフィールドを持つオブジェクトです:3689各 `tips` エントリはプレーン文字列またはこれらのフィールドを持つオブジェクトです:

3687 3690 


4303これを `true` に設定すると、Claude Code はどのフックとフック類似コマンドをロードするかを変更します:4306これを `true` に設定すると、Claude Code はどのフックとフック類似コマンドをロードするかを変更します:

4304 4307 

4305* **管理フックと SDK フックが実行されます**: 管理設定からのフックと [Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフック4308* **管理フックと SDK フックが実行されます**: 管理設定からのフックと [Agent SDK](/docs/ja/agent-sdk/overview) がプロセス内で登録するフック

4306* **強制有効プラグインフックが実行されます**: 管理設定が [`enabledPlugins`](#enabledplugins) を通じて強制有効にするプラグインからのフック。Claude Code は完全な `plugin@marketplace` ID でマッチするため、別のマーケットプレイスからの同じ名前のプラグインはブロックされたままです。これにより、組織マーケットプレイスを通じて検証済みフックを配布しながら、その他すべてをブロックできます4309* **強制有効プラグインフックが実行されます**: 管理設定が [`enabledPlugins`](#enabledplugins) を通じて強制有効にするプラグインからのフック。Claude Code は完全な `plugin@marketplace` ID でマッチするため、別のマーケットプレイスからの同じ名前のプラグインはブロックされたままです。これにより、組織マーケットプレイスを通じて検証済みフックを配布しながら、その他すべてをブロックできます。このようなプラグイン内の [mod](/docs/ja/plugins/mods/overview) は、[組織のものとしてカウント](/docs/ja/plugins/mods/admin#install-your-organizations-mods)される場合のみロードされます

4307* **その他すべてはブロックされます**: ユーザー、プロジェクト、ローカルフック、他のプラグインからのフック、エージェント frontmatter で宣言されたフック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) を設定してください

4308* **コマンドソースプラグインは無効になります**: Claude Code は [`command` ソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を持つプラグイン(管理 `enabledPlugins` で強制有効にされたプラグインを含む)も無効にします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) を明示的に `false` に設定した場合を除きます4311* **コマンドソースプラグインは無効になります**: Claude Code は [`command` ソース](/docs/ja/plugins/marketplace-reference#command-plugin-source)を持つプラグイン(管理 `enabledPlugins` で強制有効にされたプラグインを含む)も無効にします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) を明示的に `false` に設定した場合を除きます

4309* **マーケットプレイス `headersHelper` コマンドはブロックされます**: Claude Code はマーケットプレイス [`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) が明示的に `false` に設定されている場合、または管理設定自体が宣言するマーケットプレイスの場合を除きます。Claude Code v2.1.238 以降が必要です4312* **マーケットプレイス `headersHelper` コマンドはブロックされます**: Claude Code はマーケットプレイス [`headersHelper` コマンド](/docs/ja/plugins/host-marketplace#authenticate-archive-downloads)もブロックします。ただし、[`disableCommandPluginSources`](#disablecommandpluginsources) が明示的に `false` に設定されている場合、または管理設定自体が宣言するマーケットプレイスの場合を除きます。Claude Code v2.1.238 以降が必要です

4310* **ステータスラインとファイル提案は管理設定に絞られます**: Claude Code は [`statusLine`](/docs/ja/statusline)、[`fileSuggestion`](#filesuggestion)、[`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) を管理設定からのみ読み込みます。[ステータスラインとファイル提案ゲート](#status-line-and-file-suggestion-gates)に従います4313* **ステータスラインとファイル提案は管理設定に絞られます**: Claude Code は [`statusLine`](/docs/ja/statusline)、[`fileSuggestion`](#filesuggestion)、[`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) を管理設定からのみ読み込みます。[ステータスラインとファイル提案ゲート](#status-line-and-file-suggestion-gates)に従います


5043* **`git`**: 任意の git URL、`url` を使用5046* **`git`**: 任意の git URL、`url` を使用

5044* **`url`**: `marketplace.json` ファイルへの直接 URL、`url` とオプションの `headers` および `headersHelper` を使用して認証アクセスします。`headersHelper` は値が短命すぎてリストできないヘッダーを出力するコマンドに名前を付け、Claude Code v2.1.238 以降が必要です5047* **`url`**: `marketplace.json` ファイルへの直接 URL、`url` とオプションの `headers` および `headersHelper` を使用して認証アクセスします。`headersHelper` は値が短命すぎてリストできないヘッダーを出力するコマンドに名前を付け、Claude Code v2.1.238 以降が必要です

5045* **`file`**: `marketplace.json` ファイルへのローカルパス、`path` を使用5048* **`file`**: `marketplace.json` ファイルへのローカルパス、`path` を使用

5046* **`directory`**: ローカルファイルシステムパス、`path` を使用(開発のみ)5049* **`directory`**: ローカルファイルシステムパス、`path` を使用。開発用、または組織が[各マシンにデプロイするマーケットプレイス](/docs/ja/plugins/mods/admin#install-your-organizations-mods)に使用します。

5047* **`settings`**: ホストされたリポジトリなしで設定ファイルに直接宣言されたインラインマーケットプレイス、`name` および `plugins` を使用5050* **`settings`**: ホストされたリポジトリなしで設定ファイルに直接宣言されたインラインマーケットプレイス、`name` および `plugins` を使用

5048 5051 

5049`git` ソースタイプは、自己ホストされた GitLab や Bitbucket を含む任意の git ホスティングサービスで機能します。Claude Code はそのマシンで `git clone` が使用するのと同じ認証でリポジトリをクローンします。設定された認証ヘルパーまたは SSH キー。`GITHUB_TOKEN` などのプロバイダートークンは、それを読む認証ヘルパーを通じてのみ有効になります。セットアップの詳細については、[プライベートリポジトリ](/docs/ja/plugins/host-marketplace#grant-access-to-a-private-marketplace)を参照してください。5052`git` ソースタイプは、自己ホストされた GitLab や Bitbucket を含む任意の git ホスティングサービスで機能します。Claude Code はそのマシンで `git clone` が使用するのと同じ認証でリポジトリをクローンします。設定された認証ヘルパーまたは SSH キー。`GITHUB_TOKEN` などのプロバイダートークンは、それを読む認証ヘルパーを通じてのみ有効になります。セットアップの詳細については、[プライベートリポジトリ](/docs/ja/plugins/host-marketplace#grant-access-to-a-private-marketplace)を参照してください。


5130 5133 

5131Claude Code はプロジェクトおよびローカルエントリを無視します。これらの値をプラグインフック、MCP、および LSP 設定に置き換えるため、クローンされたリポジトリはそれらを提供できません。v2.1.207 より前では、プロジェクトおよびローカル設定も読まれていました。5134Claude Code はプロジェクトおよびローカルエントリを無視します。これらの値をプラグインフック、MCP、および LSP 設定に置き換えるため、クローンされたリポジトリはそれらを提供できません。v2.1.207 より前では、プロジェクトおよびローカル設定も読まれていました。

5132 5135 

5136<h3 id="prependplugins">

5137 `prependPlugins`

5138</h3>

5139 

5140マネージドプラグインのリストで、その [mods](/docs/ja/plugins/mods/overview) がユーザーがインストールするすべての mod の前に実行されます。リストされた順序で実行されます。マネージド設定でこのキーを設定する場合、リストに `sec-default@builtin` を名前付けして、組み込みガードを保持します。マネージド設定では、Claude Code はプラグインが組織のものとしてカウントされないプラグインの ID をスキップします。[組織の mod をインストールして順序を設定する](/docs/ja/plugins/mods/admin#install-your-organizations-mods)を参照してください。これらの条件と 2 つの順序付けキーがどのように機能するかについて。

5141 

5142* **Scope**: [`User or managed`](#scopes)。Claude Code はマネージド設定からキーを読みます。マネージド設定のないマシン上でのみ、Team または Enterprise プランでサインインしていないユーザーのユーザー設定からキーを読みます。プロジェクトおよびローカル設定、および `--settings` ファイルのキーを無視します。

5143* **Type**: `plugin-name@marketplace-name` 文字列の配列

5144* **Default**: 未設定

5145 

5146```json managed-settings.json theme={null}

5147{

5148 "extraKnownMarketplaces": {

5149 "acme-tools": {

5150 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

5151 }

5152 },

5153 "enabledPlugins": { "acme-guard@acme-tools": true },

5154 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]

5155}

5156```

5157 

5158<h3 id="appendplugins">

5159 `appendPlugins`

5160</h3>

5161 

5162マネージドプラグインのリストで、その [mods](/docs/ja/plugins/mods/overview) がユーザーがインストールするすべての mod の後に実行されます。リストされた順序で実行されます。`prependPlugins` と `appendPlugins` の両方にリストされている ID は、前置されます。マネージド設定では、Claude Code はプラグインが [組織のものとしてカウント](/docs/ja/plugins/mods/admin#install-your-organizations-mods)されないプラグインの ID をスキップします。

5163 

5164* **Scope**: [`User or managed`](#scopes)。Claude Code はマネージド設定からキーを読みます。マネージド設定のないマシン上でのみ、Team または Enterprise プランでサインインしていないユーザーのユーザー設定からキーを読みます。プロジェクトおよびローカル設定、および `--settings` ファイルのキーを無視します。

5165* **Type**: `plugin-name@marketplace-name` 文字列の配列

5166* **Default**: 未設定

5167 

5168```json managed-settings.json theme={null}

5169{

5170 "extraKnownMarketplaces": {

5171 "acme-tools": {

5172 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

5173 }

5174 },

5175 "enabledPlugins": { "acme-audit@acme-tools": true },

5176 "appendPlugins": ["acme-audit@acme-tools"]

5177}

5178```

5179 

5133<h2 id="mcp">5180<h2 id="mcp">

5134 MCP5181 MCP

5135</h2>5182</h2>


5650 5697 

5651* **Scope**: [`Any file`](#scopes)5698* **Scope**: [`Any file`](#scopes)

5652* **Type**: Boolean5699* **Type**: Boolean

5653 * `true`: Claude Code はファイルが適用されるすべてのセッションに対して Artifact ツールをオフにし、他のファイルはそれをオンに戻しません。v2.1.242 より前では、優先度の高いファイルが優先度の低いファイルの `true` をオーバーライドできました。キーはロックとして機能しません5700 * `true`: Claude Code はファイルが適用されるすべてのセッションに対して Artifact ツールをオフにし、他のファイルはそれをオンに戻しません

5654 * `false`: 無視されます。ツールをオンのままにするには、キーを削除します5701 * `false`: 無視されます。ツールをオンのままにするには、キーを削除します

5655* **Default**: 未設定なので、ツールはアカウントの [availability](/docs/ja/artifacts#availability) に従います5702* **Default**: 未設定なので、ツールはアカウントの [availability](/docs/ja/artifacts#availability) に従います

5656* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/ja/env-vars) を `1` に設定すると、1 つのセッションのツールがオフになります5703* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/ja/env-vars) を `1` に設定すると、1 つのセッションのツールがオフになります


5737}5784}

5738```5785```

5739 5786 

5740ユーザー設定以外のソースがツールをオフのままにしている間、Claude Code は `/config` で **Artifacts** 行を非表示にします。そこでオンにしても何も変わらないためです。[Disable artifacts](/docs/ja/artifacts#disable-artifacts) はツールをオフにするすべての方法を一覧表示します。v2.1.242 より前では、Claude Code はプロジェクトおよびローカル設定でこのキーを無視し、[優先度スタック](/docs/ja/settings#settings-precedence) で高い位置のファイルが低いファイルのオフをオンに戻すことができました。5787ユーザー設定以外のソースがツールをオフのままにしている間、Claude Code は `/config` で **Artifacts** 行を非表示にします。そこでオンにしても何も変わらないためです。[Disable artifacts](/docs/ja/artifacts#disable-artifacts) はツールをオフにするすべての方法を一覧表示します。

5741 5788 

5742<h3 id="inputneedednotifenabled">5789<h3 id="inputneedednotifenabled">

5743 `inputNeededNotifEnabled`5790 `inputNeededNotifEnabled`


5876 5923 

5877ヘルパースクリプトを通じて認証情報を提供し、組織の場合はログイン方法または組織を強制します。[認証](/docs/ja/authentication)を参照してください。5924ヘルパースクリプトを通じて認証情報を提供し、組織の場合はログイン方法または組織を強制します。[認証](/docs/ja/authentication)を参照してください。

5878 5925 

5926<h3 id="allowedproviders">

5927 `allowedProviders`

5928</h3>

5929 

5930マシンが Claude に到達できるサービス(Anthropic API、Amazon Bedrock、LLM ゲートウェイなど)をリストアップします。リストに記載されていないプロバイダー上のセッションは、スタートアップ時、ログイン時、および次に API に接続するときに拒否されるため、セッション中にリストに記載されていないプロバイダーに切り替えることも拒否されます。[拒否メッセージ](/docs/ja/errors#managed-settings-dont-allow-this-api-provider)には、プロバイダーを選択したものと続行するためのステップが記載されています。Claude Code v2.1.285 以降が必要です。

5931 

5932* **スコープ**: [`Managed`](#scopes)。マシン自身の管理者ソースが設定したリスト、MDM ポリシーおよび管理設定ファイルが適用し続けます。サーバー管理設定もリストを配信する場合、セッションは両方のリスト上のプロバイダーのみを使用できるため、サーバー管理リストはマシンが許可するものを狭めることはできますが、広げることはできません。マシンソースの `allowedProviders` のどれが数えられるかは、[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)に従います。サーバー管理設定のみを通じて配信されたリストは、[サーバー管理設定を取得する](/docs/ja/server-managed-settings#platform-availability)セッションのみに到達します。

5933* **タイプ**: 文字列の配列。各要素は以下のいずれか:

5934 * `"anthropic"`: claude.ai または Console サインイン、または API キーを通じた Anthropic 独自のホスト上の Anthropic API。[`forceLoginMethod`](#forceloginmethod) または [`forceLoginOrgUUID`](#forceloginorguuid) と組み合わせてサインインも制限します

5935 * `"bedrock"`: [Amazon Bedrock](/docs/ja/amazon-bedrock)

5936 * `"vertex"`: [Google Cloud の Agent Platform](/docs/ja/google-vertex-ai)(旧 Vertex AI)

5937 * `"foundry"`: [Microsoft Foundry](/docs/ja/microsoft-foundry)

5938 * `"anthropicAws"`: [AWS 上の Claude Platform](/docs/ja/claude-platform-on-aws)

5939 * `"mantle"`: Amazon Bedrock [Mantle エンドポイント](/docs/ja/amazon-bedrock#use-the-mantle-endpoint)。[Invoke API と並行して Mantle を実行する](/docs/ja/amazon-bedrock#run-mantle-alongside-the-invoke-api)セッションは両方のプロバイダーを使用するため、`"bedrock"` と `"mantle"` をまとめてリストアップします

5940 * `"customEndpoint"`: Anthropic API またはクラウドプロバイダーの API を別のホストに送信します。[LLM ゲートウェイ](/docs/ja/llm-gateway)(`ANTHROPIC_BASE_URL` で指定)、プロバイダーの `ANTHROPIC_*_BASE_URL` 変数、またはベアリソース名ではない `ANTHROPIC_FOUNDRY_RESOURCE` 値。Claude Code はそれを管理 [`env`](#env) ブロックがピンで留めた正確な値に対してのみ許可します

5941 * `"gateway"`: [Cloud ゲートウェイ](/docs/ja/claude-apps-gateway)サインイン

5942* **デフォルト**: 未設定。任意のプロバイダーを使用できます

5943 

5944```json managed-settings.json theme={null}

5945{

5946 "allowedProviders": ["anthropic", "bedrock"]

5947}

5948```

5949 

5950各クラウドプロバイダーのエントリは、そのプロバイダー独自のサービス(地域、FIPS、プライベートエンドポイントを含む)を意味します。

5951 

5952Claude Code がプロバイダー名として認識しないエントリは削除され、報告され、リストの残りは強制されます。空のリスト、またはすべてのエントリが認識されないリストの場合、Claude Code はすべてのプロバイダーを拒否し、マシン上で起動しません。

5953 

5954<h4 id="endpoints-that-need-a-pin-in-managed-env">

5955 管理 `env` でピンが必要なエンドポイント

5956</h4>

5957 

5958ピンは、管理 [`env`](#env) ブロックで設定されたエンドポイント変数の値です。セッションがプロバイダーのトラフィックをそのプロバイダー独自のサービス以外の場所に送信する場合、Claude Code はセッションの値がピンと同じ場合にのみそれを許可します。これらのエンドポイントには 1 つが必要です:

5959 

5960* **`"customEndpoint"` セッション**: ホストを指定する変数(`ANTHROPIC_BASE_URL` など)

5961* **Amazon Bedrock**: AWS SDK の `AWS_ENDPOINT_URL`、`AWS_ENDPOINT_URL_BEDROCK`、および `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` 変数が Bedrock 独自のサービス外を指す場合。セッションは `"customEndpoint"` ではなく `"bedrock"` の下に留まります

5962* **ゲートウェイサインイン URL**: セッションは `"gateway"` の下に留まり、[`forceLoginGatewayUrl`](#forcelogingatewayurl) もピンとしてカウントされます

5963 

5964どの `env` ブロックがピンとしてカウントされるかは、リストが設定されている場所によって異なります:

5965 

5966* **マシン上の管理者ソースがリストを設定**: マシン独自の管理者ソースの `env` ブロックのみがカウントされます

5967* **サーバー管理設定のみがリストを設定**: これらのサーバー管理設定の `env` 値もカウントされます

5968 

5969リストは、クラウドプロバイダーの認証情報とテナンシー変数、または `HTTPS_PROXY` と証明書設定などのネットワークパスを判定しません。管理 `env` ブロックでフロート用にそれらを設定します。

5970 

5879<h3 id="apikeyhelper">5971<h3 id="apikeyhelper">

5880 `apiKeyHelper`5972 `apiKeyHelper`

5881</h3>5973</h3>


6398| :- | :- | :- |6490| :- | :- | :- |

6399| リスト | すべてのソースからのエントリを組み合わせます | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains)、およびその他のリストキー |6491| リスト | すべてのソースからのエントリを組み合わせます | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains)、およびその他のリストキー |

6400| ロック | ソースが設定する最も厳密な値を適用します。ソースが厳密な値を設定しない場合、最優先度のソースからのみより緩い値を適用します | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode)、およびその他のブール値または列挙型ロック |6492| ロック | ソースが設定する最も厳密な値を適用します。ソースが厳密な値を設定しない場合、最優先度のソースからのみより緩い値を適用します | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode)、およびその他のブール値または列挙型ロック |

6401| 制限許可リスト | 下位ソースからのエントリを追加せずに、それを設定する最優先度のソースから全体を取得します。最優先度のソースが設定しない場合、次のソースから全体を取得します | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins)、および [`fallbackModel`](#fallbackmodel) チェーン |6493| 制限許可リスト | 下位ソースからのエントリを追加せずに、それを設定する最優先度のソースから全体を取得します。最優先度のソースが設定しない場合、次のソースから全体を取得します | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`allowedProviders`](#allowedproviders)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins)、および [`fallbackModel`](#fallbackmodel) チェーン |

6402| 値全体取得 | 下位ソースからのエントリまたはフィールドを組み合わせずに、それを設定する最優先度のソースから全体を取得します。最優先度のソースが設定しない場合、次のソースから全体を取得します | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |6494| 値全体取得 | 下位ソースからのエントリまたはフィールドを組み合わせずに、それを設定する最優先度のソースから全体を取得します。最優先度のソースが設定しない場合、次のソースから全体を取得します | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |

6403| 提供される MCP サーバー | すべてのソースからサーバー名を組み合わせます。2 つのソースが同じ名前を設定する場合、上位ソースの全体エントリを適用します | [`managedMcpServers`](#managedmcpservers) |6495| 提供される MCP サーバー | すべてのソースからサーバー名を組み合わせます。2 つのソースが同じ名前を設定する場合、上位ソースの全体エントリを適用します | [`managedMcpServers`](#managedmcpservers) |

6404| 最優先度のソースからのみ読み取ります | ポリシーキーを含む最優先度のソースからのみキーを読み取るため、最優先度のソースが何も設定しない場合でも、下位ソースの値は無視されます | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) の `"claudeai"` および `"console"` 値、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |6496| 最優先度のソースからのみ読み取ります | ポリシーキーを含む最優先度のソースからのみキーを読み取るため、最優先度のソースが何も設定しない場合でも、下位ソースの値は無視されます | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) の `"claudeai"` および `"console"` 値、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |


6412* **[`policyHelper`](#policyhelper)**: Claude Code は、ポリシーキーを含む最優先度のソースが MDM ポリシーまたは管理設定ファイルである場合にのみそれを尊重します。サーバー管理設定では適用されません。6504* **[`policyHelper`](#policyhelper)**: Claude Code は、ポリシーキーを含む最優先度のソースが MDM ポリシーまたは管理設定ファイルである場合にのみそれを尊重します。サーバー管理設定では適用されません。

6413* **[`modelOverrides`](#modeloverrides)**: `availableModels` とペアになります。Claude Code は、それを設定する最優先度のソースから `modelOverrides` を取得します。ただし、上位ソースが `modelOverrides` なしで `availableModels` を設定する場合は除きます。その場合、すべてのソースから `modelOverrides` を無視します。6505* **[`modelOverrides`](#modeloverrides)**: `availableModels` とペアになります。Claude Code は、それを設定する最優先度のソースから `modelOverrides` を取得します。ただし、上位ソースが `modelOverrides` なしで `availableModels` を設定する場合は除きます。その場合、すべてのソースから `modelOverrides` を無視します。

6414* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks)、および [`forceLoginMethod`](#forceloginmethod) の `"gateway"` 値**: Claude Code はサーバー管理設定からそれらのいずれも読み取りません。そのため、そこでの値は適用されず、MDM ポリシーまたは管理設定ファイルで設定されたものを隠しません。マシン上の管理ソースの中で、ポリシーキーを含む最優先度のソースのみがそれらを提供します。サーバー管理設定も存在するかどうかに関わらず。6506* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks)、および [`forceLoginMethod`](#forceloginmethod) の `"gateway"` 値**: Claude Code はサーバー管理設定からそれらのいずれも読み取りません。そのため、そこでの値は適用されず、MDM ポリシーまたは管理設定ファイルで設定されたものを隠しません。マシン上の管理ソースの中で、ポリシーキーを含む最優先度のソースのみがそれらを提供します。サーバー管理設定も存在するかどうかに関わらず。

6507* **[`allowedProviders`](#allowedproviders)**: テーブルのルールの後、マシン自体のリストは結果を制限し続けます。そのエントリの Scope ノートが述べているように。

6415 6508 

6416マシンで組み合わせたソースを確認するには、`/status` を実行し、[`Setting sources` 行を読んでください](/docs/ja/managed-settings#read-the-source-in-/status)。6509マシンで組み合わせたソースを確認するには、`/status` を実行し、[`Setting sources` 行を読んでください](/docs/ja/managed-settings#read-the-source-in-/status)。

6417 6510 

skills.md +1 −1

Details

740 740 

741* **作業ディレクトリ**:Claude Code は各コマンドをセッションシェルの現在の作業ディレクトリで実行します。Claude が `cd` を実行するとそのディレクトリが移動します。毎回同じ方法で解決する必要があるパスで [`${CLAUDE_SKILL_DIR}` または `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) を使用します。741* **作業ディレクトリ**:Claude Code は各コマンドをセッションシェルの現在の作業ディレクトリで実行します。Claude が `cd` を実行するとそのディレクトリが移動します。毎回同じ方法で解決する必要があるパスで [`${CLAUDE_SKILL_DIR}` または `${CLAUDE_PROJECT_DIR}`](#available-string-substitutions) を使用します。

742* **stderr**:デフォルトの `bash` シェルでは、Claude Code は stderr を stdout にマージします。コマンドが stderr に書き込むすべてのものが注入されたテキストに表示されます。742* **stderr**:デフォルトの `bash` シェルでは、Claude Code は stderr を stdout にマージします。コマンドが stderr に書き込むすべてのものが注入されたテキストに表示されます。

743* **タイムアウト**:各コマンドは Bash ツールのデフォルト 2 分 [timeout](/docs/ja/tools-reference#timeout-and-output-limits) の下で実行されます。Bash ツールが [タイムアウトしたコマンドをバックグラウンドに移動](/docs/ja/tools-reference#background-commands) する場合、スキルは引き続きレンダリングされます。注入されたテキストは移動を報告し、バックグラウンドタスクとコマンドの出力を収集するファイルに名前を付けます。コマンドが Bash ツールが自動的にバックグラウンドに移動しないコマンドの場合、Claude Code はタイムアウト時にそれを強制終了します。その失敗は [呼び出しを中止します](#when-an-injected-command-fails)。743* **タイムアウト**:各コマンドは Bash ツールのデフォルト 2 分 [timeout](/docs/ja/tools-reference#timeout-and-output-limits) の下で実行されます。Bash ツールが [タイムアウトしたコマンドをバックグラウンドに移動](/docs/ja/tools-reference#foreground-commands-that-move-to-the-background) する場合、スキルは引き続きレンダリングされます。注入されたテキストは移動を報告し、バックグラウンドタスクとコマンドの出力を収集するファイルに名前を付けます。コマンドが Bash ツールが自動的にバックグラウンドに移動しないコマンドの場合、Claude Code はタイムアウト時にそれを強制終了します。その失敗は [呼び出しを中止します](#when-an-injected-command-fails)。

744* **出力サイズ**:Bash ツールのインライン上限を超える出力は、切り詰められたテキストではなく、ファイルパスと短いプレビューとして到着します。[出力制限](/docs/ja/tools-reference#output-limits) は上限とそれぞれの境界を調整する方法をカバーしています。744* **出力サイズ**:Bash ツールのインライン上限を超える出力は、切り詰められたテキストではなく、ファイルパスと短いプレビューとして到着します。[出力制限](/docs/ja/tools-reference#output-limits) は上限とそれぞれの境界を調整する方法をカバーしています。

745 745 

746PowerShell ツールは、実行するコマンドに同じタイムアウト、バックグラウンド処理、および出力上限の動作を適用します。その詳細については、[PowerShell ツール](/docs/ja/tools-reference#powershell-tool) セクションを参照してください。746PowerShell ツールは、実行するコマンドに同じタイムアウト、バックグラウンド処理、および出力上限の動作を適用します。その詳細については、[PowerShell ツール](/docs/ja/tools-reference#powershell-tool) セクションを参照してください。

statusline.md +7 −7

Details

20以下は、最初の行に git 情報を表示し、2 番目の行にカラーコード化されたコンテキストバーを表示する [複数行ステータスライン](#display-multiple-lines) の例です。20以下は、最初の行に git 情報を表示し、2 番目の行にカラーコード化されたコンテキストバーを表示する [複数行ステータスライン](#display-multiple-lines) の例です。

21 21 

22<Frame>22<Frame>

23 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="最初の行にモデル名、ディレクトリ、git ブランチを表示し、2 番目の行にコンテキスト使用状況プログレスバー、コスト、期間を表示する複数行ステータスライン" width="776" height="212" data-path="images/statusline-multiline.png" />23 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="最初の行にモデル名、ディレクトリ、git ブランチを表示し、2 番目の行にコンテキスト使用状況プログレスバー、コスト、期間を表示する複数行ステータスライン" width="1224" height="262" data-path="images/statusline-multiline.png" />

24</Frame>24</Frame>

25 25 

26このページでは、[基本的なステータスラインの設定](#set-up-a-status-line) について説明し、Claude Code からスクリプトへの [データフロー](#how-status-lines-work) について説明し、[表示できるすべてのフィールド](#available-data) をリストアップし、git ステータス、コスト追跡、プログレスバーなどの一般的なパターンの [すぐに使える例](#examples) を提供します。26このページでは、[基本的なステータスラインの設定](#set-up-a-status-line) について説明し、Claude Code からスクリプトへの [データフロー](#how-status-lines-work) について説明し、[表示できるすべてのフィールド](#available-data) をリストアップし、git ステータス、コスト追跡、プログレスバーなどの一般的なパターンの [すぐに使える例](#examples) を提供します。


93これらの例では Bash スクリプトを使用しており、macOS と Linux で動作します。Windows では、[Windows 設定](#windows-configuration) で PowerShell と Git Bash の例を参照してください。93これらの例では Bash スクリプトを使用しており、macOS と Linux で動作します。Windows では、[Windows 設定](#windows-configuration) で PowerShell と Git Bash の例を参照してください。

94 94 

95<Frame>95<Frame>

96 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-quickstart.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=696445e59ca0059213250651ad23db6b" alt="モデル名、ディレクトリ、コンテキスト割合を表示するステータスライン" width="726" height="164" data-path="images/statusline-quickstart.png" />96 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-quickstart.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=88a7eab9c1038dd098ee8e284d96b7e6" alt="モデル名、ディレクトリ、コンテキスト割合を表示するステータスライン" width="1224" height="224" data-path="images/statusline-quickstart.png" />

97</Frame>97</Frame>

98 98 

99<Steps>99<Steps>


444現在のモデルとコンテキストウィンドウの使用状況を視覚的なプログレスバーで表示します。各スクリプトは stdin から JSON を読み取り、`used_percentage` フィールドを抽出し、塗りつぶされたブロック(▓)が使用状況を表す 10 文字のバーを構築します:444現在のモデルとコンテキストウィンドウの使用状況を視覚的なプログレスバーで表示します。各スクリプトは stdin から JSON を読み取り、`used_percentage` フィールドを抽出し、塗りつぶされたブロック(▓)が使用状況を表す 10 文字のバーを構築します:

445 445 

446<Frame>446<Frame>

447 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-context-window-usage.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=15b58ab3602f036939145dde3165c6f7" alt="モデル名とパーセンテージ付きプログレスバーを表示するステータスライン" width="448" height="152" data-path="images/statusline-context-window-usage.png" />447 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-context-window-usage.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f3918a549912dc47e90f2b69e68bc847" alt="モデル名とパーセンテージ付きプログレスバーを表示するステータスライン" width="1224" height="224" data-path="images/statusline-context-window-usage.png" />

448</Frame>448</Frame>

449 449 

450<CodeGroup>450<CodeGroup>


513ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを使用して git ブランチを表示します。このスクリプトはターミナルの色に [ANSI エスケープコード](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) を使用します:`\033[32m` は緑、`\033[33m` は黄、`\033[0m` はデフォルトにリセットします。513ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを使用して git ブランチを表示します。このスクリプトはターミナルの色に [ANSI エスケープコード](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) を使用します:`\033[32m` は緑、`\033[33m` は黄、`\033[0m` はデフォルトにリセットします。

514 514 

515<Frame>515<Frame>

516 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-git-context.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e656f34f90d1d9a1d0e220988914345f" alt="モデル、ディレクトリ、git ブランチ、ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを表示するステータスライン" width="742" height="178" data-path="images/statusline-git-context.png" />516 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-git-context.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=f13c190724d9ec7188c17cd2f98b7bf4" alt="モデル、ディレクトリ、git ブランチ、ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを表示するステータスライン" width="1224" height="224" data-path="images/statusline-git-context.png" />

517</Frame>517</Frame>

518 518 

519各スクリプトは現在のディレクトリが git リポジトリであるかどうかを確認し、ステージングされたファイルと変更されたファイルをカウントし、カラーコード化されたインジケーターを表示します:519各スクリプトは現在のディレクトリが git リポジトリであるかどうかを確認し、ステージングされたファイルと変更されたファイルをカウントし、カラーコード化されたインジケーターを表示します:


611各スクリプトはコストを通貨としてフォーマットし、ミリ秒を分と秒に変換します:611各スクリプトはコストを通貨としてフォーマットし、ミリ秒を分と秒に変換します:

612 612 

613<Frame>613<Frame>

614 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-cost-tracking.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e3444a51fe6f3440c134bd5f1f08ad29" alt="モデル名、セッションコスト、期間を表示するステータスライン" width="588" height="180" data-path="images/statusline-cost-tracking.png" />614 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-cost-tracking.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=925f7024c3b38be0f0eca63564bfb52f" alt="モデル名、セッションコスト、期間を表示するステータスライン" width="1224" height="224" data-path="images/statusline-cost-tracking.png" />

615</Frame>615</Frame>

616 616 

617<CodeGroup>617<CodeGroup>


672スクリプトは複数の行を出力して、より豊かなディスプレイを作成できます。672スクリプトは複数の行を出力して、より豊かなディスプレイを作成できます。

673 673 

674<Frame>674<Frame>

675 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="最初の行にモデル名、ディレクトリ、git ブランチを表示し、2 番目の行にコンテキスト使用状況プログレスバー、コスト、期間を表示する複数行ステータスライン" width="776" height="212" data-path="images/statusline-multiline.png" />675 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-multiline.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=a9d0a2fe8e446d80b1abc46da3f93270" alt="最初の行にモデル名、ディレクトリ、git ブランチを表示し、2 番目の行にコンテキスト使用状況プログレスバー、コスト、期間を表示する複数行ステータスライン" width="1224" height="262" data-path="images/statusline-multiline.png" />

676</Frame>676</Frame>

677 677 

678この例は複数のテクニックを組み合わせています:閾値ベースの色(70% 未満は緑、70~89% は黄、90% 以上は赤)、プログレスバー、git ブランチ情報。各 `print` または `echo` ステートメントは別の行を作成します:678この例は複数のテクニックを組み合わせています:閾値ベースの色(70% 未満は緑、70~89% は黄、90% 以上は赤)、プログレスバー、git ブランチ情報。各 `print` または `echo` ステートメントは別の行を作成します:


781この例は GitHub リポジトリへのクリック可能なリンクを作成します。Cmd(macOS)または Ctrl(Windows/Linux)を押しながらクリックして、ブラウザでリンクを開きます。781この例は GitHub リポジトリへのクリック可能なリンクを作成します。Cmd(macOS)または Ctrl(Windows/Linux)を押しながらクリックして、ブラウザでリンクを開きます。

782 782 

783<Frame>783<Frame>

784 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-links.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=4bcc6e7deb7cf52f41ab85a219b52661" alt="GitHub リポジトリへのクリック可能なリンクを表示するステータスライン" width="726" height="198" data-path="images/statusline-links.png" />784 <img src="https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/statusline-links.png?fit=max&auto=format&n=HDAmBwgbrZVk0pOt&q=85&s=4778a144a28cb498c99d5fa018bb374a" alt="GitHub リポジトリへのクリック可能なリンクを表示するステータスライン" width="1224" height="224" data-path="images/statusline-links.png" />

785</Frame>785</Frame>

786 786 

787各スクリプトは git リモート URL を取得し、SSH 形式を HTTPS に変換し、リポジトリ名を OSC 8 エスケープコードでラップします。Bash バージョンは `printf '%b'` を使用します。これはバックスラッシュエスケープを異なるシェル間でより確実に解釈します:787各スクリプトは git リモート URL を取得し、SSH 形式を HTTPS に変換し、リポジトリ名を OSC 8 エスケープコードでラップします。Bash バージョンは `printf '%b'` を使用します。これはバックスラッシュエスケープを異なるシェル間でより確実に解釈します:

Details

253 253 

254セキュリティチームは、Claude Code が実行できることと実行できないことに対する管理権限を構成できます。これはローカル構成によって上書きされません。[詳細をご覧ください](/docs/ja/security)。254セキュリティチームは、Claude Code が実行できることと実行できないことに対する管理権限を構成できます。これはローカル構成によって上書きされません。[詳細をご覧ください](/docs/ja/security)。

255 255 

256これらのデプロイメントオプションのうち、管理対象マシンが使用できるものを制限するには、管理設定で [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) を設定します。たとえば、`["bedrock"]` は Amazon Bedrock のみを許可します。Mantle エンドポイントも有効にする Bedrock フリートは `"mantle"` も一覧に含めます。このエントリは、管理対象の `env` ピン留めも必要なエンドポイント変数を示します。Claude Code v2.1.285 以降が必要です。

257 

256<h3 id="leverage-mcp-for-integrations">258<h3 id="leverage-mcp-for-integrations">

257 統合に MCP を活用する259 統合に MCP を活用する

258</h3>260</h3>

Details

167 タイムアウトと出力制限167 タイムアウトと出力制限

168</h3>168</h3>

169 169 

170各コマンドはタイムアウト下で実行され、Claude がそれを管理します。コマンドにデフォルトより長い時間が必要な場合、その呼び出しで `timeout` パラメータを渡します。ユーザーがコマンドごとのタイムアウトを設定することはありません。2 つの[環境変数](/docs/ja/env-vars)が Claude が取得するものを制限します。170各コマンドはタイムアウト下で実行され、Claude がそれを管理します。コマンドにデフォルトより長い時間が必要な場合、その呼び出しで `timeout` パラメータを渡します。ユーザーがコマンドごとのタイムアウトを設定することはありません。2 つの[環境変数](/docs/ja/env-vars)が Claude が取得するものを制御します。

171 171 

172* `BASH_DEFAULT_TIMEOUT_MS` — Claude がタイムアウトを渡さない場合のデフォルト。デフォルトでは 2 分です。172* `BASH_DEFAULT_TIMEOUT_MS` — Claude がタイムアウトを渡さない場合のデフォルト。デフォルトでは 2 分です。

173* `BASH_MAX_TIMEOUT_MS` — デフォルトでは、Claude が要求するものを上限で制限します。有効な上限は 2 つの値の大きい方です。デフォルトでは 10 分です。173* `BASH_MAX_TIMEOUT_MS` — デフォルトでは、Claude が要求するものを上限で制限します。有効な上限は 2 つの値の大きい方です。デフォルトでは 10 分です。

174 174 

175バックグラウンドで実行される Claude が開始するコマンドの場合、`timeout` は代わりにコマンドがそこで実行される期間を設定し、[バックグラウンドコマンド](#background-commands)の下で説明されている別のデフォルトと最大値があります。[PowerShell ツール](#powershell-tool)は同じタイムアウトルールに従い、同じ 2 つの変数を読み取ります。175バックグラウンドで実行される Claude が開始するコマンドの場合、`timeout` は代わりにコマンドがそこで実行される期間を設定し、[バックグラウンドコマンドの時間制限](#time-limit-for-background-commands)の下で説明されている別のデフォルトと最大値があります。[PowerShell ツール](#powershell-tool)は同じタイムアウトルールに従い、同じ 2 つの変数を読み取ります。

176 176 

177<h4 id="output-limits">177<h4 id="output-limits">

178 出力制限178 出力制限


197 197 

198開発サーバーやウォッチビルドなどの長時間実行プロセスの場合、Claude は `run_in_background: true` を設定してコマンドをバックグラウンドタスクとして開始し、実行中に作業を続けることができます。`/tasks` でバックグラウンドタスクをリストアップして停止します。そこから停止するか、デスクトップアプリなどの接続されたクライアントから停止すると、Claude は待機する代わりに先に進みます。サブエージェントがコマンドを開始した場合、先に進むのはそのサブエージェントです。198開発サーバーやウォッチビルドなどの長時間実行プロセスの場合、Claude は `run_in_background: true` を設定してコマンドをバックグラウンドタスクとして開始し、実行中に作業を続けることができます。`/tasks` でバックグラウンドタスクをリストアップして停止します。そこから停止するか、デスクトップアプリなどの接続されたクライアントから停止すると、Claude は待機する代わりに先に進みます。サブエージェントがコマンドを開始した場合、先に進むのはそのサブエージェントです。

199 199 

200[フォアグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)が開始したコマンドは、そのサブエージェントの実行が終了すると停止します。完了したか、失敗したか、中断されたかに関係なく。メインの会話またはバックグラウンドサブエージェントが開始したコマンドは、最終応答の後も実行し続けます。終了するまで、停止されるまで、またはその時間制限に達するまで。`-p` フラグを使用した非対話型モードでは、[バックグラウンドコマンドは実行の最終結果の直後に終了します](/docs/ja/headless#background-tasks-at-exit)。200<h4 id="when-a-background-command-stops">

201 バックグラウンドコマンドが停止するとき

202</h4>

203 

204[フォアグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)が開始したコマンドは、そのサブエージェントの実行が終了すると停止します。完了したか、失敗したか、中断されたかに関係なく。メインの会話またはバックグラウンドサブエージェントが開始したコマンドは、最終応答の後も実行し続けます。終了するまで、停止されるまで、またはその[時間制限](#time-limit-for-background-commands)に達するまで。`-p` フラグを使用した非対話型モードでは、[バックグラウンドコマンドは実行の最終結果の直後に終了します](/docs/ja/headless#background-tasks-at-exit)。

205 

206<h4 id="time-limit-for-background-commands">

207 バックグラウンドコマンドの時間制限

208</h4>

201 209 

202Bash および PowerShell バックグラウンドコマンドには時間制限があり、コマンドがバックグラウンドに入った時点からカウントされます。210Bash および PowerShell バックグラウンドコマンドには時間制限があり、コマンドがバックグラウンドに入った時点からカウントされます。

203 211 

204* Claude がバックグラウンドで開始するコマンドは 30 分、または Claude が `run_in_background` で渡す `timeout` を取得します。最大 2 時間まで。212* Claude がバックグラウンドで開始するコマンドは 30 分、または Claude が `run_in_background` で渡す `timeout` を取得します。最大 2 時間まで。

205* フォアグラウンドで開始してからバックグラウンドに移動するコマンド。例えば `Ctrl+B` で、またはそのタイムアウトで、移動から 30 分を取得します。213* フォアグラウンドで開始してからバックグラウンドに移動するコマンド。例えば `Ctrl+B` で、またはそのタイムアウトで、移動から 30 分を取得します。

206 214 

215バックグラウンドコマンドが時間制限に達すると、Claude Code はそれを停止し、Claude に理由を伝えます。Claude は、作業がまだ必要な場合、より長い `timeout` でコマンドを再度開始できます。停止通知は `Background command "<description>" was stopped after reaching its background time limit` と読みます。

216 

217<h4 id="raise-the-time-limit-for-background-commands">

218 バックグラウンドコマンドの時間制限を上げる

219</h4>

220 

2072 つの[環境変数](/docs/ja/env-vars)がこれらの制限を上げます。Bash および PowerShell コマンド同様。両方ともミリ秒を取得し、どちらも制限を短縮することはできません。低い値は 30 分のデフォルトと 2 時間の最大値を保ちます。2212 つの[環境変数](/docs/ja/env-vars)がこれらの制限を上げます。Bash および PowerShell コマンド同様。両方ともミリ秒を取得し、どちらも制限を短縮することはできません。低い値は 30 分のデフォルトと 2 時間の最大値を保ちます。

208 222 

209* `BASH_DEFAULT_TIMEOUT_MS` を `1800000` より上に設定して、30 分のデフォルトをその値に置き換えます。Claude が `timeout` なしで開始するコマンドと移動されたコマンドの両方に対して。223* `BASH_DEFAULT_TIMEOUT_MS` を `1800000` より上に設定して、30 分のデフォルトをその値に置き換えます。Claude が `timeout` なしで開始するコマンドと移動されたコマンドの両方に対して。

210* `BASH_MAX_TIMEOUT_MS` を `7200000` より上に設定して、2 時間の最大値をその値に上げます。`BASH_DEFAULT_TIMEOUT_MS` を `7200000` より上に設定すると、最大値が同じ方法で上がります。224* `BASH_MAX_TIMEOUT_MS` を `7200000` より上に設定して、2 時間の最大値をその値に上げます。`BASH_DEFAULT_TIMEOUT_MS` を `7200000` より上に設定すると、最大値が同じ方法で上がります。

211 225 

212バックグラウンドコマンドが時間制限に達すると、Claude Code はそれを停止し、Claude に理由を伝えます。Claude は、作業がまだ必要な場合、より長い `timeout` でコマンドを再度開始できます。停止通知は `Background command "<description>" was stopped after reaching its background time limit` と読みます。226<h4 id="foreground-commands-that-move-to-the-background">

227 フォアグラウンドコマンドがバックグラウンドに移動する

228</h4>

213 229 

214フォアグラウンドコマンドが完了せずにタイムアウトに達すると、Claude Code はそれを停止する代わりにバックグラウンドに移動します。ただし、コマンドが `sleep` で始まる場合は除きます。移動されたコマンドの時間制限は移動からカウントされ、フォアグラウンドサブエージェントの移動されたコマンドはそのサブエージェントの実行が終了すると停止します。230フォアグラウンドコマンドが完了せずにタイムアウトに達すると、Claude Code はそれを停止する代わりにバックグラウンドに移動します。ただし、コマンドが `sleep` で始まる場合は除きます。移動されたコマンドの[時間制限](#time-limit-for-background-commands)は移動からカウントされ、フォアグラウンドサブエージェントの移動されたコマンドはそのサブエージェントの実行が終了すると停止します。

215 231 

216[`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ja/env-vars#variables) を設定すると、バックグラウンドタスク機能の残りと共に自動バックグラウンド化を無効にします。232[`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ja/env-vars#variables) を設定すると、バックグラウンドタスク機能の残りと共に自動バックグラウンド化を無効にします。

217 233 


244リストするものに関係なく、これらのルールが適用されます。260リストするものに関係なく、これらのルールが適用されます。

245 261 

246* **不明な名前**: Claude Code は認識しない名前を無視します。262* **不明な名前**: Claude Code は認識しない名前を無視します。

247* **Bash、PowerShell、および Monitor**: Claude Code は、リストするものに関係なく、Bash、PowerShell、および Monitor ツールコマンドを上限の下に保ちます。

248* **変数が設定されていない**: Claude Code は、Anthropic がサーバーから配信する設定から他のキャップされた種類のセットを取得し、そのセットは時間とともに変わる可能性があるため、変更されないセットが必要な場合は変数を設定します。263* **変数が設定されていない**: Claude Code は、Anthropic がサーバーから配信する設定から他のキャップされた種類のセットを取得し、そのセットは時間とともに変わる可能性があるため、変更されないセットが必要な場合は変数を設定します。

249* **権限ゲーティングフック**: すべての種類がキャップされている場合でも、Claude Code はアクションをブロックまたは変更できるフック、およびそのようなフックが呼び出す MCP サーバーを上限から除外するため、カーネルが権限ゲーティングフックを強制終了してもブロックしていたアクションを許可することはできません。264* **権限ゲーティングフック**: すべての種類がキャップされている場合でも、Claude Code はアクションをブロックまたは変更できるフック、およびそのようなフックが呼び出す MCP サーバーを上限から除外するため、カーネルが権限ゲーティングフックを強制終了してもブロックしていたアクションを許可することはできません。

250 265 

ultrareview.md +1 −1

Details

66 66 

67PR モードでは、クラウドサンドボックスはローカルの作業ツリーをバンドルするのではなく、ホストから直接プルリクエストをクローンします。PR モードは `github.com` 上のリポジトリおよび Claude Code に接続されている Owner が設定した [GitHub Enterprise Server](/docs/ja/github-enterprise-server) インスタンスで機能します。67PR モードでは、クラウドサンドボックスはローカルの作業ツリーをバンドルするのではなく、ホストから直接プルリクエストをクローンします。PR モードは `github.com` 上のリポジトリおよび Claude Code に接続されている Owner が設定した [GitHub Enterprise Server](/docs/ja/github-enterprise-server) インスタンスで機能します。

68 68 

69`github.com` 上のリポジトリの場合、サンドボックスは Claude アカウントに接続された GitHub アカウントでクローンするため、そのアカウントは PR のリポジトリを読み取ることができる必要があります。Claude Code は [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars#variables) を設定していない限り、クラウドセッションを作成する前にこれをチェックし、[アカウントが接続されていない](/docs/ja/errors#no-github-account-is-connected-to-your-claude-account)場合または [アカウントがリポジトリを見ることができない](/docs/ja/errors#your-connected-github-account-cant-see-the-repository)場合に起動を拒否します。拒否は修正を名前付けします。v2.1.248 より前では、Claude Code は起動前にこれをチェックしませんでした。69`github.com` 上のリポジトリの場合、サンドボックスは Claude アカウントに接続された GitHub アカウントでクローンするため、そのアカウントは PR のリポジトリを読み取ることができる必要があります。

70 70 

71[`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal) を実行して、GitHub CLI ログインを Claude アカウントに接続します。71[`/web-setup`](/docs/ja/web-quickstart#connect-from-your-terminal) を実行して、GitHub CLI ログインを Claude アカウントに接続します。

72 72 

vs-code.md +25 −5

Details

58 58 

59 * **アクティビティバー**:左サイドバーの Spark アイコンをクリックしてセッションリストを開きます。任意のセッションをクリックして[優先位置](#extension-settings)で開くか、新しいセッションを開始します。このアイコンはアクティビティバーに常に表示されます。59 * **アクティビティバー**:左サイドバーの Spark アイコンをクリックしてセッションリストを開きます。任意のセッションをクリックして[優先位置](#extension-settings)で開くか、新しいセッションを開始します。このアイコンはアクティビティバーに常に表示されます。

60 * **コマンドパレット**:`Cmd+Shift+P`(Mac)または `Ctrl+Shift+P`(Windows/Linux)を押し、「Claude Code」と入力して、「Open in New Tab」などのオプションを選択します。60 * **コマンドパレット**:`Cmd+Shift+P`(Mac)または `Ctrl+Shift+P`(Windows/Linux)を押し、「Claude Code」と入力して、「Open in New Tab」などのオプションを選択します。

61 * **ステータスバー**:[`preferredLocation`](#extension-settings) を `sidebar` に設定した場合、または **Claude Code: Open in Side Bar** で Claude を開いた場合、ウィンドウの右下隅の **✻ Claude Code** をクリックします。ファイルが開いていない場合でも機能します。61 * **ステータスバー**:ウィンドウの右下隅の **✻ Claude Code** をクリックします。ファイルが開いていない場合でも機能します。

62 62 

63 Claude パネルをドラッグして VS Code 内の任意の場所に移動できます。詳細は[ワークフローをカスタマイズする](#customize-your-workflow)を参照してください。63 Claude パネルをドラッグして VS Code 内の任意の場所に移動できます。詳細は[ワークフローをカスタマイズする](#customize-your-workflow)を参照してください。

64 </Step>64 </Step>


362 362 

363プラグインタブでは、以下のことができます。363プラグインタブでは、以下のことができます。

364 364 

365* **インストール済みプラグイン**がトップに表示され、トグルスイッチで有効または無効にできます365* **インストール済みプラグイン**がトップに表示され、トグルスイッチで有効または無効にできます。

366 * プロジェクトの共有 `.claude/settings.json` で有効になっているプラグインをオフにすると、拡張機能は最初に確認を求めます。**自分のみ無効にする**はあなただけのためにオフにし、**全員のために無効にする**は共有ファイルを変更します。

366* 設定されたマーケットプレイスからの**利用可能なプラグイン**が下に表示されます367* 設定されたマーケットプレイスからの**利用可能なプラグイン**が下に表示されます

367* 名前または説明でプラグインをフィルタリングするために検索します368* 名前または説明でプラグインをフィルタリングするために検索します

368* 利用可能なプラグインの**インストール**をクリックします369* 利用可能なプラグインの**インストール**をクリックします


373* **このプロジェクトのためにインストール**:プロジェクト協力者と共有(プロジェクトスコープ)374* **このプロジェクトのためにインストール**:プロジェクト協力者と共有(プロジェクトスコープ)

374* **ローカルにインストール**:このリポジトリのみ、あなただけ(ローカルスコープ)375* **ローカルにインストール**:このリポジトリのみ、あなただけ(ローカルスコープ)

375 376 

377インストールが完了すると、フォームはまだ設定されていないプラグインの[設定オプション](/docs/ja/plugins/components#user-configuration)を求めます。後でオプションを確認または変更するには、プラグインの行の歯車アイコンをクリックします。

378 

379機密テキストフィールドはマスクされ、以前保存したシークレットは\*\*(変更なし)\*\*と表示されます。保存された値を保持するには、フィールドを空白のままにします。

380 

381変更を保存した後、開いているセッションはプラグインをリロードし、ダイアログは**プラグイン変更を適用するために Claude を再起動してください**と表示します。

382 

383<h3 id="uninstall-plugins">

384 プラグインをアンインストールする

385</h3>

386 

387各インストール済み行は、それがインストールされている[スコープ](/docs/ja/plugins/install#choose-an-install-scope)を示します。そのインストールをアンインストールするには、行のゴミ箱アイコンをクリックします。薄いゴミ箱アイコンは、このワークスペースからアンインストールできない行(組織が管理するプラグインや別のプロジェクト用にインストールされたプラグインなど)を示します。

388 

389拡張機能は 2 つのケースで最初に確認を求めます:

390 

391* **プロジェクトの共有 `.claude/settings.json` で有効になっているプラグイン**:**自分のみ無効にする**を選択します。これはプラグインを協力者のためにインストール状態に保ちます。または**全員のためにアンインストール**を選択します。これはプロジェクトのインストールを [`--keep-data`](/docs/ja/plugins/cli-reference#what-an-uninstall-deletes-and-keeps) で削除するため、プラグインの保存されたデータディレクトリは残ります。既にプラグインを自分のためにオフにしている場合、ゴミ箱アイコンは質問なしにあなた自身のインストールを削除します。

392* **それ以外の場合、保存されたデータを持つプラグインの最後のインストール**:データを保持するか削除するかを選択します。**保持**がデフォルトです

393 

376<h3 id="share-a-plugin-install-link">394<h3 id="share-a-plugin-install-link">

377 プラグインインストールリンクを共有する395 プラグインインストールリンクを共有する

378</h3>396</h3>


407 425 

408* GitHub リポジトリ、URL、またはローカルパスを入力して、新しいマーケットプレイスを追加します426* GitHub リポジトリ、URL、またはローカルパスを入力して、新しいマーケットプレイスを追加します

409* 更新アイコンをクリックして、マーケットプレイスのプラグインリストを更新します427* 更新アイコンをクリックして、マーケットプレイスのプラグインリストを更新します

410* ゴミ箱アイコンをクリックして、マーケットプレイスを削除します428* ゴミ箱アイコンをクリックして、マーケットプレイスを削除します。削除すると[それからインストールしたすべてのプラグインがアンインストールされます](/docs/ja/plugins/install#manage-marketplaces)。そのため、確認ではそれらのプラグインが最初に名前で示されます

429 

430ダイアログで加えたプラグイン変更は、その VS Code ウィンドウで開いている Claude Code セッションにすぐに適用されます。

411 431 

412ダイアログで加えたプラグイン変更は、その VS Code ウィンドウで開いている Claude Code セッションにすぐに適用されます。ダイアログを開いたセッションがプラグインをリロードできない場合、ダイアログは再度試すか、そのセッションで Claude を再起動するオプションを提供します。432ダイアログを開いたセッションがプラグインをリロードできない場合、ダイアログは再度試すか、そのセッションで Claude を再起動するオプションを提供します。

413 433 

414<Note>434<Note>

415 VS Code のプラグイン管理は、内部的に同じ CLI コマンドを使用しています。拡張機能で設定したプラグインとマーケットプレイスは CLI でも利用でき、その逆も同様です。435 VS Code のプラグイン管理は、内部的に同じ CLI コマンドを使用しています。拡張機能で設定したプラグインとマーケットプレイスは CLI でも利用でき、その逆も同様です。


7884. **競合する拡張機能を無効にする**:他の AI 拡張機能(Cline、Continue など)を一時的に無効にしてください8084. **競合する拡張機能を無効にする**:他の AI 拡張機能(Cline、Continue など)を一時的に無効にしてください

7895. **ワークスペースの信頼を確認する**:拡張機能は制限モードでは動作しません8095. **ワークスペースの信頼を確認する**:拡張機能は制限モードでは動作しません

790 810 

791または、[`preferredLocation`](#extension-settings) を `sidebar` に設定している場合、または **Claude Code: Open in Side Bar** で Claude を開いている場合は、**Status Bar**(右下隅)の「✻ Claude Code」をクリックしてください。これはファイルを開いていなくても動作します。**Command Palette**(`Cmd+Shift+P` / `Ctrl+Shift+P`)を使用して「Claude Code」と入力することもできます。811または、ウィンドウの右下隅の **Status Bar** にある **✻ Claude Code** をクリックしてください。これはファイルを開いていなくても動作します。**Command Palette**(`Cmd+Shift+P` / `Ctrl+Shift+P`)を使用して「Claude Code」と入力することもできます。

792 812 

793<h3 id="cmd-esc-does-nothing-on-macos">813<h3 id="cmd-esc-does-nothing-on-macos">

794 macOS で Cmd+Esc が機能しない814 macOS で Cmd+Esc が機能しない