SpyBara
Go Premium

Documentation 2026-10-08 22:58 UTC to 2026-10-09 01:00 UTC

16 files changed +101 −27. View all changes and history on the product overview
2026
Fri 9 03:01 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

146| `auto` | モデル分類承認 | モデル分類器がシェルコマンドやネットワークリクエストなどのアクションをレビューし、レビューする各アクションを許可またはブロックします。利用可能性と決定順序については [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) を参照してください |146| `auto` | モデル分類承認 | モデル分類器がシェルコマンドやネットワークリクエストなどのアクションをレビューし、レビューする各アクションを許可またはブロックします。利用可能性と決定順序については [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) を参照してください |

147 147 

148<Warning>148<Warning>

149 **サブエージェント継承:** サブエージェントは、その [`AgentDefinition`](/docs/ja/agent-sdk/typescript#agentdefinition) で `permissionMode` を設定し、親セッションが `default`、`dontAsk`、または `plan` モードにある場合を除き、親セッションの権限モードで実行されます。その場合でも、Claude Code は `"bypassPermissions"` 値を適用しません。サブエージェントは、親セッション自体が `bypassPermissions` モードにある場合にのみ、`bypassPermissions` モードで実行されます。`bypassPermissions` 例外には Claude Code v2.1.267 以降が必要です。149 **サブエージェント継承:** サブエージェントは、その [`AgentDefinition`](/docs/ja/agent-sdk/typescript#agentdefinition) で `permissionMode` を設定し、親セッションが `default`、`dontAsk`、または `plan` モードにある場合を除き、親セッションの権限モードで実行されます。その場合でも、Claude Code は `"bypassPermissions"` 値を適用せず、`"auto"` 値はそのサブエージェントで [auto モードが利用可能](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) な場合にのみ適用します。サブエージェントは、親セッション自体が `bypassPermissions` モードにある場合にのみ、`bypassPermissions` モードで実行されます。`bypassPermissions` 例外には Claude Code v2.1.267 以降が必要です。

150 150 

151 サブエージェントは、メインエージェントとは異なるシステムプロンプトを持つ可能性があり、動作がより制約されていないため、`bypassPermissions` を継承すると、完全で自律的なシステムアクセスが付与されます。[モードが自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) は引き続き適用されます。151 サブエージェントは、メインエージェントとは異なるシステムプロンプトを持つ可能性があり、動作がより制約されていないため、`bypassPermissions` を継承すると、完全で自律的なシステムアクセスが付与されます。[モードが自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) は引き続き適用されます。

152</Warning>152</Warning>

Details

323 サブエージェント呼び出しの検出323 サブエージェント呼び出しの検出

324</h2>324</h2>

325 325 

326Claude はエージェントツールを通じてサブエージェントを呼び出します。サブエージェントが呼び出されたときを検出するには、`name` が `"Agent"` である `tool_use` ブロックをチェックしてください。サブエージェントのコンテキスト内からのメッセージには、`parent_tool_use_id` フィールドが含まれます。326Claude はエージェントツールを通じてサブエージェントを呼び出します。サブエージェントが呼び出されたときを検出するには、`name` が `"Agent"` である `tool_use` ブロックをチェックしてください。

327 

328サブエージェントのコンテキスト内からのメッセージには、`parent_tool_use_id` フィールドが含まれます。TypeScript では、サブエージェントが生成する各アシスタントメッセージおよびユーザーメッセージに [`agent_id`](/docs/ja/agent-sdk/typescript#sdkassistantmessage) も含まれます。これは、そのサブエージェントの[タスクイベント](/docs/ja/agent-sdk/typescript#sdktaskstartedmessage)の `task_id` です。`agent_id` には TypeScript Agent SDK v0.3.292 以降が必要です。

327 329 

328<Note>330<Note>

329 このツールは `tool_use` ブロックでは `"Agent"` として表示されますが、`system:init` ツールリストでは `"Task"` として表示されます。Claude Code v2.1.63 より前では、`tool_use` ブロックもこれを `"Task"` と名付けていました。SDK バージョン間で検出が機能し続けるようにするには、`block.name` で両方の値に一致させてください。331 このツールは `tool_use` ブロックでは `"Agent"` として表示されますが、`system:init` ツールリストでは `"Task"` として表示されます。Claude Code v2.1.63 より前では、`tool_use` ブロックもこれを `"Task"` と名付けていました。SDK バージョン間で検出が機能し続けるようにするには、`block.name` で両方の値に一致させてください。


331 333 

332メッセージ構造は SDK 間で異なります。Python では、`message.content` を通じてコンテンツブロックに直接アクセスします。TypeScript では、`SDKAssistantMessage` が Claude API メッセージをラップするため、`message.message.content` を通じてコンテンツにアクセスします。334メッセージ構造は SDK 間で異なります。Python では、`message.content` を通じてコンテンツブロックに直接アクセスします。TypeScript では、`SDKAssistantMessage` が Claude API メッセージをラップするため、`message.message.content` を通じてコンテンツにアクセスします。

333 335 

334この例は、ストリーミングされたメッセージを反復処理し、サブエージェントが呼び出されたときと、その後のメッセージがそのサブエージェントの実行コンテキスト内から発信されたときをログに記録します。336この例は、ストリーミングされたメッセージを反復処理し、サブエージェントが呼び出されたときと、その後のメッセージがそのサブエージェントの実行コンテキスト内から発信されたときをログに記録します。TypeScript 版では、`agent_id` を持つ各サブエージェントメッセージについて、その `agent_id` もログに記録します。

335 337 

336<CodeGroup>338<CodeGroup>

337 ```python Python theme={null}339 ```python Python theme={null}


403 // Check if this message is from within a subagent's context405 // Check if this message is from within a subagent's context

404 if (msg.parent_tool_use_id) {406 if (msg.parent_tool_use_id) {

405 console.log(" (running inside subagent)");407 console.log(" (running inside subagent)");

408 // On assistant and user messages, agent_id matches the task_id

409 // on that subagent's task_started and other task events

410 if (msg.agent_id) {

411 console.log(` agent_id: ${msg.agent_id}`);

412 }

406 }413 }

407 414 

408 if ("result" in message) {415 if ("result" in message) {

Details

1561 parent_tool_use_id: string | null;1561 parent_tool_use_id: string | null;

1562 error?: SDKAssistantMessageError;1562 error?: SDKAssistantMessageError;

1563 aborted?: true;1563 aborted?: true;

1564 agent_id?: string;

1564 timestamp?: string;1565 timestamp?: string;

1565 context_usage?: SDKContextUsage;1566 context_usage?: SDKContextUsage;

1566 user_message_uuid?: string;1567 user_message_uuid?: string;


1580 1581 

1581`aborted` は、ストリームが完了する前に中断または中止によってアシスタントメッセージが切り詰められた場合に `true` になります。このときメッセージには `stop_reason` がなく、内容が単語の途中で終わっている可能性があります。正常に完了したメッセージにはこのフィールドはありません。Agent SDK v0.3.214 以降が必要です。1582`aborted` は、ストリームが完了する前に中断または中止によってアシスタントメッセージが切り詰められた場合に `true` になります。このときメッセージには `stop_reason` がなく、内容が単語の途中で終わっている可能性があります。正常に完了したメッセージにはこのフィールドはありません。Agent SDK v0.3.214 以降が必要です。

1582 1583 

1584`agent_id` はメッセージを生成したサブエージェントを識別し、メインスレッドのメッセージには存在しません。値は、そのサブエージェントの [`task_started`](#sdktaskstartedmessage) およびその他のタスクイベントの `task_id` と同じで、サブエージェントが[再開](/docs/ja/agent-sdk/subagents#resume-subagents)されても変わりません。このフィールドには Agent SDK v0.3.292 以降が必要です。

1585 

1586サブエージェントのメッセージをタスクイベントと対応付けるには、メッセージの `parent_tool_use_id` とタスクイベントの `tool_use_id` を組み合わせるのではなく、`agent_id` で照合してください。ツール呼び出しがサブエージェントを再開すると、タスクイベントにはその呼び出しの `tool_use_id` が含まれますが、メッセージはサブエージェントを最初に開始したツール呼び出しの `parent_tool_use_id` を保持するため、両者は一致しなくなります。

1587 

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

1584 1589 

1585`timestamp` は、メッセージを生成したプロセス上でそのメッセージの内容の生成が完了した時刻を ISO 8601 形式で表します。値はそのマシンの時計に基づくため、表示目的にのみ使用し、メッセージの並べ替えには使用しないでください。1 回の API ターンで、同じ `message.id` を共有する複数のアシスタントメッセージが生成されることがあり、それぞれが独自の `timestamp` を持ちます。このフィールドがない場合は、メッセージを受信した時刻で代用してください。1590`timestamp` は、メッセージを生成したプロセス上でそのメッセージの内容の生成が完了した時刻を ISO 8601 形式で表します。値はそのマシンの時計に基づくため、表示目的にのみ使用し、メッセージの並べ替えには使用しないでください。1 回の API ターンで、同じ `message.id` を共有する複数のアシスタントメッセージが生成されることがあり、それぞれが独自の `timestamp` を持ちます。このフィールドがない場合は、メッセージを受信した時刻で代用してください。


1597 type: "user";1602 type: "user";

1598 uuid?: UUID;1603 uuid?: UUID;

1599 session_id?: string;1604 session_id?: string;

1605 agent_id?: string;

1600 message: MessageParam; // From Anthropic SDK1606 message: MessageParam; // From Anthropic SDK

1601 pasted_content?: MessageParam["content"][];1607 pasted_content?: MessageParam["content"][];

1602 parent_tool_use_id: string | null;1608 parent_tool_use_id: string | null;


1636};1642};

1637```1643```

1638 1644 

1645サブエージェントが生成するユーザーメッセージ(自身のツール呼び出しの `tool_result` など)には `agent_id` が含まれます。このフィールドとそのバージョン要件を定義している [`SDKAssistantMessage`](#sdkassistantmessage) を参照してください。

1646 

1639`tool_result` ブロックを含むメッセージでは、`tool_use_result` はモデルに送信されるテキストではなく、ツールの構造化された出力オブジェクトです。その形状は対応する `tool_use` ブロックで指定されたツールによって異なるため、このフィールドの型は `unknown` です。組み込みの形状は [Tool Output Types](#tool-output-types) に記載されています。次の結果には、記載された形状以上の処理が必要です。1647`tool_result` ブロックを含むメッセージでは、`tool_use_result` はモデルに送信されるテキストではなく、ツールの構造化された出力オブジェクトです。その形状は対応する `tool_use` ブロックで指定されたツールによって異なるため、このフィールドの型は `unknown` です。組み込みの形状は [Tool Output Types](#tool-output-types) に記載されています。次の結果には、記載された形状以上の処理が必要です。

1640 1648 

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


1992 `SDKPartialAssistantMessage`2000 `SDKPartialAssistantMessage`

1993</h3>2001</h3>

1994 2002 

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

2004 

2005`parent_tool_use_id` フィールドは常に `null` です。ストリームイベントはメインセッションに対してのみ出力されます。サブエージェントへの帰属を判断するには、[`agent_id`](#sdkassistantmessage) と `parent_tool_use_id` を含む完全なメッセージを使用するか、[`forwardSubagentText`](#options) を有効にしてサブエージェントのテキストと思考を完全なメッセージとして受け取ってください。

1996 2006 

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

1998type SDKPartialAssistantMessage = {2008type SDKPartialAssistantMessage = {


5775 task_type?: string;5785 task_type?: string;

5776 is_backgrounded?: boolean;5786 is_backgrounded?: boolean;

5777 spawn_depth?: number;5787 spawn_depth?: number;

5788 parent_task_id?: string;

5778 ambient?: boolean;5789 ambient?: boolean;

5779 uuid: UUID;5790 uuid: UUID;

5780 session_id: string;5791 session_id: string;


5792 5803 

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

5794 5805 

5806`parent_task_id` は、このタスクを起動したサブエージェントの `task_id` を保持します。これを使用して、各タスクをそれを開始したサブエージェントの下にグループ化してください。Claude Code はサブエージェント、Bash、[Monitor](#monitor) タスクでこれを設定します。フィールドには Agent SDK v0.3.292 以降が必要です。以下の場合は存在しません。

5807 

5808* メインスレッドがタスクを起動した場合

5809* Claude Code が親タスクを追跡しなくなった場合

5810* [チームメイト](/docs/ja/agent-teams) またはワークフロー内のエージェントがタスクを起動した場合

5811 

5812親はフォアグラウンドタスクの場合や、すでに終了したタスクの場合もあるため、認識しない ID は親なしとして扱ってください。

5813 

5795<h3 id="sdktaskprogressmessage">5814<h3 id="sdktaskprogressmessage">

5796 `SDKTaskProgressMessage`5815 `SDKTaskProgressMessage`

5797</h3>5816</h3>


5848 `SDKBackgroundTasksChangedMessage`5867 `SDKBackgroundTasksChangedMessage`

5849</h3>5868</h3>

5850 5869 

5851ライブバックグラウンドタスクのセットが変わるたびに発行されます。タスクの開始、完了、キル、フォアグラウンドエージェントのバックグラウンド化、またはタスクの `description` または `ambient` フィールドの変更などです。5870ライブバックグラウンドタスクのセットが変わるたびに発行されます。タスクの開始、完了、キル、フォアグラウンドエージェントのバックグラウンド化、またはタスクの `description`、`ambient`、`parent_task_id` フィールドの変更などです。各エントリの `parent_task_id` フィールドについては、それとそのバージョン要件を定義している [`SDKTaskStartedMessage`](#sdktaskstartedmessage) を参照してください。

5852 5871 

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

5854 5873 

5855これらのタスクごとのイベントに対する順序付けは指定されていないため、2 つのストリームを相関させないでください。5874タスクが終了すると、その [`task_updated`](#sdktaskupdatedmessage) と [`task_notification`](#sdktasknotificationmessage) は、それをリストから削除する `background_tasks_changed` より前に到着します。それ以外の場合、タスクごとのイベントに対する順序付けは指定されていません。

5856 5875 

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

5858 5877 


5869 task_type: string;5888 task_type: string;

5870 subagent_type?: string;5889 subagent_type?: string;

5871 description: string;5890 description: string;

5891 parent_task_id?: string;

5872 ambient?: boolean;5892 ambient?: boolean;

5873 }[];5893 }[];

5874 uuid: UUID;5894 uuid: UUID;

env-vars.md +1 −0

Details

378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | ターンの途中で終了したセッションが再開時に自動的に続行されるための、最後のトランスクリプトメッセージの最大経過時間(ミリ秒)。最後のメッセージがこの制限より古い場合、Claude Code は `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` による自動再開と、その `CLAUDE_CODE_RESUME_PROMPT` 継続メッセージをスキップし、セッションはアイドル状態で開始されるため、明示的に続行することになります。未設定または `0` は制限なしを意味します。ただし、最後のリクエストが API エラーで失敗したターンは、そのエラーの発生から 6 時間未満の場合にのみ再開されます。正の値はそのようなターンを含むすべてのターンに制限を適用し、負の値や数値以外の値は 1 時間の制限を適用します。長時間実行されるエージェントの起動スクリプトでこれを設定すると、古いトランスクリプトに対して再起動したときに古いプロンプトが再実行されるのを防げます。対話セッションから会話を引き継いだ [エージェントビュー](/docs/ja/agent-view) セッションがクラッシュして再起動する場合は、Claude Code 自身が 1 時間の制限を設定します。Claude Code v2.1.211 以降が必要です |378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | ターンの途中で終了したセッションが再開時に自動的に続行されるための、最後のトランスクリプトメッセージの最大経過時間(ミリ秒)。最後のメッセージがこの制限より古い場合、Claude Code は `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` による自動再開と、その `CLAUDE_CODE_RESUME_PROMPT` 継続メッセージをスキップし、セッションはアイドル状態で開始されるため、明示的に続行することになります。未設定または `0` は制限なしを意味します。ただし、最後のリクエストが API エラーで失敗したターンは、そのエラーの発生から 6 時間未満の場合にのみ再開されます。正の値はそのようなターンを含むすべてのターンに制限を適用し、負の値や数値以外の値は 1 時間の制限を適用します。長時間実行されるエージェントの起動スクリプトでこれを設定すると、古いトランスクリプトに対して再起動したときに古いプロンプトが再実行されるのを防げます。対話セッションから会話を引き継いだ [エージェントビュー](/docs/ja/agent-view) セッションがクラッシュして再起動する場合は、Claude Code 自身が 1 時間の制限を設定します。Claude Code v2.1.211 以降が必要です |

379| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` が中断されたターンをプロンプトの再送信ではなく続行によって再開する場合、または `-p` で [延期されたツール呼び出し](/docs/ja/hooks#defer-a-tool-call-for-later) を再開する場合に、Claude Code が Claude に送信する継続メッセージを上書きします。デフォルトは `Continue from where you left off.` です。空文字列の場合はデフォルトが使用されます |379| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` が中断されたターンをプロンプトの再送信ではなく続行によって再開する場合、または `-p` で [延期されたツール呼び出し](/docs/ja/hooks#defer-a-tool-call-for-later) を再開する場合に、Claude Code が Claude に送信する継続メッセージを上書きします。デフォルトは `Continue from where you left off.` です。空文字列の場合はデフォルトが使用されます |

380| `CLAUDE_CODE_RETRY_WATCHDOG` | eval ハーネス、CI ジョブ、リモートワーカーなどの無人セッションでは `1` に設定します。`429` および `529` の容量エラーを、`CLAUDE_CODE_MAX_RETRIES` 回の試行後に失敗させるのではなく、無期限に再試行します。標準速度のリクエストが、支出上限や使用クレジットの枯渇を報告する `429` を受け取った場合は、それがスケジュールでリセットされる [ゲートウェイの支出上限](/docs/ja/errors#spend-limit-reached) によるものであっても、Claude Code は即座に失敗します。v2.1.239 より前は、ウォッチドッグはこれらを無期限に再試行していました。fast mode のリクエストについては、[レート制限を処理する](/docs/ja/fast-mode#handle-rate-limits) を参照してください。ウォッチドッグは試行の間に最大 5 分間、またはレスポンスにレート制限のリセット時刻が含まれている場合は制限がリセットされるまでバックオフするため、使用制限に達したセッションは残りの時間枠が経過するまで待機します。v2.1.199 以降では、サーバーエラー、タイムアウト、接続の切断などのその他の一時的なエラーに対するデフォルトの再試行回数も 300(約 3 時間分のバックオフ)に引き上げ、`CLAUDE_CODE_MAX_RETRIES` を明示的に設定した場合の上限 15 を撤廃します。Claude Code v2.1.186 以降が必要です |380| `CLAUDE_CODE_RETRY_WATCHDOG` | eval ハーネス、CI ジョブ、リモートワーカーなどの無人セッションでは `1` に設定します。`429` および `529` の容量エラーを、`CLAUDE_CODE_MAX_RETRIES` 回の試行後に失敗させるのではなく、無期限に再試行します。標準速度のリクエストが、支出上限や使用クレジットの枯渇を報告する `429` を受け取った場合は、それがスケジュールでリセットされる [ゲートウェイの支出上限](/docs/ja/errors#spend-limit-reached) によるものであっても、Claude Code は即座に失敗します。v2.1.239 より前は、ウォッチドッグはこれらを無期限に再試行していました。fast mode のリクエストについては、[レート制限を処理する](/docs/ja/fast-mode#handle-rate-limits) を参照してください。ウォッチドッグは試行の間に最大 5 分間、またはレスポンスにレート制限のリセット時刻が含まれている場合は制限がリセットされるまでバックオフするため、使用制限に達したセッションは残りの時間枠が経過するまで待機します。v2.1.199 以降では、サーバーエラー、タイムアウト、接続の切断などのその他の一時的なエラーに対するデフォルトの再試行回数も 300(約 3 時間分のバックオフ)に引き上げ、`CLAUDE_CODE_MAX_RETRIES` を明示的に設定した場合の上限 15 を撤廃します。Claude Code v2.1.186 以降が必要です |

381| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | `CLAUDE_CODE_RETRY_WATCHDOG` が設定されている場合に、各 API リクエストが `429` および `529` エラーの解消を待つ最大時間(ミリ秒)。その時間を使い切ると、次に同様のエラーが発生した時点でリクエストが終了します。30 分なら `1800000` のように、正の整数を数字のみで指定します。未設定の場合、待機時間に制限はありません。Claude Code v2.1.295 以降が必要です |

381| `CLAUDE_CODE_SAFE_MODE` | `1` に設定すると、セーフモードで起動します。壊れた設定のトラブルシューティングのために、CLAUDE.md、スキル、プラグイン、フック、MCP サーバー、カスタムコマンドとエージェント、出力スタイル、ワークフロー、カスタムテーマ、カスタムキーボードショートカット、ステータスラインとファイル候補のコマンド、LSP サーバー、自動メモリを読み込みません。ポリシーで設定されたフック、ステータスライン、ファイル候補のコマンドを含め、管理設定のポリシーは引き続き適用されます。管理プラグイン、管理スキル、管理 CLAUDE.md、ポリシーで設定された MCP サーバーは適用されません。[`--safe-mode`](/docs/ja/cli-reference#cli-flags) を渡すのと同じです。直接起動された子プロセスはこの変数を継承します |382| `CLAUDE_CODE_SAFE_MODE` | `1` に設定すると、セーフモードで起動します。壊れた設定のトラブルシューティングのために、CLAUDE.md、スキル、プラグイン、フック、MCP サーバー、カスタムコマンドとエージェント、出力スタイル、ワークフロー、カスタムテーマ、カスタムキーボードショートカット、ステータスラインとファイル候補のコマンド、LSP サーバー、自動メモリを読み込みません。ポリシーで設定されたフック、ステータスライン、ファイル候補のコマンドを含め、管理設定のポリシーは引き続き適用されます。管理プラグイン、管理スキル、管理 CLAUDE.md、ポリシーで設定された MCP サーバーは適用されません。[`--safe-mode`](/docs/ja/cli-reference#cli-flags) を渡すのと同じです。直接起動された子プロセスはこの変数を継承します |

382| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` が設定されている場合に、特定のスクリプトをセッションごとに呼び出せる回数を制限する JSON オブジェクト。キーはコマンドテキストと照合される部分文字列で、値は整数の呼び出し制限です。たとえば、`{"deploy.sh": 2}` では `deploy.sh` を最大 2 回まで呼び出せます。照合は部分文字列ベースのため、`./scripts/deploy.sh $(evil)` のようなシェル展開のトリックも上限にカウントされます。`xargs` や `find -exec` による実行時のファンアウトは検出されません。これは多層防御のための制御です |383| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` が設定されている場合に、特定のスクリプトをセッションごとに呼び出せる回数を制限する JSON オブジェクト。キーはコマンドテキストと照合される部分文字列で、値は整数の呼び出し制限です。たとえば、`{"deploy.sh": 2}` では `deploy.sh` を最大 2 回まで呼び出せます。照合は部分文字列ベースのため、`./scripts/deploy.sh $(evil)` のようなシェル展開のトリックも上限にカウントされます。`xargs` や `find -exec` による実行時のファンアウトは検出されません。これは多層防御のための制御です |

383| `CLAUDE_CODE_SCROLL_SPEED` | [フルスクリーンレンダリング](/docs/ja/fullscreen#mouse-wheel-scrolling) でのマウスホイールのスクロール倍率を設定します。20 までの任意の正の値を受け付けます。ホイールイベントをすでに増幅するターミナルで、加速されたトラックパッドやホイールのスクロールを遅くするための `0.5` など、1 未満の小数値も指定できます。ターミナルが増幅せずにノッチごとに 1 つのホイールイベントを送信する場合、`vim` に合わせるには `3` に設定します。Claude Code が独自のスクロール処理を使用する JetBrains IDE のターミナルでは無視されます |384| `CLAUDE_CODE_SCROLL_SPEED` | [フルスクリーンレンダリング](/docs/ja/fullscreen#mouse-wheel-scrolling) でのマウスホイールのスクロール倍率を設定します。20 までの任意の正の値を受け付けます。ホイールイベントをすでに増幅するターミナルで、加速されたトラックパッドやホイールのスクロールを遅くするための `0.5` など、1 未満の小数値も指定できます。ターミナルが増幅せずにノッチごとに 1 つのホイールイベントを送信する場合、`vim` に合わせるには `3` に設定します。Claude Code が独自のスクロール処理を使用する JetBrains IDE のターミナルでは無視されます |

errors.md +1 −1

Details

4064 マーケットプレイスは既に別のソースから追加されています4064 マーケットプレイスは既に別のソースから追加されています

4065</h3>4065</h3>

4066 4066 

4067[`/plugin install <plugin> --marketplace <source>`](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を通じてマーケットプレイスの追加を確認し、そのソースから Claude Code が取得したカタログは、既に別のソースから追加したマーケットプレイスと同じ名前で自分自身に名前を付けます。Claude Code は既存のマーケットプレイスを保持し、それを置き換えず、プラグインはインストールされません。4067セッション内またはシェルから、[インストールコマンドの `--marketplace <source>`](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command) で新しいマーケットプレイスソースを指定しました。Claude Code がそのソースから取得したカタログは、既に別のソースから追加したマーケットプレイスと同じ名前を持っています。Claude Code は既存のマーケットプレイスを置き換えずに保持し、プラグインはインストールされません。

4068 4068 

4069```text theme={null}4069```text theme={null}

4070Marketplace "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.4070Marketplace "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.

hooks.md +18 −8

Details

1237 SessionStart の判定制御1237 SessionStart の判定制御

1238</h4>1238</h4>

1239 1239 

1240Claude Code は、[プレーンテキストとして扱う](#exit-code-0)標準出力を Claude のコンテキストに追加します。すべてのフックで利用できる [JSON 出力フィールド](#json-output)に加えて、以下のイベント固有のフィールドを返すことができます。1240SessionStart フックは、Claude へのコンテキストの追加、最初のユーザーメッセージの指定、セッションタイトルの設定、ファイルの監視、スキルの再読み込みを行えます。すべてのフックで利用できる [JSON 出力フィールド](#json-output)に加えて、それぞれに対応するフィールドを返してください。

1241 1241 

1242| フィールド | 説明 |1242| フィールド | 説明 |

1243| :- | :- |1243| :- | :- |

1244| `additionalContext` | 会話の開始時、最初のプロンプトの前に Claude のコンテキストに追加される文字列。テキストがどのように渡されるか、何を含めるべきかについては [Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |1244| `additionalContext` | 会話の開始時、最初のプロンプトの前に Claude のコンテキストに追加される文字列。テキストがどのように渡されるか、何を含めるべきかについては [Claude にコンテキストを追加する](#add-context-for-claude)を参照してください |

1245| `initialUserMessage` | セッションの最初のユーザーメッセージとして使用される文字列。`-p` フラグを使用した[非対話モード](/docs/ja/headless)で適用され、プロンプトが指定されていなくても最初のターンになります。プロンプトが指定されている場合は、その次のターンとして続きます。既存のターンに付加される `additionalContext` とは異なり、これはターンを作成します |1245| `initialUserMessage` | `-p` フラグを使用した[非対話モード](/docs/ja/headless)で、セッションの最初のユーザーメッセージとして使用される文字列。プロンプトを渡さなくても最初のターンになります。プロンプトを渡した場合は、次のターンとして続きます |

1246| `sessionTitle` | セッションタイトルを設定します。`/rename` と同じ効果があります。起動フォルダ、git ブランチ、worktree 名からセッションに自動で名前を付ける場合に使用します。`source` が `"startup"`、`"resume"`、`"fork"` の場合に適用され、`"clear"` と `"compact"` では無視されます |1246| `sessionTitle` | セッションタイトルを設定します。`/rename` と同じ効果があります。`source` が `"startup"`、`"resume"`、または `"fork"` の場合に適用されます |

1247| `watchPaths` | このセッション中に [FileChanged](#filechanged) イベントを監視する絶対パスの配列 |1247| `watchPaths` | このセッション中に [FileChanged](#filechanged) イベントを監視する絶対パスの配列 |

1248| `reloadSkills` | ブール値。`true` の場合、Claude Code は SessionStart フックの完了後に[スキル](/docs/ja/skills)とコマンドのディレクトリを再スキャンするため、フックがインストールしたスキルは同じセッションの最初のプロンプトから利用できます |1248| `reloadSkills` | ブール値。`true` の場合、Claude Code は SessionStart フックの完了後に[スキル](/docs/ja/skills)とコマンドのディレクトリを再スキャンします。[フックがインストールしたスキルを再読み込みする](#reload-skills-that-a-hook-installs)を参照してください |

1249 

1250次の出力はコンテキストを追加し、セッションに名前を付けます。

1249 1251 

1250```json theme={null}1252```json theme={null}

1251{1253{


1257}1259}

1258```1260```

1259 1261 

1260このイベントでは通常の標準出力がすでに Claude に届くため、コンテキストを読み込むだけのフックは JSON を組み立てずに直接標準出力に出力できます。コンテキストを `sessionTitle` などの他のフィールドと組み合わせる必要がある場合は JSON 形式を使用してください。1262Claude Code は SessionStart フックの[プレーンテキストの stdout](#exit-code-0) を Claude のコンテキストに追加するため、コンテキストを追加するだけのフックは JSON を組み立てずにそのまま出力できます。

1263 

1264プラグインの SessionStart フックが `initialUserMessage` または `sessionTitle` を指定する場合は、セッションの開始前にプラグインをインストールしてください。SessionStart フックの実行後にインストールが完了したプラグインからのこれら 2 つのフィールドは、Claude Code によって無視されます。

1265 

1266<h4 id="reload-skills-that-a-hook-installs">

1267 フックがインストールしたスキルを再読み込みする

1268</h4>

1269 

1270SessionStart フックがインストールしたスキルを同じセッションで利用できるようにするには、`reloadSkills` を返します。スキルの検出は通常 SessionStart フックの完了前に実行されるため、これがないと、フックが `~/.claude/skills/` や `.claude/skills/` に書き込んだファイルが最初のプロンプトの実行時に見つからない場合があります。

1261 1271 

1262SessionStart フックがスキルをインストールまたは更新する場合は `reloadSkills` を使用してください。スキルの検出は通常 SessionStart フックの完了前に実行されるため、フックが `~/.claude/skills/` や `.claude/skills/` に書き込んだファイルは、そうしないと次のセッションでしか表示されません。次の例では、共有スキルリポジトリを同期し、再スキャンを要求します。1272次の例は、共有スキルのリポジトリを同期し、再スキャンを要求します。

1263 1273 

1264```bash theme={null}1274```bash theme={null}

1265#!/bin/bash1275#!/bin/bash


1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1280echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1271```1281```

1272 1282 

1273リポジトリの URL はプレースホルダーです。独自のスキルリポジトリに置き換えてください。プレースホルダーのままではクローンが失敗し、標準エラー出力に `fatal:` メッセージが出力されます。終了コード 0 で終了した SessionStart フックの標準エラー出力は情報提供のみを目的としているため、`reloadSkills` の要求は引き続き適用されます。1283リポジトリの URL はプレースホルダーです。独自のスキルリポジトリに置き換えてください。

1274 1284 

1275<h4 id="persist-environment-variables">1285<h4 id="persist-environment-variables">

1276 環境変数を永続化する1286 環境変数を永続化する


4278非同期フックは同期フックと比べていくつかの制約があります。4288非同期フックは同期フックと比べていくつかの制約があります。

4279 4289 

4280* フック出力は次の会話ターンで配信されます。セッションがアイドル状態の場合、レスポンスは次のユーザー操作まで待機します。例外: `asyncRewake` フックが終了コード 2 で終了すると、セッションがアイドル状態でも Claude を直ちに起動します。4290* フック出力は次の会話ターンで配信されます。セッションがアイドル状態の場合、レスポンスは次のユーザー操作まで待機します。例外: `asyncRewake` フックが終了コード 2 で終了すると、セッションがアイドル状態でも Claude を直ちに起動します。

4281* 各実行は個別のバックグラウンド プロセスを作成します。同じ非同期フックの複数の発火全体で重複排除はありません。4291* 各実行は個別のバックグラウンド プロセスを作成します。

4282 4292 

4283<h2 id="security-considerations">4293<h2 id="security-considerations">

4284 セキュリティに関する考慮事項4294 セキュリティに関する考慮事項

Details

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 以降が必要です |

94| `--marketplace <source>` | ベア名で指定した `<plugin>` を `<source>` のマーケットプレイスからインストールします。そのマーケットプレイスをまだ追加していない場合は、先に追加します。[1 つのコマンドでマーケットプレイスを追加してインストールする](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を参照してください。Claude Code v2.1.292 以降が必要です |

94 95 

95使用しているバージョンがサポートするすべてのオプションを確認するには、シェルで `claude plugin install --help` を実行してください。96使用しているバージョンがサポートするすべてのオプションを確認するには、シェルで `claude plugin install --help` を実行してください。

96 97 

Details

189 189 

190* **Scope**: デフォルトではユーザースコープ。`--scope project` または `--scope local` を渡して変更します。190* **Scope**: デフォルトではユーザースコープ。`--scope project` または `--scope local` を渡して変更します。

191* **プラグインが読み込まれるとき**: インストールするプラグインは、Claude Code を次に開始するときか、既に開いているセッションで `/reload-plugins` を実行するときに読み込まれます。191* **プラグインが読み込まれるとき**: インストールするプラグインは、Claude Code を次に開始するときか、既に開いているセッションで `/reload-plugins` を実行するときに読み込まれます。

192* **マーケットプレイスは最初に追加する必要があります**: 誰も対話的な Claude Code セッションを開いていないマシンでは、公式マーケットプレイスが登録されていないため、そこからインストールするスクリプトは、インストール前に `claude plugin marketplace add anthropics/claude-plugins-official` を実行します。192* **新しいマシンでのマーケットプレイス**: まだ誰も対話的な Claude Code セッションを開いていないマシンでは、公式マーケットプレイスが登録されていないため、そこからインストールするスクリプトは、インストール前に `claude plugin marketplace add anthropics/claude-plugins-official` を実行します。[シェルから追加してインストールする](#add-and-install-from-your-shell)を参照してください。

193 193 

194```bash theme={null}194```bash theme={null}

195claude plugin install formatter@your-org --scope project195claude plugin install formatter@your-org --scope project


232 マーケットプレイスを追加してインストール(1 つのコマンド)232 マーケットプレイスを追加してインストール(1 つのコマンド)

233</h3>233</h3>

234 234 

235まだ追加していないマーケットプレイスからプラグインをインストールするには、Claude Code セッション内で `/plugin install` を実行し、`--marketplace` でマーケットプレイスソースを指定します。Claude Code v2.1.275 以降が必要です。235まだ追加していないマーケットプレイスからプラグインをインストールするには、セッション内またはシェルから、インストールコマンドで `--marketplace` を使ってマーケットプレイスのソースを指定します。ソースは [`/plugin marketplace add` と同じ形式](#add-a-marketplace)を取ります。例えば、GitHub `owner/repo`、git URL、またはローカルパスです。プラグイン名は `@marketplace` サフィックスなしで単独で指定します。

236 

237<h4 id="add-and-install-in-a-session">

238 セッション内で追加してインストールする

239</h4>

240 

241Claude Code セッション内で、プラグインとソースを指定して `/plugin install` を実行します。Claude Code v2.1.275 以降が必要です。セッション内では、ソースにスペースを含めることはできません。

236 242 

237```text theme={null}243```text theme={null}

238/plugin install deploy-helper --marketplace your-org/plugins244/plugin install deploy-helper --marketplace your-org/plugins

239```245```

240 246 

241ソースは [/plugin marketplace add](#add-a-marketplace) と同じ形式を取ります。例えば、GitHub `owner/repo`、git URL、またはローカルパス。ただし、スペースを含むことはできません。プラグイン名を `@marketplace` サフィックスなしで指定します。

242 

243そのマーケットプレイスをまだ追加していない場合、Claude Code は解決したソースを表示し、追加する前に確認するよう求めます。マーケットプレイスが追加されると、プラグインの詳細が開き、[インストール範囲](#install-a-plugin)を選択します。ソースが既に追加したマーケットプレイスと一致する場合、Claude Code は確認をスキップし、そのマーケットプレイスでプラグインの詳細を開きます。247そのマーケットプレイスをまだ追加していない場合、Claude Code は解決したソースを表示し、追加する前に確認するよう求めます。マーケットプレイスが追加されると、プラグインの詳細が開き、[インストール範囲](#install-a-plugin)を選択します。ソースが既に追加したマーケットプレイスと一致する場合、Claude Code は確認をスキップし、そのマーケットプレイスでプラグインの詳細を開きます。

244 248 

249<h4 id="add-and-install-from-your-shell">

250 シェルから追加してインストールする

251</h4>

252 

253シェルで、セッションを開始せずに、プラグインとソースを指定して `claude plugin install` を実行します。Claude Code v2.1.292 以降が必要です。

254 

255```bash theme={null}

256claude plugin install deploy-helper --marketplace your-org/plugins

257```

258 

259シェルコマンドは確認ステップなしでマーケットプレイスを追加します。そのソースから既に追加したマーケットプレイスは再利用されます。新しいマーケットプレイスは `claude plugin marketplace add` と同じ[組織ポリシーチェック](/docs/ja/plugins/org#restrict-what-users-can-install)のもとで追加され、`--scope project` を渡した場合でもユーザー設定で宣言されます。

260 

245<h3 id="add-a-private-marketplace">261<h3 id="add-a-private-marketplace">

246 プライベートマーケットプレイスを追加する262 プライベートマーケットプレイスを追加する

247</h3>263</h3>

Details

138| `$.mcp.call` | 接続された MCP サーバーのツールを呼び出し、セッションの権限ルールの下で実行します |138| `$.mcp.call` | 接続された MCP サーバーのツールを呼び出し、セッションの権限ルールの下で実行します |

139| `$.model.complete` | ユーザーのプランまたは API キーをモデル呼び出しに使用します |139| `$.model.complete` | ユーザーのプランまたは API キーをモデル呼び出しに使用します |

140| `$.prompt.submit` | プロンプトを送信し、ユーザー独自の言葉として送信できます |140| `$.prompt.submit` | プロンプトを送信し、ユーザー独自の言葉として送信できます |

141| `$.session.send` | 別のセッションまたはサブエージェントの Claude が読む メッセージを送信します |141| `$.session.send` | 別のセッション、サブエージェント、または [チームメイト](/docs/ja/agent-teams) の Claude が読むメッセージを送信します |

142 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) は、その答えに優先する規則とフックを一覧表示しています。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 144 

Details

159 セッション間でメッセージを送受信する159 セッション間でメッセージを送受信する

160</h2>160</h2>

161 161 

162mod は、別のセッションまたはこのセッションのサブエージェントの 1 つにプレーンテキストメッセージを送信し、到着して離れるメッセージを観察できます。`$.session.send({ to, text })` は 1 つを送信し、SendMessage ツールが行う配信と同じです。`to` は、セッションの場合は `{ sessionId }`、`$.agent.list()` からのサブエージェントの場合は `{ agentId }`、または受信したメッセージが来たアドレスです。呼び出しはメッセージがキューに入ったら解決し、`{ isDelivered: true }` で解決します。何も配信されなかった場合、`{ isDelivered: false, reason }` で解決し、`reason` は理由を述べます。162mod は、自分の別のセッション、このセッションのサブエージェントの 1 つ、またはその[エージェントチーム](/docs/ja/agent-teams)のチームメイトにプレーンテキストメッセージを送信できます。また、到着して離れるメッセージを観察することもできます。

163 

164メッセージを送信するには、`$.session.send({ to, text })` を呼び出します。これは SendMessage ツールが行う配信と同じです。`to` は受信者に応じて設定します。

165 

166* **自分の別のセッション**: `{ sessionId }`

167* **サブエージェントまたはチームメイト**: `{ agentId }`(`$.agent.list()` から取得した ID を使用)

168* **受信したメッセージの送信者**: そのメッセージの送信元の文字列アドレス

169 

170呼び出しはメッセージがキューに入ったら解決し、`{ isDelivered: true }` で解決します。何も配信されなかった場合、`{ isDelivered: false, reason }` で解決し、`reason` は理由を述べます。

163 171 

164このフックは、[コマンドとして登録された](#add-a-command) `/ping` コマンドに答え、その後に入力したセッション ID のセッションにステータスを尋ねます。172このフックは、[コマンドとして登録された](#add-a-command) `/ping` コマンドに答え、その後に入力したセッション ID のセッションにステータスを尋ねます。

165 173 

Details

281 281 

282`result.usage` は、Claude API がリクエストについて報告するトークン数(`input_tokens`、`output_tokens`、`cache_read_input_tokens`、`cache_creation_input_tokens`)と、応答した `model` を保持します。フックはサブエージェントのリクエストでも実行されるため、メインの会話だけを対象にしたい場合は `e.agentId` を確認してください。282`result.usage` は、Claude API がリクエストについて報告するトークン数(`input_tokens`、`output_tokens`、`cache_read_input_tokens`、`cache_creation_input_tokens`)と、応答した `model` を保持します。フックはサブエージェントのリクエストでも実行されるため、メインの会話だけを対象にしたい場合は `e.agentId` を確認してください。

283 283 

284リクエスト中に API 自身が実行したツール呼び出し([advisor ツール](/docs/ja/advisor)への呼び出しなど)を確認するには、`result.serverToolUses` を読み取ります。Claude Code はこれらの呼び出しを実行しないため、これらに対して `tool.call` フックや `tool.check` フックは発火しません。レスポンスにそのような呼び出しが含まれない場合、このフィールドは存在しません。また、このフィールドには Claude Code v2.1.290 以降が必要です。

285 

284<h3 id="hook-the-settings-hook-events">286<h3 id="hook-the-settings-hook-events">

285 設定フックのイベントを処理する287 設定フックのイベントを処理する

286</h3>288</h3>

Details

209| [`$.ui`](/docs/ja/plugins/mods/interface#pick-where-to-draw) | `resolve`、`invalidate`、`open`、`close`、`panes`、`focus`、`scroll`、`toast`、`status`、`log`、`notice`、`ask`、`copy`、`selection`、`blit` |209| [`$.ui`](/docs/ja/plugins/mods/interface#pick-where-to-draw) | `resolve`、`invalidate`、`open`、`close`、`panes`、`focus`、`scroll`、`toast`、`status`、`log`、`notice`、`ask`、`copy`、`selection`、`blit` |

210| [`$.command`](/docs/ja/plugins/mods/api#add-a-command) | `register`、`run`、`list` |210| [`$.command`](/docs/ja/plugins/mods/api#add-a-command) | `register`、`run`、`list` |

211| [`$.tool`](/docs/ja/plugins/mods/api#add-a-tool) | `register`、`call`、`check`、`list` |211| [`$.tool`](/docs/ja/plugins/mods/api#add-a-tool) | `register`、`call`、`check`、`list` |

212| `$.agent` | `register`、`spawn`、`list` |212| `$.agent` | `register`、`spawn`、`list`。`list()` はこのセッションのサブエージェントとチームメイトを返します。それぞれに `pending`、`running`、`waiting`、`idle`、`completed`、`failed`、`killed` のいずれかの `status` があり、`idle` と `waiting` には Claude Code v2.1.289 以降が必要です。 |

213| [`$.model`](/docs/ja/plugins/mods/api#call-a-model) | `complete`、`fork`、`classify` |213| [`$.model`](/docs/ja/plugins/mods/api#call-a-model) | `complete`、`fork`、`classify` |

214| [`$.prompt`](/docs/ja/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`、`read`、`fill`、`suggest`、`compose`。Claude は、`submit({ text })` のテキストを、その mod を送信者として示す文の後に読みます。`submit({ text, asUser: true })` は、その文なしで、テキストをユーザー自身の言葉として送信します。 |214| [`$.prompt`](/docs/ja/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`、`read`、`fill`、`suggest`、`compose`。Claude は、`submit({ text })` のテキストを、その mod を送信者として示す文の後に読みます。`submit({ text, asUser: true })` は、その文なしで、テキストをユーザー自身の言葉として送信します。 |

215| `$.turn` | `abort` |215| `$.turn` | `abort` |


317| `$.process.run` のタイムアウト | デフォルトは 30 秒、最大 10 分 |317| `$.process.run` のタイムアウト | デフォルトは 30 秒、最大 10 分 |

318| `$.model.complete` の `maxTokens` | デフォルトは 1024、最大 64,000 またはモデルの出力上限 |318| `$.model.complete` の `maxTokens` | デフォルトは 1024、最大 64,000 またはモデルの出力上限 |

319| `$.fs.read` と `$.fs.write` | 1 ファイルあたり 4 MiB |319| `$.fs.read` と `$.fs.write` | 1 ファイルあたり 4 MiB |

320| フックの `drop` の理由、または `config.set` の `deny` の理由 | 4,096 文字。これより長い理由は末尾が切り詰められ、drop または deny はそのまま適用されます。切り詰めには Claude Code v2.1.292 以降が必要で、それより前のバージョンではフックが代わりに[失敗](/docs/ja/plugins/mods/events#handle-a-hook-that-fails)します。 |

320| 1 つのツリー内のテキスト | 最初の 100,000 文字が描画されます |321| 1 つのツリー内のテキスト | 最初の 100,000 文字が描画されます |

321| `Code` の `language` または `path`、`Select` オプションの `value`、または `Client` の `module` | 10,000 文字。これより長い場合、Claude Code は[その箇所を独自の表示で描画します](/docs/ja/plugins/mods/interface#build-a-tree-from-elements)。 |322| `Code` の `language` または `path`、`Select` オプションの `value`、または `Client` の `module` | 10,000 文字。これより長い場合、Claude Code は[その箇所を独自の表示で描画します](/docs/ja/plugins/mods/interface#build-a-tree-from-elements)。 |

322| `Link` の `href` | 2,048 文字。これより長い `href` があると、ツリー全体が描画されません。 |323| `Link` の `href` | 2,048 文字。これより長い `href` があると、ツリー全体が描画されません。 |

Details

110* `returned neither { value } nor { deny }`: mods API 呼び出し用のスタブが値をそのまま返した。この場合、テストは失敗する110* `returned neither { value } nor { deny }`: mods API 呼び出し用のスタブが値をそのまま返した。この場合、テストは失敗する

111* `no implementation for` の後に名前が続く: mod がその呼び出しを行ったが、応答するスタブがない111* `no implementation for` の後に名前が続く: mod がその呼び出しを行ったが、応答するスタブがない

112 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` は何も返さないため、mod が何を保存したかを確認するには、[描画のテスト](#test-a-drawing)のように 2 つの `store` スタブを自分で書きます。113キットは、クロック、ストア、環境変数、会話に追加された行のための既製のモックもエクスポートしています。

114 

115* **`mock.clock(on)`**: [`$.clock`](/docs/ja/plugins/mods/api#run-work-in-the-background) に応答し、テストが進めるモッククロックを返すため、タイマーのテストで待つ必要がありません。

116* **`mock.store(on, { count: 7 })`**: 指定したエントリで始まるストアから `$.store` に応答します。何も返さないため、mod が何を保存したかを確認するには、[描画のテスト](#test-a-drawing)のように 2 つの `store` スタブを自分で書きます。

117* **`mock.env(on, { CI: 'true' })`**: 指定した変数から `$.env.get` に応答します。

118* **`mock.session(on)`**: モックセッションを返します。その `appended()` メソッドは、mod が [`$.session.append`](/docs/ja/plugins/mods/reference#session) で追加した行を古い順に一覧表示します。Claude Code v2.1.293 以降が必要です。

114 119 

115<h3 id="follow-the-test-kit’s-rules">120<h3 id="follow-the-test-kit’s-rules">

116 テストキットのルールに従う121 テストキットのルールに従う


168 スタブが返す値を調べる173 スタブが返す値を調べる

169</h3>174</h3>

170 175 

171テスト内で mod が行うすべての mods API 呼び出しには、Claude Code の代わりに応答するスタブが必要です。ただし、キット自身が応答する少数の呼び出し、つまり [`$.ui.invalidate`](/docs/ja/plugins/mods/interface#redraw-when-something-changes) と [`$.state`](/docs/ja/plugins/mods/interface#keep-state) の呼び出しは例外です。`$.clock` の呼び出しには `mock.clock(on)` を使用してください。そうしないと、mod の `$.clock.now()` が `no implementation for clock.now` で失敗します。176テスト内で mod が行うすべての mods API 呼び出しには、Claude Code の代わりに応答するスタブが必要です。ただし、キット自身が応答する少数の呼び出し、つまり [`$.ui.invalidate`](/docs/ja/plugins/mods/interface#redraw-when-something-changes)、[`$.state`](/docs/ja/plugins/mods/interface#keep-state)、`$.session.append` の呼び出しは例外です。`$.clock` の呼び出しには `mock.clock(on)` を使用してください。そうしないと、mod の `$.clock.now()` が `no implementation for clock.now` で失敗します。

172 177 

173この表は、mod で最もよく使われるものを示しています。1 列目は、mod が行う呼び出し、または `next(e)` で渡すイベントです。2 列目は、その名前で `on` に渡す関数です。たとえば `$.store.get` の行は `on('store.get', ($, e) => ({ value: saved.get(e.key) }))` になります。スタブ内の `'...'` は、自分で埋めるテキストを示します。178この表は、mod で最もよく使われるものを示しています。1 列目は、mod が行う呼び出し、または `next(e)` で渡すイベントです。2 列目は、その名前で `on` に渡す関数です。たとえば `$.store.get` の行は `on('store.get', ($, e) => ({ value: saved.get(e.key) }))` になります。スタブ内の `'...'` は、自分で埋めるテキストを示します。

174 179 

Details

129* マーケットプレイスを 1 回追加する: `claude plugin marketplace add your-org/your-marketplace`。引数は GitHub の `owner/repo` 短縮形、URL、またはパスです129* マーケットプレイスを 1 回追加する: `claude plugin marketplace add your-org/your-marketplace`。引数は GitHub の `owner/repo` 短縮形、URL、またはパスです

130* プラグインをインストールする: `claude plugin install deploy-helper@your-marketplace`130* プラグインをインストールする: `claude plugin install deploy-helper@your-marketplace`

131* またはセッション内から両方を実行する: `/plugin install deploy-helper --marketplace your-org/your-marketplace`。Claude Code v2.1.275 以降が必要です。[マーケットプレイスを追加して 1 つのコマンドでインストールする](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を参照してください131* またはセッション内から両方を実行する: `/plugin install deploy-helper --marketplace your-org/your-marketplace`。Claude Code v2.1.275 以降が必要です。[マーケットプレイスを追加して 1 つのコマンドでインストールする](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を参照してください

132* またはシェルから 1 つのコマンドで両方を実行する: `claude plugin install deploy-helper --marketplace your-org/your-marketplace`。Claude Code v2.1.292 以降が必要です

132 133 

133<h3 id="ship-updates-to-users">134<h3 id="ship-updates-to-users">

134 ユーザーに更新を配布する135 ユーザーに更新を配布する

Details

163 `Invalid marketplace source format`163 `Invalid marketplace source format`

164</h3>164</h3>

165 165 

166`/plugin marketplace add <source>` または `claude plugin marketplace add <source>` を実行し、Claude Code は `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` で返信しました。166`/plugin marketplace add <source>`、`claude plugin marketplace add <source>`、または `claude plugin install <plugin> --marketplace <source>` を実行し、Claude Code は `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` で返信しました。

167 167 

168Claude Code は、次のいずれかの形式でソースを受け入れます:168Claude Code は、次のいずれかの形式でソースを受け入れます:

169 169 


568 `Marketplace "<name>" is already added from a different source`568 `Marketplace "<name>" is already added from a different source`

569</h3>569</h3>

570 570 

571[`/plugin install <plugin> --marketplace <source>`](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command)を通じてマーケットプレイスの追加を確認し、Claude Code がそのソースからフェッチしたカタログは、別のソースから既に追加したマーケットプレイスと同じ名前を持っています。Claude Code は既存のマーケットプレイスを保持し、プラグインをインストールしません。571セッションまたはシェルから、[インストールコマンドの `--marketplace <source>`](/docs/ja/plugins/install#add-a-marketplace-and-install-in-one-command) で新しいマーケットプレイスソースを指定しました。Claude Code がそのソースからフェッチしたカタログは、別のソースから既に追加したマーケットプレイスと同じ名前を持っています。Claude Code は既存のマーケットプレイスを置き換えずに保持し、プラグインはインストールされません。

572 572 

573完全なメッセージは次のようになります:573完全なメッセージは次のようになります:

574 574 

sub-agents.md +3 −1

Details

609メイン会話の権限モードは、Claude Code が設定した値を使用するかどうかを決定します。609メイン会話の権限モードは、Claude Code が設定した値を使用するかどうかを決定します。

610 610 

611* メイン会話が `bypassPermissions`、`acceptEdits`、または[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)にある場合、サブエージェントはそのモードで実行され、Claude Code は設定した `permissionMode` を無視します。自動モードでは、分類器はメイン会話のブロックおよび許可ルールでサブエージェントのツール呼び出しを評価します。サブエージェントが終了すると、分類器はその作業と最終レポートもレビューしてから、レポートが配信されます。[自動モードがサブエージェントを処理する方法](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を参照してください。611* メイン会話が `bypassPermissions`、`acceptEdits`、または[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)にある場合、サブエージェントはそのモードで実行され、Claude Code は設定した `permissionMode` を無視します。自動モードでは、分類器はメイン会話のブロックおよび許可ルールでサブエージェントのツール呼び出しを評価します。サブエージェントが終了すると、分類器はその作業と最終レポートもレビューしてから、レポートが配信されます。[自動モードがサブエージェントを処理する方法](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)を参照してください。

612* メイン会話が `default`、`dontAsk`、または `plan` モードにある場合、サブエージェントは設定した権限モードで実行されます。ただし `bypassPermissions` を除きます。`bypassPermissions` を宣言するサブエージェントはメイン会話のモードを保持します。`bypassPermissions` 例外には Claude Code v2.1.267 以降が必要です。612* メイン会話が `default`、`dontAsk`、または `plan` モードの場合、サブエージェントは設定した権限モードで実行されます。次の場合は、代わりにメイン会話の権限モードを維持します。

613 * `bypassPermissions` を設定した場合。`bypassPermissions` の例外には Claude Code v2.1.267 以降が必要です。

614 * `auto` を設定し、サブエージェントで [auto モードが利用できない](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)場合。例えば、設定ファイルで [`disableAutoMode`](/docs/ja/settings-reference#disableautomode) が設定されている場合や、サブエージェントのモデルが auto モードをサポートしていない場合です。

613 615 

614`permissionMode` はこれらの値を受け入れ、`default` のエイリアスとして `manual` を受け入れます。616`permissionMode` はこれらの値を受け入れ、`default` のエイリアスとして `manual` を受け入れます。

615 617