Skip to main content
Claude Code は、コードベースを理解および変更するのに役立つ組み込みツールのセットにアクセスできます。ツール名は、権限ルール、サブエージェントツールリスト、およびフックマッチャーで使用する正確な文字列です。 Claude が使用できるツールと、いつ最初に確認するかを制御するには、設定、フック、またはサブエージェントのツールリストで権限ルールを設定します。ツール名を受け入れる各場所については、権限ルールとフックでツールを設定するを参照してください。 カスタムツールを追加するには、MCP サーバーを接続します。再利用可能なプロンプトベースのワークフローで Claude を拡張するには、スキルを作成します。これは新しいツールエントリを追加するのではなく、既存の Skill ツールを通じて実行されます。
オートモードでは、分類器がほとんどの権限プロンプトを決定します。Permission required 列は、ツールがマニュアルモードでワーキングディレクトリ内のパスに対してプロンプトを表示するかどうかを示します。Read、Grep、Glob を含むファイルアクセスツールは「いいえ」とマークされていますが、ワーキングディレクトリと追加ディレクトリ外のパスに対してはプロンプトを表示します。Bash は「はい」とマークされていますが、プロンプトなしで組み込みの読み取り専用コマンドセットを実行します。

権限ルールとフックでツールを設定する

ほとんどの場合、Claude がこれらのツールをいつ使用するかを決定するため、Claude と対話するときに自分でツール名を指定する必要はありません。権限やその他の設定を定義するときにツール名を直接参照します。 これらはすべて同じルール形式 ToolName(specifier) を受け入れます。指定子はツールによって異なり、複数のツールが形式を共有しています。 ここに記載されていないツール(ExitPlanMode や ShareOnboardingGuide など)は、指定子なしの裸のツール名のみを受け入れます。 Edit(...) 許可ルールは同じパスへの読み取りアクセスも付与するため、一致する Read(...) ルールは必要ありません。Read(...) 拒否ルールは同じパス上の Edit および Write ツールもブロックします。これには新しいファイルの作成も含まれます。両方のツールが Claude が読み戻す必要があるコンテンツを変更するためです。Read 拒否チェックには、編集時に Claude Code v2.1.208 以降が必要です。書き込み時には v2.1.228 以降が必要です。 フックの matcher フィールドは、括弧で囲まれたルール形式ではなく、裸のツール名を使用します。マッチングルールについては matcher パターンを参照してください。各ツールがフック内の tool_input に渡すフィールド名については、PreToolUse 入力リファレンスを参照してください。

Agent ツールの動作

Agent ツールは、別のコンテキストウィンドウでサブエージェントを起動します。サブエージェントはそのタスクを自律的に処理し、親の会話に結果を返します。親はサブエージェントの中間的なツール呼び出しや出力を見ることはなく、最終的な結果のみを見ます。agent teams が有効な場合、name を持つ呼び出しは teammate を起動することができ、結果を返す代わりにチームメッセージを通じて報告します。 サブエージェントが実行するターン数を制限するには、subagent definition で maxTurns を設定します。サブエージェントが制限に達すると、Claude Code は返された結果を部分的な出力としてマークし、Claude は subagent を再開 して続行することができます。 同じ Agent ツールは、fork mode がオンの場所で forked subagents も起動します。フォークは新規に開始する代わりに親の会話全体を継承し、foreground に留まるケース を除いてバックグラウンドで実行され、ターミナルで権限プロンプトを表示します。このセクションの残りは、非フォーク subagent について説明します。 非フォーク subagent が使用できるツールは、subagent definition の tools フィールドと disallowedTools フィールドに依存します。
  • どちらのフィールドも設定されていない場合: subagent は subagent で利用可能なすべてのツール を継承します。
  • tools のみ: subagent はリストされたツールのみを取得します。
  • disallowedTools のみ: subagent はリストされたツール以外のすべての親ツールを取得します。
  • 両方設定されている場合: disallowedTools が優先されます。両方にリストされているツールは削除されます。
すべての場合において、解決されたセットは subagent で利用可能なツール に制限されます。subagent で利用可能でないツールは、tools にリストされている場合でも付与されることはありません。SubagentHandback ツールテーブルエントリの条件が成立する場合、Claude Code は tools から除外されているか disallowedTools にリストされている場合でも、subagent にそのツールを付与します。 subagent の tools リスト内のすべてのエントリが使用可能なツールと一致しない場合、Agent ツールは通常、subagent を起動する代わりにエントリを名前で指定するエラーを返します。Agent would be spawned with zero tools でメッセージと各エントリの修正方法を参照してください。 subagent を起動すること自体は権限の確認を促しません。Claude Code は実行時に subagent 自身のツール呼び出しを権限ルールに対してチェックします。 subagent の権限プロンプトが表示される場所は、foreground で実行されるか background で実行されるかによって異なります。Claude Code は foreground で実行されるケース を除き、デフォルトで background で subagent を実行します。
  • Foreground subagents は、メイン会話で見られるのと同じ権限プロンプトを表示し、各ツール呼び出しが発生した時点で表示されます。
  • Background subagents v2.1.186 以降、メインセッションで権限プロンプトを表示します。プロンプトはどの subagent がリクエストしているかを名前で示し、Esc キーを押すとそのツール呼び出しのみを拒否し、subagent を停止しません。v2.1.186 より前は、background subagent は権限プロンプトが表示されるツール呼び出しを自動的に拒否し、そのツールなしで続行していました。
subagent が到達できる範囲を制限 するには、まず tools フィールドを絞り込みます。例えば、Bash をリストから除外するか、設定で拒否ルールを設定します。

AskUserQuestion ツールの動作

Claude は AskUserQuestion を使用して、決定や確認が必要な場合に複数選択肢の質問をします。オプションを選択して回答するか、Other 行またはメモフィールドを通じて独自のテキストを入力してください。 独自のテキストを入力して回答する場合、Claude Code は中立的な表現で回答をリレーするため、Claude はあなたが書いたものに従い、最初に待機または説明するよう要求します。

質問の自動継続タイムアウト

質問は、あなたが回答するまで開いたままになります。回答しないままにした質問が最終的に閉じて Claude が あなたなしで続行できるようにしたい場合は、askUserQuestionTimeout 設定を 60s、5m、または 10m に設定します。これはユーザーの settings.json または /config の Question auto-continue timeout 行から設定できます。 質問がその期間入力なしで放置された後、ダイアログは自動的に閉じます。既に選択したオプションを送信し、Claude にあなたがキーボードから離れている可能性があることを伝えるため、Claude は独自の判断で進行し、後で再度質問できます。最後の 20 秒間のカウントダウンが表示されます。任意のキーを押してタイマーを再開します。フォーカスを報告するターミナルでは、ウィンドウに切り替えることでもタイマーが再開されます。 タイムアウトは AskUserQuestion の複数選択肢の質問にのみ適用されます。権限プロンプト(計画承認を含む)は、アイドル時に自動解決されることはありません。

