SpyBara
Go Premium

Documentation 2026-10-09 23:02 UTC to 2026-10-10 20:02 UTC

28 files changed +890 −473. View all changes and history on the product overview
2026
Sat 10 21:01 Fri 9 23:02 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

124 124 

125部分メッセージが有効でない場合、`StreamEvent` を除くすべてのメッセージタイプを受け取ります。一般的なタイプには `SystemMessage`(セッション初期化)、`AssistantMessage`(完全なコンテンツブロック)、`ResultMessage`(最終結果)、および会話履歴がコンパクト化されたときを示すコンパクト境界メッセージ(TypeScript では `SDKCompactBoundaryMessage`、Python では subtype `"compact_boundary"` の `SystemMessage`)が含まれます。125部分メッセージが有効でない場合、`StreamEvent` を除くすべてのメッセージタイプを受け取ります。一般的なタイプには `SystemMessage`(セッション初期化)、`AssistantMessage`(完全なコンテンツブロック)、`ResultMessage`(最終結果)、および会話履歴がコンパクト化されたときを示すコンパクト境界メッセージ(TypeScript では `SDKCompactBoundaryMessage`、Python では subtype `"compact_boundary"` の `SystemMessage`)が含まれます。

126 126 

127<h3 id="handle-a-stream-that’s-cut-off">

128 途中で切断されたストリームを処理する

129</h3>

130 

131ターンを中断した場合や接続が切れた場合など、ストリームがメッセージの途中で切断された場合でも、ターンが終了する前にそのメッセージの `message_stop` を受け取ります。切断されたテキストブロックまたは思考ブロックには `content_block_stop` も送られます。切断されたツール呼び出しには送られないため、ツール呼び出しのブロックがまだ開いている間に `message_stop` が到着した場合は、その呼び出しの入力を不完全なものとして扱ってください。

132 

133Claude Code v2.1.290 より前では、切断されたストリームが `message_stop` なしでターンを終了することがあり、ストリームイベントからレンダリングした応答が進行中のまま表示され続ける可能性がありました。TypeScript Agent SDK は v0.3.290 以降、Python Agent SDK は v0.2.164 以降で Claude Code v2.1.290 以降をバンドルしています。ターンの終了後も応答が進行中のまま表示される場合は、SDK を更新してください。

134 

127<h2 id="stream-tool-calls">135<h2 id="stream-tool-calls">

128 ツール呼び出しをストリーミングする136 ツール呼び出しをストリーミングする

129</h2>137</h2>

Details

1588 1588 

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

1590 1590 

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

1592 1592 

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

1594 1594 


1631 1631 

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

1633 1633 

1634各貼り付けフィールドにはサイズ制限があります。

1635 

1636* `pasted_content`: エントリとその中のコンテンツブロックの合計が 1,000 を超える場合、Claude Code はフィールド全体を無視します。

1637* `inline_pastes`: Claude Code は空白でない最初の 100 エントリを使用し、残りは無視します。

1638 

1634`shouldQuery`、`client_composed`、または `priority` を設定すると、送信したメッセージを Claude Code がどのように扱うかを変更できます。1639`shouldQuery`、`client_composed`、または `priority` を設定すると、送信したメッセージを Claude Code がどのように扱うかを変更できます。

1635 1640 

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


1775* `ttft_stream_ms`: 応答ストリームが開いたときの最初の `message_start` ストリームイベントまでの時間(ミリ秒)。`ttft_ms` より小さく、両者の差は最初のメッセージのストリーミングに費やされた時間です。success アームにのみ存在します。1780* `ttft_stream_ms`: 応答ストリームが開いたときの最初の `message_start` ストリームイベントまでの時間(ミリ秒)。`ttft_ms` より小さく、両者の差は最初のメッセージのストリーミングに費やされた時間です。success アームにのみ存在します。

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

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

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

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

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

1781* `first_content_frame_ms`: 最初の `content_block_start` または `content_block_delta` ストリームイベントまでの時間(ミリ秒)で、思考ブロックもコンテンツとして数えます。success アームで、`is_error` が false の場合にのみ存在します。Agent SDK v0.3.260 以降が必要です。1786* `first_content_frame_ms`: 最初の `content_block_start` または `content_block_delta` ストリームイベントまでの時間(ミリ秒)で、思考ブロックもコンテンツとして数えます。success アームで、`is_error` が false の場合にのみ存在します。Agent SDK v0.3.260 以降が必要です。


1825 1830 

1826* **送信した通常のメッセージ**(`isSynthetic: true` のないもの): ターンは実行全体を通してそのメッセージに応答します。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージすることがあり、その場合フィールドには最後のメッセージの `uuid` のみが含まれます。マージされたいずれかのメッセージに応答を対応付けるには、[`user_message_uuids`](#user_message_uuids) を使用してください。1831* **送信した通常のメッセージ**(`isSynthetic: true` のないもの): ターンは実行全体を通してそのメッセージに応答します。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージすることがあり、その場合フィールドには最後のメッセージの `uuid` のみが含まれます。マージされたいずれかのメッセージに応答を対応付けるには、[`user_message_uuids`](#user_message_uuids) を使用してください。

1827* **`isSynthetic: true` を付けて送信したメッセージ**: ターンは最初はそのメッセージに応答します。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンは拾ったメッセージに応答します。合成メッセージの `uuid` をエコーするには Agent SDK v0.3.265 以降が必要です。以前のバージョンでは合成ターンで何もエコーされません。1832* **`isSynthetic: true` を付けて送信したメッセージ**: ターンは最初はそのメッセージに応答します。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンは拾ったメッセージに応答します。合成メッセージの `uuid` をエコーするには Agent SDK v0.3.265 以降が必要です。以前のバージョンでは合成ターンで何もエコーされません。

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

1829* **Claude Code 自身が生成したその他のプロンプト**: ターンは最初は送信したどのメッセージにも応答せず、そのフレームにはエコーが含まれません。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンはそのメッセージに応答します。拾った際のエコーには Agent SDK v0.3.265 以降が必要です。以前のバージョンではこれらのターンで何もエコーされません。1834* **Claude Code 自身が生成したその他のプロンプト**: ターンは最初は送信したどのメッセージにも応答せず、そのフレームにはエコーが含まれません。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンはそのメッセージに応答します。拾った際のエコーには Agent SDK v0.3.265 以降が必要です。以前のバージョンではこれらのターンで何もエコーされません。

1830 1835 

1831Claude Code は、応答したメッセージの `uuid` を 3 種類のフレームでエコーします。1836Claude Code は、応答したメッセージの `uuid` を 3 種類のフレームでエコーします。


1857 `resume_reason`1862 `resume_reason`

1858</h4>1863</h4>

1859 1864 

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

1861 1866 

1862Claude Code は 2 種類のフレームにこのフィールドを設定します。1867Claude Code は 2 種類のフレームにこのフィールドを設定します。

1863 1868 

1864* **再実行の結果**: success アームとエラーアームの両方で、結果に `user_message_uuid` が含まれるかどうかにかかわらず設定されます。1869* **継続されたターンの結果**: success と error の両方のアームで、結果が `user_message_uuid` を持つかどうかにかかわらず設定されます。

1865* **再実行の応答フレーム**: [`user_message_uuid`](#user_message_uuid) を持つもの。1870* **継続されたターンの返信フレーム**: [`user_message_uuid`](#user_message_uuid) を持つものです。

1866 1871 

1867値は、`interrupted_turn` など、ターンが再実行された理由を示す短い小文字のトークンです。1872値は `interrupted_turn` のような短い小文字のトークンです。

1868 1873 

1869<h4 id="queued_turn_count">1874<h4 id="queued_turn_count">

1870 `queued_turn_count`1875 `queued_turn_count`


2029};2034};

2030```2035```

2031 2036 

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

2033 2038 

2034<h3 id="sdkcompactboundarymessage">2039<h3 id="sdkcompactboundarymessage">

2035 `SDKCompactBoundaryMessage`2040 `SDKCompactBoundaryMessage`


3558| - | - | - |3563| - | - | - |

3559| `script` | `string` | インラインワークフロースクリプト。リテラルとして `export const meta = { name, description }` で始まり、その後に `agent()`、`parallel()`、`pipeline()`、および `phase()` を使用するスクリプト本体が続く必要があります。`meta` 内のオプションの `phases` 配列は、進捗ビューで名前付きステージの下にエージェントをグループ化します |3564| `script` | `string` | インラインワークフロースクリプト。リテラルとして `export const meta = { name, description }` で始まり、その後に `agent()`、`parallel()`、`pipeline()`、および `phase()` を使用するスクリプト本体が続く必要があります。`meta` 内のオプションの `phases` 配列は、進捗ビューで名前付きステージの下にエージェントをグループ化します |

3560| `name` | `string` | 組み込みワークフローまたは `.claude/workflows/` に保存されたワークフローの名前。スクリプトに解決されます |3565| `name` | `string` | 組み込みワークフローまたは `.claude/workflows/` に保存されたワークフローの名前。スクリプトに解決されます |

3561| `scriptPath` | `string` | ディスク上のワークフロースクリプトファイルへのパス。`script` と `name` より優先されます。Claude Code はすべての呼び出しのスクリプトを永続化し、結果でパスを返すため、そのファイルを編集して同じ `scriptPath` で再度呼び出して反復処理できます |3566| `scriptPath` | `string` | ディスク上のワークフロースクリプトファイルへのパス(以前の実行が返した `scriptPath` など)。`script` と `name` より優先されます。セッションのツールに `Read` が含まれていない場合、Claude Code は `scriptPath` をエラーで拒否します |

3562| `args` | `unknown` | スクリプトにグローバル `args` として公開される入力値。研究質問またはファイルパスのリストなど、パラメータ化された名前付きワークフロー用です。配列とオブジェクトを JSON エンコード文字列ではなく実際の JSON 値として渡します |3567| `args` | `unknown` | スクリプトにグローバル `args` として公開される入力値。研究質問またはファイルパスのリストなど、パラメータ化された名前付きワークフロー用です。配列とオブジェクトを JSON エンコード文字列ではなく実際の JSON 値として渡します |

3563| `resumeFromRunId` | `string` | 再開する前の `Workflow` 呼び出しの実行 ID。変更されていない入力を持つ完了した `agent()` 呼び出しは通常キャッシュされた結果を返します。残りは実行されます。[一時停止後に再開](/docs/ja/workflows#resume-after-a-pause) は、どの完了した呼び出しが再実行されるかをカバーしています。同じセッションのみ |3568| `resumeFromRunId` | `string` | 再開する前の `Workflow` 呼び出しの実行 ID。変更されていない入力を持つ完了した `agent()` 呼び出しは通常キャッシュされた結果を返します。残りは実行されます。[一時停止後に再開](/docs/ja/workflows#resume-after-a-pause) は、どの完了した呼び出しが再実行されるかをカバーしています。同じセッションのみ |

3564| `title` | `string` | 無視されます;スクリプトの `meta` ブロックがタイトルを設定します |3569| `title` | `string` | 無視されます;スクリプトの `meta` ブロックがタイトルを設定します |

agent-view.md +2 −0

Details

256 256 

257バックグラウンドセッションには追記先となるターミナルのスクロールバックがないため、アタッチされたセッションは `tui` 設定に関係なく、常に [フルスクリーンモード](/docs/ja/fullscreen) でレンダリングされます。`PgUp`、`PgDn`、またはマウスホイールでスクロールし、トランスクリプトモードには `Ctrl+O` を押します。ターミナルのネイティブスクロールと tmux のコピーモードは現在のビューポートのみを表示します。これはフルスクリーンアプリケーションを実行するときと同じです。257バックグラウンドセッションには追記先となるターミナルのスクロールバックがないため、アタッチされたセッションは `tui` 設定に関係なく、常に [フルスクリーンモード](/docs/ja/fullscreen) でレンダリングされます。`PgUp`、`PgDn`、またはマウスホイールでスクロールし、トランスクリプトモードには `Ctrl+O` を押します。ターミナルのネイティブスクロールと tmux のコピーモードは現在のビューポートのみを表示します。これはフルスクリーンアプリケーションを実行するときと同じです。

258 258 

259アタッチされたセッションは [ターミナルにステータスを報告しません](/docs/ja/terminal-config#see-session-status-in-your-terminal)。

260 

259空のプロンプトで `←` を押すか、`/exit` を実行してデタッチし、エージェントビューに戻ります。エージェントビューからセッションを開いたか、シェルから `claude attach <id>` を実行したかに関係なく機能します。261空のプロンプトで `←` を押すか、`/exit` を実行してデタッチし、エージェントビューに戻ります。エージェントビューからセッションを開いたか、シェルから `claude attach <id>` を実行したかに関係なく機能します。

260 262 

261`←` は [`/btw` オーバーレイ](/docs/ja/interactive-mode#side-questions-with-%2Fbtw) が開いている間もデタッチします。Claude Code v2.1.257 以降が必要です。回答中のサイド質問は、離れている間も実行を続けます。次にアタッチすると、オーバーレイがその質問、またはその回答とともに再び開きます。263`←` は [`/btw` オーバーレイ](/docs/ja/interactive-mode#side-questions-with-%2Fbtw) が開いている間もデタッチします。Claude Code v2.1.257 以降が必要です。回答中のサイド質問は、離れている間も実行を続けます。次にアタッチすると、オーバーレイがその質問、またはその回答とともに再び開きます。

Details

114 ターン中に送信されたメッセージはチェックポイントされません114 ターン中に送信されたメッセージはチェックポイントされません

115</h3>115</h3>

116 116 

117[Claude が作業中にキューに入れたメッセージ](/docs/ja/interactive-mode#queue-messages-while-claude-works)が実行中のターン内に Claude に到達すると、新しいターンを開始する代わりにそのターンに参加します。メッセージは会話に表示されますが、Claude Code はそれのチェックポイントを作成しません。Claude Code が新しいターンの一部として送信するキューに入れたメッセージは、通常どおりチェックポイントを取得します。複数のキューに入れたメッセージが[そのターンを共有](/docs/ja/interactive-mode#when-claude-code-sends-what-you-queued)する場合も含まれます。117巻き戻しメニューでは、[Claude がまだ作業中に入力した](/docs/ja/interactive-mode#queue-messages-while-claude-works)メッセージに **No code restore**(コードの復元なし)と表示されることがあります。Claude はそのメッセージをターンの終了前に読み取っています。[チェックポイントはターンを開始するプロンプトに対して作成される](#how-checkpoints-work)ため、このメッセージ自体にはチェックポイントがありません。Claude がそのメッセージを読んだ後に行った編集は、ターンを開始したプロンプトに含まれます。

118 118 

119そのようなメッセージの後に Claude が行った編集を取り消すには、ターンを開始したプロンプトに巻き戻します。これにより、メッセージが到達する前に Claude が行った作業を含む、ターン全体が巻き戻されます。119メッセージ自体について何かをする必要はありません。セッションのその部分でのファイル変更を取り消すには、ターンを開始したプロンプトを選択し、**Restore code**(コードを復元)または **Restore code and conversation**(コードと会話を復元)を選択します。これにより、メッセージが到達する前の編集を含め、ターン全体での Claude のファイル編集が元に戻されます。マークされたメッセージを選択した場合も **Restore conversation**(会話を復元)は利用でき、会話をそのメッセージまで巻き戻し、ファイルはそのまま残します。

120 120 

121<h3 id="symlinked-and-hard-linked-paths-not-restored">121<h3 id="symlinked-and-hard-linked-paths-not-restored">

122 シンボリックリンクおよびハードリンクパスは復元されません122 シンボリックリンクおよびハードリンクパスは復元されません

chrome.md +3 −4

Details

129 VS Code セッションでの権限プロンプト129 VS Code セッションでの権限プロンプト

130</h3>130</h3>

131 131 

132VS Code セッションでは、ブラウザアクションの前に Claude Code が確認するかどうかは、セッションがブラウザに接続した方法によって異なります。132VS Code セッションでは、ブラウザアクションの前に Claude Code が確認する場合、プロンプトはチャットパネルにカードとして表示されます。アクションの対象が許可していないサイトである場合、カードにはそのサイトを許可するオプションも表示されます。

133 133 

134* **`@browser` と入力した場合**: Claude Code が通常であれば確認するブラウザアクションを、拡張機能がそれぞれ承認します。134[デフォルトで有効](#enable-chrome-by-default)がオンになっているために開始時にブラウザに接続したセッションでは、Claude Code は Manual、Edit automatically、Auto、Bypass permissions の各モードで、許可していないサイトでのブラウザアクションの前に確認します。Auto モードと Bypass permissions モードでは、これはそのセッションで `@browser` と入力するまで適用されます。

135* **[デフォルトで有効](#enable-chrome-by-default)設定によって開始時に接続された場合**: そのセッションで `@browser` と入力するまで、Claude Code は Manual、Edit automatically、Auto、Bypass permissions の各モードで、許可していないサイトでのブラウザアクションの前に確認します。

136 135 

137<h3 id="browser-tools-in-plan-mode">136<h3 id="browser-tools-in-plan-mode">

138 plan モードでのブラウザツール137 plan モードでのブラウザツール

139</h3>138</h3>

140 139 

141[plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)では、Claude が GIF を記録する、新しいタブを開く、またはショートカットを実行する前に権限プロンプトが表示されます。ただし、[`@browser`](#permission-prompts-in-vs-code-sessions) と入力した VS Code セッションは除きます。対話型 CLI セッションでは、[bypassPermissions モードが利用可能](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)で、かつ[機能フラグの取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)がオフの場合、これらの呼び出しはプロンプトなしで実行されます。140[plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)では、Claude が GIF を記録する、新しいタブを開く、またはショートカットを実行する前に権限プロンプトが表示されます。対話型 CLI セッションでは、[bypassPermissions モードが利用可能](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)で、かつ[機能フラグの取得](/docs/ja/env-vars#features-that-need-feature-flag-fetching)がオフの場合、これらの呼び出しはプロンプトなしで実行されます。

142 141 

143`createIfEmpty` を設定する `tabs_context_mcp` 呼び出しや、これらのアクションのいずれかを含む `browser_batch` 呼び出しでもプロンプトが表示されます。142`createIfEmpty` を設定する `tabs_context_mcp` 呼び出しや、これらのアクションのいずれかを含む `browser_batch` 呼び出しでもプロンプトが表示されます。

144 143 

Details

263 開発者を接続する263 開発者を接続する

264</h2>264</h2>

265 265 

266開発者は独自のラップトップから 1 つのブラウザサインインで接続し、企業の仕事用アカウントを使用します。claude.ai アカウント、API キー、またはサブスクリプションは必要ありません。モデルへのリクエストは組織のアップストリーム認証情報を使用してゲートウェイを通じて行くためです。接続は、MDM 経由でプッシュする[クライアント側管理設定](/docs/ja/claude-apps-gateway-config#client-side-managed-settings)によって駆動されるため、開発者側に手動セットアップはありません。このセクションは管理者が設定するものをカバーしています。266開発者は独自のラップトップから 1 つのブラウザサインインで接続し、企業の仕事用アカウントを使用します。claude.ai アカウント、API キー、またはサブスクリプションは必要ありません。モデルへのリクエストは組織のアップストリーム認証情報を使用してゲートウェイを通じて行くためです。接続は、MDM 経由でプッシュする[クライアント側管理設定](/docs/ja/claude-apps-gateway-config#client-side-managed-settings)によって駆動されます。このセクションは管理者が設定するものをカバーしています。

267 267 

268CLI はゲートウェイの TLS リーフ証明書を最初の接続時にフィンガープリントし、ホスト名ごとにピン留めします。サインイン時、サイレントセッション更新時、および管理設定フェッチ時にそのピンを再度チェックしますが、推論リクエストはピンなしで標準 TLS 検証を使用します。HTTPS プロキシを通じてルーティングされたリクエストはピンチェックをスキップするため、ゲートウェイホストを `NO_PROXY` に追加して直接接続を保つようにします。268CLI はゲートウェイの TLS リーフ証明書を最初の接続時にフィンガープリントし、ホスト名ごとにピン留めします。サインイン時、サイレントセッション更新時、および管理設定フェッチ時にそのピンを再度チェックしますが、推論リクエストはピンなしで標準 TLS 検証を使用します。HTTPS プロキシを通じてルーティングされたリクエストはピンチェックをスキップするため、ゲートウェイホストを `NO_PROXY` に追加して直接接続を保つようにします。

269 269 


287 ゲートウェイ URL を設定する287 ゲートウェイ URL を設定する

288</h3>288</h3>

289 289 

290MDM 経由またはディスク上で直接デプロイする OS ごとの[管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms)に 3 つのキーが入ります。`forceLoginMethod` と `forceLoginGatewayUrl` は `/login` を **Cloud gateway** 画面で URL が入力された状態で直接開き、`parentSettingsBehavior: "merge"` は Claude Desktop がゲートウェイの出力許可リストを起動する Claude Code セッションに配信できるようにします。これは[Claude Desktop セッションにポリシーを配信する](#deliver-policy-to-claude-desktop-sessions)で説明されています。290MDM 経由またはディスク上で直接デプロイする OS ごとの[管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms)に 3 つのキーが入ります。管理設定のないマシンについては、代わりに[ユーザー設定でゲートウェイ URL を設定する](#set-the-gateway-url-in-user-settings)を参照してください。`forceLoginMethod` と `forceLoginGatewayUrl` は `/login` を **Cloud gateway** 画面で URL が入力された状態で直接開き、`parentSettingsBehavior: "merge"` は Claude Desktop がゲートウェイの出力許可リストを起動する Claude Code セッションに配信できるようにします。これは[Claude Desktop セッションにポリシーを配信する](#deliver-policy-to-claude-desktop-sessions)で説明されています。

291 291 

292```json theme={null}292```json theme={null}

293{293{


299 299 

300開発者は Enter キーを押して接続します。[最初の接続 TLS フィンガープリントプロンプト](#connect-developers)は引き続き表示されます。ファイルがマシンに配置されると、ゲートウェイサインインを完了していない開発者は、[Administrator policy requires a Cloud gateway sign-in](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)で説明されているメッセージの 1 つを見ます。`CLAUDE_CODE_USE_BEDROCK` などの環境変数を通じてクラウドプロバイダーを選択する開発者はゲートウェイサインインを必要としません。300開発者は Enter キーを押して接続します。[最初の接続 TLS フィンガープリントプロンプト](#connect-developers)は引き続き表示されます。ファイルがマシンに配置されると、ゲートウェイサインインを完了していない開発者は、[Administrator policy requires a Cloud gateway sign-in](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)で説明されているメッセージの 1 つを見ます。`CLAUDE_CODE_USE_BEDROCK` などの環境変数を通じてクラウドプロバイダーを選択する開発者はゲートウェイサインインを必要としません。

301 301 

302開発者はこれを手動で設定することはできません。ログインピッカーにはゲートウェイオプションがなく、`forceLoginGatewayUrl` は開発者独自の設定ファイルでは無視されます。URL なしの `forceLoginMethod` のみでは、開発者を「IT 管理者に連絡してください」メッセージのままにします。ログインキーは、マシンにプッシュするファイルに属し、ゲートウェイの `managed.policies[].cli` ブロックには属しません。このブロックは既に接続されているクライアントにのみ到達します。302ログインピッカーにはゲートウェイオプションがなく、管理設定で URL なしの `forceLoginMethod` のみを設定すると、開発者は「IT 管理者に連絡してください」メッセージのままになります。ログインキーは、マシンにプッシュするファイルに属し、ゲートウェイの `managed.policies[].cli` ブロックには属しません。このブロックは既に接続されているクライアントにのみ到達します。

303 

304<h4 id="set-the-gateway-url-in-user-settings">

305 ユーザー設定でゲートウェイ URL を設定する

306</h4>

307 

308管理設定のないマシンでは、各開発者に `forceLoginMethod` と `forceLoginGatewayUrl` を自分のユーザー設定ファイル `~/.claude/settings.json` に追加してもらいます。これには開発者マシンで Claude Code v2.1.295 以降が必要です。この例では `claude-gateway.internal.example.com` のゲートウェイを指定しています。

309 

310```json theme={null}

311{

312 "forceLoginMethod": "gateway",

313 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"

314}

315```

316 

317開発者が Claude Code のプロンプトで `/login` を実行すると、そのアドレスで **Cloud gateway** 画面が開き、Enter キーを押して接続します。[最初の接続 TLS フィンガープリントプロンプト](#connect-developers)は引き続き表示されます。この方法で設定したキーには以下の制限が適用されます。

318 

319* **ユーザー設定のみ**:Claude Code は 2 つのキーを `~/.claude/settings.json` から読み取り、プロジェクトの `.claude/settings.json` や `.claude/settings.local.json` からは読み取りません。

320* **管理設定があると無効になる**:管理設定ファイル、macOS plist または Windows HKLM ポリシー、あるいは[ポリシーヘルパー](/docs/ja/settings-reference#policyhelper)を通じて管理者の設定がマシンに届くと、Claude Code はユーザー設定で指定されたゲートウェイを無視します。

303 321 

304<h3 id="allow-a-gateway-on-public-address-space-you-own">322<h3 id="allow-a-gateway-on-public-address-space-you-own">

305 公開アドレス空間でゲートウェイを許可する323 公開アドレス空間でゲートウェイを許可する

Details

979 * **キーの混在**: `code` と `cli`(またはその以前の表記である `settings`)の両方を含むファイルは、起動時にゲートウェイを停止させます。1 回の編集で、すべてのブロックを 1 つのキーの下に置いてください。979 * **キーの混在**: `code` と `cli`(またはその以前の表記である `settings`)の両方を含むファイルは、起動時にゲートウェイを停止させます。1 回の編集で、すべてのブロックを 1 つのキーの下に置いてください。

980</Warning>980</Warning>

981 981 

982`.env` ファイルの読み取りを拒否するルールなど、ポリシーの Claude Code 設定は、`cli` キーまたは `code` キーの下のブロックに記述します。どちらのキーも同じ内容を受け付けます。キーによって、設定が適用される場所が決まります。982`.env` ファイルの読み取りを拒否するルールなど、ポリシーの Claude Code の設定は、`cli` または `code` キーの下のブロックに記述します。`code` が推奨されるキーで、`cli` は従来のキーです。どちらのキーも同じ内容を受け付けます。キーによって、設定が適用される場所が決まります。

983 983 

984* **`cli`**: ターミナル、VS Code と JetBrains の拡張機能、Agent SDK。`cli` の下では、Claude Desktop の Code タブには [派生した設定](#claude-desktop-overlay) が適用されるため、`Read(./.env)` のようなスコープ付きルールはそこでのユーザーの操作を止めません。984* **`cli`**: ターミナル、VS Code と JetBrains の拡張機能、Agent SDK。`cli` の下では、Claude Desktop の Code タブには [派生した設定](#claude-desktop-overlay) が適用されるため、`Read(./.env)` のようなスコープ付きルールはそこでのユーザーの操作を止めません。

985* **`code`**: 同じ場所に加え、Claude Desktop の Code タブもカバーできます。985* **`code`**: 同じ場所に加え、Claude Desktop の Code タブもカバーできます。

986 986 

987選択のポイントは、これらの設定で Code タブもカバーすべきかどうかです。カバーしない場合は、何も変更する必要はありません。`cli` を使用するファイルは以前と同様に動作し、[`desktop`](#claude-desktop-overlay) キーを持つポリシーで `cli` を見つけたゲートウェイは、起動時に警告を出したうえで起動します。Code タブをカバーするには、推奨キーである `code` に切り替えてください。987`cli` を使用するファイルは従来どおり動作し、[`desktop`](#claude-desktop-overlay) キーを持つポリシーで `cli` を検出したゲートウェイは、起動時に警告を出しますが起動は続行します。設定が Code タブにも適用されるように、`code` に切り替えてください。

988 988 

989切り替える前に、[Code タブで `code` 設定を適用する](#apply-code-settings-in-the-code-tab) をお読みください。設定がそこで適用されるには、ポリシーに `desktop` キーが必要で、ユーザーのマシンでのセットアップも必要です。また、Claude Desktop では Web 検索がオフになります。989切り替える前に、[Code タブで `code` 設定を適用する](#apply-code-settings-in-the-code-tab) をお読みください。設定がそこで適用されるには、ポリシーに `desktop` キーが必要で、ユーザーのマシンでのセットアップも必要です。また、Claude Desktop では Web 検索がオフになります。

990 990 


1711 1711 

1712Claude Desktop の場合、Claude Desktop 独自の[マネージド設定](https://claude.com/docs/third-party/claude-desktop/configuration)で `bootstrapUrl` キーを `<listen.public_url>/user/bootstrap` に設定します。サインインフロー及びグループごとのポリシーは、ポリシーが `desktop` キーでサーバー側で opt-in した後、CLI のものと一致します。opt-in がない場合、`/user/bootstrap` は 404 を返します。[Claude Desktop オーバーレイ](#claude-desktop-overlay)でサーバー側の半分を参照してください。1712Claude Desktop の場合、Claude Desktop 独自の[マネージド設定](https://claude.com/docs/third-party/claude-desktop/configuration)で `bootstrapUrl` キーを `<listen.public_url>/user/bootstrap` に設定します。サインインフロー及びグループごとのポリシーは、ポリシーが `desktop` キーでサーバー側で opt-in した後、CLI のものと一致します。opt-in がない場合、`/user/bootstrap` は 404 を返します。[Claude Desktop オーバーレイ](#claude-desktop-overlay)でサーバー側の半分を参照してください。

1713 1713 

1714Claude 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` でこれらを設定しても効果がなく、ゲートウェイペイロードで設定しても同様です。1714Claude 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` については、[ユーザー設定でゲートウェイ URL を設定する](/docs/ja/claude-apps-gateway#set-the-gateway-url-in-user-settings)を参照してください。

1715 1715 

1716`forceLoginMethod` と `forceLoginOrgUUID` をペイロードから除外してください。Claude Code はスタートアップ認証情報チェックのためにペイロードから両方のキーを読み込みます。そのため、Anthropic が発行した認証情報をマシンに保持している開発者は、サインイン後でも[管理者ポリシーがクラウドゲートウェイサインインを必要とする](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)の下で説明されているスタートアップ終了を取得します。1716`forceLoginMethod` と `forceLoginOrgUUID` をペイロードから除外してください。Claude Code はスタートアップ認証情報チェックのためにペイロードから両方のキーを読み込みます。そのため、Anthropic が発行した認証情報をマシンに保持している開発者は、サインイン後でも[管理者ポリシーがクラウドゲートウェイサインインを必要とする](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)の下で説明されているスタートアップ終了を取得します。

1717 1717 

Details

135 ゲートウェイ URL を開発者マシンにプッシュする135 ゲートウェイ URL を開発者マシンにプッシュする

136</h3>136</h3>

137 137 

138ゲートウェイがサービスを提供したら、MDM を通じて、または OS ごとの `managed-settings.json` を直接書き込むことで、管理設定を通じて各開発者のマシンに `forceLoginMethod`、`forceLoginGatewayUrl`、および `parentSettingsBehavior: "merge"` をプッシュします。これなしでは、`/login` はゲートウェイオプションなしで標準アカウントピッカーを表示します。138ゲートウェイが稼働したら、MDM を通じて、または OS ごとの `managed-settings.json` を直接書き込むことで、管理設定を通じて各開発者のマシンに `forceLoginMethod`、`forceLoginGatewayUrl`、および `parentSettingsBehavior: "merge"` をプッシュします。

139 139 

140キーをデプロイしたら、Claude Code はマシン上の残存する API キーまたは claude.ai ログインの使用を停止するため、サインイン指示と一緒にプッシュを計画します。[Administrator policy requires a Cloud gateway sign-in](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in) は開発者が見るメッセージについて説明しています。140キーをデプロイしたら、Claude Code はマシン上の残存する API キーまたは claude.ai ログインの使用を停止するため、サインイン指示と一緒にプッシュを計画します。[Administrator policy requires a Cloud gateway sign-in](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in) は開発者が見るメッセージについて説明しています。

141 141 

Details

277 277 

278スレッドはスレッドのモデルがサポートしている場合、[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)で実行されるため、ほとんどのツール呼び出しはあなたに尋ねずに実行されます。スレッドがあなたの承認を必要とする場合、プロンプトはそのスレッド内にあり、スレッドはあなたがそこで答えるまで待機します。プロジェクト会話で Claude に先に進むように伝えることはそれに到達しません。278スレッドはスレッドのモデルがサポートしている場合、[自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)で実行されるため、ほとんどのツール呼び出しはあなたに尋ねずに実行されます。スレッドがあなたの承認を必要とする場合、プロンプトはそのスレッド内にあり、スレッドはあなたがそこで答えるまで待機します。プロジェクト会話で Claude に先に進むように伝えることはそれに到達しません。

279 279 

280各承認はそのプロンプト、またはより広いオプションを選択した場合はそのスレッドの残りをカバーします。すべてのスレッドが特定のコマンドを尋ねずに実行できるようにするか、いくつかをブロックするには、リポジトリの`.claude/settings.json`に[権限ルール](/docs/ja/permissions)を追加します。クラウドスレッドはそれらを 1 つのリポジトリを持つプロジェクトでのみ適用します。[スレッドがリポジトリから何を取得するか](#what-threads-pick-up-from-your-repositories)を参照してください。複数のリポジトリを持つプロジェクトでは、リポジトリの権限ルールはクラウドスレッドに到達しないため、自動モードとスレッド内で与える承認に依存します。280各承認はそのプロンプト、またはより広いオプションを選択した場合はそのスレッドの残りをカバーします。

281 

282すべてのスレッドが特定のコマンドを尋ねずに実行できるようにするか、いくつかをブロックするには、リポジトリの `.claude/settings.json` に[権限ルール](/docs/ja/permissions)を追加します。プロジェクト内のクラウドスレッドがそれらを適用するかどうかを確認してください。

283 

284* **1 つのリポジトリ**:クラウドスレッドはルールを適用します。[スレッドがリポジトリから何を取得するか](#what-threads-pick-up-from-your-repositories)を参照してください。

285* **複数のリポジトリ、Anthropic がホストする環境**:どのリポジトリの権限ルールもクラウドスレッドに届かないため、auto モードと各スレッド内で与える承認に依存します。

286* **複数のリポジトリ、セルフホスト環境**:[どのリポジトリの設定が適用されるか](/docs/ja/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)を参照してください。

281 287 

282<h3 id="run-a-thread-on-your-own-computer">288<h3 id="run-a-thread-on-your-own-computer">

283 コンピューターでスレッドを実行する289 コンピューターでスレッドを実行する


381 スレッドがリポジトリから取得するもの387 スレッドがリポジトリから取得するもの

382</h3>388</h3>

383 389 

384各クラウドスレッドはプロジェクト内のすべてのリポジトリをクローンし、すべてのリポジトリから `CLAUDE.md` とスキルを読み込みます。権限ルール、フック、`env` は、スレッドが開始するディレクトリ内の `.claude/settings.json` からのみ取得されます:プロジェクトが 1 つのリポジトリを持つ場合はリポジトリ内、複数のリポジトリを持つ場合はクローンの上で、リポジトリのファイルはそれらに対して読み込まれません。390各クラウドスレッドはプロジェクト内のすべてのリポジトリをクローンし、すべてのリポジトリから `CLAUDE.md` とスキルを読み込みます。権限ルール、フック、`env` は、スレッドが開始するディレクトリ内の `.claude/settings.json` からのみ取得されます。

385 391 

386| 各リポジトリ内 | 1 つのリポジトリ | 複数のリポジトリ |392| 各リポジトリ内 | 1 つのリポジトリ | 複数のリポジトリ |

387| :- | :- | :- |393| :- | :- | :- |

388| `CLAUDE.md` | スレッド開始時に読み込まれます | スレッド開始時にすべてのリポジトリから読み込まれます |394| `CLAUDE.md` | スレッド開始時に読み込まれます | スレッド開始時にすべてのリポジトリから読み込まれます |

389| `.claude/` の下のスキル、エージェント、コマンド | 読み込まれます | すべてのリポジトリから読み込まれます |395| `.claude/` の下のスキル、エージェント、コマンド | 読み込まれます | すべてのリポジトリから読み込まれます |

390| `.claude/settings.json` で有効化されたプラグイン | 読み込まれません。代わりに **プロジェクト設定 > プラグイン** でプラグインを追加してください | 読み込まれません。代わりに **プロジェクト設定 > プラグイン** でプラグインを追加してください |396| `.claude/settings.json` で有効化されたプラグイン | 読み込まれません。代わりに **プロジェクト設定 > プラグイン** でプラグインを追加してください | 読み込まれません。代わりに **プロジェクト設定 > プラグイン** でプラグインを追加してください |

391| `.claude/settings.json` で定義された権限ルール、フック、`env` | スレッドに適用されます。ただし、[クラウドセッションが認識しない](/docs/ja/cloud-environments#what-carries-over-from-your-setup) `env` キーは除きます | 適用されません |397| `.claude/settings.json` で定義された権限ルール、フック、`env` | スレッドに適用されます。ただし、[クラウドセッションが認識しない](/docs/ja/cloud-environments#what-carries-over-from-your-setup) `env` キーは除きます | Anthropic ホスト環境では適用されません。セルフホスト環境については、[どのリポジトリの設定が適用されるか](/docs/ja/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) を参照してください |

392 398 

393複数のリポジトリを持つプロジェクトでは、各クローンは `CLAUDE.md` 読み込みが有効になった [追加ディレクトリ](/docs/ja/memory#load-from-additional-directories) としてスレッドに接続されます。これが、スレッドがそれらの上で開始されるにもかかわらず、すべてのリポジトリの `CLAUDE.md` とスキルが開始時に読み込まれる理由です。このようなプロジェクトでは、スタンディングルールをプロジェクト指示に記載し、[クラウド環境](#choose-an-environment-for-threads) を通じてスレッドに環境変数を提供してください。399複数のリポジトリを持つプロジェクトでは、スタンディングルールをプロジェクト指示に記載し、[クラウド環境](#choose-an-environment-for-threads) を通じてスレッドに環境変数を提供してください。

394 400 

395<h3 id="choose-an-environment-for-threads">401<h3 id="choose-an-environment-for-threads">

396 スレッドの環境を選択する402 スレッドの環境を選択する


406 412 

407クラウドスレッドはマシンにのみインストールされているスキル、MCP サーバー、プラグイン、ツールを持っていません。[Remote Control](/docs/ja/remote-control) を通じてマシン上で Claude が実行するスレッドは、そこにインストールされているものを使用します。これらのそれぞれをクラウドスレッドで利用可能にするには:413クラウドスレッドはマシンにのみインストールされているスキル、MCP サーバー、プラグイン、ツールを持っていません。[Remote Control](/docs/ja/remote-control) を通じてマシン上で Claude が実行するスレッドは、そこにインストールされているものを使用します。これらのそれぞれをクラウドスレッドで利用可能にするには:

408 414 

409* スキル、サブエージェント、コマンド:プロジェクトに追加したリポジトリにコミットします。例えば、`.claude/skills/<skill-name>/SKILL.md` のスキル。各クラウドスレッドはプロジェクト内のすべてのリポジトリをクローンし、それぞれから `.claude/skills/`、`.claude/agents/`、`.claude/commands/` を読み込むため、1 つのリポジトリにコミットされたスキルはすべてのクラウドスレッドで利用可能です。クラウドスレッドは、claude.ai アカウントで有効化したスキルも読み込みます。415* スキル、サブエージェント、コマンド:プロジェクトに追加したリポジトリにコミットします。例えば、`.claude/skills/<skill-name>/SKILL.md` のスキル。各クラウドスレッドはプロジェクト内のすべてのリポジトリをクローンし、それぞれから `.claude/skills/`、`.claude/agents/`、`.claude/commands/` を読み込むため、1 つのリポジトリにコミットされたスキルはすべてのクラウドスレッドで利用可能です。クラウドスレッドは、[claude.ai アカウントで有効化したスキル](/docs/ja/skills#skills-in-cowork-and-cloud-sessions) も読み込みます。

410* プラグイン:**プロジェクト設定 > プラグイン** で追加します。各新しいクラウドスレッドに読み込まれます。リポジトリが `.claude/settings.json` で宣言するプラグインは、クラウドスレッドでは [読み込まれません](/docs/ja/cloud-environments#what-carries-over-from-your-setup)。416* プラグイン:**プロジェクト設定 > プラグイン** で追加します。各新しいクラウドスレッドに読み込まれます。リポジトリが `.claude/settings.json` で宣言するプラグインは、クラウドスレッドでは [読み込まれません](/docs/ja/cloud-environments#what-carries-over-from-your-setup)。

411* MCP サーバー:クラウドスレッドは、claude.ai アカウントのコネクタから MCP ツールを取得します。これは、[claude.ai/customize/connectors](https://claude.ai/customize/connectors) で 1 回接続する MCP サーバーか、**プロジェクト設定 > 環境** の **コネクタを管理** リンクを通じて接続します。すべてのクラウドスレッドは、プロジェクト固有のセットアップなしでそれらすべてを使用できます。プロジェクト会話自体にはコネクタがないため、コネクタが必要な作業をクラウドスレッドのタスクとして送信してください。1 つのリポジトリを持つプロジェクトでは、クラウドスレッドはそのリポジトリの [`.mcp.json`](/docs/ja/cloud-environments#what-carries-over-from-your-setup) から MCP サーバーも読み込みます。[コネクタが Claude Code に到達する方法](/docs/ja/mcp#how-connectors-reach-claude-code) は、クラウドセッションのルールとコネクタをオフにする設定をリストしています。417* MCP サーバー:クラウドスレッドは、claude.ai アカウントのコネクタから MCP ツールを取得します。これは、[claude.ai/customize/connectors](https://claude.ai/customize/connectors) で 1 回接続する MCP サーバーか、**プロジェクト設定 > 環境** の **コネクタを管理** リンクを通じて接続します。すべてのクラウドスレッドは、プロジェクト固有のセットアップなしでそれらすべてを使用できます。プロジェクト会話自体にはコネクタがないため、コネクタが必要な作業をクラウドスレッドのタスクとして送信してください。1 つのリポジトリを持つプロジェクトでは、クラウドスレッドはそのリポジトリの [`.mcp.json`](/docs/ja/cloud-environments#what-carries-over-from-your-setup) から MCP サーバーも読み込みます。[コネクタが Claude Code に到達する方法](/docs/ja/mcp#how-connectors-reach-claude-code) は、クラウドセッションのルールとコネクタをオフにする設定をリストしています。

412* コマンドラインツールとパッケージ:環境の [セットアップスクリプト](/docs/ja/cloud-environments#setup-scripts) にインストールします。418* コマンドラインツールとパッケージ:環境の [セットアップスクリプト](/docs/ja/cloud-environments#setup-scripts) にインストールします。

Details

108| `--maintenance` | セッションの前に `maintenance` マッチャーで[セットアップフック](/docs/ja/hooks#setup)を実行します(プリントモードのみ) | `claude -p --maintenance "query"` |108| `--maintenance` | セッションの前に `maintenance` マッチャーで[セットアップフック](/docs/ja/hooks#setup)を実行します(プリントモードのみ) | `claude -p --maintenance "query"` |

109| `--max-budget-usd` | API 呼び出しの推定支出がこの金額に達した時点で実行を停止します(プリントモードのみ)。Claude Code は上限を[クライアント側のコスト見積もり](/docs/ja/agent-sdk/cost-tracking#estimates-not-billing)と照合するため、実際の請求額と異なる場合があります。[サブエージェント](/docs/ja/sub-agents)による支出も上限にカウントされます。支出は上限を超えることがあるため、[余裕を持たせてください](/docs/ja/agent-sdk/agent-loop#budget-headroom)。`--continue` または `--resume` で会話に戻るとき、[以前の実行から復元された](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)合計は上限にカウントされません。支出が上限に達すると、別のサブエージェントの生成は `Budget limit reached` で失敗し、Claude Code はまだ実行中のバックグラウンドサブエージェントを停止します。上限の適用動作には Claude Code v2.1.217 以降が必要です | `claude -p --max-budget-usd 5.00 "query"` |109| `--max-budget-usd` | API 呼び出しの推定支出がこの金額に達した時点で実行を停止します(プリントモードのみ)。Claude Code は上限を[クライアント側のコスト見積もり](/docs/ja/agent-sdk/cost-tracking#estimates-not-billing)と照合するため、実際の請求額と異なる場合があります。[サブエージェント](/docs/ja/sub-agents)による支出も上限にカウントされます。支出は上限を超えることがあるため、[余裕を持たせてください](/docs/ja/agent-sdk/agent-loop#budget-headroom)。`--continue` または `--resume` で会話に戻るとき、[以前の実行から復元された](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)合計は上限にカウントされません。支出が上限に達すると、別のサブエージェントの生成は `Budget limit reached` で失敗し、Claude Code はまだ実行中のバックグラウンドサブエージェントを停止します。上限の適用動作には Claude Code v2.1.217 以降が必要です | `claude -p --max-budget-usd 5.00 "query"` |

110| `--max-turns` | エージェンティックターンの数を制限します(プリントモードのみ)。制限に達するとエラーで終了します。デフォルトでは制限がありません。`--input-format stream-json` を使用する場合、制限がターンを終了するときにキューに入れられたメッセージは引き続きキューに入れられ、独自の制限で新しいターンを開始します | `claude -p --max-turns 3 "query"` |110| `--max-turns` | エージェンティックターンの数を制限します(プリントモードのみ)。制限に達するとエラーで終了します。デフォルトでは制限がありません。`--input-format stream-json` を使用する場合、制限がターンを終了するときにキューに入れられたメッセージは引き続きキューに入れられ、独自の制限で新しいターンを開始します | `claude -p --max-turns 3 "query"` |

111| `--mcp-config` | JSON ファイルまたは文字列から MCP サーバーを読み込みます(スペース区切り)。このフラグを `-p` で渡すと、Claude Code は最初のターンを実行する前に、まだ保留中のサーバーが接続されるまで待機します。デフォルトでは [`MCP_TIMEOUT`](/docs/ja/env-vars) スタートアップタイムアウト 30 秒まで待機します。[キャッシュされたツールリスト](/docs/ja/mcp#managing-your-servers)を持つサーバーは待機をスキップし、最初の使用時に接続します。待機には Claude Code v2.1.221 以降が必要です | `claude --mcp-config ./mcp.json` |111| `--mcp-config` | JSON ファイルまたは文字列から MCP サーバーを読み込みます(スペース区切り)。このフラグを `-p` で渡すと、Claude Code は最初のターンを実行する前に、まだ保留中のサーバーが接続されるまで待機します。デフォルトでは [`MCP_TIMEOUT`](/docs/ja/env-vars) スタートアップタイムアウト 30 秒まで待機します。[キャッシュされたツールリスト](/docs/ja/mcp#managing-your-servers)を持つサーバーは待機をスキップし、最初の使用時に接続します。[自己ホスト環境](/docs/ja/self-hosted-environments-configuration#connection-timing)では、代わりにより短い待機時間が適用されます。待機には Claude Code v2.1.221 以降が必要です | `claude --mcp-config ./mcp.json` |

112| `--model` | `sonnet`、`opus`、`haiku`、`fable` などの[モデルエイリアス](/docs/ja/model-config#model-aliases)またはモデルの完全な名前を使用して、現在のセッションのモデルを設定します。[`model`](/docs/ja/settings-reference#model) 設定と [`ANTHROPIC_MODEL`](/docs/ja/model-config#environment-variables) をオーバーライドします | `claude --model claude-sonnet-5` |112| `--model` | `sonnet`、`opus`、`haiku`、`fable` などの[モデルエイリアス](/docs/ja/model-config#model-aliases)またはモデルの完全な名前を使用して、現在のセッションのモデルを設定します。[`model`](/docs/ja/settings-reference#model) 設定と [`ANTHROPIC_MODEL`](/docs/ja/model-config#environment-variables) をオーバーライドします | `claude --model claude-sonnet-5` |

113| `--name`, `-n` | セッションの表示名を設定します。`/resume` とターミナルタイトルに表示されます。`claude --resume <name>` で名前付きセッションを再開できます。対話型セッションで、このマシン上の別のライブセッションが既に名前を使用している場合、Claude Code は[その変種を適用](/docs/ja/sessions#name-your-sessions)します。<br /><br />[`/rename`](/docs/ja/commands)はセッション中に名前を変更し、プロンプトバーにも表示します | `claude -n "my-feature-work"` |113| `--name`, `-n` | セッションの表示名を設定します。`/resume` とターミナルタイトルに表示されます。`claude --resume <name>` で名前付きセッションを再開できます。対話型セッションで、このマシン上の別のライブセッションが既に名前を使用している場合、Claude Code は[その変種を適用](/docs/ja/sessions#name-your-sessions)します。<br /><br />[`/rename`](/docs/ja/commands)はセッション中に名前を変更し、プロンプトバーにも表示します | `claude -n "my-feature-work"` |

114| `--no-chrome` | このセッションの [Chrome ブラウザ統合](/docs/ja/chrome)を無効にします | `claude --no-chrome` |114| `--no-chrome` | このセッションの [Chrome ブラウザ統合](/docs/ja/chrome)を無効にします | `claude --no-chrome` |

Details

314| リポジトリの `.claude/settings.json` で宣言されたプラグインとマーケットプレイス | いいえ | クラウドセッションは、リポジトリが [`enabledPlugins`](/docs/ja/settings-reference#enabledplugins) で有効にするプラグインをインストールしません。これには [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) の下にリストされているマーケットプレイスのプラグインも含まれます |314| リポジトリの `.claude/settings.json` で宣言されたプラグインとマーケットプレイス | いいえ | クラウドセッションは、リポジトリが [`enabledPlugins`](/docs/ja/settings-reference#enabledplugins) で有効にするプラグインをインストールしません。これには [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) の下にリストされているマーケットプレイスのプラグインも含まれます |

315| 組織の[サーバー管理設定](/docs/ja/server-managed-settings) | はい、[Claude Tag](https://claude.com/docs/claude-tag/overview) セッションを除く | セッション開始時に Anthropic のサーバーから取得されます。クラウドセッションで `availableModels` がどのように適用されるかについては、[Surface coverage](/docs/ja/model-config#surface-coverage) を参照してください。MDM または管理設定ファイルを通じてデバイスにデプロイされた設定は適用されません。セッションは Anthropic 管理 VM で実行されるためです。[セルフホスト環境](/docs/ja/self-hosted-environments)では、セッションはランナーイメージの管理設定ファイルも読み取ります。[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)に従います |315| 組織の[サーバー管理設定](/docs/ja/server-managed-settings) | はい、[Claude Tag](https://claude.com/docs/claude-tag/overview) セッションを除く | セッション開始時に Anthropic のサーバーから取得されます。クラウドセッションで `availableModels` がどのように適用されるかについては、[Surface coverage](/docs/ja/model-config#surface-coverage) を参照してください。MDM または管理設定ファイルを通じてデバイスにデプロイされた設定は適用されません。セッションは Anthropic 管理 VM で実行されるためです。[セルフホスト環境](/docs/ja/self-hosted-environments)では、セッションはランナーイメージの管理設定ファイルも読み取ります。[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources)に従います |

316| ユーザー `~/.claude/CLAUDE.md` | いいえ | マシンに存在し、リポジトリには存在しません。[リポジトリにコミットせずに個人設定を追加する](#add-personal-preferences-without-committing-to-the-repo)を参照してください |316| ユーザー `~/.claude/CLAUDE.md` | いいえ | マシンに存在し、リポジトリには存在しません。[リポジトリにコミットせずに個人設定を追加する](#add-personal-preferences-without-committing-to-the-repo)を参照してください |

317| ユーザー `~/.claude/skills/`、`~/.claude/agents/`、`~/.claude/commands/` | いいえ | マシンに存在し、リポジトリには存在しません。代わりにリポジトリの `.claude/` ディレクトリにコミットしてください。クラウドセッションは claude.ai で有効にしたスキルを自動的に読み込みます |317| ユーザー `~/.claude/skills/`、`~/.claude/agents/`、`~/.claude/commands/` | いいえ | マシンに存在し、リポジトリには存在しません。代わりにリポジトリの `.claude/` ディレクトリにコミットしてください。クラウドセッションは [claude.ai で有効にしたスキル](/docs/ja/skills#skills-in-cowork-and-cloud-sessions)を自動的に読み込みます |

318| ユーザー設定でのみ有効なプラグイン | いいえ | ユーザースコープの `enabledPlugins` はマシンの `~/.claude/settings.json` に存在します |318| ユーザー設定でのみ有効なプラグイン | いいえ | ユーザースコープの `enabledPlugins` はマシンの `~/.claude/settings.json` に存在します |

319| デフォルトのローカルスコープまたはユーザースコープで `claude mcp add` を使用して追加した MCP サーバー | いいえ | これらはマシンの `~/.claude.json` に書き込まれ、リポジトリには書き込まれません。`claude mcp add --scope project` でサーバーを追加します。これはリポジトリの[`.mcp.json`](/docs/ja/mcp#project-scope)に書き込まれ、そのファイルをコミットしてください。1 つのリポジトリを持つセッションはそれを読み込みます |319| デフォルトのローカルスコープまたはユーザースコープで `claude mcp add` を使用して追加した MCP サーバー | いいえ | これらはマシンの `~/.claude.json` に書き込まれ、リポジトリには書き込まれません。`claude mcp add --scope project` でサーバーを追加します。これはリポジトリの[`.mcp.json`](/docs/ja/mcp#project-scope)に書き込まれ、そのファイルをコミットしてください。1 つのリポジトリを持つセッションはそれを読み込みます |

320| リポジトリの `.claude/settings.json` `env` ブロック内のトランスポート変数(`NODE_EXTRA_CA_CERTS` や[mTLS クライアント証明書変数](/docs/ja/network-config#mtls-authentication)など) | いいえ | ホスティング環境がセッションの API 接続を管理するため、Claude Code はこれらのキーを無視し、セッションのデバッグログで無視された各キーを記録します |320| リポジトリの `.claude/settings.json` `env` ブロック内のトランスポート変数(`NODE_EXTRA_CA_CERTS` や[mTLS クライアント証明書変数](/docs/ja/network-config#mtls-authentication)など) | いいえ | ホスティング環境がセッションの API 接続を管理するため、Claude Code はこれらのキーを無視し、セッションのデバッグログで無視された各キーを記録します |

commands.md +1 −1

Details

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

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

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

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

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

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

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

env-vars.md +3 −3

Details

285| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | `1` に設定すると、[安全性分類器がリクエストを警告したときの自動モデル切り替え](/docs/ja/model-config#automatic-model-fallback)をオフにします。これは [`switchModelsOnFlag`](/docs/ja/settings-reference#switchmodelsonflag) 設定が制御する動作です |285| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | `1` に設定すると、[安全性分類器がリクエストを警告したときの自動モデル切り替え](/docs/ja/model-config#automatic-model-fallback)をオフにします。これは [`switchModelsOnFlag`](/docs/ja/settings-reference#switchmodelsonflag) 設定が制御する動作です |

286| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | `1` に設定すると、アップストリームが構造化出力の `output_config.format` フィールドとそれと対になる `anthropic-beta` 値を拒否する [LLM ゲートウェイ](/docs/ja/llm-gateway-protocol#feature-pass-through)向けに、Claude Code がそれらを送信しないようにします。[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities) がオフにするその他のプレリリース機能はオンのままになります。Claude Code v2.1.288 以降が必要です |286| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | `1` に設定すると、アップストリームが構造化出力の `output_config.format` フィールドとそれと対になる `anthropic-beta` 値を拒否する [LLM ゲートウェイ](/docs/ja/llm-gateway-protocol#feature-pass-through)向けに、Claude Code がそれらを送信しないようにします。[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities) がオフにするその他のプレリリース機能はオンのままになります。Claude Code v2.1.288 以降が必要です |

287| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | `1` に設定すると、`rm -rf "$(pwd)"` のように、対象全体がコマンド置換の出力である再帰的な `rm` に対する[クリティカルパス](/docs/ja/permission-modes#critical-paths)のチェックをオフにします。その他のクリティカルパスのチェックは引き続き実行されます。Claude Code は設定の `env` ブロックを通じて配信されたコピーを無視するため、Claude Code を起動する環境で設定してください。Claude Code v2.1.281 以降が必要です |287| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | `1` に設定すると、`rm -rf "$(pwd)"` のように、対象全体がコマンド置換の出力である再帰的な `rm` に対する[クリティカルパス](/docs/ja/permission-modes#critical-paths)のチェックをオフにします。その他のクリティカルパスのチェックは引き続き実行されます。Claude Code は設定の `env` ブロックを通じて配信されたコピーを無視するため、Claude Code を起動する環境で設定してください。Claude Code v2.1.281 以降が必要です |

288| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | `1` に設定すると、会話のコンテキストに基づくターミナルタイトルの自動更新を無効にします。これにより、[セッションタイトルを生成する](/docs/ja/sessions#name-your-sessions)バックグラウンドの small/fast モデルへのリクエストもスキップされます |288| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | `1` に設定すると、会話のコンテキストに基づくターミナルタイトルの自動更新を無効にします。また、[セッションタイトルを生成する](/docs/ja/sessions#name-your-sessions)バックグラウンドの small/fast モデルリクエストもスキップし、[ターミナルへのステータスレポート](/docs/ja/terminal-config#see-session-status-in-your-terminal)もオフにします |

289| `CLAUDE_CODE_DISABLE_THINKING` | `1` に設定すると、API リクエストから `thinking` パラメーターを完全に省略します。これは、このパラメーターを拒否するプロキシやゲートウェイ向けの互換性オプションです。デフォルトで思考するモデルでは、パラメーターを省略してもモデルが思考する場合があります。Anthropic API で[拡張思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)を明示的に無効にするには、代わりに `MAX_THINKING_TOKENS=0` を使用します。Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable モデルでは思考をオフにできないため、どちらの変数でも思考はオフになりません。[サードパーティプロバイダー](/docs/ja/third-party-integrations)では、`MAX_THINKING_TOKENS=0` も同様にパラメーターを省略するため、2 つの変数の動作は同じになります |289| `CLAUDE_CODE_DISABLE_THINKING` | `1` に設定すると、API リクエストから `thinking` パラメーターを完全に省略します。これは、このパラメーターを拒否するプロキシやゲートウェイ向けの互換性オプションです。デフォルトで思考するモデルでは、パラメーターを省略してもモデルが思考する場合があります。Anthropic API で[拡張思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)を明示的に無効にするには、代わりに `MAX_THINKING_TOKENS=0` を使用します。Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable モデルでは思考をオフにできないため、どちらの変数でも思考はオフになりません。[サードパーティプロバイダー](/docs/ja/third-party-integrations)では、`MAX_THINKING_TOKENS=0` も同様にパラメーターを省略するため、2 つの変数の動作は同じになります |

290| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | `1` に設定すると、[LLM ゲートウェイ](/docs/ja/llm-gateway)のエイリアスなど、Claude Code がモデル ID を認識しない場合の事前の[自動圧縮](/docs/ja/costs#reduce-token-usage)をスキップします。この変数がない場合、Claude Code はその ID に対して想定するコンテキストウィンドウで圧縮します。代わりに `CLAUDE_CODE_MAX_CONTEXT_TOKENS` で想定されるウィンドウを補正することもできます。各変数が適用される場面については、[ゲートウェイまたはカスタムモデル ID のウィンドウを補正する](/docs/ja/model-config#correct-the-window-for-a-gateway-or-custom-model-id)を参照してください。Claude Code v2.1.223 以降が必要です |290| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | `1` に設定すると、[LLM ゲートウェイ](/docs/ja/llm-gateway)のエイリアスなど、Claude Code がモデル ID を認識しない場合の事前の[自動圧縮](/docs/ja/costs#reduce-token-usage)をスキップします。この変数がない場合、Claude Code はその ID に対して想定するコンテキストウィンドウで圧縮します。代わりに `CLAUDE_CODE_MAX_CONTEXT_TOKENS` で想定されるウィンドウを補正することもできます。各変数が適用される場面については、[ゲートウェイまたはカスタムモデル ID のウィンドウを補正する](/docs/ja/model-config#correct-the-window-for-a-gateway-or-custom-model-id)を参照してください。Claude Code v2.1.223 以降が必要です |

291| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | `1` に設定すると、[フルスクリーンレンダリング](/docs/ja/fullscreen)で仮想スクロールを無効にし、トランスクリプト内のすべてのメッセージをレンダリングします。フルスクリーンモードでスクロールしたときに、メッセージが表示されるべき場所に空白の領域が表示される場合に使用します |291| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | `1` に設定すると、[フルスクリーンレンダリング](/docs/ja/fullscreen)で仮想スクロールを無効にし、トランスクリプト内のすべてのメッセージをレンダリングします。フルスクリーンモードでスクロールしたときに、メッセージが表示されるべき場所に空白の領域が表示される場合に使用します |


309| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | クエリループがアイドル状態になってから自動的に終了するまで待機する時間(ミリ秒)。SDK モードを使用する自動化ワークフローやスクリプトに便利です |309| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | クエリループがアイドル状態になってから自動的に終了するまで待機する時間(ミリ秒)。SDK モードを使用する自動化ワークフローやスクリプトに便利です |

310| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `1` に設定すると [エージェントチーム](/docs/ja/agent-teams) を有効にします。エージェントチームは実験的な機能で、デフォルトでは無効です |310| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `1` に設定すると [エージェントチーム](/docs/ja/agent-teams) を有効にします。エージェントチームは実験的な機能で、デフォルトでは無効です |

311| `CLAUDE_CODE_EXTRA_BODY` | すべての API リクエストボディのトップレベルにマージする JSON オブジェクト。Claude Code が直接公開していないプロバイダー固有のパラメーターを渡すのに便利です。シェルでエクスポートした値は、`claude agents` または `--bg` でディスパッチする [バックグラウンドセッション](/docs/ja/agent-view) にも適用されます。v2.1.206 より前は、バックグラウンドセッションはシェルでエクスポートされた値を無視し、バックグラウンドスーパーバイザープロセスが継承したコピーを使用していました |311| `CLAUDE_CODE_EXTRA_BODY` | すべての API リクエストボディのトップレベルにマージする JSON オブジェクト。Claude Code が直接公開していないプロバイダー固有のパラメーターを渡すのに便利です。シェルでエクスポートした値は、`claude agents` または `--bg` でディスパッチする [バックグラウンドセッション](/docs/ja/agent-view) にも適用されます。v2.1.206 より前は、バックグラウンドセッションはシェルでエクスポートされた値を無視し、バックグラウンドスーパーバイザープロセスが継承したコピーを使用していました |

312| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | ファイル読み取りのデフォルトのトークン制限を上書きします。大きなファイル全体を読み取る必要がある場合に便利です |312| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | [ファイル読み取り](/docs/ja/tools-reference#large-files)のデフォルトのトークン制限(25,000 トークン)を上書きします。大きなファイルを全体的に読み取る必要がある場合に便利です。Claude が `allow_large` パラメーターを使って行う読み取りは、コンテキストウィンドウに余裕がある場合はこの制限を超えることができます |

313| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | `1` に設定すると、この `claude` が別の Claude Code セッション内から起動された場合でも、トランスクリプトの永続化、プロンプト履歴、`claude agents` への登録を強制します。`screen` セッションや、Claude Code の Bash ツールが最初に起動したバックグラウンドランチャーなどから継承された `CLAUDE_CODE_CHILD_SESSION` 値によって、本来のトップレベルセッションがネストされたセッションと誤分類される場合に使用します。v2.1.178 以降、Claude Code は tmux のケースを自動的に検出して継承されたマーカーを無視するため、tmux ではこの変数は不要になりました。v2.1.169 以前でも有効です。この変数が上書きするネストされたセッションの検出が削除されていた v2.1.170 および v2.1.171 では効果がありません |313| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | `1` に設定すると、この `claude` が別の Claude Code セッション内から起動された場合でも、トランスクリプトの永続化、プロンプト履歴、`claude agents` への登録を強制します。`screen` セッションや、Claude Code の Bash ツールが最初に起動したバックグラウンドランチャーなどから継承された `CLAUDE_CODE_CHILD_SESSION` 値によって、本来のトップレベルセッションがネストされたセッションと誤分類される場合に使用します。v2.1.178 以降、Claude Code は tmux のケースを自動的に検出して継承されたマーカーを無視するため、tmux ではこの変数は不要になりました。v2.1.169 以前でも有効です。この変数が上書きするネストされたセッションの検出が削除されていた v2.1.170 および v2.1.171 では効果がありません |

314| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | ターミナルが取り消し線をサポートしているものの、`TERM_PROGRAM` が転送されていない SSH 経由など自動検出されない場合に、`1` に設定すると Claude の応答内の `~~text~~` を強制的に取り消し線で表示します。これがない場合、検出されないターミナルではテキストが取り消し線で表示されず、`~~` マーカーがそのまま表示されます。Claude Code v2.1.186 以降が必要です |314| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | ターミナルが取り消し線をサポートしているものの、`TERM_PROGRAM` が転送されていない SSH 経由など自動検出されない場合に、`1` に設定すると Claude の応答内の `~~text~~` を強制的に取り消し線で表示します。これがない場合、検出されないターミナルではテキストが取り消し線で表示されず、`~~` マーカーがそのまま表示されます。Claude Code v2.1.186 以降が必要です |

315| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | ターミナルがサポートしているものの自動検出されない場合に、`1` に設定すると DEC プライベートモード 2026 の [同期出力](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) を強制的に有効にします。BSU/ESU を実装しているものの機能プローブに応答しない Emacs `eat` などのエミュレーターに便利です。tmux の下では効果がありません。[フルスクリーンレンダリング](/docs/ja/fullscreen) に切り替える `CLAUDE_CODE_NO_FLICKER` とは異なり、これはレンダラーを変更しません |315| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | ターミナルがサポートしているものの自動検出されない場合に、`1` に設定すると DEC プライベートモード 2026 の [同期出力](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) を強制的に有効にします。BSU/ESU を実装しているものの機能プローブに応答しない Emacs `eat` などのエミュレーターに便利です。tmux の下では効果がありません。[フルスクリーンレンダリング](/docs/ja/fullscreen) に切り替える `CLAUDE_CODE_NO_FLICKER` とは異なり、これはレンダラーを変更しません |


340| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | [WebSearch](/docs/ja/tools-reference#session-search-limit) 呼び出しの上限(デフォルト: 200)。Claude が上限に達すると、以降の WebSearch 呼び出しは、すでに収集した情報で作業を続けるよう伝える通知を返します。正の整数を受け付け、値に上限はありません。それ以外の値は無視されてデフォルトが適用されるため、上限を引き上げることはできますが、オフにすることはできません。Claude Code v2.1.212 以降が必要です |340| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | [WebSearch](/docs/ja/tools-reference#session-search-limit) 呼び出しの上限(デフォルト: 200)。Claude が上限に達すると、以降の WebSearch 呼び出しは、すでに収集した情報で作業を続けるよう伝える通知を返します。正の整数を受け付け、値に上限はありません。それ以外の値は無視されてデフォルトが適用されるため、上限を引き上げることはできますが、オフにすることはできません。Claude Code v2.1.212 以降が必要です |

341| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | `1` に設定すると、シェル環境を継承する代わりに、安全な最小限のベースライン環境とサーバーに設定された `env` のみで stdio MCP サーバーを起動します |341| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | `1` に設定すると、シェル環境を継承する代わりに、安全な最小限のベースライン環境とサーバーに設定された `env` のみで stdio MCP サーバーを起動します |

342| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 実行中の MCP ツール呼び出しが [バックグラウンドタスクに移行する](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) までの経過時間(ミリ秒)(デフォルト: 120000、つまり 2 分)。`0` に設定すると自動バックグラウンド化をオフにします。Claude Code v2.1.212 以降が必要です |342| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 実行中の MCP ツール呼び出しが [バックグラウンドタスクに移行する](/docs/ja/mcp#automatic-backgrounding-of-long-tool-calls) までの経過時間(ミリ秒)(デフォルト: 120000、つまり 2 分)。`0` に設定すると自動バックグラウンド化をオフにします。Claude Code v2.1.212 以降が必要です |

343| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非対話](/docs/ja/headless) セッションの最初のターンが、まだ接続中の MCP サーバーを待機する時間(ミリ秒)。デフォルトの [最初のターンの待機](/docs/ja/agent-sdk/mcp#connection-timing) の代わりに使用されます。設定すると、待機は保留中のすべてのサーバーを対象にします。`0` に設定すると待機をスキップします。[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) サーバーは、値に関係なく独自の `MCP_TIMEOUT` の待機を維持します。Claude Code v2.1.274 以降が必要です |343| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非対話](/docs/ja/headless)セッションの最初のターンが、まだ接続中の MCP サーバーを待つ時間(ミリ秒)。デフォルトの[最初のターンの待機](/docs/ja/agent-sdk/mcp#connection-timing)の代わりに使用されます。設定すると、待機は保留中のすべてのサーバーが対象になります。[セルフホスト環境](/docs/ja/self-hosted-environments-configuration#connection-timing)では、待機の長さのみが変わります。`0` に設定すると待機をスキップします。[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) のサーバーは、値に関係なく独自の `MCP_TIMEOUT` の待機を維持します。Claude Code v2.1.274 以降が必要です |

344| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP ツール呼び出しのアイドルタイムアウト(ミリ秒)。stdio、HTTP、SSE、WebSocket、または [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) の MCP サーバーがこの時間、応答も進捗通知も送信しない場合、全体の `MCP_TOOL_TIMEOUT` を待たずに、ツール呼び出しはエラーで中止されます。ネットワークサーバーでは 300000(5 分)、stdio サーバーでは 1800000(30 分)というトランスポートごとのデフォルトを上書きします。`0` に設定するとアイドルチェックを無効にします。1000 未満の値は 1 秒に引き上げられ、値は実効的な `MCP_TOOL_TIMEOUT` が上限になります。`.mcp.json` のサーバーごとの `timeout` が 1000 以上の場合、そのサーバーのアイドル時間枠は少なくとも `timeout` の値まで引き上げられます。IDE サーバーや SDK のインプロセスサーバーには適用されません。Claude Code v2.1.187 以降が必要です。v2.1.203 より前は、stdio サーバーはアイドルタイムアウトの対象外でした |344| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP ツール呼び出しのアイドルタイムアウト(ミリ秒)。stdio、HTTP、SSE、WebSocket、または [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai) の MCP サーバーがこの時間、応答も進捗通知も送信しない場合、全体の `MCP_TOOL_TIMEOUT` を待たずに、ツール呼び出しはエラーで中止されます。ネットワークサーバーでは 300000(5 分)、stdio サーバーでは 1800000(30 分)というトランスポートごとのデフォルトを上書きします。`0` に設定するとアイドルチェックを無効にします。1000 未満の値は 1 秒に引き上げられ、値は実効的な `MCP_TOOL_TIMEOUT` が上限になります。`.mcp.json` のサーバーごとの `timeout` が 1000 以上の場合、そのサーバーのアイドル時間枠は少なくとも `timeout` の値まで引き上げられます。IDE サーバーや SDK のインプロセスサーバーには適用されません。Claude Code v2.1.187 以降が必要です。v2.1.203 より前は、stdio サーバーはアイドルタイムアウトの対象外でした |

345| `CLAUDE_CODE_MESSAGING_SOCKET` | ユーザーではなく Claude Code が設定します。[受信箱ソケット](/docs/ja/cross-session-messaging#the-sessions-inbox-socket) をバインドするセッションでは、Claude Code はソケットをバインドするときに、そのソケットのパスをフックと Bash コマンドにエクスポートします。メッセージングをオンにして開始したセッションでは、Claude Code はフックが実行される前にソケットをバインドします。マシン上の他のセッションは、このパスにメッセージを配信します。各セッションは親から継承したソケットではなく独自のソケットをエクスポートし、そこに届いたメッセージはセッションの [受信制御](/docs/ja/cross-session-messaging#control-inbound-messages) を通過します。設定の `env` ブロックではこれを設定できません。Claude Code v2.1.224 以降が必要です |345| `CLAUDE_CODE_MESSAGING_SOCKET` | ユーザーではなく Claude Code が設定します。[受信箱ソケット](/docs/ja/cross-session-messaging#the-sessions-inbox-socket) をバインドするセッションでは、Claude Code はソケットをバインドするときに、そのソケットのパスをフックと Bash コマンドにエクスポートします。メッセージングをオンにして開始したセッションでは、Claude Code はフックが実行される前にソケットをバインドします。マシン上の他のセッションは、このパスにメッセージを配信します。各セッションは親から継承したソケットではなく独自のソケットをエクスポートし、そこに届いたメッセージはセッションの [受信制御](/docs/ja/cross-session-messaging#control-inbound-messages) を通過します。設定の `env` ブロックではこれを設定できません。Claude Code v2.1.224 以降が必要です |

346| `CLAUDE_CODE_MESSAGING_TOKEN` | ユーザーではなく Claude Code が設定します。[受信箱ソケット](/docs/ja/cross-session-messaging#the-sessions-inbox-socket) をバインドするセッションでは、Claude Code は `CLAUDE_CODE_MESSAGING_SOCKET` とともに、このセッションごとのトークンをフックと Bash コマンドにエクスポートします。ソケットに投稿するスクリプトは、最初の行として `{"type":"auth","token":"<token>"}` を送信することで、そのセッションに属していることを証明できます。ネイティブ Windows では、Claude Code はこの行を必須とし、有効な行で始まらない接続を閉じます。Claude Code がトークンを参照するタイミングは、[own-child ルール](/docs/ja/cross-session-messaging#the-sessions-inbox-socket) で定められています。各セッションは独自のトークンをエクスポートし、親セッションから継承したトークンをエクスポートすることはありません。設定の `env` ブロックではこれを設定できません。Claude Code v2.1.228 以降が必要です |346| `CLAUDE_CODE_MESSAGING_TOKEN` | ユーザーではなく Claude Code が設定します。[受信箱ソケット](/docs/ja/cross-session-messaging#the-sessions-inbox-socket) をバインドするセッションでは、Claude Code は `CLAUDE_CODE_MESSAGING_SOCKET` とともに、このセッションごとのトークンをフックと Bash コマンドにエクスポートします。ソケットに投稿するスクリプトは、最初の行として `{"type":"auth","token":"<token>"}` を送信することで、そのセッションに属していることを証明できます。ネイティブ Windows では、Claude Code はこの行を必須とし、有効な行で始まらない接続を閉じます。Claude Code がトークンを参照するタイミングは、[own-child ルール](/docs/ja/cross-session-messaging#the-sessions-inbox-socket) で定められています。各セッションは独自のトークンをエクスポートし、親セッションから継承したトークンをエクスポートすることはありません。設定の `env` ブロックではこれを設定できません。Claude Code v2.1.228 以降が必要です |

errors.md +325 −266

Details

247| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [コマンドラインエラー](#windows-reported-an-error-ebadf) |247| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [コマンドラインエラー](#windows-reported-an-error-ebadf) |

248| `Cannot switch renderers in this session` | [コマンドラインエラー](#cannot-switch-renderers-in-this-session) |248| `Cannot switch renderers in this session` | [コマンドラインエラー](#cannot-switch-renderers-in-this-session) |

249| `Cannot switch renderers while work is running in the background` | [コマンドラインエラー](#cannot-switch-renderers-in-this-session) |249| `Cannot switch renderers while work is running in the background` | [コマンドラインエラー](#cannot-switch-renderers-in-this-session) |

250| `Claude Code couldn't restart` | [コマンドラインエラー](#claude-code-couldnt-restart) |

250| `Couldn't open Claude Desktop` | [コマンドラインエラー](#couldnt-open-claude-desktop) |251| `Couldn't open Claude Desktop` | [コマンドラインエラー](#couldnt-open-claude-desktop) |

251| `Failed to open Claude Desktop. Please try opening it manually.` | [コマンドラインエラー](#couldnt-open-claude-desktop) |252| `Failed to open Claude Desktop. Please try opening it manually.` | [コマンドラインエラー](#couldnt-open-claude-desktop) |

252| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [コマンドラインエラー](#terminal-setup-left-your-zed-keymap-unchanged) |253| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [コマンドラインエラー](#terminal-setup-left-your-zed-keymap-unchanged) |


308| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [ツールエラー](#disk-quota-or-temp-filesystem-is-full) |309| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [ツールエラー](#disk-quota-or-temp-filesystem-is-full) |

309| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [ツールエラー](#disk-quota-or-temp-filesystem-is-full) |310| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [ツールエラー](#disk-quota-or-temp-filesystem-is-full) |

310| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [ツールエラー](#disk-quota-or-temp-filesystem-is-full) |311| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [ツールエラー](#disk-quota-or-temp-filesystem-is-full) |

312| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [ツールエラー](#file-is-not-valid-utf-8) |

311| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [ツールエラー](#the-source-file-is-not-valid-utf-8-text) |313| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [ツールエラー](#the-source-file-is-not-valid-utf-8-text) |

312| `the source file has the replacement character U+FFFD` | [ツールエラー](#the-source-file-is-not-valid-utf-8-text) |314| `the source file has the replacement character U+FFFD` | [ツールエラー](#the-source-file-is-not-valid-utf-8-text) |

313| `Not published: that file is on a network share` | [ツールエラー](#not-published-that-file-is-on-a-network-share) |315| `Not published: that file is on a network share` | [ツールエラー](#not-published-that-file-is-on-a-network-share) |


334| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [バックグラウンドセッションエラー](#session-isnt-responding) |336| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [バックグラウンドセッションエラー](#session-isnt-responding) |

335| `Session <id> was stopped while the respawn was in flight` | [バックグラウンドセッションエラー](#session-was-stopped-while-the-respawn-was-in-flight) |337| `Session <id> was stopped while the respawn was in flight` | [バックグラウンドセッションエラー](#session-was-stopped-while-the-respawn-was-in-flight) |

336| `This session was running agent '<name>', which is no longer available` | [バックグラウンドセッションエラー](#session-agent-no-longer-available) |338| `This session was running agent '<name>', which is no longer available` | [バックグラウンドセッションエラー](#session-agent-no-longer-available) |

339| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [バックグラウンドセッションエラー](#restarted-after-its-next-loop-wakeup-was-due) |

337| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [バックグラウンドセッションエラー](#claude_code_process_wrapper-launcher-errors) |340| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [バックグラウンドセッションエラー](#claude_code_process_wrapper-launcher-errors) |

338| `EUNKNOWN: unknown error, uv_spawn` | [バックグラウンドセッションエラー](#eunknown-when-starting-a-background-session) |341| `EUNKNOWN: unknown error, uv_spawn` | [バックグラウンドセッションエラー](#eunknown-when-starting-a-background-session) |

339| `EACCES: permission denied, posix_spawn` | [バックグラウンドセッションエラー](#eacces-when-starting-a-background-session) |342| `EACCES: permission denied, posix_spawn` | [バックグラウンドセッションエラー](#eacces-when-starting-a-background-session) |


439| :- | :- | :- |442| :- | :- | :- |

440| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ja/env-vars) | 10 | 再試行の回数。v2.1.186 以降では上限は 15 です。v2.1.199 以降では、`CLAUDE_CODE_RETRY_WATCHDOG` によってデフォルトが引き上げられ、上限が撤廃されます。スクリプトで障害をより早く表面化させるには、値を下げてください。 |443| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ja/env-vars) | 10 | 再試行の回数。v2.1.186 以降では上限は 15 です。v2.1.199 以降では、`CLAUDE_CODE_RETRY_WATCHDOG` によってデフォルトが引き上げられ、上限が撤廃されます。スクリプトで障害をより早く表面化させるには、値を下げてください。 |

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

445| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/ja/env-vars) | 未設定 | `CLAUDE_CODE_RETRY_WATCHDOG` が設定されている場合に、各 API リクエストが `429` および `529` エラーの解消を待つのに費やす最大時間。単位はミリ秒です。未設定の場合、待機時間に制限はありません。Claude Code v2.1.295 以降が必要です。 |

442| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/ja/env-vars) | 500 | API が `529` 過負荷エラーで拒否したリクエストの再試行間のバックオフにおける、開始時の遅延 (ミリ秒)。API が容量の上限に達している場合に、再試行をより長い期間に分散させるには、最大 32000 まで値を引き上げてください。`CLAUDE_CODE_RETRY_WATCHDOG` が `1` に設定されている場合、または拒否されたリクエストが [fast mode](/docs/ja/fast-mode#handle-rate-limits) で送信された場合は効果がありません。Claude Code v2.1.292 以降が必要です。 |446| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/ja/env-vars) | 500 | API が `529` 過負荷エラーで拒否したリクエストの再試行間のバックオフにおける、開始時の遅延 (ミリ秒)。API が容量の上限に達している場合に、再試行をより長い期間に分散させるには、最大 32000 まで値を引き上げてください。`CLAUDE_CODE_RETRY_WATCHDOG` が `1` に設定されている場合、または拒否されたリクエストが [fast mode](/docs/ja/fast-mode#handle-rate-limits) で送信された場合は効果がありません。Claude Code v2.1.292 以降が必要です。 |

443| [`API_TIMEOUT_MS`](/docs/ja/env-vars) | 600000 | リクエストごとのタイムアウト (ミリ秒)。低速なネットワークやプロキシを使用する場合は値を引き上げてください。[No response from API](#no-response-from-api) で説明しているように、Claude Code がレスポンスヘッダーを待機する時間の上限にもなります。 |447| [`API_TIMEOUT_MS`](/docs/ja/env-vars) | 600000 | リクエストごとのタイムアウト (ミリ秒)。低速なネットワークやプロキシを使用する場合は値を引き上げてください。[No response from API](#no-response-from-api) で説明しているように、Claude Code がレスポンスヘッダーを待機する時間の上限にもなります。 |

444| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/ja/env-vars) | 未設定 | タイムアウトした[非ストリーミングリクエスト](#streaming-response-ended-before-any-complete-data-was-received)の再送信回数の上限。上限に達すると、リクエストは失敗します。生成にタイムアウトより長い時間がかかる Claude の応答は、再送信のたびに再びタイムアウトするため、より早く失敗させるには `0` などの小さな値を設定してください。非ストリーミングの各試行は、ローカルセッションでは 300 秒後に、`API_TIMEOUT_MS` に正の値を設定している場合はその時間の経過後にタイムアウトします。Claude Code v2.1.285 以降が必要です。 |448| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/ja/env-vars) | 未設定 | タイムアウトした[非ストリーミングリクエスト](#streaming-response-ended-before-any-complete-data-was-received)の再送信回数の上限。上限に達すると、リクエストは失敗します。生成にタイムアウトより長い時間がかかる Claude の応答は、再送信のたびに再びタイムアウトするため、より早く失敗させるには `0` などの小さな値を設定してください。非ストリーミングの各試行は、ローカルセッションでは 300 秒後に、`API_TIMEOUT_MS` に正の値を設定している場合はその時間の経過後にタイムアウトします。Claude Code v2.1.285 以降が必要です。 |


1900 1904 

1901Claude Code は、[管理設定ファイル、MDM ポリシー、またはポリシーヘルパー](/docs/ja/managed-settings) が [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) を `"gateway"` に設定するか、`forceLoginMethod` なしで [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl) を設定する場合、このチェックをスキップします。どちらの設定でも、Claude Code は Anthropic のサインイン方法ではなく **Cloud gateway** 画面でサインインステップを開きます。また、マシン上の管理設定ソースが存在するが読み取れない場合も、Claude Code はチェックをスキップします。そのソースがゲートウェイ設定を保持している可能性があるためです。v2.1.247 より前では、Claude Code はこの設定下でもチェックを実行し、Anthropic のエンドポイントに到達できない場合、このエラーで終了しました。1905Claude Code は、[管理設定ファイル、MDM ポリシー、またはポリシーヘルパー](/docs/ja/managed-settings) が [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) を `"gateway"` に設定するか、`forceLoginMethod` なしで [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl) を設定する場合、このチェックをスキップします。どちらの設定でも、Claude Code は Anthropic のサインイン方法ではなく **Cloud gateway** 画面でサインインステップを開きます。また、マシン上の管理設定ソースが存在するが読み取れない場合も、Claude Code はチェックをスキップします。そのソースがゲートウェイ設定を保持している可能性があるためです。v2.1.247 より前では、Claude Code はこの設定下でもチェックを実行し、Anthropic のエンドポイントに到達できない場合、このエラーで終了しました。

1902 1906 

1907管理設定のないマシンで、自身の `~/.claude/settings.json` が `forceLoginMethod` と `forceLoginGatewayUrl` で [ゲートウェイを指定している](/docs/ja/claude-apps-gateway#set-the-gateway-url-in-user-settings) 場合も、Claude Code はこのチェックをスキップします。v2.1.295 より前では、Claude Code はこの場合にもチェックを実行していました。

1908 

1903**対応方法:**1909**対応方法:**

1904 1910 

1905* メッセージがプロキシ変数を名前で示している場合は、その値が正しいプロキシを指していることを確認し、ネットワークチームにそのプロキシ経由でメッセージ内のホストへの HTTPS 接続を許可するよう依頼してください。[ネットワーク設定](/docs/ja/network-config) を参照してください。1911* メッセージがプロキシ変数を名前で示している場合は、その値が正しいプロキシを指していることを確認し、ネットワークチームにそのプロキシ経由でメッセージ内のホストへの HTTPS 接続を許可するよう依頼してください。[ネットワーク設定](/docs/ja/network-config) を参照してください。


2914* ブロックをトリガーしたターンの前のチェックポイントに戻るには、Esc キーを 2 回押すか、`/rewind` を実行してください。[チェックポイント機能](/docs/ja/checkpointing)を参照してください2920* ブロックをトリガーしたターンの前のチェックポイントに戻るには、Esc キーを 2 回押すか、`/rewind` を実行してください。[チェックポイント機能](/docs/ja/checkpointing)を参照してください

2915 2921 

2916<h2 id="command-line-errors">2922<h2 id="command-line-errors">

2917 コマンドラインのエラー2923 コマンドラインエラー

2918</h2>2924</h2>

2919 2925 

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


2923 `--bg` と `--print` の競合2929 `--bg` と `--print` の競合

2924</h3>2930</h3>

2925 2931 

2926このメッセージには Claude Code v2.1.198 以降が必要です。同じ `claude` の呼び出しで `--bg` と `-p` または `--print` を組み合わせています。`--bg` は後で `claude agents` でアタッチする[バックグラウンドセッション](/docs/ja/agent-view#from-your-shell)を開始しますが、`--print` は[非対話](/docs/ja/headless)で実行され、`claude agents` がアタッチする対話セッションを開始しません。v2.1.198 より前は、この組み合わせによって、アタッチできないバックグラウンドジョブが何も通知されずに作成されていました。2932このメッセージには Claude Code v2.1.198 以降が必要です。同じ `claude` の呼び出しで `--bg` と `-p` または `--print` を組み合わせています。`--bg` は後で `claude agents` からアタッチする[バックグラウンドセッション](/docs/ja/agent-view#from-your-shell)を開始しますが、`--print` は[非対話](/docs/ja/headless)で実行され、`claude agents` がアタッチする対話セッションを開始しません。v2.1.198 より前は、この組み合わせによって、決してアタッチできないバックグラウンドジョブが何も通知されずに作成されていました。

2927 2933 

2928```text theme={null}2934```text theme={null}

2929--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.2935--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.


2931 2937 

2932**対処方法:**2938**対処方法:**

2933 2939 

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

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

2936 2942 

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

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

2939</h3>2945</h3>

2940 2946 

29411 回の `claude` の呼び出しで [`--append-subagent-system-prompt`](/docs/ja/cli-reference#cli-flags) と `--append-subagent-system-prompt-file` を同時に渡したため、`claude` はセッションを開始せずに終了コード 1 で終了します:29471 回の `claude` の呼び出しで [`--append-subagent-system-prompt`](/docs/ja/cli-reference#cli-flags) と `--append-subagent-system-prompt-file` を一緒に渡したため、`claude` はセッションを開始せずに終了コード 1 で終了します:

2942 2948 

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

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

2945```2951```

2946 2952 

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

2948 2954 

2949**対処方法:**2955**対処方法:**

2950 2956 

2951* フラグの一方の形式だけを残し、もう一方を削除します。固定のプロンプトファイルと実行ごとのテキストを組み合わせたい場合は、両方のフラグを渡すのではなく、起動前にテキストをファイルにマージします2957* フラグの一方の形式を残し、もう一方を削除します。固定のプロンプトファイルと実行ごとのテキストを組み合わせるには、両方のフラグを渡すのではなく、起動前にテキストをファイルにマージします

2952 2958 

2953<h3 id="invalid-agents-configuration">2959<h3 id="invalid-agents-configuration">

2954 無効な `--agents` 設定2960 Invalid `--agents` configuration

2955</h3>2961</h3>

2956 2962 

2957`--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 はそのままセッションを開始していました。2963`--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 はそれでもセッションを開始していました。

2958 2964 

2959```text theme={null}2965```text theme={null}

2960Error: Invalid --agents configuration:2966Error: Invalid --agents configuration:

2961<what failed>2967<what failed>

2962```2968```

2963 2969 

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

2965 2971 

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

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


2969 2975 

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

2971 2977 

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

2973 2979 

2974* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code が対話セッションで値をファイルパスとして読み取りました。定義をインライン JSON として渡すか、`-p` を追加してファイルから読み込みます。2980* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code が対話セッションで値をファイルパスとして読み取りました。定義をインラインの JSON として渡すか、`-p` を追加してファイルから読み取ります。

2975* **`Error: --agents file not found: <path>`**: そのパスにファイルが存在しません。`{` で始まらず有効な JSON でもない値はパスとして読み取られるため、シェルによって崩れたインライン JSON もこの形で失敗することがあります。パスまたはクォートを確認して、コマンドを再度実行してください。2981* **`Error: --agents file not found: <path>`**: そのパスにファイルが存在しません。`{` で始まらず有効な JSON でもない値はパスとして読み取られるため、シェルによって崩れたインラインの JSON もこの形で失敗することがあります。パスまたはクォートを確認して、コマンドを再度実行します。

2976 2982 

2977**対処方法:**2983**対処方法:**

2978 2984 

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

2980 2986 

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

2982 `--restricted` セッションからクラウドセッションを作成できない2988 Cloud sessions cannot be created from a `--restricted` session

2983</h3>2989</h3>

2984 2990 

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

2986 2992 

2987```text theme={null}2993```text theme={null}

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


2990 2996 

2991**対処方法:**2997**対処方法:**

2992 2998 

2993* 制限されたセッション内でタスクをローカルに実行します2999* 制限されたセッションでタスクをローカルに実行します

2994* セッションの起動方法を制御できる場合は、`--restricted` を付けずに新しい `claude` セッションを開始し、そこからクラウドセッションを作成します3000* セッションの起動方法を制御できる場合は、`--restricted` なしで新しい `claude` セッションを開始し、そこからクラウドセッションを作成します

2995 3001 

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

2997 3003 

2998<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">3004<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2999 組織のポリシーによりクラウドセッションが無効になっている3005 Cloud sessions are disabled by your organization's policy

3000</h3>3006</h3>

3001 3007 

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


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

3006```3012```

3007 3013 

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

3009 3015 

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

3011 3017 

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

3013 3019 

3014**対処方法:**3020**対処方法:**

3015 3021 

3016* 組織の [Owner](/docs/ja/server-managed-settings#access-control) に、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) の Claude Code 管理設定でクラウドセッションを有効にするよう依頼します3022* 組織の [Owner](/docs/ja/server-managed-settings#access-control) に依頼して、[claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) の Claude Code 管理設定でクラウドセッションを有効にしてもらいます

3017* ポリシーを確認できなかったというメッセージの場合は、ネットワーク接続を確認してから Claude Code を再起動し、再度お試しください3023* メッセージにポリシーを確認できなかったと表示されている場合は、ネットワーク接続を確認してから Claude Code を再起動し、再度試します

3018 3024 

3019<h3 id="the-json-schema-value-is-not-a-valid-json-schema">3025<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

3020 `--json-schema` の値が有効な JSON Schema ではない3026 The `--json-schema` value is not a valid JSON Schema

3021</h3>3027</h3>

3022 3028 

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

3024 3030 

3025```text theme={null}3031```text theme={null}

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

3027```3033```

3028 3034 

30292 つ目のコロンの後のテキストはバリデーターの診断メッセージで、失敗したキーワードまたは場所を示します。`"format": "email"` のように `format` キーワードを使用するスキーマは有効です。Claude Code は `format` をアノテーションとして受け付けますが、強制はしません。30352 つ目のコロンの後のテキストはバリデーターの診断メッセージで、失敗したキーワードまたは場所を示します。`"format": "email"` のように `format` キーワードを使用するスキーマは有効です。Claude Code は `format` をアノテーションとして受け付け、それを強制しません。

3030 3036 

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

3032 3038 

3033**対処方法:**3039**対処方法:**

3034 3040 

3035* 診断メッセージが示すスキーマの部分を修正してから、コマンドを再実行します3041* 診断メッセージが示すスキーマの箇所を修正してから、コマンドを再実行します

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

3037 3043 

3038<h3 id="settings-file-exceeds-the-2mib-limit">3044<h3 id="settings-file-exceeds-the-2mib-limit">

3039 設定ファイルが 2MiB の上限を超えている3045 Settings file exceeds the 2MiB limit

3040</h3>3046</h3>

3041 3047 

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

3043 3049 

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

3045Error: Settings file exceeds the 2MiB limit: /path/to/settings.json3051Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

3046```3052```

3047 3053 

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

3049 3055 

3050**対処方法:**3056**対処方法:**

3051 3057 

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

3053 3059 

3054<h3 id="the-current-directory-no-longer-exists">3060<h3 id="the-current-directory-no-longer-exists">

3055 現在のディレクトリが存在しない3061 The current directory no longer exists

3056</h3>3062</h3>

3057 3063 

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

3059 3065 

3060```text theme={null}3066```text theme={null}

3061The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3067The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

3062error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.3068error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

3063```3069```

3064 3070 

3065どちらの形式でも原因と対処方法は同じです。3071どちらの形式も、原因と修正方法は同じです。

3066 3072 

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

3068 3074 

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

3070 3076 

3071**対処方法:**3077**対処方法:**

3072 3078 

3073* ホームディレクトリやプロジェクトディレクトリなど、存在するディレクトリに移動してから、再度 `claude` を実行します3079* ホームディレクトリやプロジェクトディレクトリなど、存在するディレクトリに移動してから、`claude` を再度実行します

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

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

3076 3082 

3077<h3 id="temp-directory-refused-or-cannot-be-created">3083<h3 id="temp-directory-refused-or-cannot-be-created">

3078 一時ディレクトリが拒否される、または作成できない3084 一時ディレクトリが拒否された、または作成できない

3079</h3>3085</h3>

3080 3086 

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

3082 3088 

3083```text wrap theme={null}3089```text wrap theme={null}

3084ENOSPC: no space left on device, mkdir '/tmp/claude-501'3090ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3092 3098 

3093**対処方法:**3099**対処方法:**

3094 3100 

3095* `ENOSPC` の場合は、一時ディレクトリがあるボリュームのディスク容量を空けます3101* `ENOSPC` の場合は、一時ディレクトリを含むボリュームのディスク容量を空けます

3096* `Refusing to use it` 形式の場合は、リンク先ではなく指定されたエントリ自体を削除して、Claude Code を再度起動します。`owned by uid` 形式の場合、削除できるのは管理者またはそのユーザーのみです3102* `Refusing to use it` の形式の場合は、リンクの参照先ではなく、表示されたエントリ自体を削除して Claude Code を再度開始します。`owned by uid` の形式の場合、削除できるのは管理者またはそのユーザーのみです

3097* `is not readable` の場合は、指定されたディレクトリに対して `chmod 0700` を実行するか、ディレクトリを削除して再度起動します3103* `is not readable` の場合は、表示されたディレクトリに対して `chmod 0700` を実行するか、ディレクトリを削除して再度開始します

3098* いずれの場合も、拒否されたパスには手を付けずに、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を自分が管理するディレクトリに設定して Claude Code を再度起動できます3104* いずれの場合も、拒否されたパスには手を付けずに、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を自分が管理するディレクトリに設定して Claude Code を再度開始できます

3099 3105 

3100<h3 id="directory-couldnt-be-resolved-to-a-real-location">3106<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3101 ディレクトリを実際の場所に解決できない3107 Directory couldn't be resolved to a real location

3102</h3>3108</h3>

3103 3109 

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

3105 3111 

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

3107 3113 

3108```text theme={null}3114```text theme={null}

3109packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3115packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.


3111 3117 

3112**対処方法:**3118**対処方法:**

3113 3119 

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

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

3116 3122 

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

3118 3124 

3119<h3 id="workspace-not-trusted-when-starting-remote-control">3125<h3 id="workspace-not-trusted-when-starting-remote-control">

3120 Remote Control の開始時にワークスペースが信頼されていない3126 Workspace not trusted when starting Remote Control

3121</h3>3127</h3>

3122 3128 

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

3124 3130 

3125```text theme={null}3131```text theme={null}

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

3127```3133```

3128 3134 

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

3130 3136 

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

3132 3138 

3133```text theme={null}3139```text theme={null}

3134Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3140Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3135```3141```

3136 3142 

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

3138 3144 

3139**対処方法:**3145**対処方法:**

3140 3146 

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

3142* ホームディレクトリにいる場合は、プロジェクトディレクトリに移動してそこで Remote Control を開始します3148* ホームディレクトリにいる場合は、プロジェクトディレクトリに移動してそこで Remote Control を開始します

3143 3149 

3144v2.1.284 より前は、ターミナル内であってもコマンドが確認を求めることはありませんでした。3150v2.1.284 より前は、ターミナル内であってもコマンドは確認を求めませんでした。

3145 3151 

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

3147 Remote Control が開始するセッションに引き継がれない3153 Not carried over to the sessions Remote Control starts

3148</h3>3154</h3>

3149 3155 

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

3151 3157 

3152```text theme={null}3158```text theme={null}

3153Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3159Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

3154```3160```

3155 3161 

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

3157 3163 

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

3159 3165 

3160**対処方法:**3166**対処方法:**

3161 3167 

3162* 動詞の前からフラグを削除し、[Remote Control 独自のオプション](/docs/ja/remote-control#start-a-remote-control-session)を動詞の後に渡します。`claude remote-control --help` でオプションの一覧を確認できます3168* 動詞の前からフラグを削除し、[Remote Control 独自のオプション](/docs/ja/remote-control#start-a-remote-control-session)を動詞の後に渡します。`claude remote-control --help` でそれらを一覧表示できます

3163* 拒否されたフラグが `--permission-mode` の場合は、`claude remote-control --permission-mode <mode>` を実行して、Remote Control が開始するセッションの権限モードを設定します3169* 拒否されたフラグが `--permission-mode` の場合は、`claude remote-control --permission-mode <mode>` を実行して、Remote Control が開始するセッションの権限モードを設定します

3164 3170 

3165v2.1.248 より前は、グローバルフラグが先に来ると `claude remote-control` は独自のフラグを受け付けず、コマンドは `unknown option` エラーで失敗していました。3171v2.1.248 より前は、グローバルフラグが先にある場合、`claude remote-control` は独自のフラグを受け付けず、コマンドは `unknown option` エラーで失敗していました。

3166 3172 

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

3168 claude import がこのビルドではまだ利用できない3174 claude import is not yet available in this build

3169</h3>3175</h3>

3170 3176 

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

3172 3178 

3173```text theme={null}3179```text theme={null}

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


3176 3182 

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

3178 3184 

3179* インストール後にセッションを開始していないため、Claude Code がまだフラグを取得していません。機能が利用可能な場合でも、最初の `claude import` でこのメッセージが表示されることがあります。3185* インストール後にまだセッションを開始していないため、Claude Code がまだフラグを取得していません。機能が利用可能な場合でも、最初の `claude import` でこのメッセージが出力されることがあります。

3180* Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway#availability-and-limitations)を通じて Claude Code を使用しています。これらのセッションでは Claude Code は機能フラグを取得しないため、`claude import` は利用できないままです。3186* Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、Claude Platform on AWS、または [Claude apps ゲートウェイ](/docs/ja/claude-apps-gateway#availability-and-limitations)を通じて Claude Code を使用しています。これらのセッションでは Claude Code は機能フラグを取得しないため、`claude import` は利用できないままです。

3181* 機能フラグの取得をオフにする `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK`、または [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) を設定しているため、`claude import` は利用できないままです。3187* 機能フラグの取得をオフにする `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK`、または [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) を設定しているため、`claude import` は利用できないままです。

3182 3188 

3183**対処方法:**3189**対処方法:**

3184 3190 

3185* 新規インストールの場合は、`claude` を起動してセッションが読み込まれるのを待ち、終了してから再度 `claude import` を実行します3191* 新規インストールの場合は、`claude` を開始してセッションが読み込まれるのを待ち、終了してから `claude import` を再度実行します

3186* 機能フラグの取得がオフのままの場合は、設定を自分で行います。[`claude mcp add`](/docs/ja/mcp#installing-mcp-servers) で MCP サーバーを追加し、引き継ぎたい [`CLAUDE.md` ファイル](/docs/ja/memory#how-claude-md-files-load)、[スキルとコマンド](/docs/ja/skills#where-skills-live)、[サブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)を作成します。メッセージには `~/.claude/settings.json` も示されています。`claude import` が引き継ぐ設定のうち、このファイルに含まれるのは[権限モード](/docs/ja/settings-reference#permission-settings)のみで、Claude Code はこのファイルから MCP サーバーを読み込みません。3192* 機能フラグの取得がオフのままの環境では、設定を自分で行います。[`claude mcp add`](/docs/ja/mcp#installing-mcp-servers) で MCP サーバーを追加し、引き継ぎたい [`CLAUDE.md` ファイル](/docs/ja/memory#how-claude-md-files-load)、[スキルとコマンド](/docs/ja/skills#where-skills-live)、[サブエージェント](/docs/ja/sub-agents#choose-the-subagent-scope)を作成します。メッセージには `~/.claude/settings.json` も示されています。`claude import` が引き継ぐ設定のうち、このファイルが保持するのは[権限モード](/docs/ja/settings-reference#permission-settings)のみです。Claude Code はこのファイルから MCP サーバーを読み取りません。

3187 3193 

3188<h3 id="could-not-read-claude-code-config">3194<h3 id="could-not-read-claude-code-config">

3189 Claude Code の設定を読み取れない3195 Could not read Claude Code config

3190</h3>3196</h3>

3191 3197 

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

3193 3199 

3194```text theme={null}3200```text theme={null}

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


3197 3203 

3198**対処方法:**3204**対処方法:**

3199 3205 

3200* 引数なしで `claude` を実行します。Claude Code は無効なファイルを検出し、リセットを提案します。その後、再度 `claude import` を実行します。3206* 引数なしで `claude` を実行します。Claude Code は無効なファイルを検出し、リセットを提案します。その後、`claude import` を再度実行します。

3201* 手動で加えた編集を保持したい場合は、代わりにエディターで `~/.claude.json` の JSON 構文を修正してから、`claude import` を再実行します3207* 手動で行った編集を残したい場合は、代わりにエディターで `~/.claude.json` の JSON 構文を修正してから、`claude import` を再実行します

3202 3208 

3203<h3 id="could-not-import-a-server-from-claude-desktop">3209<h3 id="could-not-import-a-server-from-claude-desktop">

3204 Claude Desktop からサーバーをインポートできない3210 Could not import a server from Claude Desktop

3205</h3>3211</h3>

3206 3212 

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

3208 3214 

3209```text theme={null}3215```text theme={null}

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

3211```3217```

3212 3218 

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

3214 3220 

3215**対処方法:**3221**対処方法:**

3216 3222 

3217* `claude_desktop_config.json` でサーバー名を英字、数字、ハイフン、アンダースコアのみを使用する名前に変更してから、再度 `claude mcp add-from-claude-desktop` を実行します3223* `claude_desktop_config.json` でサーバー名を英字、数字、ハイフン、アンダースコアのみを使用する名前に変更してから、`claude mcp add-from-claude-desktop` を再度実行します

3218* 有効な名前で `claude mcp add` または `claude mcp add-json` を使用して、そのサーバーを直接追加します。[Claude Desktop から MCP サーバーをインポートする](/docs/ja/mcp#import-mcp-servers-from-claude-desktop)を参照してください。3224* 有効な名前で `claude mcp add` または `claude mcp add-json` を使用してそのサーバーを直接追加します。[Claude Desktop から MCP サーバーをインポートする](/docs/ja/mcp#import-mcp-servers-from-claude-desktop)を参照してください。

3219 3225 

3220<h3 id="cannot-add-mcp-server-to-the-managed-scope">3226<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3221 MCP サーバーを managed スコープに追加できない3227 Cannot add MCP server to the managed scope

3222</h3>3228</h3>

3223 3229 

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

3225 3231 

3226```text theme={null}3232```text theme={null}

3227Cannot add MCP server to scope: managed3233Cannot add MCP server to scope: managed


3233* 組織内のすべてのユーザーにサーバーを提供するには、展開する管理設定の [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) にサーバーを追加します3239* 組織内のすべてのユーザーにサーバーを提供するには、展開する管理設定の [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) にサーバーを追加します

3234 3240 

3235<h3 id="cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers">3241<h3 id="cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers">

3236 管理設定がプラグインのサーバーのみを許可している場合に MCP サーバーを追加できない3242 Cannot add MCP server when managed settings allow only plugin servers

3237</h3>3243</h3>

3238 3244 

3239組織の管理設定で [`strictPluginOnlyCustomization`](/docs/ja/settings-reference#strictpluginonlycustomization) が `true` または `mcp` を含むリストに設定されている状態で、`claude mcp add` または `claude mcp add-json` を実行しました。この設定では、Claude Code は `~/.claude.json` や `.mcp.json` から MCP サーバーを読み込まないため、コマンドは読み込まれることのないサーバーを保存せずに終了コード 1 で終了します:3245組織の管理設定で [`strictPluginOnlyCustomization`](/docs/ja/settings-reference#strictpluginonlycustomization) が `true` または `mcp` を含むリストに設定されている状態で、`claude mcp add` または `claude mcp add-json` を実行しました。この設定では、Claude Code は `~/.claude.json` や `.mcp.json` から MCP サーバーを読み込まないため、コマンドは決して読み込まれないサーバーを保存する代わりに終了コード 1 で終了します:

3240 3246 

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

3242Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.3248Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.

3243```3249```

3244 3250 

3245`claude mcp add-from-claude-desktop` は、選択した各サーバーをインポートされなかったものとして報告し、このメッセージを理由として示します。[`/import`](/docs/ja/commands#all-commands) は追加しようとした MCP サーバーごとにこのメッセージを報告し、検出した他の項目は引き続きインポートします。3251`claude mcp add-from-claude-desktop` は、選択した各サーバーについて、このメッセージを理由としてインポートされなかったことを報告します。[`/import`](/docs/ja/commands#all-commands) は、追加しようとした MCP サーバーごとにこのメッセージを報告し、検出した他の項目のインポートは続行します。

3246 3252 

3247v2.1.284 より前は、これらのコマンドはサーバーを保存して成功を報告していましたが、サーバーは読み込まれませんでした。3253v2.1.284 より前は、これらのコマンドはサーバーを保存して成功を報告していましたが、サーバーは決して読み込まれませんでした。

3248 3254 

3249**対処方法:**3255**対処方法:**

3250 3256 

3251* サーバーを提供する[プラグイン](/docs/ja/plugins/install)をインストールします3257* サーバーを提供する[プラグイン](/docs/ja/plugins/install)をインストールします

3252* 管理者に、サーバーを[プラグイン](/docs/ja/plugins/org)で配布するか、リモートの HTTP または SSE サーバーであれば [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) を通じて提供するよう依頼します3258* 管理者に依頼して、サーバーを[プラグイン](/docs/ja/plugins/org)で配布してもらうか、リモートの HTTP または SSE サーバーであれば [`managedMcpServers`](/docs/ja/settings-reference#managedmcpservers) を通じて提供してもらいます

3253 3259 

3254<h3 id="cant-read-mcp-json">3260<h3 id="cant-read-mcp-json">

3255 .mcp.json を読み取れない3261 Can't read .mcp.json

3256</h3>3262</h3>

3257 3263 

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

3259 3265 

3260```text theme={null}3266```text theme={null}

3261Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3267Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3262```3268```

3263 3269 

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

3265 3271 

3266**対処方法:**3272**対処方法:**

3267 3273 

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

3269 3275 

3270<h3 id="mcp-server-was-not-saved-or-removed">3276<h3 id="mcp-server-was-not-saved-or-removed">

3271 MCP サーバーが保存または削除されなかった3277 MCP server was not saved or removed

3272</h3>3278</h3>

3273 3279 

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

3275 3281 

3276```text theme={null}3282```text theme={null}

3277MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3283MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3278```3284```

3279 3285 

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

3281 3287 

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

3283 3289 

3284**対処方法:**3290**対処方法:**

3285 3291 

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

3287 3293 

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

3289 MCP サーバーが保存または削除されていない可能性がある3295 MCP server may not have been saved or removed

3290</h3>3296</h3>

3291 3297 

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

3293 3299 

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

3295MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3301MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3296```3302```

3297 3303 

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

3299 3305 

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

3301 3307 

3302**対処方法:**3308**対処方法:**

3303 3309 

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

3305* 追加後にサーバーが見つからない場合、または削除後もまだ一覧に表示される場合は、同じ追加または削除コマンドを再度実行します。3311* 追加の後にサーバーが存在しない場合、または削除の後にまだ一覧に表示される場合は、同じ追加または削除のコマンドを再度実行します。

3306 3312 

3307<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3313<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3308 サーバーが Anthropic でホストされておりローカル OAuth をサポートしていない3314 Server is Anthropic-hosted and doesn't support local OAuth

3309</h3>3315</h3>

3310 3316 

3311サードパーティの ID プロバイダーを通じて認証を行う、Anthropic がホストするコネクタのホストを URL が指している MCP サーバーに対して、サインインを開始しました。これらのホストには `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com`、`gcal.mcp.claude.com` が含まれます。[これらのサインインは claude.ai を通じてのみ機能する](/docs/ja/mcp#use-mcp-servers-from-claude-ai)ため、Claude Code は `/mcp` パネルと `claude mcp login` のどちらからも、これらのホストに対するローカル OAuth フローの開始を拒否します。3317サードパーティの ID プロバイダーを通じて認証する Anthropic ホストのコネクタホストを URL が指している MCP サーバーに対して、サインインを開始しました。これらのホストには、`microsoft365.mcp.claude.com`、`gmail.mcp.claude.com`、`gcal.mcp.claude.com` が含まれます。[これらのサインインは claude.ai を通じてのみ機能する](/docs/ja/mcp#use-mcp-servers-from-claude-ai)ため、Claude Code は `/mcp` パネルと `claude mcp login` のどちらからも、これらのホストに対するローカルの OAuth フローの開始を拒否します。

3312 3318 

3313```text theme={null}3319```text theme={null}

3314"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.3320"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.


3316 3322 

3317**対処方法:**3323**対処方法:**

3318 3324 

3319* `claude mcp remove <name>` で自分のエントリを削除し、同じ URL の claude.ai コネクタが隠れないようにします3325* `claude mcp remove <name>` でエントリを削除し、同じ URL の claude.ai コネクタを隠さないようにします

3320* 削除した後、Claude Code で使用しているアカウントでサインインした状態で、[claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサービスを接続します。接続すると、有効な認証方法が claude.ai のサブスクリプションログインである場合、[コネクタが Claude Code に自動的に表示されます](/docs/ja/mcp#use-mcp-servers-from-claude-ai)3326* 削除した後、Claude Code で使用しているアカウントにサインインした状態で、[claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサービスを接続します。接続されると、有効な認証方法が claude.ai のサブスクリプションログインであれば、[コネクタは Claude Code に自動的に表示されます](/docs/ja/mcp#use-mcp-servers-from-claude-ai)

3321 3327 

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

3323 設定された headersHelper が生成した Authorization ヘッダーをサーバーが拒否した3329 Server rejected the Authorization header minted by the configured headersHelper

3324</h3>3330</h3>

3325 3331 

3326[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) が `Authorization` ヘッダーを提供する MCP サーバーが、接続に対して HTTP 401 または 403 で応答したため、Claude Code は接続を失敗として報告します。ヘルパーが `Authorization` ヘッダーを提供するため、Claude Code はそのサーバーに対して [OAuth にフォールバックしません](/docs/ja/mcp#authenticate-with-remote-mcp-servers):3332[`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) が `Authorization` ヘッダーを提供する MCP サーバーが、HTTP 401 または 403 で接続に応答したため、Claude Code は接続を失敗として報告します。ヘルパーが `Authorization` ヘッダーを提供するため、Claude Code はそのサーバーについて [OAuth にフォールバックしません](/docs/ja/mcp#authenticate-with-remote-mcp-servers):

3327 3333 

3328```text theme={null}3334```text theme={null}

3329Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3335Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3330```3336```

3331 3337 

3332Claude Code は接続を試みるたびにヘルパーを再実行するため、トークンのローテーションの競合などの一時的な拒否の後に再試行すると、新しい認証情報で成功する場合があります。3338Claude Code は接続を試みるたびにヘルパーを再実行するため、トークンのローテーションの競合などの一時的な拒否の後に再試行すると、新しい認証情報で成功することがあります。

3333 3339 

3334**対処方法:**3340**対処方法:**

3335 3341 

3336* Claude Code が実行するのと同じ方法で、`headersHelper` コマンドを自分で実行します。[Claude Code が実行するディレクトリ](/docs/ja/mcp#where-the-helper-runs)から、[Claude Code が設定する環境変数](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication)を使用し、プロジェクトの `.mcp.json`、プラグイン、またはプロジェクトのエージェントファイルからのサーバーの場合は [Claude Code が削除する認証情報の変数](/docs/ja/mcp#which-variables-a-helper-can-read)なしで実行します。サーバーのエンドポイントが受け付ける `Authorization` の値が出力されることを確認します3342* Claude Code が実行するのと同じ方法で `headersHelper` コマンドを自分で実行します。つまり、[Claude Code がヘルパーを実行するディレクトリ](/docs/ja/mcp#where-the-helper-runs)から、[Claude Code がヘルパーに設定する環境変数](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication)を使用し、プロジェクトの `.mcp.json`、プラグイン、またはプロジェクトのエージェントファイルからのサーバーについては [Claude Code が削除する認証情報の変数](/docs/ja/mcp#which-variables-a-helper-can-read)を除いて実行します。サーバーのエンドポイントが受け付ける `Authorization` の値が出力されることを確認します

3337* ヘルパーまたはその認証情報のソースを修正した後、`/mcp` でサーバーを選択し、**Reconnect** を選択します3343* ヘルパーまたはその認証情報のソースを修正した後、`/mcp` でサーバーを選択し、**Reconnect** を選択します

3338 3344 

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

3340 3346 

3341<h3 id="mcp-permission-prompt-tool-not-found">3347<h3 id="mcp-permission-prompt-tool-not-found">

3342 MCP の権限プロンプトツールが見つからない3348 MCP permission prompt tool not found

3343</h3>3349</h3>

3344 3350 

3345実行で最初に権限の判断が必要になった時点で、[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) に渡したツールが接続済みの MCP ツールの中にありませんでした。サーバーが一度も接続しなかったか、接続済みのサーバーがその名前のツールを公開していないためです。Claude Code はプロンプトを送信するため、[非対話](/docs/ja/headless)の実行は最初のツール呼び出しでこのエラーと終了コード 1 で終了し、リクエストが行われたにもかかわらず回答は生成されません。最初のプロンプトの前に、Claude Code は [`MCP_TIMEOUT`](/docs/ja/env-vars) で設定されるサーバーごとの接続タイムアウト(30 秒)まで、そのサーバーの接続を待機します。v2.1.206 より前は、起動時にサーバーの接続完了を待たなかったため、起動が遅いものの正常なサーバーでもこのエラーが発生していました。3351[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) に渡したツールが、実行で最初に権限の判断が必要になった時点で、接続済みの MCP ツールの中にありませんでした。原因は、そのサーバーが一度も接続しなかったか、接続済みのサーバーがその名前のツールを公開していないかのいずれかです。Claude Code はそれでもプロンプトを送信します。[非対話](/docs/ja/headless)の実行は最初のツール呼び出しでこのエラーと終了コード 1 で終了するため、リクエストは行われたにもかかわらず回答は生成されません。最初のプロンプトの前に、Claude Code は [`MCP_TIMEOUT`](/docs/ja/env-vars) で設定されるサーバーごとの接続タイムアウト(30 秒)まで、そのサーバーの接続を待ちます。v2.1.206 より前は、起動時にサーバーの接続完了を待たなかったため、起動が遅いものの正常なサーバーでもこのエラーが発生していました。

3346 3352 

3347```text theme={null}3353```text theme={null}

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


3353**対処方法:**3359**対処方法:**

3354 3360 

3355* サーバーが起動して接続を維持していることを確認します。同じディレクトリで `claude mcp list` を実行し、サーバーが接続済みとして表示されることを確認します3361* サーバーが起動して接続を維持していることを確認します。同じディレクトリで `claude mcp list` を実行し、サーバーが接続済みとして表示されることを確認します

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

3357* サーバーの起動に 30 秒以上かかる場合は、[`MCP_TIMEOUT`](/docs/ja/env-vars) の値を増やします3363* サーバーの起動に 30 秒以上かかる場合は、[`MCP_TIMEOUT`](/docs/ja/env-vars) の値を増やします

3358 3364 

3359<h3 id="oauth-callback-port-is-already-in-use">3365<h3 id="oauth-callback-port-is-already-in-use">

3360 OAuth コールバックポートがすでに使用されている3366 OAuth callback port is already in use

3361</h3>3367</h3>

3362 3368 

3363OAuth でリモート MCP サーバーにサインインすると、Claude Code はサインインのコールバックを受け取るためのローカルリスナーを開始します。そのリスナーが必要とするポートを別のプロセスが保持している場合、サインインはこのメッセージで失敗します。これは主に、[`MCP_OAUTH_CALLBACK_PORT`](/docs/ja/env-vars) 変数または `--callback-port` で[固定のコールバックポート](/docs/ja/mcp#use-a-fixed-oauth-callback-port)を設定している場合に発生します。固定ポートがない場合、Claude Code は利用可能なポートを選択するためです。3369OAuth でリモートの MCP サーバーにサインインすると、Claude Code はサインインのコールバックを受け取るためにローカルのリスナーを開始します。そのリスナーが必要とするポートを別のプロセスが保持している場合、サインインはこのメッセージで失敗します。これは主に、[`MCP_OAUTH_CALLBACK_PORT`](/docs/ja/env-vars) 変数または `--callback-port` で[固定のコールバックポート](/docs/ja/mcp#use-a-fixed-oauth-callback-port)を設定している場合に発生します。固定ポートがない場合、Claude Code は利用可能なポートを選択するためです。

3364 3370 

3365```text theme={null}3371```text theme={null}

3366OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3372OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

3367```3373```

3368 3374 

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

3370 3376 

3371**対処方法:**3377**対処方法:**

3372 3378 

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

3374* 別のプログラムがそのポートを常に必要とする場合は、サーバーに別のリダイレクト URI を登録し、使用している方法に応じて `MCP_OAUTH_CALLBACK_PORT` または `--callback-port` でそのポートを設定します3380* 別のプログラムがそのポートを恒久的に必要とする場合は、別のリダイレクト URI をサーバーに登録し、使用している方法に応じて `MCP_OAUTH_CALLBACK_PORT` または `--callback-port` でそのポートを設定します

3375* その後、たとえば `/mcp` でサーバーを選択して、サインインを再度開始します3381* その後、たとえば `/mcp` でサーバーを選択して、サインインを再度開始します

3376 3382 

3377<h3 id="no-available-ports-for-oauth-redirect">3383<h3 id="no-available-ports-for-oauth-redirect">

3378 OAuth リダイレクトに利用可能なポートがない3384 No available ports for OAuth redirect

3379</h3>3385</h3>

3380 3386 

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

3382 3388 

3383```text theme={null}3389```text theme={null}

3384No available ports for OAuth redirect3390No available ports for OAuth redirect

3385```3391```

3386 3392 

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

3388 3394 

3389**対処方法:**3395**対処方法:**

3390 3396 

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

3392* その後、たとえば `/mcp` でサーバーを選択して、サインインを再度開始します3398* その後、たとえば `/mcp` でサーバーを選択して、サインインを再度開始します

3393 3399 

3394<h3 id="security-review-fails-without-origin-head">3400<h3 id="security-review-fails-without-origin-head">

3395 origin/HEAD がないと /security-review が失敗する3401 origin/HEAD がないと /security-review が失敗する

3396</h3>3402</h3>

3397 3403 

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

3399 3405 

3400```text theme={null}3406```text theme={null}

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


3404'git <command> [<revision>...] -- [<file>...]'3410'git <command> [<revision>...] -- [<file>...]'

3405```3411```

3406 3412 

3407メッセージには、代わりに `git log` や別の `git diff` が引用されることがあります。Git が `origin/HEAD` を作成するのは、リモートがデフォルトブランチを公開しており、フェッチの refspec がそれを含む場合のみです。コミットのあるリモートを完全に `git clone` した場合はこれに該当します。次の構成では ref が存在しません:3413メッセージには、代わりに `git log` や別の `git diff` が引用される場合があります。Git が `origin/HEAD` を作成するのは、リモートがデフォルトブランチを通知し、かつ fetch の refspec がそれをカバーしている場合のみです。コミットのあるリモートを完全に `git clone` した場合はこれに該当します。次の構成では ref が存在しません:

3408 3414 

3409* refspec が狭すぎるフェッチを行う、シングルブランチまたは CI のチェックアウト3415* refspec の範囲が狭すぎる fetch を行う、シングルブランチまたは CI のチェックアウト

3410* サーバー側の HEAD が、誰もプッシュしていないブランチを指しているリモート3416* サーバー側の HEAD が、誰もプッシュしていないブランチを指しているリモート

3411* `origin` リモートがない、または一度もフェッチしていないリポジトリ3417* `origin` リモートがないリポジトリ、または一度も fetch していないリポジトリ

3412 3418 

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

3414 3420 

3415* `Shell command permission check failed for pattern "..."`: コマンドの権限チェックで許可されませんでした。[挿入されたコマンドの権限チェック](/docs/ja/skills#permission-checks-on-injected-commands)では、各権限モードでどの結果が中止につながるか、および `allowed-tools` でコマンドを事前承認する方法について説明しています3421* `Shell command permission check failed for pattern "..."`: コマンドの権限チェックで許可されませんでした。[挿入されたコマンドに対する権限チェック](/docs/ja/skills#permission-checks-on-injected-commands)では、各権限モードでどの結果が中止につながるか、および `allowed-tools` でコマンドを事前承認する方法について説明しています

3416* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: スキルのフロントマターが、bash のないマシンで bash を要求しています。Git for Windows をインストールするか、フロントマターを `shell: powershell` に変更します。[挿入されたコマンドの実行方法](/docs/ja/skills#how-injected-commands-run)を参照してください3422* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: スキルのフロントマターが、bash がないマシンで bash を要求しています。Git for Windows をインストールするか、フロントマターを `shell: powershell` に変更します。[挿入されたコマンドの実行方法](/docs/ja/skills#how-injected-commands-run)を参照してください

3417 3423 

3418**対処方法:**3424**対処方法:**

3419 3425 

3420* リモートのデフォルトブランチを指定して ref を作成します: `git remote set-head origin <default-branch>`。これは、ローカルの追跡 ref `origin/<default-branch>` が存在する場合に機能します。シングルブランチのクローンのように存在しない場合は、まずブランチをフェッチします。`git remote set-branches --add origin <branch>` を実行し、次に `git fetch origin` を実行してから、set-head コマンドを再実行します。その後、`/security-review` を再実行します。3426* リモートのデフォルトブランチを指定して ref を作成します: `git remote set-head origin <default-branch>`。これは、ローカルの追跡 ref `origin/<default-branch>` が存在する場合に機能します。シングルブランチのクローンのように存在しない場合は、まずブランチを fetch します。`git remote set-branches --add origin <branch>` を実行し、次に `git fetch origin` を実行してから、set-head コマンドを再実行します。その後、`/security-review` を再実行します。

3421* ブランチ名を指定したくない場合は、`git fetch origin` を実行してから `git remote set-head origin --auto` を実行します。これはリモートにどのブランチがデフォルトかを問い合わせます。リモートが空である、またはその HEAD が誰もプッシュしていないブランチを指しているためにデフォルトブランチを公開していない場合は、`error: Cannot determine remote HEAD` で失敗します。その場合はブランチ名を明示的に指定してください。クローンがそのブランチをフェッチしない場合は `error: Not a valid ref` で失敗します。先に上記のように refspec を広げてください。3427* ブランチを指定したくない場合は、`git fetch origin` を実行してから `git remote set-head origin --auto` を実行します。これにより、どのブランチがデフォルトかをリモートに問い合わせます。リモートが空であるか、その HEAD が誰もプッシュしていないブランチを指しているためにリモートがデフォルトブランチを通知しない場合、`error: Cannot determine remote HEAD` で失敗します。その場合は、ブランチを明示的に指定します。クローンがそのブランチを fetch しない場合は `error: Not a valid ref` で失敗します。その場合は、まず上記のように refspec を広げます。

3422* リポジトリにリモートがない場合は、`git remote add origin <url>` でリモートを追加し、ref を作成する前にフェッチします。リモートが空の場合は、まず `git push -u origin HEAD` でブランチをプッシュし、set-head コマンドでそのブランチ名を指定します。その場合、`origin/HEAD` はプッシュしたばかりのブランチを指すため、ブランチがそこから分岐するまで `/security-review` には空の差分が表示されます。3428* リポジトリにリモートがない場合は、`git remote add origin <url>` でリモートを追加し、ref を作成する前に fetch します。リモートが空の場合は、まず `git push -u origin HEAD` でブランチをプッシュし、set-head コマンドでそのブランチを指定します。すると `origin/HEAD` はプッシュしたばかりのブランチを指すため、ブランチが分岐するまで `/security-review` には空の差分が表示されます。

3423 3429 

3424<h3 id="input-must-be-provided-when-using-print">3430<h3 id="input-must-be-provided-when-using-print">

3425 `--print` の使用時には入力を指定する必要がある3431 Input must be provided when using `--print`

3426</h3>3432</h3>

3427 3433 

3428引数なしの `claude` は、対話 UI を開始するために stdout がターミナルである必要があります。stdout がリダイレクトされている場合や、PowerShell ISE や一部の IDE の出力ペインのようにコンソールが実際のターミナルではない場合、`claude` は代わりに[非対話](/docs/ja/headless)で実行されます。これは `claude -p` と同じモードで、プロンプトが必要です。そのため、フラグを渡していなくてもメッセージには `--print` が示されます。プロンプトを指定せず stdin にも何もパイプせずに `-p`/`--print` を渡した場合も、どこでも同じエラーが発生します。3434引数なしの `claude` が対話 UI を開始するには、stdout がターミナルである必要があります。stdout がリダイレクトされている場合、またはコンソールが実際のターミナルではない場合(PowerShell ISE や一部の IDE の出力ペインなど)、`claude` は代わりに[非対話](/docs/ja/headless)で実行されます。これは `claude -p` と同じモードで、プロンプトが必要です。そのため、フラグを渡していなくてもメッセージには `--print` が示されます。プロンプトなしで、stdin に何もパイプせずに `-p`/`--print` を渡した場合も、どこでも同じエラーが発生します。

3429 3435 

3430```text theme={null}3436```text theme={null}

3431Error: Input must be provided either through stdin or as a prompt argument when using --print3437Error: Input must be provided either through stdin or as a prompt argument when using --print


3434**対処方法:**3440**対処方法:**

3435 3441 

3436* 対話的に使用する場合は、実際のターミナルで `claude` を実行します。ISE ではなく Windows Terminal または PowerShell コンソールを、出力ペインではなく IDE の統合ターミナルを使用します3442* 対話的に使用する場合は、実際のターミナルで `claude` を実行します。ISE ではなく Windows Terminal または PowerShell コンソールを、出力ペインではなく IDE の統合ターミナルを使用します

3437* 1 回限りの使用の場合は、プロンプトを渡します: `claude -p "your question"`、または `echo "your question" | claude -p` でパイプします3443* 1 回限りの使用の場合は、プロンプトを渡します: `claude -p "your question"`、またはパイプで `echo "your question" | claude -p` とします

3438 3444 

3439<h3 id="claude-code-cant-read-the-keyboard-here">3445<h3 id="claude-code-cant-read-the-keyboard-here">

3440 Claude Code がここではキーボードを読み取れない3446 Claude Code can't read the keyboard here

3441</h3>3447</h3>

3442 3448 

3443[`-p`](/docs/ja/headless) を付けずに `claude` を実行したため[対話セッション](/docs/ja/interactive-mode)が開始されますが、その標準入力がターミナルではありません。何かがパイプまたはリダイレクトしているか、`claude` を起動したプログラムが独自の入力ストリームを提供しています。3449[`-p`](/docs/ja/headless) なしで `claude` を実行したため[対話セッション](/docs/ja/interactive-mode)が開始されますが、その標準入力がターミナルではありません。何かがパイプまたはリダイレクトしているか、`claude` を起動したプログラムが独自の入力ストリームを提供しています。

3444 3450 

3445対話セッションにはキー入力を読み取るためのターミナルが必要で、ターミナルがない場合の Claude Code の動作はプラットフォームによって異なります:3451対話セッションはキー入力を読み取るためのターミナルを必要とし、ターミナルがない場合の Claude Code の動作はプラットフォームによって異なります:

3446 3452 

3447* **Windows**: Claude Code はインターフェースを開始せずに、メッセージを stderr に出力して終了コード 1 で終了します3453* **Windows**: Claude Code はメッセージを stderr に出力し、インターフェースを開始せずに終了コード 1 で終了します

3448* **macOS と Linux**: Claude Code は `/dev/tty` からキー入力を読み取ってセッションを開始し、パイプされたテキストがあれば最初のプロンプトとして使用します。`/dev/tty` を開けない場合にメッセージが表示され、その 1 行目には Windows の文言の代わりに `/dev/tty` が示されます。3454* **macOS と Linux**: Claude Code は `/dev/tty` からキー入力を読み取り、パイプされたテキストがあれば最初のプロンプトとしてセッションを開始します。`/dev/tty` を開けない場合にメッセージが表示され、その 1 行目には Windows の文言の代わりに `/dev/tty` が示されます。

3449 3455 

3450Windows では、メッセージは次のようになります:3456Windows では、メッセージは次のとおりです:

3451 3457 

3452```text theme={null}3458```text theme={null}

3453Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.3459Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.


3457 3463 

3458**対処方法:**3464**対処方法:**

3459 3465 

3460* 対話的に作業するには、入力をパイプまたはリダイレクトせずに、ターミナルで直接 `claude` を実行します3466* 対話的に作業するには、入力をパイプやリダイレクトせずに、ターミナルで直接 `claude` を実行します

3461* スクリプトからなど、対話インターフェースなしで応答を得るには、`-p` を追加し、`claude -p "your question"` や `echo "your question" | claude -p` のように、プロンプトを引数または stdin で渡します。`--continue` と `--resume <session-id>` でも同じように機能します。3467* スクリプトからなど、対話インターフェースなしで応答を得るには、`-p` を追加し、`claude -p "your question"` や `echo "your question" | claude -p` のように、プロンプトを引数または stdin で渡します。`--continue` や `--resume <session-id>` でも同様に機能します。

3462 3468 

3463v2.1.287 より前は、Claude Code はこのメッセージを出力する代わりにインターフェースを開始し、画面に何も表示しないか、`Raw mode is not supported` を含むエラーで失敗していました。3469v2.1.287 より前は、Claude Code はこのメッセージを出力する代わりにインターフェースを開始し、画面に何も表示しないか、`Raw mode is not supported` を含むエラーで失敗していました。

3464 3470 

3465代わりに `claude install` の実行中に `Raw mode is not supported` が表示される場合は、[インストール中の `Raw mode is not supported`](/docs/ja/troubleshoot-install#raw-mode-is-not-supported-during-install) を参照してください。3471代わりに `claude install` の実行中に `Raw mode is not supported` が表示される場合は、[インストール中の `Raw mode is not supported`](/docs/ja/troubleshoot-install#raw-mode-is-not-supported-during-install)を参照してください。

3466 3472 

3467<h3 id="input-contained-only-whitespace">3473<h3 id="input-contained-only-whitespace">

3468 入力が空白文字のみだった3474 Input contained only whitespace

3469</h3>3475</h3>

3470 3476 

3471[非対話モード](/docs/ja/headless)では、Claude Code はスペース、タブ、改行のみで構成されたプロンプトを送信せずに拒否します。API は表示可能なテキストのないメッセージを拒否するためです。表示されるメッセージは、空のプロンプトがどこから来たかによって異なります:3477[非対話モード](/docs/ja/headless)では、API は目に見えるテキストのないメッセージを拒否するため、Claude Code はスペース、タブ、改行のみで構成されたプロンプトを送信せずに拒否します。表示されるメッセージは、空白のプロンプトがどこから来たかによって異なります:

3472 3478 

3473* **`claude -p` のプロンプト引数またはパイプされた stdin**: `claude` は `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` で終了します3479* **`claude -p` のプロンプト引数またはパイプされた stdin**: `claude` は `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` で終了します

3474* **実行中の `--input-format stream-json` または [Agent SDK](/docs/ja/agent-sdk/overview) セッションに送信されたメッセージ**: Claude Code はモデルを呼び出さずにターンを終了し、セッションは引き続き使用できます。拒否は情報メッセージとして、またターンの結果テキストとして届きます: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`3480* **実行中の `--input-format stream-json` または [Agent SDK](/docs/ja/agent-sdk/overview) セッションに送信されたメッセージ**: Claude Code はモデルを呼び出さずにターンを終了し、セッションは引き続き使用できます。拒否は情報メッセージとして、またターンの結果テキストとして届きます: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3475 3481 

3476v2.1.229 より前は、Claude Code は空白文字のみのメッセージを API に送信し、API はリクエストを 400 エラーで拒否していました。3482v2.1.229 より前は、Claude Code は空白のみのメッセージを API に送信し、API は 400 エラーでリクエストを拒否していました。

3477 3483 

3478**対処方法:**3484**対処方法:**

3479 3485 

3480* プロンプトに表示可能なテキストを含めます。スクリプトが変数やファイルからプロンプトを構築する場合は、Claude Code を呼び出す前にソースが空でないことを確認します。3486* プロンプトに目に見えるテキストを含めます。スクリプトが変数やファイルからプロンプトを構築する場合は、Claude Code を呼び出す前にソースが空でないことを確認します。

3481 3487 

3482<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3488<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3483 stream-json の入力が改行なしで 256M 文字を超えた3489 stream-json input carried over 256M characters with no newline

3484</h3>3490</h3>

3485 3491 

3486プログラムが `claude -p --input-format stream-json` の実行に対して、改行なしで 268,435,456 文字を超える文字を stdin に送信したため、Claude Code はそれ以上入力をバッファリングせずに、このエラーを stderr に出力して終了コード 1 で終了します。メッセージではこの上限を `256M` と表記しています。v2.1.257 より前は、Claude Code はこのような入力を無制限にバッファリングし、プロセスがクラッシュするか強制終了されるまでメモリが増加していました。3492プログラムが `claude -p --input-format stream-json` の実行に対して、改行なしで 268,435,456 文字を超える入力を stdin に送信したため、Claude Code はそれ以上の入力をバッファリングせずに、このエラーを stderr に出力して終了コード 1 で終了します。メッセージではこの上限を `256M` と表記しています。v2.1.257 より前は、Claude Code はそのような入力を無制限にバッファリングし、プロセスがクラッシュするか強制終了されるまでメモリが増加していました。

3487 3493 

3488```text theme={null}3494```text theme={null}

3489Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3495Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3490```3496```

3491 3497 

3492改行なしでこれほど長い入力がある場合、通常は送信元がそもそも stream-json の送信元ではないことを意味します。たとえば、誤ってパイプされたバイナリファイルやプレーンなログ出力などです。上限を超える単一のメッセージも同じチェックで失敗します。3498改行なしでこれほど長い入力がある場合、通常は入力元がそもそも stream-json の生成元ではないことを意味します。たとえば、誤ってパイプされたバイナリファイルやプレーンなログ出力などです。単一のメッセージが上限を超えた場合も、同じチェックで失敗します。

3493 3499 

3494**対処方法:**3500**対処方法:**

3495 3501 

3496* stdin にパイプされているものを確認します。[`--input-format stream-json`](/docs/ja/cli-reference#cli-flags) では、すべてのメッセージが改行で終わる 1 行の JSON である必要があります3502* stdin に何がパイプされているかを確認します。[`--input-format stream-json`](/docs/ja/cli-reference#cli-flags) では、各メッセージは改行で終わる 1 行の JSON である必要があります

3497* 代わりにプレーンテキストを送信するには、`--input-format stream-json` を削除します。`claude -p` はデフォルトで stdin からプレーンテキストのプロンプトを読み取ります3503* 代わりにプレーンテキストを送信するには、`--input-format stream-json` を削除します。`claude -p` はデフォルトで stdin からプレーンテキストのプロンプトを読み取ります

3498 3504 

3499<h3 id="unknown-command">3505<h3 id="unknown-command">

3500 Unknown command3506 Unknown command

3501</h3>3507</h3>

3502 3508 

3503対話型のターミナルセッションで、このセッションのどのコマンドにも一致しない `/` の名前を送信したため、Claude Code は何も実行せずにその名前を報告します:3509対話的なターミナルセッションで、このセッションのどのコマンドにも一致しない `/` 名を送信したため、Claude Code は何も実行せずにその名前を報告します:

3504 3510 

3505```text theme={null}3511```text theme={null}

3506Unknown command: /hepl. Did you mean /help?3512Unknown command: /hepl. Did you mean /help?

3507```3513```

3508 3514 

3509Claude Code は、このセッションでメニューに表示される最も近いコマンド名またはエイリアスを提案します。近いものがない場合、メッセージは名前の後で終わります。原因は通常、次のいずれかです:3515Claude Code は、このセッションでメニューに表示される中から最も近いコマンド名またはエイリアスを提案します。近いものがない場合、メッセージは名前の後で終わります。原因は通常、次のいずれかです:

3510 3516 

3511* `/help` を `/hepl` と入力するなどのタイプミス。[コマンドメニューが入力内容と照合する方法](/docs/ja/commands#how-the-command-menu-matches-what-you-type)では、送信前に近い候補を選択する方法について説明しています3517* `/help` を `/hepl` と入力するようなタイプミス。[コマンドメニューが入力内容に一致させる方法](/docs/ja/commands#how-the-command-menu-matches-what-you-type)では、送信前に近い一致を選択する方法について説明しています

3512* コマンドは存在するものの、プラットフォーム、プラン、認証方法などの要件を満たしていないため、このセッションでは利用できない。[`/web-setup`](/docs/ja/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) と [`/schedule`](/docs/ja/routines#schedule-returns-unknown-command) のトラブルシューティング項目では、よくある 2 つのケースを説明しています。一部のコマンドは、組織のポリシーで無効になっている場合に [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy) のような独自のメッセージで応答します3518* コマンドは存在するものの、プラットフォーム、プラン、認証方法などの要件を満たしていないため、このセッションでは利用できない。[`/web-setup`](/docs/ja/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) と [`/schedule`](/docs/ja/routines#schedule-returns-unknown-command) のトラブルシューティング項目では、2 つの一般的なケースを説明しています。一部のコマンドは、組織のポリシーによって無効化されている場合に、[`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy) のような独自のメッセージで応答します

3513* このセッションでインストールまたは接続されていない[プラグイン](/docs/ja/plugins/overview)や [MCP サーバー](/docs/ja/mcp#use-mcp-prompts-as-commands)のコマンド3519* このセッションでインストールまたは接続されていない[プラグイン](/docs/ja/plugins/overview)または [MCP サーバー](/docs/ja/mcp#use-mcp-prompts-as-commands)のコマンド

3514 3520 

3515Claude Code が一致しない `/` の名前にこのように応答するのは、対話型のターミナルセッションのみです。それ以外のすべてのセッションでは、コマンドが実行されなかったことを示す注記と、そのセッションで Claude が実行できるコマンドの一覧を添えて、プロンプトを通常のメッセージとして Claude に送信します。これらのセッションには次のものが含まれます:3521Claude Code が一致しない `/` 名にこのように応答するのは、対話的なターミナルセッションのみです。それ以外のすべてのセッションでは、代わりにプロンプトを通常のメッセージとして Claude に送信し、コマンドが実行されなかったことの注記と、セッションで Claude が実行できるコマンドの一覧を付けます。対象となるセッションは次のとおりです:

3516 3522 

3517* `-p` の実行3523* `-p` の実行

3518* [Agent SDK](/docs/ja/agent-sdk/overview) アプリケーション3524* [Agent SDK](/docs/ja/agent-sdk/overview) アプリケーション


3520* [VS Code 拡張機能](/docs/ja/vs-code)のチャットパネル3526* [VS Code 拡張機能](/docs/ja/vs-code)のチャットパネル

3521* [クラウドセッション](/docs/ja/claude-code-on-the-web)と[ルーティン](/docs/ja/routines)3527* [クラウドセッション](/docs/ja/claude-code-on-the-web)と[ルーティン](/docs/ja/routines)

3522 3528 

3523これらのセッションで実行できない組み込みコマンドについては、Claude Code は Claude に送信せずに、そのコマンドが利用できないことを応答します。v2.1.274 より前は、一致しない名前を Claude に送信していたのはクラウドセッションとルーティンのみでした。v2.1.273 より前は、これらも `Unknown command` と応答していました。3529これらのセッションのいずれかで実行できない組み込みコマンドについては、Claude Code はそれでも Claude に送信せずに、コマンドが利用できないと応答します。v2.1.274 より前は、一致しない名前を Claude に送信していたのはクラウドセッションとルーティンのみでした。v2.1.273 より前は、それらも `Unknown command` と応答していました。

3524 3530 

3525Claude Code は、`/` で始まるすべてのプロンプトをコマンドとして扱うわけではありません。`/` の後の最初の単語が、Lean のドキュメントコメントを開始する `/--` のように句読点で始まる場合、または `/var/log/syslog` のようなパスである場合は、プロンプトを通常のメッセージとして Claude に送信します。3531Claude Code は、`/` で始まるすべてのプロンプトをコマンドとして扱うわけではありません。`/` の後の最初の単語が句読点で始まる場合(Lean のドキュメントコメントを開始する `/--` など)や、`/var/log/syslog` のようなパスである場合は、プロンプトを通常のメッセージとして Claude に送信します。

3526 3532 

3527v2.1.236 より前は、入力した名前に近い候補がコマンドメニューに表示されている状態で `Enter` を押すと、Claude Code はその候補を実行していました。そのため、`/hepl` のようなタイプミスでは、このメッセージが表示される代わりに `/help` が実行されていました。3533v2.1.236 より前は、入力した名前に近い一致がコマンドメニューに表示されている状態で `Enter` を押すと、Claude Code はその一致を実行していました。そのため、`/hepl` のようなタイプミスでは、このメッセージが表示される代わりに `/help` が実行されていました。

3528 3534 

3529**対処方法:**3535**対処方法:**

3530 3536 

3531* 提案された名前を実行するか、`/` に続けて名前の一部を入力して、このセッションで利用できるものを確認します3537* 提案された名前を実行するか、`/` に続けて名前の一部を入力し、このセッションで利用可能なものを確認します

3532* ドキュメントに記載されているコマンドが Claude Code で不明と報告される場合は、[コマンドリファレンス](/docs/ja/commands)でそのコマンドの行を確認し、示されている要件を確認します3538* ドキュメントに記載されているコマンドが不明と報告される場合は、[コマンドリファレンス](/docs/ja/commands)のその行を確認し、示されている要件を確認します

3533 3539 

3534<h3 id="diff-is-too-large-for-ultrareview">3540<h3 id="diff-is-too-large-for-ultrareview">

3535 差分が大きすぎて ultrareview を実行できない3541 Diff is too large for ultrareview

3536</h3>3542</h3>

3537 3543 

3538コミットされていない変更とステージされた変更を含む、ブランチとベースブランチの間の差分が [ultrareview](/docs/ja/ultrareview) のサイズ上限を超えているため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションの開始前にレビューを拒否します。拒否されたレビューは無料実行回数を消費せず、使用クレジットも請求されません。メッセージには、適用されている上限、差分のサイズ、変更行数が最も多いファイルが示されます。v2.1.216 より前は、メッセージには生の差分統計のみが表示されていました。3544コミットされていない変更とステージされた変更を含む、ブランチとベースブランチの間の差分が [ultrareview](/docs/ja/ultrareview) のサイズ制限を超えているため、`/code-review ultra` と `claude ultrareview` サブコマンドは、クラウドセッションの開始前にレビューを拒否します。拒否されたレビューは無料の実行回数を消費せず、使用クレジットも請求されません。メッセージには、適用されている制限、差分のサイズ、および変更行数が最も多いファイルが示されます。v2.1.216 より前は、メッセージには生の差分統計のみが表示されていました。

3539 3545 

3540```text theme={null}3546```text theme={null}

3541Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3547Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3542```3548```

3543 3549 

3544プルリクエストのレビューにも同じ上限が適用されます。その場合のメッセージは `PR #<N> is too large for ultrareview` で始まり、PR のファイル数と行数が示されます。3550プルリクエストのレビューにも同じ制限が適用されます。その場合のメッセージは `PR #<N> is too large for ultrareview` で始まり、PR のファイル数と行数が示されます。

3545 3551 

3546**対処方法:**3552**対処方法:**

3547 3553 

3548* `/code-review ultra develop` のように、作業により近いベースブランチを渡して、レビューがそのブランチとの差分のみを対象とするようにします3554* `/code-review ultra develop` のように、作業に近いベースブランチを渡して、レビューがそのブランチとの差分のみを対象にするようにします

3549* 変更をより小さなブランチに分割し、それぞれをレビューします。メッセージに示されたファイルが変更行数の大部分を占めているため、まずそれらを別のブランチに移動します。3555* 変更をより小さなブランチに分割し、それぞれをレビューします。メッセージに示されたファイルは変更行数が最も多いため、まずそれらを独自のブランチに移動します。

3550 3556 

3551<h3 id="could-not-find-merge-base-with-the-base-branch">3557<h3 id="could-not-find-merge-base-with-the-base-branch">

3552 ベースブランチとの merge-base が見つからない3558 Could not find merge-base with the base branch

3553</h3>3559</h3>

3554 3560 

3555`/code-review ultra` と `claude ultrareview` サブコマンドは、ブランチとベースブランチの間の差分をレビューします。これには 2 つが共有するコミットが必要です。`git merge-base` が共有コミットを見つけられない場合、Claude Code はクラウドセッションの開始前にレビューを拒否します。Claude Code が完全であることを確認でき、少なくとも 1 つのブランチがあるクローンでは、拒否する代わりに[追跡されているすべてのファイルのレビュー](/docs/ja/ultrareview#diff-limits-and-fallbacks)にフォールバックします。この拒否が表示されるのは、ベースブランチがまったく見つからない場合、Claude Code がクローンの完全性を確認できない場合、または SHA-256 オブジェクト形式など、ツリー全体の差分が不可能なまれなリポジトリの場合です。3561`/code-review ultra` と `claude ultrareview` サブコマンドは、ブランチとベースブランチの間の差分をレビューします。これには両者が共有するコミットが必要です。`git merge-base` が共有コミットを見つけられない場合、Claude Code はクラウドセッションの開始前にレビューを拒否します。Claude Code が完全であることを確認でき、少なくとも 1 つのブランチがあるクローンでは、拒否する代わりに[追跡されているすべてのファイルのレビュー](/docs/ja/ultrareview#diff-limits-and-fallbacks)にフォールバックします。この拒否が表示されるのは、ベースブランチがまったく見つからない場合、クローンが完全であることを Claude Code が確認できない場合、またはツリー全体の差分が不可能なまれなリポジトリ(SHA-256 オブジェクト形式など)の場合です。

3556 3562 

3557```text theme={null}3563```text theme={null}

3558Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3564Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.

3559```3565```

3560 3566 

3561最初の文の後のヒントは、Claude Code が観察した内容によって異なります:3567最初の文の後のヒントは、Claude Code が観測した内容によって異なります:

3562 3568 

3563* **ベースブランチを渡さなかった場合**: Claude Code はリポジトリのデフォルトブランチと比較し、上記の例のようにベースを明示的に渡すよう提案します3569* **ベースブランチを渡さなかった場合**: Claude Code はリポジトリのデフォルトブランチと比較し、上記の例のようにベースを明示的に渡すことを提案します

3564* **すでにクローンにあるベースブランチを渡した場合**: ヒントは ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)`` となります3570* **既にクローンにあるベースブランチを渡した場合**: ヒントは ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)`` となります

3565* **クローンにないベースブランチを渡した場合**: Claude Code は比較の前に origin からそれをフェッチしました。ヒントは ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)`` となります。Claude Code がクローンが shallow かどうかを判断できない場合は、代わりに `git fetch --unshallow origin` を提案します。v2.1.221 より前は、フェッチしたすべてのベースブランチに対してヒントが `git fetch --unshallow origin` を提案していましたが、完全なクローンではこのコマンドは `fatal: --unshallow on a complete repository does not make sense` で失敗します。3571* **クローンになかったベースブランチを渡した場合**: Claude Code は比較の前に origin からそれを fetch しました。ヒントは ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)`` となります。クローンがシャロークローンかどうかを Claude Code が判断できない場合は、代わりに `git fetch --unshallow origin` を提案します。v2.1.221 より前は、fetch されたすべてのベースブランチに対してヒントが `git fetch --unshallow origin` を提案していましたが、完全なクローンではそのコマンドは `fatal: --unshallow on a complete repository does not make sense` で失敗します。

3566 3572 

3567**対処方法:**3573**対処方法:**

3568 3574 

3569* 別のブランチが実際のベースである場合は、明示的に渡します: `/code-review ultra <branch>`3575* 別のブランチが実際のベースである場合は、明示的に渡します: `/code-review ultra <branch>`

3570* クローンに完全な履歴がない可能性がある場合は、`git fetch --unshallow origin` を実行してからレビューを再実行します3576* クローンに完全な履歴がない可能性がある場合は、`git fetch --unshallow origin` を実行してレビューを再実行します

3571 3577 

3572<h3 id="your-checkout-has-no-branches">3578<h3 id="your-checkout-has-no-branches">

3573 チェックアウトにブランチがない3579 Your checkout has no branches

3574</h3>3580</h3>

3575 3581 

3576チェックアウトには、コミットがあってもブランチがない場合があります。`git init` の後に `git fetch <url>` と `git checkout FETCH_HEAD` を実行すると、ref のない detached HEAD になります。Claude Code は [ultrareview](/docs/ja/ultrareview) のためにリポジトリを git バンドルとしてパッケージ化してアップロードしますが、ブランチやその他の ref がないリポジトリはバンドルできないため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションの開始前にレビューを拒否します。3582チェックアウトには、コミットはあってもブランチがない場合があります。`git init` に続けて `git fetch <url>` と `git checkout FETCH_HEAD` を実行すると、ref のない detached HEAD になります。Claude Code は [ultrareview](/docs/ja/ultrareview) のためにリポジトリを git バンドルとしてパッケージ化してアップロードしますが、ブランチやその他の ref がないリポジトリはバンドルできないため、`/code-review ultra` と `claude ultrareview` サブコマンドはクラウドセッションの開始前にレビューを拒否します。

3577 3583 

3578```text theme={null}3584```text theme={null}

3579Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3585Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

3580```3586```

3581 3587 

3582v2.1.221 より前は、Claude Code はこのチェックアウト内の追跡されているすべてのファイルをレビューしようとし、アップロードが失敗していました。3588v2.1.221 より前は、Claude Code はこのチェックアウト内の追跡されているすべてのファイルのレビューを試み、アップロードが失敗していました。

3583 3589 

3584**対処方法:**3590**対処方法:**

3585 3591 

3586* `git checkout -b <name>` で現在のコミットにブランチを作成してから、レビューを再実行します3592* `git checkout -b <name>` で現在のコミットにブランチを作成してから、レビューを再実行します

3587 3593 

3588<h3 id="no-github-account-is-connected-to-your-claude-account">3594<h3 id="no-github-account-is-connected-to-your-claude-account">

3589 Claude アカウントに GitHub アカウントが接続されていない3595 No GitHub account is connected to your Claude account

3590</h3>3596</h3>

3591 3597 

3592`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しました。Claude Code はクラウドセッションを作成する前に、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリにアクセスできるかをサーバーに確認します。アカウントが接続されていないか接続の有効期限が切れているため、クラウドでのクローンが失敗することになり、Claude Code は起動を拒否します。拒否された起動では、無料実行回数は消費されず、使用クレジットも請求されません。3598`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行すると、Claude Code はクラウドセッションを作成する前に、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリにアクセスできるかどうかをサーバーに問い合わせます。アカウントが接続されていないか、接続の有効期限が切れているため、クラウドでのクローンが失敗することから、Claude Code は起動を拒否します。拒否された起動について、Claude Code は無料の実行回数を消費せず、使用クレジットも請求しません。

3593 3599 

3594```text theme={null}3600```text theme={null}

3595Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3601Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).


3600**対処方法:**3606**対処方法:**

3601 3607 

3602* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します3608* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します

3603* 接続してから 1 分ほど待って、レビューを再実行します3609* 接続してから 1 分後にレビューを再実行します

3604 3610 

3605v2.1.248 より前は、Claude Code は起動前にこれを確認していませんでした。3611v2.1.248 より前は、Claude Code は起動前にこれを確認していませんでした。

3606 3612 

3607<h3 id="your-connected-github-account-cant-see-the-repository">3613<h3 id="your-connected-github-account-cant-see-the-repository">

3608 接続された GitHub アカウントがリポジトリを参照できない3614 Your connected GitHub account can't see the repository

3609</h3>3615</h3>

3610 3616 

3611`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しましたが、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリを読み取れないため、クラウドでのクローンが失敗することになり、Claude Code は起動を拒否します。拒否された起動では、無料実行回数は消費されず、使用クレジットも請求されません。3617`/code-review ultra <PR#>` または `claude ultrareview <PR#>` を実行しましたが、[Claude アカウントに接続された GitHub アカウント](/docs/ja/ultrareview#review-a-pull-request)が PR のリポジトリを読み取れないため、クラウドでのクローンが失敗することから、Claude Code は起動を拒否します。拒否された起動について、Claude Code は無料の実行回数を消費せず、使用クレジットも請求しません。

3612 3618 

3613```text theme={null}3619```text theme={null}

3614Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3620Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.


3624v2.1.248 より前は、Claude Code は起動前にこれを確認していませんでした。3630v2.1.248 より前は、Claude Code は起動前にこれを確認していませんでした。

3625 3631 

3626<h3 id="the-github-app-preflight-failed-transiently">3632<h3 id="the-github-app-preflight-failed-transiently">

3627 GitHub App の事前チェックが一時的に失敗した3633 The GitHub App preflight failed transiently

3628</h3>3634</h3>

3629 3635 

3630ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しましたが、2 つのステップが同時に失敗しました。Claude Code はリポジトリのバンドルをビルドまたはアップロードできませんでした。アップロードの前に、クラウドサービスが GitHub からリポジトリをクローンできるかを確認しましたが、そのチェックは明確な結果ではなく、ネットワークエラー、タイムアウト、一時的なサーバーエラーなど、再試行で解消される可能性のあるエラーで終わりました。完全なメッセージは、`Could not upload repo bundle (<error>)` のようにバンドルを停止させた原因で始まり、事前チェックの文で終わります:3636ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しましたが、2 つのステップが同時に失敗しました。Claude Code はリポジトリのバンドルをビルドまたはアップロードできませんでした。アップロードの前に、クラウドサービスが GitHub からリポジトリをクローンできるかどうかを確認しましたが、そのチェックは明確な答えではなく、ネットワークエラー、タイムアウト、一時的なサーバーエラーなど、再試行で解消される可能性のあるエラーで終わりました。完全なメッセージは、バンドルを妨げた内容(たとえば `Could not upload repo bundle (<error>)`)で始まり、プリフライトの文で終わります:

3631 3637 

3632```text theme={null}3638```text theme={null}

3633Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3639Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead


3635 3641 

3636**対処方法:**3642**対処方法:**

3637 3643 

3638* しばらくしてからコマンドを再実行します。GitHub のチェックに合格すると、Claude Code は GitHub のクローンからセッションを開始できるため、アップロードの失敗によって起動がブロックされなくなります3644* しばらくしてからコマンドを再実行します。GitHub のチェックが成功すると、Claude Code は GitHub のクローンからセッションを開始できるため、失敗したアップロードが起動を妨げることはなくなります

3639* 再試行しても失敗し続ける場合は、メッセージの冒頭にアップロードを停止させた原因が示されています。その原因が修正可能なものであれば、修正することでローカルリポジトリからセッションを開始できるようになります3645* 再試行しても失敗し続ける場合は、メッセージの冒頭にアップロードを妨げた原因が示されています。その原因が修正可能なものであれば、修正してローカルリポジトリからセッションを開始できるようにします

3640 3646 

3641v2.1.251 より前は、GitHub のチェックが一時的に失敗しただけの場合でも、Claude Code はメッセージの末尾に `Please set up GitHub on https://claude.ai/code` を表示していましたが、セットアップのアドバイスでは一時的な失敗は解消できません。3647v2.1.251 より前は、GitHub のチェックが一時的に失敗しただけの場合でも、Claude Code はメッセージを `Please set up GitHub on https://claude.ai/code` で終えていましたが、セットアップの助言では一時的な失敗を解消できません。

3642 3648 

3643<h3 id="the-repository-upload-cant-follow-a-git-setting">3649<h3 id="the-repository-upload-cant-follow-a-git-setting">

3644 リポジトリのアップロードが git 設定に従えない3650 リポジトリのアップロードが git の設定に従えない

3645</h3>3651</h3>

3646 3652 

3647[ローカルリポジトリをアップロードするクラウドセッション](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github)、またはブランチの [ultrareview](/docs/ja/ultrareview) を開始しましたが、ファイルにどの属性ルールが適用されるかを決定する git の設定のいずれかにアップロードが従えません。アップロードを続行してルールを見落とすと、clean フィルターで暗号化されるファイルなど、git が保存前に変換するファイルが、ディスク上のままの状態でクラウドに届く可能性があります。Claude Code は代わりにアップロードを拒否し、何もアップロードされません:3653[ローカルリポジトリをアップロードするクラウドセッション](/docs/ja/claude-code-on-the-web#send-local-repositories-without-github)、またはブランチの [ultrareview](/docs/ja/ultrareview) を開始しましたが、ファイルにどの属性ルールを適用するかを決定する git の設定の 1 つに、アップロードが従うことができません。アップロードを進めてルールを見落とした場合、git が保存前に変換するファイル(たとえば clean フィルターが暗号化するファイル)が、ディスク上のままの状態でクラウドに届く可能性があります。Claude Code は代わりにアップロードを拒否し、何もアップロードされません:

3648 3654 

3649```text theme={null}3655```text theme={null}

3650Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.3656Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

3651```3657```

3652 3658 

3653メッセージには設定とその設定場所が示され、該当するケースの対処方法で終わります。`core.attributesFile` と `attr.tree` でも同じ拒否が表示され、それぞれに独自の対処方法があります。3659メッセージには設定とその設定場所が示され、該当するケースの修正方法で終わります。`core.attributesFile` と `attr.tree` についても同じ拒否が表示され、それぞれ独自の修正方法が示されます。

3654 3660 

3655メッセージには、git の設定が `include` または `includeIf` ディレクティブで読み込む設定ファイルが示される場合があります。これは、そのディレクティブの条件がこのリポジトリに該当しない場合でも同様です。3661メッセージには、git の設定が `include` または `includeIf` ディレクティブを通じて取り込む設定ファイルが示されることがあります。これは、そのディレクティブの条件がこのリポジトリに当てはまらない場合でも同様です。

3656 3662 

3657**対処方法:**3663**対処方法:**

3658 3664 

3659* メッセージの最後の文に示された対処方法を適用します3665* メッセージの最後の文に示された修正を適用します

3660 3666 

3661<h3 id="github-isnt-connected-to-your-claude-account">3667<h3 id="github-isnt-connected-to-your-claude-account">

3662 GitHub が Claude アカウントに接続されていない3668 GitHub isn't connected to your Claude account

3663</h3>3669</h3>

3664 3670 

3665たとえば `/autofix-pr` を使用して、ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。Claude アカウントに GitHub アカウントが接続されていないか接続の有効期限が切れているため、Claude Code は起動を拒否します:3671たとえば `/autofix-pr` を使用して、ローカルリポジトリから[クラウドセッション](/docs/ja/claude-code-on-the-web)を開始しました。Claude アカウントに GitHub アカウントが接続されていないか、接続の有効期限が切れているため、Claude Code は起動を拒否します:

3666 3672 

3667```text theme={null}3673```text theme={null}

3668GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3674GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3669```3675```

3670 3676 

3671[`/schedule`](/docs/ja/routines) でルーティンを作成する場合、同じメッセージがリポジトリ名を示すセットアップの注記として表示されます。この注記はルーティンの作成をブロックしません。3677[`/schedule`](/docs/ja/routines) でルーティンを作成すると、同じメッセージがリポジトリ名を含むセットアップの注記として表示されます。この注記はルーティンの作成を妨げません。

3672 3678 

3673**対処方法:**3679**対処方法:**

3674 3680 

3675* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します。2 つの違いについては、[GitHub の認証オプション](/docs/ja/claude-code-on-the-web#github-authentication-options)を参照してください。3681* `/web-setup` を実行して GitHub CLI のログインを Claude アカウントに接続するか、[claude.ai/connect-github](https://claude.ai/connect-github) でアカウントを接続します。両者の違いについては、[GitHub の認証オプション](/docs/ja/claude-code-on-the-web#github-authentication-options)を参照してください。

3676* 接続してから 1 分ほど待って、コマンドを再実行します3682* 接続してから 1 分後にコマンドを再実行します

3677 3683 

3678v2.1.268 より前は、Claude Code はこれを Claude GitHub App のチェックの一時的な失敗として報告し、再試行またはアプリのインストールを提案していましたが、どちらも GitHub アカウントを接続するものではありません。3684v2.1.268 より前は、Claude Code はこれを Claude GitHub App のチェックの一時的な失敗として報告し、再試行またはアプリのインストールを提案していましたが、どちらも GitHub アカウントを接続するものではありません。

3679 3685 

3680<h3 id="a-github-organization-policy-is-blocking-claude">3686<h3 id="a-github-organization-policy-is-blocking-claude">

3681 GitHub 組織のポリシーが Claude をブロックしている3687 A GitHub organization policy is blocking Claude

3682</h3>3688</h3>

3683 3689 

3684Claude Code のプロンプトで、[`/autofix-pr`](/docs/ja/claude-code-on-the-web#auto-fix-pull-requests) などのクラウドセッションを開始するコマンドを実行しました。Claude Code はセッションを作成する前に GitHub 上のリポジトリに対する Claude のアクセスを確認しますが、GitHub 組織に Claude をブロックするポリシーがあるため、GitHub がこれを拒否しました。Claude Code はそこで処理を停止し、該当するポリシーを示すメッセージを表示します。3690Claude Code のプロンプトで、[`/autofix-pr`](/docs/ja/claude-code-on-the-web#auto-fix-pull-requests) などのクラウドセッションを開始するコマンドを実行しました。Claude Code はセッションを作成する前に GitHub 上のリポジトリに対する Claude のアクセスを確認しますが、GitHub 組織に Claude をブロックするポリシーがあるため、GitHub が拒否しました。Claude Code はそこで停止し、該当するポリシーを示すメッセージを表示します。

3685 3691 

3686IP 許可リストがアクセスをブロックしている場合、メッセージは次のようになります。3692IP 許可リストによってアクセスがブロックされている場合、メッセージは次のようになります。

3687 3693 

3688```text theme={null}3694```text theme={null}

3689Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.3695Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.

3690```3696```

3691 3697 

3692シングルサインオンがブロックしている場合、メッセージは次のようになります。3698シングルサインオンによってブロックされている場合、メッセージは次のようになります。

3693 3699 

3694```text theme={null}3700```text theme={null}

3695Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again.3701Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again.

3696```3702```

3697 3703 

3698Microsoft Entra ID の条件付きアクセスポリシーがブロックしている場合、メッセージは次のようになります。3704Microsoft Entra ID の条件付きアクセスポリシーによってブロックされている場合、メッセージは次のようになります。

3699 3705 

3700```text theme={null}3706```text theme={null}

3701Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy.3707Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy.


3703 3709 

3704**対処方法:**3710**対処方法:**

3705 3711 

3706* **IP 許可リスト**: GitHub の組織または Enterprise のオーナーに、Anthropic の送信元 IP アドレスを許可するよう依頼してください。アドレスと変更する GitHub の設定については、[GitHub の許可リストとファイアウォール](/docs/ja/network-config#github-allow-lists-and-firewalls)を参照してください。3712* **IP 許可リスト**: GitHub 組織またはエンタープライズのオーナーに、Anthropic の送信元 IP アドレスを許可するよう依頼してください。アドレスと変更すべき GitHub の設定については、[GitHub の許可リストとファイアウォール](/docs/ja/network-config#github-allow-lists-and-firewalls)を参照してください。

3707* **シングルサインオン**: [claude.ai/customize/connectors](https://claude.ai/customize/connectors) で GitHub の接続を解除してから、再度接続します。GitHub から求められたら、組織の横にある **Authorize** をクリックして、新しい接続がその組織のシングルサインオンに対して認可されるようにします。3713* **シングルサインオン**: [claude.ai/customize/connectors](https://claude.ai/customize/connectors) で GitHub の接続を解除してから、再度接続してください。GitHub から求められたら、組織の横にある **Authorize** をクリックして、新しい接続をその組織のシングルサインオン用に認可してください。

3708* **条件付きアクセスポリシー**: GitHub Enterprise または Microsoft Entra ID の管理者に、そのポリシーで Claude を許可するよう依頼してください3714* **条件付きアクセスポリシー**: GitHub Enterprise または Microsoft Entra ID の管理者に、そのポリシーで Claude を許可するよう依頼してください

3709* 変更後、コマンドを再度実行してください3715* 変更後、コマンドを再度実行してください

3710 3716 

3711<h3 id="single-sign-on-authorization-needed">3717<h3 id="single-sign-on-authorization-needed">

3712 シングルサインオンの認可が必要3718 Single sign-on authorization needed

3713</h3>3719</h3>

3714 3720 

3715[`/install-github-app`](/docs/ja/github-actions#quick-setup) を実行し、SAML シングルサインオンを強制している組織のリポジトリを選択しました。Claude Code はセットアップの前に GitHub CLI でリポジトリへのアクセスを確認しますが、`gh` トークンがまだその組織に対して認可されていないため、GitHub がその確認を拒否しました。ウィザードは、認可の手順とともに次の警告を表示します。3721[`/install-github-app`](/docs/ja/github-actions#quick-setup) を実行し、SAML シングルサインオンを強制している組織のリポジトリを選択しました。Claude Code はセットアップの前に GitHub CLI を使ってリポジトリへのアクセスを確認しますが、`gh` トークンがまだその組織に対して認可されていないため、GitHub がその確認を拒否しました。ウィザードは、認可の手順とともに次の警告を表示します。

3716 3722 

3717```text theme={null}3723```text theme={null}

3718Single sign-on authorization needed3724Single sign-on authorization needed


3721 3727 

3722**対処方法:**3728**対処方法:**

3723 3729 

3724* `gh auth refresh -h github.com -s repo,workflow` を実行して `repo` と `workflow` スコープで GitHub CLI のログインを再認可し、GitHub からシングルサインオンを求められたら組織を認可してください3730* `gh auth refresh -h github.com -s repo,workflow` を実行して、`repo` および `workflow` スコープで GitHub CLI のログインを再認可し、GitHub からシングルサインオンを求められたら組織を認可してください

3725* `GH_TOKEN` の個人用アクセストークンで認証している場合は、[github.com/settings/tokens](https://github.com/settings/tokens) を開き、トークンの **Configure SSO** を選択して組織を認可してください3731* `GH_TOKEN` の個人アクセストークンで認証している場合は、[github.com/settings/tokens](https://github.com/settings/tokens) を開き、トークンの **Configure SSO** を選択して組織を認可してください

3726* `/install-github-app` を再度実行してください3732* `/install-github-app` を再度実行してください

3727 3733 

3728v2.1.273 より前では、この状況で Claude Code は代わりに `Admin permissions required` という警告を表示していました。3734v2.1.273 より前では、この状況で Claude Code は代わりに `Admin permissions required` 警告を表示していました。

3729 3735 

3730<h3 id="failed-to-resume-the-conversation">3736<h3 id="failed-to-resume-the-conversation">

3731 会話の再開に失敗した3737 Failed to resume the conversation

3732</h3>3738</h3>

3733 3739 

3734[`claude --resume` ピッカー](/docs/ja/sessions#use-the-session-picker)から選択したセッションの保存済みトランスクリプトを Claude Code が読み取れなかったか処理できなかったため、部分的に読み込まれた状態で続行するのではなく、プロセスを終了します。メッセージには再試行するためのコマンドが含まれています。3740Claude Code は、[`claude --resume` ピッカー](/docs/ja/sessions#use-the-session-picker)で選択したセッションの保存済みトランスクリプトを読み取れないか処理できなかったため、部分的に読み込まれた状態で続行するのではなくプロセスを終了します。メッセージには再試行用のコマンドが含まれます。

3735 3741 

3736```text theme={null}3742```text theme={null}

3737Failed to resume the conversation.3743Failed to resume the conversation.

3738Run claude --resume <session-id> to retry, or claude to start a new session.3744Run claude --resume <session-id> to retry, or claude to start a new session.

3739```3745```

3740 3746 

3741Claude Code はメッセージを表示した後、終了コード 1 で終了します。実行中のセッション内の `/resume` ピッカーの場合は、代わりに会話内で `Failed to resume conversation` と報告され、現在のセッションは実行を続けます。v2.1.216 より前では、`claude --resume` ピッカーからの再開に失敗すると、このメッセージを表示する代わりに `Resuming conversation…` スピナーのまま無期限に止まっていました。3747Claude Code はメッセージを表示した後、終了コード 1 で終了します。実行中のセッション内の `/resume` ピッカーでは、代わりに会話内で `Failed to resume conversation` と報告され、現在のセッションは実行を続けます。v2.1.216 より前では、`claude --resume` ピッカーからの再開に失敗すると、このメッセージを表示する代わりに `Resuming conversation…` スピナーが表示されたままになっていました。

3742 3748 

3743**対処方法:**3749**対処方法:**

3744 3750 

3745* メッセージに含まれるセッション ID を指定して `claude --resume <session-id>` を実行し、再試行してください3751* メッセージに記載されたセッション ID を使って `claude --resume <session-id>` を実行し、再試行してください

3746* v2.1.285 より前のバージョンで再試行が同じように失敗する場合は、`claude update` を実行してから再度再開してください。これらのバージョンでは、保存済みトランスクリプトに読み取れないエントリが含まれていると再開に失敗します。3752* v2.1.285 より前のバージョンで再試行が同じように失敗する場合は、`claude update` を実行してから再度再開してください。これらのバージョンでは、保存済みトランスクリプトに読み取れないエントリが含まれていると再開に失敗します。

3747* 再試行が再び失敗する場合は、`claude` を実行して新しいセッションを開始してください3753* 再試行が再び失敗する場合は、`claude` を実行して新しいセッションを開始してください

3748 3754 

3749<h3 id="no-conversation-found-with-the-session-id">3755<h3 id="no-conversation-found-with-the-session-id">

3750 セッション ID に一致する会話が見つからない3756 No conversation found with the session ID

3751</h3>3757</h3>

3752 3758 

3753`claude --resume <session-id>` にセッション ID を渡しましたが、一致する保存済みトランスクリプトがありませんでした。3759`claude --resume <session-id>` にセッション ID を渡しましたが、一致する保存済みトランスクリプトがありませんでした。


3756No conversation found with session ID: <session-id>3762No conversation found with session ID: <session-id>

3757```3763```

3758 3764 

3759Claude Code はメッセージを表示した後、終了コード 1 で終了します。Claude Code は ID を探す際、[まず現在のプロジェクトを検索し、次にこのマシン上の他のすべてのプロジェクトを検索します](/docs/ja/sessions#resume-a-session)。v2.1.223 より前では、検索は現在のプロジェクトディレクトリとその git worktree で止まっていたため、セッションが最後に作業していたディレクトリから再開してください。3765Claude Code はメッセージを表示した後、終了コード 1 で終了します。Claude Code は、[まず現在のプロジェクトを検索し、次にこのマシン上の他のすべてのプロジェクトを検索して](/docs/ja/sessions#resume-a-session) ID を探します。v2.1.223 より前では、検索は現在のプロジェクトディレクトリとその Git worktree までで止まっていたため、セッションが最後に作業していたディレクトリから再開してください。

3760 3766 

3761主な原因:3767一般的な原因:

3762 3768 

3763* **ID の入力ミス**: 非対話型の実行の場合、ID は [`--output-format json` の出力](/docs/ja/headless#get-structured-output)の `session_id` フィールドです3769* **ID の入力ミス**: 非インタラクティブ実行の場合、ID は [`--output-format json` の出力](/docs/ja/headless#get-structured-output)の `session_id` フィールドです

3764* **トランスクリプトの削除**: Claude Code は[保持期間](/docs/ja/sessions#where-transcripts-are-stored)(デフォルトは 30 日)の経過後、[保持期間に基づく削除ルール](/docs/ja/claude-directory#cleaned-up-automatically)に従ってトランスクリプトを削除します3770* **トランスクリプトの削除**: Claude Code は、[保持期間](/docs/ja/sessions#where-transcripts-are-stored)(デフォルトでは 30 日)が経過すると、[保持期間のクリーンアップルール](/docs/ja/claude-directory#cleaned-up-automatically)に従ってトランスクリプトを削除します

3765* **別のマシン**: Claude Code はトランスクリプトをローカルに保存するため、セッションを実行したマシンで再開してください3771* **別のマシン**: Claude Code はトランスクリプトをローカルに保存するため、セッションを実行したマシンで再開してください

3766* **重複したコピー**: `~/.claude/projects` 配下のプロジェクトディレクトリをコピーしたことで 2 つのトランスクリプトが同じ ID を持つ場合、Claude Code はどちらか一方を任意に再開するのではなく、このメッセージを報告します3772* **重複コピー**: `~/.claude/projects` 配下のプロジェクトディレクトリをコピーしたために 2 つのトランスクリプトが同じ ID を持っている場合、Claude Code はどちらかのコピーを任意に再開するのではなく、このメッセージを報告します

3767 3773 

3768**対処方法:**3774**対処方法:**

3769 3775 

3770* 対話型セッションの場合は、`claude --resume` で[セッションピッカー](/docs/ja/sessions#use-the-session-picker)を開き、`Ctrl+A` を押してこのマシン上のすべてのプロジェクトに範囲を広げてから、セッションを選択してください3776* インタラクティブセッションの場合は、`claude --resume` で[セッションピッカー](/docs/ja/sessions#use-the-session-picker)を開き、`Ctrl+A` を押してこのマシン上のすべてのプロジェクトに範囲を広げてから、セッションを選択してください

3771* `claude -p` または [Agent SDK](/docs/ja/agent-sdk/overview) で作成したセッションはピッカーに表示されないため、元の実行で出力された `session_id` と ID を照合し直してください3777* `claude -p` や [Agent SDK](/docs/ja/agent-sdk/overview) で作成されたセッションはピッカーに表示されないため、元の実行で出力された `session_id` と ID を照合し直してください

3772 3778 

3773<h3 id="windows-reported-an-error-ebadf">3779<h3 id="windows-reported-an-error-ebadf">

3774 Claude Code がこのセッションのトランスクリプトファイルを読み取った際に Windows がエラー(EBADF)を報告した3780 Windows reported an error (EBADF) when Claude Code read this session's transcript file

3775</h3>3781</h3>

3776 3782 

3777Windows でセッションを再開した際、保存済みの[トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)は正常に開けたものの、その後の読み取りがシステムエラー EBADF で失敗しました。システムエラーからは読み取りが失敗した理由がわからないため、メッセージでは考えられる原因と試すべきことを提示します。3783Windows でセッションを再開したところ、保存済みの[トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)は正常に開かれましたが、その後の読み取りがシステムエラー EBADF で失敗しました。このシステムエラーからは読み取りが失敗した理由がわからないため、メッセージでは考えられる原因と試すべきことが示されます。

3778 3784 

3779```text theme={null}3785```text theme={null}

3780Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3786Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3781```3787```

3782 3788 

3783このメッセージは、`Failed to resume session <session-id>` などのコマンド自体の失敗を示す行の後に表示されます。`claude --resume` または [`claude -p`](/docs/ja/headless) コマンドは、これを表示した後に終了コード 1 で終了します。セッション内で `/resume` を実行した場合は、現在のセッションは実行を続けます。3789このメッセージは、`Failed to resume session <session-id>` などのコマンド自体の失敗行に続いて表示されます。`claude --resume` または [`claude -p`](/docs/ja/headless) コマンドは、これを表示した後に終了コード 1 で終了します。セッション内で `/resume` を実行した場合は、現在のセッションは実行を続けます。

3784 3790 

3785**対処方法:**3791**対処方法:**

3786 3792 

3787* セキュリティ、暗号化、エンドポイント管理ツールなど、ファイルの読み取りをスキャンまたはインターセプトするソフトウェアの対象から、セッションのトランスクリプトを保存しているフォルダを除外してください。トランスクリプトはデフォルトでは `%USERPROFILE%\.claude\projects` 配下に、または [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) が指定するディレクトリ配下に保存されています3793* セキュリティ、暗号化、エンドポイント管理ツールなど、ファイルの読み取りをスキャンまたはインターセプトするソフトウェアの対象から、セッションのトランスクリプトを保存しているフォルダを除外してください。トランスクリプトはデフォルトでは `%USERPROFILE%\.claude\projects` 配下、または [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars) が指定するディレクトリ配下に保存されます

3788* 除外を追加できない場合は、代わりにそのソフトウェアの許可アプリケーションに Claude Code を追加してください3794* 除外を追加できない場合は、代わりにそのソフトウェアの許可済みアプリケーションに Claude Code を追加してください

3789* セッションを再度再開してください3795* セッションを再度再開してください

3790 3796 

3791v2.1.282 より前では、この失敗は説明なしで発生していました。`claude --resume <session-id>` は `Failed to resume session <session-id>` で終了し、`-p` の実行では `Failed to resume session: EBADF: bad file descriptor, read` のようなシステムエラーのテキストのみが出力されていました。3797v2.1.282 より前では、この失敗は説明なしで発生していました。`claude --resume <session-id>` は `Failed to resume session <session-id>` で終了し、`-p` 実行では `Failed to resume session: EBADF: bad file descriptor, read` のようなシステムエラーのテキストのみが出力されていました。

3792 3798 

3793<h3 id="cannot-switch-renderers-in-this-session">3799<h3 id="cannot-switch-renderers-in-this-session">

3794 このセッションではレンダラーを切り替えられない3800 Cannot switch renderers in this session

3795</h3>3801</h3>

3796 3802 

3797レンダラーを切り替えると、Claude Code はプロセスを再起動します。Claude Code が再起動を拒否するセッションで [`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering) を実行したため、切り替えは行われず、何も保存されません。表示されるメッセージによって原因がわかります。3803レンダラーを切り替えると、Claude Code はプロセスを再起動します。Claude Code が再起動を拒否するセッションで [`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering) を実行したため、切り替えは行われず、何も保存されません。表示されるメッセージによって原因がわかります。

3798 3804 

3799* `Cannot switch renderers while work is running in the background`: バックグラウンドシェルやサブエージェントなど、再起動すると破棄されてしまうバックグラウンド処理が実行中です。処理が終了するまで待つか、[`/tasks`](/docs/ja/commands) で停止してから、`/tui fullscreen` または `/tui default` を再度実行してください3805* `Cannot switch renderers while work is running in the background`: バックグラウンドシェルやサブエージェントなど、再起動によって放棄されてしまうバックグラウンド作業が実行中です。作業が完了するのを待つか、[`/tasks`](/docs/ja/commands) で停止してから、`/tui fullscreen` または `/tui default` を再度実行してください

3800* `Cannot switch renderers in this session`: セッションに、Claude Code が再起動後のプロセスに引き継げない制限があります。v2.1.234 より前では、Claude Code はそれでも再起動し、再起動後のセッションはそれらの制限なしで実行されていました3806* `Cannot switch renderers in this session`: セッションに、Claude Code が再起動後のプロセスに引き継げない制限があります。v2.1.234 より前では、Claude Code はそれでも再起動し、再起動されたセッションはそれらの制限なしで実行されていました

3801 3807 

3802制限に関するメッセージでは、括弧内の部分に Claude Code が検出した制限が示されます。3808制限に関するメッセージでは、括弧内の部分に Claude Code が検出した制限が示されます。

3803 3809 


3807 3813 

3808メッセージの括弧内に表示される可能性のある各理由:3814メッセージの括弧内に表示される可能性のある各理由:

3809 3815 

3810* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Claude Code が再起動後のプロセスに引き継がないフラグを指定してセッションを開始しました。これには [`--system-prompt`](/docs/ja/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/ja/cli-reference#cli-flags) の許可リスト、[`--setting-sources`](/docs/ja/cli-reference#cli-flags)、[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) が含まれます3816* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Claude Code が再起動後のプロセスに引き継がないフラグを付けてセッションを開始しました。これらのフラグには、[`--system-prompt`](/docs/ja/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/ja/cli-reference#cli-flags) 許可リスト、[`--setting-sources`](/docs/ja/cli-reference#cli-flags)、[`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) が含まれます

3811* `permission rules set for this session only`: フックまたは SDK の呼び出し元からの[権限の更新](/docs/ja/hooks#permission-update-entries)によって、`session` を宛先とする拒否ルールまたは確認ルールが追加されました。セッションスコープの許可ルールでは拒否は発生しません。再起動するとそれらは破棄され、Claude Code は代わりに再度確認を求めます3817* `permission rules set for this session only`: フックまたは SDK の呼び出し元からの[権限の更新](/docs/ja/hooks#permission-update-entries)によって、`session` を宛先とする拒否ルールまたは確認ルールが追加されました。セッションスコープの許可ルールでは拒否は発生しません。再起動によって許可ルールは破棄され、Claude Code は代わりに再度確認を求めます

3812* `ask-before-running rules with no command-line form`: フックまたは SDK の呼び出し元からの権限の更新によって、Claude Code が `--allowed-tools` および `--disallowed-tools` として引き継ぐルールに加えて確認ルールが追加されました。確認ルールに対応するフラグは存在しません3818* `ask-before-running rules with no command-line form`: フックまたは SDK の呼び出し元からの権限の更新によって、Claude Code が `--allowed-tools` および `--disallowed-tools` として引き継ぐルールに加えて確認ルールが追加されました。確認ルール用のフラグは存在しません

3813* `permission rules a command line cannot carry intact` および `added directories a command line cannot carry intact`: 権限の更新によって、セッションの途中でルールまたはディレクトリパスが追加されました。再起動後のプロセスのコマンドラインでは、そのテキストを同じ値として引き継ぐことができません3819* `permission rules a command line cannot carry intact` および `added directories a command line cannot carry intact`: セッションの途中で、権限の更新によってルールまたはディレクトリパスが追加されました。再起動後のプロセスのコマンドラインでは、そのテキストを同じ値として引き継ぐことができません

3814 3820 

3815**対処方法:**3821**対処方法:**

3816 3822 

3817* それらの制限なしで開始したセッションで `/tui fullscreen` を実行するか、元に戻す場合は `/tui default` を実行してください。Claude Code はそのセッションで [`tui` 設定](/docs/ja/settings-reference#tui)を保存します3823* それらの制限なしで開始したセッションで `/tui fullscreen` を実行するか、元に戻す場合は `/tui default` を実行してください。Claude Code はそのセッションで [`tui` 設定](/docs/ja/settings-reference#tui)を保存します

3818 3824 

3825<h3 id="claude-code-couldnt-restart">

3826 Claude Code couldn't restart

3827</h3>

3828 

3829Claude Code が、たとえば [`/tui`](/docs/ja/fullscreen#enable-fullscreen-rendering) の実行後にフルスクリーンレンダリングへの切り替えまたはその解除のために再起動していました。セッションは閉じましたが新しいプロセスを開始できなかったため、このメッセージを出力してステータス 1 で終了しました。

3830 

3831```text theme={null}

3832Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.

3833```

3834 

3835新しいセッションで `/tui` が最初の入力だった場合など、再起動時に再度開く会話がなかった場合、メッセージは `Claude Code couldn't restart. Start Claude Code again.` となります。

3836 

3837**対処方法:**

3838 

3839* 同じディレクトリからシェルで `claude` を再度実行してください。メッセージに会話が保存されていると示されていた場合は、新しいセッションで [`/resume`](/docs/ja/sessions#resume-a-session) を実行して会話を選択してください

3840* 再起動が失敗し続ける場合は、シェルから [`claude --debug-file claude-debug.log`](/docs/ja/cli-reference#cli-flags) で Claude Code を起動してください。そのセッションからの再起動が失敗すると、起動したディレクトリにある `claude-debug.log` に、オペレーティングシステムのエラーを含む `Failed to relaunch:` 行が記録されます。[問題を報告する](#report-an-error)際にはその行を含めてください

3841 

3819<h3 id="couldnt-open-claude-desktop">3842<h3 id="couldnt-open-claude-desktop">

3820 Claude Desktop を開けなかった3843 Couldn't open Claude Desktop

3821</h3>3844</h3>

3822 3845 

3823セッション内で [`/desktop`](/docs/ja/desktop#coming-from-the-cli) またはそのエイリアスである `/app` を実行したか、シェルで [`claude --desktop`](/docs/ja/cli-reference#cli-flags) を実行しましたが、Claude Code が Claude Desktop を開くために使用するシステムコマンドが失敗しました。`/desktop` の場合、セッションはターミナルに残ります。`claude --desktop` の場合は、`Error:` プレフィックスなしでメッセージを出力し、ステータス 1 で終了します。3846セッション内で [`/desktop`](/docs/ja/desktop#coming-from-the-cli) またはそのエイリアスの `/app` を実行したか、シェルで [`claude --desktop`](/docs/ja/cli-reference#cli-flags) を実行したところ、Claude Code が Claude Desktop を開くために使用するシステムコマンドが失敗しました。`/desktop` の後、セッションはターミナルに残ります。`claude --desktop` は `Error:` プレフィックスなしでメッセージを出力し、ステータス 1 で終了します。

3824 3847 

3825括弧内のテキストは失敗したコマンドを示し、終了ステータスとエラー出力の最初の行が生成された場合はそれらも含まれます。macOS ではそのコマンドはこの例のように `open` で、Windows では `rundll32` です。3848括弧内のテキストには、失敗したコマンドと、出力された場合はその終了ステータスとエラー出力の最初の行が示されます。macOS ではこのコマンドは次の例のように `open` で、Windows では `rundll32` です。

3826 3849 

3827```text theme={null}3850```text theme={null}

3828Error: 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.3851Error: 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.


3830 3853 

3831**対処方法:**3854**対処方法:**

3832 3855 

3833* Claude Desktop を自分で開いてから、`/desktop` または `claude --desktop` を再度実行してください3856* Claude Desktop を手動で開いてから、`/desktop` または `claude --desktop` を再度実行してください

3834* 失敗したコマンドの完全なエラー出力を確認するには、`/debug` でデバッグログをオンにして `/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行してから、デバッグログを確認してください3857* 失敗したコマンドの完全なエラー出力を確認するには、`/debug` でデバッグログをオンにして `/desktop` を再度実行するか、`claude --desktop --debug-file <path>` を実行してから、デバッグログを確認してください

3835 3858 

3836v2.1.285 より前では、メッセージの末尾は `Open Claude Desktop and run /desktop again.` でした。v2.1.275 より前では、メッセージは `Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかは示されていませんでした。3859v2.1.285 より前では、メッセージの末尾は `Open Claude Desktop and run /desktop again.` でした。v2.1.275 より前では、メッセージは `Failed to open Claude Desktop. Please try opening it manually.` で、何が失敗したかは示されていませんでした。

3837 3860 

3838<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3861<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3839 /terminal-setup が Zed のキーマップを変更しなかった3862 /terminal-setup left your Zed keymap unchanged

3840</h3>3863</h3>

3841 3864 

3842Zed で [`/terminal-setup`](/docs/ja/terminal-config#enter-multiline-prompts) を実行しましたが、Claude Code が Zed の `keymap.json` の更新を完了できなかったため、ファイルをそのままにしました。3865Zed で [`/terminal-setup`](/docs/ja/terminal-config#enter-multiline-prompts) を実行しましたが、Claude Code が Zed の `keymap.json` の更新を完了できなかったため、ファイルは元のまま残されました。

3843 3866 

3844各メッセージにはキーマップのパスが示され、末尾には自分で追加するためのキーボードショートカットのブロックが含まれます。3867各メッセージにはキーマップのパスが示され、最後に自分で追加するためのキーボードショートカットのブロックが示されます。

3845 3868 

3846```text theme={null}3869```text theme={null}

3847Couldn't update your Zed keymap, so it was left unchanged.3870Couldn't update your Zed keymap, so it was left unchanged.


3849{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3872{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3850```3873```

3851 3874 

3852メッセージの最初の行が原因を示します。3875メッセージの最初の行に原因が示されます。

3853 3876 

3854* `Couldn't read your Zed keymap, so it was left unchanged.`: ファイルの権限などの理由で、Claude Code がファイルを読み取れませんでした3877* `Couldn't read your Zed keymap, so it was left unchanged.`: ファイルの権限などの理由で、Claude Code がファイルを読み取れませんでした

3855* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: ファイルは読み取れましたが、`//` コメントや末尾のカンマを許容しても、キーボードショートカットのブロックの配列として解析できません3878* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: ファイルは正常に読み取れましたが、`//` コメントや末尾のカンマを許容しても、キーボードショートカットのブロックの配列として解析できません

3856* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code がファイルを隣の `.bak` バックアップにコピーできなかったため、何も変更しませんでした3879* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code がファイルを隣の `.bak` バックアップにコピーできなかったため、何も変更しませんでした

3857* `Couldn't update your Zed keymap, so it was left unchanged.`: マージした結果が、そのショートカットを含む有効なキーマップであることを検証できなかったため、Claude Code は書き込まずに破棄しました。キーが重複したキーボードショートカットのブロックがあると、これが発生することがあります3880* `Couldn't update your Zed keymap, so it was left unchanged.`: マージした結果が、キーボードショートカットを含む有効なキーマップとして検証されなかったため、Claude Code は書き込まずに破棄しました。キーが重複しているキーボードショートカットのブロックがあると、これが発生することがあります

3858 3881 

3859**対処方法:**3882**対処方法:**

3860 3883 

3861* メッセージに示されたパスにある `keymap.json` のトップレベルの配列に、メッセージ内のブロックをコピーしてください3884* メッセージのブロックを、メッセージに示されたパスにある `keymap.json` のトップレベルの配列にコピーしてください

3862* `isn't a readable list of keybindings` の場合は、構文エラーを修正するか、ファイルのトップレベルの値を配列にしてから、`/terminal-setup` を再度実行してください3885* `isn't a readable list of keybindings` の場合は、構文エラーを修正するか、ファイルのトップレベルの値を配列にしてから、`/terminal-setup` を再度実行してください

3863 3886 

3864v2.1.247 より前では、`/terminal-setup` は `//` コメントや末尾のカンマを使用した Zed のキーマップを解析できず、ショートカットがインストールされたと報告しながら、ファイル全体を自身のショートカットのみで置き換えていました。以前のバージョンで置き換えられたキーマップを復元するには、[複数行のプロンプトを入力する](/docs/ja/terminal-config#enter-multiline-prompts)で説明されている `.bak` バックアップファイルを使用してください。3887v2.1.247 より前では、`/terminal-setup` は `//` コメントや末尾のカンマを使用した Zed のキーマップを解析できず、ファイル全体を自身のキーボードショートカットだけで置き換えたうえで、キーボードショートカットがインストールされたと報告していました。以前のバージョンによって置き換えられたキーマップを復元するには、[複数行のプロンプトを入力する](/docs/ja/terminal-config#enter-multiline-prompts)で説明されている `.bak` バックアップファイルを使用してください。

3865 3888 

3866<h3 id="skill-usage-reports-are-not-available-on-this-connection">3889<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3867 この接続ではスキルの使用状況レポートを利用できない3890 Skill usage reports are not available on this connection

3868</h3>3891</h3>

3869 3892 

3870スマートフォンやブラウザから [Remote Control](/docs/ja/remote-control) 経由で [`/skill-doctor`](/docs/ja/skills#find-unused-skills) を実行しました。Claude Code はスキルの使用状況レポートを Remote Control 経由で送信せず、代わりに次のメッセージで応答します。3893スマートフォンやブラウザから [Remote Control](/docs/ja/remote-control) 経由で [`/skill-doctor`](/docs/ja/skills#find-unused-skills) を実行しました。Claude Code は Remote Control 経由ではスキルの使用状況レポートを送信せず、代わりに次のメッセージを返します。

3871 3894 

3872```text theme={null}3895```text theme={null}

3873Skill usage reports are not available on this connection.3896Skill usage reports are not available on this connection.


3875 3898 

3876**対処方法:**3899**対処方法:**

3877 3900 

3878* セッションを実行しているマシンのターミナルで `/skill-doctor` を実行するか、そのマシンで `claude -p "/skill-doctor"` を実行してください3901* セッションが実行されているマシンのターミナルで `/skill-doctor` を実行するか、そのマシンで `claude -p "/skill-doctor"` を実行してください

3879 3902 

3880<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3903<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3881 カスタム出力スタイルは Remote Control 経由では選択できない3904 Custom output styles can't be selected over Remote Control

3882</h3>3905</h3>

3883 3906 

3884モバイルアプリまたは Web から [Remote Control](/docs/ja/remote-control) 経由で [`/output-style`](/docs/ja/output-styles#change-your-output-style) を実行したか、セッションに中継されたメッセージでそのコマンドが届きました。このようなターンはアカウントの所有者から送られたものではない可能性があるため、Claude Code はそのターンでは[組み込みスタイル](/docs/ja/output-styles#built-in-output-styles)のみを一覧表示・選択し、コマンドがスタイルを一覧表示したとき、または指定された名前を認識できなかったときには常にこの通知を追加します。[カスタムスタイル](/docs/ja/output-styles#create-a-custom-output-style)の名前を指定した場合も、存在しない名前と同じ応答が返されます。3907モバイルアプリまたは Web から [Remote Control](/docs/ja/remote-control) 経由で [`/output-style`](/docs/ja/output-styles#change-your-output-style) を実行したか、このコマンドがセッションに中継されたメッセージで届きました。そのようなターンはアカウントの所有者からのものではない可能性があるため、Claude Code はそのターンでは[組み込みスタイル](/docs/ja/output-styles#built-in-output-styles)のみを一覧表示および選択し、コマンドがスタイルを一覧表示したとき、または指定した名前を認識できなかったときに、この通知を追加します。[カスタムスタイル](/docs/ja/output-styles#create-a-custom-output-style)の名前には、存在しない名前と同じ応答が返されます。

3885 3908 

3886```text theme={null}3909```text theme={null}

3887Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3910Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.


3889 3912 

3890**対処方法:**3913**対処方法:**

3891 3914 

3892* 組み込みスタイルを選択してください(例: `/output-style concise`)3915* `/output-style concise` などの組み込みスタイルを選択してください

3893* カスタムスタイルを使用するには、プロジェクトの `.claude/settings.local.json` で [`outputStyle`](/docs/ja/settings-reference#outputstyle) を設定するか、セッション自体にターミナルがある場合はそこで `/output-style <style>` を実行してください3916* カスタムスタイルを使用するには、プロジェクトの `.claude/settings.local.json` で [`outputStyle`](/docs/ja/settings-reference#outputstyle) を設定するか、セッション自体にターミナルがある場合はそこで `/output-style <style>` を実行してください

3894 3917 

3895<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3918<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3896 出力スタイルはこのセッションが読み込まないローカル設定に保存される3919 Output styles are saved to local settings which this session doesn't load

3897</h3>3920</h3>

3898 3921 

3899設定ソースから `local` を除外しているセッションで、`/output-style <style>` または `/config outputStyle=<style>` を使って[出力スタイル](/docs/ja/output-styles)を切り替えようとしました。たとえば、[`settingSources`](/docs/ja/agent-sdk/typescript#options) で `"local"` を除外している [Agent SDK](/docs/ja/agent-sdk/typescript) のセッションや、`local` を除外した [`--setting-sources`](/docs/ja/cli-reference#cli-flags) の値で開始した CLI セッションが該当します。どちらのコマンドもスタイルを `.claude/settings.local.json` に保存しますが、このようなセッションはこのファイルを読み込まないため、Claude Code は効果のない設定を書き込むのではなく、処理を拒否します。3922設定ソースから `local` が除外されているセッションで、`/output-style <style>` または `/config outputStyle=<style>` を使って[出力スタイル](/docs/ja/output-styles)を切り替えようとしました。例としては、[`settingSources`](/docs/ja/agent-sdk/typescript#options) に `"local"` が含まれていない [Agent SDK](/docs/ja/agent-sdk/typescript) セッションや、`local` を含まない [`--setting-sources`](/docs/ja/cli-reference#cli-flags) の値で開始された CLI セッションがあります。どちらのコマンドもスタイルを `.claude/settings.local.json` に保存しますが、このようなセッションはこのファイルを読み込まないため、Claude Code は効果のない設定を書き込む代わりに拒否します。

3900 3923 

3901```text theme={null}3924```text theme={null}

3902Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3925Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.


3905**対処方法:**3928**対処方法:**

3906 3929 

3907* セッションの設定ソースに `local` を追加してから、再度切り替えてください3930* セッションの設定ソースに `local` を追加してから、再度切り替えてください

3908* プロジェクトの `.claude/settings.json` や `~/.claude/settings.json` など、セッションが読み込む設定ファイルで [`outputStyle`](/docs/ja/settings-reference#outputstyle) キーを設定してください。TypeScript SDK では、代わりにインラインの `settings` オブジェクト内で `outputStyle` を設定します。[出力スタイルを有効にする](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください3931* プロジェクトの `.claude/settings.json` や `~/.claude/settings.json` など、セッションが読み込む設定ファイルで [`outputStyle`](/docs/ja/settings-reference#outputstyle) キーを設定してください。TypeScript SDK では、代わりにインラインの `settings` オブジェクト内で `outputStyle` を設定してください。[出力スタイルを有効にする](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください

3909 3932 

3910<h3 id="recap-only-runs-when-you-ask-for-it-yourself">3933<h3 id="recap-only-runs-when-you-ask-for-it-yourself">

3911 /recap は自分で要求した場合にのみ実行される3934 /recap only runs when you ask for it yourself

3912</h3>3935</h3>

3913 3936 

3914[`/recap`](/docs/ja/interactive-mode#session-recap) のリクエストがユーザー自身の入力から送られたものではありませんでした。Slack、Teams、または[プロジェクト](/docs/ja/claude-projects)のスレッドからセッションに中継されたメッセージで届いたか、[ルーティン](/docs/ja/routines)や別のプログラムが送信したプロンプトで届きました。3937[`/recap`](/docs/ja/interactive-mode#session-recap) のリクエストがユーザー自身の入力によるものではありませんでした。Slack、Teams、または[プロジェクト](/docs/ja/claude-projects)のスレッドからセッションに中継されたメッセージ、あるいは[ルーティン](/docs/ja/routines)や別のプログラムが送信したプロンプトで届きました。

3915 3938 

3916中継されたメッセージは、自分で書いたものであっても通知の対象になります。Claude Code は、中継されたメッセージや自動化されたメッセージがセッションを実行しているアカウントの本人から送られたものかどうかを判別できないため、要約の代わりに次の通知で応答します。3939中継されたメッセージは、ユーザー自身が書いたものであってもこの通知を受け取ります。Claude Code は、中継されたメッセージや自動化されたメッセージが、セッションを実行しているアカウントの本人からのものかどうかを判別できないため、要約の代わりに次の通知で応答します。

3917 3940 

3918```text theme={null}3941```text theme={null}

3919/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.3942/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.

3920```3943```

3921 3944 

3922`claude -p` に渡した `/recap` や、自分の [Agent SDK](/docs/ja/agent-sdk/overview) アプリケーションが起動したセッションに送信した `/recap` は、ユーザー自身の入力として扱われます。3945`claude -p` に渡した `/recap` や、ユーザー自身の [Agent SDK](/docs/ja/agent-sdk/overview) アプリケーションが起動したセッションに送信した `/recap` は、ユーザー自身の入力として扱われます。

3923 3946 

3924**対処方法:**3947**対処方法:**

3925 3948 

3926* セッションを自分で開き、そこで `/recap` を実行してください。実行場所は、そのセッションのターミナル、[デスクトップアプリ](/docs/ja/desktop)または[モバイルアプリ](/docs/ja/mobile)、[claude.ai/code](https://claude.ai/code)、または [Remote Control](/docs/ja/remote-control) 経由です3949* セッションを自分で開き、そこで `/recap` を実行してください。セッションのターミナル、[デスクトップアプリ](/docs/ja/desktop)や[モバイルアプリ](/docs/ja/mobile)、[claude.ai/code](https://claude.ai/code)、または [Remote Control](/docs/ja/remote-control) 経由で実行できます

3927* ルーティンや別のプログラムが送信した場合は、そのプロンプトから `/recap` を削除してください3950* ルーティンや別のプログラムが送信した場合は、そのプロンプトから `/recap` を削除してください

3928 3951 

3929<h2 id="plugin-errors">3952<h2 id="plugin-errors">


4593* または、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を容量のあるファイルシステム上のディレクトリに設定して Claude Code を再起動します4616* または、[`CLAUDE_CODE_TMPDIR`](/docs/ja/env-vars) を容量のあるファイルシステム上のディレクトリに設定して Claude Code を再起動します

4594* その後、Claude にコマンドを再度実行させます。コマンドが出力した内容は、切り詰められたのではなく失われています4617* その後、Claude にコマンドを再度実行させます。コマンドが出力した内容は、切り詰められたのではなく失われています

4595 4618 

4619<h3 id="file-is-not-valid-utf-8">

4620 File is not valid UTF-8

4621</h3>

4622 

4623Claude が、バイトを UTF-8 としてデコードできないファイルに対して Edit または NotebookEdit ツールを使用したため、Claude Code は変更を拒否しました。何も書き込まれていないため、ファイルは元のままです。これらのツールはファイル全体を UTF-8 として保存し直すため、デコードできなかったすべてのバイトが置換文字 `U+FFFD` に変わってしまうところでした。メッセージはツール結果に表示されます。

4624 

4625```text wrap theme={null}

4626File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.

4627```

4628 

4629UTF-8 であるはずのファイルでも、無効なバイトシーケンスが 1 つでも含まれていればこのメッセージが表示されます。チェックはファイルのバイト全体を対象とするためです。

4630 

4631**What to do:**

4632 

4633* ファイルを現在のエンコーディングのまま保持するには、メッセージが指示するとおり、そのエンコーディングでファイルを読み書きするシェルコマンドで Claude に変更を行わせます

4634* Edit ツールでファイルの編集を続けるには、ファイルを UTF-8 に変換するか、UTF-8 であるはずのファイルの場合は無効なバイトを修正してから、Claude に再度編集を依頼します

4635 

4636v2.1.296 より前は、Edit と NotebookEdit はこのような編集を適用し、デコードできなかったすべてのバイトを `U+FFFD` として保存していました。これらのバージョンを使用している場合は、Claude Code をアップデートしてください。

4637 

4596<h3 id="the-source-file-is-not-valid-utf-8-text">4638<h3 id="the-source-file-is-not-valid-utf-8-text">

4597 The source file is not valid UTF-8 text4639 The source file is not valid UTF-8 text

4598</h3>4640</h3>


4752 worktree 分離チェックによってコマンドがブロックされました4794 worktree 分離チェックによってコマンドがブロックされました

4753</h3>4795</h3>

4754 4796 

4755Claude は、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)で Bash または Monitor コマンドを実行し、Claude Code は 2 つの理由のいずれかでそれを拒否しました:4797Claude は、[worktree に分離されたセッション](/docs/ja/worktrees#how-claude-code-enforces-isolation)で Bash、[PowerShell](/docs/ja/tools-reference#powershell-tool)、または [Monitor](/docs/ja/tools-reference#monitor-tool) コマンドを実行し、Claude Code は次のいずれかの理由でそれを拒否しました:

4756 4798 

4757* コマンドは git をメインチェックアウトに指します。4799* コマンドがメインチェックアウトまたは別の worktree で実行されることになります。メッセージには、作業ディレクトリが `resolved to the shared checkout` または `is in a different worktree` と表示されます。

4758* Claude Code は、コマンドテキストからコマンドが実行する git が worktree 内に留まることを確認できません。git に名前を付けないコマンドでも、`${!name}` などの変数間接参照を展開するか、`${ command; }` などの Bash 関数置換を実行すると、実行時に生成される値自体がコマンドになり得るため、この理由で拒否される可能性があります。4800* Bash または Monitor コマンドが git をメインチェックアウトに向けています。

4801* Claude Code は、Bash または Monitor コマンドのテキストから、コマンドが実行する git が worktree 内に留まることを確認できません。git に名前を付けないコマンドでも、`${!name}` などの変数間接参照を展開するか、`${ command; }` などの Bash 関数置換を実行すると、実行時に生成される値自体がコマンドになり得るため、この理由で拒否される可能性があります。

4759 4802 

4760メッセージの中央は、検証できなかったものに名前を付けます:4803メッセージには `is isolated in the worktree <path>, but this command` に続けて理由が表示されます。以下は、Claude Code がテキストを検証できなかったコマンドの例です:

4761 4804 

4762```text wrap theme={null}4805```text wrap theme={null}

4763This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.4806This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.


4765 4808 

4766**対処方法:**4809**対処方法:**

4767 4810 

4768* 通常は何もしません:Claude はメッセージを読み、最後の文が要求する方法でコマンドを書き直します4811* **git がメインチェックアウトに向けられている場合、またはコマンドテキストを検証できない場合**:何もする必要はありません。Claude はメッセージを読み、最後の文が要求する方法でコマンドを書き直します。要求したコマンドがテキスト内の展開のために拒否され続ける場合、フラグが付いた値をリテラルで記述し、git を worktree 内から独立したプレーンなコマンドとして実行します

4769* 要求したコマンドが拒否され続ける場合、フラグが付いた値をリテラルでスペルします:間接参照または置換をその値に置き換え、git を worktree 内から独自のプレーンコマンドとして実行します

4770* メインチェックアウトで意図的に動作するには、セッション外のターミナルでコマンドを自分で実行します4812* メインチェックアウトで意図的に動作するには、セッション外のターミナルでコマンドを自分で実行します

4771 4813 

4772<h3 id="this-session-has-no-saved-transcript">4814<h3 id="this-session-has-no-saved-transcript">


4946* または、存在するエージェントを指定して `--agent <name>` で再開し、セッションをそのエージェントとして実行します4988* または、存在するエージェントを指定して `--agent <name>` で再開し、セッションをそのエージェントとして実行します

4947* エージェントがプロジェクトスコープで、セッションの元のディレクトリを信頼していない場合、そこで Claude Code を 1 回実行し、信頼ダイアログを受け入れてから、再度再開します4989* エージェントがプロジェクトスコープで、セッションの元のディレクトリを信頼していない場合、そこで Claude Code を 1 回実行し、信頼ダイアログを受け入れてから、再度再開します

4948 4990 

4991<h3 id="restarted-after-its-next-loop-wakeup-was-due">

4992 This session restarted after its next /loop wakeup was due

4993</h3>

4994 

4995[バックグラウンドセッション](/docs/ja/agent-view)の[自己ペースの `/loop`](/docs/ja/scheduled-tasks#let-claude-choose-the-interval)が停止しました。ループが次のウェイクアップを待っている間にセッションのプロセスが終了し、セッションの[次のプロセス](/docs/ja/agent-view#the-supervisor-process)が開始する前にそのウェイクアップの予定時刻が過ぎました。逃したウェイクアップが遅れて発火することはありません。通知には、セッションが再開した時点でウェイクアップがどれだけ遅れていたかが示されます:

4996 

4997```text theme={null}

4998This session restarted 12m after its next /loop wakeup was due, so that wakeup will not fire. The loop stays stopped until Claude schedules it again: reply to continue it.

4999```

5000 

5001v2.1.295 より前では、この状況でループは通知なしに停止していました。

5002 

5003**対処方法:**

5004 

5005* ループを続行するには、[セッションに返信](/docs/ja/agent-view#peek-and-reply)してその旨を伝えます(例:`keep the loop running`)。Claude は返信と一緒に通知を読み、次のウェイクアップをスケジュールできます

5006* ループが不要な場合は、何もする必要はありません。ループは既に停止しています

5007 

4949<h3 id="claude_code_process_wrapper-launcher-errors">5008<h3 id="claude_code_process_wrapper-launcher-errors">

4950 CLAUDE\_CODE\_PROCESS\_WRAPPER ランチャーエラー5009 CLAUDE\_CODE\_PROCESS\_WRAPPER ランチャーエラー

4951</h3>5010</h3>

headless.md +57 −62

Details

89* **[Monitor](/docs/ja/tools-reference#monitor-tool) ウォッチ**: 実行は、ウォッチがタイムアウトするか 10 分の上限が待機を終了するか、どちらか先に来た方まで待機します。待機中、Claude はウォッチが報告することに応答し続けます。デフォルトでは、ウォッチは Claude が開始してから 5 分後にタイムアウトします。89* **[Monitor](/docs/ja/tools-reference#monitor-tool) ウォッチ**: 実行は、ウォッチがタイムアウトするか 10 分の上限が待機を終了するか、どちらか先に来た方まで待機します。待機中、Claude はウォッチが報告することに応答し続けます。デフォルトでは、ウォッチは Claude が開始してから 5 分後にタイムアウトします。

90* **保留中のウェイクアップ**: プロンプトを `--input-format stream-json` ではなくテキストとして渡した実行で、Claude が [自己ペースの `/loop` ウェイクアップ](/docs/ja/scheduled-tasks#let-claude-choose-the-interval) をスケジュールした場合、実行は各ウェイクアップが発生するのを待ち、[ループが終了する](/docs/ja/scheduled-tasks#stop-a-loop) までその反復を実行します。これは 10 分の上限を超えても続きます。90* **保留中のウェイクアップ**: プロンプトを `--input-format stream-json` ではなくテキストとして渡した実行で、Claude が [自己ペースの `/loop` ウェイクアップ](/docs/ja/scheduled-tasks#let-claude-choose-the-interval) をスケジュールした場合、実行は各ウェイクアップが発生するのを待ち、[ループが終了する](/docs/ja/scheduled-tasks#stop-a-loop) までその反復を実行します。これは 10 分の上限を超えても続きます。

91 91 

92stderr がターミナルで、実行が 5 秒間待機した場合、Claude Code は `Waiting for background work to finish` で始まり、待機中の作業を示す行を stderr に出力します。[`json` または `stream-json` 出力](#get-structured-output) では、この行は stdout がターミナルでない場合にのみ出力されるため、スクリプトが読み取る JSON にこの行が含まれることはありません。

93 

92実行が [`--max-budget-usd`](/docs/ja/cli-reference#cli-flags) の上限に達した場合、Claude Code は待機せずに残りのバックグラウンド作業を停止します。94実行が [`--max-budget-usd`](/docs/ja/cli-reference#cli-flags) の上限に達した場合、Claude Code は待機せずに残りのバックグラウンド作業を停止します。

93 95 

94バックグラウンド作業によって別のターンが開始された場合、デフォルトの `text` 出力では各ターンの結果が出力され、`json` 出力では最後のターンの結果が出力されます。v2.1.295 より前は、`text` 出力でも最後のターンの結果のみが出力されていました。96バックグラウンド作業によって別のターンが開始された場合、デフォルトの `text` 出力では各ターンの結果が出力され、`json` 出力では最後のターンの結果が出力されます。v2.1.295 より前は、`text` 出力でも最後のターンの結果のみが出力されていました。


116 例118 例

117</h2>119</h2>

118 120 

119これらの例は、一般的な CLI パターンを強調しています。`auth.py` や `build-error.txt` などのファイルを指定するコマンドの場合は、自分のプロジェクトのファイルに置き換えてください。CI やその他のスクリプト環境では、[`--bare`](#start-faster-with-bare-mode) を追加して、Claude Code がホストの hooks、plugins、auto memory、または `CLAUDE.md` を読み込まずに起動するようにしてください。121これらの例は、一般的な CLI パターンを紹介しています。`auth.py` や `build-error.txt` などのファイルを指定するコマンドの場合は、自分のプロジェクトのファイルに置き換えてください。CI やその他のスクリプト環境では、[`--bare`](#start-faster-with-bare-mode) を追加して、Claude Code がホストのフック、プラグイン、自動メモリ、または `CLAUDE.md` を読み込まずに起動するようにしてください。

120 122 

121<h3 id="pipe-data-through-claude">123<h3 id="pipe-data-through-claude">

122 Claude にデータをパイプする124 Claude にデータをパイプする

123</h3>125</h3>

124 126 

125非対話モードは stdin を読み込むため、他のコマンドラインツールと同様にデータをパイプして応答をリダイレクトできます。127非対話モードは stdin を読み込むため、他のコマンドラインツールと同様にデータをパイプで渡し、応答をリダイレクトできます。

126 128 

127この例は、ビルドログを Claude にパイプして、説明をファイルに書き込みます。129この例は、ビルドログを Claude にパイプして、説明をファイルに書き込みます。

128 130 


130cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt132cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

131```133```

132 134 

133`--output-format json` を使用すると、応答ペイロードに `total_cost_usd` とモデルごとのコスト内訳が含まれるため、スクリプト呼び出し元は [usage dashboard](/docs/ja/costs) を参照せずに支出を追跡できます。`--continue` または `--resume` で以前の会話を続ける場合、実行は会話全体の合計を報告し、[以前の実行の支出を含めて](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。両方の数値は [client-side estimates](/docs/ja/agent-sdk/cost-tracking) であり、実際の請求額と異なる場合があります。135`--output-format json` を使用すると、応答ペイロードに `total_cost_usd` とモデルごとのコスト内訳が含まれるため、スクリプトの呼び出し元は [使用状況ダッシュボード](/docs/ja/costs) を参照せずに支出を追跡できます。`--continue` または `--resume` で以前の会話を続ける場合、実行は[以前の実行の支出を含めた](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)会話全体の合計を報告します。どちらの数値も[クライアント側の推定値](/docs/ja/agent-sdk/cost-tracking)であり、実際の請求額と異なる場合があります。

134 136 

135<Note>137<Note>

136 パイプされた stdin は 10MB に制限されています。制限を超えた場合、Claude Code は明確なエラーメッセージを表示して終了し、ゼロ以外のステータスを返します。より大きな入力を処理するには、コンテンツをファイルに書き込み、パイプする代わりにプロンプトでファイルパスを参照してください。138 パイプされた stdin は 10MB に制限されています。制限を超えた場合、Claude Code は明確なエラーを表示して終了し、ゼロ以外のステータスを返します。より大きな入力を処理するには、コンテンツをファイルに書き込み、パイプする代わりにプロンプトでファイルパスを参照してください。

137</Note>139</Note>

138 140 

139Claude Code が stdin を読み込めない場合(例えば、それを開始したプロセスが終了した場合)、Claude Code は stderr に警告を出力して、コマンドラインからのプロンプトで続行します。v2.1.211 より前では、Windows で読み込み不可能な stdin はセッションをクラッシュさせるか、出力なしで静かに終了していました。141Claude Code が stdin を読み込めない場合(例えば、Claude Code を起動したプロセスが自分側の接続を切断した場合)、Claude Code は stderr に警告を出力し、コマンドラインから渡されたプロンプトで続行します。v2.1.211 より前では、Windows で stdin を読み込めないとセッションがクラッシュするか、出力なしで静かに終了していました。

140 142 

141<h3 id="add-claude-to-a-build-script">143<h3 id="add-claude-to-a-build-script">

142 ビルドスクリプトに Claude を追加する144 ビルドスクリプトに Claude を追加する


144 146 

145非対話呼び出しをスクリプトでラップして、Claude をプロジェクト固有のリンターまたはレビュアーとして使用できます。147非対話呼び出しをスクリプトでラップして、Claude をプロジェクト固有のリンターまたはレビュアーとして使用できます。

146 148 

147この `package.json` スクリプトは `main` に対する diff をパイプして Claude に渡し、タイプミスを報告するよう指示します。diff をパイプすることで、Claude は Bash 権限がなくても読み込むことができ、エスケープされたダブルクォートはスクリプトを Windows に対応させます。149この `package.json` スクリプトは `main` に対する差分を Claude にパイプし、タイプミスを報告するよう指示します。差分をパイプすることで、Claude はそれを読むための Bash 権限を必要とせず、エスケープされたダブルクォートによってスクリプトを Windows でも使用できます。

148 150 

149```json theme={null}151```json theme={null}

150{152{


166* `json`:結果、セッション ID、メタデータを含む構造化 JSON168* `json`:結果、セッション ID、メタデータを含む構造化 JSON

167* `stream-json`:リアルタイムストリーミング用の改行区切り JSON169* `stream-json`:リアルタイムストリーミング用の改行区切り JSON

168 170 

169この例は、プロジェクト概要を JSON で返し、セッションメタデータを含め、テキスト結果は `result` フィールドに入ります。171この例は、プロジェクト概要をセッションメタデータ付きの JSON で返し、テキスト結果は `result` フィールドに入ります。

170 172 

171```bash theme={null}173```bash theme={null}

172claude -p "Summarize this project" --output-format json174claude -p "Summarize this project" --output-format json


182 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'

183```185```

184 186 

185値が有効な JSON Schema でない場合、`claude` は `Error: --json-schema is not a valid JSON Schema` で終了し、その後にバリデータの診断が続きます。Claude Code は `format` キーワード(例:`"format": "email"`)を使用するスキーマを受け入れますが、`format` を注釈として扱い、強制しません。v2.1.205 より前では、Claude Code は無効なスキーマを静かに無視して非構造化テキストを返し、`format` を含むスキーマを無効として扱っていました。187値が有効な JSON Schema でない場合、`claude` は `Error: --json-schema is not a valid JSON Schema` とそれに続くバリデータの診断を出力して終了します。Claude Code は `format` キーワード(例:`"format": "email"`)を使用するスキーマを受け入れますが、`format` を注釈として扱い、強制はしません。v2.1.205 より前では、Claude Code は無効なスキーマを静かに無視して非構造化テキストを返し、`format` を含むスキーマをすべて無効として扱っていました。

186 188 

187<Tip>189<Tip>

188 [jq](https://jqlang.org/) などのツールを使用して応答を解析し、特定のフィールドを抽出します。190 [jq](https://jqlang.org/) などのツールを使用して応答を解析し、特定のフィールドを抽出します。

189 191 

190 ```bash theme={null}192 ```bash theme={null}

191 # テキスト結果を抽出193 # Extract the text result

192 claude -p "Summarize this project" --output-format json | jq -r '.result'194 claude -p "Summarize this project" --output-format json | jq -r '.result'

193 195 

194 # 構造化出力を抽出196 # Extract structured output

195 claude -p "Extract function names from auth.py" \197 claude -p "Extract function names from auth.py" \

196 --output-format json \198 --output-format json \

197 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}' \199 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}' \


203 応答をストリーミングする205 応答をストリーミングする

204</h3>206</h3>

205 207 

206`--output-format stream-json` を `--verbose` と `--include-partial-messages` と共に使用して、生成されるトークンをリアルタイムで受け取ります。各行は、イベントを表す JSON オブジェクトです。208`--output-format stream-json` を `--verbose` および `--include-partial-messages` と共に使用すると、生成されたトークンを順次受け取れます。各行は、イベントを表す JSON オブジェクトです。

207 209 

208```bash theme={null}210```bash theme={null}

209claude -p "Explain recursion" --output-format stream-json --verbose --include-partial-messages211claude -p "Explain recursion" --output-format stream-json --verbose --include-partial-messages


211 213 

212ストリームの最後の行は、最終応答テキスト、コスト、セッションメタデータを含む `result` メッセージです。214ストリームの最後の行は、最終応答テキスト、コスト、セッションメタデータを含む `result` メッセージです。

213 215 

214コンシューマーがストリームをゆっくり読む場合、Claude Code はキューに入った出力がドレインされるまで待機し、待機時間をまだキューに入っているもの量に応じてスケーリングし、最大 30 秒に制限されます。v2.1.214 より前では、終了待機は約 2 秒に制限されており、大きな応答の終わりが切り取られる可能性がありました。216コンシューマーがストリームをゆっくり読む場合、Claude Code はキューに入った出力が排出されるまで待機してから終了します。待機時間はまだキューに残っている量に応じて伸び、上限は 30 秒です。v2.1.214 より前では、終了時の待機の上限は約 2 秒であり、大きな応答の末尾が切り捨てられる可能性がありました。

215 217 

216次の例は [jq](https://jqlang.org/) を使用してテキストデルタをフィルタリングし、ストリーミングテキストのみを表示します。`-r` フラグは生の文字列(引用符なし)を出力し、`-j` は改行なしで結合するため、トークンが途切れなくストリーミングされます。218次の例は [jq](https://jqlang.org/) を使用してテキストデルタをフィルタリングし、ストリーミングテキストのみを表示します。`-r` フラグは生の文字列(引用符なし)を出力し、`-j` は改行なしで結合するため、トークンが途切れなくストリーミングされます。

217 219 


220 jq -rj 'select(.type == "stream_event" and .event.delta.type? == "text_delta") | .event.delta.text'222 jq -rj 'select(.type == "stream_event" and .event.delta.type? == "text_delta") | .event.delta.text'

221```223```

222 224 

223コールバックとメッセージオブジェクトを使用したプログラマティックストリーミングについては、Agent SDK ドキュメントの [Stream responses in real-time](/docs/ja/agent-sdk/streaming-output) を参照してください。225コールバックとメッセージオブジェクトを使用したプログラムによるストリーミングについては、Agent SDK ドキュメントの[リアルタイムで応答をストリーミングする](/docs/ja/agent-sdk/streaming-output)を参照してください。

224 226 

225<h4 id="follow-subagent-messages">227<h4 id="follow-subagent-messages">

226 サブエージェントメッセージをフォローする228 サブエージェントのメッセージを追跡する

227</h4>229</h4>

228 230 

229[サブエージェント](/docs/ja/sub-agents)からのメッセージと、[サブエージェントで実行される](/docs/ja/skills#run-skills-in-a-subagent)スキルからのメッセージは、ストリームに `assistant` および `user` メッセージとして表示されます。その `parent_tool_use_id` フィールドは、各メッセージがどの実行に属するかを示します。メインの会話からのメッセージは、このフィールドに `null` を持ちます。231[サブエージェント](/docs/ja/sub-agents)からのメッセージと、[サブエージェントで実行される](/docs/ja/skills#run-skills-in-a-subagent)スキルからのメッセージは、ストリームに `assistant` および `user` メッセージとして表示されます。その `parent_tool_use_id` フィールドは、各メッセージがどの実行に属するかを示します。メインの会話からのメッセージは、このフィールドに `null` を持ちます。


254* **`/<skill-name>` をプロンプトとして渡して開始したフォークされたスキルのメッセージ**:v2.1.287 以降256* **`/<skill-name>` をプロンプトとして渡して開始したフォークされたスキルのメッセージ**:v2.1.287 以降

255 257 

256<h4 id="handle-api-retries">258<h4 id="handle-api-retries">

257 API 再試行を処理する259 API の再試行を処理する

258</h4>260</h4>

259 261 

260API リクエストが再試行可能なエラーで失敗すると、Claude Code は再試行する前に `system/api_retry` イベントを発行します。v2.1.246 以降では、`401` または `403` が [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) 認証情報を拒否する場合、Claude Code は最初の 2 回の再試行を静かに行い、イベントなしで実行してから、3 回目の連続再試行からイベントを通常通り発行します。静かな再試行は依然として `attempt` にカウントされます。イベントを使用して、独自のインターフェースで再試行の進行状況を表示できます。262API リクエストが再試行可能なエラーで失敗すると、Claude Code は再試行する前に `system/api_retry` イベントを発行します。v2.1.246 以降では、`401` または `403` によって [`apiKeyHelper`](/docs/ja/settings-reference#apikeyhelper) の認証情報が拒否された場合、Claude Code は最初の 2 回の再試行をイベントなしで静かに行い、3 回目の連続した再試行以降は通常どおりイベントを発行します。静かな再試行も `attempt` にカウントされます。このイベントを使用して、独自のインターフェースで再試行の進行状況を表示できます。

261 263 

262| フィールド | 型 | 説明 |264| フィールド | 型 | 説明 |

263| - | - | - |265| - | - | - |


276 セッションメタデータを読む278 セッションメタデータを読む

277</h4>279</h4>

278 280 

279`system/init` イベントは、モデル、ツール、MCP サーバー、読み込まれたプラグインを含むセッションメタデータを報告します。スタートアップイベントが先行しない限り、ストリームの最初のイベントです。281`system/init` イベントは、モデル、ツール、MCP サーバー、読み込まれたプラグインを含むセッションメタデータを報告します。起動時のイベントが先行しない限り、ストリームの最初のイベントです。

280 282 

281* `plugin_install` イベント([`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合)。283* `plugin_install` イベント([`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合)。

282* [`hook_started`、`hook_progress`、および `hook_response` イベント](/docs/ja/agent-sdk/typescript#sdkhookstartedmessage)(設定された [`SessionStart`](/docs/ja/hooks#sessionstart) または [`Setup`](/docs/ja/hooks#setup) hook が実行されている間)。これらは hook が生成するときにストリーミングされます。Claude Code v2.1.169 から v2.1.203 はそれらを hook 完了後に 1 つのバッチで配信し、依然として `system/init` より前でした。v2.1.204 はライブ配信を復元しました。284* [`hook_started`、`hook_progress`、および `hook_response` イベント](/docs/ja/agent-sdk/typescript#sdkhookstartedmessage)(設定された [`SessionStart`](/docs/ja/hooks#sessionstart) または [`Setup`](/docs/ja/hooks#setup) フックが実行されている間)。これらはフックが生成するたびにストリーミングされます。Claude Code v2.1.169 から v2.1.203 では、フックの完了後に 1 つのバッチで配信されていました(それでも `system/init` より前)。v2.1.204 でライブ配信が復元されました。

283 285 

284イベントは、このバージョンの Claude Code が実装するプロトコル動作を命名する文字列の optional `capabilities` 配列も含みます(例:`interrupt_receipt_v1` または `interrupt_cancel_queued_v1`)。バージョン文字列を比較する代わりに、これを使用して機能を検出し、認識しない値は無視してください。フィールドは Claude Code v2.1.205 以降が必要で、以前のバージョンでは存在しません。機能リストについては [`SDKSystemMessage`](/docs/ja/agent-sdk/typescript#sdksystemmessage) を参照してください。286このイベントには、この Claude Code バージョンが実装しているプロトコル動作を示す文字列の optional な `capabilities` 配列も含まれます(例:`interrupt_receipt_v1` や `interrupt_cancel_queued_v1`)。バージョン文字列を比較する代わりにこれを確認して機能を検出し、認識しない値は無視してください。このフィールドには Claude Code v2.1.205 以降が必要で、それより前のバージョンでは存在しません。機能の一覧については [`SDKSystemMessage`](/docs/ja/agent-sdk/typescript#sdksystemmessage) を参照してください。

285 287 

286<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">

287 プラグインまたは MCP サーバーが読み込まれない場合に CI を失敗させる289 プラグインまたは MCP サーバーが読み込まれない場合に CI を失敗させる

288</h4>290</h4>

289 291 

290`system/init` イベントのプラグインフィールドを使用して、読み込まれなかったプラグインをキャッチします。292`system/init` イベントのプラグインフィールドを使用して、読み込まれなかったプラグインを検出します。

291 293 

292| フィールド | 型 | 説明 |294| フィールド | 型 | 説明 |

293| - | - | - |295| - | - | - |

294| `plugins` | array | 正常に読み込まれたプラグイン(各々 `name` と `path` を含む) |296| `plugins` | array | 正常に読み込まれたプラグイン(各々 `name` と `path` を含む) |

295| `plugin_errors` | array | プラグイン読み込み時エラー(各々 `plugin`、`type`、`message` を含む)。満たされていない依存関係バージョンと `--plugin-dir` 読み込み失敗(パスの欠落やアーカイブが無効など)を含みます。影響を受けたプラグインは `plugins` から削除されます。エラーがない場合、キーは省略されます |297| `plugin_errors` | array | プラグイン読み込み時のエラー(各々 `plugin`、`type`、`message` を含む)。満たされていない依存関係のバージョンや、`--plugin-dir` の読み込み失敗(パスが存在しない、アーカイブが無効など)を含みます。読み込まれなかったプラグインは `plugins` に含まれません。エラーがない場合、キーは省略されます |

296 298 

297`--plugin-dir` ディレクトリまたはアーカイブ自体が読み込みに失敗した場合、その `plugin_errors` エントリは解決された絶対パスを `path` として含みます。複数の `--plugin-dir` 値のどれが失敗したかを判断するために使用します。`path` フィールドは Claude Code v2.1.283 以降が必要です。299`--plugin-dir` のディレクトリまたはアーカイブ自体の読み込みに失敗した場合、その `plugin_errors` エントリには解決された絶対パスが `path` として含まれます。複数の `--plugin-dir` 値のうちどれが失敗したかを判断するために使用します。`path` フィールドには Claude Code v2.1.283 以降が必要です。

298 300 

299MCP サーバーフィールドも同じ方法で使用します。301MCP サーバーのフィールドも同じ方法で使用します。`-p` で [`--mcp-config`](/docs/ja/cli-reference#cli-flags) を渡すと、Claude Code は最初のターンを実行する前に、まだ保留中のサーバーを [`MCP_TIMEOUT`](/docs/ja/env-vars) の起動タイムアウト(デフォルトは 30 秒)まで待機します。[キャッシュされたツールリスト](/docs/ja/agent-sdk/mcp#connection-timing)を持つリモートサーバーは待機をスキップし、`system/init` に `pending` と表示され、最初のツール呼び出し時に接続します。[セルフホスト環境](/docs/ja/self-hosted-environments-configuration#connection-timing)では、代わりにより短い待機が適用されます。この待機には Claude Code v2.1.221 以降が必要です。

300`-p` で [`--mcp-config`](/docs/ja/cli-reference#cli-flags) を渡す場合、Claude Code は最初のターンを実行する前に、まだ保留中のサーバーを待機します([`MCP_TIMEOUT`](/docs/ja/env-vars) スタートアップタイムアウト(デフォルト 30 秒)まで)。[cached tool list](/docs/ja/agent-sdk/mcp#connection-timing) を持つリモートサーバーは待機をスキップし、`system/init` に `pending` を表示し、最初のツール呼び出しで接続します。待機には Claude Code v2.1.221 以降が必要です。

301 302 

302Claude Code は起動時に各 `--mcp-config` エントリを検証し、検証に失敗したエントリをスキップします(例えば、`type` のない `url` エントリ)。実行は続行され、クリーンに終了するため、これらのフィールドをチェックして、読み込まれなかったサーバーをキャッチします。303Claude Code は起動時に各 `--mcp-config` エントリを検証し、検証に失敗したエントリ(例えば、`type` のない `url` エントリ)をスキップします。実行は続行されて正常に終了するため、これらのフィールドを確認して、読み込まれなかったサーバーを検出します。

303 304 

304| フィールド | 型 | 説明 |305| フィールド | 型 | 説明 |

305| - | - | - |306| - | - | - |

306| `mcp_servers` | array | セッション内の MCP サーバー(各々 `name` と `status` を含む) |307| `mcp_servers` | array | セッション内の MCP サーバー(各々 `name` と `status` を含む) |

307| `mcp_server_errors` | array | 設定検証によってスキップされた `--mcp-config` エントリ(各々 `name`、`type`、`message` を含む)。`type` はスキップカテゴリ(`unknown_type`、`url_missing_type`、`invalid_config`、`reserved_name` など)です。認識しない値は汎用スキップとして扱ってください。影響を受けたサーバーは `mcp_servers` から削除されます。エラーがない場合、キーは省略されるため、CI ゲートは空でない配列で失敗できます。Claude Code v2.1.219 以降が必要です |308| `mcp_server_errors` | array | 設定の検証によってスキップされた `--mcp-config` エントリ(各々 `name`、`type`、`message` を含む)。`type` はスキップカテゴリ(`unknown_type`、`url_missing_type`、`invalid_config`、`reserved_name` など)です。認識しない値は汎用的なスキップとして扱ってください。該当するサーバーは `mcp_servers` に含まれません。エラーがない場合、キーは省略されるため、CI ゲートは配列が空でない場合に失敗させることができます。Claude Code v2.1.219 以降が必要です |

308 309 

309コマンドを手でターミナルで実行する場合、Claude Code は stderr にスタートアップ警告も出力します(例:`Warning: 1 MCP server skipped due to invalid config:`)。その後に各スキップエントリの理由が続きます。stderr をリダイレクトする場合、または CI ランナーなどのプログラムがそれをキャプチャする場合、Claude Code は警告を出力せず、スキップされたエントリを `mcp_server_errors` フィールドでのみ報告します。警告には Claude Code v2.1.219 以降が必要です。310ターミナルでコマンドを手動で実行する場合、Claude Code は stderr に起動時の警告(例:`Warning: 1 MCP server skipped due to invalid config:`)も出力し、その後にスキップされた各エントリの理由が続きます。stderr をリダイレクトする場合、または CI ランナーや SDK ホストなどのプログラムがそれをキャプチャする場合、Claude Code は警告を出力せず、スキップされたエントリを `mcp_server_errors` フィールドでのみ報告します。この警告には Claude Code v2.1.219 以降が必要です。

310 311 

311<h4 id="track-plugin-installs">312<h4 id="track-plugin-installs">

312 プラグインインストールを追跡する313 プラグインのインストールを追跡する

313</h4>314</h4>

314 315 

315[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合、Claude Code は最初のターンの前にマーケットプレイスプラグインがインストールされている間、`system/plugin_install` イベントを発行します。これらを使用して、独自の UI にインストール進行状況を表示します。316[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合、Claude Code は最初のターンの前にマーケットプレイスのプラグインをインストールしている間、`system/plugin_install` イベントを発行します。これらを使用して、独自の UI にインストールの進行状況を表示します。

316 317 

317| フィールド | 型 | 説明 |318| フィールド | 型 | 説明 |

318| - | - | - |319| - | - | - |

319| `type` | `"system"` | メッセージタイプ |320| `type` | `"system"` | メッセージタイプ |

320| `subtype` | `"plugin_install"` | これをプラグインインストールイベントとして識別 |321| `subtype` | `"plugin_install"` | これをプラグインインストールイベントとして識別 |

321| `status` | `"started"`、`"installed"`、`"failed"`、または `"completed"` | `started` と `completed` は全体的なインストールをブラケットします。`installed` と `failed` は個別のマーケットプレイスを報告します |322| `status` | `"started"`、`"installed"`、`"failed"`、または `"completed"` | `started` と `completed` はインストール全体の開始と終了を示します。`installed` と `failed` は個々のマーケットプレイスについて報告します |

322| `name` | string、optional | マーケットプレイス名(`installed` と `failed` に存在) |323| `name` | string、optional | マーケットプレイス名(`installed` と `failed` に存在) |

323| `error` | string、optional | 失敗メッセージ(`failed` に存在) |324| `error` | string、optional | 失敗メッセージ(`failed` に存在) |

324| `uuid` | string | 一意のイベント識別子 |325| `uuid` | string | 一意のイベント識別子 |


328 ツールを自動承認する329 ツールを自動承認する

329</h3>330</h3>

330 331 

331`--allowedTools` を使用して、Claude が特定のツールをプロンプトなしで使用できるようにします。`Read` と `Edit` をリストすると、Claude はファイルを読み書きできます。`Bash` をリストすると、シェルコマンドについても同じことができます。ただし、[auto mode](/docs/ja/permission-modes#how-auto-mode-evaluates-actions) で開始される実行では、Claude Code は広いアロー ルールとして裸の `Bash` エントリをドロップし、auto mode が代わりに各コマンドを評価します。この例はテストスイートを実行して失敗を修正し、これら 3 つのツールをリストします。332`--allowedTools` を使用して、Claude が特定のツールを確認なしで使用できるようにします。`Read` と `Edit` を指定すると、Claude は権限を求めずにファイルを読み取り、編集できます。`Bash` を指定すると、シェルコマンドについても同様になります。ただし、[auto モード](/docs/ja/permission-modes#how-auto-mode-evaluates-actions)で開始される実行では、Claude Code は単独の `Bash` エントリを広すぎる許可ルールとして除外し、代わりに auto モードが各コマンドを評価します。この例は、これら 3 つのツールを指定してテストスイートを実行し、失敗を修正します。

332 333 

333```bash theme={null}334```bash theme={null}

334claude -p "Run the test suite and fix any failures" \335claude -p "Run the test suite and fix any failures" \

335 --allowedTools "Bash,Read,Edit"336 --allowedTools "Bash,Read,Edit"

336```337```

337 338 

338個別のツールをリストする代わりにセッション全体のベースラインを設定するには、[permission mode](/docs/ja/permission-modes) を渡します。権限モードを設定しない実行は、[built-in starting permission mode](/docs/ja/permission-modes#which-mode-a-session-starts-in) を取得します。これは `auto` の場合があるため、必要な権限モードを渡します。339個別のツールを指定する代わりにセッション全体のベースラインを設定するには、[権限モード](/docs/ja/permission-modes)を渡します。何も権限モードを設定しない実行は、[組み込みの開始時の権限モード](/docs/ja/permission-modes#which-mode-a-session-starts-in)になり、これは `auto` の場合があるため、使用したいモードを渡してください。

339 340 

340* **`auto`**:`--permission-mode auto` を渡して、ほとんどのアクションをあなたの代わりに分類器にレビューさせます341* **`auto`**:`--permission-mode auto` を渡すと、ユーザーに代わって分類器がほとんどのアクションをレビューします

341* **`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 ツールは、許可ルールが一致する場合でも拒否されます342* **`dontAsk`**:Claude Code は、本来なら確認を求めるすべての呼び出しを拒否します。これは制限された CI 実行に役立ちます。Manual モードで承認が不要なアクション(作業ディレクトリでのファイル読み取りや[読み取り専用コマンドセット](/docs/ja/permissions#read-only-commands)など)は引き続き実行され、`--allowedTools` エントリまたは `permissions.allow` ルールがカバーするアクションも実行されます。`AskUserQuestion`、[組織が `ask` に設定したコネクタツール](/docs/ja/mcp#organization-controls-on-connector-tools)、および [`requiresUserInteraction`](/docs/ja/mcp#require-approval-for-a-specific-tool) とマークされた MCP ツールは、許可ルールが一致する場合でも拒否されます

342* **`acceptEdits`**:Claude はプロンプトなしでファイルを書き込み、Claude Code は `mkdir`、`touch`、`mv`、`cp` などの一般的なファイルシステムコマンドを自動承認します。[actions no mode auto-approves](/docs/ja/permission-modes#actions-no-mode-auto-approves) は依然として適用されます。read-only command set を除き、他のシェルコマンドとネットワークリクエストは依然として `--allowedTools` エントリまたは `permissions.allow` ルールが必要です。[what `acceptEdits` auto-approves](/docs/ja/permission-modes#auto-approve-file-edits-with-acceptedits-mode) を参照して、完全なリストを確認してください343* **`acceptEdits`**:Claude は確認なしでファイルを書き込み、Claude Code は `mkdir`、`touch`、`mv`、`cp` などの一般的なファイルシステムコマンドを自動承認します。[どのモードでも自動承認されないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)は引き続き適用されます。読み取り専用コマンドセットを除き、その他のシェルコマンドとネットワークリクエストには引き続き `--allowedTools` エントリまたは `permissions.allow` ルールが必要です。完全なリストについては [`acceptEdits` が自動承認する内容](/docs/ja/permission-modes#auto-approve-file-edits-with-acceptedits-mode)を参照してください

343 344 

344この例は `acceptEdits` をベースラインとしてリント修正を適用します。345この例は `acceptEdits` をベースラインとしてリント修正を適用します。

345 346 


351 無人実行で権限プロンプトをオフにする352 無人実行で権限プロンプトをオフにする

352</h3>353</h3>

353 354 

354誰も権限プロンプトに答えられない場合(例えば、スケジュール済みジョブ)、`--permission-prompts none` を渡します。フラグは、実行に権限ホストがある場合に最も重要です。Agent SDK アプリ([`canUseTool` callback](/docs/ja/agent-sdk/user-input) を含む)、または [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) で渡す MCP ツール。フラグなしでは、実行は各権限リクエストに対してそのホストを待機します。355権限プロンプトに答えられる人がいない場合(例えば、スケジュール済みジョブ)は、`--permission-prompts none` を渡します。このフラグが最も重要になるのは、実行に権限ホストがある場合です。権限ホストとは、[`canUseTool` コールバック](/docs/ja/agent-sdk/user-input)を持つ Agent SDK アプリ、または [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) で渡す MCP ツールです。フラグがない場合、実行は各権限リクエストに対してそのホストが答えるのを待ちます。

355 356 

356フラグを使用すると、実行はホストを参照せず、それを待機しません。プロンプトするすべてのものは、`PermissionRequest` hook が許可しない限り拒否され、Claude には誰も要求を承認できず、再試行しないことが伝えられ、実行は続行されます。ホストのない `-p` 実行では、これらのリクエストはいずれにせよ拒否され、フラグは Claude に再試行しないことも伝えます。権限ルール、[`PermissionRequest` hooks](/docs/ja/hooks#permissionrequest)、および設定した権限モードは依然としてすべての呼び出しを最初に決定します。Claude Code は、他に何も解決しないリクエストのみを拒否します。357フラグを指定すると、実行はホストに問い合わせず、待機もしません。確認を求めることになるものはすべて、`PermissionRequest` フックが許可しない限り拒否され、Claude には誰もリクエストを承認できないため再試行しないよう伝えられ、実行は続行されます。ホストのない `-p` 実行では、これらのリクエストはいずれにしても拒否されますが、このフラグは Claude に再試行しないよう伝える役割も果たします。権限ルール、[`PermissionRequest` フック](/docs/ja/hooks#permissionrequest)、および設定した権限モードが引き続き最初にすべての呼び出しを判定し、Claude Code は他の何によっても解決されないリクエストのみを拒否します。

357 358 

358この例は [auto mode](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) で無人タスクを実行します。分類器は通常通り各アクションをレビューし、Claude Code はプロンプトにフォールバックしたであろうすべてのものを拒否します。359この例は [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)で無人タスクを実行します。分類器は通常どおり各アクションをレビューし、Claude Code はプロンプトにフォールバックするはずだったものをすべて拒否します。

359 360 

360```bash theme={null}361```bash theme={null}

361claude -p "Update the dependency pins and run the tests" --permission-mode auto --permission-prompts none362claude -p "Update the dependency pins and run the tests" --permission-mode auto --permission-prompts none

362```363```

363 364 

364`--permission-prompts none` を使用すると、Claude Code は [`AskUserQuestion`](/docs/ja/tools-reference#askuserquestion-tool-behavior) など、人からの答えが必要なツールを削除するため、Claude はそれらを呼び出すことができません。[`Elicitation` hook](/docs/ja/hooks#elicitation) が答えない [MCP elicitation request](/docs/ja/mcp#respond-to-mcp-elicitation-requests) はキャンセルされます。365`--permission-prompts none` を使用すると、Claude Code は [`AskUserQuestion`](/docs/ja/tools-reference#askuserquestion-tool-behavior) など人の回答を必要とするツールを削除するため、Claude はそれらを呼び出せません。[`Elicitation` フック](/docs/ja/hooks#elicitation)が応答しない [MCP エリシテーションリクエスト](/docs/ja/mcp#respond-to-mcp-elicitation-requests)はキャンセルされます。

365 366 

366`--output-format stream-json` を使用すると、拒否は `permission_denied` システムメッセージとして表示され、最終結果メッセージは `permission_denials` にそれらをリストします。367`--output-format stream-json` を使用すると、拒否は `permission_denied` システムメッセージとして表示され、最終結果メッセージの `permission_denials` にそれらが一覧表示されます。

367 368 

368<Note>369<Note>

369 `--permission-prompts` フラグには Claude Code v2.1.259 以降が必要です。以前のバージョンは不明なオプションエラーで拒否します。370 `--permission-prompts` フラグには Claude Code v2.1.259 以降が必要です。それより前のバージョンでは、不明なオプションのエラーで拒否されます。

370</Note>371</Note>

371 372 

372<h3 id="create-a-commit">373<h3 id="create-a-commit">


380 --allowedTools "Bash(git diff *),Bash(git log *),Bash(git status *),Bash(git commit *)"381 --allowedTools "Bash(git diff *),Bash(git log *),Bash(git status *),Bash(git commit *)"

381```382```

382 383 

383`--allowedTools` フラグは [permission rule syntax](/docs/ja/settings-reference#permission-rule-syntax) を使用します。末尾の ` *` はプレフィックスマッチングを有効にするため、`Bash(git diff *)` は `git diff` で始まるすべてのコマンドを許可します。スペースは `*` の前に重要です。なければ、`Bash(git diff*)` は `git diff-index` も一致させます。384`--allowedTools` フラグは[権限ルールの構文](/docs/ja/settings-reference#permission-rule-syntax)を使用します。末尾の ` *` はプレフィックスマッチングを有効にするため、`Bash(git diff *)` は `git diff` で始まるすべてのコマンドを許可します。`*` の前のスペースは重要です。スペースがないと、`Bash(git diff*)` は `git diff-index` にも一致します。

384 385 

385<Note>386<Note>

386 コマンドサポートは `-p` モードで異なります。387 `-p` モードでは、コマンドのサポート状況が異なります。

387 

388 * ユーザーが呼び出した [skills](/docs/ja/skills) とカスタムコマンドは機能します。プロンプト文字列に `/skill-name` を含めると、Claude Code は実行前にそれを展開します。

389 * ターミナルインターフェースでのみ実行される `/login` などの組み込みコマンドは利用できません。

390 *

391 

392 `/model`、`/effort`、`/fast`、`/color`、`/rename` は値を引数として受け入れます(例:`/model sonnet`)。`/mcp` は引数なしでサーバーステータスのテキスト概要を出力します。これらのフォームには Claude Code v2.1.205 以降が必要で、各コマンドの [availability notes](/docs/ja/commands#all-commands) に従います。

393 388 

389 * ユーザーが呼び出す[スキル](/docs/ja/skills)とカスタムコマンドは機能します。プロンプト文字列に `/skill-name` を含めると、Claude Code は実行前にそれを展開します。

390 * ターミナルインターフェースでのみ動作する `/login` などの組み込みコマンドは利用できません。

391 * `/model`、`/effort`、`/fast`、`/color`、`/rename` は値を引数として受け付け(例:`/model sonnet`)、`/mcp` は引数なしでサーバーステータスのテキスト概要を出力します。これらの形式には Claude Code v2.1.205 以降が必要で、各コマンドの[利用可能性に関する注記](/docs/ja/commands#all-commands)に従います。

394 * 設定を変更するには、`/config` に `key=value` を渡します(例:`/config thinking=false`)。392 * 設定を変更するには、`/config` に `key=value` を渡します(例:`/config thinking=false`)。

395 *393 * `/output-style <style>` は[出力スタイル](/docs/ja/output-styles)を切り替え、`/output-style` 単体ではそれらを一覧表示します。Claude Code v2.1.269 以降が必要です。

396 

397 `/output-style <style>` は [output styles](/docs/ja/output-styles) を切り替え、`/output-style` のみはそれらをリストします。Claude Code v2.1.269 以降が必要です。

398</Note>394</Note>

399 395 

400<h3 id="customize-the-system-prompt">396<h3 id="customize-the-system-prompt">

401 システムプロンプトをカスタマイズする397 システムプロンプトをカスタマイズする

402</h3>398</h3>

403 399 

404`--append-system-prompt` を使用して、Claude Code のデフォルト動作を保持しながら指示を追加します。この例は PR diff を Claude にパイプして、セキュリティ脆弱性をレビューするよう指示します。シェルスクリプトとして保存します(例:`review.sh`)。400`--append-system-prompt` を使用して、Claude Code のデフォルト動作を保持しながら指示を追加します。この例は PR の差分を Claude にパイプし、セキュリティ脆弱性をレビューするよう指示します。シェルスクリプトとして保存します(例:`review.sh`)。

405 401 

406```bash theme={null}402```bash theme={null}

407gh pr diff "$1" | claude -p \403gh pr diff "$1" | claude -p \


409 --output-format json405 --output-format json

410```406```

411 407 

412スクリプトでは、`"$1"` はコマンドラインで渡す最初の引数を表します。`bash review.sh 123` を実行すると、シェルは `"$1"` を `123` に置き換えるため、スクリプトは PR 123 の diff をフェッチします。Claude Code はレビューを JSON として出力し、テキストは `result` フィールドにあります。408スクリプト内の `"$1"` は、コマンドラインで渡す最初の引数を表します。`bash review.sh 123` を実行すると、シェルは `"$1"` を `123` に置き換えるため、スクリプトは PR 123 の差分を取得します。Claude Code はレビューを JSON として出力し、テキストは `result` フィールドに入ります。

413 409 

414詳細については、[system prompt flags](/docs/ja/cli-reference#system-prompt-flags) を参照してください。`--system-prompt` を使用してデフォルトプロンプトを完全に置き換えるオプションも含まれています。410デフォルトのプロンプトを完全に置き換える `--system-prompt` を含むその他のオプションについては、[システムプロンプトフラグ](/docs/ja/cli-reference#system-prompt-flags)を参照してください。

415 411 

416<h3 id="continue-conversations">412<h3 id="continue-conversations">

417 会話を続ける413 会話を続ける

418</h3>414</h3>

419 415 

420`--continue` を使用して最新の会話を続けるか、`--resume` をセッション ID と共に使用して特定の会話を続けます。416`--continue` を使用して最新の会話を続けるか、`--resume` をセッション ID と共に使用して特定の会話を続けます。Claude Code v2.1.257 以降では、`--continue` を渡すと、Claude Code は終了済みの[バックグラウンドセッション](/docs/ja/sessions#resume-a-session)は開きますが、まだ実行中のものは開きません。この例はレビューを実行してから、フォローアップのプロンプトを送信します。

421Claude Code v2.1.257 以降では、`--continue` を渡すと、Claude Code は完了した [background session](/docs/ja/sessions#resume-a-session) を開きますが、まだ実行中のセッションは開きません。この例はレビューを実行してから、フォローアッププロンプトを送信します。

422 417 

423```bash theme={null}418```bash theme={null}

424# 最初のリクエスト419# First request

425claude -p "Review this codebase for performance issues"420claude -p "Review this codebase for performance issues"

426 421 

427# 最新の会話を続ける422# Continue the most recent conversation

428claude -p "Now focus on the database queries" --continue423claude -p "Now focus on the database queries" --continue

429claude -p "Generate a summary of all issues found" --continue424claude -p "Generate a summary of all issues found" --continue

430```425```

431 426 

432複数の会話を実行している場合は、セッション ID をキャプチャして特定のセッションを再開します。427複数の会話を実行している場合は、セッション ID を取得して特定の会話を再開します。

433 428 

434```bash theme={null}429```bash theme={null}

435session_id=$(claude -p "Start a review" --output-format json | jq -r '.session_id')430session_id=$(claude -p "Start a review" --output-format json | jq -r '.session_id')

436claude -p "Continue that review" --resume "$session_id"431claude -p "Continue that review" --resume "$session_id"

437```432```

438 433 

4392 つのコマンドを異なるディレクトリから実行できます。Claude Code は [finds the session by its ID](/docs/ja/sessions#resume-a-session) をこのマシン上の任意のプロジェクトで実行します。v2.1.223 より前では、Claude Code は現在のプロジェクトディレクトリとその git worktrees でのみ ID を探していたため、両方のコマンドを同じディレクトリから実行する必要がありました。4342 つのコマンドは異なるディレクトリから実行できます。Claude Code はこのマシン上の任意のプロジェクトから[ID でセッションを検索します](/docs/ja/sessions#resume-a-session)。v2.1.223 より前では、Claude Code は現在のプロジェクトディレクトリとその git worktree でのみ ID を探していたため、両方のコマンドを同じディレクトリから実行する必要がありました。

440 435 

441セッション ID の代わりに、`--resume` にセッションの `.jsonl` [transcript file](/docs/ja/sessions#where-transcripts-are-stored) への絶対パスを渡すことができます。Claude Code はそのファイルに保存されている会話を続けます。436セッション ID の代わりに、`--resume` にセッションの `.jsonl` [トランスクリプトファイル](/docs/ja/sessions#where-transcripts-are-stored)への絶対パスを渡すこともでき、Claude Code はそのファイルに保存されている会話を続けます。

442 437 

443<h2 id="next-steps">438<h2 id="next-steps">

444 次のステップ439 次のステップ

Details

22 22 

23| ショートカット | 説明 | コンテキスト |23| ショートカット | 説明 | コンテキスト |

24| :- | :- | :- |24| :- | :- | :- |

25| `Ctrl+C` | 割り込み、または入力をクリア | 実行中の操作を割り込みます。何も実行されていない場合、最初のプレスはプロンプト入力をクリアし、2 番目のプレスで Claude Code を終了します |25| `Ctrl+C` | 割り込み、または入力をクリア | 実行中の操作を割り込みます。何も実行されていない場合、最初のプレスはプロンプト入力をクリアし、2 番目のプレスで Claude Code を終了します。プロンプトが空のままの間に `Up` を押すと、クリアされたドラフトが戻ります。これには Claude Code v2.1.288 以降が必要です |

26| `Ctrl+X Ctrl+K` | このセッション内のすべての実行中の[バックグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)を停止し、[アーティファクト自動返信](/docs/ja/artifacts#let-claude-reply-to-comments-on-its-own)をセッションの残りの部分で無効にします。3 秒以内に 2 回押して確認します。バックグラウンドサブエージェントの権限プロンプトが開いている間も押すことができます | サブエージェント制御 |26| `Ctrl+X Ctrl+K` | このセッション内のすべての実行中の[バックグラウンドサブエージェント](/docs/ja/sub-agents#run-subagents-in-foreground-or-background)を停止し、[アーティファクト自動返信](/docs/ja/artifacts#let-claude-reply-to-comments-on-its-own)をセッションの残りの部分で無効にします。3 秒以内に 2 回押して確認します。バックグラウンドサブエージェントの権限プロンプトが開いている間も押すことができます | サブエージェント制御 |

27| `Ctrl+D` | Claude Code セッションを終了 | 最初のプレスで確認ヒントが表示され、800ms 以内に 2 番目のプレスで終了します。プロンプトにテキストがある場合、`Ctrl+D` はカーソルの後の文字を削除します |27| `Ctrl+D` | Claude Code セッションを終了 | 最初のプレスで確認ヒントが表示され、800ms 以内に 2 番目のプレスで終了します。プロンプトにテキストがある場合、`Ctrl+D` はカーソルの後の文字を削除します |

28| `Ctrl+G` または `Ctrl+X Ctrl+E` | デフォルトテキストエディタで開く | プロンプトまたはカスタム応答をデフォルトテキストエディタで編集します。`Ctrl+X Ctrl+E` は readline ネイティブバインディングです。`/config` で**外部エディタで最後の応答を表示**をオンにすると、Claude の前の返信を `#` コメント付きコンテキストとしてプロンプトの上に追加します。Claude Code は保存時にコメントブロックを削除します |28| `Ctrl+G` または `Ctrl+X Ctrl+E` | デフォルトテキストエディタで開く | プロンプトまたはカスタム応答をデフォルトテキストエディタで編集します。`Ctrl+X Ctrl+E` は readline ネイティブバインディングです。`/config` で**外部エディタで最後の応答を表示**をオンにすると、Claude の前の返信を `#` コメント付きコンテキストとしてプロンプトの上に追加します。Claude Code は保存時にコメントブロックを削除します |

Details

132ランナーとそのセッションは数種類のアウトバウンド接続を行いますが、Anthropic からのインバウンド接続は必要ありません。132ランナーとそのセッションは数種類のアウトバウンド接続を行いますが、Anthropic からのインバウンド接続は必要ありません。

133 133 

134* **コントロールプレーン**:ランナーは `api.anthropic.com` をポーリングして作業を取得し、セットアップの進行状況や失敗のイベントを送信します。これらはすべてアウトバウンドの HTTPS です。ポーリングはランナーのハートビートも兼ねます。134* **コントロールプレーン**:ランナーは `api.anthropic.com` をポーリングして作業を取得し、セットアップの進行状況や失敗のイベントを送信します。これらはすべてアウトバウンドの HTTPS です。ポーリングはランナーのハートビートも兼ねます。

135* **SCM コネクタ**:オプションのオーケストレーター [SCM コネクタ](/docs/ja/self-hosted-environments-reference#scm-connector-flags)のトンネルが、唯一の WebSocket 接続です。135* **Git**:ランナーは、デプロイによって提供される認証情報で認証し、HTTPS または SSH 経由で git ホストからクローンおよびプッシュを行います。セッションごとに発行される認証情報を含むオプションについては、[git の設定](/docs/ja/self-hosted-environments-deploy#configure-git)を参照してください。[Anthropic git プロキシ](/docs/ja/self-hosted-environments-deploy#use-the-anthropic-git-proxy)を使用する場合、github.com 上のリポジトリに対する git トラフィックは代わりに `api.anthropic.com` を経由します。

136* **Git**:ランナーは、デプロイによって提供される認証情報で認証し、HTTPS または SSH 経由で git ホストからクローンおよびプッシュを行います。[git の設定](/docs/ja/self-hosted-environments-deploy#configure-git)では、セッションごとに発行される認証情報や、git を代わりに `api.anthropic.com` 経由でルーティングする [Anthropic git プロキシ](/docs/ja/self-hosted-environments-deploy#use-the-anthropic-git-proxy)を含むオプションについて説明しています。136* **セッションの子プロセス**:子 Claude Code プロセスは `api.anthropic.com` へのセッションのイベントストリームを保持し、モデル推論とセッション中に実行される git コマンドのために独自のアウトバウンド呼び出しを行います。[Anthropic が管理する git](/docs/ja/self-hosted-environments-deploy#use-the-anthropic-git-proxy) を使用するセッションでは、子プロセスは github.com 向けの `git` および `gh` のトラフィックを、自身が `api.anthropic.com` に対して開く WebSocket 接続経由で送信します。

137* **セッションの子プロセス**:子 Claude Code プロセスは `api.anthropic.com` へのセッションのイベントストリームを保持し、モデル推論とセッション中に実行される git コマンドのために独自のアウトバウンド呼び出しを行います。エグレスの完全な一覧については[ネットワーク要件](/docs/ja/self-hosted-environments-deploy#network-requirements)を参照してください。[上の図](#how-self-hosted-environments-work)は、オプションの SCM コネクタを除くこれらの経路を示しています。137* **SCM コネクタ**:オプションのオーケストレーター [SCM コネクタ](/docs/ja/self-hosted-environments-reference#scm-connector-flags)は利用できないため、そのトンネルは開かれません。このトンネルは `api.anthropic.com` への WebSocket 接続です。

138 

139エグレスの完全な一覧については[ネットワーク要件](/docs/ja/self-hosted-environments-deploy#network-requirements)を参照してください。[上の図](#how-self-hosted-environments-work)は、オプションの SCM コネクタと Anthropic が管理する git 接続を除く、これらの経路を示しています。

138 140 

139デフォルトでは、モデル推論には Anthropic API を使用します。コントロールプレーンは各セッションに API エンドポイントを渡し、セッションは Anthropic が発行したセッションスコープの OAuth トークンで認証します。モデルリクエストを代わりに自社のクラウドアカウントに送信する方法については、[モデルリクエストを Bedrock または Agent Platform に送信する](/docs/ja/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform)を参照してください。141デフォルトでは、モデル推論には Anthropic API を使用します。コントロールプレーンは各セッションに API エンドポイントを渡し、セッションは Anthropic が発行したセッションスコープの OAuth トークンで認証します。モデルリクエストを代わりに自社のクラウドアカウントに送信する方法については、[モデルリクエストを Bedrock または Agent Platform に送信する](/docs/ja/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform)を参照してください。

140 142 

Details

31| 変数 | 説明 |31| 変数 | 説明 |

32| :- | :- |32| :- | :- |

33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | セッション JWT。プレフィックス `sk-ant-cc-` が付きます。その `act` クレームはセッション作成者を識別し、作成サーフェスが記録した場合は作成者のメールを含みます。値はスポーン時のトークンです。更新はこどもの stdin を介して到着するため、ラッパーは初期値のみを見ます。[セッション ID を検証する](/docs/ja/self-hosted-environments-identity) を参照してください。 |33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | セッション JWT。プレフィックス `sk-ant-cc-` が付きます。その `act` クレームはセッション作成者を識別し、作成サーフェスが記録した場合は作成者のメールを含みます。値はスポーン時のトークンです。更新はこどもの stdin を介して到着するため、ラッパーは初期値のみを見ます。[セッション ID を検証する](/docs/ja/self-hosted-environments-identity) を参照してください。 |

34| `CCR_SESSION_ACCOUNT_EMAIL` | セッション作成者のメール。ランナーによってトークンの `act.email` クレームから署名検証なしで事前抽出されます。ラベリングなどに適しています。メールが認証情報の発行をゲートする場合、トークンを検証し、代わりにクレームから読み取ります。[セッション作成者にスコープされた認証情報をプロビジョニングする](#provision-credentials-scoped-to-the-session-creator) を参照してください。トークンが作成者メールを含まない場合は設定されません。個人識別情報として扱います。 |34| `CCR_SESSION_ACCOUNT_EMAIL` | セッション作成者のメール。ランナーによってトークンの `act.email` クレームから署名検証なしで事前抽出されます。コミットトレーラーなどのラベリングに適しています。メールが認証情報の発行をゲートする場合、トークンを検証し、代わりにクレームから読み取ります。[セッション作成者にスコープされた認証情報をプロビジョニングする](#provision-credentials-scoped-to-the-session-creator) を参照してください。トークンが作成者メールを含まない場合(例えば、組織のサービス ID が作成するセッション)は設定されません。個人識別情報として扱います。 |

35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアントサーフェス(`web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli`、`scheduled_trigger` など)。Anthropic はセッション作成時に値を 1 回記録するため、ラッパーとすべてのライフサイクルフックは同じ値を見ます。採用分析とラベリングにのみ使用し、認可シグナルとしては使用しないでください。セッションに記録または認識されたサーフェスがない場合は設定されないため、`set -u` の下で `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` として参照してください。Claude Code v2.1.229 以降が必要です。 |35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアントサーフェス(`web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli`、`scheduled_trigger` など)。Anthropic はセッション作成時に値を 1 回記録するため、ラッパーとすべてのライフサイクルフックは同じ値を見ます。採用分析とラベリングにのみ使用し、認可シグナルとしては使用しないでください。セッションに記録または認識されたサーフェスがない場合は設定されません。Claude Code v2.1.229 以降が必要です。 |

36| `CLAUDE_RUNNER_CLAUDE_BIN` | ランナー自体の Claude Code バイナリへの絶対パス。`exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` でラッパーを終了して、インストールパスをハードコードせずにピン留めされたバイナリに制御を渡します。 |36| `CLAUDE_RUNNER_CLAUDE_BIN` | ランナー自体の Claude Code バイナリへの絶対パス。`exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` でラッパーを終了して、インストールパスをハードコードせずにピン留めされたバイナリに制御を渡します。 |

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | タグ付き `cse_...` 形式のセッション ID。これは [ライフサイクルフック](#lifecycle-hooks) が `session_...` 形式の `CLAUDE_RUNNER_SESSION_ID` として見るのと同じセッションです。UUID 変数は両方で一致し、`cse_` プレフィックスを `session_` に置き換えるとセッション URL に表示される ID が得られます。 |37| `CLAUDE_CODE_REMOTE_SESSION_ID` | タグ付き `cse_...` 形式のセッション ID。これは [ライフサイクルフック](#lifecycle-hooks) が `session_...` 形式の `CLAUDE_RUNNER_SESSION_ID` として見るのと同じセッションです。UUID 変数は両方で一致し、`cse_` プレフィックスを `session_` に置き換えるとセッション URL に表示される ID が得られます。 |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | 正規 UUID 形式の同じセッション ID。UUID をキーとするシステム用です。 |38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | 正規 UUID 形式の同じセッション ID。UUID をキーとするシステム用です。 |

39| `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` | 1 つの Slack スレッドに属する [Claude Tag](https://claude.com/docs/claude-tag/overview) セッションの場合、そのスレッドへのリンク。他のセッションでは設定されず、スレッドセッションでも設定されない場合があります。 |

40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | 1 つの Slack スレッドに属する Claude Tag セッションの場合、そのスレッドの Slack タイムスタンプ(`1700000000.000100` など)。設定されない場合があり、`CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` が設定されていないときに設定される場合もあるため、各変数を個別に確認してください。 |

39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 現在のセッション JWT を保持する、セッションごとのファイルへの絶対パス。トークン更新全体で最新に保たれます。シェルサブプロセスは、ユーザーがセッションに追加した添付ファイルをダウンロードするときに、その `Authorization` ヘッダーに対して読み取ります。`exec` は変数を自動的に保持します。子の環境を再構築するラッパーは変数を引き継ぐ必要があります。そうしないと、添付ファイルのダウンロードが静かに停止します。 |41| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 現在のセッション JWT を保持する、セッションごとのファイルへの絶対パス。トークン更新全体で最新に保たれます。シェルサブプロセスは、ユーザーがセッションに追加した添付ファイルをダウンロードするときに、その `Authorization` ヘッダーに対して読み取ります。`exec` は変数を自動的に保持します。子の環境を再構築するラッパーは変数を引き継ぐ必要があります。そうしないと、添付ファイルのダウンロードが静かに停止します。 |

40| `CLAUDE_CONFIG_DIR` | セッションごとの Claude 設定ディレクトリ。ランナーが起動時にキャプチャするランナーホストの設定のスナップショットからセッション開始時に書き込まれます。[権限とツール承認](#permissions-and-tool-approval) を参照してください。このディレクトリへの書き込みはこのセッションに分離されます。ディレクトリはセッション終了後、ランナーを [`--remove-session-state`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) で起動しない限り `<base-dir>/_sessions/` の下に留まります。[事前ウォーミングされたチェックアウトを再利用する](/docs/ja/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) を参照してください。 |42| `CLAUDE_CONFIG_DIR` | セッションごとの Claude 設定ディレクトリ。ランナーが起動時にキャプチャするランナーホストの設定のスナップショットからセッション開始時に書き込まれます。[権限とツール承認](#permissions-and-tool-approval) を参照してください。このディレクトリへの書き込みはこのセッションに分離されます。ディレクトリはセッション終了後、ランナーを [`--remove-session-state`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) で起動しない限り `<base-dir>/_sessions/` の下に留まります。[事前ウォーミングされたチェックアウトを再利用する](/docs/ja/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) を参照してください。 |

41| `ANTHROPIC_BASE_URL` | こどもが使用する API ベース URL。コントロールプレーンによってセッションごとに配信され、通常は `https://api.anthropic.com` です。上書きしないでください。セッションの推論認証情報は Anthropic が発行した OAuth トークンであり、他のプロバイダーはこれを受け入れません。 |43| `ANTHROPIC_BASE_URL` | こどもが使用する API ベース URL。コントロールプレーンによってセッションごとに配信され、通常は `https://api.anthropic.com` です。上書きしないでください。セッションの推論認証情報は Anthropic が発行した OAuth トークンであり、他のプロバイダーはこれを受け入れません。 |


43 45 

44ラッパーはこどもの管理環境の残りの部分も継承します。これには、サーバーが提供する環境変数が含まれます。`exec` はすべてを自動的に伝播します。ラッパーが別の方法でこどもをスポーンする場合、完全な環境を転送します。46ラッパーはこどもの管理環境の残りの部分も継承します。これには、サーバーが提供する環境変数が含まれます。`exec` はすべてを自動的に伝播します。ラッパーが別の方法でこどもをスポーンする場合、完全な環境を転送します。

45 47 

48`CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` と `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` は、ラッパーまたは [`command` フック](#command) に届きます。また、シェルコマンド、git フック、Claude Code フックなど、セッションが実行するものにも届きます。`checkout`、`post-session`、`spawn-runner` フックはこれらを受け取りません。

49 

50<h3 id="give-a-default-to-variables-that-can-be-unset">

51 設定されない可能性のある変数にデフォルト値を与える

52</h3>

53 

54`CCR_SESSION_ACCOUNT_EMAIL`、`CLAUDE_RUNNER_CLIENT_PLATFORM`、`CLAUDE_CODE_REMOTE_SLACK_THREAD_URL`、`CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` は、それぞれ設定されない場合があります。スクリプトで `set -u` を使用している場合、設定されていない変数を展開すると Bash は `unbound variable` で停止するため、`${CCR_SESSION_ACCOUNT_EMAIL:-}` のようにデフォルト値付きで展開してください。

55 

56シェルが Slack スレッドのリンクを展開する箇所では、次の対策を取ってください。

57 

58* **引用符で囲む**: リンクには `?` や `&` など、シェルが解釈する文字が含まれる場合があるため、`"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"` のように変数を引用符で囲みます。

59* **その値を `eval` や `sh -c` の文字列に入れない**: 引用符の内側であっても、`eval` や `sh -c` が実行する文字列にその値を代入しないでください。代わりに、その文字列から変数を参照するようにします。

60 

46<h3 id="keep-stdin-and-file-descriptor-3-attached">61<h3 id="keep-stdin-and-file-descriptor-3-attached">

47 stdin とファイルディスクリプタ 3 を接続したままにする62 stdin とファイルディスクリプタ 3 を接続したままにする

48</h3>63</h3>

49 64 

50こどもの stdin はランナーのコントロールチャネルです。トークン更新とセッション終了シグナルがそこに到着します。ランナーはファイルディスクリプタ 3 でパイプも開き、こどものアクティビティシグナルを読み取ってアイドルおよびスタートアップタイムアウトを駆動します。プレーンな `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` は両方を自動的に保持します。65こどもの stdin はランナーのコントロールチャネルです。トークン更新とセッション終了シグナルがそこに到着します。ランナーはファイルディスクリプタ 3 でパイプも開き、こどものアクティビティシグナルを読み取ってアイドルおよびスタートアップタイムアウトを駆動します。プレーンな `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` は両方を自動的に保持します。

51 66 

52ラッパーが裸の `&` でこどもをバックグラウンドにする場合、こどもの stdin が切断されます。セッションは初期 OAuth トークンの約 30 分の有効期限が切れるまで健全に見えますが、その後すべての API 呼び出しが `401 authentication_error` で失敗します。ラッパーがこどもをバックグラウンドにする必要がある場合(例えば、ティアダウントラップを生かしておくため)、stdin をファイルディスクリプタ 4 以上に保存し、明示的に再接続します。67ラッパーが裸の `&` でこどもをバックグラウンドにする場合、こどもの stdin が切断されます。セッションは初期 OAuth トークンの約 30 分の有効期限が切れるまで健全に見えますが、その後そのトークンを使用するすべての API 呼び出しが `401 authentication_error` で失敗します。ラッパーがこどもをバックグラウンドにする必要がある場合(例えば、ティアダウントラップを生かしておくため)、stdin をファイルディスクリプタ 4 以上に保存し、明示的に再接続します。

53 68 

54```bash theme={null}69```bash theme={null}

55exec 4<&070exec 4<&0


59wait "$CHILD"74wait "$CHILD"

60```75```

61 76 

62ラッパーでファイルディスクリプタ 3 を閉じたり再利用したりしないでください。こどもの stdout と stderr をリダイレクトするのは問題ありません。77こどもの stdout はリダイレクトできます。ファイルディスクリプタ 3 と stderr はランナーに接続したままにしてください。

78 

79* **ファイルディスクリプタ 3**: こどものアクティビティシグナルをランナーに伝えます。ラッパーで閉じたり再利用したりしないでください。

80* **stderr**: ラッパーまたはこどもがゼロ以外で終了すると、ランナーは stderr の最後の数行をセッションに投稿し、自身のログにも出力します。セッションのユーザーにはこれらの行が表示されるため、シークレットを stderr に出力しないでください。また、ラッパーをデプロイする前に `set -x` を削除してください。stderr をリダイレクトしてもセッションは実行されますが、ランナーは終了コードのみで失敗を報告します。

63 81 

64<h3 id="pass-the-system-prompt-flags-through">82<h3 id="pass-the-system-prompt-flags-through">

65 システムプロンプトフラグをそのまま渡す83 システムプロンプトフラグをそのまま渡す


108 checkout126 checkout

109</h3>127</h3>

110 128 

111リポジトリごとに 1 回実行され、ランナーの組み込みクローンとフェッチの代わりになります。フックを使用して、リードスルーミラーからクローンしたり、アーカイブからワーキングツリーをシードしたり、セッションごとの git 認証を適用したりします。ランナーは以下の変数を設定します。また、表に記載されていない他の `CLAUDE_RUNNER_` 変数を設定する場合もあります。129リポジトリごとに 1 回実行され、ランナーの組み込みクローンとフェッチの代わりになります。フックを使用して、HTTPS または SSH 経由でアクセスするリードスルーミラーからクローンしたり、アーカイブからワーキングツリーをシードしたり、セッションごとの git 認証を適用したりします。ランナーは以下の変数を設定します。また、表に記載されていない他の `CLAUDE_RUNNER_` 変数を設定する場合もあります。

112 130 

113| 変数 | 説明 |131| 変数 | 説明 |

114| :- | :- |132| :- | :- |

115| `CLAUDE_RUNNER_REPO_URL` | クローンするリポジトリ URL。`--git-host-rewrite` と `--git-ssh-rewrite` が適用された後 |133| `CLAUDE_RUNNER_REPO_URL` | クローンするリポジトリ URL。`--git-host-rewrite` と `--git-ssh-rewrite` が適用された後 |

116| `CLAUDE_RUNNER_REPO_REF` | チェックアウトするリビジョン。ブランチ、タグ、またはコミット SHA。セッションがリクエストしたとおり。空の場合はリポジトリのデフォルトブランチ |134| `CLAUDE_RUNNER_REPO_REF` | チェックアウトするリビジョン。セッションがリクエストしたとおりの値で、ブランチ、タグ、コミット SHA、または `refs/pull/<number>/head` などの完全な参照名。空の場合はリポジトリのデフォルトブランチ |

117| `CLAUDE_RUNNER_CHECKOUT_PATH` | ワーキングツリーを配置する必要がある絶対パス |135| `CLAUDE_RUNNER_CHECKOUT_PATH` | ワーキングツリーを配置する必要がある絶対パス |

118| `CLAUDE_RUNNER_SESSION_ID` | ログと相関のための `session_...` 形式のセッション ID |136| `CLAUDE_RUNNER_SESSION_ID` | ログと相関のための `session_...` 形式のセッション ID |

119| `CLAUDE_RUNNER_SESSION_UUID` | 正規 UUID 形式の同じセッション ID |137| `CLAUDE_RUNNER_SESSION_UUID` | 正規 UUID 形式の同じセッション ID |

120| `CLAUDE_RUNNER_API_BASE_URL` | セッションスコープの呼び出し用の Anthropic API ベース URL |138| `CLAUDE_RUNNER_API_BASE_URL` | セッションスコープの呼び出し用の Anthropic API ベース URL |

121| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアント表面。`web_claude_ai`、`desktop_app`、`ios` など。セッションに記録または認識された表面がない場合は未設定 |139| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアントサーフェス。`web_claude_ai`、`desktop_app`、`ios` など。セッションに記録または認識されたサーフェスがない場合は未設定のため、`set -u` の下では `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` として参照してください。Claude Code v2.1.229 以降が必要 |

122| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | セッションスコープの API 呼び出し用のセッションアクセストークン |140| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | セッションスコープの API 呼び出し用のセッションアクセストークン |

123| `GIT_CONFIG_COUNT`、`GIT_CONFIG_KEY_n`、`GIT_CONFIG_VALUE_n` | フックが実行する git に対してランナーが固定する git 設定。[ライフサイクルフック内の Git 設定](#git-configuration-inside-lifecycle-hooks)で説明しています。Claude Code v2.1.280 以降が必要 |141| `GIT_CONFIG_COUNT`、`GIT_CONFIG_KEY_n`、`GIT_CONFIG_VALUE_n` | フックが実行する git に対してランナーが固定する git 設定。[ライフサイクルフック内の Git 設定](#git-configuration-inside-lifecycle-hooks)で説明しています。Claude Code v2.1.280 以降が必要 |

124 142 

125スクリプトは `CLAUDE_RUNNER_CHECKOUT_PATH` にワーキングツリーを残し、リクエストされたリビジョンでチェックアウトする必要があります。デタッチド HEAD は問題ありません。ランナーはその上にセッションのワーキングブランチを作成します。ランナーはその後、パスに `.git` が含まれていることを確認します。フックが Perforce やアンパックされたタールボールなどの非 git ソースを具体化する場合は、ランナーの環境で `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` を設定して、そのチェックをスキップしてください。ワーキングブランチの作成と結果のプッシュなどの git ベースのフローには git チェックアウトが必要なため、非 git ツリーから結果をエクスポートするには [`post-session` フック](#post-session)を使用してください。143スクリプトは `CLAUDE_RUNNER_CHECKOUT_PATH` にワーキングツリーを残し、リクエストされたリビジョンでチェックアウトする必要があります。デタッチド HEAD は問題ありません。ランナーはその上にセッションのワーキングブランチを作成します。

126 144 

127ランナーは git 認証情報をフックに渡しません。代わりに、セッションの ID からセッションごとのクローン認証情報を発行します。`CLAUDE_RUNNER_API_BASE_URL` の下の JWKS エンドポイントに対して標準 JWT ライブラリを使用して `CLAUDE_CODE_SESSION_ACCESS_TOKEN` を検証します。これは [Verify the token from your service](/docs/ja/self-hosted-environments-identity#verify-the-token-from-your-service) で説明されています。その後、認証情報サービスがトークンの `act` クレーム内の ID に対して短期間のクローン認証情報を発行します。`CLAUDE_RUNNER_CLAUDE_BIN` はチェックアウトフック環境では設定されていないため、`decode-token` サブコマンドはここでは利用できません。SSH エージェント、認証情報ヘルパー、`.netrc` など、ホストが既に持っている git 認証にフォールバックすることもオプションです。145フックが返った後、ランナーは `CLAUDE_RUNNER_CHECKOUT_PATH` に `.git` が含まれていることを確認します。フックが Perforce やアンパックされたタールボールなどの非 git ソースを具体化する場合は、ランナーの環境で `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` を設定して、そのチェックをスキップしてください。ワーキングブランチの作成と結果のプッシュなどの git ベースのフローには git チェックアウトが必要なため、非 git ツリーから結果をエクスポートするには [`post-session` フック](#post-session)を使用してください。

128 146 

129フックが 0 以外で終了するか、0 で終了しても使用可能なチェックアウトを残さない場合、ランナーが実行する処理はリポジトリによって異なります。147<h4 id="get-git-credentials-in-the-hook">

148 フックで git 認証情報を取得する

149</h4>

130 150 

131* **セッションが結果をプッシュするリポジトリ**:ランナーはセッションを失敗させ、0 以外の終了時にスクリプトの stderr の末尾をユーザーに表示します。151ランナーは git 認証情報をフックに渡しません。`CLAUDE_RUNNER_CLAUDE_BIN` はチェックアウトフック環境では設定されていないため、`decode-token` サブコマンドもここでは利用できません。代わりに、セッションの ID からセッションごとのクローン認証情報を発行するか、ホスト自身の git 認証にフォールバックしてください。

132* **セッションが読み取り専用のリポジトリ**(実行中のセッションに追加されたリポジトリなど):ランナーは失敗の詳細を含む `[runner:warn]` 行をログに記録し、`Skipped` ステップをセッションにポストし、フックがチェックアウトパスに残したものを削除し、残りのリポジトリで続行します。ランナーがパスをすぐに削除できない場合、セッション終了時に削除を再試行します。スキップによってセッションにリポジトリがまったくなくなった場合、ランナーはとにかくセッションを失敗させます。

133 152 

134v2.1.228 より前は、ランナーはどのリポジトリでもフック失敗時にセッションを失敗させていたため、フックが提供できない読み取り専用リポジトリは、セッションが再開される新しいランナーのたびに再度セッションを失敗させていました。153* **セッションごとのクローン認証情報**:[Verify the token from your service](/docs/ja/self-hosted-environments-identity#verify-the-token-from-your-service) で説明されているように、`CLAUDE_RUNNER_API_BASE_URL` の下の JWKS エンドポイントに対して標準 JWT ライブラリを使用して `CLAUDE_CODE_SESSION_ACCESS_TOKEN` を検証します。その後、認証情報サービスに、トークンの `act` クレーム内の ID に対する短期間のクローン認証情報を発行させます。その認証情報は `act.sub` をキーとし、`act.email` を必須にしないでください。

154* **ホストの git 認証**:SSH エージェント、認証情報ヘルパー、`.netrc` など、ホストが既に持っている git 認証を使用します。

135 155 

136ランナーはセッション終了後、チェックアウトパスを削除します。156<h4 id="when-the-hook-fails">

157 フックが失敗した場合

158</h4>

159 

160フックが 0 以外で終了した場合、または 0 で終了しても使用可能なチェックアウトを残さなかった場合、フックは失敗となります。

161 

162* **セッションが結果をプッシュするリポジトリ**:ランナーはセッションを失敗させ、0 以外の終了時にスクリプトの stderr の末尾をユーザーに表示します。

163* **セッションが読み取りのみを行うリポジトリ**(実行中のセッションに追加されたリポジトリなど):ランナーは失敗の詳細を含む `[runner:warn]` 行をログに記録し、`Skipped` ステップをセッションにポストし、フックがチェックアウトパスに残したものを削除し、残りのリポジトリで続行します。スキップによってセッションにリポジトリがまったくなくなった場合、ランナーはとにかくセッションを失敗させます。

164 

165フックが成功した場合、ランナーはセッション終了後にチェックアウトパスを削除します。

137 166 

138<h3 id="post-session">167<h3 id="post-session">

139 post-session168 post-session


151| `CLAUDE_RUNNER_WORKSPACE_PATHS` | セッションのワーキングツリーのコロン区切り絶対パス。ゼロリポジトリセッションの場合は空 |180| `CLAUDE_RUNNER_WORKSPACE_PATHS` | セッションのワーキングツリーのコロン区切り絶対パス。ゼロリポジトリセッションの場合は空 |

152| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | セッションのデバッグログへのパス。フック実行中もディスク上に存在 |181| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | セッションのデバッグログへのパス。フック実行中もディスク上に存在 |

153| `CLAUDE_RUNNER_API_BASE_URL` | セッションスコープの呼び出し用の Anthropic API ベース URL |182| `CLAUDE_RUNNER_API_BASE_URL` | セッションスコープの呼び出し用の Anthropic API ベース URL |

154| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアント表面。`web_claude_ai`、`desktop_app`、`ios` など。セッションに記録または認識された表面がない場合は未設定。Claude Code v2.1.229 以降が必要 |183| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアントサーフェス。`web_claude_ai`、`desktop_app`、`ios` など。セッションに記録または認識されたサーフェスがない場合は未設定のため、`set -u` の下では `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` として参照してください。Claude Code v2.1.229 以降が必要 |

155| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | セッションスコープの API 呼び出し用のセッションアクセストークン |184| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | セッションスコープの API 呼び出し用のセッションアクセストークン |

156| `GIT_CONFIG_COUNT`、`GIT_CONFIG_KEY_n`、`GIT_CONFIG_VALUE_n` | フックが実行する git に対してランナーが固定する git 設定。[ライフサイクルフック内の Git 設定](#git-configuration-inside-lifecycle-hooks)で説明しています。Claude Code v2.1.280 以降が必要 |185| `GIT_CONFIG_COUNT`、`GIT_CONFIG_KEY_n`、`GIT_CONFIG_VALUE_n` | フックが実行する git に対してランナーが固定する git 設定。[ライフサイクルフック内の Git 設定](#git-configuration-inside-lifecycle-hooks)で説明しています。Claude Code v2.1.280 以降が必要 |

157 186 

158`CLAUDE_RUNNER_EXIT_REASON` は 4 つの値のいずれかを取ります。187`CLAUDE_RUNNER_EXIT_REASON` は 4 つの値のいずれかを取ります。

159 188 

160* `completed`:セッションがクリーンに終了しました。Claude Code プロセスが正常に終了したか、セッションがまだ実行中に削除またはアーカイブされました。189* `completed`:セッションがクリーンに終了しました。Claude Code プロセスが正常に終了したか、セッションがアーカイブまたは削除された後に自ら終了しました。

161* `failed`:Claude Code プロセスがクラッシュしたか、開始後にセットアップが失敗しました。190* `failed`:Claude Code プロセスがクラッシュしたか、開始後にセットアップが失敗しました。

162* `interrupted`:ランナーがセッションを停止しました。セッションをリリースしてスロットを解放したか、セッションがスタートアップでタイムアウトしたか、サーバーがセッションをこのランナーから移動したか、ランナーがドレイン中であったか、セッションが [`--kill-session-after-min`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) 制限を超えました。191* `interrupted`:ランナーがセッションを停止しました。以下のいずれかのケースです。

192 * ランナーがスロットを解放するためにセッションをリリースした。

193 * セッションがスタートアップでタイムアウトした。

194 * サーバーがセッションをこのランナーから移動した。

195 * プロセスが終了する前に、ランナーのポーリングがアーカイブまたは削除を検出した。

196 * ランナーがドレイン中だった。

197 * セッションが [`--kill-session-after-min`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) 制限を超えた。

163* `abandoned`:別のランナーが要求したセッション用に予約されています。フックは現在その場合には発火しません。198* `abandoned`:別のランナーが要求したセッション用に予約されています。フックは現在その場合には発火しません。

164 199 

165[セッションライフサイクルカウンター](/docs/ja/self-hosted-environments-reference#session-lifecycle-counter-semantics)は、リリース、スタートアップタイムアウト、サーバー移動を `interrupted` ではなく `completed` としてカウントします。ランナーがスロットをクリーンに返したためです。フック受信とカウンターを比較する場合、その違いを予期してください。200フック受信を[セッションライフサイクルカウンター](/docs/ja/self-hosted-environments-reference#session-lifecycle-counter-semantics)と比較する場合、一部の `interrupted` 受信がカウンターでは `completed` としてカウントされることを想定してください。カウンターは、リリース、スタートアップタイムアウト、サーバー移動、およびランナーのポーリングが先に検出したアーカイブまたは削除を `completed` としてカウントします。ランナーがスロットをクリーンに返したためです。

166 201 

167フックの終了ステータスはセッション結果に影響しません。失敗はログに記録され、無視されます。ランナーはセッション終了を含むランナーシャットダウンのたびに、`--post-session-hook-timeout-sec`(デフォルトは 60 秒)まで待機します。この例はコミットされていない作業をレスキューブランチに保存します。202フックの終了ステータスはセッション結果に影響しません。失敗はログに記録され、無視されます。ランナーはセッション終了を含むランナーシャットダウンのたびに、`--post-session-hook-timeout-sec`(デフォルトは 60 秒)まで待機します。この例はコミットされていない作業をレスキューブランチに保存します。

168 203 

169```bash theme={null}204```bash theme={null}

170#!/usr/bin/env bash205#!/usr/bin/env bash

171set -u206set -u

207export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

172IFS=':'208IFS=':'

173# -c overrides beat repo-local settings, blocking session-written fsmonitor,209# -c overrides beat repo-local settings, blocking session-written fsmonitor,

174# hook-path, and gpg-program config from executing code with the hook's210# hook-path, and gpg-program config from executing code with the hook's

175# privileges. -c commit.gpgsign=false also leaves these rescue commits211# privileges. -c commit.gpgsign=false also leaves these rescue commits

176# unsigned under --configure-git.212# unsigned under --configure-git.

177# Repo-local credential.helper and pushurl still apply, and on a runner213# Repo-local credential.helper and pushurl still apply, and on a runner

178# before v2.1.280 so does core.sshCommand; if the hook holds credentials214# before v2.1.280 so does core.sshCommand; see the note below the script

179# the session didn't, see the note below the script.215# before you give this push a credential.

180g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \216g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

181 -c commit.gpgsign=false "$@"; }217 -c commit.gpgsign=false "$@"; }

182for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do218for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do


188done224done

189```225```

190 226 

191フックは、ランナーホスト上の独自の環境で利用可能な git 認証情報を使用してプッシュします。[イメージに認証情報がない姿勢](/docs/ja/self-hosted-environments-deploy#configure-git)の下では、組み込みクローンが Anthropic git プロキシを通過する場合を含めて、認証情報がないため、フック内で短期間のプッシュ認証情報を発行します。フックが受け取る `CLAUDE_CODE_SESSION_ACCESS_TOKEN` のセッショントークンを独自のトークンサービスと交換し、[Verify session identity](/docs/ja/self-hosted-environments-identity) が説明するように検証します。フックがセッションが持たなかった認証情報を保持している場合は、`origin` をオペレーター提供の URL に置き換え、`-c credential.helper=` と独自のヘルパーを渡します。セッションが書き込んだ設定が引き続き影響し得る内容については、[ライフサイクルフック内の Git 設定](#git-configuration-inside-lifecycle-hooks)で説明しています。227スクリプト内の `GIT_ALLOW_PROTOCOL` 行は、git を HTTPS、HTTP、SSH のリモートに制限します。ランナーの環境で独自の空でない `GIT_ALLOW_PROTOCOL` リストがすでに設定されている場合、スクリプトはそのリストを維持します。

228 

229フックは、ランナーホスト上の独自の環境で利用可能な git 認証情報を使用してプッシュします。[イメージに認証情報がない姿勢](/docs/ja/self-hosted-environments-deploy#configure-git)の下では、組み込みクローンが Anthropic git プロキシを通過する場合を含めて、認証情報がないため、フック内で短期間のプッシュ認証情報を発行します。フックが受け取る `CLAUDE_CODE_SESSION_ACCESS_TOKEN` のセッショントークンを独自のトークンサービスと交換し、[Verify session identity](/docs/ja/self-hosted-environments-identity) が説明するように検証します。

230 

231フックが git に渡す認証情報はすべて、セッションが取得できるものとして扱い、このプッシュ以上のことができないように発行してください。フック内の git はセッションが書き込める設定ファイルを読み取り、そのいずれかで指定された認証情報ヘルパーやフィルタードライバーはフックの権限で実行されます。また、これらのファイル内の設定によって、どのリモートを指定してもプッシュの送信先が変わる可能性があります。ランナーがフック内で固定する git 設定と、これらのファイルに委ねる設定については、[ライフサイクルフック内の Git 設定](#git-configuration-inside-lifecycle-hooks)を参照してください。

192 232 

193<h4 id="hook-timing-when-the-runner-releases-a-session">233<h4 id="hook-timing-when-the-runner-releases-a-session">

194 ランナーがセッションをリリースするときのフックタイミング234 ランナーがセッションをリリースするときのフックタイミング


264| `CLAUDE_RUNNER_ORDER_ID` | 不透明なべき等性キー。スポーン要求ごとに一意で、Kubernetes リソース名に対して安全です。プロビジョナーの重複排除キーとしてのみ使用してください。 |304| `CLAUDE_RUNNER_ORDER_ID` | 不透明なべき等性キー。スポーン要求ごとに一意で、Kubernetes リソース名に対して安全です。プロビジョナーの重複排除キーとしてのみ使用してください。 |

265| `CLAUDE_RUNNER_SESSION_ID` | この要求が対象とするセッション。セッションの再要求のたびに繰り返されるため、ログとルーティングに使用し、重複排除キーとしては使用しないでください。[`--min-idle`](/docs/ja/self-hosted-environments-reference#orchestrator-cli-flags) が設定されている場合、事前ウォーミング要求(特定のセッションの前にスタンバイランナーをブート)では空です。変数が設定されていると仮定しないでください。 |305| `CLAUDE_RUNNER_SESSION_ID` | この要求が対象とするセッション。セッションの再要求のたびに繰り返されるため、ログとルーティングに使用し、重複排除キーとしては使用しないでください。[`--min-idle`](/docs/ja/self-hosted-environments-reference#orchestrator-cli-flags) が設定されている場合、事前ウォーミング要求(特定のセッションの前にスタンバイランナーをブート)では空です。変数が設定されていると仮定しないでください。 |

266| `CLAUDE_RUNNER_SESSION_UUID` | 正規 UUID 形式の同じセッション ID。事前ウォーミング要求では空です。 |306| `CLAUDE_RUNNER_SESSION_UUID` | 正規 UUID 形式の同じセッション ID。事前ウォーミング要求では空です。 |

267| `CLAUDE_RUNNER_ATTEMPT` | このセッションが持つスポーン要求の数。事前ウォーミング要求では 0 です。 |307| `CLAUDE_RUNNER_ATTEMPT` | ログ記録に使用するセッションごとのカウンター。再試行回数でもリクエスト数でもありません。事前ウォーミング要求では `0` ですが、セッションに対する要求でも `0` になる場合があります。 |

268| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | ポーリング応答の HTTP `Date` ヘッダーからのサーバー時刻。フックがワークオーダー JWT の `exp` を検証する場合、ローカルクロックの代わりにこの値と比較して、スキューを許容してください。ゲートウェイがヘッダーを省略した場合は空です。 |308| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | ポーリング応答の HTTP `Date` ヘッダーからのサーバー時刻。フックがワークオーダー JWT の `exp` を検証する場合、ローカルクロックの代わりにこの値と比較して、スキューを許容してください。ゲートウェイがヘッダーを省略した場合は空です。 |

269| `CLAUDE_RUNNER_POOL_ID` | 新しいランナーが参加する環境の ID。`ccpool_...` 形式です。 |309| `CLAUDE_RUNNER_POOL_ID` | 新しいランナーが参加する環境の ID。`ccpool_...` 形式です。 |

270| `CLAUDE_RUNNER_ACCOUNT_ID` | セッションをエンキューしたアカウントのタグ付き ID。アカウントごとのルーティング、クォータ、またはチャージバック用です。利用できない場合は空で、Claude Tag チャネルセッションでは常に空です。どのアカウントもこれらのセッションをエンキューしません。 |310| `CLAUDE_RUNNER_ACCOUNT_ID` | セッションをエンキューしたアカウントのタグ付き ID。アカウントごとのルーティング、クォータ、またはチャージバック用です。利用できない場合は空で、Claude Tag チャネルセッションでは常に空です。どのアカウントもこれらのセッションをエンキューしません。 |

271| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | セッションをエンキューしたアカウントのメール。利用できない場合は空です。メールを個人識別情報として扱い、ログに記録しないでください。 |311| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | セッションをエンキューしたアカウントのメール。利用できない場合は空です。メールを個人識別情報として扱い、ログに記録しないでください。 |

272| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | セッションの最初の git ソースの URL。そのリポジトリが事前ウォーミングされたランナーへのルーティング用です。セッションに git ソースがない場合は空です。 |312| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | セッションの最初の git ソースの URL。そのリポジトリが事前ウォーミングされたランナーへのルーティング用です。セッションに git ソースがない場合は空です。 |

273| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | セッションの最初の git ソースのリビジョン。ブランチ、SHA、またはタグです。指定されていない場合は空です。 |313| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | セッションの最初の git ソースのリビジョン。ブランチ、SHA、タグ、または完全な参照名です。指定されていない場合は空です。 |

274| `CLAUDE_RUNNER_REPO_SOURCES` | セッションのすべての git ソースの `{url, revision}` の JSON 配列。セカンダリリポジトリでルーティングするフック用です。ソースがない場合は空です。 |314| `CLAUDE_RUNNER_REPO_SOURCES` | セッションのすべての git ソースの `{url, revision}` の JSON 配列。セカンダリリポジトリでルーティングするフック用です。ソースがない場合は空です。 |

275| `CLAUDE_RUNNER_CORRELATION_ID` | セッション作成時に提供された相関 ID。フックがこのワークオーダーをセッションを作成した要求にマップできるようにエコーバックされます。セッションに相関 ID がない場合は空です。 |315| `CLAUDE_RUNNER_CORRELATION_ID` | セッション作成時に提供された相関 ID。フックがこのワークオーダーをセッションを作成した要求にマップできるようにエコーバックされます。セッションに相関 ID がない場合は空です。 |

276| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアント表面。`web_claude_ai`、`desktop_app`、`ios`、`scheduled_trigger` など。採用分析用です。セッションに記録または認識された表面がない場合は未設定で、事前ウォーミング要求の場合も未設定です。`[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]` で確認してください。これは `set -u` の下で安全なままです。 |316| `CLAUDE_RUNNER_CLIENT_PLATFORM` | セッションを作成したクライアント表面。`web_claude_ai`、`desktop_app`、`ios`、`scheduled_trigger` など。採用分析用です。セッションに記録または認識された表面がない場合は未設定で、事前ウォーミング要求の場合も未設定です。`[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]` で確認してください。これは `set -u` の下で安全なままです。 |


286 326 

2871. **`CLAUDE_RUNNER_ORDER_ID` でべき等です。** 同じ要求の再配信は、最大 1 つのランナーをスポーンする必要があります。オーダー ID から決定論的なリソース名を導出し、プラットフォームに重複を拒否させてください。`CLAUDE_RUNNER_SESSION_ID` をキーとして使用しないでください。セッションの再要求のたびに同じセッション ID が新しいオーダー ID で実行されるため、セッション ID で名前付けまたは重複排除されたワークロードは、そのセッションに対して 1 回作成され、二度と作成されません。3271. **`CLAUDE_RUNNER_ORDER_ID` でべき等です。** 同じ要求の再配信は、最大 1 つのランナーをスポーンする必要があります。オーダー ID から決定論的なリソース名を導出し、プラットフォームに重複を拒否させてください。`CLAUDE_RUNNER_SESSION_ID` をキーとして使用しないでください。セッションの再要求のたびに同じセッション ID が新しいオーダー ID で実行されるため、セッション ID で名前付けまたは重複排除されたワークロードは、そのセッションに対して 1 回作成され、二度と作成されません。

2882. **ワークロードを再試行しないでください。** 1 つのオーダー ID は、最大 1 つの作成されたワークロードを意味します。ランナーが登録されない場合、Anthropic は `--expected-spawn-seconds` 後に新しいオーダー ID で再要求します。3282. **ワークロードを再試行しないでください。** 1 つのオーダー ID は、最大 1 つの作成されたワークロードを意味します。ランナーが登録されない場合、Anthropic は `--expected-spawn-seconds` 後に新しいオーダー ID で再要求します。

2893. **終了コードコントラクトを使用します。** 終了 0 は送信されたことを意味します。終了 1 は再試行可能な失敗を意味します。セッションはバックオフして再度提供されます。終了 2 以上は再試行不可を意味します。セッションは、[Owner](/docs/ja/cloud-environments#organization-shared-environments) が環境の **Activity** タブでそれに対して **Retry** を選択するまで、再度スポーンされることがブロックされます。ゼロ以外の終了時に、フックの stderr の末尾がそこに失敗理由として表示されるため、実行可能なエラーを stderr に書き込み、シークレットは決して書き込まないでください。事前ウォーミング要求の場合、失敗するセッションはありません。オーケストレーターはゼロ以外の終了をローカルでのみログに記録し、サーバーはリース後にスポーンを再要求します。3293. **終了コードコントラクトを使用します。** 結果に一致するステータスで終了してください。

2904. **`--expected-spawn-seconds` を少なくとも p99 ブート時間に設定します。** これはサーバー側のリースです。すべてのオーケストレーターレプリカは同じ値を使用する必要があります。330 

331 * **終了 0**:送信済み。

332 * **終了 1**:再試行可能な失敗。セッションはバックオフして再度提供されます。

333 * **終了 2 以上**:再試行不可の失敗。ユーザーがセッションに新しいメッセージを送信するか、[Owner](/docs/ja/cloud-environments#organization-shared-environments) が環境の **Activity** タブでそのセッションに対して **Retry** を選択するまで、セッションは再度スポーンされることがブロックされます。

334 

335 ゼロ以外の終了時には、フックの stderr の末尾が **Activity** タブに失敗理由として表示されるため、対処可能なエラーを stderr に書き込み、シークレットは決して書き込まないでください。シェルフックでは、[一時的な失敗を再試行可能なままにしてください](#keep-transient-failures-retryable-in-a-shell-hook)。

336 

337 事前ウォーミング要求には失敗するセッションがありません。オーケストレーターはゼロ以外の終了をローカルでのみログに記録し、サーバーは `--expected-spawn-seconds` のリースが期限切れになった後にスポーンを再要求します。

3384. **`--expected-spawn-seconds` を、スポーン要求からランナー登録までの p99 時間以上に設定します。** オーケストレーターがスポーン要求を受け取った時点から測定し、ブート時間に加えて、プラットフォームでのキャパシティ待ちの時間も含めてください。この値はサーバー側のリースであり、ワークオーダーもこれと同時に期限切れになるため、ワークロードにこれより長い時間がかかるランナーは登録できません。すべてのオーケストレーターレプリカは同じ値を使用する必要があります。

291 339 

292フックが stdout または stderr に書き込むすべてのものは、認証情報が自動的に削除されたオーケストレーターのログに表示されます。セッションがキューに入ったままの場合、オーケストレーターの `/healthz` ボディをチェックしてキュー数を確認し、[**Cloud environments** 管理ページ](https://claude.ai/admin-settings/cloud-environments)で環境の **Activity** タブを開きます。失敗したセッションをそこで展開してスポーンエラーを確認し、**Retry** を選択して再要求してください。340フックが stdout または stderr に書き込むすべてのものは、認証情報が自動的に削除されたオーケストレーターのログに表示されます。セッションがキューに入ったままの場合、オーケストレーターの `/healthz` ボディをチェックしてキュー数を確認し、[**Cloud environments** 管理ページ](https://claude.ai/admin-settings/cloud-environments)で環境の **Activity** タブを開きます。失敗したセッションをそこで展開してスポーンエラーを確認し、**Retry** を選択して再要求してください。

293 341 

294セッションが **Activity** タブにスポーンエラーなしでキューに入ったままの場合、フックがセッション ID でキーになっていることを意味する可能性があります。確認するには、プラットフォームがそのセッションの最初のスポーン要求のワークロードを持っているかどうか、および再要求のワークロードを持っていないかどうかを確認してください。その場合は、ワークロードを `CLAUDE_RUNNER_ORDER_ID` でキーにしてください。342セッションが **Activity** タブにスポーンエラーなしでキューに入ったままの場合、フックがセッション ID でキーになっていることを意味する可能性があります。確認するには、プラットフォームがそのセッションの最初のスポーン要求のワークロードを持っているかどうか、および再要求のワークロードを持っていないかどうかを確認してください。その場合は、ワークロードを `CLAUDE_RUNNER_ORDER_ID` でキーにしてください。

295 343 

344<h4 id="keep-transient-failures-retryable-in-a-shell-hook">

345 シェルフックで一時的な失敗を再試行可能なままにする

346</h4>

347 

348`set -e` を使用するシェルフックでは、再試行で解消できたはずの失敗によってセッションがブロックされることがあります。フックは失敗したコマンドで停止し、そのコマンド自体のステータスで終了します。オーケストレーターはそのステータスに終了コードコントラクトを適用します。多くの失敗は 2 以上のステータスを返します。たとえば、コマンドがインストールされていない場合の `127` や、HTTP エラー時の `curl --fail` による `22` などです。そのため、これらは最初の失敗でセッションをブロックします。

349 

350フックがすでにブロックしたセッションは、ユーザーが新しいメッセージを送信するか、[Owner](/docs/ja/cloud-environments#organization-shared-environments) が環境の **Activity** タブでそのセッションに対して **Retry** を選択するまで、ブロックされたままです。

351 

352このような失敗を代わりに終了 1 にするには、フックの `#!` 行の直下、失敗する可能性のあるものより上に次の行を配置します。

353 

354```bash theme={null}

355set -e

356PERMANENT=; permanent() { printf '%s\n' "$*" >&2; PERMANENT=1; exit 2; }

357trap 'rc=$?; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

358```

359 

360これらの行はフックの残りの部分の動作を変更するため、追加した後、以下の各パターンについてフックを確認してください。

361 

362* **単独の `exit 2` 以上**:trap が設定されていると、これは終了 1 になります。どの再試行でも修正できないエラーの場合は、代わりに理由を付けて `permanent` を呼び出します(例:`permanent "namespace claude-runners does not exist"`)。`$( )`、`( )`、またはパイプの内部ではなく、メインシェルで呼び出してください。

363* **`exec`**:フックの最後のコマンドを `exec` で開始しないでください。`exec` はシェルを置き換えるため、trap が実行されません。

364* **2 つ目の `EXIT` trap**:2 つ目の `trap ... EXIT` は 1 つ目を置き換えるため、2 つを 1 つの trap にマージしてください。クリーンアップコマンドを `rc=$?;` の直後に配置し、それぞれの末尾に `|| true;` を付けます。これにより、クリーンアップは成功時だけでなく失敗時にも実行され、失敗したクリーンアップコマンドはフックの終了ステータスを設定しません。次のマージされた trap はその形を示しており、`your-cleanup-command` は独自のコマンドに置き換えてください。

365 

366 ```bash theme={null}

367 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

368 ```

369* **失敗が許容されるコマンド**:フックが以前 `set -e` を使用していなかった場合、ゼロ以外を返す最初のコマンドで停止するようになります。たとえば、何も見つからない検索や、プラットフォームが拒否する重複送信などです。フックが結果に基づいて動作する場合は、そのコマンドを `if` の条件にしてください。結果を無視する場合は、コマンドの後に `|| true` を付けてください。

370 

371trap が機能することを確認するには、`trap` 行の直下に、`no-such-command` などの存在しないコマンドを呼び出す行を追加します。シェルからフックファイルを実行し、`echo $?` が `1` を出力することを確認してから、その行を削除します。

372 

296<h2 id="send-model-requests-to-bedrock-or-agent-platform">373<h2 id="send-model-requests-to-bedrock-or-agent-platform">

297 モデルリクエストを Bedrock または Agent Platform に送信する374 モデルリクエストを Bedrock または Agent Platform に送信する

298</h2>375</h2>


381モデルリクエストを Amazon Bedrock または Google Cloud の Agent Platform に送信するセッションは、Anthropic API 上のセッションと次の点で異なります。458モデルリクエストを Amazon Bedrock または Google Cloud の Agent Platform に送信するセッションは、Anthropic API 上のセッションと次の点で異なります。

382 459 

383* **claude.ai からのポリシー**:[サーバー管理設定](/docs/ja/server-managed-settings)はこれらのセッションに届きません。Owner が Claude Code の管理設定で設定する組織ポリシーも届かないため、Claude Code はセッション内でそれらを適用しません。依存するルールは、ランナーイメージの[管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms)に記述してください。460* **claude.ai からのポリシー**:[サーバー管理設定](/docs/ja/server-managed-settings)はこれらのセッションに届きません。Owner が Claude Code の管理設定で設定する組織ポリシーも届かないため、Claude Code はセッション内でそれらを適用しません。依存するルールは、ランナーイメージの[管理設定ファイル](/docs/ja/managed-settings#delivery-mechanisms)に記述してください。

461* **アカウントのスキル**:これらのセッションは、各ユーザーの claude.ai アカウントで有効になっているスキルをダウンロードしません。[各セッションの設定の組み立て方](#how-each-session’s-config-is-assembled)を参照してください。

384* **ファイル**:claude.ai やモバイルアプリ、デスクトップアプリでセッションに添付されたファイルはセッションに届かず、Claude は [`SendUserFile` ツール](/docs/ja/tools-reference)でファイルを送り返すこともできません。代わりに、入力ファイルはリポジトリまたはランナー上に配置してください。462* **ファイル**:claude.ai やモバイルアプリ、デスクトップアプリでセッションに添付されたファイルはセッションに届かず、Claude は [`SendUserFile` ツール](/docs/ja/tools-reference)でファイルを送り返すこともできません。代わりに、入力ファイルはリポジトリまたはランナー上に配置してください。

385* **モデルの選択**:Anthropic のコントロールプレーンが各セッションのモデルを送信し、モデルが指定されずにセッションが開始された場合、Claude Code はそのプロバイダーのデフォルトを使用します。ランナーは、セッションに渡す環境から `ANTHROPIC_MODEL` と `ANTHROPIC_DEFAULT_MODEL` を削除します。プロバイダーのページの例では `ANTHROPIC_MODEL` を設定していますが、ランナーの環境ではどちらの変数も効果がありません。[Amazon Bedrock](/docs/ja/amazon-bedrock#4-pin-model-versions) と [Agent Platform](/docs/ja/google-vertex-ai#5-pin-model-versions) の「モデルバージョンを固定する」に記載されているファミリーごとの変数はセッションに届きます。これらは `opus` などのエイリアスの解決先を決定するものであり、完全なモデル ID の解決先を決定するものではありません。463* **モデルの選択**:Anthropic のコントロールプレーンが各セッションのモデルを送信し、モデルが指定されずにセッションが開始された場合、Claude Code はそのプロバイダーのデフォルトを使用します。ランナーの環境で `ANTHROPIC_MODEL` や `ANTHROPIC_DEFAULT_MODEL` を使ってモデルを選択することはできませんが、エイリアスの解決先を固定することはできます。

464 * **`ANTHROPIC_MODEL` と `ANTHROPIC_DEFAULT_MODEL`**:プロバイダーのページの例では `ANTHROPIC_MODEL` を設定していますが、ランナーはセッションに渡す環境からこれらを削除します。

465 * **ファミリーごとの固定用変数**:[Amazon Bedrock](/docs/ja/amazon-bedrock#4-pin-model-versions) と [Agent Platform](/docs/ja/google-vertex-ai#5-pin-model-versions) の「モデルバージョンを固定する」に記載されている変数はセッションに届きます。これらは `opus` などのエイリアスの解決先を決定するものであり、完全なモデル ID の解決先を決定するものではありません。

386* **アカウントで提供されていないモデル**:セッションが、モデル名を示すエラーでメッセージの処理に失敗する場合があります。開発者が選択できるモデル、「モデルバージョンを固定する」で説明されているバックグラウンドモデル、[auto モード](/docs/ja/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)が使用する分類器モデルを有効にしてください。Amazon Bedrock では、それぞれをポリシーで許可してください。466* **アカウントで提供されていないモデル**:セッションが、モデル名を示すエラーでメッセージの処理に失敗する場合があります。開発者が選択できるモデル、「モデルバージョンを固定する」で説明されているバックグラウンドモデル、[auto モード](/docs/ja/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)が使用する分類器モデルを有効にしてください。Amazon Bedrock では、それぞれをポリシーで許可してください。

387* **Web 検索と fast mode**:[Web 検索](/docs/ja/tools-reference#websearch-tool-behavior)は Amazon Bedrock では利用できず、[fast mode](/docs/ja/fast-mode) はどちらのプロバイダーでも利用できません。プロバイダーによって異なるその他の機能については、[プロバイダーによって異なる CLI 機能](/docs/ja/feature-availability#cli-capabilities-that-vary-by-provider)を参照してください。467* **Web 検索と fast mode**:[Web 検索](/docs/ja/tools-reference#websearch-tool-behavior)は Amazon Bedrock では利用できず、[fast mode](/docs/ja/fast-mode) はどちらのプロバイダーでも利用できません。プロバイダーによって異なるその他の機能については、[プロバイダーによって異なる CLI 機能](/docs/ja/feature-availability#cli-capabilities-that-vary-by-provider)を参照してください。

388 468 


411 491 

412セッションはランナーの環境を継承するため、ランナーで [`ENABLE_TOOL_SEARCH`](/docs/ja/mcp#scale-with-mcp-tool-search) を設定すると、そのランナーが起動するすべてのセッションで MCP ツール検索を制御できます。値については MCP のページで説明しています。492セッションはランナーの環境を継承するため、ランナーで [`ENABLE_TOOL_SEARCH`](/docs/ja/mcp#scale-with-mcp-tool-search) を設定すると、そのランナーが起動するすべてのセッションで MCP ツール検索を制御できます。値については MCP のページで説明しています。

413 493 

494<a id="connection-timing" />

495 

496<h3 id="wait-for-mcp-servers-before-the-first-turn">

497 最初のターンの前に MCP サーバーを待機する

498</h3>

499 

500セルフホストのセッションは、まだ接続中の MCP サーバーを、2 つの異なる時点で短時間待機します。待機時間内に接続できなかったサーバーのツールは最初のターンの開始時には存在しませんが、ユーザーが何も操作しなくても後で利用可能になります。2 つの待機は次のとおりです。

501 

502* **セッションの起動時**:ツールの一覧が最初に取得される前に、セッションは、エントリで [`alwaysLoad: true`](/docs/ja/mcp#exempt-a-server-from-deferral) を設定した HTTP または SSE サーバーを、またはランナーの環境で [`MCP_CONNECTION_NONBLOCKING=0`](/docs/ja/env-vars) を設定した場合はすべてのサーバーを、デフォルトで最大 5 秒間待機します。それ以外の場合、HTTP および SSE サーバーはバックグラウンドで接続します。ここで待機している間、セッションの初期化は遅くなります。[`MCP_CONNECT_TIMEOUT_MS`](/docs/ja/env-vars) で 5 秒のデフォルトを変更できます。

503* **最初のターン**:メッセージが届いた後、最初のターンはまだ接続中の stdio サーバーを最大 2 秒間待機します。ここで待機している間、最初の応答は遅くなります。この待機時間を変更するには、ランナーの環境で [`CLAUDE_CODE_MCP_STARTUP_WAIT_MS`](/docs/ja/env-vars) を設定します。待機の対象となるサーバーは変わりません。Claude Code v2.1.274 以降が必要です。

504 

505`claude mcp add` には `alwaysLoad` フラグはありません。このキーを設定するには、代わりに `claude mcp add-json` でサーバーを追加します。このコマンドはサーバーの JSON でキーを受け取り、`.claude.json` に書き込みます。Dockerfile では次のようにします。

506 

507```dockerfile theme={null}

508RUN claude mcp add-json core '{"type":"http","url":"https://mcp.example.com/mcp","alwaysLoad":true}' --scope user

509```

510 

511後のターンでもサーバーのツールが表示されない場合は、[MCP サーバー](#mcp-servers)で説明しているとおり、サーバーがそもそもセッションに届いているかどうかを確認してください。

512 

414<h3 id="turn-off-built-in-session-tools">513<h3 id="turn-off-built-in-session-tools">

415 組み込みのセッションツールをオフにする514 組み込みのセッションツールをオフにする

416</h3>515</h3>


575 674 

576`SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` を設定して別のパスからシードするか、空のディレクトリに指定してシーディングを無効にします。675`SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` を設定して別のパスからシードするか、空のディレクトリに指定してシーディングを無効にします。

577 676 

578リポジトリコミット `.claude/settings.json` はプロジェクト設定として上に層状化されます。複数のリポジトリを含むセッションでは、[有効になるのは最大 1 つのリポジトリのファイルのみです](#repository-settings-in-sessions-with-several-repositories)。セッションはランナーイメージの標準システムパスから [`managed-settings.json`](/docs/ja/settings#where-settings-live) も読み取ります。そのキーが [サーバー管理設定](/docs/ja/server-managed-settings) と一緒に適用されるかどうかは、[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources) に従います。デフォルトでは、組織が任意のサーバー管理キーを配信する場合、セッションは [Claude Code がすべての管理ソースから読み取るキー](/docs/ja/managed-settings#keys-read-from-every-admin-source)(`env` ブロック、サンドボックスロック、サンドボックスバイナリパス、`forceRemoteSettingsRefresh` など)を除いて、ランナーイメージのファイルを無視します。[設定優先順位](/docs/ja/settings#settings-precedence) を参照してください。677セッションは次の設定ファイルも読み取ります。

678 

679* **プロジェクト設定**:リポジトリにコミットされた `.claude/settings.json` は、ユーザーレベルのベースラインの上に重ねて適用されます。複数のリポジトリを含むセッションでは、[有効になるのは最大 1 つのリポジトリのファイルのみです](#repository-settings-in-sessions-with-several-repositories)。

680* **管理設定**:セッションはランナーイメージの標準システムパスから [`managed-settings.json`](/docs/ja/settings#where-settings-live) を読み取ります。そのキーが [サーバー管理設定](/docs/ja/server-managed-settings) と一緒に適用されるかどうかについては、[Claude Code が管理ソースを組み合わせる方法](/docs/ja/managed-settings#how-claude-code-combines-managed-sources) を参照してください。

681 

682これらのソースが適用される順序については、[設定の優先順位](/docs/ja/settings#settings-precedence) を参照してください。

579 683 

580Anthropic のコントロールプレーンがセッションに [Claude Code フック](/docs/ja/hooks) を提供する場合、ランナーはそれらを独自の設定の上ではなく隣に設定します。Claude Code v2.1.229 以降が必要です。684Anthropic のコントロールプレーンがセッションに [Claude Code フック](/docs/ja/hooks) を提供する場合、ランナーはそれらを独自の設定の上ではなく隣に設定します。Claude Code v2.1.229 以降が必要です。

581 685 


583* **誰がそれらを作成するか**:コントロールプレーンはセッションごとまたはサードパーティ入力からではなく、独自のデプロイメント内の固定定数からスクリプトを入力します。687* **誰がそれらを作成するか**:コントロールプレーンはセッションごとまたはサードパーティ入力からではなく、独自のデプロイメント内の固定定数からスクリプトを入力します。

584* **何がそれらを管理するか**:`--settings` を通じて配信されるフックは通常のマージされたフック設定に入り、管理層ではないため、管理設定はまだ適用されます。`disableAllHooks` はそれらを無効にし、[`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) が保つカテゴリーには含まれません。688* **何がそれらを管理するか**:`--settings` を通じて配信されるフックは通常のマージされたフック設定に入り、管理層ではないため、管理設定はまだ適用されます。`disableAllHooks` はそれらを無効にし、[`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) が保つカテゴリーには含まれません。

585 689 

690ユーザーが自分でセッションを開始すると、Claude Code は [その claude.ai アカウントで有効になっているスキル](/docs/ja/skills#skills-in-cowork-and-cloud-sessions) もそのセッションの設定ディレクトリにダウンロードします。[ルーティン](/docs/ja/routines) の実行ではオーナーのスキルは取得されず、[Bedrock または Agent Platform にモデルリクエストを送信する](#send-model-requests-to-bedrock-or-agent-platform) セッションはスキルを一切ダウンロードしません。これらのセッションで必要なスキルは、リポジトリの `.claude/skills/` にコミットするか、ランナーイメージに追加してください。

691 

586[Claude Tag](https://claude.com/docs/claude-tag/overview) セッション以外では、セルフホスト環境のセッションはデフォルトで [自動メモリ](/docs/ja/memory#auto-memory) がオフの状態で実行されます。セッションをまたいで引き継ぐべき指示には、ランナーイメージまたはリポジトリ内の `CLAUDE.md` を使用してください。692[Claude Tag](https://claude.com/docs/claude-tag/overview) セッション以外では、セルフホスト環境のセッションはデフォルトで [自動メモリ](/docs/ja/memory#auto-memory) がオフの状態で実行されます。セッションをまたいで引き継ぐべき指示には、ランナーイメージまたはリポジトリ内の `CLAUDE.md` を使用してください。

587 693 

588ランナーによるホストの `~/.claude/` のスナップショットには `projects/` ディレクトリは含まれません。自動メモリのデフォルトの保存場所はこのディレクトリの下にあります。そこにメモリファイルを置いても、ランナーはそれらをセッションにシードせず、自動メモリがオンになることもありません。694ランナーによるホストの `~/.claude/` のスナップショットには `projects/` ディレクトリは含まれません。自動メモリのデフォルトの保存場所はこのディレクトリの下にあります。そこにメモリファイルを置いても、ランナーはそれらをセッションにシードせず、自動メモリがオンになることもありません。

Details

20 20 

21* **エフェメラルなセッションごとのコンテナ**:各ランナープロセスを、プロセスが終了するときに破棄される新しいコンテナまたは VM で実行します。`--capacity 1` とデフォルトの `--drain-grace-sec 0` を使用して、各コンテナが正確に 1 つのセッションを処理するようにします。容量が高い場合、またはドレイングレースが正の場合、1 つのコンテナが同じ[ロックされたオーナー](/docs/ja/self-hosted-environments#key-concepts)からの複数のセッションを処理します。[ランナーのライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle)を参照してください。ランナーの再起動間でファイルシステムを再利用しないでください。ただし、意図的な[プリウォーミングされたチェックアウト](#reuse-a-pre-warmed-checkout)セットアップは除きます。また、オーナー間では再利用しないでください。21* **エフェメラルなセッションごとのコンテナ**:各ランナープロセスを、プロセスが終了するときに破棄される新しいコンテナまたは VM で実行します。`--capacity 1` とデフォルトの `--drain-grace-sec 0` を使用して、各コンテナが正確に 1 つのセッションを処理するようにします。容量が高い場合、またはドレイングレースが正の場合、1 つのコンテナが同じ[ロックされたオーナー](/docs/ja/self-hosted-environments#key-concepts)からの複数のセッションを処理します。[ランナーのライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle)を参照してください。ランナーの再起動間でファイルシステムを再利用しないでください。ただし、意図的な[プリウォーミングされたチェックアウト](#reuse-a-pre-warmed-checkout)セットアップは除きます。また、オーナー間では再利用しないでください。

22 * <span id="processes-a-stopped-session-leaves" />ランナーがセッションを停止するとき、シェルコマンドの終了後も実行を続けているプロセス(デーモン化したサービスなど)にはシグナルを送信しません。コンテナまたは VM を破棄すると、そのプロセスは終了します。22 * <span id="processes-a-stopped-session-leaves" />ランナーがセッションを停止するとき、シェルコマンドの終了後も実行を続けているプロセス(デーモン化したサービスなど)にはシグナルを送信しません。コンテナまたは VM を破棄すると、そのプロセスは終了します。

23* **イメージに広範な認証情報を含めない**:長期的な SSH キー、クラウドプロバイダーの認証情報、またはセッションが必要とする以上の権限を付与するパーソナルアクセストークンを含めないでください。セッション中に使用される認証情報(プッシュトークンや API トークン)は、[ラッパースクリプト](/docs/ja/self-hosted-environments-configuration#wrapper-scripts)からセッションごとにミントしてください。初期クローンの場合(ラッパーが実行される前に発生)、[`checkout` ライフサイクルフック](/docs/ja/self-hosted-environments-configuration#checkout)または [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) を使用してください。[git を設定する](#configure-git)を参照してください。23* **イメージに広範な認証情報を含めない**:長期的な SSH キー、クラウドプロバイダーの認証情報、またはセッションが必要とする以上の権限を付与するパーソナルアクセストークンを含めないでください。セッション中に使用される認証情報(プッシュトークンや API トークン)は、[ラッパースクリプト](/docs/ja/self-hosted-environments-configuration#wrapper-scripts)からセッションごとにミントしてください。初期クローンはラッパーが実行される前に発生するため、[`checkout` ライフサイクルフック](/docs/ja/self-hosted-environments-configuration#checkout)で処理するか、セッションのすべてのリポジトリが github.com 上にある場合は [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) で処理してください。どちらについても、[git を設定する](#configure-git)を参照してください。

24* **ホストの GitHub 認証情報をセッションから遠ざける**:Claude は、セッションが読み取れる任意の GitHub 認証情報を、その認証情報が付与するアクセス権の範囲で使用できます。ランナーホスト自身の広範なスコープを持つ GitHub 認証情報は、セッションが読み取れる場所に置かないでください。このような認証情報には、パーソナルアクセストークン、`gh auth login` がアカウント用に保存するトークン、ランナーの環境内の `GH_TOKEN` などがあります。

25 * **[Anthropic 管理の git](#use-the-anthropic-git-proxy) を使用する場合**:このような認証情報があると、Claude は Anthropic 管理の git を経由せずに GitHub に直接アクセスします。

26 * **Anthropic 管理の git を使用しない場合**:[イメージに git 設定を含める](#ship-git-config-in-your-image)で説明しているとおりに厳密にスコープを限定すれば、クローン用の認証情報をイメージに残しておくことができます。

24* **環境シークレットをセッション実行ホストに置かない**:環境シークレットはランナーを登録し、環境でキューに入っているセッションを取得できます。固定フリートでは、シークレットはすべてのランナーホストに存在し、どのセッションのコードもシークレットファイルを読み取ることができます。[オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners)を優先してください。この場合、シークレットはユーザーコードを一切実行しないオーケストレーターホストに留まり、各ランナーは正確に 1 つのランナーを登録する単一使用の作業指示を受け取ります。固定フリートでは、環境シークレットファイルをすべてのセッションで読み取り可能として扱い、セッション侵害が疑われる場合はその後にシークレットをローテーションしてください。27* **環境シークレットをセッション実行ホストに置かない**:環境シークレットはランナーを登録し、環境でキューに入っているセッションを取得できます。固定フリートでは、シークレットはすべてのランナーホストに存在し、どのセッションのコードもシークレットファイルを読み取ることができます。[オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners)を優先してください。この場合、シークレットはユーザーコードを一切実行しないオーケストレーターホストに留まり、各ランナーは正確に 1 つのランナーを登録する単一使用の作業指示を受け取ります。固定フリートでは、環境シークレットファイルをすべてのセッションで読み取り可能として扱い、セッション侵害が疑われる場合はその後にシークレットをローテーションしてください。

25* **デフォルト拒否ネットワーク出力**:すべての環境でランナーとセッションコンテナのアウトバウンドトラフィックをネットワーク境界で制限してください。[デフォルト拒否出力](#default-deny-egress)では、許可する内容と理由について説明しています。28* **デフォルト拒否ネットワーク出力**:すべての環境でランナーとセッションコンテナのアウトバウンドトラフィックをネットワーク境界で制限してください。[デフォルト拒否出力](#default-deny-egress)では、許可する内容と理由について説明しています。

26* **最小権限ホスト IAM**:ランナーホストに接続されたコンピュート ID(インスタンスプロファイルやノードサービスアカウントなど)は、ランナー自体が必要とするもののみを付与する必要があります。セッションは、ホストの ID を継承するのではなく、ラッパースクリプトを通じて独自の認証情報を取得する必要があります。29* **最小権限ホスト IAM**:ランナーホストに接続されたコンピュート ID(インスタンスプロファイルやノードサービスアカウントなど)は、ランナー自体が必要とするもののみを付与する必要があります。セッションは、ホストの ID を継承するのではなく、ラッパースクリプトを通じて独自の認証情報を取得する必要があります。


42 ガードは [`--trust-workspace`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) に関係なく実行され、リポジトリフック、`.mcp.json`、または Bash ルールはカバーしません。[権限とツール承認](/docs/ja/self-hosted-environments-configuration#permissions-and-tool-approval)では、これらの付与がどこに属するかについて説明しています。45 ガードは [`--trust-workspace`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) に関係なく実行され、リポジトリフック、`.mcp.json`、または Bash ルールはカバーしません。[権限とツール承認](/docs/ja/self-hosted-environments-configuration#permissions-and-tool-approval)では、これらの付与がどこに属するかについて説明しています。

43 46 

44<Note>47<Note>

45 組織の IP 許可リストはデフォルトではセルフホストランナートラフィックをカバーしません。ランナーまたはセッショントラフィックのネットワーク制御として依存しないでください。代わりに、独自のネットワーク境界でデフォルト拒否出力を適用し、組織の IP 許可リスト適用が必要な場合は Anthropic アカウントチームに連絡してください。48 組織で [IP 許可リスト](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting)が有効になっている場合は、ランナーとセッションコンテナを起動する前に、それらのパブリック出力アドレスを許可リストに追加してください。[オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners)を実行する場合は、オーケストレーターホストのアドレスも追加してください。ランナーまたはセッショントラフィックのネットワーク制御として許可リストに依存しないでください。代わりに、独自のネットワーク境界でデフォルト拒否出力を適用してください。

46</Note>49</Note>

47 50 

48<h2 id="network-requirements">51<h2 id="network-requirements">


55 58 

56| ホスト | ポート | 用途 |59| ホスト | ポート | 用途 |

57| :- | :- | :- |60| :- | :- | :- |

58| `api.anthropic.com` | 443、HTTPS;SCM コネクタのみ WSS | ランナーコントロールプレーンとセッションストリーミング、モデル推論、機能フラグ、製品分析、[JWKS](/docs/ja/self-hosted-environments-identity) キーフェッチ、コミット署名、`--use-anthropic-git-proxy` が設定されている場合の git プロキシ、`--scm-connector-host` が設定されている場合のオーケストレーターの [SCM コネクタ](/docs/ja/self-hosted-environments-reference#scm-connector-flags)トンネル |61| `api.anthropic.com` | 443、HTTPS;[Anthropic 管理の git](#use-the-anthropic-git-proxy) では WSS | ランナーコントロールプレーンとセッションストリーミング、モデル推論、機能フラグ、製品分析、[JWKS](/docs/ja/self-hosted-environments-identity) キーフェッチ、コミット署名、`--use-anthropic-git-proxy` が設定されている場合の Anthropic 管理の git |

59| `github.com` またはお客様の GitHub Enterprise ホストなどの git ホスト | 443 または 22 | リポジトリのクローンとプッシュ。ランナーが `--use-anthropic-git-proxy` を使用する場合は不要です。これは git トラフィックを `api.anthropic.com` を通じてルーティングします。 |62| `github.com` や GitHub Enterprise ホストなどの git ホスト | 443 または 22 | ランナーのセッションが使用する各 git ホストでのリポジトリのクローンとプッシュ。[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) を使用するランナーについては、[`github.com` へのパスが引き続き必要になる場合](#github-com-egress-with-the-anthropic-git-proxy)を参照してください。 |

63 

64<span id="github-com-egress-with-the-anthropic-git-proxy" />[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) を使用するランナーは、`github.com` の git トラフィックを `api.anthropic.com` 経由でルーティングするため、`github.com` 向けの git ホストへのパスは不要です。ただし、`--push-outcome-on-release` を設定する場合や `post-session` フックからプッシュする場合は、引き続きそのパスが必要です。

60 65 

61これらのホストが必要かどうかは、設定によって異なります:66これらのホストが必要かどうかは、設定によって異なります:

62 67 


71| `browser-intake-us5-datadoghq.com` | 443 | Anthropic エラーレポートアップロード。セッションのアカウントで[エラーレポート](/docs/ja/data-usage#telemetry-services)が有効な場合のみ送信されます。`DISABLE_ERROR_REPORTING=1` または `DISABLE_TELEMETRY=1` で抑制されます。 |76| `browser-intake-us5-datadoghq.com` | 443 | Anthropic エラーレポートアップロード。セッションのアカウントで[エラーレポート](/docs/ja/data-usage#telemetry-services)が有効な場合のみ送信されます。`DISABLE_ERROR_REPORTING=1` または `DISABLE_TELEMETRY=1` で抑制されます。 |

72| モデルリクエスト、モデル検索、認証情報の更新に使用するクラウドプロバイダーのエンドポイント(`bedrock-runtime.us-east-1.amazonaws.com` や `aiplatform.googleapis.com` など) | 443 | ランナーが[モデルリクエストを Amazon Bedrock または Google Cloud の Agent Platform に送信する](/docs/ja/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform)場合のみ |77| モデルリクエスト、モデル検索、認証情報の更新に使用するクラウドプロバイダーのエンドポイント(`bedrock-runtime.us-east-1.amazonaws.com` や `aiplatform.googleapis.com` など) | 443 | ランナーが[モデルリクエストを Amazon Bedrock または Google Cloud の Agent Platform に送信する](/docs/ja/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform)場合のみ |

73 78 

74ランナーは `statsig.anthropic.com`、`*.sentry.io`、`claude.ai`、または `platform.claude.com` に到達しません。これらのホストは古いエンタープライズネットワークチェックリストに表示されますが、ランナーまたはセッショントラフィックのために許可リストに登録する必要はありません:機能フラグフェッチは `api.anthropic.com` に移動し、ランナーはインタラクティブ OAuth ではなく環境シークレットで認証します。 2 つのホスト側フローは `claude.ai` に到達するため、出力を許可するホストから実行してください。セッションコンテナ出力を広げるのではなく:ワンラインインストーラーはインストール時に `claude.ai` から `install.sh` をフェッチし、インタラクティブな `claude auth login`([ガイド付きセットアップ](/docs/ja/self-hosted-environments-quickstart#set-up-an-environment-and-runner)、`doctor` の署名入りモード、[CI ディスパッチ](/docs/ja/self-hosted-environments-testing#authenticate-from-ci)が使用)は `claude.ai`、`claude.com`、`platform.claude.com` を通じてサインインします。`mcp-proxy.anthropic.com` も必須ではありません:セルフホストセッションはそれを使用せず、組織の claude.ai コネクタをセッションに配信する場合(組織で有効な場合)、`api.anthropic.com` を通じてルーティングされます。[MCP サーバー](/docs/ja/self-hosted-environments-configuration#mcp-servers)を参照してください。79ランナーまたはセッションのトラフィックのために、以下のホストを許可リストに登録する必要はありません:

80 

81* **`statsig.anthropic.com`、`*.sentry.io`、`claude.ai`、`platform.claude.com`**:これらのホストは一部の古いエンタープライズネットワークチェックリストに記載されていますが、ランナーはこれらに到達しません。機能フラグのフェッチは `api.anthropic.com` に送られ、ランナーはインタラクティブ OAuth ではなく環境シークレットで認証します。

82* **`mcp-proxy.anthropic.com`**:セルフホストセッションはこれを使用しません。組織でコネクタ配信が有効な場合、組織の claude.ai コネクタは `api.anthropic.com` を通じてセッションに届きます。[MCP サーバー](/docs/ja/self-hosted-environments-configuration#mcp-servers)を参照してください。

83 

84以下のホスト側フローは `claude.ai` に到達するため、セッションコンテナの出力を広げるのではなく、出力でこれを許可しているホストから実行してください:

85 

86* **ワンラインインストーラー**:インストール時に `claude.ai` から `install.sh` をフェッチします。

87* **インタラクティブな `claude auth login`**:`claude.ai`、`claude.com`、`platform.claude.com` を通じてサインインします。[ガイド付きセットアップ](/docs/ja/self-hosted-environments-quickstart#run-the-guided-setup)、`doctor` のサインイン済みモード、[CI ディスパッチ](/docs/ja/self-hosted-environments-testing#authenticate-from-ci)がこれを使用します。サインインに使用するブラウザーは、claude.ai サインインページのブラウザーチェックも `hcaptcha.com`、`*.hcaptcha.com`、`challenges.cloudflare.com` から読み込みます。

75 88 

76<h3 id="default-deny-egress">89<h3 id="default-deny-egress">

77 デフォルト拒否出力90 デフォルト拒否出力


127* **ランナーに git を設定させる**:`--configure-git` でランナーを開始して、Anthropic ホストセッションが使用する同じ ID とコミット署名設定を書き込ませます140* **ランナーに git を設定させる**:`--configure-git` でランナーを開始して、Anthropic ホストセッションが使用する同じ ID とコミット署名設定を書き込ませます

128* **イメージに git 設定を含める**:ID とプッシュ認証情報を自分で設定します。例えば、独自のボット ID でコミットするため141* **イメージに git 設定を含める**:ID とプッシュ認証情報を自分で設定します。例えば、独自のボット ID でコミットするため

129 142 

143github.com 上のリポジトリについては、[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) でランナーを開始するか、`CLAUDE_RUNNER_USE_GIT_PROXY=1` を設定して、ランナーのセッションの git を提供するよう Anthropic に求めることもできます。

144 

130ランナーホストの Git バージョンフロア:[`--configure-git`](#let-the-runner-configure-git) SSH コミット署名には Git 2.34 以降が必要です。[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) には 2.32 以降が必要です。[`--push-outcome-on-release`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) でプッシュされたブランチからセッションを再開するには 2.29 以降が必要です。3 つすべてを省略して git ID を自分で管理する場合は、Git 2.24 で十分です。145ランナーホストの Git バージョンフロア:[`--configure-git`](#let-the-runner-configure-git) SSH コミット署名には Git 2.34 以降が必要です。[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) には 2.32 以降が必要です。[`--push-outcome-on-release`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) でプッシュされたブランチからセッションを再開するには 2.29 以降が必要です。3 つすべてを省略して git ID を自分で管理する場合は、Git 2.24 で十分です。

131 146 

132<h3 id="let-the-runner-configure-git">147<h3 id="let-the-runner-configure-git">


138* `user.name = Claude` および `user.email = noreply@anthropic.com`。Anthropic ホストセッションと一致します153* `user.name = Claude` および `user.email = noreply@anthropic.com`。Anthropic ホストセッションと一致します

139* SSH 形式のコミットとタグ署名。ランナー管理のシムを通じてルーティングされ、セッション独自の認証情報を使用して Anthropic の署名サービスを通じて各コミットに署名します。署名は GitHub で Anthropic の公開 SSH 署名キーに対して検証可能です。154* SSH 形式のコミットとタグ署名。ランナー管理のシムを通じてルーティングされ、セッション独自の認証情報を使用して Anthropic の署名サービスを通じて各コミットに署名します。署名は GitHub で Anthropic の公開 SSH 署名キーに対して検証可能です。

140* `push.negotiate = true`。git がプッシュをパックする前に git ホストが既に持っているコミットを尋ねます。Claude Code v2.1.257 以降が必要です。155* `push.negotiate = true`。git がプッシュをパックする前に git ホストが既に持っているコミットを尋ねます。Claude Code v2.1.257 以降が必要です。

141* `core.hooksPath` はランナー管理のフックディレクトリを指します。その `commit-msg` および `prepare-commit-msg` フックは、各コミットにセッションの作成者の `Co-authored-by:` トレーラーを追加します。[`CCR_SESSION_ACCOUNT_EMAIL`](/docs/ja/self-hosted-environments-configuration#wrapper-scripts) のメールから構築され、その変数が設定されていない場合は省略されます。イメージが既に `core.hooksPath` を設定している場合、ランナーは設定を保持し、これらのフックのインストールをスキップし、`[runner:git]` 警告を出力します。156* `core.hooksPath` はランナー管理のフックディレクトリを指します。その `commit-msg` および `prepare-commit-msg` フックは、各コミットにセッションの作成者の `Co-authored-by:` トレーラーを追加します。[`CCR_SESSION_ACCOUNT_EMAIL`](/docs/ja/self-hosted-environments-configuration#wrapper-scripts) のメールから構築され、その変数が設定されていない場合は省略されます。イメージが既に `core.hooksPath` を設定していて、ランナーが [Anthropic 管理の git](#use-the-anthropic-git-proxy) を使用していない場合、ランナーは設定を保持し、これらのフックのインストールをスキップし、`[runner:git]` 警告を出力します。

142 157 

143コミット署名には git 2.34 以降が必要です。ランナーは起動時にチェックし、git が古い場合はエラーで終了します。このフラグはプッシュ認証情報を設定しません。これはイメージで提供する必要があります。158コミット署名には git 2.34 以降が必要です。ランナーは起動時にチェックし、git が古い場合はエラーで終了します。このフラグはプッシュ認証情報を設定しません。これはイメージで提供する必要があります。

144 159 

145v2.1.280 以降のランナーでは、`checkout` または `post-session` ライフサイクルフックから行ったコミットもセッションとして署名されます。ただし、`Co-authored-by:` トレーラーは付きません。[ライフサイクルフック内の git 設定](/docs/ja/self-hosted-environments-configuration#git-configuration-inside-lifecycle-hooks)では、ランナーがこれらのフック内で固定する git 設定について説明しています。160v2.1.280 以降のランナーでは、`checkout` または `post-session` ライフサイクルフックから行ったコミットもセッションとして署名されます。ただし、`Co-authored-by:` トレーラーは付きません。[ライフサイクルフック内の git 設定](/docs/ja/self-hosted-environments-configuration#git-configuration-inside-lifecycle-hooks)では、ランナーがこれらのフック内で固定する git 設定について説明しています。

146 161 

162`--configure-git` の有無にかかわらず、Claude Code は Claude に対して、コミットメッセージの末尾に `Claude-Session: <url>` トレーラーを付け、プルリクエストの説明の末尾にセッションの URL を付けるよう指示します。両方を省略するには、ランナーホストの [`~/.claude/settings.json`](/docs/ja/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) で [`attribution.sessionUrl`](/docs/ja/settings-reference#attribution-sessionurl) を `false` に設定してから、ランナーを再起動してください。

163 

147<h3 id="ship-git-config-in-your-image">164<h3 id="ship-git-config-in-your-image">

148 イメージに git 設定を含める165 イメージに git 設定を含める

149</h3>166</h3>


186 Anthropic git プロキシを使用する203 Anthropic git プロキシを使用する

187</h3>204</h3>

188 205 

189`--use-anthropic-git-proxy` でランナーを開始するか、`CLAUDE_RUNNER_USE_GIT_PROXY=1` を設定して、セッション独自の短期トークンで認証された Anthropic の git プロキシを通じてクローンさせます。通常のユーザーセッションの場合、プロキシはセッション作成者用に保存された GitHub または GitHub Enterprise OAuth トークンを使用します。ボットおよびエージェントセッションの場合、組織の GitHub App インストールトークンを使用します。どちらの場合でも、ランナーイメージは git 認証情報をまったく必要としません:SSH キーなし、認証情報ヘルパーなし、`.netrc` なし。これは Anthropic ホスト環境が使用する同じ認証パスです。206Anthropic git プロキシ(Anthropic 管理の git とも呼ばれます)を使用すると、ランナーイメージはセッション自体のために SSH キー、認証情報ヘルパー、`.netrc`、その他の git 認証情報を必要としません。代わりに、ランナーはセッションの git を提供するよう Anthropic に求めます。Anthropic が提供するユーザーのセッションでは、ランナーのクローンとセッション独自のフェッチおよびプッシュは Anthropic を経由し、Anthropic はセッション作成者用に保存された GitHub OAuth トークンを使用します。ボットおよびエージェントセッションについては、[Anthropic がセッションの git を提供する仕組み](#how-anthropic-serves-git-for-a-session)で説明しています。

207 

208git プロキシは、[オンにしない](#turn-the-anthropic-git-proxy-on)限りオフです。独自の認証情報で git ホストに到達するランナーには不要であり、そのランナーの git はどの git ホストでも動作します。

209 

210その代わり、git プロキシはランナーがサポートする範囲を制限し、ランナーに必要なものを変更します:

211 

212* **github.com のみ**:Anthropic は、セッションのすべてのリポジトリが github.com 上にある場合にのみそのセッションを提供します。また、git プロキシはまだ GitHub Enterprise Server をサポートしていません。git プロキシを使用するランナーでは、別の git ホスト上のリポジトリを持つセッションは[開始に失敗します](#when-anthropic-doesnt-serve-a-session)。

213* **セッションのリポジトリのみの認証情報**:Anthropic は、セッションに含まれるリポジトリに対して git 認証情報を提供し、同じ git ホスト上の他のリポジトリに対しては提供しません。プライベートサブモジュール、パッケージマネージャーが git で取得する依存関係、または別のリポジトリにあるプラグインマーケットプレイスは、Anthropic から認証情報を受け取りません。セッションを作成するユーザーに、作成時にセッションが必要とする[すべてのリポジトリを追加する](/docs/ja/web-quickstart#start-a-task)よう依頼してください。

214* **ブランチへのプッシュのみ**:ブランチを削除するプッシュは失敗し、タグなど他の種類の ref へのプッシュも失敗します。プッシュで更新できるブランチについては、[GitHub プロキシ](/docs/ja/cloud-environments#github-proxy)を参照してください。

215* **接続済みの GitHub アカウント**:ユーザーセッションを作成したユーザーが claude.ai で GitHub を接続している必要があります。接続していない場合、セッションは[開始されません](#creator-has-no-github-connection)。

216* **`--capacity 1`**:git プロキシはランナープロセスごとに 1 つのセッションを必要とするため、並列処理のためにより多くのレプリカを実行してください。要件は [Anthropic git プロキシをオンにする](#turn-the-anthropic-git-proxy-on)に記載されています。

217* **グローバル git 設定の置き換え**:ランナーは、実行ユーザーの[グローバル git 設定を削除して置き換えます](#git-proxy-replaces-global-git-config)。専用ユーザーとして、またはコンテナ内で実行してください。

218* **ホストからのプッシュにはホストの認証情報**:ランナーの [`--push-outcome-on-release`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) によるプッシュと、[`post-session` フック](/docs/ja/self-hosted-environments-configuration#post-session)が行うプッシュは、引き続きランナーホスト独自の git 認証情報と [`github.com` へのネットワーク経路](#github-com-egress-with-the-anthropic-git-proxy)を使用します。これらの認証情報については、[イメージに git 設定を含める](#ship-git-config-in-your-image)を参照してください。

219* **セッションごとの判断**:Anthropic はランナー上の各セッションについて git を提供するかどうかを決定し、提供されないセッションは開始に失敗します。原因については [git プロキシを使用するランナーでセッションの開始に失敗する場合](#when-anthropic-doesnt-serve-a-session)で説明しています。

220 

221<span id="git-proxy-replaces-global-git-config" />

222 

223<Warning>

224 `--use-anthropic-git-proxy` を設定すると、ランナーは実行ユーザーのグローバル git 設定を削除して置き換え、バックアップは保持しません。これは起動時と各セッションの前に行われます。そこに保存していたログインや認証情報ヘルパーは失われます。[`--configure-git`](#let-the-runner-configure-git) が書き込む設定は保持されます。ランナーは専用ユーザーとして、またはコンテナ内で実行し、決して自分のユーザーとして実行しないでください。

225</Warning>

226 

227ID や `safe.directory` など、機密ではない git 設定はシステムの git 設定に保持してください。

228 

229<h4 id="turn-the-anthropic-git-proxy-on">

230 Anthropic git プロキシをオンにする

231</h4>

232 

233`--use-anthropic-git-proxy` でランナーを開始する前に、ランナーホストが次の各要件を満たしていることを確認してください。容量または git の要件が満たされていない場合、ランナーは起動を拒否します:

190 234 

191プロキシは `--capacity 1` を必要とします。プロキシ URL はセッションごとであり、git 2.32 以降が必要です。古い git はプロキシがセッションを相互に分離するために使用する設定メカニズムを無視するためです。ランナーは要件のいずれかが満たされない場合、起動を拒否します。プロキシは Anthropic 側からフェッチするため、git ホストは Anthropic インフラストラクチャから到達可能である必要があります。これは Anthropic ホストセッションと同じ要件です。ネットワーク内でのみルーティング可能な git ホストの場合は、代わりに [`checkout` ライフサイクルフック](/docs/ja/self-hosted-environments-configuration#checkout)を使用してください。各ランナープロセスは一度に 1 つのセッションを処理するため、並列処理のためにより多くのレプリカを実行してください。プロキシが有効な場合、`--git-host-rewrite` と `--git-ssh-rewrite` は効果がありません:プロキシ URL は git ホストではなく `api.anthropic.com` を指します。235* **Claude Code v2.1.267 以降**:それより前のバージョンはフラグを受け入れますが、Anthropic に git の提供を求めるリクエストを報告せず、`Registering as opted in` 行も出力しないため、Anthropic はそれらのセッションを提供しません。

236* **`--capacity 1`(デフォルト)**:各ランナープロセスは一度に 1 つのセッションを処理するため、並列処理のためにより多くのレプリカを実行してください。

237* **Git 2.32 以降**:古い git は、ランナーが git プロキシ用に設定するセッションごとの git 設定を無視します。

192 238 

193<Warning>239<Warning>

194 このページの [Kubernetes](#kubernetes) および [Docker Compose](#docker-compose) レシピは `--capacity 4` を使用しています。`--use-anthropic-git-proxy` または `CLAUDE_RUNNER_USE_GIT_PROXY=1` をそのいずれかに追加する場合、容量を `1` に変更しないと、オーケストレーターがそれを再起動するたびにランナーは起動時に終了します。`--capacity 1` を設定し、並列処理のためにより多くのレプリカを実行してください。[ランナーが終了するとき](#when-the-runner-exits)はランナーが出力する行を示しています。240 このページの [Kubernetes](#kubernetes) および [Docker Compose](#docker-compose) レシピは `--capacity 4` を使用しています。`--use-anthropic-git-proxy` または `CLAUDE_RUNNER_USE_GIT_PROXY=1` をそのいずれかに追加する場合、容量を `1` に変更しないと、オーケストレーターがそれを再起動するたびにランナーは起動時に終了します。`--capacity 1` を設定し、並列処理のためにより多くのレプリカを実行してください。[ランナーが終了するとき](#when-the-runner-exits)はランナーが出力する行を示しています。

195</Warning>241</Warning>

196 242 

197ランナーは登録時に Anthropic にオプトインを報告し、起動時に `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` を出力します。オプトインの報告には Claude Code v2.1.267 以降が必要です。それより前のバージョンはフラグを受け入れますが、報告しないか、その行を出力しません。その後、オプトインランナー上の各セッションは、Anthropic 管理の git またはセッションごとのプロキシ URL のいずれかを使用します。セッションがセッションごとのプロキシ URL を使用する場合、ランナーは 1 つの `[runner:warn]` 行をログに記録します。243git プロキシをオンにするには、ランナーのコマンドに `--use-anthropic-git-proxy` を追加するか、ランナーの環境で `CLAUDE_RUNNER_USE_GIT_PROXY=1` を設定します。ランナーホスト上のシェルで実行する次のコマンドは、[クイックスタート](/docs/ja/self-hosted-environments-quickstart#set-up-manually)のランナーを git プロキシをオンにした状態で開始します:

244 

245```bash theme={null}

246claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>' --use-anthropic-git-proxy

247```

248 

249起動時に、ランナーは `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` を出力します。その後、Anthropic はそのランナー上の各セッションについて git を提供するかどうかを決定します。提供する各セッションについて、ランナーは `governed git ACTIVE` を含む `[runner:session]` 行をログに記録します。代わりにセッションの開始に失敗した場合は、[git プロキシを使用するランナーでセッションの開始に失敗する場合](#when-anthropic-doesnt-serve-a-session)を参照してください。

250 

251<h4 id="how-anthropic-serves-git-for-a-session">

252 Anthropic がセッションの git を提供する仕組み

253</h4>

254 

255Anthropic が提供するセッションでは、ランナーのクローンとセッション独自のフェッチおよびプッシュは、セッション独自の短期トークンで認証されて Anthropic を経由します:

256 

257* **ユーザーセッション**:Anthropic はセッション作成者用に保存された GitHub OAuth トークンを使用します。

258* **ボットおよびエージェントセッション**:Anthropic は組織の GitHub App インストールトークンを使用します。

259* **URL の書き直し**:`--git-host-rewrite` と `--git-ssh-rewrite` は、git プロキシが提供するリポジトリには効果がありません。

260 

261<h4 id="when-anthropic-doesnt-serve-a-session">

262 git プロキシを使用するランナーでセッションの開始に失敗する場合

263</h4>

264 

265`--use-anthropic-git-proxy` で開始したランナーでは、Anthropic がセッションの git を提供しない場合、セッションは開始に失敗します。ランナーのログで、`/git_proxy/` を含む `api.anthropic.com` アドレスを示す git エラーを探してください。

266 

267各セッションについて、Claude Code v2.1.267 以降のランナーは、Anthropic がセッションの git を提供する場合は `governed git ACTIVE` を含む `[runner:session]` 行を、提供しない場合は `the server withheld Anthropic-managed git for this session` を含む `[runner:warn]` 行を 1 つログに記録します。表示されている行を次のケースから探してください:

268 

269* **`governed git ACTIVE` も `withheld` 行もない**:Claude Code v2.1.267 より古いランナーはどちらの行もログに記録せず、Anthropic はそのセッションを提供しません。[バージョンを固定する](#pin-the-version)の手順に従って、ランナーを v2.1.267 以降に更新してください。

270* **`withheld` 行**:Anthropic はセッションを提供しませんでした。以前は git プロキシで動作していたランナーでも、ユーザー側で何も変更していないのにこのように失敗することがあります。

271 * **github.com 上にないリポジトリがある**:GitHub Enterprise Server など別の git ホスト上のリポジトリが 1 つでもあるセッションは、その github.com リポジトリも含めて提供されません。その環境のランナーでは [Anthropic git プロキシをオフにしてください](#turn-the-anthropic-git-proxy-off)。

272 * **すべてのリポジトリが github.com 上にある**:`withheld` 行のセッション ID を添えて、[Anthropic アカウントチーム](#report-an-issue)に失敗を報告してください。Anthropic は理由を自社側で記録しています。

273* **`remote: access denied by the git proxy` を含む行**:Anthropic が提供するセッションでも拒否される場合があります。たとえば、組織のポリシーがセッションの git アクセスを拒否する場合や、セッションがリポジトリに対して認可されていない場合です。その場合、ランナーのログに `remote: access denied by the git proxy` を含む行が表示され、その行の残りの部分に理由が示されます。

274* <span id="creator-has-no-github-connection" />**`GitHub authentication required`**:セッションの作成者が claude.ai で有効な GitHub 接続を持っていない場合に表示されます。セッションのクローンは失敗し、git エラーには `GitHub authentication required. Please reconnect your GitHub account.` と表示されます。そのユーザーに、claude.ai の設定で GitHub を接続または再接続するよう依頼してください。

275 

276原因を修正した後、失敗したセッションを再度開始してください。

277 

278<h4 id="turn-the-anthropic-git-proxy-off">

279 Anthropic git プロキシをオフにする

280</h4>

281 

282環境内のセッションが GitHub Enterprise Server など github.com 以外の git ホスト上のリポジトリを使用する場合は、その環境のランナーで `--use-anthropic-git-proxy` をオフにしてください。

283 

284<Steps>

285 <Step title="フラグを削除する">

286 ランナーのコマンドから `--use-anthropic-git-proxy` を削除します。Pod 仕様や Compose ファイルなど、ランナーの環境で `CLAUDE_RUNNER_USE_GIT_PROXY` を設定している場合は、そこから削除します。シェルでは設定を解除します:

287 

288 ```bash theme={null}

289 unset CLAUDE_RUNNER_USE_GIT_PROXY

290 ```

291 </Step>

292 

293 <Step title="ランナーに git 認証情報を与える">

294 github.com を含め、ランナーのセッションが使用するすべての git ホストに対して、プロンプトなしで動作する認証情報を提供してください。ランナーユーザーのグローバル git 設定にあった認証情報は、`--use-anthropic-git-proxy` が設定されている間にランナーがその設定を削除したため、失われています。[イメージに認証情報を含める](#ship-git-config-in-your-image)か、[`checkout` ライフサイクルフック](/docs/ja/self-hosted-environments-configuration#checkout)を使用してください。

295 </Step>

296 

297 <Step title="ネットワーク経路を開く">

298 ランナーのセッションが使用する各 git ホストに、ランナーがポート 443 または 22 で到達できるようにしてください。[ネットワーク要件](#network-requirements)の git ホストの行を参照してください。

299 </Step>

300 

301 <Step title="ランナーを再起動する">

302 git プロキシなしで登録されるようにランナーを再起動します。その後、失敗した各セッションを再度開始してください。

303 </Step>

304</Steps>

198 305 

199<h4 id="github-api-access-without-the-github-cli">306<h4 id="github-api-access-without-the-github-cli">

200 GitHub CLI なしで GitHub API にアクセスする307 GitHub CLI なしで GitHub API にアクセスする


266```dockerfile theme={null}373```dockerfile theme={null}

267FROM debian:bookworm-slim374FROM debian:bookworm-slim

268ARG CLAUDE_CODE_VERSION375ARG CLAUDE_CODE_VERSION

269RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates openssh-client \376RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates openssh-client jq \

270 && rm -rf /var/lib/apt/lists/*377 && rm -rf /var/lib/apt/lists/*

271RUN curl -fsSL "https://downloads.claude.ai/claude-code-releases/${CLAUDE_CODE_VERSION:?set with --build-arg CLAUDE_CODE_VERSION}/linux-x64/claude" \378RUN curl -fsSL "https://downloads.claude.ai/claude-code-releases/${CLAUDE_CODE_VERSION:?set with --build-arg CLAUDE_CODE_VERSION}/linux-x64/claude" \

272 -o /usr/local/bin/claude && chmod +x /usr/local/bin/claude379 -o /usr/local/bin/claude && chmod +x /usr/local/bin/claude


382kubectl create namespace claude-runners489kubectl create namespace claude-runners

383```490```

384 491 

385管理 UI の [**環境キーをコピー**ステップ](/docs/ja/self-hosted-environments-quickstart#set-up-an-environment-and-runner)でコピーした値を保持するローカルファイルからバッキング Secret を作成してください。シークレットはシェル履歴に表示されません。`(umask 077 && cat > ./environment-secret)` を実行し、シークレットを貼り付け、Enter キーを押してから Ctrl-D を押してください。次に Secret を作成してファイルを削除してください:492管理 UI の [**環境キーをコピー**ステップ](/docs/ja/self-hosted-environments-quickstart#set-up-manually)でコピーした値を保持するローカルファイルからバッキング Secret を作成してください。シークレットはシェル履歴に表示されません。`(umask 077 && cat > ./environment-secret)` を実行し、シークレットを貼り付け、Enter キーを押してから Ctrl-D を押してください。次に Secret を作成してファイルを削除してください:

386 493 

387```bash theme={null}494```bash theme={null}

388kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret495kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret


500 事前にウォームアップされたチェックアウトを再利用する607 事前にウォームアップされたチェックアウトを再利用する

501</h2>608</h2>

502 609 

503大規模なリポジトリの場合、クローンがセッション起動を支配することがあります。`--capacity 1` で [`checkout` フック](/docs/ja/self-hosted-environments-configuration#checkout) がない場合、ランナーは `<base-dir>/<repo-owner>/<repo>` でリポジトリごとに 1 つの正規クローンを保持し、セッション全体で再利用します。要求された ref をフェッチし、`HEAD` をデタッチして、それにハードリセットします。これは変更がほとんどない場合、ほぼ瞬時に完了します。コールドクローンをスキップするには、次の 2 つの方法のいずれかでクローンを提供します。610大規模なリポジトリの場合、クローンがセッション起動を支配することがあります。コールドクローンをスキップするには、ランナーが自身のクローンを保持するパスにクローンを自分で用意します。[`checkout` フック](/docs/ja/self-hosted-environments-configuration#checkout) がない場合、ランナーは `<base-dir>/<repo-owner>/<repo>` でリポジトリごとに 1 つの正規クローンを保持し、セッション全体で再利用します。

611 

612* **`--capacity 1` の場合**: ランナーは要求された ref をフェッチし、`HEAD` をデタッチして、それにハードリセットします。これは変更がほとんどない場合、ほぼ瞬時に完了します。

613* **`--capacity` が 1 より大きい場合**: ランナーはそのクローンにフェッチし、セッションごとにそこから個別の worktree をチェックアウトします。事前にウォームアップされたクローンによってダウンロードは省略されますが、チェックアウトは省略されません。

614 

615クローンはイメージ内または永続ボリューム上に用意します。

504 616 

505* **イメージ内にクローンを配置する**: ランナーイメージをそのパスにビルドしてクローンを含めます。その後、新しいコンテナはすべてディスクを再利用せずにウォームクローンで起動します。617* **イメージ内にクローンを配置する**: ランナーイメージをそのパスにビルドしてクローンを含めます。その後、新しいコンテナはすべてディスクを再利用せずにウォームクローンで起動します。

506* **永続ボリューム上にクローンを配置する**: [`--lock-to-account`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) で 1 人のユーザーアカウントにプリロックされたランナーで、`--base-dir` を永続ボリュームに指定すると、ディスクはそのアカウントのみを提供します。プリロックされたランナーは Claude Tag チャネルセッションを取得しないため、このオプションはそれらを提供するランナーには適用されません。618* **永続ボリューム上にクローンを配置する**: [`--lock-to-account`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) で 1 人のユーザーアカウントにプリロックされたランナーで、`--base-dir` を永続ボリュームに指定すると、ディスクはそのアカウントのみを提供します。プリロックされたランナーは Claude Tag チャネルセッションを取得しないため、このオプションはそれらを提供するランナーには適用されません。


508再利用パスが保証するもの、しないもの:620再利用パスが保証するもの、しないもの:

509 621 

510* **任意のクローン形状が機能する**: パスの完全、シャロー、または単一ブランチクローンはそのまま使用されます。ランナーは既存のクローンにフェッチするときに `--depth` を渡しません。そのため、完全なプリウォームは完全な履歴を保持し、シャロークローンはシャローのままです。`CLAUDE_RUNNER_FETCH_DEPTH`(`full`、`0`、または数値。デフォルト 50)は、クローンがまだ存在しない場合にランナーが作成するコールドクローンのみを制御します。622* **任意のクローン形状が機能する**: パスの完全、シャロー、または単一ブランチクローンはそのまま使用されます。ランナーは既存のクローンにフェッチするときに `--depth` を渡しません。そのため、完全なプリウォームは完全な履歴を保持し、シャロークローンはシャローのままです。`CLAUDE_RUNNER_FETCH_DEPTH`(`full`、`0`、または数値。デフォルト 50)は、クローンがまだ存在しない場合にランナーが作成するコールドクローンのみを制御します。

511* **追跡された変更はリセットされ、追跡されていないファイルは保持される**: 各セッションはハードリセットから開始され、前のセッションの追跡された変更を削除しますが、ランナーは `git clean` を実行しないため、ロックされたオーナーの以前のセッションからの追跡されていないファイルはツリーに残ります。623* **追跡された変更はリセットされ、追跡されていないファイルは保持される**: `--capacity 1` では、各セッションはハードリセットから開始され、前のセッションの追跡された変更を削除しますが、ランナーは `git clean` を実行しないため、ロックされたオーナーの以前のセッションからの追跡されていないファイルはツリーに残ります。

512* **セッションごとのディレクトリも保持される**: チェックアウトの横に、ランナーは実行するすべてのセッションに対して `<base-dir>/_sessions/` の下にセッションごとのエントリを作成します。セッションの Claude 設定ディレクトリは、会話トランスクリプトのローカルコピーを保持します。その横には、セッションがある場合、セッションのアップロードされたファイルが配置されます。セッションディレクトリもそこに配置されます。セッションの実行中、セッションごとの worktrees と `checkout` フックチェックアウトを保持し、Claude がそこに書き込んだ他のすべてのものを保持します。624* **セッションごとのディレクトリも保持される**: チェックアウトの横に、ランナーは実行するすべてのセッションに対して `<base-dir>/_sessions/` の下にセッションごとのエントリを作成します。セッションの Claude 設定ディレクトリは、会話トランスクリプトのローカルコピーを保持します。その横には、セッションがある場合、セッションのアップロードされたファイルが配置されます。セッションディレクトリもそこに配置されます。セッションの実行中、セッションごとの worktrees と `checkout` フックチェックアウトを保持し、Claude がそこに書き込んだ他のすべてのものを保持します。

513 625 

514 デフォルトでは、ランナーはセッションが終了したときにこれらをそのまま残すため、ランナープロセスより長く存続するディスク上に蓄積されます。すべてのセッションはランナー自身のユーザーとして実行されるため、そのディスクが提供する後続のセッションはそれらを読み取ることができます。永続的な `--base-dir` を保持する場合は、その成長に対応するようにボリュームのサイズを設定してください。同じことは、[Docker Compose レシピ](#docker-compose) を含む、同じファイルシステム上でランナーを再起動するすべてのセットアップに適用されます。626 デフォルトでは、ランナーはセッションが終了したときにこれらをそのまま残すため、ランナープロセスより長く存続するディスク上に蓄積されます。すべてのセッションはランナー自身のユーザーとして実行されるため、そのディスクが提供する後続のセッションはそれらを読み取ることができます。永続的な `--base-dir` を保持する場合は、その成長に対応するようにボリュームのサイズを設定してください。同じことは、[Docker Compose レシピ](#docker-compose) を含む、同じファイルシステム上でランナーを再起動するすべてのセットアップに適用されます。


522 634 

523各セッションの子 Claude Code プロセスはランナー独自のバイナリを実行し、ランナーはセッション内でオートアップデートをオフにするため、すべてのセッションはホストにインストールされたか、イメージに組み込まれたバージョンを実行します。ホストレベルのアップデートはランナーが次に開始するときに有効になります。635各セッションの子 Claude Code プロセスはランナー独自のバイナリを実行し、ランナーはセッション内でオートアップデートをオフにするため、すべてのセッションはホストにインストールされたか、イメージに組み込まれたバージョンを実行します。ホストレベルのアップデートはランナーが次に開始するときに有効になります。

524 636 

525セッションが使用するモデルは、セッションが実行する Claude Code バージョンより新しい Claude Code バージョンを必要とする場合があります。その場合、サーバーはそのモデルのリクエストを [Claude Code does not support this model](/docs/ja/errors#claude-code-does-not-support-this-model) で拒否します。バージョンをピンする前に、セッションが使用するすべてのモデルについて [モデルが必要とする Claude Code バージョン](/docs/ja/model-config#available-models) を確認してください。637セッションが実行するバージョンと、それを変更するタイミングを選択します。

526 638 

639* **バージョンをピンする前に**:セッションが使用するすべてのモデルについて [モデルが必要とする Claude Code バージョン](/docs/ja/model-config#available-models) を確認してください。モデルがセッションで実行されるバージョンより新しいバージョンを必要とする場合、サーバーはそのモデルのリクエストを [Claude Code does not support this model](/docs/ja/errors#claude-code-does-not-support-this-model) で拒否します。

527* **フリートを 1 つのバージョンに保持するには**:ピンされたバージョンでイメージをビルドするか、ベアホストで特定のバージョンをインストールし、[オートアップデートを無効にしてください](/docs/ja/setup#disable-auto-updates)640* **フリートを 1 つのバージョンに保持するには**:ピンされたバージョンでイメージをビルドするか、ベアホストで特定のバージョンをインストールし、[オートアップデートを無効にしてください](/docs/ja/setup#disable-auto-updates)

528* **アップグレードするには**:新しいバージョンをインストールするか、イメージを再ビルドしてから、ランナーを再起動してください641* **固定フリートをアップグレードするには**:現在のバージョンとインストールするバージョンの間の [changelog](/docs/en/changelog) のエントリを確認してから、新しいバージョンをインストールするか、イメージを再ビルドしてランナーを再起動してください

642* **オンデマンドランナーをアップグレードするには**:現在のバージョンとインストールするバージョンの間の [changelog](/docs/en/changelog) のエントリを確認してから、[`spawn-runner` フック](/docs/ja/self-hosted-environments-configuration#the-spawn-runner-hook)が起動するイメージを変更してください。新しいランナーにはそれぞれ新しいバージョンが適用されます。すでに起動しているランナー([`--min-idle`](/docs/ja/self-hosted-environments-reference#orchestrator-cli-flags) によって起動されたスタンバイランナーを含む)は、終了するまでそのバージョンを維持します。その作業指示は一度しか使用できないため、再起動しないでください。

529* **プラグイン**:プラグインマーケットプレイスもオートアップデートしません。ランナーの環境で `FORCE_AUTOUPDATE_PLUGINS=1` を設定して、バイナリがピンされたままの間、プラグインをオートアップデートさせます643* **プラグイン**:プラグインマーケットプレイスもオートアップデートしません。ランナーの環境で `FORCE_AUTOUPDATE_PLUGINS=1` を設定して、バイナリがピンされたままの間、プラグインをオートアップデートさせます

530 644 

531<h2 id="scale-the-fleet">645<h2 id="scale-the-fleet">


543 既知の問題と制限事項657 既知の問題と制限事項

544</h2>658</h2>

545 659 

546これらはこのリリースの制限事項です。回避策が存在する場合は記載されています。660このリリースにおける制限事項と、回避策がある場合はその回避策を以下に示します。

547 661 

548<h3 id="connector-traffic-leaves-your-network">662<h3 id="connector-traffic-leaves-your-network">

549 コネクタトラフィックはネットワークを離れます663 コネクタのトラフィックはネットワーク外に出る

550</h3>664</h3>

551 665 

552Anthropic はランナーからではなく、独自のインフラストラクチャからコネクタツールを呼び出します。コネクタツールは claude.ai コネクタです。GitHub、Slack、Linear など。Claude がセルフホストセッションでコネクタを使用する場合、そのトラフィックはネットワーク境界内から発信されるのではなく、`api.anthropic.com` を通じて移動します。666Anthropic は、コネクタのツールをランナーからではなく、Anthropic 自身のインフラストラクチャから呼び出します。コネクタのツールとは、GitHub、Slack、Linear などの claude.ai のコネクタです。セルフホストセッションで Claude がコネクタを使用すると、そのトラフィックはネットワーク境界の内側から発信されるのではなく、`api.anthropic.com` を経由します。

553 667 

554セルフホストセッションからコネクタを除外するには、[`allowedMcpServers` および `deniedMcpServers` ポリシー設定](/docs/ja/managed-mcp#policy-based-control-with-allowlists-and-denylists)でフィルタリングしてください。Claude Code はこれらの設定をランナーホストからシードするサーバーとユーザーが追加するサーバーと同様に、Anthropic が配信するコネクタに適用します。他のサーバーの URL ベースの許可リストをデプロイする場合、Claude Code は配信されたコネクタもブロックします。配信されたコネクタを他のサーバーと一緒に利用可能に保つには、Anthropic プロキシパスの配信されたコネクタに一致するエントリを追加してください:668コネクタをセルフホストセッションから除外するには、[`allowedMcpServers` および `deniedMcpServers` ポリシー設定](/docs/ja/managed-mcp#policy-based-control-with-allowlists-and-denylists)でフィルタリングします。Claude Code はこれらの設定を、ランナーホストからシードするサーバーやユーザーが追加するサーバーだけでなく、Anthropic が配信するコネクタにも適用します。そのため、他のサーバー向けに許可リストをデプロイすると、Claude Code は配信されたコネクタもブロックします。URL ベースの許可リストを使いながらコネクタを引き続き利用できるようにするには、配信されるコネクタ用の Anthropic プロキシのパスに一致するエントリを追加します。

555 669 

556* `https://api.anthropic.com/v2/ccr-sessions/*`670* `https://api.anthropic.com/v2/ccr-sessions/*`

557* `https://api.anthropic.com/v1/code/sessions/*`671* `https://api.anthropic.com/v1/code/sessions/*`

558* `https://api.anthropic.com/v1/code/mcp/*`672* `https://api.anthropic.com/v1/code/mcp/*`

559 673 

560ツールトラフィックがネットワーク内に留まる必要がある場合は、代わりにランナーイメージ上でローカル MCP サーバーとして同等のツールを実行してください。[MCP サーバー](/docs/ja/self-hosted-environments-configuration#mcp-servers)を参照してください。674ツールのトラフィックをネットワーク内に留める必要がある場合は、代わりに同等のツールをランナーイメージ上のローカル MCP サーバーとして実行してください。[MCP サーバー](/docs/ja/self-hosted-environments-configuration#mcp-servers)を参照してください。

561 675 

562<h3 id="some-sessions-don’t-count-as-idle">676<h3 id="some-sessions-don’t-count-as-idle">

563 一部のセッションはアイドルとしてカウントされません677 一部のセッションはアイドルとみなされない

564</h3>678</h3>

565 679 

566終了しないバックグラウンドタスクを保持するセッションはアイドルとしてカウントされないため、`--release-idle-session-min` はそのセッションのスロットをリリースしません。実行中のツール呼び出し内から要求された承認を待機しているセッションもアイドルとしてカウントされません。常に `--kill-session-after-min` をそれと一緒に設定して、セッションがスロットを無期限に保持できないようにハードバックストップとしてください。680終了しないバックグラウンドタスクを保持しているセッションはアイドルとみなされないため、`--release-idle-session-min` はそのセッションのスロットを解放しません。実行中のツール呼び出しの内部から要求された承認を待っているセッションも、アイドルとみなされません。どのセッションもスロットを無期限に保持できないように、厳格な安全策として必ず `--kill-session-after-min` を併せて設定してください。

567 681 

568`--kill-session-after-min` は暴走セッションのバックストップです。v2.1.260 以降のランナーでは、制限に達したセッションは直ちに終了されません。ランナーは猶予ウィンドウを与えます。デフォルトでは 15 分です。[`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](/docs/ja/self-hosted-environments-reference#environment-variable-only-settings)で変更できます:682`--kill-session-after-min` は、暴走したセッションに対する安全策です。v2.1.260 以降のランナーでは、上限に達したセッションはただちに終了されません。ランナーはそのセッションに猶予期間(デフォルトは 15 分)を与えます。この期間は [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](/docs/ja/self-hosted-environments-reference#environment-variable-only-settings) で変更できます。

569 683 

570* セッションがユーザーを待機している場合、またはターンが終了してバックグラウンドタスクのみを保持している場合、ランナーはそれを直ちにリリースします。セッションはユーザーが次のメッセージを送信するときに再開されます。684* セッションがユーザーを待っている場合、ランナーはそのセッションを解放します。ターンが終了していてバックグラウンドタスクのみを保持している場合、ランナーはそれらのタスクが完了するまで最大 60 秒待ってから、セッションを解放します。セッションは、ユーザーが次のメッセージを送信すると再開されます。

571* ターンがまだ実行中の場合、ランナーはターンが終了するのを待つか、セッションが次にユーザーを待機するのを待ってから、それをリリースします。685* ターンがまだ実行中の場合、ランナーはターンが完了するか、セッションが次にユーザーを待つ状態になるまで待ってから、セッションを解放します。

572* セッションが猶予ウィンドウの終了時にランナーに留まっている場合、ランナーはそれを終了し、実行中のターンの作業は失われます。実行中のツール呼び出し内から要求された承認を待機しているターンは、セッションがウィンドウを超えて存続する 1 つの方法です。686* 猶予期間が終了した時点でセッションがまだランナー上にある場合、ランナーはセッションを終了し、実行中のターンの作業は失われます。実行中のツール呼び出しの内部から要求された承認をターンが待っている場合は、セッションが猶予期間を超えて残る一例です。

573 687 

574リリースされたセッションは新しいクローンから再開されるため、プッシュしていない作業はどちらの方法でも失われます。[再開されたセッションはプッシュされていない作業を失う](#additional-limitations)を参照してください。v2.1.260 より前では、ランナーはすべてのセッションを制限で終了し、実行中のターンが終了するのを最大猶予ウィンドウ待機しました。688解放されたセッションは新しいクローンから再開されるため、いずれの場合もプッシュしていなかった作業は失われます。[再開されたセッションではプッシュしていない作業が失われる](#additional-limitations)を参照してください。v2.1.260 より前では、ランナーは実行中のターンの完了を最大で猶予期間だけ待った後、上限に達したすべてのセッションを終了していました。

575 689 

576フラグを最長予想セッション(例えば 8 時間の場合は `--kill-session-after-min 480`)の上に設定してください。アイドル状態になった会話からスロットを解放するには、代わりに `--release-idle-session-min` を使用してください。690このフラグは、想定される最長のセッションよりも長い値に設定してください。たとえば 8 時間の場合は `--kill-session-after-min 480` とします。アイドル状態になった会話からスロットを解放するには、代わりに `--release-idle-session-min` を使用してください。

577 691 

578<h3 id="additional-limitations">692<h3 id="additional-limitations">

579 追加の制限事項693 その他の制限事項

580</h3>694</h3>

581 695 

582* **再開されたセッションはプッシュされていない作業を失う**:新しいランナーは開始ブランチからリポジトリを再度クローンするため、セッションがプッシュしていない作業は失われます。696* **再開されたセッションではプッシュしていない作業が失われる**: 新しいランナーはリポジトリを開始ブランチから再度クローンするため、セッションがプッシュしていなかった作業は失われます。

583 * **コミットされた作業を保持するには**:[`--push-outcome-on-release`](/docs/ja/self-hosted-environments-reference#runner-cli-flags)を設定します。するとランナーはリリースする前にセッションの結果ブランチをベストエフォートでプッシュし、再開されたセッションはそれらのコミットから開始されます。コミットされていない変更は引き続き失われます。697 * **コミット済みの作業を保持するには**: 環境内のすべてのランナーで [`--push-outcome-on-release`](/docs/ja/self-hosted-environments-reference#runner-cli-flags) を設定してください。このフラグのないランナーは、セッションを開始ブランチから再開するためです。このフラグを設定したランナーは、解放する前にセッションの成果ブランチのプッシュをベストエフォートで行い、再開されたセッションはそれらのコミットから開始されます。プッシュにはランナーホスト自身の git 認証情報が使用されます。これは [Anthropic 管理の git](#use-the-anthropic-git-proxy) を使用するランナーでも同様です。コミットされていない変更は引き続き失われます。

584 * **フラグを有効にする前に**:ソースリモートの `claude/*` refs にプッシュできるユーザーを制限してください。再開時に、ランナーは以前にプッシュされたブランチを、誰がプッシュしたかを検証せずにフェッチします。698 * **`checkout` フックを使用する場合**: [`checkout` ライフサイクルフック](/docs/ja/self-hosted-environments-configuration#checkout)でチェックアウトされたリポジトリはプッシュされません。代わりに [`post-session` フック](/docs/ja/self-hosted-environments-configuration#post-session)からそれらのスナップショットを取得してください。

585* **セッション途中で追加したリポジトリはクローンに失敗することがあります**:Claude は HTTPS 経由の `git clone` でクローンします。[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) を使用していないランナーでは、ホスト上にリポジトリを読み取れるものが何もない場合、クローンは git 認証エラーで失敗します。可能な場合は、セッションを作成するときに、セッションが必要とするすべてのリポジトリを選択してください。699 * **フラグを有効にする前に**: ソースリモート上の `claude/*` ref にプッシュできるユーザーを制限してください。再開時、ランナーは以前にプッシュされたブランチを、誰がプッシュしたかを検証せずにフェッチします。

586* **一部のコネクタはセルフホストセッションに表示されません**:claude.ai 設定でまだ接続していないコネクタはセルフホストセッションにリストされず、セッションはそれを接続するように促しません。最初に設定で接続してから、新しいセッションを開始してください。実行中のセッションにコネクタを追加しても、Claude がそのツールを利用できるようにはなりません。新しく追加されたコネクタを取得するには、新しいセッションを開始してください。700* **セッションの途中で追加したリポジトリのクローンが失敗することがある**: Claude は HTTPS 経由の `git clone` でリポジトリをクローンします。[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) を使用していないランナーでは、ホスト上にリポジトリを読み取れるものが何もない場合、クローンは git の認証エラーで失敗します。可能であれば、セッションの作成時に、セッションで必要なすべてのリポジトリを選択してください。

701* **一部のコネクタがセルフホストセッションに表示されない**: claude.ai の設定でまだ接続していないコネクタはセルフホストセッションに表示されず、セッションから接続を求められることもありません。まず設定で接続してから、新しいセッションを開始してください。また、すでに実行中のセッションにコネクタを追加しても、そのツールは Claude で使用できるようになりません。新しく追加したコネクタを反映するには、新しいセッションを開始してください。

587 702 

588<h3 id="report-an-issue">703<h3 id="report-an-issue">

589 問題を報告する704 問題を報告する

590</h3>705</h3>

591 706 

592セルフホスト環境の問題については、Anthropic アカウントチームに連絡してください。707セルフホスト環境に関する問題については、Anthropic のアカウントチームにお問い合わせください。

593 708 

594<h2 id="troubleshooting">709<h2 id="troubleshooting">

595 トラブルシューティング710 トラブルシューティング


606* **ランナーが環境に表示されない**:ホストが HTTPS 経由で `api.anthropic.com` に到達できること、環境シークレットが最新であること、ホストの時刻が実時間の 5 分以内であることを確認してください。より大きなずれは認証失敗を引き起こします。ランナーは認証失敗時に拒否理由を含む `[runner:fatal]` をログに記録します。721* **ランナーが環境に表示されない**:ホストが HTTPS 経由で `api.anthropic.com` に到達できること、環境シークレットが最新であること、ホストの時刻が実時間の 5 分以内であることを確認してください。より大きなずれは認証失敗を引き起こします。ランナーは認証失敗時に拒否理由を含む `[runner:fatal]` をログに記録します。

607* **ランナーが `cannot create or write to base directory` で起動時に終了する**:ランナーが `--base-dir` を作成または書き込みできません。これはデフォルトで `/workspace` です。ディレクトリの所有権を修正するか、[ランナー全体でベースディレクトリと容量を同じに保つ](#keep-the-base-directory-and-capacity-identical-across-runners)で説明されているように `--base-dir` を書き込み可能なパスに指定してください。ランナーが代わりにベースディレクトリチェックがタイムアウトしたことを示す `[runner:fatal]` をログに記録する場合、ディレクトリはハングしている NFS または CSI マウント上にあります。権限ではなくマウントヘルスを確認してください。ランナーは `--log-file` を開く前にこれらの起動失敗を stderr に出力するため、ログファイルではなくターミナルまたはプラットフォームのコンテナログで探してください。v2.1.225 より前では、ランナーは起動時にベースディレクトリをチェックしておらず、この設定ミスはピックアップ後にセッションを失敗させました。722* **ランナーが `cannot create or write to base directory` で起動時に終了する**:ランナーが `--base-dir` を作成または書き込みできません。これはデフォルトで `/workspace` です。ディレクトリの所有権を修正するか、[ランナー全体でベースディレクトリと容量を同じに保つ](#keep-the-base-directory-and-capacity-identical-across-runners)で説明されているように `--base-dir` を書き込み可能なパスに指定してください。ランナーが代わりにベースディレクトリチェックがタイムアウトしたことを示す `[runner:fatal]` をログに記録する場合、ディレクトリはハングしている NFS または CSI マウント上にあります。権限ではなくマウントヘルスを確認してください。ランナーは `--log-file` を開く前にこれらの起動失敗を stderr に出力するため、ログファイルではなくターミナルまたはプラットフォームのコンテナログで探してください。v2.1.225 より前では、ランナーは起動時にベースディレクトリをチェックしておらず、この設定ミスはピックアップ後にセッションを失敗させました。

608* **セッションがキューに留まる**:すべてのオンラインランナーは異なる所有者にロックされている可能性があります。各ランナーの `claude_code_self_hosted_runner_locked_account` [メトリクス](/docs/ja/self-hosted-environments-reference#prometheus-metrics)またはその `[runner:health]` ログ行の `locked_account` フィールドをチェックして、誰がそれを保持しているかを確認してください。どちらも、ランナーが `act.email` クレームを含むセッショントークンを発行された後にのみ所有者のメールアドレスを表示します。これは Claude Tag エージェントのセッションでは決して行われません。クレームがない場合、ランナーは `locked_account` シリーズを出力せず、`locked_account=yes` をログに記録します。これはランナーがロックされていることを示しますが、どの所有者にロックされているかは示しません。レプリカを追加するか、既存のランナーがドレインして再起動するのを待ってください。環境がオンデマンドランナーを使用する場合は、代わりにオーケストレーターをチェックしてください。[オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners)を参照してください。723* **セッションがキューに留まる**:すべてのオンラインランナーは異なる所有者にロックされている可能性があります。各ランナーの `claude_code_self_hosted_runner_locked_account` [メトリクス](/docs/ja/self-hosted-environments-reference#prometheus-metrics)またはその `[runner:health]` ログ行の `locked_account` フィールドをチェックして、誰がそれを保持しているかを確認してください。どちらも、ランナーが `act.email` クレームを含むセッショントークンを発行された後にのみ所有者のメールアドレスを表示します。これは Claude Tag エージェントのセッションでは決して行われません。クレームがない場合、ランナーは `locked_account` シリーズを出力せず、`locked_account=yes` をログに記録します。これはランナーがロックされていることを示しますが、どの所有者にロックされているかは示しません。レプリカを追加するか、既存のランナーがドレインして再起動するのを待ってください。環境がオンデマンドランナーを使用する場合は、代わりにオーケストレーターをチェックしてください。[オンデマンドランナー](/docs/ja/self-hosted-environments-configuration#on-demand-runners)を参照してください。

609* **セッションがピックアップ直後に失敗する**:claude.ai/code でセッションを開いてエラーを確認してください。最も一般的な原因は、ランナーイメージの [git 認証情報](#configure-git)の欠落とインストールされていないビルドツールです。書き込み不可能なベースディレクトリはセッションを失敗させるのではなく、起動時にランナーを停止させます。このリストの **ランナーが `cannot create or write to base directory` で起動時に終了する** エントリを参照してください。724* **セッションがピックアップ直後に失敗する**:claude.ai/code でセッションを開いてエラーを確認してください。最も一般的な原因は、ランナーイメージの [git 認証情報](#configure-git)の欠落とインストールされていないビルドツールです。`--use-anthropic-git-proxy` で起動したランナーの場合は、[git プロキシを使用するランナーでセッションの開始に失敗する場合](#when-anthropic-doesnt-serve-a-session)を参照してください。書き込み不可能なベースディレクトリはセッションを失敗させるのではなく、起動時にランナーを停止させます。このリストの **ランナーが `cannot create or write to base directory` で起動時に終了する** エントリを参照してください。

725* **`--use-anthropic-git-proxy` を設定したランナーでセッションの開始に失敗する**:ランナーのログで `access denied by the git proxy`、または `/git_proxy/` を含む `api.anthropic.com` のアドレスを示す git エラーを探してください。Anthropic がそのセッションを処理したかどうかを判断して原因を修正するには、[git プロキシを使用するランナーでセッションの開始に失敗する場合](#when-anthropic-doesnt-serve-a-session)を参照してください。

610* **セッションが認証エグレスプロキシ経由でネットワークに到達できない**:[`--proxy-authorization-command` または `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) で設定したソースが失敗する場合、30 秒後にタイムアウトする場合、または空の値を生成する場合、ランナーはその接続に `502 Bad Gateway` で応答し、理由をログに記録します。ランナーはそのログでコマンドの stderr を編集し、ヘッダー値をログに記録しません。`--proxy-authorization-command` を使用する場合、ホスト上でコマンド自体を実行して、stdout 全体のヘッダー値を出力することを確認してください。ランナーが代わりに `could not start the proxy-authorization listener` で起動時に終了する場合、ループバックリスナーを開くことができませんでした。726* **セッションが認証エグレスプロキシ経由でネットワークに到達できない**:[`--proxy-authorization-command` または `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) で設定したソースが失敗する場合、30 秒後にタイムアウトする場合、または空の値を生成する場合、ランナーはその接続に `502 Bad Gateway` で応答し、理由をログに記録します。ランナーはそのログでコマンドの stderr を編集し、ヘッダー値をログに記録しません。`--proxy-authorization-command` を使用する場合、ホスト上でコマンド自体を実行して、stdout 全体のヘッダー値を出力することを確認してください。ランナーが代わりに `could not start the proxy-authorization listener` で起動時に終了する場合、ループバックリスナーを開くことができませんでした。

611* **ランナーが `rejecting the malformed poll response` を含む `Poll failed` 行をログに記録する**:ランナーは、本体がキューの予期された JSON ではないワークポール応答を受け取りました。最も一般的には、インターセプティングプロキシやキャプティブポータルなど、ランナーと `api.anthropic.com` の間の何かが独自のページで応答したためです。ランナーは応答を拒否し、`claude_code_self_hosted_runner_poll_errors_total` [メトリクス](/docs/ja/self-hosted-environments-reference#prometheus-metrics)の `transport` 種別の下でカウントし、[セッションライフサイクル](/docs/ja/self-hosted-environments#session-lifecycle)で説明されている失敗したポールスケジュールで再試行します。ランナーはライブセッションを提供し続けます。`api.anthropic.com` からの応答を変更されずに通すようにプロキシを設定してください。v2.1.246 より前では、ランナーはそのような応答を空のワークキューとして読み取り、ライブセッションを終了するか、終了させる可能性がありました。727* **ランナーが `rejecting the malformed poll response` を含む `Poll failed` 行をログに記録する**:ランナーは、本体がキューの予期された JSON ではないワークポール応答を受け取りました。最も一般的には、インターセプティングプロキシやキャプティブポータルなど、ランナーと `api.anthropic.com` の間の何かが独自のページで応答したためです。ランナーは応答を拒否し、`claude_code_self_hosted_runner_poll_errors_total` [メトリクス](/docs/ja/self-hosted-environments-reference#prometheus-metrics)の `transport` 種別の下でカウントし、[セッションライフサイクル](/docs/ja/self-hosted-environments#session-lifecycle)で説明されている失敗したポールスケジュールで再試行します。ランナーはライブセッションを提供し続けます。`api.anthropic.com` からの応答を変更されずに通すようにプロキシを設定してください。v2.1.246 より前では、ランナーはそのような応答を空のワークキューとして読み取り、ライブセッションを終了するか、終了させる可能性がありました。

612* **セッションのブランチがリモートに存在しなくなった**:セッションが読み取り専用の git ソースの場合、ランナーはそのソースをスキップして残りのソースで続行します。セッションが結果をプッシュするソースの場合、削除されたブランチ(通常はマージされて自動削除されたため)はセッションを失敗させ、リポジトリとブランチを名前付けするエラーを表示し、ブランチを復元して再試行するよう求めます。ランナーはスキップするとリポジトリがまったくなくなる場合、同じエラーでセッションを失敗させます。v2.1.228 より前では、そのようなセッションは空のディレクトリで開始されました。728* **セッションのブランチがリモートに存在しなくなった**:セッションが読み取り専用の git ソースの場合、ランナーはそのソースをスキップして残りのソースで続行します。セッションが結果をプッシュするソースの場合、削除されたブランチ(通常はマージされて自動削除されたため)はセッションを失敗させ、リポジトリとブランチを名前付けするエラーを表示し、ブランチを復元して再試行するよう求めます。ランナーはスキップするとリポジトリがまったくなくなる場合、同じエラーでセッションを失敗させます。v2.1.228 より前では、そのようなセッションは空のディレクトリで開始されました。


616 732 

617 アクセスチェックはセッションがランナーで開始されるたびに再度実行されるため、ランナーの git アイデンティティが読み取りアクセスを持つと、次の開始でリポジトリをクローンします。v2.1.274 より前では、これらの拒否のそれぞれがセッション開始を失敗させました。733 アクセスチェックはセッションがランナーで開始されるたびに再度実行されるため、ランナーの git アイデンティティが読み取りアクセスを持つと、次の開始でリポジトリをクローンします。v2.1.274 より前では、これらの拒否のそれぞれがセッション開始を失敗させました。

618* **セッションの開始に数分かかる**:初期クローンが通常支配的です。`claude_code_self_hosted_runner_session_init_duration_seconds` [メトリクス](/docs/ja/self-hosted-environments-reference#prometheus-metrics)を監視して確認し、[事前にウォーミングされたチェックアウト](#reuse-a-pre-warmed-checkout)またはより小さい `CLAUDE_RUNNER_FETCH_DEPTH` でクローンを削減してください。734* **セッションの開始に数分かかる**:初期クローンが通常支配的です。`claude_code_self_hosted_runner_session_init_duration_seconds` [メトリクス](/docs/ja/self-hosted-environments-reference#prometheus-metrics)を監視して確認し、[事前にウォーミングされたチェックアウト](#reuse-a-pre-warmed-checkout)またはより小さい `CLAUDE_RUNNER_FETCH_DEPTH` でクローンを削減してください。

619* **ターンが 401 で失敗する**:各セッションは、ランナーが Anthropic から取得し、セッションの stdin 経由でローテーションする短命の [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/self-hosted-environments-configuration#wrapper-scripts) を使用してモデル呼び出しを認証します。ターンがモデル API から 401 または 403 で終了する場合、ランナーは新しいトークンを取得し、セッションに渡します。失敗したターンは再試行されません。735* **ターンが 401 で失敗する**:ターンが Anthropic API からの 401 または 403 で終了すると、ランナーは新しい [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ja/self-hosted-environments-configuration#wrapper-scripts) を Anthropic から取得し、セッションに渡します。失敗したターンは再試行されません。このトークンは短命で、ランナーはセッションの stdin 経由でそれをローテーションします。

620 736 

621 フェッチが失敗する場合、ランナーは `inference_token refresh failed` 行をログに記録し、いつ再試行するかを示し、セッションが実行されている限り再試行を続けます。737 フェッチが失敗する場合、ランナーは `inference_token refresh failed` 行をログに記録し、いつ再試行するかを示し、セッションが実行されている限り再試行を続けます。

622 738 


637 753 

638* **通常の終了**:ランナーはセッションを完了してドレインし、リタイア時間に達した、または停止するよう指示されました。環境に容量を戻すために再起動してください。[ランナーライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle)はこれらの終了について説明しています。754* **通常の終了**:ランナーはセッションを完了してドレインし、リタイア時間に達した、または停止するよう指示されました。環境に容量を戻すために再起動してください。[ランナーライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle)はこれらの終了について説明しています。

639* **失敗した開始**:ランナーは与えられた設定またはホストで開始できないため、起動後数秒で終了し、再起動するたびに同じ方法で終了します。より速く再起動しても役に立ちません。誰かが出力を読んで原因を修正する必要があります。755* **失敗した開始**:ランナーは与えられた設定またはホストで開始できないため、起動後数秒で終了し、再起動するたびに同じ方法で終了します。より速く再起動しても役に立ちません。誰かが出力を読んで原因を修正する必要があります。

756* **接続の喪失**:ホストのスリープ中など、[リース](/docs/ja/self-hosted-environments#session-lifecycle)より長く Anthropic に到達できないランナーは、環境から削除されることがあります。削除されたランナーは再接続すると終了します。そのログには、`runner record gone server-side` を含む `[runner:fatal]` 行、またはより長い停止の後には [`poll auth failed`](/docs/ja/self-hosted-environments-quickstart#set-up-an-environment-and-runner) を含む行が表示されることがあります。ランナーは自動的に再登録しないため、再起動してください。

640 757 

641ランナーが終了するたびに再起動するようにスーパーバイザーを設定し、ランナーが起動直後に終了し続ける場合は再起動間の待機時間を長くし、それが起こり続ける場合は誰かに通知してください。758ランナーが終了するたびに再起動するようにスーパーバイザーを設定し、ランナーが起動直後に終了し続ける場合は再起動間の待機時間を長くし、それが起こり続ける場合は誰かに通知してください。

642 759 

Details

195 195 

196ラッパーはランナー自身のバイナリへの絶対パスを `CLAUDE_RUNNER_CLAUDE_BIN` で受け取ります。PATH で解決された `claude` ではなく、そのパスを使用して、デコードがランナー自身が使用するのと同じバイナリで実行されるようにします。196ラッパーはランナー自身のバイナリへの絶対パスを `CLAUDE_RUNNER_CLAUDE_BIN` で受け取ります。PATH で解決された `claude` ではなく、そのパスを使用して、デコードがランナー自身が使用するのと同じバイナリで実行されるようにします。

197 197 

198`jq -r` ではなく `jq -re` を使用して、クレームが見つからない場合は 0 以外の終了コードが発生するようにします。`-r` だけでは、クレームが見つからない場合、リテラル文字列 `null` を出力して 0 で終了し、不正な値を静かに下流に渡します。JWKS エンドポイントに到達できないオフライン検査の場合のみ、`decode-token` に `--no-verify` を渡します。198`jq -r` ではなく `jq -re` を使用して、クレームが見つからない場合は 0 以外の終了コードが発生するようにします。`-r` だけでは、クレームが見つからない場合、リテラル文字列 `null` を出力して 0 で終了し、不正な値を静かに下流に渡します。

199 

200`decode-token` が JWKS エンドポイントからキーを取得できない場合、またはトークンを検証できない場合は、理由を stderr に出力し、クレームは出力せずに、コード 1 で終了します。JWKS エンドポイントに到達できないオフライン検査の場合のみ、`decode-token` に `--no-verify` を渡します。

199 201 

200<h2 id="claims-reference">202<h2 id="claims-reference">

201 クレームリファレンス203 クレームリファレンス

Details

34ランナーホストには以下が必要です。34ランナーホストには以下が必要です。

35 35 

36* `api.anthropic.com`、`claude.ai` および以下のインストールステップ用のダウンロードホストへのアウトバウンド HTTPS、および git ホストへのクローン用の Linux または macOS ホストまたはコンテナ。[ネットワーク要件テーブル](/docs/ja/self-hosted-environments-deploy#network-requirements)に完全なリストがあります。Windows はランナーホストとしてサポートされていません。代わりに Linux コンテナでランナーを実行してください。セッションは claude.ai のブラウザから開始されるため、開発者ワークステーションは影響を受けません。36* `api.anthropic.com`、`claude.ai` および以下のインストールステップ用のダウンロードホストへのアウトバウンド HTTPS、および git ホストへのクローン用の Linux または macOS ホストまたはコンテナ。[ネットワーク要件テーブル](/docs/ja/self-hosted-environments-deploy#network-requirements)に完全なリストがあります。Windows はランナーホストとしてサポートされていません。代わりに Linux コンテナでランナーを実行してください。セッションは claude.ai のブラウザから開始されるため、開発者ワークステーションは影響を受けません。

37* テストセッション用のリポジトリ。公開リポジトリ、またはこのホストが認証情報を求められることなく HTTPS URL で既にクローンできるリポジトリを用意してください。

37* NTP などで実時間に同期されたクロック。クロックが 5 分以上ずれていると認証が失敗します。[トラブルシューティング](/docs/ja/self-hosted-environments-deploy#troubleshooting)を参照してください。38* NTP などで実時間に同期されたクロック。クロックが 5 分以上ずれていると認証が失敗します。[トラブルシューティング](/docs/ja/self-hosted-environments-deploy#troubleshooting)を参照してください。

38 39 

39<h3 id="software-on-the-runner-host">40<h3 id="software-on-the-runner-host">


57 環境とランナーをセットアップする58 環境とランナーをセットアップする

58</h2>59</h2>

59 60 

60Claude Code には、ガイド付きセットアップが含まれています。これは、管理 UI で環境を作成する手順を案内するインタラクティブな Claude Code セッションで、保存したシークレットファイルを使用してローカルランナーを起動し、ランナーが登録されたことを確認し、`./runner-setup/CHEAT-SHEET.md` にチートシートを書き込みます。`claude auth login` でサインインしたマシンで実行してください。このとき、Owner ロールを持つアカウントを使用する必要があります。API キーまたはサードパーティのモデルプロバイダーでは利用できません。インタラクティブセッションが不可能なホストでは、代わりに以下の手動手順を使用してください。まず、[バージョンチェック](#software-on-the-runner-host)が成功したことを確認してください。2.1.224 より古いバージョンでは、このコマンドはガイド付きセットアップではなく、単語をプロンプトとして使用する通常の Claude セッションを開始します。ガイド付きセットアップを開始するには、setup サブコマンドを実行してプロンプトに従ってください。61[ガイド付きセットアップ](#run-the-guided-setup)または[手動手順](#set-up-manually)のいずれかを使用します。ガイド付きセットアップは、インタラクティブな Claude Code セッションを開始して残りの手順を案内する単一のコマンドです。インタラクティブセッションが不可能なホストでは、代わりに手動手順を使用してください。Owner ロールを持つユーザーが環境を作成してそのシークレットを渡した場合も、手動手順を使用してください。ガイド付きセットアップには Owner としてのサインインが必要なためです。

62 

63<h3 id="run-the-guided-setup">

64 ガイド付きセットアップを実行する

65</h3>

66 

67ガイド付きセットアップは、管理 UI で環境を作成する手順を案内し、保存したシークレットファイルを使用してローカルランナーを起動し、ランナーが登録されたことを確認し、`./runner-setup/CHEAT-SHEET.md` にチートシートを書き込みます。実行する前に、サインインとバージョンを確認してください。

68 

69* **サインイン**:Owner ロールを持つアカウントを使用して `claude auth login` でサインインしたマシンで実行してください。API キーまたはサードパーティのモデルプロバイダーのみの場合、セッションは開始されますが、組織のチェックに失敗します。

70* **バージョン**:[バージョンチェック](#software-on-the-runner-host)が成功したことを確認してください。2.1.224 より古いバージョンでは、setup コマンドはガイド付きセットアップではなく、単語をプロンプトとして使用する Claude セッションを開始します。

71 

72ガイド付きセットアップを開始するには、シェルで setup サブコマンドを実行してプロンプトに従ってください。

61 73 

62```bash theme={null}74```bash theme={null}

63claude self-hosted-runner setup75claude self-hosted-runner setup

64```76```

65 77 

66代わりに手動でセットアップするには、以下の手順に従ってください。78セットアップ自体はテストセッションを開始しません。claude.ai/code でテストセッションを開始するよう案内されます。セットアップの最後のステップでは、セットアップが起動したランナーを停止します。そのステップの前にセットアップを終了した場合、ランナーは実行を続けます。最後のステップの後も続行するには、`./runner-setup/CHEAT-SHEET.md` に記載されたコマンドを使用してシェルでランナーを再度起動し、[セッションを環境にルーティング](#route-a-session)してください。

79 

80<h3 id="set-up-manually">

81 手動でセットアップする

82</h3>

83 

84claude.ai で環境を作成し、ホスト上のターミナルからランナーを起動してから、claude.ai に戻ってランナーが表示されることを確認し、セッションをランナーにルーティングします。Owner ロールを持つユーザーが既に環境を作成してそのシークレットを渡している場合は、ステップ 2 から開始してください。

67 85 

68<Steps>86<Steps>

69 <Step title="環境を作成する">87 <Step title="環境を作成する">


73 </Step>91 </Step>

74 92 

75 <Step title="ランナーを起動する">93 <Step title="ランナーを起動する">

76 シークレットディレクトリを作成します。このステップと次のステップは `/etc/claude` パスに root が必要です。ランナープロセスが読み取ることができるパスであれば、どのパスでも機能するため、異なるパスを使用する場合は、両方のコマンドと `--environment-secret-file` 値を一緒に調整してください。94 シークレットディレクトリを作成します。このコマンドと次のコマンドは `/etc/claude` を使用するため root が必要です。また、これらのコマンドで作成されるシークレットファイルは、コマンドを実行したユーザーのみが読み取ることができます。ランナーを別のユーザーとして実行する場合、ランナーは `error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>')` で終了します。その場合は、`/etc/claude` の代わりにランナーのユーザーが書き込めるディレクトリを使用して両方のコマンドをランナーのユーザーとして実行し、同じパスを `--environment-secret-file` に渡してください。ランナープロセスが読み取ることができるパスであれば、どのパスでも機能します。

77 95 

78 ```bash theme={null}96 ```bash theme={null}

79 mkdir -p /etc/claude97 mkdir -p /etc/claude


89 107 

90 ランナーがパスを作成または書き込みできない場合、起動時にディレクトリを名前として指定するエラーで終了し、登録されません。[トラブルシューティング](/docs/ja/self-hosted-environments-deploy#troubleshooting)を参照してください。108 ランナーがパスを作成または書き込みできない場合、起動時にディレクトリを名前として指定するエラーで終了し、登録されません。[トラブルシューティング](/docs/ja/self-hosted-environments-deploy#troubleshooting)を参照してください。

91 109 

92 次に、`--environment-secret-file` と `--base-dir` を使用してランナーを起動します。ランナーは環境に登録され、作業のポーリングを開始します。ランナーが終了した場合は、手動で再起動してください。本番環境のデプロイメントは、終了したランナーを再起動するオーケストレーターの下でランナーを実行します。通常、再起動ごとに新しいファイルシステムを使用します。[事前にウォームアップされたチェックアウトを再利用する](/docs/ja/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout)は、サポートされている永続ディスクセットアップについて説明しています。110 次に、`--environment-secret-file` と `--base-dir` を使用してランナーを起動します。

93 111 

94 ```bash theme={null}112 ```bash theme={null}

95 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'113 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

96 ```114 ```

115 

116 ランナーは環境に登録されると `Registered: runner_id=<runner-id>` をログに記録し、作業のポーリングを開始します。後でランナーが終了した場合は、手動で再起動してください。これが発生する状況については、[ランナーが終了した場合](#if-the-runner-exits)を参照してください。

97 </Step>117 </Step>

98 118 

99 <Step title="ランナーが表示されることを確認する">119 <Step title="ランナーが表示されることを確認する">

100 [**Cloud environments** ページ](https://claude.ai/admin-settings/cloud-environments)に戻ります。環境のステータスは、ランナーが起動してから数秒以内に **No runners deployed** から **Healthy** に変わります。環境を開いて **Activity** を選択すると、ランナー自体が表示されます。120 [**Cloud environments** ページ](https://claude.ai/admin-settings/cloud-environments)に戻ります。環境のステータスは、ランナーが起動してから数秒以内に **No runners deployed** から **Healthy** に変わります。環境を開いて **Activity** を選択すると、ランナー自体が表示されます。管理ページにアクセスできない場合は、前のステップのランナーのログにある `Registered: runner_id=<runner-id>` の行で同じことを確認できます。

101 </Step>121 </Step>

102 122 

103 <Step title="セッションを環境にルーティングする">123 <Step title="セッションを環境にルーティングする">

104 claude.ai/code でセッションを開始し、環境ピッカーから環境を選択します。セルフホスト環境は Anthropic ホスト環境と並んで表示されます。ランナーは、ホストが既に持っている git 認証情報を使用してクローンを作成するため、このホストが既にクローンできるリポジトリ、または公開リポジトリを選択してください。本番環境のプライベートリポジトリの認証情報オプションは、[git を設定する](/docs/ja/self-hosted-environments-deploy#configure-git)に記載されています。次に利用可能なランナーがキューに入ったセッションを取得し、`Picked up session <session-id>` をアクティブカウントと容量とともにログに記録します。ランナー自身の出力からどのホストがセッションを取得したかを確認できます。[claude.ai/code](https://claude.ai/code) でセッションの動作を監視し、Claude の返信を読んでください。セッションがキューに入ったままの場合は、[トラブルシューティング](/docs/ja/self-hosted-environments-deploy#troubleshooting)を参照してください。124 <span id="route-a-session" />claude.ai/code でセッションを開始し、環境ピッカーから環境を選択します。セルフホスト環境は Anthropic ホスト環境と並んで表示されます。リポジトリには、[前提条件](#host-and-network)で用意したもの、つまり公開リポジトリ、またはこのホストが既にクローンできるリポジトリを選択してください。ランナーは、ホストが既に持っている git 認証情報を使用してクローンを作成します。

125 

126 次に利用可能なランナーがキューに入ったセッションを取得し、`Picked up session <session-id>` をアクティブカウントと容量とともにログに記録します。ランナー自身の出力からどのホストがセッションを取得したかを確認できます。[claude.ai/code](https://claude.ai/code) でセッションの動作を監視し、Claude の返信を読んでください。

127 

128 セッションが動作を開始しない場合は、表示される状況に応じて対処してください。

129 

130 * **セッションがキューに入ったままになる**:[トラブルシューティング](/docs/ja/self-hosted-environments-deploy#troubleshooting)を参照してください。

131 * **セッションが git エラーで開始に失敗する**:エラーはセッションとランナーのログに表示されます。git の `could not read Username for` に続いて git ホストの URL が含まれている場合、ランナーにはそのホストの HTTPS 認証情報がありませんでした。[git を設定する](/docs/ja/self-hosted-environments-deploy#configure-git)を参照してください。本番環境のプライベートリポジトリの認証情報オプションもここに記載されています。

105 </Step>132 </Step>

106</Steps>133</Steps>

107 134 

108ランナーは設計上、アクティブセッションが終了すると終了します。[ランナーのライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle)を参照してください。本番環境では、終了時にランナーを再起動し、ランナーが起動直後に終了し続ける場合は再起動間の待機時間を長くするオーケストレーターの下にデプロイしてください。[本番環境へのデプロイ](/docs/ja/self-hosted-environments-deploy)と[ランナーが終了する場合](/docs/ja/self-hosted-environments-deploy#when-the-runner-exits)を参照してください。135<h3 id="if-the-runner-exits">

136 ランナーが終了した場合

137</h3>

138 

139このクイックスタートの途中でランナーが終了した場合は、同じコマンドで再度起動してください。ランナーは自ら終了することがあります。

140 

141* **セッションの終了**:ログに `[runner:exit] account workload drained — exiting` が表示されます。ランナーは設計上、アクティブセッションが終了すると終了します。[ランナーのライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle)を参照してください。

142* **接続の喪失**:ログに `runner record gone server-side` または `poll auth failed` を含む `[runner:fatal]` の行が表示されます。ホストがスリープするなどしてランナーが Anthropic としばらく接続できなくなった場合、次に Anthropic に接続したときに終了することがあります。

143 

144ターンが終了しても、テストセッションは終了しません。最初のターンの後もセッションは接続されたままで、ランナーも稼働し続けているため、先にランナーを再起動することなく[セッションにフォローアップメッセージを送信](#send-a-follow-up-message-to-a-running-session)できます。

145 

146本番環境では、終了時にランナーを再起動し、ランナーが起動直後に終了し続ける場合は再起動間の待機時間を長くするオーケストレーターの下にデプロイしてください。[本番環境へのデプロイ](/docs/ja/self-hosted-environments-deploy)と[ランナーが終了する場合](/docs/ja/self-hosted-environments-deploy#when-the-runner-exits)を参照してください。

109 147 

110<h2 id="send-a-follow-up-message-to-a-running-session">148<h2 id="send-a-follow-up-message-to-a-running-session">

111 実行中のセッションにフォローアップメッセージを送信する149 実行中のセッションにフォローアップメッセージを送信する

Details

52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | ターンが終了するか、セッションがユーザーのアクションを待つ後、N 分間の非アクティビティ後にセッションスロットをリリースします。ターン中のセッション(決して終了しないバックグラウンドタスクを保持しているセッション、または実行中のツール呼び出し内から要求された承認を含む)はアイドルとしてカウントされません。`--kill-session-after-min` とペアにして、ハードバックストップとして機能させてください。セッションのバックグラウンドタスクが終了した後、ランナーはセッションをビジーと見なします。その結果を読む後続のターンが開始されるまで、最大で [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) ウィンドウです。ランナーがシャットダウンシグナルを受け取るか、リタイア時間に達するまで、ランナーにアクティブなセッションがなくなるリリースは、通常のドレインと同じ終了パスを開始します。`--drain-grace-sec` によって管理されます。[`--defer-shutdown-max-min`](/docs/ja/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) で遅延させた最初のシグナルの後、ランナーはリリースがセッションを保持していない限り即座に終了します。`0` は無効にします。 |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | ターンが終了するか、セッションがユーザーのアクションを待つ後、N 分間の非アクティビティ後にセッションスロットをリリースします。ターン中のセッション(決して終了しないバックグラウンドタスクを保持しているセッション、または実行中のツール呼び出し内から要求された承認を含む)はアイドルとしてカウントされません。`--kill-session-after-min` とペアにして、ハードバックストップとして機能させてください。セッションのバックグラウンドタスクが終了した後、ランナーはセッションをビジーと見なします。その結果を読む後続のターンが開始されるまで、最大で [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) ウィンドウです。ランナーがシャットダウンシグナルを受け取るか、リタイア時間に達するまで、ランナーにアクティブなセッションがなくなるリリースは、通常のドレインと同じ終了パスを開始します。`--drain-grace-sec` によって管理されます。[`--defer-shutdown-max-min`](/docs/ja/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) で遅延させた最初のシグナルの後、ランナーはリリースがセッションを保持していない限り即座に終了します。`0` は無効にします。 |

53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | オフ | セッションがこのランナーで終了したときに、`<base-dir>/_sessions/` の下のセッションごとのディレクトリを削除します。結果に関係なく。[事前ウォーミングされたチェックアウトを再利用する](/docs/ja/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) は、それらが保持するものと、それらが残っているときに誰がそれらを読むことができるかを説明しています。削除はベストエフォート。ランナーが強制終了されるか、クリーンアップが実行される前にドレイン期限に達した場合、セッションごとのディレクトリは所定の位置に留まります。フラグがオンの場合、失敗または中断されたセッションのデバッグログはディスクに保持されません。Claude Code v2.1.268 以降が必要です。 |53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | オフ | セッションがこのランナーで終了したときに、`<base-dir>/_sessions/` の下のセッションごとのディレクトリを削除します。結果に関係なく。[事前ウォーミングされたチェックアウトを再利用する](/docs/ja/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) は、それらが保持するものと、それらが残っているときに誰がそれらを読むことができるかを説明しています。削除はベストエフォート。ランナーが強制終了されるか、クリーンアップが実行される前にドレイン期限に達した場合、セッションごとのディレクトリは所定の位置に留まります。フラグがオンの場合、失敗または中断されたセッションのデバッグログはディスクに保持されません。Claude Code v2.1.268 以降が必要です。 |

54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | 未設定 | ランナーを秒単位の絶対 Unix タイムスタンプでリタイアします。ランナーが既知の時間に強制終了されるインフラストラクチャ用です。[ランナーライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle) はリリースシーケンスとマージンのサイズ方法を説明しています。2001 より前または 5138 年より後の値はフラグによって拒否され、環境変数によって無視されます。 |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | 未設定 | ランナーを秒単位の絶対 Unix タイムスタンプでリタイアします。ランナーが既知の時間に強制終了されるインフラストラクチャ用です。[ランナーライフサイクル](/docs/ja/self-hosted-environments#runner-lifecycle) はリリースシーケンスとマージンのサイズ方法を説明しています。2001 より前または 5138 年より後の値はフラグによって拒否され、環境変数によって無視されます。 |

55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | コントロールプレーンがセッションとともに送信する [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 分類器のルールリストのうち、どれをそのセッションに到達させるかを指定します。`all`、`no-allow`、`none` のいずれかです。各値が何を適用するかについては、[auto モードのルールリスト](#auto-mode-rule-lists) を参照してください。無効な値を指定すると、ランナーはスタートアップ時に停止します。Claude Code v2.1.295 以降が必要です。 |

55| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | セッション終了後、Claude プロセスがクリーンに終了するまで待機する時間。強制終了する前に。子独自の `SessionEnd` フックがより多くの時間を必要とする場合は、値を上げてください。 |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | セッション終了後、Claude プロセスがクリーンに終了するまで待機する時間。強制終了する前に。子独自の `SessionEnd` フックがより多くの時間を必要とする場合は、値を上げてください。 |

56| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | 子が生成後 N 分以内に [アクティビティチャネル](/docs/ja/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached) で初期化されたことを通知していない場合、セッションスロットをリリースします。通常の出力ではなく、子の初期化シグナルによってクリアされます。その後、`--release-idle-session-min` が引き継ぎます。`0` は無効にします。 |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | 子が生成後 N 分以内に初期化されたことを通知していない場合、セッションスロットをリリースします。クローンは生成前に行われるため、クローン時間はカウントされません。通常の出力ではなく、[アクティビティチャネル](/docs/ja/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached) 上の子の初期化シグナルによってクリアされます。その後、`--release-idle-session-min` が引き継ぎます。`0` は無効にします。 |

57| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | オン | 各セッションのリポジトリパスの永続化された信頼をシードします。リポジトリコミットされた `permissions.allow` と `additionalDirectories` が尊重されるようにします。`false` に設定して、リポジトリコミットされた権限付与をドロップし、代わりにホスト設定の `settings.json` で許可ルールを設定します。リポジトリコミットされた `sandbox.*` 設定はどちらの方法でも適用されます。これが [リポジトリ設定ガード](/docs/ja/self-hosted-environments-deploy#harden-your-deployment) がこのフラグに関係なくそれらをスキャンする理由です。 |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | オン | 各セッションのリポジトリパスの永続化された信頼をシードします。リポジトリコミットされた `permissions.allow` と `additionalDirectories` が尊重されるようにします。`false` に設定して、リポジトリコミットされた権限付与をドロップし、代わりにホスト設定の `settings.json` で許可ルールを設定します。リポジトリコミットされた `sandbox.*` 設定はどちらの方法でも適用されます。これが [リポジトリ設定ガード](/docs/ja/self-hosted-environments-deploy#harden-your-deployment) がこのフラグに関係なくそれらをスキャンする理由です。 |

58| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | オフ | 顧客管理の git 認証の代わりに [Anthropic git プロキシ](/docs/ja/self-hosted-environments-deploy#use-the-anthropic-git-proxy) 経由でクローンします。`--capacity 1` と git 2.32 以降が必要です。ランナーはそれ以外の場合は起動を拒否します。書き換えフラグに優先します。 |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | オフ | 顧客管理の git 認証の代わりに [Anthropic git プロキシ](/docs/ja/self-hosted-environments-deploy#use-the-anthropic-git-proxy) 経由で github.com 上のリポジトリをクローンします。`--capacity 1` と git 2.32 以降が必要です。ランナーはそれ以外の場合は起動を拒否します。書き換えフラグに優先します。 |

59 60 

60ほとんどの期間フラグには最大値があります。各タイムアウトをランタイムの 32 ビットタイマー上限(約 24.85 日)内に保つために選択されています。`--*-min` フラグは 10080 分(7 日)でキャップされます。`--drain-grace-sec` は 604800 秒(7 日)でもキャップされます。`--drain-wait-sec` は 86400 秒(24 時間)でキャップされます。`--session-stop-grace-sec` と `--post-session-hook-timeout-sec` はキャップされていません。キャップを超過する動作は表面ごとに異なります。61ほとんどの期間フラグには最大値があります。各タイムアウトをランタイムの 32 ビットタイマー上限(約 24.85 日)内に保つために選択されています。`--*-min` フラグは 10080 分(7 日)でキャップされます。`--drain-grace-sec` は 604800 秒(7 日)でもキャップされます。`--drain-wait-sec` は 86400 秒(24 時間)でキャップされます。`--session-stop-grace-sec` と `--post-session-hook-timeout-sec` はキャップされていません。キャップを超過する動作は表面ごとに異なります。

61 62 

62* **フラグ**: スタートアップはエラーで失敗します。63* **フラグ**: スタートアップはエラーで失敗します。

63* **環境変数**: ランナーはそれを拒否するのではなく、値をタイマー上限にクランプします。64* **環境変数**: ランナーはそれを拒否するのではなく、値をタイマー上限にクランプします。

64 65 

66<h3 id="auto-mode-rule-lists">

67 auto モードのルールリスト

68</h3>

69 

70`--server-auto-mode-lists` を使用すると、ランナーの外部から送られる [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) 分類器ルールのうち、どれをランナー上のセッションに到達させるかを決定できます。Anthropic のコントロールプレーンは、セッションとともにルールリストを送信し、ランナーにそれらを適用するよう求めることができます。一部のエントリは、組織の管理者が作成したルールである場合があります。リストは `environment`、`soft_deny`、`allow` です。

71 

72* **`environment`**: エントリによって、分類器が許可する範囲を狭めることも広げることもできます。

73* **`soft_deny`**: エントリは、ユーザーが明示的に要求した場合または `allow` の例外が適用される場合を除き、アクションをブロックします。

74* **`allow`**: `soft_deny` エントリに対する例外です。

75 

76フラグの値によって、ランナーが適用するリストが決まります。

77 

78* **`no-allow`**: デフォルトです。`environment` と `soft_deny` を適用し、`allow` は適用しません。`environment` エントリによって分類器が許可する範囲が広がる可能性は残るため、デフォルトではすべての緩和を排除できるわけではありません。

79* **`all`**: 3 つのリストすべてを適用します。

80* **`none`**: どのリストも適用しません。これらのリストによる緩和をすべて排除するには `none` を選択してください。この場合、`soft_deny` の制限も適用されなくなります。

81 

82コントロールプレーンがランナーにリストの適用を求めるかどうかを決めるランナー設定はありません。求められなかった場合、何を設定していてもセッションはリストを受け取りません。どちらになったかを確認するには、`--log-level debug` でランナーを起動してください。すると、ランナーはセッションごとに、`the server asked this runner to apply` を含む行か、`the server did not ask this runner to apply the auto mode lists it sends` を含む行をログに記録します。

83 

65<h2 id="orchestrator-cli-flags">84<h2 id="orchestrator-cli-flags">

66 オーケストレーター CLI フラグ85 オーケストレーター CLI フラグ

67</h2>86</h2>


72| :- | :- | :- |91| :- | :- | :- |

73| `--hook-concurrency <n>` | `4` | 並列で実行される最大 `spawn-runner` フック数。また、ポーリングごとにクレームされるスポーン要求の数もキャップします。 |92| `--hook-concurrency <n>` | `4` | 並列で実行される最大 `spawn-runner` フック数。また、ポーリングごとにクレームされるスポーン要求の数もキャップします。 |

74| `--hook-timeout <sec>` | `60` | この多くの秒後にフックのプロセスツリーを終了します。タイムアウトとその 5 秒のキルグレースは `--expected-spawn-seconds` より下にある必要があります。オーケストレーターはスタートアップでこれを強制します。 |93| `--hook-timeout <sec>` | `60` | この多くの秒後にフックのプロセスツリーを終了します。タイムアウトとその 5 秒のキルグレースは `--expected-spawn-seconds` より下にある必要があります。オーケストレーターはスタートアップでこれを強制します。 |

75| `--expected-spawn-seconds <sec>` | `120` | スポーン済みランナーの予想 p99 ブート時間(秒単位)。サーバー強制範囲 10 ~ 3600。すべてのポーリングでサーバー側リースとして送信されます。ランナーが経過前に登録されない場合、セッションは新しいオーダー ID で再提供されます。すべてのレプリカはこの値を共有する必要があります。 |94| `--expected-spawn-seconds <sec>` | `120` | オーケストレーターがスポーン要求を受信してからランナーが登録されるまでの予想 p99 時間(プラットフォーム上でのキャパシティ待ちを含む)。サーバーは 10 ~ 3600 の範囲を強制します。すべてのポーリングでサーバー側リースとして送信されます。ランナーが経過前に登録されない場合、セッションは新しいオーダー ID で再提供されます。すべてのレプリカはこの値を共有する必要があります。 |

76| `--min-idle <n>` | `0` | スタンバイランナーを積極的に生成することで、少なくとも N 個のアイドルセッションスロットを無料で保ちます。`0` はプレウォーミングを無効にします。ランナーの `--exit-if-unused-min` とペアにして、余分なスタンバイランナーが自分自身を再利用するようにします。 |95| `--min-idle <n>` | `0` | スタンバイランナーを積極的に生成することで、少なくとも N 個のアイドルセッションスロットを無料で保ちます。`0` はプレウォーミングを無効にします。ランナーの `--exit-if-unused-min` とペアにして、余分なスタンバイランナーが自分自身を再利用するようにします。 |

77| `--debug-dir <path>` | 未設定 | 各スポーン要求のワークオーダーとフック stderr をディスクに書き込みます。デバッグのみ。本番環境では設定しないでください。 |96| `--debug-dir <path>` | 未設定 | 各スポーン要求のワークオーダーとフック stderr をディスクに書き込みます。デバッグのみ。本番環境では設定しないでください。 |

78 97 


108| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | ターンが終了した後、セッションのプロセスがターンの終了を Anthropic に報告している間、ランナーが `--drain-wait-sec` ドレイン用にセッションをビジーとしてカウントする時間の上限。`0` または使用不可能な値はデフォルトにフォールバックするため、ホールドをオフにすることはできません。Claude Code v2.1.275 以降が必要です。 |127| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | ターンが終了した後、セッションのプロセスがターンの終了を Anthropic に報告している間、ランナーが `--drain-wait-sec` ドレイン用にセッションをビジーとしてカウントする時間の上限。`0` または使用不可能な値はデフォルトにフォールバックするため、ホールドをオフにすることはできません。Claude Code v2.1.275 以降が必要です。 |

109| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | ランナーが割り込み不可能な I/O でスタックしている子に `SIGKILL` を配信するのを待つ時間。その後、ランナー自体が終了します。`--post-session-hook-timeout-sec` プラス 15 秒でフロアされ、`--push-outcome-on-release` が設定されている場合は 30 秒追加されます。有効な最小値はデフォルトで 75 秒です。 |128| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | ランナーが割り込み不可能な I/O でスタックしている子に `SIGKILL` を配信するのを待つ時間。その後、ランナー自体が終了します。`--post-session-hook-timeout-sec` プラス 15 秒でフロアされ、`--push-outcome-on-release` が設定されている場合は 30 秒追加されます。有効な最小値はデフォルトで 75 秒です。 |

110| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | 新規クローン用の Git フェッチ深度。正の整数、または完全なフェッチ用に `full` または `0` を設定します。ワークスペースに既に存在するリポジトリは既存の深度を保持します。 |129| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | 新規クローン用の Git フェッチ深度。正の整数、または完全なフェッチ用に `full` または `0` を設定します。ワークスペースに既に存在するリポジトリは既存の深度を保持します。 |

130| `CLAUDE_RUNNER_FETCH_SERVER_PROGRESS_CAP_MS` | `600000` | git サーバー自身の進捗値が上昇し続けている間(サーバーが大規模なリポジトリ用のパックを準備している場合など)、git フェッチが最初のデータを待機できる時間(試行ごと、ミリ秒単位)。`0` または `off` を指定すると待機がオフになり、その場合、そのようなフェッチはデータがないまま 2 分経過すると打ち切られます。その他の整数は `120000` から `1800000` の範囲(2〜30 分)に制限されます。Claude Code v2.1.295 以降が必要です。 |

111| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | 未設定 | `1` の場合、`checkout` フック実行後の `.git` 存在チェックをスキップします。フックが非 git ソースを具体化する場合は、これを設定します。 |131| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | 未設定 | `1` の場合、`checkout` フック実行後の `.git` 存在チェックをスキップします。フックが非 git ソースを具体化する場合は、これを設定します。 |

112| `FORCE_AUTOUPDATE_PLUGINS` | 未設定 | `1` の場合、バイナリがピン留めされていても、プラグインマーケットプレイスの自動更新を許可します。 |132| `FORCE_AUTOUPDATE_PLUGINS` | 未設定 | `1` の場合、バイナリがピン留めされていても、プラグインマーケットプレイスの自動更新を許可します。 |

113| `CLAUDE_CODE_DISABLE_ARTIFACT` | 未設定 | `1` の場合、組織の管理者設定に関係なくセッション内の Artifact ツールを無効にし、`*.frame.claudeusercontent.com` エグレス要件をドロップします。 |133| `CLAUDE_CODE_DISABLE_ARTIFACT` | 未設定 | `1` の場合、組織の管理者設定に関係なくセッション内の Artifact ツールを無効にし、`*.frame.claudeusercontent.com` エグレス要件をドロップします。 |


178| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | 種類別の累積 PollSpawnHints 失敗:`transport`、`timeout`、`5xx`、`429`、または `4xx`。すべての 5 つのシリーズはプロセス開始から存在します。`rate(...[5m]) > 0` でアラートします。 |198| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | 種類別の累積 PollSpawnHints 失敗:`transport`、`timeout`、`5xx`、`429`、または `4xx`。すべての 5 つのシリーズはプロセス開始から存在します。`rate(...[5m]) > 0` でアラートします。 |

179| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | 今すぐクレーム可能なスポーン要求 |199| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | 今すぐクレーム可能なスポーン要求 |

180| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | 再試行可能なフック失敗後の再試行バックオフ内のスポーン要求 |200| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | 再試行可能なフック失敗後の再試行バックオフ内のスポーン要求 |

181| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Owner が環境の **Activity** タブから再試行するまでブロックされたスポーン要求。ゼロを超える場合はアラートします。 |201| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | スポーンがブロックされているセッション。各セッションは、ユーザーが新しいメッセージを送信するか、Owner が環境の **Activity** タブから再試行するまでブロックされたままです。原因を修正した後もカウントがゼロを超えたままになる場合があります。ゼロを超える場合はアラートします。 |

182| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | この環境でランナーを待機している総セッション数。環境全体の集計。すべてのオーケストレーターインスタンスで同一です。インスタンス全体で `SUM` ではなく `MAX` を使用します。 |202| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | この環境でランナーを待機している総セッション数。環境全体の集計。すべてのオーケストレーターインスタンスで同一です。インスタンス全体で `SUM` ではなく `MAX` を使用します。 |

183| `claude_code_self_hosted_orchestrator_pool_active_sessions` | この環境内のアライブランナーに現在割り当てられているセッション。環境全体の集計。すべてのオーケストレーターインスタンスで同一です。インスタンス全体で `SUM` ではなく `MAX` を使用します。 |203| `claude_code_self_hosted_orchestrator_pool_active_sessions` | この環境内のアライブランナーに現在割り当てられているセッション。環境全体の集計。すべてのオーケストレーターインスタンスで同一です。インスタンス全体で `SUM` ではなく `MAX` を使用します。 |

184| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | 累積 `spawn-runner` フック結果:`ok`、`retryable`、`non_retryable`。オーケストレーターフック呼び出しをカウントします。ランナーがスポーンするセッション子ではありません。容量が 1 を超える場合、ウォームプール、同じセッション用に再度スポーンされたランナーは `sessions_started_total` と比較できないため、2 つが異なります。 |204| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | 累積 `spawn-runner` フック結果:`ok`、`retryable`、`non_retryable`。オーケストレーターフック呼び出しをカウントします。ランナーがスポーンするセッション子ではありません。容量が 1 を超える場合、ウォームプール、同じセッション用に再度スポーンされたランナーは `sessions_started_total` と比較できないため、2 つが異なります。 |


283 for: 1m303 for: 1m

284 labels: {severity: critical}304 labels: {severity: critical}

285 annotations:305 annotations:

286 summary: "{{ $value }} セッションがサーキットブレーク — spawn-runner フックが繰り返し非再試行可能。インフラを修正してから Activity タブから再試行してください"306 summary: "スポーンがブロックされているセッション:{{ $value }}。Activity タブで各セッションのエラーを確認し、原因を修正してから Retry を選択してください"

287 - alert: ClaudeOrchestratorPollErrors307 - alert: ClaudeOrchestratorPollErrors

288 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0308 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0

289 for: 2m309 for: 2m


318 338 

319v2.1.260 より前では、ランナーは `--kill-session-after-min` 制限に達したすべてのセッションを終了し、`sessions_interrupted_total` でカウントしました。339v2.1.260 より前では、ランナーは `--kill-session-after-min` 制限に達したすべてのセッションを終了し、`sessions_interrupted_total` でカウントしました。

320 340 

321[`post-session` フック](/docs/ja/self-hosted-environments-configuration#post-session) の `CLAUDE_RUNNER_EXIT_REASON` はクリーンハンドオフを異なる方法で分類します。フックはリリース、スタートアップタイムアウト、サーバー割り当て解除をランナーが子を停止したため `interrupted` として報告します。これらのカウンターは、スロットがクリーンに返されたため、`completed` として同じイベントを記録します。341[`post-session` フック](/docs/ja/self-hosted-environments-configuration#post-session) の `CLAUDE_RUNNER_EXIT_REASON` はクリーンハンドオフを異なる方法で分類します。フックは、ランナーが子を停止したため、リリース、スタートアップタイムアウト、サーバー割り当て解除、およびポーリングが先に気付いたアーカイブまたは削除を `interrupted` として報告します。これらのカウンターは、スロットがクリーンに返されたため、`completed` として同じイベントを記録します。

322 342 

323フック受信を `sessions_completed_total` に対して直接調整する場合、完了をアンダーカウントします。セッションごとの保証にはフックを使用し、集計レートにはカウンターを使用します。343フック受信を `sessions_completed_total` に対して直接調整する場合、完了をアンダーカウントします。セッションごとの保証にはフックを使用し、集計レートにはカウンターを使用します。

324 344 

Details

85 テストループを実行する85 テストループを実行する

86</h2>86</h2>

87 87 

88`--environment` および `--ref` ディスパッチフラグには、スクリプトを実行するマシン上の Claude Code v2.1.224 以降が必要です。これは実行イメージ自体と同じ下限です。フックが配置され、このホストで実行イメージが開始されている場合、テストスクリプトは以下を実行します。88`--environment` および `--ref` のディスパッチフラグを使用するには、スクリプトを実行するマシンに Claude Code v2.1.224 以降が必要です。これはランナー自体と同じ最低バージョンです。フックを設定し、このホストでランナーを起動した状態で、テストスクリプトは次の処理を行います。

89 89 

901. `claude -p "<prompt>" --environment <environment-id> --output-format json` でテスト環境にセッションを作成します。git チェックアウトから実行して、CLI が `origin` リモートからリポジトリを自動検出できるようにします。オプションの `--ref <branch>` は、ローカル HEAD の代わりに名前付き ref に基づいてセッションのチェックアウトを行います。コマンドはセッションを作成し、`session_id` を含む 1 行の JSON を出力し、Claude の返信を待たずに終了します。901. `claude -p "<prompt>" --environment <environment-id> --output-format json` を使用して、テスト環境上にセッションを作成します。CLI が `origin` リモートからリポジトリを自動検出できるように、このコマンドは Git のチェックアウト内から実行してください。オプションの `--ref <branch>` を指定すると、セッションのチェックアウトをローカルの HEAD ではなく指定した ref に基づいて作成します。このコマンドは Claude の応答を待たずに終了します。出力される内容によって、スクリプトは結果を判断できます。

912. Stop フックが実行イメージ上でターンが完了したら `$E2E_REPLY_DIR/<session_id>.txt` に返信が表示されるまで待機します。91 * **セッションが作成された場合**: `{"ok":true,"session_id":"session_...","title":"...","url":"...","pool_id":"..."}` のような 1 行の JSON

923. `claude -p "<message>" --cloud <session_id> --output-format json` でフォローアップを送信します([実行中のセッションにフォローアップメッセージを送信する](/docs/ja/claude-code-on-the-web#send-follow-ups-from-the-cli)を参照)。これは既存のセッションにユーザーイベントをポストし、終了します。92 * **セッションの作成に失敗した場合**: `{"ok":false,"error":"..."}` という行が出力され、コマンドはステータス 1 で終了します

934. ステップ 2 と同じ方法でフォローアップの返信を待機します。93 * **それ以前の段階で発生する一部のエラー**(組織でクラウドセッションが利用できない場合や、プロンプトが指定されていない場合など): JSON 行は出力されず、エラーが stderr に出力され、コマンドはステータス 1 で終了します

942. ターンの完了時にランナー上の Stop フックによって書き込まれる `$E2E_REPLY_DIR/<session_id>.txt` に応答が現れるのを待ちます。

953. `claude -p "<message>" --cloud <session_id> --output-format json` を使用してフォローアップを送信します([実行中のセッションにフォローアップメッセージを送信する](/docs/ja/claude-code-on-the-web#send-follow-ups-from-the-cli)を参照)。このコマンドは既存のセッションにユーザーイベントを投稿して終了します。

964. 手順 2 と同じ方法で、フォローアップへの応答を待ちます。

94 97 

95<h3 id="environment-dispatch-behavior">98<h3 id="environment-dispatch-behavior">

96 `--environment` ディスパッチ動作99 `--environment` のディスパッチ動作

97</h3>100</h3>

98 101 

99Claude Code はセッションを作成し、セッション ID とそのリンクを出力して終了します。102Claude Code はセッションを作成し、セッション ID とセッションへのリンクを出力して終了します。

100 103 

101フラグは [`remote.defaultEnvironmentId`](/docs/ja/settings-reference#remote-defaultenvironmentid) 設定よりも優先されます。`--output-format stream-json` をサポートしておらず、`--resume`、`--continue`、`--teleport`、`--session-id`、`--init-only` など、セッションを再開、アタッチ、または事前設定するフラグと組み合わせることはできません。`--cloud` はセッション ID または URL で拒否され、非対話型実行では説明を含む場合に拒否されます。ベアの `--cloud` は存在しないものとして扱われます。ターミナルから、位置指定プロンプトの代わりに `--cloud` 説明としてタスクを渡すことができます。104このフラグは [`remote.defaultEnvironmentId`](/docs/ja/settings-reference#remote-defaultenvironmentid) 設定よりも優先されます。`--output-format stream-json` には対応しておらず、`--resume`、`--continue`、`--teleport`、`--session-id`、`--init-only` など、セッションの再開、アタッチ、または事前設定を行うフラグと組み合わせることはできません。`--cloud` は、セッション ID または URL を指定した場合、および非対話型の実行で説明を伴う場合には拒否されます。値を伴わない `--cloud` は指定されていないものとして扱われます。ターミナルからは、位置引数のプロンプトの代わりに、タスクを `--cloud` の説明として渡すことができます。

102 105 

103<h2 id="example-script">106<h2 id="example-script">

104 スクリプト例107 スクリプト例

105</h2>108</h2>

106 109 

107以下のスクリプトは `$CLAUDE_TEST_ENVIRONMENT_ID`(テスト環境の `ccpool_...` ID)に対して完全なループを実行します。これは管理ページの環境詳細ダイアログに表示されるか、[環境作成呼び出し](#create-a-dedicated-test-environment)によって返されます。各返信のセンチネルフレーズをアサートします。キャプチャフックがインストールされ、`E2E_REPLY_DIR` がエクスポートされている実行イメージを使用して、このホストで実行イメージを開始した後、セッションを実行したいリポジトリの git チェックアウトから実行します。まず、[CI からの認証](#authenticate-from-ci)で説明しているとおり、スクリプトを実行するマシンで claude.ai アカウントにサインインします。このサインインを行わないと、最初のディスパッチが `Unable to get organization UUID for cloud session creation` などのエラーで失敗します。110このスクリプト例は、テストランナーと同じマシンで実行します。実行する前に、そのマシンを準備します。

111 

112* **リポジトリのチェックアウト**: セッションで作業させたいリポジトリの git チェックアウトからスクリプトを実行します。

113* **ランナー**: キャプチャフックをインストールし、`E2E_REPLY_DIR` をエクスポートした状態で、このホストでランナーを開始します。

114* **サインイン**: [CI からの認証](#authenticate-from-ci)で説明しているとおり、スクリプトを実行するマシンで claude.ai アカウントにサインインします。

115* **環境 ID**: `CLAUDE_TEST_ENVIRONMENT_ID` にテスト環境の `ccpool_...` ID を設定します。この ID は管理ページの環境詳細ダイアログに表示されるか、[環境作成呼び出し](#create-a-dedicated-test-environment)によって返されます。

116 

117以下のスクリプトは `$CLAUDE_TEST_ENVIRONMENT_ID` に対して完全なループを実行し、各返信のセンチネルフレーズをアサートします。

108 118 

109```bash theme={null}119```bash theme={null}

110#!/usr/bin/env bash120#!/usr/bin/env bash


152TURN1="e2e-probe-$(date +%s)-$$: say exactly 'ok: custom tools are reachable' and nothing else"162TURN1="e2e-probe-$(date +%s)-$$: say exactly 'ok: custom tools are reachable' and nothing else"

153EXPECT1="ok: custom tools are reachable"163EXPECT1="ok: custom tools are reachable"

154create_json=$(claude -p "$TURN1" --environment "$CLAUDE_TEST_ENVIRONMENT_ID" \164create_json=$(claude -p "$TURN1" --environment "$CLAUDE_TEST_ENVIRONMENT_ID" \

155 --ref "$TEST_REPO_REF" --output-format json)165 --ref "$TEST_REPO_REF" --output-format json < /dev/null)

156echo "create: $create_json"166echo "create: $create_json"

157SESSION_ID=$(jq -er '.session_id' <<<"$create_json")167SESSION_ID=$(jq -er '.session_id' <<<"$create_json")

158 168 


163# 3. Post a follow-up via the CLI.173# 3. Post a follow-up via the CLI.

164TURN2="e2e-probe-followup-$(date +%s): say exactly 'ok: follow-up delivered' and nothing else"174TURN2="e2e-probe-followup-$(date +%s): say exactly 'ok: follow-up delivered' and nothing else"

165EXPECT2="ok: follow-up delivered"175EXPECT2="ok: follow-up delivered"

166followup_json=$(claude -p "$TURN2" --cloud "$SESSION_ID" --output-format json)176followup_json=$(claude -p "$TURN2" --cloud "$SESSION_ID" --output-format json < /dev/null)

167echo "followup: $followup_json"177echo "followup: $followup_json"

168jq -e '.ok == true' <<<"$followup_json" >/dev/null178jq -e '.ok == true' <<<"$followup_json" >/dev/null

169 179 

Details

638| [`claudeMdExcludes`](#claudemdexcludes) | メモリの読み込み時に特定の [CLAUDE.md](/docs/ja/memory#exclude-specific-claude-md-files) ファイルをスキップします | メモリとコンテキスト | Any file |638| [`claudeMdExcludes`](#claudemdexcludes) | メモリの読み込み時に特定の [CLAUDE.md](/docs/ja/memory#exclude-specific-claude-md-files) ファイルをスキップします | メモリとコンテキスト | Any file |

639| [`cleanupPeriodDays`](#cleanupperioddays) | Claude Code が[トランスクリプト](/docs/ja/data-usage#data-retention)を削除するまで保持する日数を選択します | プライバシーとテレメトリ | Any file |639| [`cleanupPeriodDays`](#cleanupperioddays) | Claude Code が[トランスクリプト](/docs/ja/data-usage#data-retention)を削除するまで保持する日数を選択します | プライバシーとテレメトリ | Any file |

640| [`companyAnnouncements`](#companyannouncements) | 起動時に組織のお知らせを表示します | インターフェースとターミナル | Any file |640| [`companyAnnouncements`](#companyannouncements) | 起動時に組織のお知らせを表示します | インターフェースとターミナル | Any file |

641| [`copyFullResponse`](#copyfullresponse) | [`/copy`](/docs/ja/commands) がコードブロックの選択画面を表示せずに応答全体をコピーするようにします | グローバル設定 | Global config |641| [`copyFullResponse`](#copyfullresponse) | [`/copy`](/docs/ja/commands) がピッカーを表示せずに応答全体をコピーするようにします | グローバル設定 | Global config |

642| [`copyOnSelect`](#copyonselect) | [フルスクリーンレンダリング](/docs/ja/fullscreen#use-the-mouse)とエージェントビューで、マウスで選択したテキストの自動コピーをオフにします | グローバル設定 | Global config |642| [`copyOnSelect`](#copyonselect) | [フルスクリーンレンダリング](/docs/ja/fullscreen#use-the-mouse)とエージェントビューで、マウスで選択したテキストの自動コピーをオフにします | グローバル設定 | Global config |

643| [`crossSessionInbound`](#crosssessioninbound) | Claude Code が[他のセッションからのメッセージ](/docs/ja/cross-session-messaging#control-inbound-messages)を配信するか、配信せずに通知を表示するか、拒否するかを選択します | エージェント、セッション、worktree | Any file |643| [`crossSessionInbound`](#crosssessioninbound) | Claude Code が[他のセッションからのメッセージ](/docs/ja/cross-session-messaging#control-inbound-messages)を配信するか、配信せずに通知を表示するか、拒否するかを選択します | エージェント、セッション、worktree | Any file |

644| [`defaultShell`](#defaultshell) | [`!` プレフィックス](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したシェルコマンドを Bash と PowerShell のどちらで実行するかを選択します | インターフェースとターミナル | Any file |644| [`defaultShell`](#defaultshell) | [`!` プレフィックス](/docs/ja/interactive-mode#shell-mode-with-prefix)で入力したシェルコマンドを Bash と PowerShell のどちらで実行するかを選択します | インターフェースとターミナル | Any file |


684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | [`/rewind`](/docs/ja/checkpointing) が復元するファイルスナップショットをオフまたはオンにします | メモリとコンテキスト | Any file |684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | [`/rewind`](/docs/ja/checkpointing) が復元するファイルスナップショットをオフまたはオンにします | メモリとコンテキスト | Any file |

685| [`fileSuggestion`](#filesuggestion) | 独自のコマンドから [`@` ファイルのオートコンプリート](/docs/ja/interactive-mode#quick-commands)を提供します | インターフェースとターミナル | Any file |685| [`fileSuggestion`](#filesuggestion) | 独自のコマンドから [`@` ファイルのオートコンプリート](/docs/ja/interactive-mode#quick-commands)を提供します | インターフェースとターミナル | Any file |

686| [`footerLinksRegexes`](#footerlinksregexes) | 出力内の issue やレビューの ID を、入力ボックスの下にある[クリック可能なリンク](/docs/ja/statusline#clickable-links)にします | インターフェースとターミナル | User or managed |686| [`footerLinksRegexes`](#footerlinksregexes) | 出力内の issue やレビューの ID を、入力ボックスの下にある[クリック可能なリンク](/docs/ja/statusline#clickable-links)にします | インターフェースとターミナル | User or managed |

687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | ログイン画面が接続する[ゲートウェイ URL](/docs/ja/claude-apps-gateway#set-the-gateway-url) を設定します | 認証とプロバイダー | Managed |687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | ログイン画面が接続する[ゲートウェイ URL](/docs/ja/claude-apps-gateway#set-the-gateway-url) を設定します | 認証とプロバイダー | User or managed |

688| [`forceLoginMethod`](#forceloginmethod) | [ログインを](/docs/ja/authentication#restrict-login-to-your-organization) claude.ai、Claude Console、または[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)に制限します | 認証とプロバイダー | Any file |688| [`forceLoginMethod`](#forceloginmethod) | [ログインを](/docs/ja/authentication#restrict-login-to-your-organization) claude.ai、Claude Console、または[クラウドゲートウェイ](/docs/ja/claude-apps-gateway)に制限します | 認証とプロバイダー | Any file |

689| [`forceLoginOrgUUID`](#forceloginorguuid) | [claude.ai のログインを組織に固定](/docs/ja/authentication#restrict-login-to-your-organization)します。これを強制できるのは管理ソースのみです | 認証とプロバイダー | Any file |689| [`forceLoginOrgUUID`](#forceloginorguuid) | [claude.ai のログインを組織に固定](/docs/ja/authentication#restrict-login-to-your-organization)します。これを強制できるのは管理ソースのみです | 認証とプロバイダー | Any file |

690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | [サーバー管理設定](/docs/ja/server-managed-settings)が新たに取得されるまで起動をブロックします | エンタープライズと管理設定 | Managed |690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | [サーバー管理設定](/docs/ja/server-managed-settings)が新たに取得されるまで起動をブロックします | エンタープライズと管理設定 | Managed |


6085 6085 

6086ユーザーがログインできるアカウントの種類を制限します。`"claudeai"` を設定して claude.ai アカウントのみを許可するか、`"console"` を設定して Claude Console アカウントのみを許可するか、`"gateway"` を設定してファーストパーティログインの代わりに [クラウドゲートウェイ](/docs/ja/claude-apps-gateway)にユーザーを送信します。管理者は管理設定で設定し、[`forceLoginOrgUUID`](#forceloginorguuid) と組み合わせて開発者の claude.ai ログインを 1 つの組織内に保つことができます。任意の設定ファイルで `"claudeai"` または `"console"` に設定した場合、Claude Code はそのファイルが適用されるセッションで [キーレス Console サインイン](/docs/ja/authentication#sign-in-without-an-api-key)の提供も停止します。6086ユーザーがログインできるアカウントの種類を制限します。`"claudeai"` を設定して claude.ai アカウントのみを許可するか、`"console"` を設定して Claude Console アカウントのみを許可するか、`"gateway"` を設定してファーストパーティログインの代わりに [クラウドゲートウェイ](/docs/ja/claude-apps-gateway)にユーザーを送信します。管理者は管理設定で設定し、[`forceLoginOrgUUID`](#forceloginorguuid) と組み合わせて開発者の claude.ai ログインを 1 つの組織内に保つことができます。任意の設定ファイルで `"claudeai"` または `"console"` に設定した場合、Claude Code はそのファイルが適用されるセッションで [キーレス Console サインイン](/docs/ja/authentication#sign-in-without-an-api-key)の提供も停止します。

6087 6087 

6088* **スコープ**: [`Any file`](#scopes)。Claude Code は `"gateway"` をマシン上の管理ソース(`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパー)からのみ受け入れます。ユーザー、プロジェクト、ローカル、HKCU、およびサーバー管理設定では `"gateway"` を未設定として扱います。これは [`forceLoginGatewayUrl`](#forcelogingatewayurl) と同じルールです。6088* **スコープ**: [`Any file`](#scopes)。Claude Code は `"gateway"` を [`forceLoginGatewayUrl`](#forcelogingatewayurl) と同じソースからのみ受け入れ、それ以外の場所では未設定として扱います。

6089* **タイプ**: 文字列、以下のいずれか:6089* **タイプ**: 文字列、以下のいずれか:

6090 * `"claudeai"`: claude.ai アカウントのみがログインできます6090 * `"claudeai"`: claude.ai アカウントのみがログインできます

6091 * `"console"`: Claude Console アカウントのみがログインできます6091 * `"console"`: Claude Console アカウントのみがログインできます


6108 6108 

6109`/login` クラウドゲートウェイ画面が接続するゲートウェイ URL を設定して、ユーザーがアドレスを入力せずに [クラウドゲートウェイ](/docs/ja/claude-apps-gateway)に到達できるようにします。画面には URL フィールドがありません。このキーが設定されている場合、ゲートウェイ URL を表示し、ユーザーが Enter キーを押すと接続します。設定されていない場合、IT 管理者に連絡するよう指示します。6109`/login` クラウドゲートウェイ画面が接続するゲートウェイ URL を設定して、ユーザーがアドレスを入力せずに [クラウドゲートウェイ](/docs/ja/claude-apps-gateway)に到達できるようにします。画面には URL フィールドがありません。このキーが設定されている場合、ゲートウェイ URL を表示し、ユーザーが Enter キーを押すと接続します。設定されていない場合、IT 管理者に連絡するよう指示します。

6110 6110 

6111このキーまたは `forceLoginMethod: "gateway"` のいずれかにより、`CLAUDE_CODE_USE_*` でクラウドプロバイダーを選択するセッションを除き、マシンはゲートウェイのみになります。その場合、`/login` はログイン方法ピッカーなしでクラウドゲートウェイ画面で開きます。残されたファーストパーティログインまたは API キーに何が起こるかについては、[管理者ポリシーがクラウドゲートウェイサインインを必要とします](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)を参照してください。画面がエラーを表示する代わりに接続するように、両方のキーを設定します。6111管理設定では、このキーまたは `forceLoginMethod: "gateway"` のいずれかにより、`CLAUDE_CODE_USE_*` でクラウドプロバイダーを選択するセッションを除き、マシンはゲートウェイのみになります。その場合、`/login` はログイン方法ピッカーなしでクラウドゲートウェイ画面で開きます。残されたファーストパーティログインまたは API キーに何が起こるかについては、[管理者ポリシーがクラウドゲートウェイサインインを必要とします](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)を参照してください。画面がエラーを表示する代わりに接続するように、両方のキーを設定します。

6112 6112 

6113* **スコープ**: [`Managed`](#scopes)。マシン上のソースからのみ読み取ります。`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパー。Claude Code は HKCU およびサーバー管理設定では無視します。6113* **スコープ**: [`User or managed`](#scopes)。マシン上の管理ソースから読み取ります。`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパー。これらのいずれもないマシンでは、Claude Code v2.1.295 以降は [ユーザー設定](/docs/ja/claude-apps-gateway#set-the-gateway-url-in-user-settings)からも読み取ります。Claude Code は HKCU およびサーバー管理設定では無視します。

6114* **タイプ**: 文字列、スキームを含む完全な URL6114* **タイプ**: 文字列、スキームを含む完全な URL

6115* **デフォルト**: 未設定。クラウドゲートウェイ画面は IT 管理者に連絡するよう指示するエラーを表示します6115* **デフォルト**: 未設定。クラウドゲートウェイ画面は IT 管理者に連絡するよう指示するエラーを表示します

6116 6116 


6806 `copyFullResponse`6806 `copyFullResponse`

6807</h3>6807</h3>

6808 6808 

6809[`/copy`](/docs/ja/commands) が応答に含まれるコードブロックがある場合に表示するピッカーなしで、毎回完全な応答をコピーします。そのピッカーで **Always copy full response** を選択すると、このキーが `true` に設定されます。`/config` に **Skip the /copy picker** として表示されます。6809[`/copy`](/docs/ja/commands) がピッカーを表示せずに、毎回完全な応答をコピーするようにします。そのピッカーで **Always copy full response** を選択すると、このキーが `true` に設定されます。`/config` に **Skip the /copy picker** として表示されます。

6810 6810 

6811* **スコープ**: [`グローバル設定`](#scopes)6811* **スコープ**: [`グローバル設定`](#scopes)

6812* **タイプ**: ブール値6812* **タイプ**: ブール値

6813 * `true`: `/copy` はピッカーを表示せずに完全な応答をコピーします6813 * `true`: `/copy` はピッカーを表示せずに完全な応答をコピーします

6814 * `false`: 応答にコードブロックが含まれている場合、`/copy` はピッカーを表示し、1 つのコードブロックまたは完全な応答を選択できます6814 * `false`: 応答にコードブロックまたは引用ブロックが含まれている場合、`/copy` はピッカーを表示し、1 つのブロックまたは完全な応答を選択できます

6815* **デフォルト**: `false`6815* **デフォルト**: `false`

6816 6816 

6817```json ~/.claude.json theme={null}6817```json ~/.claude.json theme={null}

skills.md +1 −1

Details

235 235 

236スキルがマシン上の `~/.claude/skills/` にのみ存在する場合、[routine](/docs/ja/routines) がそれを呼び出すと、Claude Code はスキルが見つからないと報告します。各 routine 実行は新しいクラウドセッションとして開始されるためです。これらのセッションで personal スキルを利用可能にするには:236スキルがマシン上の `~/.claude/skills/` にのみ存在する場合、[routine](/docs/ja/routines) がそれを呼び出すと、Claude Code はスキルが見つからないと報告します。各 routine 実行は新しいクラウドセッションとして開始されるためです。これらのセッションで personal スキルを利用可能にするには:

237 237 

238* Cowork およびクラウドセッションの場合、claude.ai アカウント用にスキルを有効化します。238* Cowork およびクラウドセッションの場合、claude.ai アカウント用にスキルを有効化します。[セルフホスト環境の一部のセッション](/docs/ja/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) は、アカウントのスキルを読み込みません。

239* クラウドセッションの場合、代わりにスキルをリポジトリの `.claude/skills/` にコミットできます。リポジトリの `.claude/settings.json` で宣言されたプラグインおよびユーザーセッティングでのみ有効化されたプラグインは [クラウドセッションで読み込まれません](/docs/ja/cloud-environments#what-carries-over-from-your-setup)。239* クラウドセッションの場合、代わりにスキルをリポジトリの `.claude/skills/` にコミットできます。リポジトリの `.claude/settings.json` で宣言されたプラグインおよびユーザーセッティングでのみ有効化されたプラグインは [クラウドセッションで読み込まれません](/docs/ja/cloud-environments#what-carries-over-from-your-setup)。

240 240 

241[Desktop scheduled tasks](/docs/ja/desktop-scheduled-tasks) はマシン上でローカルに実行されるため、`~/.claude/skills/` を読み込みます。241[Desktop scheduled tasks](/docs/ja/desktop-scheduled-tasks) はマシン上でローカルに実行されるため、`~/.claude/skills/` を読み込みます。

Details

122}122}

123```123```

124 124 

125<h2 id="see-session-status-in-your-terminal">

126 ターミナルでセッションのステータスを確認する

127</h2>

128 

129ターミナルが OSC 7501 Program Status Protocol を実装している場合、対話型の各 Claude Code セッションが作業中か、ユーザーの応答待ちか、完了したかを表示できます。これは、長時間のタスクを実行する場合や複数のセッションを同時に実行する場合に役立ちます。Claude Code 側でオンにする設定はありません。ターミナルがこのプロトコルを実装しているかどうか、またどこにステータスが表示されるかについては、ターミナルのドキュメントを確認してください。

130 

131ターミナルがプロトコルを実装しているにもかかわらず、セッションのステータスが表示されない場合は、次の各原因を確認してください。

132 

133* **Claude Code のバージョン**:ステータスの報告には Claude Code v2.1.295 以降が必要です。シェルで `claude --version` を実行して確認してください。

134* **tmux**:tmux 内では、Claude Code はターミナルではなく tmux に対してサポートの有無を確認します。また、[`allow-passthrough`](#configure-tmux) はこの確認には影響しません。tmux の外でセッションを開始してください。

135* **バックグラウンドセッション**:[バックグラウンドセッション](/docs/ja/agent-view)は、アタッチしている間であっても、ターミナルにステータスを報告しません。代わりにエージェントビューにステータスが表示されます。

136* **[`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](/docs/ja/env-vars#variables)**:この変数を `1` に設定している場合、Claude Code はサポートの有無を確認せず、ステータスも報告しません。この変数の設定を解除してください。

137 

125<h2 id="configure-tmux">138<h2 id="configure-tmux">

126 tmux を設定する139 tmux を設定する

127</h2>140</h2>

tools-reference.md +27 −10

Details

279 279 

280Edit ツールは正確な文字列置換を実行します。`old_string` と `new_string` を受け取り、最初のものを 2 番目のものに置き換えます。正規表現やあいまい一致は使用しません。280Edit ツールは正確な文字列置換を実行します。`old_string` と `new_string` を受け取り、最初のものを 2 番目のものに置き換えます。正規表現やあいまい一致は使用しません。

281 281 

282編集を適用するには、3 つのチェックに合格する必要があります。その前に、[`Read` 拒否ルール](/docs/ja/permissions#tool-specific-permission-rules)に一致するパスは拒否されます。新しいファイルをそこに作成することも含まれます。この拒否には Claude Code v2.1.208 以降が必要です。282編集を適用するには、これらのチェックに合格する必要があります。そのいずれよりも前に、[`Read` 拒否ルール](/docs/ja/permissions#tool-specific-permission-rules)に一致するパスは拒否されます。新しいファイルをそこに作成することも含まれます。この拒否には Claude Code v2.1.208 以降が必要です。

283 283 

284* **Read-before-edit**: Claude は編集前に現在の会話でファイルを読み取り、[`PARTIAL view` 通知](#read-tool-behavior)で短縮された読み取りはカウントされません。Claude Opus 4.6、Claude Haiku 4.5、およびそれ以前のモデルは常に読み取りが必要です。新しいモデルは、読み取りが権限プロンプトを必要としない場合、および Read ツールが利用可能な場合、読み取られていないファイルを編集できます。284* **Read-before-edit**: Claude は編集前に現在の会話でファイルを読み取り、[`PARTIAL view` 通知](#large-files)で短縮された読み取りはカウントされません。Claude Opus 4.6、Claude Haiku 4.5、およびそれ以前のモデルは常に読み取りが必要です。新しいモデルは、読み取りが権限プロンプトを必要としない場合、および Read ツールが利用可能な場合、読み取られていないファイルを編集できます。

285* **Match**: `old_string` はファイルに記述されたとおりに正確に表示される必要があります。空白またはインデントの 1 文字の違いでも一致を逃す可能性があります。285* **Match**: `old_string` はファイルに記述されたとおりに正確に表示される必要があります。空白またはインデントの 1 文字の違いでも一致を逃す可能性があります。

286* **Uniqueness**: `old_string` は正確に 1 回だけ表示される必要があります。複数回表示される場合、Claude は 1 つの出現を特定するのに十分な周囲のコンテキストを含む長い文字列を提供するか、`replace_all: true` を設定してすべてを置換します。286* **Uniqueness**: `old_string` は正確に 1 回だけ表示される必要があります。複数回表示される場合、Claude は 1 つの出現を特定するのに十分な周囲のコンテキストを含む長い文字列を提供するか、`replace_all: true` を設定してすべてを置換します。

287 287 

288Claude が最後に読み取った後、ディスク上で変更されたファイルは、`old_string` が現在のコンテンツと正確かつ明確に一致し、Claude Code がプロンプトなしでファイルを読み取ることができる場合でも編集できます。ファイルの現在のコンテンツに対してマッチングすることでこれを安全に保ち、結果はファイルが他の変更を含むことを示すため、Claude は周囲のコンテンツに依存する編集の前に再度読み取ります。古い `old_string` や `replace_all` なしで複数回一致するものなど、その他の場合は、Claude は編集前にファイルを再度読み取ります。読み取られていないファイルと変更されたファイルの緩和された処理には Claude Code v2.1.208 以降が必要です。それ以前は、Claude Code は会話で読み取られていないファイルまたは読み取り後にディスク上で変更されたファイルへの編集を拒否していました。288Claude が最後に読み取った後、ディスク上で変更されたファイルは、`old_string` が現在のコンテンツと正確かつ明確に一致し、Claude Code がプロンプトなしでファイルを読み取ることができる場合でも編集できます。ファイルの現在のコンテンツに対してマッチングすることでこれを安全に保ち、結果はファイルが他の変更を含むことを示すため、Claude は周囲のコンテンツに依存する編集の前に再度読み取ります。古い `old_string` や `replace_all` なしで複数回一致するものなど、その他の場合は、Claude は編集前にファイルを再度読み取ります。読み取られていないファイルと変更されたファイルの緩和された処理には Claude Code v2.1.208 以降が必要です。それ以前は、Claude Code は会話で読み取られていないファイルまたは読み取り後にディスク上で変更されたファイルへの編集を拒否していました。

289 289 

290Bash でファイルを表示することは、コマンドが `cat`、`nl`、`bat`、`batcat`、`head`、`tail`、`sed -n 'X,Yp'`、`grep`、`egrep`、`fgrep`、または `rg` である場合、パイプまたはリダイレクトなしで単一ファイルに対して read-before-edit 要件を満たします。パイプされた出力およびその他の Bash コマンドは read-before-edit チェックにはカウントされません。290Bash でファイルを表示することは、コマンドが `cat`、`nl`、`bat`、`batcat`、`head`、`tail`、`sed -n 'X,Yp'`、`grep`、`egrep`、`fgrep`、または `rg` である場合、パイプまたはリダイレクトなしで単一ファイルに対して read-before-edit 要件を満たします。何にも一致しない検索では、ファイルは読み取られていないままになります。パイプされた出力およびその他の Bash コマンドは read-before-edit チェックにはカウントされません。

291 291 

292Claude がこの方法でファイルを表示すると、Claude Code はそのファイルに適用される[サブディレクトリの `CLAUDE.md`](/docs/ja/memory#how-claude-md-files-load)と[パススコープのルール](/docs/ja/memory#path-specific-rules)も読み込みます。`Read` と `Edit` の拒否ルールがどの Bash コマンドをカバーするかについては、[Read と Edit の権限ルール](/docs/ja/permissions#read-and-edit)を参照してください。292Claude がこの方法でファイルを表示すると、Claude Code はそのファイルに適用される[サブディレクトリの `CLAUDE.md`](/docs/ja/memory#how-claude-md-files-load)と[パススコープのルール](/docs/ja/memory#path-specific-rules)も読み込みます。`Read` と `Edit` の拒否ルールがどの Bash コマンドをカバーするかについては、[Read と Edit の権限ルール](/docs/ja/permissions#read-and-edit)を参照してください。

293 293 

294<h3 id="non-utf-8-files">

295 UTF-8 以外のファイル

296</h3>

297 

298Edit と [NotebookEdit](#notebookedit-tool-behavior) は、バイト列が UTF-8 としてデコードできないファイルの変更を拒否し、何も書き込みません。UTF-8 として保存し直すと、デコードできなかったすべてのバイトが置換文字 `U+FFFD` に変わってしまうためです。これには、たとえば Windows-1252 や Shift-JIS などのレガシーエンコーディングで非 ASCII テキストを含むファイル、バイナリファイル、無効なバイトシーケンスを含む UTF-8 ファイルが該当します。[Claude が受け取るエラー](/docs/ja/errors#file-is-not-valid-utf-8)は、ファイル独自のエンコーディングで読み書きするシェルコマンドを使って変更を行うか、先にファイルを UTF-8 に変換するかどうかをユーザーに確認するよう Claude に指示します。リトルエンディアンの UTF-16 バイトオーダーマークで始まるファイルについては、Edit は代わりに UTF-16 として読み取るため、そのファイルは引き続き編集できます。

299 

300Write にはこの拒否は適用されません。Edit が拒否するファイルに対して、Write はファイル全体を新しいコンテンツで置き換えて UTF-8 として保存するため、ファイルの元のエンコーディングは失われます。ディスク上のファイルがデコードできず、かつ新しいコンテンツに `U+FFFD`(Read がデコードできないバイトに対して表示する文字)が含まれている場合、Write は拒否し、何も書き込みません。

301 

294<h2 id="endconversation-tool-behavior">302<h2 id="endconversation-tool-behavior">

295 EndConversation ツールの動作303 EndConversation ツールの動作

296</h2>304</h2>


455* `insert`:ターゲットの後に新しいセルを追加します。`cell_id` がない場合、新しいセルはノートブックの開始に移動します。`cell_type` を `code` または `markdown` に設定する必要があります。463* `insert`:ターゲットの後に新しいセルを追加します。`cell_id` がない場合、新しいセルはノートブックの開始に移動します。`cell_type` を `code` または `markdown` に設定する必要があります。

456* `delete`:ターゲット セルを削除します。464* `delete`:ターゲット セルを削除します。

457 465 

466NotebookEdit は、[Edit と同じルール](#non-utf-8-files)に従い、UTF-8 としてデコードできないノートブック ファイルを拒否し、何も書き込みません。

467 

458権限ルールは `Edit(...)` パス形式を使用します。`Edit(notebooks/**)` のようなルールは、そのディレクトリ内のファイルに対する NotebookEdit 呼び出しをカバーします。468権限ルールは `Edit(...)` パス形式を使用します。`Edit(notebooks/**)` のようなルールは、そのディレクトリ内のファイルに対する NotebookEdit 呼び出しをカバーします。

459 469 

460<h2 id="powershell-tool">470<h2 id="powershell-tool">


547 557 

548Read ツールはファイルパスを受け取り、行番号付きでコンテンツを返します。Claude は常に絶対パスを渡すように指示されています。558Read ツールはファイルパスを受け取り、行番号付きでコンテンツを返します。Claude は常に絶対パスを渡すように指示されています。

549 559 

550デフォルトでは、Read はファイルの開始から返します。ファイル全体の読み込みがトークン制限を超える場合、Read は最初のページを `PARTIAL view` 通知とともに返し、Claude が受け取ったファイルの量と `offset` および `limit` を使用してさらに読み込む方法を伝えます。明示的な `offset` または `limit` を渡す読み込みがトークン制限を超える場合、エラーが返されます。

551 

552明示的な `limit` を指定した読み込みは、選択された行がトークン制限に収まる量を超えるとすぐに停止し、範囲の残りを読み込まずにエラーを返します。エラーは Claude に、より小さい `limit` を使用するか、単一行がそれほど大きい場合は [Grep](#grep-tool-behavior) で特定のコンテンツを検索するよう指示します。v2.1.208 より前では、Claude Code は範囲全体をメモリに読み込んでから拒否していたため、非常に長い単一行を持つファイルを読み込むとメモリ不足になる可能性がありました。

553 

554空のファイルを読み込むと、ファイルは存在するがコンテンツが空であることを示す通知が返され、最後の行を超えた `offset` はファイルの行数を示す通知を返します。v2.1.208 より前では、空のファイルを読み込むと末尾を超えた通知が返されていました。560空のファイルを読み込むと、ファイルは存在するがコンテンツが空であることを示す通知が返され、最後の行を超えた `offset` はファイルの行数を示す通知を返します。v2.1.208 より前では、空のファイルを読み込むと末尾を超えた通知が返されていました。

555 561 

556Read は平文テキスト以外のいくつかのファイルタイプを処理します。562Read は平文テキスト以外のいくつかのファイルタイプを処理します。

557 563 

558* **画像**: PNG、JPG、およびその他の画像形式は、生バイトではなく Claude が見ることができるビジュアルコンテンツとして返されます。Claude Code は大きな画像をモデルの画像サイズ制限に合わせるようにリサイズして再圧縮してから送信するため、Claude は大きなスクリーンショットのダウンスケール版を見る可能性があります。そのリサイズ後も 500KB より大きい画像は、ピクセル寸法を変更せずに品質を低下させた JPEG として再エンコードされます。Claude が大きな画像の細かいピクセルレベルの詳細を見落とした場合、ImageMagick を使用して Bash で領域をトリミングするなど、関心のある領域を最初にトリミングするよう指示してください。564* **画像**: PNG、JPG、およびその他の画像形式は、生バイトではなく Claude が見ることができるビジュアルコンテンツとして返されます。Claude Code は大きな画像をモデルの画像サイズ制限に合わせるようにリサイズして再圧縮してから送信するため、Claude は大きなスクリーンショットのダウンスケール版を見る可能性があります。そのリサイズ後も 500KB より大きい画像は、ピクセル寸法を変更せずに品質を低下させた JPEG として再エンコードされます。Claude が大きな画像の細かいピクセルレベルの詳細を見落とした場合、ImageMagick を使用して Bash で領域をトリミングするなど、関心のある領域を最初にトリミングするよう指示してください。

559* **PDF**: Claude は短い `.pdf` ファイルを全体として読み込みます。10 ページを超える PDF の場合、`pages` パラメータ(例:`"1-5"`)を使用して範囲で読み込み、一度に最大 20 ページまで読み込みます。ページ範囲の読み込みは poppler-utils の `pdftoppm` でページをレンダリングするため、macOS では `brew install poppler` でインストールし、Debian および Ubuntu では `apt-get install poppler-utils` でインストールしてください。Windows およびその他のプラットフォームでは、`pdftoppm` を `PATH` に配置する poppler ビルドをインストールしてください。これがない場合、ページ範囲の読み込みは `pdftoppm is not installed` というエラーで失敗します。565* **PDF**: Claude は短い `.pdf` ファイルを全体として読み込みます。10 ページを超える PDF の場合、`pages` パラメータ(例:`"1-5"`)を使用して範囲で読み込み、一度に最大 20 ページまで読み込みます。ページ範囲の読み込みは poppler-utils の `pdftoppm` でページをレンダリングするため、macOS では `brew install poppler` でインストールし、Debian および Ubuntu では `apt-get install poppler-utils` でインストールしてください。Windows およびその他のプラットフォームでは、`pdftoppm` を `PATH` に配置する poppler ビルドをインストールしてください。これがない場合、ページ範囲の読み込みは `pdftoppm is not installed` というエラーで失敗します。

560* **Jupyter ノートブック**: `.ipynb` ファイルは、コード、マークダウン、ビジュアライゼーションを含むすべてのセルとその出力を返します。Claude Code は 100 MB を超えるノートブックファイルの読み込みを拒否します。エラーは Claude に、Bash シェルコマンドを使用してセルのスライスなど、ノートブックの一部を読み込む方法を指示します。566* **Jupyter ノートブック**: `.ipynb` ファイルは、コード、マークダウン、ビジュアライゼーションを含むすべてのセルとその出力を返します。セルの合計が 256 KB を超えるノートブック、または[トークン制限](#large-files)を超えるノートブックは、代わりにエラーを返します。Claude Code は 100 MB を超えるノートブックファイルの読み込みを拒否します。エラーは Claude に、シェルコマンドを使用してセルのスライスなど、ノートブックの一部を読み込む方法を指示します。

561 567 

562Read はファイルのみを読み込み、ディレクトリは読み込みません。Claude は `ls` などのシェルコマンドを使用してディレクトリコンテンツをリストします。568Read はファイルのみを読み込み、ディレクトリは読み込みません。Claude は `ls` などのシェルコマンドを使用してディレクトリコンテンツをリストします。

563 569 

570<h3 id="large-files">

571 大きなファイル

572</h3>

573 

574Claude は、1 回の Read 呼び出しで返される量より大きいテキストファイルを読み込むことができます。デフォルトでは、1 回の呼び出しで返されるのは最大 25,000 トークン、または [`CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS`](/docs/ja/env-vars) に設定した値までで、256 KB を超えるファイル全体の読み込みは拒否されるため、Claude はより大きなファイルを `offset` と `limit` を使用してページ単位で読み込みます。Claude Code v2.1.296 以降では、ユーザーがファイル全体を求めた場合など必要なときに、`allow_large: true` を設定して、ファイル全体または長い行範囲を 1 回の呼び出しで読み込むこともできます。その読み込みのサイズは、デフォルトの制限ではなく、セッションの[コンテキストウィンドウ](/docs/ja/context-window)の残り容量に基づいて判断されます。画像、PDF、ノートブックには引き続きそれぞれの制限が適用されます。

575 

576読み込みがデフォルトの制限を超えた場合に Claude が受け取る内容:

577 

578* **トークン制限を超えるファイル全体**: ファイルの最初のページと、受け取ったファイルの量および `offset` と `limit` を使用してさらに読み込む方法を示す `PARTIAL view` 通知

579* **256 KB を超えるファイル全体、またはトークン制限を超える `offset` や `limit` を指定した読み込み**: `offset` と `limit` を使用して一部を読み込むか、代わりに [Grep](#grep-tool-behavior) で特定のコンテンツを検索するよう指示するエラー

580 

564<h2 id="sendfeedback-tool-behavior">581<h2 id="sendfeedback-tool-behavior">

565 SendFeedback ツールの動作582 SendFeedback ツールの動作

566</h2>583</h2>


734 Write ツールの動作751 Write ツールの動作

735</h2>752</h2>

736 753 

737Write ツールは新しいファイルを作成するか、既存のファイルを提供された完全なコンテンツで上書きします。追記やマージは行いません。754Write ツールは新しいファイルを作成するか、既存のファイルを提供された完全なコンテンツで上書きします。追記やマージは行いません。また、[非 UTF-8 ファイル](#non-utf-8-files)で説明されているように、Write はバイトをデコードできない既存ファイルも上書きし、新しいコンテンツを UTF-8 として保存します。

738 755 

739Claude が現在の会話で既存ファイルを上書きする前に読む必要があるかどうかは、モデルとファイルによって異なります。756Claude が現在の会話で既存ファイルを上書きする前に読む必要があるかどうかは、モデルとファイルによって異なります。

740 757 

741* Claude Opus 4.6、Claude Haiku 4.5、およびそれ以前のモデルは常に読み込みが必要なため、読み込まれていない既存ファイルへの Write は エラーで失敗します。758* Claude Opus 4.6、Claude Haiku 4.5、およびそれ以前のモデルは常に読み込みが必要なため、読み込まれていない既存ファイルへの Write は エラーで失敗します。

742* より新しいモデルは、[read-before-edit](#edit-tool-behavior) と同じ条件下で、このセッション中に読み込んだことのないファイルを上書きできます。読み込みが権限プロンプトを必要とせず、Read ツールが利用可能な場合です。759* より新しいモデルは、[read-before-edit](#edit-tool-behavior) と同じ条件下で、このセッション中に読み込んだことのないファイルを上書きできます。読み込みが権限プロンプトを必要とせず、Read ツールが利用可能な場合です。

743* Jupyter ノートブック、および Claude が [`PARTIAL view` 通知](#read-tool-behavior) で部分的にのみ読み込んだファイルは、すべてのモデルで読み込みが必要です。760* Jupyter ノートブック、および Claude が [`PARTIAL view` 通知](#large-files)で部分的にのみ読み込んだファイルは、すべてのモデルで読み込みが必要です。

744 761 

745この制約は新しいファイルには適用されません。v2.1.228 より前は、すべてのモデルが既存ファイルを上書きする前に読み込みが必要でした。762この制約は新しいファイルには適用されません。v2.1.228 より前は、すべてのモデルが既存ファイルを上書きする前に読み込みが必要でした。

746 763 

vs-code.md +1 −1

Details

479 479 

480Claude はブラウザタスク用に新しいタブを開き、ブラウザのログイン状態を共有するため、既にサインインしているサイトにアクセスできます。480Claude はブラウザタスク用に新しいタブを開き、ブラウザのログイン状態を共有するため、既にサインインしているサイトにアクセスできます。

481 481 

482`@browser` と入力しなくても各セッションの開始時にブラウザへ接続されるようにするには、[Chrome をデフォルトで有効にする](/docs/ja/chrome#enable-chrome-by-default) を参照してください。そのように接続されたセッションで Claude Code がブラウザ操作の前に確認を求める場合については、[VS Code セッションでの権限プロンプト](/docs/ja/chrome#permission-prompts-in-vs-code-sessions) を参照してください。482`@browser` と入力しなくても各セッションの開始時にブラウザへ接続されるようにするには、[Chrome をデフォルトで有効にする](/docs/ja/chrome#enable-chrome-by-default) を参照してください。Claude Code がブラウザ操作の前に確認を求める場合については、[VS Code セッションでの権限プロンプト](/docs/ja/chrome#permission-prompts-in-vs-code-sessions) を参照してください。

483 483 

484セットアップ手順、機能の完全なリスト、トラブルシューティングについては、[Claude Code を Chrome で使用する](/docs/ja/chrome) を参照してください。484セットアップ手順、機能の完全なリスト、トラブルシューティングについては、[Claude Code を Chrome で使用する](/docs/ja/chrome) を参照してください。

485 485