Bash ツールの動作

Bash ツールは各コマンドを別々のプロセスで実行します。

コマンド間で保持されるもの

  • Claude がメインセッションで cd を実行すると、新しい作業ディレクトリは、プロジェクトディレクトリ内に留まっている限り、または --add-dir、/add-dir、もしくは設定の additionalDirectories で追加した追加の作業ディレクトリ内に留まっている限り、後続の Bash コマンドに引き継がれます。これには、後続のメッセージに応答して Claude が実行するコマンドが含まれます。
    • サブエージェントセッションは作業ディレクトリの変更を引き継ぎません。
    • cd がこれらのディレクトリの外に出た場合、Claude Code はプロジェクトディレクトリにリセットし、ツール結果に Shell cwd was reset to <dir> を追加します。
    • この引き継ぎを無効にして、すべての Bash コマンドがプロジェクトディレクトリで開始されるようにするには、CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 を設定します。
  • 環境変数は保持されません。1 つのコマンドで export しても、次のコマンドでは利用できません。
  • シェルスタートアップファイルで定義されたエイリアスとシェル関数は利用可能です。セッション開始時に、Claude Code は ~/.zshrc、~/.bashrc、または ~/.profile をシェルに応じてソースし、結果のエイリアス、関数、シェルオプションをキャプチャして、すべての Bash コマンドに適用します。
Claude Code を起動する前に virtualenv または conda 環境をアクティベートしてください。環境変数を Bash コマンド間で保持するには、Claude Code を起動する前に CLAUDE_ENV_FILE をシェルスクリプトに設定するか、SessionStart フックを使用して動的に設定してください。

タイムアウトと出力制限

各コマンドはタイムアウト下で実行され、Claude がそれを管理します。コマンドにデフォルトより長い時間が必要な場合、その呼び出しで timeout パラメータを渡します。ユーザーがコマンドごとのタイムアウトを設定することはありません。2 つの環境変数が Claude が取得するものを制限します。
  • BASH_DEFAULT_TIMEOUT_MS — Claude がタイムアウトを渡さない場合のデフォルト。デフォルトでは 2 分です。
  • BASH_MAX_TIMEOUT_MS — デフォルトでは、Claude が要求するものを上限で制限します。有効な上限は 2 つの値の大きい方です。デフォルトでは 10 分です。

出力制限

Claude Code はコマンドの出力をコマンド実行中に作業ファイルにストリーミングします。出力が 5 GB を超えるコマンドは強制終了されます。コマンドが完了すると、Claude Code はそのファイルから出力を読み戻します。読み戻しウィンドウは以下で説明されています。出力のどの程度が Claude にインラインで到達するかは、Claude Code が結果を失敗として扱うかどうかによって異なります。 終了コード 1 で終了するコマンドは、Claude Code がそのコマンドに対して終了コード 1 を良好な結果として認識する場合にのみ、Bash ツールの有効な結果としてカウントされます。grep、rg、egrep、fgrep、find、diff、test、[、および git diff と git grep です。終了コード 1 で終了する他のすべてのコマンドは失敗としてカウントされます。終了コード 1 が良好な情報結果である場合でも同様です。pgrep と jq -e の一致なし、cmp の異なるファイルなど。 BASH_MAX_OUTPUT_LENGTH は、Claude Code が作業ファイルからコマンド結果に読み戻す出力の文字数を設定します。デフォルトは 30,000 文字で、ハード上限は 150,000 文字です。コマンドが定期的にそのウィンドウをオーバーフローする場合、例えば詳細なビルドまたは完全なテストスイートログの場合は、これを上げてください。これを上げると読み戻しウィンドウが拡大され、これは失敗したコマンドの抜粋が切り出されるウィンドウでもあります。インラインの上限は上げません。インラインの上限を超える有効な結果は、この変数に関係なくファイルパスとプレビューとして到達します。 有効な結果の Claude が受け取るインラインの量を変更するには、代わりに bashOutputMaxChars 設定を設定してください。最大 128,000 文字まで設定できます。これはインラインの上限と読み戻しウィンドウのサイズを一緒に設定し、Claude Code は BASH_MAX_OUTPUT_LENGTH を無視します。Claude Code v2.1.261 以降が必要です。

バックグラウンドコマンド

開発サーバーやウォッチビルドなどの長時間実行プロセスの場合、Claude は run_in_background: true を設定してコマンドをバックグラウンドタスクとして開始し、実行中に作業を続けることができます。/tasks でバックグラウンドタスクをリストアップして停止します。そこから停止するか、デスクトップアプリなどの接続されたクライアントから停止すると、Claude は待機する代わりに先に進みます。サブエージェントがコマンドを開始した場合、先に進むのはそのサブエージェントです。 フォアグラウンドサブエージェントが開始したコマンドは、そのサブエージェントが最終応答を提供するときに停止します。メインの会話またはバックグラウンドサブエージェントが開始したコマンドは、最終応答の後も実行し続けます。-p フラグを使用した非対話型モードでは、バックグラウンドコマンドは実行の最終結果の直後に終了します。 コマンドがタイムアウトに達しても完了しない場合、Claude Code はそれを停止する代わりにバックグラウンドに移動します。ただし、コマンドが sleep で始まる場合は除きます。Claude はコマンドが続行している間、作業を続けます。Claude Code は移動されたコマンドに他のバックグラウンドコマンドと同じライフタイムルールを適用するため、フォアグラウンドサブエージェントのコマンドはそのサブエージェントの最終応答で終了します。CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 を設定すると、バックグラウンドタスク機能の残りと共に自動バックグラウンド化を無効にします。 バックグラウンドに移動されたコマンドの結果は、何が起こったかを示します。
  • タイムアウトが移動をトリガーする場合、結果は明示的に報告します。Command did not complete within its 120s timeout and was moved to the background。秒はタイムアウトに一致し、その後にタスク ID と出力が書き込まれているファイルのパスが続きます。
  • バックグラウンドに移動されるコマンド内の cd、pushd、popd、または chdir は決して引き継がれません。結果は Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands. と述べているため、Claude は発生しなかったディレクトリ変更に対して行動しません。

Linux と WSL のメモリ制限

Linux と WSL では、CLAUDE_CODE_TOOL_MEMORY_LIMIT を 4G などのサイズに設定して、Bash、PowerShell、およびMonitor ツールコマンドが使用できるメモリを上限に設定し、1 つの暴走ビルドがセッションの残りが必要とするメモリを奪わないようにします。Claude Code v2.1.233 以降が必要です。v2.1.246 より前では、Monitor ツールコマンドは上限の外で実行されていました。
  • サイズをバイト数として、または K、M、G、または T サフィックス付きで記述します。0、off、false、no、または none を設定して上限をオフにします。Claude Code は 4e9 などのサイズとして読み取ることができない他の値を無視します。
  • Claude Code は、各コマンドごとではなく、1 つの上限に対してセッションのすべての Bash、PowerShell、および Monitor コマンドをカウントします。
  • Claude Code はメモリ cgroup で上限を適用します。cgroup をセットアップできない場合、コマンドは上限なしで実行され、claude --debug からのデバッグログは理由を示します。
  • Claude Code が開始した最初のプロセスが上限をオンにした後、またはオフ値または cgroup セットアップの失敗のためにオフにした後、Claude Code はその結果を保持します。変更または削除された値、または固定されたセットアップを適用するには、claude を再度起動します。
  • コマンドが上限の下に留まることができない場合、カーネルはコマンドを強制終了し、その結果に上限を名前で示すものはありません。
Claude Code は、開始する他の種類のプロセスも同じ制限に対してカウントできます。CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE を上限から除外する種類のカンマ区切りリストに設定します。Claude Code はリストにない種類に上限を適用します。none に設定してすべての種類に上限を設定するか、all-new に設定して Bash、PowerShell、および Monitor ツールコマンドのみに上限を設定します。Claude Code v2.1.246 以降が必要です。名前を付けることができる種類は次のとおりです。 リストするものに関係なく、これらのルールが適用されます。
  • 不明な名前: Claude Code は認識しない名前を無視します。
  • Bash、PowerShell、および Monitor: Claude Code は、リストするものに関係なく、Bash、PowerShell、および Monitor ツールコマンドを上限の下に保ちます。
  • 変数が設定されていない: Claude Code は、Anthropic がサーバーから配信する設定から他のキャップされた種類のセットを取得し、そのセットは時間とともに変わる可能性があるため、変更されないセットが必要な場合は変数を設定します。
  • 権限ゲーティングフック: すべての種類がキャップされている場合でも、Claude Code はアクションをブロックまたは変更できるフック、およびそのようなフックが呼び出す MCP サーバーを上限から除外するため、カーネルが権限ゲーティングフックを強制終了してもブロックしていたアクションを許可することはできません。

Edit ツールの動作

Edit ツールは正確な文字列置換を実行します。old_string と new_string を受け取り、最初のものを 2 番目のものに置き換えます。正規表現やあいまい一致は使用しません。 編集を適用するには、3 つのチェックに合格する必要があります。その前に、Read 拒否ルールに一致するパスは拒否されます。新しいファイルをそこに作成することも含まれます。この拒否には Claude Code v2.1.208 以降が必要です。
  • Read-before-edit: Claude は編集前に現在の会話でファイルを読み取り、PARTIAL view 通知で短縮された読み取りはカウントされません。Claude Opus 4.6、Claude Haiku 4.5、およびそれ以前のモデルは常に読み取りが必要です。新しいモデルは、読み取りが権限プロンプトを必要としない場合、および Read ツールが利用可能な場合、読み取られていないファイルを編集できます。
  • Match: old_string はファイルに記述されたとおりに正確に表示される必要があります。空白またはインデントの 1 文字の違いでも一致を逃す可能性があります。
  • Uniqueness: old_string は正確に 1 回だけ表示される必要があります。複数回表示される場合、Claude は 1 つの出現を特定するのに十分な周囲のコンテキストを含む長い文字列を提供するか、replace_all: true を設定してすべてを置換します。
Claude が最後に読み取った後、ディスク上で変更されたファイルは、old_string が現在のコンテンツと正確かつ明確に一致し、Claude Code がプロンプトなしでファイルを読み取ることができる場合でも編集できます。ファイルの現在のコンテンツに対してマッチングすることでこれを安全に保ち、結果はファイルが他の変更を含むことを示すため、Claude は周囲のコンテンツに依存する編集の前に再度読み取ります。古い old_string や replace_all なしで複数回一致するものなど、その他の場合は、Claude は編集前にファイルを再度読み取ります。読み取られていないファイルと変更されたファイルの緩和された処理には Claude Code v2.1.208 以降が必要です。それ以前は、Claude Code は会話で読み取られていないファイルまたは読み取り後にディスク上で変更されたファイルへの編集を拒否していました。 Bash でファイルを表示することは、コマンドが cat、nl、bat、batcat、head、tail、sed -n 'X,Yp'、grep、egrep、fgrep、または rg である場合、パイプまたはリダイレクトなしで単一ファイルに対して read-before-edit 要件を満たします。パイプされた出力およびその他の Bash コマンドは read-before-edit チェックにはカウントされません。 Bash でファイルを表示することは、権限ではなく編集適格性にのみ影響します。Read と Edit の権限ルールを参照して、Read と Edit 拒否ルールがどの Bash コマンドをカバーするかを確認してください。

EndConversation ツールの動作

EndConversation ツールは現在のセッションを終了します。Claude がこれを使用するのは 2 つの状況のみです。
  • 継続的な不適切な入力に対する最後の手段として、会話をリダイレクトする試みが失敗し、前のメッセージで明確な警告を出した後
  • カスタマーが明示的にツールのデモンストレーションを見たいと要求し、セッションを終了したいことを確認した場合
一般的なフラストレーション、下品な言葉遣い、またはタスクが上手くいかないことは該当しません。有害なコンテンツのリクエストも該当しません。Claude はセッションを終了する代わりにそれらを拒否します。Claude Code は claude.ai と同じアプローチに従い、チャットの限定的なサブセットを終了することができます。 Claude がインタラクティブセッションを終了した後、セッションはロックされます。新しいプロンプトとほとんどのコマンドは Claude ended this conversation. Start a new session (or /clear) to continue. を返し、/clear、/resume、/help、/exit、および /feedback のみが実行されます。Claude Code はセッションのトランスクリプトに終了を記録するため、終了したセッションを再開するとロックが復元されます。セッションの履歴は削除されません。 非インタラクティブモードで -p フラグを使用して終了したセッションを再開するとエラーが発生し、コード 1 で終了するため、スクリプトは終了した実行を成功として読み取りません。 このツールは権限を求めるプロンプトを表示することはなく、PreToolUse フックはこのツールに対して実行されません。他のツールが残っている間は、これをブロックすることもできません。EndConversation という名前の deny and ask ルールは効果がなく、--disallowedTools も --tools リストもこれを削除できません。この除外は意図的です。このツールはセッションを終了する以外に何もしません。ファイルやデータを読み取ったり変更したりすることはなく、この種のセーフガードは、それが適用されるセッションがそれをオフにできない場合にのみ機能します。deny ルールが他のすべてのツールを削除し、"*" のように EndConversation にも一致する場合、Claude Code は allow ルールが EndConversation を明示的に指定しない限り、唯一のツールとして残すのではなく、それを削除します。EndConversation に一致しずに他のすべてのツールを削除する deny リストは、それを所定の位置に残します。 サブエージェントはこのツールを取得しません。メインの会話のツールリストを共有するバックグラウンドタスクはそれを見ますが、そこでそれを呼び出しても何も終了しません。 このツールは以下のすべてが当てはまる場合にのみ表示されます。
  • バージョン: Claude Code v2.1.213 以降。
  • モデル: セッションのモデルが Claude Opus 4.8、Claude Sonnet 5、Claude Fable 5、またはこれらのファミリーの後続バージョンです。
  • サーフェス: インタラクティブターミナルセッション。IDE の統合ターミナルの claude セッションを含みます。これは JetBrains プラグインがそれを実行する方法です。他のサーフェスはこのツールを含みません。例えば:
  • スタートアップモード: --bare セッションではありません。ベアモードはシェルとファイルツールのみをロードするため、このツールはそこに登録されません。
  • プロバイダー: Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、または Microsoft Foundry では利用できません。また、クラウドゲートウェイを通じてサインインしたセッションでも利用できません。

Glob ツールの動作

Glob ツールはファイル名パターンでファイルを検索します。Windows では、デフォルトツールセットの一部です。macOS、Linux、および WSL では、Claude Code は Glob と Grep をデフォルトツールセットから除外し、Claude は Bash ツールを通じて find と grep で検索します。Claude のシェルでは、これら 2 つのコマンドは bfs と ugrep の組み込みバージョンを実行し、検索は Bash 呼び出しとしてフック と権限ルールに到達します。 macOS、Linux、および WSL では、以下の場合に Glob と Grep ツールが戻ります。
  • セッションを開始するときに --tools または --allowedTools で Glob または Grep を指定するか、同等の Agent SDK オプションで指定します。--tools を使用すると、リストしたものが取得され、--allowedTools でいずれかのツールを指定すると両方が復元されます。設定ファイルの許可ルールはこの効果を持ちません。
  • 権限 拒否ルール、--disallowedTools フラグ、または --restricted がセッションから Bash を削除します。
  • サブエージェント が tools フィールドに Glob または Grep をリストし、Bash を除外します。リストされたツールはそのサブエージェントのみ、または --agent またはエージェント設定を通じてメインセッションエージェントとして実行される場合はセッション全体に戻ります。
Glob は再帰的なディレクトリマッチングのための ** を含む標準的な glob 構文をサポートしています。
  • **/*.js は任意の深さにあるすべての .js ファイルにマッチします
  • src/**/*.ts は src/ 以下のすべての .ts ファイルにマッチします
  • *.{json,yaml} は現在のディレクトリ内の .json および .yaml ファイルにマッチします
結果は変更時刻でソートされ、100 ファイルの上限があります。上限に達した場合、Claude は結果に切り詰めフラグを表示し、パターンを絞り込むことができます。 Glob はデフォルトでは .gitignore を尊重しないため、gitignore されたファイルと追跡されたファイルの両方を検索します。これは gitignore されたファイルをスキップする Grep とは異なります。Glob が .gitignore を尊重するようにするには、Claude Code を起動する前に CLAUDE_CODE_GLOB_NO_IGNORE=false を設定してください。 Claude Code は Glob 呼び出しの権限を決定してから、検索ディレクトリが存在するかどうかを確認します。作業ディレクトリ 外の存在しない path に対しても読み取り権限チェックを実行するため、パスの権限プロンプトはそのパスが存在することを意味しません。 null バイトを含む pattern または path 値はエラーを返し、Claude にそれを削除するよう求めます。

Grep ツールの動作

Grep ツールはファイルの内容からパターンを検索します。Glob がファイル名でファイルを検索するのに対し、Grep はそれらの内部の行を検索します。macOS、Linux、WSL では、Grep は Glob と同じ条件下ではデフォルトで存在しません。両方のツールが利用可能な場合については、Glob ツールの動作 を参照してください。 Grep は ripgrep に基づいており、POSIX grep ではなく ripgrep の正規表現構文を使用します。正規表現のメタ文字を含むパターンはエスケープが必要です。例えば、Go コードで interface{} を検索する場合、パターン interface\{\} が必要です。 ripgrep が拒否するパターン、glob、またはファイルタイプは、ripgrep の診断を含むエラーを返すため、Claude は入力を修正して再度検索できます。v2.1.208 より前では、Claude Code は拒否された入力を、検索対象のテキストが対象ファイルに存在する場合でも、エラーではなく No files found として報告していました。 3 つの出力モードが何を返すかを制御します。
  • files_with_matches: ファイルパスのみで、行の内容はありません。これがデフォルトです。
  • content: ファイルと行番号を含む一致する行。ツールの offset パラメータが一致を持つパターンの最後の一致を超えて指す場合、Grep は No entries at this offset を返すため、Claude はパターンが一致しないと結論付けるのではなく、offset を拡大またはリセットします。
  • count: ファイルごとの一致数、その後すべての一致するファイル全体の合計。合計はツールの head_limit または offset パラメータがリストされたファイルごとのエントリを切り詰める場合でも、すべての一致をカバーします。v2.1.208 より前では、合計はリストされたエントリのみを合計していました。
Claude は glob パラメータ(例:**/*.tsx)でファイルごとに結果をスコープできます。または type パラメータ(例:py または rust)で言語ごとにスコープできます。デフォルトでは、パターンは単一行内で一致します。Claude は multiline: true を設定して、行の境界を越えて一致させることができます。 Grep は .gitignore を尊重するため、gitignore されたファイルはスキップされます。gitignore されたファイルを検索するには、Claude はそのパスを直接渡します。 Claude Code は Grep 呼び出しの権限を、検索 path が存在するかどうかを確認する前に決定します。作業ディレクトリ 外の存在しない path に対して読み取り権限チェックを実行するため、パスの権限プロンプトはそのパスが存在することを意味しません。

LSP ツールの動作

LSP ツールは、実行中の言語サーバーから Claude にコード インテリジェンスを提供します。ファイルを編集するたびに、型エラーと警告を自動的に報告するため、Claude は別のビルド ステップなしで問題を修正できます。Claude はコードをナビゲートするために直接呼び出すこともできます。
  • シンボルの定義にジャンプ
  • シンボルへのすべての参照を検索
  • 位置での型情報を取得
  • ファイル内のシンボルをリスト表示
  • ワークスペース全体でシンボルを名前で検索
  • インターフェースの実装を検索
  • コール階層をトレース
Claude Code は、言語のコード インテリジェンス プラグインをインストールするまで、ツールを非アクティブに保ちます。クラウド セッションでは、Claude Code はプラグイン言語サーバーを起動しないため、LSP ツールはそこで非アクティブなままです。Claude Code は言語サーバーの設定をプラグインから取得し、サーバー バイナリは自分でインストールします。 Claude Code は、言語サーバーを起動できないファイルの各 LSP 呼び出しに対してエラー結果を返します。

Monitor ツール

Monitor ツールは Claude がバックグラウンドで何かを監視し、会話を一時停止することなく変更時に反応することができます。Claude に以下のことを依頼できます。
  • ログファイルをテールして、エラーが表示されたらフラグを立てる
  • PR または CI ジョブをポーリングして、ステータスが変更されたときに報告する
  • ディレクトリのファイル変更を監視する
  • 指定した長時間実行スクリプトからの出力を追跡する
  • WebSocket フィードに接続して、到着した各メッセージを報告する
ほとんどの監視では、Claude は小さなスクリプトを作成し、バックグラウンドで実行し、到着した各出力行を受け取ります。イベントをプッシュするサーバーの場合、Claude はスクリプトを実行する代わりに WebSocket を開くことができます。 同じセッションで作業を続けることができ、イベントが到着すると Claude が割り込みます。 Claude が開始するすべての監視には期限があります。デフォルトでは 5 分、最大 30 分、および -p で単一のプロンプトが与えられた 非対話型 実行では最大 10 分です。 期限に達すると監視が終了します。Claude は 1 つの通知を受け取るため、必要に応じて監視を再度開始できます。 Monitor をキャンセルするよう Claude に依頼するか、セッションを終了することで Monitor を停止できます。例えば /tasks から開始された Monitor を停止する subagent を停止すると、それらの Monitor も一緒に停止します。 Monitor がコマンドを実行するとき、Bash と同じ権限ルール を使用するため、Bash に設定した allow および deny パターンがここにも適用されます。auto mode がアクティブな場合、Claude Code は Monitor 自体を名前に含む allow ルール、および 削除する他のブロード allow ルール を脇に置くため、分類器は Monitor コマンドを Bash コマンドと同じ方法で確認します。 WebSocket ソース には独自の承認プロンプトがあり、分類器も auto mode で決定します。 このツールは Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では利用できません。また、DISABLE_TELEMETRY または CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC が設定されている場合も利用できません。 プラグインは Claude に開始を依頼する代わりに、プラグインがアクティブな場合に自動的に開始される Monitor を宣言できます。プラグイン Monitor を参照してください。

WebSocket ソース

WebSocket ソースには Claude Code v2.1.195 以降が必要です。
サーバーが既に WebSocket 経由でイベントをプッシュしている場合、Claude はポーリング スクリプトを作成する代わりに直接接続できます。各種のソケット アクティビティはイベントになるか、監視を終了します。
  • テキスト メッセージ: メッセージが複数行にまたがる場合でも、各メッセージが 1 つのイベントになります。
  • バイナリ メッセージ: 渡されません。Claude は [binary frame, 512 bytes] などのプレースホルダー行を受け取ります。
  • 1 MiB より大きいメッセージ: 監視が終了するため、フィルタリングされたフィードが存在する場合はそれにサブスクライブしてください。
  • ソケット クローズ: 監視が終了し、Claude はクローズ コードを受け取ります。
WebSocket 監視は command の代わりに ws 入力を取り、単一の Monitor 呼び出しは 2 つを組み合わせることはできません。ws 入力には 2 つのフィールドがあります。 timeout_ms 期限は WebSocket 監視にも適用されます。監視は期限で終了し、TaskStop は早期にキャンセルします。 WebSocket を開くと承認を求めるプロンプトが表示されます。auto mode では分類器が代わりに決定します。プロンプトは同じホストの将来のプロンプトをスキップするオプションを提供しません。 Claude Code は、ホスト名が 1 つに解決される場合を含む、プライベート、リンク ローカル、またはクラウド メタデータ アドレスを指すURL を拒否します。また、sandbox.network.deniedDomains 内のホストも拒否し、マネージド設定で allowManagedDomainsOnly が設定されている場合、マネージド許可リスト外のホストも拒否します。

NotebookEdit ツールの動作

NotebookEdit は、Jupyter ノートブックを 1 回に 1 セル、cell_id でセルをターゲットにして変更します。Editがプレーン ファイルで行うようにノートブック全体で文字列置換を実行しません。 3 つの編集モードは、ターゲット セルに何が起こるかを制御します:
  • replace:セルのソースを上書きします。これがデフォルトです。
  • insert:ターゲットの後に新しいセルを追加します。cell_id がない場合、新しいセルはノートブックの開始に移動します。cell_type を code または markdown に設定する必要があります。
  • delete:ターゲット セルを削除します。
権限ルールは Edit(...) パス形式を使用します。Edit(notebooks/**) のようなルールは、そのディレクトリ内のファイルに対する NotebookEdit 呼び出しをカバーします。

PowerShell ツール

PowerShell ツールを使用すると、Claude は PowerShell コマンドをネイティブに実行できます。Windows では、これはコマンドが Git Bash を経由するのではなく PowerShell で実行されることを意味します。ツールが利用可能になる方法はプラットフォームによって異なります。
  • Git Bash がない Windows: ツールは自動的に有効になります。
  • Git Bash がインストールされている Windows: ツールは claude.ai と Console アカウントではデフォルトで有効です。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry セッションで有効にするには CLAUDE_CODE_USE_POWERSHELL_TOOL=1 を設定するか、無効にするには 0 を設定します。
  • Linux、macOS、WSL: ツールはオプトインです。
PreToolUse フックは、Bash ツールと同じフィールドを持つ tool_input.command でツールのコマンド文字列を受け取ります。 シェルコマンドを検査するフックで Bash|PowerShell と一致させます。PowerShell フック入力セクションは、Bash だけと一致させるだけでは十分でない理由を説明しています。

PowerShell ツールを有効にする

環境または settings.json で CLAUDE_CODE_USE_POWERSHELL_TOOL=1 を設定します。
Windows では、ツールを無効にするために変数を 0 に設定します。Linux、macOS、WSL では、ツールは PowerShell 7 以降が必要です。pwsh をインストールして、PATH に含まれていることを確認します。 Windows では、Claude Code は PowerShell 7 以降の pwsh.exe を自動検出し、PowerShell 5.1 の powershell.exe にフォールバックします。ツールが有効な場合、Claude は PowerShell をプライマリシェルとして扱います。Git Bash がインストールされている場合、Bash ツールは POSIX スクリプト用に利用可能なままです。 Claude Code は PowerShell をプロセススコープのみで -ExecutionPolicy Bypass で起動するため、.ps1 スクリプトとモジュールインポートは、マシンのポリシーを変更することなく、デフォルトの Windows インストールで機能します。プロセススコープのバイパスは、グループポリシーの MachinePolicy または UserPolicy をオーバーライドしないため、エンタープライズポリシーは引き続き適用されます。マシンの有効な実行ポリシーを尊重するには、CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1 を設定します。

設定、フック、スキルでのシェル選択

3 つの追加設定は PowerShell が使用される場所を制御します。
  • settings.json の "defaultShell": "powershell": インタラクティブな ! コマンドを PowerShell を経由してルーティングします。PowerShell ツールが有効になっている必要があります。
  • 個別のコマンドフックの "shell": "powershell": そのフックを PowerShell で実行します。フックは PowerShell を直接起動するため、CLAUDE_CODE_USE_POWERSHELL_TOOL に関係なく機能します。
  • スキルフロントマターの shell: powershell: !`command` ブロックを PowerShell で実行します。PowerShell ツールが有効になっている必要があります。
Bash ツールセクションで説明されているのと同じメインセッションの作業ディレクトリリセット動作が PowerShell コマンドに適用されます。これには CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 環境変数が含まれます。 v2.1.196 以降、grep、rg、egrep、fgrep、findstr、git grep からの終了コード 1 は一致がないことを意味します。git diff からの終了コード 1 は差分が存在することを意味します。どちらの結果も Claude にコマンド失敗として報告されません。robocopy の場合、終了コード 0 から 7 は情報結果です。コピーされたファイルや検出された追加ファイルなどです。終了コード 8 以上は失敗としてカウントされます。

Windows エンコーディングと終了コード

Windows では、以下の PowerShell エンコーディングと終了コード動作には Claude Code v2.1.214 以降が必要です。
  • > と >> でのリダイレクトは PowerShell 5.1 で UTF-8 ファイルを書き込みます
  • Claude Code はネイティブコマンドの標準入力にパイプされたテキストを UTF-8 としてエンコードします
  • Claude Code は ANSI エスケープシーケンスなしでエラー出力をキャプチャします
  • 子プロセスが標準入力で待機するコマンドは、ハングするのではなくファイルの終わりを受け取ります
  • where.exe からの終了コード 1 は一致がないことを意味し、fc.exe と diff.exe からはファイルが異なることを意味するため、コマンドが出力を生成する場合、Claude Code はその終了コードをコマンドエラーではなく有効な否定的な回答として扱います。Claude Code は where.exe /Q または $null へのリダイレクトなどのサイレント形式を終了コード 1 での失敗として報告します
v2.1.214 より前では、PowerShell 5.1 の > は UTF-16LE ファイルを書き込み、非 ASCII パイプ入力は ? として到着し、Python スクリプトは非 ASCII 文字を出力するときに UnicodeEncodeError でクラッシュする可能性がありました。

プレビューの制限事項

PowerShell ツールには、プレビュー中に以下の既知の制限事項があります。
  • PowerShell プロファイルは読み込まれません
  • Windows では、サンドボックス化はサポートされていません

Read ツールの動作

Read ツールはファイルパスを受け取り、行番号付きでコンテンツを返します。Claude は常に絶対パスを渡すように指示されています。 デフォルトでは、Read はファイルの開始から返します。ファイル全体の読み込みがトークン制限を超える場合、Read は最初のページを PARTIAL view 通知とともに返し、Claude が受け取ったファイルの量と offset および limit を使用してさらに読み込む方法を伝えます。明示的な offset または limit を渡す読み込みがトークン制限を超える場合、エラーが返されます。 明示的な limit を指定した読み込みは、選択された行がトークン制限に収まる量を超えるとすぐに停止し、範囲の残りを読み込まずにエラーを返します。エラーは Claude に、より小さい limit を使用するか、単一行がそれほど大きい場合は Grep で特定のコンテンツを検索するよう指示します。v2.1.208 より前では、Claude Code は範囲全体をメモリに読み込んでから拒否していたため、非常に長い単一行を持つファイルを読み込むとメモリ不足になる可能性がありました。 空のファイルを読み込むと、ファイルは存在するがコンテンツが空であることを示す通知が返され、最後の行を超えた offset はファイルの行数を示す通知を返します。v2.1.208 より前では、空のファイルを読み込むと末尾を超えた通知が返されていました。 Read は平文テキスト以外のいくつかのファイルタイプを処理します。
  • 画像: PNG、JPG、およびその他の画像形式は、生バイトではなく Claude が見ることができるビジュアルコンテンツとして返されます。Claude Code は大きな画像をモデルの画像サイズ制限に合わせるようにリサイズして再圧縮してから送信するため、Claude は大きなスクリーンショットのダウンスケール版を見る可能性があります。v2.1.196 以降、そのリサイズ後も 500KB より大きい画像は、ピクセル寸法を変更せずに品質を低下させた JPEG として再エンコードされます。Claude が大きな画像の細かいピクセルレベルの詳細を見落とした場合、ImageMagick を使用して Bash で領域をトリミングするなど、関心のある領域を最初にトリミングするよう指示してください。
  • 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 というエラーで失敗します。
  • Jupyter ノートブック: .ipynb ファイルは、コード、マークダウン、ビジュアライゼーションを含むすべてのセルとその出力を返します。Claude Code は 100 MB を超えるノートブックファイルの読み込みを拒否します。エラーは Claude に、Bash シェルコマンドを使用してセルのスライスなど、ノートブックの一部を読み込む方法を指示します。
Read はファイルのみを読み込み、ディレクトリは読み込みません。Claude は ls などのシェルコマンドを使用してディレクトリコンテンツをリストします。

SendFeedback ツールの動作

Claude が作成したフィードバックは、Claude Code に関する Claude が作成するフィードバックレポートです。Claude Code v2.1.238 以降が必要です。Claude Code は各ドラフトをマシン上の ~/.claude/feedback/drafts/ に保存し、送信するまで何も Anthropic に到達しません。Claude は以下の場合に SendFeedback ツールでドラフトを作成します。
  • ツールまたはコマンドが失敗し続ける
  • 要求されたことに対応できない
  • 自分が犯した間違いを指摘するか、それに気付く
  • フィードバックを提出するよう要求する

Claude がドラフトを作成するときに表示される内容

Claude がドラフトをキューに入れた後、プロンプトの上にドラフトのタイトルが表示されたカードが表示されます。1 を押してドラフトを確認し、2 を 2 回押して記述されたとおりに送信するか、0 を押して却下します。却下されたドラフトはキューに残ります。カードを却下した後、Claude Code は Claude が作成したフィードバックをオフにするかどうかを尋ねます。2 回拒否すると、質問が停止します。 デフォルトでは、セッションで最大 3 つのカードが表示されます。Anthropic はリリースなしでサーバーからその制限を調整できます。制限後、および feedbackDrafts を quiet に設定するたびに、プロンプトフッターにキューに入れられたドラフトの数のみが表示されます。

ドラフトを確認して編集する

引数なしで /feedback を実行してキューを開きます。これにより、カードを却下したセッションや表示されなかったセッションを含む、すべてのセッションからキューに入れられたすべてのドラフトが一覧表示されます。ドラフトを選択して確認用に開くと、以下を実行できます。
  • タイトル、領域、詳細を編集する
  • トランスクリプトを送信 を yes または no に設定します。Claude がドラフトをキューに入れたセッションからのトランスクリプトがまだ利用可能な場合、yes で開始され、その会話を Anthropic に送信します。no はレポートのみを送信します
  • ドラフトを送信するか、破棄するか、後で使用するためにキューに残す
代わりに自分でレポートを作成するには、w を押して標準フィードバックダイアログを開きます。その後のテキストを含む /feedback と /bug がそのダイアログを直接開きます。

ドラフトを送信する

ドラフトを送信すると、Claude Code は /feedback レポートと同じ方法で送信し、同じ 保持期間 を使用し、マシンからドラフトを削除します。カードから送信すると、✓ Sent が表示されます。キューから送信すると、受信 ID で閉じます。 レポートには以下が含まれます。
  • タイトル、領域、詳細
  • Claude Code バージョン、オペレーティングシステム、モデルなどの環境情報
  • 最近の API リクエストの ID
  • 確認画面で トランスクリプトを送信 を yes のままにした場合の会話トランスクリプト。カードから送信する場合、トランスクリプトは含まれません
Claude Code はローカルドラフトに作業ディレクトリを保持してトランスクリプトを見つけることができ、ディレクトリは送信しません。 ゼロデータ保持を使用する組織 では、Claude Code は /feedback と同様にツールを除外します。そのような組織のセッションがまだツールを提供している場合、ドラフトはマシンに残り、送信は Feedback collection is not available for organizations with custom data retention policies. で失敗します。

ドラフトを破棄または保持する

ドラフトを破棄すると、Claude Code はマシンからそれを削除します。キューに残すドラフトは 30 日後、または cleanupPeriodDays がより短い場合はその後に期限切れになります。キューはすべてのセッション全体で 10 個のドラフトを保持し、Claude が 11 番目をキューに入れると、Claude Code は最も古いものを削除します。セッションからのドラフトがまだキューに入っている状態で /exit を実行すると、Claude Code は終了する前にそれらを確認するか破棄するかを尋ねます。

Claude が作成したフィードバックをオフにする

/config で Claude が作成したフィードバック を off に設定します。これにより feedbackDrafts 設定が書き込まれるか、1 つのセッションに対して CLAUDE_CODE_SEND_FEEDBACK=0 を設定します。どちらでも、Claude はドラフトをキューに入れることができません。カードなしでドラフトを続行するには、代わりに feedbackDrafts を quiet に設定します。管理者は 管理設定 で feedbackDrafts を設定でき、これは独自の設定よりも優先されます。

Claude が作成したフィードバックなしのセッション

Claude Code には、Claude API を使用する独自のマシン上のインタラクティブターミナルセッションにツールが含まれています。以下からツールを除外します。

Task ツールの利用可能性

Task トラッキングツール(TaskCreate、TaskGet、TaskUpdate、TaskList、および TodoWrite)は、デフォルトでは Claude 3.x モデル、Opus 4 から 4.7、Sonnet 4 から 4.6、および Haiku 4.5 でのみ利用可能です。ツールが利用可能な場所では、4 つの Task ツール、または CLAUDE_CODE_ENABLE_TASKS=0 を設定した場合は TodoWrite が提供されます。 他のすべてのモデルでは、Claude Code はオプトインしない限りツールを除外します。Claude Code が認識しないモデル ID(LLM ゲートウェイ を通じて提供されるカスタムモデル名など)にも同じことが当てはまります。新しいモデルでは、Claude は書かれたチェックリストなしで複数ステップの作業を追跡でき、ツールの定義とリマインダーはコンテキストを占有します。ツールがない場合、Claude は作業中にタスクリストに何も追加しません。 デフォルトではこれらのツールを持たないモデルでこれらのツールを使用したい場合は、以下のいずれかを実行してください:
  • Claude Code を開始する前に CLAUDE_CODE_ENABLE_TODO_TOOLS=1 をエクスポートします。例えば CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude。Claude Code はすべてのモデルとすべてのプロバイダーで同じツールを提供します
  • --allowedTools で、例えば claude --allowedTools TaskCreate のようにツールの 1 つを指定します
  • --tools でツールをリストします。これはセッションの組み込みツールを指定されたものに制限します。使用する他の組み込みツールと一緒に必要なツールを含めます
  • Agent SDK では、allowedTools と tools オプション は 2 つのフラグと同じように機能します
バックグラウンドセッション およびウェブ上の Claude Code では、Claude Code はリストされているかどうかに関わらず、すべてのモデルで同じツールを提供します。 Claude Code はサブエージェントにツールを提供するのは、セッションがそれらを持っている場合のみです。サブエージェントが異なるモデルを実行している場合でも同じです。プロセス内のエージェントチーム メンバーはセッションと同じ方法で従いますが、独自の分割ペイン にいるメンバーは別の Claude Code プロセスとして実行されるため、独自のモデルが決定します。Task ツールがない場合、エージェントは共有タスクリスト の代わりにメッセージを通じてチームと調整します。 ここで説明されているデフォルトセットは Claude Code v2.1.268 以降に適用されます。

WebFetch ツールの動作

WebFetch は URL とそこから抽出する内容を説明するプロンプトを受け取ります。ページをフェッチし、サーバーが HTML を返した場合はレスポンスを Markdown に変換し、小型で高速なモデルを使用してコンテンツに対してプロンプトを実行します。ほとんどのフェッチでは、Claude はそのモデルの回答を受け取り、生のページではありません。変換ステップは設定できません。 これにより WebFetch は設計上、情報損失が発生します。抽出プロンプトが Claude に到達する内容を決定するため、ページがあるものについて言及していないという結果は、単にプロンプトがそれについて尋ねなかったことを意味するだけかもしれません。Claude に別のより具体的なプロンプトでもう一度フェッチするよう依頼するか、Bash 経由で curl を使用して未処理のページを取得してください。 Claude が受け取るレスポンスを形作るいくつかの動作があります。
  • WebFetch は localhost およびドットのない他のホスト名(ベアなイントラネット名など)をリクエストを行う前に拒否します。返されるエラー は Claude に Bash 経由で curl を使用してローカルサーバーに到達するよう指示します。
  • HTTP URL は自動的に HTTPS にアップグレードされます。
  • 大きなページは処理前に固定文字数制限に切り詰められます。
  • WebFetch はデフォルトで各レスポンスを 15 分間キャッシュするため、同じ URL の繰り返しフェッチは迅速に返されます。Claude Code v2.1.233 以降では、CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS を設定して、WebFetch が各レスポンスを保持する期間を変更できます。
  • ページが 5 分以内(WebFetch が従うリダイレクトを含む)にダウンロードを完了しない場合、デッドラインエラーで失敗します。Claude Code v2.1.268 以降では、CLAUDE_CODE_WEBFETCH_DEADLINE_MS を設定して制限を変更するか、0 に設定して削除できます。
  • URL が別のホストにリダイレクトされる場合、WebFetch はそれに従う代わりに、元の URL とリダイレクト先を名前で示すテキスト結果を返します。その後 Claude は 2 番目の WebFetch 呼び出しで新しい URL をフェッチします。
  • 抽出ステップが過負荷の API にヒットした場合、Claude Code はバックオフで再試行します。それでも失敗するフェッチはエラー結果を返します。v2.1.212 より前では、API エラーテキストが抽出されたページコンテンツであるかのように Claude に到達する可能性がありました。
Manual および acceptEdits 権限モード では、WebFetch はフェッチ前にプロンプトを表示します。ただし、権限ルール で既に許可または拒否されているドメインと、プロンプトなしでフェッチされる事前承認済みドキュメンテーションドメインの組み込みセットは例外です。ルールが許可するものが何であれ、フェッチは最初に WebFetch ドメイン安全性チェック に合格する必要があります。そのセクションではチェックが送信する内容とそれをスキップする設定について説明しています。プロンプトは 3 つのオプションを提供します。
  • Yes: このフェッチのみを承認します。次の WebFetch 呼び出しは、同じドメインであってもプロンプトを再度表示します。
  • Yes, and don’t ask again for <domain>: フェッチを承認し、そのドメインの WebFetch(domain:...) 許可ルールをそのリポジトリの .claude/settings.local.json に保存します。保存された承認の永続化方法 を参照してください。組織が allowManagedPermissionRulesOnly を設定している場合、Claude Code はこのオプションを非表示にします。
  • No, and tell Claude what to do differently: フェッチを拒否します。
プロンプトなしで事前にドメインを許可するには、WebFetch(domain:example.com) のような許可ルールを追加します。WebFetch(domain:*) はすべてのドメインを許可します。auto および bypassPermissions 権限モード はプロンプトをスキップします。ただし、明示的な ask ルールが一致するドメインは除きます。 deny、ask、または allow の明示的な WebFetch(domain:...) ルールは事前承認セットより優先されるため、事前承認されたドメインをブロックするか、そのドメインに対してプロンプトを要求できます。 WebFetch は Claude-User で始まる User-Agent ヘッダーと、コンテンツネゴシエーションをサポートするサーバーが Markdown を直接返すことができるように HTML より Markdown を優先する Accept ヘッダーを設定します。 サンドボックス化されたコマンドは WebFetch の事前承認されたドキュメンテーションドメインの組み込みセットを継承しません。サンドボックス化されたコマンドがプロンプトなしでドメインに到達できるようにするには、ドメインを allowedDomains に追加するか、WebFetch(domain:...) ルールで許可します。サンドボックスもこれを尊重します。WebFetch は代わりにサンドボックス許可リストを読み取ることはないため、ドメインをサンドボックスまたは組織ネットワーク許可リストに追加しても、WebFetch がそれについてプロンプトを表示するのを止めることはできません。

WebSearch ツールの動作

WebSearch は Anthropic の ウェブ検索 バックエンドに対してクエリを実行し、結果のタイトルと URL を返します。結果ページを取得することはありません。Claude が検索結果で見つけたページを読むには、WebFetch でフォローアップします。 このツールは呼び出しごとに最大 8 つのバックエンド検索を実行でき、結果を返す前に内部で検索を絞り込みます。Claude は allowed_domains で結果を特定のホストのみに含めるようにスコープできます。または blocked_domains で結果を除外できます。この 2 つのリストは 1 回の呼び出しで組み合わせることはできません。 検索リクエストが過負荷状態の API にヒットした場合、Claude Code はバックオフで再試行します。それでも失敗した呼び出しはエラー結果を返します。v2.1.212 より前では、API エラーテキストが検索結果のように Claude に到達する可能性がありました。 WebSearch 権限ルールは指定子を取りません。allow または deny の単なる WebSearch エントリが唯一の形式です。 検索バックエンドは設定不可です。別のプロバイダーで検索するには、検索ツールを公開する MCP サーバー を追加します。
WebSearch は Claude API と AWS 上の Claude Platform で利用可能です。Microsoft Foundry では Anthropic でホストされているデプロイメント が必要です。Azure でホストされているデプロイメントはサーバー側ツールをサポートしていないため、WebSearch 呼び出しは失敗します。Google Cloud の Agent Platform では Claude 4 以降のモデル(Opus、Sonnet、Haiku を含む)で動作します。Amazon Bedrock はサーバー側ウェブ検索ツールを公開していません。

セッション検索制限

セッションは最大 200 回の WebSearch 呼び出しを実行できます。メイン会話とそれが生成するすべての サブエージェント 全体でカウントされるため、並列リサーチ ファンアウトによって行われた検索は同じ制限にカウントされます。この制限には Claude Code v2.1.212 以降が必要です。Claude が制限に達すると、さらなる呼び出しは、再試行を促すエラーではなく、既に収集した情報で続行するよう Claude に指示する通知を返します。通知は表示されません。キャップされた呼び出しは会話に何もしなかった検索として表示され、Claude がさらに検索が必要な場合、通知は制限を引き上げるよう求めるよう指示します。 CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION 環境変数を設定して上限を変更します。正の整数を受け入れるため、上限を引き上げることはできますが、オフにすることはできません。/clear を実行するとカウントがリセットされます。ワークフローの実行など、サブエージェント を生成できる作業がクリア後も存在する場合、カウントは代わりに引き継がれます。

Write ツールの動作

Write ツールは新しいファイルを作成するか、既存のファイルを提供された完全なコンテンツで上書きします。追記やマージは行いません。 Claude が現在の会話で既存ファイルを上書きする前に読む必要があるかどうかは、モデルとファイルによって異なります。
  • Claude Opus 4.6、Claude Haiku 4.5、およびそれ以前のモデルは常に読み込みが必要なため、読み込まれていない既存ファイルへの Write は エラーで失敗します。
  • より新しいモデルは、read-before-edit と同じ条件下で、このセッション中に読み込んだことのないファイルを上書きできます。読み込みが権限プロンプトを必要とせず、Read ツールが利用可能な場合です。
  • Jupyter ノートブック、および Claude が PARTIAL view 通知 で部分的にのみ読み込んだファイルは、すべてのモデルで読み込みが必要です。
この制約は新しいファイルには適用されません。v2.1.228 より前は、すべてのモデルが既存ファイルを上書きする前に読み込みが必要でした。 Bash でファイルを表示することも、Edit ツールの動作 で説明されている同じルールの下でこの要件を満たします。 既存ファイルへの部分的な変更の場合、Claude は Write ではなく Edit を使用します。

利用可能なツールを確認する

正確なツール セットは、プロバイダー、プラットフォーム、および設定によって異なります。実行中のセッションで読み込まれているものを確認するには、Claude に直接尋ねます:
Claude は会話形式の概要を提供します。正確な MCP ツール名については、/mcp を実行します。
advisor tool は、Claude Code が実装するツールではなく、API が実行する server tool です。権限ルールやフック マッチャーで参照できる名前はありません。

関連項目

  • MCP servers:外部サーバーを接続してカスタム ツールを追加する
  • 権限:権限システム、ルール構文、ツール固有のパターン
  • Subagents:subagent のツール アクセスを構成する
  • フック:ツール実行の前後にカスタム コマンドを実行する