SpyBara
Go Premium

Documentation 2026-05-02 18:14 UTC to 2026-05-04 22:58 UTC

99 files changed +47,195 −0. View all changes and history on the product overview
2026
Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58

admin-setup.md +132 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 組織向けに Claude Code をセットアップする

6 

7> Claude Code を展開する管理者向けの決定マップ。API プロバイダー、マネージド設定、ポリシー実行、使用状況監視、データ処理をカバーしています。

8 

9Claude Code は、ローカル開発者設定よりも優先されるマネージド設定を通じて組織ポリシーを実行します。これらの設定は Claude 管理コンソール、モバイルデバイス管理(MDM)システム、またはディスク上のファイルから配信します。設定は Claude が到達できるツール、コマンド、サーバー、ネットワーク宛先を制御します。

10 

11このページでは、展開の決定を順番に説明します。各行は以下のセクションと、その領域の参照ページにリンクしています。

12 

13<Note>

14 SSO、SCIM プロビジョニング、シート割り当ては Claude アカウントレベルで設定されます。これらの手順については、[Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide) と [シート割り当て](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan) を参照してください。

15</Note>

16 

17| 決定 | 選択内容 | 参照 |

18| :-------------------------------------------------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------ |

19| [API プロバイダーを選択する](#choose-your-api-provider) | Claude Code が認証される場所と課金方法 | [Authentication](/ja/authentication)、[Bedrock](/ja/amazon-bedrock)、[Vertex AI](/ja/google-vertex-ai)、[Foundry](/ja/microsoft-foundry) |

20| [設定がデバイスに到達する方法を決定する](#decide-how-settings-reach-devices) | マネージドポリシーが開発者マシンに到達する方法 | [Server-managed settings](/ja/server-managed-settings)、[Settings files](/ja/settings#settings-files) |

21| [実行する内容を決定する](#decide-what-to-enforce) | どのツール、コマンド、統合が許可されるか | [Permissions](/ja/permissions)、[Sandboxing](/ja/sandboxing) |

22| [使用状況の可視性をセットアップする](#set-up-usage-visibility) | 支出と採用を追跡する方法 | [Analytics](/ja/analytics)、[Monitoring](/ja/monitoring-usage)、[Costs](/ja/costs) |

23| [データ処理を確認する](#review-data-handling) | データ保持とコンプライアンス体制 | [Data usage](/ja/data-usage)、[Security](/ja/security) |

24 

25## API プロバイダーを選択する

26 

27Claude Code は複数の API プロバイダーのいずれかを通じて Claude に接続します。選択は課金、認証、継承するコンプライアンス体制に影響します。

28 

29| プロバイダー | 選択する場合 |

30| :---------------------------- | :----------------------------------------------------------------------------------------- |

31| Claude for Teams / Enterprise | Claude Code と claude.ai を 1 つのシート単位のサブスクリプションで実行したい場合。実行するインフラストラクチャは不要です。これがデフォルトの推奨事項です。 |

32| Claude Console | API ファーストまたは従量課金を希望する場合 |

33| Amazon Bedrock | 既存の AWS コンプライアンス制御と課金を継承したい場合 |

34| Google Vertex AI | 既存の GCP コンプライアンス制御と課金を継承したい場合 |

35| Microsoft Foundry | 既存の Azure コンプライアンス制御と課金を継承したい場合 |

36 

37認証、リージョン、機能パリティをカバーする完全なプロバイダー比較については、[エンタープライズ展開概要](/ja/third-party-integrations) を参照してください。各プロバイダーの認証セットアップは [Authentication](/ja/authentication) にあります。

38 

39[ネットワーク設定](/ja/network-config) のプロキシとファイアウォール要件は、プロバイダーに関係なく適用されます。複数のプロバイダーの前に単一のエンドポイントを配置したい場合、または集中化されたリクエストログを記録したい場合は、[LLM gateway](/ja/llm-gateway) を参照してください。

40 

41## 設定がデバイスに到達する方法を決定する

42 

43マネージド設定は、ローカル開発者設定よりも優先されるポリシーを定義します。Claude Code は 4 つの場所で設定を探し、特定のデバイスで最初に見つかったものを使用します。

44 

45| メカニズム | 配信 | 優先度 | プラットフォーム |

46| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-- | :------------ |

47| Server-managed | Claude.ai 管理コンソール | 最高 | すべて |

48| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | 高 | macOS、Windows |

49| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux と WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | 中 | すべて |

50| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | 最低 | Windows のみ |

51 

52Server-managed 設定はデバイスが認証されるときに到達し、アクティブなセッション中は 1 時間ごとに更新されます。エンドポイントインフラストラクチャは不要です。Claude for Teams または Enterprise プランが必要なため、他のプロバイダーでの展開は、代わりにファイルベースまたは OS レベルのメカニズムのいずれかが必要です。

53 

54組織が複数のプロバイダーを混在させている場合、Claude.ai ユーザー向けに [server-managed settings](/ja/server-managed-settings) を設定し、他のユーザーがマネージドポリシーを受け取るように [ファイルベースまたは plist/registry フォールバック](/ja/settings#settings-files) を設定してください。

55 

56plist と HKLM レジストリの場所は任意のプロバイダーで機能し、書き込みに管理者権限が必要なため、改ざんに強いです。HKCU の Windows ユーザーレジストリは昇格なしで書き込み可能なため、実行チャネルではなく便利なデフォルトとして扱ってください。

57 

58デフォルトでは WSL は `/etc/claude-code` の Linux ファイルパスのみを読み取ります。同じマシン上の WSL に Windows レジストリと `C:\Program Files\ClaudeCode` ポリシーを拡張するには、これらの管理者のみが使用できる Windows ソースのいずれかで [`wslInheritsWindowsSettings: true`](/ja/settings#available-settings) を設定してください。

59 

60どのメカニズムを選択しても、マネージド値はユーザーおよびプロジェクト設定よりも優先されます。`permissions.allow` や `permissions.deny` などの配列設定は、すべてのソースからのエントリをマージするため、開発者はマネージドリストを拡張できますが、削除することはできません。

61 

62[Server-managed settings](/ja/server-managed-settings) と [Settings files and precedence](/ja/settings#settings-files) を参照してください。

63 

64## 実行する内容を決定する

65 

66マネージド設定は、ツール、サンドボックス実行、MCP サーバーとプラグインソースへのアクセスをロックダウンし、実行されるフックを制御できます。各行は、それを駆動する設定キーを持つ制御サーフェスです。

67 

68| 制御 | 機能 | キー設定 |

69| :------------------------------------------------------------------------------------- | :-------------------------------------------------------------- | :--------------------------------------------------------------------------- |

70| [Permission rules](/ja/permissions) | 特定のツールとコマンドを許可、確認、または拒否する | `permissions.allow`、`permissions.deny` |

71| [Permission lockdown](/ja/permissions#managed-only-settings) | マネージドパーミッションルールのみが適用される。`--dangerously-skip-permissions` を無効化する | `allowManagedPermissionRulesOnly`、`permissions.disableBypassPermissionsMode` |

72| [Sandboxing](/ja/sandboxing) | ドメイン許可リスト付きの OS レベルのファイルシステムとネットワーク分離 | `sandbox.enabled`、`sandbox.network.allowedDomains` |

73| [Managed policy CLAUDE.md](/ja/memory#deploy-organization-wide-claude-md) | すべてのセッションで読み込まれる組織全体の指示。除外できない | マネージドポリシーパスのファイル |

74| [MCP server control](/ja/mcp#managed-mcp-configuration) | ユーザーが追加または接続できる MCP サーバーを制限する | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly` |

75| [Plugin marketplace control](/ja/plugin-marketplaces#managed-marketplace-restrictions) | ユーザーが追加およびインストールできるマーケットプレイスソースを制限する | `strictKnownMarketplaces`、`blockedMarketplaces` |

76| [Hook restrictions](/ja/settings#hook-configuration) | マネージドフックのみが読み込まれる。HTTP フック URL を制限する | `allowManagedHooksOnly`、`allowedHttpHookUrls` |

77| [Version floor](/ja/settings) | 自動更新が組織全体の最小値より下にインストールされるのを防ぐ | `minimumVersion` |

78 

79パーミッションルールとサンドボックスは異なるレイヤーをカバーします。WebFetch を拒否すると Claude の fetch ツールがブロックされますが、Bash が許可されている場合、`curl` と `wget` は依然として任意の URL に到達できます。サンドボックスは OS レベルで実行されるネットワークドメイン許可リストでそのギャップを閉じます。

80 

81これらの制御が防御する脅威モデルについては、[Security](/ja/security) を参照してください。

82 

83## 使用状況の可視性をセットアップする

84 

85必要なレポート内容に基づいて監視を選択してください。

86 

87| 機能 | 取得内容 | 利用可能性 | 開始場所 |

88| :------------------ | :----------------------------------- | :----------- | :--------------------------------------- |

89| Usage monitoring | セッション、ツール、トークンの OpenTelemetry エクスポート | すべてのプロバイダー | [Monitoring usage](/ja/monitoring-usage) |

90| Analytics dashboard | ユーザーごとのメトリクス、貢献度追跡、リーダーボード | Anthropic のみ | [Analytics](/ja/analytics) |

91| Cost tracking | 支出制限、レート制限、使用状況の属性 | Anthropic のみ | [Costs](/ja/costs) |

92 

93クラウドプロバイダーは AWS Cost Explorer、GCP Billing、または Azure Cost Management を通じて支出を公開します。Claude for Teams および Enterprise プランには、[claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) での使用状況ダッシュボードが含まれています。

94 

95## データ処理を確認する

96 

97Team、Enterprise、Claude API、およびクラウドプロバイダープランでは、Anthropic はコードまたはプロンプトでモデルをトレーニングしません。API プロバイダーが保持とコンプライアンス体制を決定します。

98 

99| トピック | 知っておくべきこと | 開始場所 |

100| :----------------------- | :--------------------------------------------- | :--------------------------------------------- |

101| Data usage policy | Anthropic が収集する内容、保持期間、トレーニングに使用されない内容 | [Data usage](/ja/data-usage) |

102| Zero Data Retention(ZDR) | リクエスト完了後は何も保存されません。Claude for Enterprise で利用可能 | [Zero data retention](/ja/zero-data-retention) |

103| Security architecture | ネットワークモデル、暗号化、認証、監査証跡 | [Security](/ja/security) |

104 

105リクエストレベルの監査ログが必要な場合、またはデータの機密性によってトラフィックをルーティングしたい場合は、開発者とプロバイダーの間に [LLM gateway](/ja/llm-gateway) を配置してください。規制要件と認定については、[Legal and compliance](/ja/legal-and-compliance) を参照してください。

106 

107## 検証とオンボード

108 

109マネージド設定を設定した後、開発者に Claude Code 内で `/status` を実行させてください。出力には `Enterprise managed settings` で始まる行が含まれ、その後に括弧内のソースが続きます。`(remote)`、`(plist)`、`(HKLM)`、`(HKCU)`、または `(file)` のいずれかです。[アクティブな設定を検証](/ja/settings#verify-active-settings) を参照してください。

110 

111開発者が開始するのに役立つこれらのリソースを共有してください。

112 

113* [クイックスタート](/ja/quickstart): インストールからプロジェクトの操作まで、最初のセッションのウォークスルー

114* [一般的なワークフロー](/ja/common-workflows): コードレビュー、リファクタリング、デバッグなどの日常的なタスクのパターン

115* [Claude 101](https://anthropic.skilljar.com/claude-101) と [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action): Anthropic Academy の自習型コース

116 

117ログインの問題については、開発者に [認証のトラブルシューティング](/ja/troubleshoot-install#login-and-authentication) を指してください。最も一般的な修正は次のとおりです。

118 

119* `/logout` を実行してから `/login` を実行してアカウントを切り替える

120* エンタープライズ認証オプションが見つからない場合は `claude update` を実行する

121* 更新後にターミナルを再起動する

122 

123開発者が「You haven't been added to your organization yet」というメッセージを見た場合、そのシートには Claude Code アクセスが含まれておらず、管理コンソールで更新する必要があります。

124 

125## 次のステップ

126 

127プロバイダーと配信メカニズムを選択したら、詳細な設定に進みます。

128 

129* [Server-managed settings](/ja/server-managed-settings): Claude 管理コンソールからマネージドポリシーを配信する

130* [Settings reference](/ja/settings): すべての設定キー、ファイルの場所、優先度ルール

131* [Amazon Bedrock](/ja/amazon-bedrock)、[Google Vertex AI](/ja/google-vertex-ai)、[Microsoft Foundry](/ja/microsoft-foundry): プロバイダー固有の展開

132* [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide): SSO、SCIM、シート管理、ロールアウトプレイブック

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# SDK で Claude Code 機能を使用する

6 

7> プロジェクト指示、スキル、フック、その他の Claude Code 機能を SDK エージェントに読み込みます。

8 

9Agent SDK は Claude Code と同じ基盤の上に構築されているため、SDK エージェントは同じファイルシステムベースの機能にアクセスできます。プロジェクト指示(`CLAUDE.md` とルール)、スキル、フック、その他の機能です。

10 

11`settingSources` を省略すると、`query()` は Claude Code CLI と同じファイルシステム設定を読み込みます。ユーザー、プロジェクト、ローカル設定、CLAUDE.md ファイル、`.claude/` スキル、エージェント、コマンドです。これらなしで実行するには、`settingSources: []` を渡します。これにより、エージェントはプログラムで設定したものに限定されます。マネージドポリシー設定とグローバル `~/.claude.json` 設定は、このオプションに関係なく読み込まれます。[settingSources が制御しないもの](#what-settingsources-does-not-control)を参照してください。

12 

13各機能の概念的な概要と使用時期については、[Claude Code を拡張する](/ja/features-overview)を参照してください。

14 

15## settingSources でファイルシステム設定を制御する

16 

17設定ソースオプション(Python では [`setting_sources`](/ja/agent-sdk/python#claude-agent-options)、TypeScript では [`settingSources`](/ja/agent-sdk/typescript#setting-source))は、SDK が読み込むファイルシステムベースの設定を制御します。特定のソースにオプトインするための明示的なリストを渡すか、ユーザー、プロジェクト、ローカル設定を無効にするための空の配列を渡します。

18 

19この例では、`settingSources` を `["user", "project"]` に設定して、ユーザーレベルとプロジェクトレベルの両方の設定を読み込みます。

20 

21<CodeGroup>

22 ```python Python theme={null}

23 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage

24 

25 async for message in query(

26 prompt="Help me refactor the auth module",

27 options=ClaudeAgentOptions(

28 # "user" loads from ~/.claude/, "project" loads from ./.claude/ in cwd.

29 # Together they give the agent access to CLAUDE.md, skills, hooks, and

30 # permissions from both locations.

31 setting_sources=["user", "project"],

32 allowed_tools=["Read", "Edit", "Bash"],

33 ),

34 ):

35 if isinstance(message, AssistantMessage):

36 for block in message.content:

37 if hasattr(block, "text"):

38 print(block.text)

39 if isinstance(message, ResultMessage) and message.subtype == "success":

40 print(f"\nResult: {message.result}")

41 ```

42 

43 ```typescript TypeScript theme={null}

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

45 

46 for await (const message of query({

47 prompt: "Help me refactor the auth module",

48 options: {

49 // "user" loads from ~/.claude/, "project" loads from ./.claude/ in cwd.

50 // Together they give the agent access to CLAUDE.md, skills, hooks, and

51 // permissions from both locations.

52 settingSources: ["user", "project"],

53 allowedTools: ["Read", "Edit", "Bash"]

54 }

55 })) {

56 if (message.type === "assistant") {

57 for (const block of message.message.content) {

58 if (block.type === "text") console.log(block.text);

59 }

60 }

61 if (message.type === "result" && message.subtype === "success") {

62 console.log(`\nResult: ${message.result}`);

63 }

64 }

65 ```

66</CodeGroup>

67 

68各ソースは特定の場所から設定を読み込みます。`<cwd>` は `cwd` オプション経由で渡す作業ディレクトリです(設定されていない場合はプロセスの現在のディレクトリ)。完全な型定義については、[`SettingSource`](/ja/agent-sdk/typescript#setting-source)(TypeScript)または [`SettingSource`](/ja/agent-sdk/python#setting-source)(Python)を参照してください。

69 

70| ソース | 読み込むもの | 場所 |

71| :---------- | :------------------------------------------------------------------------------- | :------------------------------------------------------------------- |

72| `"project"` | プロジェクト CLAUDE.md、`.claude/rules/*.md`、プロジェクトスキル、プロジェクトフック、プロジェクト `settings.json` | `<cwd>/.claude/` および各親ディレクトリ(`.claude/` が見つかるか親がなくなるまでファイルシステムルートまで) |

73| `"user"` | ユーザー CLAUDE.md、`~/.claude/rules/*.md`、ユーザースキル、ユーザー設定 | `~/.claude/` |

74| `"local"` | CLAUDE.local.md(gitignored)、`.claude/settings.local.json` | `<cwd>/` |

75 

76`settingSources` を省略することは `["user", "project", "local"]` と同等です。

77 

78`cwd` オプションは、SDK がプロジェクト設定を探す場所を決定します。`cwd` またはその親ディレクトリのいずれにも `.claude/` フォルダが含まれていない場合、プロジェクトレベルの機能は読み込まれません。

79 

80### settingSources が制御しないもの

81 

82`settingSources` はユーザー、プロジェクト、ローカル設定をカバーします。その値に関係なく読み込まれるいくつかの入力があります。

83 

84| 入力 | 動作 | 無効にするには |

85| :-------------------------------------------- | :----------------------- | :--------------------------------------------------------------------------------------- |

86| マネージドポリシー設定 | ホストに存在する場合は常に読み込まれます | マネージド設定ファイルを削除します |

87| `~/.claude.json` グローバル設定 | 常に読み込まれます | `env` の `CLAUDE_CONFIG_DIR` で再配置します |

88| `~/.claude/projects/<project>/memory/` の自動メモリ | デフォルトではシステムプロンプトに読み込まれます | 設定で `autoMemoryEnabled: false` を設定するか、`env` で `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` を設定します |

89 

90<Warning>

91 マルチテナント分離のためにデフォルトの `query()` オプションに依存しないでください。上記の入力は `settingSources` に関係なく読み込まれるため、SDK プロセスはホストレベルの設定とディレクトリごとのメモリを取得できます。マルチテナント展開の場合は、各テナントを独自のファイルシステムで実行し、`settingSources: []` と `env` で `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` を設定します。[セキュアな展開](/ja/agent-sdk/secure-deployment)を参照してください。

92</Warning>

93 

94## プロジェクト指示(CLAUDE.md とルール)

95 

96`CLAUDE.md` ファイルと `.claude/rules/*.md` ファイルは、エージェントにプロジェクトに関する永続的なコンテキストを提供します。コーディング規約、ビルドコマンド、アーキテクチャの決定、指示です。`settingSources` に `"project"` が含まれている場合(上記の例のように)、SDK はセッション開始時にこれらのファイルをコンテキストに読み込みます。その後、エージェントはプロジェクト規約に従い、すべてのプロンプトで繰り返す必要がありません。

97 

98### CLAUDE.md 読み込み場所

99 

100| レベル | 場所 | 読み込まれるとき |

101| :--------------- | :---------------------------------------------- | :---------------------------------------------------------------------------- |

102| プロジェクト(ルート) | `<cwd>/CLAUDE.md` または `<cwd>/.claude/CLAUDE.md` | `settingSources` に `"project"` が含まれる |

103| プロジェクトルール | `<cwd>/.claude/rules/*.md` | `settingSources` に `"project"` が含まれる |

104| プロジェクト(親ディレクトリ) | `cwd` より上のディレクトリの `CLAUDE.md` ファイル | `settingSources` に `"project"` が含まれ、セッション開始時に読み込まれます |

105| プロジェクト(子ディレクトリ) | `cwd` のサブディレクトリの `CLAUDE.md` ファイル | `settingSources` に `"project"` が含まれ、エージェントがそのサブツリーのファイルを読み込むときにオンデマンドで読み込まれます |

106| ローカル(gitignored) | `<cwd>/CLAUDE.local.md` | `settingSources` に `"local"` が含まれる |

107| ユーザー | `~/.claude/CLAUDE.md` | `settingSources` に `"user"` が含まれる |

108| ユーザールール | `~/.claude/rules/*.md` | `settingSources` に `"user"` が含まれる |

109 

110すべてのレベルは加算的です。プロジェクトとユーザーの両方の CLAUDE.md ファイルが存在する場合、エージェントは両方を見ます。レベル間に厳密な優先順位ルールはありません。指示が競合する場合、結果は Claude がそれらをどのように解釈するかに依存します。競合しないルールを記述するか、より具体的なファイルで優先順位を明示的に述べます(「これらのプロジェクト指示は、競合するユーザーレベルのデフォルトをオーバーライドします」)。

111 

112<Tip>

113 `systemPrompt` 経由でコンテキストを直接注入することもできます。CLAUDE.md ファイルを使用する必要はありません。[システムプロンプトを変更する](/ja/agent-sdk/modifying-system-prompts)を参照してください。CLAUDE.md は、同じコンテキストをインタラクティブな Claude Code セッションと SDK エージェント間で共有したい場合に使用します。

114</Tip>

115 

116CLAUDE.md コンテンツの構造と整理方法については、[Claude のメモリを管理する](/ja/memory)を参照してください。

117 

118## スキル

119 

120スキルは、エージェントに専門知識と呼び出し可能なワークフローを提供するマークダウンファイルです。`CLAUDE.md`(すべてのセッションで読み込まれる)とは異なり、スキルはオンデマンドで読み込まれます。エージェントはスタートアップ時にスキルの説明を受け取り、関連するときに完全なコンテンツを読み込みます。

121 

122スキルは `settingSources` を通じてファイルシステムから検出されます。デフォルトオプションでは、ユーザーとプロジェクトのスキルが自動的に読み込まれます。`allowedTools` を指定しない場合、`Skill` ツールはデフォルトで有効になります。`allowedTools` 許可リストを使用している場合は、`"Skill"` を明示的に含めます。

123 

124<CodeGroup>

125 ```python Python theme={null}

126 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

127 

128 # Skills in .claude/skills/ are discovered automatically

129 # when settingSources includes "project"

130 async for message in query(

131 prompt="Review this PR using our code review checklist",

132 options=ClaudeAgentOptions(

133 setting_sources=["user", "project"],

134 allowed_tools=["Skill", "Read", "Grep", "Glob"],

135 ),

136 ):

137 if isinstance(message, ResultMessage) and message.subtype == "success":

138 print(message.result)

139 ```

140 

141 ```typescript TypeScript theme={null}

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

143 

144 // Skills in .claude/skills/ are discovered automatically

145 // when settingSources includes "project"

146 for await (const message of query({

147 prompt: "Review this PR using our code review checklist",

148 options: {

149 settingSources: ["user", "project"],

150 allowedTools: ["Skill", "Read", "Grep", "Glob"]

151 }

152 })) {

153 if (message.type === "result" && message.subtype === "success") {

154 console.log(message.result);

155 }

156 }

157 ```

158</CodeGroup>

159 

160<Note>

161 スキルはファイルシステムアーティファクト(`.claude/skills/<name>/SKILL.md`)として作成する必要があります。SDK にはスキルを登録するためのプログラマティック API がありません。詳細については、[SDK のエージェントスキル](/ja/agent-sdk/skills)を参照してください。

162</Note>

163 

164スキルの作成と使用の詳細については、[SDK のエージェントスキル](/ja/agent-sdk/skills)を参照してください。

165 

166## フック

167 

168SDK は 2 つの方法でフックを定義することをサポートしており、それらは並行して実行されます。

169 

170* **ファイルシステムフック:** `settings.json` で定義されたシェルコマンド。`settingSources` に関連するソースが含まれている場合に読み込まれます。これらは[インタラクティブな Claude Code セッション](/ja/hooks-guide)用に設定するのと同じフックです。

171* **プログラマティックフック:** `query()` に直接渡されるコールバック関数。これらはアプリケーションプロセスで実行され、構造化された決定を返すことができます。[フックで実行を制御する](/ja/agent-sdk/hooks)を参照してください。

172 

173両方のタイプは同じフックライフサイクル中に実行されます。プロジェクトの `.claude/settings.json` にフックが既にあり、`settingSources: ["project"]` を設定している場合、それらのフックは追加の設定なしで SDK で自動的に実行されます。

174 

175フックコールバックはツール入力を受け取り、決定辞書を返します。`{}` (空の辞書)を返すことはツールの実行を許可することを意味します。`{"decision": "block", "reason": "..."}` を返すことは実行を防ぎ、理由は Claude にツール結果として送信されます。完全なコールバック署名と戻り値の型については、[フックガイド](/ja/agent-sdk/hooks)を参照してください。

176 

177<CodeGroup>

178 ```python Python theme={null}

179 from claude_agent_sdk import query, ClaudeAgentOptions, HookMatcher, ResultMessage

180 

181 

182 # PreToolUse hook callback. Positional args:

183 # input_data: HookInput dict with tool_name, tool_input, hook_event_name

184 # tool_use_id: str | None, the ID of the tool call being intercepted

185 # context: HookContext, carries session metadata

186 async def audit_bash(input_data, tool_use_id, context):

187 command = input_data.get("tool_input", {}).get("command", "")

188 if "rm -rf" in command:

189 return {"decision": "block", "reason": "Destructive command blocked"}

190 return {} # Empty dict: allow the tool to proceed

191 

192 

193 # Filesystem hooks from .claude/settings.json run automatically

194 # when settingSources loads them. You can also add programmatic hooks:

195 async for message in query(

196 prompt="Refactor the auth module",

197 options=ClaudeAgentOptions(

198 setting_sources=["project"], # Loads hooks from .claude/settings.json

199 hooks={

200 "PreToolUse": [

201 HookMatcher(matcher="Bash", hooks=[audit_bash]),

202 ]

203 },

204 ),

205 ):

206 if isinstance(message, ResultMessage) and message.subtype == "success":

207 print(message.result)

208 ```

209 

210 ```typescript TypeScript theme={null}

211 import { query, type HookInput, type HookJSONOutput } from "@anthropic-ai/claude-agent-sdk";

212 

213 // PreToolUse hook callback. HookInput is a discriminated union on

214 // hook_event_name, so narrowing on it gives TypeScript the right

215 // tool_input shape for this event.

216 const auditBash = async (input: HookInput): Promise<HookJSONOutput> => {

217 if (input.hook_event_name !== "PreToolUse") return {};

218 const toolInput = input.tool_input as { command?: string };

219 if (toolInput.command?.includes("rm -rf")) {

220 return { decision: "block", reason: "Destructive command blocked" };

221 }

222 return {}; // Empty object: allow the tool to proceed

223 };

224 

225 // Filesystem hooks from .claude/settings.json run automatically

226 // when settingSources loads them. You can also add programmatic hooks:

227 for await (const message of query({

228 prompt: "Refactor the auth module",

229 options: {

230 settingSources: ["project"], // Loads hooks from .claude/settings.json

231 hooks: {

232 PreToolUse: [{ matcher: "Bash", hooks: [auditBash] }]

233 }

234 }

235 })) {

236 if (message.type === "result" && message.subtype === "success") {

237 console.log(message.result);

238 }

239 }

240 ```

241</CodeGroup>

242 

243### どのフックタイプを使用するか

244 

245| フックタイプ | 最適な用途 |

246| :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

247| **ファイルシステム** (`settings.json`) | CLI と SDK セッション間でフックを共有します。`"command"`(シェルスクリプト)、`"http"`(エンドポイントへの POST)、`"mcp_tool"`(接続された MCP サーバーのツールを呼び出す)、`"prompt"`(LLM がプロンプトを評価する)、`"agent"`(検証エージェントを生成する)をサポートします。これらはメインエージェントとそれが生成するサブエージェントで実行されます。 |

248| **プログラマティック** (`query()` のコールバック) | アプリケーション固有のロジック。構造化された決定を返す。プロセス内統合。メインセッションのみにスコープされます。 |

249 

250<Note>

251 TypeScript SDK は Python を超えた追加のフックイベントをサポートしており、`SessionStart`、`SessionEnd`、`TeammateIdle`、`TaskCompleted` が含まれます。完全なイベント互換性テーブルについては、[フックガイド](/ja/agent-sdk/hooks)を参照してください。

252</Note>

253 

254プログラマティックフックの詳細については、[フックで実行を制御する](/ja/agent-sdk/hooks)を参照してください。ファイルシステムフック構文については、[フック](/ja/hooks)を参照してください。

255 

256## 適切な機能を選択する

257 

258Agent SDK は、エージェントの動作を拡張するいくつかの方法へのアクセスを提供します。どれを使用するか不確かな場合、このテーブルは一般的な目標を正しいアプローチにマップします。

259 

260| 実現したいこと | 使用 | SDK サーフェス |

261| :------------------------------------------------------ | :------------------------------------ | :----------------------------------------------------------------------------------- |

262| エージェントが常に従うプロジェクト規約を設定する | [CLAUDE.md](/ja/memory) | `settingSources: ["project"]` がそれを自動的に読み込みます |

263| エージェントが関連するときに読み込む参考資料を提供する | [スキル](/ja/agent-sdk/skills) | `settingSources` + `allowedTools: ["Skill"]` |

264| 再利用可能なワークフロー(デプロイ、レビュー、リリース)を実行する | [ユーザー呼び出し可能スキル](/ja/agent-sdk/skills) | `settingSources` + `allowedTools: ["Skill"]` |

265| 分離されたサブタスク(研究、レビュー)を新しいコンテキストに委譲する | [サブエージェント](/ja/agent-sdk/subagents) | `agents` パラメータ + `allowedTools: ["Agent"]` |

266| 共有タスクリストと直接的なエージェント間メッセージングで複数の Claude Code インスタンスを調整する | [エージェントチーム](/ja/agent-teams) | SDK オプション経由で直接設定されません。エージェントチームは CLI 機能で、1 つのセッションがチームリードとして機能し、独立したチームメイト間で作業を調整します |

267| ツール呼び出しで決定論的ロジックを実行する(監査、ブロック、変換) | [フック](/ja/agent-sdk/hooks) | `hooks` パラメータとコールバック、または `settingSources` 経由で読み込まれたシェルスクリプト |

268| Claude に外部サービスへの構造化ツールアクセスを提供する | [MCP](/ja/agent-sdk/mcp) | `mcpServers` パラメータ |

269 

270<Tip>

271 **サブエージェント対エージェントチーム:** サブエージェントは一時的で分離されています。新しい会話、1 つのタスク、親に返される要約。エージェントチームは、タスクリストを共有し、直接メッセージを送り合う複数の独立した Claude Code インスタンスを調整します。エージェントチームは CLI 機能です。詳細については、[サブエージェントが継承するもの](/ja/agent-sdk/subagents#what-subagents-inherit)と[エージェントチーム比較](/ja/agent-teams#compare-with-subagents)を参照してください。

272</Tip>

273 

274有効にする機能ごとに、エージェントのコンテキストウィンドウに追加されます。機能ごとのコストとこれらの機能がどのように層状に配置されるかについては、[Claude Code を拡張する](/ja/features-overview#understand-context-costs)を参照してください。

275 

276## 関連リソース

277 

278* [Claude Code を拡張する](/ja/features-overview):すべての拡張機能の概念的な概要、比較テーブル、コンテキストコスト分析

279* [SDK のスキル](/ja/agent-sdk/skills):スキルをプログラムで使用するための完全なガイド

280* [サブエージェント](/ja/agent-sdk/subagents):分離されたサブタスク用のサブエージェントを定義して呼び出す

281* [フック](/ja/agent-sdk/hooks):主要な実行ポイントでエージェントの動作をインターセプトして制御する

282* [権限](/ja/agent-sdk/permissions):モード、ルール、コールバックでツールアクセスを制御する

283* [システムプロンプト](/ja/agent-sdk/modifying-system-prompts):CLAUDE.md ファイルなしでコンテキストを注入する

agent-sdk/cost-tracking.md +263 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# コストと使用状況の追跡

6 

7> Claude Agent SDK でトークン使用状況を追跡し、コストを見積もり、プロンプトキャッシングを設定する方法を学びます。

8 

9Claude Agent SDK は、Claude との各インタラクションの詳細なトークン使用情報を提供します。このガイドでは、使用状況を適切に追跡し、特に並列ツール使用とマルチステップ会話を扱う場合のコスト報告を理解する方法について説明します。

10 

11完全な API ドキュメントについては、[TypeScript SDK リファレンス](/ja/agent-sdk/typescript)と[Python SDK リファレンス](/ja/agent-sdk/python)を参照してください。

12 

13<Warning>

14 `total_cost_usd` および `costUSD` フィールドはクライアント側の推定値であり、権限のある請求データではありません。SDK はビルド時にバンドルされた価格表からローカルで計算するため、以下の場合に実際の請求額から乖離する可能性があります。

15 

16 * 価格が変更された

17 * インストールされている SDK バージョンがモデルを認識しない

18 * クライアントがモデル化できない請求ルールが適用される

19 

20 これらのフィールドは開発の洞察と概算予算作成に使用してください。権限のある請求については、[Usage and Cost API](https://platform.claude.com/docs/en/build-with-claude/usage-cost-api)または[Claude Console](https://platform.claude.com/usage)の Usage ページを使用してください。これらのフィールドからエンドユーザーに請求したり、財務上の決定をトリガーしたりしないでください。

21</Warning>

22 

23## トークン使用状況を理解する

24 

25TypeScript と Python SDK は、異なるフィールド名で同じ使用データを公開します。

26 

27* **TypeScript** は、各アシスタントメッセージ(`message.message.id`、`message.message.usage`)のステップごとのトークン分解、結果メッセージの `modelUsage` 経由のモデルごとのコスト、および結果メッセージの累積合計を提供します。

28* **Python** は、各アシスタントメッセージ(`message.usage`、`message.message_id`)のステップごとのトークン分解、結果メッセージの `model_usage` 経由のモデルごとのコスト、および結果メッセージの累積合計(`total_cost_usd` および `usage` 辞書)を提供します。

29 

30両方の SDK は同じ基本的なコストモデルを使用し、同じ粒度を公開します。違いはフィールド命名とステップごとの使用がネストされている場所です。

31 

32コスト追跡は、SDK が使用データをどのようにスコープするかを理解することに依存します。

33 

34* **`query()` 呼び出し:** SDK の `query()` 関数の 1 つの呼び出し。単一の呼び出しは複数のステップを含むことができます(Claude が応答し、ツールを使用し、結果を取得し、再度応答します)。各呼び出しは最後に 1 つの[`result`](/ja/agent-sdk/typescript#sdk-result-message)メッセージを生成します。

35* **ステップ:** `query()` 呼び出し内の単一のリクエスト/レスポンスサイクル。各ステップはトークン使用情報を含むアシスタントメッセージを生成します。

36* **セッション:** セッション ID でリンクされた一連の `query()` 呼び出し(`resume` オプションを使用)。セッション内の各 `query()` 呼び出しは独立してコストを報告します。

37 

38次の図は、単一の `query()` 呼び出しからのメッセージストリームを示しており、各ステップでトークン使用が報告され、最後に累積推定値が表示されます。

39 

40<img src="https://mintcdn.com/claude-code/Dujg43sxTkuhSELI/images/agent-sdk/message-usage-flow.svg?fit=max&auto=format&n=Dujg43sxTkuhSELI&q=85&s=c542f51ff58547ef9c0e57b16d03f33c" alt="クエリが 2 つのステップのメッセージを生成する図。ステップ 1 には同じ ID と使用状況を共有する 4 つのアシスタントメッセージがあり(1 回カウント)、ステップ 2 には新しい ID を持つ 1 つのアシスタントメッセージがあり、最終的な結果メッセージは推定 total_cost_usd を示します。" width="760" height="520" data-path="images/agent-sdk/message-usage-flow.svg" />

41 

42<Steps>

43 <Step title="各ステップはアシスタントメッセージを生成します">

44 Claude が応答すると、1 つ以上のアシスタントメッセージを送信します。TypeScript では、各アシスタントメッセージには、ネストされた `BetaMessage`(`message.message` 経由でアクセス)が含まれており、`id` とトークン数(`input_tokens`、`output_tokens`)を含む[`usage`](https://platform.claude.com/docs/en/api/messages)オブジェクトがあります。Python では、`AssistantMessage` データクラスは `message.usage` と `message.message_id` 経由で同じデータを直接公開します。Claude が 1 つのターンで複数のツールを使用する場合、そのターンのすべてのメッセージは同じ ID を共有するため、ID でデデュプリケートして二重カウントを避けてください。

45 </Step>

46 

47 <Step title="結果メッセージは累積推定値を提供します">

48 `query()` 呼び出しが完了すると、SDK は `total_cost_usd` と累積 `usage` を含む結果メッセージを発行します。これは TypeScript([`SDKResultMessage`](/ja/agent-sdk/typescript#sdk-result-message))と Python([`ResultMessage`](/ja/agent-sdk/python#result-message))の両方で利用可能です。複数の `query()` 呼び出しを行う場合(たとえば、マルチターンセッション)、各結果はその個別の呼び出しのコストのみを反映します。推定合計のみが必要な場合は、ステップごとの使用を無視して、この単一の値を読むことができます。

49 </Step>

50</Steps>

51 

52## クエリの総コストを取得する

53 

54結果メッセージ([TypeScript](/ja/agent-sdk/typescript#sdk-result-message)、[Python](/ja/agent-sdk/python#result-message))は、`query()` 呼び出しのエージェントループの終了をマークします。これには `total_cost_usd` が含まれており、その呼び出し内のすべてのステップにわたる累積推定コストです。これは成功と エラー結果の両方で機能します。セッションを使用して複数の `query()` 呼び出しを行う場合、各結果はその個別の呼び出しのコストのみを反映します。

55 

56次の例は、`query()` 呼び出しからのメッセージストリームを反復処理し、`result` メッセージが到着したときに総コストを出力します。

57 

58<CodeGroup>

59 ```typescript TypeScript theme={null}

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

61 

62 for await (const message of query({ prompt: "Summarize this project" })) {

63 if (message.type === "result") {

64 console.log(`Total cost: $${message.total_cost_usd}`);

65 }

66 }

67 ```

68 

69 ```python Python theme={null}

70 from claude_agent_sdk import query, ResultMessage

71 import asyncio

72 

73 

74 async def main():

75 async for message in query(prompt="Summarize this project"):

76 if isinstance(message, ResultMessage):

77 print(f"Total cost: ${message.total_cost_usd or 0}")

78 

79 

80 asyncio.run(main())

81 ```

82</CodeGroup>

83 

84## ステップごとおよびモデルごとの使用状況を追跡する

85 

86このセクションの例は TypeScript フィールド名を使用します。Python では、同等のフィールドはステップごとの使用状況の[`AssistantMessage.usage`](/ja/agent-sdk/python#assistant-message)と `AssistantMessage.message_id`、およびモデルごとの分解の[`ResultMessage.model_usage`](/ja/agent-sdk/python#result-message)です。

87 

88### ステップごとの使用状況を追跡する

89 

90各アシスタントメッセージには、ネストされた `BetaMessage`(`message.message` 経由でアクセス)が含まれており、`id` とトークン数を含む `usage` オブジェクトがあります。Claude がツールを並列で使用する場合、複数のメッセージは同じ `id` と同一の使用データを共有します。既にカウントした ID を追跡し、重複をスキップして、インフレートされた合計を避けてください。

91 

92<Warning>

93 並列ツール呼び出しは、ネストされた `BetaMessage` が同じ `id` と同一の使用データを共有する複数のアシスタントメッセージを生成します。正確なステップごとのトークン数を取得するには、常に ID でデデュプリケートしてください。

94</Warning>

95 

96次の例は、各ユニークなメッセージ ID を 1 回だけカウントして、すべてのステップにわたって入力トークンと出力トークンを累積します。

97 

98```typescript theme={null}

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

100 

101const seenIds = new Set<string>();

102let totalInputTokens = 0;

103let totalOutputTokens = 0;

104 

105for await (const message of query({ prompt: "Summarize this project" })) {

106 if (message.type === "assistant") {

107 const msgId = message.message.id;

108 

109 // Parallel tool calls share the same ID, only count once

110 if (!seenIds.has(msgId)) {

111 seenIds.add(msgId);

112 totalInputTokens += message.message.usage.input_tokens;

113 totalOutputTokens += message.message.usage.output_tokens;

114 }

115 }

116}

117 

118console.log(`Steps: ${seenIds.size}`);

119console.log(`Input tokens: ${totalInputTokens}`);

120console.log(`Output tokens: ${totalOutputTokens}`);

121```

122 

123### モデルごとの使用状況を分解する

124 

125結果メッセージには[`modelUsage`](/ja/agent-sdk/typescript#model-usage)が含まれており、これはモデル名からモデルごとのトークン数とコストへのマップです。これは複数のモデルを実行する場合(たとえば、サブエージェント用の Haiku とメインエージェント用の Opus)に便利で、トークンがどこに行っているかを確認したい場合に役立ちます。

126 

127次の例はクエリを実行し、使用されたモデルごとのコストとトークン分解を出力します。

128 

129```typescript theme={null}

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

131 

132for await (const message of query({ prompt: "Summarize this project" })) {

133 if (message.type !== "result") continue;

134 

135 for (const [modelName, usage] of Object.entries(message.modelUsage)) {

136 console.log(`${modelName}: $${usage.costUSD.toFixed(4)}`);

137 console.log(` Input tokens: ${usage.inputTokens}`);

138 console.log(` Output tokens: ${usage.outputTokens}`);

139 console.log(` Cache read: ${usage.cacheReadInputTokens}`);

140 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);

141 }

142}

143```

144 

145## 複数の呼び出しにわたってコストを累積する

146 

147各 `query()` 呼び出しは独自の `total_cost_usd` を返します。SDK はセッションレベルの合計を提供しないため、アプリケーションが複数の `query()` 呼び出しを行う場合(たとえば、マルチターンセッションまたは異なるユーザー間)、合計を自分で累積してください。

148 

149次の例は 2 つの `query()` 呼び出しを順序立てて実行し、各呼び出しの `total_cost_usd` を実行中の合計に追加し、呼び出しごとの合計コストと合計コストの両方を出力します。

150 

151<CodeGroup>

152 ```typescript TypeScript theme={null}

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

154 

155 // Track cumulative cost across multiple query() calls

156 let totalSpend = 0;

157 

158 const prompts = [

159 "Read the files in src/ and summarize the architecture",

160 "List all exported functions in src/auth.ts"

161 ];

162 

163 for (const prompt of prompts) {

164 for await (const message of query({ prompt })) {

165 if (message.type === "result") {

166 totalSpend += message.total_cost_usd;

167 console.log(`This call: $${message.total_cost_usd}`);

168 }

169 }

170 }

171 

172 console.log(`Total spend: $${totalSpend.toFixed(4)}`);

173 ```

174 

175 ```python Python theme={null}

176 from claude_agent_sdk import query, ResultMessage

177 import asyncio

178 

179 

180 async def main():

181 # Track cumulative cost across multiple query() calls

182 total_spend = 0.0

183 

184 prompts = [

185 "Read the files in src/ and summarize the architecture",

186 "List all exported functions in src/auth.ts",

187 ]

188 

189 for prompt in prompts:

190 async for message in query(prompt=prompt):

191 if isinstance(message, ResultMessage):

192 cost = message.total_cost_usd or 0

193 total_spend += cost

194 print(f"This call: ${cost}")

195 

196 print(f"Total spend: ${total_spend:.4f}")

197 

198 

199 asyncio.run(main())

200 ```

201</CodeGroup>

202 

203## エラー、キャッシング、トークン不一致を処理する

204 

205正確なコスト追跡のために、失敗した会話、キャッシュトークン価格、および時折の報告の不一致を考慮してください。

206 

207### 出力トークン不一致を解決する

208 

209まれに、同じ ID を持つメッセージに対して異なる `output_tokens` 値が観察される場合があります。これが発生した場合:

210 

2111. **最高値を使用する:** グループ内の最終メッセージは通常、正確な合計を含みます。

2122. **結果メッセージを優先する:** 結果メッセージの `total_cost_usd` は、すべてのステップにわたって SDK の累積推定値を反映するため、ステップごとの値を自分で合計するよりも信頼性が高くなります。これはまだ推定値であり、実際の請求額と異なる場合があります。

2133. **不一致を報告する:** [Claude Code GitHub リポジトリ](https://github.com/anthropics/claude-code/issues)で問題をファイルしてください。

214 

215### 失敗した会話のコストを追跡する

216 

217成功とエラーの両方の結果メッセージには `usage` と `total_cost_usd` が含まれます。会話が途中で失敗した場合、失敗の時点までトークンを消費しています。その `subtype` に関係なく、常に結果メッセージからコストデータを読んでください。

218 

219### キャッシュトークンを追跡する

220 

221Agent SDK は[プロンプトキャッシング](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)を自動的に使用して、繰り返されるコンテンツのコストを削減します。キャッシングを自分で設定する必要はありません。使用オブジェクトには、キャッシング追跡用の 2 つの追加フィールドが含まれます。

222 

223* `cache_creation_input_tokens`:新しいキャッシュエントリを作成するために使用されるトークン(標準入力トークンより高いレートで課金)。

224* `cache_read_input_tokens`:既存のキャッシュエントリから読み取られるトークン(削減されたレートで課金)。

225 

226キャッシング節約を理解するために、これらを `input_tokens` とは別に追跡してください。TypeScript では、これらのフィールドは[`Usage`](/ja/agent-sdk/typescript#usage)オブジェクトで型付けされます。Python では、[`ResultMessage.usage`](/ja/agent-sdk/python#result-message)辞書のキーとして表示されます(たとえば、`message.usage.get("cache_read_input_tokens", 0)`)。

227 

228### プロンプトキャッシュ TTL を 1 時間に延長する

229 

230SDK によって書き込まれたキャッシュエントリは、API キーで認証するか、Amazon Bedrock、Google Cloud Vertex AI、または Microsoft Foundry で実行する場合、デフォルトで 5 分の TTL を使用します。ワークロードが同じシステムプロンプトとコンテキストに対して多くの短いセッションを実行し、セッション間に 5 分以上のギャップがある場合、キャッシュはセッション間で期限切れになり、各新しいセッションは完全な入力価格を支払います。

231 

232キャッシュ書き込みで 1 時間の TTL をリクエストするには、[`ENABLE_PROMPT_CACHING_1H`](/ja/env-vars)環境変数を設定します。シェルまたはコンテナ環境でエクスポートするか、`options.env` 経由で渡すことができます。

233 

234次の例は、Bedrock で実行されているエージェントの 1 時間 TTL を有効にします。

235 

236<CodeGroup>

237 ```python Python theme={null}

238 options = ClaudeAgentOptions(

239 env={

240 "CLAUDE_CODE_USE_BEDROCK": "1",

241 "ENABLE_PROMPT_CACHING_1H": "1",

242 },

243 )

244 ```

245 

246 ```typescript TypeScript theme={null}

247 const options = {

248 env: {

249 ...process.env,

250 CLAUDE_CODE_USE_BEDROCK: "1",

251 ENABLE_PROMPT_CACHING_1H: "1",

252 },

253 };

254 ```

255</CodeGroup>

256 

2571 時間の TTL を持つキャッシュ書き込みは、5 分の書き込みより高いレートで課金されるため、これを有効にすると、より高い書き込みコストとより多くのキャッシュ読み取りがトレードオフされます。詳細については、[プロンプトキャッシング価格](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)を参照してください。Claude サブスクリプションユーザーは既に 1 時間の TTL を自動的に受け取り、この変数を設定する必要はありません。

258 

259## 関連ドキュメント

260 

261* [TypeScript SDK リファレンス](/ja/agent-sdk/typescript) - 完全な API ドキュメント

262* [SDK 概要](/ja/agent-sdk/overview) - SDK の使用を開始する

263* [SDK パーミッション](/ja/agent-sdk/permissions) - ツールパーミッションの管理

agent-sdk/hooks.md +819 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# フックを使用してエージェントの動作をインターセプトして制御する

6 

7> フックを使用して、エージェント実行の重要なポイントでエージェントの動作をインターセプトしてカスタマイズします

8 

9フックはエージェントイベントに応答してコードを実行するコールバック関数です。ツールが呼び出されたり、セッションが開始したり、実行が停止したりするなどのイベントに対応します。フックを使用すると、以下のことができます。

10 

11* **危険な操作をブロック**する:破壊的なシェルコマンドや不正なファイルアクセスなど、実行前に危険な操作をブロックします

12* **ログと監査**:コンプライアンス、デバッグ、分析のためにすべてのツール呼び出しをログして監査します

13* **入力と出力を変換**する:データをサニタイズしたり、認証情報を注入したり、ファイルパスをリダイレクトしたりします

14* **人間の承認を要求**する:データベース書き込みや API 呼び出しなどの機密アクションに対して

15* **セッションライフサイクルを追跡**する:状態を管理したり、リソースをクリーンアップしたり、通知を送信したりします

16 

17このガイドでは、フックの仕組み、フックの設定方法、およびツールのブロック、入力の変更、通知の転送などの一般的なパターンの例を説明します。

18 

19## フックの仕組み

20 

21<Steps>

22 <Step title="イベントが発火する">

23 エージェント実行中に何かが起こり、SDK がイベントを発火します。ツールが呼び出されようとしている(`PreToolUse`)、ツールが結果を返した(`PostToolUse`)、サブエージェントが開始または停止した、エージェントがアイドル状態である、または実行が完了したなどです。[イベントの完全なリスト](#available-hooks)を参照してください。

24 </Step>

25 

26 <Step title="SDK が登録されたフックを収集する">

27 SDK は、そのイベントタイプに登録されたフックをチェックします。これには、`options.hooks` に渡すコールバックフックと、対応する [`settingSources`](/ja/agent-sdk/typescript#setting-source) または [`setting_sources`](/ja/agent-sdk/python#setting-source) エントリが有効になっているときの設定ファイルからのシェルコマンドフックが含まれます。これはデフォルトの `query()` オプションで有効になっています。

28 </Step>

29 

30 <Step title="マッチャーがどのフックを実行するかをフィルタリングする">

31 フックに [`matcher`](#matchers) パターン(`"Write|Edit"` など)がある場合、SDK はそれをイベントのターゲット(たとえば、ツール名)に対してテストします。マッチャーのないフックは、そのタイプのすべてのイベントに対して実行されます。

32 </Step>

33 

34 <Step title="コールバック関数が実行される">

35 各マッチングフックの[コールバック関数](#callback-functions)は、何が起こっているかについての入力を受け取ります。ツール名、その引数、セッション ID、およびその他のイベント固有の詳細です。

36 </Step>

37 

38 <Step title="コールバックが決定を返す">

39 任意の操作(ログ、API 呼び出し、検証)を実行した後、コールバックは[出力オブジェクト](#outputs)を返します。これはエージェントに何をするかを指示します。操作を許可する、ブロックする、入力を変更する、または会話にコンテキストを注入するなどです。

40 </Step>

41</Steps>

42 

43次の例は、これらのステップをまとめたものです。`PreToolUse` フック(ステップ 1)を `"Write|Edit"` マッチャー(ステップ 3)で登録して、コールバックがファイル書き込みツールに対してのみ発火するようにします。トリガーされると、コールバックはツールの入力(ステップ 4)を受け取り、ファイルパスが `.env` ファイルをターゲットにしているかどうかをチェックし、`permissionDecision: "deny"` を返して操作をブロックします(ステップ 5)。

44 

45<CodeGroup>

46 ```python Python theme={null}

47 import asyncio

48 from claude_agent_sdk import (

49 AssistantMessage,

50 ClaudeSDKClient,

51 ClaudeAgentOptions,

52 HookMatcher,

53 ResultMessage,

54 )

55 

56 

57 # ツール呼び出しの詳細を受け取るフックコールバックを定義する

58 async def protect_env_files(input_data, tool_use_id, context):

59 # ツールの入力引数からファイルパスを抽出する

60 file_path = input_data["tool_input"].get("file_path", "")

61 file_name = file_path.split("/")[-1]

62 

63 # .env ファイルをターゲットにしている場合は操作をブロックする

64 if file_name == ".env":

65 return {

66 "hookSpecificOutput": {

67 "hookEventName": input_data["hook_event_name"],

68 "permissionDecision": "deny",

69 "permissionDecisionReason": "Cannot modify .env files",

70 }

71 }

72 

73 # 空のオブジェクトを返して操作を許可する

74 return {}

75 

76 

77 async def main():

78 options = ClaudeAgentOptions(

79 hooks={

80 # PreToolUse イベントのフックを登録する

81 # マッチャーは Write と Edit ツール呼び出しのみにフィルタリングする

82 "PreToolUse": [HookMatcher(matcher="Write|Edit", hooks=[protect_env_files])]

83 }

84 )

85 

86 async with ClaudeSDKClient(options=options) as client:

87 await client.query("Update the database configuration")

88 async for message in client.receive_response():

89 # アシスタントとリザルトメッセージをフィルタリングする

90 if isinstance(message, (AssistantMessage, ResultMessage)):

91 print(message)

92 

93 

94 asyncio.run(main())

95 ```

96 

97 ```typescript TypeScript theme={null}

98 import { query, HookCallback, PreToolUseHookInput } from "@anthropic-ai/claude-agent-sdk";

99 

100 // HookCallback 型でフックコールバックを定義する

101 const protectEnvFiles: HookCallback = async (input, toolUseID, { signal }) => {

102 // 型安全性のために入力を特定のフック型にキャストする

103 const preInput = input as PreToolUseHookInput;

104 

105 // tool_input をキャストしてそのプロパティにアクセスする(SDK では unknown として型付けされている)

106 const toolInput = preInput.tool_input as Record<string, unknown>;

107 const filePath = toolInput?.file_path as string;

108 const fileName = filePath?.split("/").pop();

109 

110 // .env ファイルをターゲットにしている場合は操作をブロックする

111 if (fileName === ".env") {

112 return {

113 hookSpecificOutput: {

114 hookEventName: preInput.hook_event_name,

115 permissionDecision: "deny",

116 permissionDecisionReason: "Cannot modify .env files"

117 }

118 };

119 }

120 

121 // 空のオブジェクトを返して操作を許可する

122 return {};

123 };

124 

125 for await (const message of query({

126 prompt: "Update the database configuration",

127 options: {

128 hooks: {

129 // PreToolUse イベントのフックを登録する

130 // マッチャーは Write と Edit ツール呼び出しのみにフィルタリングする

131 PreToolUse: [{ matcher: "Write|Edit", hooks: [protectEnvFiles] }]

132 }

133 }

134 })) {

135 // アシスタントとリザルトメッセージをフィルタリングする

136 if (message.type === "assistant" || message.type === "result") {

137 console.log(message);

138 }

139 }

140 ```

141</CodeGroup>

142 

143## 利用可能なフック

144 

145SDK はエージェント実行のさまざまなステージのフックを提供します。一部のフックは両方の SDK で利用可能ですが、その他は TypeScript のみです。

146 

147| フックイベント | Python SDK | TypeScript SDK | トリガーされる条件 | 使用例 |

148| -------------------- | ---------- | -------------- | ------------------------------------- | ---------------------------------------- |

149| `PreToolUse` | はい | はい | ツール呼び出しリクエスト(ブロックまたは変更可能) | 危険なシェルコマンドをブロックする |

150| `PostToolUse` | はい | はい | ツール実行結果 | すべてのファイル変更を監査証跡にログする |

151| `PostToolUseFailure` | はい | はい | ツール実行失敗 | ツールエラーを処理またはログする |

152| `PostToolBatch` | いいえ | はい | ツール呼び出しの完全なバッチが解決される。次のモデル呼び出しの前に 1 回 | バッチ全体に対して規約を 1 回注入する |

153| `UserPromptSubmit` | はい | はい | ユーザープロンプト送信 | プロンプトに追加のコンテキストを注入する |

154| `Stop` | はい | はい | エージェント実行停止 | 終了前にセッション状態を保存する |

155| `SubagentStart` | はい | はい | サブエージェント初期化 | 並列タスク生成を追跡する |

156| `SubagentStop` | はい | はい | サブエージェント完了 | 並列タスクから結果を集約する |

157| `PreCompact` | はい | はい | 会話圧縮リクエスト | 要約する前に完全なトランスクリプトをアーカイブする |

158| `PermissionRequest` | はい | はい | パーミッションダイアログが表示される | カスタムパーミッション処理 |

159| `SessionStart` | いいえ | はい | セッション初期化 | ログとテレメトリを初期化する |

160| `SessionEnd` | いいえ | はい | セッション終了 | 一時的なリソースをクリーンアップする |

161| `Notification` | はい | はい | エージェントステータスメッセージ | エージェントステータス更新を Slack または PagerDuty に送信する |

162| `Setup` | いいえ | はい | セッション設定/メンテナンス | 初期化タスクを実行する |

163| `TeammateIdle` | いいえ | はい | チームメイトがアイドル状態になる | 作業を再割り当てするか通知する |

164| `TaskCompleted` | いいえ | はい | バックグラウンドタスク完了 | 並列タスクから結果を集約する |

165| `ConfigChange` | いいえ | はい | 設定ファイル変更 | 設定を動的に再ロードする |

166| `WorktreeCreate` | いいえ | はい | Git ワークツリー作成 | 分離されたワークスペースを追跡する |

167| `WorktreeRemove` | いいえ | はい | Git ワークツリー削除 | ワークスペースリソースをクリーンアップする |

168 

169## フックを設定する

170 

171フックを設定するには、エージェントオプション(Python では `ClaudeAgentOptions`、TypeScript では `options` オブジェクト)の `hooks` フィールドに渡します。

172 

173<CodeGroup>

174 ```python Python theme={null}

175 options = ClaudeAgentOptions(

176 hooks={"PreToolUse": [HookMatcher(matcher="Bash", hooks=[my_callback])]}

177 )

178 

179 async with ClaudeSDKClient(options=options) as client:

180 await client.query("Your prompt")

181 async for message in client.receive_response():

182 print(message)

183 ```

184 

185 ```typescript TypeScript theme={null}

186 for await (const message of query({

187 prompt: "Your prompt",

188 options: {

189 hooks: {

190 PreToolUse: [{ matcher: "Bash", hooks: [myCallback] }]

191 }

192 }

193 })) {

194 console.log(message);

195 }

196 ```

197</CodeGroup>

198 

199`hooks` オプションは辞書(Python)またはオブジェクト(TypeScript)です。ここで:

200 

201* **キー**は[フックイベント名](#available-hooks)です(例:`'PreToolUse'`、`'PostToolUse'`、`'Stop'`)

202* **値**は[マッチャー](#matchers)の配列です。各マッチャーには、オプションのフィルタパターンと[コールバック関数](#callback-functions)が含まれます

203 

204### マッチャー

205 

206マッチャーを使用して、コールバックがいつ発火するかをフィルタリングします。`matcher` フィールドは、フックイベントタイプに応じて異なる値に対してマッチングされる正規表現文字列です。たとえば、ツールベースのフックはツール名に対してマッチングされ、`Notification` フックは通知タイプに対してマッチングされます。各イベントタイプのマッチャー値の完全なリストについては、[Claude Code フックリファレンス](/ja/hooks#matcher-patterns)を参照してください。

207 

208| オプション | 型 | デフォルト | 説明 |

209| --------- | ---------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

210| `matcher` | `string` | `undefined` | イベントのフィルタフィールドに対してマッチングされる正規表現パターン。ツールフックの場合、これはツール名です。組み込みツールには `Bash`、`Read`、`Write`、`Edit`、`Glob`、`Grep`、`WebFetch`、`Agent` などが含まれます(完全なリストについては[ツール入力型](/ja/agent-sdk/typescript#tool-input-types)を参照)。MCP ツールはパターン `mcp__<server>__<action>` を使用します。 |

211| `hooks` | `HookCallback[]` | - | 必須。パターンがマッチしたときに実行するコールバック関数の配列 |

212| `timeout` | `number` | `60` | タイムアウト(秒単位) |

213 

214可能な限り `matcher` パターンを使用して特定のツールをターゲットにします。`'Bash'` のマッチャーは Bash コマンドに対してのみ実行されますが、パターンを省略するとコールバックはそのイベントのすべての発生に対して実行されます。ツールベースのフックの場合、マッチャーは**ツール名**でのみフィルタリングされ、ファイルパスやその他の引数ではフィルタリングされません。ファイルパスでフィルタリングするには、コールバック内で `tool_input.file_path` をチェックします。

215 

216<Tip>

217 **ツール名の発見:** 組み込みツール名の完全なリストについては[ツール入力型](/ja/agent-sdk/typescript#tool-input-types)を参照するか、マッチャーなしでフックを追加して、セッションが行うすべてのツール呼び出しをログします。

218 

219 **MCP ツール命名:** MCP ツールは常に `mcp__` で始まり、その後にサーバー名とアクション `mcp__<server>__<action>` が続きます。たとえば、`playwright` という名前のサーバーを設定した場合、そのツールは `mcp__playwright__browser_screenshot`、`mcp__playwright__browser_click` などという名前になります。サーバー名は `mcpServers` 設定で使用するキーから取得されます。

220</Tip>

221 

222### コールバック関数

223 

224#### 入力

225 

226すべてのフックコールバックは 3 つの引数を受け取ります。

227 

228* **入力データ:** イベント詳細を含む型付きオブジェクト。各フック型には独自の入力形状があります(たとえば、`PreToolUseHookInput` には `tool_name` と `tool_input` が含まれ、`NotificationHookInput` には `message` が含まれます)。[TypeScript](/ja/agent-sdk/typescript#hook-input) および [Python](/ja/agent-sdk/python#hook-input) SDK リファレンスで完全な型定義を参照してください。

229 * すべてのフック入力は `session_id`、`cwd`、および `hook_event_name` を共有します。

230 * `agent_id` と `agent_type` は、フックがサブエージェント内で発火するときに入力されます。TypeScript では、これらはベースフック入力にあり、すべてのフック型で利用可能です。Python では、`PreToolUse`、`PostToolUse`、および `PostToolUseFailure` のみにあります。

231* **ツール使用 ID**(`str | None` / `string | undefined`):同じツール呼び出しの `PreToolUse` と `PostToolUse` イベントを相関させます。

232* **コンテキスト:** TypeScript では、キャンセル用の `signal` プロパティ(`AbortSignal`)を含みます。Python では、この引数は将来の使用のために予約されています。

233 

234#### 出力

235 

236コールバックは 2 つのカテゴリのフィールドを持つオブジェクトを返します。

237 

238* **トップレベルフィールド**は会話を制御します。`systemMessage` はモデルに表示される会話にメッセージを注入し、`continue`(Python では `continue_`)はこのフック後にエージェントが実行を続けるかどうかを決定します。

239* **`hookSpecificOutput`** は現在の操作を制御します。内部のフィールドはフックイベントタイプに依存します。`PreToolUse` フックの場合、ここで `permissionDecision`(`"allow"`、`"deny"`、または `"ask"`)、`permissionDecisionReason`、および `updatedInput` を設定します。TypeScript SDK では、`permissionDecision` は `"defer"` も受け入れて、クエリを終了し[後で再開](/ja/hooks#defer-a-tool-call-for-later)します。この値は Python SDK では利用できません。`PostToolUse` フックの場合、`additionalContext` を設定してツール結果に情報を追加できます。

240 

241変更なしで操作を許可するには `{}` を返します。SDK コールバックフックは、[Claude Code シェルコマンドフック](/ja/hooks#json-output)と同じ JSON 出力形式を使用します。これはすべてのフィールドとイベント固有のオプションを文書化しています。SDK 型定義については、[TypeScript](/ja/agent-sdk/typescript#sync-hook-json-output) および [Python](/ja/agent-sdk/python#sync-hook-json-output) SDK リファレンスを参照してください。

242 

243<Note>

244 複数のフックまたはパーミッションルールが適用される場合、**deny** は **defer** より優先され、**defer** は **ask** より優先され、**ask** は **allow** より優先されます。いずれかのフックが `deny` を返す場合、他のフックに関係なく操作はブロックされます。

245</Note>

246 

247#### 非同期出力

248 

249デフォルトでは、エージェントはコールバックが返されるのを待ってから続行します。フックが副作用(ログ、ウェブフック送信)を実行し、エージェントの動作に影響を与える必要がない場合、代わりに非同期出力を返すことができます。これはエージェントに、フックが完了するのを待たずに即座に続行するよう指示します。

250 

251<CodeGroup>

252 ```python Python theme={null}

253 async def async_hook(input_data, tool_use_id, context):

254 # バックグラウンドタスクを開始してから即座に返す

255 asyncio.create_task(send_to_logging_service(input_data))

256 return {"async_": True, "asyncTimeout": 30000}

257 ```

258 

259 ```typescript TypeScript theme={null}

260 const asyncHook: HookCallback = async (input, toolUseID, { signal }) => {

261 // バックグラウンドタスクを開始してから即座に返す

262 sendToLoggingService(input).catch(console.error);

263 return { async: true, asyncTimeout: 30000 };

264 };

265 ```

266</CodeGroup>

267 

268| フィールド | 型 | 説明 |

269| -------------- | -------- | ----------------------------------------------------------------------- |

270| `async` | `true` | 非同期モードを通知します。エージェントは待たずに続行します。Python では、予約キーワードを避けるために `async_` を使用します。 |

271| `asyncTimeout` | `number` | バックグラウンド操作のオプションのタイムアウト(ミリ秒単位) |

272 

273<Note>

274 非同期出力はエージェントが既に先に進んでいるため、ブロック、変更、またはコンテキストを注入することはできません。ログ、メトリクス、または通知などの副作用にのみ使用します。

275</Note>

276 

277## 例

278 

279### ツール入力を変更する

280 

281この例は Write ツール呼び出しをインターセプトし、`file_path` 引数を書き直して `/sandbox` を先頭に追加し、すべてのファイル書き込みをサンドボックスディレクトリにリダイレクトします。コールバックは変更されたパスで `updatedInput` を返し、`permissionDecision: 'allow'` を返して書き直された操作を自動承認します。

282 

283<CodeGroup>

284 ```python Python theme={null}

285 async def redirect_to_sandbox(input_data, tool_use_id, context):

286 if input_data["hook_event_name"] != "PreToolUse":

287 return {}

288 

289 if input_data["tool_name"] == "Write":

290 original_path = input_data["tool_input"].get("file_path", "")

291 return {

292 "hookSpecificOutput": {

293 "hookEventName": input_data["hook_event_name"],

294 "permissionDecision": "allow",

295 "updatedInput": {

296 **input_data["tool_input"],

297 "file_path": f"/sandbox{original_path}",

298 },

299 }

300 }

301 return {}

302 ```

303 

304 ```typescript TypeScript theme={null}

305 const redirectToSandbox: HookCallback = async (input, toolUseID, { signal }) => {

306 if (input.hook_event_name !== "PreToolUse") return {};

307 

308 const preInput = input as PreToolUseHookInput;

309 const toolInput = preInput.tool_input as Record<string, unknown>;

310 if (preInput.tool_name === "Write") {

311 const originalPath = toolInput.file_path as string;

312 return {

313 hookSpecificOutput: {

314 hookEventName: preInput.hook_event_name,

315 permissionDecision: "allow",

316 updatedInput: {

317 ...toolInput,

318 file_path: `/sandbox${originalPath}`

319 }

320 }

321 };

322 }

323 return {};

324 };

325 ```

326</CodeGroup>

327 

328<Note>

329 `updatedInput` を使用する場合、`permissionDecision: 'allow'` も含める必要があります。元の `tool_input` を変更するのではなく、常に新しいオブジェクトを返します。

330</Note>

331 

332### コンテキストを追加してツールをブロックする

333 

334この例は `/etc` ディレクトリへの書き込みの試みをブロックし、2 つの出力フィールドを一緒に使用します。`permissionDecision: 'deny'` はツール呼び出しを停止し、`systemMessage` は会話にリマインダーを注入して、エージェントが操作がブロックされた理由についてのコンテキストを受け取り、再試行を避けるようにします。

335 

336<CodeGroup>

337 ```python Python theme={null}

338 async def block_etc_writes(input_data, tool_use_id, context):

339 file_path = input_data["tool_input"].get("file_path", "")

340 

341 if file_path.startswith("/etc"):

342 return {

343 # トップレベルフィールド:会話にガイダンスを注入する

344 "systemMessage": "Remember: system directories like /etc are protected.",

345 # hookSpecificOutput:操作をブロックする

346 "hookSpecificOutput": {

347 "hookEventName": input_data["hook_event_name"],

348 "permissionDecision": "deny",

349 "permissionDecisionReason": "Writing to /etc is not allowed",

350 },

351 }

352 return {}

353 ```

354 

355 ```typescript TypeScript theme={null}

356 const blockEtcWrites: HookCallback = async (input, toolUseID, { signal }) => {

357 const preInput = input as PreToolUseHookInput;

358 const toolInput = preInput.tool_input as Record<string, unknown>;

359 const filePath = toolInput?.file_path as string;

360 

361 if (filePath?.startsWith("/etc")) {

362 return {

363 // トップレベルフィールド:会話にガイダンスを注入する

364 systemMessage: "Remember: system directories like /etc are protected.",

365 // hookSpecificOutput:操作をブロックする

366 hookSpecificOutput: {

367 hookEventName: preInput.hook_event_name,

368 permissionDecision: "deny",

369 permissionDecisionReason: "Writing to /etc is not allowed"

370 }

371 };

372 }

373 return {};

374 };

375 ```

376</CodeGroup>

377 

378### 特定のツールを自動承認する

379 

380デフォルトでは、エージェントは特定のツールを使用する前にパーミッションを求めるプロンプトを表示する場合があります。この例は、`permissionDecision: 'allow'` を返すことで読み取り専用ファイルシステムツール(Read、Glob、Grep)を自動承認し、ユーザー確認なしで実行できるようにしながら、他のすべてのツールは通常のパーミッションチェックの対象のままにします。

381 

382<CodeGroup>

383 ```python Python theme={null}

384 async def auto_approve_read_only(input_data, tool_use_id, context):

385 if input_data["hook_event_name"] != "PreToolUse":

386 return {}

387 

388 read_only_tools = ["Read", "Glob", "Grep"]

389 if input_data["tool_name"] in read_only_tools:

390 return {

391 "hookSpecificOutput": {

392 "hookEventName": input_data["hook_event_name"],

393 "permissionDecision": "allow",

394 "permissionDecisionReason": "Read-only tool auto-approved",

395 }

396 }

397 return {}

398 ```

399 

400 ```typescript TypeScript theme={null}

401 const autoApproveReadOnly: HookCallback = async (input, toolUseID, { signal }) => {

402 if (input.hook_event_name !== "PreToolUse") return {};

403 

404 const preInput = input as PreToolUseHookInput;

405 const readOnlyTools = ["Read", "Glob", "Grep"];

406 if (readOnlyTools.includes(preInput.tool_name)) {

407 return {

408 hookSpecificOutput: {

409 hookEventName: preInput.hook_event_name,

410 permissionDecision: "allow",

411 permissionDecisionReason: "Read-only tool auto-approved"

412 }

413 };

414 }

415 return {};

416 };

417 ```

418</CodeGroup>

419 

420### 複数のフックをチェーンする

421 

422フックは配列に表示される順序で実行されます。各フックを単一の責任に焦点を当てて、複雑なロジックのために複数のフックをチェーンします。

423 

424<CodeGroup>

425 ```python Python theme={null}

426 options = ClaudeAgentOptions(

427 hooks={

428 "PreToolUse": [

429 HookMatcher(hooks=[rate_limiter]), # 最初:レート制限をチェックする

430 HookMatcher(hooks=[authorization_check]), # 次:パーミッションを確認する

431 HookMatcher(hooks=[input_sanitizer]), # 3 番目:入力をサニタイズする

432 HookMatcher(hooks=[audit_logger]), # 最後:アクションをログする

433 ]

434 }

435 )

436 ```

437 

438 ```typescript TypeScript theme={null}

439 const options = {

440 hooks: {

441 PreToolUse: [

442 { hooks: [rateLimiter] }, // 最初:レート制限をチェックする

443 { hooks: [authorizationCheck] }, // 次:パーミッションを確認する

444 { hooks: [inputSanitizer] }, // 3 番目:入力をサニタイズする

445 { hooks: [auditLogger] } // 最後:アクションをログする

446 ]

447 }

448 };

449 ```

450</CodeGroup>

451 

452### 正規表現マッチャーでフィルタリングする

453 

454正規表現パターンを使用して複数のツールをマッチングします。この例は、異なるスコープを持つ 3 つのマッチャーを登録します。最初のマッチャーはファイル変更ツールに対してのみ `file_security_hook` をトリガーし、2 番目のマッチャーは任意の MCP ツール(名前が `mcp__` で始まるツール)に対して `mcp_audit_hook` をトリガーし、3 番目のマッチャーは名前に関係なくすべてのツール呼び出しに対して `global_logger` をトリガーします。

455 

456<CodeGroup>

457 ```python Python theme={null}

458 options = ClaudeAgentOptions(

459 hooks={

460 "PreToolUse": [

461 # ファイル変更ツールをマッチングする

462 HookMatcher(matcher="Write|Edit|Delete", hooks=[file_security_hook]),

463 # すべての MCP ツールをマッチングする

464 HookMatcher(matcher="^mcp__", hooks=[mcp_audit_hook]),

465 # すべてをマッチングする(マッチャーなし)

466 HookMatcher(hooks=[global_logger]),

467 ]

468 }

469 )

470 ```

471 

472 ```typescript TypeScript theme={null}

473 const options = {

474 hooks: {

475 PreToolUse: [

476 // ファイル変更ツールをマッチングする

477 { matcher: "Write|Edit|Delete", hooks: [fileSecurityHook] },

478 

479 // すべての MCP ツールをマッチングする

480 { matcher: "^mcp__", hooks: [mcpAuditHook] },

481 

482 // すべてをマッチングする(マッチャーなし)

483 { hooks: [globalLogger] }

484 ]

485 }

486 };

487 ```

488</CodeGroup>

489 

490### サブエージェントアクティビティを追跡する

491 

492`SubagentStop` フックを使用して、サブエージェントが作業を完了するときを監視します。[TypeScript](/ja/agent-sdk/typescript#hook-input) および [Python](/ja/agent-sdk/python#hook-input) SDK リファレンスで完全な入力型を参照してください。この例は、サブエージェントが完了するたびに概要をログします。

493 

494<CodeGroup>

495 ```python Python theme={null}

496 async def subagent_tracker(input_data, tool_use_id, context):

497 # サブエージェントが完了したときにサブエージェント詳細をログする

498 print(f"[SUBAGENT] Completed: {input_data['agent_id']}")

499 print(f" Transcript: {input_data['agent_transcript_path']}")

500 print(f" Tool use ID: {tool_use_id}")

501 print(f" Stop hook active: {input_data.get('stop_hook_active')}")

502 return {}

503 

504 

505 options = ClaudeAgentOptions(

506 hooks={"SubagentStop": [HookMatcher(hooks=[subagent_tracker])]}

507 )

508 ```

509 

510 ```typescript TypeScript theme={null}

511 import { HookCallback, SubagentStopHookInput } from "@anthropic-ai/claude-agent-sdk";

512 

513 const subagentTracker: HookCallback = async (input, toolUseID, { signal }) => {

514 // SubagentStopHookInput にキャストしてサブエージェント固有のフィールドにアクセスする

515 const subInput = input as SubagentStopHookInput;

516 

517 // サブエージェントが完了したときにサブエージェント詳細をログする

518 console.log(`[SUBAGENT] Completed: ${subInput.agent_id}`);

519 console.log(` Transcript: ${subInput.agent_transcript_path}`);

520 console.log(` Tool use ID: ${toolUseID}`);

521 console.log(` Stop hook active: ${subInput.stop_hook_active}`);

522 return {};

523 };

524 

525 const options = {

526 hooks: {

527 SubagentStop: [{ hooks: [subagentTracker] }]

528 }

529 };

530 ```

531</CodeGroup>

532 

533### フックから HTTP リクエストを行う

534 

535フックは HTTP リクエストなどの非同期操作を実行できます。フック内でエラーをキャッチして、処理されない例外がエージェントを中断しないようにします。

536 

537この例は、各ツールが完了した後にウェブフックを送信し、どのツールが実行されたかと実行時刻をログします。フックはエラーをキャッチして、失敗したウェブフックがエージェントを中断しないようにします。

538 

539<CodeGroup>

540 ```python Python theme={null}

541 import asyncio

542 import json

543 import urllib.request

544 from datetime import datetime

545 

546 

547 def _send_webhook(tool_name):

548 """外部ウェブフックにツール使用データを POST する同期ヘルパー。"""

549 data = json.dumps(

550 {

551 "tool": tool_name,

552 "timestamp": datetime.now().isoformat(),

553 }

554 ).encode()

555 req = urllib.request.Request(

556 "https://api.example.com/webhook",

557 data=data,

558 headers={"Content-Type": "application/json"},

559 method="POST",

560 )

561 urllib.request.urlopen(req)

562 

563 

564 async def webhook_notifier(input_data, tool_use_id, context):

565 # ツールが完了した後(PostToolUse)に発火し、前ではない

566 if input_data["hook_event_name"] != "PostToolUse":

567 return {}

568 

569 try:

570 # イベントループをブロックしないようにスレッドでブロッキング HTTP 呼び出しを実行する

571 await asyncio.to_thread(_send_webhook, input_data["tool_name"])

572 except Exception as e:

573 # エラーをログするが、発生させない。失敗したウェブフックはエージェントを停止すべきではない

574 print(f"Webhook request failed: {e}")

575 

576 return {}

577 ```

578 

579 ```typescript TypeScript theme={null}

580 import { query, HookCallback, PostToolUseHookInput } from "@anthropic-ai/claude-agent-sdk";

581 

582 const webhookNotifier: HookCallback = async (input, toolUseID, { signal }) => {

583 // ツールが完了した後(PostToolUse)に発火し、前ではない

584 if (input.hook_event_name !== "PostToolUse") return {};

585 

586 try {

587 await fetch("https://api.example.com/webhook", {

588 method: "POST",

589 headers: { "Content-Type": "application/json" },

590 body: JSON.stringify({

591 tool: (input as PostToolUseHookInput).tool_name,

592 timestamp: new Date().toISOString()

593 }),

594 // フックがタイムアウトした場合、リクエストがキャンセルされるように signal を渡す

595 signal

596 });

597 } catch (error) {

598 // キャンセルを他のエラーから分けて処理する

599 if (error instanceof Error && error.name === "AbortError") {

600 console.log("Webhook request cancelled");

601 }

602 // 再スローしない。失敗したウェブフックはエージェントを停止すべきではない

603 }

604 

605 return {};

606 };

607 

608 // PostToolUse フックとして登録する

609 for await (const message of query({

610 prompt: "Refactor the auth module",

611 options: {

612 hooks: {

613 PostToolUse: [{ hooks: [webhookNotifier] }]

614 }

615 }

616 })) {

617 console.log(message);

618 }

619 ```

620</CodeGroup>

621 

622### 通知を Slack に転送する

623 

624`Notification` フックを使用して、エージェントからのシステム通知を受け取り、外部サービスに転送します。通知は特定のイベントタイプに対して発火します。`permission_prompt`(Claude がパーミッションを必要とする)、`idle_prompt`(Claude が入力を待機している)、`auth_success`(認証が完了した)、および `elicitation_dialog`(Claude がユーザーにプロンプトを表示している)です。各通知には、人間が読める説明を含む `message` フィールドと、オプションで `title` が含まれます。

625 

626この例は、すべての通知を Slack チャネルに転送します。[Slack 受信ウェブフック URL](https://api.slack.com/messaging/webhooks) が必要です。これは、Slack ワークスペースにアプリを追加し、受信ウェブフックを有効にすることで作成します。

627 

628<CodeGroup>

629 ```python Python theme={null}

630 import asyncio

631 import json

632 import urllib.request

633 

634 from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, HookMatcher

635 

636 

637 def _send_slack_notification(message):

638 """受信ウェブフック経由で Slack にメッセージを送信する同期ヘルパー。"""

639 data = json.dumps({"text": f"Agent status: {message}"}).encode()

640 req = urllib.request.Request(

641 "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",

642 data=data,

643 headers={"Content-Type": "application/json"},

644 method="POST",

645 )

646 urllib.request.urlopen(req)

647 

648 

649 async def notification_handler(input_data, tool_use_id, context):

650 try:

651 # イベントループをブロックしないようにスレッドでブロッキング HTTP 呼び出しを実行する

652 await asyncio.to_thread(_send_slack_notification, input_data.get("message", ""))

653 except Exception as e:

654 print(f"Failed to send notification: {e}")

655 

656 # 空のオブジェクトを返す。通知フックはエージェント動作を変更しない

657 return {}

658 

659 

660 async def main():

661 options = ClaudeAgentOptions(

662 hooks={

663 # 通知イベントのフックを登録する(マッチャーは不要)

664 "Notification": [HookMatcher(hooks=[notification_handler])],

665 },

666 )

667 

668 async with ClaudeSDKClient(options=options) as client:

669 await client.query("Analyze this codebase")

670 async for message in client.receive_response():

671 print(message)

672 

673 

674 asyncio.run(main())

675 ```

676 

677 ```typescript TypeScript theme={null}

678 import { query, HookCallback, NotificationHookInput } from "@anthropic-ai/claude-agent-sdk";

679 

680 // 通知を Slack に送信するフックコールバックを定義する

681 const notificationHandler: HookCallback = async (input, toolUseID, { signal }) => {

682 // NotificationHookInput にキャストして message フィールドにアクセスする

683 const notification = input as NotificationHookInput;

684 

685 try {

686 // 通知メッセージを Slack 受信ウェブフックに POST する

687 await fetch("https://hooks.slack.com/services/YOUR/WEBHOOK/URL", {

688 method: "POST",

689 headers: { "Content-Type": "application/json" },

690 body: JSON.stringify({

691 text: `Agent status: ${notification.message}`

692 }),

693 // フックがタイムアウトした場合、リクエストがキャンセルされるように signal を渡す

694 signal

695 });

696 } catch (error) {

697 if (error instanceof Error && error.name === "AbortError") {

698 console.log("Notification cancelled");

699 } else {

700 console.error("Failed to send notification:", error);

701 }

702 }

703 

704 // 空のオブジェクトを返す。通知フックはエージェント動作を変更しない

705 return {};

706 };

707 

708 // 通知イベントのフックを登録する(マッチャーは不要)

709 for await (const message of query({

710 prompt: "Analyze this codebase",

711 options: {

712 hooks: {

713 Notification: [{ hooks: [notificationHandler] }]

714 }

715 }

716 })) {

717 console.log(message);

718 }

719 ```

720</CodeGroup>

721 

722## 一般的な問題を修正する

723 

724### フックが発火しない

725 

726* フックイベント名が正しく、大文字と小文字が区別されていることを確認します(`preToolUse` ではなく `PreToolUse`)

727* マッチャーパターンがツール名と正確にマッチしていることを確認します

728* フックが `options.hooks` の正しいイベントタイプの下にあることを確認します

729* `Stop` や `SubagentStop` などの非ツールフックの場合、マッチャーは異なるフィールドに対してマッチングされます([マッチャーパターン](/ja/hooks#matcher-patterns)を参照)

730* エージェントが [`max_turns`](/ja/agent-sdk/python#claude-agent-options) 制限に達するとセッションが終了する前にフックが実行される可能性があるため、フックが発火しない場合があります

731 

732### マッチャーが期待どおりにフィルタリングしない

733 

734マッチャーは**ツール名**のみをマッチングし、ファイルパスやその他の引数はマッチングしません。ファイルパスでフィルタリングするには、フック内で `tool_input.file_path` をチェックします。

735 

736```typescript theme={null}

737const myHook: HookCallback = async (input, toolUseID, { signal }) => {

738 const preInput = input as PreToolUseHookInput;

739 const toolInput = preInput.tool_input as Record<string, unknown>;

740 const filePath = toolInput?.file_path as string;

741 if (!filePath?.endsWith(".md")) return {}; // マークダウンファイル以外をスキップする

742 // マークダウンファイルを処理する...

743 return {};

744};

745```

746 

747### フックタイムアウト

748 

749* `HookMatcher` 設定で `timeout` 値を増やします

750* TypeScript で 3 番目のコールバック引数から `AbortSignal` を使用して、キャンセルを適切に処理します

751 

752### ツールが予期せずブロックされた

753 

754* `PreToolUse` フックすべてで `permissionDecision: 'deny'` を返していないかチェックします

755* フックにログを追加して、返している `permissionDecisionReason` を確認します

756* マッチャーパターンが広すぎないことを確認します(空のマッチャーはすべてのツールにマッチングします)

757 

758### 変更された入力が適用されない

759 

760* `updatedInput` が `hookSpecificOutput` の内部にあり、トップレベルにないことを確認します。

761 

762 ```typescript theme={null}

763 return {

764 hookSpecificOutput: {

765 hookEventName: "PreToolUse",

766 permissionDecision: "allow",

767 updatedInput: { command: "new command" }

768 }

769 };

770 ```

771 

772* 入力変更を有効にするには、`permissionDecision: 'allow'` も返す必要があります

773 

774* `hookSpecificOutput` に `hookEventName` を含めて、出力がどのフック型用かを識別します

775 

776### Python でセッションフックが利用できない

777 

778`SessionStart` と `SessionEnd` は TypeScript で SDK コールバックフックとして登録できますが、Python SDK では利用できません(`HookEvent` は除外されています)。Python では、設定ファイルで定義された[シェルコマンドフック](/ja/hooks#hook-events)としてのみ利用可能です(たとえば、`.claude/settings.json`)。SDK アプリケーションからシェルコマンドフックをロードするには、[`setting_sources`](/ja/agent-sdk/python#setting-source) または [`settingSources`](/ja/agent-sdk/typescript#setting-source) で適切な設定ソースを含めます。

779 

780<CodeGroup>

781 ```python Python theme={null}

782 options = ClaudeAgentOptions(

783 setting_sources=["project"], # フックを含む .claude/settings.json をロードする

784 )

785 ```

786 

787 ```typescript TypeScript theme={null}

788 const options = {

789 settingSources: ["project"] // フックを含む .claude/settings.json をロードする

790 };

791 ```

792</CodeGroup>

793 

794Python SDK コールバックとして初期化ロジックを実行するには、`client.receive_response()` からの最初のメッセージをトリガーとして使用します。

795 

796### サブエージェントパーミッションプロンプトが増加する

797 

798複数のサブエージェントを生成する場合、各サブエージェントは個別にパーミッションをリクエストする可能性があります。サブエージェントは親エージェントのパーミッションを自動的に継承しません。繰り返されるプロンプトを避けるには、`PreToolUse` フックを使用して特定のツールを自動承認するか、サブエージェントセッションに適用されるパーミッションルールを設定します。

799 

800### サブエージェントを使用した再帰的フックループ

801 

802サブエージェントを生成する `UserPromptSubmit` フックは、それらのサブエージェントが同じフックをトリガーする場合、無限ループを作成できます。これを防ぐには:

803 

804* サブエージェント指標をチェックしてからサブエージェントを生成する前にフック入力をチェックします

805* 共有変数またはセッション状態を使用して、既にサブエージェント内にいるかどうかを追跡します

806* フックをトップレベルエージェントセッションのみに実行するようにスコープします

807 

808### systemMessage が出力に表示されない

809 

810`systemMessage` フィールドはモデルが見るコンテキストを会話に追加しますが、すべての SDK 出力モードに表示されない場合があります。フック決定をアプリケーションに表示する必要がある場合は、別途ログするか、専用の出力チャネルを使用します。

811 

812## 関連リソース

813 

814* [Claude Code フックリファレンス](/ja/hooks):完全な JSON 入力/出力スキーマ、イベント文書、およびマッチャーパターン

815* [Claude Code フックガイド](/ja/hooks-guide):シェルコマンドフックの例とウォークスルー

816* [TypeScript SDK リファレンス](/ja/agent-sdk/typescript):フック型、入力/出力定義、および設定オプション

817* [Python SDK リファレンス](/ja/agent-sdk/python):フック型、入力/出力定義、および設定オプション

818* [パーミッション](/ja/agent-sdk/permissions):エージェントが何をできるかを制御します

819* [カスタムツール](/ja/agent-sdk/custom-tools):エージェント機能を拡張するツールを構築します

agent-sdk/hosting.md +142 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Agent SDK のホスティング

6 

7> 本番環境に Claude Agent SDK をデプロイしてホストする

8 

9Claude Agent SDK は従来のステートレス LLM API とは異なり、会話状態を維持し、永続的な環境でコマンドを実行します。このガイドでは、本番環境で SDK ベースのエージェントをデプロイするためのアーキテクチャ、ホスティングに関する考慮事項、およびベストプラクティスについて説明します。

10 

11<Info>

12 基本的なサンドボックス化を超えたセキュリティ強化(ネットワーク制御、認証情報管理、分離オプションを含む)については、[セキュアデプロイメント](/ja/agent-sdk/secure-deployment)を参照してください。

13</Info>

14 

15## ホスティング要件

16 

17### コンテナベースのサンドボックス化

18 

19セキュリティと分離のため、SDK はサンドボックス化されたコンテナ環境内で実行する必要があります。これにより、プロセス分離、リソース制限、ネットワーク制御、および一時的なファイルシステムが提供されます。

20 

21SDK は、コマンド実行のための[プログラマティックサンドボックス設定](/ja/agent-sdk/typescript#sandbox-settings)もサポートしています。

22 

23### システム要件

24 

25各 SDK インスタンスには以下が必要です:

26 

27* **ランタイム依存関係**

28 * Python SDK の場合は Python 3.10 以上、TypeScript SDK の場合は Node.js 18 以上

29 * 両方の SDK パッケージには、ホストプラットフォーム用のネイティブ Claude Code バイナリが含まれているため、生成された CLI に対して Claude Code または Node.js の個別インストールは不要です

30 

31* **リソース割り当て**

32 * 推奨:1GiB RAM、5GiB のディスク、および 1 CPU(タスクに応じて必要に応じて変更してください)

33 

34* **ネットワークアクセス**

35 * `api.anthropic.com` への送信 HTTPS

36 * オプション:MCP サーバーまたは外部ツールへのアクセス

37 

38## SDK アーキテクチャの理解

39 

40ステートレス API 呼び出しとは異なり、Claude Agent SDK は以下を行う**長時間実行プロセス**として動作します:

41 

42* **永続的なシェル環境でコマンドを実行**

43* **作業ディレクトリ内でファイル操作を管理**

44* **前の相互作用からのコンテキストでツール実行を処理**

45 

46## サンドボックスプロバイダーオプション

47 

48AI コード実行用のセキュアなコンテナ環境を専門とするいくつかのプロバイダーがあります:

49 

50* **[Modal Sandbox](https://modal.com/docs/guide/sandbox)** - [デモ実装](https://modal.com/docs/examples/claude-slack-gif-creator)

51* **[Cloudflare Sandboxes](https://github.com/cloudflare/sandbox-sdk)**

52* **[Daytona](https://www.daytona.io/)**

53* **[E2B](https://e2b.dev/)**

54* **[Fly Machines](https://fly.io/docs/machines/)**

55* **[Vercel Sandbox](https://vercel.com/docs/functions/sandbox)**

56 

57自己ホスト型オプション(Docker、gVisor、Firecracker)および詳細な分離設定については、[分離テクノロジー](/ja/agent-sdk/secure-deployment#isolation-technologies)を参照してください。

58 

59## 本番環境デプロイメントパターン

60 

61### パターン 1:エフェメラルセッション

62 

63各ユーザータスク用に新しいコンテナを作成し、完了時に破棄します。

64 

65ワンオフタスクに最適です。ユーザーはタスク完了中も AI と相互作用できますが、完了後はコンテナが破棄されます。

66 

67**例:**

68 

69* バグ調査と修正:関連するコンテキストを使用して特定の問題をデバッグして解決

70* 請求書処理:領収書/請求書からデータを抽出して会計システム用に構造化

71* 翻訳タスク:言語間でドキュメントまたはコンテンツバッチを翻訳

72* 画像/ビデオ処理:メディアファイルに変換、最適化を適用するか、メタデータを抽出

73 

74### パターン 2:長時間実行セッション

75 

76長時間実行タスク用に永続的なコンテナインスタンスを維持します。多くの場合、需要に基づいてコンテナ内で複数の Claude Agent プロセスを実行します。

77 

78ユーザー入力なしでアクションを実行するプロアクティブエージェント、コンテンツを提供するエージェント、または大量のメッセージを処理するエージェントに最適です。

79 

80**例:**

81 

82* メールエージェント:受信メールを監視し、コンテンツに基づいて自律的にトリアージ、応答、またはアクションを実行

83* サイトビルダー:ユーザーごとのカスタムウェブサイトをホストし、コンテナポート経由で提供されるライブ編集機能を備えています

84* 高頻度チャットボット:Slack などのプラットフォームからの継続的なメッセージストリームを処理し、迅速な応答時間が重要です

85 

86### パターン 3:ハイブリッドセッション

87 

88履歴と状態で水和されたエフェメラルコンテナ。データベースから、または SDK のセッション再開機能から取得される可能性があります。

89 

90ユーザーからの断続的な相互作用があり、作業をキックオフして作業完了時にスピンダウンするが、続行できるコンテナに最適です。

91 

92**例:**

93 

94* 個人プロジェクトマネージャー:断続的なチェックインで進行中のプロジェクトを管理するのに役立ち、タスク、決定、進捗のコンテキストを維持

95* 深い調査:数時間の調査タスクを実施し、調査結果を保存し、ユーザーが戻ったときに調査を再開

96* カスタマーサポートエージェント:複数の相互作用にまたがるサポートチケットを処理し、チケット履歴と顧客コンテキストを読み込みます

97 

98### パターン 4:単一コンテナ

99 

1001 つのグローバルコンテナで複数の Claude Agent SDK プロセスを実行します。

101 

102密接に協力する必要があるエージェントに最適です。これはおそらく最も人気のないパターンです。エージェントが互いに上書きするのを防ぐ必要があるためです。

103 

104**例:**

105 

106* **シミュレーション**:ビデオゲームなどのシミュレーション内で相互作用するエージェント。

107 

108## FAQ

109 

110### サンドボックスと通信するにはどうすればよいですか?

111 

112コンテナでホストする場合、SDK インスタンスと通信するためにポートを公開します。アプリケーションは外部クライアント用に HTTP/WebSocket エンドポイントを公開できますが、SDK はコンテナ内で内部的に実行されます。

113 

114### コンテナをホストするコストはいくらですか?

115 

116エージェントを提供する場合の主なコストはトークンです。コンテナはプロビジョニング内容に基づいて異なりますが、最小コストは実行時間あたり約 5 セントです。

117 

118### アイドルコンテナをシャットダウンするべきか、それとも温かく保つべきか?

119 

120これはおそらくプロバイダーに依存します。異なるサンドボックスプロバイダーは、アイドルタイムアウト後にサンドボックスがスピンダウンする可能性がある異なる基準を設定できます。

121ユーザーの応答がどのくらい頻繁に発生すると思われるかに基づいて、このタイムアウトを調整する必要があります。

122 

123### Claude Code CLI はどのくらいの頻度で更新する必要がありますか?

124 

125Claude Code CLI は semver でバージョン管理されているため、破壊的な変更はバージョン管理されます。

126 

127### コンテナの健全性とエージェントのパフォーマンスを監視するにはどうすればよいですか?

128 

129コンテナはサーバーであるため、バックエンド用に使用するのと同じログインフラストラクチャがコンテナで機能します。

130 

131### エージェントセッションはタイムアウトする前にどのくらい実行できますか?

132 

133エージェントセッションはタイムアウトしませんが、Claude がループに陥るのを防ぐために「maxTurns」プロパティを設定することを検討してください。

134 

135## 次のステップ

136 

137* [セキュアデプロイメント](/ja/agent-sdk/secure-deployment) - ネットワーク制御、認証情報管理、および分離強化

138* [TypeScript SDK - サンドボックス設定](/ja/agent-sdk/typescript#sandbox-settings) - プログラマティックにサンドボックスを設定

139* [セッションガイド](/ja/agent-sdk/sessions) - セッション管理について学習

140* [権限](/ja/agent-sdk/permissions) - ツール権限を設定

141* [コスト追跡](/ja/agent-sdk/cost-tracking) - API 使用状況を監視

142* [MCP 統合](/ja/agent-sdk/mcp) - カスタムツールで拡張

agent-sdk/overview.md +607 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Agent SDK の概要

6 

7> Claude Code をライブラリとして使用して、本番環境対応の AI エージェントを構築します

8 

9<Note>

10 Claude Code SDK は Claude Agent SDK に名前が変更されました。古い SDK から移行する場合は、[移行ガイド](/ja/agent-sdk/migration-guide)を参照してください。

11</Note>

12 

13ファイルを自動的に読み取り、コマンドを実行し、ウェブを検索し、コードを編集するなど、さらに多くのことができる AI エージェントを構築します。Agent SDK は、Claude Code を強化する同じツール、エージェントループ、およびコンテキスト管理を提供し、Python と TypeScript でプログラム可能です。

14 

15<Note>

16 Opus 4.7(`claude-opus-4-7`)には Agent SDK v0.2.111 以降が必要です。`thinking.type.enabled` API エラーが表示される場合は、[トラブルシューティング](/ja/agent-sdk/quickstart#troubleshooting)を参照してください。

17</Note>

18 

19<CodeGroup>

20 ```python Python theme={null}

21 import asyncio

22 from claude_agent_sdk import query, ClaudeAgentOptions

23 

24 

25 async def main():

26 async for message in query(

27 prompt="Find and fix the bug in auth.py",

28 options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"]),

29 ):

30 print(message) # Claude reads the file, finds the bug, edits it

31 

32 

33 asyncio.run(main())

34 ```

35 

36 ```typescript TypeScript theme={null}

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

38 

39 for await (const message of query({

40 prompt: "Find and fix the bug in auth.ts",

41 options: { allowedTools: ["Read", "Edit", "Bash"] }

42 })) {

43 console.log(message); // Claude reads the file, finds the bug, edits it

44 }

45 ```

46</CodeGroup>

47 

48Agent SDK には、ファイルの読み取り、コマンドの実行、コードの編集用の組み込みツールが含まれているため、ツール実行を実装することなく、エージェントはすぐに動作を開始できます。クイックスタートに進むか、SDK で構築された実際のエージェントを探索してください。

49 

50<CardGroup cols={2}>

51 <Card title="クイックスタート" icon="play" href="/ja/agent-sdk/quickstart">

52 数分でバグ修正エージェントを構築します

53 </Card>

54 

55 <Card title="エージェントの例" icon="star" href="https://github.com/anthropics/claude-agent-sdk-demos">

56 メールアシスタント、リサーチエージェント、その他

57 </Card>

58</CardGroup>

59 

60## はじめに

61 

62<Steps>

63 <Step title="SDK をインストールします">

64 <Tabs>

65 <Tab title="TypeScript">

66 ```bash theme={null}

67 npm install @anthropic-ai/claude-agent-sdk

68 ```

69 </Tab>

70 

71 <Tab title="Python">

72 ```bash theme={null}

73 pip install claude-agent-sdk

74 ```

75 </Tab>

76 </Tabs>

77 

78 <Note>

79 TypeScript SDK は、プラットフォーム用のネイティブ Claude Code バイナリをオプションの依存関係としてバンドルしているため、Claude Code を別途インストールする必要はありません。

80 </Note>

81 </Step>

82 

83 <Step title="API キーを設定します">

84 [Console](https://platform.claude.com/) から API キーを取得し、環境変数として設定します。

85 

86 ```bash theme={null}

87 export ANTHROPIC_API_KEY=your-api-key

88 ```

89 

90 SDK はサードパーティ API プロバイダーを介した認証もサポートしています。

91 

92 * **Amazon Bedrock**: `CLAUDE_CODE_USE_BEDROCK=1` 環境変数を設定し、AWS 認証情報を構成します

93 * **Google Vertex AI**: `CLAUDE_CODE_USE_VERTEX=1` 環境変数を設定し、Google Cloud 認証情報を構成します

94 * **Microsoft Azure**: `CLAUDE_CODE_USE_FOUNDRY=1` 環境変数を設定し、Azure 認証情報を構成します

95 

96 詳細については、[Bedrock](/ja/amazon-bedrock)、[Vertex AI](/ja/google-vertex-ai)、または [Azure AI Foundry](/ja/microsoft-foundry) のセットアップガイドを参照してください。

97 

98 <Note>

99 事前に承認されていない限り、Anthropic は、Claude Agent SDK で構築されたエージェントを含む、サードパーティ開発者が claude.ai ログインまたはレート制限を提供することを許可していません。代わりに、このドキュメントで説明されている API キー認証方法を使用してください。

100 </Note>

101 </Step>

102 

103 <Step title="最初のエージェントを実行します">

104 この例は、組み込みツールを使用して現在のディレクトリ内のファイルをリストするエージェントを作成します。

105 

106 <CodeGroup>

107 ```python Python theme={null}

108 import asyncio

109 from claude_agent_sdk import query, ClaudeAgentOptions

110 

111 

112 async def main():

113 async for message in query(

114 prompt="What files are in this directory?",

115 options=ClaudeAgentOptions(allowed_tools=["Bash", "Glob"]),

116 ):

117 if hasattr(message, "result"):

118 print(message.result)

119 

120 

121 asyncio.run(main())

122 ```

123 

124 ```typescript TypeScript theme={null}

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

126 

127 for await (const message of query({

128 prompt: "What files are in this directory?",

129 options: { allowedTools: ["Bash", "Glob"] }

130 })) {

131 if ("result" in message) console.log(message.result);

132 }

133 ```

134 </CodeGroup>

135 </Step>

136</Steps>

137 

138**構築する準備はできていますか?** [クイックスタート](/ja/agent-sdk/quickstart)に従って、数分でバグを見つけて修正するエージェントを作成します。

139 

140## 機能

141 

142Claude Code を強力にするすべてのものが SDK で利用可能です。

143 

144<Tabs>

145 <Tab title="組み込みツール">

146 エージェントは、ファイルの読み取り、コマンドの実行、コードベースの検索をすぐに実行できます。主要なツールは次のとおりです。

147 

148 | ツール | 機能 |

149 | --------------------------------------------------------------------------- | ---------------------------------------- |

150 | **Read** | 作業ディレクトリ内の任意のファイルを読み取ります |

151 | **Write** | 新しいファイルを作成します |

152 | **Edit** | 既存ファイルに正確な編集を加えます |

153 | **Bash** | ターミナルコマンド、スクリプト、git 操作を実行します |

154 | **Monitor** | バックグラウンドスクリプトを監視し、各出力行をイベントとして反応します |

155 | **Glob** | パターン(`**/*.ts`、`src/**/*.py`)でファイルを検索します |

156 | **Grep** | 正規表現でファイルコンテンツを検索します |

157 | **WebSearch** | 現在の情報をウェブで検索します |

158 | **WebFetch** | ウェブページコンテンツを取得して解析します |

159 | **[AskUserQuestion](/ja/agent-sdk/user-input#handle-clarifying-questions)** | 複数選択オプション付きで、ユーザーに明確化の質問をします |

160 

161 この例は、コードベースで TODO コメントを検索するエージェントを作成します。

162 

163 <CodeGroup>

164 ```python Python theme={null}

165 import asyncio

166 from claude_agent_sdk import query, ClaudeAgentOptions

167 

168 

169 async def main():

170 async for message in query(

171 prompt="Find all TODO comments and create a summary",

172 options=ClaudeAgentOptions(allowed_tools=["Read", "Glob", "Grep"]),

173 ):

174 if hasattr(message, "result"):

175 print(message.result)

176 

177 

178 asyncio.run(main())

179 ```

180 

181 ```typescript TypeScript theme={null}

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

183 

184 for await (const message of query({

185 prompt: "Find all TODO comments and create a summary",

186 options: { allowedTools: ["Read", "Glob", "Grep"] }

187 })) {

188 if ("result" in message) console.log(message.result);

189 }

190 ```

191 </CodeGroup>

192 </Tab>

193 

194 <Tab title="Hooks">

195 エージェントライフサイクルの重要なポイントでカスタムコードを実行します。SDK hooks はコールバック関数を使用して、エージェントの動作を検証、ログ、ブロック、または変換します。

196 

197 **利用可能な hooks:** `PreToolUse`、`PostToolUse`、`Stop`、`SessionStart`、`SessionEnd`、`UserPromptSubmit` など。

198 

199 この例は、すべてのファイル変更を監査ファイルにログします。

200 

201 <CodeGroup>

202 ```python Python theme={null}

203 import asyncio

204 from datetime import datetime

205 from claude_agent_sdk import query, ClaudeAgentOptions, HookMatcher

206 

207 

208 async def log_file_change(input_data, tool_use_id, context):

209 file_path = input_data.get("tool_input", {}).get("file_path", "unknown")

210 with open("./audit.log", "a") as f:

211 f.write(f"{datetime.now()}: modified {file_path}\n")

212 return {}

213 

214 

215 async def main():

216 async for message in query(

217 prompt="Refactor utils.py to improve readability",

218 options=ClaudeAgentOptions(

219 permission_mode="acceptEdits",

220 hooks={

221 "PostToolUse": [

222 HookMatcher(matcher="Edit|Write", hooks=[log_file_change])

223 ]

224 },

225 ),

226 ):

227 if hasattr(message, "result"):

228 print(message.result)

229 

230 

231 asyncio.run(main())

232 ```

233 

234 ```typescript TypeScript theme={null}

235 import { query, HookCallback } from "@anthropic-ai/claude-agent-sdk";

236 import { appendFile } from "fs/promises";

237 

238 const logFileChange: HookCallback = async (input) => {

239 const filePath = (input as any).tool_input?.file_path ?? "unknown";

240 await appendFile("./audit.log", `${new Date().toISOString()}: modified ${filePath}\n`);

241 return {};

242 };

243 

244 for await (const message of query({

245 prompt: "Refactor utils.py to improve readability",

246 options: {

247 permissionMode: "acceptEdits",

248 hooks: {

249 PostToolUse: [{ matcher: "Edit|Write", hooks: [logFileChange] }]

250 }

251 }

252 })) {

253 if ("result" in message) console.log(message.result);

254 }

255 ```

256 </CodeGroup>

257 

258 [hooks の詳細を学ぶ →](/ja/agent-sdk/hooks)

259 </Tab>

260 

261 <Tab title="サブエージェント">

262 特定のサブタスクを処理するために特化したエージェントを生成します。メインエージェントが作業を委譲し、サブエージェントが結果を報告します。

263 

264 特化した指示を持つカスタムエージェントを定義します。サブエージェントは Agent ツール経由で呼び出されるため、`allowedTools` に `Agent` を含めます。

265 

266 <CodeGroup>

267 ```python Python theme={null}

268 import asyncio

269 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition

270 

271 

272 async def main():

273 async for message in query(

274 prompt="Use the code-reviewer agent to review this codebase",

275 options=ClaudeAgentOptions(

276 allowed_tools=["Read", "Glob", "Grep", "Agent"],

277 agents={

278 "code-reviewer": AgentDefinition(

279 description="Expert code reviewer for quality and security reviews.",

280 prompt="Analyze code quality and suggest improvements.",

281 tools=["Read", "Glob", "Grep"],

282 )

283 },

284 ),

285 ):

286 if hasattr(message, "result"):

287 print(message.result)

288 

289 

290 asyncio.run(main())

291 ```

292 

293 ```typescript TypeScript theme={null}

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

295 

296 for await (const message of query({

297 prompt: "Use the code-reviewer agent to review this codebase",

298 options: {

299 allowedTools: ["Read", "Glob", "Grep", "Agent"],

300 agents: {

301 "code-reviewer": {

302 description: "Expert code reviewer for quality and security reviews.",

303 prompt: "Analyze code quality and suggest improvements.",

304 tools: ["Read", "Glob", "Grep"]

305 }

306 }

307 }

308 })) {

309 if ("result" in message) console.log(message.result);

310 }

311 ```

312 </CodeGroup>

313 

314 サブエージェントのコンテキスト内からのメッセージには `parent_tool_use_id` フィールドが含まれており、どのメッセージがどのサブエージェント実行に属しているかを追跡できます。

315 

316 [サブエージェントの詳細を学ぶ →](/ja/agent-sdk/subagents)

317 </Tab>

318 

319 <Tab title="MCP">

320 Model Context Protocol を介して外部システムに接続します。データベース、ブラウザ、API、および[数百以上](https://github.com/modelcontextprotocol/servers)。

321 

322 この例は、[Playwright MCP サーバー](https://github.com/microsoft/playwright-mcp)を接続して、エージェントにブラウザ自動化機能を提供します。

323 

324 <CodeGroup>

325 ```python Python theme={null}

326 import asyncio

327 from claude_agent_sdk import query, ClaudeAgentOptions

328 

329 

330 async def main():

331 async for message in query(

332 prompt="Open example.com and describe what you see",

333 options=ClaudeAgentOptions(

334 mcp_servers={

335 "playwright": {"command": "npx", "args": ["@playwright/mcp@latest"]}

336 }

337 ),

338 ):

339 if hasattr(message, "result"):

340 print(message.result)

341 

342 

343 asyncio.run(main())

344 ```

345 

346 ```typescript TypeScript theme={null}

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

348 

349 for await (const message of query({

350 prompt: "Open example.com and describe what you see",

351 options: {

352 mcpServers: {

353 playwright: { command: "npx", args: ["@playwright/mcp@latest"] }

354 }

355 }

356 })) {

357 if ("result" in message) console.log(message.result);

358 }

359 ```

360 </CodeGroup>

361 

362 [MCP の詳細を学ぶ →](/ja/agent-sdk/mcp)

363 </Tab>

364 

365 <Tab title="権限">

366 エージェントが使用できるツールを正確に制御します。安全な操作を許可し、危険な操作をブロックするか、機密アクションの承認を要求します。

367 

368 <Note>

369 対話的な承認プロンプトと `AskUserQuestion` ツールについては、[承認とユーザー入力の処理](/ja/agent-sdk/user-input)を参照してください。

370 </Note>

371 

372 この例は、コードを分析できるが変更できない読み取り専用エージェントを作成します。`allowed_tools` は `Read`、`Glob`、および `Grep` を事前承認します。

373 

374 <CodeGroup>

375 ```python Python theme={null}

376 import asyncio

377 from claude_agent_sdk import query, ClaudeAgentOptions

378 

379 

380 async def main():

381 async for message in query(

382 prompt="Review this code for best practices",

383 options=ClaudeAgentOptions(

384 allowed_tools=["Read", "Glob", "Grep"],

385 ),

386 ):

387 if hasattr(message, "result"):

388 print(message.result)

389 

390 

391 asyncio.run(main())

392 ```

393 

394 ```typescript TypeScript theme={null}

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

396 

397 for await (const message of query({

398 prompt: "Review this code for best practices",

399 options: {

400 allowedTools: ["Read", "Glob", "Grep"]

401 }

402 })) {

403 if ("result" in message) console.log(message.result);

404 }

405 ```

406 </CodeGroup>

407 

408 [権限の詳細を学ぶ →](/ja/agent-sdk/permissions)

409 </Tab>

410 

411 <Tab title="セッション">

412 複数の交換にわたってコンテキストを維持します。Claude は読み取ったファイル、実行した分析、および会話履歴を記憶します。後でセッションを再開するか、異なるアプローチを探索するためにフォークします。

413 

414 この例は、最初のクエリからセッション ID をキャプチャし、その後、完全なコンテキストで続行するために再開します。

415 

416 <CodeGroup>

417 ```python Python theme={null}

418 import asyncio

419 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage, ResultMessage

420 

421 

422 async def main():

423 session_id = None

424 

425 # First query: capture the session ID

426 async for message in query(

427 prompt="Read the authentication module",

428 options=ClaudeAgentOptions(allowed_tools=["Read", "Glob"]),

429 ):

430 if isinstance(message, SystemMessage) and message.subtype == "init":

431 session_id = message.data["session_id"]

432 

433 # Resume with full context from the first query

434 async for message in query(

435 prompt="Now find all places that call it", # "it" = auth module

436 options=ClaudeAgentOptions(resume=session_id),

437 ):

438 if isinstance(message, ResultMessage):

439 print(message.result)

440 

441 

442 asyncio.run(main())

443 ```

444 

445 ```typescript TypeScript theme={null}

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

447 

448 let sessionId: string | undefined;

449 

450 // First query: capture the session ID

451 for await (const message of query({

452 prompt: "Read the authentication module",

453 options: { allowedTools: ["Read", "Glob"] }

454 })) {

455 if (message.type === "system" && message.subtype === "init") {

456 sessionId = message.session_id;

457 }

458 }

459 

460 // Resume with full context from the first query

461 for await (const message of query({

462 prompt: "Now find all places that call it", // "it" = auth module

463 options: { resume: sessionId }

464 })) {

465 if ("result" in message) console.log(message.result);

466 }

467 ```

468 </CodeGroup>

469 

470 [セッションの詳細を学ぶ →](/ja/agent-sdk/sessions)

471 </Tab>

472</Tabs>

473 

474### Claude Code の機能

475 

476SDK はまた Claude Code のファイルシステムベースの構成をサポートしています。デフォルトオプションでは、SDK は作業ディレクトリの `.claude/` と `~/.claude/` からこれらを読み込みます。どのソースを読み込むかを制限するには、オプションで `setting_sources`(Python)または `settingSources`(TypeScript)を設定します。

477 

478| 機能 | 説明 | 場所 |

479| ------------------------------------------------ | --------------------------- | ----------------------------------- |

480| [Skills](/ja/agent-sdk/skills) | Markdown で定義された特化した機能 | `.claude/skills/*/SKILL.md` |

481| [Slash commands](/ja/agent-sdk/slash-commands) | 一般的なタスク用のカスタムコマンド | `.claude/commands/*.md` |

482| [Memory](/ja/agent-sdk/modifying-system-prompts) | プロジェクトコンテキストと指示 | `CLAUDE.md` または `.claude/CLAUDE.md` |

483| [Plugins](/ja/agent-sdk/plugins) | カスタムコマンド、エージェント、MCP サーバーで拡張 | `plugins` オプション経由でプログラム的に |

484 

485## Agent SDK と他の Claude ツールを比較します

486 

487Claude Platform は Claude で構築するための複数の方法を提供しています。Agent SDK がどのように適合するかは次のとおりです。

488 

489<Tabs>

490 <Tab title="Agent SDK vs Client SDK">

491 [Anthropic Client SDK](https://platform.claude.com/docs/ja/api/client-sdks) は直接 API アクセスを提供します。プロンプトを送信し、ツール実行を自分で実装します。**Agent SDK** は、組み込みツール実行を備えた Claude を提供します。

492 

493 Client SDK では、ツールループを実装します。Agent SDK では、Claude がそれを処理します。

494 

495 <CodeGroup>

496 ```python Python theme={null}

497 # Client SDK: You implement the tool loop

498 response = client.messages.create(...)

499 while response.stop_reason == "tool_use":

500 result = your_tool_executor(response.tool_use)

501 response = client.messages.create(tool_result=result, **params)

502 

503 # Agent SDK: Claude handles tools autonomously

504 async for message in query(prompt="Fix the bug in auth.py"):

505 print(message)

506 ```

507 

508 ```typescript TypeScript theme={null}

509 // Client SDK: You implement the tool loop

510 let response = await client.messages.create({ ...params });

511 while (response.stop_reason === "tool_use") {

512 const result = yourToolExecutor(response.tool_use);

513 response = await client.messages.create({ tool_result: result, ...params });

514 }

515 

516 // Agent SDK: Claude handles tools autonomously

517 for await (const message of query({ prompt: "Fix the bug in auth.ts" })) {

518 console.log(message);

519 }

520 ```

521 </CodeGroup>

522 </Tab>

523 

524 <Tab title="Agent SDK vs Claude Code CLI">

525 同じ機能、異なるインターフェース。

526 

527 | ユースケース | 最適な選択 |

528 | ------------ | ----- |

529 | インタラクティブな開発 | CLI |

530 | CI/CD パイプライン | SDK |

531 | カスタムアプリケーション | SDK |

532 | 1 回限りのタスク | CLI |

533 | 本番環境の自動化 | SDK |

534 

535 多くのチームは両方を使用しています。日常的な開発には CLI、本番環境には SDK を使用します。ワークフローはそれらの間で直接変換されます。

536 </Tab>

537 

538 <Tab title="Agent SDK vs Managed Agents">

539 [Managed Agents](https://platform.claude.com/docs/ja/managed-agents/overview) はホストされた REST API です。Anthropic がエージェントとサンドボックスを実行し、アプリケーションがイベントを送信して結果をストリーミングで返します。**Agent SDK** は、独自のプロセス内でエージェントループを実行するライブラリです。

540 

541 | | Agent SDK | Managed Agents |

542 | ----------------- | -------------------------------------------- | -------------------------------------------------------------- |

543 | **実行場所** | ユーザーのプロセス、ユーザーのインフラストラクチャ | Anthropic 管理インフラストラクチャ |

544 | **インターフェース** | Python または TypeScript ライブラリ | REST API |

545 | **エージェントが動作する場所** | ユーザーのインフラストラクチャ上のファイル | セッションごとの管理サンドボックス |

546 | **セッション状態** | ユーザーのファイルシステム上の JSONL | Anthropic ホスト型イベントログ |

547 | **カスタムツール** | インプロセス Python または TypeScript 関数 | Claude がツールをトリガーします。ユーザーが実行して結果を返します |

548 | **最適な用途** | ローカルプロトタイピング、ユーザーのファイルシステムとサービスで直接動作するエージェント | サンドボックスまたはセッションインフラストラクチャを運用する必要のない本番環境エージェント、長時間実行および非同期セッション |

549 

550 一般的なパスは、Agent SDK でローカルにプロトタイプを作成してから、本番環境用に Managed Agents に移行することです。

551 </Tab>

552</Tabs>

553 

554## 変更ログ

555 

556SDK の更新、バグ修正、および新機能の完全な変更ログを表示します。

557 

558* **TypeScript SDK**: [CHANGELOG.md を表示](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md)

559* **Python SDK**: [CHANGELOG.md を表示](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md)

560 

561## バグの報告

562 

563Agent SDK でバグまたは問題が発生した場合。

564 

565* **TypeScript SDK**: [GitHub で問題を報告](https://github.com/anthropics/claude-agent-sdk-typescript/issues)

566* **Python SDK**: [GitHub で問題を報告](https://github.com/anthropics/claude-agent-sdk-python/issues)

567 

568## ブランドガイドライン

569 

570Claude Agent SDK を統合するパートナーの場合、Claude ブランドの使用はオプションです。製品で Claude を参照する場合。

571 

572**許可されています:**

573 

574* 'Claude Agent'(ドロップダウンメニューに推奨)

575* 'Claude'(既に'Agents'というラベルが付いたメニュー内の場合)

576* '{YourAgentName} Powered by Claude'(既存のエージェント名がある場合)

577 

578**許可されていません:**

579 

580* 'Claude Code'または'Claude Code Agent'

581* Claude Code ブランドの ASCII アートまたは Claude Code を模倣する視覚要素

582 

583製品は独自のブランドを維持し、Claude Code または任意の Anthropic 製品のように見えるべきではありません。ブランドコンプライアンスに関する質問については、Anthropic [営業チーム](https://www.anthropic.com/contact-sales)に連絡してください。

584 

585## ライセンスと利用規約

586 

587Claude Agent SDK の使用は、[Anthropic の商用利用規約](https://www.anthropic.com/legal/commercial-terms)によって管理されます。これは、Claude Agent SDK を使用して、独自のカスタマーおよびエンドユーザーに利用可能にする製品およびサービスを強化する場合を含みます。ただし、特定のコンポーネントまたは依存関係が、そのコンポーネントの LICENSE ファイルに示されているように異なるライセンスの対象である場合を除きます。

588 

589## 次のステップ

590 

591<CardGroup cols={2}>

592 <Card title="クイックスタート" icon="play" href="/ja/agent-sdk/quickstart">

593 数分でバグを見つけて修正するエージェントを構築します

594 </Card>

595 

596 <Card title="エージェントの例" icon="star" href="https://github.com/anthropics/claude-agent-sdk-demos">

597 メールアシスタント、リサーチエージェント、その他

598 </Card>

599 

600 <Card title="TypeScript SDK" icon="code" href="/ja/agent-sdk/typescript">

601 完全な TypeScript API リファレンスと例

602 </Card>

603 

604 <Card title="Python SDK" icon="code" href="/ja/agent-sdk/python">

605 完全な Python API リファレンスと例

606 </Card>

607</CardGroup>

agent-sdk/plugins.md +342 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# SDK のプラグイン

6 

7> Agent SDK を通じてカスタムプラグインを読み込み、コマンド、エージェント、スキル、フックで Claude Code を拡張します

8 

9プラグインを使用すると、Claude Code をカスタム機能で拡張でき、プロジェクト全体で共有できます。Agent SDK を通じて、ローカルディレクトリからプログラムでプラグインを読み込み、カスタムスラッシュコマンド、エージェント、スキル、フック、MCP サーバーをエージェントセッションに追加できます。

10 

11## プラグインとは何ですか?

12 

13プラグインは Claude Code 拡張機能のパッケージであり、以下を含めることができます:

14 

15* **Skills**: Claude が自律的に使用するモデル呼び出し機能(`/skill-name` で呼び出すこともできます)

16* **Agents**: 特定のタスク用の専門的なサブエージェント

17* **Hooks**: ツール使用およびその他のイベントに応答するイベントハンドラー

18* **MCP servers**: Model Context Protocol 経由の外部ツール統合

19 

20<Note>

21 `commands/` ディレクトリはレガシー形式です。新しいプラグインには `skills/` を使用してください。Claude Code は後方互換性のために両方の形式をサポートし続けています。

22</Note>

23 

24プラグイン構造とプラグインの作成方法に関する完全な情報については、[Plugins](/ja/plugins) を参照してください。

25 

26## プラグインの読み込み

27 

28オプション設定でローカルファイルシステムパスを指定してプラグインを読み込みます。`type` フィールドは `"local"` である必要があります。これは SDK が受け入れる唯一の値です。[マーケットプレイス](/ja/plugin-marketplaces)またはリモートリポジトリを通じて配布されているプラグインを使用するには、まずダウンロードしてローカルディレクトリパスを指定してください。SDK は複数の場所から複数のプラグインを読み込むことをサポートしています。

29 

30<CodeGroup>

31 ```typescript TypeScript theme={null}

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

33 

34 for await (const message of query({

35 prompt: "Hello",

36 options: {

37 plugins: [

38 { type: "local", path: "./my-plugin" },

39 { type: "local", path: "/absolute/path/to/another-plugin" }

40 ]

41 }

42 })) {

43 // Plugin commands, agents, and other features are now available

44 }

45 ```

46 

47 ```python Python theme={null}

48 import asyncio

49 from claude_agent_sdk import query

50 

51 

52 async def main():

53 async for message in query(

54 prompt="Hello",

55 options={

56 "plugins": [

57 {"type": "local", "path": "./my-plugin"},

58 {"type": "local", "path": "/absolute/path/to/another-plugin"},

59 ]

60 },

61 ):

62 # Plugin commands, agents, and other features are now available

63 pass

64 

65 

66 asyncio.run(main())

67 ```

68</CodeGroup>

69 

70### パス指定

71 

72プラグインパスは以下のいずれかです:

73 

74* **相対パス**: 現在の作業ディレクトリを基準に解決されます(例:`"./plugins/my-plugin"`)

75* **絶対パス**: 完全なファイルシステムパス(例:`"/home/user/plugins/my-plugin"`)

76 

77<Note>

78 パスはプラグインのルートディレクトリ(`.claude-plugin/plugin.json` を含むディレクトリ)を指す必要があります。

79</Note>

80 

81## プラグインインストールの確認

82 

83プラグインが正常に読み込まれると、システム初期化メッセージに表示されます。プラグインが利用可能であることを確認できます:

84 

85<CodeGroup>

86 ```typescript TypeScript theme={null}

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

88 

89 for await (const message of query({

90 prompt: "Hello",

91 options: {

92 plugins: [{ type: "local", path: "./my-plugin" }]

93 }

94 })) {

95 if (message.type === "system" && message.subtype === "init") {

96 // Check loaded plugins

97 console.log("Plugins:", message.plugins);

98 // Example: [{ name: "my-plugin", path: "./my-plugin" }]

99 

100 // Check available commands from plugins

101 console.log("Commands:", message.slash_commands);

102 // Example: ["/help", "/compact", "my-plugin:custom-command"]

103 }

104 }

105 ```

106 

107 ```python Python theme={null}

108 import asyncio

109 from claude_agent_sdk import query

110 

111 

112 async def main():

113 async for message in query(

114 prompt="Hello", options={"plugins": [{"type": "local", "path": "./my-plugin"}]}

115 ):

116 if message.type == "system" and message.subtype == "init":

117 # Check loaded plugins

118 print("Plugins:", message.data.get("plugins"))

119 # Example: [{"name": "my-plugin", "path": "./my-plugin"}]

120 

121 # Check available commands from plugins

122 print("Commands:", message.data.get("slash_commands"))

123 # Example: ["/help", "/compact", "my-plugin:custom-command"]

124 

125 

126 asyncio.run(main())

127 ```

128</CodeGroup>

129 

130## プラグインスキルの使用

131 

132プラグインのスキルは競合を避けるためにプラグイン名で自動的に名前空間化されます。スラッシュコマンドとして呼び出される場合、形式は `plugin-name:skill-name` です。

133 

134<CodeGroup>

135 ```typescript TypeScript theme={null}

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

137 

138 // Load a plugin with a custom /greet skill

139 for await (const message of query({

140 prompt: "/my-plugin:greet", // Use plugin skill with namespace

141 options: {

142 plugins: [{ type: "local", path: "./my-plugin" }]

143 }

144 })) {

145 // Claude executes the custom greeting skill from the plugin

146 if (message.type === "assistant") {

147 console.log(message.message.content);

148 }

149 }

150 ```

151 

152 ```python Python theme={null}

153 import asyncio

154 from claude_agent_sdk import query, AssistantMessage, TextBlock

155 

156 

157 async def main():

158 # Load a plugin with a custom /greet skill

159 async for message in query(

160 prompt="/demo-plugin:greet", # Use plugin skill with namespace

161 options={"plugins": [{"type": "local", "path": "./plugins/demo-plugin"}]},

162 ):

163 # Claude executes the custom greeting skill from the plugin

164 if isinstance(message, AssistantMessage):

165 for block in message.content:

166 if isinstance(block, TextBlock):

167 print(f"Claude: {block.text}")

168 

169 

170 asyncio.run(main())

171 ```

172</CodeGroup>

173 

174<Note>

175 CLI 経由でプラグインをインストールした場合(例:`/plugin install my-plugin@marketplace`)、SDK でそのインストールパスを指定することで引き続き使用できます。CLI でインストールされたプラグインについては `~/.claude/plugins/` を確認してください。

176</Note>

177 

178## 完全な例

179 

180プラグインの読み込みと使用を示す完全な例を以下に示します:

181 

182<CodeGroup>

183 ```typescript TypeScript theme={null}

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

185 import * as path from "path";

186 

187 async function runWithPlugin() {

188 const pluginPath = path.join(__dirname, "plugins", "my-plugin");

189 

190 console.log("Loading plugin from:", pluginPath);

191 

192 for await (const message of query({

193 prompt: "What custom commands do you have available?",

194 options: {

195 plugins: [{ type: "local", path: pluginPath }],

196 maxTurns: 3

197 }

198 })) {

199 if (message.type === "system" && message.subtype === "init") {

200 console.log("Loaded plugins:", message.plugins);

201 console.log("Available commands:", message.slash_commands);

202 }

203 

204 if (message.type === "assistant") {

205 console.log("Assistant:", message.message.content);

206 }

207 }

208 }

209 

210 runWithPlugin().catch(console.error);

211 ```

212 

213 ```python Python theme={null}

214 #!/usr/bin/env python3

215 """Example demonstrating how to use plugins with the Agent SDK."""

216 

217 from pathlib import Path

218 import anyio

219 from claude_agent_sdk import (

220 AssistantMessage,

221 ClaudeAgentOptions,

222 TextBlock,

223 query,

224 )

225 

226 

227 async def run_with_plugin():

228 """Example using a custom plugin."""

229 plugin_path = Path(__file__).parent / "plugins" / "demo-plugin"

230 

231 print(f"Loading plugin from: {plugin_path}")

232 

233 options = ClaudeAgentOptions(

234 plugins=[{"type": "local", "path": str(plugin_path)}],

235 max_turns=3,

236 )

237 

238 async for message in query(

239 prompt="What custom commands do you have available?", options=options

240 ):

241 if message.type == "system" and message.subtype == "init":

242 print(f"Loaded plugins: {message.data.get('plugins')}")

243 print(f"Available commands: {message.data.get('slash_commands')}")

244 

245 if isinstance(message, AssistantMessage):

246 for block in message.content:

247 if isinstance(block, TextBlock):

248 print(f"Assistant: {block.text}")

249 

250 

251 if __name__ == "__main__":

252 anyio.run(run_with_plugin)

253 ```

254</CodeGroup>

255 

256## プラグイン構造リファレンス

257 

258プラグインディレクトリには `.claude-plugin/plugin.json` マニフェストファイルが含まれている必要があります。オプションで以下を含めることができます:

259 

260```text theme={null}

261my-plugin/

262├── .claude-plugin/

263│ └── plugin.json # Required: plugin manifest

264├── skills/ # Agent Skills (invoked autonomously or via /skill-name)

265│ └── my-skill/

266│ └── SKILL.md

267├── commands/ # Legacy: use skills/ instead

268│ └── custom-cmd.md

269├── agents/ # Custom agents

270│ └── specialist.md

271├── hooks/ # Event handlers

272│ └── hooks.json

273└── .mcp.json # MCP server definitions

274```

275 

276プラグイン作成の詳細については、以下を参照してください:

277 

278* [Plugins](/ja/plugins) - プラグイン開発の完全ガイド

279* [Plugins reference](/ja/plugins-reference) - 技術仕様とスキーマ

280 

281## 一般的なユースケース

282 

283### 開発とテスト

284 

285グローバルにインストールせずに開発中にプラグインを読み込みます:

286 

287```typescript theme={null}

288plugins: [{ type: "local", path: "./dev-plugins/my-plugin" }];

289```

290 

291### プロジェクト固有の拡張機能

292 

293チーム全体の一貫性のためにプラグインをプロジェクトリポジトリに含めます:

294 

295```typescript theme={null}

296plugins: [{ type: "local", path: "./project-plugins/team-workflows" }];

297```

298 

299### 複数のプラグインソース

300 

301異なる場所からプラグインを組み合わせます:

302 

303```typescript theme={null}

304plugins: [

305 { type: "local", path: "./local-plugin" },

306 { type: "local", path: "~/.claude/custom-plugins/shared-plugin" }

307];

308```

309 

310## トラブルシューティング

311 

312### プラグインが読み込まれない

313 

314プラグインが初期化メッセージに表示されない場合:

315 

3161. **パスを確認する**: パスがプラグインルートディレクトリ(`.claude-plugin/` を含む)を指していることを確認してください

3172. **plugin.json を検証する**: マニフェストファイルが有効な JSON 構文を持っていることを確認してください

3183. **ファイルパーミッションを確認する**: プラグインディレクトリが読み取り可能であることを確認してください

319 

320### スキルが表示されない

321 

322プラグインスキルが機能しない場合:

323 

3241. **名前空間を使用する**: プラグインスキルはスラッシュコマンドとして呼び出される場合、`plugin-name:skill-name` 形式が必要です

3252. **初期化メッセージを確認する**: スキルが正しい名前空間で `slash_commands` に表示されることを確認してください

3263. **スキルファイルを検証する**: 各スキルが `skills/` の下の独自のサブディレクトリに `SKILL.md` ファイルを持っていることを確認してください(例:`skills/my-skill/SKILL.md`)

327 

328### パス解決の問題

329 

330相対パスが機能しない場合:

331 

3321. **作業ディレクトリを確認する**: 相対パスは現在の作業ディレクトリから解決されます

3332. **絶対パスを使用する**: 信頼性のために、絶対パスの使用を検討してください

3343. **パスを正規化する**: パスユーティリティを使用してパスを正しく構築してください

335 

336## 関連項目

337 

338* [Plugins](/ja/plugins) - プラグイン開発の完全ガイド

339* [Plugins reference](/ja/plugins-reference) - 技術仕様

340* [Slash Commands](/ja/agent-sdk/slash-commands) - SDK でのスラッシュコマンドの使用

341* [Subagents](/ja/agent-sdk/subagents) - 専門的なエージェントの操作

342* [Skills](/ja/agent-sdk/skills) - Agent Skills の使用

agent-sdk/python.md +3275 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Agent SDK リファレンス - Python

6 

7> Python Agent SDK の完全な API リファレンス。すべての関数、型、クラスを含みます。

8 

9## インストール

10 

11```bash theme={null}

12pip install claude-agent-sdk

13```

14 

15## `query()` と `ClaudeSDKClient` の選択

16 

17Python SDK は Claude Code と対話するための 2 つの方法を提供します。

18 

19### クイック比較

20 

21| 機能 | `query()` | `ClaudeSDKClient` |

22| :------------ | :------------ | :---------------- |

23| **セッション** | 毎回新しいセッションを作成 | 同じセッションを再利用 |

24| **会話** | 単一の交換 | 同じコンテキスト内の複数の交換 |

25| **接続** | 自動的に管理 | 手動制御 |

26| **ストリーミング入力** | ✅ サポート | ✅ サポート |

27| **割り込み** | ❌ サポートなし | ✅ サポート |

28| **Hooks** | ✅ サポート | ✅ サポート |

29| **カスタムツール** | ✅ サポート | ✅ サポート |

30| **会話を続ける** | ❌ 毎回新しいセッション | ✅ 会話を保持 |

31| **ユースケース** | 1 回限りのタスク | 継続的な会話 |

32 

33### `query()` を使用する場合(毎回新しいセッション)

34 

35**最適な用途:**

36 

37* 会話履歴が不要な 1 回限りの質問

38* 前の交換からのコンテキストが不要な独立したタスク

39* シンプルな自動化スクリプト

40* 毎回新しく開始したい場合

41 

42### `ClaudeSDKClient` を使用する場合(継続的な会話)

43 

44**最適な用途:**

45 

46* **会話を続ける** - Claude がコンテキストを記憶する必要がある場合

47* **フォローアップ質問** - 前の回答に基づいて構築する

48* **インタラクティブなアプリケーション** - チャットインターフェース、REPL

49* **応答駆動ロジック** - 次のアクションが Claude の応答に依存する場合

50* **セッション制御** - 会話ライフサイクルを明示的に管理する

51 

52## 関数

53 

54### `query()`

55 

56Claude Code との各インタラクションのために新しいセッションを作成します。メッセージが到着するにつれて生成される非同期イテレータを返します。`query()` への各呼び出しは、前のインタラクションのメモリなしで新しく開始します。

57 

58```python theme={null}

59async def query(

60 *,

61 prompt: str | AsyncIterable[dict[str, Any]],

62 options: ClaudeAgentOptions | None = None,

63 transport: Transport | None = None

64) -> AsyncIterator[Message]

65```

66 

67#### パラメータ

68 

69| パラメータ | 型 | 説明 |

70| :---------- | :--------------------------- | :------------------------------------------------------ |

71| `prompt` | `str \| AsyncIterable[dict]` | 入力プロンプト(文字列またはストリーミングモード用の非同期イテレータ) |

72| `options` | `ClaudeAgentOptions \| None` | オプションの設定オブジェクト(None の場合は `ClaudeAgentOptions()` がデフォルト) |

73| `transport` | `Transport \| None` | CLI プロセスとの通信用のオプションのカスタムトランスポート |

74 

75#### 戻り値

76 

77会話からのメッセージを生成する `AsyncIterator[Message]` を返します。

78 

79#### 例 - オプション付き

80 

81```python theme={null}

82import asyncio

83from claude_agent_sdk import query, ClaudeAgentOptions

84 

85 

86async def main():

87 options = ClaudeAgentOptions(

88 system_prompt="You are an expert Python developer",

89 permission_mode="acceptEdits",

90 cwd="/home/user/project",

91 )

92 

93 async for message in query(prompt="Create a Python web server", options=options):

94 print(message)

95 

96 

97asyncio.run(main())

98```

99 

100### `tool()`

101 

102型安全性を備えた MCP ツールを定義するためのデコレータ。

103 

104```python theme={null}

105def tool(

106 name: str,

107 description: str,

108 input_schema: type | dict[str, Any],

109 annotations: ToolAnnotations | None = None

110) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]

111```

112 

113#### パラメータ

114 

115| パラメータ | 型 | 説明 |

116| :------------- | :----------------------------------------------- | :------------------------------------- |

117| `name` | `str` | ツールの一意の識別子 |

118| `description` | `str` | ツールが何をするかの人間が読める説明 |

119| `input_schema` | `type \| dict[str, Any]` | ツールの入力パラメータを定義するスキーマ(以下を参照) |

120| `annotations` | [`ToolAnnotations`](#tool-annotations)` \| None` | クライアントに動作ヒントを提供するオプションの MCP ツールアノテーション |

121 

122#### 入力スキーマオプション

123 

1241. **シンプルな型マッピング**(推奨):

125 

126 ```python theme={null}

127 {"text": str, "count": int, "enabled": bool}

128 ```

129 

1302. **JSON Schema 形式**(複雑な検証用):

131 ```python theme={null}

132 {

133 "type": "object",

134 "properties": {

135 "text": {"type": "string"},

136 "count": {"type": "integer", "minimum": 0},

137 },

138 "required": ["text"],

139 }

140 ```

141 

142#### 戻り値

143 

144ツール実装をラップし、`SdkMcpTool` インスタンスを返すデコレータ関数。

145 

146#### 例

147 

148```python theme={null}

149from claude_agent_sdk import tool

150from typing import Any

151 

152 

153@tool("greet", "Greet a user", {"name": str})

154async def greet(args: dict[str, Any]) -> dict[str, Any]:

155 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}

156```

157 

158#### `ToolAnnotations`

159 

160`mcp.types` から再エクスポート(`from claude_agent_sdk import ToolAnnotations` としても利用可能)。すべてのフィールドはオプションのヒントです。クライアントはセキュリティ決定のためにこれらに依存すべきではありません。

161 

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

163| :---------------- | :------------- | :------ | :---------------------------------------------------------------------------- |

164| `title` | `str \| None` | `None` | ツールの人間が読める題名 |

165| `readOnlyHint` | `bool \| None` | `False` | `True` の場合、ツールはその環境を変更しません |

166| `destructiveHint` | `bool \| None` | `True` | `True` の場合、ツールは破壊的な更新を実行する可能性があります(`readOnlyHint` が `False` の場合のみ意味があります) |

167| `idempotentHint` | `bool \| None` | `False` | `True` の場合、同じ引数での繰り返し呼び出しは追加の効果がありません(`readOnlyHint` が `False` の場合のみ意味があります) |

168| `openWorldHint` | `bool \| None` | `True` | `True` の場合、ツールは外部エンティティと対話します(例:Web 検索)。`False` の場合、ツールのドメインは閉じています(例:メモリツール) |

169 

170```python theme={null}

171from claude_agent_sdk import tool, ToolAnnotations

172from typing import Any

173 

174 

175@tool(

176 "search",

177 "Search the web",

178 {"query": str},

179 annotations=ToolAnnotations(readOnlyHint=True, openWorldHint=True),

180)

181async def search(args: dict[str, Any]) -> dict[str, Any]:

182 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}

183```

184 

185### `create_sdk_mcp_server()`

186 

187Python アプリケーション内で実行されるインプロセス MCP サーバーを作成します。

188 

189```python theme={null}

190def create_sdk_mcp_server(

191 name: str,

192 version: str = "1.0.0",

193 tools: list[SdkMcpTool[Any]] | None = None

194) -> McpSdkServerConfig

195```

196 

197#### パラメータ

198 

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

200| :-------- | :------------------------------ | :-------- | :--------------------------- |

201| `name` | `str` | - | サーバーの一意の識別子 |

202| `version` | `str` | `"1.0.0"` | サーバーバージョン文字列 |

203| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | `@tool` デコレータで作成されたツール関数のリスト |

204 

205#### 戻り値

206 

207`ClaudeAgentOptions.mcp_servers` に渡すことができる `McpSdkServerConfig` オブジェクトを返します。

208 

209#### 例

210 

211```python theme={null}

212from claude_agent_sdk import tool, create_sdk_mcp_server

213 

214 

215@tool("add", "Add two numbers", {"a": float, "b": float})

216async def add(args):

217 return {"content": [{"type": "text", "text": f"Sum: {args['a'] + args['b']}"}]}

218 

219 

220@tool("multiply", "Multiply two numbers", {"a": float, "b": float})

221async def multiply(args):

222 return {"content": [{"type": "text", "text": f"Product: {args['a'] * args['b']}"}]}

223 

224 

225calculator = create_sdk_mcp_server(

226 name="calculator",

227 version="2.0.0",

228 tools=[add, multiply], # Pass decorated functions

229)

230 

231# Use with Claude

232options = ClaudeAgentOptions(

233 mcp_servers={"calc": calculator},

234 allowed_tools=["mcp__calc__add", "mcp__calc__multiply"],

235)

236```

237 

238### `list_sessions()`

239 

240メタデータを含む過去のセッションをリストします。プロジェクトディレクトリでフィルタするか、すべてのプロジェクト全体のセッションをリストします。同期的です。すぐに返します。

241 

242```python theme={null}

243def list_sessions(

244 directory: str | None = None,

245 limit: int | None = None,

246 include_worktrees: bool = True

247) -> list[SDKSessionInfo]

248```

249 

250#### パラメータ

251 

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

253| :------------------ | :------------ | :----- | :---------------------------------------------------------- |

254| `directory` | `str \| None` | `None` | セッションをリストするディレクトリ。省略した場合、すべてのプロジェクト全体のセッションを返します |

255| `limit` | `int \| None` | `None` | 返すセッションの最大数 |

256| `include_worktrees` | `bool` | `True` | `directory` が git リポジトリ内にある場合、すべての worktree パスからのセッションを含めます |

257 

258#### 戻り値の型:`SDKSessionInfo`

259 

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

261| :-------------- | :------------ | :---------------------------------------------------- |

262| `session_id` | `str` | 一意のセッション識別子 |

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

264| `last_modified` | `int` | エポック以降のミリ秒単位での最後の変更時刻 |

265| `file_size` | `int \| None` | セッションファイルサイズ(バイト)(リモートストレージバックエンドの場合は `None`) |

266| `custom_title` | `str \| None` | ユーザーが設定したセッションタイトル |

267| `first_prompt` | `str \| None` | セッション内の最初の意味のあるユーザープロンプト |

268| `git_branch` | `str \| None` | セッション終了時の Git ブランチ |

269| `cwd` | `str \| None` | セッションの作業ディレクトリ |

270| `tag` | `str \| None` | ユーザーが設定したセッションタグ([`tag_session()`](#tag-session) を参照) |

271| `created_at` | `int \| None` | エポック以降のミリ秒単位でのセッション作成時刻 |

272 

273#### 例

274 

275プロジェクトの 10 個の最新セッションを出力します。結果は `last_modified` の降順でソートされるため、最初の項目が最新です。`directory` を省略するとすべてのプロジェクト全体を検索します。

276 

277```python theme={null}

278from claude_agent_sdk import list_sessions

279 

280for session in list_sessions(directory="/path/to/project", limit=10):

281 print(f"{session.summary} ({session.session_id})")

282```

283 

284### `get_session_messages()`

285 

286過去のセッションからメッセージを取得します。同期的です。すぐに返します。

287 

288```python theme={null}

289def get_session_messages(

290 session_id: str,

291 directory: str | None = None,

292 limit: int | None = None,

293 offset: int = 0

294) -> list[SessionMessage]

295```

296 

297#### パラメータ

298 

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

300| :----------- | :------------ | :----- | :--------------------------------------- |

301| `session_id` | `str` | 必須 | メッセージを取得するセッション ID |

302| `directory` | `str \| None` | `None` | 検索するプロジェクトディレクトリ。省略した場合、すべてのプロジェクトを検索します |

303| `limit` | `int \| None` | `None` | 返すメッセージの最大数 |

304| `offset` | `int` | `0` | 開始から スキップするメッセージ数 |

305 

306#### 戻り値の型:`SessionMessage`

307 

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

309| :------------------- | :----------------------------- | :------------ |

310| `type` | `Literal["user", "assistant"]` | メッセージロール |

311| `uuid` | `str` | 一意のメッセージ識別子 |

312| `session_id` | `str` | セッション識別子 |

313| `message` | `Any` | 生のメッセージコンテンツ |

314| `parent_tool_use_id` | `None` | 将来の使用のために予約済み |

315 

316#### 例

317 

318```python theme={null}

319from claude_agent_sdk import list_sessions, get_session_messages

320 

321sessions = list_sessions(limit=1)

322if sessions:

323 messages = get_session_messages(sessions[0].session_id)

324 for msg in messages:

325 print(f"[{msg.type}] {msg.uuid}")

326```

327 

328### `get_session_info()`

329 

330プロジェクトディレクトリ全体をスキャンせずに、ID でシングルセッションのメタデータを読み取ります。同期的です。すぐに返します。

331 

332```python theme={null}

333def get_session_info(

334 session_id: str,

335 directory: str | None = None,

336) -> SDKSessionInfo | None

337```

338 

339#### パラメータ

340 

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

342| :----------- | :------------ | :----- | :------------------------------------------- |

343| `session_id` | `str` | 必須 | 検索するセッションの UUID |

344| `directory` | `str \| None` | `None` | プロジェクトディレクトリパス。省略した場合、すべてのプロジェクトディレクトリを検索します |

345 

346[`SDKSessionInfo`](#return-type-sdk-session-info) を返すか、セッションが見つからない場合は `None`。

347 

348#### 例

349 

350プロジェクトディレクトリをスキャンせずに、シングルセッションのメタデータを検索します。前の実行からセッション ID を既に持っている場合に便利です。

351 

352```python theme={null}

353from claude_agent_sdk import get_session_info

354 

355info = get_session_info("550e8400-e29b-41d4-a716-446655440000")

356if info:

357 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")

358```

359 

360### `rename_session()`

361 

362カスタムタイトルエントリを追加することでセッションの名前を変更します。繰り返し呼び出しは安全です。最新のタイトルが優先されます。同期的です。

363 

364```python theme={null}

365def rename_session(

366 session_id: str,

367 title: str,

368 directory: str | None = None,

369) -> None

370```

371 

372#### パラメータ

373 

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

375| :----------- | :------------ | :----- | :------------------------------------------- |

376| `session_id` | `str` | 必須 | 名前を変更するセッションの UUID |

377| `title` | `str` | 必須 | 新しいタイトル。空白をストリップした後、空でない必要があります |

378| `directory` | `str \| None` | `None` | プロジェクトディレクトリパス。省略した場合、すべてのプロジェクトディレクトリを検索します |

379 

380`session_id` が有効な UUID でない場合、または `title` が空の場合は `ValueError` を発生させます。セッションが見つからない場合は `FileNotFoundError`。

381 

382#### 例

383 

384最新のセッションの名前を変更して、後で見つけやすくします。新しいタイトルは、その後の読み取りで [`SDKSessionInfo.custom_title`](#return-type-sdk-session-info) に表示されます。

385 

386```python theme={null}

387from claude_agent_sdk import list_sessions, rename_session

388 

389sessions = list_sessions(directory="/path/to/project", limit=1)

390if sessions:

391 rename_session(sessions[0].session_id, "Refactor auth module")

392```

393 

394### `tag_session()`

395 

396セッションにタグを付けます。`None` を渡してタグをクリアします。繰り返し呼び出しは安全です。最新のタグが優先されます。同期的です。

397 

398```python theme={null}

399def tag_session(

400 session_id: str,

401 tag: str | None,

402 directory: str | None = None,

403) -> None

404```

405 

406#### パラメータ

407 

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

409| :----------- | :------------ | :----- | :---------------------------------------------- |

410| `session_id` | `str` | 必須 | タグを付けるセッションの UUID |

411| `tag` | `str \| None` | 必須 | タグ文字列、またはクリアする場合は `None`。保存前に Unicode サニタイズされます |

412| `directory` | `str \| None` | `None` | プロジェクトディレクトリパス。省略した場合、すべてのプロジェクトディレクトリを検索します |

413 

414`session_id` が有効な UUID でない場合、またはサニタイズ後に `tag` が空の場合は `ValueError` を発生させます。セッションが見つからない場合は `FileNotFoundError`。

415 

416#### 例

417 

418セッションにタグを付けてから、後の読み取りでそのタグでフィルタします。既存のタグをクリアするには `None` を渡します。

419 

420```python theme={null}

421from claude_agent_sdk import list_sessions, tag_session

422 

423# Tag a session

424tag_session("550e8400-e29b-41d4-a716-446655440000", "needs-review")

425 

426# Later: find all sessions with that tag

427for session in list_sessions(directory="/path/to/project"):

428 if session.tag == "needs-review":

429 print(session.summary)

430```

431 

432## クラス

433 

434### `ClaudeSDKClient`

435 

436**複数の交換にわたってセッションを維持します。** これは TypeScript SDK の `query()` 関数が内部的にどのように機能するかの Python 同等物です。会話を続けることができるクライアントオブジェクトを作成します。

437 

438#### 主な機能

439 

440* **セッション継続性**:複数の `query()` 呼び出しにわたって会話コンテキストを維持します

441* **同じ会話**:セッションは前のメッセージを保持します

442* **割り込みサポート**:タスク途中で実行を停止できます

443* **明示的なライフサイクル**:セッションの開始と終了を制御します

444* **応答駆動フロー**:応答に反応してフォローアップを送信できます

445* **カスタムツールと hooks**:カスタムツール(`@tool` デコレータで作成)と hooks をサポートします

446 

447```python theme={null}

448class ClaudeSDKClient:

449 def __init__(self, options: ClaudeAgentOptions | None = None, transport: Transport | None = None)

450 async def connect(self, prompt: str | AsyncIterable[dict] | None = None) -> None

451 async def query(self, prompt: str | AsyncIterable[dict], session_id: str = "default") -> None

452 async def receive_messages(self) -> AsyncIterator[Message]

453 async def receive_response(self) -> AsyncIterator[Message]

454 async def interrupt(self) -> None

455 async def set_permission_mode(self, mode: str) -> None

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

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

458 async def get_mcp_status(self) -> McpStatusResponse

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

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

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

462 async def get_server_info(self) -> dict[str, Any] | None

463 async def disconnect(self) -> None

464```

465 

466#### メソッド

467 

468| メソッド | 説明 |

469| :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |

470| `__init__(options)` | オプションの設定でクライアントを初期化します |

471| `connect(prompt)` | オプションの初期プロンプトまたはメッセージストリームで Claude に接続します |

472| `query(prompt, session_id)` | ストリーミングモードで新しいリクエストを送信します |

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

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

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

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

477| `set_model(model)` | 現在のセッションのモデルを変更します。デフォルトにリセットするには `None` を渡します |

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

479| `get_mcp_status()` | すべての設定済み MCP サーバーのステータスを取得します。[`McpStatusResponse`](#mcp-status-response) を返します |

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

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

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

483| `get_server_info()` | セッション ID と機能を含むサーバー情報を取得します |

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

485 

486#### コンテキストマネージャーサポート

487 

488クライアントは自動接続管理のための非同期コンテキストマネージャーとして使用できます:

489 

490```python theme={null}

491async with ClaudeSDKClient() as client:

492 await client.query("Hello Claude")

493 async for message in client.receive_response():

494 print(message)

495```

496 

497> **重要:** メッセージを反復処理する場合、早期に終了するために `break` を使用することは避けてください。これは asyncio クリーンアップの問題を引き起こす可能性があります。代わりに、反復を自然に完了させるか、フラグを使用して必要なものを見つけたときを追跡してください。

498 

499#### 例 - 会話を続ける

500 

501```python theme={null}

502import asyncio

503from claude_agent_sdk import ClaudeSDKClient, AssistantMessage, TextBlock, ResultMessage

504 

505 

506async def main():

507 async with ClaudeSDKClient() as client:

508 # First question

509 await client.query("What's the capital of France?")

510 

511 # Process response

512 async for message in client.receive_response():

513 if isinstance(message, AssistantMessage):

514 for block in message.content:

515 if isinstance(block, TextBlock):

516 print(f"Claude: {block.text}")

517 

518 # Follow-up question - the session retains the previous context

519 await client.query("What's the population of that city?")

520 

521 async for message in client.receive_response():

522 if isinstance(message, AssistantMessage):

523 for block in message.content:

524 if isinstance(block, TextBlock):

525 print(f"Claude: {block.text}")

526 

527 # Another follow-up - still in the same conversation

528 await client.query("What are some famous landmarks there?")

529 

530 async for message in client.receive_response():

531 if isinstance(message, AssistantMessage):

532 for block in message.content:

533 if isinstance(block, TextBlock):

534 print(f"Claude: {block.text}")

535 

536 

537asyncio.run(main())

538```

539 

540#### 例 - ClaudeSDKClient でのストリーミング入力

541 

542```python theme={null}

543import asyncio

544from claude_agent_sdk import ClaudeSDKClient

545 

546 

547async def message_stream():

548 """Generate messages dynamically."""

549 yield {

550 "type": "user",

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

552 }

553 await asyncio.sleep(0.5)

554 yield {

555 "type": "user",

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

557 }

558 await asyncio.sleep(0.5)

559 yield {

560 "type": "user",

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

562 }

563 

564 

565async def main():

566 async with ClaudeSDKClient() as client:

567 # Stream input to Claude

568 await client.query(message_stream())

569 

570 # Process response

571 async for message in client.receive_response():

572 print(message)

573 

574 # Follow-up in same session

575 await client.query("Should we be concerned about these readings?")

576 

577 async for message in client.receive_response():

578 print(message)

579 

580 

581asyncio.run(main())

582```

583 

584#### 例 - 割り込みの使用

585 

586```python theme={null}

587import asyncio

588from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, ResultMessage

589 

590 

591async def interruptible_task():

592 options = ClaudeAgentOptions(allowed_tools=["Bash"], permission_mode="acceptEdits")

593 

594 async with ClaudeSDKClient(options=options) as client:

595 # Start a long-running task

596 await client.query("Count from 1 to 100 slowly, using the bash sleep command")

597 

598 # Let it run for a bit

599 await asyncio.sleep(2)

600 

601 # Interrupt the task

602 await client.interrupt()

603 print("Task interrupted!")

604 

605 # Drain the interrupted task's messages (including its ResultMessage)

606 async for message in client.receive_response():

607 if isinstance(message, ResultMessage):

608 print(f"Interrupted task finished with subtype={message.subtype!r}")

609 # subtype is "error_during_execution" for interrupted tasks

610 

611 # Send a new command

612 await client.query("Just say hello instead")

613 

614 # Now receive the new response

615 async for message in client.receive_response():

616 if isinstance(message, ResultMessage) and message.subtype == "success":

617 print(f"New result: {message.result}")

618 

619 

620asyncio.run(interruptible_task())

621```

622 

623<Note>

624 **割り込み後のバッファ動作:** `interrupt()` は停止信号を送信しますが、メッセージバッファをクリアしません。割り込まれたタスクによって既に生成されたメッセージ(`subtype="error_during_execution"` の `ResultMessage` を含む)はストリームに残ります。新しいクエリの応答を読む前に、`receive_response()` でそれらをドレインする必要があります。`interrupt()` の直後に新しいクエリを送信し、`receive_response()` を 1 回だけ呼び出すと、割り込まれたタスクのメッセージが受け取られ、新しいクエリの応答ではありません。

625</Note>

626 

627#### 例 - 高度なパーミッション制御

628 

629```python theme={null}

630from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

631from claude_agent_sdk.types import (

632 PermissionResultAllow,

633 PermissionResultDeny,

634 ToolPermissionContext,

635)

636 

637 

638async def custom_permission_handler(

639 tool_name: str, input_data: dict, context: ToolPermissionContext

640) -> PermissionResultAllow | PermissionResultDeny:

641 """Custom logic for tool permissions."""

642 

643 # Block writes to system directories

644 if tool_name == "Write" and input_data.get("file_path", "").startswith("/system/"):

645 return PermissionResultDeny(

646 message="System directory write not allowed", interrupt=True

647 )

648 

649 # Redirect sensitive file operations

650 if tool_name in ["Write", "Edit"] and "config" in input_data.get("file_path", ""):

651 safe_path = f"./sandbox/{input_data['file_path']}"

652 return PermissionResultAllow(

653 updated_input={**input_data, "file_path": safe_path}

654 )

655 

656 # Allow everything else

657 return PermissionResultAllow(updated_input=input_data)

658 

659 

660async def main():

661 options = ClaudeAgentOptions(

662 can_use_tool=custom_permission_handler, allowed_tools=["Read", "Write", "Edit"]

663 )

664 

665 async with ClaudeSDKClient(options=options) as client:

666 await client.query("Update the system config file")

667 

668 async for message in client.receive_response():

669 # Will use sandbox path instead

670 print(message)

671 

672 

673asyncio.run(main())

674```

675 

676## 型

677 

678<Note>

679 **`@dataclass` vs `TypedDict`:** この SDK は 2 種類の型を使用します。`@dataclass` で装飾されたクラス(`ResultMessage`、`AgentDefinition`、`TextBlock` など)は実行時にオブジェクトインスタンスであり、属性アクセスをサポートします:`msg.result`。`TypedDict` で定義されたクラス(`ThinkingConfigEnabled`、`McpStdioServerConfig`、`SyncHookJSONOutput` など)は**実行時にプレーンな dict** であり、キーアクセスが必要です:`config["budget_tokens"]`、`config.budget_tokens` ではなく。`ClassName(field=value)` 呼び出し構文は両方で機能しますが、dataclass のみが属性を持つオブジェクトを生成します。

680</Note>

681 

682### `SdkMcpTool`

683 

684`@tool` デコレータで作成された SDK MCP ツールの定義。

685 

686```python theme={null}

687@dataclass

688class SdkMcpTool(Generic[T]):

689 name: str

690 description: str

691 input_schema: type[T] | dict[str, Any]

692 handler: Callable[[T], Awaitable[dict[str, Any]]]

693 annotations: ToolAnnotations | None = None

694```

695 

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

697| :------------- | :----------------------------------------- | :--------------------------------------------------------------------------------------- |

698| `name` | `str` | ツールの一意の識別子 |

699| `description` | `str` | 人間が読める説明 |

700| `input_schema` | `type[T] \| dict[str, Any]` | 入力検証用のスキーマ |

701| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | ツール実行を処理する非同期関数 |

702| `annotations` | `ToolAnnotations \| None` | オプションの MCP ツールアノテーション(例:`readOnlyHint`、`destructiveHint`、`openWorldHint`)。`mcp.types` から |

703 

704### `Transport`

705 

706カスタムトランスポート実装の抽象基本クラス。これを使用して、カスタムチャネル(例:ローカルサブプロセスの代わりにリモート接続)を介して Claude プロセスと通信します。

707 

708<Warning>

709 これは低レベルの内部 API です。インターフェースは将来のリリースで変更される可能性があります。カスタム実装は、インターフェースの変更に合わせて更新する必要があります。

710</Warning>

711 

712```python theme={null}

713from abc import ABC, abstractmethod

714from collections.abc import AsyncIterator

715from typing import Any

716 

717 

718class Transport(ABC):

719 @abstractmethod

720 async def connect(self) -> None: ...

721 

722 @abstractmethod

723 async def write(self, data: str) -> None: ...

724 

725 @abstractmethod

726 def read_messages(self) -> AsyncIterator[dict[str, Any]]: ...

727 

728 @abstractmethod

729 async def close(self) -> None: ...

730 

731 @abstractmethod

732 def is_ready(self) -> bool: ...

733 

734 @abstractmethod

735 async def end_input(self) -> None: ...

736```

737 

738| メソッド | 説明 |

739| :---------------- | :---------------------------------------- |

740| `connect()` | トランスポートを接続し、通信の準備をします |

741| `write(data)` | 生データ(JSON + 改行)をトランスポートに書き込みます |

742| `read_messages()` | 解析された JSON メッセージを生成する非同期イテレータ |

743| `close()` | 接続を閉じてリソースをクリーンアップします |

744| `is_ready()` | トランスポートが送受信できる場合は `True` を返します |

745| `end_input()` | 入力ストリームを閉じます(例:サブプロセストランスポートの stdin を閉じる) |

746 

747インポート:`from claude_agent_sdk import Transport`

748 

749### `ClaudeAgentOptions`

750 

751Claude Code クエリの設定 dataclass。

752 

753```python theme={null}

754@dataclass

755class ClaudeAgentOptions:

756 tools: list[str] | ToolsPreset | None = None

757 allowed_tools: list[str] = field(default_factory=list)

758 system_prompt: str | SystemPromptPreset | None = None

759 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)

760 permission_mode: PermissionMode | None = None

761 continue_conversation: bool = False

762 resume: str | None = None

763 max_turns: int | None = None

764 max_budget_usd: float | None = None

765 disallowed_tools: list[str] = field(default_factory=list)

766 model: str | None = None

767 fallback_model: str | None = None

768 betas: list[SdkBeta] = field(default_factory=list)

769 output_format: dict[str, Any] | None = None

770 permission_prompt_tool_name: str | None = None

771 cwd: str | Path | None = None

772 cli_path: str | Path | None = None

773 settings: str | None = None

774 add_dirs: list[str | Path] = field(default_factory=list)

775 env: dict[str, str] = field(default_factory=dict)

776 extra_args: dict[str, str | None] = field(default_factory=dict)

777 max_buffer_size: int | None = None

778 debug_stderr: Any = sys.stderr # Deprecated

779 stderr: Callable[[str], None] | None = None

780 can_use_tool: CanUseTool | None = None

781 hooks: dict[HookEvent, list[HookMatcher]] | None = None

782 user: str | None = None

783 include_partial_messages: bool = False

784 fork_session: bool = False

785 agents: dict[str, AgentDefinition] | None = None

786 setting_sources: list[SettingSource] | None = None

787 sandbox: SandboxSettings | None = None

788 plugins: list[SdkPluginConfig] = field(default_factory=list)

789 max_thinking_tokens: int | None = None # Deprecated: use thinking instead

790 thinking: ThinkingConfig | None = None

791 effort: Literal["low", "medium", "high", "max"] | None = None

792 enable_file_checkpointing: bool = False

793 session_store: SessionStore | None = None

794```

795 

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

797| :---------------------------- | :------------------------------------------------------------------------------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

798| `tools` | `list[str] \| ToolsPreset \| None` | `None` | ツール設定。Claude Code のデフォルトツールには `{"type": "preset", "preset": "claude_code"}` を使用します |

799| `allowed_tools` | `list[str]` | `[]` | プロンプトなしで自動承認するツール。これは Claude をこれらのツールのみに制限しません。リストされていないツールは `permission_mode` と `can_use_tool` にフォールスルーします。`disallowed_tools` を使用してツールをブロックします。[パーミッション](/ja/agent-sdk/permissions#allow-and-deny-rules) を参照 |

800| `system_prompt` | `str \| SystemPromptPreset \| None` | `None` | システムプロンプト設定。カスタムプロンプトの場合は文字列を渡すか、Claude Code のシステムプロンプトの場合は `{"type": "preset", "preset": "claude_code"}` を使用します。プリセットを拡張するには `"append"` を追加します |

801| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP サーバー設定または設定ファイルへのパス |

802| `permission_mode` | `PermissionMode \| None` | `None` | ツール使用のパーミッションモード |

803| `continue_conversation` | `bool` | `False` | 最新の会話を続ける |

804| `resume` | `str \| None` | `None` | 再開するセッション ID |

805| `max_turns` | `int \| None` | `None` | 最大 agentic ターン数(ツール使用ラウンドトリップ) |

806| `max_budget_usd` | `float \| None` | `None` | クライアント側のコスト推定がこの USD 値に達したときにクエリを停止します。`total_cost_usd` と同じ推定と比較されます。[コストと使用状況を追跡](/ja/agent-sdk/cost-tracking) で精度の注意事項を参照 |

807| `disallowed_tools` | `list[str]` | `[]` | 常に拒否するツール。拒否ルールが最初にチェックされ、`allowed_tools` と `permission_mode`(`bypassPermissions` を含む)をオーバーライドします |

808| `enable_file_checkpointing` | `bool` | `False` | ファイル変更追跡を有効にして巻き戻しを可能にします。[ファイルチェックポイント](/ja/agent-sdk/file-checkpointing) を参照 |

809| `model` | `str \| None` | `None` | 使用する Claude モデル |

810| `fallback_model` | `str \| None` | `None` | プライマリモデルが失敗した場合に使用するフォールバックモデル |

811| `betas` | `list[SdkBeta]` | `[]` | 有効にするベータ機能。利用可能なオプションについては [`SdkBeta`](#sdk-beta) を参照 |

812| `output_format` | `dict[str, Any] \| None` | `None` | 構造化応答の出力形式(例:`{"type": "json_schema", "schema": {...}}`)。詳細については [構造化出力](/ja/agent-sdk/structured-outputs) を参照 |

813| `permission_prompt_tool_name` | `str \| None` | `None` | パーミッションプロンプト用の MCP ツール名 |

814| `cwd` | `str \| Path \| None` | `None` | 現在の作業ディレクトリ |

815| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 実行可能ファイルへのカスタムパス |

816| `settings` | `str \| None` | `None` | 設定ファイルへのパス |

817| `add_dirs` | `list[str \| Path]` | `[]` | Claude がアクセスできる追加ディレクトリ |

818| `env` | `dict[str, str]` | `{}` | 継承されたプロセス環境の上にマージされた環境変数。[環境変数](/ja/env-vars) で、基盤となる CLI が読み込む変数を参照 |

819| `extra_args` | `dict[str, str \| None]` | `{}` | CLI に直接渡す追加 CLI 引数 |

820| `max_buffer_size` | `int \| None` | `None` | CLI stdout をバッファリングする場合の最大バイト数 |

821| `debug_stderr` | `Any` | `sys.stderr` | *非推奨* - デバッグ出力用のファイルのようなオブジェクト。代わりに `stderr` コールバックを使用してください |

822| `stderr` | `Callable[[str], None] \| None` | `None` | CLI からの stderr 出力用のコールバック関数 |

823| `can_use_tool` | [`CanUseTool`](#can-use-tool) ` \| None` | `None` | ツールパーミッションコールバック関数。詳細については [パーミッション型](#can-use-tool) を参照 |

824| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | イベントをインターセプトするための hook 設定 |

825| `user` | `str \| None` | `None` | ユーザー識別子 |

826| `include_partial_messages` | `bool` | `False` | 部分的なメッセージストリーミングイベントを含めます。有効にすると、[`StreamEvent`](#stream-event) メッセージが生成されます |

827| `fork_session` | `bool` | `False` | `resume` で再開する場合、元のセッションを続ける代わりに新しいセッション ID にフォークします |

828| `agents` | `dict[str, AgentDefinition] \| None` | `None` | プログラムで定義されたサブエージェント |

829| `plugins` | `list[SdkPluginConfig]` | `[]` | ローカルパスからカスタムプラグインを読み込みます。詳細については [プラグイン](/ja/agent-sdk/plugins) を参照 |

830| `sandbox` | [`SandboxSettings`](#sandbox-settings) ` \| None` | `None` | プログラムでサンドボックス動作を設定します。詳細については [サンドボックス設定](#sandbox-settings) を参照 |

831| `setting_sources` | `list[SettingSource] \| None` | `None`(CLI デフォルト:すべてのソース) | 読み込むファイルシステム設定を制御します。`[]` を渡してユーザー、プロジェクト、ローカル設定を無効にします。管理ポリシー設定は常に読み込まれます。[Claude Code 機能を使用](/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control) を参照 |

832| `max_thinking_tokens` | `int \| None` | `None` | *非推奨* - 思考ブロックの最大トークン数。代わりに `thinking` を使用してください |

833| `thinking` | [`ThinkingConfig`](#thinking-config) ` \| None` | `None` | 拡張思考動作を制御します。`max_thinking_tokens` より優先されます |

834| `effort` | `Literal["low", "medium", "high", "max"] \| None` | `None` | 思考の深さの努力レベル |

835| `session_store` | [`SessionStore`](/ja/agent-sdk/session-storage#the-session-store-interface) ` \| None` | `None` | セッショントランスクリプトを外部バックエンドにミラーリングして、任意のホストがそれらを再開できるようにします。[セッションを外部ストレージに永続化](/ja/agent-sdk/session-storage) を参照 |

836 

837### `OutputFormat`

838 

839構造化出力検証の設定。これを `ClaudeAgentOptions` の `output_format` フィールドに dict として渡します:

840 

841```python theme={null}

842# Expected dict shape for output_format

843{

844 "type": "json_schema",

845 "schema": {...}, # Your JSON Schema definition

846}

847```

848 

849| フィールド | 必須 | 説明 |

850| :------- | :- | :-------------------------------------------- |

851| `type` | はい | JSON Schema 検証の場合は `"json_schema"` である必要があります |

852| `schema` | はい | 出力検証用の JSON Schema 定義 |

853 

854### `SystemPromptPreset`

855 

856オプションの追加を含む Claude Code のプリセットシステムプロンプトを使用するための設定。

857 

858```python theme={null}

859class SystemPromptPreset(TypedDict):

860 type: Literal["preset"]

861 preset: Literal["claude_code"]

862 append: NotRequired[str]

863 exclude_dynamic_sections: NotRequired[bool]

864```

865 

866| フィールド | 必須 | 説明 |

867| :------------------------- | :-- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

868| `type` | はい | プリセットシステムプロンプトを使用するには `"preset"` である必要があります |

869| `preset` | はい | Claude Code のシステムプロンプトを使用するには `"claude_code"` である必要があります |

870| `append` | いいえ | プリセットシステムプロンプトに追加する追加の指示 |

871| `exclude_dynamic_sections` | いいえ | 作業ディレクトリ、git ステータス、メモリパスなどのセッションごとのコンテキストをシステムプロンプトから最初のユーザーメッセージに移動します。ユーザーとマシン全体でのプロンプトキャッシュの再利用を改善します。[システムプロンプトを変更](/ja/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) を参照 |

872 

873### `SettingSource`

874 

875SDK が設定を読み込むファイルシステムベースの設定ソースを制御します。

876 

877```python theme={null}

878SettingSource = Literal["user", "project", "local"]

879```

880 

881| 値 | 説明 | 場所 |

882| :---------- | :----------------------- | :---------------------------- |

883| `"user"` | グローバルユーザー設定 | `~/.claude/settings.json` |

884| `"project"` | 共有プロジェクト設定(バージョン管理) | `.claude/settings.json` |

885| `"local"` | ローカルプロジェクト設定(gitignored) | `.claude/settings.local.json` |

886 

887#### デフォルト動作

888 

889`setting_sources` が省略されるか `None` の場合、`query()` は Claude Code CLI と同じファイルシステム設定を読み込みます:ユーザー、プロジェクト、ローカル。管理ポリシー設定はすべての場合に読み込まれます。このオプションに関係なく読み込まれる入力については [settingSources が制御しないもの](/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control) を参照し、それらを無効にする方法を参照してください。

890 

891#### setting\_sources を使用する理由

892 

893**ファイルシステム設定を無効にする:**

894 

895```python theme={null}

896# Do not load user, project, or local settings from disk

897from claude_agent_sdk import query, ClaudeAgentOptions

898 

899async for message in query(

900 prompt="Analyze this code",

901 options=ClaudeAgentOptions(

902 setting_sources=[]

903 ),

904):

905 print(message)

906```

907 

908<Note>

909 Python SDK 0.1.59 以前では、空のリストはオプションを省略するのと同じように扱われていたため、`setting_sources=[]` はファイルシステム設定を無効にしませんでした。空のリストが有効になる必要がある場合は、新しいリリースにアップグレードしてください。TypeScript SDK は影響を受けません。

910</Note>

911 

912**すべてのファイルシステム設定を明示的に読み込む:**

913 

914```python theme={null}

915from claude_agent_sdk import query, ClaudeAgentOptions

916 

917async for message in query(

918 prompt="Analyze this code",

919 options=ClaudeAgentOptions(

920 setting_sources=["user", "project", "local"]

921 ),

922):

923 print(message)

924```

925 

926**特定の設定ソースのみを読み込む:**

927 

928```python theme={null}

929# Load only project settings, ignore user and local

930async for message in query(

931 prompt="Run CI checks",

932 options=ClaudeAgentOptions(

933 setting_sources=["project"] # Only .claude/settings.json

934 ),

935):

936 print(message)

937```

938 

939**テストと CI 環境:**

940 

941```python theme={null}

942# Ensure consistent behavior in CI by excluding local settings

943async for message in query(

944 prompt="Run tests",

945 options=ClaudeAgentOptions(

946 setting_sources=["project"], # Only team-shared settings

947 permission_mode="bypassPermissions",

948 ),

949):

950 print(message)

951```

952 

953**SDK のみのアプリケーション:**

954 

955```python theme={null}

956# Define everything programmatically.

957# Pass [] to opt out of filesystem setting sources.

958async for message in query(

959 prompt="Review this PR",

960 options=ClaudeAgentOptions(

961 setting_sources=[],

962 agents={...},

963 mcp_servers={...},

964 allowed_tools=["Read", "Grep", "Glob"],

965 ),

966):

967 print(message)

968```

969 

970**CLAUDE.md プロジェクト指示を読み込む:**

971 

972```python theme={null}

973# Load project settings to include CLAUDE.md files

974async for message in query(

975 prompt="Add a new feature following project conventions",

976 options=ClaudeAgentOptions(

977 system_prompt={

978 "type": "preset",

979 "preset": "claude_code", # Use Claude Code's system prompt

980 },

981 setting_sources=["project"], # Loads CLAUDE.md from project

982 allowed_tools=["Read", "Write", "Edit"],

983 ),

984):

985 print(message)

986```

987 

988#### 設定の優先順位

989 

990複数のソースが読み込まれる場合、設定はこの優先順位(最高から最低)でマージされます:

991 

9921. ローカル設定(`.claude/settings.local.json`)

9932. プロジェクト設定(`.claude/settings.json`)

9943. ユーザー設定(`~/.claude/settings.json`)

995 

996`agents` と `allowed_tools` などのプログラム的なオプションは、ユーザー、プロジェクト、ローカルのファイルシステム設定をオーバーライドします。管理ポリシー設定はプログラム的なオプションより優先されます。

997 

998### `AgentDefinition`

999 

1000プログラムで定義されたサブエージェントの設定。

1001 

1002```python theme={null}

1003@dataclass

1004class AgentDefinition:

1005 description: str

1006 prompt: str

1007 tools: list[str] | None = None

1008 disallowedTools: list[str] | None = None

1009 model: str | None = None

1010 skills: list[str] | None = None

1011 memory: Literal["user", "project", "local"] | None = None

1012 mcpServers: list[str | dict[str, Any]] | None = None

1013 initialPrompt: str | None = None

1014 maxTurns: int | None = None

1015 background: bool | None = None

1016 effort: Literal["low", "medium", "high", "max"] | int | None = None

1017 permissionMode: PermissionMode | None = None

1018```

1019 

1020| フィールド | 必須 | 説明 |

1021| :---------------- | :-- | :-------------------------------------------------------------------------------------------------------------- |

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

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

1024| `tools` | いいえ | 許可されたツール名の配列。省略した場合、すべてのツールを継承します |

1025| `disallowedTools` | いいえ | エージェントのツールセットから削除するツール名の配列 |

1026| `model` | いいえ | このエージェントのモデルオーバーライド。`"sonnet"`、`"opus"`、`"haiku"`、`"inherit"` などのエイリアス、または完全なモデル ID を受け入れます。省略した場合、メインモデルを使用します |

1027| `skills` | いいえ | このエージェントが利用可能なスキル名のリスト |

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

1029| `mcpServers` | いいえ | このエージェントが利用可能な MCP サーバー。各エントリはサーバー名またはインライン `{name: config}` dict です |

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

1031| `maxTurns` | いいえ | エージェントが停止する前の最大 agentic ターン数 |

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

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

1034| `permissionMode` | いいえ | このエージェント内のツール実行のパーミッションモード。[`PermissionMode`](#permission-mode) を参照 |

1035 

1036<Note>

1037 `AgentDefinition` フィールド名は `disallowedTools`、`permissionMode`、`maxTurns` などの camelCase を使用します。これらの名前は TypeScript SDK と共有される wire 形式に直接マップされます。これは `disallowed_tools` と `permission_mode` などの同等のトップレベルフィールドに Python snake\_case を使用する `ClaudeAgentOptions` とは異なります。`AgentDefinition` は dataclass であるため、snake\_case キーワードを渡すと構築時に `TypeError` が発生します。

1038</Note>

1039 

1040### `PermissionMode`

1041 

1042ツール実行を制御するためのパーミッションモード。

1043 

1044```python theme={null}

1045PermissionMode = Literal[

1046 "default", # Standard permission behavior

1047 "acceptEdits", # Auto-accept file edits

1048 "plan", # Planning mode - no execution

1049 "dontAsk", # Deny anything not pre-approved instead of prompting

1050 "bypassPermissions", # Bypass all permission checks (use with caution)

1051]

1052```

1053 

1054### `CanUseTool`

1055 

1056ツールパーミッションコールバック関数の型エイリアス。

1057 

1058```python theme={null}

1059CanUseTool = Callable[

1060 [str, dict[str, Any], ToolPermissionContext], Awaitable[PermissionResult]

1061]

1062```

1063 

1064コールバックは以下を受け取ります:

1065 

1066* `tool_name`:呼び出されるツールの名前

1067* `input_data`:ツールの入力パラメータ

1068* `context`:追加情報を含む `ToolPermissionContext`

1069 

1070`PermissionResult`(`PermissionResultAllow` または `PermissionResultDeny`)を返します。

1071 

1072### `ToolPermissionContext`

1073 

1074ツールパーミッションコールバックに渡されるコンテキスト情報。

1075 

1076```python theme={null}

1077@dataclass

1078class ToolPermissionContext:

1079 signal: Any | None = None # Future: abort signal support

1080 suggestions: list[PermissionUpdate] = field(default_factory=list)

1081```

1082 

1083| フィールド | 型 | 説明 |

1084| :------------ | :----------------------- | :----------------- |

1085| `signal` | `Any \| None` | 将来の中止信号サポート用に予約済み |

1086| `suggestions` | `list[PermissionUpdate]` | CLI からのパーミッション更新提案 |

1087 

1088### `PermissionResult`

1089 

1090パーミッションコールバック結果の Union 型。

1091 

1092```python theme={null}

1093PermissionResult = PermissionResultAllow | PermissionResultDeny

1094```

1095 

1096### `PermissionResultAllow`

1097 

1098ツール呼び出しを許可すべきことを示す結果。

1099 

1100```python theme={null}

1101@dataclass

1102class PermissionResultAllow:

1103 behavior: Literal["allow"] = "allow"

1104 updated_input: dict[str, Any] | None = None

1105 updated_permissions: list[PermissionUpdate] | None = None

1106```

1107 

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

1109| :-------------------- | :------------------------------- | :-------- | :----------------- |

1110| `behavior` | `Literal["allow"]` | `"allow"` | "allow" である必要があります |

1111| `updated_input` | `dict[str, Any] \| None` | `None` | 元の代わりに使用する変更された入力 |

1112| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | 適用するパーミッション更新 |

1113 

1114### `PermissionResultDeny`

1115 

1116ツール呼び出しを拒否すべきことを示す結果。

1117 

1118```python theme={null}

1119@dataclass

1120class PermissionResultDeny:

1121 behavior: Literal["deny"] = "deny"

1122 message: str = ""

1123 interrupt: bool = False

1124```

1125 

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

1127| :---------- | :---------------- | :------- | :-------------------- |

1128| `behavior` | `Literal["deny"]` | `"deny"` | "deny" である必要があります |

1129| `message` | `str` | `""` | ツールが拒否された理由を説明するメッセージ |

1130| `interrupt` | `bool` | `False` | 現在の実行を割り込むかどうか |

1131 

1132### `PermissionUpdate`

1133 

1134プログラムでパーミッションを更新するための設定。

1135 

1136```python theme={null}

1137@dataclass

1138class PermissionUpdate:

1139 type: Literal[

1140 "addRules",

1141 "replaceRules",

1142 "removeRules",

1143 "setMode",

1144 "addDirectories",

1145 "removeDirectories",

1146 ]

1147 rules: list[PermissionRuleValue] | None = None

1148 behavior: Literal["allow", "deny", "ask"] | None = None

1149 mode: PermissionMode | None = None

1150 directories: list[str] | None = None

1151 destination: (

1152 Literal["userSettings", "projectSettings", "localSettings", "session"] | None

1153 ) = None

1154```

1155 

1156| フィールド | 型 | 説明 |

1157| :------------ | :---------------------------------------- | :-------------------- |

1158| `type` | `Literal[...]` | パーミッション更新操作のタイプ |

1159| `rules` | `list[PermissionRuleValue] \| None` | 追加/置換/削除操作用のルール |

1160| `behavior` | `Literal["allow", "deny", "ask"] \| None` | ルールベースの操作の動作 |

1161| `mode` | `PermissionMode \| None` | setMode 操作のモード |

1162| `directories` | `list[str] \| None` | ディレクトリ追加/削除操作用のディレクトリ |

1163| `destination` | `Literal[...] \| None` | パーミッション更新を適用する場所 |

1164 

1165### `PermissionRuleValue`

1166 

1167パーミッション更新で追加、置換、または削除するルール。

1168 

1169```python theme={null}

1170@dataclass

1171class PermissionRuleValue:

1172 tool_name: str

1173 rule_content: str | None = None

1174```

1175 

1176### `ToolsPreset`

1177 

1178Claude Code のデフォルトツールセットを使用するためのプリセットツール設定。

1179 

1180```python theme={null}

1181class ToolsPreset(TypedDict):

1182 type: Literal["preset"]

1183 preset: Literal["claude_code"]

1184```

1185 

1186### `ThinkingConfig`

1187 

1188拡張思考動作を制御します。3 つの設定の Union:

1189 

1190```python theme={null}

1191class ThinkingConfigAdaptive(TypedDict):

1192 type: Literal["adaptive"]

1193 

1194 

1195class ThinkingConfigEnabled(TypedDict):

1196 type: Literal["enabled"]

1197 budget_tokens: int

1198 

1199 

1200class ThinkingConfigDisabled(TypedDict):

1201 type: Literal["disabled"]

1202 

1203 

1204ThinkingConfig = ThinkingConfigAdaptive | ThinkingConfigEnabled | ThinkingConfigDisabled

1205```

1206 

1207| バリアント | フィールド | 説明 |

1208| :--------- | :--------------------- | :-------------------------- |

1209| `adaptive` | `type` | Claude は適応的に思考するタイミングを決定します |

1210| `enabled` | `type`、`budget_tokens` | 特定のトークン予算で思考を有効にします |

1211| `disabled` | `type` | 思考を無効にします |

1212 

1213これらは `TypedDict` クラスであるため、実行時にはプレーンな dict です。dict リテラルとして構築するか、クラスをコンストラクタのように呼び出します。どちらも `dict` を生成します。`config["budget_tokens"]` でフィールドにアクセスし、`config.budget_tokens` ではなく:

1214 

1215```python theme={null}

1216from claude_agent_sdk import ClaudeAgentOptions, ThinkingConfigEnabled

1217 

1218# Option 1: dict literal (recommended, no import needed)

1219options = ClaudeAgentOptions(thinking={"type": "enabled", "budget_tokens": 20000})

1220 

1221# Option 2: constructor-style (returns a plain dict)

1222config = ThinkingConfigEnabled(type="enabled", budget_tokens=20000)

1223print(config["budget_tokens"]) # 20000

1224# config.budget_tokens would raise AttributeError

1225```

1226 

1227### `SdkBeta`

1228 

1229SDK ベータ機能の Literal 型。

1230 

1231```python theme={null}

1232SdkBeta = Literal["context-1m-2025-08-07"]

1233```

1234 

1235`ClaudeAgentOptions` の `betas` フィールドで使用してベータ機能を有効にします。

1236 

1237<Warning>

1238 `context-1m-2025-08-07` ベータは 2026 年 4 月 30 日時点で廃止されました。このヘッダーを Claude Sonnet 4.5 または Sonnet 4 で渡すと効果がなく、標準の 200k トークンコンテキストウィンドウを超えるリクエストはエラーを返します。1M トークンコンテキストウィンドウを使用するには、[Claude Sonnet 4.6、Claude Opus 4.6、または Claude Opus 4.7](https://platform.claude.com/docs/en/about-claude/models/overview) に移行してください。これらには、ベータヘッダーなしで標準価格で 1M コンテキストが含まれます。

1239</Warning>

1240 

1241### `McpSdkServerConfig`

1242 

1243`create_sdk_mcp_server()` で作成された SDK MCP サーバーの設定。

1244 

1245```python theme={null}

1246class McpSdkServerConfig(TypedDict):

1247 type: Literal["sdk"]

1248 name: str

1249 instance: Any # MCP Server instance

1250```

1251 

1252### `McpServerConfig`

1253 

1254MCP サーバー設定の Union 型。

1255 

1256```python theme={null}

1257McpServerConfig = (

1258 McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig

1259)

1260```

1261 

1262#### `McpStdioServerConfig`

1263 

1264```python theme={null}

1265class McpStdioServerConfig(TypedDict):

1266 type: NotRequired[Literal["stdio"]] # Optional for backwards compatibility

1267 command: str

1268 args: NotRequired[list[str]]

1269 env: NotRequired[dict[str, str]]

1270```

1271 

1272#### `McpSSEServerConfig`

1273 

1274```python theme={null}

1275class McpSSEServerConfig(TypedDict):

1276 type: Literal["sse"]

1277 url: str

1278 headers: NotRequired[dict[str, str]]

1279```

1280 

1281#### `McpHttpServerConfig`

1282 

1283```python theme={null}

1284class McpHttpServerConfig(TypedDict):

1285 type: Literal["http"]

1286 url: str

1287 headers: NotRequired[dict[str, str]]

1288```

1289 

1290### `McpServerStatusConfig`

1291 

1292[`get_mcp_status()`](#methods) によって報告される MCP サーバーの設定。これは、すべての [`McpServerConfig`](#mcp-server-config) トランスポートバリアント、および claude.ai を通じてプロキシされるサーバー用の出力のみの `claudeai-proxy` バリアントの Union です。

1293 

1294```python theme={null}

1295McpServerStatusConfig = (

1296 McpStdioServerConfig

1297 | McpSSEServerConfig

1298 | McpHttpServerConfig

1299 | McpSdkServerConfigStatus

1300 | McpClaudeAIProxyServerConfig

1301)

1302```

1303 

1304`McpSdkServerConfigStatus` は [`McpSdkServerConfig`](#mcp-sdk-server-config) のシリアライズ可能な形式で、`type`(`"sdk"`)と `name`(`str`)フィールドのみです。インプロセス `instance` は省略されます。`McpClaudeAIProxyServerConfig` には `type`(`"claudeai-proxy"`)、`url`(`str`)、`id`(`str`)フィールドがあります。

1305 

1306### `McpStatusResponse`

1307 

1308[`ClaudeSDKClient.get_mcp_status()`](#methods) からの応答。サーバーステータスのリストを `mcpServers` キーの下にラップします。

1309 

1310```python theme={null}

1311class McpStatusResponse(TypedDict):

1312 mcpServers: list[McpServerStatus]

1313```

1314 

1315### `McpServerStatus`

1316 

1317接続された MCP サーバーのステータス。[`McpStatusResponse`](#mcp-status-response) に含まれます。

1318 

1319```python theme={null}

1320class McpServerStatus(TypedDict):

1321 name: str

1322 status: McpServerConnectionStatus # "connected" | "failed" | "needs-auth" | "pending" | "disabled"

1323 serverInfo: NotRequired[McpServerInfo]

1324 error: NotRequired[str]

1325 config: NotRequired[McpServerStatusConfig]

1326 scope: NotRequired[str]

1327 tools: NotRequired[list[McpToolInfo]]

1328```

1329 

1330| フィールド | 型 | 説明 |

1331| :----------- | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |

1332| `name` | `str` | サーバー名 |

1333| `status` | `str` | `"connected"`、`"failed"`、`"needs-auth"`、`"pending"`、または `"disabled"` のいずれか |

1334| `serverInfo` | `dict`(オプション) | サーバー名とバージョン(`{"name": str, "version": str}`) |

1335| `error` | `str`(オプション) | サーバーが接続に失敗した場合のエラーメッセージ |

1336| `config` | [`McpServerStatusConfig`](#mcp-server-status-config)(オプション) | サーバー設定。[`McpServerConfig`](#mcp-server-config) と同じ形状(stdio、SSE、HTTP、または SDK)、および claude.ai を通じて接続されたサーバー用の `claudeai-proxy` バリアント |

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

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

1339 

1340### `SdkPluginConfig`

1341 

1342SDK でプラグインを読み込むための設定。

1343 

1344```python theme={null}

1345class SdkPluginConfig(TypedDict):

1346 type: Literal["local"]

1347 path: str

1348```

1349 

1350| フィールド | 型 | 説明 |

1351| :----- | :----------------- | :-------------------------------------- |

1352| `type` | `Literal["local"]` | `"local"` である必要があります(現在ローカルプラグインのみサポート) |

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

1354 

1355**例:**

1356 

1357```python theme={null}

1358plugins = [

1359 {"type": "local", "path": "./my-plugin"},

1360 {"type": "local", "path": "/absolute/path/to/plugin"},

1361]

1362```

1363 

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

1365 

1366## メッセージ型

1367 

1368### `Message`

1369 

1370すべての可能なメッセージの Union 型。

1371 

1372```python theme={null}

1373Message = (

1374 UserMessage

1375 | AssistantMessage

1376 | SystemMessage

1377 | ResultMessage

1378 | StreamEvent

1379 | RateLimitEvent

1380)

1381```

1382 

1383### `UserMessage`

1384 

1385ユーザー入力メッセージ。

1386 

1387```python theme={null}

1388@dataclass

1389class UserMessage:

1390 content: str | list[ContentBlock]

1391 uuid: str | None = None

1392 parent_tool_use_id: str | None = None

1393 tool_use_result: dict[str, Any] | None = None

1394```

1395 

1396| フィールド | 型 | 説明 |

1397| :------------------- | :-------------------------- | :----------------------------- |

1398| `content` | `str \| list[ContentBlock]` | テキストまたはコンテンツブロックとしてのメッセージコンテンツ |

1399| `uuid` | `str \| None` | 一意のメッセージ識別子 |

1400| `parent_tool_use_id` | `str \| None` | このメッセージがツール結果応答の場合のツール使用 ID |

1401| `tool_use_result` | `dict[str, Any] \| None` | 該当する場合のツール結果データ |

1402 

1403### `AssistantMessage`

1404 

1405コンテンツブロック付きのアシスタント応答メッセージ。

1406 

1407```python theme={null}

1408@dataclass

1409class AssistantMessage:

1410 content: list[ContentBlock]

1411 model: str

1412 parent_tool_use_id: str | None = None

1413 error: AssistantMessageError | None = None

1414 usage: dict[str, Any] | None = None

1415 message_id: str | None = None

1416```

1417 

1418| フィールド | 型 | 説明 |

1419| :------------------- | :------------------------------------------------------------- | :--------------------------------------------------------------- |

1420| `content` | `list[ContentBlock]` | 応答内のコンテンツブロックのリスト |

1421| `model` | `str` | 応答を生成したモデル |

1422| `parent_tool_use_id` | `str \| None` | これがネストされた応答の場合のツール使用 ID |

1423| `error` | [`AssistantMessageError`](#assistant-message-error) ` \| None` | 応答がエラーに遭遇した場合のエラー型 |

1424| `usage` | `dict[str, Any] \| None` | メッセージごとのトークン使用状況([`ResultMessage.usage`](#result-message) と同じキー) |

1425| `message_id` | `str \| None` | API メッセージ ID。1 つのターンからの複数のメッセージは同じ ID を共有します |

1426 

1427### `AssistantMessageError`

1428 

1429アシスタントメッセージの可能なエラータイプ。

1430 

1431```python theme={null}

1432AssistantMessageError = Literal[

1433 "authentication_failed",

1434 "billing_error",

1435 "rate_limit",

1436 "invalid_request",

1437 "server_error",

1438 "max_output_tokens",

1439 "unknown",

1440]

1441```

1442 

1443### `SystemMessage`

1444 

1445メタデータ付きのシステムメッセージ。

1446 

1447```python theme={null}

1448@dataclass

1449class SystemMessage:

1450 subtype: str

1451 data: dict[str, Any]

1452```

1453 

1454### `ResultMessage`

1455 

1456コストと使用状況情報を含む最終結果メッセージ。

1457 

1458```python theme={null}

1459@dataclass

1460class ResultMessage:

1461 subtype: str

1462 duration_ms: int

1463 duration_api_ms: int

1464 is_error: bool

1465 num_turns: int

1466 session_id: str

1467 total_cost_usd: float | None = None

1468 usage: dict[str, Any] | None = None

1469 result: str | None = None

1470 stop_reason: str | None = None

1471 structured_output: Any = None

1472 model_usage: dict[str, Any] | None = None

1473```

1474 

1475`usage` dict には、存在する場合、以下のキーが含まれます:

1476 

1477| キー | 型 | 説明 |

1478| ----------------------------- | ----- | ------------------------------ |

1479| `input_tokens` | `int` | 消費された総入力トークン。 |

1480| `output_tokens` | `int` | 生成された総出力トークン。 |

1481| `cache_creation_input_tokens` | `int` | 新しいキャッシュエントリを作成するために使用されたトークン。 |

1482| `cache_read_input_tokens` | `int` | 既存のキャッシュエントリから読み取られたトークン。 |

1483 

1484`model_usage` dict はモデル名をモデルごとの使用状況にマップします。内部 dict キーは camelCase を使用します。これは、基になる CLI プロセスから変更されずに渡される値であり、TypeScript [`ModelUsage`](/ja/agent-sdk/typescript#model-usage) 型と一致するためです:

1485 

1486| キー | 型 | 説明 |

1487| -------------------------- | ------- | --------------------------------------------------------------------------------------------- |

1488| `inputTokens` | `int` | このモデルの入力トークン。 |

1489| `outputTokens` | `int` | このモデルの出力トークン。 |

1490| `cacheReadInputTokens` | `int` | このモデルのキャッシュ読み取りトークン。 |

1491| `cacheCreationInputTokens` | `int` | このモデルのキャッシュ作成トークン。 |

1492| `webSearchRequests` | `int` | このモデルが行った Web 検索リクエスト。 |

1493| `costUSD` | `float` | このモデルの推定 USD コスト。クライアント側で計算されます。[コストと使用状況を追跡](/ja/agent-sdk/cost-tracking) で請求の注意事項を参照してください。 |

1494| `contextWindow` | `int` | このモデルのコンテキストウィンドウサイズ。 |

1495| `maxOutputTokens` | `int` | このモデルの最大出力トークン制限。 |

1496 

1497### `StreamEvent`

1498 

1499ストリーミング中の部分的なメッセージ更新のためのストリームイベント。`ClaudeAgentOptions` で `include_partial_messages=True` の場合のみ受け取られます。`from claude_agent_sdk.types import StreamEvent` でインポートしてください。

1500 

1501```python theme={null}

1502@dataclass

1503class StreamEvent:

1504 uuid: str

1505 session_id: str

1506 event: dict[str, Any] # The raw Claude API stream event

1507 parent_tool_use_id: str | None = None

1508```

1509 

1510| フィールド | 型 | 説明 |

1511| :------------------- | :--------------- | :----------------------------- |

1512| `uuid` | `str` | このイベントの一意の識別子 |

1513| `session_id` | `str` | セッション識別子 |

1514| `event` | `dict[str, Any]` | 生の Claude API ストリームイベントデータ |

1515| `parent_tool_use_id` | `str \| None` | このイベントがサブエージェントからの場合の親ツール使用 ID |

1516 

1517### `RateLimitEvent`

1518 

1519レート制限ステータスが変更されたときに発行されます(例:`"allowed"` から `"allowed_warning"` へ)。ユーザーにハード制限に達する前に警告するか、ステータスが `"rejected"` の場合にバックオフするために使用します。

1520 

1521```python theme={null}

1522@dataclass

1523class RateLimitEvent:

1524 rate_limit_info: RateLimitInfo

1525 uuid: str

1526 session_id: str

1527```

1528 

1529| フィールド | 型 | 説明 |

1530| :---------------- | :---------------------------------- | :--------- |

1531| `rate_limit_info` | [`RateLimitInfo`](#rate-limit-info) | 現在のレート制限状態 |

1532| `uuid` | `str` | 一意のイベント識別子 |

1533| `session_id` | `str` | セッション識別子 |

1534 

1535### `RateLimitInfo`

1536 

1537[`RateLimitEvent`](#rate-limit-event) によって運ばれるレート制限状態。

1538 

1539```python theme={null}

1540RateLimitStatus = Literal["allowed", "allowed_warning", "rejected"]

1541RateLimitType = Literal[

1542 "five_hour", "seven_day", "seven_day_opus", "seven_day_sonnet", "overage"

1543]

1544 

1545 

1546@dataclass

1547class RateLimitInfo:

1548 status: RateLimitStatus

1549 resets_at: int | None = None

1550 rate_limit_type: RateLimitType | None = None

1551 utilization: float | None = None

1552 overage_status: RateLimitStatus | None = None

1553 overage_resets_at: int | None = None

1554 overage_disabled_reason: str | None = None

1555 raw: dict[str, Any] = field(default_factory=dict)

1556```

1557 

1558| フィールド | 型 | 説明 |

1559| :------------------------ | :------------------------ | :--------------------------------------------------------------------------- |

1560| `status` | `RateLimitStatus` | 現在のステータス。`"allowed_warning"` は制限に近づいていることを意味します。`"rejected"` は制限に達したことを意味します |

1561| `resets_at` | `int \| None` | レート制限ウィンドウがリセットされる Unix タイムスタンプ |

1562| `rate_limit_type` | `RateLimitType \| None` | どのレート制限ウィンドウが適用されるか |

1563| `utilization` | `float \| None` | 消費されたレート制限の割合(0.0 から 1.0) |

1564| `overage_status` | `RateLimitStatus \| None` | 該当する場合の従量課金超過使用のステータス |

1565| `overage_resets_at` | `int \| None` | 超過ウィンドウがリセットされる Unix タイムスタンプ |

1566| `overage_disabled_reason` | `str \| None` | ステータスが `"rejected"` の場合、超過が利用できない理由 |

1567| `raw` | `dict[str, Any]` | 上記でモデル化されていないフィールドを含む、CLI からの完全な生 dict |

1568 

1569### `TaskStartedMessage`

1570 

1571バックグラウンドタスクが開始されたときに発行されます。バックグラウンドタスクは、メインターンの外で追跡されるもの:バックグラウンド Bash コマンド、[Monitor](#monitor) ウォッチ、Agent ツール経由で生成されたサブエージェント、またはリモートエージェント。`task_type` フィールドはどれであるかを示します。このネーミングは `Task` から `Agent` ツールへの名前変更とは無関係です。

1572 

1573```python theme={null}

1574@dataclass

1575class TaskStartedMessage(SystemMessage):

1576 task_id: str

1577 description: str

1578 uuid: str

1579 session_id: str

1580 tool_use_id: str | None = None

1581 task_type: str | None = None

1582```

1583 

1584| フィールド | 型 | 説明 |

1585| :------------ | :------------ | :-------------------------------------------------------------------------------------------------- |

1586| `task_id` | `str` | タスクの一意の識別子 |

1587| `description` | `str` | タスクの説明 |

1588| `uuid` | `str` | 一意のメッセージ識別子 |

1589| `session_id` | `str` | セッション識別子 |

1590| `tool_use_id` | `str \| None` | 関連するツール使用 ID |

1591| `task_type` | `str \| None` | バックグラウンドタスクの種類:バックグラウンド Bash と Monitor ウォッチの場合は `"local_bash"`、`"local_agent"`、または `"remote_agent"` |

1592 

1593### `TaskUsage`

1594 

1595バックグラウンドタスクのトークンとタイミングデータ。

1596 

1597```python theme={null}

1598class TaskUsage(TypedDict):

1599 total_tokens: int

1600 tool_uses: int

1601 duration_ms: int

1602```

1603 

1604### `TaskProgressMessage`

1605 

1606実行中のバックグラウンドタスクの進捗更新で定期的に発行されます。

1607 

1608```python theme={null}

1609@dataclass

1610class TaskProgressMessage(SystemMessage):

1611 task_id: str

1612 description: str

1613 usage: TaskUsage

1614 uuid: str

1615 session_id: str

1616 tool_use_id: str | None = None

1617 last_tool_name: str | None = None

1618```

1619 

1620| フィールド | 型 | 説明 |

1621| :--------------- | :------------ | :------------------ |

1622| `task_id` | `str` | タスクの一意の識別子 |

1623| `description` | `str` | 現在のステータス説明 |

1624| `usage` | `TaskUsage` | これまでのこのタスクのトークン使用状況 |

1625| `uuid` | `str` | 一意のメッセージ識別子 |

1626| `session_id` | `str` | セッション識別子 |

1627| `tool_use_id` | `str \| None` | 関連するツール使用 ID |

1628| `last_tool_name` | `str \| None` | タスクが最後に使用したツールの名前 |

1629 

1630### `TaskNotificationMessage`

1631 

1632バックグラウンドタスクが完了、失敗、または停止されたときに発行されます。バックグラウンドタスクには、`run_in_background` Bash コマンド、Monitor ウォッチ、バックグラウンドサブエージェントが含まれます。

1633 

1634```python theme={null}

1635@dataclass

1636class TaskNotificationMessage(SystemMessage):

1637 task_id: str

1638 status: TaskNotificationStatus # "completed" | "failed" | "stopped"

1639 output_file: str

1640 summary: str

1641 uuid: str

1642 session_id: str

1643 tool_use_id: str | None = None

1644 usage: TaskUsage | None = None

1645```

1646 

1647| フィールド | 型 | 説明 |

1648| :------------ | :----------------------- | :--------------------------------------------- |

1649| `task_id` | `str` | タスクの一意の識別子 |

1650| `status` | `TaskNotificationStatus` | `"completed"`、`"failed"`、または `"stopped"` のいずれか |

1651| `output_file` | `str` | タスク出力ファイルへのパス |

1652| `summary` | `str` | タスク結果のサマリー |

1653| `uuid` | `str` | 一意のメッセージ識別子 |

1654| `session_id` | `str` | セッション識別子 |

1655| `tool_use_id` | `str \| None` | 関連するツール使用 ID |

1656| `usage` | `TaskUsage \| None` | タスクの最終トークン使用状況 |

1657 

1658## コンテンツブロック型

1659 

1660### `ContentBlock`

1661 

1662すべてのコンテンツブロックの Union 型。

1663 

1664```python theme={null}

1665ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock

1666```

1667 

1668### `TextBlock`

1669 

1670テキストコンテンツブロック。

1671 

1672```python theme={null}

1673@dataclass

1674class TextBlock:

1675 text: str

1676```

1677 

1678### `ThinkingBlock`

1679 

1680思考コンテンツブロック(思考機能を持つモデル用)。

1681 

1682```python theme={null}

1683@dataclass

1684class ThinkingBlock:

1685 thinking: str

1686 signature: str

1687```

1688 

1689### `ToolUseBlock`

1690 

1691ツール使用リクエストブロック。

1692 

1693```python theme={null}

1694@dataclass

1695class ToolUseBlock:

1696 id: str

1697 name: str

1698 input: dict[str, Any]

1699```

1700 

1701### `ToolResultBlock`

1702 

1703ツール実行結果ブロック。

1704 

1705```python theme={null}

1706@dataclass

1707class ToolResultBlock:

1708 tool_use_id: str

1709 content: str | list[dict[str, Any]] | None = None

1710 is_error: bool | None = None

1711```

1712 

1713## エラー型

1714 

1715### `ClaudeSDKError`

1716 

1717すべての SDK エラーの基本例外クラス。

1718 

1719```python theme={null}

1720class ClaudeSDKError(Exception):

1721 """Base error for Claude SDK."""

1722```

1723 

1724### `CLINotFoundError`

1725 

1726Claude Code CLI がインストールされていないか見つからない場合に発生します。

1727 

1728```python theme={null}

1729class CLINotFoundError(CLIConnectionError):

1730 def __init__(

1731 self, message: str = "Claude Code not found", cli_path: str | None = None

1732 ):

1733 """

1734 Args:

1735 message: Error message (default: "Claude Code not found")

1736 cli_path: Optional path to the CLI that was not found

1737 """

1738```

1739 

1740### `CLIConnectionError`

1741 

1742Claude Code への接続に失敗した場合に発生します。

1743 

1744```python theme={null}

1745class CLIConnectionError(ClaudeSDKError):

1746 """Failed to connect to Claude Code."""

1747```

1748 

1749### `ProcessError`

1750 

1751Claude Code プロセスが失敗した場合に発生します。

1752 

1753```python theme={null}

1754class ProcessError(ClaudeSDKError):

1755 def __init__(

1756 self, message: str, exit_code: int | None = None, stderr: str | None = None

1757 ):

1758 self.exit_code = exit_code

1759 self.stderr = stderr

1760```

1761 

1762### `CLIJSONDecodeError`

1763 

1764JSON 解析に失敗した場合に発生します。

1765 

1766```python theme={null}

1767class CLIJSONDecodeError(ClaudeSDKError):

1768 def __init__(self, line: str, original_error: Exception):

1769 """

1770 Args:

1771 line: The line that failed to parse

1772 original_error: The original JSON decode exception

1773 """

1774 self.line = line

1775 self.original_error = original_error

1776```

1777 

1778## Hook 型

1779 

1780hooks の使用に関する包括的なガイド、例、一般的なパターンについては、[Hooks ガイド](/ja/agent-sdk/hooks) を参照してください。

1781 

1782### `HookEvent`

1783 

1784サポートされている hook イベント型。

1785 

1786```python theme={null}

1787HookEvent = Literal[

1788 "PreToolUse", # Called before tool execution

1789 "PostToolUse", # Called after tool execution

1790 "PostToolUseFailure", # Called when a tool execution fails

1791 "UserPromptSubmit", # Called when user submits a prompt

1792 "Stop", # Called when stopping execution

1793 "SubagentStop", # Called when a subagent stops

1794 "PreCompact", # Called before message compaction

1795 "Notification", # Called for notification events

1796 "SubagentStart", # Called when a subagent starts

1797 "PermissionRequest", # Called when a permission decision is needed

1798]

1799```

1800 

1801<Note>

1802 TypeScript SDK は、Python ではまだ利用できない追加の hook イベントをサポートしています:`SessionStart`、`SessionEnd`、`Setup`、`TeammateIdle`、`TaskCompleted`、`ConfigChange`、`WorktreeCreate`、`WorktreeRemove`、`PostToolBatch`。

1803</Note>

1804 

1805### `HookCallback`

1806 

1807hook コールバック関数の型定義。

1808 

1809```python theme={null}

1810HookCallback = Callable[[HookInput, str | None, HookContext], Awaitable[HookJSONOutput]]

1811```

1812 

1813パラメータ:

1814 

1815* `input`:`hook_event_name` に基づいた判別 Union を持つ強く型付けされた hook 入力([`HookInput`](#hook-input) を参照)

1816* `tool_use_id`:オプションのツール使用識別子(ツール関連の hook 用)

1817* `context`:追加情報を含む hook コンテキスト

1818 

1819以下を含む可能性のある [`HookJSONOutput`](#hook-json-output) を返します:

1820 

1821* `decision`:アクションをブロックするには `"block"`

1822* `systemMessage`:トランスクリプトに追加するシステムメッセージ

1823* `hookSpecificOutput`:hook 固有の出力データ

1824 

1825### `HookContext`

1826 

1827hook コールバックに渡されるコンテキスト情報。

1828 

1829```python theme={null}

1830class HookContext(TypedDict):

1831 signal: Any | None # Future: abort signal support

1832```

1833 

1834### `HookMatcher`

1835 

1836特定のイベントまたはツールに hook をマッチングするための設定。

1837 

1838```python theme={null}

1839@dataclass

1840class HookMatcher:

1841 matcher: str | None = (

1842 None # Tool name or pattern to match (e.g., "Bash", "Write|Edit")

1843 )

1844 hooks: list[HookCallback] = field(

1845 default_factory=list

1846 ) # List of callbacks to execute

1847 timeout: float | None = (

1848 None # Timeout in seconds for all hooks in this matcher (default: 60)

1849 )

1850```

1851 

1852### `HookInput`

1853 

1854すべての hook 入力型の Union 型。実際の型は `hook_event_name` フィールドに依存します。

1855 

1856```python theme={null}

1857HookInput = (

1858 PreToolUseHookInput

1859 | PostToolUseHookInput

1860 | PostToolUseFailureHookInput

1861 | UserPromptSubmitHookInput

1862 | StopHookInput

1863 | SubagentStopHookInput

1864 | PreCompactHookInput

1865 | NotificationHookInput

1866 | SubagentStartHookInput

1867 | PermissionRequestHookInput

1868)

1869```

1870 

1871### `BaseHookInput`

1872 

1873すべての hook 入力型に存在する基本フィールド。

1874 

1875```python theme={null}

1876class BaseHookInput(TypedDict):

1877 session_id: str

1878 transcript_path: str

1879 cwd: str

1880 permission_mode: NotRequired[str]

1881```

1882 

1883| フィールド | 型 | 説明 |

1884| :---------------- | :----------- | :-------------------- |

1885| `session_id` | `str` | 現在のセッション識別子 |

1886| `transcript_path` | `str` | セッショントランスクリプトファイルへのパス |

1887| `cwd` | `str` | 現在の作業ディレクトリ |

1888| `permission_mode` | `str`(オプション) | 現在のパーミッションモード |

1889 

1890### `PreToolUseHookInput`

1891 

1892`PreToolUse` hook イベントの入力データ。

1893 

1894```python theme={null}

1895class PreToolUseHookInput(BaseHookInput):

1896 hook_event_name: Literal["PreToolUse"]

1897 tool_name: str

1898 tool_input: dict[str, Any]

1899 tool_use_id: str

1900 agent_id: NotRequired[str]

1901 agent_type: NotRequired[str]

1902```

1903 

1904| フィールド | 型 | 説明 |

1905| :---------------- | :---------------------- | :------------------------------------ |

1906| `hook_event_name` | `Literal["PreToolUse"]` | 常に "PreToolUse" |

1907| `tool_name` | `str` | 実行しようとしているツールの名前 |

1908| `tool_input` | `dict[str, Any]` | ツールの入力パラメータ |

1909| `tool_use_id` | `str` | このツール使用の一意の識別子 |

1910| `agent_id` | `str`(オプション) | サブエージェント識別子。hook がサブエージェント内で発火する場合に存在 |

1911| `agent_type` | `str`(オプション) | サブエージェント型。hook がサブエージェント内で発火する場合に存在 |

1912 

1913### `PostToolUseHookInput`

1914 

1915`PostToolUse` hook イベントの入力データ。

1916 

1917```python theme={null}

1918class PostToolUseHookInput(BaseHookInput):

1919 hook_event_name: Literal["PostToolUse"]

1920 tool_name: str

1921 tool_input: dict[str, Any]

1922 tool_response: Any

1923 tool_use_id: str

1924 agent_id: NotRequired[str]

1925 agent_type: NotRequired[str]

1926```

1927 

1928| フィールド | 型 | 説明 |

1929| :---------------- | :----------------------- | :------------------------------------ |

1930| `hook_event_name` | `Literal["PostToolUse"]` | 常に "PostToolUse" |

1931| `tool_name` | `str` | 実行されたツールの名前 |

1932| `tool_input` | `dict[str, Any]` | 使用された入力パラメータ |

1933| `tool_response` | `Any` | ツール実行からの応答 |

1934| `tool_use_id` | `str` | このツール使用の一意の識別子 |

1935| `agent_id` | `str`(オプション) | サブエージェント識別子。hook がサブエージェント内で発火する場合に存在 |

1936| `agent_type` | `str`(オプション) | サブエージェント型。hook がサブエージェント内で発火する場合に存在 |

1937 

1938### `PostToolUseFailureHookInput`

1939 

1940`PostToolUseFailure` hook イベントの入力データ。ツール実行が失敗したときに呼び出されます。

1941 

1942```python theme={null}

1943class PostToolUseFailureHookInput(BaseHookInput):

1944 hook_event_name: Literal["PostToolUseFailure"]

1945 tool_name: str

1946 tool_input: dict[str, Any]

1947 tool_use_id: str

1948 error: str

1949 is_interrupt: NotRequired[bool]

1950 agent_id: NotRequired[str]

1951 agent_type: NotRequired[str]

1952```

1953 

1954| フィールド | 型 | 説明 |

1955| :---------------- | :------------------------------ | :------------------------------------ |

1956| `hook_event_name` | `Literal["PostToolUseFailure"]` | 常に "PostToolUseFailure" |

1957| `tool_name` | `str` | 失敗したツールの名前 |

1958| `tool_input` | `dict[str, Any]` | 使用された入力パラメータ |

1959| `tool_use_id` | `str` | このツール使用の一意の識別子 |

1960| `error` | `str` | 失敗した実行からのエラーメッセージ |

1961| `is_interrupt` | `bool`(オプション) | 失敗が割り込みによって引き起こされたかどうか |

1962| `agent_id` | `str`(オプション) | サブエージェント識別子。hook がサブエージェント内で発火する場合に存在 |

1963| `agent_type` | `str`(オプション) | サブエージェント型。hook がサブエージェント内で発火する場合に存在 |

1964 

1965### `UserPromptSubmitHookInput`

1966 

1967`UserPromptSubmit` hook イベントの入力データ。

1968 

1969```python theme={null}

1970class UserPromptSubmitHookInput(BaseHookInput):

1971 hook_event_name: Literal["UserPromptSubmit"]

1972 prompt: str

1973```

1974 

1975| フィールド | 型 | 説明 |

1976| :---------------- | :---------------------------- | :-------------------- |

1977| `hook_event_name` | `Literal["UserPromptSubmit"]` | 常に "UserPromptSubmit" |

1978| `prompt` | `str` | ユーザーが送信したプロンプト |

1979 

1980### `StopHookInput`

1981 

1982`Stop` hook イベントの入力データ。

1983 

1984```python theme={null}

1985class StopHookInput(BaseHookInput):

1986 hook_event_name: Literal["Stop"]

1987 stop_hook_active: bool

1988```

1989 

1990| フィールド | 型 | 説明 |

1991| :----------------- | :---------------- | :------------------- |

1992| `hook_event_name` | `Literal["Stop"]` | 常に "Stop" |

1993| `stop_hook_active` | `bool` | stop hook がアクティブかどうか |

1994 

1995### `SubagentStopHookInput`

1996 

1997`SubagentStop` hook イベントの入力データ。

1998 

1999```python theme={null}

2000class SubagentStopHookInput(BaseHookInput):

2001 hook_event_name: Literal["SubagentStop"]

2002 stop_hook_active: bool

2003 agent_id: str

2004 agent_transcript_path: str

2005 agent_type: str

2006```

2007 

2008| フィールド | 型 | 説明 |

2009| :---------------------- | :------------------------ | :------------------------ |

2010| `hook_event_name` | `Literal["SubagentStop"]` | 常に "SubagentStop" |

2011| `stop_hook_active` | `bool` | stop hook がアクティブかどうか |

2012| `agent_id` | `str` | サブエージェントの一意の識別子 |

2013| `agent_transcript_path` | `str` | サブエージェントのトランスクリプトファイルへのパス |

2014| `agent_type` | `str` | サブエージェントの型 |

2015 

2016### `PreCompactHookInput`

2017 

2018`PreCompact` hook イベントの入力データ。

2019 

2020```python theme={null}

2021class PreCompactHookInput(BaseHookInput):

2022 hook_event_name: Literal["PreCompact"]

2023 trigger: Literal["manual", "auto"]

2024 custom_instructions: str | None

2025```

2026 

2027| フィールド | 型 | 説明 |

2028| :-------------------- | :-------------------------- | :---------------- |

2029| `hook_event_name` | `Literal["PreCompact"]` | 常に "PreCompact" |

2030| `trigger` | `Literal["manual", "auto"]` | コンパクション をトリガーしたもの |

2031| `custom_instructions` | `str \| None` | コンパクション用のカスタム指示 |

2032 

2033### `NotificationHookInput`

2034 

2035`Notification` hook イベントの入力データ。

2036 

2037```python theme={null}

2038class NotificationHookInput(BaseHookInput):

2039 hook_event_name: Literal["Notification"]

2040 message: str

2041 title: NotRequired[str]

2042 notification_type: str

2043```

2044 

2045| フィールド | 型 | 説明 |

2046| :------------------ | :------------------------ | :---------------- |

2047| `hook_event_name` | `Literal["Notification"]` | 常に "Notification" |

2048| `message` | `str` | 通知メッセージコンテンツ |

2049| `title` | `str`(オプション) | 通知タイトル |

2050| `notification_type` | `str` | 通知の型 |

2051 

2052### `SubagentStartHookInput`

2053 

2054`SubagentStart` hook イベントの入力データ。

2055 

2056```python theme={null}

2057class SubagentStartHookInput(BaseHookInput):

2058 hook_event_name: Literal["SubagentStart"]

2059 agent_id: str

2060 agent_type: str

2061```

2062 

2063| フィールド | 型 | 説明 |

2064| :---------------- | :------------------------- | :----------------- |

2065| `hook_event_name` | `Literal["SubagentStart"]` | 常に "SubagentStart" |

2066| `agent_id` | `str` | サブエージェントの一意の識別子 |

2067| `agent_type` | `str` | サブエージェントの型 |

2068 

2069### `PermissionRequestHookInput`

2070 

2071`PermissionRequest` hook イベントの入力データ。hooks がパーミッション決定をプログラムで処理できるようにします。

2072 

2073```python theme={null}

2074class PermissionRequestHookInput(BaseHookInput):

2075 hook_event_name: Literal["PermissionRequest"]

2076 tool_name: str

2077 tool_input: dict[str, Any]

2078 permission_suggestions: NotRequired[list[Any]]

2079```

2080 

2081| フィールド | 型 | 説明 |

2082| :----------------------- | :----------------------------- | :--------------------- |

2083| `hook_event_name` | `Literal["PermissionRequest"]` | 常に "PermissionRequest" |

2084| `tool_name` | `str` | パーミッションをリクエストするツールの名前 |

2085| `tool_input` | `dict[str, Any]` | ツールの入力パラメータ |

2086| `permission_suggestions` | `list[Any]`(オプション) | CLI からの提案されたパーミッション更新 |

2087 

2088### `HookJSONOutput`

2089 

2090hook コールバック戻り値の Union 型。

2091 

2092```python theme={null}

2093HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput

2094```

2095 

2096#### `SyncHookJSONOutput`

2097 

2098制御フィールドと決定フィールドを持つ同期 hook 出力。

2099 

2100```python theme={null}

2101class SyncHookJSONOutput(TypedDict):

2102 # Control fields

2103 continue_: NotRequired[bool] # Whether to proceed (default: True)

2104 suppressOutput: NotRequired[bool] # Hide stdout from transcript

2105 stopReason: NotRequired[str] # Message when continue is False

2106 

2107 # Decision fields

2108 decision: NotRequired[Literal["block"]]

2109 systemMessage: NotRequired[str] # Warning message for user

2110 reason: NotRequired[str] # Feedback for Claude

2111 

2112 # Hook-specific output

2113 hookSpecificOutput: NotRequired[HookSpecificOutput]

2114```

2115 

2116<Note>

2117 Python コードで `continue_`(アンダースコア付き)を使用してください。CLI に送信されるときに自動的に `continue` に変換されます。

2118</Note>

2119 

2120#### `HookSpecificOutput`

2121 

2122hook イベント名とイベント固有のフィールドを含む `TypedDict`。形状は `hookEventName` 値に依存します。hook イベントごとに利用可能なフィールドの詳細については、[hooks で実行を制御](/ja/agent-sdk/hooks#outputs) を参照してください。

2123 

2124イベント固有の出力型の判別 union。`hookEventName` フィールドはどのフィールドが有効かを決定します。

2125 

2126```python theme={null}

2127class PreToolUseHookSpecificOutput(TypedDict):

2128 hookEventName: Literal["PreToolUse"]

2129 permissionDecision: NotRequired[Literal["allow", "deny", "ask"]]

2130 permissionDecisionReason: NotRequired[str]

2131 updatedInput: NotRequired[dict[str, Any]]

2132 additionalContext: NotRequired[str]

2133 

2134 

2135class PostToolUseHookSpecificOutput(TypedDict):

2136 hookEventName: Literal["PostToolUse"]

2137 additionalContext: NotRequired[str]

2138 updatedMCPToolOutput: NotRequired[Any]

2139 

2140 

2141class PostToolUseFailureHookSpecificOutput(TypedDict):

2142 hookEventName: Literal["PostToolUseFailure"]

2143 additionalContext: NotRequired[str]

2144 

2145 

2146class UserPromptSubmitHookSpecificOutput(TypedDict):

2147 hookEventName: Literal["UserPromptSubmit"]

2148 additionalContext: NotRequired[str]

2149 

2150 

2151class NotificationHookSpecificOutput(TypedDict):

2152 hookEventName: Literal["Notification"]

2153 additionalContext: NotRequired[str]

2154 

2155 

2156class SubagentStartHookSpecificOutput(TypedDict):

2157 hookEventName: Literal["SubagentStart"]

2158 additionalContext: NotRequired[str]

2159 

2160 

2161class PermissionRequestHookSpecificOutput(TypedDict):

2162 hookEventName: Literal["PermissionRequest"]

2163 decision: dict[str, Any]

2164 

2165 

2166HookSpecificOutput = (

2167 PreToolUseHookSpecificOutput

2168 | PostToolUseHookSpecificOutput

2169 | PostToolUseFailureHookSpecificOutput

2170 | UserPromptSubmitHookSpecificOutput

2171 | NotificationHookSpecificOutput

2172 | SubagentStartHookSpecificOutput

2173 | PermissionRequestHookSpecificOutput

2174)

2175```

2176 

2177#### `AsyncHookJSONOutput`

2178 

2179hook 実行を遅延させる非同期 hook 出力。

2180 

2181```python theme={null}

2182class AsyncHookJSONOutput(TypedDict):

2183 async_: Literal[True] # Set to True to defer execution

2184 asyncTimeout: NotRequired[int] # Timeout in milliseconds

2185```

2186 

2187<Note>

2188 Python コードで `async_`(アンダースコア付き)を使用してください。CLI に送信されるときに自動的に `async` に変換されます。

2189</Note>

2190 

2191### Hook 使用例

2192 

2193この例は 2 つの hook を登録します:1 つは `rm -rf /` のような危険な bash コマンドをブロックし、もう 1 つは監査のためにすべてのツール使用をログします。セキュリティ hook は `matcher` を介して Bash コマンドでのみ実行され、ログ hook はすべてのツールで実行されます。

2194 

2195```python theme={null}

2196from claude_agent_sdk import query, ClaudeAgentOptions, HookMatcher, HookContext

2197from typing import Any

2198 

2199 

2200async def validate_bash_command(

2201 input_data: dict[str, Any], tool_use_id: str | None, context: HookContext

2202) -> dict[str, Any]:

2203 """Validate and potentially block dangerous bash commands."""

2204 if input_data["tool_name"] == "Bash":

2205 command = input_data["tool_input"].get("command", "")

2206 if "rm -rf /" in command:

2207 return {

2208 "hookSpecificOutput": {

2209 "hookEventName": "PreToolUse",

2210 "permissionDecision": "deny",

2211 "permissionDecisionReason": "Dangerous command blocked",

2212 }

2213 }

2214 return {}

2215 

2216 

2217async def log_tool_use(

2218 input_data: dict[str, Any], tool_use_id: str | None, context: HookContext

2219) -> dict[str, Any]:

2220 """Log all tool usage for auditing."""

2221 print(f"Tool used: {input_data.get('tool_name')}")

2222 return {}

2223 

2224 

2225options = ClaudeAgentOptions(

2226 hooks={

2227 "PreToolUse": [

2228 HookMatcher(

2229 matcher="Bash", hooks=[validate_bash_command], timeout=120

2230 ), # 2 min for validation

2231 HookMatcher(

2232 hooks=[log_tool_use]

2233 ), # Applies to all tools (default 60s timeout)

2234 ],

2235 "PostToolUse": [HookMatcher(hooks=[log_tool_use])],

2236 }

2237)

2238 

2239async for message in query(prompt="Analyze this codebase", options=options):

2240 print(message)

2241```

2242 

2243## ツール入出力型

2244 

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

2246 

2247### Agent

2248 

2249**ツール名:** `Agent`(以前は `Task`。これはまだエイリアスとして受け入れられます)

2250 

2251**入力:**

2252 

2253```python theme={null}

2254{

2255 "description": str, # A short (3-5 word) description of the task

2256 "prompt": str, # The task for the agent to perform

2257 "subagent_type": str, # The type of specialized agent to use

2258}

2259```

2260 

2261**出力:**

2262 

2263```python theme={null}

2264{

2265 "result": str, # Final result from the subagent

2266 "usage": dict | None, # Token usage statistics

2267 "total_cost_usd": float | None, # Estimated total cost in USD

2268 "duration_ms": int | None, # Execution duration in milliseconds

2269}

2270```

2271 

2272### AskUserQuestion

2273 

2274**ツール名:** `AskUserQuestion`

2275 

2276実行中にユーザーに明確化の質問をします。使用の詳細については [承認とユーザー入力を処理](/ja/agent-sdk/user-input#handle-clarifying-questions) を参照してください。

2277 

2278**入力:**

2279 

2280```python theme={null}

2281{

2282 "questions": [ # Questions to ask the user (1-4 questions)

2283 {

2284 "question": str, # The complete question to ask the user

2285 "header": str, # Very short label displayed as a chip/tag (max 12 chars)

2286 "options": [ # The available choices (2-4 options)

2287 {

2288 "label": str, # Display text for this option (1-5 words)

2289 "description": str, # Explanation of what this option means

2290 }

2291 ],

2292 "multiSelect": bool, # Set to true to allow multiple selections

2293 }

2294 ],

2295 "answers": dict | None, # User answers populated by the permission system

2296}

2297```

2298 

2299**出力:**

2300 

2301```python theme={null}

2302{

2303 "questions": [ # The questions that were asked

2304 {

2305 "question": str,

2306 "header": str,

2307 "options": [{"label": str, "description": str}],

2308 "multiSelect": bool,

2309 }

2310 ],

2311 "answers": dict[str, str], # Maps question text to answer string

2312 # Multi-select answers are comma-separated

2313}

2314```

2315 

2316### Bash

2317 

2318**ツール名:** `Bash`

2319 

2320**入力:**

2321 

2322```python theme={null}

2323{

2324 "command": str, # The command to execute

2325 "timeout": int | None, # Optional timeout in milliseconds (max 600000)

2326 "description": str | None, # Clear, concise description (5-10 words)

2327 "run_in_background": bool | None, # Set to true to run in background

2328}

2329```

2330 

2331**出力:**

2332 

2333```python theme={null}

2334{

2335 "output": str, # Combined stdout and stderr output

2336 "exitCode": int, # Exit code of the command

2337 "killed": bool | None, # Whether command was killed due to timeout

2338 "shellId": str | None, # Shell ID for background processes

2339}

2340```

2341 

2342### Monitor

2343 

2344**ツール名:** `Monitor`

2345 

2346バックグラウンドスクリプトを実行し、各 stdout 行を Claude にイベントとして配信して、ポーリングなしで反応できるようにします。Monitor は Bash と同じパーミッションルールに従います。動作とプロバイダーの可用性については、[Monitor ツールリファレンス](/ja/tools-reference#monitor-tool) を参照してください。

2347 

2348**入力:**

2349 

2350```python theme={null}

2351{

2352 "command": str, # Shell script; each stdout line is an event, exit ends the watch

2353 "description": str, # Short description shown in notifications

2354 "timeout_ms": int | None, # Kill after this deadline (default 300000, max 3600000)

2355 "persistent": bool | None, # Run for the lifetime of the session; stop with TaskStop

2356}

2357```

2358 

2359**出力:**

2360 

2361```python theme={null}

2362{

2363 "taskId": str, # ID of the background monitor task

2364 "timeoutMs": int, # Timeout deadline in milliseconds (0 when persistent)

2365 "persistent": bool | None, # True when running until TaskStop or session end

2366}

2367```

2368 

2369### Edit

2370 

2371**ツール名:** `Edit`

2372 

2373**入力:**

2374 

2375```python theme={null}

2376{

2377 "file_path": str, # The absolute path to the file to modify

2378 "old_string": str, # The text to replace

2379 "new_string": str, # The text to replace it with

2380 "replace_all": bool | None, # Replace all occurrences (default False)

2381}

2382```

2383 

2384**出力:**

2385 

2386```python theme={null}

2387{

2388 "message": str, # Confirmation message

2389 "replacements": int, # Number of replacements made

2390 "file_path": str, # File path that was edited

2391}

2392```

2393 

2394### Read

2395 

2396**ツール名:** `Read`

2397 

2398**入力:**

2399 

2400```python theme={null}

2401{

2402 "file_path": str, # The absolute path to the file to read

2403 "offset": int | None, # The line number to start reading from

2404 "limit": int | None, # The number of lines to read

2405}

2406```

2407 

2408**出力(テキストファイル):**

2409 

2410```python theme={null}

2411{

2412 "content": str, # File contents with line numbers

2413 "total_lines": int, # Total number of lines in file

2414 "lines_returned": int, # Lines actually returned

2415}

2416```

2417 

2418**出力(画像):**

2419 

2420```python theme={null}

2421{

2422 "image": str, # Base64 encoded image data

2423 "mime_type": str, # Image MIME type

2424 "file_size": int, # File size in bytes

2425}

2426```

2427 

2428### Write

2429 

2430**ツール名:** `Write`

2431 

2432**入力:**

2433 

2434```python theme={null}

2435{

2436 "file_path": str, # The absolute path to the file to write

2437 "content": str, # The content to write to the file

2438}

2439```

2440 

2441**出力:**

2442 

2443```python theme={null}

2444{

2445 "message": str, # Success message

2446 "bytes_written": int, # Number of bytes written

2447 "file_path": str, # File path that was written

2448}

2449```

2450 

2451### Glob

2452 

2453**ツール名:** `Glob`

2454 

2455**入力:**

2456 

2457```python theme={null}

2458{

2459 "pattern": str, # The glob pattern to match files against

2460 "path": str | None, # The directory to search in (defaults to cwd)

2461}

2462```

2463 

2464**出力:**

2465 

2466```python theme={null}

2467{

2468 "matches": list[str], # Array of matching file paths

2469 "count": int, # Number of matches found

2470 "search_path": str, # Search directory used

2471}

2472```

2473 

2474### Grep

2475 

2476**ツール名:** `Grep`

2477 

2478**入力:**

2479 

2480```python theme={null}

2481{

2482 "pattern": str, # The regular expression pattern

2483 "path": str | None, # File or directory to search in

2484 "glob": str | None, # Glob pattern to filter files

2485 "type": str | None, # File type to search

2486 "output_mode": str | None, # "content", "files_with_matches", or "count"

2487 "-i": bool | None, # Case insensitive search

2488 "-n": bool | None, # Show line numbers

2489 "-B": int | None, # Lines to show before each match

2490 "-A": int | None, # Lines to show after each match

2491

2492 "-C": int | None, # Lines to show before and after

2493 "head_limit": int | None, # Limit output to first N lines/entries

2494 "multiline": bool | None, # Enable multiline mode

2495}

2496```

2497 

2498**出力(content モード):**

2499 

2500```python theme={null}

2501{

2502 "matches": [

2503 {

2504 "file": str,

2505 "line_number": int | None,

2506 "line": str,

2507 "before_context": list[str] | None,

2508 "after_context": list[str] | None,

2509 }

2510 ],

2511 "total_matches": int,

2512}

2513```

2514 

2515**出力(files\_with\_matches モード):**

2516 

2517```python theme={null}

2518{

2519 "files": list[str], # Files containing matches

2520 "count": int, # Number of files with matches

2521}

2522```

2523 

2524### NotebookEdit

2525 

2526**ツール名:** `NotebookEdit`

2527 

2528**入力:**

2529 

2530```python theme={null}

2531{

2532 "notebook_path": str, # Absolute path to the Jupyter notebook

2533 "cell_id": str | None, # The ID of the cell to edit

2534 "new_source": str, # The new source for the cell

2535 "cell_type": "code" | "markdown" | None, # The type of the cell

2536 "edit_mode": "replace" | "insert" | "delete" | None, # Edit operation type

2537}

2538```

2539 

2540**出力:**

2541 

2542```python theme={null}

2543{

2544 "message": str, # Success message

2545 "edit_type": "replaced" | "inserted" | "deleted", # Type of edit performed

2546 "cell_id": str | None, # Cell ID that was affected

2547 "total_cells": int, # Total cells in notebook after edit

2548}

2549```

2550 

2551### WebFetch

2552 

2553**ツール名:** `WebFetch`

2554 

2555**入力:**

2556 

2557```python theme={null}

2558{

2559 "url": str, # The URL to fetch content from

2560 "prompt": str, # The prompt to run on the fetched content

2561}

2562```

2563 

2564**出力:**

2565 

2566```python theme={null}

2567{

2568 "response": str, # AI model's response to the prompt

2569 "url": str, # URL that was fetched

2570 "final_url": str | None, # Final URL after redirects

2571 "status_code": int | None, # HTTP status code

2572}

2573```

2574 

2575### WebSearch

2576 

2577**ツール名:** `WebSearch`

2578 

2579**入力:**

2580 

2581```python theme={null}

2582{

2583 "query": str, # The search query to use

2584 "allowed_domains": list[str] | None, # Only include results from these domains

2585 "blocked_domains": list[str] | None, # Never include results from these domains

2586}

2587```

2588 

2589**出力:**

2590 

2591```python theme={null}

2592{

2593 "results": [{"title": str, "url": str, "snippet": str, "metadata": dict | None}],

2594 "total_results": int,

2595 "query": str,

2596}

2597```

2598 

2599### TodoWrite

2600 

2601**ツール名:** `TodoWrite`

2602 

2603**入力:**

2604 

2605```python theme={null}

2606{

2607 "todos": [

2608 {

2609 "content": str, # The task description

2610 "status": "pending" | "in_progress" | "completed", # Task status

2611 "activeForm": str, # Active form of the description

2612 }

2613 ]

2614}

2615```

2616 

2617**出力:**

2618 

2619```python theme={null}

2620{

2621 "message": str, # Success message

2622 "stats": {"total": int, "pending": int, "in_progress": int, "completed": int},

2623}

2624```

2625 

2626### BashOutput

2627 

2628**ツール名:** `BashOutput`

2629 

2630**入力:**

2631 

2632```python theme={null}

2633{

2634 "bash_id": str, # The ID of the background shell

2635 "filter": str | None, # Optional regex to filter output lines

2636}

2637```

2638 

2639**出力:**

2640 

2641```python theme={null}

2642{

2643 "output": str, # New output since last check

2644 "status": "running" | "completed" | "failed", # Current shell status

2645 "exitCode": int | None, # Exit code when completed

2646}

2647```

2648 

2649### KillBash

2650 

2651**ツール名:** `KillBash`

2652 

2653**入力:**

2654 

2655```python theme={null}

2656{

2657 "shell_id": str # The ID of the background shell to kill

2658}

2659```

2660 

2661**出力:**

2662 

2663```python theme={null}

2664{

2665 "message": str, # Success message

2666 "shell_id": str, # ID of the killed shell

2667}

2668```

2669 

2670### ExitPlanMode

2671 

2672**ツール名:** `ExitPlanMode`

2673 

2674**入力:**

2675 

2676```python theme={null}

2677{

2678 "plan": str # The plan to run by the user for approval

2679}

2680```

2681 

2682**出力:**

2683 

2684```python theme={null}

2685{

2686 "message": str, # Confirmation message

2687 "approved": bool | None, # Whether user approved the plan

2688}

2689```

2690 

2691### ListMcpResources

2692 

2693**ツール名:** `ListMcpResources`

2694 

2695**入力:**

2696 

2697```python theme={null}

2698{

2699 "server": str | None # Optional server name to filter resources by

2700}

2701```

2702 

2703**出力:**

2704 

2705```python theme={null}

2706{

2707 "resources": [

2708 {

2709 "uri": str,

2710 "name": str,

2711 "description": str | None,

2712 "mimeType": str | None,

2713 "server": str,

2714 }

2715 ],

2716 "total": int,

2717}

2718```

2719 

2720### ReadMcpResource

2721 

2722**ツール名:** `ReadMcpResource`

2723 

2724**入力:**

2725 

2726```python theme={null}

2727{

2728 "server": str, # The MCP server name

2729 "uri": str, # The resource URI to read

2730}

2731```

2732 

2733**出力:**

2734 

2735```python theme={null}

2736{

2737 "contents": [

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

2739 ],

2740 "server": str,

2741}

2742```

2743 

2744## ClaudeSDKClient を使用した高度な機能

2745 

2746### 継続的な会話インターフェースの構築

2747 

2748```python theme={null}

2749from claude_agent_sdk import (

2750 ClaudeSDKClient,

2751 ClaudeAgentOptions,

2752 AssistantMessage,

2753 TextBlock,

2754)

2755import asyncio

2756 

2757 

2758class ConversationSession:

2759 """Maintains a single conversation session with Claude."""

2760 

2761 def __init__(self, options: ClaudeAgentOptions | None = None):

2762 self.client = ClaudeSDKClient(options)

2763 self.turn_count = 0

2764 

2765 async def start(self):

2766 await self.client.connect()

2767 print("Starting conversation session. Claude will remember context.")

2768 print(

2769 "Commands: 'exit' to quit, 'interrupt' to stop current task, 'new' for new session"

2770 )

2771 

2772 while True:

2773 user_input = input(f"\n[Turn {self.turn_count + 1}] You: ")

2774 

2775 if user_input.lower() == "exit":

2776 break

2777 elif user_input.lower() == "interrupt":

2778 await self.client.interrupt()

2779 print("Task interrupted!")

2780 continue

2781 elif user_input.lower() == "new":

2782 # Disconnect and reconnect for a fresh session

2783 await self.client.disconnect()

2784 await self.client.connect()

2785 self.turn_count = 0

2786 print("Started new conversation session (previous context cleared)")

2787 continue

2788 

2789 # Send message - the session retains all previous messages

2790 await self.client.query(user_input)

2791 self.turn_count += 1

2792 

2793 # Process response

2794 print(f"[Turn {self.turn_count}] Claude: ", end="")

2795 async for message in self.client.receive_response():

2796 if isinstance(message, AssistantMessage):

2797 for block in message.content:

2798 if isinstance(block, TextBlock):

2799 print(block.text, end="")

2800 print() # New line after response

2801 

2802 await self.client.disconnect()

2803 print(f"Conversation ended after {self.turn_count} turns.")

2804 

2805 

2806async def main():

2807 options = ClaudeAgentOptions(

2808 allowed_tools=["Read", "Write", "Bash"], permission_mode="acceptEdits"

2809 )

2810 session = ConversationSession(options)

2811 await session.start()

2812 

2813 

2814# Example conversation:

2815# Turn 1 - You: "Create a file called hello.py"

2816# Turn 1 - Claude: "I'll create a hello.py file for you..."

2817# Turn 2 - You: "What's in that file?"

2818# Turn 2 - Claude: "The hello.py file I just created contains..." (remembers!)

2819# Turn 3 - You: "Add a main function to it"

2820# Turn 3 - Claude: "I'll add a main function to hello.py..." (knows which file!)

2821 

2822asyncio.run(main())

2823```

2824 

2825### 動作修正のための Hooks の使用

2826 

2827```python theme={null}

2828from claude_agent_sdk import (

2829 ClaudeSDKClient,

2830 ClaudeAgentOptions,

2831 HookMatcher,

2832 HookContext,

2833)

2834import asyncio

2835from typing import Any

2836 

2837 

2838async def pre_tool_logger(

2839 input_data: dict[str, Any], tool_use_id: str | None, context: HookContext

2840) -> dict[str, Any]:

2841 """Log all tool usage before execution."""

2842 tool_name = input_data.get("tool_name", "unknown")

2843 print(f"[PRE-TOOL] About to use: {tool_name}")

2844 

2845 # You can modify or block the tool execution here

2846 if tool_name == "Bash" and "rm -rf" in str(input_data.get("tool_input", {})):

2847 return {

2848 "hookSpecificOutput": {

2849 "hookEventName": "PreToolUse",

2850 "permissionDecision": "deny",

2851 "permissionDecisionReason": "Dangerous command blocked",

2852 }

2853 }

2854 return {}

2855 

2856 

2857async def post_tool_logger(

2858 input_data: dict[str, Any], tool_use_id: str | None, context: HookContext

2859) -> dict[str, Any]:

2860 """Log results after tool execution."""

2861 tool_name = input_data.get("tool_name", "unknown")

2862 print(f"[POST-TOOL] Completed: {tool_name}")

2863 return {}

2864 

2865 

2866async def user_prompt_modifier(

2867 input_data: dict[str, Any], tool_use_id: str | None, context: HookContext

2868) -> dict[str, Any]:

2869 """Add context to user prompts."""

2870 original_prompt = input_data.get("prompt", "")

2871 

2872 # Add a timestamp as additional context for Claude to see

2873 from datetime import datetime

2874 

2875 timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

2876 

2877 return {

2878 "hookSpecificOutput": {

2879 "hookEventName": "UserPromptSubmit",

2880 "additionalContext": f"[Submitted at {timestamp}] Original prompt: {original_prompt}",

2881 }

2882 }

2883 

2884 

2885async def main():

2886 options = ClaudeAgentOptions(

2887 hooks={

2888 "PreToolUse": [

2889 HookMatcher(hooks=[pre_tool_logger]),

2890 HookMatcher(matcher="Bash", hooks=[pre_tool_logger]),

2891 ],

2892 "PostToolUse": [HookMatcher(hooks=[post_tool_logger])],

2893 "UserPromptSubmit": [HookMatcher(hooks=[user_prompt_modifier])],

2894 },

2895 allowed_tools=["Read", "Write", "Bash"],

2896 )

2897 

2898 async with ClaudeSDKClient(options=options) as client:

2899 await client.query("List files in current directory")

2900 

2901 async for message in client.receive_response():

2902 # Hooks will automatically log tool usage

2903 pass

2904 

2905 

2906asyncio.run(main())

2907```

2908 

2909### リアルタイム進捗監視

2910 

2911```python theme={null}

2912from claude_agent_sdk import (

2913 ClaudeSDKClient,

2914 ClaudeAgentOptions,

2915 AssistantMessage,

2916 ToolUseBlock,

2917 ToolResultBlock,

2918 TextBlock,

2919)

2920import asyncio

2921 

2922 

2923async def monitor_progress():

2924 options = ClaudeAgentOptions(

2925 allowed_tools=["Write", "Bash"], permission_mode="acceptEdits"

2926 )

2927 

2928 async with ClaudeSDKClient(options=options) as client:

2929 await client.query("Create 5 Python files with different sorting algorithms")

2930 

2931 # Monitor progress in real-time

2932 async for message in client.receive_response():

2933 if isinstance(message, AssistantMessage):

2934 for block in message.content:

2935 if isinstance(block, ToolUseBlock):

2936 if block.name == "Write":

2937 file_path = block.input.get("file_path", "")

2938 print(f"Creating: {file_path}")

2939 elif isinstance(block, ToolResultBlock):

2940 print("Completed tool execution")

2941 elif isinstance(block, TextBlock):

2942 print(f"Claude says: {block.text[:100]}...")

2943 

2944 print("Task completed!")

2945 

2946 

2947asyncio.run(monitor_progress())

2948```

2949 

2950## 使用例

2951 

2952### 基本的なファイル操作(query を使用)

2953 

2954```python theme={null}

2955from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

2956import asyncio

2957 

2958 

2959async def create_project():

2960 options = ClaudeAgentOptions(

2961 allowed_tools=["Read", "Write", "Bash"],

2962 permission_mode="acceptEdits",

2963 cwd="/home/user/project",

2964 )

2965 

2966 async for message in query(

2967 prompt="Create a Python project structure with setup.py", options=options

2968 ):

2969 if isinstance(message, AssistantMessage):

2970 for block in message.content:

2971 if isinstance(block, ToolUseBlock):

2972 print(f"Using tool: {block.name}")

2973 

2974 

2975asyncio.run(create_project())

2976```

2977 

2978### エラー処理

2979 

2980```python theme={null}

2981from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError

2982 

2983try:

2984 async for message in query(prompt="Hello"):

2985 print(message)

2986except CLINotFoundError:

2987 print(

2988 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"

2989 )

2990except ProcessError as e:

2991 print(f"Process failed with exit code: {e.exit_code}")

2992except CLIJSONDecodeError as e:

2993 print(f"Failed to parse response: {e}")

2994```

2995 

2996### クライアントでのストリーミングモード

2997 

2998```python theme={null}

2999from claude_agent_sdk import ClaudeSDKClient

3000import asyncio

3001 

3002 

3003async def interactive_session():

3004 async with ClaudeSDKClient() as client:

3005 # Send initial message

3006 await client.query("What's the weather like?")

3007 

3008 # Process responses

3009 async for msg in client.receive_response():

3010 print(msg)

3011 

3012 # Send follow-up

3013 await client.query("Tell me more about that")

3014 

3015 # Process follow-up response

3016 async for msg in client.receive_response():

3017 print(msg)

3018 

3019 

3020asyncio.run(interactive_session())

3021```

3022 

3023### ClaudeSDKClient でカスタムツールを使用する

3024 

3025```python theme={null}

3026from claude_agent_sdk import (

3027 ClaudeSDKClient,

3028 ClaudeAgentOptions,

3029 tool,

3030 create_sdk_mcp_server,

3031 AssistantMessage,

3032 TextBlock,

3033)

3034import asyncio

3035from typing import Any

3036 

3037 

3038# Define custom tools with @tool decorator

3039@tool("calculate", "Perform mathematical calculations", {"expression": str})

3040async def calculate(args: dict[str, Any]) -> dict[str, Any]:

3041 try:

3042 result = eval(args["expression"], {"__builtins__": {}})

3043 return {"content": [{"type": "text", "text": f"Result: {result}"}]}

3044 except Exception as e:

3045 return {

3046 "content": [{"type": "text", "text": f"Error: {str(e)}"}],

3047 "is_error": True,

3048 }

3049 

3050 

3051@tool("get_time", "Get current time", {})

3052async def get_time(args: dict[str, Any]) -> dict[str, Any]:

3053 from datetime import datetime

3054 

3055 current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

3056 return {"content": [{"type": "text", "text": f"Current time: {current_time}"}]}

3057 

3058 

3059async def main():

3060 # Create SDK MCP server with custom tools

3061 my_server = create_sdk_mcp_server(

3062 name="utilities", version="1.0.0", tools=[calculate, get_time]

3063 )

3064 

3065 # Configure options with the server

3066 options = ClaudeAgentOptions(

3067 mcp_servers={"utils": my_server},

3068 allowed_tools=["mcp__utils__calculate", "mcp__utils__get_time"],

3069 )

3070 

3071 # Use ClaudeSDKClient for interactive tool usage

3072 async with ClaudeSDKClient(options=options) as client:

3073 await client.query("What's 123 * 456?")

3074 

3075 # Process calculation response

3076 async for message in client.receive_response():

3077 if isinstance(message, AssistantMessage):

3078 for block in message.content:

3079 if isinstance(block, TextBlock):

3080 print(f"Calculation: {block.text}")

3081 

3082 # Follow up with time query

3083 await client.query("What time is it now?")

3084 

3085 async for message in client.receive_response():

3086 if isinstance(message, AssistantMessage):

3087 for block in message.content:

3088 if isinstance(block, TextBlock):

3089 print(f"Time: {block.text}")

3090 

3091 

3092asyncio.run(main())

3093```

3094 

3095## サンドボックス設定

3096 

3097### `SandboxSettings`

3098 

3099サンドボックス動作の設定。これを使用してコマンドサンドボックスを有効にし、ネットワーク制限をプログラムで設定します。

3100 

3101```python theme={null}

3102class SandboxSettings(TypedDict, total=False):

3103 enabled: bool

3104 autoAllowBashIfSandboxed: bool

3105 excludedCommands: list[str]

3106 allowUnsandboxedCommands: bool

3107 network: SandboxNetworkConfig

3108 ignoreViolations: SandboxIgnoreViolations

3109 enableWeakerNestedSandbox: bool

3110```

3111 

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

3113| :-------------------------- | :------------------------------------------------------ | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3114| `enabled` | `bool` | `False` | コマンド実行のサンドボックスモードを有効にします |

3115| `autoAllowBashIfSandboxed` | `bool` | `True` | サンドボックスが有効な場合、bash コマンドを自動承認します |

3116| `excludedCommands` | `list[str]` | `[]` | 常にサンドボックス制限をバイパスするコマンド(例:`["docker"]`)。これらはモデルの関与なしに自動的にサンドボックスなしで実行されます |

3117| `allowUnsandboxedCommands` | `bool` | `True` | モデルがサンドボックスの外でコマンドを実行するようにリクエストすることを許可します。`True` の場合、モデルはツール入力で `dangerouslyDisableSandbox` を設定でき、[パーミッションシステム](#permissions-fallback-for-unsandboxed-commands) にフォールバックします |

3118| `network` | [`SandboxNetworkConfig`](#sandbox-network-config) | `None` | ネットワーク固有のサンドボックス設定 |

3119| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandbox-ignore-violations) | `None` | 無視するサンドボックス違反を設定します |

3120| `enableWeakerNestedSandbox` | `bool` | `False` | 互換性のためにより弱いネストされたサンドボックスを有効にします |

3121 

3122#### 使用例

3123 

3124```python theme={null}

3125from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings

3126 

3127sandbox_settings: SandboxSettings = {

3128 "enabled": True,

3129 "autoAllowBashIfSandboxed": True,

3130 "network": {"allowLocalBinding": True},

3131}

3132 

3133async for message in query(

3134 prompt="Build and test my project",

3135 options=ClaudeAgentOptions(sandbox=sandbox_settings),

3136):

3137 print(message)

3138```

3139 

3140<Warning>

3141 **Unix ソケットセキュリティ**:`allowUnixSockets` オプションは強力なシステムサービスへのアクセスを許可できます。例えば、`/var/run/docker.sock` を許可すると、Docker API を通じてホストシステムへの完全なアクセスが効果的に許可され、サンドボックス分離がバイパスされます。厳密に必要な Unix ソケットのみを許可し、各ソケットのセキュリティへの影響を理解してください。

3142</Warning>

3143 

3144### `SandboxNetworkConfig`

3145 

3146サンドボックスモード用のネットワーク固有の設定。

3147 

3148```python theme={null}

3149class SandboxNetworkConfig(TypedDict, total=False):

3150 allowedDomains: list[str]

3151 deniedDomains: list[str]

3152 allowManagedDomainsOnly: bool

3153 allowUnixSockets: list[str]

3154 allowAllUnixSockets: bool

3155 allowLocalBinding: bool

3156 allowMachLookup: list[str]

3157 httpProxyPort: int

3158 socksProxyPort: int

3159```

3160 

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

3162| :------------------------ | :---------- | :------ | :-------------------------------------------------------------------------------------------- |

3163| `allowedDomains` | `list[str]` | `[]` | サンドボックス化されたプロセスがアクセスできるドメイン名 |

3164| `deniedDomains` | `list[str]` | `[]` | サンドボックス化されたプロセスがアクセスできないドメイン名。`allowedDomains` より優先されます |

3165| `allowManagedDomainsOnly` | `bool` | `False` | マネージド設定のみ:マネージド設定で設定されている場合、非マネージド設定ソースからの `allowedDomains` を無視します。SDK オプションで設定された場合は効果がありません |

3166| `allowUnixSockets` | `list[str]` | `[]` | プロセスがアクセスできる Unix ソケットパス(例:Docker ソケット) |

3167| `allowAllUnixSockets` | `bool` | `False` | すべての Unix ソケットへのアクセスを許可します |

3168| `allowLocalBinding` | `bool` | `False` | プロセスがローカルポートにバインドすることを許可します(例:dev サーバー用) |

3169| `allowMachLookup` | `list[str]` | `[]` | macOS のみ:許可する XPC/Mach サービス名。末尾のワイルドカードをサポートします |

3170| `httpProxyPort` | `int` | `None` | ネットワークリクエスト用の HTTP プロキシポート |

3171| `socksProxyPort` | `int` | `None` | ネットワークリクエスト用の SOCKS プロキシポート |

3172 

3173<Note>

3174 組み込みサンドボックスプロキシは、リクエストされたホスト名に基づいてネットワーク許可リストを強制し、TLS トラフィックを終了または検査しないため、[ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting) などの技術がそれをバイパスする可能性があります。詳細は [サンドボックスセキュリティの制限事項](/ja/sandboxing#security-limitations) を参照し、TLS 終了プロキシの設定については [セキュアなデプロイ](/ja/agent-sdk/secure-deployment#traffic-forwarding) を参照してください。

3175</Note>

3176 

3177### `SandboxIgnoreViolations`

3178 

3179特定のサンドボックス違反を無視するための設定。

3180 

3181```python theme={null}

3182class SandboxIgnoreViolations(TypedDict, total=False):

3183 file: list[str]

3184 network: list[str]

3185```

3186 

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

3188| :-------- | :---------- | :---- | :---------------- |

3189| `file` | `list[str]` | `[]` | 違反を無視するファイルパスパターン |

3190| `network` | `list[str]` | `[]` | 違反を無視するネットワークパターン |

3191 

3192### サンドボックスなしコマンドのパーミッションフォールバック

3193 

3194`allowUnsandboxedCommands` が有効な場合、モデルはツール入力で `dangerouslyDisableSandbox: True` を設定することでサンドボックスの外でコマンドを実行するようにリクエストできます。これらのリクエストは既存のパーミッションシステムにフォールバックします。つまり、`can_use_tool` ハンドラーが呼び出され、カスタム認可ロジックを実装できます。

3195 

3196<Note>

3197 **`excludedCommands` vs `allowUnsandboxedCommands`:**

3198 

3199 * `excludedCommands`:常にサンドボックスを自動的にバイパスするコマンドの静的リスト(例:`["docker"]`)。モデルはこれを制御できません。

3200 * `allowUnsandboxedCommands`:モデルが実行時にツール入力で `dangerouslyDisableSandbox: True` を設定することでサンドボックスなし実行をリクエストすることを許可します。

3201</Note>

3202 

3203```python theme={null}

3204from claude_agent_sdk import (

3205 query,

3206 ClaudeAgentOptions,

3207 HookMatcher,

3208 PermissionResultAllow,

3209 PermissionResultDeny,

3210 ToolPermissionContext,

3211)

3212 

3213 

3214async def can_use_tool(

3215 tool: str, input: dict, context: ToolPermissionContext

3216) -> PermissionResultAllow | PermissionResultDeny:

3217 # Check if the model is requesting to bypass the sandbox

3218 if tool == "Bash" and input.get("dangerouslyDisableSandbox"):

3219 # The model is requesting to run this command outside the sandbox

3220 print(f"Unsandboxed command requested: {input.get('command')}")

3221 

3222 if is_command_authorized(input.get("command")):

3223 return PermissionResultAllow()

3224 return PermissionResultDeny(

3225 message="Command not authorized for unsandboxed execution"

3226 )

3227 return PermissionResultAllow()

3228 

3229 

3230# Required: dummy hook keeps the stream open for can_use_tool

3231async def dummy_hook(input_data, tool_use_id, context):

3232 return {"continue_": True}

3233 

3234 

3235async def prompt_stream():

3236 yield {

3237 "type": "user",

3238 "message": {"role": "user", "content": "Deploy my application"},

3239 }

3240 

3241 

3242async def main():

3243 async for message in query(

3244 prompt=prompt_stream(),

3245 options=ClaudeAgentOptions(

3246 sandbox={

3247 "enabled": True,

3248 "allowUnsandboxedCommands": True, # Model can request unsandboxed execution

3249 },

3250 permission_mode="default",

3251 can_use_tool=can_use_tool,

3252 hooks={"PreToolUse": [HookMatcher(matcher=None, hooks=[dummy_hook])]},

3253 ),

3254 ):

3255 print(message)

3256```

3257 

3258このパターンにより、以下が可能になります:

3259 

3260* **モデルリクエストを監査する**:モデルがサンドボックスなし実行をリクエストするときをログします

3261* **許可リストを実装する**:特定のコマンドのみがサンドボックスなしで実行されることを許可します

3262* **承認ワークフローを追加する**:特権操作に明示的な認可を要求します

3263 

3264<Warning>

3265 `dangerouslyDisableSandbox: True` で実行されるコマンドはシステムへの完全なアクセスを持ちます。`can_use_tool` ハンドラーがこれらのリクエストを慎重に検証することを確認してください。

3266 

3267 `permission_mode` が `bypassPermissions` に設定され、`allow_unsandboxed_commands` が有効な場合、モデルは承認プロンプトなしにサンドボックスの外でコマンドを自律的に実行できます。この組み合わせは、モデルがサンドボックス分離をサイレントに逃れることを効果的に許可します。

3268</Warning>

3269 

3270## 関連項目

3271 

3272* [SDK 概要](/ja/agent-sdk/overview) - 一般的な SDK 概念

3273* [TypeScript SDK リファレンス](/ja/agent-sdk/typescript) - TypeScript SDK ドキュメント

3274* [CLI リファレンス](/ja/cli-reference) - コマンドラインインターフェース

3275* [一般的なワークフロー](/ja/common-workflows) - ステップバイステップガイド

agent-sdk/quickstart.md +333 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# クイックスタート

6 

7> Python または TypeScript Agent SDK を使用して、自律的に動作する AI エージェントを構築する方法を学びます

8 

9Agent SDK を使用して、コードを読み、バグを見つけ、すべて手動操作なしで修正する AI エージェントを構築します。

10 

11**実行内容:**

12 

131. Agent SDK でプロジェクトをセットアップする

142. バグのあるコードを含むファイルを作成する

153. バグを自動的に見つけて修正するエージェントを実行する

16 

17## 前提条件

18 

19* **Node.js 18+** または **Python 3.10+**

20* **Anthropic アカウント**([こちらでサインアップ](https://platform.claude.com/))

21 

22## セットアップ

23 

24<Steps>

25 <Step title="プロジェクトフォルダを作成する">

26 このクイックスタート用に新しいディレクトリを作成します:

27 

28 ```bash theme={null}

29 mkdir my-agent && cd my-agent

30 ```

31 

32 独自のプロジェクトの場合、任意のフォルダから SDK を実行できます。デフォルトでは、そのディレクトリとそのサブディレクトリ内のファイルにアクセスできます。

33 </Step>

34 

35 <Step title="SDK をインストールする">

36 お使いの言語用の Agent SDK パッケージをインストールします:

37 

38 <Tabs>

39 <Tab title="TypeScript">

40 ```bash theme={null}

41 npm install @anthropic-ai/claude-agent-sdk

42 ```

43 </Tab>

44 

45 <Tab title="Python (uv)">

46 [uv Python パッケージマネージャー](https://docs.astral.sh/uv/)は、仮想環境を自動的に処理する高速な Python パッケージマネージャーです:

47 

48 ```bash theme={null}

49 uv init && uv add claude-agent-sdk

50 ```

51 </Tab>

52 

53 <Tab title="Python (pip)">

54 まず仮想環境を作成してからインストールします:

55 

56 ```bash theme={null}

57 python3 -m venv .venv && source .venv/bin/activate

58 pip3 install claude-agent-sdk

59 ```

60 </Tab>

61 </Tabs>

62 

63 <Note>

64 TypeScript SDK は、プラットフォーム用のネイティブ Claude Code バイナリをオプションの依存関係としてバンドルしているため、Claude Code を別途インストールする必要はありません。

65 </Note>

66 </Step>

67 

68 <Step title="API キーを設定する">

69 [Claude Console](https://platform.claude.com/) から API キーを取得し、プロジェクトディレクトリに `.env` ファイルを作成します:

70 

71 ```bash theme={null}

72 ANTHROPIC_API_KEY=your-api-key

73 ```

74 

75 SDK は、サードパーティ API プロバイダーを介した認証もサポートしています:

76 

77 * **Amazon Bedrock**:`CLAUDE_CODE_USE_BEDROCK=1` 環境変数を設定し、AWS 認証情報を構成します

78 * **Google Vertex AI**:`CLAUDE_CODE_USE_VERTEX=1` 環境変数を設定し、Google Cloud 認証情報を構成します

79 * **Microsoft Azure**:`CLAUDE_CODE_USE_FOUNDRY=1` 環境変数を設定し、Azure 認証情報を構成します

80 

81 詳細については、[Bedrock](/ja/amazon-bedrock)、[Vertex AI](/ja/google-vertex-ai)、または [Azure AI Foundry](/ja/microsoft-foundry) のセットアップガイドを参照してください。

82 

83 <Note>

84 事前に承認されていない限り、Anthropic は、Claude Agent SDK で構築されたエージェントを含む、サードパーティ開発者が claude.ai ログインまたはレート制限を提供することを許可していません。代わりに、このドキュメントで説明されている API キー認証方法を使用してください。

85 </Note>

86 </Step>

87</Steps>

88 

89## バグのあるファイルを作成する

90 

91このクイックスタートでは、コード内のバグを見つけて修正できるエージェントを構築する手順を説明します。まず、エージェントが修正するための意図的なバグを含むファイルが必要です。`my-agent` ディレクトリに `utils.py` を作成し、次のコードを貼り付けます:

92 

93```python theme={null}

94def calculate_average(numbers):

95 total = 0

96 for num in numbers:

97 total += num

98 return total / len(numbers)

99 

100 

101def get_user_name(user):

102 return user["name"].upper()

103```

104 

105このコードには 2 つのバグがあります:

106 

1071. `calculate_average([])` はゼロで除算してクラッシュします

1082. `get_user_name(None)` は TypeError でクラッシュします

109 

110## バグを見つけて修正するエージェントを構築する

111 

112Python SDK を使用している場合は `agent.py` を作成し、TypeScript の場合は `agent.ts` を作成します:

113 

114<CodeGroup>

115 ```python Python theme={null}

116 import asyncio

117 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage

118 

119 

120 async def main():

121 # Agentic ループ:Claude が動作するときにメッセージをストリーミングします

122 async for message in query(

123 prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",

124 options=ClaudeAgentOptions(

125 allowed_tools=["Read", "Edit", "Glob"], # Claude が使用できるツール

126 permission_mode="acceptEdits", # ファイル編集を自動承認

127 ),

128 ):

129 # 人間が読める出力を印刷します

130 if isinstance(message, AssistantMessage):

131 for block in message.content:

132 if hasattr(block, "text"):

133 print(block.text) # Claude の推論

134 elif hasattr(block, "name"):

135 print(f"Tool: {block.name}") # 呼び出されているツール

136 elif isinstance(message, ResultMessage):

137 print(f"Done: {message.subtype}") # 最終結果

138 

139 

140 asyncio.run(main())

141 ```

142 

143 ```typescript TypeScript theme={null}

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

145 

146 // Agentic ループ:Claude が動作するときにメッセージをストリーミングします

147 for await (const message of query({

148 prompt: "Review utils.py for bugs that would cause crashes. Fix any issues you find.",

149 options: {

150 allowedTools: ["Read", "Edit", "Glob"], // Claude が使用できるツール

151 permissionMode: "acceptEdits" // ファイル編集を自動承認

152 }

153 })) {

154 // 人間が読める出力を印刷します

155 if (message.type === "assistant" && message.message?.content) {

156 for (const block of message.message.content) {

157 if ("text" in block) {

158 console.log(block.text); // Claude の推論

159 } else if ("name" in block) {

160 console.log(`Tool: ${block.name}`); // 呼び出されているツール

161 }

162 }

163 } else if (message.type === "result") {

164 console.log(`Done: ${message.subtype}`); // 最終結果

165 }

166 }

167 ```

168</CodeGroup>

169 

170このコードには 3 つの主要な部分があります:

171 

1721. **`query`**:agentic ループを作成するメインエントリーポイント。非同期イテレーターを返すため、`async for` を使用して Claude が動作するときにメッセージをストリーミングします。完全な API については、[Python](/ja/agent-sdk/python#query) または [TypeScript](/ja/agent-sdk/typescript#query) SDK リファレンスを参照してください。

173 

1742. **`prompt`**:Claude に実行させたいこと。Claude はタスクに基づいて使用するツールを判断します。

175 

1763. **`options`**:エージェントの構成。この例では、`allowedTools` を使用して `Read`、`Edit`、`Glob` を事前承認し、`permissionMode: "acceptEdits"` を使用してファイル変更を自動承認します。その他のオプションには、`systemPrompt`、`mcpServers` などがあります。[Python](/ja/agent-sdk/python#claude-agent-options) または [TypeScript](/ja/agent-sdk/typescript#options) のすべてのオプションを参照してください。

177 

178`async for` ループは、Claude が考え、ツールを呼び出し、結果を観察し、次に何をするかを決定する間、実行し続けます。各反復は、メッセージを生成します:Claude の推論、ツール呼び出し、ツール結果、または最終的な結果。SDK はオーケストレーション(ツール実行、コンテキスト管理、再試行)を処理するため、ストリームを消費するだけです。Claude がタスクを完了するか、エラーに達するとループが終了します。

179 

180ループ内のメッセージ処理は、人間が読める出力をフィルタリングします。フィルタリングなしでは、システム初期化と内部状態を含む生のメッセージオブジェクトが表示されます。これはデバッグに役立ちますが、そうでない場合はノイズが多くなります。

181 

182<Note>

183 この例はストリーミングを使用してリアルタイムで進行状況を表示します。ライブ出力が不要な場合(バックグラウンドジョブや CI パイプラインなど)、すべてのメッセージを一度に収集できます。詳細については、[ストリーミング対単一ターンモード](/ja/agent-sdk/streaming-vs-single-mode) を参照してください。

184</Note>

185 

186### エージェントを実行する

187 

188エージェントの準備ができました。次のコマンドで実行します:

189 

190<Tabs>

191 <Tab title="Python">

192 ```bash theme={null}

193 python3 agent.py

194 ```

195 </Tab>

196 

197 <Tab title="TypeScript">

198 ```bash theme={null}

199 npx tsx agent.ts

200 ```

201 </Tab>

202</Tabs>

203 

204実行後、`utils.py` を確認します。空のリストと null ユーザーを処理する防御的なコードが表示されます。エージェントは自律的に:

205 

2061. **読み取り** `utils.py` でコードを理解する

2072. **分析** ロジックを分析し、クラッシュを引き起こすエッジケースを特定する

2083. **編集** ファイルを編集して適切なエラーハンドリングを追加する

209 

210これが Agent SDK を異なるものにする理由です:Claude は、実装するよう求める代わりに、ツールを直接実行します。

211 

212<Note>

213 「API key not found」が表示される場合は、`.env` ファイルまたはシェル環境で `ANTHROPIC_API_KEY` 環境変数を設定していることを確認してください。詳細については、[完全なトラブルシューティングガイド](/ja/troubleshooting) を参照してください。

214</Note>

215 

216### 他のプロンプトを試す

217 

218エージェントがセットアップされたので、いくつかの異なるプロンプトを試してください:

219 

220* `"Add docstrings to all functions in utils.py"`

221* `"Add type hints to all functions in utils.py"`

222* `"Create a README.md documenting the functions in utils.py"`

223 

224### エージェントをカスタマイズする

225 

226オプションを変更することで、エージェントの動作を変更できます。いくつかの例を次に示します:

227 

228**Web 検索機能を追加する:**

229 

230<CodeGroup>

231 ```python Python theme={null}

232 options = ClaudeAgentOptions(

233 allowed_tools=["Read", "Edit", "Glob", "WebSearch"], permission_mode="acceptEdits"

234 )

235 ```

236 

237 ```typescript TypeScript hidelines={1,-1} theme={null}

238 const _ = {

239 options: {

240 allowedTools: ["Read", "Edit", "Glob", "WebSearch"],

241 permissionMode: "acceptEdits"

242 }

243 };

244 ```

245</CodeGroup>

246 

247**Claude にカスタムシステムプロンプトを提供する:**

248 

249<CodeGroup>

250 ```python Python theme={null}

251 options = ClaudeAgentOptions(

252 allowed_tools=["Read", "Edit", "Glob"],

253 permission_mode="acceptEdits",

254 system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines.",

255 )

256 ```

257 

258 ```typescript TypeScript hidelines={1,-1} theme={null}

259 const _ = {

260 options: {

261 allowedTools: ["Read", "Edit", "Glob"],

262 permissionMode: "acceptEdits",

263 systemPrompt: "You are a senior Python developer. Always follow PEP 8 style guidelines."

264 }

265 };

266 ```

267</CodeGroup>

268 

269**ターミナルでコマンドを実行する:**

270 

271<CodeGroup>

272 ```python Python theme={null}

273 options = ClaudeAgentOptions(

274 allowed_tools=["Read", "Edit", "Glob", "Bash"], permission_mode="acceptEdits"

275 )

276 ```

277 

278 ```typescript TypeScript hidelines={1,-1} theme={null}

279 const _ = {

280 options: {

281 allowedTools: ["Read", "Edit", "Glob", "Bash"],

282 permissionMode: "acceptEdits"

283 }

284 };

285 ```

286</CodeGroup>

287 

288`Bash` を有効にして、次を試してください:`"Write unit tests for utils.py, run them, and fix any failures"`

289 

290## 主要な概念

291 

292**ツール** はエージェントが何ができるかを制御します:

293 

294| ツール | エージェントが実行できること |

295| ---------------------------------- | -------------- |

296| `Read`、`Glob`、`Grep` | 読み取り専用分析 |

297| `Read`、`Edit`、`Glob` | コードの分析と変更 |

298| `Read`、`Edit`、`Bash`、`Glob`、`Grep` | 完全な自動化 |

299 

300**権限モード** は、必要な人間の監視の量を制御します:

301 

302| モード | 動作 | ユースケース |

303| --------------------- | ----------------------------------------------- | ------------------------- |

304| `acceptEdits` | ファイル編集と一般的なファイルシステムコマンドを自動承認し、他のアクションについては確認します | 信頼できる開発ワークフロー |

305| `dontAsk` | `allowedTools` にないものを拒否します | ロックダウンされたヘッドレスエージェント |

306| `auto`(TypeScript のみ) | モデル分類器が各ツール呼び出しを承認または拒否します | 安全ガードレール付きの自律エージェント |

307| `bypassPermissions` | プロンプトなしですべてのツールを実行します | サンドボックス化された CI、完全に信頼できる環境 |

308| `default` | 承認を処理するために `canUseTool` コールバックが必要です | カスタム承認フロー |

309 

310上記の例は `acceptEdits` モードを使用しており、ファイル操作を自動承認するため、エージェントはインタラクティブなプロンプトなしで実行できます。ユーザーに承認を促す場合は、`default` モードを使用し、ユーザー入力を収集する [`canUseTool` コールバック](/ja/agent-sdk/user-input) を提供します。より詳細な制御については、[権限](/ja/agent-sdk/permissions) を参照してください。

311 

312## トラブルシューティング

313 

314### API エラー `thinking.type.enabled` はこのモデルではサポートされていません

315 

316Claude Opus 4.7 は `thinking.type.enabled` を `thinking.type.adaptive` に置き換えます。古い Agent SDK バージョンは、`claude-opus-4-7` を選択すると次の API エラーで失敗します:

317 

318```text theme={null}

319API Error: 400 {"type":"invalid_request_error","message":"\"thinking.type.enabled\" is not supported for this model. Use \"thinking.type.adaptive\" and \"output_config.effort\" to control thinking behavior."}

320```

321 

322Opus 4.7 を使用するには、Agent SDK v0.2.111 以降にアップグレードしてください。

323 

324## 次のステップ

325 

326最初のエージェントを作成したので、その機能を拡張し、ユースケースに合わせてカスタマイズする方法を学びます:

327 

328* **[権限](/ja/agent-sdk/permissions)**:エージェントが何ができるか、いつ承認が必要かを制御する

329* **[Hooks](/ja/agent-sdk/hooks)**:ツール呼び出しの前後にカスタムコードを実行する

330* **[セッション](/ja/agent-sdk/sessions)**:コンテキストを維持するマルチターンエージェントを構築する

331* **[MCP サーバー](/ja/agent-sdk/mcp)**:データベース、ブラウザー、API、その他の外部システムに接続する

332* **[ホスティング](/ja/agent-sdk/hosting)**:Docker、クラウド、CI/CD にエージェントをデプロイする

333* **[サンプルエージェント](https://github.com/anthropics/claude-agent-sdk-demos)**:完全な例を参照:メールアシスタント、リサーチエージェント、その他

agent-sdk/slash-commands.md +444 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# SDK のスラッシュコマンド

6 

7> SDK を通じて Claude Code セッションを制御するスラッシュコマンドの使用方法を学びます

8 

9スラッシュコマンドは、`/` で始まる特別なコマンドを使用して Claude Code セッションを制御する方法を提供します。これらのコマンドは SDK を通じて送信でき、コンテキストのコンパクト化、コンテキスト使用状況の一覧表示、またはカスタムコマンドの呼び出しなどのアクションを実行できます。インタラクティブなターミナルなしで機能するコマンドのみが SDK を通じてディスパッチ可能です。`system/init` メッセージにはセッションで利用可能なコマンドが一覧表示されます。

10 

11## 利用可能なスラッシュコマンドの検出

12 

13Claude Agent SDK は、システム初期化メッセージで利用可能なスラッシュコマンドに関する情報を提供します。セッション開始時にこの情報にアクセスします。

14 

15<CodeGroup>

16 ```typescript TypeScript theme={null}

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

18 

19 for await (const message of query({

20 prompt: "Hello Claude",

21 options: { maxTurns: 1 }

22 })) {

23 if (message.type === "system" && message.subtype === "init") {

24 console.log("Available slash commands:", message.slash_commands);

25 // Example output: ["/compact", "/context", "/usage"]

26 }

27 }

28 ```

29 

30 ```python Python theme={null}

31 import asyncio

32 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage

33 

34 

35 async def main():

36 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):

37 if isinstance(message, SystemMessage) and message.subtype == "init":

38 print("Available slash commands:", message.data["slash_commands"])

39 # Example output: ["/compact", "/context", "/usage"]

40 

41 

42 asyncio.run(main())

43 ```

44</CodeGroup>

45 

46## スラッシュコマンドの送信

47 

48スラッシュコマンドをプロンプト文字列に含めて送信します。通常のテキストと同じように使用します。

49 

50<CodeGroup>

51 ```typescript TypeScript theme={null}

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

53 

54 // Send a slash command

55 for await (const message of query({

56 prompt: "/compact",

57 options: { maxTurns: 1 }

58 })) {

59 if (message.type === "result") {

60 console.log("Command executed:", message.result);

61 }

62 }

63 ```

64 

65 ```python Python theme={null}

66 import asyncio

67 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

68 

69 

70 async def main():

71 # Send a slash command

72 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):

73 if isinstance(message, ResultMessage):

74 print("Command executed:", message.result)

75 

76 

77 asyncio.run(main())

78 ```

79</CodeGroup>

80 

81## 一般的なスラッシュコマンド

82 

83### `/compact` - 会話履歴のコンパクト化

84 

85`/compact` コマンドは、古いメッセージを要約しながら重要なコンテキストを保持することで、会話履歴のサイズを削減します。

86 

87<CodeGroup>

88 ```typescript TypeScript theme={null}

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

90 

91 for await (const message of query({

92 prompt: "/compact",

93 options: { maxTurns: 1 }

94 })) {

95 if (message.type === "system" && message.subtype === "compact_boundary") {

96 console.log("Compaction completed");

97 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);

98 console.log("Trigger:", message.compact_metadata.trigger);

99 }

100 }

101 ```

102 

103 ```python Python theme={null}

104 import asyncio

105 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage

106 

107 

108 async def main():

109 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):

110 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":

111 print("Compaction completed")

112 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])

113 print("Trigger:", message.data["compact_metadata"]["trigger"])

114 

115 

116 asyncio.run(main())

117 ```

118</CodeGroup>

119 

120### 会話のクリア

121 

122インタラクティブな `/clear` コマンドは SDK では利用できません。各 `query()` 呼び出しは既に新しい会話を開始するため、コンテキストをクリアするには、現在の `query()` を終了して新しいものを開始します。前の会話はディスクに保存され、セッション ID を [`resume` オプション](/ja/agent-sdk/sessions#resume-by-id) に渡すことで復帰できます。

123 

124## カスタムスラッシュコマンドの作成

125 

126組み込みスラッシュコマンドを使用するだけでなく、SDK を通じて利用可能な独自のカスタムコマンドを作成できます。カスタムコマンドは、サブエージェントの設定方法と同様に、特定のディレクトリ内のマークダウンファイルとして定義されます。

127 

128<Note>

129 `.claude/commands/` ディレクトリはレガシー形式です。推奨される形式は `.claude/skills/<name>/SKILL.md` で、同じスラッシュコマンド呼び出し(`/name`)とともに Claude による自律的な呼び出しをサポートします。現在の形式については [Skills](/ja/agent-sdk/skills) を参照してください。CLI は両方の形式をサポートし続けており、以下の例は `.claude/commands/` に対して正確なままです。

130</Note>

131 

132### ファイルの場所

133 

134カスタムスラッシュコマンドは、スコープに基づいて指定されたディレクトリに保存されます。

135 

136* **プロジェクトコマンド**: `.claude/commands/` - 現在のプロジェクトでのみ利用可能(レガシー;`.claude/skills/` を推奨)

137* **個人用コマンド**: `~/.claude/commands/` - すべてのプロジェクト全体で利用可能(レガシー;`~/.claude/skills/` を推奨)

138 

139### ファイル形式

140 

141各カスタムコマンドはマークダウンファイルで、以下の特性があります。

142 

143* ファイル名(`.md` 拡張子なし)がコマンド名になります

144* ファイルコンテンツはコマンドが何をするかを定義します

145* オプションの YAML frontmatter は設定を提供します

146 

147#### 基本的な例

148 

149`.claude/commands/refactor.md` を作成します。

150 

151```markdown theme={null}

152Refactor the selected code to improve readability and maintainability.

153Focus on clean code principles and best practices.

154```

155 

156これにより、SDK を通じて使用できる `/refactor` コマンドが作成されます。

157 

158#### Frontmatter 付き

159 

160`.claude/commands/security-check.md` を作成します。

161 

162```markdown theme={null}

163---

164allowed-tools: Read, Grep, Glob

165description: Run security vulnerability scan

166model: claude-opus-4-7

167---

168 

169Analyze the codebase for security vulnerabilities including:

170- SQL injection risks

171- XSS vulnerabilities

172- Exposed credentials

173- Insecure configurations

174```

175 

176### SDK でカスタムコマンドを使用する

177 

178ファイルシステムで定義されたカスタムコマンドは、SDK を通じて自動的に利用可能になります。

179 

180<CodeGroup>

181 ```typescript TypeScript theme={null}

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

183 

184 // Use a custom command

185 for await (const message of query({

186 prompt: "/refactor src/auth/login.ts",

187 options: { maxTurns: 3 }

188 })) {

189 if (message.type === "assistant") {

190 console.log("Refactoring suggestions:", message.message);

191 }

192 }

193 

194 // Custom commands appear in the slash_commands list

195 for await (const message of query({

196 prompt: "Hello",

197 options: { maxTurns: 1 }

198 })) {

199 if (message.type === "system" && message.subtype === "init") {

200 // Will include both built-in and custom commands

201 console.log("Available commands:", message.slash_commands);

202 // Example: ["/compact", "/context", "/usage", "/refactor", "/security-check"]

203 }

204 }

205 ```

206 

207 ```python Python theme={null}

208 import asyncio

209 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, SystemMessage

210 

211 

212 async def main():

213 # Use a custom command

214 async for message in query(

215 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)

216 ):

217 if isinstance(message, AssistantMessage):

218 for block in message.content:

219 if hasattr(block, "text"):

220 print("Refactoring suggestions:", block.text)

221 

222 # Custom commands appear in the slash_commands list

223 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):

224 if isinstance(message, SystemMessage) and message.subtype == "init":

225 # Will include both built-in and custom commands

226 print("Available commands:", message.data["slash_commands"])

227 # Example: ["/compact", "/context", "/usage", "/refactor", "/security-check"]

228 

229 

230 asyncio.run(main())

231 ```

232</CodeGroup>

233 

234### 高度な機能

235 

236#### 引数とプレースホルダー

237 

238カスタムコマンドはプレースホルダーを使用した動的引数をサポートします。

239 

240`.claude/commands/fix-issue.md` を作成します。

241 

242```markdown theme={null}

243---

244argument-hint: [issue-number] [priority]

245description: Fix a GitHub issue

246---

247 

248Fix issue #$1 with priority $2.

249Check the issue description and implement the necessary changes.

250```

251 

252SDK で使用します。

253 

254<CodeGroup>

255 ```typescript TypeScript theme={null}

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

257 

258 // Pass arguments to custom command

259 for await (const message of query({

260 prompt: "/fix-issue 123 high",

261 options: { maxTurns: 5 }

262 })) {

263 // Command will process with $1="123" and $2="high"

264 if (message.type === "result") {

265 console.log("Issue fixed:", message.result);

266 }

267 }

268 ```

269 

270 ```python Python theme={null}

271 import asyncio

272 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

273 

274 

275 async def main():

276 # Pass arguments to custom command

277 async for message in query(prompt="/fix-issue 123 high", options=ClaudeAgentOptions(max_turns=5)):

278 # Command will process with $1="123" and $2="high"

279 if isinstance(message, ResultMessage):

280 print("Issue fixed:", message.result)

281 

282 

283 asyncio.run(main())

284 ```

285</CodeGroup>

286 

287#### Bash コマンド実行

288 

289カスタムコマンドは bash コマンドを実行し、その出力を含めることができます。

290 

291`.claude/commands/git-commit.md` を作成します。

292 

293```markdown theme={null}

294---

295allowed-tools: Bash(git add *), Bash(git status *), Bash(git commit *)

296description: Create a git commit

297---

298 

299## Context

300 

301- Current status: !`git status`

302- Current diff: !`git diff HEAD`

303 

304## Task

305 

306Create a git commit with appropriate message based on the changes.

307```

308 

309#### ファイル参照

310 

311`@` プレフィックスを使用してファイルコンテンツを含めます。

312 

313`.claude/commands/review-config.md` を作成します。

314 

315```markdown theme={null}

316---

317description: Review configuration files

318---

319 

320Review the following configuration files for issues:

321- Package config: @package.json

322- TypeScript config: @tsconfig.json

323- Environment config: @.env

324 

325Check for security issues, outdated dependencies, and misconfigurations.

326```

327 

328### 名前空間を使用した組織化

329 

330より良い構造のためにサブディレクトリ内でコマンドを整理します。

331 

332```bash theme={null}

333.claude/commands/

334├── frontend/

335│ ├── component.md # Creates /component (project:frontend)

336│ └── style-check.md # Creates /style-check (project:frontend)

337├── backend/

338│ ├── api-test.md # Creates /api-test (project:backend)

339│ └── db-migrate.md # Creates /db-migrate (project:backend)

340└── review.md # Creates /review (project)

341```

342 

343サブディレクトリはコマンドの説明に表示されますが、コマンド名自体には影響しません。

344 

345### 実践的な例

346 

347#### コードレビューコマンド

348 

349`.claude/commands/code-review.md` を作成します。

350 

351```markdown theme={null}

352---

353allowed-tools: Read, Grep, Glob, Bash(git diff *)

354description: Comprehensive code review

355---

356 

357## Changed Files

358!`git diff --name-only HEAD~1`

359 

360## Detailed Changes

361!`git diff HEAD~1`

362 

363## Review Checklist

364 

365Review the above changes for:

3661. Code quality and readability

3672. Security vulnerabilities

3683. Performance implications

3694. Test coverage

3705. Documentation completeness

371 

372Provide specific, actionable feedback organized by priority.

373```

374 

375#### テストランナーコマンド

376 

377`.claude/commands/test.md` を作成します。

378 

379```markdown theme={null}

380---

381allowed-tools: Bash, Read, Edit

382argument-hint: [test-pattern]

383description: Run tests with optional pattern

384---

385 

386Run tests matching pattern: $ARGUMENTS

387 

3881. Detect the test framework (Jest, pytest, etc.)

3892. Run tests with the provided pattern

3903. If tests fail, analyze and fix them

3914. Re-run to verify fixes

392```

393 

394SDK を通じてこれらのコマンドを使用します。

395 

396<CodeGroup>

397 ```typescript TypeScript theme={null}

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

399 

400 // Run code review

401 for await (const message of query({

402 prompt: "/code-review",

403 options: { maxTurns: 3 }

404 })) {

405 // Process review feedback

406 }

407 

408 // Run specific tests

409 for await (const message of query({

410 prompt: "/test auth",

411 options: { maxTurns: 5 }

412 })) {

413 // Handle test results

414 }

415 ```

416 

417 ```python Python theme={null}

418 import asyncio

419 from claude_agent_sdk import query, ClaudeAgentOptions

420 

421 

422 async def main():

423 # Run code review

424 async for message in query(prompt="/code-review", options=ClaudeAgentOptions(max_turns=3)):

425 # Process review feedback

426 pass

427 

428 # Run specific tests

429 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):

430 # Handle test results

431 pass

432 

433 

434 asyncio.run(main())

435 ```

436</CodeGroup>

437 

438## 関連項目

439 

440* [Slash Commands](/ja/skills) - スラッシュコマンドの完全なドキュメント

441* [SDK のサブエージェント](/ja/agent-sdk/subagents) - サブエージェント用の同様のファイルシステムベースの設定

442* [TypeScript SDK リファレンス](/ja/agent-sdk/typescript) - 完全な API ドキュメント

443* [SDK の概要](/ja/agent-sdk/overview) - 一般的な SDK の概念

444* [CLI リファレンス](/ja/cli-reference) - コマンドラインインターフェース

agent-sdk/typescript.md +2975 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Agent SDK リファレンス - TypeScript

6 

7> TypeScript Agent SDK の完全な API リファレンス。すべての関数、型、インターフェースを含みます。

8 

9<script src="/components/typescript-sdk-type-links.js" defer />

10 

11<Note>

12 **新しい V2 インターフェース(プレビュー)を試す:** `send()` と `stream()` パターンを備えた簡略化されたインターフェースが利用可能になり、マルチターン会話がより簡単になりました。[TypeScript V2 プレビューについて詳しく知る](/ja/agent-sdk/typescript-v2-preview)

13</Note>

14 

15## インストール

16 

17```bash theme={null}

18npm install @anthropic-ai/claude-agent-sdk

19```

20 

21<Note>

22 SDK は、`@anthropic-ai/claude-agent-sdk-darwin-arm64` などのオプション依存関係として、プラットフォーム用のネイティブ Claude Code バイナリをバンドルしています。Claude Code を別途インストールする必要はありません。パッケージマネージャーがオプション依存関係をスキップする場合、SDK は `Native CLI binary for <platform> not found` をスローします。代わりに、別途インストールされた `claude` バイナリに [`pathToClaudeCodeExecutable`](#options) を設定してください。

23</Note>

24 

25## 関数

26 

27### `query()`

28 

29Claude Code と対話するための主要な関数です。メッセージが到着するにつれてストリーミングする非同期ジェネレータを作成します。

30 

31```typescript theme={null}

32function query({

33 prompt,

34 options

35}: {

36 prompt: string | AsyncIterable<SDKUserMessage>;

37 options?: Options;

38}): Query;

39```

40 

41#### パラメータ

42 

43| パラメータ | 型 | 説明 |

44| :-------- | :---------------------------------------------------------------- | :----------------------------------------- |

45| `prompt` | `string \| AsyncIterable<`[`SDKUserMessage`](#sdkuser-message)`>` | 文字列またはストリーミングモード用の非同期反復可能オブジェクトとしての入力プロンプト |

46| `options` | [`Options`](#options) | オプションの設定オブジェクト(以下の Options 型を参照) |

47 

48#### 戻り値

49 

50[`Query`](#query-object) オブジェクトを返します。これは `AsyncGenerator<`[`SDKMessage`](#sdk-message)`, void>` を拡張し、追加のメソッドを持ちます。

51 

52### `startup()`

53 

54プロンプトが利用可能になる前に、CLI サブプロセスをスポーンして初期化ハンドシェイクを完了することで、プリウォーミングします。返された [`WarmQuery`](#warm-query) ハンドルは後でプロンプトを受け入れ、既に準備ができているプロセスに書き込むため、最初の `query()` 呼び出しはサブプロセスのスポーンと初期化コストをインラインで支払うことなく解決します。

55 

56```typescript theme={null}

57function startup(params?: {

58 options?: Options;

59 initializeTimeoutMs?: number;

60}): Promise<WarmQuery>;

61```

62 

63#### パラメータ

64 

65| パラメータ | 型 | 説明 |

66| :-------------------- | :-------------------- | :---------------------------------------------------------------------------- |

67| `options` | [`Options`](#options) | オプションの設定オブジェクト。`query()` の `options` パラメータと同じです |

68| `initializeTimeoutMs` | `number` | サブプロセス初期化を待つ最大時間(ミリ秒)。デフォルトは `60000` です。初期化が時間内に完了しない場合、プロミスはタイムアウトエラーで拒否されます |

69 

70#### 戻り値

71 

72サブプロセスがスポーンされ、初期化ハンドシェイクを完了したら解決する `Promise<`[`WarmQuery`](#warm-query)`>` を返します。

73 

74#### 例

75 

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

77 

78```typescript theme={null}

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

80 

81// スタートアップコストを事前に支払う

82const warm = await startup({ options: { maxTurns: 3 } });

83 

84// 後で、プロンプトが準備できたら、これは即座です

85for await (const message of warm.query("What files are here?")) {

86 console.log(message);

87}

88```

89 

90### `tool()`

91 

92SDK MCP サーバーで使用するためのタイプセーフな MCP ツール定義を作成します。

93 

94```typescript theme={null}

95function tool<Schema extends AnyZodRawShape>(

96 name: string,

97 description: string,

98 inputSchema: Schema,

99 handler: (args: InferShape<Schema>, extra: unknown) => Promise<CallToolResult>,

100 extras?: { annotations?: ToolAnnotations }

101): SdkMcpToolDefinition<Schema>;

102```

103 

104#### パラメータ

105 

106| パラメータ | 型 | 説明 |

107| :------------ | :------------------------------------------------------------------ | :------------------------------------------------ |

108| `name` | `string` | ツールの名前 |

109| `description` | `string` | ツールが何をするかの説明 |

110| `inputSchema` | `Schema extends AnyZodRawShape` | ツールの入力パラメータを定義する Zod スキーマ(Zod 3 と Zod 4 の両方をサポート) |

111| `handler` | `(args, extra) => Promise<`[`CallToolResult`](#call-tool-result)`>` | ツールロジックを実行する非同期関数 |

112| `extras` | `{ annotations?: `[`ToolAnnotations`](#tool-annotations)` }` | クライアントに動作ヒントを提供するオプションの MCP ツール注釈 |

113 

114#### `ToolAnnotations`

115 

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

117 

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

119| :---------------- | :-------- | :---------- | :--------------------------------------------------------------------------- |

120| `title` | `string` | `undefined` | ツールの人間が読める形式のタイトル |

121| `readOnlyHint` | `boolean` | `false` | `true` の場合、ツールはその環境を変更しません |

122| `destructiveHint` | `boolean` | `true` | `true` の場合、ツールは破壊的な更新を実行する可能性があります(`readOnlyHint` が `false` の場合のみ意味があります) |

123| `idempotentHint` | `boolean` | `false` | `true` の場合、同じ引数での繰り返し呼び出しは追加の効果がありません(`readOnlyHint` が `false` の場合のみ意味があります) |

124| `openWorldHint` | `boolean` | `true` | `true` の場合、ツールは外部エンティティと対話します(例:ウェブ検索)。`false` の場合、ツールのドメインは閉じています(例:メモリツール) |

125 

126```typescript theme={null}

127import { tool } from "@anthropic-ai/claude-agent-sdk";

128import { z } from "zod";

129 

130const searchTool = tool(

131 "search",

132 "Search the web",

133 { query: z.string() },

134 async ({ query }) => {

135 return { content: [{ type: "text", text: `Results for: ${query}` }] };

136 },

137 { annotations: { readOnlyHint: true, openWorldHint: true } }

138);

139```

140 

141### `createSdkMcpServer()`

142 

143アプリケーションと同じプロセスで実行される MCP サーバーインスタンスを作成します。

144 

145```typescript theme={null}

146function createSdkMcpServer(options: {

147 name: string;

148 version?: string;

149 tools?: Array<SdkMcpToolDefinition<any>>;

150}): McpSdkServerConfigWithInstance;

151```

152 

153#### パラメータ

154 

155| パラメータ | 型 | 説明 |

156| :---------------- | :---------------------------- | :------------------------------- |

157| `options.name` | `string` | MCP サーバーの名前 |

158| `options.version` | `string` | オプションのバージョン文字列 |

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

160 

161### `listSessions()`

162 

163軽いメタデータを含む過去のセッションを検出してリストします。プロジェクトディレクトリでフィルタリングするか、すべてのプロジェクト全体でセッションをリストします。

164 

165```typescript theme={null}

166function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;

167```

168 

169#### パラメータ

170 

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

172| :------------------------- | :-------- | :---------- | :--------------------------------------------------- |

173| `options.dir` | `string` | `undefined` | セッションをリストするディレクトリ。省略すると、すべてのプロジェクト全体でセッションを返します |

174| `options.limit` | `number` | `undefined` | 返すセッションの最大数 |

175| `options.includeWorktrees` | `boolean` | `true` | `dir` が git リポジトリ内にある場合、すべての worktree パスからセッションを含めます |

176 

177#### 戻り値の型:`SDKSessionInfo`

178 

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

180| :------------- | :-------------------- | :--------------------------------------------------- |

181| `sessionId` | `string` | 一意のセッション識別子(UUID) |

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

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

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

185| `customTitle` | `string \| undefined` | ユーザーが設定したセッションタイトル(`/rename` 経由) |

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

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

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

189| `tag` | `string \| undefined` | ユーザーが設定したセッションタグ([`tagSession()`](#tag-session) を参照) |

190| `createdAt` | `number \| undefined` | 最初のエントリのタイムスタンプからのエポック以降のミリ秒単位での作成時刻 |

191 

192#### 例

193 

194プロジェクトの 10 個の最新セッションを出力します。結果は `lastModified` の降順でソートされるため、最初の項目が最新です。`dir` を省略してすべてのプロジェクト全体を検索します。

195 

196```typescript theme={null}

197import { listSessions } from "@anthropic-ai/claude-agent-sdk";

198 

199const sessions = await listSessions({ dir: "/path/to/project", limit: 10 });

200 

201for (const session of sessions) {

202 console.log(`${session.summary} (${session.sessionId})`);

203}

204```

205 

206### `getSessionMessages()`

207 

208過去のセッショントランスクリプトからユーザーおよびアシスタントメッセージを読み取ります。

209 

210```typescript theme={null}

211function getSessionMessages(

212 sessionId: string,

213 options?: GetSessionMessagesOptions

214): Promise<SessionMessage[]>;

215```

216 

217#### パラメータ

218 

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

220| :--------------- | :------- | :---------- | :-------------------------------------------- |

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

222| `options.dir` | `string` | `undefined` | セッションを見つけるプロジェクトディレクトリ。省略すると、すべてのプロジェクトを検索します |

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

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

225 

226#### 戻り値の型:`SessionMessage`

227 

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

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

230| `type` | `"user" \| "assistant"` | メッセージロール |

231| `uuid` | `string` | 一意のメッセージ識別子 |

232| `session_id` | `string` | このメッセージが属するセッション |

233| `message` | `unknown` | トランスクリプトからの生のメッセージペイロード |

234| `parent_tool_use_id` | `null` | 予約済み |

235 

236#### 例

237 

238```typescript theme={null}

239import { listSessions, getSessionMessages } from "@anthropic-ai/claude-agent-sdk";

240 

241const [latest] = await listSessions({ dir: "/path/to/project", limit: 1 });

242 

243if (latest) {

244 const messages = await getSessionMessages(latest.sessionId, {

245 dir: "/path/to/project",

246 limit: 20

247 });

248 

249 for (const msg of messages) {

250 console.log(`[${msg.type}] ${msg.uuid}`);

251 }

252}

253```

254 

255### `getSessionInfo()`

256 

257プロジェクトディレクトリ全体をスキャンせずに、ID でセッションのメタデータを読み取ります。

258 

259```typescript theme={null}

260function getSessionInfo(

261 sessionId: string,

262 options?: GetSessionInfoOptions

263): Promise<SDKSessionInfo | undefined>;

264```

265 

266#### パラメータ

267 

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

269| :------------ | :------- | :---------- | :------------------------------------------ |

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

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

272 

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

274 

275### `renameSession()`

276 

277カスタムタイトルエントリを追加することでセッションの名前を変更します。繰り返し呼び出しは安全です。最新のタイトルが優先されます。

278 

279```typescript theme={null}

280function renameSession(

281 sessionId: string,

282 title: string,

283 options?: SessionMutationOptions

284): Promise<void>;

285```

286 

287#### パラメータ

288 

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

290| :------------ | :------- | :---------- | :------------------------------------------ |

291| `sessionId` | `string` | 必須 | 名前を変更するセッションの UUID |

292| `title` | `string` | 必須 | 新しいタイトル。空白をトリミングした後、空でない必要があります |

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

294 

295### `tagSession()`

296 

297セッションにタグを付けます。`null` を渡してタグをクリアします。繰り返し呼び出しは安全です。最新のタグが優先されます。

298 

299```typescript theme={null}

300function tagSession(

301 sessionId: string,

302 tag: string | null,

303 options?: SessionMutationOptions

304): Promise<void>;

305```

306 

307#### パラメータ

308 

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

310| :------------ | :--------------- | :---------- | :------------------------------------------ |

311| `sessionId` | `string` | 必須 | タグを付けるセッションの UUID |

312| `tag` | `string \| null` | 必須 | タグ文字列、またはクリアする場合は `null` |

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

314 

315## 型

316 

317### `Options`

318 

319`query()` 関数の設定オブジェクト。

320 

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

322| :-------------------------------- | :------------------------------------------------------------------------------------------------------- | :------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

324| `additionalDirectories` | `string[]` | `[]` | Claude がアクセスできる追加ディレクトリ |

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

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

327| `allowDangerouslySkipPermissions` | `boolean` | `false` | パーミッションのバイパスを有効にします。`permissionMode: 'bypassPermissions'` を使用する場合に必須です |

328| `allowedTools` | `string[]` | `[]` | プロンプトなしで自動承認するツール。これは Claude をこれらのツールのみに制限しません。リストされていないツールは `permissionMode` と `canUseTool` にフォールスルーします。ツールをブロックするには `disallowedTools` を使用します。[パーミッション](/ja/agent-sdk/permissions#allow-and-deny-rules) を参照してください |

329| `betas` | [`SdkBeta`](#sdk-beta)`[]` | `[]` | ベータ機能を有効にします |

330| `canUseTool` | [`CanUseTool`](#can-use-tool) | `undefined` | ツール使用のためのカスタムパーミッション関数 |

331| `continue` | `boolean` | `false` | 最新の会話を続けます |

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

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

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

335| `disallowedTools` | `string[]` | `[]` | 常に拒否するツール。拒否ルールが最初にチェックされ、`allowedTools` と `permissionMode`(`bypassPermissions` を含む)をオーバーライドします |

336| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `'high'` | Claude がその応答にどれだけの努力を費やすかを制御します。適応的思考と連携して思考の深さをガイドします |

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

338| `env` | `Record<string, string \| undefined>` | `process.env` | 環境変数。[環境変数](/ja/env-vars) については、基になる CLI が読み取る変数を参照してください。User-Agent ヘッダーでアプリを識別するには `CLAUDE_AGENT_SDK_CLIENT_APP` を設定します |

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

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

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

342| `fallbackModel` | `string` | `undefined` | プライマリが失敗した場合に使用するモデル |

343| `forkSession` | `boolean` | `false` | `resume` で再開するときに、元のセッション ID を続行する代わりに新しいセッション ID にフォークします |

344| `hooks` | `Partial<Record<`[`HookEvent`](#hook-event)`, `[`HookCallbackMatcher`](#hook-callback-matcher)`[]>>` | `{}` | イベントのフックコールバック |

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

346| `maxBudgetUsd` | `number` | `undefined` | クライアント側のコスト推定がこの USD 値に達したときにクエリを停止します。`total_cost_usd` と同じ推定と比較されます。[コストと使用状況を追跡](/ja/agent-sdk/cost-tracking) で精度の注意事項を参照してください |

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

348| `maxTurns` | `number` | `undefined` | 最大 agentic ターン数(ツール使用ラウンドトリップ) |

349| `mcpServers` | `Record<string, [`McpServerConfig`](#mcp-server-config)>` | `{}` | MCP サーバー設定 |

350| `model` | `string` | CLI からのデフォルト | 使用する Claude モデル |

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

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

353| `permissionMode` | [`PermissionMode`](#permission-mode) | `'default'` | セッションのパーミッションモード |

354| `permissionPromptToolName` | `string` | `undefined` | パーミッションプロンプト用の MCP ツール名 |

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

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

357| `promptSuggestions` | `boolean` | `false` | プロンプト提案を有効にします。各ターン後に予測される次のユーザープロンプトを含む `prompt_suggestion` メッセージを発行します |

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

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

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

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

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

363| `settingSources` | [`SettingSource`](#setting-source)`[]` | CLI デフォルト(すべてのソース) | ロードするファイルシステム設定を制御します。ユーザー、プロジェクト、ローカル設定を無効にするには `[]` を渡します。管理ポリシー設定は関係なくロードされます。[Claude Code 機能を使用](/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control) を参照してください |

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

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

366| `strictMcpConfig` | `boolean` | `false` | 厳密な MCP 検証を強制します |

367| `systemPrompt` | `string \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean }` | `undefined`(最小限のプロンプト) | システムプロンプト設定。カスタムプロンプト用の文字列を渡すか、Claude Code のシステムプロンプトを使用するには `{ type: 'preset', preset: 'claude_code' }` を渡します。プリセットオブジェクト形式を使用する場合、追加の指示で拡張するには `append` を追加し、[マシン全体でプロンプトキャッシュの再利用を改善](/ja/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) するためにセッションごとのコンテキストを最初のユーザーメッセージに移動するには `excludeDynamicSections: true` を設定します |

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

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

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

371 

372### `Query` オブジェクト

373 

374`query()` 関数によって返されるインターフェース。

375 

376```typescript theme={null}

377interface Query extends AsyncGenerator<SDKMessage, void> {

378 interrupt(): Promise<void>;

379 rewindFiles(

380 userMessageId: string,

381 options?: { dryRun?: boolean }

382 ): Promise<RewindFilesResult>;

383 setPermissionMode(mode: PermissionMode): Promise<void>;

384 setModel(model?: string): Promise<void>;

385 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;

386 initializationResult(): Promise<SDKControlInitializeResponse>;

387 supportedCommands(): Promise<SlashCommand[]>;

388 supportedModels(): Promise<ModelInfo[]>;

389 supportedAgents(): Promise<AgentInfo[]>;

390 mcpServerStatus(): Promise<McpServerStatus[]>;

391 accountInfo(): Promise<AccountInfo>;

392 reconnectMcpServer(serverName: string): Promise<void>;

393 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;

394 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;

395 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;

396 stopTask(taskId: string): Promise<void>;

397 close(): void;

398}

399```

400 

401#### メソッド

402 

403| メソッド | 説明 |

404| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |

405| `interrupt()` | クエリを中断します(ストリーミング入力モードでのみ利用可能) |

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

407| `setPermissionMode()` | パーミッションモードを変更します(ストリーミング入力モードでのみ利用可能) |

408| `setModel()` | モデルを変更します(ストリーミング入力モードでのみ利用可能) |

409| `setMaxThinkingTokens()` | *非推奨:* 代わりに `thinking` オプションを使用してください。最大思考トークン数を変更します |

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

411| `supportedCommands()` | 利用可能なスラッシュコマンドを返します |

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

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

414| `mcpServerStatus()` | 接続された MCP サーバーのステータスを返します |

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

416| `reconnectMcpServer(serverName)` | 名前で MCP サーバーを再接続します |

417| `toggleMcpServer(serverName, enabled)` | 名前で MCP サーバーを有効または無効にします |

418| `setMcpServers(servers)` | このセッションの MCP サーバーセットを動的に置き換えます。追加、削除、エラーが発生したサーバーに関する情報を返します |

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

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

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

422 

423### `WarmQuery`

424 

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

426 

427```typescript theme={null}

428interface WarmQuery extends AsyncDisposable {

429 query(prompt: string | AsyncIterable<SDKUserMessage>): Query;

430 close(): void;

431}

432```

433 

434#### メソッド

435 

436| メソッド | 説明 |

437| :-------------- | :------------------------------------------------------------------------------------------ |

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

439| `close()` | プロンプトを送信せずにサブプロセスを閉じます。不要になったウォームクエリを破棄するために使用します |

440 

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

442 

443### `SDKControlInitializeResponse`

444 

445`initializationResult()` の戻り値の型。セッション初期化データを含みます。

446 

447```typescript theme={null}

448type SDKControlInitializeResponse = {

449 commands: SlashCommand[];

450 agents: AgentInfo[];

451 output_style: string;

452 available_output_styles: string[];

453 models: ModelInfo[];

454 account: AccountInfo;

455 fast_mode_state?: "off" | "cooldown" | "on";

456};

457```

458 

459### `AgentDefinition`

460 

461プログラムで定義されたサブエージェントの設定。

462 

463```typescript theme={null}

464type AgentDefinition = {

465 description: string;

466 tools?: string[];

467 disallowedTools?: string[];

468 prompt: string;

469 model?: string;

470 mcpServers?: AgentMcpServerSpec[];

471 skills?: string[];

472 initialPrompt?: string;

473 maxTurns?: number;

474 background?: boolean;

475 memory?: "user" | "project" | "local";

476 effort?: "low" | "medium" | "high" | "xhigh" | "max" | number;

477 permissionMode?: PermissionMode;

478 criticalSystemReminder_EXPERIMENTAL?: string;

479};

480```

481 

482| フィールド | 必須 | 説明 |

483| :------------------------------------ | :-- | :----------------------------------------------------------------------------------------------------------------------------- |

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

485| `tools` | いいえ | 許可されたツール名の配列。省略すると、親からすべてのツールを継承します |

486| `disallowedTools` | いいえ | このエージェントに対して明示的に許可しないツール名の配列 |

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

488| `model` | いいえ | このエージェントのモデルオーバーライド。`'sonnet'`、`'opus'`、`'haiku'`、`'inherit'` などのエイリアス、または完全なモデル ID を受け入れます。省略または `'inherit'` の場合、メインモデルを使用します |

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

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

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

492| `maxTurns` | いいえ | 停止する前の最大 agentic ターン数(API ラウンドトリップ) |

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

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

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

496| `permissionMode` | いいえ | このエージェント内のツール実行のパーミッションモード。[`PermissionMode`](#permission-mode) を参照してください |

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

498 

499### `AgentMcpServerSpec`

500 

501サブエージェントで利用可能な MCP サーバーを指定します。サーバー名(親の `mcpServers` 設定からサーバーを参照する文字列)またはインラインサーバー設定レコード(サーバー名を設定にマッピング)です。

502 

503```typescript theme={null}

504type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;

505```

506 

507ここで `McpServerConfigForProcessTransport` は `McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig` です。

508 

509### `SettingSource`

510 

511SDK がどのファイルシステムベースの設定ソースから設定をロードするかを制御します。

512 

513```typescript theme={null}

514type SettingSource = "user" | "project" | "local";

515```

516 

517| 値 | 説明 | 場所 |

518| :---------- | :----------------------- | :---------------------------- |

519| `'user'` | グローバルユーザー設定 | `~/.claude/settings.json` |

520| `'project'` | 共有プロジェクト設定(バージョン管理) | `.claude/settings.json` |

521| `'local'` | ローカルプロジェクト設定(gitignored) | `.claude/settings.local.json` |

522 

523#### デフォルト動作

524 

525`settingSources` が省略または `undefined` の場合、`query()` は Claude Code CLI と同じファイルシステム設定をロードします:ユーザー、プロジェクト、ローカル。管理ポリシー設定はすべての場合にロードされます。このオプションに関係なく読み取られる入力については [settingSources が制御しないもの](/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control) を参照してください。

526 

527#### settingSources を使用する理由

528 

529**ファイルシステム設定を無効にする:**

530 

531```typescript theme={null}

532// ディスクからユーザー、プロジェクト、またはローカル設定をロードしません

533const result = query({

534 prompt: "Analyze this code",

535 options: { settingSources: [] }

536});

537```

538 

539**すべてのファイルシステム設定を明示的にロードする:**

540 

541```typescript theme={null}

542const result = query({

543 prompt: "Analyze this code",

544 options: {

545 settingSources: ["user", "project", "local"] // すべての設定をロード

546 }

547});

548```

549 

550**特定の設定ソースのみをロードする:**

551 

552```typescript theme={null}

553// プロジェクト設定のみをロードし、ユーザーとローカルを無視します

554const result = query({

555 prompt: "Run CI checks",

556 options: {

557 settingSources: ["project"] // .claude/settings.json のみ

558 }

559});

560```

561 

562**テストと CI 環境:**

563 

564```typescript theme={null}

565// ローカル設定を除外することで、CI で一貫した動作を確保します

566const result = query({

567 prompt: "Run tests",

568 options: {

569 settingSources: ["project"], // チーム共有設定のみ

570 permissionMode: "bypassPermissions"

571 }

572});

573```

574 

575**SDK のみのアプリケーション:**

576 

577```typescript theme={null}

578// すべてをプログラムで定義します。

579// ファイルシステム設定ソースをオプトアウトするには [] を渡します。

580const result = query({

581 prompt: "Review this PR",

582 options: {

583 settingSources: [],

584 agents: {

585 /* ... */

586 },

587 mcpServers: {

588 /* ... */

589 },

590 allowedTools: ["Read", "Grep", "Glob"]

591 }

592});

593```

594 

595**CLAUDE.md プロジェクト指示をロードする:**

596 

597```typescript theme={null}

598// プロジェクト設定をロードして CLAUDE.md ファイルを含めます

599const result = query({

600 prompt: "Add a new feature following project conventions",

601 options: {

602 systemPrompt: {

603 type: "preset",

604 preset: "claude_code" // Claude Code のシステムプロンプトを使用

605 },

606 settingSources: ["project"], // プロジェクトディレクトリから CLAUDE.md をロード

607 allowedTools: ["Read", "Write", "Edit"]

608 }

609});

610```

611 

612#### 設定の優先順位

613 

614複数のソースがロードされる場合、設定はこの優先順位(高から低)でマージされます:

615 

6161. ローカル設定(`.claude/settings.local.json`)

6172. プロジェクト設定(`.claude/settings.json`)

6183. ユーザー設定(`~/.claude/settings.json`)

619 

620`agents` と `allowedTools` などのプログラム的なオプションは、ユーザー、プロジェクト、ローカルのファイルシステム設定をオーバーライドします。管理ポリシー設定はプログラム的なオプションより優先されます。

621 

622### `PermissionMode`

623 

624```typescript theme={null}

625type PermissionMode =

626 | "default" // 標準的なパーミッション動作

627 | "acceptEdits" // ファイル編集を自動承認

628 | "bypassPermissions" // すべてのパーミッションチェックをバイパス

629 | "plan" // 計画モード - 実行なし

630 | "dontAsk" // パーミッションをプロンプトしない、事前承認されていない場合は拒否

631 | "auto"; // モデル分類器を使用して各ツール呼び出しを承認または拒否

632```

633 

634### `CanUseTool`

635 

636ツール使用を制御するためのカスタムパーミッション関数型。

637 

638```typescript theme={null}

639type CanUseTool = (

640 toolName: string,

641 input: Record<string, unknown>,

642 options: {

643 signal: AbortSignal;

644 suggestions?: PermissionUpdate[];

645 blockedPath?: string;

646 decisionReason?: string;

647 toolUseID: string;

648 agentID?: string;

649 }

650) => Promise<PermissionResult>;

651```

652 

653| オプション | 型 | 説明 |

654| :--------------- | :------------------------------------------- | :--------------------------------------------- |

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

656| `suggestions` | [`PermissionUpdate`](#permission-update)`[]` | 提案されたパーミッション更新。ユーザーがこのツールに対して再度プロンプトされないようにします |

657| `blockedPath` | `string` | パーミッションリクエストをトリガーしたファイルパス(該当する場合) |

658| `decisionReason` | `string` | このパーミッションリクエストがトリガーされた理由を説明します |

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

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

661 

662### `PermissionResult`

663 

664パーミッションチェックの結果。

665 

666```typescript theme={null}

667type PermissionResult =

668 | {

669 behavior: "allow";

670 updatedInput?: Record<string, unknown>;

671 updatedPermissions?: PermissionUpdate[];

672 toolUseID?: string;

673 }

674 | {

675 behavior: "deny";

676 message: string;

677 interrupt?: boolean;

678 toolUseID?: string;

679 };

680```

681 

682### `ToolConfig`

683 

684組み込みツール動作の設定。

685 

686```typescript theme={null}

687type ToolConfig = {

688 askUserQuestion?: {

689 previewFormat?: "markdown" | "html";

690 };

691};

692```

693 

694| フィールド | 型 | 説明 |

695| :------------------------------ | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |

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

697 

698### `McpServerConfig`

699 

700MCP サーバーの設定。

701 

702```typescript theme={null}

703type McpServerConfig =

704 | McpStdioServerConfig

705 | McpSSEServerConfig

706 | McpHttpServerConfig

707 | McpSdkServerConfigWithInstance;

708```

709 

710#### `McpStdioServerConfig`

711 

712```typescript theme={null}

713type McpStdioServerConfig = {

714 type?: "stdio";

715 command: string;

716 args?: string[];

717 env?: Record<string, string>;

718};

719```

720 

721#### `McpSSEServerConfig`

722 

723```typescript theme={null}

724type McpSSEServerConfig = {

725 type: "sse";

726 url: string;

727 headers?: Record<string, string>;

728};

729```

730 

731#### `McpHttpServerConfig`

732 

733```typescript theme={null}

734type McpHttpServerConfig = {

735 type: "http";

736 url: string;

737 headers?: Record<string, string>;

738};

739```

740 

741#### `McpSdkServerConfigWithInstance`

742 

743```typescript theme={null}

744type McpSdkServerConfigWithInstance = {

745 type: "sdk";

746 name: string;

747 instance: McpServer;

748};

749```

750 

751#### `McpClaudeAIProxyServerConfig`

752 

753```typescript theme={null}

754type McpClaudeAIProxyServerConfig = {

755 type: "claudeai-proxy";

756 url: string;

757 id: string;

758};

759```

760 

761### `SdkPluginConfig`

762 

763SDK でプラグインをロードするための設定。

764 

765```typescript theme={null}

766type SdkPluginConfig = {

767 type: "local";

768 path: string;

769};

770```

771 

772| フィールド | 型 | 説明 |

773| :----- | :-------- | :-------------------------------------- |

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

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

776 

777**例:**

778 

779```typescript theme={null}

780plugins: [

781 { type: "local", path: "./my-plugin" },

782 { type: "local", path: "/absolute/path/to/plugin" }

783];

784```

785 

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

787 

788## メッセージ型

789 

790### `SDKMessage`

791 

792クエリによって返されるすべての可能なメッセージの共用体型。

793 

794```typescript theme={null}

795type SDKMessage =

796 | SDKAssistantMessage

797 | SDKUserMessage

798 | SDKUserMessageReplay

799 | SDKResultMessage

800 | SDKSystemMessage

801 | SDKPartialAssistantMessage

802 | SDKCompactBoundaryMessage

803 | SDKStatusMessage

804 | SDKLocalCommandOutputMessage

805 | SDKHookStartedMessage

806 | SDKHookProgressMessage

807 | SDKHookResponseMessage

808 | SDKPluginInstallMessage

809 | SDKToolProgressMessage

810 | SDKAuthStatusMessage

811 | SDKTaskNotificationMessage

812 | SDKTaskStartedMessage

813 | SDKTaskProgressMessage

814 | SDKTaskUpdatedMessage

815 | SDKFilesPersistedEvent

816 | SDKToolUseSummaryMessage

817 | SDKRateLimitEvent

818 | SDKPromptSuggestionMessage;

819```

820 

821### `SDKAssistantMessage`

822 

823アシスタント応答メッセージ。

824 

825```typescript theme={null}

826type SDKAssistantMessage = {

827 type: "assistant";

828 uuid: UUID;

829 session_id: string;

830 message: BetaMessage; // Anthropic SDK から

831 parent_tool_use_id: string | null;

832 error?: SDKAssistantMessageError;

833};

834```

835 

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

837 

838`SDKAssistantMessageError` は以下のいずれかです:`'authentication_failed'`、`'oauth_org_not_allowed'`、`'billing_error'`、`'rate_limit'`、`'invalid_request'`、`'server_error'`、`'max_output_tokens'`、または `'unknown'`。

839 

840### `SDKUserMessage`

841 

842ユーザー入力メッセージ。

843 

844```typescript theme={null}

845type SDKUserMessage = {

846 type: "user";

847 uuid?: UUID;

848 session_id: string;

849 message: MessageParam; // Anthropic SDK から

850 parent_tool_use_id: string | null;

851 isSynthetic?: boolean;

852 shouldQuery?: boolean;

853 tool_use_result?: unknown;

854 origin?: SDKMessageOrigin;

855};

856```

857 

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

859 

860### `SDKUserMessageReplay`

861 

862必須 UUID を含む再生されたユーザーメッセージ。

863 

864```typescript theme={null}

865type SDKUserMessageReplay = {

866 type: "user";

867 uuid: UUID;

868 session_id: string;

869 message: MessageParam;

870 parent_tool_use_id: string | null;

871 isSynthetic?: boolean;

872 tool_use_result?: unknown;

873 origin?: SDKMessageOrigin;

874 isReplay: true;

875};

876```

877 

878### `SDKResultMessage`

879 

880最終結果メッセージ。

881 

882```typescript theme={null}

883type SDKResultMessage =

884 | {

885 type: "result";

886 subtype: "success";

887 uuid: UUID;

888 session_id: string;

889 duration_ms: number;

890 duration_api_ms: number;

891 is_error: boolean;

892 num_turns: number;

893 result: string;

894 stop_reason: string | null;

895 total_cost_usd: number;

896 usage: NonNullableUsage;

897 modelUsage: { [modelName: string]: ModelUsage };

898 permission_denials: SDKPermissionDenial[];

899 structured_output?: unknown;

900 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };

901 origin?: SDKMessageOrigin;

902 }

903 | {

904 type: "result";

905 subtype:

906 | "error_max_turns"

907 | "error_during_execution"

908 | "error_max_budget_usd"

909 | "error_max_structured_output_retries";

910 uuid: UUID;

911 session_id: string;

912 duration_ms: number;

913 duration_api_ms: number;

914 is_error: boolean;

915 num_turns: number;

916 stop_reason: string | null;

917 total_cost_usd: number;

918 usage: NonNullableUsage;

919 modelUsage: { [modelName: string]: ModelUsage };

920 permission_denials: SDKPermissionDenial[];

921 errors: string[];

922 origin?: SDKMessageOrigin;

923 };

924```

925 

926`origin` フィールドは、この結果をトリガーしたユーザーメッセージの [`SDKMessageOrigin`](#sdkmessageorigin) を転送します。バックグラウンドタスクが完了し、SDK が合成フォローアップターンを注入する場合、結果の `SDKResultMessage` は `origin: { kind: "task-notification" }` を持ちます。このフィールドをチェックして、プロンプトに答える結果とバックグラウンドタスクのフォローアップで発行される結果を区別し、後者をルーティングまたは抑制できます。このフィールドは、スタートアップエラーなど、ユーザーターンの前に発行される結果には存在しません。

927 

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

929 

930### `SDKSystemMessage`

931 

932システム初期化メッセージ。

933 

934```typescript theme={null}

935type SDKSystemMessage = {

936 type: "system";

937 subtype: "init";

938 uuid: UUID;

939 session_id: string;

940 agents?: string[];

941 apiKeySource: ApiKeySource;

942 betas?: string[];

943 claude_code_version: string;

944 cwd: string;

945 tools: string[];

946 mcp_servers: {

947 name: string;

948 status: string;

949 }[];

950 model: string;

951 permissionMode: PermissionMode;

952 slash_commands: string[];

953 output_style: string;

954 skills: string[];

955 plugins: { name: string; path: string }[];

956};

957```

958 

959### `SDKPartialAssistantMessage`

960 

961ストリーミング部分メッセージ(`includePartialMessages` が true の場合のみ)。

962 

963```typescript theme={null}

964type SDKPartialAssistantMessage = {

965 type: "stream_event";

966 event: BetaRawMessageStreamEvent; // Anthropic SDK から

967 parent_tool_use_id: string | null;

968 uuid: UUID;

969 session_id: string;

970};

971```

972 

973### `SDKCompactBoundaryMessage`

974 

975会話圧縮境界を示すメッセージ。

976 

977```typescript theme={null}

978type SDKCompactBoundaryMessage = {

979 type: "system";

980 subtype: "compact_boundary";

981 uuid: UUID;

982 session_id: string;

983 compact_metadata: {

984 trigger: "manual" | "auto";

985 pre_tokens: number;

986 };

987};

988```

989 

990### `SDKPluginInstallMessage`

991 

992プラグインインストール進捗イベント。[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/ja/env-vars) が設定されている場合に発行されるため、Agent SDK アプリケーションは最初のターンの前にマーケットプレイスプラグインのインストールを追跡できます。`started` と `completed` ステータスは全体的なインストールをブラケットします。`installed` と `failed` ステータスは個別のマーケットプレイスをレポートし、`name` を含みます。

993 

994```typescript theme={null}

995type SDKPluginInstallMessage = {

996 type: "system";

997 subtype: "plugin_install";

998 status: "started" | "installed" | "failed" | "completed";

999 name?: string;

1000 error?: string;

1001 uuid: UUID;

1002 session_id: string;

1003};

1004```

1005 

1006### `SDKPermissionDenial`

1007 

1008拒否されたツール使用に関する情報。

1009 

1010```typescript theme={null}

1011type SDKPermissionDenial = {

1012 tool_name: string;

1013 tool_use_id: string;

1014 tool_input: Record<string, unknown>;

1015};

1016```

1017 

1018### `SDKMessageOrigin`

1019 

1020ユーザーロールメッセージの出所。これは [`SDKUserMessage`](#sdkusermessage) の `origin` として表示され、対応する [`SDKResultMessage`](#sdkresultmessage) に転送されるため、特定のターンをトリガーしたものを判断できます。

1021 

1022```typescript theme={null}

1023type SDKMessageOrigin =

1024 | { kind: "human" }

1025 | { kind: "channel"; server: string }

1026 | { kind: "peer"; from: string; name?: string }

1027 | { kind: "task-notification" }

1028 | { kind: "coordinator" };

1029```

1030 

1031| `kind` | 意味 |

1032| ------------------- | ------------------------------------------------------------------------------------------------ |

1033| `human` | エンドユーザーからの直接入力。ユーザーメッセージでは、`origin` が存在しないこともヒューマン入力を意味します。 |

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

1035| `peer` | `SendMessage` 経由で別のエージェントセッションからのメッセージ。`from` は送信者アドレス、`name` は利用可能な場合は送信者の表示名です。 |

1036| `task-notification` | バックグラウンドタスク完了後に注入される合成ターン。[`SDKTaskNotificationMessage`](#sdktasknotificationmessage) を参照してください。 |

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

1038 

1039## フック型

1040 

1041フックの使用に関する包括的なガイド、例、一般的なパターンについては、[フックガイド](/ja/agent-sdk/hooks) を参照してください。

1042 

1043### `HookEvent`

1044 

1045利用可能なフックイベント。

1046 

1047```typescript theme={null}

1048type HookEvent =

1049 | "PreToolUse"

1050 | "PostToolUse"

1051 | "PostToolUseFailure"

1052 | "PostToolBatch"

1053 | "Notification"

1054 | "UserPromptSubmit"

1055 | "SessionStart"

1056 | "SessionEnd"

1057 | "Stop"

1058 | "SubagentStart"

1059 | "SubagentStop"

1060 | "PreCompact"

1061 | "PermissionRequest"

1062 | "Setup"

1063 | "TeammateIdle"

1064 | "TaskCompleted"

1065 | "ConfigChange"

1066 | "WorktreeCreate"

1067 | "WorktreeRemove";

1068```

1069 

1070### `HookCallback`

1071 

1072フックコールバック関数型。

1073 

1074```typescript theme={null}

1075type HookCallback = (

1076 input: HookInput, // すべてのフック入力型の共用体

1077 toolUseID: string | undefined,

1078 options: { signal: AbortSignal }

1079) => Promise<HookJSONOutput>;

1080```

1081 

1082### `HookCallbackMatcher`

1083 

1084オプションのマッチャーを含むフック設定。

1085 

1086```typescript theme={null}

1087interface HookCallbackMatcher {

1088 matcher?: string;

1089 hooks: HookCallback[];

1090 timeout?: number; // このマッチャーのすべてのフックのタイムアウト(秒)

1091}

1092```

1093 

1094### `HookInput`

1095 

1096すべてのフック入力型の共用体型。

1097 

1098```typescript theme={null}

1099type HookInput =

1100 | PreToolUseHookInput

1101 | PostToolUseHookInput

1102 | PostToolUseFailureHookInput

1103 | PostToolBatchHookInput

1104 | NotificationHookInput

1105 | UserPromptSubmitHookInput

1106 | SessionStartHookInput

1107 | SessionEndHookInput

1108 | StopHookInput

1109 | SubagentStartHookInput

1110 | SubagentStopHookInput

1111 | PreCompactHookInput

1112 | PermissionRequestHookInput

1113 | SetupHookInput

1114 | TeammateIdleHookInput

1115 | TaskCompletedHookInput

1116 | ConfigChangeHookInput

1117 | WorktreeCreateHookInput

1118 | WorktreeRemoveHookInput;

1119```

1120 

1121### `BaseHookInput`

1122 

1123すべてのフック入力型が拡張する基本インターフェース。

1124 

1125```typescript theme={null}

1126type BaseHookInput = {

1127 session_id: string;

1128 transcript_path: string;

1129 cwd: string;

1130 permission_mode?: string;

1131 agent_id?: string;

1132 agent_type?: string;

1133};

1134```

1135 

1136#### `PreToolUseHookInput`

1137 

1138```typescript theme={null}

1139type PreToolUseHookInput = BaseHookInput & {

1140 hook_event_name: "PreToolUse";

1141 tool_name: string;

1142 tool_input: unknown;

1143 tool_use_id: string;

1144};

1145```

1146 

1147#### `PostToolUseHookInput`

1148 

1149```typescript theme={null}

1150type PostToolUseHookInput = BaseHookInput & {

1151 hook_event_name: "PostToolUse";

1152 tool_name: string;

1153 tool_input: unknown;

1154 tool_response: unknown;

1155 tool_use_id: string;

1156 duration_ms?: number;

1157};

1158```

1159 

1160#### `PostToolUseFailureHookInput`

1161 

1162```typescript theme={null}

1163type PostToolUseFailureHookInput = BaseHookInput & {

1164 hook_event_name: "PostToolUseFailure";

1165 tool_name: string;

1166 tool_input: unknown;

1167 tool_use_id: string;

1168 error: string;

1169 is_interrupt?: boolean;

1170 duration_ms?: number;

1171};

1172```

1173 

1174#### `PostToolBatchHookInput`

1175 

1176バッチ内のすべてのツール呼び出しが解決された後、次のモデルリクエストの前に 1 回発火します。`tool_response` はモデルが見るシリアル化された `tool_result` コンテンツを保持します。形状は `PostToolUseHookInput` の構造化された `Output` オブジェクトとは異なります。

1177 

1178```typescript theme={null}

1179type PostToolBatchHookInput = BaseHookInput & {

1180 hook_event_name: "PostToolBatch";

1181 tool_calls: PostToolBatchToolCall[];

1182};

1183 

1184type PostToolBatchToolCall = {

1185 tool_name: string;

1186 tool_input: unknown;

1187 tool_use_id: string;

1188 tool_response?: unknown;

1189};

1190```

1191 

1192#### `NotificationHookInput`

1193 

1194```typescript theme={null}

1195type NotificationHookInput = BaseHookInput & {

1196 hook_event_name: "Notification";

1197 message: string;

1198 title?: string;

1199 notification_type: string;

1200};

1201```

1202 

1203#### `UserPromptSubmitHookInput`

1204 

1205```typescript theme={null}

1206type UserPromptSubmitHookInput = BaseHookInput & {

1207 hook_event_name: "UserPromptSubmit";

1208 prompt: string;

1209};

1210```

1211 

1212#### `SessionStartHookInput`

1213 

1214```typescript theme={null}

1215type SessionStartHookInput = BaseHookInput & {

1216 hook_event_name: "SessionStart";

1217 source: "startup" | "resume" | "clear" | "compact";

1218 agent_type?: string;

1219 model?: string;

1220};

1221```

1222 

1223#### `SessionEndHookInput`

1224 

1225```typescript theme={null}

1226type SessionEndHookInput = BaseHookInput & {

1227 hook_event_name: "SessionEnd";

1228 reason: ExitReason; // EXIT_REASONS 配列からの文字列

1229};

1230```

1231 

1232#### `StopHookInput`

1233 

1234```typescript theme={null}

1235type StopHookInput = BaseHookInput & {

1236 hook_event_name: "Stop";

1237 stop_hook_active: boolean;

1238 last_assistant_message?: string;

1239};

1240```

1241 

1242#### `SubagentStartHookInput`

1243 

1244```typescript theme={null}

1245type SubagentStartHookInput = BaseHookInput & {

1246 hook_event_name: "SubagentStart";

1247 agent_id: string;

1248 agent_type: string;

1249};

1250```

1251 

1252#### `SubagentStopHookInput`

1253 

1254```typescript theme={null}

1255type SubagentStopHookInput = BaseHookInput & {

1256 hook_event_name: "SubagentStop";

1257 stop_hook_active: boolean;

1258 agent_id: string;

1259 agent_transcript_path: string;

1260 agent_type: string;

1261 last_assistant_message?: string;

1262};

1263```

1264 

1265#### `PreCompactHookInput`

1266 

1267```typescript theme={null}

1268type PreCompactHookInput = BaseHookInput & {

1269 hook_event_name: "PreCompact";

1270 trigger: "manual" | "auto";

1271 custom_instructions: string | null;

1272};

1273```

1274 

1275#### `PermissionRequestHookInput`

1276 

1277```typescript theme={null}

1278type PermissionRequestHookInput = BaseHookInput & {

1279 hook_event_name: "PermissionRequest";

1280 tool_name: string;

1281 tool_input: unknown;

1282 permission_suggestions?: PermissionUpdate[];

1283};

1284```

1285 

1286#### `SetupHookInput`

1287 

1288```typescript theme={null}

1289type SetupHookInput = BaseHookInput & {

1290 hook_event_name: "Setup";

1291 trigger: "init" | "maintenance";

1292};

1293```

1294 

1295#### `TeammateIdleHookInput`

1296 

1297```typescript theme={null}

1298type TeammateIdleHookInput = BaseHookInput & {

1299 hook_event_name: "TeammateIdle";

1300 teammate_name: string;

1301 team_name: string;

1302};

1303```

1304 

1305#### `TaskCompletedHookInput`

1306 

1307```typescript theme={null}

1308type TaskCompletedHookInput = BaseHookInput & {

1309 hook_event_name: "TaskCompleted";

1310 task_id: string;

1311 task_subject: string;

1312 task_description?: string;

1313 teammate_name?: string;

1314 team_name?: string;

1315};

1316```

1317 

1318#### `ConfigChangeHookInput`

1319 

1320```typescript theme={null}

1321type ConfigChangeHookInput = BaseHookInput & {

1322 hook_event_name: "ConfigChange";

1323 source:

1324 | "user_settings"

1325 | "project_settings"

1326 | "local_settings"

1327 | "policy_settings"

1328 | "skills";

1329 file_path?: string;

1330};

1331```

1332 

1333#### `WorktreeCreateHookInput`

1334 

1335```typescript theme={null}

1336type WorktreeCreateHookInput = BaseHookInput & {

1337 hook_event_name: "WorktreeCreate";

1338 name: string;

1339};

1340```

1341 

1342#### `WorktreeRemoveHookInput`

1343 

1344```typescript theme={null}

1345type WorktreeRemoveHookInput = BaseHookInput & {

1346 hook_event_name: "WorktreeRemove";

1347 worktree_path: string;

1348};

1349```

1350 

1351### `HookJSONOutput`

1352 

1353フック戻り値。

1354 

1355```typescript theme={null}

1356type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;

1357```

1358 

1359#### `AsyncHookJSONOutput`

1360 

1361```typescript theme={null}

1362type AsyncHookJSONOutput = {

1363 async: true;

1364 asyncTimeout?: number;

1365};

1366```

1367 

1368#### `SyncHookJSONOutput`

1369 

1370```typescript theme={null}

1371type SyncHookJSONOutput = {

1372 continue?: boolean;

1373 suppressOutput?: boolean;

1374 stopReason?: string;

1375 decision?: "approve" | "block";

1376 systemMessage?: string;

1377 reason?: string;

1378 hookSpecificOutput?:

1379 | {

1380 hookEventName: "PreToolUse";

1381 permissionDecision?: "allow" | "deny" | "ask" | "defer";

1382 permissionDecisionReason?: string;

1383 updatedInput?: Record<string, unknown>;

1384 additionalContext?: string;

1385 }

1386 | {

1387 hookEventName: "UserPromptSubmit";

1388 additionalContext?: string;

1389 }

1390 | {

1391 hookEventName: "SessionStart";

1392 additionalContext?: string;

1393 }

1394 | {

1395 hookEventName: "Setup";

1396 additionalContext?: string;

1397 }

1398 | {

1399 hookEventName: "SubagentStart";

1400 additionalContext?: string;

1401 }

1402 | {

1403 hookEventName: "PostToolUse";

1404 additionalContext?: string;

1405 updatedToolOutput?: unknown;

1406 /** @deprecated `updatedToolOutput` を使用してください。これはすべてのツールで機能します。 */

1407 updatedMCPToolOutput?: unknown;

1408 }

1409 | {

1410 hookEventName: "PostToolUseFailure";

1411 additionalContext?: string;

1412 }

1413 | {

1414 hookEventName: "PostToolBatch";

1415 additionalContext?: string;

1416 }

1417 | {

1418 hookEventName: "Notification";

1419 additionalContext?: string;

1420 }

1421 | {

1422 hookEventName: "PermissionRequest";

1423 decision:

1424 | {

1425 behavior: "allow";

1426 updatedInput?: Record<string, unknown>;

1427 updatedPermissions?: PermissionUpdate[];

1428 }

1429 | {

1430 behavior: "deny";

1431 message?: string;

1432 interrupt?: boolean;

1433 };

1434 };

1435};

1436```

1437 

1438## ツール入力型

1439 

1440すべての組み込み Claude Code ツールの入力スキーマのドキュメント。これらの型は `@anthropic-ai/claude-agent-sdk` からエクスポートされ、タイプセーフなツール相互作用に使用できます。

1441 

1442### `ToolInputSchemas`

1443 

1444すべてのツール入力型の共用体。`@anthropic-ai/claude-agent-sdk` からエクスポートされます。

1445 

1446```typescript theme={null}

1447type ToolInputSchemas =

1448 | AgentInput

1449 | AskUserQuestionInput

1450 | BashInput

1451 | TaskOutputInput

1452 | EnterWorktreeInput

1453 | ExitPlanModeInput

1454 | FileEditInput

1455 | FileReadInput

1456 | FileWriteInput

1457 | GlobInput

1458 | GrepInput

1459 | ListMcpResourcesInput

1460 | McpInput

1461 | MonitorInput

1462 | NotebookEditInput

1463 | ReadMcpResourceInput

1464 | SubscribeMcpResourceInput

1465 | SubscribePollingInput

1466 | TaskStopInput

1467 | TodoWriteInput

1468 | UnsubscribeMcpResourceInput

1469 | UnsubscribePollingInput

1470 | WebFetchInput

1471 | WebSearchInput;

1472```

1473 

1474### Agent

1475 

1476**ツール名:** `Agent`(以前は `Task`。これはまだエイリアスとして受け入れられます)

1477 

1478```typescript theme={null}

1479type AgentInput = {

1480 description: string;

1481 prompt: string;

1482 subagent_type: string;

1483 model?: "sonnet" | "opus" | "haiku";

1484 resume?: string;

1485 run_in_background?: boolean;

1486 max_turns?: number;

1487 name?: string;

1488 team_name?: string;

1489 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";

1490 isolation?: "worktree";

1491};

1492```

1493 

1494複雑なマルチステップタスクを自律的に処理する新しいエージェントを起動します。

1495 

1496### AskUserQuestion

1497 

1498**ツール名:** `AskUserQuestion`

1499 

1500```typescript theme={null}

1501type AskUserQuestionInput = {

1502 questions: Array<{

1503 question: string;

1504 header: string;

1505 options: Array<{ label: string; description: string; preview?: string }>;

1506 multiSelect: boolean;

1507 }>;

1508};

1509```

1510 

1511実行中にユーザーに明確化の質問をします。使用方法の詳細については、[承認とユーザー入力を処理](/ja/agent-sdk/user-input#handle-clarifying-questions) を参照してください。

1512 

1513### Bash

1514 

1515**ツール名:** `Bash`

1516 

1517```typescript theme={null}

1518type BashInput = {

1519 command: string;

1520 timeout?: number;

1521 description?: string;

1522 run_in_background?: boolean;

1523 dangerouslyDisableSandbox?: boolean;

1524};

1525```

1526 

1527オプションのタイムアウトとバックグラウンド実行を備えた永続的なシェルセッションで bash コマンドを実行します。

1528 

1529### Monitor

1530 

1531**ツール名:** `Monitor`

1532 

1533```typescript theme={null}

1534type MonitorInput = {

1535 command: string;

1536 description: string;

1537 timeout_ms?: number;

1538 persistent?: boolean;

1539};

1540```

1541 

1542バックグラウンドスクリプトを実行し、各 stdout 行を Claude にイベントとして配信するため、ポーリングなしで反応できます。`persistent: true` をセッション長のウォッチ(ログテールなど)に設定します。Monitor は Bash と同じパーミッションルールに従います。動作とプロバイダーの可用性については、[Monitor ツールリファレンス](/ja/tools-reference#monitor-tool) を参照してください。

1543 

1544### TaskOutput

1545 

1546**ツール名:** `TaskOutput`

1547 

1548```typescript theme={null}

1549type TaskOutputInput = {

1550 task_id: string;

1551 block: boolean;

1552 timeout: number;

1553};

1554```

1555 

1556実行中または完了したバックグラウンドタスクから出力を取得します。

1557 

1558### Edit

1559 

1560**ツール名:** `Edit`

1561 

1562```typescript theme={null}

1563type FileEditInput = {

1564 file_path: string;

1565 old_string: string;

1566 new_string: string;

1567 replace_all?: boolean;

1568};

1569```

1570 

1571ファイル内で正確な文字列置換を実行します。

1572 

1573### Read

1574 

1575**ツール名:** `Read`

1576 

1577```typescript theme={null}

1578type FileReadInput = {

1579 file_path: string;

1580 offset?: number;

1581 limit?: number;

1582 pages?: string;

1583};

1584```

1585 

1586テキスト、画像、PDF、Jupyter ノートブックを含むローカルファイルシステムからファイルを読み取ります。PDF ページ範囲には `pages` を使用します(例:`"1-5"`)。

1587 

1588### Write

1589 

1590**ツール名:** `Write`

1591 

1592```typescript theme={null}

1593type FileWriteInput = {

1594 file_path: string;

1595 content: string;

1596};

1597```

1598 

1599ローカルファイルシステムにファイルを書き込み、存在する場合は上書きします。

1600 

1601### Glob

1602 

1603**ツール名:** `Glob`

1604 

1605```typescript theme={null}

1606type GlobInput = {

1607 pattern: string;

1608 path?: string;

1609};

1610```

1611 

1612任意のコードベースサイズで機能する高速ファイルパターンマッチング。

1613 

1614### Grep

1615 

1616**ツール名:** `Grep`

1617 

1618```typescript theme={null}

1619type GrepInput = {

1620 pattern: string;

1621 path?: string;

1622 glob?: string;

1623 type?: string;

1624 output_mode?: "content" | "files_with_matches" | "count";

1625 "-i"?: boolean;

1626 "-n"?: boolean;

1627 "-B"?: number;

1628 "-A"?: number;

1629 "-C"?: number;

1630 context?: number;

1631 head_limit?: number;

1632 offset?: number;

1633 multiline?: boolean;

1634};

1635```

1636 

1637ripgrep に基づいた正規表現サポート付きの強力な検索ツール。

1638 

1639### TaskStop

1640 

1641**ツール名:** `TaskStop`

1642 

1643```typescript theme={null}

1644type TaskStopInput = {

1645 task_id?: string;

1646 shell_id?: string; // 非推奨:task_id を使用

1647};

1648```

1649 

1650ID でバックグラウンドタスクまたはシェルを停止します。

1651 

1652### NotebookEdit

1653 

1654**ツール名:** `NotebookEdit`

1655 

1656```typescript theme={null}

1657type NotebookEditInput = {

1658 notebook_path: string;

1659 cell_id?: string;

1660 new_source: string;

1661 cell_type?: "code" | "markdown";

1662 edit_mode?: "replace" | "insert" | "delete";

1663};

1664```

1665 

1666Jupyter ノートブックファイルのセルを編集します。

1667 

1668### WebFetch

1669 

1670**ツール名:** `WebFetch`

1671 

1672```typescript theme={null}

1673type WebFetchInput = {

1674 url: string;

1675 prompt: string;

1676};

1677```

1678 

1679URL からコンテンツを取得し、AI モデルで処理します。

1680 

1681### WebSearch

1682 

1683**ツール名:** `WebSearch`

1684 

1685```typescript theme={null}

1686type WebSearchInput = {

1687 query: string;

1688 allowed_domains?: string[];

1689 blocked_domains?: string[];

1690};

1691```

1692 

1693ウェブを検索し、フォーマットされた結果を返します。

1694 

1695### TodoWrite

1696 

1697**ツール名:** `TodoWrite`

1698 

1699```typescript theme={null}

1700type TodoWriteInput = {

1701 todos: Array<{

1702 content: string;

1703 status: "pending" | "in_progress" | "completed";

1704 activeForm: string;

1705 }>;

1706};

1707```

1708 

1709進捗を追跡するための構造化タスクリストを作成および管理します。

1710 

1711### ExitPlanMode

1712 

1713**ツール名:** `ExitPlanMode`

1714 

1715```typescript theme={null}

1716type ExitPlanModeInput = {

1717 allowedPrompts?: Array<{

1718 tool: "Bash";

1719 prompt: string;

1720 }>;

1721};

1722```

1723 

1724計画モードを終了します。オプションで、計画を実装するために必要なプロンプトベースのパーミッションを指定します。

1725 

1726### ListMcpResources

1727 

1728**ツール名:** `ListMcpResources`

1729 

1730```typescript theme={null}

1731type ListMcpResourcesInput = {

1732 server?: string;

1733};

1734```

1735 

1736接続されたサーバーから利用可能な MCP リソースをリストします。

1737 

1738### ReadMcpResource

1739 

1740**ツール名:** `ReadMcpResource`

1741 

1742```typescript theme={null}

1743type ReadMcpResourceInput = {

1744 server: string;

1745 uri: string;

1746};

1747```

1748 

1749サーバーから特定の MCP リソースを読み取ります。

1750 

1751### EnterWorktree

1752 

1753**ツール名:** `EnterWorktree`

1754 

1755```typescript theme={null}

1756type EnterWorktreeInput = {

1757 name?: string;

1758 path?: string;

1759};

1760```

1761 

1762分離された作業用の一時的な git worktree を作成して入力します。新しい worktree を作成する代わりに、現在のリポジトリの既存の worktree に切り替えるには `path` を渡します。`name` と `path` は相互に排他的です。

1763 

1764## ツール出力型

1765 

1766すべての組み込み Claude Code ツールの出力スキーマのドキュメント。これらの型は `@anthropic-ai/claude-agent-sdk` からエクスポートされ、各ツールによって返される実際の応答データを表します。

1767 

1768### `ToolOutputSchemas`

1769 

1770すべてのツール出力型の共用体。

1771 

1772```typescript theme={null}

1773type ToolOutputSchemas =

1774 | AgentOutput

1775 | AskUserQuestionOutput

1776 | BashOutput

1777 | EnterWorktreeOutput

1778 | ExitPlanModeOutput

1779 | FileEditOutput

1780 | FileReadOutput

1781 | FileWriteOutput

1782 | GlobOutput

1783 | GrepOutput

1784 | ListMcpResourcesOutput

1785 | MonitorOutput

1786 | NotebookEditOutput

1787 | ReadMcpResourceOutput

1788 | TaskStopOutput

1789 | TodoWriteOutput

1790 | WebFetchOutput

1791 | WebSearchOutput;

1792```

1793 

1794### Agent

1795 

1796**ツール名:** `Agent`(以前は `Task`。これはまだエイリアスとして受け入れられます)

1797 

1798```typescript theme={null}

1799type AgentOutput =

1800 | {

1801 status: "completed";

1802 agentId: string;

1803 content: Array<{ type: "text"; text: string }>;

1804 totalToolUseCount: number;

1805 totalDurationMs: number;

1806 totalTokens: number;

1807 usage: {

1808 input_tokens: number;

1809 output_tokens: number;

1810 cache_creation_input_tokens: number | null;

1811 cache_read_input_tokens: number | null;

1812 server_tool_use: {

1813 web_search_requests: number;

1814 web_fetch_requests: number;

1815 } | null;

1816 service_tier: ("standard" | "priority" | "batch") | null;

1817 cache_creation: {

1818 ephemeral_1h_input_tokens: number;

1819 ephemeral_5m_input_tokens: number;

1820 } | null;

1821 };

1822 prompt: string;

1823 }

1824 | {

1825 status: "async_launched";

1826 agentId: string;

1827 description: string;

1828 prompt: string;

1829 outputFile: string;

1830 canReadOutputFile?: boolean;

1831 }

1832 | {

1833 status: "sub_agent_entered";

1834 description: string;

1835 message: string;

1836 };

1837```

1838 

1839サブエージェントからの結果を返します。`status` フィールドで判別されます:完了したタスクの場合は `"completed"`、バックグラウンドタスクの場合は `"async_launched"`、インタラクティブサブエージェントの場合は `"sub_agent_entered"`。

1840 

1841### AskUserQuestion

1842 

1843**ツール名:** `AskUserQuestion`

1844 

1845```typescript theme={null}

1846type AskUserQuestionOutput = {

1847 questions: Array<{

1848 question: string;

1849 header: string;

1850 options: Array<{ label: string; description: string; preview?: string }>;

1851 multiSelect: boolean;

1852 }>;

1853 answers: Record<string, string>;

1854};

1855```

1856 

1857質問とユーザーの回答を返します。

1858 

1859### Bash

1860 

1861**ツール名:** `Bash`

1862 

1863```typescript theme={null}

1864type BashOutput = {

1865 stdout: string;

1866 stderr: string;

1867 rawOutputPath?: string;

1868 interrupted: boolean;

1869 isImage?: boolean;

1870 backgroundTaskId?: string;

1871 backgroundedByUser?: boolean;

1872 dangerouslyDisableSandbox?: boolean;

1873 returnCodeInterpretation?: string;

1874 structuredContent?: unknown[];

1875 persistedOutputPath?: string;

1876 persistedOutputSize?: number;

1877};

1878```

1879 

1880stdout/stderr が分割されたコマンド出力を返します。バックグラウンドコマンドには `backgroundTaskId` が含まれます。

1881 

1882### Monitor

1883 

1884**ツール名:** `Monitor`

1885 

1886```typescript theme={null}

1887type MonitorOutput = {

1888 taskId: string;

1889 timeoutMs: number;

1890 persistent?: boolean;

1891};

1892```

1893 

1894実行中のモニターのバックグラウンドタスク ID を返します。この ID を `TaskStop` で使用して、ウォッチを早期にキャンセルします。

1895 

1896### Edit

1897 

1898**ツール名:** `Edit`

1899 

1900```typescript theme={null}

1901type FileEditOutput = {

1902 filePath: string;

1903 oldString: string;

1904 newString: string;

1905 originalFile: string;

1906 structuredPatch: Array<{

1907 oldStart: number;

1908 oldLines: number;

1909 newStart: number;

1910 newLines: number;

1911 lines: string[];

1912 }>;

1913 userModified: boolean;

1914 replaceAll: boolean;

1915 gitDiff?: {

1916 filename: string;

1917 status: "modified" | "added";

1918 additions: number;

1919 deletions: number;

1920 changes: number;

1921 patch: string;

1922 };

1923};

1924```

1925 

1926編集操作の構造化された diff を返します。

1927 

1928### Read

1929 

1930**ツール名:** `Read`

1931 

1932```typescript theme={null}

1933type FileReadOutput =

1934 | {

1935 type: "text";

1936 file: {

1937 filePath: string;

1938 content: string;

1939 numLines: number;

1940 startLine: number;

1941 totalLines: number;

1942 };

1943 }

1944 | {

1945 type: "image";

1946 file: {

1947 base64: string;

1948 type: "image/jpeg" | "image/png" | "image/gif" | "image/webp";

1949 originalSize: number;

1950 dimensions?: {

1951 originalWidth?: number;

1952 originalHeight?: number;

1953 displayWidth?: number;

1954 displayHeight?: number;

1955 };

1956 };

1957 }

1958 | {

1959 type: "notebook";

1960 file: {

1961 filePath: string;

1962 cells: unknown[];

1963 };

1964 }

1965 | {

1966 type: "pdf";

1967 file: {

1968 filePath: string;

1969 base64: string;

1970 originalSize: number;

1971 };

1972 }

1973 | {

1974 type: "parts";

1975 file: {

1976 filePath: string;

1977 originalSize: number;

1978 count: number;

1979 outputDir: string;

1980 };

1981 };

1982```

1983 

1984ファイルタイプに適切な形式でファイルコンテンツを返します。`type` フィールドで判別されます。

1985 

1986### Write

1987 

1988**ツール名:** `Write`

1989 

1990```typescript theme={null}

1991type FileWriteOutput = {

1992 type: "create" | "update";

1993 filePath: string;

1994 content: string;

1995 structuredPatch: Array<{

1996 oldStart: number;

1997 oldLines: number;

1998 newStart: number;

1999 newLines: number;

2000 lines: string[];

2001 }>;

2002 originalFile: string | null;

2003 gitDiff?: {

2004 filename: string;

2005 status: "modified" | "added";

2006 additions: number;

2007 deletions: number;

2008 changes: number;

2009 patch: string;

2010 };

2011};

2012```

2013 

2014構造化された diff 情報を含む書き込み結果を返します。

2015 

2016### Glob

2017 

2018**ツール名:** `Glob`

2019 

2020```typescript theme={null}

2021type GlobOutput = {

2022 durationMs: number;

2023 numFiles: number;

2024 filenames: string[];

2025 truncated: boolean;

2026};

2027```

2028 

2029glob パターンに一致するファイルパスを返します。変更時刻でソートされます。

2030 

2031### Grep

2032 

2033**ツール名:** `Grep`

2034 

2035```typescript theme={null}

2036type GrepOutput = {

2037 mode?: "content" | "files_with_matches" | "count";

2038 numFiles: number;

2039 filenames: string[];

2040 content?: string;

2041 numLines?: number;

2042 numMatches?: number;

2043 appliedLimit?: number;

2044 appliedOffset?: number;

2045};

2046```

2047 

2048検索結果を返します。形状は `mode` によって異なります:ファイルリスト、マッチを含むコンテンツ、またはマッチ数。

2049 

2050### TaskStop

2051 

2052**ツール名:** `TaskStop`

2053 

2054```typescript theme={null}

2055type TaskStopOutput = {

2056 message: string;

2057 task_id: string;

2058 task_type: string;

2059 command?: string;

2060};

2061```

2062 

2063バックグラウンドタスクを停止した後の確認を返します。

2064 

2065### NotebookEdit

2066 

2067**ツール名:** `NotebookEdit`

2068 

2069```typescript theme={null}

2070type NotebookEditOutput = {

2071 new_source: string;

2072 cell_id?: string;

2073 cell_type: "code" | "markdown";

2074 language: string;

2075 edit_mode: string;

2076 error?: string;

2077 notebook_path: string;

2078 original_file: string;

2079 updated_file: string;

2080};

2081```

2082 

2083元のファイルと更新されたファイルコンテンツを含むノートブック編集の結果を返します。

2084 

2085### WebFetch

2086 

2087**ツール名:** `WebFetch`

2088 

2089```typescript theme={null}

2090type WebFetchOutput = {

2091 bytes: number;

2092 code: number;

2093 codeText: string;

2094 result: string;

2095 durationMs: number;

2096 url: string;

2097};

2098```

2099 

2100HTTP ステータスとメタデータを含む取得されたコンテンツを返します。

2101 

2102### WebSearch

2103 

2104**ツール名:** `WebSearch`

2105 

2106```typescript theme={null}

2107type WebSearchOutput = {

2108 query: string;

2109 results: Array<

2110 | {

2111 tool_use_id: string;

2112 content: Array<{ title: string; url: string }>;

2113 }

2114 | string

2115 >;

2116 durationSeconds: number;

2117};

2118```

2119 

2120ウェブからの検索結果を返します。

2121 

2122### TodoWrite

2123 

2124**ツール名:** `TodoWrite`

2125 

2126```typescript theme={null}

2127type TodoWriteOutput = {

2128 oldTodos: Array<{

2129 content: string;

2130 status: "pending" | "in_progress" | "completed";

2131 activeForm: string;

2132 }>;

2133 newTodos: Array<{

2134 content: string;

2135 status: "pending" | "in_progress" | "completed";

2136 activeForm: string;

2137 }>;

2138};

2139```

2140 

2141前のタスクリストと更新されたタスクリストを返します。

2142 

2143### ExitPlanMode

2144 

2145**ツール名:** `ExitPlanMode`

2146 

2147```typescript theme={null}

2148type ExitPlanModeOutput = {

2149 plan: string | null;

2150 isAgent: boolean;

2151 filePath?: string;

2152 hasTaskTool?: boolean;

2153 awaitingLeaderApproval?: boolean;

2154 requestId?: string;

2155};

2156```

2157 

2158計画モード終了後の計画状態を返します。

2159 

2160### ListMcpResources

2161 

2162**ツール名:** `ListMcpResources`

2163 

2164```typescript theme={null}

2165type ListMcpResourcesOutput = Array<{

2166 uri: string;

2167 name: string;

2168 mimeType?: string;

2169 description?: string;

2170 server: string;

2171}>;

2172```

2173 

2174利用可能な MCP リソースの配列を返します。

2175 

2176### ReadMcpResource

2177 

2178**ツール名:** `ReadMcpResource`

2179 

2180```typescript theme={null}

2181type ReadMcpResourceOutput = {

2182 contents: Array<{

2183 uri: string;

2184 mimeType?: string;

2185 text?: string;

2186 }>;

2187};

2188```

2189 

2190要求された MCP リソースのコンテンツを返します。

2191 

2192### EnterWorktree

2193 

2194**ツール名:** `EnterWorktree`

2195 

2196```typescript theme={null}

2197type EnterWorktreeOutput = {

2198 worktreePath: string;

2199 worktreeBranch?: string;

2200 message: string;

2201};

2202```

2203 

2204git worktree に関する情報を返します。

2205 

2206## パーミッション型

2207 

2208### `PermissionUpdate`

2209 

2210パーミッション更新の操作。

2211 

2212```typescript theme={null}

2213type PermissionUpdate =

2214 | {

2215 type: "addRules";

2216 rules: PermissionRuleValue[];

2217 behavior: PermissionBehavior;

2218 destination: PermissionUpdateDestination;

2219 }

2220 | {

2221 type: "replaceRules";

2222 rules: PermissionRuleValue[];

2223 behavior: PermissionBehavior;

2224 destination: PermissionUpdateDestination;

2225 }

2226 | {

2227 type: "removeRules";

2228 rules: PermissionRuleValue[];

2229 behavior: PermissionBehavior;

2230 destination: PermissionUpdateDestination;

2231 }

2232 | {

2233 type: "setMode";

2234 mode: PermissionMode;

2235 destination: PermissionUpdateDestination;

2236 }

2237 | {

2238 type: "addDirectories";

2239 directories: string[];

2240 destination: PermissionUpdateDestination;

2241 }

2242 | {

2243 type: "removeDirectories";

2244 directories: string[];

2245 destination: PermissionUpdateDestination;

2246 };

2247```

2248 

2249### `PermissionBehavior`

2250 

2251```typescript theme={null}

2252type PermissionBehavior = "allow" | "deny" | "ask";

2253```

2254 

2255### `PermissionUpdateDestination`

2256 

2257```typescript theme={null}

2258type PermissionUpdateDestination =

2259 | "userSettings" // グローバルユーザー設定

2260 | "projectSettings" // ディレクトリごとのプロジェクト設定

2261 | "localSettings" // Gitignored ローカル設定

2262 | "session" // 現在のセッションのみ

2263 | "cliArg"; // CLI 引数

2264```

2265 

2266### `PermissionRuleValue`

2267 

2268```typescript theme={null}

2269type PermissionRuleValue = {

2270 toolName: string;

2271 ruleContent?: string;

2272};

2273```

2274 

2275## その他の型

2276 

2277### `ApiKeySource`

2278 

2279```typescript theme={null}

2280type ApiKeySource = "user" | "project" | "org" | "temporary" | "oauth";

2281```

2282 

2283### `SdkBeta`

2284 

2285`betas` オプション経由で有効にできる利用可能なベータ機能。詳細は [ベータヘッダー](https://platform.claude.com/docs/ja/api/beta-headers) を参照してください。

2286 

2287```typescript theme={null}

2288type SdkBeta = "context-1m-2025-08-07";

2289```

2290 

2291<Warning>

2292 `context-1m-2025-08-07` ベータは 2026 年 4 月 30 日時点で廃止されました。Claude Sonnet 4.5 または Sonnet 4 でこの値を渡すと効果がなく、標準 200k トークンコンテキストウィンドウを超えるリクエストはエラーを返します。1M トークンコンテキストウィンドウを使用するには、[Claude Sonnet 4.6、Claude Opus 4.6、または Claude Opus 4.7](https://platform.claude.com/docs/ja/about-claude/models/overview) に移行してください。これらには、ベータヘッダーなしで標準価格で 1M コンテキストが含まれます。

2293</Warning>

2294 

2295### `SlashCommand`

2296 

2297利用可能なスラッシュコマンドに関する情報。

2298 

2299```typescript theme={null}

2300type SlashCommand = {

2301 name: string;

2302 description: string;

2303 argumentHint: string;

2304 aliases?: string[];

2305};

2306```

2307 

2308### `ModelInfo`

2309 

2310利用可能なモデルに関する情報。

2311 

2312```typescript theme={null}

2313type ModelInfo = {

2314 value: string;

2315 displayName: string;

2316 description: string;

2317 supportsEffort?: boolean;

2318 supportedEffortLevels?: ("low" | "medium" | "high" | "xhigh" | "max")[];

2319 supportsAdaptiveThinking?: boolean;

2320 supportsFastMode?: boolean;

2321};

2322```

2323 

2324### `AgentInfo`

2325 

2326Agent ツール経由で呼び出すことができる利用可能なサブエージェントに関する情報。

2327 

2328```typescript theme={null}

2329type AgentInfo = {

2330 name: string;

2331 description: string;

2332 model?: string;

2333};

2334```

2335 

2336| フィールド | 型 | 説明 |

2337| :------------ | :-------------------- | :-------------------------------------------- |

2338| `name` | `string` | エージェント型識別子(例:`"Explore"`、`"general-purpose"`) |

2339| `description` | `string` | このエージェントをいつ使用するかの説明 |

2340| `model` | `string \| undefined` | このエージェントが使用するモデルエイリアス。省略すると、親のモデルを継承します |

2341 

2342### `McpServerStatus`

2343 

2344接続された MCP サーバーのステータス。

2345 

2346```typescript theme={null}

2347type McpServerStatus = {

2348 name: string;

2349 status: "connected" | "failed" | "needs-auth" | "pending" | "disabled";

2350 serverInfo?: {

2351 name: string;

2352 version: string;

2353 };

2354 error?: string;

2355 config?: McpServerStatusConfig;

2356 scope?: string;

2357 tools?: {

2358 name: string;

2359 description?: string;

2360 annotations?: {

2361 readOnly?: boolean;

2362 destructive?: boolean;

2363 openWorld?: boolean;

2364 };

2365 }[];

2366};

2367```

2368 

2369### `McpServerStatusConfig`

2370 

2371`mcpServerStatus()` によってレポートされた MCP サーバーの設定。これはすべての MCP サーバートランスポートタイプの共用体です。

2372 

2373```typescript theme={null}

2374type McpServerStatusConfig =

2375 | McpStdioServerConfig

2376 | McpSSEServerConfig

2377 | McpHttpServerConfig

2378 | McpSdkServerConfig

2379 | McpClaudeAIProxyServerConfig;

2380```

2381 

2382各トランスポートタイプの詳細については、[`McpServerConfig`](#mcp-server-config) を参照してください。

2383 

2384### `AccountInfo`

2385 

2386認証されたユーザーのアカウント情報。

2387 

2388```typescript theme={null}

2389type AccountInfo = {

2390 email?: string;

2391 organization?: string;

2392 subscriptionType?: string;

2393 tokenSource?: string;

2394 apiKeySource?: string;

2395};

2396```

2397 

2398### `ModelUsage`

2399 

2400結果メッセージで返されるモデルごとの使用統計。`costUSD` 値はクライアント側の推定です。請求に関する注意事項については、[コストと使用状況を追跡](/ja/agent-sdk/cost-tracking) を参照してください。

2401 

2402```typescript theme={null}

2403type ModelUsage = {

2404 inputTokens: number;

2405 outputTokens: number;

2406 cacheReadInputTokens: number;

2407 cacheCreationInputTokens: number;

2408 webSearchRequests: number;

2409 costUSD: number;

2410 contextWindow: number;

2411 maxOutputTokens: number;

2412};

2413```

2414 

2415### `ConfigScope`

2416 

2417```typescript theme={null}

2418type ConfigScope = "local" | "user" | "project";

2419```

2420 

2421### `NonNullableUsage`

2422 

2423すべての nullable フィールドが non-nullable になった [`Usage`](#usage) のバージョン。

2424 

2425```typescript theme={null}

2426type NonNullableUsage = {

2427 [K in keyof Usage]: NonNullable<Usage[K]>;

2428};

2429```

2430 

2431### `Usage`

2432 

2433トークン使用統計(`@anthropic-ai/sdk` から)。

2434 

2435```typescript theme={null}

2436type Usage = {

2437 input_tokens: number | null;

2438 output_tokens: number | null;

2439 cache_creation_input_tokens?: number | null;

2440 cache_read_input_tokens?: number | null;

2441};

2442```

2443 

2444### `CallToolResult`

2445 

2446MCP ツール結果型(`@modelcontextprotocol/sdk/types.js` から)。

2447 

2448```typescript theme={null}

2449type CallToolResult = {

2450 content: Array<{

2451 type: "text" | "image" | "resource";

2452 // 追加フィールドはタイプによって異なります

2453 }>;

2454 isError?: boolean;

2455};

2456```

2457 

2458### `ThinkingConfig`

2459 

2460Claude の思考/推論動作を制御します。非推奨の `maxThinkingTokens` より優先されます。

2461 

2462```typescript theme={null}

2463type ThinkingConfig =

2464 | { type: "adaptive" } // モデルが推論のタイミングと量を決定します(Opus 4.6 以降)

2465 | { type: "enabled"; budgetTokens?: number } // 固定思考トークン予算

2466 | { type: "disabled" }; // 拡張思考なし

2467```

2468 

2469### `SpawnedProcess`

2470 

2471カスタムプロセススポーニング用のインターフェース(`spawnClaudeCodeProcess` オプションで使用)。`ChildProcess` は既にこのインターフェースを満たしています。

2472 

2473```typescript theme={null}

2474interface SpawnedProcess {

2475 stdin: Writable;

2476 stdout: Readable;

2477 readonly killed: boolean;

2478 readonly exitCode: number | null;

2479 kill(signal: NodeJS.Signals): boolean;

2480 on(

2481 event: "exit",

2482 listener: (code: number | null, signal: NodeJS.Signals | null) => void

2483 ): void;

2484 on(event: "error", listener: (error: Error) => void): void;

2485 once(

2486 event: "exit",

2487 listener: (code: number | null, signal: NodeJS.Signals | null) => void

2488 ): void;

2489 once(event: "error", listener: (error: Error) => void): void;

2490 off(

2491 event: "exit",

2492 listener: (code: number | null, signal: NodeJS.Signals | null) => void

2493 ): void;

2494 off(event: "error", listener: (error: Error) => void): void;

2495}

2496```

2497 

2498### `SpawnOptions`

2499 

2500カスタムスポーン関数に渡されるオプション。

2501 

2502```typescript theme={null}

2503interface SpawnOptions {

2504 command: string;

2505 args: string[];

2506 cwd?: string;

2507 env: Record<string, string | undefined>;

2508 signal: AbortSignal;

2509}

2510```

2511 

2512### `McpSetServersResult`

2513 

2514`setMcpServers()` 操作の結果。

2515 

2516```typescript theme={null}

2517type McpSetServersResult = {

2518 added: string[];

2519 removed: string[];

2520 errors: Record<string, string>;

2521};

2522```

2523 

2524### `RewindFilesResult`

2525 

2526`rewindFiles()` 操作の結果。

2527 

2528```typescript theme={null}

2529type RewindFilesResult = {

2530 canRewind: boolean;

2531 error?: string;

2532 filesChanged?: string[];

2533 insertions?: number;

2534 deletions?: number;

2535};

2536```

2537 

2538### `SDKStatusMessage`

2539 

2540ステータス更新メッセージ(例:圧縮)。

2541 

2542```typescript theme={null}

2543type SDKStatusMessage = {

2544 type: "system";

2545 subtype: "status";

2546 status: "compacting" | null;

2547 permissionMode?: PermissionMode;

2548 uuid: UUID;

2549 session_id: string;

2550};

2551```

2552 

2553### `SDKTaskNotificationMessage`

2554 

2555バックグラウンドタスクが完了、失敗、または停止したときの通知。バックグラウンドタスクには、`run_in_background` Bash コマンド、[Monitor](#monitor) ウォッチ、バックグラウンドサブエージェントが含まれます。

2556 

2557```typescript theme={null}

2558type SDKTaskNotificationMessage = {

2559 type: "system";

2560 subtype: "task_notification";

2561 task_id: string;

2562 tool_use_id?: string;

2563 status: "completed" | "failed" | "stopped";

2564 output_file: string;

2565 summary: string;

2566 usage?: {

2567 total_tokens: number;

2568 tool_uses: number;

2569 duration_ms: number;

2570 };

2571 uuid: UUID;

2572 session_id: string;

2573};

2574```

2575 

2576### `SDKToolUseSummaryMessage`

2577 

2578会話でのツール使用のサマリー。

2579 

2580```typescript theme={null}

2581type SDKToolUseSummaryMessage = {

2582 type: "tool_use_summary";

2583 summary: string;

2584 preceding_tool_use_ids: string[];

2585 uuid: UUID;

2586 session_id: string;

2587};

2588```

2589 

2590### `SDKHookStartedMessage`

2591 

2592フックが実行を開始したときに発行されます。

2593 

2594```typescript theme={null}

2595type SDKHookStartedMessage = {

2596 type: "system";

2597 subtype: "hook_started";

2598 hook_id: string;

2599 hook_name: string;

2600 hook_event: string;

2601 uuid: UUID;

2602 session_id: string;

2603};

2604```

2605 

2606### `SDKHookProgressMessage`

2607 

2608フックが実行中に stdout/stderr 出力で発行されます。

2609 

2610```typescript theme={null}

2611type SDKHookProgressMessage = {

2612 type: "system";

2613 subtype: "hook_progress";

2614 hook_id: string;

2615 hook_name: string;

2616 hook_event: string;

2617 stdout: string;

2618 stderr: string;

2619 output: string;

2620 uuid: UUID;

2621 session_id: string;

2622};

2623```

2624 

2625### `SDKHookResponseMessage`

2626 

2627フックが実行を終了したときに発行されます。

2628 

2629```typescript theme={null}

2630type SDKHookResponseMessage = {

2631 type: "system";

2632 subtype: "hook_response";

2633 hook_id: string;

2634 hook_name: string;

2635 hook_event: string;

2636 output: string;

2637 stdout: string;

2638 stderr: string;

2639 exit_code?: number;

2640 outcome: "success" | "error" | "cancelled";

2641 uuid: UUID;

2642 session_id: string;

2643};

2644```

2645 

2646### `SDKToolProgressMessage`

2647 

2648ツール実行中に定期的に発行され、進捗を示します。

2649 

2650```typescript theme={null}

2651type SDKToolProgressMessage = {

2652 type: "tool_progress";

2653 tool_use_id: string;

2654 tool_name: string;

2655 parent_tool_use_id: string | null;

2656 elapsed_time_seconds: number;

2657 task_id?: string;

2658 uuid: UUID;

2659 session_id: string;

2660};

2661```

2662 

2663### `SDKAuthStatusMessage`

2664 

2665認証フロー中に発行されます。

2666 

2667```typescript theme={null}

2668type SDKAuthStatusMessage = {

2669 type: "auth_status";

2670 isAuthenticating: boolean;

2671 output: string[];

2672 error?: string;

2673 uuid: UUID;

2674 session_id: string;

2675};

2676```

2677 

2678### `SDKTaskStartedMessage`

2679 

2680バックグラウンドタスクが開始したときに発行されます。`task_type` フィールドは、バックグラウンド Bash コマンドと [Monitor](#monitor) ウォッチの場合は `"local_bash"`、サブエージェントの場合は `"local_agent"`、またはリモートエージェントの場合は `"remote_agent"` です。

2681 

2682```typescript theme={null}

2683type SDKTaskStartedMessage = {

2684 type: "system";

2685 subtype: "task_started";

2686 task_id: string;

2687 tool_use_id?: string;

2688 description: string;

2689 task_type?: string;

2690 uuid: UUID;

2691 session_id: string;

2692};

2693```

2694 

2695### `SDKTaskProgressMessage`

2696 

2697バックグラウンドタスクが実行中に定期的に発行されます。

2698 

2699```typescript theme={null}

2700type SDKTaskProgressMessage = {

2701 type: "system";

2702 subtype: "task_progress";

2703 task_id: string;

2704 tool_use_id?: string;

2705 description: string;

2706 usage: {

2707 total_tokens: number;

2708 tool_uses: number;

2709 duration_ms: number;

2710 };

2711 last_tool_name?: string;

2712 uuid: UUID;

2713 session_id: string;

2714};

2715```

2716 

2717### `SDKTaskUpdatedMessage`

2718 

2719バックグラウンドタスクの状態が変更されたときに発行されます。例えば、`running` から `completed` に遷移するときなど。`patch` をローカルタスクマップ(`task_id` でキー付け)にマージしてください。`end_time` フィールドは Unix エポックタイムスタンプ(ミリ秒単位)で、`Date.now()` と比較可能です。

2720 

2721```typescript theme={null}

2722type SDKTaskUpdatedMessage = {

2723 type: "system";

2724 subtype: "task_updated";

2725 task_id: string;

2726 patch: {

2727 status?: "pending" | "running" | "completed" | "failed" | "killed";

2728 description?: string;

2729 end_time?: number;

2730 total_paused_ms?: number;

2731 error?: string;

2732 is_backgrounded?: boolean;

2733 };

2734 uuid: UUID;

2735 session_id: string;

2736};

2737```

2738 

2739### `SDKFilesPersistedEvent`

2740 

2741ファイルチェックポイントがディスクに永続化されたときに発行されます。

2742 

2743```typescript theme={null}

2744type SDKFilesPersistedEvent = {

2745 type: "system";

2746 subtype: "files_persisted";

2747 files: { filename: string; file_id: string }[];

2748 failed: { filename: string; error: string }[];

2749 processed_at: string;

2750 uuid: UUID;

2751 session_id: string;

2752};

2753```

2754 

2755### `SDKRateLimitEvent`

2756 

2757セッションがレート制限に遭遇したときに発行されます。

2758 

2759```typescript theme={null}

2760type SDKRateLimitEvent = {

2761 type: "rate_limit_event";

2762 rate_limit_info: {

2763 status: "allowed" | "allowed_warning" | "rejected";

2764 resetsAt?: number;

2765 utilization?: number;

2766 };

2767 uuid: UUID;

2768 session_id: string;

2769};

2770```

2771 

2772### `SDKLocalCommandOutputMessage`

2773 

2774ローカルスラッシュコマンド(例:`/voice` または `/usage`)からの出力。トランスクリプトでアシスタント形式のテキストとして表示されます。

2775 

2776```typescript theme={null}

2777type SDKLocalCommandOutputMessage = {

2778 type: "system";

2779 subtype: "local_command_output";

2780 content: string;

2781 uuid: UUID;

2782 session_id: string;

2783};

2784```

2785 

2786### `SDKPromptSuggestionMessage`

2787 

2788`promptSuggestions` が有効な場合、各ターン後に発行されます。予測される次のユーザープロンプトを含みます。

2789 

2790```typescript theme={null}

2791type SDKPromptSuggestionMessage = {

2792 type: "prompt_suggestion";

2793 suggestion: string;

2794 uuid: UUID;

2795 session_id: string;

2796};

2797```

2798 

2799### `AbortError`

2800 

2801中止操作のカスタムエラークラス。

2802 

2803```typescript theme={null}

2804class AbortError extends Error {}

2805```

2806 

2807## サンドボックス設定

2808 

2809### `SandboxSettings`

2810 

2811サンドボックス動作の設定。これを使用して、コマンドサンドボックスを有効にし、ネットワーク制限をプログラムで設定します。

2812 

2813```typescript theme={null}

2814type SandboxSettings = {

2815 enabled?: boolean;

2816 autoAllowBashIfSandboxed?: boolean;

2817 excludedCommands?: string[];

2818 allowUnsandboxedCommands?: boolean;

2819 network?: SandboxNetworkConfig;

2820 filesystem?: SandboxFilesystemConfig;

2821 ignoreViolations?: Record<string, string[]>;

2822 enableWeakerNestedSandbox?: boolean;

2823 ripgrep?: { command: string; args?: string[] };

2824};

2825```

2826 

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

2828| :-------------------------- | :------------------------------------------------------ | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2829| `enabled` | `boolean` | `false` | コマンド実行のサンドボックスモードを有効にします |

2830| `autoAllowBashIfSandboxed` | `boolean` | `true` | サンドボックスが有効な場合、bash コマンドを自動承認します |

2831| `excludedCommands` | `string[]` | `[]` | 常にサンドボックス制限をバイパスするコマンド(例:`['docker']`)。これらはモデルの関与なしに自動的にサンドボックス外で実行されます |

2832| `allowUnsandboxedCommands` | `boolean` | `true` | モデルがサンドボックス外でコマンドを実行するようにリクエストすることを許可します。`true` の場合、モデルはツール入力で `dangerouslyDisableSandbox` を設定でき、[パーミッションシステム](#permissions-fallback-for-unsandboxed-commands) にフォールバックします |

2833| `network` | [`SandboxNetworkConfig`](#sandbox-network-config) | `undefined` | ネットワーク固有のサンドボックス設定 |

2834| `filesystem` | [`SandboxFilesystemConfig`](#sandbox-filesystem-config) | `undefined` | 読み取り/書き込み制限のためのファイルシステム固有のサンドボックス設定 |

2835| `ignoreViolations` | `Record<string, string[]>` | `undefined` | 違反カテゴリを無視するパターンのマップ(例:`{ file: ['/tmp/*'], network: ['localhost'] }`) |

2836| `enableWeakerNestedSandbox` | `boolean` | `false` | 互換性のための弱いネストされたサンドボックスを有効にします |

2837| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | サンドボックス環境のカスタム ripgrep バイナリ設定 |

2838 

2839#### 使用例

2840 

2841```typescript theme={null}

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

2843 

2844for await (const message of query({

2845 prompt: "Build and test my project",

2846 options: {

2847 sandbox: {

2848 enabled: true,

2849 autoAllowBashIfSandboxed: true,

2850 network: {

2851 allowLocalBinding: true

2852 }

2853 }

2854 }

2855})) {

2856 if ("result" in message) console.log(message.result);

2857}

2858```

2859 

2860<Warning>

2861 **Unix ソケットセキュリティ:** `allowUnixSockets` オプションは強力なシステムサービスへのアクセスを許可できます。例えば、`/var/run/docker.sock` を許可すると、Docker API 経由でホストシステムへの完全なアクセスが効果的に許可され、サンドボックス分離がバイパスされます。厳密に必要な Unix ソケットのみを許可し、各ソケットのセキュリティへの影響を理解してください。

2862</Warning>

2863 

2864### `SandboxNetworkConfig`

2865 

2866サンドボックスモードのネットワーク固有の設定。

2867 

2868```typescript theme={null}

2869type SandboxNetworkConfig = {

2870 allowedDomains?: string[];

2871 deniedDomains?: string[];

2872 allowManagedDomainsOnly?: boolean;

2873 allowLocalBinding?: boolean;

2874 allowUnixSockets?: string[];

2875 allowAllUnixSockets?: boolean;

2876 httpProxyPort?: number;

2877 socksProxyPort?: number;

2878};

2879```

2880 

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

2882| :------------------------ | :--------- | :---------- | :------------------------------------------------------ |

2883| `allowedDomains` | `string[]` | `[]` | サンドボックス化されたプロセスがアクセスできるドメイン名 |

2884| `deniedDomains` | `string[]` | `[]` | サンドボックス化されたプロセスがアクセスできないドメイン名。`allowedDomains` より優先されます |

2885| `allowManagedDomainsOnly` | `boolean` | `false` | ネットワークアクセスを `allowedDomains` のドメインのみに制限します |

2886| `allowLocalBinding` | `boolean` | `false` | プロセスがローカルポートにバインドすることを許可します(例:開発サーバー) |

2887| `allowUnixSockets` | `string[]` | `[]` | プロセスがアクセスできる Unix ソケットパス(例:Docker ソケット) |

2888| `allowAllUnixSockets` | `boolean` | `false` | すべての Unix ソケットへのアクセスを許可します |

2889| `httpProxyPort` | `number` | `undefined` | ネットワークリクエスト用の HTTP プロキシポート |

2890| `socksProxyPort` | `number` | `undefined` | ネットワークリクエスト用の SOCKS プロキシポート |

2891 

2892<Note>

2893 組み込みサンドボックスプロキシは、リクエストされたホスト名に基づいて `allowedDomains` を強制し、TLS トラフィックを終了または検査しないため、[ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting) などの技術がそれをバイパスする可能性があります。詳細は [サンドボックスセキュリティの制限](/ja/sandboxing#security-limitations) を参照し、TLS 終了プロキシの設定については [セキュアなデプロイ](/ja/agent-sdk/secure-deployment#traffic-forwarding) を参照してください。

2894</Note>

2895 

2896### `SandboxFilesystemConfig`

2897 

2898サンドボックスモードのファイルシステム固有の設定。

2899 

2900```typescript theme={null}

2901type SandboxFilesystemConfig = {

2902 allowWrite?: string[];

2903 denyWrite?: string[];

2904 denyRead?: string[];

2905};

2906```

2907 

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

2909| :----------- | :--------- | :---- | :-------------------- |

2910| `allowWrite` | `string[]` | `[]` | 書き込みアクセスを許可するファイルパターン |

2911| `denyWrite` | `string[]` | `[]` | 書き込みアクセスを拒否するファイルパターン |

2912| `denyRead` | `string[]` | `[]` | 読み取りアクセスを拒否するファイルパターン |

2913 

2914### サンドボックス外コマンドのパーミッションフォールバック

2915 

2916`allowUnsandboxedCommands` が有効な場合、モデルはツール入力で `dangerouslyDisableSandbox: true` を設定することで、サンドボックス外でコマンドを実行するようにリクエストできます。これらのリクエストは既存のパーミッションシステムにフォールバックします。つまり、`canUseTool` ハンドラーが呼び出され、カスタム認可ロジックを実装できます。

2917 

2918<Note>

2919 **`excludedCommands` vs `allowUnsandboxedCommands`:**

2920 

2921 * `excludedCommands`:常にサンドボックスを自動的にバイパスするコマンドの静的リスト(例:`['docker']`)。モデルはこれを制御できません。

2922 * `allowUnsandboxedCommands`:モデルがツール入力で `dangerouslyDisableSandbox: true` を設定することで、実行時にサンドボックス外実行をリクエストすることを許可します。

2923</Note>

2924 

2925```typescript theme={null}

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

2927 

2928for await (const message of query({

2929 prompt: "Deploy my application",

2930 options: {

2931 sandbox: {

2932 enabled: true,

2933 allowUnsandboxedCommands: true // モデルはサンドボックス外実行をリクエストできます

2934 },

2935 permissionMode: "default",

2936 canUseTool: async (tool, input) => {

2937 // モデルがサンドボックスをバイパスするようにリクエストしているかチェック

2938 if (tool === "Bash" && input.dangerouslyDisableSandbox) {

2939 // モデルはこのコマンドをサンドボックス外で実行するようにリクエストしています

2940 console.log(`Unsandboxed command requested: ${input.command}`);

2941 

2942 if (isCommandAuthorized(input.command)) {

2943 return { behavior: "allow" as const, updatedInput: input };

2944 }

2945 return {

2946 behavior: "deny" as const,

2947 message: "Command not authorized for unsandboxed execution"

2948 };

2949 }

2950 return { behavior: "allow" as const, updatedInput: input };

2951 }

2952 }

2953})) {

2954 if ("result" in message) console.log(message.result);

2955}

2956```

2957 

2958このパターンにより、以下が可能になります:

2959 

2960* **モデルリクエストを監査:** モデルがサンドボックス外実行をリクエストしたときにログします

2961* **許可リストを実装:** 特定のコマンドのみがサンドボックス外で実行されることを許可します

2962* **承認ワークフローを追加:** 特権操作に明示的な認可を要求します

2963 

2964<Warning>

2965 `dangerouslyDisableSandbox: true` で実行されるコマンドはシステムへの完全なアクセスを持ちます。`canUseTool` ハンドラーがこれらのリクエストを慎重に検証することを確認してください。

2966 

2967 `permissionMode` が `bypassPermissions` に設定され、`allowUnsandboxedCommands` が有効な場合、モデルは承認プロンプトなしにサンドボックス外でコマンドを自律的に実行できます。この組み合わせにより、モデルはサンドボックス分離を静かにエスケープできます。

2968</Warning>

2969 

2970## 関連項目

2971 

2972* [SDK 概要](/ja/agent-sdk/overview) - 一般的な SDK 概念

2973* [Python SDK リファレンス](/ja/agent-sdk/python) - Python SDK ドキュメント

2974* [CLI リファレンス](/ja/cli-reference) - コマンドラインインターフェース

2975* [一般的なワークフロー](/ja/common-workflows) - ステップバイステップガイド

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# TypeScript SDK V2 インターフェース(プレビュー)

6 

7> マルチターン会話向けのセッションベースの send/stream パターンを備えた、簡略化された V2 TypeScript Agent SDK のプレビュー。

8 

9<Warning>

10 V2 インターフェースは**不安定なプレビュー**です。安定化する前にフィードバックに基づいて API が変更される可能性があります。セッションフォーキングなどの一部の機能は、[V1 SDK](/ja/agent-sdk/typescript) でのみ利用可能です。

11</Warning>

12 

13V2 Claude Agent TypeScript SDK は、非同期ジェネレータと yield 調整の必要性を排除します。これにより、マルチターン会話がより簡単になります。ターン間でジェネレータの状態を管理する代わりに、各ターンは個別の `send()`/`stream()` サイクルになります。API サーフェスは 3 つの概念に縮小されます。

14 

15* `createSession()` / `resumeSession()`:会話を開始または継続する

16* `session.send()`:メッセージを送信する

17* `session.stream()`:レスポンスを取得する

18 

19## インストール

20 

21V2 インターフェースは既存の SDK パッケージに含まれています。

22 

23```bash theme={null}

24npm install @anthropic-ai/claude-agent-sdk

25```

26 

27<Note>

28 SDK はオプションの依存関係として、プラットフォーム用のネイティブ Claude Code バイナリをバンドルしているため、Claude Code を別途インストールする必要はありません。

29</Note>

30 

31## クイックスタート

32 

33### ワンショットプロンプト

34 

35セッションを維持する必要がない単純なシングルターンクエリの場合は、`unstable_v2_prompt()` を使用します。この例は数学の質問を送信し、答えをログに出力します。

36 

37```typescript theme={null}

38import { unstable_v2_prompt } from "@anthropic-ai/claude-agent-sdk";

39 

40const result = await unstable_v2_prompt("What is 2 + 2?", {

41 model: "claude-opus-4-7"

42});

43if (result.subtype === "success") {

44 console.log(result.result);

45}

46```

47 

48<details>

49 <summary>V1 での同じ操作を参照</summary>

50 

51 ```typescript theme={null}

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

53 

54 const q = query({

55 prompt: "What is 2 + 2?",

56 options: { model: "claude-opus-4-7" }

57 });

58 

59 for await (const msg of q) {

60 if (msg.type === "result" && msg.subtype === "success") {

61 console.log(msg.result);

62 }

63 }

64 ```

65</details>

66 

67### 基本的なセッション

68 

69単一のプロンプトを超えるインタラクションの場合は、セッションを作成します。V2 は送信とストリーミングを個別のステップに分離します。

70 

71* `send()` はメッセージをディスパッチします

72* `stream()` はレスポンスをストリーミングします

73 

74この明示的な分離により、ターン間にロジックを追加しやすくなります(レスポンスを処理してからフォローアップを送信するなど)。

75 

76以下の例はセッションを作成し、「Hello!」を Claude に送信し、テキストレスポンスを出力します。[`await using`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management)(TypeScript 5.2 以降)を使用して、ブロックが終了するときにセッションを自動的に閉じます。`session.close()` を手動で呼び出すこともできます。

77 

78```typescript theme={null}

79import { unstable_v2_createSession } from "@anthropic-ai/claude-agent-sdk";

80 

81await using session = unstable_v2_createSession({

82 model: "claude-opus-4-7"

83});

84 

85await session.send("Hello!");

86for await (const msg of session.stream()) {

87 // Filter for assistant messages to get human-readable output

88 if (msg.type === "assistant") {

89 const text = msg.message.content

90 .filter((block) => block.type === "text")

91 .map((block) => block.text)

92 .join("");

93 console.log(text);

94 }

95}

96```

97 

98<details>

99 <summary>V1 での同じ操作を参照</summary>

100 

101 V1 では、入力と出力の両方が単一の非同期ジェネレータを通じてフローします。基本的なプロンプトの場合は同様に見えますが、マルチターンロジックを追加するには、入力ジェネレータを使用するように再構築する必要があります。

102 

103 ```typescript theme={null}

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

105 

106 const q = query({

107 prompt: "Hello!",

108 options: { model: "claude-opus-4-7" }

109 });

110 

111 for await (const msg of q) {

112 if (msg.type === "assistant") {

113 const text = msg.message.content

114 .filter((block) => block.type === "text")

115 .map((block) => block.text)

116 .join("");

117 console.log(text);

118 }

119 }

120 ```

121</details>

122 

123### マルチターン会話

124 

125セッションは複数の交換全体でコンテキストを保持します。会話を続けるには、同じセッションで `send()` を再度呼び出します。Claude は前のターンを記憶しています。

126 

127この例は数学の質問を尋ねてから、前の答えを参照するフォローアップを尋ねます。

128 

129```typescript theme={null}

130import { unstable_v2_createSession } from "@anthropic-ai/claude-agent-sdk";

131 

132await using session = unstable_v2_createSession({

133 model: "claude-opus-4-7"

134});

135 

136// Turn 1

137await session.send("What is 5 + 3?");

138for await (const msg of session.stream()) {

139 // Filter for assistant messages to get human-readable output

140 if (msg.type === "assistant") {

141 const text = msg.message.content

142 .filter((block) => block.type === "text")

143 .map((block) => block.text)

144 .join("");

145 console.log(text);

146 }

147}

148 

149// Turn 2

150await session.send("Multiply that by 2");

151for await (const msg of session.stream()) {

152 if (msg.type === "assistant") {

153 const text = msg.message.content

154 .filter((block) => block.type === "text")

155 .map((block) => block.text)

156 .join("");

157 console.log(text);

158 }

159}

160```

161 

162<details>

163 <summary>V1 での同じ操作を参照</summary>

164 

165 ```typescript theme={null}

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

167 

168 // Must create an async iterable to feed messages

169 async function* createInputStream() {

170 yield {

171 type: "user",

172 session_id: "",

173 message: { role: "user", content: [{ type: "text", text: "What is 5 + 3?" }] },

174 parent_tool_use_id: null

175 };

176 // Must coordinate when to yield next message

177 yield {

178 type: "user",

179 session_id: "",

180 message: { role: "user", content: [{ type: "text", text: "Multiply by 2" }] },

181 parent_tool_use_id: null

182 };

183 }

184 

185 const q = query({

186 prompt: createInputStream(),

187 options: { model: "claude-opus-4-7" }

188 });

189 

190 for await (const msg of q) {

191 if (msg.type === "assistant") {

192 const text = msg.message.content

193 .filter((block) => block.type === "text")

194 .map((block) => block.text)

195 .join("");

196 console.log(text);

197 }

198 }

199 ```

200</details>

201 

202### セッションの再開

203 

204前のインタラクションからセッション ID がある場合は、後でそれを再開できます。これは長時間実行されるワークフローや、アプリケーションの再起動全体で会話を永続化する必要がある場合に便利です。

205 

206この例はセッションを作成し、その ID を保存し、それを閉じてから会話を再開します。

207 

208```typescript theme={null}

209import {

210 unstable_v2_createSession,

211 unstable_v2_resumeSession,

212 type SDKMessage

213} from "@anthropic-ai/claude-agent-sdk";

214 

215// Helper to extract text from assistant messages

216function getAssistantText(msg: SDKMessage): string | null {

217 if (msg.type !== "assistant") return null;

218 return msg.message.content

219 .filter((block) => block.type === "text")

220 .map((block) => block.text)

221 .join("");

222}

223 

224// Create initial session and have a conversation

225const session = unstable_v2_createSession({

226 model: "claude-opus-4-7"

227});

228 

229await session.send("Remember this number: 42");

230 

231// Get the session ID from any received message

232let sessionId: string | undefined;

233for await (const msg of session.stream()) {

234 sessionId = msg.session_id;

235 const text = getAssistantText(msg);

236 if (text) console.log("Initial response:", text);

237}

238 

239console.log("Session ID:", sessionId);

240session.close();

241 

242// Later: resume the session using the stored ID

243await using resumedSession = unstable_v2_resumeSession(sessionId!, {

244 model: "claude-opus-4-7"

245});

246 

247await resumedSession.send("What number did I ask you to remember?");

248for await (const msg of resumedSession.stream()) {

249 const text = getAssistantText(msg);

250 if (text) console.log("Resumed response:", text);

251}

252```

253 

254<details>

255 <summary>V1 での同じ操作を参照</summary>

256 

257 ```typescript theme={null}

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

259 

260 // Create initial session

261 const initialQuery = query({

262 prompt: "Remember this number: 42",

263 options: { model: "claude-opus-4-7" }

264 });

265 

266 // Get session ID from any message

267 let sessionId: string | undefined;

268 for await (const msg of initialQuery) {

269 sessionId = msg.session_id;

270 if (msg.type === "assistant") {

271 const text = msg.message.content

272 .filter((block) => block.type === "text")

273 .map((block) => block.text)

274 .join("");

275 console.log("Initial response:", text);

276 }

277 }

278 

279 console.log("Session ID:", sessionId);

280 

281 // Later: resume the session

282 const resumedQuery = query({

283 prompt: "What number did I ask you to remember?",

284 options: {

285 model: "claude-opus-4-7",

286 resume: sessionId

287 }

288 });

289 

290 for await (const msg of resumedQuery) {

291 if (msg.type === "assistant") {

292 const text = msg.message.content

293 .filter((block) => block.type === "text")

294 .map((block) => block.text)

295 .join("");

296 console.log("Resumed response:", text);

297 }

298 }

299 ```

300</details>

301 

302### クリーンアップ

303 

304セッションは手動で閉じるか、[`await using`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management)(自動リソースクリーンアップ用の TypeScript 5.2 以降の機能)を使用して自動的に閉じることができます。古い TypeScript バージョンを使用している場合や互換性の問題が発生した場合は、代わりに手動クリーンアップを使用してください。

305 

306**自動クリーンアップ(TypeScript 5.2 以降):**

307 

308```typescript theme={null}

309import { unstable_v2_createSession } from "@anthropic-ai/claude-agent-sdk";

310 

311await using session = unstable_v2_createSession({

312 model: "claude-opus-4-7"

313});

314// Session closes automatically when the block exits

315```

316 

317**手動クリーンアップ:**

318 

319```typescript theme={null}

320import { unstable_v2_createSession } from "@anthropic-ai/claude-agent-sdk";

321 

322const session = unstable_v2_createSession({

323 model: "claude-opus-4-7"

324});

325// ... use the session ...

326session.close();

327```

328 

329## API リファレンス

330 

331### `unstable_v2_createSession()`

332 

333マルチターン会話用の新しいセッションを作成します。

334 

335```typescript theme={null}

336function unstable_v2_createSession(options: {

337 model: string;

338 // Additional options supported

339}): SDKSession;

340```

341 

342### `unstable_v2_resumeSession()`

343 

344ID で既存のセッションを再開します。

345 

346```typescript theme={null}

347function unstable_v2_resumeSession(

348 sessionId: string,

349 options: {

350 model: string;

351 // Additional options supported

352 }

353): SDKSession;

354```

355 

356### `unstable_v2_prompt()`

357 

358シングルターンクエリ用のワンショット便利関数。

359 

360```typescript theme={null}

361function unstable_v2_prompt(

362 prompt: string,

363 options: {

364 model: string;

365 // Additional options supported

366 }

367): Promise<SDKResultMessage>;

368```

369 

370### SDKSession インターフェース

371 

372```typescript theme={null}

373interface SDKSession {

374 readonly sessionId: string;

375 send(message: string | SDKUserMessage): Promise<void>;

376 stream(): AsyncGenerator<SDKMessage, void>;

377 close(): void;

378}

379```

380 

381## 機能の可用性

382 

383すべての V1 機能が V2 でまだ利用可能ではありません。以下は [V1 SDK](/ja/agent-sdk/typescript) を使用する必要があります。

384 

385* セッションフォーキング(`forkSession` オプション)

386* 一部の高度なストリーミング入力パターン

387 

388## フィードバック

389 

390V2 インターフェースが安定化する前に、フィードバックを共有してください。[GitHub Issues](https://github.com/anthropics/claude-code/issues) を通じて問題と提案を報告してください。

391 

392## 関連項目

393 

394* [TypeScript SDK リファレンス(V1)](/ja/agent-sdk/typescript) - 完全な V1 SDK ドキュメント

395* [SDK 概要](/ja/agent-sdk/overview) - 一般的な SDK の概念

396* [GitHub 上の V2 例](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world-v2) - 動作するコード例

agent-teams.md +424 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code セッションのチームを調整する

6 

7> 複数の Claude Code インスタンスがチームとして連携して動作するように調整し、共有タスク、エージェント間メッセージング、および一元管理を実現します。

8 

9<Warning>

10 エージェントチームは実験的機能であり、デフォルトでは無効になっています。[settings.json](/ja/settings) または環境に `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` を追加して有効にしてください。エージェントチームには、セッション再開、タスク調整、シャットダウン動作に関する[既知の制限](#limitations)があります。

11</Warning>

12 

13エージェントチームを使用すると、複数の Claude Code インスタンスが連携して動作するように調整できます。1 つのセッションがチームリーダーとして機能し、作業を調整し、タスクを割り当て、結果を統合します。チームメンバーは独立して動作し、それぞれ独自のコンテキストウィンドウで動作し、互いに直接通信します。

14 

15[subagents](/ja/sub-agents)(単一セッション内で実行され、メインエージェントにのみ報告できる)とは異なり、リーダーを経由せずに個別のチームメンバーと直接対話することもできます。

16 

17<Note>

18 エージェントチームには Claude Code v2.1.32 以降が必要です。`claude --version` でバージョンを確認してください。

19</Note>

20 

21このページでは、以下について説明します。

22 

23* [エージェントチームを使用する場合](#when-to-use-agent-teams)(ユースケースと subagents との比較を含む)

24* [チームを開始する](#start-your-first-agent-team)

25* [チームメンバーを制御する](#control-your-agent-team)(表示モード、タスク割り当て、委任を含む)

26* [並列作業のベストプラクティス](#best-practices)

27 

28## エージェントチームを使用する場合

29 

30エージェントチームは、並列探索が実際の価値を追加するタスクに最も効果的です。完全なシナリオについては、[ユースケース例](#use-case-examples)を参照してください。最も強力なユースケースは以下の通りです。

31 

32* **調査とレビュー**:複数のチームメンバーが問題のさまざまな側面を同時に調査し、その後、各自の調査結果を共有して相互に検証できます

33* **新しいモジュールまたは機能**:チームメンバーが互いに干渉することなく、それぞれ別々の部分を担当できます

34* **競合する仮説でのデバッグ**:チームメンバーが異なる理論を並列でテストし、より迅速に答えに収束できます

35* **クロスレイヤー調整**:フロントエンド、バックエンド、テストにまたがる変更で、それぞれ異なるチームメンバーが担当します

36 

37エージェントチームは調整オーバーヘッドを追加し、単一セッションよりも大幅に多くのトークンを使用します。チームメンバーが独立して動作できる場合に最も効果的です。順序付きタスク、同じファイルの編集、または多くの依存関係を持つ作業の場合は、単一セッションまたは [subagents](/ja/sub-agents) がより効果的です。

38 

39### subagents との比較

40 

41エージェントチームと [subagents](/ja/sub-agents) の両方を使用すると、作業を並列化できますが、動作方法が異なります。ワーカーが互いに通信する必要があるかどうかに基づいて選択してください。

42 

43<Frame caption="Subagents は結果をメインエージェントに報告するだけで、互いに通信することはありません。エージェントチームでは、チームメンバーがタスクリストを共有し、作業を要求し、互いに直接通信します。">

44 <img src="https://mintcdn.com/claude-code/nsvRFSDNfpSU5nT7/images/subagents-vs-agent-teams-light.png?fit=max&auto=format&n=nsvRFSDNfpSU5nT7&q=85&s=2f8db9b4f3705dd3ab931fbe2d96e42a" className="dark:hidden" alt="Subagent とエージェントチームのアーキテクチャを比較する図。Subagents はメインエージェントによって生成され、作業を実行し、結果を報告します。エージェントチームは共有タスクリストを通じて調整され、チームメンバーが互いに直接通信します。" width="4245" height="1615" data-path="images/subagents-vs-agent-teams-light.png" />

45 

46 <img src="https://mintcdn.com/claude-code/nsvRFSDNfpSU5nT7/images/subagents-vs-agent-teams-dark.png?fit=max&auto=format&n=nsvRFSDNfpSU5nT7&q=85&s=d573a037540f2ada6a9ae7d8285b46fd" className="hidden dark:block" alt="Subagent とエージェントチームのアーキテクチャを比較する図。Subagents はメインエージェントによって生成され、作業を実行し、結果を報告します。エージェントチームは共有タスクリストを通じて調整され、チームメンバーが互いに直接通信します。" width="4245" height="1615" data-path="images/subagents-vs-agent-teams-dark.png" />

47</Frame>

48 

49| | Subagents | エージェントチーム |

50| :---------- | :--------------------------- | :---------------------------- |

51| **コンテキスト** | 独自のコンテキストウィンドウ。結果は呼び出し元に返される | 独自のコンテキストウィンドウ。完全に独立 |

52| **通信** | メインエージェントにのみ結果を報告 | チームメンバーが互いに直接メッセージを送信 |

53| **調整** | メインエージェントがすべての作業を管理 | 自己調整を伴う共有タスクリスト |

54| **最適な用途** | 結果のみが重要な焦点を絞ったタスク | 議論と協力が必要な複雑な作業 |

55| **トークンコスト** | 低い:結果がメインコンテキストに要約されて返される | 高い:各チームメンバーが個別の Claude インスタンス |

56 

57結果を報告する必要がある迅速で焦点を絞ったワーカーが必要な場合は subagents を使用してください。チームメンバーが調査結果を共有し、互いに検証し、独立して調整する必要がある場合は、エージェントチームを使用してください。

58 

59## エージェントチームを有効にする

60 

61エージェントチームはデフォルトでは無効になっています。`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 環境変数を `1` に設定して有効にしてください。シェル環境または [settings.json](/ja/settings) を通じて設定できます。

62 

63```json settings.json theme={null}

64{

65 "env": {

66 "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"

67 }

68}

69```

70 

71## 最初のエージェントチームを開始する

72 

73エージェントチームを有効にした後、Claude に対してエージェントチームを作成するよう指示し、自然言語でタスクとチーム構成を説明してください。Claude がチームを作成し、チームメンバーを生成し、プロンプトに基づいて作業を調整します。

74 

75この例は、3 つの役割が独立しており、互いに待つことなく問題を探索できるため、うまく機能します。

76 

77```text theme={null}

78I'm designing a CLI tool that helps developers track TODO comments across

79their codebase. Create an agent team to explore this from different angles: one

80teammate on UX, one on technical architecture, one playing devil's advocate.

81```

82 

83その後、Claude は [共有タスクリスト](/ja/interactive-mode#task-list) を持つチームを作成し、各視点のチームメンバーを生成し、問題を探索させ、調査結果を統合し、完了時に [チームをクリーンアップ](#clean-up-the-team) しようとします。

84 

85リーダーのターミナルには、すべてのチームメンバーと彼らが取り組んでいる内容が表示されます。Shift+Down を使用してチームメンバーをサイクルして、直接メッセージを送信してください。最後のチームメンバーの後、Shift+Down はリーダーに戻ります。

86 

87各チームメンバーを独自の分割ペインに配置したい場合は、[表示モードを選択](#choose-a-display-mode)を参照してください。

88 

89## エージェントチームを制御する

90 

91リーダーに自然言語で実行したい内容を指示してください。チーム調整、タスク割り当て、および指示に基づいた委任を処理します。

92 

93### 表示モードを選択する

94 

95エージェントチームは 2 つの表示モードをサポートしています。

96 

97* **In-process**:すべてのチームメンバーがメインターミナル内で実行されます。Shift+Down を使用してチームメンバーをサイクルして、直接メッセージを入力してください。追加のセットアップなしで任意のターミナルで動作します。

98* **分割ペイン**:各チームメンバーが独自のペインを取得します。すべてのユーザーの出力を一度に表示でき、ペインをクリックして直接対話できます。tmux または iTerm2 が必要です。

99 

100<Note>

101 `tmux` には特定のオペレーティングシステムでの既知の制限があり、従来は macOS で最も効果的に動作します。iTerm2 で `tmux -CC` を使用することが、`tmux` への推奨エントリーポイントです。

102</Note>

103 

104デフォルトは `"auto"` で、既に tmux セッション内で実行している場合は分割ペインを使用し、そうでない場合は in-process を使用します。`"tmux"` 設定は分割ペインモードを有効にし、ターミナルに基づいて tmux または iTerm2 を使用するかどうかを自動検出します。オーバーライドするには、[`teammateMode`](/ja/settings#available-settings) を `~/.claude/settings.json` で設定してください。

105 

106```json theme={null}

107{

108 "teammateMode": "in-process"

109}

110```

111 

112単一セッションに対して in-process モードを強制するには、フラグとして渡してください。

113 

114```bash theme={null}

115claude --teammate-mode in-process

116```

117 

118分割ペインモードには、[tmux](https://github.com/tmux/tmux/wiki) または [`it2` CLI](https://github.com/mkusaka/it2) を備えた iTerm2 が必要です。手動でインストールするには、以下を実行してください。

119 

120* **tmux**:システムのパッケージマネージャーを通じてインストールしてください。プラットフォーム固有の手順については、[tmux wiki](https://github.com/tmux/tmux/wiki/Installing) を参照してください。

121* **iTerm2**:[`it2` CLI](https://github.com/mkusaka/it2) をインストールし、**iTerm2 → Settings → General → Magic → Enable Python API** で Python API を有効にしてください。

122 

123### チームメンバーとモデルを指定する

124 

125Claude はタスクに基づいて生成するチームメンバーの数を決定するか、正確に実行したい内容を指定できます。

126 

127```text theme={null}

128Create a team with 4 teammates to refactor these modules in parallel.

129Use Sonnet for each teammate.

130```

131 

132### チームメンバーのプラン承認を要求する

133 

134複雑またはリスクの高いタスクの場合、チームメンバーが実装前にプランを立てることを要求できます。チームメンバーはリーダーがアプローチを承認するまで、読み取り専用プランモードで動作します。

135 

136```text theme={null}

137Spawn an architect teammate to refactor the authentication module.

138Require plan approval before they make any changes.

139```

140 

141チームメンバーがプランを完了すると、リーダーにプラン承認リクエストを送信します。リーダーはプランをレビューして、承認するか、フィードバック付きで却下するかのいずれかを選択します。却下された場合、チームメンバーはプランモードのままで、フィードバックに基づいて修正し、再提出します。承認されると、チームメンバーはプランモードを終了し、実装を開始します。

142 

143リーダーは自律的に承認決定を下します。リーダーの判断に影響を与えるには、プロンプトで「テストカバレッジを含むプランのみを承認する」や「データベーススキーマを変更するプランを却下する」などの基準を指定してください。

144 

145### チームメンバーと直接通信する

146 

147各チームメンバーは、完全で独立した Claude Code セッションです。任意のチームメンバーに直接メッセージを送信して、追加の指示を与えたり、フォローアップの質問をしたり、アプローチをリダイレクトしたりできます。

148 

149* **In-process モード**:Shift+Down を使用してチームメンバーをサイクルして、メッセージを入力してください。Enter キーを押してチームメンバーのセッションを表示し、Escape キーを押して現在のターンを中断してください。Ctrl+T を押してタスクリストを切り替えてください。

150* **分割ペインモード**:チームメンバーのペインをクリックして、セッションと直接対話してください。各チームメンバーは独自のターミナルの完全なビューを持っています。

151 

152### タスクを割り当てて要求する

153 

154共有タスクリストはチーム全体の作業を調整します。リーダーがタスクを作成し、チームメンバーがそれらを処理します。タスクには 3 つの状態があります。保留中、進行中、完了。タスクは他のタスクに依存することもできます。未解決の依存関係を持つ保留中のタスクは、それらの依存関係が完了するまで要求できません。

155 

156リーダーはタスクを明示的に割り当てるか、チームメンバーが自己要求できます。

157 

158* **リーダーが割り当て**:リーダーにどのタスクをどのチームメンバーに与えるかを指示してください

159* **自己要求**:タスクを完了した後、チームメンバーは独立して次の未割り当て、ブロック解除されたタスクを選択します

160 

161タスク要求はファイルロックを使用して、複数のチームメンバーが同時に同じタスクを要求しようとするときの競合状態を防ぎます。

162 

163### チームメンバーをシャットダウンする

164 

165チームメンバーのセッションを適切に終了するには、以下を実行してください。

166 

167```text theme={null}

168Ask the researcher teammate to shut down

169```

170 

171リーダーはシャットダウンリクエストを送信します。チームメンバーは承認して適切に終了するか、説明付きで却下できます。

172 

173### チームをクリーンアップする

174 

175完了したら、リーダーにクリーンアップするよう指示してください。

176 

177```text theme={null}

178Clean up the team

179```

180 

181これにより、共有チームリソースが削除されます。リーダーがクリーンアップを実行すると、アクティブなチームメンバーをチェックし、まだ実行中の場合は失敗するため、最初にシャットダウンしてください。

182 

183<Warning>

184 常にリーダーを使用してクリーンアップしてください。チームメンバーはクリーンアップを実行しないでください。チームメンバーのチームコンテキストが正しく解決されない可能性があり、リソースが不整合な状態のままになる可能性があります。

185</Warning>

186 

187### hooks で品質ゲートを実施する

188 

189[hooks](/ja/hooks) を使用して、チームメンバーが作業を完了したときまたはタスクが作成または完了したときのルールを実施してください。

190 

191* [`TeammateIdle`](/ja/hooks#teammateidle):チームメンバーがアイドル状態になろうとしているときに実行されます。終了コード 2 でフィードバックを送信し、チームメンバーを動作させ続けてください。

192* [`TaskCreated`](/ja/hooks#taskcreated):タスクが作成されているときに実行されます。終了コード 2 で作成を防止し、フィードバックを送信してください。

193* [`TaskCompleted`](/ja/hooks#taskcompleted):タスクが完了としてマークされているときに実行されます。終了コード 2 で完了を防止し、フィードバックを送信してください。

194 

195## エージェントチームの動作方法

196 

197このセクションでは、エージェントチームの背後にあるアーキテクチャとメカニクスについて説明します。使用を開始したい場合は、上記の [エージェントチームを制御する](#control-your-agent-team) を参照してください。

198 

199### Claude がエージェントチームを開始する方法

200 

201エージェントチームが開始される方法は 2 つあります。

202 

203* **チームをリクエストする**:並列作業から利益を得るタスクを Claude に提供し、明示的にエージェントチームをリクエストしてください。Claude は指示に基づいてチームを作成します。

204* **Claude がチームを提案する**:Claude がタスクが並列作業から利益を得ると判断した場合、チームの作成を提案する可能性があります。進行する前に確認してください。

205 

206どちらの場合でも、制御は維持されます。Claude はあなたの承認なしにチームを作成しません。

207 

208### アーキテクチャ

209 

210エージェントチームは以下で構成されています。

211 

212| コンポーネント | 役割 |

213| :---------- | :----------------------------------------------- |

214| **チームリーダー** | チームを作成し、チームメンバーを生成し、作業を調整するメイン Claude Code セッション |

215| **チームメンバー** | 割り当てられたタスクで動作する個別の Claude Code インスタンス |

216| **タスクリスト** | チームメンバーが要求して完了する共有作業項目リスト |

217| **メールボックス** | エージェント間の通信用メッセージングシステム |

218 

219表示設定オプションについては、[表示モードを選択](#choose-a-display-mode)を参照してください。チームメンバーのメッセージはリーダーに自動的に到着します。

220 

221システムはタスク依存関係を自動的に管理します。チームメンバーが他のタスクが依存するタスクを完了すると、ブロックされたタスクは手動介入なしにブロック解除されます。

222 

223チームとタスクはローカルに保存されます。

224 

225* **チーム設定**:`~/.claude/teams/{team-name}/config.json`

226* **タスクリスト**:`~/.claude/tasks/{team-name}/`

227 

228Claude Code はチームを作成するときにこれらの両方を自動的に生成し、チームメンバーが参加、アイドル状態になる、または離脱するときに更新します。チーム設定には、セッション ID と tmux ペイン ID などのランタイム状態が含まれているため、手動で編集したり、事前に作成したりしないでください。次の状態更新時に変更が上書きされます。

229 

230再利用可能なチームメンバーロールを定義するには、代わりに [subagent 定義を使用](#use-subagent-definitions-for-teammates) してください。

231 

232チーム設定には、各チームメンバーの名前、エージェント ID、およびエージェントタイプを含む `members` 配列が含まれています。チームメンバーはこのファイルを読み取って、他のチームメンバーを発見できます。

233 

234プロジェクトレベルのチーム設定に相当するものはありません。プロジェクトディレクトリ内の `.claude/teams/teams.json` のようなファイルは設定として認識されません。Claude はそれを通常のファイルとして扱います。

235 

236### チームメンバーに subagent 定義を使用する

237 

238チームメンバーを生成するときに、任意の [subagent スコープ](/ja/sub-agents#choose-the-subagent-scope)(プロジェクト、ユーザー、プラグイン、または CLI 定義)から [subagent](/ja/sub-agents) タイプを参照できます。これにより、セキュリティレビュアーやテストランナーなどのロールを 1 回定義し、委任された subagent とエージェントチームチームメンバーの両方として再利用できます。

239 

240subagent 定義を使用するには、Claude にチームメンバーを生成するよう指示するときに名前で言及してください。

241 

242```text theme={null}

243Spawn a teammate using the security-reviewer agent type to audit the auth module.

244```

245 

246チームメンバーはその定義の `tools` 許可リストと `model` を尊重し、定義の本体はチームメンバーのシステムプロンプトに追加の指示として追加されます。チーム調整ツール(`SendMessage` やタスク管理ツール)は、`tools` が他のツールを制限している場合でも、チームメンバーが常に利用できます。

247 

248<Note>

249 subagent 定義の `skills` と `mcpServers` frontmatter フィールドは、その定義がチームメンバーとして実行される場合は適用されません。チームメンバーは、通常のセッションと同じように、プロジェクトおよびユーザー設定から skills と MCP servers をロードします。

250</Note>

251 

252### 権限

253 

254チームメンバーはリーダーの権限設定で開始します。リーダーが `--dangerously-skip-permissions` で実行する場合、すべてのチームメンバーも同様に実行します。生成後、個別のチームメンバーモードを変更できますが、生成時にチームメンバーごとのモードを設定することはできません。

255 

256### コンテキストと通信

257 

258各チームメンバーは独自のコンテキストウィンドウを持っています。生成されると、チームメンバーは通常のセッションと同じプロジェクトコンテキストをロードします。CLAUDE.md、MCP servers、および skills。また、リーダーからの生成プロンプトを受け取ります。リーダーの会話履歴は引き継がれません。

259 

260**チームメンバーが情報を共有する方法:**

261 

262* **自動メッセージ配信**:チームメンバーがメッセージを送信すると、受信者に自動的に配信されます。リーダーは更新をポーリングする必要はありません。

263* **アイドル通知**:チームメンバーが完了して停止すると、リーダーに自動的に通知します。

264* **共有タスクリスト**:すべてのエージェントはタスクステータスを表示でき、利用可能な作業を要求できます。

265* **チームメンバーメッセージング**:その名前で特定のチームメンバーにメッセージを送信します。全員に到達するには、受信者ごとに 1 つのメッセージを送信してください。

266 

267リーダーは生成時に各チームメンバーに名前を割り当て、任意のチームメンバーはその名前で他のチームメンバーにメッセージを送信できます。後のプロンプトで参照できる予測可能な名前を取得するには、生成指示でリーダーに各チームメンバーを何と呼ぶかを指示してください。

268 

269### トークン使用量

270 

271エージェントチームは単一セッションよりも大幅に多くのトークンを使用します。各チームメンバーは独自のコンテキストウィンドウを持ち、トークン使用量はアクティブなチームメンバーの数でスケールします。調査、レビュー、および新機能作業の場合、追加のトークンは通常価値があります。ルーチンタスクの場合、単一セッションがより費用効果的です。使用ガイダンスについては、[エージェントチームトークンコスト](/ja/costs#agent-team-token-costs)を参照してください。

272 

273## ユースケース例

274 

275これらの例は、エージェントチームが並列探索が価値を追加するタスクをどのように処理するかを示しています。

276 

277### 並列コードレビューを実行する

278 

279単一のレビュアーは一度に 1 つのタイプの問題に傾く傾向があります。レビュー基準を独立したドメインに分割することで、セキュリティ、パフォーマンス、およびテストカバレッジがすべて同時に徹底的に注意を受けます。プロンプトは各チームメンバーに異なるレンズを割り当てるため、重複しません。

280 

281```text theme={null}

282Create an agent team to review PR #142. Spawn three reviewers:

283- One focused on security implications

284- One checking performance impact

285- One validating test coverage

286Have them each review and report findings.

287```

288 

289各レビュアーは同じ PR から動作しますが、異なるフィルターを適用します。リーダーは完了後、3 つすべてにわたって調査結果を統合します。

290 

291### 競合する仮説で調査する

292 

293根本原因が不明な場合、単一のエージェントは 1 つのもっともらしい説明を見つけて停止する傾向があります。プロンプトはチームメンバーを明示的に敵対的にすることでこれと戦います。各チームメンバーの仕事は、独自の理論を調査するだけでなく、他の理論に異議を唱えることです。

294 

295```text theme={null}

296Users report the app exits after one message instead of staying connected.

297Spawn 5 agent teammates to investigate different hypotheses. Have them talk to

298each other to try to disprove each other's theories, like a scientific

299debate. Update the findings doc with whatever consensus emerges.

300```

301 

302議論構造はここでの重要なメカニズムです。順序付き調査はアンカリングに悩まされます。1 つの理論が探索されると、その後の調査はそれに向かってバイアスされます。

303 

304複数の独立した調査官が互いに積極的に反証しようとしている場合、生き残る理論は実際の根本原因である可能性がはるかに高くなります。

305 

306## ベストプラクティス

307 

308### チームメンバーに十分なコンテキストを提供する

309 

310チームメンバーはプロジェクトコンテキスト(CLAUDE.md、MCP servers、および skills を含む)を自動的にロードしますが、リーダーの会話履歴は継承しません。詳細については、[コンテキストと通信](#context-and-communication)を参照してください。生成プロンプトにタスク固有の詳細を含めてください。

311 

312```text theme={null}

313Spawn a security reviewer teammate with the prompt: "Review the authentication module

314at src/auth/ for security vulnerabilities. Focus on token handling, session

315management, and input validation. The app uses JWT tokens stored in

316httpOnly cookies. Report any issues with severity ratings."

317```

318 

319### 適切なチームサイズを選択する

320 

321チームメンバーの数に厳しい制限はありませんが、実際の制約が適用されます。

322 

323* **トークンコストは線形にスケール**:各チームメンバーは独自のコンテキストウィンドウを持ち、独立してトークンを消費します。詳細については、[エージェントチームトークンコスト](/ja/costs#agent-team-token-costs)を参照してください。

324* **調整オーバーヘッドが増加**:より多くのチームメンバーは、より多くの通信、タスク調整、および競合の可能性を意味します

325* **収穫逓減**:ある時点を超えると、追加のチームメンバーは作業を比例的に高速化しません

326 

327ほとんどのワークフローでは、3~5 人のチームメンバーで開始してください。これは並列作業と管理可能な調整のバランスを取ります。このガイドの例では、3~5 人のチームメンバーを使用しています。その範囲がさまざまなタスクタイプ全体でうまく機能するためです。

328 

329チームメンバーあたり 5~6 個の [タスク](/ja/agent-teams#architecture) を持つことで、過度なコンテキストスイッチングなしに誰もが生産的に保たれます。15 個の独立したタスクがある場合、3 人のチームメンバーが良い出発点です。

330 

331作業が本当にチームメンバーが同時に動作することから利益を得る場合にのみスケールアップしてください。3 人の焦点を絞ったチームメンバーは、5 人の散らばったチームメンバーよりもしばしば優れています。

332 

333### タスクを適切にサイズ設定する

334 

335* **小さすぎる**:調整オーバーヘッドが利益を超える

336* **大きすぎる**:チームメンバーはチェックインなしで長時間動作し、無駄な努力のリスクが増加します

337* **ちょうど良い**:関数、テストファイル、またはレビューなど、明確な成果物を生成する自己完結型ユニット

338 

339<Tip>

340 リーダーは作業をタスクに分割し、チームメンバーに自動的に割り当てます。十分なタスクを作成していない場合は、作業をより小さな部分に分割するよう指示してください。チームメンバーあたり 5~6 個のタスクを持つことで、誰もが生産的に保たれ、誰かが立ち往生した場合、リーダーが作業を再割り当てできます。

341</Tip>

342 

343### チームメンバーが完了するまで待つ

344 

345時々、リーダーはチームメンバーを待つ代わりに、タスク自体を実装し始めます。これに気付いた場合は、以下を実行してください。

346 

347```text theme={null}

348Wait for your teammates to complete their tasks before proceeding

349```

350 

351### 調査とレビューから開始する

352 

353エージェントチームが初めての場合は、明確な境界があり、コードを書く必要がないタスクから開始してください。PR をレビューする、ライブラリを調査する、またはバグを調査します。これらのタスクは、並列実装に伴う調整の課題なしに、並列探索の価値を示しています。

354 

355### ファイルの競合を回避する

356 

3572 人のチームメンバーが同じファイルを編集すると、上書きが発生します。作業を分割して、各チームメンバーが異なるファイルセットを所有するようにしてください。

358 

359### 監視と操舵

360 

361チームメンバーの進捗をチェックし、機能していないアプローチをリダイレクトし、調査結果が入ってくるにつれて統合してください。チームを長時間無人で実行させると、無駄な努力のリスクが増加します。

362 

363## トラブルシューティング

364 

365### チームメンバーが表示されない

366 

367Claude にチームを作成するよう指示した後、チームメンバーが表示されない場合は、以下を実行してください。

368 

369* In-process モードでは、チームメンバーは既に実行中ですが、表示されない可能性があります。Shift+Down を押してアクティブなチームメンバーをサイクルしてください。

370* Claude に提供したタスクがチームを保証するのに十分複雑であることを確認してください。Claude はタスクに基づいてチームメンバーを生成するかどうかを決定します。

371* 明示的に分割ペインをリクエストした場合は、tmux がインストールされ、PATH で利用可能であることを確認してください。

372 ```bash theme={null}

373 which tmux

374 ```

375* iTerm2 の場合、`it2` CLI がインストールされ、Python API が iTerm2 の設定で有効になっていることを確認してください。

376 

377### 権限プロンプトが多すぎる

378 

379チームメンバーの権限リクエストはリーダーにバブルアップし、摩擦を生じさせる可能性があります。チームメンバーを生成する前に、[権限設定](/ja/permissions)で一般的な操作を事前承認して、中断を減らしてください。

380 

381### チームメンバーがエラーで停止する

382 

383チームメンバーはエラーが発生した後、回復する代わりに停止する可能性があります。In-process モードで Shift+Down を使用するか、分割モードでペインをクリックして出力を確認し、以下のいずれかを実行してください。

384 

385* 直接追加の指示を与える

386* 作業を続行するために置き換えチームメンバーを生成する

387 

388### リーダーが作業完了前にシャットダウンする

389 

390リーダーは、すべてのタスクが実際に完了する前に、チームが完了したと判断する可能性があります。これが発生した場合は、続行するよう指示してください。また、リーダーが委任する代わりに作業を開始する場合は、チームメンバーが完了するまで待つようリーダーに指示することもできます。

391 

392### 孤立した tmux セッション

393 

394チームが終了した後、tmux セッションが持続する場合、完全にクリーンアップされていない可能性があります。セッションをリストして、チームによって作成されたセッションを終了してください。

395 

396```bash theme={null}

397tmux ls

398tmux kill-session -t <session-name>

399```

400 

401## 制限事項

402 

403エージェントチームは実験的です。注意すべき現在の制限事項は以下の通りです。

404 

405* **In-process チームメンバーでのセッション再開なし**:`/resume` と `/rewind` は in-process チームメンバーを復元しません。セッションを再開した後、リーダーは存在しなくなったチームメンバーにメッセージを送信しようとする可能性があります。これが発生した場合は、リーダーに新しいチームメンバーを生成するよう指示してください。

406* **タスクステータスが遅延する可能性**:チームメンバーはタスクを完了としてマークできず、依存タスクをブロックすることがあります。タスクが立ち往生しているように見える場合は、作業が実際に完了しているかどうかを確認し、タスクステータスを手動で更新するか、リーダーにチームメンバーをナッジするよう指示してください。

407* **シャットダウンが遅い可能性**:チームメンバーは現在のリクエストまたはツール呼び出しを完了してからシャットダウンし、時間がかかる可能性があります。

408* **セッションあたり 1 つのチーム**:リーダーは一度に 1 つのチームのみを管理できます。新しいチームを開始する前に、現在のチームをクリーンアップしてください。

409* **ネストされたチームなし**:チームメンバーは独自のチームまたはチームメンバーを生成できません。リーダーのみがチームを管理できます。

410* **リーダーは固定**:チームを作成するセッションは、その生涯のリーダーです。チームメンバーをリーダーに昇格させたり、リーダーシップを譲渡したりすることはできません。

411* **権限は生成時に設定**:すべてのチームメンバーはリーダーの権限モードで開始します。生成後に個別のチームメンバーモードを変更できますが、生成時にチームメンバーごとのモードを設定することはできません。

412* **分割ペインには tmux または iTerm2 が必要**:デフォルトの in-process モードは任意のターミナルで動作します。分割ペインモードは VS Code の統合ターミナル、Windows Terminal、または Ghostty ではサポートされていません。

413 

414<Tip>

415 **`CLAUDE.md` は正常に動作**:チームメンバーは作業ディレクトリから `CLAUDE.md` ファイルを読み取ります。これを使用して、プロジェクト固有のガイダンスをすべてのチームメンバーに提供してください。

416</Tip>

417 

418## 次のステップ

419 

420並列作業と委任の関連アプローチを探索してください。

421 

422* **軽量委任**:[subagents](/ja/sub-agents) はセッション内で調査または検証用のヘルパーエージェントを生成し、エージェント間調整が必要ないタスクに適しています

423* **手動並列セッション**:[Git worktrees](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) を使用すると、自動チーム調整なしで複数の Claude Code セッションを自分で実行できます

424* **アプローチを比較**:[subagent とエージェントチーム](/ja/features-overview#compare-similar-features)の比較を参照して、並べて比較してください

amazon-bedrock.md +589 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Amazon Bedrock 上の Claude Code

6 

7> Amazon Bedrock を通じた Claude Code の設定方法(セットアップ、IAM 設定、トラブルシューティングを含む)について学習します。

8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79export const Experiment = ({flag, treatment, children}) => {

80 const VID_KEY = 'exp_vid';

81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

82 const fnv1a = s => {

83 let h = 0x811c9dc5;

84 for (let i = 0; i < s.length; i++) {

85 h ^= s.charCodeAt(i);

86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

87 }

88 return h >>> 0;

89 };

90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

91 const [decision] = useState(() => {

92 const params = new URLSearchParams(location.search);

93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

94 const force = params.get('gb-force');

95 if (force) {

96 for (const p of force.split(',')) {

97 const [k, v] = p.split(':');

98 if (k === flag) return {

99 variant: v || 'treatment',

100 track: false

101 };

102 }

103 }

104 if (navigator.globalPrivacyControl) {

105 return {

106 variant: 'control',

107 track: false

108 };

109 }

110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

111 if (prefsMatch) {

112 try {

113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

114 return {

115 variant: 'control',

116 track: false

117 };

118 }

119 } catch {

120 return {

121 variant: 'control',

122 track: false

123 };

124 }

125 } else {

126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

127 if (!country || CONSENT_COUNTRIES.has(country)) {

128 return {

129 variant: 'control',

130 track: false

131 };

132 }

133 }

134 let vid;

135 try {

136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

137 if (ajsMatch) {

138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

139 } else {

140 vid = localStorage.getItem(VID_KEY);

141 if (!vid) {

142 vid = crypto.randomUUID();

143 }

144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

145 }

146 try {

147 localStorage.setItem(VID_KEY, vid);

148 } catch {}

149 } catch {

150 return {

151 variant: 'control',

152 track: false

153 };

154 }

155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

156 return {

157 variant,

158 track: true,

159 vid

160 };

161 });

162 useEffect(() => {

163 if (!decision.track) return;

164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

165 method: 'POST',

166 headers: {

167 'Content-Type': 'application/json',

168 'x-service-name': 'claude_code_docs'

169 },

170 body: JSON.stringify({

171 events: [{

172 event_type: 'GrowthbookExperimentEvent',

173 event_data: {

174 device_id: decision.vid,

175 anonymous_id: decision.vid,

176 timestamp: new Date().toISOString(),

177 experiment_id: flag,

178 variation_id: decision.variant === 'treatment' ? 1 : 0,

179 environment: 'production'

180 }

181 }]

182 }),

183 keepalive: true

184 }).catch(() => {});

185 }, []);

186 return decision.variant === 'treatment' ? treatment : children;

187};

188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="bedrock" />} />

190 

191## 前提条件

192 

193Claude Code を Bedrock で設定する前に、以下を確認してください。

194 

195* Bedrock アクセスが有効になっている AWS アカウント

196* Bedrock で目的の Claude モデル(例:Claude Sonnet 4.6)へのアクセス

197* AWS CLI がインストールされ、設定されていること(オプション - 認証情報を取得する別のメカニズムがない場合のみ必要)

198* 適切な IAM 権限

199 

200Bedrock 認証情報を使用してサインインするには、以下の [Bedrock でサインイン](#bedrock-でサインイン)に従ってください。チーム全体に Claude Code をデプロイするには、[手動セットアップ](#手動でセットアップ)の手順を使用し、ロールアウト前に[モデルバージョンをピン留め](#4-モデルバージョンをピン留め)してください。

201 

202## Bedrock でサインイン

203 

204AWS 認証情報を持っていて、Bedrock を通じて Claude Code の使用を開始したい場合、ログインウィザードがそれをガイドします。AWS 側の前提条件はアカウントごとに 1 回完了します。ウィザードは Claude Code 側を処理します。

205 

206<Steps>

207 <Step title="AWS アカウントで Anthropic モデルを有効にする">

208 [Amazon Bedrock コンソール](https://console.aws.amazon.com/bedrock/)で、モデルカタログを開き、Anthropic モデルを選択して、ユースケースフォームを送信します。送信直後にアクセスが付与されます。AWS Organizations については[ユースケースの詳細を送信](#1-ユースケースの詳細を送信)を、権限については [IAM 設定](#iam-設定)を参照してください。

209 </Step>

210 

211 <Step title="Claude Code を開始して Bedrock を選択する">

212 `claude` を実行します。ログインプロンプトで、**3rd-party platform**、次に **Amazon Bedrock** を選択します。

213 </Step>

214 

215 <Step title="ウィザードプロンプトに従う">

216 AWS に認証する方法を選択します。`~/.aws` ディレクトリから検出された AWS プロファイル、Bedrock API キー、アクセスキーとシークレット、または環境内に既にある認証情報です。ウィザードはリージョンを取得し、アカウントが呼び出せる Claude モデルを確認し、それらをピン留めできます。結果は [user settings file](/ja/settings) の `env` ブロックに保存されるため、環境変数を自分でエクスポートする必要はありません。

217 </Step>

218</Steps>

219 

220サインイン後、いつでも `/setup-bedrock` を実行してウィザードを再度開き、認証情報、リージョン、またはモデルピンを変更できます。

221 

222## 手動でセットアップ

223 

224ウィザードの代わりに環境変数を通じて Bedrock を設定するには、例えば CI またはスクリプト化されたエンタープライズロールアウトで、以下の手順に従ってください。

225 

226### 1. ユースケースの詳細を送信

227 

228Anthropic モデルの初回ユーザーは、モデルを呼び出す前にユースケースの詳細を送信する必要があります。これはアカウントごとに 1 回行われます。

229 

2301. 以下で説明する適切な IAM 権限があることを確認してください

2312. [Amazon Bedrock コンソール](https://console.aws.amazon.com/bedrock/)に移動します

2323. **モデルカタログ**から Anthropic モデルを選択します

2334. ユースケースフォームを完成させます。送信直後にアクセスが付与されます。

234 

235AWS Organizations を使用する場合、[`PutUseCaseForModelAccess` API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_PutUseCaseForModelAccess.html) を使用して管理アカウントからフォームを 1 回送信できます。この呼び出しには `bedrock:PutUseCaseForModelAccess` IAM 権限が必要です。承認は子アカウントに自動的に拡張されます。

236 

237### 2. AWS 認証情報を設定

238 

239Claude Code は、デフォルトの AWS SDK 認証情報チェーンを使用します。以下のいずれかの方法を使用して認証情報を設定してください。

240 

241**オプション A:AWS CLI 設定**

242 

243```bash theme={null}

244aws configure

245```

246 

247**オプション B:環境変数(アクセスキー)**

248 

249```bash theme={null}

250export AWS_ACCESS_KEY_ID=your-access-key-id

251export AWS_SECRET_ACCESS_KEY=your-secret-access-key

252export AWS_SESSION_TOKEN=your-session-token

253```

254 

255**オプション C:環境変数(SSO プロファイル)**

256 

257```bash theme={null}

258aws sso login --profile=<your-profile-name>

259 

260export AWS_PROFILE=your-profile-name

261```

262 

263**オプション D:AWS Management Console 認証情報**

264 

265```bash theme={null}

266aws login

267```

268 

269`aws login` について[詳しく学習](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html)してください。

270 

271**オプション E:Bedrock API キー**

272 

273```bash theme={null}

274export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key

275```

276 

277Bedrock API キーは、完全な AWS 認証情報を必要としない、より簡単な認証方法を提供します。[Bedrock API キーについて詳しく学習](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)してください。

278 

279#### 高度な認証情報設定

280 

281Claude Code は、AWS SSO および企業 ID プロバイダーの自動認証情報更新をサポートしています。これらの設定を Claude Code 設定ファイルに追加してください(ファイルの場所については [Settings](/ja/settings) を参照)。

282 

283Claude Code が AWS 認証情報の有効期限が切れていることを検出した場合(ローカルのタイムスタンプに基づくか、Bedrock が認証情報エラーを返した場合)、設定された `awsAuthRefresh` および/または `awsCredentialExport` コマンドを自動的に実行して、リクエストを再試行する前に新しい認証情報を取得します。

284 

285##### 設定例

286 

287```json theme={null}

288{

289 "awsAuthRefresh": "aws sso login --profile myprofile",

290 "env": {

291 "AWS_PROFILE": "myprofile"

292 }

293}

294```

295 

296##### 設定の説明

297 

298**`awsAuthRefresh`**:`.aws` ディレクトリを変更するコマンド(認証情報、SSO キャッシュ、または設定ファイルの更新など)に使用します。コマンドの出力はユーザーに表示されますが、対話的な入力はサポートされていません。これは、CLI が URL またはコードを表示し、ブラウザで認証を完了するブラウザベースの SSO フローに適しています。

299 

300**`awsCredentialExport`**:`.aws` を変更できず、認証情報を直接返す必要がある場合にのみ使用します。出力はサイレントにキャプチャされ、ユーザーに表示されません。コマンドは次の形式で JSON を出力する必要があります。

301 

302```json theme={null}

303{

304 "Credentials": {

305 "AccessKeyId": "value",

306 "SecretAccessKey": "value",

307 "SessionToken": "value"

308 }

309}

310```

311 

312### 3. Claude Code を設定

313 

314Bedrock を有効にするために、以下の環境変数を設定します。

315 

316```bash theme={null}

317# Bedrock 統合を有効にする

318export CLAUDE_CODE_USE_BEDROCK=1

319export AWS_REGION=us-east-1 # または希望するリージョン

320 

321# オプション:小型/高速モデル(Haiku)のリージョンをオーバーライド

322# Bedrock Mantle にも適用されます。

323export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2

324 

325# オプション:カスタムエンドポイントまたはゲートウェイ用に Bedrock エンドポイント URL をオーバーライド

326# export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com

327```

328 

329Claude Code で Bedrock を有効にする場合は、以下に注意してください。

330 

331* `AWS_REGION` は必須の環境変数です。Claude Code はこの設定について `.aws` 設定ファイルから読み込みません。

332* Bedrock を使用する場合、`/login` および `/logout` コマンドは無効になります。認証は AWS 認証情報を通じて処理されるためです。

333* 他のプロセスに漏らしたくない `AWS_PROFILE` などの環境変数に設定ファイルを使用できます。詳細については [Settings](/ja/settings) を参照してください。

334 

335### 4. モデルバージョンをピン留め

336 

337<Warning>

338 複数のユーザーにデプロイする場合は、特定のモデルバージョンをピン留めしてください。ピン留めなしでは、`sonnet` や `opus` などのモデルエイリアスは最新バージョンに解決されます。これは、Anthropic がアップデートをリリースしたときに、Bedrock アカウントでまだ利用できない可能性があります。Claude Code は、最新が利用できない場合、スタートアップで[前のバージョンにフォールバック](#スタートアップモデルチェック)しますが、ピン留めするとユーザーが新しいモデルに移行するタイミングを制御できます。

339</Warning>

340 

341これらの環境変数を特定の Bedrock モデル ID に設定します。

342 

343`ANTHROPIC_DEFAULT_OPUS_MODEL` なしでは、Bedrock の `opus` エイリアスは Opus 4.6 に解決されます。最新モデルを使用するには、Opus 4.7 ID に設定します。

344 

345```bash theme={null}

346export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-7'

347export ANTHROPIC_DEFAULT_SONNET_MODEL='us.anthropic.claude-sonnet-4-6'

348export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

349```

350 

351これらの変数は、クロスリージョン推論プロファイル ID(`us.` プレフィックス付き)を使用します。別のリージョンプレフィックスまたはアプリケーション推論プロファイルを使用する場合は、それに応じて調整してください。現在および従来のモデル ID については、[Models overview](https://platform.claude.com/docs/en/about-claude/models/overview) を参照してください。環境変数の完全なリストについては、[Model configuration](/ja/model-config#pin-models-for-third-party-deployments) を参照してください。

352 

353ピン留め変数が設定されていない場合、Claude Code はこれらのデフォルトモデルを使用します。

354 

355| モデルタイプ | デフォルト値 |

356| :------- | :--------------------------------------------- |

357| プライマリモデル | `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |

358| 小型/高速モデル | `us.anthropic.claude-haiku-4-5-20251001-v1:0` |

359 

360モデルをさらにカスタマイズするには、以下のいずれかの方法を使用します。

361 

362```bash theme={null}

363# 推論プロファイル ID を使用

364export ANTHROPIC_MODEL='global.anthropic.claude-sonnet-4-6'

365export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

366 

367# アプリケーション推論プロファイル ARN を使用

368export ANTHROPIC_MODEL='arn:aws:bedrock:us-east-2:your-account-id:application-inference-profile/your-model-id'

369 

370# オプション:必要に応じてプロンプトキャッシングを無効にする

371export DISABLE_PROMPT_CACHING=1

372 

373# オプション:デフォルトの 5 分の代わりに 1 時間のプロンプトキャッシュ TTL をリクエスト

374export ENABLE_PROMPT_CACHING_1H=1

375```

376 

377<Note>[プロンプトキャッシング](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)は、すべてのリージョンで利用できない場合があります。1 時間の TTL でのキャッシュ書き込みは、5 分の書き込みよりも高いレートで課金されます。</Note>

378 

379#### 各モデルバージョンを推論プロファイルにマップ

380 

381`ANTHROPIC_DEFAULT_*_MODEL` 環境変数は、モデルファミリーごとに 1 つの推論プロファイルを設定します。組織が同じファミリーの複数のバージョンを `/model` ピッカーで公開し、それぞれを独自のアプリケーション推論プロファイル ARN にルーティングする必要がある場合は、代わりに [settings file](/ja/settings#settings-files) の `modelOverrides` 設定を使用してください。

382 

383この例は、4 つの Opus バージョンを異なる ARN にマップするため、ユーザーは組織の推論プロファイルをバイパスすることなく、それらを切り替えることができます。

384 

385```json theme={null}

386{

387 "modelOverrides": {

388 "claude-opus-4-7": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-47-prod",

389 "claude-opus-4-6": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-46-prod",

390 "claude-opus-4-5-20251101": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-45-prod",

391 "claude-opus-4-1-20250805": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-41-prod"

392 }

393}

394```

395 

396ユーザーが `/model` でこれらのバージョンのいずれかを選択すると、Claude Code はマップされた ARN で Bedrock を呼び出します。オーバーライドのないバージョンは、組み込みの Bedrock モデル ID またはスタートアップで検出された一致する推論プロファイルにフォールバックします。オーバーライドが `availableModels` および他のモデル設定とどのように相互作用するかについては、[Override model IDs per version](/ja/model-config#override-model-ids-per-version) を参照してください。

397 

398## スタートアップモデルチェック

399 

400Claude Code が Bedrock で設定されて起動すると、使用するモデルがアカウントでアクセス可能であることを確認します。このチェックには Claude Code v2.1.94 以降が必要です。

401 

402現在の Claude Code デフォルトより古いモデルバージョンをピン留めしていて、アカウントが新しいバージョンを呼び出せる場合、Claude Code はピンを更新するよう促します。受け入れると、新しいモデル ID が [user settings file](/ja/settings) に書き込まれ、Claude Code が再起動されます。拒否すると、次のデフォルトバージョン変更まで記憶されます。[アプリケーション推論プロファイル ARN](#各モデルバージョンを推論プロファイルにマップ)を指す PIN は、管理者によって管理されるため、スキップされます。

403 

404モデルをピン留めしていなくて、現在のデフォルトがアカウントで利用できない場合、Claude Code は現在のセッションで前のバージョンにフォールバックし、通知を表示します。フォールバックは永続化されません。Bedrock アカウントで新しいモデルを有効にするか、[バージョンをピン留め](#4-モデルバージョンをピン留め)して選択を永続化してください。

405 

406## IAM 設定

407 

408Claude Code に必要な権限を持つ IAM ポリシーを作成します。

409 

410```json theme={null}

411{

412 "Version": "2012-10-17",

413 "Statement": [

414 {

415 "Sid": "AllowModelAndInferenceProfileAccess",

416 "Effect": "Allow",

417 "Action": [

418 "bedrock:InvokeModel",

419 "bedrock:InvokeModelWithResponseStream",

420 "bedrock:ListInferenceProfiles",

421 "bedrock:GetInferenceProfile"

422 ],

423 "Resource": [

424 "arn:aws:bedrock:*:*:inference-profile/*",

425 "arn:aws:bedrock:*:*:application-inference-profile/*",

426 "arn:aws:bedrock:*:*:foundation-model/*"

427 ]

428 },

429 {

430 "Sid": "AllowMarketplaceSubscription",

431 "Effect": "Allow",

432 "Action": [

433 "aws-marketplace:ViewSubscriptions",

434 "aws-marketplace:Subscribe"

435 ],

436 "Resource": "*",

437 "Condition": {

438 "StringEquals": {

439 "aws:CalledViaLast": "bedrock.amazonaws.com"

440 }

441 }

442 }

443 ]

444}

445```

446 

447より制限的な権限の場合は、リソースを特定の推論プロファイル ARN に制限できます。

448 

449`bedrock:GetInferenceProfile` により、Claude Code は[アプリケーション推論プロファイル ARN](#map-each-model-version-to-an-inference-profile) をそのバッキング基盤モデルに解決でき、そのモデルに対して正しいリクエスト形状を選択するために使用されます。

450 

451トークンにこの権限がない場合、Claude Code は代替形状で 1 回再試行することで自動的に復旧するため、リクエストは成功しますが、新しいモデルが追加されるたびに追加のラウンドトリップが発生します。権限を付与することで再試行を回避できます。これは `AWS_BEARER_TOKEN_BEDROCK` デプロイメントに最も頻繁に適用され、トークンのポリシーは通常、完全な IAM ロールよりも狭くなります。

452 

453詳細については、[Bedrock IAM documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/security-iam.html) を参照してください。

454 

455<Note>

456 コスト追跡とアクセス制御を簡素化するために、Claude Code 用の専用 AWS アカウントを作成してください。

457</Note>

458 

459## 1M トークンコンテキストウィンドウ

460 

461Claude Opus 4.7、Opus 4.6、および Sonnet 4.6 は、Amazon Bedrock で [1M トークンコンテキストウィンドウ](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window)をサポートしています。Claude Code は、1M モデルバリアントを選択すると、拡張コンテキストウィンドウを自動的に有効にします。

462 

463[セットアップウィザード](#bedrock-でサインイン)は、モデルをピン留めするときに 1M コンテキストオプションを提供します。手動でピン留めされたモデルの代わりに有効にするには、モデル ID に `[1m]` を追加します。詳細については、[Pin models for third-party deployments](/ja/model-config#pin-models-for-third-party-deployments) を参照してください。

464 

465## AWS Guardrails

466 

467[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) を使用すると、Claude Code のコンテンツフィルタリングを実装できます。[Amazon Bedrock コンソール](https://console.aws.amazon.com/bedrock/)で Guardrail を作成し、バージョンを公開してから、Guardrail ヘッダーを [settings file](/ja/settings) に追加します。クロスリージョン推論プロファイルを使用している場合は、Guardrail でクロスリージョン推論を有効にしてください。

468 

469設定例:

470 

471```json theme={null}

472{

473 "env": {

474 "ANTHROPIC_CUSTOM_HEADERS": "X-Amzn-Bedrock-GuardrailIdentifier: your-guardrail-id\nX-Amzn-Bedrock-GuardrailVersion: 1"

475 }

476}

477```

478 

479## Mantle エンドポイントを使用

480 

481Mantle は、Bedrock Invoke API ではなく、ネイティブ Anthropic API シェイプを通じて Claude モデルを提供する Amazon Bedrock エンドポイントです。同じ AWS 認証情報、IAM 権限、および `awsAuthRefresh` 設定を使用します。このページで前述したものです。

482 

483<Note>

484 Mantle には Claude Code v2.1.94 以降が必要です。確認するには `claude --version` を実行してください。

485</Note>

486 

487### Mantle を有効にする

488 

489AWS 認証情報が既に設定されている場合、`CLAUDE_CODE_USE_MANTLE` を設定して、リクエストを Mantle エンドポイントにルーティングします。

490 

491```bash theme={null}

492export CLAUDE_CODE_USE_MANTLE=1

493export AWS_REGION=us-east-1

494```

495 

496Claude Code は `AWS_REGION` からエンドポイント URL を構築します。カスタムエンドポイントまたはゲートウェイの場合、`ANTHROPIC_BEDROCK_MANTLE_BASE_URL` を設定してオーバーライドします。

497 

498Claude Code 内で `/status` を実行して確認します。Mantle がアクティブな場合、プロバイダー行は `Amazon Bedrock (Mantle)` を表示します。

499 

500### Mantle モデルを選択

501 

502Mantle は `anthropic.` で始まり、バージョンサフィックスのないモデル ID を使用します。例えば `anthropic.claude-haiku-4-5`。アカウントで利用可能なモデルは、組織に付与されたものに依存します。追加のモデル ID は AWS からのオンボーディング資料に記載されています。AWS アカウントチームに連絡して、許可リストされたモデルへのアクセスをリクエストしてください。

503 

504`--model` フラグまたは Claude Code 内の `/model` でモデルを設定します。

505 

506```bash theme={null}

507claude --model anthropic.claude-haiku-4-5

508```

509 

510### Mantle を Invoke API と並行して実行

511 

512Mantle で利用可能なモデルは、今日使用するすべてのモデルを含まない場合があります。`CLAUDE_CODE_USE_BEDROCK` と `CLAUDE_CODE_USE_MANTLE` の両方を設定すると、Claude Code は同じセッションから両方のエンドポイントを呼び出せます。Mantle 形式に一致するモデル ID は Mantle にルーティングされ、他のすべてのモデル ID は Bedrock Invoke API に移動します。

513 

514```bash theme={null}

515export CLAUDE_CODE_USE_BEDROCK=1

516export CLAUDE_CODE_USE_MANTLE=1

517```

518 

519Mantle モデルを `/model` ピッカーに表示するには、[settings file](/ja/settings) の `availableModels` にその ID をリストします。この設定はピッカーをリストされたエントリに制限するため、保持したいすべてのエイリアスを含めます。

520 

521```json theme={null}

522{

523 "availableModels": ["opus", "sonnet", "haiku", "anthropic.claude-haiku-4-5"]

524}

525```

526 

527`anthropic.` プレフィックス付きのエントリはカスタムピッカーオプションとして追加され、Mantle にルーティングされます。`anthropic.claude-haiku-4-5` をアカウントに付与されたモデル ID に置き換えます。`availableModels` が他のモデル設定とどのように相互作用するかについては、[Restrict model selection](/ja/model-config#restrict-model-selection) を参照してください。

528 

529両方のプロバイダーがアクティブな場合、`/status` は `Amazon Bedrock + Amazon Bedrock (Mantle)` を表示します。

530 

531### Mantle をゲートウェイ経由でルーティング

532 

533組織がモデルトラフィックを集中化された [LLM gateway](/ja/llm-gateway) を通じてルーティングし、AWS 認証情報をサーバー側に注入する場合、クライアント側認証を無効にして、Claude Code が SigV4 署名または `x-api-key` ヘッダーなしでリクエストを送信するようにします。

534 

535```bash theme={null}

536export CLAUDE_CODE_USE_MANTLE=1

537export CLAUDE_CODE_SKIP_MANTLE_AUTH=1

538export ANTHROPIC_BEDROCK_MANTLE_BASE_URL=https://your-gateway.example.com

539```

540 

541### Mantle 環境変数

542 

543これらの変数は Mantle エンドポイントに固有です。完全なリストについては、[Environment variables](/ja/env-vars) を参照してください。

544 

545| 変数 | 目的 |

546| :-------------------------------------- | :------------------------------------------- |

547| `CLAUDE_CODE_USE_MANTLE` | Mantle エンドポイントを有効にします。`1` または `true` に設定します。 |

548| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | デフォルト Mantle エンドポイント URL をオーバーライド |

549| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | プロキシセットアップのクライアント側認証をスキップ |

550| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Haiku クラスモデルの AWS リージョンをオーバーライド(Bedrock と共有) |

551 

552## トラブルシューティング

553 

554### SSO と企業プロキシでの認証ループ

555 

556AWS SSO を使用する場合にブラウザタブが繰り返し生成される場合は、[settings file](/ja/settings) から `awsAuthRefresh` 設定を削除してください。これは、企業 VPN または TLS 検査プロキシが SSO ブラウザフローを中断した場合に発生する可能性があります。Claude Code は中断された接続を認証失敗として扱い、`awsAuthRefresh` を再実行し、無限ループします。

557 

558ネットワーク環境が自動ブラウザベースの SSO フローに干渉する場合は、`awsAuthRefresh` に依存する代わりに、Claude Code を開始する前に手動で `aws sso login` を使用してください。

559 

560### リージョンの問題

561 

562リージョンの問題が発生した場合:

563 

564* モデルの可用性を確認:`aws bedrock list-inference-profiles --region your-region`

565* サポートされているリージョンに切り替え:`export AWS_REGION=us-east-1`

566* クロスリージョンアクセスに推論プロファイルの使用を検討

567 

568「on-demand throughput isn't supported」エラーが表示される場合:

569 

570* モデルを [inference profile](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html) ID として指定します

571 

572Claude Code は Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html) を使用し、Converse API はサポートしていません。

573 

574### Mantle エンドポイントエラー

575 

576`CLAUDE_CODE_USE_MANTLE` を設定した後、`/status` が `Amazon Bedrock (Mantle)` を表示しない場合、変数がプロセスに到達していません。Claude Code を起動したシェルでエクスポートされているか、[settings file](/ja/settings) の `env` ブロックで設定されていることを確認してください。

577 

578有効な認証情報を持つ Mantle エンドポイントからの `403` は、AWS アカウントがリクエストしたモデルへのアクセスを許可されていないことを意味します。AWS アカウントチームに連絡してアクセスをリクエストしてください。

579 

580モデル ID を名前付ける `400` は、そのモデルが Mantle で提供されていないことを意味します。Mantle は標準 Bedrock カタログとは別の独自のモデルラインアップを持っているため、`us.anthropic.claude-sonnet-4-6` などの推論プロファイル ID は機能しません。Mantle 形式の ID を使用するか、[両方のエンドポイントを有効にして](#mantle-を-invoke-api-と並行して実行)、Claude Code が各リクエストをモデルが利用可能なエンドポイントにルーティングするようにしてください。

581 

582## 追加リソース

583 

584* [Bedrock documentation](https://docs.aws.amazon.com/bedrock/)

585* [Bedrock pricing](https://aws.amazon.com/bedrock/pricing/)

586* [Bedrock inference profiles](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)

587* [Bedrock token burndown and quotas](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas-token-burndown.html)

588* [Claude Code on Amazon Bedrock: Quick Setup Guide](https://community.aws/content/2tXkZKrZzlrlu0KfH8gST5Dkppq/claude-code-on-amazon-bedrock-quick-setup-guide)

589* [Claude Code Monitoring Implementation (Bedrock)](https://github.com/aws-solutions-library-samples/guidance-for-claude-code-with-amazon-bedrock/blob/main/assets/docs/MONITORING.md)

analytics.md +224 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# チームの使用状況を分析で追跡する

6 

7> Claude Code の使用メトリクスを表示し、採用状況を追跡し、分析ダッシュボードでエンジニアリング速度を測定します。

8 

9Claude Code は、組織が開発者の使用パターンを理解し、貢献メトリクスを追跡し、Claude Code がエンジニアリング速度にどのような影響を与えるかを測定するのに役立つ分析ダッシュボードを提供します。お客様のプランに応じたダッシュボードにアクセスしてください。

10 

11| プラン | ダッシュボード URL | 含まれる内容 | 詳細 |

12| ----------------------------- | -------------------------------------------------------------------------- | --------------------------------------------- | ------------------------------------------------ |

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | 使用メトリクス、GitHub 統合による貢献メトリクス、リーダーボード、データエクスポート | [詳細](#access-analytics-for-teams-and-enterprise) |

14| API(Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | 使用メトリクス、支出追跡、チームインサイト | [詳細](#access-analytics-for-api-customers) |

15 

16## Teams と Enterprise の分析にアクセスする

17 

18[claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) に移動してください。管理者とオーナーがダッシュボードを表示できます。

19 

20Teams と Enterprise ダッシュボードには以下が含まれます。

21 

22* **使用メトリクス**:受け入れられたコード行数、提案受け入れ率、日次アクティブユーザー数とセッション数

23* **貢献メトリクス**:[GitHub 統合](#enable-contribution-metrics)を使用した Claude Code 支援による PR とシップされたコード行数

24* **リーダーボード**:Claude Code 使用量でランク付けされたトップコントリビューター

25* **データエクスポート**:カスタムレポート用に貢献データを CSV としてダウンロード

26 

27### 貢献メトリクスを有効にする

28 

29<Note>

30 貢献メトリクスはパブリックベータ版であり、Claude for Teams と Claude for Enterprise プランで利用可能です。これらのメトリクスは、claude.ai 組織内のユーザーのみをカバーしています。Claude Console API または サードパーティ統合を通じた使用は含まれていません。

31</Note>

32 

33使用状況と採用データは、すべての Claude for Teams と Claude for Enterprise アカウントで利用可能です。貢献メトリクスには、GitHub 組織を接続するための追加セットアップが必要です。

34 

35分析設定を構成するには、オーナーロールが必要です。GitHub 管理者が GitHub アプリをインストールする必要があります。

36 

37<Warning>

38 [Zero Data Retention](/ja/zero-data-retention) が有効になっている組織では、貢献メトリクスは利用できません。分析ダッシュボードは使用メトリクスのみを表示します。

39</Warning>

40 

41<Steps>

42 <Step title="GitHub アプリをインストールする">

43 GitHub 管理者が、[github.com/apps/claude](https://github.com/apps/claude) で組織の GitHub アカウントに Claude GitHub アプリをインストールします。

44 </Step>

45 

46 <Step title="Claude Code 分析を有効にする">

47 Claude オーナーが [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) に移動し、Claude Code 分析機能を有効にします。

48 </Step>

49 

50 <Step title="GitHub 分析を有効にする">

51 同じページで、'GitHub analytics'トグルを有効にします。

52 </Step>

53 

54 <Step title="GitHub で認証する">

55 GitHub 認証フローを完了し、分析に含める GitHub 組織を選択します。

56 </Step>

57</Steps>

58 

59データは通常、有効化後 24 時間以内に表示され、毎日更新されます。データが表示されない場合は、以下のいずれかのメッセージが表示される可能性があります。

60 

61* **「GitHub app required」**:貢献メトリクスを表示するには GitHub アプリをインストールしてください

62* **「Data processing in progress」**:数日後に確認し、データが表示されない場合は GitHub アプリがインストールされていることを確認してください

63 

64貢献メトリクスは GitHub Cloud と GitHub Enterprise Server をサポートしています。

65 

66### サマリーメトリクスを確認する

67 

68<Note>

69 これらのメトリクスは意図的に保守的であり、Claude Code の実際の影響の過小評価を表しています。Claude Code の関与に高い信頼度がある行と PR のみがカウントされます。

70</Note>

71 

72ダッシュボードの上部に以下のサマリーメトリクスが表示されます。

73 

74* **PRs with CC**:Claude Code で記述された少なくとも 1 行のコードを含むマージされたプルリクエストの総数

75* **Lines of code with CC**:Claude Code 支援で記述されたすべてのマージされた PR 全体のコード行数。「有効な行」のみがカウントされます。正規化後に 3 文字以上の行で、空行と括弧またはトリビアルな句読点のみの行を除きます。

76* **PRs with Claude Code(%)**:Claude Code 支援コードを含むすべてのマージされた PR のパーセンテージ

77* **Suggestion accept rate**:ユーザーが Claude Code のコード編集提案を受け入れる回数のパーセンテージ。Edit、Write、NotebookEdit ツール使用を含みます。

78* **Lines of code accepted**:ユーザーがセッション内で受け入れた Claude Code で記述されたコード行の総数。これは拒否された提案を除外し、その後の削除を追跡しません。

79 

80### チャートを探索する

81 

82ダッシュボードには、時系列でトレンドを視覚化するためのいくつかのチャートが含まれています。

83 

84#### 採用を追跡する

85 

86採用チャートは日次使用トレンドを表示します。

87 

88* **users**:日次アクティブユーザー

89* **sessions**:1 日あたりのアクティブな Claude Code セッション数

90 

91#### ユーザーあたりの PR を測定する

92 

93このチャートは、時系列での個々の開発者アクティビティを表示します。

94 

95* **PRs per user**:1 日にマージされた PR の総数を日次アクティブユーザーで割った値

96* **users**:日次アクティブユーザー

97 

98これを使用して、Claude Code の採用が増加するにつれて個々の生産性がどのように変化するかを理解します。

99 

100#### プルリクエストの内訳を表示する

101 

102プルリクエストチャートは、マージされた PR の日次内訳を表示します。

103 

104* **PRs with CC**:Claude Code 支援コードを含むプルリクエスト

105* **PRs without CC**:Claude Code 支援コードを含まないプルリクエスト

106 

107**Lines of code** ビューに切り替えて、PR 数ではなくコード行数による同じ内訳を表示します。

108 

109#### トップコントリビューターを見つける

110 

111リーダーボードは、貢献量でランク付けされたトップ 10 ユーザーを表示します。以下を切り替えます。

112 

113* **Pull requests**:各ユーザーの Claude Code を使用した PR とすべての PR を表示

114* **Lines of code**:各ユーザーの Claude Code を使用した行とすべての行を表示

115 

116**Export all users** をクリックして、すべてのユーザーの完全な貢献データを CSV ファイルとしてダウンロードします。エクスポートには、表示されているトップ 10 だけでなく、すべてのユーザーが含まれます。

117 

118### PR 属性

119 

120貢献メトリクスが有効になっている場合、Claude Code はマージされたプルリクエストを分析して、Claude Code 支援で記述されたコードを判定します。これは、Claude Code セッションアクティビティを各 PR のコードと照合することで行われます。

121 

122#### タグ付け基準

123 

124PR は、Claude Code セッション中に記述された少なくとも 1 行のコードを含む場合、「with Claude Code」としてタグ付けされます。システムは保守的なマッチングを使用します。Claude Code の関与に高い信頼度がある場合のみ、支援されたコードとしてカウントされます。

125 

126#### 属性プロセス

127 

128プルリクエストがマージされるとき。

129 

1301. 追加された行が PR diff から抽出されます

1312. 時間ウィンドウ内で一致するファイルを編集した Claude Code セッションが識別されます

1323. PR 行が複数の戦略を使用して Claude Code 出力と照合されます

1334. AI 支援行と総行数のメトリクスが計算されます

134 

135比較前に、行は正規化されます。空白がトリミングされ、複数のスペースが折りたたまれ、引用符が標準化され、テキストが小文字に変換されます。

136 

137Claude Code 支援行を含むマージされたプルリクエストは、GitHub で `claude-code-assisted` としてラベル付けされます。

138 

139#### 時間ウィンドウ

140 

141PR マージ日の 21 日前から 2 日後のセッションが属性マッチングの対象と見なされます。

142 

143#### 除外されたファイル

144 

145特定のファイルは自動生成されるため、分析から自動的に除外されます。

146 

147* ロックファイル:package-lock.json、yarn.lock、Cargo.lock など

148* 生成されたコード:Protobuf 出力、ビルドアーティファクト、縮小ファイル

149* ビルドディレクトリ:dist/、build/、node\_modules/、target/

150* テストフィクスチャ:スナップショット、カセット、モックデータ

151* 1,000 文字を超える行(縮小または生成されている可能性が高い)

152 

153#### 属性に関する注記

154 

155属性データを解釈する際は、以下の追加の詳細に注意してください。

156 

157* 開発者によって大幅に書き直されたコード(20% 以上の差がある場合)は Claude Code に属性されません

158* 21 日ウィンドウ外のセッションは考慮されません

159* アルゴリズムは属性を実行するときに PR ソースまたは宛先ブランチを考慮しません

160 

161### 分析から最大限の価値を得る

162 

163貢献メトリクスを使用して ROI を実証し、採用パターンを特定し、他のユーザーが開始するのを支援できるチームメンバーを見つけます。

164 

165#### 採用を監視する

166 

167採用チャートとユーザー数を追跡して、以下を特定します。

168 

169* ベストプラクティスを共有できるアクティブユーザー

170* 組織全体の全体的な採用トレンド

171* 摩擦または問題を示す可能性のある使用の低下

172 

173#### ROI を測定する

174 

175貢献メトリクスは、独自のコードベースからのデータを使用して「このツールは投資する価値があるか?」という質問に答えるのに役立ちます。

176 

177* 採用が増加するにつれて、時系列でユーザーあたりの PR の変化を追跡します

178* Claude Code を使用した場合と使用しない場合の PR とシップされたコード行を比較します

179* [DORA メトリクス](https://dora.dev/)、スプリント速度、または他のエンジニアリング KPI と一緒に使用して、Claude Code の採用による変化を理解します

180 

181#### パワーユーザーを特定する

182 

183リーダーボードは、高い Claude Code 採用を持つチームメンバーを見つけるのに役立ちます。彼らは以下を行うことができます。

184 

185* プロンプティング技術とワークフローをチームと共有する

186* 何がうまく機能しているかについてのフィードバックを提供する

187* 新しいユーザーのオンボーディングを支援する

188 

189#### プログラムでデータにアクセスする

190 

191GitHub を通じてこのデータをクエリするには、`claude-code-assisted` でラベル付けされた PR を検索します。

192 

193## API カスタマー向けの分析にアクセスする

194 

195Claude Console を使用している API カスタマーは、[platform.claude.com/claude-code](https://platform.claude.com/claude-code) で分析にアクセスできます。ダッシュボードにアクセスするには UsageView 権限が必要です。これは Developer、Billing、Admin、Owner、Primary Owner ロールに付与されます。

196 

197<Note>

198 GitHub 統合による貢献メトリクスは、現在 API カスタマーには利用できません。Console ダッシュボードは使用メトリクスと支出メトリクスのみを表示します。

199</Note>

200 

201Console ダッシュボードは以下を表示します。

202 

203* **Lines of code accepted**:ユーザーがセッション内で受け入れた Claude Code で記述されたコード行の総数。これは拒否された提案を除外し、その後の削除を追跡しません。

204* **Suggestion accept rate**:ユーザーがコード編集ツール使用を受け入れる回数のパーセンテージ。Edit、Write、NotebookEdit ツールを含みます。

205* **Activity**:チャートに表示される日次アクティブユーザーとセッション。

206* **Spend**:ユーザー数と並んでドルでの日次 API コスト。

207 

208### チームインサイトを表示する

209 

210チームインサイトテーブルはユーザーごとのメトリクスを表示します。

211 

212* **Members**:Claude Code に認証されたすべてのユーザー。API キーユーザーはキー識別子で表示され、OAuth ユーザーはメールアドレスで表示されます。

213* **Spend this month**:ユーザーごとの現在の月の API コストの合計。

214* **Lines this month**:ユーザーごとの現在の月の受け入れられたコード行の合計。

215 

216<Note>

217 Console ダッシュボードの支出数値は分析目的の推定値です。実際のコストについては、請求ページを参照してください。

218</Note>

219 

220## 関連リソース

221 

222* [OpenTelemetry での監視](/ja/monitoring-usage):リアルタイムメトリクスとイベントを可観測性スタックにエクスポート

223* [コストを効果的に管理する](/ja/costs):支出制限を設定し、トークン使用を最適化

224* [権限](/ja/permissions):ロールと権限を構成

authentication.md +155 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 認証

6 

7> Claude Code にログインし、個人、チーム、組織向けの認証を設定します。

8 

9Claude Code は、セットアップに応じて複数の認証方法をサポートしています。個人ユーザーは Claude.ai アカウントでログインでき、チームは Claude for Teams または Enterprise、Claude Console、または Amazon Bedrock、Google Vertex AI、Microsoft Foundry などのクラウドプロバイダーを使用できます。

10 

11## Claude Code にログインする

12 

13[Claude Code をインストール](/ja/setup#install-claude-code)した後、ターミナルで `claude` を実行します。初回起動時に、Claude Code はログインするためのブラウザウィンドウを開きます。

14 

15ブラウザが自動的に開かない場合は、`c` を押してログイン URL をクリップボードにコピーし、ブラウザに貼り付けます。

16 

17ブラウザがサインイン後にリダイレクトされずにログインコードを表示する場合は、`Paste code here if prompted` プロンプトでそれをターミナルに貼り付けます。これは、ブラウザが Claude Code のローカルコールバックサーバーに到達できない場合に発生します。これは WSL2、SSH セッション、およびコンテナで一般的です。

18 

19以下のいずれかのアカウントタイプで認証できます。

20 

21* **Claude Pro または Max サブスクリプション**: Claude.ai アカウントでログインします。[claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max) で購読してください。

22* **Claude for Teams または Enterprise**: チーム管理者が招待した Claude.ai アカウントでログインします。

23* **Claude Console**: Console 認証情報でログインします。管理者が事前に[招待](#claude-console-authentication)している必要があります。

24* **クラウドプロバイダー**: 組織が [Amazon Bedrock](/ja/amazon-bedrock)、[Google Vertex AI](/ja/google-vertex-ai)、または [Microsoft Foundry](/ja/microsoft-foundry) を使用している場合は、`claude` を実行する前に必要な環境変数を設定してください。ブラウザログインは不要です。

25 

26ログアウトして再認証するには、Claude Code プロンプトで `/logout` と入力します。

27 

28ログインに問題がある場合は、[認証のトラブルシューティング](/ja/troubleshoot-install#login-and-authentication)を参照してください。

29 

30## チーム認証を設定する

31 

32チームと組織の場合、Claude Code アクセスを以下のいずれかの方法で設定できます。

33 

34* [Claude for Teams または Enterprise](#claude-for-teams-or-enterprise)(ほとんどのチームに推奨)

35* [Claude Console](#claude-console-authentication)

36* [Amazon Bedrock](/ja/amazon-bedrock)

37* [Google Vertex AI](/ja/google-vertex-ai)

38* [Microsoft Foundry](/ja/microsoft-foundry)

39 

40### Claude for Teams または Enterprise

41 

42[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) と [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) は、Claude Code を使用する組織に最適なエクスペリエンスを提供します。チームメンバーは Claude Code と Web 上の Claude の両方にアクセスでき、一元化された請求とチーム管理が可能です。

43 

44* **Claude for Teams**: コラボレーション機能、管理ツール、請求管理を備えたセルフサービスプラン。小規模なチームに最適です。

45* **Claude for Enterprise**: SSO、ドメインキャプチャ、ロールベースの権限、コンプライアンス API、および組織全体の Claude Code 設定のための管理ポリシー設定を追加します。セキュリティとコンプライアンス要件を持つ大規模な組織に最適です。

46 

47<Steps>

48 <Step title="購読">

49 [Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams_step#team-&-enterprise) に購読するか、[Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise_step) の営業に連絡してください。

50 </Step>

51 

52 <Step title="チームメンバーを招待">

53 管理ダッシュボードからチームメンバーを招待します。

54 </Step>

55 

56 <Step title="インストールしてログイン">

57 チームメンバーは Claude Code をインストールし、Claude.ai アカウントでログインします。

58 </Step>

59</Steps>

60 

61### Claude Console 認証

62 

63API ベースの請求を希望する組織の場合、Claude Console を通じてアクセスを設定できます。

64 

65<Steps>

66 <Step title="Console アカウントを作成または使用">

67 既存の Claude Console アカウントを使用するか、新しいアカウントを作成します。

68 </Step>

69 

70 <Step title="ユーザーを追加">

71 以下のいずれかの方法でユーザーを追加できます。

72 

73 * Console 内からユーザーを一括招待します。Settings -> Members -> Invite

74 * [SSO を設定](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)

75 </Step>

76 

77 <Step title="ロールを割り当て">

78 ユーザーを招待する際に、以下のいずれかを割り当てます。

79 

80 * **Claude Code** ロール: ユーザーは Claude Code API キーのみを作成できます

81 * **Developer** ロール: ユーザーはあらゆる種類の API キーを作成できます

82 </Step>

83 

84 <Step title="ユーザーがセットアップを完了">

85 招待された各ユーザーは以下を実行する必要があります。

86 

87 * Console 招待を受け入れる

88 * [システム要件を確認](/ja/setup#system-requirements)

89 * [Claude Code をインストール](/ja/setup#install-claude-code)

90 * Console アカウント認証情報でログイン

91 </Step>

92</Steps>

93 

94### クラウドプロバイダー認証

95 

96Amazon Bedrock、Google Vertex AI、または Microsoft Foundry を使用するチームの場合。

97 

98<Steps>

99 <Step title="プロバイダーセットアップに従う">

100 [Bedrock ドキュメント](/ja/amazon-bedrock)、[Vertex ドキュメント](/ja/google-vertex-ai)、または [Microsoft Foundry ドキュメント](/ja/microsoft-foundry)に従ってください。

101 </Step>

102 

103 <Step title="設定を配布">

104 環境変数とクラウド認証情報を生成するための手順をユーザーに配布します。[ここで設定を管理する方法](/ja/settings)についてさらに詳しく読んでください。

105 </Step>

106 

107 <Step title="Claude Code をインストール">

108 ユーザーは [Claude Code をインストール](/ja/setup#install-claude-code)できます。

109 </Step>

110</Steps>

111 

112## 認証情報管理

113 

114Claude Code は認証認証情報を安全に管理します。

115 

116* **保存場所**: macOS では、認証情報は暗号化された macOS Keychain に保存されます。Linux と Windows では、認証情報は `~/.claude/.credentials.json` に保存されるか、その変数が設定されている場合は `$CLAUDE_CONFIG_DIR` の下に保存されます。Linux では、ファイルはモード `0600` で書き込まれます。Windows では、ユーザープロファイルディレクトリのアクセス制御を継承します。

117* **サポートされている認証タイプ**: Claude.ai 認証情報、Claude API 認証情報、Azure Auth、Bedrock Auth、および Vertex Auth。

118* **カスタム認証情報スクリプト**: [`apiKeyHelper`](/ja/settings#available-settings) 設定は、API キーを返すシェルスクリプトを実行するように設定できます。

119* **更新間隔**: デフォルトでは、`apiKeyHelper` は 5 分後または HTTP 401 レスポンス時に呼び出されます。カスタム更新間隔の場合は、`CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 環境変数を設定してください。

120* **遅いヘルパー通知**: `apiKeyHelper` がキーを返すのに 10 秒以上かかる場合、Claude Code はプロンプトバーに経過時間を表示する警告通知を表示します。この通知が定期的に表示される場合は、認証情報スクリプトを最適化できるかどうかを確認してください。

121 

122`apiKeyHelper`、`ANTHROPIC_API_KEY`、および `ANTHROPIC_AUTH_TOKEN` はターミナル CLI セッションにのみ適用されます。Claude Desktop とリモートセッションは OAuth のみを使用し、`apiKeyHelper` を呼び出したり、API キー環境変数を読み込んだりしません。

123 

124### 認証の優先順位

125 

126複数の認証情報が存在する場合、Claude Code は以下の順序で 1 つを選択します。

127 

1281. `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、または `CLAUDE_CODE_USE_FOUNDRY` が設定されている場合のクラウドプロバイダー認証情報。セットアップについては、[サードパーティ統合](/ja/third-party-integrations)を参照してください。

1292. `ANTHROPIC_AUTH_TOKEN` 環境変数。`Authorization: Bearer` ヘッダーとして送信されます。Anthropic API キーではなくベアラートークンで認証する [LLM ゲートウェイまたはプロキシ](/ja/llm-gateway)を通じてルーティングする場合に使用します。

1303. `ANTHROPIC_API_KEY` 環境変数。`X-Api-Key` ヘッダーとして送信されます。[Claude Console](https://platform.claude.com) からのキーを使用して Anthropic API に直接アクセスする場合に使用します。対話モードでは、キーを承認または拒否するよう 1 回プロンプトが表示され、選択が記憶されます。後で変更するには、`/config` の「Use custom API key」トグルを使用します。非対話モード(`-p`)では、キーが存在する場合は常に使用されます。

1314. [`apiKeyHelper`](/ja/settings#available-settings) スクリプト出力。短期トークンなど、動的または回転する認証情報に使用します。これはボルトから取得されます。

1325. `CLAUDE_CODE_OAUTH_TOKEN` 環境変数。[`claude setup-token`](#generate-a-long-lived-token) によって生成された長期 OAuth トークン。ブラウザログインが利用できない CI パイプラインとスクリプトに使用します。

1336. `/login` からのサブスクリプション OAuth 認証情報。これは Claude Pro、Max、Team、および Enterprise ユーザーのデフォルトです。

134 

135アクティブな Claude サブスクリプションがあり、環境に `ANTHROPIC_API_KEY` も設定されている場合、API キーは承認されると優先されます。キーが無効または期限切れの組織に属している場合、これは認証エラーを引き起こす可能性があります。`unset ANTHROPIC_API_KEY` を実行してサブスクリプションにフォールバックし、`/status` をチェックしてどの方法がアクティブであるかを確認します。

136 

137[Claude Code on the Web](/ja/claude-code-on-the-web) は常にサブスクリプション認証情報を使用します。サンドボックス環境の `ANTHROPIC_API_KEY` と `ANTHROPIC_AUTH_TOKEN` はそれらをオーバーライドしません。

138 

139### 長期トークンを生成する

140 

141CI パイプライン、スクリプト、または対話的なブラウザログインが利用できない他の環境の場合、`claude setup-token` で 1 年間の OAuth トークンを生成します。

142 

143```bash theme={null}

144claude setup-token

145```

146 

147このコマンドは OAuth 認可を通じてウォークスルーし、トークンをターミナルに出力します。トークンはどこにも保存されません。トークンをコピーして、認証したい場所で `CLAUDE_CODE_OAUTH_TOKEN` 環境変数として設定します。

148 

149```bash theme={null}

150export CLAUDE_CODE_OAUTH_TOKEN=your-token

151```

152 

153このトークンは Claude サブスクリプションで認証され、Pro、Max、Team、または Enterprise プランが必要です。推論のみにスコープされており、[Remote Control](/ja/remote-control) セッションを確立することはできません。

154 

155[Bare mode](/ja/headless#start-faster-with-bare-mode) は `CLAUDE_CODE_OAUTH_TOKEN` を読み込みません。スクリプトが `--bare` を渡す場合は、`ANTHROPIC_API_KEY` または `apiKeyHelper` で認証します。

auto-mode-config.md +178 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# オートモードの設定

6 

7> オートモード分類器に、組織が信頼するリポジトリ、バケット、ドメインを指定します。環境コンテキストを設定し、デフォルトのブロックルールと許可ルールをオーバーライドし、オートモード CLI サブコマンドで有効な設定を確認します。

8 

9[オートモード](/ja/permission-modes#eliminate-prompts-with-auto-mode)を使用すると、Claude Code は各ツール呼び出しを分類器にルーティングして、不可逆的、破壊的、または環境外を対象とした操作をブロックすることで、権限プロンプトなしで実行できます。`autoMode` 設定ブロックを使用して、その分類器に、組織が信頼するリポジトリ、バケット、ドメインを指定すると、ルーチンの内部操作のブロックが停止します。

10 

11<Note>

12 オートモードは、Anthropic API を通じて Max、Team、Enterprise、API プランで利用可能です。Pro プランでは利用できず、Bedrock、Vertex、Foundry でも利用できません。Claude Code がアカウントでオートモードが利用不可と報告する場合は、[完全な要件](/ja/permission-modes#eliminate-prompts-with-auto-mode)を確認してください。これには、サポートされているモデルと Team および Enterprise プランの管理者有効化も含まれます。

13</Note>

14 

15デフォルトでは、分類器は作業ディレクトリと現在のリポジトリの設定されたリモートのみを信頼します。会社のソース管理組織へのプッシュやチームクラウドバケットへの書き込みなどのアクションは、`autoMode.environment` に追加するまでブロックされます。

16 

17オートモードを有効にする方法とデフォルトでブロックされる内容については、[権限モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)を参照してください。このページは設定リファレンスです。

18 

19このページでは、以下の方法について説明します。

20 

21* [ルールを設定する場所を選択する](#where-the-classifier-reads-configuration)(CLAUDE.md、ユーザー設定、管理設定全体)

22* [`autoMode.environment` で信頼できるインフラストラクチャを定義する](#define-trusted-infrastructure)

23* [デフォルトが適切でない場合、ブロックルールと許可ルールをオーバーライドする](#override-the-block-and-allow-rules)

24* [`claude auto-mode` サブコマンドで有効な設定を確認する](#inspect-the-defaults-and-your-effective-config)

25* [拒否を確認する](#review-denials)(次に何を追加するかを知るため)

26 

27## 分類器が設定を読み込む場所

28 

29分類器は Claude 自体が読み込む同じ [CLAUDE.md](/ja/memory) コンテンツを読み込むため、プロジェクトの CLAUDE.md の「force push を絶対にしない」のような指示は、Claude と分類器の両方を同時に制御します。プロジェクト規約と動作ルールはここから始めてください。

30 

31信頼できるインフラストラクチャや組織全体の拒否ルールなど、プロジェクト全体に適用されるルールについては、`autoMode` 設定ブロックを使用します。分類器は以下のスコープから `autoMode` を読み込みます。

32 

33| スコープ | ファイル | 用途 |

34| :---------------------------- | :---------------------------------- | :----------------------------------- |

35| 1 人の開発者 | `~/.claude/settings.json` | 個人の信頼できるインフラストラクチャ |

36| 1 つのプロジェクト、1 人の開発者 | `.claude/settings.local.json` | プロジェクトごとの信頼できるバケットまたはサービス、gitignored |

37| 組織全体 | [管理設定](/ja/server-managed-settings) | すべての開発者に配布される信頼できるインフラストラクチャ |

38| `--settings` フラグまたは Agent SDK | インライン JSON | 自動化のための呼び出しごとのオーバーライド |

39 

40分類器は `.claude/settings.json` の共有プロジェクト設定から `autoMode` を読み込まないため、チェックインされたリポジトリは独自の許可ルールを注入できません。

41 

42各スコープのエントリは結合されます。開発者は個人エントリで `environment`、`allow`、`soft_deny` を拡張できますが、管理設定が提供するエントリを削除することはできません。許可ルールは分類器内のブロックルールの例外として機能するため、開発者が追加した `allow` エントリは組織の `soft_deny` エントリをオーバーライドできます。組み合わせは加算的であり、ハードポリシー境界ではありません。

43 

44<Note>

45 分類器は[権限システム](/ja/permissions)の後に実行される 2 番目のゲートです。ユーザーの意図または分類器の設定に関係なく、実行してはいけないアクションについては、管理設定で `permissions.deny` を使用します。これは分類器が参照される前にアクションをブロックし、オーバーライドできません。

46</Note>

47 

48## 信頼できるインフラストラクチャを定義する

49 

50ほとんどの組織では、`autoMode.environment` が設定する必要がある唯一のフィールドです。これは、分類器に、どのリポジトリ、バケット、ドメインが信頼できるかを指定します。分類器はこれを使用して「外部」が何を意味するかを決定するため、リストに記載されていない宛先は潜在的な流出ターゲットです。

51 

52デフォルトの環境リストは、作業リポジトリとその設定されたリモートを信頼します。そのデフォルトと一緒に独自のエントリを追加するには、配列にリテラル文字列 `"$defaults"` を含めます。デフォルトエントリはその位置に挿入されるため、カスタムエントリはそれらの前後に配置できます。

53 

54```json theme={null}

55{

56 "autoMode": {

57 "environment": [

58 "$defaults",

59 "Source control: github.example.com/acme-corp and all repos under it",

60 "Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",

61 "Trusted internal domains: *.corp.example.com, api.internal.example.com",

62 "Key internal services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"

63 ]

64 }

65}

66```

67 

68エントリは散文であり、正規表現またはツールパターンではありません。分類器はそれらを自然言語ルールとして読み込みます。新しいエンジニアにインフラストラクチャを説明する方法で記述してください。十分な環境セクションは以下をカバーします。

69 

70* **組織**: 会社名と Claude Code が主に使用される用途(ソフトウェア開発、インフラストラクチャ自動化、データエンジニアリングなど)

71* **ソース管理**: 開発者がプッシュするすべての GitHub、GitLab、または Bitbucket 組織

72* **クラウドプロバイダーと信頼できるバケット**: Claude が読み取りおよび書き込みできるバケット名またはプレフィックス

73* **信頼できる内部ドメイン**: ネットワーク内の API、ダッシュボード、サービスのホスト名(`*.internal.example.com` など)

74* **主要な内部サービス**: CI、アーティファクトレジストリ、内部パッケージインデックス、インシデント対応ツール

75* **追加コンテキスト**: 規制業界の制約、マルチテナントインフラストラクチャ、または分類器がリスクとして扱うべき内容に影響するコンプライアンス要件

76 

77有用な開始テンプレート。括弧内のフィールドを入力し、適用されない行を削除します。

78 

79```json theme={null}

80{

81 "autoMode": {

82 "environment": [

83 "$defaults",

84 "Organization: {COMPANY_NAME}. Primary use: {PRIMARY_USE_CASE, e.g. software development, infrastructure automation}",

85 "Source control: {SOURCE_CONTROL, e.g. GitHub org github.example.com/acme-corp}",

86 "Cloud provider(s): {CLOUD_PROVIDERS, e.g. AWS, GCP, Azure}",

87 "Trusted cloud buckets: {TRUSTED_BUCKETS, e.g. s3://acme-builds, gs://acme-datasets}",

88 "Trusted internal domains: {TRUSTED_DOMAINS, e.g. *.internal.example.com, api.example.com}",

89 "Key internal services: {SERVICES, e.g. Jenkins at ci.example.com, Artifactory at artifacts.example.com}",

90 "Additional context: {EXTRA, e.g. regulated industry, multi-tenant infrastructure, compliance requirements}"

91 ]

92 }

93}

94```

95 

96より具体的なコンテキストを提供するほど、分類器はルーチンの内部操作と流出の試みをより良く区別できます。

97 

98すべてを一度に入力する必要はありません。合理的なロールアウト。デフォルトから始めて、ソース管理組織と主要な内部サービスを追加します。これにより、独自のリポジトリへのプッシュなど、最も一般的な誤検知が解決されます。次に信頼できるドメインとクラウドバケットを追加します。ブロックが発生したら残りを入力します。

99 

100## ブロックルールと許可ルールをオーバーライドする

101 

1022 つの追加フィールドを使用すると、分類器の組み込みルールリストを置き換えることができます。`autoMode.soft_deny` はブロックされる内容を制御し、`autoMode.allow` は適用される例外を制御します。各フィールドは散文説明の配列であり、自然言語ルールとして読み込まれます。`autoMode.deny` フィールドはありません。意図に関係なくアクションをハードブロックするには、分類器の前に実行される [`permissions.deny`](/ja/permissions) を使用します。

103 

104分類器内では、優先順位は 3 つのレベルで機能します。

105 

106* `soft_deny` ルールが最初にブロック

107* `allow` ルールが一致するブロックを例外としてオーバーライド

108* 明示的なユーザーの意図が両方をオーバーライド。ユーザーのメッセージが Claude が実行しようとしている正確なアクションを直接かつ具体的に説明する場合、`soft_deny` ルールが一致しても分類器はそれを許可します

109 

110一般的なリクエストは明示的な意図としてカウントされません。Claude に「リポジトリをクリーンアップする」ように依頼することは force push を認可しませんが、「このブランチを force push する」ように依頼することは認可します。

111 

112緩和するには、分類器がデフォルトの例外がカバーしていないルーチンパターンを繰り返しフラグする場合、`allow` に追加します。厳しくするには、環境に固有で、デフォルトが見落としているリスクについて `soft_deny` に追加します。組み込みルールを保持しながら独自のルールを追加するには、配列にリテラル文字列 `"$defaults"` を含めます。デフォルトルールはその位置に挿入されるため、カスタムルールはそれらの前後に配置でき、リリース全体でビルトインリストが変更されるにつれて更新を継続して継承します。

113 

114```json theme={null}

115{

116 "autoMode": {

117 "environment": [

118 "$defaults",

119 "Source control: github.example.com/acme-corp and all repos under it"

120 ],

121 "allow": [

122 "$defaults",

123 "Deploying to the staging namespace is allowed: staging is isolated from production and resets nightly",

124 "Writing to s3://acme-scratch/ is allowed: ephemeral bucket with a 7-day lifecycle policy"

125 ],

126 "soft_deny": [

127 "$defaults",

128 "Never run database migrations outside the migrations CLI, even against dev databases",

129 "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"

130 ]

131 }

132}

133```

134 

135<Danger>

136 `environment`、`allow`、`soft_deny` のいずれかを `"$defaults"` なしで設定すると、そのセクション全体のデフォルトリストが置き換わります。単一のエントリで `soft_deny` を設定し、`"$defaults"` を省略すると、すべての組み込みブロックルール(force push、データ流出、`curl | bash`、本番環境へのデプロイ、その他すべてのデフォルトブロックルール)が破棄されて許可されます。`"$defaults"` を省略するのは、リストの完全な所有権を取得する意図がある場合のみです。その場合、`claude auto-mode defaults` を実行して組み込みルールを出力し、それらを設定ファイルにコピーしてから、各ルールを独自のパイプラインとリスク許容度に対して確認します。

137</Danger>

138 

139各セクションは独立して評価されるため、`environment` のみを設定すると、デフォルトの `allow` および `soft_deny` リストはそのままになります。

140 

141## デフォルトと有効な設定を確認する

142 

1433 つの CLI サブコマンドは、設定の検査と検証に役立ちます。

144 

145組み込みの `environment`、`allow`、`soft_deny` ルールを JSON として出力します。

146 

147```bash theme={null}

148claude auto-mode defaults

149```

150 

151分類器が実際に使用する内容を JSON として出力します。設定が設定されている場合はそれを適用し、そうでない場合はデフォルトを適用します。

152 

153```bash theme={null}

154claude auto-mode config

155```

156 

157カスタム `allow` および `soft_deny` ルールに関する AI フィードバックを取得します。

158 

159```bash theme={null}

160claude auto-mode critique

161```

162 

163設定を保存した後、`claude auto-mode config` を実行して、有効なルールが期待通りであることを確認します。`"$defaults"` が展開されて配置されます。カスタムルールを記述した場合、`claude auto-mode critique` はそれらを確認し、曖昧、冗長、または誤検知を引き起こす可能性があるエントリにフラグを付けます。組み込みルールを削除または書き直す必要がある場合は、`claude auto-mode defaults` の出力をファイルに保存し、リストを編集して、結果を設定ファイルの `"$defaults"` の代わりに貼り付けます。

164 

165## 拒否を確認する

166 

167オートモードがツール呼び出しを拒否すると、拒否は `/permissions` の「最近拒否されたもの」タブに記録されます。拒否されたアクションで `r` を押してリトライ用にマークします。ダイアログを終了すると、Claude Code はモデルにそのツール呼び出しを再試行できることを伝えるメッセージを送信し、会話を再開します。

168 

169同じ宛先への繰り返しの拒否は、通常、分類器がコンテキストを欠いていることを意味します。その宛先を `autoMode.environment` に追加し、`claude auto-mode config` を実行して、それが有効になったことを確認します。

170 

171プログラムで拒否に対応するには、[`PermissionDenied` フック](/ja/hooks#permissiondenied)を使用します。

172 

173## 関連項目

174 

175* [権限モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)。オートモードとは何か、デフォルトでブロックされる内容、有効にする方法

176* [管理設定](/ja/server-managed-settings)。組織全体に `autoMode` 設定をデプロイ

177* [権限](/ja/permissions)。分類器が実行される前に適用される許可、質問、拒否ルール

178* [設定](/ja/settings)。`autoMode` キーを含む完全な設定リファレンス

best-practices.md +581 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code のベストプラクティス

6 

7> 環境設定から並列セッションでのスケーリングまで、Claude Code を最大限に活用するためのヒントとパターン。

8 

9Claude Code は agentic coding 環境です。質問に答えて待つチャットボットとは異なり、Claude Code はファイルを読み取り、コマンドを実行し、変更を加え、あなたが見守ったり、方向を変えたり、完全に任せたりしながら、自律的に問題を解決できます。

10 

11これはあなたの作業方法を変えます。自分でコードを書いて Claude にレビューしてもらう代わりに、やりたいことを説明すると Claude がそれをどのように構築するかを考え出します。Claude は探索し、計画し、実装します。

12 

13しかし、この自律性にも学習曲線があります。Claude は理解する必要がある特定の制約の中で動作します。

14 

15このガイドでは、Anthropic の内部チームと、様々なコードベース、言語、環境で Claude Code を使用しているエンジニアの間で効果的であることが証明されたパターンについて説明します。agentic ループがどのように機能するかについては、[Claude Code の仕組み](/ja/how-claude-code-works)を参照してください。

16 

17***

18 

19ほとんどのベストプラクティスは 1 つの制約に基づいています。Claude のコンテキストウィンドウはすぐにいっぱいになり、満杯になるにつれてパフォーマンスが低下します。

20 

21Claude のコンテキストウィンドウは、すべてのメッセージ、Claude が読み取ったすべてのファイル、およびすべてのコマンド出力を含む、会話全体を保持します。ただし、これはすぐにいっぱいになる可能性があります。単一のデバッグセッションまたはコードベース探索でも、数万のトークンを生成および消費する可能性があります。

22 

23LLM のパフォーマンスはコンテキストが満杯になるにつれて低下するため、これは重要です。コンテキストウィンドウがいっぱいになると、Claude は以前の指示を「忘れる」か、より多くの間違いを犯す可能性があります。コンテキストウィンドウは管理する最も重要なリソースです。セッションがどのように満杯になるかを実際に確認するには、スタートアップで何が読み込まれるか、各ファイル読み取りのコストについての[インタラクティブなウォークスルー](/ja/context-window)を参照してください。[カスタムステータスライン](/ja/statusline)でコンテキスト使用量を継続的に追跡し、トークン使用量を削減するための戦略については[トークン使用量を削減](/ja/costs#reduce-token-usage)を参照してください。

24 

25***

26 

27## Claude に自分の作業を検証する方法を与える

28 

29<Tip>

30 テスト、スクリーンショット、または期待される出力を含めて、Claude が自分自身をチェックできるようにします。これはあなたができる最も高いレバレッジのことです。

31</Tip>

32 

33Claude は、テストを実行したり、スクリーンショットを比較したり、出力を検証したりするなど、自分の作業を検証できるときに劇的に良くなります。

34 

35明確な成功基準がないと、正しく見えるが実際には機能しないものを生成する可能性があります。あなたが唯一のフィードバックループになり、すべての間違いがあなたの注意を必要とします。

36 

37| 戦略 | 前 | 後 |

38| ------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |

39| **検証基準を提供する** | *「メールアドレスを検証する関数を実装する」* | *「validateEmail 関数を書く。テストケースの例:[user@example.com](mailto:user@example.com) は true、invalid は false、[user@.com](mailto:user@.com) は false。実装後にテストを実行する」* |

40| **UI の変更を視覚的に検証する** | *「ダッシュボードをより良く見えるようにする」* | *「\[スクリーンショットを貼り付け] このデザインを実装する。結果のスクリーンショットを撮り、元のものと比較する。違いをリストアップして修正する」* |

41| **症状ではなく根本原因に対処する** | *「ビルドが失敗している」* | *「ビルドがこのエラーで失敗している:\[エラーを貼り付け]。修正して、ビルドが成功することを確認する。根本原因に対処し、エラーを抑制しない」* |

42 

43UI の変更は [Chrome 拡張機能の Claude](/ja/chrome) を使用して検証できます。これはブラウザで新しいタブを開き、UI をテストし、コードが機能するまで反復します。

44 

45検証はテストスイート、リンター、または出力をチェックする Bash コマンドにすることもできます。検証を堅牢にすることに投資してください。

46 

47***

48 

49## 最初に探索し、次に計画し、その後コーディングする

50 

51<Tip>

52 研究と計画を実装から分離して、間違った問題を解決することを避けます。

53</Tip>

54 

55Claude が直接コーディングにジャンプさせると、間違った問題を解決するコードが生成される可能性があります。[Plan Mode](/ja/common-workflows#use-plan-mode-for-safe-code-analysis) を使用して、探索を実行から分離します。

56 

57推奨されるワークフローには 4 つのフェーズがあります。

58 

59<Steps>

60 <Step title="探索">

61 Plan Mode に入ります。Claude はファイルを読み取り、変更を加えずに質問に答えます。

62 

63 ```txt claude (Plan Mode) theme={null}

64 read /src/auth and understand how we handle sessions and login.

65 also look at how we manage environment variables for secrets.

66 ```

67 </Step>

68 

69 <Step title="計画">

70 Claude に詳細な実装計画を作成するよう依頼します。

71 

72 ```txt claude (Plan Mode) theme={null}

73 I want to add Google OAuth. What files need to change?

74 What's the session flow? Create a plan.

75 ```

76 

77 `Ctrl+G` を押して、Claude が進む前に、テキストエディタで計画を開いて直接編集します。

78 </Step>

79 

80 <Step title="実装">

81 Normal Mode に戻り、Claude にコーディングさせ、計画に対して検証します。

82 

83 ```txt claude (Normal Mode) theme={null}

84 implement the OAuth flow from your plan. write tests for the

85 callback handler, run the test suite and fix any failures.

86 ```

87 </Step>

88 

89 <Step title="コミット">

90 Claude に説明的なメッセージでコミットし、PR を作成するよう依頼します。

91 

92 ```txt claude (Normal Mode) theme={null}

93 commit with a descriptive message and open a PR

94 ```

95 </Step>

96</Steps>

97 

98<Callout>

99 Plan Mode は便利ですが、オーバーヘッドも追加します。

100 

101 スコープが明確で修正が小さいタスク(タイプミスの修正、ログ行の追加、変数の名前変更など)の場合は、Claude に直接実行するよう依頼します。

102 

103 計画は、アプローチについて不確実な場合、変更が複数のファイルを変更する場合、または変更されるコードに不慣れな場合に最も役立ちます。差分を 1 文で説明できる場合は、計画をスキップします。

104</Callout>

105 

106***

107 

108## プロンプトで具体的なコンテキストを提供する

109 

110<Tip>

111 指示がより正確であるほど、必要な修正が少なくなります。

112</Tip>

113 

114Claude は意図を推測できますが、あなたの心を読むことはできません。特定のファイルを参照し、制約を述べ、例のパターンを指摘します。

115 

116| 戦略 | 前 | 後 |

117| ------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

118| **タスクをスコープする。** どのファイル、どのシナリオ、テスト設定を指定します。 | *「foo.py のテストを追加する」* | *「ユーザーがログアウトしているエッジケースをカバーする foo.py のテストを書く。モックを避ける。」* |

119| **ソースを指摘する。** Claude を質問に答えることができるソースに向けます。 | *「ExecutionFactory がこんなに奇妙な API を持っているのはなぜですか?」* | *「ExecutionFactory の git 履歴を調べて、その API がどのようになったかを要約する」* |

120| **既存のパターンを参照する。** Claude をコードベースのパターンに向けます。 | *「カレンダーウィジェットを追加する」* | *「ホームページで既存のウィジェットがどのように実装されているかを見て、パターンを理解する。HotDogWidget.php は良い例です。パターンに従って、ユーザーが月を選択し、前後にページネーションして年を選択できる新しいカレンダーウィジェットを実装する。コードベースで既に使用されているもの以外のライブラリを使用せずにゼロから構築する。」* |

121| **症状を説明する。** 症状、可能性のある場所、「修正」の外観を提供します。 | *「ログインバグを修正する」* | *「ユーザーはセッションタイムアウト後にログインが失敗すると報告しています。src/auth/ の認証フロー、特にトークン更新を確認します。問題を再現する失敗するテストを書き、修正する」* |

122 

123曖昧なプロンプトは、探索していて方向転換を余裕を持ってできるときに役立つことがあります。「このファイルで何を改善しますか?」のようなプロンプトは、あなたが尋ねることを考えなかったことを表面化させることができます。

124 

125### リッチコンテンツを提供する

126 

127<Tip>

128 `@` を使用してファイルを参照したり、スクリーンショット/画像を貼り付けたり、データを直接パイプしたりします。

129</Tip>

130 

131Claude にリッチデータを提供するにはいくつかの方法があります。

132 

133* **`@` でファイルを参照する** コードがどこにあるかを説明する代わりに。Claude は応答する前にファイルを読み取ります。

134* **画像を直接貼り付ける**。画像をコピー/貼り付けまたはドラッグアンドドロップしてプロンプトに入れます。

135* **ドキュメントと API リファレンスの URL を指定する**。`/permissions` を使用して、頻繁に使用されるドメインをホワイトリストに登録します。

136* **データをパイプする** `cat error.log | claude` を実行してファイルの内容を直接送信します。

137* **Claude に必要なものを取得させる**。Bash コマンド、MCP ツール、またはファイルを読み取ることを使用して、Claude 自身がコンテキストをプルするよう指示します。

138 

139***

140 

141## 環境を設定する

142 

143いくつかのセットアップステップにより、Claude Code はすべてのセッション全体で大幅に効果的になります。拡張機能の完全な概要と各機能をいつ使用するかについては、[Claude Code を拡張](/ja/features-overview)を参照してください。

144 

145### 効果的な CLAUDE.md を書く

146 

147<Tip>

148 `/init` を実行して、現在のプロジェクト構造に基づいてスターター CLAUDE.md ファイルを生成し、時間をかけて改善します。

149</Tip>

150 

151CLAUDE.md は Claude がすべての会話の開始時に読む特別なファイルです。Bash コマンド、コードスタイル、ワークフロールールを含めます。これにより、Claude はコードだけからは推測できない永続的なコンテキストを取得します。

152 

153`/init` コマンドはコードベースを分析してビルドシステム、テストフレームワーク、コードパターンを検出し、改善するための堅牢な基盤を提供します。

154 

155CLAUDE.md ファイルに必須の形式はありませんが、短く人間が読める状態に保ちます。例えば:

156 

157```markdown CLAUDE.md theme={null}

158# Code style

159- Use ES modules (import/export) syntax, not CommonJS (require)

160- Destructure imports when possible (eg. import { foo } from 'bar')

161 

162# Workflow

163- Be sure to typecheck when you're done making a series of code changes

164- Prefer running single tests, and not the whole test suite, for performance

165```

166 

167CLAUDE.md はすべてのセッションで読み込まれるため、広く適用されるもののみを含めます。ドメイン知識またはときどきのみ関連するワークフローについては、代わりに [skills](/ja/skills) を使用します。Claude はそれらをオンデマンドで読み込み、すべての会話を膨らませることなく使用します。

168 

169簡潔に保ちます。各行について、次のように尋ねます。*「これを削除すると Claude が間違いを犯しますか?」* そうでない場合は、削除します。膨らんだ CLAUDE.md ファイルは Claude があなたの実際の指示を無視するようにします。

170 

171| ✅ 含める | ❌ 除外する |

172| ------------------------- | ------------------------------ |

173| Claude が推測できない Bash コマンド | Claude がコードを読むことで理解できるもの |

174| デフォルトと異なるコードスタイルルール | Claude が既に知っている標準言語規約 |

175| テスト指示と推奨テストランナー | 詳細な API ドキュメント(代わりにドキュメントにリンク) |

176| リポジトリのエチケット(ブランチ命名、PR 規約) | 頻繁に変わる情報 |

177| プロジェクト固有のアーキテクチャ決定 | 長い説明またはチュートリアル |

178| 開発者環境の癖(必須環境変数) | ファイルごとのコードベースの説明 |

179| 一般的な落とし穴または明白でない動作 | 「きれいなコードを書く」のような自明なプラクティス |

180 

181Claude が CLAUDE.md にルールがあるにもかかわらず、あなたが望まないことをし続ける場合、ファイルはおそらく長すぎて、ルールが失われています。Claude が CLAUDE.md で答えられている質問をあなたに尋ねる場合、フレーズが曖昧かもしれません。CLAUDE.md をコードのように扱う:物事がうまくいかないときにレビューし、定期的に削除し、Claude の動作が実際に変わるかどうかを観察することで変更をテストします。

182 

183`@path/to/import` 構文を使用して追加ファイルをインポートすることで、指示を調整できます。

184 

185```markdown CLAUDE.md theme={null}

186See @README.md for project overview and @package.json for available npm commands.

187 

188# Additional Instructions

189- Git workflow: @docs/git-instructions.md

190- Personal overrides: @~/.claude/my-project-instructions.md

191```

192 

193CLAUDE.md ファイルはいくつかの場所に配置できます。

194 

195* **ホームフォルダ(`~/.claude/CLAUDE.md`)**:すべての Claude セッションに適用されます

196* **プロジェクトルート(`./CLAUDE.md`)**:git にチェックインしてチームと共有します

197* **プロジェクトルート(`./CLAUDE.local.md`)**:個人的なプロジェクト固有のメモ;このファイルを `.gitignore` に追加して、チームと共有しないようにします

198* **親ディレクトリ**:`root/CLAUDE.md` と `root/foo/CLAUDE.md` の両方が自動的にプルされるモノレポに役立ちます

199* **子ディレクトリ**:Claude はそれらのディレクトリ内のファイルを操作するときに、子 CLAUDE.md ファイルをオンデマンドでプルします

200 

201### パーミッションを設定する

202 

203<Tip>

204 [auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode) を使用して分類器に承認を処理させるか、`/permissions` を使用して特定のコマンドをホワイトリストに登録するか、`/sandbox` を使用して OS レベルの分離を行います。各方法は中断を減らしながら制御を保ちます。

205</Tip>

206 

207デフォルトでは、Claude Code はシステムを変更する可能性のあるアクション(ファイル書き込み、Bash コマンド、MCP ツールなど)の許可をリクエストします。これは安全ですが、面倒です。10 回目の承認後、あなたは本当にレビューしていません。クリックしているだけです。これらの中断を減らすには 3 つの方法があります。

208 

209* **Auto mode**:別の分類器モデルがコマンドをレビューし、スコープエスカレーション、未知のインフラストラクチャ、または敵対的なコンテンツ駆動のアクションのみをブロックします。タスクの一般的な方向を信頼しているが、すべてのステップをクリックしたくない場合に最適です

210* **パーミッションホワイトリスト**:安全であることがわかっているツール(`npm run lint` や `git commit` など)を許可します

211* **サンドボックス**:OS レベルの分離を有効にして、ファイルシステムとネットワークアクセスを制限し、Claude が定義された境界内でより自由に動作できるようにします

212 

213[パーミッションモード](/ja/permission-modes)、[パーミッションルール](/ja/permissions)、[サンドボックス](/ja/sandboxing)の詳細をお読みください。

214 

215### CLI ツールを使用する

216 

217<Tip>

218 Claude Code に `gh`、`aws`、`gcloud`、`sentry-cli` などの CLI ツールを使用して外部サービスと対話するよう指示します。

219</Tip>

220 

221CLI ツールは外部サービスと対話する最もコンテキスト効率的な方法です。GitHub を使用する場合は、`gh` CLI をインストールします。Claude は問題の作成、プルリクエストのオープン、コメントの読み取りにそれを使用する方法を知っています。`gh` がなければ、Claude は GitHub API を使用できますが、認証されていないリクエストはしばしばレート制限に達します。

222 

223Claude は、それが既に知らない CLI ツールを学ぶのにも効果的です。`Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.` のようなプロンプトを試してください。

224 

225### MCP サーバーを接続する

226 

227<Tip>

228 `claude mcp add` を実行して、Notion、Figma、またはデータベースなどの外部ツールを接続します。

229</Tip>

230 

231[MCP サーバー](/ja/mcp)を使用すると、Claude に問題トラッカーから機能を実装したり、データベースをクエリしたり、監視データを分析したり、Figma からデザインを統合したり、ワークフローを自動化したりするよう依頼できます。

232 

233### フックを設定する

234 

235<Tip>

236 例外なしで毎回発生する必要があるアクションにはフックを使用します。

237</Tip>

238 

239[フック](/ja/hooks-guide)は Claude のワークフロー内の特定のポイントで自動的にスクリプトを実行します。CLAUDE.md の指示とは異なり、フックは決定論的であり、アクションが発生することを保証します。

240 

241Claude はあなたのためにフックを書くことができます。*「すべてのファイル編集後に eslint を実行するフックを書く」* または *「migrations フォルダへの書き込みをブロックするフックを書く」* のようなプロンプトを試してください。`.claude/settings.json` を直接編集してフックを設定し、`/hooks` を実行して設定されているものを参照します。

242 

243### スキルを作成する

244 

245<Tip>

246 `.claude/skills/` に `SKILL.md` ファイルを作成して、Claude にドメイン知識と再利用可能なワークフローを提供します。

247</Tip>

248 

249[スキル](/ja/skills)は、プロジェクト、チーム、またはドメイン固有の情報で Claude の知識を拡張します。Claude は関連するときに自動的にそれらを適用するか、`/skill-name` で直接呼び出すことができます。

250 

251`.claude/skills/` にディレクトリと `SKILL.md` を追加してスキルを作成します。

252 

253```markdown .claude/skills/api-conventions/SKILL.md theme={null}

254---

255name: api-conventions

256description: REST API design conventions for our services

257---

258# API Conventions

259- Use kebab-case for URL paths

260- Use camelCase for JSON properties

261- Always include pagination for list endpoints

262- Version APIs in the URL path (/v1/, /v2/)

263```

264 

265スキルは、直接呼び出す再利用可能なワークフローを定義することもできます。

266 

267```markdown .claude/skills/fix-issue/SKILL.md theme={null}

268---

269name: fix-issue

270description: Fix a GitHub issue

271disable-model-invocation: true

272---

273Analyze and fix the GitHub issue: $ARGUMENTS.

274 

2751. Use `gh issue view` to get the issue details

2762. Understand the problem described in the issue

2773. Search the codebase for relevant files

2784. Implement the necessary changes to fix the issue

2795. Write and run tests to verify the fix

2806. Ensure code passes linting and type checking

2817. Create a descriptive commit message

2828. Push and create a PR

283```

284 

285`/fix-issue 1234` を実行して呼び出します。副作用のあるワークフローで、手動でトリガーしたい場合は `disable-model-invocation: true` を使用します。

286 

287### カスタムサブエージェントを作成する

288 

289<Tip>

290 `.claude/agents/` に特化したアシスタントを定義して、Claude が分離されたタスクに委譲できるようにします。

291</Tip>

292 

293[サブエージェント](/ja/sub-agents)は独自のコンテキストと独自の許可されたツールセットで実行されます。メインの会話を乱さずに、多くのファイルを読み取ったり、特化した焦点が必要なタスクに役立ちます。

294 

295```markdown .claude/agents/security-reviewer.md theme={null}

296---

297name: security-reviewer

298description: Reviews code for security vulnerabilities

299tools: Read, Grep, Glob, Bash

300model: opus

301---

302You are a senior security engineer. Review code for:

303- Injection vulnerabilities (SQL, XSS, command injection)

304- Authentication and authorization flaws

305- Secrets or credentials in code

306- Insecure data handling

307 

308Provide specific line references and suggested fixes.

309```

310 

311Claude に明示的にサブエージェントを使用するよう指示します。*「サブエージェントを使用してこのコードをセキュリティの問題についてレビューする。」*

312 

313### プラグインをインストールする

314 

315<Tip>

316 `/plugin` を実行してマーケットプレイスを参照します。プラグインは設定なしでスキル、ツール、統合を追加します。

317</Tip>

318 

319[プラグイン](/ja/plugins)は、コミュニティと Anthropic からの単一のインストール可能なユニットにスキル、フック、サブエージェント、MCP サーバーをバンドルします。型付き言語を使用する場合は、[コード インテリジェンス プラグイン](/ja/discover-plugins#code-intelligence)をインストールして、Claude に正確なシンボルナビゲーションと編集後の自動エラー検出を提供します。

320 

321スキル、サブエージェント、フック、MCP の選択に関するガイダンスについては、[Claude Code を拡張](/ja/features-overview#match-features-to-your-goal)を参照してください。

322 

323***

324 

325## 効果的にコミュニケーションする

326 

327Claude Code との通信方法は、結果の品質に大きく影響します。

328 

329### コードベースの質問をする

330 

331<Tip>

332 シニアエンジニアに尋ねるような質問を Claude にしてください。

333</Tip>

334 

335新しいコードベースにオンボーディングするときは、Claude Code を学習と探索に使用します。別のエンジニアに尋ねるのと同じ種類の質問を Claude に尋ねることができます。

336 

337* ロギングはどのように機能しますか?

338* 新しい API エンドポイントを作成するにはどうすればよいですか?

339* `foo.rs` の 134 行目の `async move { ... }` は何をしていますか?

340* `CustomerOnboardingFlowImpl` はどのエッジケースを処理しますか?

341* このコードが 333 行目で `bar()` の代わりに `foo()` を呼び出すのはなぜですか?

342 

343Claude Code をこのように使用することは、効果的なオンボーディングワークフローであり、ラップアップ時間を改善し、他のエンジニアの負荷を軽減します。特別なプロンプトは必要ありません。直接質問してください。

344 

345### Claude にあなたにインタビューさせる

346 

347<Tip>

348 より大きな機能については、Claude に最初にあなたにインタビューさせます。最小限のプロンプトで開始し、Claude に `AskUserQuestion` ツールを使用してあなたにインタビューするよう依頼します。

349</Tip>

350 

351Claude は、技術的な実装、UI/UX、エッジケース、トレードオフなど、あなたがまだ考えていないことについて質問します。

352 

353```text theme={null}

354I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.

355 

356Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.

357 

358Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.

359```

360 

361仕様が完成したら、新しいセッションを開始して実行します。新しいセッションはクリーンなコンテキストを持ち、実装に完全に焦点を当てており、参照する書かれた仕様があります。

362 

363***

364 

365## セッションを管理する

366 

367会話は永続的で可逆的です。これを有利に使用してください。

368 

369### 早期かつ頻繁に方向転換する

370 

371<Tip>

372 Claude が軌道を外れていることに気付いたらすぐに修正します。

373</Tip>

374 

375最良の結果は、タイトなフィードバックループから来ます。Claude は時々最初の試みで問題を完全に解決しますが、それを迅速に修正することは一般的により良い解決策をより速く生成します。

376 

377* **`Esc`**:`Esc` キーで Claude の中途半端なアクションを停止します。コンテキストは保持されるため、リダイレクトできます。

378* **`Esc + Esc` または `/rewind`**:`Esc` を 2 回押すか `/rewind` を実行して、巻き戻しメニューを開き、以前の会話とコード状態を復元するか、選択したメッセージから要約します。

379* **`"Undo that"`**:Claude に変更を元に戻すよう依頼します。

380* **`/clear`**:関連のないタスク間でコンテキストをリセットします。関連のないコンテキストを持つ長いセッションはパフォーマンスを低下させる可能性があります。

381 

3821 つのセッションで同じ問題について Claude を 2 回以上修正した場合、コンテキストは失敗したアプローチで乱雑です。`/clear` を実行し、学んだことを組み込んだより具体的なプロンプトで新しく開始します。より良いプロンプトを持つクリーンなセッションは、ほぼ常に蓄積された修正を持つ長いセッションを上回ります。

383 

384### コンテキストを積極的に管理する

385 

386<Tip>

387 関連のないタスク間で `/clear` を実行してコンテキストをリセットします。

388</Tip>

389 

390Claude Code はコンテキスト制限に近づくと会話履歴を自動的にコンパクトにします。これにより、重要なコードと決定を保持しながらスペースを解放します。

391 

392長いセッション中に、Claude のコンテキストウィンドウは関連のない会話、ファイルの内容、コマンドで満杯になる可能性があります。これはパフォーマンスを低下させ、時々 Claude を気を散らすことができます。

393 

394* タスク間で頻繁に `/clear` を使用してコンテキストウィンドウを完全にリセットします

395* 自動コンパクションがトリガーされると、Claude は最も重要なもの(コードパターン、ファイル状態、主要な決定を含む)を要約します

396* より多くの制御のために、`/compact <instructions>` を実行します。例えば `/compact Focus on the API changes`

397* 会話の一部のみをコンパクトするには、`Esc + Esc` または `/rewind` を使用し、メッセージチェックポイントを選択し、**ここから要約**を選択します。これにより、そのポイント以降のメッセージが凝縮され、以前のコンテキストは保持されます。

398* CLAUDE.md でコンパクション動作をカスタマイズします。`"When compacting, always preserve the full list of modified files and any test commands"` のような指示を使用して、重要なコンテキストが要約を生き残ることを確認します

399* 会話履歴に入らない簡単な質問については、[`/btw`](/ja/interactive-mode#side-questions-with-btw) を使用します。答えは却下可能なオーバーレイに表示され、会話履歴に入らないため、コンテキストを増やさずに詳細をチェックできます。

400 

401### 調査にサブエージェントを使用する

402 

403<Tip>

404 `"use subagents to investigate X"` で研究を委譲します。彼らは別のコンテキストで探索し、実装のためにメインの会話をクリーンに保ちます。

405</Tip>

406 

407コンテキストが基本的な制約であるため、サブエージェントは利用可能な最も強力なツールの 1 つです。Claude がコードベースを研究するとき、多くのファイルを読み取り、すべてがコンテキストを消費します。サブエージェントは別のコンテキストウィンドウで実行され、要約を報告します。

408 

409```text theme={null}

410Use subagents to investigate how our authentication system handles token

411refresh, and whether we have any existing OAuth utilities I should reuse.

412```

413 

414サブエージェントはコードベースを探索し、関連するファイルを読み取り、メインの会話を乱さずにすべての調査結果を報告します。

415 

416Claude が何かを実装した後、検証にサブエージェントを使用することもできます。

417 

418```text theme={null}

419use a subagent to review this code for edge cases

420```

421 

422### チェックポイントで巻き戻す

423 

424<Tip>

425 Claude が行うすべてのアクションはチェックポイントを作成します。以前のチェックポイントに会話、コード、またはその両方を復元できます。

426</Tip>

427 

428Claude は変更前に自動的にチェックポイントを作成します。`Escape` をダブルタップするか `/rewind` を実行して、巻き戻しメニューを開きます。会話のみを復元したり、コードのみを復元したり、両方を復元したり、選択したメッセージから要約したりできます。詳細については、[チェックポイント](/ja/checkpointing)を参照してください。

429 

430すべての動きを慎重に計画する代わりに、Claude に何か危険なことを試すよう指示できます。うまくいかない場合は、巻き戻して別のアプローチを試してください。チェックポイントはセッション全体で保持されるため、ターミナルを閉じても後で巻き戻すことができます。

431 

432<Warning>

433 チェックポイントは Claude が行った変更のみを追跡します。外部プロセスではありません。これは git の代替ではありません。

434</Warning>

435 

436### 会話を再開する

437 

438<Tip>

439 `claude --continue` を実行して中断したところから再開するか、`--resume` を使用して最近のセッションから選択します。

440</Tip>

441 

442Claude Code は会話をローカルに保存します。タスクが複数のセッションにまたがる場合、コンテキストを再度説明する必要はありません。

443 

444```bash theme={null}

445claude --continue # Resume the most recent conversation

446claude --resume # Select from recent conversations

447```

448 

449`/rename` を使用してセッションに `"oauth-migration"` や `"debugging-memory-leak"` などの説明的な名前を付けて、後で見つけやすくします。セッションをブランチのように扱う:異なるワークストリームは別々の永続的なコンテキストを持つことができます。

450 

451***

452 

453## 自動化とスケール

454 

4551 つの Claude で効果的になったら、並列セッション、非対話型モード、ファンアウトパターンで出力を乗算します。

456 

457これまでのすべては、1 人の人間、1 つの Claude、1 つの会話を想定しています。しかし、Claude Code は水平にスケールします。このセクションのテクニックは、より多くのことを成し遂げる方法を示しています。

458 

459### 非対話型モードを実行する

460 

461<Tip>

462 CI、プリコミットフック、またはスクリプトで `claude -p "prompt"` を使用します。ストリーミング JSON 出力の場合は `--output-format stream-json` を追加します。

463</Tip>

464 

465`claude -p "your prompt"` を使用すると、セッションなしで Claude を非対話的に実行できます。非対話型モードは、Claude を CI パイプライン、プリコミットフック、または自動化されたワークフローに統合する方法です。出力形式を使用すると、結果をプログラムで解析できます。プレーンテキスト、JSON、またはストリーミング JSON。

466 

467```bash theme={null}

468# One-off queries

469claude -p "Explain what this project does"

470 

471# Structured output for scripts

472claude -p "List all API endpoints" --output-format json

473 

474# Streaming for real-time processing

475claude -p "Analyze this log file" --output-format stream-json

476```

477 

478### 複数の Claude セッションを実行する

479 

480<Tip>

481 複数の Claude セッションを並列で実行して、開発を高速化し、分離された実験を実行するか、複雑なワークフローを開始します。

482</Tip>

483 

484並列セッションを実行するには 3 つの主な方法があります。

485 

486* [Claude Code デスクトップアプリ](/ja/desktop#work-in-parallel-with-sessions):複数のローカルセッションを視覚的に管理します。各セッションは独自の分離されたワークツリーを取得します。

487* [Web 上の Claude Code](/ja/claude-code-on-the-web):Anthropic のセキュアなクラウドインフラストラクチャで分離された VM で実行します。

488* [エージェントチーム](/ja/agent-teams):共有タスク、メッセージング、チームリーダーを備えた複数のセッションの自動調整。

489 

490作業を並列化することを超えて、複数のセッションは品質に焦点を当てたワークフローを有効にします。新しいコンテキストは、Claude がちょうど書いたコードに偏らないため、コードレビューを改善します。

491 

492例えば、Writer/Reviewer パターンを使用します。

493 

494| セッション A(ライター) | セッション B(レビュアー) |

495| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

496| `Implement a rate limiter for our API endpoints` | |

497| | `Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.` |

498| `Here's the review feedback: [Session B output]. Address these issues.` | |

499 

500テストで同様のことを行うことができます。1 つの Claude にテストを書かせ、別の Claude にそれらを渡すコードを書かせます。

501 

502### ファイル全体にファンアウトする

503 

504<Tip>

505 各タスクに対して `claude -p` を呼び出すループを実行します。バッチ操作のスコープパーミッションに `--allowedTools` を使用します。

506</Tip>

507 

508大規模な移行または分析の場合、多くの並列 Claude 呼び出し全体で作業を配布できます。

509 

510<Steps>

511 <Step title="タスクリストを生成する">

512 Claude に移行が必要なすべてのファイルをリストさせます(例えば、`list all 2,000 Python files that need migrating`)

513 </Step>

514 

515 <Step title="リストをループするスクリプトを書く">

516 ```bash theme={null}

517 for file in $(cat files.txt); do

518 claude -p "Migrate $file from React to Vue. Return OK or FAIL." \

519 --allowedTools "Edit,Bash(git commit *)"

520 done

521 ```

522 </Step>

523 

524 <Step title="いくつかのファイルでテストしてから、スケールで実行する">

525 最初の 2~3 ファイルで何が悪いかに基づいてプロンプトを改善し、完全なセットで実行します。`--allowedTools` フラグは Claude が何ができるかを制限します。これは無人で実行しているときに重要です。

526 </Step>

527</Steps>

528 

529Claude を既存のデータ/処理パイプラインに統合することもできます。

530 

531```bash theme={null}

532claude -p "<your prompt>" --output-format json | your_command

533```

534 

535開発中は `--verbose` を使用し、本番環境ではオフにします。

536 

537### auto mode で自律的に実行する

538 

539無中断の実行と背景のセーフティチェックについては、[auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode) を使用します。分類器モデルはコマンドを実行前にレビューし、スコープエスカレーション、未知のインフラストラクチャ、敵対的なコンテンツ駆動のアクションをブロックしながら、ルーチンワークをプロンプトなしで進めさせます。

540 

541```bash theme={null}

542claude --permission-mode auto -p "fix all lint errors"

543```

544 

545非対話型実行で `-p` フラグを使用する場合、分類器が繰り返しアクションをブロックするとき、フォールバックするユーザーがいないため、auto mode は中止します。[auto mode がフォールバックするとき](/ja/permission-modes#when-auto-mode-falls-back)のしきい値を参照してください。

546 

547***

548 

549## 一般的な失敗パターンを避ける

550 

551これらは一般的な間違いです。早期に認識することで時間を節約できます。

552 

553* **キッチンシンクセッション。** 1 つのタスクで開始し、関連のないことを Claude に尋ねてから、最初のタスクに戻ります。コンテキストは関連のない情報でいっぱいです。

554 > **修正**:関連のないタスク間で `/clear` を実行します。

555* **何度も修正する。** Claude が何か間違ったことをし、修正し、まだ間違っています。修正します。コンテキストは失敗したアプローチで乱雑です。

556 > **修正**:2 回の失敗した修正の後、`/clear` を実行し、学んだことを組み込んだより良い初期プロンプトを書きます。

557* **過度に指定された CLAUDE.md。** CLAUDE.md が長すぎる場合、Claude は重要なルールがノイズに失われるため、半分を無視します。

558 > **修正**:容赦なく削除します。Claude が指示なしで既に何かを正しく行う場合、削除するか、フックに変換します。

559* **信頼してから検証するギャップ。** Claude はもっともらしく見える実装を生成しますが、エッジケースを処理しません。

560 > **修正**:常に検証を提供します(テスト、スクリプト、スクリーンショット)。検証できない場合は、出荷しないでください。

561* **無限探索。** スコープなしで何かを「調査」するよう Claude に依頼します。Claude は数百のファイルを読み取り、コンテキストを満たします。

562 > **修正**:調査を狭くスコープするか、サブエージェントを使用して、探索がメインコンテキストを消費しないようにします。

563 

564***

565 

566## 直感を開発する

567 

568このガイドのパターンは固定されていません。それらはすべての状況で一般的にうまく機能する出発点ですが、すべての状況に最適ではない可能性があります。

569 

570時々、あなたは 1 つの複雑な問題に深く入り込んでいて、履歴が価値があるため、コンテキストを蓄積させるべきです。時々、タスクが探索的であるため、計画をスキップして Claude にそれを理解させるべきです。時々、曖昧なプロンプトは、Claude が問題をどのように解釈するかを制約する前に見たいため、正確です。

571 

572何が機能するかに注意を払います。Claude が素晴らしい出力を生成するとき、あなたが何をしたかに注意してください。プロンプト構造、提供したコンテキスト、あなたがいたモード。Claude が苦労するとき、なぜ尋ねてください。コンテキストがノイズが多すぎましたか?プロンプトが曖昧すぎましたか?タスクが 1 回のパスには大きすぎましたか?

573 

574時間をかけて、ガイドが捉えることができない直感を開発します。具体的にするべき時と開放的にするべき時、計画すべき時と探索すべき時、コンテキストをクリアすべき時と蓄積させるべき時を知ります。

575 

576## 関連リソース

577 

578* [Claude Code の仕組み](/ja/how-claude-code-works):agentic ループ、ツール、コンテキスト管理

579* [Claude Code を拡張](/ja/features-overview):スキル、フック、MCP、サブエージェント、プラグイン

580* [一般的なワークフロー](/ja/common-workflows):デバッグ、テスト、PR などのステップバイステップレシピ

581* [CLAUDE.md](/ja/memory):プロジェクト規約と永続的なコンテキストを保存する

champion-kit.md +195 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# チャンピオンキット

6 

7> Claude Code を社内で推進するエンジニア向けの実行計画:何を共有するか、質問にどう答えるか、チーム内での採用を拡大する方法。

8 

9このページは、既に Claude Code を使用しており、チームの採用を支援したいと考えている個別のエンジニア向けです。何を共有するか、受ける質問にどう答えるか、30 日間の実行計画、および一般的な懸念への対応について説明しています。

10 

11開発者ツールの採用は、ロールアウト発表によってはめったに起こりません。チームの誰かがそのツールをうまく使い始め、それについてオープンに話し、他の人が従いやすくすることで起こります。チャンピオンとして行う仕事はチームに不釣り合いな効果をもたらします。共有する例が多いほど、その後のエンジニアの学習曲線が短くなり、公開で答える質問が多いほど、1 人の経験がチーム全体が構築できるものになります。あなたはヘルプデスクではなく、チームの乗数として機能しており、このガイドはその条件下で役割を持続可能に保つために構成されています。

12 

13## チャンピオンの役割

14 

15この役割は、互いに強化し合う 3 つの行動で構成されています。

16 

17| 行動 | 実践ではどのように見えるか | なぜ重要か |

18| --------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |

19| 発見を共有する | 自分の仕事からのプロンプト、スクリーンショット、小さな成功をチームが既に読んでいる場所(エンジニアリングチャネル、スタンドアップスレッド、プルリクエストの説明など)に投稿します。 | 自分のコードベースから引き出した例は、外部ドキュメントよりも説得力があります。同僚は、ツールが自分たちが共有する問題にどのように適用されるかを正確に見ることができるからです。 |

20| 質問される人になる | 同僚が何かを達成した方法を尋ねるとき、実際に使用したプロンプトで応答して、自分のタスクに直接適用できるようにします。 | 具体的で実行可能な例は、好奇心と最初の成功した使用の間のギャップを埋めます。これは、ほとんどの採用努力が停滞する場所です。 |

21| サークルを拡大する | 専用チャネルや週次スレッドなど、軽量で定期的な習慣を少数確立して、注意がよそにあるときでも勢いが続くようにします。 | 1 人に依存する採用は脆弱です。共有された習慣によって行われる採用は、独自に複合し続けます。 |

22 

23これのほとんどは、既に行っている仕事の中に自然に適合します。違いは、発見がどこに投稿されるか、および答えがどのように伝わるかについて、少量の追加の意図です。

24 

25### これにかかるコスト

26 

27自分自身とリーダーとの期待を設定します。以下のアクティビティは、通常の労働週の中に適合することを目的としており、役割は追加のサポート責任ではなく、既存の仕事の乗数のままである必要があります。

28 

29| アクティビティ | 週あたりの時間 | ガイダンス |

30| --------------------- | -------- | ----------------------------------------------------------------------------- |

31| 成功とプロンプトの投稿 | 約 15 分 | スクリーンショットと 1 ~ 2 文で、その場で捉えます。正式な記事に変えることは避けてください。 |

32| 共有チャネルで質問に答える | 約 20 分 | 公開で 1 回答えて、質問が繰り返されるときはその答えにリンクバックします。 |

33| 週次のショーアンドテルスレッドをホストする | 約 5 分 | 開始プロンプトを投稿します。チームがコンテンツを提供します。 |

34| オプションのペアリングまたはウォークスルー | 0 ~ 30 分 | これを本当に行き詰まっている同僚のために予約し、時間をスケジュールする前に [Quickstart](/ja/quickstart) リンクを提供します。 |

35 

36## 発見を共有する

37 

38自分の経験は、同僚が遭遇する最も説得力のある資料です。なぜなら、それはコードベース、ワークフロー、および共有する問題に固有だからです。ドキュメントは何が可能かを人々に伝えます。投稿は、実際に環境で機能しているものを示します。

39 

40### 共有する価値があるもの

41 

42最も有用な投稿は、既に完了している結果ではなく、同僚が明日再利用できる技術について説明しています。技術はチーム全体に広がるにつれて複合します。ステータス更新はそうではありません。

43 

44再利用可能な技術の例:

45 

46* 「ディレクトリを @-mention することが機能することを学びました。`@src/components/` を指して、どれがテストを欠いているかを尋ねたところ、見落としていた 2 つが浮かび上がりました。」

47* 「Plan mode(`Shift+Tab`)は、編集が行われる前に正確にどのファイルが変更されるかを示します。これが、共有コードで使用するのに快適な理由です。」

48* 「Stop hook を設定して、長いタスクが完了したときにデスクトップ通知を受け取るようにしました。設定はスレッドにあります。」

49* 「`/init` を実行すると、リポジトリから `CLAUDE.md` が生成されるため、アシスタントは規約について再度質問するのを停止します。」

50 

51### どこで共有するか

52 

53チームが既に読んでいる場所に投稿します。目標は、目的地を作成するのではなく、通常の仕事の経路に例を配置することです。

54 

55| 場所 | 最適な用途 | 推奨形式 |

56| ---------------------------------- | ------------------------------------- | ----------------------------------------------------------- |

57| `#claude-code` または一般的なエンジニアリングチャネル | 発見、プロンプト、「今日学んだこと」の瞬間 | 1 ~ 2 文のコンテキストを伴うスクリーンショット |

58| プルリクエストの説明 | レビュアーが既に読んでいる実際のコードでアプローチを実証する | 「Claude と私はこのリファクタリングを行いました。アプローチについて説明するのに喜んでいます。」のような 1 行 |

59| スタンドアップまたは週次の書面による更新 | リーダーおよびスキップレベルマネージャーとの使用を正常化する | 1 つの具体的な結果を説明する 1 文 |

60| チームウィキまたは内部ドキュメント | 耐久性のあるパターン、カスタムスキル、および `CLAUDE.md` の例 | 短いページ。チャネルトピックからリンクされているため、発見可能なままです |

61 

62### 機能する形式

63 

64スクリーンショットに 1 行のコンテキストを伴う、または簡潔なビフォーアフター説明は、一般的に適切な詳細レベルです。各投稿を短く保ち、スクロール中の誰かでもポイントを吸収できるようにします。長い記事は後で保存されて忘れられる傾向がありますが、スクリーンショット付きの短い投稿はコピーされて試されます。

65 

66以下の例の投稿は、トーンと長さを示しています。逐語的にコピーするのではなく、適応させてください。

67 

68```text theme={null}

69ディレクトリを @-mention することが機能することを今日学びました。

70@src/components/ を指して、どのコンポーネントがテストを欠いているかを尋ねたところ、

71忘れていた 2 つが浮かび上がりました。

72```

73 

74```text theme={null}

75Stop hook を設定して、長いタスクが完了したときにデスクトップ通知を受け取るようにしました。

76リファクタリングを開始し、立ち去り、完了したときに通知されました。

77設定はスレッドにあります。

78```

79 

80```text theme={null}

81Plan mode は、重要なコードでこれを使用するのに快適な理由です。

82Shift+Tab を「plan」が表示されるまで押します。

83何かを変更する前に、正確にどのファイルに触れるつもりかを示します。

84```

85 

86## 質問される人になる

87 

88いくつかの例を共有すると、質問が続きます。これはチャンピオンの役割が最大のレバレッジを持つ場所です。なぜなら、1 人への良い答えは、同じチャネルを見ている他の数人のブロックを解除することが多いからです。

89 

90### 説明ではなくプロンプトで答える

91 

92同僚が何かを達成した方法を尋ねるとき、最も有用な応答は、実際に使用したプロンプトです。説明を書くことができるよりも、自分の問題に対してそのプロンプトを実行することで、より多くを学び、すぐに行動できるものを与えます。

93 

94```text theme={null}

95同僚:それがレース条件を見つけるようにどのようにしましたか?

96 

97チャンピオン:「@tests/scheduler.test.ts のテストは不安定です。理由を把握してください」と尋ねました。

98スケジューラーの 2 つの結合されていないプロミスをトレースしました。

99テストで同じ表現を試してください。

100```

101 

102### ドキュメントではなく機能を指す

103 

104「Plan mode を試してください。`Shift+Tab` を押して、それが表示されるまで」のような応答は、その瞬間のドキュメントへのリンクよりも有用です。後で詳細が必要な場合、その人は自分で見つけます。今、彼らはブロックを解除する 1 つのことが必要です。

105 

106### 聞く可能性のある質問

107 

108| 質問 | 推奨される応答 | フォローアップリソース |

109| ------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |

110| 「最初に何を試すべきですか?」 | 実際だが限定的なタスク、理想的には退屈だが難しくないため、その人が延期している bug または chore を推奨します。 | [Common workflows](/ja/common-workflows) |

111| 「コードを信頼するにはどうすればよいですか?」 | Plan mode を紹介します。`Shift+Tab` を押すと、それに切り替わり、Claude は変更する予定を正確に提案し、ユーザーが承認するまで何も変更されません。 | [Permissions](/ja/permissions) |

112| 「セットアップの価値はありますか?」 | インストールには約 2 分かかり、ターミナルで実行され、IDE 拡張機能は不要です。`/init` を 1 回実行するだけで、作業を開始するのに十分です。 | [Quickstart](/ja/quickstart) |

113| 「不正な結果が生成されました。」 | 失敗を Claude に戻すことを奨励します。エラーメッセージまたは失敗したテストを貼り付けることは、元のリクエストを言い換えるよりもはるかに効果的です。 | [Common workflows](/ja/common-workflows) |

114| 「コードベースの規約を理解していません。」 | `/init` を実行して `CLAUDE.md` ファイルを生成し、チームの規約、テストコマンド、および変更しないディレクトリを追加することを提案します。 | [Memory](/ja/memory) |

115| 「これは単なるオートコンプリートですか?」 | Claude が不慣れなファイルを説明し、サービス全体でバグをトレースし、または移行計画を作成する簡潔なデモンストレーションを提供します。これらのタスクには、1 行を完成させるのではなく、リポジトリ全体の推論が必要です。 | 2 分間のライブデモンストレーション |

116| 「セキュリティとデータ処理についてはどうですか?」 | この質問を管理者に参照してください。組織のデプロイメントとデータ処理ポリシーは既に設定されており、チャンピオンはこの答えを即興で行うべきではありません。 | [Security](/ja/security) · [Data usage](/ja/data-usage) |

117 

118## サークルを拡大する

119 

120目標は、プログラムを構築することや、ロールアウトを所有することではありません。アクティブに駆動を停止した後でも、勢いが続くことを可能にする、軽量な習慣を少数確立することです。チャネルの質問があなた以外の人によって答えられているとき、役割はその仕事をしました。

121 

122### 機能する傾向があるパターン

123 

124| パターン | 実行方法 | 必要な労力 |

125| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |

126| 専用チャネル | `#claude-code` チャネルを作成し(または既存のチャネルで定期的なスレッド)、[Quickstart](/ja/quickstart) リンクと 1 つの強い例をピンで留め、公開で質問に答えて、各答えがすべての視聴者に利益をもたらすようにします。 | セットアップに約 5 分、その後は環境 |

127| 週次のショーアンドテルスレッド | 毎週金曜日に「Claude は今週何を手伝いましたか?」と投稿します。準備、スライド、またはミーティングは不要です。スクリーンショットと短い説明で十分です。 | 週あたり約 2 分 |

128| カスタムスキルを共有する | 最も有用な `.claude/skills/<name>/SKILL.md` ファイルを投稿します。例えば、コミット前にテストと lint を実行する `/ship` スキルと、1 行の説明。スキルはプレーン Markdown であるため、同僚はすぐに採用できます。 | スキルあたり約 5 分 |

129| 自分の使用からセットアップガイドを生成する | 実際の時間を費やしたプロジェクトで `/team-onboarding` を実行します。Claude は最近のセッション、コマンド、MCP サーバーをスキャンし、新しいチームメイトが最初のメッセージとして貼り付けてセットアップを再生できるガイドを生成します。チャネルにピンで留めます。 | 約 2 分 |

130| 最初のタスクでペアリング | 開始している誰かに 1 つの 15 分間のペアリングセッションを提供します。自分のコードでの 1 つの成功した結果は、どのプレゼンテーションよりも説得力があります。 | 1 人あたり約 15 分 |

131| 次のチャンピオンを特定する | あなたに最も多くの質問をする同僚は、通常、この役割を引き受ける準備ができています。このページを転送し、チャネルの責任を分割します。 | 無視できる |

132 

133### 30 日間の実行計画

134 

135緩い計画が役立つ場合、以下のシーケンスはほとんどのチーム全体で機能する傾向があるものを反映しています。コンテキストに合わせて自由に調整してください。

136 

137<Steps>

138 <Step title="週 1:チャネルをシード化する">

139 チャネルを作成し、[Quickstart](/ja/quickstart) をピンで留め、プロンプトを含む 2 ~ 3 つの自分の例を投稿します。

140 

141 **機能していることを示す信号:** 数人の同僚が反応またはリプライし、少なくとも 1 つの質問がチャネルで尋ねられます。

142 </Step>

143 

144 <Step title="週 2:リズムを開始する">

145 週次のショーアンドテルスレッドを開始し、すべての質問に公開で答え、1 つのカスタムスキルまたは `CLAUDE.md` スニペットを共有します。

146 

147 **機能していることを示す信号:** あなた以外の誰かが自分の例を投稿します。

148 </Step>

149 

150 <Step title="週 3:ペアリングと統合">

151 2 ~ 3 つの短いペアリングセッションを提供し、最も一般的な質問と答えをピンで留めた FAQ メッセージに統合します。

152 

153 **機能していることを示す信号:** 繰り返し使用が見られ、同じ同僚が 1 回試して停止するのではなく、戻ってきます。

154 </Step>

155 

156 <Step title="週 4:引き渡す">

157 2 番目のチャンピオンを特定し、機能しているものと機能していないものについて、リーダーまたは管理者と簡潔な要約を共有します。

158 

159 **機能していることを示す信号:** チャネルの質問があなた以外の人によって答えられています。

160 </Step>

161</Steps>

162 

163### 誰かがより深く掘り下げたいとき

164 

165あなたはオンボーディングプログラムではなく、温かい紹介です。同僚が「これを試すべきか」から「これで効果的になるにはどうすればよいか」に進むとき、[Quickstart](/ja/quickstart) および [Common workflows](/ja/common-workflows) ページを指してください。これらには、本当に有用だが、自分で発見するのが難しい機能をカバーする短いセクションが含まれています。

166 

167## 一般的な懸念に対応する

168 

169健全なスケプティシズムは予想されます。エンジニアは、コードに触れるツールについて慎重である必要があります。最も効果的な応答は、一般的なケースを議論することはめったにありません。代わりに、懸念を認め、簡潔な言い換えを提供し、その人のコードで 1 つの具体的なデモンストレーションを提案します。ほとんどの懸念は、1 つの成功した経験によって解決されます。

170 

171| 懸念 | 推奨される応答 | 提供する証拠 |

172| --------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------- |

173| 「それなしの方が速いです。」 | これは、その人が日常的に書くコードに対して真実である可能性があります。レガシーファイル、不慣れなサービス、またはテストスキャフォルディングなど、レバレッジが最も高い仕事で試すことを提案します。 | 退屈なタスクを両方の方法で 1 回計時し、比較します。 |

174| 「AI が本番コードに触れることを信頼していません。」 | 変更が読まれずに着地しないことに同意します。Plan mode と通常の diff レビューを組み合わせることは、エンジニアが検査していない何かが適用されないことを意味し、プルリクエストと同じ標準です。 | 実際のファイルで plan mode をデモンストレーションします。 |

175| 「ジュニアエンジニアを弱くします。」 | うまく使用すれば、効果的な説明者です。ジュニアエンジニアに、何かを変更するよう求める前に、ファイルとその呼び出しサイトを説明するよう Claude に求めることを奨励します。 | 「@file を説明し、どこから呼び出されるかを説明してください」を一緒に実行します。 |

176| 「一度試したら、ハルシネーションしました。」 | これは通常、モデルの問題ではなく、コンテキストの問題です。関連ファイルを @-mention し、`/init` を実行し、実際のエラー出力を提供することで、通常、それが解決されます。 | 適切な `@` コンテキストで元のプロンプトを再実行します。 |

177| 「別のツールを学ぶ時間がありません。」 | Claude Code はプラットフォームではなく、ターミナルコマンドです。最初のセッション内で値を返さない場合、それを脇に置くことは合理的です。 | 2 分間のインストールに続いて 1 つの実際のバグ。 |

178 

179## クイックリファレンスシート

180 

181以下の技術は、最初の試行から日常的な使用に誰かを移動させるのに最も確実に機能するものです。チャネルにこのテーブルをピンで留めるか、独自に共有してください。

182 

183| 技術 | 適用方法 |

184| -------------- | ------------------------------------------------------------------------------------------------------------- |

185| 適切なコンテキストを提供する | `@file` または `@directory/` 参照を使用するか、エラーまたはログ出力を直接貼り付けます。関連するコンテキストを提供することは、精巧なプロンプトよりも効果的です。 |

186| 編集前に計画を確認する | `Shift+Tab` を押して plan mode に入ります。Claude は実行前に意図した変更を説明し、承認を待ちます。 |

187| リポジトリに教える | `/init` を実行して `CLAUDE.md` ファイルを生成し、規約、テストコマンド、および変更しないディレクトリを追加します。[Memory](/ja/memory) を参照してください。 |

188| ワークフローを再利用する | `.claude/skills/<name>/` に `SKILL.md` ファイルを保存して、チーム全体が使用できる `/name` スキルを作成します。[Skills](/ja/skills) を参照してください。 |

189| 長いタスク中に情報を得る | Stop hook を設定して、長時間実行されるタスクが完了したときにデスクトップ通知を受け取ります。[Hooks](/ja/hooks-guide) を参照してください。 |

190| 不正な結果から回復する | リクエストを言い換えるのではなく、失敗したテストまたはスタックトレースを Claude に貼り付けて、その特定の失敗に対処するよう求めます。 |

191| 編集を外科的に保つ | diff を求めるか、「X のみを変更する」と指定します。Claude はスコープが述べられるとスコープを尊重します。 |

192 

193<Tip>

194 Claude Code は頻繁に更新されます。このマテリアルを社内で配布する前に、[ドキュメントホームページ](/ja/overview) に対してバージョン固有の詳細を確認してください。

195</Tip>

channels.md +357 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# チャネルを使用して実行中のセッションにイベントをプッシュする

6 

7> チャネルを使用して、MCP サーバーから実行中の Claude Code セッションにメッセージ、アラート、ウェブフックをプッシュします。CI 結果、チャットメッセージ、監視イベントを転送して、あなたが不在の間に Claude が対応できるようにします。

8 

9<Note>

10 チャネルは[リサーチプレビュー](#research-preview)段階にあり、Claude Code v2.1.80 以降が必要です。claude.ai ログインが必要です。Console と API キー認証はサポートされていません。Team および Enterprise 組織は[明示的に有効にする](#enterprise-controls)必要があります。

11</Note>

12 

13チャネルは MCP サーバーで、実行中の Claude Code セッションにイベントをプッシュするため、あなたがターミナルにいない間に起こることに Claude が対応できます。チャネルは双方向にすることができます。Claude がイベントを読み取り、同じチャネルを通じて返信します。チャットブリッジのようなものです。イベントはセッションが開いている間だけ到着するため、常時稼働セットアップの場合は、Claude をバックグラウンドプロセスまたは永続的なターミナルで実行します。

14 

15新しいクラウドセッションを生成するか、ポーリングされるのを待つ統合とは異なり、イベントはすでに開いているセッションに到着します。[チャネルの比較方法](#how-channels-compare)を参照してください。

16 

17チャネルをプラグインとしてインストールし、独自の認証情報で設定します。Telegram、Discord、iMessage はリサーチプレビューに含まれています。

18 

19Claude がチャネルを通じて返信する場合、ターミナルに受信メッセージが表示されますが、返信テキストは表示されません。ターミナルはツール呼び出しと確認(「送信済み」など)を表示し、実際の返信は他のプラットフォームに表示されます。

20 

21このページでは以下をカバーしています。

22 

23* [サポートされているチャネル](#supported-channels):Telegram、Discord、iMessage のセットアップ

24* [チャネルをインストールして実行する](#quickstart)(fakechat、localhost デモ)

25* [メッセージをプッシュできるユーザー](#security):送信者許可リストとペアリング方法

26* [組織のチャネルを有効にする](#enterprise-controls)(Team および Enterprise)

27* [チャネルの比較方法](#how-channels-compare)(ウェブセッション、Slack、MCP、リモートコントロール)

28 

29独自のチャネルを構築するには、[チャネルリファレンス](/ja/channels-reference)を参照してください。

30 

31## サポートされているチャネル

32 

33サポートされている各チャネルはプラグインで、[Bun](https://bun.sh) が必要です。実際のプラットフォームを接続する前にプラグインフローの実践的なデモを試すには、[fakechat クイックスタート](#quickstart)を試してください。

34 

35<Tabs>

36 <Tab title="Telegram">

37 完全な[Telegram プラグインソース](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)を表示します。

38 

39 <Steps>

40 <Step title="Telegram ボットを作成する">

41 Telegram で [BotFather](https://t.me/BotFather) を開き、`/newbot` を送信します。表示名と `bot` で終わる一意のユーザー名を指定します。BotFather が返すトークンをコピーします。

42 </Step>

43 

44 <Step title="プラグインをインストールする">

45 Claude Code で以下を実行します。

46 

47 ```

48 /plugin install telegram@claude-plugins-official

49 ```

50 

51 Claude Code がプラグインがどのマーケットプレイスにも見つからないと報告する場合、マーケットプレイスが見つからないか古い可能性があります。`/plugin marketplace update claude-plugins-official` を実行して更新するか、まだ追加していない場合は `/plugin marketplace add anthropics/claude-plugins-official` を実行します。その後、インストールを再試行します。

52 

53 インストール後、`/reload-plugins` を実行してプラグインの設定コマンドをアクティブにします。

54 </Step>

55 

56 <Step title="トークンを設定する">

57 BotFather からのトークンで設定コマンドを実行します。

58 

59 ```

60 /telegram:configure <token>

61 ```

62 

63 これは `~/.claude/channels/telegram/.env` に保存されます。Claude Code を起動する前に、シェル環境で `TELEGRAM_BOT_TOKEN` を設定することもできます。

64 </Step>

65 

66 <Step title="チャネルを有効にして再起動する">

67 Claude Code を終了し、チャネルフラグで再起動します。これにより Telegram プラグインが起動し、ボットからのメッセージのポーリングが開始されます。

68 

69 ```bash theme={null}

70 claude --channels plugin:telegram@claude-plugins-official

71 ```

72 </Step>

73 

74 <Step title="アカウントをペアリングする">

75 Telegram を開き、ボットに任意のメッセージを送信します。ボットはペアリングコードで返信します。

76 

77 <Note>ボットが応答しない場合は、前のステップから `--channels` で Claude Code が実行されていることを確認してください。ボットはチャネルがアクティブな間だけ返信できます。</Note>

78 

79 Claude Code に戻り、以下を実行します。

80 

81 ```

82 /telegram:access pair <code>

83 ```

84 

85 その後、アクセスをロックダウンして、アカウントだけがメッセージを送信できるようにします。

86 

87 ```

88 /telegram:access policy allowlist

89 ```

90 </Step>

91 </Steps>

92 </Tab>

93 

94 <Tab title="Discord">

95 完全な[Discord プラグインソース](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord)を表示します。

96 

97 <Steps>

98 <Step title="Discord ボットを作成する">

99 [Discord Developer Portal](https://discord.com/developers/applications) に移動し、**New Application** をクリックして名前を付けます。**Bot** セクションでユーザー名を作成し、**Reset Token** をクリックしてトークンをコピーします。

100 </Step>

101 

102 <Step title="Message Content Intent を有効にする">

103 ボットの設定で、**Privileged Gateway Intents** までスクロールし、**Message Content Intent** を有効にします。

104 </Step>

105 

106 <Step title="ボットをサーバーに招待する">

107 **OAuth2 > URL Generator** に移動します。`bot` スコープを選択し、以下の権限を有効にします。

108 

109 * View Channels

110 * Send Messages

111 * Send Messages in Threads

112 * Read Message History

113 * Attach Files

114 * Add Reactions

115 

116 生成された URL を開いてボットをサーバーに追加します。

117 </Step>

118 

119 <Step title="プラグインをインストールする">

120 Claude Code で以下を実行します。

121 

122 ```

123 /plugin install discord@claude-plugins-official

124 ```

125 

126 Claude Code がプラグインがどのマーケットプレイスにも見つからないと報告する場合、マーケットプレイスが見つからないか古い可能性があります。`/plugin marketplace update claude-plugins-official` を実行して更新するか、まだ追加していない場合は `/plugin marketplace add anthropics/claude-plugins-official` を実行します。その後、インストールを再試行します。

127 

128 インストール後、`/reload-plugins` を実行してプラグインの設定コマンドをアクティブにします。

129 </Step>

130 

131 <Step title="トークンを設定する">

132 コピーしたボットトークンで設定コマンドを実行します。

133 

134 ```

135 /discord:configure <token>

136 ```

137 

138 これは `~/.claude/channels/discord/.env` に保存されます。Claude Code を起動する前に、シェル環境で `DISCORD_BOT_TOKEN` を設定することもできます。

139 </Step>

140 

141 <Step title="チャネルを有効にして再起動する">

142 Claude Code を終了し、チャネルフラグで再起動します。これにより Discord プラグインが接続され、ボットがメッセージを受信して応答できるようになります。

143 

144 ```bash theme={null}

145 claude --channels plugin:discord@claude-plugins-official

146 ```

147 </Step>

148 

149 <Step title="アカウントをペアリングする">

150 Discord でボットに DM を送信します。ボットはペアリングコードで返信します。

151 

152 <Note>ボットが応答しない場合は、前のステップから `--channels` で Claude Code が実行されていることを確認してください。ボットはチャネルがアクティブな間だけ返信できます。</Note>

153 

154 Claude Code に戻り、以下を実行します。

155 

156 ```

157 /discord:access pair <code>

158 ```

159 

160 その後、アクセスをロックダウンして、アカウントだけがメッセージを送信できるようにします。

161 

162 ```

163 /discord:access policy allowlist

164 ```

165 </Step>

166 </Steps>

167 </Tab>

168 

169 <Tab title="iMessage">

170 完全な[iMessage プラグインソース](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)を表示します。

171 

172 iMessage チャネルは Messages データベースを直接読み取り、AppleScript を通じて返信を送信します。macOS が必要で、ボットトークンや外部サービスは不要です。

173 

174 <Steps>

175 <Step title="フルディスクアクセスを許可する">

176 `~/Library/Messages/chat.db` にある Messages データベースは macOS によって保護されています。サーバーが初めてそれを読み取るとき、macOS はアクセスを求めるプロンプトを表示します。**Allow** をクリックします。プロンプトは Bun を起動したアプリ(Terminal、iTerm、IDE など)の名前を表示します。

177 

178 プロンプトが表示されない場合、または Don't Allow をクリックした場合は、**System Settings > Privacy & Security > Full Disk Access** でアクセスを手動で許可し、ターミナルを追加します。これがないと、サーバーは `authorization denied` で直ちに終了します。

179 </Step>

180 

181 <Step title="プラグインをインストールする">

182 Claude Code で以下を実行します。

183 

184 ```

185 /plugin install imessage@claude-plugins-official

186 ```

187 

188 Claude Code がプラグインがどのマーケットプレイスにも見つからないと報告する場合、マーケットプレイスが見つからないか古い可能性があります。`/plugin marketplace update claude-plugins-official` を実行して更新するか、まだ追加していない場合は `/plugin marketplace add anthropics/claude-plugins-official` を実行します。その後、インストールを再試行します。

189 </Step>

190 

191 <Step title="チャネルを有効にして再起動する">

192 Claude Code を終了し、チャネルフラグで再起動します。

193 

194 ```bash theme={null}

195 claude --channels plugin:imessage@claude-plugins-official

196 ```

197 </Step>

198 

199 <Step title="自分自身にテキストを送信する">

200 Apple ID にサインインしているデバイスで Messages を開き、自分自身にメッセージを送信します。それは Claude に直ちに到着します。セルフチャットはセットアップなしでアクセス制御をバイパスします。

201 

202 <Note>Claude が送信する最初の返信は、ターミナルが Messages を制御できるかどうかを尋ねる macOS Automation プロンプトをトリガーします。**OK** をクリックします。</Note>

203 </Step>

204 

205 <Step title="他の送信者を許可する">

206 デフォルトでは、独自のメッセージだけが通過します。別の連絡先が Claude に到達できるようにするには、ハンドルを追加します。

207 

208 ```

209 /imessage:access allow +15551234567

210 ```

211 

212 ハンドルは `+country` 形式の電話番号または `user@example.com` のような Apple ID メールです。

213 </Step>

214 </Steps>

215 </Tab>

216</Tabs>

217 

218また、[独自のチャネルを構築](/ja/channels-reference)して、まだプラグインがないシステムに対応することもできます。

219 

220## クイックスタート

221 

222Fakechat は公式にサポートされているデモチャネルで、localhost でチャット UI を実行し、認証は不要で、設定する外部サービスもありません。

223 

224Fakechat をインストールして有効にすると、ブラウザで入力でき、メッセージが Claude Code セッションに到着します。Claude が返信し、返信がブラウザに戻ります。Fakechat インターフェイスをテストした後、[Telegram](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)、[Discord](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord)、または [iMessage](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage) を試してください。

225 

226Fakechat デモを試すには、以下が必要です。

227 

228* Claude Code が[インストールされ、認証されている](/ja/quickstart#step-1-install-claude-code)(claude.ai アカウント)

229* [Bun](https://bun.sh) がインストールされている。事前構築されたチャネルプラグインは Bun スクリプトです。`bun --version` で確認します。失敗する場合は、[Bun をインストール](https://bun.sh/docs/installation)します。

230* **Team/Enterprise ユーザー**:組織管理者が管理設定で[チャネルを有効にする](#enterprise-controls)必要があります。

231 

232<Steps>

233 <Step title="Fakechat チャネルプラグインをインストールする">

234 Claude Code セッションを開始し、インストールコマンドを実行します。

235 

236 ```text theme={null}

237 /plugin install fakechat@claude-plugins-official

238 ```

239 

240 Claude Code がプラグインがどのマーケットプレイスにも見つからないと報告する場合、マーケットプレイスが見つからないか古い可能性があります。`/plugin marketplace update claude-plugins-official` を実行して更新するか、まだ追加していない場合は `/plugin marketplace add anthropics/claude-plugins-official` を実行します。その後、インストールを再試行します。

241 </Step>

242 

243 <Step title="チャネルを有効にして再起動する">

244 Claude Code を終了し、`--channels` で再起動してインストールした Fakechat プラグインを渡します。

245 

246 ```bash theme={null}

247 claude --channels plugin:fakechat@claude-plugins-official

248 ```

249 

250 Fakechat サーバーが自動的に起動します。

251 

252 <Tip>

253 複数のプラグインを `--channels` に渡すことができます(スペース区切り)。

254 </Tip>

255 </Step>

256 

257 <Step title="メッセージをプッシュする">

258 [http://localhost:8787](http://localhost:8787) で Fakechat UI を開き、メッセージを入力します。

259 

260 ```text theme={null}

261 hey, what's in my working directory?

262 ```

263 

264 メッセージは Claude Code セッションに `<channel source="fakechat">` イベントとして到着します。Claude がそれを読み取り、作業を行い、Fakechat の `reply` ツールを呼び出します。答えがチャット UI に表示されます。

265 </Step>

266</Steps>

267 

268Claude がターミナルから離れている間にパーミッションプロンプトにヒットした場合、セッションは応答するまで一時停止します。[パーミッションリレー機能](/ja/channels-reference#relay-permission-prompts)を宣言するチャネルサーバーは、これらのプロンプトをあなたに転送して、リモートで承認または拒否できるようにします。無人使用の場合、[`--dangerously-skip-permissions`](/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) はプロンプトを完全にバイパスしますが、信頼できる環境でのみ使用してください。

269 

270## セキュリティ

271 

272承認されたすべてのチャネルプラグインは送信者許可リストを保持します。追加した ID だけがメッセージをプッシュでき、他のすべては静かにドロップされます。

273 

274Telegram と Discord はペアリングでリストをブートストラップします。

275 

2761. Telegram または Discord でボットを見つけ、任意のメッセージを送信します。

2772. ボットはペアリングコードで返信します。

2783. Claude Code セッションで、プロンプトが表示されたときにコードを承認します。

2794. 送信者 ID が許可リストに追加されます。

280 

281iMessage は異なります。自分自身にテキストを送信するとゲートを自動的にバイパスし、`/imessage:access allow` でハンドルを使用して他の連絡先を追加します。

282 

283その上に、`--channels` で各セッションで有効なサーバーを制御し、Team および Enterprise プランでは組織が [`channelsEnabled`](#enterprise-controls) で可用性を制御します。

284 

285`.mcp.json` にあるだけではメッセージをプッシュするのに十分ではありません。サーバーも `--channels` で名前を付ける必要があります。

286 

287許可リストは、チャネルが宣言する場合、[パーミッションリレー](/ja/channels-reference#relay-permission-prompts)もゲートします。チャネルを通じて返信できるすべてのユーザーは、セッションでのツール使用を承認または拒否できるため、その権限を信頼できる許可リスト送信者だけを追加してください。

288 

289## Enterprise コントロール

290 

291Team および Enterprise プランでは、チャネルはデフォルトでオフです。管理者は、ユーザーがオーバーライドできない 2 つの[管理設定](/ja/settings)を通じて可用性を制御します。

292 

293| 設定 | 目的 | 設定されていない場合 |

294| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------ |

295| `channelsEnabled` | マスタースイッチ。チャネルがメッセージを配信するには `true` である必要があります。[claude.ai Admin console](https://claude.ai/admin-settings/claude-code) トグルまたは管理設定で直接設定します。オフの場合、開発フラグを含むすべてのチャネルをブロックします。 | チャネルがブロックされます |

296| `allowedChannelPlugins` | チャネルが有効になったら、どのプラグインが登録できるか。設定されている場合、Anthropic が管理するリストを置き換えます。`channelsEnabled` が `true` の場合のみ適用されます。 | Anthropic デフォルトリストが適用されます |

297 

298組織のない Pro および Max ユーザーはこれらのチェックを完全にスキップします。チャネルが利用可能で、ユーザーは `--channels` でセッションごとにオプトインします。

299 

300### 組織のチャネルを有効にする

301 

302管理者は [**claude.ai → Admin settings → Claude Code → Channels**](https://claude.ai/admin-settings/claude-code) からチャネルを有効にするか、管理設定で `channelsEnabled` を `true` に設定できます。

303 

304有効にすると、組織内のユーザーは `--channels` を使用して個別のセッションにチャネルサーバーをオプトインできます。設定が無効または未設定の場合、MCP サーバーは接続され、そのツールは機能しますが、チャネルメッセージは到着しません。スタートアップ警告は、ユーザーに管理者が設定を有効にするよう指示します。

305 

306### チャネルプラグインが実行できるものを制限する

307 

308デフォルトでは、Anthropic が管理する許可リスト上のプラグインはチャネルとして登録できます。Team および Enterprise プランの管理者は、管理設定で `allowedChannelPlugins` を設定することで、その許可リストを独自のものに置き換えることができます。これを使用して、許可されている公式プラグインを制限したり、独自の内部マーケットプレイスからチャネルを承認したり、その両方を行ったりします。各エントリは、プラグインとそれが由来するマーケットプレイスに名前を付けます。

309 

310```json theme={null}

311{

312 "channelsEnabled": true,

313 "allowedChannelPlugins": [

314 { "marketplace": "claude-plugins-official", "plugin": "telegram" },

315 { "marketplace": "claude-plugins-official", "plugin": "discord" },

316 { "marketplace": "acme-corp-plugins", "plugin": "internal-alerts" }

317 ]

318}

319```

320 

321`allowedChannelPlugins` が設定されている場合、Anthropic 許可リスト全体を置き換えます。リストされたプラグインだけが登録できます。デフォルト Anthropic 許可リストにフォールバックするには、設定されていないままにします。空の配列はすべてのチャネルプラグインを許可リストからブロックしますが、`--dangerously-load-development-channels` はローカルテストのためにそれをバイパスできます。開発フラグを含むチャネルを完全にブロックするには、代わりに `channelsEnabled` を設定されていないままにします。

322 

323この設定には `channelsEnabled: true` が必要です。ユーザーが `--channels` にリストにないプラグインを渡す場合、Claude Code は通常起動しますが、チャネルは登録されず、スタートアップ通知はプラグインが組織の承認リストにないことを説明します。

324 

325## リサーチプレビュー

326 

327チャネルはリサーチプレビュー機能です。可用性は段階的にロールアウトされており、`--channels` フラグの構文とプロトコルコントラクトはフィードバックに基づいて変更される可能性があります。

328 

329プレビュー中、`--channels` は Anthropic が管理する許可リストからのプラグイン、または管理者が [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run) を設定している場合は組織の許可リストからのプラグインのみを受け入れます。[claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) のチャネルプラグインはデフォルトで承認されたセットです。有効な許可リストにないものを渡す場合、Claude Code は通常起動しますが、チャネルは登録されず、スタートアップ通知は理由を伝えます。

330 

331構築しているチャネルをテストするには、`--dangerously-load-development-channels` を使用します。構築するカスタムチャネルのテストについては、[リサーチプレビュー中のテスト](/ja/channels-reference#test-during-the-research-preview)を参照してください。

332 

333[Claude Code GitHub リポジトリ](https://github.com/anthropics/claude-code/issues)で問題またはフィードバックを報告してください。

334 

335## チャネルの比較方法

336 

337Claude Code のいくつかの機能はターミナルの外のシステムに接続し、それぞれ異なる種類の作業に適しています。

338 

339| 機能 | 何をするか | 適している用途 |

340| ----------------------------------------------- | ------------------------------------------ | ---------------------------------------- |

341| [ウェブ上の Claude Code](/ja/claude-code-on-the-web) | GitHub からクローンされた新しいクラウドサンドボックスでタスクを実行 | 後で確認する自己完結型の非同期作業を委任する |

342| [Slack の Claude](/ja/slack) | チャネルまたはスレッドの `@Claude` メンションからウェブセッションを生成 | チームの会話コンテキストから直接タスクを開始する |

343| 標準 [MCP サーバー](/ja/mcp) | Claude はタスク中にそれをクエリします。セッションには何もプッシュされません | Claude にシステムを読み取るまたはクエリするオンデマンドアクセスを提供する |

344| [リモートコントロール](/ja/remote-control) | claude.ai または Claude モバイルアプリからローカルセッションを駆動 | デスクから離れている間に進行中のセッションを操舵する |

345 

346チャネルは、Claude 以外のソースからのイベントをすでに実行中のローカルセッションにプッシュすることで、そのリストのギャップを埋めます。

347 

348* **チャットブリッジ**:Telegram、Discord、または iMessage を通じて電話から Claude に何かを尋ね、答えが同じチャットに戻ってきます。作業はマシンで実際のファイルに対して実行されます。

349* **[ウェブフックレシーバー](/ja/channels-reference#example-build-a-webhook-receiver)**:CI、エラートラッカー、デプロイパイプライン、または他の外部サービスからのウェブフックが、Claude がファイルをすでに開いており、デバッグしていたことを覚えている場所に到着します。

350 

351## 次のステップ

352 

353チャネルが実行されたら、これらの関連機能を探索してください。

354 

355* [独自のチャネルを構築](/ja/channels-reference)して、まだプラグインがないシステムに対応する

356* [リモートコントロール](/ja/remote-control)を使用して、イベントをそれに転送する代わりに電話からローカルセッションを駆動する

357* [スケジュール済みタスク](/ja/scheduled-tasks)を使用して、プッシュされたイベントに対応する代わりにタイマーでポーリングする

channels-reference.md +749 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# チャネルリファレンス

6 

7> webhook、アラート、チャットメッセージを Claude Code セッションにプッシュする MCP サーバーを構築します。チャネルコントラクトのリファレンス:機能宣言、通知イベント、返信ツール、送信者ゲーティング、権限リレー。

8 

9<Note>

10 チャネルは[リサーチプレビュー](/ja/channels#research-preview)段階にあり、Claude Code v2.1.80 以降が必要です。claude.ai ログインが必要です。Console と API キー認証はサポートされていません。Team および Enterprise 組織は[明示的に有効化](/ja/channels#enterprise-controls)する必要があります。

11</Note>

12 

13チャネルは、Claude Code セッションにイベントをプッシュする MCP サーバーで、Claude がターミナルの外で発生していることに反応できるようにします。

14 

15一方向または双方向のチャネルを構築できます。一方向チャネルは、アラート、webhook、または監視イベントを転送して Claude が対応できるようにします。チャットブリッジのような双方向チャネルは、Claude がメッセージを返送できるように[返信ツールを公開](#expose-a-reply-tool)することもできます。信頼できる送信者パスを持つチャネルは、[権限プロンプトをリレー](#relay-permission-prompts)することを選択して、ツール使用をリモートで承認または拒否できます。

16 

17このページでは以下をカバーしています:

18 

19* [概要](#overview):チャネルの仕組み

20* [必要なもの](#what-you-need):要件と一般的な手順

21* [例:webhook レシーバーを構築](#example-build-a-webhook-receiver):最小限の一方向ウォークスルー

22* [サーバーオプション](#server-options):コンストラクタフィールド

23* [通知フォーマット](#notification-format):イベントペイロード

24* [返信ツールを公開](#expose-a-reply-tool):Claude がメッセージを返送できるようにする

25* [インバウンドメッセージをゲート](#gate-inbound-messages):プロンプトインジェクションを防ぐための送信者チェック

26* [権限プロンプトをリレー](#relay-permission-prompts):ツール承認プロンプトをリモートチャネルに転送

27 

28既存のチャネルを使用する場合は、[チャネル](/ja/channels)を参照してください。Telegram、Discord、iMessage、および fakechat はリサーチプレビューに含まれています。

29 

30## 概要

31 

32チャネルは、Claude Code と同じマシン上で実行される[MCP](https://modelcontextprotocol.io) サーバーです。Claude Code はそれをサブプロセスとして生成し、stdio 経由で通信します。チャネルサーバーは、外部システムと Claude Code セッション間のブリッジです:

33 

34* **チャットプラットフォーム**(Telegram、Discord):プラグインはローカルで実行され、プラットフォームの API をポーリングして新しいメッセージを取得します。誰かがボットに DM を送信すると、プラグインはメッセージを受け取り、Claude に転送します。公開する URL は不要です。

35* **Webhook**(CI、監視):サーバーはローカル HTTP ポートでリッスンします。外部システムがそのポートに POST し、サーバーはペイロードを Claude にプッシュします。

36 

37<img src="https://mintlify.s3.us-west-1.amazonaws.com/claude-code/ja/images/channel-architecture.svg" alt="外部システムがローカルチャネルサーバーに接続し、stdio 経由で Claude Code と通信するアーキテクチャ図" />

38 

39## 必要なもの

40 

41唯一のハード要件は、[`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk) パッケージと Node.js 互換ランタイムです。[Bun](https://bun.sh)、[Node](https://nodejs.org)、[Deno](https://deno.com) すべて動作します。リサーチプレビューの事前構築プラグインは Bun を使用していますが、チャネルはそうである必要はありません。

42 

43サーバーは以下を実行する必要があります:

44 

451. `claude/channel` 機能を宣言して、Claude Code が通知リスナーを登録するようにする

462. 何かが発生したときに `notifications/claude/channel` イベントを発行する

473. [stdio トランスポート](https://modelcontextprotocol.io/docs/concepts/transports#standard-io)経由で接続する(Claude Code はサーバーをサブプロセスとして生成)

48 

49[サーバーオプション](#server-options)と[通知フォーマット](#notification-format)セクションでは、これらのそれぞれについて詳しく説明しています。完全なウォークスルーについては、[例:webhook レシーバーを構築](#example-build-a-webhook-receiver)を参照してください。

50 

51リサーチプレビュー中、カスタムチャネルは[承認許可リスト](/ja/channels#supported-channels)にありません。ローカルでテストするには `--dangerously-load-development-channels` を使用してください。詳細については、[リサーチプレビュー中のテスト](#test-during-the-research-preview)を参照してください。

52 

53## 例:webhook レシーバーを構築

54 

55このウォークスルーでは、HTTP リクエストをリッスンして Claude Code セッションに転送する単一ファイルサーバーを構築します。終了時には、CI パイプライン、監視アラート、または `curl` コマンドなど、HTTP POST を送信できるものはすべて、Claude にイベントをプッシュできます。

56 

57この例では、組み込み HTTP サーバーと TypeScript サポートのために [Bun](https://bun.sh) をランタイムとして使用しています。代わりに [Node](https://nodejs.org) または [Deno](https://deno.com) を使用できます。唯一の要件は [MCP SDK](https://www.npmjs.com/package/@modelcontextprotocol/sdk) です。

58 

59<Steps>

60 <Step title="プロジェクトを作成">

61 新しいディレクトリを作成して MCP SDK をインストールします:

62 

63 ```bash theme={null}

64 mkdir webhook-channel && cd webhook-channel

65 bun add @modelcontextprotocol/sdk

66 ```

67 </Step>

68 

69 <Step title="チャネルサーバーを記述">

70 `webhook.ts` というファイルを作成します。これはチャネルサーバー全体です:stdio 経由で Claude Code に接続し、ポート 8788 で HTTP POST をリッスンします。リクエストが到着すると、本文をチャネルイベントとして Claude にプッシュします。

71 

72 ```ts title="webhook.ts" theme={null}

73 #!/usr/bin/env bun

74 import { Server } from '@modelcontextprotocol/sdk/server/index.js'

75 import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

76 

77 // MCP サーバーを作成してチャネルとして宣言

78 const mcp = new Server(

79 { name: 'webhook', version: '0.0.1' },

80 {

81 // このキーがチャネルにする — Claude Code はそれのリスナーを登録

82 capabilities: { experimental: { 'claude/channel': {} } },

83 // Claude のシステムプロンプトに追加されるため、これらのイベントの処理方法を知っている

84 instructions: 'Events from the webhook channel arrive as <channel source="webhook" ...>. They are one-way: read them and act, no reply expected.',

85 },

86 )

87 

88 // stdio 経由で Claude Code に接続(Claude Code はこのプロセスを生成)

89 await mcp.connect(new StdioServerTransport())

90 

91 // すべての POST を Claude に転送する HTTP サーバーを開始

92 Bun.serve({

93 port: 8788, // 任意のオープンポートが機能

94 // localhost のみ:このマシンの外からは何も POST できない

95 hostname: '127.0.0.1',

96 async fetch(req) {

97 const body = await req.text()

98 await mcp.notification({

99 method: 'notifications/claude/channel',

100 params: {

101 content: body, // <channel> タグの本文になる

102 // 各キーはタグ属性になる、例:<channel path="/" method="POST">

103 meta: { path: new URL(req.url).pathname, method: req.method },

104 },

105 })

106 return new Response('ok')

107 },

108 })

109 ```

110 

111 ファイルは順番に 3 つのことを実行します:

112 

113 * **サーバー設定**:`claude/channel` をその機能に含む MCP サーバーを作成します。これが Claude Code にこれがチャネルであることを伝えます。[`instructions`](#server-options) 文字列は Claude のシステムプロンプトに入ります:Claude に期待するイベント、返信するかどうか、返信する場合はどのツールを使用するか、どの属性を返送するか(`chat_id` など)を伝えます。

114 * **Stdio 接続**:stdin/stdout 経由で Claude Code に接続します。これは任意の [MCP サーバー](https://modelcontextprotocol.io/docs/concepts/transports#standard-io)の標準です:Claude Code はそれをサブプロセスとして生成します。

115 * **HTTP リスナー**:ポート 8788 でローカル Web サーバーを開始します。すべての POST 本文は `mcp.notification()` 経由でチャネルイベントとして Claude に転送されます。`content` はイベント本文になり、各 `meta` エントリは `<channel>` タグの属性になります。リスナーは `mcp` インスタンスへのアクセスが必要なため、同じプロセスで実行されます。より大きなプロジェクトの場合は、別のモジュールに分割できます。

116 </Step>

117 

118 <Step title="Claude Code にサーバーを登録">

119 Claude Code がそれを開始する方法を知るように、MCP 設定にサーバーを追加します。同じディレクトリのプロジェクトレベル `.mcp.json` の場合は、相対パスを使用します。`~/.claude.json` のユーザーレベル設定の場合は、サーバーが任意のプロジェクトから見つかるように完全な絶対パスを使用します:

120 

121 ```json title=".mcp.json" theme={null}

122 {

123 "mcpServers": {

124 "webhook": { "command": "bun", "args": ["./webhook.ts"] }

125 }

126 }

127 ```

128 

129 Claude Code は起動時に MCP 設定を読み込み、各サーバーをサブプロセスとして生成します。

130 </Step>

131 

132 <Step title="テスト">

133 リサーチプレビュー中、カスタムチャネルは許可リストにないため、開発フラグで Claude Code を開始します:

134 

135 ```bash theme={null}

136 claude --dangerously-load-development-channels server:webhook

137 ```

138 

139 Claude Code が起動すると、MCP 設定を読み込み、`webhook.ts` をサブプロセスとして生成し、HTTP リスナーは設定したポート(この例では 8788)で自動的に開始されます。サーバーを自分で実行する必要はありません。

140 

141 'ブロックされた組織ポリシー'が表示される場合は、Team または Enterprise 管理者が最初に[チャネルを有効化](/ja/channels#enterprise-controls)する必要があります。

142 

143 別のターミナルで、HTTP POST でメッセージを送信して webhook をシミュレートします。この例は、CI 失敗アラートをポート 8788(または設定したポート)に送信します:

144 

145 ```bash theme={null}

146 curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"

147 ```

148 

149 ペイロードは Claude Code セッションに `<channel>` タグとして到着します:

150 

151 ```text theme={null}

152 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>

153 ```

154 

155 Claude Code ターミナルでは、Claude がメッセージを受け取り、応答を開始するのが見えます:ファイルを読み込み、コマンドを実行、またはメッセージが要求するもの。これは一方向チャネルなので、Claude はセッションで動作しますが、webhook を通じて何も返送しません。返信を追加するには、[返信ツールを公開](#expose-a-reply-tool)を参照してください。

156 

157 イベントが到着しない場合、診断は `curl` が返したものに依存します:

158 

159 * **`curl` は成功するが Claude に何も到着しない**:セッションで `/mcp` を実行してサーバーのステータスを確認します。「接続に失敗」は通常、サーバーファイルの依存関係またはインポートエラーを意味します。`~/.claude/debug/<session-id>.txt` のデバッグログで stderr トレースを確認してください。

160 * **`curl` が「接続が拒否されました」で失敗**:ポートはまだバインドされていないか、以前の実行からの古いプロセスがそれを保持しています。`lsof -i :<port>` は何がリッスンしているかを示します。セッションを再開する前に古いプロセスを `kill` してください。

161 </Step>

162</Steps>

163 

164[fakechat サーバー](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat)は、Web UI、ファイル添付、および双方向チャットの返信ツールでこのパターンを拡張します。

165 

166## リサーチプレビュー中のテスト

167 

168リサーチプレビュー中、すべてのチャネルは登録するために[承認許可リスト](/ja/channels#research-preview)にある必要があります。開発フラグは、確認プロンプトの後、特定のエントリの許可リストをバイパスします。この例は両方のエントリタイプを示しています:

169 

170```bash theme={null}

171# 開発中のプラグインをテスト

172claude --dangerously-load-development-channels plugin:yourplugin@yourmarketplace

173 

174# ベアな .mcp.json サーバーをテスト(プラグインラッパーはまだない)

175claude --dangerously-load-development-channels server:webhook

176```

177 

178バイパスはエントリごとです。このフラグを `--channels` と組み合わせても、バイパスは `--channels` エントリに拡張されません。リサーチプレビュー中、承認許可リストは Anthropic がキュレーションしているため、チャネルは構築とテスト中は開発フラグに留まります。

179 

180<Note>

181 このフラグは許可リストのみをスキップします。`channelsEnabled` 組織ポリシーは引き続き適用されます。信頼できないソースからチャネルを実行するために使用しないでください。

182</Note>

183 

184## サーバーオプション

185 

186チャネルは [`Server`](https://modelcontextprotocol.io/docs/concepts/servers) コンストラクタでこれらのオプションを設定します。`instructions` と `capabilities.tools` フィールドは[標準 MCP](https://modelcontextprotocol.io/docs/concepts/servers) です。`capabilities.experimental['claude/channel']` と `capabilities.experimental['claude/channel/permission']` はチャネル固有の追加です:

187 

188| フィールド | タイプ | 説明 |

189| :------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

190| `capabilities.experimental['claude/channel']` | `object` | 必須。常に `{}`。存在は通知リスナーを登録します。 |

191| `capabilities.experimental['claude/channel/permission']` | `object` | オプション。常に `{}`。このチャネルが権限リレーリクエストを受け取ることができることを宣言します。宣言されると、Claude Code はツール承認プロンプトをチャネルに転送して、リモートで承認または拒否できるようにします。[権限プロンプトをリレー](#relay-permission-prompts)を参照してください。 |

192| `capabilities.tools` | `object` | 双方向のみ。常に `{}`。標準 MCP ツール機能。[返信ツールを公開](#expose-a-reply-tool)を参照してください。 |

193| `instructions` | `string` | 推奨。Claude のシステムプロンプトに追加されます。Claude に期待するイベント、`<channel>` タグ属性の意味、返信するかどうか、返信する場合はどのツールを使用するか、どの属性を返送するか(`chat_id` など)を伝えます。 |

194 

195一方向チャネルを作成するには、`capabilities.tools` を省略します。この例は、チャネル機能、ツール、および設定された命令を含む双方向セットアップを示しています:

196 

197```ts theme={null}

198import { Server } from '@modelcontextprotocol/sdk/server/index.js'

199 

200const mcp = new Server(

201 { name: 'your-channel', version: '0.0.1' },

202 {

203 capabilities: {

204 experimental: { 'claude/channel': {} }, // チャネルリスナーを登録

205 tools: {}, // 一方向チャネルの場合は省略

206 },

207 // Claude のシステムプロンプトに追加されるため、イベントの処理方法を知っている

208 instructions: 'Messages arrive as <channel source="your-channel" ...>. Reply with the reply tool.',

209 },

210)

211```

212 

213イベントをプッシュするには、メソッド `notifications/claude/channel` で `mcp.notification()` を呼び出します。パラメータは次のセクションにあります。

214 

215## 通知フォーマット

216 

217サーバーは `notifications/claude/channel` を 2 つのパラメータで発行します:

218 

219| フィールド | タイプ | 説明 |

220| :-------- | :----------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |

221| `content` | `string` | イベント本文。`<channel>` タグの本文として配信されます。 |

222| `meta` | `Record<string, string>` | オプション。各エントリは `<channel>` タグの属性になり、chat ID、送信者名、またはアラート重大度などのルーティングコンテキストを提供します。キーは識別子である必要があります:文字、数字、アンダースコアのみ。ハイフンまたは他の文字を含むキーはサイレントにドロップされます。 |

223 

224サーバーは `Server` インスタンスで `mcp.notification()` を呼び出してイベントをプッシュします。この例は、2 つのメタキーを持つ CI 失敗アラートをプッシュします:

225 

226```ts theme={null}

227await mcp.notification({

228 method: 'notifications/claude/channel',

229 params: {

230 content: 'build failed on main: https://ci.example.com/run/1234',

231 meta: { severity: 'high', run_id: '1234' },

232 },

233})

234```

235 

236イベントは Claude のコンテキストに `<channel>` タグでラップされて到着します。`source` 属性はサーバーの設定名から自動的に設定されます:

237 

238```text theme={null}

239<channel source="your-channel" severity="high" run_id="1234">

240build failed on main: https://ci.example.com/run/1234

241</channel>

242```

243 

244## 返信ツールを公開

245 

246チャネルが双方向の場合、アラートフォワーダーではなくチャットブリッジのような場合、Claude がメッセージを返送するために呼び出せる標準 [MCP ツール](https://modelcontextprotocol.io/docs/concepts/tools)を公開します。ツール登録に関するチャネル固有のものはありません。返信ツールには 3 つのコンポーネントがあります:

247 

2481. `Server` コンストラクタ機能に `tools: {}` エントリがあり、Claude Code がツールを検出できるようにする

2492. ツールのスキーマを定義し、送信ロジックを実装するツールハンドラー

2503. Claude に何時どのようにツールを呼び出すかを伝える `Server` コンストラクタの `instructions` 文字列

251 

252これらを[上記の webhook レシーバー](#example-build-a-webhook-receiver)に追加するには:

253 

254<Steps>

255 <Step title="ツール検出を有効化">

256 `webhook.ts` の `Server` コンストラクタで、Claude Code がサーバーがツールを提供することを知るように、機能に `tools: {}` を追加します:

257 

258 ```ts theme={null}

259 capabilities: {

260 experimental: { 'claude/channel': {} },

261 tools: {}, // ツール検出を有効化

262 },

263 ```

264 </Step>

265 

266 <Step title="返信ツールを登録">

267 以下を `webhook.ts` に追加します。`import` はファイルの上部の他のインポートと一緒に移動します。2 つのハンドラーは `Server` コンストラクタと `mcp.connect()` の間に移動します。これは、Claude が `chat_id` と `text` で呼び出せる `reply` ツールを登録します:

268 

269 ```ts theme={null}

270 // webhook.ts の上部に追加

271 import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'

272 

273 // Claude は起動時にこれをクエリして、サーバーが提供するツールを検出

274 mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

275 tools: [{

276 name: 'reply',

277 description: 'Send a message back over this channel',

278 // inputSchema は Claude に渡すべき引数を伝える

279 inputSchema: {

280 type: 'object',

281 properties: {

282 chat_id: { type: 'string', description: 'The conversation to reply in' },

283 text: { type: 'string', description: 'The message to send' },

284 },

285 required: ['chat_id', 'text'],

286 },

287 }],

288 }))

289 

290 // Claude がツールを呼び出したいときにこれを呼び出す

291 mcp.setRequestHandler(CallToolRequestSchema, async req => {

292 if (req.params.name === 'reply') {

293 const { chat_id, text } = req.params.arguments as { chat_id: string; text: string }

294 // send() はアウトバウンド:チャットプラットフォームに POST、またはローカル

295 // テストの場合は下の完全な例に示されている SSE ブロードキャスト。

296 send(`Reply to ${chat_id}: ${text}`)

297 return { content: [{ type: 'text', text: 'sent' }] }

298 }

299 throw new Error(`unknown tool: ${req.params.name}`)

300 })

301 ```

302 </Step>

303 

304 <Step title="命令を更新">

305 `Server` コンストラクタの `instructions` 文字列を更新して、Claude がツール経由で返信をルーティングすることを知るようにします。この例は、Claude にインバウンドタグから `chat_id` を渡すように伝えます:

306 

307 ```ts theme={null}

308 instructions: 'Messages arrive as <channel source="webhook" chat_id="...">. Reply with the reply tool, passing the chat_id from the tag.'

309 ```

310 </Step>

311</Steps>

312 

313以下は、双方向サポート付きの完全な `webhook.ts` です。アウトバウンド返信は [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events)(SSE)を使用して `GET /events` でストリーミングされるため、`curl -N localhost:8788/events` はそれらをライブで見ることができます。インバウンドチャットは `POST /` に到着します:

314 

315```ts title="返信ツール付きの完全な webhook.ts' expandable theme={null}

316#!/usr/bin/env bun

317import { Server } from '@modelcontextprotocol/sdk/server/index.js'

318import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

319import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'

320 

321// --- アウトバウンド:/events の任意の curl -N リスナーに書き込み ---

322// 実際のブリッジはチャットプラットフォームに POST します。

323const listeners = new Set<(chunk: string) => void>()

324function send(text: string) {

325 const chunk = text.split('\n').map(l => `data: ${l}\n`).join('') + '\n'

326 for (const emit of listeners) emit(chunk)

327}

328 

329const mcp = new Server(

330 { name: 'webhook', version: '0.0.1' },

331 {

332 capabilities: {

333 experimental: { 'claude/channel': {} },

334 tools: {},

335 },

336 instructions: 'Messages arrive as <channel source="webhook" chat_id="...">. Reply with the reply tool, passing the chat_id from the tag.',

337 },

338)

339 

340mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

341 tools: [{

342 name: 'reply',

343 description: 'Send a message back over this channel',

344 inputSchema: {

345 type: 'object',

346 properties: {

347 chat_id: { type: 'string', description: 'The conversation to reply in' },

348 text: { type: 'string', description: 'The message to send' },

349 },

350 required: ['chat_id', 'text'],

351 },

352 }],

353}))

354 

355mcp.setRequestHandler(CallToolRequestSchema, async req => {

356 if (req.params.name === 'reply') {

357 const { chat_id, text } = req.params.arguments as { chat_id: string; text: string }

358 send(`Reply to ${chat_id}: ${text}`)

359 return { content: [{ type: 'text', text: 'sent' }] }

360 }

361 throw new Error(`unknown tool: ${req.params.name}`)

362})

363 

364await mcp.connect(new StdioServerTransport())

365 

366let nextId = 1

367Bun.serve({

368 port: 8788,

369 hostname: '127.0.0.1',

370 idleTimeout: 0, // アイドル SSE ストリームを閉じない

371 async fetch(req) {

372 const url = new URL(req.url)

373 

374 // GET /events:SSE ストリーム、curl -N が Claude の返信をライブで見ることができる

375 if (req.method === 'GET' && url.pathname === '/events') {

376 const stream = new ReadableStream({

377 start(ctrl) {

378 ctrl.enqueue(': connected\n\n') // curl が何かをすぐに表示するように

379 const emit = (chunk: string) => ctrl.enqueue(chunk)

380 listeners.add(emit)

381 req.signal.addEventListener('abort', () => listeners.delete(emit))

382 },

383 })

384 return new Response(stream, {

385 headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache' },

386 })

387 }

388 

389 // POST:チャネルイベントとして Claude に転送

390 const body = await req.text()

391 const chat_id = String(nextId++)

392 await mcp.notification({

393 method: 'notifications/claude/channel',

394 params: {

395 content: body,

396 meta: { chat_id, path: url.pathname, method: req.method },

397 },

398 })

399 return new Response('ok')

400 },

401})

402```

403 

404[fakechat サーバー](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat)は、ファイル添付とメッセージ編集を含むより完全な例を示しています。

405 

406## インバウンドメッセージをゲート

407 

408ゲートなしチャネルはプロンプトインジェクションベクトルです。エンドポイントに到達できる誰もが Claude の前にテキストを置くことができます。チャットプラットフォームまたはパブリックエンドポイントをリッスンするチャネルは、何かを発行する前に実際の送信者チェックが必要です。

409 

410`mcp.notification()` を呼び出す前に、送信者を許可リストに対してチェックします。この例は、許可リストにない送信者からのメッセージをドロップします:

411 

412```ts theme={null}

413const allowed = new Set(loadAllowlist()) // access.json またはそれに相当するもの

414 

415// メッセージハンドラー内、発行する前:

416if (!allowed.has(message.from.id)) { // 送信者、ルームではない

417 return // サイレントにドロップ

418}

419await mcp.notification({ ... })

420```

421 

422チャットまたはルーム ID ではなく、送信者の ID でゲートします:例では `message.from.id`、`message.chat.id` ではありません。グループチャットでは、これらは異なり、ルームでゲートすると、許可リストに登録されたグループ内の誰もがセッションにメッセージを注入できます。

423 

424[Telegram](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram) と [Discord](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord) チャネルは同じ方法で送信者許可リストでゲートします。ペアリングでリストをブートストラップします:ユーザーがボットに DM を送信し、ボットはペアリングコードで返信し、ユーザーが Claude Code セッションで承認し、プラットフォーム ID が追加されます。完全なペアリングフローについては、いずれかの実装を参照してください。[iMessage](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage) チャネルは異なるアプローチを取ります:起動時にメッセージデータベースからユーザー自身のアドレスを検出し、それらを自動的に通します。他の送信者はハンドルで追加されます。

425 

426## 権限プロンプトをリレー

427 

428<Note>

429 権限リレーには Claude Code v2.1.81 以降が必要です。以前のバージョンは `claude/channel/permission` 機能を無視します。

430</Note>

431 

432Claude が承認が必要なツールを呼び出すと、ローカルターミナルダイアログが開き、セッションが待機します。双方向チャネルは、同じプロンプトを並行して受け取り、別のデバイスでそれをリレーすることを選択できます。両方がライブのままです:ターミナルまたは電話で答えることができ、Claude Code は最初に到着した答えを適用し、もう一方を閉じます。

433 

434リレーは `Bash`、`Write`、`Edit` などのツール使用承認をカバーします。プロジェクト信頼と MCP サーバー同意ダイアログはリレーされません。これらはローカルターミナルにのみ表示されます。

435 

436### リレーの仕組み

437 

438権限プロンプトが開くと、リレーループには 4 つのステップがあります:

439 

4401. Claude Code は短いリクエスト ID を生成し、サーバーに通知

4412. サーバーはプロンプトと ID をチャットアプリに転送

4423. リモートユーザーは yes または no と ID で返信

4434. インバウンドハンドラーは返信を判定に解析し、Claude Code は ID が開いているリクエストと一致する場合のみそれを適用

444 

445ローカルターミナルダイアログはこのすべてを通じて開いたままです。ターミナルの誰かがリモート判定が到着する前に答えた場合、その答えが代わりに適用され、保留中のリモートリクエストはドロップされます。

446 

447<img src="https://mintlify.s3.us-west-1.amazonaws.com/claude-code/ja/images/channel-permission-relay.svg" alt="シーケンス図:Claude Code は権限リクエスト通知をチャネルサーバーに送信し、サーバーはプロンプトと ID をチャットアプリにフォーマットして送信し、人間は判定で返信し、サーバーはその返信を権限通知に解析して Claude Code に戻す" />

448 

449### 権限リクエストフィールド

450 

451Claude Code からのアウトバウンド通知は `notifications/claude/channel/permission_request` です。[チャネル通知](#notification-format)のように、トランスポートは標準 MCP ですが、メソッドとスキーマは Claude Code 拡張です。`params` オブジェクトには、サーバーが発信プロンプトにフォーマットする 4 つの文字列フィールドがあります:

452 

453| フィールド | 説明 |

454| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

455| `request_id` | `a`-`z` から `l` なしで描画された 5 つの小文字。電話で入力するときに `1` または `I` として読まれることはありません。発信プロンプトに含めて、返信で反映できるようにします。Claude Code は発行した ID を持つ判定のみを受け入れます。ローカルターミナルダイアログはこの ID を表示しないため、アウトバウンドハンドラーはそれを学ぶ唯一の方法です。 |

456| `tool_name` | Claude が使用したいツールの名前、例えば `Bash` または `Write`。 |

457| `description` | この特定のツール呼び出しが何をするかの人間が読める要約。ローカルターミナルダイアログが表示するのと同じテキスト。Bash 呼び出しの場合、これは Claude のコマンドの説明、または何も与えられていない場合はコマンド自体です。 |

458| `input_preview` | ツールの引数を JSON 文字列として、200 文字に切り詰めたもの。Bash の場合はコマンド。Write の場合はファイルパスとコンテンツのプレフィックス。1 行のメッセージの余地しかない場合はプロンプトから省略します。サーバーは何を表示するかを決定します。 |

459 

460サーバーが返送する判定は `notifications/claude/channel/permission` で、2 つのフィールド:上記の ID を反映する `request_id` と、`'allow'` または `'deny'` に設定された `behavior`。Allow はツール呼び出しを続行させます。Deny はそれを拒否し、ローカルダイアログで No と答えるのと同じです。どちらの判定も将来の呼び出しに影響しません。

461 

462### チャットブリッジにリレーを追加

463 

464双方向チャネルに権限リレーを追加するには、3 つのコンポーネントが必要です:

465 

4661. `Server` コンストラクタの `experimental` 機能の下に `claude/channel/permission: {}` エントリがあり、Claude Code がプロンプトを転送することを知るようにする

4672. `notifications/claude/channel/permission_request` の通知ハンドラーがプロンプトをフォーマットしてプラットフォーム API 経由で送信

4683. インバウンドメッセージハンドラーの確認が `yes <id>` または `no <id>` を認識し、テキストを Claude に転送する代わりに `notifications/claude/channel/permission` 判定を発行

469 

470チャネルが[送信者を認証](#gate-inbound-messages)する場合のみ機能を宣言してください。チャネル経由で返信できる誰もがセッションのツール使用を承認または拒否できるためです。

471 

472これらを[返信ツールを公開](#expose-a-reply-tool)で組み立てられたような双方向チャットブリッジに追加するには:

473 

474<Steps>

475 <Step title="権限機能を宣言">

476 `Server` コンストラクタで、`experimental` の下に `claude/channel` と一緒に `claude/channel/permission: {}` を追加します:

477 

478 ```ts theme={null}

479 capabilities: {

480 experimental: {

481 'claude/channel': {},

482 'claude/channel/permission': {}, // 権限リレーにオプトイン

483 },

484 tools: {},

485 },

486 ```

487 </Step>

488 

489 <Step title="受信リクエストを処理">

490 `Server` コンストラクタと `mcp.connect()` の間に通知ハンドラーを登録します。権限ダイアログが開くと、Claude Code は[4 つのリクエストフィールド](#permission-request-fields)で呼び出します。ハンドラーはプロンプトをプラットフォーム用にフォーマットし、ID で返信するための命令を含めます:

491 

492 ```ts theme={null}

493 import { z } from 'zod'

494 

495 // setNotificationHandler はメソッドフィールドで z.literal にルーティングするため、

496 // このスキーマはバリデータとディスパッチキーの両方です

497 const PermissionRequestSchema = z.object({

498 method: z.literal('notifications/claude/channel/permission_request'),

499 params: z.object({

500 request_id: z.string(), // 5 つの小文字、プロンプトに逐語的に含める

501 tool_name: z.string(), // 例:'Bash'、'Write'

502 description: z.string(), // この呼び出しが何をするかの人間が読める要約

503 input_preview: z.string(), // ツール引数を JSON として、約 200 文字に切り詰め

504 }),

505 })

506 

507 mcp.setNotificationHandler(PermissionRequestSchema, async ({ params }) => {

508 // send() はアウトバウンド:チャットプラットフォームに POST、またはローカル

509 // テストの場合は下の完全な例に示されている SSE ブロードキャスト。

510 send(

511 `Claude wants to run ${params.tool_name}: ${params.description}\n\n` +

512 // 命令の ID はステップ 3 でインバウンドハンドラーが解析するもの

513 `Reply "yes ${params.request_id}" or "no ${params.request_id}"`,

514 )

515 })

516 ```

517 </Step>

518 

519 <Step title="インバウンドハンドラーで判定をインターセプト">

520 インバウンドハンドラーは、プラットフォームからメッセージを受け取るループまたはコールバック:[送信者でゲート](#gate-inbound-messages)し、`notifications/claude/channel` を発行してチャットを Claude に転送する同じ場所。判定フォーマットを認識し、チャット転送呼び出しの代わりに権限通知を発行するチェックを追加します。

521 

522 正規表現は Claude Code が生成する ID フォーマットと一致します:5 文字、`l` なし。`/i` フラグは電話オートコレクトが返信を大文字にすることを許容します。送信する前に取得した ID を小文字にします。

523 

524 ```ts theme={null}

525 // 'y abcde'、'yes abcde'、'n abcde'、'no abcde'と一致

526 // [a-km-z] は Claude Code が使用する ID アルファベット(小文字、'l'をスキップ)

527 // /i はオートコレクト大文字を許容;送信する前に取得を小文字にする

528 const PERMISSION_REPLY_RE = /^\s*(y|yes|n|no)\s+([a-km-z]{5})\s*$/i

529 

530 async function onInbound(message: PlatformMessage) {

531 if (!allowed.has(message.from.id)) return // 最初に送信者でゲート

532 

533 const m = PERMISSION_REPLY_RE.exec(message.text)

534 if (m) {

535 // m[1] は判定単語、m[2] はリクエスト ID

536 // チャットの代わりに Claude Code に判定通知を発行

537 await mcp.notification({

538 method: 'notifications/claude/channel/permission',

539 params: {

540 request_id: m[2].toLowerCase(), // オートコレクト大文字の場合は正規化

541 behavior: m[1].toLowerCase().startsWith('y') ? 'allow' : 'deny',

542 },

543 })

544 return // 判定として処理、チャットとしても転送しない

545 }

546 

547 // 判定フォーマットと一致しない:通常のチャットパスにフォールスルー

548 await mcp.notification({

549 method: 'notifications/claude/channel',

550 params: { content: message.text, meta: { chat_id: String(message.chat.id) } },

551 })

552 }

553 ```

554 </Step>

555</Steps>

556 

557Claude Code はローカルターミナルダイアログも開いたままにするため、どちらかの場所で答えることができ、最初に到着した答えが適用されます。期待されたフォーマットと正確に一致しないリモート返信は、2 つの方法のいずれかで失敗し、どちらの場合もダイアログは開いたままです:

558 

559* **異なるフォーマット**:インバウンドハンドラーの正規表現が一致しないため、'approve it'または ID なしの'yes'のようなテキストは通常のメッセージとして Claude にフォールスルーします。

560* **正しいフォーマット、間違った ID**:サーバーは判定を発行しますが、Claude Code はその ID を持つ開いているリクエストを見つけず、サイレントにドロップします。

561 

562### 完全な例

563 

564以下の組み立てられた `webhook.ts` は、このページからの 3 つの拡張をすべて組み合わせます:返信ツール、送信者ゲーティング、権限リレー。ここから始める場合は、初期ウォークスルーから[プロジェクト設定と `.mcp.json` エントリ](#example-build-a-webhook-receiver)も必要です。

565 

566curl から両方向をテスト可能にするために、HTTP リスナーは 2 つのパスを提供します:

567 

568* **`GET /events`**:SSE ストリームを開いたままにし、各アウトバウンドメッセージを `data:` 行としてプッシュするため、`curl -N` は Claude の返信と権限プロンプトがライブで到着するのを見ることができます。

569* **`POST /`**:インバウンド側、以前と同じハンドラー、チャット転送ブランチの前に判定フォーマットチェックが挿入されました。

570 

571```ts title="権限リレー付きの完全な webhook.ts" expandable theme={null}

572#!/usr/bin/env bun

573import { Server } from '@modelcontextprotocol/sdk/server/index.js'

574import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

575import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'

576import { z } from 'zod'

577 

578// --- アウトバウンド:/events の任意の curl -N リスナーに書き込み ---

579// 実際のブリッジはチャットプラットフォームに POST します。

580const listeners = new Set<(chunk: string) => void>()

581function send(text: string) {

582 const chunk = text.split('\n').map(l => `data: ${l}\n`).join('') + '\n'

583 for (const emit of listeners) emit(chunk)

584}

585 

586// 送信者許可リスト。ローカルウォークスルーの場合、単一の X-Sender

587// ヘッダー値「dev」を信頼します。実際のブリッジはプラットフォームのユーザー ID をチェックします。

588const allowed = new Set(['dev'])

589 

590const mcp = new Server(

591 { name: 'webhook', version: '0.0.1' },

592 {

593 capabilities: {

594 experimental: {

595 'claude/channel': {},

596 'claude/channel/permission': {}, // 権限リレーにオプトイン

597 },

598 tools: {},

599 },

600 instructions:

601 'Messages arrive as <channel source="webhook" chat_id="...">. ' +

602 'Reply with the reply tool, passing the chat_id from the tag.',

603 },

604)

605 

606// --- 返信ツール:Claude がメッセージを返送するために呼び出す ---

607mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

608 tools: [{

609 name: 'reply',

610 description: 'Send a message back over this channel',

611 inputSchema: {

612 type: 'object',

613 properties: {

614 chat_id: { type: 'string', description: 'The conversation to reply in' },

615 text: { type: 'string', description: 'The message to send' },

616 },

617 required: ['chat_id', 'text'],

618 },

619 }],

620}))

621 

622mcp.setRequestHandler(CallToolRequestSchema, async req => {

623 if (req.params.name === 'reply') {

624 const { chat_id, text } = req.params.arguments as { chat_id: string; text: string }

625 send(`Reply to ${chat_id}: ${text}`)

626 return { content: [{ type: 'text', text: 'sent' }] }

627 }

628 throw new Error(`unknown tool: ${req.params.name}`)

629})

630 

631// --- 権限リレー:ダイアログが開くと Claude Code(Claude ではない)がこれを呼び出す

632const PermissionRequestSchema = z.object({

633 method: z.literal('notifications/claude/channel/permission_request'),

634 params: z.object({

635 request_id: z.string(),

636 tool_name: z.string(),

637 description: z.string(),

638 input_preview: z.string(),

639 }),

640})

641 

642mcp.setNotificationHandler(PermissionRequestSchema, async ({ params }) => {

643 send(

644 `Claude wants to run ${params.tool_name}: ${params.description}\n\n` +

645 `Reply "yes ${params.request_id}" or "no ${params.request_id}"`,

646 )

647})

648 

649await mcp.connect(new StdioServerTransport())

650 

651// --- HTTP on :8788:GET /events はアウトバウンドをストリーム、POST はインバウンドをルート ---

652const PERMISSION_REPLY_RE = /^\s*(y|yes|n|no)\s+([a-km-z]{5})\s*$/i

653let nextId = 1

654 

655Bun.serve({

656 port: 8788,

657 hostname: '127.0.0.1',

658 idleTimeout: 0, // アイドル SSE ストリームを閉じない

659 async fetch(req) {

660 const url = new URL(req.url)

661 

662 // GET /events:SSE ストリーム、curl -N が返信とプロンプトをライブで見ることができる

663 if (req.method === 'GET' && url.pathname === '/events') {

664 const stream = new ReadableStream({

665 start(ctrl) {

666 ctrl.enqueue(': connected\n\n') // curl がすぐに何かを表示するように

667 const emit = (chunk: string) => ctrl.enqueue(chunk)

668 listeners.add(emit)

669 req.signal.addEventListener('abort', () => listeners.delete(emit))

670 },

671 })

672 return new Response(stream, {

673 headers: { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache' },

674 })

675 }

676 

677 // その他すべてはインバウンド:最初に送信者でゲート

678 const body = await req.text()

679 const sender = req.headers.get('X-Sender') ?? ''

680 if (!allowed.has(sender)) return new Response('forbidden', { status: 403 })

681 

682 // チャットとして扱う前に判定フォーマットをチェック

683 const m = PERMISSION_REPLY_RE.exec(body)

684 if (m) {

685 await mcp.notification({

686 method: 'notifications/claude/channel/permission',

687 params: {

688 request_id: m[2].toLowerCase(),

689 behavior: m[1].toLowerCase().startsWith('y') ? 'allow' : 'deny',

690 },

691 })

692 return new Response('verdict recorded')

693 }

694 

695 // 通常のチャット:チャネルイベントとして Claude に転送

696 const chat_id = String(nextId++)

697 await mcp.notification({

698 method: 'notifications/claude/channel',

699 params: { content: body, meta: { chat_id, path: url.pathname } },

700 })

701 return new Response('ok')

702 },

703})

704```

705 

706判定パスを 3 つのターミナルでテストします。最初は Claude Code セッションで、[開発フラグ](#test-during-the-research-preview)で開始されるため、`webhook.ts` を生成します:

707 

708```bash theme={null}

709claude --dangerously-load-development-channels server:webhook

710```

711 

7122 番目では、アウトバウンド側をストリーミングして、Claude の返信と権限プロンプトがライブで到着するのを見ることができます:

713 

714```bash theme={null}

715curl -N localhost:8788/events

716```

717 

7183 番目では、Claude がコマンドを実行しようとするメッセージを送信します:

719 

720```bash theme={null}

721curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788

722```

723 

724ローカル権限ダイアログが Claude Code ターミナルで開きます。少し後、プロンプトが `/events` ストリームに表示され、5 文字の ID を含みます。リモート側から承認します:

725 

726```bash theme={null}

727curl -d "yes <id>" -H "X-Sender: dev" localhost:8788

728```

729 

730ローカルダイアログが閉じ、ツールが実行されます。Claude の返信は `reply` ツール経由で戻り、ストリームにも到着します。

731 

732このファイルの 3 つのチャネル固有の部分:

733 

734* **`Server` コンストラクタの機能**:`claude/channel` は通知リスナーを登録し、`claude/channel/permission` は権限リレーにオプトイン、`tools` は Claude がツールを検出できるようにします。

735* **アウトバウンドパス**:`reply` ツールハンドラーは Claude が会話応答のために呼び出すもの。`PermissionRequestSchema` 通知ハンドラーは権限ダイアログが開くと Claude Code が呼び出すもの。両方とも `/events` 経由でブロードキャストするために `send()` を呼び出しますが、システムの異なる部分によってトリガーされます。

736* **HTTP ハンドラー**:`GET /events` は SSE ストリームを開いたままにするため、curl はアウトバウンドをライブで見ることができます。`POST` はインバウンド、`X-Sender` ヘッダーでゲート。`yes <id>` または `no <id>` 本文は Claude Code に判定通知として送信され、Claude に到達しません。その他はすべてチャネルイベントとして Claude に転送されます。

737 

738## プラグインとしてパッケージ化

739 

740チャネルをインストール可能で共有可能にするには、[プラグイン](/ja/plugins)でラップして[マーケットプレイス](/ja/plugin-marketplaces)に公開します。ユーザーは `/plugin install` でインストールし、`--channels plugin:<name>@<marketplace>` でセッションごとに有効化します。

741 

742独自のマーケットプレイスに公開されたチャネルは、[承認許可リスト](/ja/channels#supported-channels)にないため、実行するには `--dangerously-load-development-channels` が必要です。追加されるようにするには、[公式マーケットプレイスに提出](/ja/plugins#submit-your-plugin-to-the-official-marketplace)してください。チャネルプラグインは承認される前にセキュリティレビューを受けます。Team および Enterprise プランでは、管理者は代わりにプラグインを組織の独自の [`allowedChannelPlugins`](/ja/channels#restrict-which-channel-plugins-can-run) リストに含めることができます。これはデフォルトの Anthropic 許可リストを置き換えます。

743 

744## 関連項目

745 

746* [チャネル](/ja/channels):Telegram、Discord、iMessage、または fakechat デモをインストールして使用し、Team または Enterprise 組織のチャネルを有効化

747* [チャネル実装の動作](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins):ペアリングフロー、返信ツール、ファイル添付を含む完全なサーバーコード

748* [MCP](/ja/mcp):チャネルサーバーが実装する基礎となるプロトコル

749* [プラグイン](/ja/plugins):チャネルをパッケージ化して、ユーザーが `/plugin install` でインストールできるようにする

checkpointing.md +89 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# チェックポイント

6 

7> Claude のエディット内容と会話を追跡、巻き戻し、要約してセッション状態を管理します。

8 

9Claude Code は、作業中に Claude が行ったファイルエディットを自動的に追跡し、変更をすばやく取り消したり、問題が発生した場合に以前の状態に巻き戻したりできます。

10 

11## チェックポイントの仕組み

12 

13Claude で作業する際、チェックポイント機能は各エディット前のコード状態を自動的にキャプチャします。このセーフティネットにより、野心的で大規模なタスクを実行する際に、いつでも以前のコード状態に戻ることができるという安心感を持って作業できます。

14 

15### 自動追跡

16 

17Claude Code は、ファイル編集ツールで行われたすべての変更を追跡します。

18 

19* ユーザープロンプトごとに新しいチェックポイントが作成されます

20* チェックポイントはセッション間で保持されるため、再開した会話でアクセスできます

21* セッション終了後 30 日後に自動的にクリーンアップされます(設定可能)

22 

23### 巻き戻しと要約

24 

25`Esc` キーを 2 回(`Esc` + `Esc`)押すか、`/rewind` コマンドを使用して巻き戻しメニューを開きます。スクロール可能なリストにセッションからの各プロンプトが表示されます。操作したいポイントを選択してから、アクションを選択します。

26 

27* **コードと会話を復元**: コードと会話の両方をそのポイントに戻します

28* **会話を復元**: 現在のコードを保持しながら、そのメッセージに巻き戻します

29* **コードを復元**: 会話を保持しながら、ファイルの変更を戻します

30* **ここから要約**: このポイント以降の会話を圧縮して要約し、コンテキストウィンドウスペースを解放します

31* **キャンセル**: 変更を加えずにメッセージリストに戻ります

32 

33会話を復元または要約した後、選択したメッセージからの元のプロンプトが入力フィールドに復元されるため、再送信または編集できます。

34 

35#### 復元と要約の違い

36 

373 つの復元オプションは状態を戻します。コード変更、会話履歴、またはその両方を取り消します。「ここから要約」は異なる動作をします。

38 

39* 選択したメッセージより前のメッセージはそのまま保持されます

40* 選択したメッセージとそれ以降のすべてのメッセージは、コンパクトな AI 生成の要約に置き換えられます

41* ディスク上のファイルは変更されません

42* 元のメッセージはセッショントランスクリプトに保持されるため、Claude は必要に応じて詳細を参照できます

43 

44これは `/compact` に似ていますが、対象を絞ったものです。会話全体を要約する代わりに、初期コンテキストを完全な詳細で保持し、スペースを使用している部分のみを圧縮します。要約が焦点を当てるべき内容をガイドするためのオプション指示を入力できます。

45 

46<Note>

47 要約はセッションを同じ状態に保ち、コンテキストを圧縮します。元のセッションを保持したまま異なるアプローチを試したい場合は、代わりに [fork](/ja/how-claude-code-works#resume-or-fork-sessions)(`claude --continue --fork-session`)を使用してください。

48</Note>

49 

50## 一般的なユースケース

51 

52チェックポイントは以下の場合に特に便利です。

53 

54* **代替案の検討**: 開始点を失わずに異なる実装アプローチを試します

55* **ミスからの回復**: バグを導入したり機能を破損させた変更をすばやく取り消します

56* **機能の反復**: 動作状態に戻すことができるという確信を持って変更を試験します

57* **コンテキストスペースの解放**: 冗長なデバッグセッションを中間地点から要約し、初期指示を保持します

58 

59## 制限事項

60 

61### Bash コマンドの変更は追跡されません

62 

63チェックポイント機能は、bash コマンドで変更されたファイルを追跡しません。たとえば、Claude Code が以下を実行する場合。

64 

65```bash theme={null}

66rm file.txt

67mv old.txt new.txt

68cp source.txt dest.txt

69```

70 

71これらのファイル変更は巻き戻しで取り消すことはできません。Claude のファイル編集ツールで行われた直接的なファイルエディットのみが追跡されます。

72 

73### 外部の変更は追跡されません

74 

75チェックポイント機能は、現在のセッション内で編集されたファイルのみを追跡します。Claude Code の外部で手動で行ったファイルの変更や、他の同時セッションからのエディットは、通常キャプチャされません。ただし、現在のセッションと同じファイルを変更する場合は除きます。

76 

77### バージョン管理の代替ではありません

78 

79チェックポイントは、クイックなセッションレベルの復旧用に設計されています。永続的なバージョン履歴とコラボレーションの場合。

80 

81* バージョン管理(例:Git)を引き続き使用してコミット、ブランチ、長期履歴を管理します

82* チェックポイントは適切なバージョン管理を補完しますが、置き換えるものではありません

83* チェックポイントを「ローカル取り消し」、Git を「永続履歴」と考えてください

84 

85## 関連項目

86 

87* [Interactive mode](/ja/interactive-mode) - キーボードショートカットとセッションコントロール

88* [Built-in commands](/ja/commands) - `/rewind` を使用したチェックポイントへのアクセス

89* [CLI reference](/ja/cli-reference) - コマンドラインオプション

chrome.md +232 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Chrome で Claude Code を使用する(ベータ版)

6 

7> Claude Code を Chrome ブラウザに接続して、Web アプリをテストし、コンソールログでデバッグし、フォーム入力を自動化し、Web ページからデータを抽出します。

8 

9Claude Code は [Claude in Chrome ブラウザ拡張機能](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) と統合され、CLI または [VS Code 拡張機能](/ja/vs-code#automate-browser-tasks-with-chrome) からブラウザ自動化機能を提供します。コードをビルドしてから、コンテキストを切り替えることなくブラウザでテストおよびデバッグできます。

10 

11Claude はブラウザタスク用に新しいタブを開き、ブラウザのログイン状態を共有するため、既にサインインしているサイトにアクセスできます。ブラウザアクションはリアルタイムで表示される Chrome ウィンドウで実行されます。Claude がログインページまたは CAPTCHA に遭遇した場合、一時停止して手動で処理するよう求めます。

12 

13<Note>

14 Chrome 統合はベータ版であり、現在 Google Chrome と Microsoft Edge で動作します。Brave、Arc、またはその他の Chromium ベースのブラウザではまだサポートされていません。WSL(Windows Subsystem for Linux)もサポートされていません。

15</Note>

16 

17## 機能

18 

19Chrome が接続されている場合、単一のワークフロー内でブラウザアクションとコーディングタスクをチェーンできます。

20 

21* **ライブデバッグ**:コンソールエラーと DOM 状態を直接読み取り、それらを引き起こしたコードを修正します

22* **デザイン検証**:Figma モックから UI をビルドしてから、ブラウザで開いて一致することを確認します

23* **Web アプリテスト**:フォーム検証をテストし、ビジュアルリグレッションをチェックするか、ユーザーフローを検証します

24* **認証済み Web アプリ**:API コネクタなしで、ログインしている Google Docs、Gmail、Notion、またはその他のアプリと対話します

25* **データ抽出**:Web ページから構造化情報を取得してローカルに保存します

26* **タスク自動化**:データ入力、フォーム入力、またはマルチサイトワークフローなどの反復的なブラウザタスクを自動化します

27* **セッション記録**:ブラウザインタラクションを GIF として記録して、何が起こったかを文書化または共有します

28 

29## 前提条件

30 

31Claude Code を Chrome で使用する前に、以下が必要です。

32 

33* [Google Chrome](https://www.google.com/chrome/) または [Microsoft Edge](https://www.microsoft.com/edge) ブラウザ

34* [Claude in Chrome 拡張機能](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) バージョン 1.0.36 以上(Chrome Web Store で両方のブラウザで利用可能)

35* [Claude Code](/ja/quickstart#step-1-install-claude-code) バージョン 2.0.73 以上

36* 直接 Anthropic プラン(Pro、Max、Team、または Enterprise)

37 

38<Note>

39 Chrome 統合は Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry などのサードパーティプロバイダーを通じては利用できません。Claude にサードパーティプロバイダーを通じてのみアクセスする場合、この機能を使用するには別の claude.ai アカウントが必要です。

40</Note>

41 

42## CLI で開始する

43 

44<Steps>

45 <Step title="Chrome で Claude Code を起動する">

46 `--chrome` フラグで Claude Code を起動します。

47 

48 ```bash theme={null}

49 claude --chrome

50 ```

51 

52 既存のセッション内から `/chrome` を実行して Chrome を有効にすることもできます。

53 </Step>

54 

55 <Step title="Claude にブラウザを使用するよう依頼する">

56 この例は、ページに移動し、それと対話し、ターミナルまたはエディターからすべてを報告します。

57 

58 ```text theme={null}

59 Go to code.claude.com/docs, click on the search box,

60 type "hooks", and tell me what results appear

61 ```

62 </Step>

63</Steps>

64 

65いつでも `/chrome` を実行して接続ステータスを確認し、権限を管理するか、拡張機能を再接続できます。

66 

67VS Code については、[VS Code でのブラウザ自動化](/ja/vs-code#automate-browser-tasks-with-chrome) を参照してください。

68 

69### Chrome をデフォルトで有効にする

70 

71各セッションで `--chrome` を渡すことを避けるには、`/chrome` を実行して「Enabled by default」を選択します。

72 

73[VS Code 拡張機能](/ja/vs-code#automate-browser-tasks-with-chrome) では、Chrome 拡張機能がインストールされている場合、Chrome はいつでも利用可能です。追加のフラグは必要ありません。

74 

75<Note>

76 CLI で Chrome をデフォルトで有効にすると、ブラウザツールが常にロードされるため、コンテキスト使用量が増加します。コンテキスト消費の増加に気付いた場合、この設定を無効にして、必要な場合にのみ `--chrome` を使用してください。

77</Note>

78 

79### サイト権限を管理する

80 

81サイトレベルの権限は Chrome 拡張機能から継承されます。Chrome 拡張機能の設定で権限を管理して、Claude がブラウズ、クリック、入力できるサイトを制御します。

82 

83## ワークフロー例

84 

85これらの例は、ブラウザアクションとコーディングタスクを組み合わせる一般的な方法を示しています。`/mcp` を実行して `claude-in-chrome` を選択すると、利用可能なブラウザツールの完全なリストが表示されます。

86 

87### ローカル Web アプリケーションをテストする

88 

89Web アプリを開発する場合、変更が正しく機能することを確認するよう Claude に依頼します。

90 

91```text theme={null}

92I just updated the login form validation. Can you open localhost:3000,

93try submitting the form with invalid data, and check if the error

94messages appear correctly?

95```

96 

97Claude はローカルサーバーに移動し、フォームと対話し、観察したことを報告します。

98 

99### コンソールログでデバッグする

100 

101Claude はコンソール出力を読み取って問題の診断を支援できます。ログが詳細になる可能性があるため、すべてのコンソール出力を要求するのではなく、探すパターンを Claude に伝えます。

102 

103```text theme={null}

104Open the dashboard page and check the console for any errors when

105the page loads.

106```

107 

108Claude はコンソールメッセージを読み取り、特定のパターンまたはエラータイプでフィルタリングできます。

109 

110### フォーム入力を自動化する

111 

112反復的なデータ入力タスクを高速化します。

113 

114```text theme={null}

115I have a spreadsheet of customer contacts in contacts.csv. For each row,

116go to the CRM at crm.example.com, click "Add Contact", and fill in the

117name, email, and phone fields.

118```

119 

120Claude はローカルファイルを読み取り、Web インターフェースをナビゲートし、各レコードのデータを入力します。

121 

122### Google Docs でコンテンツをドラフトする

123 

124API セットアップなしで Claude を使用してドキュメントに直接書き込みます。

125 

126```text theme={null}

127Draft a project update based on the recent commits and add it to my

128Google Doc at docs.google.com/document/d/abc123

129```

130 

131Claude はドキュメントを開き、エディターをクリックしてコンテンツを入力します。これは、ログインしているあらゆる Web アプリで機能します。Gmail、Notion、Sheets など。

132 

133### Web ページからデータを抽出する

134 

135Web サイトから構造化情報を取得します。

136 

137```text theme={null}

138Go to the product listings page and extract the name, price, and

139availability for each item. Save the results as a CSV file.

140```

141 

142Claude はページに移動し、コンテンツを読み取り、データを構造化形式にコンパイルします。

143 

144### マルチサイトワークフローを実行する

145 

146複数の Web サイト間でタスクを調整します。

147 

148```text theme={null}

149Check my calendar for meetings tomorrow, then for each meeting with

150an external attendee, look up their company website and add a note

151about what they do.

152```

153 

154Claude はタブ間で動作して情報を収集し、ワークフローを完了します。

155 

156### デモ GIF を記録する

157 

158ブラウザインタラクションの共有可能な記録を作成します。

159 

160```text theme={null}

161Record a GIF showing how to complete the checkout flow, from adding

162an item to the cart through to the confirmation page.

163```

164 

165Claude はインタラクションシーケンスを記録し、GIF ファイルとして保存します。

166 

167## トラブルシューティング

168 

169### 拡張機能が検出されない

170 

171Claude Code が「Chrome extension not detected」を表示する場合:

172 

1731. Chrome 拡張機能が `chrome://extensions` にインストールされ、有効になっていることを確認します

1742. `claude --version` を実行して Claude Code が最新であることを確認します

1753. Chrome が実行されていることを確認します

1764. `/chrome` を実行して「Reconnect extension」を選択し、接続を再確立します

1775. 問題が解決しない場合、Claude Code と Chrome の両方を再起動します

178 

179Chrome 統合を初めて有効にすると、Claude Code はネイティブメッセージングホスト設定ファイルをインストールします。Chrome はスタートアップ時にこのファイルを読み取るため、最初の試行で拡張機能が検出されない場合、Chrome を再起動して新しい設定を取得します。

180 

181接続がまだ失敗する場合、ホスト設定ファイルが以下の場所に存在することを確認します。

182 

183Chrome の場合:

184 

185* **macOS**:`~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`

186* **Linux**:`~/.config/google-chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`

187* **Windows**:Windows レジストリで `HKCU\Software\Google\Chrome\NativeMessagingHosts\` を確認します

188 

189Edge の場合:

190 

191* **macOS**:`~/Library/Application Support/Microsoft Edge/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`

192* **Linux**:`~/.config/microsoft-edge/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`

193* **Windows**:Windows レジストリで `HKCU\Software\Microsoft\Edge\NativeMessagingHosts\` を確認します

194 

195### ブラウザが応答しない

196 

197Claude のブラウザコマンドが機能しなくなった場合:

198 

1991. モーダルダイアログ(alert、confirm、prompt)がページをブロックしているかどうかを確認します。JavaScript ダイアログはブラウザイベントをブロックし、Claude がコマンドを受け取るのを防ぎます。ダイアログを手動で閉じてから、Claude に続行するよう伝えます。

2002. Claude に新しいタブを作成して再度試すよう依頼します

2013. `chrome://extensions` で拡張機能を無効にしてから再度有効にして Chrome 拡張機能を再起動します

202 

203### 長いセッション中に接続が切れる

204 

205Chrome 拡張機能のサービスワーカーは長時間のセッション中にアイドル状態になる可能性があり、接続が切れます。非アクティブ期間後にブラウザツールが機能しなくなった場合、`/chrome` を実行して「Reconnect extension」を選択します。

206 

207### Windows 固有の問題

208 

209Windows では、以下の問題が発生する可能性があります。

210 

211* **名前付きパイプの競合(EADDRINUSE)**:別のプロセスが同じ名前付きパイプを使用している場合、Claude Code を再起動します。Chrome を使用している他の Claude Code セッションを閉じます。

212* **ネイティブメッセージングホストエラー**:ネイティブメッセージングホストがスタートアップ時にクラッシュする場合、Claude Code を再インストールしてホスト設定を再生成してみてください。

213 

214### 一般的なエラーメッセージ

215 

216これらは最も頻繁に遭遇するエラーと、それらを解決する方法です。

217 

218| エラー | 原因 | 修正 |

219| ------------------------------------ | ---------------------------------- | --------------------------------------------------- |

220| "Browser extension is not connected" | ネイティブメッセージングホストが拡張機能に到達できない | Chrome と Claude Code を再起動してから、`/chrome` を実行して再接続します |

221| "Extension not detected" | Chrome 拡張機能がインストールされていないか、無効になっている | `chrome://extensions` で拡張機能をインストールまたは有効にします |

222| "No tab available" | Claude がタブの準備ができる前に動作しようとした | Claude に新しいタブを作成して再度試すよう依頼します |

223| "Receiving end does not exist" | 拡張機能サービスワーカーがアイドル状態になった | `/chrome` を実行して「Reconnect extension」を選択します |

224 

225## 関連項目

226 

227* [コンピュータ使用](/ja/computer-use):ブラウザでタスクを実行できない場合にネイティブ macOS アプリを制御します

228* [VS Code で Claude Code を使用する](/ja/vs-code#automate-browser-tasks-with-chrome):VS Code 拡張機能でのブラウザ自動化

229* [CLI リファレンス](/ja/cli-reference):`--chrome` を含むコマンドラインフラグ

230* [一般的なワークフロー](/ja/common-workflows):Claude Code を使用するその他の方法

231* [データとプライバシー](/ja/data-usage):Claude Code がデータを処理する方法

232* [Chrome で Claude を使い始める](https://support.claude.com/en/articles/12012173-getting-started-with-claude-in-chrome):ショートカット、スケジューリング、権限を含む Chrome 拡張機能の完全なドキュメント

claude-code-on-the-web.md +773 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# ウェブ上の Claude Code を使用する

6 

7> Anthropic のサンドボックスでクラウド環境、セットアップスクリプト、ネットワークアクセス、Docker を設定します。`--remote` と `--teleport` を使用してウェブとターミナル間でセッションを移動します。

8 

9<Note>

10 ウェブ上の Claude Code は Pro、Max、Team ユーザー、およびプレミアムシートまたは Chat + Claude Code シートを持つ Enterprise ユーザーを対象としたリサーチプレビュー段階です。

11</Note>

12 

13ウェブ上の Claude Code は [claude.ai/code](https://claude.ai/code) の Anthropic 管理クラウドインフラストラクチャでタスクを実行します。セッションはブラウザを閉じても保持され、Claude モバイルアプリから監視できます。

14 

15<Tip>

16 ウェブ上の Claude Code は初めてですか?[はじめに](/ja/web-quickstart)から始めて、GitHub アカウントを接続し、最初のタスクを送信してください。

17</Tip>

18 

19このページでは以下をカバーしています:

20 

21* [GitHub 認証オプション](#github-authentication-options):GitHub を接続する 2 つの方法

22* [クラウド環境](#the-cloud-environment):どの設定が引き継がれるか、どのツールがインストールされているか、環境を設定する方法

23* [セットアップスクリプト](#setup-scripts)と依存関係管理

24* [ネットワークアクセス](#network-access):レベル、プロキシ、デフォルト許可リスト

25* [`--remote` と `--teleport` を使用してウェブとターミナル間でタスクを移動](#move-tasks-between-web-and-terminal)

26* [セッションの操作](#work-with-sessions):確認、共有、アーカイブ、削除

27* [プルリクエストの自動修正](#auto-fix-pull-requests):CI 失敗とレビューコメントに自動的に応答

28* [セキュリティと分離](#security-and-isolation):セッションの分離方法

29* [制限事項](#limitations):レート制限とプラットフォーム制限

30 

31## GitHub 認証オプション

32 

33クラウドセッションはコードをクローンしてブランチをプッシュするために GitHub リポジトリへのアクセスが必要です。2 つの方法でアクセスを許可できます:

34 

35| 方法 | 仕組み | 最適な用途 |

36| :--------------- | :------------------------------------------------------------------------------------------------- | :-------------------- |

37| **GitHub App** | [ウェブオンボーディング](/ja/web-quickstart)中に特定のリポジトリに Claude GitHub App をインストールします。アクセスはリポジトリごとにスコープされます。 | リポジトリごとの明示的な認可を望むチーム |

38| **`/web-setup`** | ターミナルで `/web-setup` を実行して、ローカル `gh` CLI トークンを Claude アカウントに同期します。アクセスは `gh` トークンが見ることができるものと一致します。 | すでに `gh` を使用している個別開発者 |

39 

40どちらの方法でも機能します。[`/schedule`](/ja/routines)は両方の形式のアクセスをチェックし、どちらも設定されていない場合は `/web-setup` を実行するよう促します。[ターミナルから接続](/ja/web-quickstart#connect-from-your-terminal)で `/web-setup` のウォークスルーを参照してください。

41 

42GitHub App は [Auto-fix](#auto-fix-pull-requests) に必須です。これは App を使用して PR webhook を受け取ります。`/web-setup` で接続し、後で Auto-fix が必要な場合は、それらのリポジトリに App をインストールします。

43 

44Team および Enterprise 管理者は [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) の Quick web setup トグルで `/web-setup` を無効にできます。

45 

46<Note>

47 [Zero Data Retention](/ja/zero-data-retention) が有効な組織は `/web-setup` またはその他のクラウドセッション機能を使用できません。

48</Note>

49 

50## クラウド環境

51 

52各セッションはリポジトリがクローンされた新しい Anthropic 管理 VM で実行されます。このセクションではセッション開始時に利用可能なものと、それをカスタマイズする方法をカバーしています。

53 

54### クラウドセッションで利用可能なもの

55 

56クラウドセッションはリポジトリの新しいクローンから開始されます。リポジトリにコミットされたものはすべて利用可能です。自分のマシンにのみインストールまたは設定したものは利用できません。

57 

58| | クラウドセッションで利用可能 | 理由 |

59| :------------------------------------------------------------- | :------------- | :--------------------------------------------------------------------------------------------------------- |

60| リポジトリの `CLAUDE.md` | はい | クローンの一部 |

61| リポジトリの `.claude/settings.json` フック | はい | クローンの一部 |

62| リポジトリの `.mcp.json` MCP サーバー | はい | クローンの一部 |

63| リポジトリの `.claude/rules/` | はい | クローンの一部 |

64| リポジトリの `.claude/skills/`、`.claude/agents/`、`.claude/commands/` | はい | クローンの一部 |

65| `.claude/settings.json` で宣言されたプラグイン | はい | 宣言した[マーケットプレイス](/ja/plugin-marketplaces)からセッション開始時にインストールされます。マーケットプレイスソースに到達するためにはネットワークアクセスが必要です |

66| ユーザー `~/.claude/CLAUDE.md` | いいえ | マシンに存在し、リポジトリには存在しません |

67| ユーザー設定でのみ有効なプラグイン | いいえ | ユーザースコープの `enabledPlugins` は `~/.claude/settings.json` に存在します。代わりにリポジトリの `.claude/settings.json` で宣言してください |

68| `claude mcp add` で追加した MCP サーバー | いいえ | これらはローカルユーザー設定に書き込まれ、リポジトリには書き込まれません。代わりに [`.mcp.json`](/ja/mcp#project-scope) でサーバーを宣言してください |

69| 静的 API トークンと認証情報 | いいえ | 専用シークレットストアはまだ存在しません。以下を参照してください |

70| AWS SSO のようなインタラクティブ認証 | いいえ | サポートされていません。SSO はクラウドセッションで実行できないブラウザベースのログインが必要です |

71 

72クラウドセッションで設定を利用可能にするには、リポジトリにコミットしてください。専用シークレットストアはまだ利用できません。環境変数とセットアップスクリプトの両方は環境設定に保存され、その環境を編集できる誰もが見ることができます。クラウドセッションでシークレットが必要な場合は、その可視性を念頭に置いて環境変数として追加してください。

73 

74### インストール済みツール

75 

76クラウドセッションには一般的な言語ランタイム、ビルドツール、データベースがプリインストールされています。以下の表はカテゴリ別に含まれるものをまとめています。

77 

78| カテゴリ | 含まれるもの |

79| :---------- | :--------------------------------------------------------------- |

80| **Python** | pip、poetry、uv、black、mypy、pytest、ruff を備えた Python 3.x |

81| **Node.js** | nvm 経由の 20、21、22、npm、yarn、pnpm、bun¹、eslint、prettier、chromedriver |

82| **Ruby** | gem、bundler、rbenv を備えた 3.1、3.2、3.3 |

83| **PHP** | Composer を備えた 8.4 |

84| **Java** | Maven と Gradle を備えた OpenJDK 21 |

85| **Go** | モジュールサポート付きの最新安定版 |

86| **Rust** | rustc と cargo |

87| **C/C++** | GCC、Clang、cmake、ninja、conan |

88| **Docker** | docker、dockerd、docker compose |

89| **データベース** | PostgreSQL 16、Redis 7.0 |

90| **ユーティリティ** | git、jq、yq、ripgrep、tmux、vim、nano |

91 

92¹ Bun はインストールされていますが、パッケージ取得に関して既知の[プロキシ互換性の問題](#install-dependencies-with-a-sessionstart-hook)があります。

93 

94正確なバージョンについては、Claude にクラウドセッションで `check-tools` を実行するよう依頼してください。このコマンドはクラウドセッションにのみ存在します。

95 

96### GitHub の問題とプルリクエストを操作する

97 

98クラウドセッションには、Claude がセットアップなしで問題を読み取り、プルリクエストをリストし、diff を取得し、コメントを投稿できる組み込み GitHub ツールが含まれています。これらのツールは [GitHub プロキシ](#github-proxy)を通じて認証され、[GitHub 認証オプション](#github-authentication-options)で設定した方法を使用するため、トークンはコンテナに入りません。

99 

100`gh` CLI はプリインストールされていません。組み込みツールがカバーしていない `gh` コマンド(`gh release` や `gh workflow run` など)が必要な場合は、自分でインストールして認証してください:

101 

102<Steps>

103 <Step title="セットアップスクリプトに gh をインストール">

104 [セットアップスクリプト](#setup-scripts)に `apt update && apt install -y gh` を追加します。

105 </Step>

106 

107 <Step title="トークンを提供">

108 [環境設定](#configure-your-environment)に GitHub 個人アクセストークンを持つ `GH_TOKEN` 環境変数を追加します。`gh` は `GH_TOKEN` を自動的に読み取るため、`gh auth login` ステップは不要です。

109 </Step>

110</Steps>

111 

112### アーティファクトをセッションにリンク

113 

114各クラウドセッションは claude.ai 上にトランスクリプト URL を持ち、セッションは `CLAUDE_CODE_REMOTE_SESSION_ID` 環境変数から独自の ID を読み取ることができます。これを使用して、PR 本文、コミットメッセージ、Slack 投稿、または生成されたレポートに追跡可能なリンクを配置し、レビュアーがそれを生成した実行を開くことができます。

115 

116Claude に環境変数からリンクを構築するよう依頼してください。次のコマンドは URL を出力します:

117 

118```bash theme={null}

119echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID}"

120```

121 

122### テストを実行し、サービスを開始し、パッケージを追加

123 

124Claude はタスクに取り組む際にテストを実行します。プロンプトで依頼してください。例えば「fix the failing tests in `tests/`」または「run pytest after each change」。pytest、jest、cargo test などのテストランナーはプリインストールされているため、すぐに機能します。

125 

126PostgreSQL と Redis はプリインストールされていますがデフォルトでは実行されていません。セッション中に Claude に各を開始するよう依頼してください:

127 

128```bash theme={null}

129service postgresql start

130```

131 

132```bash theme={null}

133service redis-server start

134```

135 

136Docker はコンテナ化されたサービスを実行するために利用可能です。Claude に `docker compose up` を実行してプロジェクトのサービスを開始するよう依頼してください。イメージをプルするためのネットワークアクセスは環境の[アクセスレベル](#access-levels)に従い、[信頼できるデフォルト](#default-allowed-domains)には Docker Hub およびその他の一般的なレジストリが含まれます。

137 

138イメージが大きいか遅い場合は、[セットアップスクリプト](#setup-scripts)に `docker compose pull` または `docker compose build` を追加してください。プルされたイメージは[キャッシュされた環境](#environment-caching)に保存されるため、各新しいセッションはディスク上にそれらを持っています。キャッシュはファイルのみを保存し、実行中のプロセスは保存しないため、Claude は各セッションでコンテナを開始します。

139 

140プリインストールされていないパッケージを追加するには、[セットアップスクリプト](#setup-scripts)を使用してください。スクリプトの出力は[キャッシュされ](#environment-caching)、そこにインストールしたパッケージはすべてのセッションの開始時に利用可能で、毎回再インストールする必要はありません。セッション中に Claude にパッケージをインストールするよう依頼することもできますが、それらのインストールは他のセッションに引き継がれません。

141 

142### リソース制限

143 

144クラウドセッションは時間とともに変わる可能性のある概算リソース上限で実行されます:

145 

146* 4 vCPU

147* 16 GB RAM

148* 30 GB ディスク

149 

150大規模なビルドジョブやメモリ集約的なテストなど、大幅により多くのメモリを必要とするタスクは失敗するか終了される可能性があります。これらの制限を超えるワークロードについては、[Remote Control](/ja/remote-control)を使用して独自のハードウェアで Claude Code を実行してください。

151 

152### 環境を設定

153 

154環境は[ネットワークアクセス](#network-access)、環境変数、セッション開始前に実行される[セットアップスクリプト](#setup-scripts)を制御します。設定なしで利用可能なものについては [Installed tools](#installed-tools) を参照してください。ウェブインターフェースまたはターミナルから環境を管理できます:

155 

156| アクション | 方法 |

157| :------------------- | :--------------------------------------------------------------------------------------------------------------------- |

158| 環境を追加 | 現在の環境を選択して環境セレクターを開き、**Add environment** を選択します。ダイアログには名前、ネットワークアクセスレベル、環境変数、セットアップスクリプトが含まれます。 |

159| 環境を編集 | 環境名の右側の設定アイコンを選択します。 |

160| 環境をアーカイブ | 環境を編集用に開き、**Archive** を選択します。アーカイブされた環境はセレクターから非表示になりますが、既存のセッションは実行を続けます。 |

161| `--remote` のデフォルトを設定 | ターミナルで `/remote-env` を実行します。単一の環境がある場合、このコマンドは現在の設定を表示します。`/remote-env` はデフォルトのみを選択します。ウェブインターフェースから環境を追加、編集、アーカイブします。 |

162 

163環境変数は `.env` 形式を使用し、1 行に 1 つの `KEY=value` ペアです。値を引用符で囲まないでください。引用符は値の一部として保存されるためです。

164 

165```text theme={null}

166NODE_ENV=development

167LOG_LEVEL=debug

168DATABASE_URL=postgres://localhost:5432/myapp

169```

170 

171## セットアップスクリプト

172 

173セットアップスクリプトは新しいクラウドセッションが開始されるときに実行される Bash スクリプトで、Claude Code が起動する前に実行されます。セットアップスクリプトを使用して依存関係をインストールし、ツールを設定するか、セッションが必要とするプリインストールされていないものを取得します。

174 

175スクリプトは Ubuntu 24.04 でルートとして実行されるため、`apt install` とほとんどの言語パッケージマネージャーが機能します。

176 

177セットアップスクリプトを追加するには、環境設定ダイアログを開き、**Setup script** フィールドにスクリプトを入力します。

178 

179この例はプリインストールされていない `gh` CLI をインストールします:

180 

181```bash theme={null}

182#!/bin/bash

183apt update && apt install -y gh

184```

185 

186スクリプトがゼロ以外で終了する場合、セッションは開始に失敗します。不安定なインストール失敗でセッションをブロックするのを避けるために、重要でないコマンドに `|| true` を追加します。

187 

188<Note>

189 パッケージをインストールするセットアップスクリプトはレジストリに到達するためにネットワークアクセスが必要です。デフォルトの **Trusted** ネットワークアクセスは npm、PyPI、RubyGems、crates.io を含む[一般的なパッケージレジストリ](#default-allowed-domains)への接続を許可します。環境が **None** ネットワークアクセスを使用する場合、スクリプトはパッケージのインストールに失敗します。

190</Note>

191 

192### 環境キャッシング

193 

194セットアップスクリプトは環境でセッションを開始するときに初めて実行されます。完了後、Anthropic はファイルシステムをスナップショットし、そのスナップショットを後のセッションの開始点として再利用します。新しいセッションはディスク上に依存関係、ツール、Docker イメージを既に持っており、セットアップスクリプトステップはスキップされます。これにより、スクリプトが大規模なツールチェーンをインストールするか、コンテナイメージをプルする場合でも、スタートアップは高速に保たれます。

195 

196キャッシュはファイルをキャプチャし、実行中のプロセスはキャプチャしません。セットアップスクリプトがディスクに書き込むものはすべて引き継がれます。開始するサービスまたはコンテナは引き継がれないため、Claude に依頼するか、[SessionStart フック](#setup-scripts-vs-sessionstart-hooks)を使用してセッションごとにそれらを開始してください。

197 

198環境のセットアップスクリプトまたは許可されたネットワークホストを変更するとき、およびキャッシュが約 7 日後に有効期限に達するときに、セットアップスクリプトが再度実行されてキャッシュが再構築されます。既存のセッションを再開することはセットアップスクリプトを再実行しません。

199 

200キャッシングを有効にするか、スナップショットを自分で管理する必要はありません。

201 

202### セットアップスクリプト対 SessionStart フック

203 

204クラウドが必要とするがラップトップがすでに持っているもの(言語ランタイムや CLI ツールなど)をインストールするにはセットアップスクリプトを使用します。クラウドとローカルの両方で実行する必要があるプロジェクトセットアップ(`npm install` など)には [SessionStart フック](/ja/hooks#sessionstart)を使用します。

205 

206どちらもセッションの開始時に実行されますが、異なる場所に属しています:

207 

208| | セットアップスクリプト | SessionStart フック |

209| ---- | ---------------------------------------------------------------- | --------------------------------- |

210| 添付先 | クラウド環境 | リポジトリ |

211| 設定場所 | クラウド環境 UI | リポジトリの `.claude/settings.json` |

212| 実行 | Claude Code が起動する前、[キャッシュされた環境](#environment-caching)が利用できない場合のみ | Claude Code が起動した後、再開を含むすべてのセッション |

213| スコープ | クラウド環境のみ | ローカルとクラウド両方 |

214 

215SessionStart フックはローカルのユーザーレベル `~/.claude/settings.json` でも定義できますが、ユーザーレベルの設定はクラウドセッションに引き継がれません。クラウドでは、リポジトリにコミットされたフックのみが実行されます。

216 

217### SessionStart フックで依存関係をインストール

218 

219クラウドセッションのみで依存関係をインストールするには、リポジトリの `.claude/settings.json` に SessionStart フックを追加します:

220 

221```json theme={null}

222{

223 "hooks": {

224 "SessionStart": [

225 {

226 "matcher": "startup|resume",

227 "hooks": [

228 {

229 "type": "command",

230 "command": "\"$CLAUDE_PROJECT_DIR\"/scripts/install_pkgs.sh"

231 }

232 ]

233 }

234 ]

235 }

236}

237```

238 

239`scripts/install_pkgs.sh` にスクリプトを作成し、`chmod +x` で実行可能にします。`CLAUDE_CODE_REMOTE` 環境変数はクラウドセッションで `true` に設定されるため、ローカル実行をスキップするために使用できます:

240 

241```bash theme={null}

242#!/bin/bash

243 

244if [ "$CLAUDE_CODE_REMOTE" != "true" ]; then

245 exit 0

246fi

247 

248npm install

249pip install -r requirements.txt

250exit 0

251```

252 

253SessionStart フックはクラウドセッションでいくつかの制限があります:

254 

255* **クラウドのみのスコープなし**:フックはローカルとクラウドセッションの両方で実行されます。ローカル実行をスキップするには、上記のようにスクリプトで `CLAUDE_CODE_REMOTE` 環境変数をチェックします。

256* **ネットワークアクセスが必要**:インストールコマンドはパッケージレジストリに到達する必要があります。環境が **None** ネットワークアクセスを使用する場合、これらのフックは失敗します。**Trusted** の下の[デフォルト許可リスト](#default-allowed-domains)は npm、PyPI、RubyGems、crates.io をカバーしています。

257* **プロキシ互換性**:すべてのアウトバウンドトラフィックは[セキュリティプロキシ](#security-proxy)を通じて渡されます。一部のパッケージマネージャーはこのプロキシで正しく機能しません。Bun は既知の例です。

258* **スタートアップレイテンシーを追加**:フックはセッションが開始または再開されるたびに実行されます。依存関係が既に存在するかどうかを確認してから再インストールすることで、インストールスクリプトを高速に保ちます。

259 

260後続の Bash コマンドの環境変数を永続化するには、`$CLAUDE_ENV_FILE` のファイルに書き込みます。詳細については [SessionStart フック](/ja/hooks#sessionstart)を参照してください。

261 

262カスタム Docker イメージで基本イメージを置き換えることはまだサポートされていません。[提供されたイメージ](#installed-tools)の上にセットアップスクリプトを使用して必要なものをインストールするか、`docker compose` を使用して Claude と一緒にイメージをコンテナとして実行してください。

263 

264## ネットワークアクセス

265 

266ネットワークアクセスはクラウド環境からのアウトバウンド接続を制御します。各環境は 1 つのアクセスレベルを指定し、カスタム許可ドメインで拡張できます。デフォルトは **Trusted** で、パッケージレジストリおよび他の[許可リストドメイン](#default-allowed-domains)を許可します。

267 

268### アクセスレベル

269 

270環境を作成または編集するときにアクセスレベルを選択します:

271 

272| レベル | アウトバウンド接続 |

273| :---------- | :----------------------------------------------------------------- |

274| **None** | アウトバウンドネットワークアクセスなし |

275| **Trusted** | [許可リストドメイン](#default-allowed-domains)のみ:パッケージレジストリ、GitHub、クラウド SDK |

276| **Full** | 任意のドメイン |

277| **Custom** | 独自の許可リスト、オプションでデフォルトを含む |

278 

279GitHub 操作は[別のプロキシ](#github-proxy)を使用し、この設定から独立しています。

280 

281### 特定のドメインを許可

282 

283Trusted リストにないドメインを許可するには、環境のネットワークアクセス設定で **Custom** を選択します。**Allowed domains** フィールドが表示されます。1 行に 1 つのドメインを入力します:

284 

285```text theme={null}

286api.example.com

287*.internal.example.com

288registry.example.com

289```

290 

291ワイルドカードサブドメインマッチングに `*.` を使用します。**Also include default list of common package managers** をチェックして [Trusted ドメイン](#default-allowed-domains)をカスタムエントリと一緒に保つか、リストしたものだけを許可するためにチェックを外します。

292 

293### GitHub プロキシ

294 

295セキュリティのため、すべての GitHub 操作は、すべての git インタラクションを透過的に処理する専用プロキシサービスを通じて行われます。サンドボックス内では、git クライアントはカスタムビルトのスコープ付き認証情報を使用して認証します。このプロキシは:

296 

297* GitHub 認証をセキュアに管理します:git クライアントはサンドボックス内のスコープ付き認証情報を使用し、プロキシはそれを検証して実際の GitHub 認証トークンに変換します

298* 安全性のため git push 操作を現在のワーキングブランチに制限します

299* セキュリティ境界を維持しながらシームレスなクローン、フェッチ、PR 操作を有効にします

300 

301### セキュリティプロキシ

302 

303環境はセキュリティと不正使用防止のため HTTP/HTTPS ネットワークプロキシの背後で実行されます。すべてのアウトバウンドインターネットトラフィックはこのプロキシを通じて渡され、以下を提供します:

304 

305* 悪意のあるリクエストに対する保護

306* レート制限と不正使用防止

307* 強化されたセキュリティのためのコンテンツフィルタリング

308 

309### デフォルト許可ドメイン

310 

311**Trusted** ネットワークアクセスを使用する場合、以下のドメインはデフォルトで許可されます。`*` でマークされたドメインはワイルドカードサブドメインマッチングを示すため、`*.gcr.io` は `gcr.io` のすべてのサブドメインを許可します。

312 

313<AccordionGroup>

314 <Accordion title="Anthropic サービス">

315 * api.anthropic.com

316 * statsig.anthropic.com

317 * docs.claude.com

318 * platform.claude.com

319 * code.claude.com

320 * claude.ai

321 </Accordion>

322 

323 <Accordion title="バージョン管理">

324 * github.com

325 * [www.github.com](http://www.github.com)

326 * api.github.com

327 * npm.pkg.github.com

328 * raw\.githubusercontent.com

329 * pkg-npm.githubusercontent.com

330 * objects.githubusercontent.com

331 * release-assets.githubusercontent.com

332 * codeload.github.com

333 * avatars.githubusercontent.com

334 * camo.githubusercontent.com

335 * gist.github.com

336 * gitlab.com

337 * [www.gitlab.com](http://www.gitlab.com)

338 * registry.gitlab.com

339 * bitbucket.org

340 * [www.bitbucket.org](http://www.bitbucket.org)

341 * api.bitbucket.org

342 </Accordion>

343 

344 <Accordion title="コンテナレジストリ">

345 * registry-1.docker.io

346 * auth.docker.io

347 * index.docker.io

348 * hub.docker.com

349 * [www.docker.com](http://www.docker.com)

350 * production.cloudflare.docker.com

351 * download.docker.com

352 * gcr.io

353 * \*.gcr.io

354 * ghcr.io

355 * mcr.microsoft.com

356 * \*.data.mcr.microsoft.com

357 * public.ecr.aws

358 </Accordion>

359 

360 <Accordion title="クラウドプラットフォーム">

361 * cloud.google.com

362 * accounts.google.com

363 * gcloud.google.com

364 * \*.googleapis.com

365 * storage.googleapis.com

366 * compute.googleapis.com

367 * container.googleapis.com

368 * azure.com

369 * portal.azure.com

370 * microsoft.com

371 * [www.microsoft.com](http://www.microsoft.com)

372 * \*.microsoftonline.com

373 * packages.microsoft.com

374 * dotnet.microsoft.com

375 * dot.net

376 * visualstudio.com

377 * dev.azure.com

378 * \*.amazonaws.com

379 * \*.api.aws

380 * oracle.com

381 * [www.oracle.com](http://www.oracle.com)

382 * java.com

383 * [www.java.com](http://www.java.com)

384 * java.net

385 * [www.java.net](http://www.java.net)

386 * download.oracle.com

387 * yum.oracle.com

388 </Accordion>

389 

390 <Accordion title="JavaScript と Node パッケージマネージャー">

391 * registry.npmjs.org

392 * [www.npmjs.com](http://www.npmjs.com)

393 * [www.npmjs.org](http://www.npmjs.org)

394 * npmjs.com

395 * npmjs.org

396 * yarnpkg.com

397 * registry.yarnpkg.com

398 </Accordion>

399 

400 <Accordion title="Python パッケージマネージャー">

401 * pypi.org

402 * [www.pypi.org](http://www.pypi.org)

403 * files.pythonhosted.org

404 * pythonhosted.org

405 * test.pypi.org

406 * pypi.python.org

407 * pypa.io

408 * [www.pypa.io](http://www.pypa.io)

409 </Accordion>

410 

411 <Accordion title="Ruby パッケージマネージャー">

412 * rubygems.org

413 * [www.rubygems.org](http://www.rubygems.org)

414 * api.rubygems.org

415 * index.rubygems.org

416 * ruby-lang.org

417 * [www.ruby-lang.org](http://www.ruby-lang.org)

418 * rubyforge.org

419 * [www.rubyforge.org](http://www.rubyforge.org)

420 * rubyonrails.org

421 * [www.rubyonrails.org](http://www.rubyonrails.org)

422 * rvm.io

423 * get.rvm.io

424 </Accordion>

425 

426 <Accordion title="Rust パッケージマネージャー">

427 * crates.io

428 * [www.crates.io](http://www.crates.io)

429 * index.crates.io

430 * static.crates.io

431 * rustup.rs

432 * static.rust-lang.org

433 * [www.rust-lang.org](http://www.rust-lang.org)

434 </Accordion>

435 

436 <Accordion title="Go パッケージマネージャー">

437 * proxy.golang.org

438 * sum.golang.org

439 * index.golang.org

440 * golang.org

441 * [www.golang.org](http://www.golang.org)

442 * goproxy.io

443 * pkg.go.dev

444 </Accordion>

445 

446 <Accordion title="JVM パッケージマネージャー">

447 * maven.org

448 * repo.maven.org

449 * central.maven.org

450 * repo1.maven.org

451 * repo.maven.apache.org

452 * jcenter.bintray.com

453 * gradle.org

454 * [www.gradle.org](http://www.gradle.org)

455 * services.gradle.org

456 * plugins.gradle.org

457 * kotlinlang.org

458 * [www.kotlinlang.org](http://www.kotlinlang.org)

459 * spring.io

460 * repo.spring.io

461 </Accordion>

462 

463 <Accordion title="その他のパッケージマネージャー">

464 * packagist.org(PHP Composer)

465 * [www.packagist.org](http://www.packagist.org)

466 * repo.packagist.org

467 * nuget.org(.NET NuGet)

468 * [www.nuget.org](http://www.nuget.org)

469 * api.nuget.org

470 * pub.dev(Dart/Flutter)

471 * api.pub.dev

472 * hex.pm(Elixir/Erlang)

473 * [www.hex.pm](http://www.hex.pm)

474 * cpan.org(Perl CPAN)

475 * [www.cpan.org](http://www.cpan.org)

476 * metacpan.org

477 * [www.metacpan.org](http://www.metacpan.org)

478 * api.metacpan.org

479 * cocoapods.org(iOS/macOS)

480 * [www.cocoapods.org](http://www.cocoapods.org)

481 * cdn.cocoapods.org

482 * haskell.org

483 * [www.haskell.org](http://www.haskell.org)

484 * hackage.haskell.org

485 * swift.org

486 * [www.swift.org](http://www.swift.org)

487 </Accordion>

488 

489 <Accordion title="Linux ディストリビューション">

490 * archive.ubuntu.com

491 * security.ubuntu.com

492 * ubuntu.com

493 * [www.ubuntu.com](http://www.ubuntu.com)

494 * \*.ubuntu.com

495 * ppa.launchpad.net

496 * launchpad.net

497 * [www.launchpad.net](http://www.launchpad.net)

498 * \*.nixos.org

499 </Accordion>

500 

501 <Accordion title="開発ツールとプラットフォーム">

502 * dl.k8s.io(Kubernetes)

503 * pkgs.k8s.io

504 * k8s.io

505 * [www.k8s.io](http://www.k8s.io)

506 * releases.hashicorp.com(HashiCorp)

507 * apt.releases.hashicorp.com

508 * rpm.releases.hashicorp.com

509 * archive.releases.hashicorp.com

510 * hashicorp.com

511 * [www.hashicorp.com](http://www.hashicorp.com)

512 * repo.anaconda.com(Anaconda/Conda)

513 * conda.anaconda.org

514 * anaconda.org

515 * [www.anaconda.com](http://www.anaconda.com)

516 * anaconda.com

517 * continuum.io

518 * apache.org(Apache)

519 * [www.apache.org](http://www.apache.org)

520 * archive.apache.org

521 * downloads.apache.org

522 * eclipse.org(Eclipse)

523 * [www.eclipse.org](http://www.eclipse.org)

524 * download.eclipse.org

525 * nodejs.org(Node.js)

526 * [www.nodejs.org](http://www.nodejs.org)

527 * developer.apple.com

528 * developer.android.com

529 * pkg.stainless.com

530 * binaries.prisma.sh

531 </Accordion>

532 

533 <Accordion title="クラウドサービスと監視">

534 * statsig.com

535 * [www.statsig.com](http://www.statsig.com)

536 * api.statsig.com

537 * sentry.io

538 * \*.sentry.io

539 * downloads.sentry-cdn.com

540 * http-intake.logs.datadoghq.com

541 * \*.datadoghq.com

542 * \*.datadoghq.eu

543 * api.honeycomb.io

544 </Accordion>

545 

546 <Accordion title="コンテンツ配信とミラー">

547 * sourceforge.net

548 * \*.sourceforge.net

549 * packagecloud.io

550 * \*.packagecloud.io

551 * fonts.googleapis.com

552 * fonts.gstatic.com

553 </Accordion>

554 

555 <Accordion title="スキーマと設定">

556 * json-schema.org

557 * [www.json-schema.org](http://www.json-schema.org)

558 * json.schemastore.org

559 * [www.schemastore.org](http://www.schemastore.org)

560 </Accordion>

561 

562 <Accordion title="Model Context Protocol">

563 * \*.modelcontextprotocol.io

564 </Accordion>

565</AccordionGroup>

566 

567## ウェブとターミナル間でタスクを移動

568 

569これらのワークフローには [Claude Code CLI](/ja/quickstart) が同じ claude.ai アカウントにサインインしている必要があります。ターミナルから新しいクラウドセッションを開始するか、クラウドセッションをターミナルにプルしてローカルで続行できます。クラウドセッションはラップトップを閉じても保持され、Claude モバイルアプリを含む任意の場所から監視できます。

570 

571<Note>

572 CLI からのセッションハンドオフは一方向です:`--teleport` でクラウドセッションをターミナルにプルできますが、既存のターミナルセッションをウェブにプッシュすることはできません。`--remote` フラグは現在のリポジトリの新しいクラウドセッションを作成します。[Desktop アプリ](/ja/desktop#continue-in-another-surface)は別のサーフェスに送信できる Continue in メニューを提供します。

573</Note>

574 

575### ターミナルからウェブへ

576 

577`--remote` フラグを使用してコマンドラインからクラウドセッションを開始します:

578 

579```bash theme={null}

580claude --remote "Fix the authentication bug in src/auth/login.ts"

581```

582 

583これにより claude.ai 上に新しいクラウドセッションが作成されます。セッションは現在のディレクトリの GitHub リモートを現在のブランチでクローンするため、VM は GitHub からクローンするため、ローカルコミットがある場合は最初にプッシュしてください。`--remote` は一度に 1 つのリポジトリで機能します。タスクはクラウドで実行され、ローカルで作業を続行できます。

584 

585<Note>

586 `--remote` はクラウドセッションを作成します。`--remote-control` は無関係です:ウェブから監視するためにローカル CLI セッションを公開します。[Remote Control](/ja/remote-control)を参照してください。

587</Note>

588 

589Claude Code CLI で `/tasks` を使用して進捗をチェックするか、claude.ai または Claude モバイルアプリでセッションを開いて直接対話します。そこから Claude を操舵し、フィードバックを提供するか、他のすべての会話と同じように質問に答えることができます。

590 

591#### クラウドタスクのヒント

592 

593**ローカルで計画し、リモートで実行する**:複雑なタスクの場合、Claude をプランモードで開始してアプローチについて協力し、その後ウェブに作業を送信します:

594 

595```bash theme={null}

596claude --permission-mode plan

597```

598 

599プランモードでは、Claude はファイルを読み取り、コマンドを実行して探索し、ソースコードを編集せずにプランを提案します。計画に満足したら、リポジトリにプランを保存し、コミットしてプッシュし、クラウド VM がそれをクローンできるようにします。その後、自律実行のためにクラウドセッションを開始します:

600 

601```bash theme={null}

602claude --remote "Execute the migration plan in docs/migration-plan.md"

603```

604 

605このパターンにより、戦略を制御しながら Claude がクラウドで自律的に実行できます。

606 

607**クラウドで ultraplan を使用してプランを作成**:ウェブセッション自体でプランを起案およびレビューするには、[ultraplan](/ja/ultraplan)を使用します。Claude はウェブ上の Claude Code でプランを生成し、作業を続行し、ブラウザでセクションにコメントし、リモートで実行するか、プランをターミナルに送り返すことを選択します。

608 

609**タスクを並列で実行**:各 `--remote` コマンドは独立して実行される独自のクラウドセッションを作成します。複数のタスクを開始でき、すべて別々のセッションで同時に実行されます:

610 

611```bash theme={null}

612claude --remote "Fix the flaky test in auth.spec.ts"

613claude --remote "Update the API documentation"

614claude --remote "Refactor the logger to use structured output"

615```

616 

617Claude Code CLI で `/tasks` を使用してすべてのセッションを監視します。セッションが完了したら、ウェブインターフェースから PR を作成するか、[セッションをテレポート](#from-web-to-terminal)してターミナルで作業を続行できます。

618 

619#### GitHub なしでローカルリポジトリを送信

620 

621GitHub に接続されていないリポジトリから `claude --remote` を実行する場合、Claude Code はローカルリポジトリをバンドルしてクラウドセッションに直接アップロードします。バンドルにはすべてのブランチ全体のリポジトリ履歴と、追跡されたファイルへのコミットされていない変更が含まれます。

622 

623GitHub アクセスが利用できない場合、このフォールバックは自動的にアクティブになります。GitHub が接続されている場合でも強制するには、`CCR_FORCE_BUNDLE=1` を設定します:

624 

625```bash theme={null}

626CCR_FORCE_BUNDLE=1 claude --remote "Run the test suite and fix any failures"

627```

628 

629バンドルされたリポジトリはこれらの制限を満たす必要があります:

630 

631* ディレクトリは少なくとも 1 つのコミットを持つ git リポジトリである必要があります

632* バンドルされたリポジトリは 100 MB 未満である必要があります。より大きなリポジトリは現在のブランチのみをバンドルすることにフォールバックし、その後ワーキングツリーの単一の圧縮スナップショットにフォールバックし、スナップショットがまだ大きすぎる場合のみ失敗します

633* 追跡されていないファイルは含まれません。クラウドセッションが見るべきファイルで `git add` を実行します

634* バンドルから作成されたセッションは、[GitHub 認証](#github-authentication-options)も設定されていない限り、リモートにプッシュバックできません

635 

636### ウェブからターミナルへ

637 

638以下のいずれかを使用してクラウドセッションをターミナルにプルします:

639 

640* **`--teleport` を使用**:コマンドラインから `claude --teleport` を実行してインタラクティブセッションピッカーを表示するか、`claude --teleport <session-id>` を実行して特定のセッションを直接再開します。コミットされていない変更がある場合は、最初にそれらをスタッシュするよう求められます。

641* **`/teleport` を使用**:既存の CLI セッション内で `/teleport`(または `/tp`)を実行して、Claude Code を再起動せずに同じセッションピッカーを開きます。

642* **`/tasks` から**:`/tasks` を実行してバックグラウンドセッションを表示し、`t` を押してセッションにテレポートします

643* **ウェブインターフェースから**:**Open in CLI** を選択してターミナルに貼り付けられるコマンドをコピーします

644 

645セッションをテレポートすると、Claude は正しいリポジトリにいることを確認し、クラウドセッションからブランチをフェッチしてチェックアウトし、完全な会話履歴をターミナルに読み込みます。

646 

647`--teleport` は `--resume` とは異なります。`--resume` はこのマシンのローカル履歴から会話を再開し、クラウドセッションをリストしません。`--teleport` はクラウドセッションとそのブランチをプルします。

648 

649#### テレポート要件

650 

651テレポートはセッションを再開する前にこれらの要件をチェックします。要件が満たされていない場合は、エラーが表示されるか、問題を解決するよう求められます。

652 

653| 要件 | 詳細 |

654| ------------ | ------------------------------------------------------------------ |

655| クリーンな git 状態 | 作業ディレクトリにコミットされていない変更がないことが必要です。テレポートは必要に応じて変更をスタッシュするよう求めます。 |

656| 正しいリポジトリ | フォークではなく、同じリポジトリのチェックアウトから `--teleport` を実行する必要があります。 |

657| ブランチが利用可能 | クラウドセッションからのブランチがリモートにプッシュされている必要があります。テレポートは自動的にフェッチしてチェックアウトします。 |

658| 同じアカウント | クラウドセッションで使用された同じ claude.ai アカウントに認証される必要があります。 |

659 

660#### `--teleport` が利用できない

661 

662テレポートには claude.ai サブスクリプション認証が必要です。API キー、Bedrock、Vertex AI、または Microsoft Foundry 経由で認証されている場合は、代わりに claude.ai アカウントでサインインするために `/login` を実行してください。claude.ai 経由で既にサインインしており、`--teleport` がまだ利用できない場合は、組織がクラウドセッションを無効にしている可能性があります。

663 

664## セッションの操作

665 

666セッションは claude.ai/code のサイドバーに表示されます。そこから変更を確認し、チームメイトと共有し、完了した作業をアーカイブするか、セッションを永続的に削除できます。

667 

668### コンテキストを管理

669 

670クラウドセッションは[組み込みコマンド](/ja/commands)をサポートしており、テキスト出力を生成します。`/model` や `/config` のようなインタラクティブターミナルピッカーを開くコマンドは利用できません。

671 

672コンテキスト管理の場合:

673 

674| コマンド | クラウドセッションで機能 | 注記 |

675| :--------- | :----------- | :--------------------------------------------------------------------------- |

676| `/compact` | はい | 会話を要約してコンテキストを解放します。`/compact keep the test output` のようなオプションのフォーカス指示を受け入れます |

677| `/context` | はい | 現在コンテキストウィンドウにあるものを表示します |

678| `/clear` | いいえ | サイドバーから新しいセッションを開始します |

679 

680自動圧縮はコンテキストウィンドウが容量に近づくと自動的に実行され、CLI と同じです。より早くトリガーするには、[環境変数](#configure-your-environment)で [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/ja/env-vars)を設定します。例えば、`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` はデフォルトの \~95% ではなく 70% 容量で圧縮します。圧縮計算の有効なウィンドウサイズを変更するには、[`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/ja/env-vars)を使用します。

681 

682[Subagents](/ja/sub-agents)はローカルと同じように機能します。Claude は Task ツールでそれらをスポーンして、研究または並列作業を別のコンテキストウィンドウにオフロードし、メイン会話を軽くすることができます。リポジトリの `.claude/agents/` で定義された Subagents は自動的にピックアップされます。[Agent teams](/ja/agent-teams)はデフォルトでオフですが、[環境変数](#configure-your-environment)に `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` を追加することで有効にできます。

683 

684### 変更を確認

685 

686各セッションは追加および削除された行数を示す diff インジケーター(例:`+42 -18`)を表示します。それを選択して diff ビューを開き、特定の行にインラインコメントを残し、次のメッセージで Claude に送信します。PR 作成を含む完全なウォークスルーについては [Review and iterate](/ja/web-quickstart#review-and-iterate)を参照してください。Claude が PR の CI 失敗とレビューコメントを自動的に監視するようにするには、[プルリクエストの自動修正](#auto-fix-pull-requests)を参照してください。

687 

688### セッションを共有

689 

690セッションを共有するには、以下のアカウントタイプに従ってその可視性を切り替えます。その後、セッションリンクをそのまま共有します。受信者はリンクを開くと最新の状態を表示しますが、ビューはリアルタイムで更新されません。

691 

692#### Enterprise または Team アカウントから共有

693 

694Enterprise および Team アカウントの場合、2 つの可視性オプションは **Private** と **Team** です。Team 可視性により、セッションは claude.ai 組織の他のメンバーに表示されます。リポジトリアクセス検証はデフォルトで有効になっており、受信者のアカウントに接続された GitHub アカウントに基づいています。アカウントの表示名はアクセス権を持つすべての受信者に表示されます。[Claude in Slack](/ja/slack)セッションは自動的に Team 可視性で共有されます。

695 

696#### Max または Pro アカウントから共有

697 

698Max および Pro アカウントの場合、2 つの可視性オプションは **Private** と **Public** です。Public 可視性により、セッションは claude.ai にログインしているすべてのユーザーに表示されます。

699 

700共有する前にセッションで機密コンテンツを確認してください。セッションにはプライベート GitHub リポジトリのコードと認証情報が含まれる可能性があります。リポジトリアクセス検証はデフォルトで有効になっていません。

701 

702受信者がリポジトリアクセスを持つことを要求するか、共有セッションから名前を非表示にするには、Settings > Claude Code > Sharing settings に移動します。

703 

704### セッションをアーカイブ

705 

706セッションをアーカイブしてセッションリストを整理できます。アーカイブされたセッションはデフォルトのセッションリストから非表示になりますが、アーカイブされたセッションをフィルタリングして表示できます。

707 

708セッションをアーカイブするには、サイドバーのセッションにマウスを合わせてアーカイブアイコンを選択します。

709 

710### セッションを削除

711 

712セッションを削除すると、セッションとそのデータが永続的に削除されます。このアクションは取り消せません。セッションは 2 つの方法で削除できます:

713 

714* **サイドバーから**:アーカイブされたセッションをフィルタリングし、削除するセッションにマウスを合わせて削除アイコンを選択します

715* **セッションメニューから**:セッションを開き、セッションタイトルの横のドロップダウンを選択し、**Delete** を選択します

716 

717セッションが削除される前に確認するよう求められます。

718 

719## プルリクエストの自動修正

720 

721Claude はプルリクエストを監視し、CI 失敗とレビューコメントに自動的に応答できます。Claude は PR の GitHub アクティビティをサブスクライブし、チェックが失敗するかレビュアーがコメントを残すと、Claude は調査し、明確な場合は修正をプッシュします。

722 

723<Note>

724 Auto-fix には Claude GitHub App がリポジトリにインストールされている必要があります。まだインストールしていない場合は、[GitHub App ページ](https://github.com/apps/claude)からインストールするか、[セットアップ](/ja/web-quickstart#connect-github-and-create-an-environment)中にプロンプトが表示されたときにインストールします。

725</Note>

726 

727PR がどこから来たか、どのデバイスを使用しているかに応じて、auto-fix をオンにするにはいくつかの方法があります:

728 

729* **ウェブ上の Claude Code で作成された PR**:CI ステータスバーを開き、**Auto-fix** を選択します

730* **ターミナルから**:PR のブランチにいる間に [`/autofix-pr`](/ja/commands)を実行します。Claude Code は `gh` で開いている PR を検出し、ウェブセッションをスポーンし、1 ステップで auto-fix をオンにします

731* **モバイルアプリから**:Claude に PR を auto-fix するよう指示します。例えば「watch this PR and fix any CI failures or review comments」

732* **既存の PR**:PR URL をセッションに貼り付けて、Claude に auto-fix するよう指示します

733 

734### Claude が PR アクティビティにどのように応答するか

735 

736auto-fix がアクティブな場合、Claude は新しいレビューコメントと CI チェック失敗を含む PR の GitHub イベントを受け取ります。各イベントについて、Claude は調査して進め方を決定します:

737 

738* **明確な修正**:Claude が修正に確信があり、以前の指示と矛盾しない場合、Claude は変更を加え、プッシュし、セッションで何が行われたかを説明します

739* **曖昧なリクエスト**:レビュアーのコメントが複数の方法で解釈される可能性がある場合、または建築的に重要なものが含まれている場合、Claude は行動する前にあなたに尋ねます

740* **重複または無アクション イベント**:イベントが重複している場合、または変更が不要な場合、Claude はセッションでそれを記録して続行します

741 

742Claude は PR を解決する際に GitHub のレビューコメントスレッドに返信する場合があります。これらの返信はあなたの GitHub アカウントを使用して投稿されるため、あなたのユーザー名の下に表示されますが、各返信は Claude Code から来たものとしてラベル付けされるため、レビュアーはそれがエージェントによって書かれたものであり、あなたが直接書いたものではないことを知っています。

743 

744<Warning>

745 リポジトリが Atlantis、Terraform Cloud、または `issue_comment` イベントで実行されるカスタム GitHub Actions などのコメントトリガー自動化を使用する場合、Claude の返信がそれらのワークフローをトリガーする可能性があることに注意してください。auto-fix を有効にする前にリポジトリの自動化を確認し、PR コメントがインフラストラクチャをデプロイするか特権操作を実行できるリポジトリでは auto-fix を無効にすることを検討してください。

746</Warning>

747 

748## セキュリティと分離

749 

750各クラウドセッションはいくつかのレイヤーを通じてマシンおよび他のセッションから分離されます:

751 

752* **分離された仮想マシン**:各セッションは分離された Anthropic 管理 VM で実行されます

753* **ネットワークアクセス制御**:ネットワークアクセスはデフォルトで制限され、無効にできます。ネットワークアクセスを無効にして実行する場合、Claude Code は Anthropic API と通信できます。これにより VM からデータが出ることを許可する可能性があります。

754* **認証情報保護**:git 認証情報や署名キーなどの機密認証情報はサンドボックス内の Claude Code と一緒にありません。認証はスコープ付き認証情報を使用するセキュアプロキシを通じて処理されます。

755* **セキュアな分析**:コードは PR を作成する前に分離された VM 内で分析および変更されます

756 

757## 制限事項

758 

759クラウドセッションをワークフローに依存させる前に、これらの制約を考慮してください:

760 

761* **レート制限**:ウェブ上の Claude Code はアカウント内のすべての他の Claude および Claude Code 使用とレート制限を共有します。複数のタスクを並列で実行すると、レート制限をより多く消費します。クラウド VM に対する個別のコンピュート料金はありません。

762* **リポジトリ認証**:ウェブからローカルにセッションを移動できるのは、同じアカウントに認証されている場合のみです

763* **プラットフォーム制限**:リポジトリのクローンとプルリクエストの作成には GitHub が必要です。自己ホスト型の [GitHub Enterprise Server](/ja/github-enterprise-server)インスタンスは Team および Enterprise プランでサポートされています。GitLab、Bitbucket、およびその他の非 GitHub リポジトリは[ローカルバンドル](#send-local-repositories-without-github)としてクラウドセッションに送信できますが、セッションはリモートに結果をプッシュバックできません

764 

765## 関連リソース

766 

767* [Ultraplan](/ja/ultraplan):クラウドセッションでプランを起案し、ブラウザで確認

768* [Ultrareview](/ja/ultrareview):クラウドサンドボックスで深いマルチエージェントコードレビューを実行

769* [Routines](/ja/routines):スケジュール、API 呼び出し、または GitHub イベントに応答して作業を自動化

770* [フック設定](/ja/hooks):セッションライフサイクルイベントでスクリプトを実行

771* [設定リファレンス](/ja/settings):すべての設定オプション

772* [セキュリティ](/ja/security):分離保証とデータ処理

773* [データ使用](/ja/data-usage):Anthropic がクラウドセッションから保持するもの

claude-directory.md +1583 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# .claude ディレクトリを探索する

6 

7> Claude Code が CLAUDE.md、settings.json、hooks、skills、commands、subagents、rules、auto memory を読み込む場所。プロジェクト内の .claude ディレクトリとホームディレクトリの ~/.claude を探索します。

8 

9export const ClaudeExplorer = () => {

10 const A = useMemo(() => ({href, children}) => <a href={href} style={{

11 color: 'var(--ce-accent)',

12 textDecoration: 'none',

13 borderBottom: '1px dotted var(--ce-accent)'

14 }}>{children}</a>, []);

15 const C = useMemo(() => ({children}) => <code style={{

16 fontFamily: 'var(--ce-mono)',

17 fontSize: '0.92em',

18 padding: '1px 4px',

19 borderRadius: '3px',

20 background: 'var(--ce-surface)',

21 border: '0.5px solid var(--ce-border-subtle)'

22 }}>{children}</code>, []);

23 const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use <A href="/en/skills">skills/</A> instead: same <C>/name</C> invocation, plus you can bundle supporting files.</>, []);

24 const FILE_TREE = useMemo(() => ({

25 project: {

26 label: 'your-project/',

27 children: [{

28 id: 'claude-md',

29 label: 'CLAUDE.md',

30 type: 'file',

31 icon: 'md',

32 color: '#6A9BCC',

33 badge: 'committed',

34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/en/skills">skill</A> or a path-scoped <A href="/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions

40 

41## Commands

42- Build: \`npm run build\`

43- Test: \`npm test\`

44- Lint: \`npm run lint\`

45 

46## Stack

47- TypeScript with strict mode

48- React 19, functional components only

49 

50## Rules

51- Named exports, never default exports

52- Tests live next to source: \`foo.ts\` -> \`foo.test.ts\`

53- All API routes return \`{ data, error }\` shape`,

54 docsLink: '/en/memory'

55 }, {

56 id: 'mcp-json',

57 label: '.mcp.json',

58 type: 'file',

59 icon: 'json',

60 color: '#9B7BC4',

61 badge: 'committed',

62 oneLiner: 'Project-scoped MCP servers, shared with your team',

63 when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/en/mcp#scale-with-mcp-tool-search">tool search</A></>,

64 description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>,

65 tips: [<>Use environment variable references for secrets: <C>{'${GITHUB_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>],

66 exampleIntro: <>This example configures the GitHub MCP server so Claude can read issues and open pull requests. The <C>{'${GITHUB_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>,

67 example: `{

68 "mcpServers": {

69 "github": {

70 "command": "npx",

71 "args": ["-y", "@modelcontextprotocol/server-github"],

72 "env": {

73 "GITHUB_TOKEN": "\${GITHUB_TOKEN}"

74 }

75 }

76 }

77}`,

78 docsLink: '/en/mcp'

79 }, {

80 id: 'worktreeinclude',

81 label: '.worktreeinclude',

82 type: 'file',

83 icon: 'md',

84 color: '#8FA876',

85 badge: 'committed',

86 oneLiner: 'Gitignored files to copy into new worktrees',

87 when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>,

88 description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>,

89 tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/en/desktop#work-in-parallel-with-sessions">desktop app</A></>],

90 exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.',

91 example: `# Local environment

92.env

93.env.local

94 

95# API credentials

96config/secrets.json`,

97 docsLink: '/en/worktrees#copy-gitignored-files-into-worktrees'

98 }, {

99 id: 'dot-claude',

100 label: '.claude/',

101 type: 'folder',

102 icon: 'folder',

103 color: 'var(--ce-accent)',

104 oneLiner: 'Project-level configuration, rules, and extensions',

105 description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are automatically gitignored. Each file badge shows which.',

106 children: [{

107 id: 'settings-json',

108 label: 'settings.json',

109 type: 'file',

110 icon: 'json',

111 color: 'var(--ce-text-3)',

112 badge: 'committed',

113 oneLiner: 'Permissions, hooks, and configuration',

114 when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>,

115 description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.',

116 contains: [<><A href="/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/en/settings#available-settings">model</A>: pick a default model for this project</>, <><A href="/en/settings#environment-variables">env</A>: environment variables set in every session</>, <><A href="/en/output-styles">outputStyle</A>: select a custom system-prompt style from output-styles/</>],

117 tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>],

118 exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>,

119 example: `{

120 "permissions": {

121 "allow": [

122 "Bash(npm test *)",

123 "Bash(npm run *)"

124 ],

125 "deny": [

126 "Bash(rm -rf *)"

127 ]

128 },

129 "hooks": {

130 "PostToolUse": [{

131 "matcher": "Edit|Write",

132 "hooks": [{

133 "type": "command",

134 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"

135 }]

136 }]

137 }

138}`,

139 docsLink: '/en/settings'

140 }, {

141 id: 'settings-local-json',

142 label: 'settings.local.json',

143 type: 'file',

144 icon: 'json',

145 color: 'var(--ce-text-3)',

146 badge: 'gitignored',

147 oneLiner: 'Your personal settings overrides for this project',

148 when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence',

149 description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, but not committed. Use this when you need different permissions or defaults than the team config.',

150 tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>Claude Code adds this file to <C>~/.config/git/ignore</C> the first time it writes one. If you use a custom <C>core.excludesFile</C>, add the pattern there too. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>],

151 exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.',

152 example: `{

153 "permissions": {

154 "allow": [

155 "Bash(docker *)"

156 ]

157 }

158}`,

159 docsLink: '/en/settings'

160 }, {

161 id: 'rules',

162 label: 'rules/',

163 type: 'folder',

164 icon: 'folder',

165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/en/hooks">hooks</A> or <A href="/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',

171 children: [{

172 id: 'rule-testing',

173 label: 'testing.md',

174 type: 'file',

175 icon: 'md',

176 color: '#9B7BC4',

177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---

182paths:

183 - "**/*.test.ts"

184 - "**/*.test.tsx"

185---

186 

187# Testing Rules

188 

189- Use descriptive test names: "should [expected] when [condition]"

190- Mock external dependencies, not internal modules

191- Clean up side effects in afterEach`

192 }, {

193 id: 'rule-api',

194 label: 'api-design.md',

195 type: 'file',

196 icon: 'md',

197 color: '#9B7BC4',

198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,

202 example: `---

203paths:

204 - "src/api/**/*.ts"

205---

206 

207# API Design Rules

208 

209- All endpoints must validate input with Zod schemas

210- Return shape: { data: T } | { error: string }

211- Rate limit all public endpoints`

212 }]

213 }, {

214 id: 'skills',

215 label: 'skills/',

216 type: 'folder',

217 icon: 'folder',

218 color: '#D4A843',

219 oneLiner: 'Reusable prompts you or Claude invoke by name',

220 when: <>Invoked with <C>/skill-name</C> or when Claude matches the task to a skill</>,

221 description: <>Each skill is a folder with a SKILL.md file plus any supporting files it needs. By default, both you and Claude can invoke a skill. Use frontmatter to control that: <C>disable-model-invocation: true</C> for user-only workflows like <C>/deploy</C>, or <C>user-invocable: false</C> to hide from the <C>/</C> menu while Claude can still invoke it.</>,

222 tips: [<>Skills accept arguments: <C>/deploy staging</C> passes "staging" as <C>$ARGUMENTS</C>. Use <C>$0</C>, <C>$1</C>, and so on for positional access</>, <>The <C>description</C> frontmatter determines when Claude auto-invokes the skill</>, 'Bundle reference docs alongside SKILL.md. Claude knows the skill directory path and can read supporting files when you mention them'],

223 docsLink: '/en/skills',

224 children: [{

225 id: 'skill-review',

226 label: 'security-review/',

227 type: 'folder',

228 icon: 'folder',

229 color: '#D4A843',

230 oneLiner: 'A skill bundling SKILL.md with supporting files',

231 children: [{

232 id: 'skill-review-md',

233 label: 'SKILL.md',

234 type: 'file',

235 icon: 'md',

236 color: '#D4A843',

237 badge: 'committed',

238 oneLiner: 'Entrypoint: trigger, invocability, instructions',

239 when: <>User types <C>/security-review &lt;target&gt;</C>; Claude cannot auto-invoke this skill</>,

240 description: [<>This skill uses <C>disable-model-invocation: true</C> so only you can trigger it; Claude never invokes it on its own.</>, <>The <C>!`...`</C> line runs a shell command and injects its output into the prompt. <C>$ARGUMENTS</C> substitutes whatever you typed after the skill name. Claude sees the skill directory path, so mentioning a bundled file like checklist.md lets Claude read it.</>],

241 example: `---

242description: Reviews code changes for security vulnerabilities, authentication gaps, and injection risks

243disable-model-invocation: true

244argument-hint: <branch-or-path>

245---

246 

247## Diff to review

248 

249!\`git diff $ARGUMENTS\`

250 

251Audit the changes above for:

252 

2531. Injection vulnerabilities (SQL, XSS, command)

2542. Authentication and authorization gaps

2553. Hardcoded secrets or credentials

256 

257Use checklist.md in this skill directory for the full review checklist.

258 

259Report findings with severity ratings and remediation steps.`

260 }, {

261 id: 'skill-checklist',

262 label: 'checklist.md',

263 type: 'file',

264 icon: 'md',

265 color: '#D4A843',

266 badge: 'committed',

267 oneLiner: 'Supporting file bundled with the skill',

268 when: 'Claude reads it on demand while running the skill',

269 description: <>Skills can bundle any supporting files: reference docs, templates, scripts. The skill directory path is prepended to SKILL.md, so Claude can read bundled files by name. For scripts in bash injection commands, use the <C>{'${CLAUDE_SKILL_DIR}'}</C> placeholder.</>,

270 example: `# Security Review Checklist

271 

272## Input Validation

273- [ ] All user input sanitized before DB queries

274- [ ] File upload MIME types validated

275- [ ] Path traversal prevented on file operations

276 

277## Authentication

278- [ ] JWT tokens expire after 24 hours

279- [ ] API keys stored in environment variables

280- [ ] Passwords hashed with bcrypt or argon2`

281 }]

282 }]

283 }, {

284 id: 'commands',

285 label: 'commands/',

286 type: 'folder',

287 icon: 'folder',

288 color: '#788C5D',

289 oneLiner: <>Single-file prompts invoked with <C>/name</C></>,

290 note: commandsNote,

291 when: <>User types <C>/command-name</C></>,

292 description: <>A file at <C>commands/deploy.md</C> creates <C>/deploy</C> the same way a skill at <C>skills/deploy/SKILL.md</C> does, and both can be auto-invoked by Claude. Skills use a directory with SKILL.md, letting you bundle reference docs, templates, or scripts alongside the prompt.</>,

293 tips: [<>Use <C>$ARGUMENTS</C> in the file to accept parameters: <C>/fix-issue 123</C></>, 'If a skill and command share a name, the skill takes precedence', 'New commands should usually be skills instead; commands remain supported'],

294 docsLink: '/en/skills',

295 children: [{

296 id: 'cmd-example',

297 label: 'fix-issue.md',

298 type: 'file',

299 icon: 'md',

300 color: '#788C5D',

301 badge: 'committed',

302 oneLiner: <>Invoked as <C>/fix-issue &lt;number&gt;</C></>,

303 note: commandsNote,

304 description: [<>An example command for fixing a GitHub issue. Type <C>/fix-issue 123</C> and the <C>!`...`</C> line runs <C>gh issue view 123</C> in your shell, injecting the output into the prompt before Claude sees it.</>, <><C>$ARGUMENTS</C> substitutes whatever you typed after the command name. For positional access, use <C>$0</C> <C>$1</C> and so on.</>],

305 example: `---

306argument-hint: <issue-number>

307---

308 

309!\`gh issue view $ARGUMENTS\`

310 

311Investigate and fix the issue above.

312 

3131. Trace the bug to its root cause

3142. Implement the fix

3153. Write or update tests

3164. Summarize what you changed and why`

317 }]

318 }, {

319 id: 'output-styles',

320 label: 'output-styles/',

321 type: 'folder',

322 icon: 'folder',

323 color: '#5AA7A7',

324 oneLiner: 'Project-scoped output styles, if your team shares any',

325 when: 'Applied at session start when selected via the outputStyle setting',

326 description: <>Output styles are usually personal, so most live in <C>~/.claude/output-styles/</C>. Put one here if your team shares a style, like a review mode everyone uses. See <A href="#ce-global-output-styles">the Global tab</A> for the full explanation and example.</>,

327 docsLink: '/en/output-styles',

328 children: []

329 }, {

330 id: 'agents',

331 label: 'agents/',

332 type: 'folder',

333 icon: 'folder',

334 color: '#C46686',

335 oneLiner: 'Specialized subagents with their own context window',

336 when: 'Runs in its own context window when you or Claude invoke it',

337 description: 'Each markdown file defines a subagent with its own system prompt, tool access, and optionally its own model. Subagents run in a fresh context window, keeping the main conversation clean. Useful for parallel work or isolated tasks.',

338 tips: ['Each agent gets a fresh context window, separate from your main session', <>Restrict tool access per agent with the <C>tools:</C> frontmatter field</>, 'Type @ and pick an agent from the autocomplete to delegate directly'],

339 docsLink: '/en/sub-agents',

340 children: [{

341 id: 'agent-reviewer',

342 label: 'code-reviewer.md',

343 type: 'file',

344 icon: 'md',

345 color: '#C46686',

346 badge: 'committed',

347 oneLiner: 'Subagent for isolated code review',

348 when: 'Claude spawns it for review tasks, or you @-mention it from the autocomplete',

349 description: <>An example subagent restricted to read-only tools. The <C>description</C> frontmatter tells Claude when to delegate to it automatically; <C>tools:</C> limits it to Read, Grep, and Glob so it can inspect code but never edit. The body becomes the subagent's system prompt.</>,

350 example: `---

351name: code-reviewer

352description: Reviews code for correctness, security, and maintainability

353tools: Read, Grep, Glob

354---

355 

356You are a senior code reviewer. Review for:

357 

3581. Correctness: logic errors, edge cases, null handling

3592. Security: injection, auth bypass, data exposure

3603. Maintainability: naming, complexity, duplication

361 

362Every finding must include a concrete fix.`

363 }]

364 }, {

365 id: 'agent-memory',

366 label: 'agent-memory/',

367 type: 'folder',

368 icon: 'folder',

369 color: '#C46686',

370 badge: 'committed',

371 autogen: true,

372 oneLiner: 'Subagent persistent memory, separate from your main session auto memory',

373 when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs',

374 description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>,

375 tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>],

376 docsLink: '/en/sub-agents#enable-persistent-memory',

377 children: [{

378 id: 'agent-memory-sub',

379 label: '<agent-name>/',

380 type: 'folder',

381 icon: 'folder',

382 color: '#C46686',

383 autogen: true,

384 children: [{

385 id: 'agent-memory-md',

386 label: 'MEMORY.md',

387 type: 'file',

388 icon: 'md',

389 color: '#C46686',

390 badge: 'committed',

391 autogen: true,

392 oneLiner: 'The subagent writes and maintains this file automatically',

393 when: 'Loaded into the subagent system prompt when the subagent starts',

394 description: <>Works the same as your <A href="/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>,

395 example: `# code-reviewer memory

396 

397## Patterns seen

398- Project uses custom Result<T, E> type, not exceptions

399- Auth middleware expects Bearer token in Authorization header

400- Tests use factory functions in test/factories/

401 

402## Recurring issues

403- Missing null checks on API responses (src/api/*)

404- Unhandled promise rejections in background jobs`

405 }]

406 }]

407 }]

408 }]

409 },

410 global: {

411 label: '~/',

412 children: [{

413 id: 'claude-json',

414 label: '.claude.json',

415 type: 'file',

416 icon: 'json',

417 color: 'var(--ce-text-3)',

418 badge: 'local',

419 oneLiner: 'App state and UI preferences',

420 when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>,

421 description: <>Holds state that does not belong in settings.json: theme, OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>,

422 tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>],

423 example: `{

424 "autoConnectIde": true,

425 "externalEditorContext": true,

426 "mcpServers": {

427 "my-tools": {

428 "command": "npx",

429 "args": ["-y", "@example/mcp-server"]

430 }

431 }

432}`,

433 docsLink: '/en/settings#global-config-settings'

434 }, {

435 id: 'global-dot-claude',

436 label: '.claude/',

437 type: 'folder',

438 icon: 'folder',

439 color: 'var(--ce-accent)',

440 oneLiner: 'Your personal configuration across all projects',

441 description: 'The global counterpart to your project .claude/ directory. Files here apply to every project you work in and are never committed to any repository.',

442 children: [{

443 id: 'global-claude-md',

444 label: 'CLAUDE.md',

445 type: 'file',

446 icon: 'md',

447 color: '#6A9BCC',

448 badge: 'local',

449 oneLiner: 'Personal preferences across every project',

450 when: 'Loaded at the start of every session, in every project',

451 description: 'Your global instruction file. Loaded alongside the project CLAUDE.md at session start, so both are in context together. When instructions conflict, project-level instructions take priority. Keep this to preferences that apply everywhere: response style, commit format, personal conventions.',

452 tips: ['Keep it short since it loads into context for every project, alongside that project\'s own CLAUDE.md', 'Good for response style, commit format, and personal conventions'],

453 example: `# Global preferences

454 

455- Keep explanations concise

456- Use conventional commit format

457- Show the terminal command to verify changes

458- Prefer composition over inheritance`,

459 docsLink: '/en/memory'

460 }, {

461 id: 'global-settings',

462 label: 'settings.json',

463 type: 'file',

464 icon: 'json',

465 color: 'var(--ce-text-3)',

466 badge: 'local',

467 oneLiner: 'Default settings for all projects',

468 when: 'Your defaults. Project and local settings.json override any keys you also set there',

469 description: [<>Same keys as project <C>settings.json</C>: permissions, hooks, model, environment variables, and the rest. Put settings here that you want in every project, like permissions you always allow, a preferred model, or a notification hook that runs regardless of which project you're in.</>, <>Settings follow a precedence order: project <C>settings.json</C> overrides any matching keys you set here. This is different from CLAUDE.md, where global and project files are both loaded into context rather than merged key by key.</>],

470 example: `{

471 "permissions": {

472 "allow": [

473 "Bash(git log *)",

474 "Bash(git diff *)"

475 ]

476 }

477}`,

478 docsLink: '/en/settings'

479 }, {

480 id: 'keybindings',

481 label: 'keybindings.json',

482 type: 'file',

483 icon: 'json',

484 color: 'var(--ce-text-3)',

485 badge: 'local',

486 oneLiner: 'Custom keyboard shortcuts',

487 when: 'Read at session start and hot-reloaded when you edit the file',

488 description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>,

489 exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+U</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>,

490 example: `{

491 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

492 "$docs": "https://code.claude.com/docs/en/keybindings",

493 "bindings": [

494 {

495 "context": "Chat",

496 "bindings": {

497 "ctrl+e": "chat:externalEditor",

498 "ctrl+u": null

499 }

500 }

501 ]

502}`,

503 docsLink: '/en/keybindings'

504 }, {

505 id: 'themes',

506 label: 'themes/',

507 type: 'folder',

508 icon: 'folder',

509 color: '#5AA7A7',

510 oneLiner: 'Custom color themes',

511 when: <>Read at session start and hot-reloaded when files change. Listed in <C>/theme</C></>,

512 description: <>Each <C>.json</C> file defines a custom color theme: a built-in <C>base</C> preset plus an <C>overrides</C> map of color tokens. Create one interactively with <C>/theme</C> or write the JSON by hand. Selecting a custom theme stores <C>custom:&lt;slug&gt;</C> as your theme preference.</>,

513 example: `{

514 "name": "Dracula",

515 "base": "dark",

516 "overrides": {

517 "claude": "#bd93f9",

518 "error": "#ff5555",

519 "success": "#50fa7b"

520 }

521}`,

522 docsLink: '/en/terminal-config#create-a-custom-theme',

523 children: []

524 }, {

525 id: 'global-projects',

526 label: 'projects/',

527 type: 'folder',

528 icon: 'folder',

529 color: '#E8A45C',

530 autogen: true,

531 oneLiner: "Auto memory: Claude's notes to itself, per project",

532 when: 'MEMORY.md loaded at session start; topic files read on demand',

533 description: 'Auto memory lets Claude accumulate knowledge across sessions without you writing anything. Claude saves notes as it works: build commands, debugging insights, architecture notes. Each project gets its own memory directory keyed by the repository path.',

534 tips: [<>On by default. Toggle with <C>/memory</C> or <C>autoMemoryEnabled</C> in settings</>, 'MEMORY.md is the index loaded each session. The first 200 lines, or 25KB, whichever comes first, are read', 'Topic files like debugging.md are read on demand, not at startup', 'These are plain markdown. Edit or delete them anytime'],

535 docsLink: '/en/memory#auto-memory',

536 children: [{

537 id: 'memory-dir',

538 label: '<project>/memory/',

539 type: 'folder',

540 icon: 'folder',

541 color: '#E8A45C',

542 autogen: true,

543 oneLiner: "Claude's accumulated knowledge for one project",

544 children: [{

545 id: 'memory-md',

546 label: 'MEMORY.md',

547 type: 'file',

548 icon: 'md',

549 color: '#E8A45C',

550 badge: 'local',

551 autogen: true,

552 oneLiner: 'Claude writes and maintains this file automatically',

553 when: 'First 200 lines (capped at 25KB) loaded at session start',

554 description: 'Claude creates and updates this file as it works; you do not write it yourself. It acts as an index that Claude reads at the start of every session, pointing to topic files for detail. You can edit or delete it, but Claude will keep updating it.',

555 example: `# Memory Index

556 

557## Project

558- [build-and-test.md](build-and-test.md): npm run build (~45s), Vitest, dev server on 3001

559- [architecture.md](architecture.md): API client singleton, refresh-token auth

560 

561## Reference

562- [debugging.md](debugging.md): auth token rotation and DB connection troubleshooting`,

563 docsLink: '/en/memory'

564 }, {

565 id: 'memory-topic',

566 label: 'debugging.md',

567 type: 'file',

568 icon: 'md',

569 color: '#E8A45C',

570 badge: 'local',

571 autogen: true,

572 oneLiner: 'Topic notes Claude writes when MEMORY.md gets long',

573 when: 'Claude reads this when a related task comes up',

574 description: 'An example of a topic file Claude creates when MEMORY.md grows too long. Claude picks the filename based on what it splits out: debugging.md, architecture.md, build-commands.md, or similar. You never create these yourself. Claude reads a topic file back only when the current task relates to it.',

575 example: `---

576name: Debugging patterns

577description: Auth token rotation and database connection troubleshooting for this project

578type: reference

579---

580 

581## Auth Token Issues

582- Refresh token rotation: old token invalidated immediately

583- If 401 after refresh: check clock skew between client and server

584 

585## Database Connection Drops

586- Connection pool: max 10 in dev, 50 in prod

587- Always check \`docker compose ps\` first`

588 }]

589 }]

590 }, {

591 id: 'global-rules',

592 label: 'rules/',

593 type: 'folder',

594 icon: 'folder',

595 color: '#9B7BC4',

596 oneLiner: 'User-level rules that apply to every project',

597 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

598 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

599 docsLink: '/en/memory#organize-rules-with-claude/rules/',

600 children: []

601 }, {

602 id: 'global-skills',

603 label: 'skills/',

604 type: 'folder',

605 icon: 'folder',

606 color: '#D4A843',

607 oneLiner: 'Personal skills available in every project',

608 when: <>Invoked with <C>/skill-name</C> in any project</>,

609 description: 'Skills you built for yourself that work everywhere. Same structure as project skills: each is a folder with SKILL.md, scoped to your user account instead of a single project.',

610 docsLink: '/en/skills',

611 children: []

612 }, {

613 id: 'global-commands',

614 label: 'commands/',

615 type: 'folder',

616 icon: 'folder',

617 color: '#788C5D',

618 oneLiner: 'Personal single-file commands available in every project',

619 note: commandsNote,

620 when: <>User types <C>/command-name</C> in any project</>,

621 description: 'Same as project commands/ but scoped to your user account. Each markdown file becomes a command available everywhere.',

622 docsLink: '/en/skills',

623 children: []

624 }, {

625 id: 'global-output-styles',

626 label: 'output-styles/',

627 type: 'folder',

628 icon: 'folder',

629 color: '#5AA7A7',

630 oneLiner: 'Custom system-prompt sections that adjust how Claude works',

631 when: 'Applied at session start when selected via the outputStyle setting',

632 description: [<>Each markdown file defines an output style: a section appended to the system prompt that, by default, also drops the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/config</C> or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],

633 tips: ['Built-in styles Explanatory and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Changes take effect on the next session since the system prompt is fixed at startup for caching'],

634 docsLink: '/en/output-styles',

635 children: [{

636 id: 'output-style-example',

637 label: 'teaching.md',

638 type: 'file',

639 icon: 'md',

640 color: '#5AA7A7',

641 badge: 'local',

642 oneLiner: 'Example style that adds explanations and leaves small changes for you',

643 when: <>Active when <C>outputStyle</C> in settings is set to <C>teaching</C></>,

644 description: <>This style appends instructions to the system prompt: Claude adds a "Why this approach" note after each task and leaves TODO(human) markers for changes under 10 lines instead of writing them itself. Select it by setting <C>outputStyle</C> to the filename without .md, or to the <C>name</C> field if you set one in frontmatter.</>,

645 example: `---

646description: Explains reasoning and asks you to implement small pieces

647keep-coding-instructions: true

648---

649 

650After completing each task, add a brief "Why this approach" note

651explaining the key design decision.

652 

653When a change is under 10 lines, ask the user to implement it

654themselves by leaving a TODO(human) marker instead of writing it.`

655 }]

656 }, {

657 id: 'global-agents',

658 label: 'agents/',

659 type: 'folder',

660 icon: 'folder',

661 color: '#C46686',

662 oneLiner: 'Personal subagents available in every project',

663 when: 'Claude delegates or you @-mention in any project',

664 description: 'Subagents defined here are available across all your projects. Same format as project agents.',

665 docsLink: '/en/sub-agents',

666 children: []

667 }, {

668 id: 'global-agent-memory',

669 label: 'agent-memory/',

670 type: 'folder',

671 icon: 'folder',

672 color: '#C46686',

673 autogen: true,

674 oneLiner: <>Persistent memory for subagents with <C>memory: user</C></>,

675 when: 'Loaded into the subagent system prompt when the subagent starts',

676 description: <>Subagents with <C>memory: user</C> in their frontmatter store knowledge here that persists across all projects. For project-scoped subagent memory, see <C>.claude/agent-memory/</C> instead.</>,

677 docsLink: '/en/sub-agents#enable-persistent-memory',

678 children: []

679 }]

680 }]

681 }

682 }), []);

683 const BADGE_STYLES = useMemo(() => ({

684 committed: {

685 bg: 'rgba(85,138,66,0.08)',

686 color: 'var(--ce-badge-committed)',

687 border: 'rgba(85,138,66,0.15)',

688 label: 'committed'

689 },

690 gitignored: {

691 bg: 'rgba(217,119,87,0.06)',

692 color: 'var(--ce-badge-gitignored)',

693 border: 'rgba(217,119,87,0.15)',

694 label: 'gitignored'

695 },

696 local: {

697 bg: 'rgba(115,114,108,0.06)',

698 color: 'var(--ce-badge-local)',

699 border: 'rgba(115,114,108,0.12)',

700 label: 'local only'

701 },

702 autogen: {

703 bg: 'rgba(232,164,92,0.1)',

704 color: 'var(--ce-badge-autogen)',

705 border: 'rgba(232,164,92,0.2)',

706 label: 'Claude writes'

707 }

708 }), []);

709 const allNodes = useMemo(() => {

710 const flatten = (nodes, acc, path, parentId) => {

711 for (const node of nodes) {

712 const nextPath = [...path, node.label];

713 acc[node.id] = {

714 ...node,

715 path: nextPath,

716 parentId

717 };

718 if (node.children) flatten(node.children, acc, nextPath, node.id);

719 }

720 return acc;

721 };

722 const project = flatten(FILE_TREE.project.children, {}, [FILE_TREE.project.label]);

723 const global = flatten(FILE_TREE.global.children, {}, [FILE_TREE.global.label]);

724 for (const id in project) project[id].root = 'project';

725 for (const id in global) global[id].root = 'global';

726 return {

727 ...project,

728 ...global

729 };

730 }, [FILE_TREE]);

731 const allFolderIds = useMemo(() => Object.keys(allNodes).filter(id => allNodes[id].type === 'folder'), [allNodes]);

732 const DEFAULT_EXPANDED = ['dot-claude', 'rules', 'skills', 'skill-review', 'commands', 'agents', 'agent-memory', 'agent-memory-sub', 'global-dot-claude', 'global-output-styles', 'global-projects', 'memory-dir'];

733 const [mounted, setMounted] = useState(false);

734 const [activeRoot, setActiveRoot] = useState('project');

735 const [selectedId, setSelectedId] = useState('claude-md');

736 const [expandedFolders, setExpandedFolders] = useState(() => new Set(DEFAULT_EXPANDED));

737 const [forceMobile, setForceMobile] = useState(false);

738 const [copiedId, setCopiedId] = useState(null);

739 const [isFullscreen, setIsFullscreen] = useState(false);

740 const copyTimeoutRef = useRef(null);

741 const rootRef = useRef(null);

742 useEffect(() => {

743 setMounted(true);

744 const applyHash = scroll => {

745 const hash = window.location.hash.slice(1);

746 if (!hash.startsWith('ce-')) return;

747 const id = hash.slice(3);

748 const node = allNodes[id];

749 if (!node) return;

750 setActiveRoot(node.root);

751 setSelectedId(id);

752 setExpandedFolders(new Set(allFolderIds));

753 if (scroll && rootRef.current) rootRef.current.scrollIntoView({

754 behavior: 'smooth',

755 block: 'start'

756 });

757 };

758 applyHash(false);

759 const onHashChange = () => applyHash(true);

760 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

761 window.addEventListener('hashchange', onHashChange);

762 document.addEventListener('fullscreenchange', onFsChange);

763 return () => {

764 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

765 window.removeEventListener('hashchange', onHashChange);

766 document.removeEventListener('fullscreenchange', onFsChange);

767 };

768 }, []);

769 useEffect(() => {

770 if (!mounted || !rootRef.current) return;

771 const hash = window.location.hash.slice(1);

772 if (hash.startsWith('ce-') && allNodes[hash.slice(3)]) {

773 rootRef.current.scrollIntoView({

774 behavior: 'smooth',

775 block: 'start'

776 });

777 }

778 }, [mounted]);

779 if (!mounted) return null;

780 const selected = allNodes[selectedId];

781 const tree = FILE_TREE[activeRoot];

782 const isCopied = copiedId === selected.id;

783 const toggleFolder = id => {

784 const next = new Set(expandedFolders);

785 next.has(id) ? next.delete(id) : next.add(id);

786 setExpandedFolders(next);

787 };

788 const switchRoot = root => {

789 if (root === activeRoot) return;

790 setActiveRoot(root);

791 const firstId = FILE_TREE[root].children[0].id;

792 setSelectedId(firstId);

793 try {

794 history.replaceState(null, '', '#ce-' + firstId);

795 } catch (e) {}

796 };

797 const toggleFullscreen = () => {

798 if (!rootRef.current) return;

799 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

800 };

801 const selectNode = n => {

802 setSelectedId(n.id);

803 if (n.type === 'folder' && !expandedFolders.has(n.id)) toggleFolder(n.id);

804 try {

805 history.replaceState(null, '', '#ce-' + n.id);

806 } catch (e) {}

807 };

808 const iconBtn = {

809 width: 28,

810 flexShrink: 0,

811 borderRadius: '6px',

812 border: 'none',

813 cursor: 'pointer',

814 background: 'transparent',

815 color: 'var(--ce-text-4)',

816 display: 'flex',

817 alignItems: 'center',

818 justifyContent: 'center'

819 };

820 const visibleFolderIds = allFolderIds.filter(id => allNodes[id].root === activeRoot);

821 const allExpanded = visibleFolderIds.every(id => expandedFolders.has(id));

822 const toggleAllFolders = () => {

823 const next = new Set(expandedFolders);

824 visibleFolderIds.forEach(id => allExpanded ? next.delete(id) : next.add(id));

825 setExpandedFolders(next);

826 };

827 const onTreeKeyDown = e => {

828 if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(e.key)) return;

829 const visible = [];

830 const walk = nodes => {

831 for (const n of nodes) {

832 visible.push(n.id);

833 if (n.children && expandedFolders.has(n.id)) walk(n.children);

834 }

835 };

836 walk(tree.children);

837 const i = visible.indexOf(selectedId);

838 if (i === -1) return;

839 e.preventDefault();

840 if (e.key === 'ArrowDown' && i < visible.length - 1) selectNode(allNodes[visible[i + 1]]); else if (e.key === 'ArrowUp' && i > 0) selectNode(allNodes[visible[i - 1]]); else if (e.key === 'ArrowRight' && selected.type === 'folder') {

841 if (!expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.children && selected.children.length) selectNode(allNodes[selected.children[0].id]);

842 } else if (e.key === 'ArrowLeft') {

843 if (selected.type === 'folder' && expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.parentId) selectNode(allNodes[selected.parentId]);

844 }

845 };

846 const copyExample = (id, text) => {

847 const done = () => {

848 setCopiedId(id);

849 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

850 copyTimeoutRef.current = setTimeout(() => setCopiedId(null), 2000);

851 };

852 const fallback = () => {

853 const ta = document.createElement('textarea');

854 ta.value = text;

855 ta.style.position = 'fixed';

856 ta.style.opacity = '0';

857 document.body.appendChild(ta);

858 ta.select();

859 try {

860 if (document.execCommand('copy')) done();

861 } catch (e) {}

862 document.body.removeChild(ta);

863 };

864 if (navigator.clipboard) {

865 navigator.clipboard.writeText(text).then(done, fallback);

866 } else {

867 fallback();

868 }

869 };

870 const renderIcon = (icon, color, size) => {

871 const sz = size || 14;

872 if (icon === 'folder') {

873 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

874 <path d="M1.5 3.5a1 1 0 0 1 1-1h2.6l1 1.2h5.4a1 1 0 0 1 1 1v5.8a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1V3.5z" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

875 </svg>;

876 }

877 if (icon === 'json') {

878 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

879 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

880 <text x="7" y="9" fontSize="6" fontFamily="monospace" fill={color} textAnchor="middle" fontWeight="700">{'{}'}</text>

881 </svg>;

882 }

883 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

884 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

885 <line x1="4.5" y1="5" x2="9.5" y2="5" stroke={color} strokeWidth="1" />

886 <line x1="4.5" y1="7" x2="9.5" y2="7" stroke={color} strokeWidth="1" />

887 <line x1="4.5" y1="9" x2="8" y2="9" stroke={color} strokeWidth="1" />

888 </svg>;

889 };

890 const renderNode = (node, depth) => {

891 const isFolder = node.type === 'folder';

892 const isExpanded = expandedFolders.has(node.id);

893 const isSelected = selectedId === node.id;

894 return <div key={node.id}>

895 <button role="treeitem" tabIndex={-1} onClick={() => selectNode(node)} aria-selected={isSelected} aria-expanded={isFolder ? isExpanded : undefined} style={{

896 display: 'flex',

897 alignItems: 'center',

898 gap: '5px',

899 width: '100%',

900 padding: `4px 8px 4px ${8 + depth * 16}px`,

901 background: isSelected ? 'var(--ce-accent-bg)' : 'transparent',

902 borderTop: 'none',

903 borderRight: 'none',

904 borderBottom: 'none',

905 borderLeft: isSelected ? '2px solid var(--ce-accent)' : '2px solid transparent',

906 outline: 'none',

907 cursor: 'pointer',

908 textAlign: 'left',

909 fontFamily: 'var(--ce-mono)',

910 fontSize: '13.5px',

911 color: isSelected ? 'var(--ce-accent)' : 'var(--ce-text-2)',

912 fontWeight: isSelected ? 550 : 400,

913 transition: 'all 0.1s'

914 }}>

915 {isFolder ? <span onClick={e => {

916 e.stopPropagation();

917 toggleFolder(node.id);

918 }} style={{

919 fontSize: '14px',

920 color: 'var(--ce-text-4)',

921 width: '20px',

922 height: '20px',

923 display: 'inline-flex',

924 alignItems: 'center',

925 justifyContent: 'center',

926 cursor: 'pointer',

927 borderRadius: '4px',

928 marginLeft: '-6px',

929 flexShrink: 0

930 }} onMouseEnter={e => {

931 e.currentTarget.style.background = 'var(--ce-arrow-hover)';

932 e.currentTarget.style.color = 'var(--ce-text-2)';

933 }} onMouseLeave={e => {

934 e.currentTarget.style.background = 'transparent';

935 e.currentTarget.style.color = 'var(--ce-text-4)';

936 }}>{isExpanded ? '▾' : '▸'}</span> : <span style={{

937 width: '14px',

938 flexShrink: 0

939 }} />}

940 {renderIcon(node.icon, node.color)}

941 <span style={{

942 flex: 1,

943 overflow: 'hidden',

944 textOverflow: 'ellipsis',

945 whiteSpace: 'nowrap'

946 }}>{node.label}</span>

947 {node.badge && BADGE_STYLES[node.badge] && <span title={BADGE_STYLES[node.badge].label} style={{

948 width: 6,

949 height: 6,

950 borderRadius: '50%',

951 background: BADGE_STYLES[node.badge].color,

952 flexShrink: 0,

953 opacity: 0.7

954 }} />}

955 </button>

956 {isFolder && isExpanded && node.children && <div role="group">{node.children.map(child => renderNode(child, depth + 1))}</div>}

957 </div>;

958 };

959 return <>

960 <style>{`

961 .ce-root {

962 --ce-mono: var(--font-mono, ui-monospace, monospace);

963 --ce-accent: #D97757;

964 --ce-accent-bg: rgba(217,119,87,0.06);

965 --ce-accent-border: rgba(217,119,87,0.12);

966 --ce-bg: #fff;

967 --ce-surface: #FAFAF7;

968 --ce-surface-hover: #F0EEE6;

969 --ce-border: #E8E6DC;

970 --ce-border-subtle: #F0EEE6;

971 --ce-text: #141413;

972 --ce-text-2: #5E5D59;

973 --ce-text-3: #73726C;

974 --ce-text-4: #9C9A92;

975 --ce-text-5: #B8B6AE;

976 --ce-sep: #D1CFC5;

977 --ce-code-header: #F5F4ED;

978 --ce-code-bg: #1A1918;

979 --ce-arrow-hover: rgba(0,0,0,0.08);

980 --ce-badge-committed: #3d6b2e;

981 --ce-badge-gitignored: #b85c3a;

982 --ce-badge-local: #5e5d59;

983 --ce-badge-autogen: #b07520;

984 --ce-when-text: #4a7fb5;

985 }

986 .dark .ce-root {

987 --ce-bg: #1a1918;

988 --ce-surface: #232221;

989 --ce-surface-hover: #2e2d2b;

990 --ce-border: #3a3936;

991 --ce-border-subtle: #2e2d2b;

992 --ce-text: #e8e6dc;

993 --ce-text-2: #c4c2b8;

994 --ce-text-3: #9c9a92;

995 --ce-text-4: #73726c;

996 --ce-text-5: #5e5d59;

997 --ce-sep: #4a4946;

998 --ce-code-header: #2e2d2b;

999 --ce-code-bg: #0d0d0c;

1000 --ce-arrow-hover: rgba(255,255,255,0.08);

1001 --ce-badge-committed: #6fa85c;

1002 --ce-badge-gitignored: #e08a60;

1003 --ce-badge-local: #9c9a92;

1004 --ce-badge-autogen: #e8a45c;

1005 --ce-when-text: #8bb4e0;

1006 }

1007 .ce-mobile-fallback { display: none; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

1008 .dark .ce-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

1009 @media (max-width: 700px) {

1010 .ce-root:not(.ce-force) { display: none !important; }

1011 .ce-mobile-fallback { display: block; }

1012 }

1013 `}</style>

1014 {!forceMobile && <div className="ce-mobile-fallback" style={{

1015 padding: '14px 16px',

1016 borderRadius: '8px',

1017 fontSize: '14px'

1018 }}>

1019 The interactive explorer works best on a larger screen. See the <a href="#file-reference" style={{

1020 color: '#D97757'

1021 }}>file reference table</a> below, or <button onClick={() => setForceMobile(true)} style={{

1022 border: 'none',

1023 background: 'none',

1024 padding: 0,

1025 color: '#D97757',

1026 textDecoration: 'underline',

1027 cursor: 'pointer',

1028 font: 'inherit'

1029 }}>show the explorer anyway</button>.

1030 </div>}

1031 <div ref={rootRef} className={forceMobile ? 'ce-root ce-force' : 'ce-root'} style={{

1032 borderRadius: isFullscreen ? 0 : '12px',

1033 border: '1px solid var(--ce-border)',

1034 background: 'var(--ce-bg)',

1035 display: 'flex',

1036 alignItems: 'stretch',

1037 overflow: 'hidden',

1038 fontFamily: 'var(--font-sans, -apple-system, sans-serif)',

1039 ...isFullscreen && ({

1040 height: '100vh'

1041 })

1042 }}>

1043 {}

1044 <div style={{

1045 width: 'min(240px, 35%)',

1046 minWidth: '180px',

1047 flexShrink: 0,

1048 borderRight: '1px solid var(--ce-border-subtle)',

1049 background: 'var(--ce-surface)',

1050 display: 'flex',

1051 flexDirection: 'column'

1052 }}>

1053 <div style={{

1054 padding: '8px 8px 4px',

1055 borderBottom: '1px solid var(--ce-border-subtle)',

1056 display: 'flex',

1057 gap: '4px'

1058 }}>

1059 {['project', 'global'].map(root => <button key={root} onClick={() => switchRoot(root)} style={{

1060 flex: 1,

1061 padding: '6px 0',

1062 borderRadius: '6px',

1063 border: 'none',

1064 cursor: 'pointer',

1065 fontFamily: 'var(--ce-mono)',

1066 fontSize: '11.5px',

1067 background: activeRoot === root ? 'var(--ce-accent-bg)' : 'transparent',

1068 color: activeRoot === root ? 'var(--ce-accent)' : 'var(--ce-text-4)',

1069 fontWeight: activeRoot === root ? 600 : 430

1070 }}>

1071 {root === 'project' ? 'Project' : 'Global (~/)'}

1072 </button>)}

1073 <button onClick={toggleAllFolders} title={allExpanded ? 'Collapse all' : 'Expand all'} style={{

1074 ...iconBtn,

1075 fontSize: 11

1076 }}>

1077 {allExpanded ? '⊟' : '⊞'}

1078 </button>

1079 <button onClick={toggleFullscreen} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1080 ...iconBtn,

1081 fontSize: 13

1082 }}>

1083 {isFullscreen ? '⤡' : '⛶'}

1084 </button>

1085 </div>

1086 <div role="tree" aria-label="Configuration files" tabIndex={0} onKeyDown={onTreeKeyDown} style={{

1087 padding: '6px 0',

1088 overflowY: 'auto',

1089 flex: 1,

1090 outline: 'none'

1091 }}>

1092 {tree.children.map(node => renderNode(node, 0))}

1093 </div>

1094 </div>

1095 

1096 {}

1097 <div style={{

1098 flex: 1,

1099 minWidth: 0,

1100 padding: '20px 24px',

1101 minHeight: '400px',

1102 overflowY: 'auto'

1103 }}>

1104 <span aria-live="polite" style={{

1105 position: 'absolute',

1106 width: 1,

1107 height: 1,

1108 overflow: 'hidden',

1109 clip: 'rect(0 0 0 0)'

1110 }}>{selected.label} selected</span>

1111 {}

1112 <div style={{

1113 fontFamily: 'var(--ce-mono)',

1114 fontSize: '11px',

1115 color: 'var(--ce-text-4)',

1116 marginBottom: '10px',

1117 cursor: 'default'

1118 }}>

1119 {selected.path.map((seg, i) => <span key={i}>

1120 <span style={{

1121 color: i === selected.path.length - 1 ? 'var(--ce-accent)' : 'var(--ce-text-4)'

1122 }}>{seg.replace(/\/$/, '')}</span>

1123 {i < selected.path.length - 1 && <span style={{

1124 color: 'var(--ce-sep)'

1125 }}> / </span>}

1126 </span>)}

1127 </div>

1128 

1129 {}

1130 <div style={{

1131 display: 'flex',

1132 alignItems: 'flex-start',

1133 gap: '10px',

1134 marginBottom: '10px'

1135 }}>

1136 <span style={{

1137 flexShrink: 0,

1138 display: 'flex'

1139 }}>{renderIcon(selected.icon, selected.color, 24)}</span>

1140 <div style={{

1141 flex: 1,

1142 minWidth: 0

1143 }}>

1144 <div style={{

1145 fontSize: '22px',

1146 fontWeight: 600,

1147 color: 'var(--ce-text)',

1148 letterSpacing: '-0.3px',

1149 lineHeight: '26px'

1150 }}>{selected.label}</div>

1151 {selected.oneLiner && <div style={{

1152 fontSize: '15px',

1153 color: 'var(--ce-text-3)',

1154 marginTop: '3px'

1155 }}>{selected.oneLiner}</div>}

1156 </div>

1157 <div style={{

1158 display: 'flex',

1159 gap: '4px',

1160 flexShrink: 0

1161 }}>

1162 {[selected.autogen && 'autogen', selected.badge].filter(Boolean).map(k => {

1163 const s = BADGE_STYLES[k];

1164 if (!s) return null;

1165 return <span key={k} style={{

1166 fontFamily: 'var(--ce-mono)',

1167 fontSize: '10px',

1168 fontWeight: 600,

1169 textTransform: 'uppercase',

1170 letterSpacing: '0.3px',

1171 padding: '2px 6px',

1172 borderRadius: '4px',

1173 background: s.bg,

1174 color: s.color,

1175 border: `0.5px solid ${s.border}`

1176 }}>{s.label}</span>;

1177 })}

1178 </div>

1179 </div>

1180 

1181 {}

1182 {selected.note && <div style={{

1183 padding: '10px 12px',

1184 borderRadius: '8px',

1185 marginBottom: '14px',

1186 background: 'rgba(217,119,87,0.06)',

1187 border: '1px solid rgba(217,119,87,0.2)',

1188 borderLeft: '3px solid var(--ce-accent)',

1189 fontSize: '15px',

1190 color: 'var(--ce-text-2)',

1191 lineHeight: 1.6

1192 }}>

1193 {selected.note}

1194 </div>}

1195 

1196 {}

1197 {selected.when && <div style={{

1198 padding: '8px 12px',

1199 borderRadius: '6px',

1200 background: 'rgba(106,155,204,0.06)',

1201 border: '0.5px solid rgba(106,155,204,0.12)',

1202 fontSize: '15px',

1203 color: 'var(--ce-when-text)',

1204 marginBottom: '16px'

1205 }}>

1206 <div style={{

1207 fontSize: '10px',

1208 fontWeight: 700,

1209 textTransform: 'uppercase',

1210 letterSpacing: '0.4px',

1211 opacity: 0.65,

1212 marginBottom: '3px'

1213 }}>When it loads</div>

1214 <div style={{

1215 fontWeight: 500

1216 }}>{selected.when}</div>

1217 </div>}

1218 

1219 {}

1220 {selected.description && <div style={{

1221 fontSize: '16px',

1222 color: 'var(--ce-text-2)',

1223 lineHeight: 1.65,

1224 marginBottom: '16px'

1225 }}>

1226 {Array.isArray(selected.description) ? selected.description.map((para, i) => <div key={i} style={{

1227 marginBottom: i < selected.description.length - 1 ? '12px' : 0

1228 }}>{para}</div>) : selected.description}

1229 </div>}

1230 

1231 {}

1232 {selected.contains && selected.contains.length > 0 && <div style={{

1233 marginBottom: '16px'

1234 }}>

1235 <div style={{

1236 fontSize: '11px',

1237 fontWeight: 700,

1238 color: 'var(--ce-text-4)',

1239 textTransform: 'uppercase',

1240 letterSpacing: '0.4px',

1241 marginBottom: '8px'

1242 }}>Common keys</div>

1243 {selected.contains.map((item, i) => <div key={i} style={{

1244 display: 'flex',

1245 gap: '7px',

1246 fontSize: '15px',

1247 color: 'var(--ce-text-2)',

1248 lineHeight: 1.5,

1249 marginBottom: '5px'

1250 }}>

1251 <span style={{

1252 fontSize: '7px',

1253 color: 'var(--ce-text-4)',

1254 marginTop: '6px'

1255 }}>●</span>

1256 <span>{item}</span>

1257 </div>)}

1258 </div>}

1259 

1260 {}

1261 {selected.tips && selected.tips.length > 0 && <div style={{

1262 padding: '12px 14px',

1263 borderRadius: '8px',

1264 background: 'var(--ce-surface)',

1265 border: '1px solid var(--ce-border-subtle)',

1266 marginBottom: '16px'

1267 }}>

1268 <div style={{

1269 fontSize: '11px',

1270 fontWeight: 700,

1271 color: 'var(--ce-accent)',

1272 textTransform: 'uppercase',

1273 letterSpacing: '0.4px',

1274 marginBottom: '6px'

1275 }}>Tips</div>

1276 {selected.tips.map((tip, i) => <div key={i} style={{

1277 display: 'flex',

1278 gap: '7px',

1279 fontSize: '14.5px',

1280 color: 'var(--ce-text-2)',

1281 marginBottom: i < selected.tips.length - 1 ? '5px' : 0

1282 }}>

1283 <span style={{

1284 fontSize: '7px',

1285 color: 'var(--ce-accent)',

1286 marginTop: '6px'

1287 }}>●</span>

1288 <span>{tip}</span>

1289 </div>)}

1290 </div>}

1291 

1292 {}

1293 {selected.example && <div style={{

1294 marginBottom: '16px'

1295 }}>

1296 {selected.exampleIntro && <div style={{

1297 fontSize: '15px',

1298 color: 'var(--ce-text-2)',

1299 lineHeight: 1.6,

1300 marginBottom: '10px'

1301 }}>

1302 {selected.exampleIntro}

1303 </div>}

1304 <div style={{

1305 display: 'flex',

1306 justifyContent: 'space-between',

1307 alignItems: 'center',

1308 padding: '6px 10px',

1309 background: 'var(--ce-code-header)',

1310 border: '1px solid var(--ce-border)',

1311 borderRadius: '8px 8px 0 0'

1312 }}>

1313 <span style={{

1314 fontFamily: 'var(--ce-mono)',

1315 fontSize: '11px',

1316 fontWeight: 600,

1317 color: 'var(--ce-text-3)'

1318 }}>{selected.label}</span>

1319 <button onClick={() => copyExample(selected.id, selected.example)} style={{

1320 padding: '3px 8px',

1321 borderRadius: '4px',

1322 fontSize: '11px',

1323 fontWeight: 600,

1324 cursor: 'pointer',

1325 transition: 'all 0.15s',

1326 background: isCopied ? 'rgba(85,138,66,0.08)' : 'var(--ce-code-header)',

1327 border: isCopied ? '0.5px solid rgba(85,138,66,0.2)' : '0.5px solid var(--ce-border)',

1328 color: isCopied ? '#558A42' : 'var(--ce-text-3)'

1329 }}>

1330 {isCopied ? '✓ Copied' : 'Copy'}

1331 </button>

1332 </div>

1333 <pre style={{

1334 margin: 0,

1335 padding: '12px 14px',

1336 background: 'var(--ce-code-bg)',

1337 color: '#E8E6DC',

1338 fontFamily: 'var(--ce-mono)',

1339 fontSize: '13px',

1340 lineHeight: 1.65,

1341 borderRadius: '0 0 8px 8px',

1342 overflowX: 'auto',

1343 whiteSpace: 'pre'

1344 }}>{selected.example}</pre>

1345 </div>}

1346 

1347 {}

1348 {selected.docsLink && <a href={selected.docsLink} style={{

1349 display: 'inline-flex',

1350 padding: '5px 12px',

1351 borderRadius: '6px',

1352 background: 'var(--ce-accent-bg)',

1353 border: '1px solid var(--ce-accent-border)',

1354 color: 'var(--ce-accent)',

1355 fontSize: '12px',

1356 fontWeight: 600,

1357 textDecoration: 'none'

1358 }}>Full docs →</a>}

1359 

1360 {}

1361 {selected.children && selected.children.length > 0 && <div style={{

1362 marginTop: '20px'

1363 }}>

1364 <div style={{

1365 fontSize: '11px',

1366 fontWeight: 700,

1367 color: 'var(--ce-text-4)',

1368 textTransform: 'uppercase',

1369 letterSpacing: '0.4px',

1370 marginBottom: '8px'

1371 }}>Contents</div>

1372 <div style={{

1373 display: 'flex',

1374 flexDirection: 'column',

1375 gap: '4px'

1376 }}>

1377 {selected.children.map(child => <button key={child.id} onClick={() => selectNode(child)} style={{

1378 display: 'flex',

1379 alignItems: 'center',

1380 gap: '8px',

1381 padding: '6px 8px',

1382 width: '100%',

1383 background: 'var(--ce-surface)',

1384 borderRadius: '6px',

1385 border: 'none',

1386 cursor: 'pointer',

1387 textAlign: 'left',

1388 transition: 'background 0.1s'

1389 }} onMouseEnter={e => e.currentTarget.style.background = 'var(--ce-surface-hover)'} onMouseLeave={e => e.currentTarget.style.background = 'var(--ce-surface)'}>

1390 {renderIcon(child.icon, child.color, 13)}

1391 <span style={{

1392 fontFamily: 'var(--ce-mono)',

1393 fontSize: '12px',

1394 color: 'var(--ce-text-2)'

1395 }}>{child.label}</span>

1396 {child.oneLiner && <span style={{

1397 fontSize: '11px',

1398 color: 'var(--ce-text-4)',

1399 overflow: 'hidden',

1400 textOverflow: 'ellipsis',

1401 whiteSpace: 'nowrap'

1402 }}>{child.oneLiner}</span>}

1403 </button>)}

1404 </div>

1405 </div>}

1406 </div>

1407 </div>

1408 </>;

1409};

1410 

1411Claude Code は、プロジェクトディレクトリとホームディレクトリの `~/.claude` から、指示、設定、skills、subagents、メモリを読み込みます。プロジェクトファイルを git にコミットしてチームと共有します。`~/.claude` 内のファイルは、すべてのプロジェクトに適用される個人設定です。

1412 

1413Windows では、`~/.claude` は `%USERPROFILE%\.claude` に解決されます。[`CLAUDE_CONFIG_DIR`](/ja/env-vars) を設定した場合、このページのすべての `~/.claude` パスはそのディレクトリの下に存在します。

1414 

1415ほとんどのユーザーは `CLAUDE.md` と `settings.json` のみを編集します。ディレクトリの残りはオプションです。必要に応じて skills、rules、または subagents を追加してください。

1416 

1417## ディレクトリを探索する

1418 

1419ツリー内のファイルをクリックして、各ファイルの機能、読み込みタイミング、および例を確認してください。

1420 

1421<ClaudeExplorer />

1422 

1423## 表示されていないもの

1424 

1425エクスプローラーは、作成および編集するファイルをカバーしています。関連するいくつかのファイルは他の場所に存在します。

1426 

1427| ファイル | 場所 | 目的 |

1428| ----------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1429| `managed-settings.json` | システムレベル、OS によって異なる | オーバーライドできないエンタープライズが強制する設定。[サーバー管理設定](/ja/server-managed-settings)を参照してください。 |

1430| `CLAUDE.local.md` | プロジェクトルート | このプロジェクトの個人的な設定。CLAUDE.md と一緒に読み込まれます。手動で作成し、`.gitignore` に追加してください。 |

1431| インストール済みプラグイン | `~/.claude/plugins/` | クローンされたマーケットプレイス、インストール済みプラグインバージョン、およびプラグインごとのデータ。`claude plugin` コマンドで管理されます。孤立したバージョンはプラグインの更新またはアンインストール後 7 日で削除されます。[プラグインキャッシング](/ja/plugins-reference#plugin-caching-and-file-resolution)を参照してください。 |

1432 

1433`~/.claude` は、作業中に Claude Code が書き込むデータも保持します。トランスクリプト、プロンプト履歴、ファイルスナップショット、キャッシュ、ログです。以下の[アプリケーションデータ](#application-data)を参照してください。

1434 

1435## 適切なファイルを選択する

1436 

1437異なる種類のカスタマイズは異なるファイルに存在します。このテーブルを使用して、変更がどこに属するかを見つけてください。

1438 

1439| 実行したいこと | 編集 | スコープ | リファレンス |

1440| :---------------------------- | :---------------------------------------- | :------------- | :-------------------------------------------- |

1441| Claude にプロジェクトコンテキストと規約を提供する | `CLAUDE.md` | プロジェクトまたはグローバル | [メモリ](/ja/memory) |

1442| 特定のツール呼び出しを許可またはブロックする | `settings.json` `permissions` または `hooks` | プロジェクトまたはグローバル | [パーミッション](/ja/permissions)、[Hooks](/ja/hooks) |

1443| ツール呼び出しの前後にスクリプトを実行する | `settings.json` `hooks` | プロジェクトまたはグローバル | [Hooks](/ja/hooks) |

1444| セッションの環境変数を設定する | `settings.json` `env` | プロジェクトまたはグローバル | [設定](/ja/settings#available-settings) |

1445| 個人的なオーバーライドを git から除外する | `settings.local.json` | プロジェクトのみ | [設定スコープ](/ja/settings#settings-files) |

1446| `/name` で呼び出すプロンプトまたは機能を追加する | `skills/<name>/SKILL.md` | プロジェクトまたはグローバル | [Skills](/ja/skills) |

1447| 独自のツールを持つ特化した subagent を定義する | `agents/*.md` | プロジェクトまたはグローバル | [Subagents](/ja/sub-agents) |

1448| MCP 経由で外部ツールを接続する | `.mcp.json` | プロジェクトのみ | [MCP](/ja/mcp) |

1449| Claude がレスポンスをフォーマットする方法を変更する | `output-styles/*.md` | プロジェクトまたはグローバル | [出力スタイル](/ja/output-styles) |

1450 

1451## ファイルリファレンス

1452 

1453このテーブルは、エクスプローラーがカバーするすべてのファイルをリストしています。プロジェクトスコープのファイルはリポジトリの `.claude/` の下に存在します(`CLAUDE.md`、`.mcp.json`、`.worktreeinclude` はルートにあります)。グローバルスコープのファイルは `~/.claude/` に存在し、すべてのプロジェクトに適用されます。

1454 

1455<Note>

1456 これらのファイルに入れたものをオーバーライドできるいくつかのことがあります。

1457 

1458 * 組織によってデプロイされた[管理設定](/ja/server-managed-settings)はすべてに優先します

1459 * `--permission-mode` や `--settings` などの CLI フラグはそのセッションの `settings.json` をオーバーライドします

1460 * 一部の環境変数は同等の設定に優先しますが、これは異なります。各設定について[環境変数リファレンス](/ja/env-vars)を確認してください

1461 

1462 完全な順序については[設定の優先順位](/ja/settings#settings-precedence)を参照してください。

1463</Note>

1464 

1465ファイル名をクリックして、上記のエクスプローラーでそのノードを開きます。

1466 

1467| ファイル | スコープ | コミット | 機能 | リファレンス |

1468| --------------------------------------------------- | -------------- | ---- | -------------------------------------- | -------------------------------------------------------------------- |

1469| [`CLAUDE.md`](#ce-claude-md) | プロジェクトおよびグローバル | ✓ | 毎セッション読み込まれる指示 | [メモリ](/ja/memory) |

1470| [`rules/*.md`](#ce-rules) | プロジェクトおよびグローバル | ✓ | トピックスコープの指示、オプションでパスゲート | [ルール](/ja/memory#organize-rules-with-claude/rules/) |

1471| [`settings.json`](#ce-settings-json) | プロジェクトおよびグローバル | ✓ | パーミッション、hooks、環境変数、モデルデフォルト | [設定](/ja/settings) |

1472| [`settings.local.json`](#ce-settings-local-json) | プロジェクトのみ | | 個人的なオーバーライド、自動 gitignore | [設定スコープ](/ja/settings#settings-files) |

1473| [`.mcp.json`](#ce-mcp-json) | プロジェクトのみ | ✓ | チーム共有 MCP サーバー | [MCP スコープ](/ja/mcp#mcp-installation-scopes) |

1474| [`.worktreeinclude`](#ce-worktreeinclude) | プロジェクトのみ | ✓ | 新しい worktrees にコピーする gitignore ファイル | [Worktrees](/ja/common-workflows#copy-gitignored-files-to-worktrees) |

1475| [`skills/<name>/SKILL.md`](#ce-skills) | プロジェクトおよびグローバル | ✓ | `/name` で呼び出される、または自動呼び出される再利用可能なプロンプト | [Skills](/ja/skills) |

1476| [`commands/*.md`](#ce-commands) | プロジェクトおよびグローバル | ✓ | シングルファイルプロンプト。skills と同じメカニズム | [Skills](/ja/skills) |

1477| [`output-styles/*.md`](#ce-output-styles) | プロジェクトおよびグローバル | ✓ | カスタムシステムプロンプトセクション | [出力スタイル](/ja/output-styles) |

1478| [`agents/*.md`](#ce-agents) | プロジェクトおよびグローバル | ✓ | 独自のプロンプトとツールを持つ subagent 定義 | [Subagents](/ja/sub-agents) |

1479| [`agent-memory/<name>/`](#ce-agent-memory) | プロジェクトおよびグローバル | ✓ | subagents の永続メモリ | [永続メモリ](/ja/sub-agents#enable-persistent-memory) |

1480| [`~/.claude.json`](#ce-claude-json) | グローバルのみ | | アプリ状態、OAuth、UI トグル、個人 MCP サーバー | [グローバル設定](/ja/settings#global-config-settings) |

1481| [`projects/<project>/memory/`](#ce-global-projects) | グローバルのみ | | Auto memory:Claude のセッション間のメモ | [Auto memory](/ja/memory#auto-memory) |

1482| [`keybindings.json`](#ce-keybindings) | グローバルのみ | | カスタムキーボードショートカット | [キーバインディング](/ja/keybindings) |

1483| [`themes/*.json`](#ce-themes) | グローバルのみ | | カスタムカラーテーマ | [カスタムテーマ](/ja/terminal-config#create-a-custom-theme) |

1484 

1485## 設定をトラブルシューティングする

1486 

1487設定、hook、またはファイルが有効になっていない場合は、[設定をデバッグする](/ja/debug-your-config)を参照して、検査コマンドと症状優先ルックアップテーブルを確認してください。

1488 

1489## アプリケーションデータ

1490 

1491作成する設定を超えて、`~/.claude` はセッション中に Claude Code が書き込むデータを保持します。これらのファイルはプレーンテキストです。ツールを通過するすべてのものはディスク上のトランスクリプトに記録されます。ファイルコンテンツ、コマンド出力、貼り付けられたテキスト。

1492 

1493### 自動的にクリーンアップされる

1494 

1495以下のパス内のファイルは、[`cleanupPeriodDays`](/ja/settings#available-settings) より古い場合、起動時に削除されます。デフォルトは 30 日です。

1496 

1497| `~/.claude/` の下のパス | コンテンツ |

1498| -------------------------------------------- | ------------------------------------------------------------------------------------ |

1499| `projects/<project>/<session>.jsonl` | 完全な会話トランスクリプト:すべてのメッセージ、ツール呼び出し、ツール結果 |

1500| `projects/<project>/<session>/tool-results/` | 大きなツール出力を別ファイルにこぼしたもの |

1501| `file-history/<session>/` | Claude が変更したファイルの編集前スナップショット。[チェックポイント復元](/ja/checkpointing)に使用 |

1502| `plans/` | [プランモード](/ja/permission-modes#analyze-before-you-edit-with-plan-mode)中に書き込まれたプランファイル |

1503| `debug/` | セッションごとのデバッグログ。`--debug` で開始するか `/debug` を実行した場合のみ書き込まれます |

1504| `paste-cache/`、`image-cache/` | 大きな貼り付けと添付画像のコンテンツ |

1505| `session-env/` | セッションごとの環境メタデータ |

1506| `tasks/` | タスクツールによって書き込まれたセッションごとのタスクリスト |

1507| `shell-snapshots/` | Bash ツールによって使用されるキャプチャされたシェル環境。正常な終了時に削除されます。スイープはクラッシュ後に残されたものをクリアします。 |

1508| `backups/` | 設定マイグレーション前に取得された `~/.claude.json` のタイムスタンプ付きコピー |

1509 

1510### 削除するまで保持される

1511 

1512以下のパスは自動クリーンアップの対象ではなく、無期限に保持されます。

1513 

1514| `~/.claude/` の下のパス | コンテンツ |

1515| ------------------ | ------------------------------------------------ |

1516| `history.jsonl` | 入力したすべてのプロンプト(タイムスタンプとプロジェクトパス付き)。上矢印リコール用に使用 |

1517| `stats-cache.json` | `/usage` で表示される集計トークンおよびコスト数 |

1518| `todos/` | レガシーセッションごとのタスクリスト。現在のバージョンでは書き込まれません。削除しても安全です。 |

1519 

1520その他の小さなキャッシュおよびロックファイルは、使用する機能に応じて表示され、削除しても安全です。

1521 

1522### プレーンテキストストレージ

1523 

1524トランスクリプトと履歴は保存時に暗号化されません。OS ファイルパーミッションのみが保護です。ツールが `.env` ファイルを読み込むか、コマンドが認証情報を出力する場合、その値は `projects/<project>/<session>.jsonl` に書き込まれます。露出を減らすには:

1525 

1526* `cleanupPeriodDays` を低くしてトランスクリプトの保持期間を短縮します

1527* [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ja/env-vars)環境変数を設定して、任意のモードでトランスクリプトとプロンプト履歴の書き込みをスキップします。非対話型モードでは、代わりに `-p` と一緒に `--no-session-persistence` を渡すか、Agent SDK で `persistSession: false` を設定できます。

1528* [パーミッションルール](/ja/permissions)を使用して認証情報ファイルの読み込みを拒否します

1529 

1530### ローカルデータをクリアする

1531 

1532`claude project purge` を実行して、1 つのプロジェクトに対して Claude Code が保持する状態を削除します:

1533 

1534* `projects/` の下のトランスクリプトと自動メモリ

1535* セッションごとの `tasks/`、`debug/`、`file-history/` エントリ

1536* `history.jsonl` の一致するプロンプト行

1537* `~/.claude.json` のプロジェクトエントリ

1538 

1539このコマンドは完全な削除計画を出力し、何かを削除する前に確認を求めます。

1540 

1541削除せずに計画をプレビューします:

1542 

1543```bash theme={null}

1544claude project purge ~/work/my-repo --dry-run

1545```

1546 

1547単一の確認プロンプトで削除します:

1548 

1549```bash theme={null}

1550claude project purge ~/work/my-repo

1551```

1552 

1553パスを省略して、対話型リストからプロジェクトを選択します。

1554 

1555スクリプトで使用するために確認プロンプトをスキップします:

1556 

1557```bash theme={null}

1558claude project purge ~/work/my-repo --yes

1559```

1560 

1561パスの代わりに `--all` を渡して、すべてのプロジェクトの状態を一度にパージします。これは `history.jsonl` をフィルタリングするのではなく完全に削除します。`-i` を渡して削除計画を一度に 1 つずつステップスルーします。

1562 

1563このコマンドは `shell-snapshots/` と `backups/` をそのままにしておきます。これらはプロジェクトスコープではないため、計画出力で警告します。指定されたパスに一致する状態がない場合、ステータス 1 で終了します。

1564 

1565上記のアプリケーションデータパスのいずれかを手動で削除することもできます。新しいセッションは影響を受けません。以下のテーブルは、過去のセッションで失うものを示しています。

1566 

1567| 削除 | 失うもの |

1568| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |

1569| `~/.claude/projects/` | 過去のセッションの再開、続行、巻き戻し |

1570| `~/.claude/history.jsonl` | 上矢印プロンプトリコール |

1571| `~/.claude/file-history/` | 過去のセッションのチェックポイント復元 |

1572| `~/.claude/stats-cache.json` | `/usage` で表示される履歴合計 |

1573| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/paste-cache/`、`~/.claude/image-cache/`、`~/.claude/session-env/`、`~/.claude/tasks/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | ユーザー向けのもの |

1574| `~/.claude/todos/` | なし。現在のバージョンでは書き込まれないレガシーディレクトリ。 |

1575 

1576`~/.claude.json`、`~/.claude/settings.json`、または `~/.claude/plugins/` は削除しないでください。これらは認証、設定、インストール済みプラグインを保持しています。

1577 

1578## 関連リソース

1579 

1580* [Claude のメモリを管理する](/ja/memory):CLAUDE.md、rules、auto memory を書き込んで整理します

1581* [設定を構成する](/ja/settings):パーミッション、hooks、環境変数、モデルデフォルトを設定します

1582* [Skills を作成する](/ja/skills):再利用可能なプロンプトとワークフローを構築します

1583* [Subagents を構成する](/ja/sub-agents):独自のコンテキストを持つ特化したエージェントを定義します

cli-reference.md +129 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# CLI リファレンス

6 

7> Claude Code コマンドラインインターフェースの完全なリファレンス。コマンドとフラグを含みます。

8 

9## CLI コマンド

10 

11これらのコマンドを使用して、セッションを開始し、コンテンツをパイプし、会話を再開し、更新を管理できます。

12 

13| コマンド | 説明 | 例 |

14| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |

15| `claude` | インタラクティブセッションを開始 | `claude` |

16| `claude "query"` | 初期プロンプト付きでインタラクティブセッションを開始 | `claude "explain this project"` |

17| `claude -p "query"` | SDK 経由でクエリを実行してから終了 | `claude -p "explain this function"` |

18| `cat file \| claude -p "query"` | パイプされたコンテンツを処理 | `cat logs.txt \| claude -p "explain"` |

19| `claude -c` | 現在のディレクトリで最新の会話を続行 | `claude -c` |

20| `claude -c -p "query"` | SDK 経由で続行 | `claude -c -p "Check for type errors"` |

21| `claude -r "<session>" "query"` | セッション ID または名前でセッションを再開 | `claude -r "auth-refactor" "Finish this PR"` |

22| `claude update` | 最新バージョンに更新 | `claude update` |

23| `claude install [version]` | ネイティブバイナリをインストールまたは再インストールします。`2.1.118` のようなバージョン、または `stable` または `latest` を受け入れます。[特定のバージョンをインストール](/ja/setup#install-a-specific-version) を参照してください | `claude install stable` |

24| `claude auth login` | Anthropic アカウントにサインインします。`--email` を使用してメールアドレスを事前入力し、`--sso` を使用して SSO 認証を強制し、`--console` を使用して Claude サブスクリプションの代わりに Anthropic Console で API 使用料金をサインインできます | `claude auth login --console` |

25| `claude auth logout` | Anthropic アカウントからログアウト | `claude auth logout` |

26| `claude auth status` | 認証ステータスを JSON として表示します。`--text` を使用して人間が読める形式で表示できます。ログイン済みの場合はコード 0 で終了し、ログインしていない場合は 1 で終了します | `claude auth status` |

27| `claude agents` | すべての設定済み [subagents](/ja/sub-agents) をソース別にグループ化して一覧表示 | `claude agents` |

28| `claude auto-mode defaults` | 組み込み [auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode) 分類器ルールを JSON として出力します。`claude auto-mode config` を使用して、設定が適用された有効な設定を確認してください | `claude auto-mode defaults > rules.json` |

29| `claude mcp` | Model Context Protocol(MCP)サーバーを設定 | [Claude Code MCP ドキュメント](/ja/mcp) を参照してください。 |

30| `claude plugin` | Claude Code [plugins](/ja/plugins) を管理します。エイリアス:`claude plugins`。サブコマンドについては [plugin reference](/ja/plugins-reference#cli-commands-reference) を参照してください | `claude plugin install code-review@claude-plugins-official` |

31| `claude project purge [path]` | プロジェクトのすべてのローカル Claude Code 状態を削除します:トランスクリプト、タスクリスト、デバッグログ、ファイル編集履歴、プロンプト履歴行、および `~/.claude.json` 内のプロジェクトエントリ。`[path]` を省略して、インタラクティブリストから選択します。フラグ:`--dry-run` でプレビュー、`-y`/`--yes` で確認をスキップ、`-i`/`--interactive` で各項目を確認、`--all` ですべてのプロジェクト。[ローカルデータをクリア](/ja/claude-directory#clear-local-data) を参照してください | `claude project purge ~/work/repo --dry-run` |

32| `claude remote-control` | [Remote Control](/ja/remote-control) サーバーを開始して、Claude.ai または Claude アプリから Claude Code を制御します。サーバーモード(ローカルインタラクティブセッションなし)で実行されます。[サーバーモードフラグ](/ja/remote-control#start-a-remote-control-session) を参照してください | `claude remote-control --name "My Project"` |

33| `claude setup-token` | CI とスクリプト用の長期間有効な OAuth トークンを生成します。ターミナルにトークンを出力し、保存しません。Claude サブスクリプションが必要です。[長期間有効なトークンを生成](/ja/authentication#generate-a-long-lived-token) を参照してください | `claude setup-token` |

34| `claude ultrareview [target]` | [ultrareview](/ja/ultrareview#run-ultrareview-non-interactively) を非対話的に実行します。結果を stdout に出力し、成功時は 0 で終了し、失敗時は 1 で終了します。`--json` を使用して生のペイロードを取得し、`--timeout <minutes>` を使用して 30 分のデフォルトをオーバーライドできます | `claude ultrareview 1234 --json` |

35 

36サブコマンドを誤入力した場合、Claude Code は最も近い一致を提案して、セッションを開始せずに終了します。たとえば、`claude udpate` は `Did you mean claude update?` と出力します。

37 

38## CLI フラグ

39 

40これらのコマンドラインフラグを使用して Claude Code の動作をカスタマイズします。`claude --help` はすべてのフラグをリストしていないため、`--help` にフラグが表示されていないことは、そのフラグが利用できないことを意味しません。

41 

42| フラグ | 説明 | 例 |

43| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------- |

44| `--add-dir` | Claude がファイルを読み取り、編集するための追加の作業ディレクトリを追加します。ファイルアクセスを許可します。ほとんどの `.claude/` 設定は [これらのディレクトリから検出されません](/ja/permissions#additional-directories-grant-file-access-not-configuration)。各パスがディレクトリとして存在することを検証します | `claude --add-dir ../apps ../lib` |

45| `--agent` | 現在のセッションのエージェントを指定します(`agent` 設定をオーバーライドします) | `claude --agent my-custom-agent` |

46| `--agents` | JSON 経由でカスタム subagents を動的に定義します。subagent [frontmatter](/ja/sub-agents#supported-frontmatter-fields) と同じフィールド名を使用し、さらにエージェントの指示用の `prompt` フィールドを追加します | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

47| `--allow-dangerously-skip-permissions` | `Shift+Tab` モードサイクルに `bypassPermissions` を追加します。これを開始時に有効にしません。`plan` のような別のモードで開始し、後で `bypassPermissions` に切り替えることができます。[権限モード](/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) を参照してください | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

48| `--allowedTools` | 権限を求めずに実行するツール。パターンマッチングについては [権限ルール構文](/ja/settings#permission-rule-syntax) を参照してください。利用可能なツールを制限するには、代わりに `--tools` を使用してください | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

49| `--append-system-prompt` | デフォルトシステムプロンプトの末尾にカスタムテキストを追加 | `claude --append-system-prompt "Always use TypeScript"` |

50| `--append-system-prompt-file` | ファイルから追加のシステムプロンプトテキストを読み込み、デフォルトプロンプトに追加 | `claude --append-system-prompt-file ./extra-rules.txt` |

51| `--bare` | 最小限モード:hooks、skills、plugins、MCP サーバー、自動メモリ、CLAUDE.md の自動検出をスキップして、スクリプト化された呼び出しをより高速に開始します。Claude は Bash、ファイル読み取り、ファイル編集ツールにアクセスできます。[`CLAUDE_CODE_SIMPLE`](/ja/env-vars) を設定します。[bare mode](/ja/headless#start-faster-with-bare-mode) を参照してください | `claude --bare -p "query"` |

52| `--betas` | API リクエストに含めるベータヘッダー(API キーユーザーのみ) | `claude --betas interleaved-thinking` |

53| `--channels` | (研究プレビュー)Claude がこのセッションでリッスンすべき [channel](/ja/channels) 通知を持つ MCP サーバー。`plugin:<name>@<marketplace>` エントリのスペース区切りリスト。Claude.ai 認証が必要です | `claude --channels plugin:my-notifier@my-marketplace` |

54| `--chrome` | Web 自動化とテストのための [Chrome ブラウザ統合](/ja/chrome) を有効にします | `claude --chrome` |

55| `--continue`, `-c` | 現在のディレクトリで最新の会話を読み込みます。このディレクトリを `/add-dir` で追加したセッションを含みます | `claude --continue` |

56| `--dangerously-load-development-channels` | 承認されたアローリストにない [channels](/ja/channels-reference#test-during-the-research-preview) をローカル開発用に有効にします。`plugin:<name>@<marketplace>` および `server:<name>` エントリを受け入れます。確認を求めます | `claude --dangerously-load-development-channels server:webhook` |

57| `--dangerously-skip-permissions` | すべての権限プロンプトをスキップします。`--permission-mode bypassPermissions` と同等です。[権限モード](/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) を参照して、これが何をスキップし、何をスキップしないかを確認してください | `claude --dangerously-skip-permissions` |

58| `--debug` | オプションのカテゴリフィルタリング付きでデバッグモードを有効にします(例:`"api,hooks"` または `"!statsig,!file"`) | `claude --debug "api,mcp"` |

59| `--debug-file <path>` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします。`CLAUDE_CODE_DEBUG_LOGS_DIR` より優先されます | `claude --debug-file /tmp/claude-debug.log` |

60| `--disable-slash-commands` | このセッションのすべてのスキルとコマンドを無効にします | `claude --disable-slash-commands` |

61| `--disallowedTools` | モデルのコンテキストから削除され、使用できないツール | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

62| `--effort` | 現在のセッションの [努力レベル](/ja/model-config#adjust-effort-level) を設定します。オプション:`low`、`medium`、`high`、`xhigh`、`max`。利用可能なレベルはモデルによって異なります。セッションスコープであり、設定に永続化されません | `claude --effort high` |

63| `--enable-auto-mode` | {/* max-version: 2.1.110 */}v2.1.111 で削除されました。Auto mode は現在 `Shift+Tab` サイクルにデフォルトで含まれています。`--permission-mode auto` を使用して開始してください | `claude --permission-mode auto` |

64| `--exclude-dynamic-system-prompt-sections` | システムプロンプトからマシンごとのセクション(作業ディレクトリ、環境情報、メモリパス、git ステータス)を最初のユーザーメッセージに移動します。異なるユーザーとマシンで同じタスクを実行する場合、prompt-cache の再利用を改善します。デフォルトシステムプロンプトにのみ適用されます。`--system-prompt` または `--system-prompt-file` が設定されている場合は無視されます。スクリプト化された複数ユーザーのワークロードの場合は `-p` と一緒に使用してください | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

65| `--fallback-model` | デフォルトモデルが過負荷の場合、指定されたモデルへの自動フォールバックを有効にします(プリントモードのみ) | `claude -p --fallback-model sonnet "query"` |

66| `--fork-session` | 再開時に、元のセッション ID を再利用する代わりに新しいセッション ID を作成します(`--resume` または `--continue` と一緒に使用) | `claude --resume abc123 --fork-session` |

67| `--from-pr` | 特定のプルリクエストにリンクされたセッションを再開します。PR 番号、GitHub または GitHub Enterprise PR URL、GitLab マージリクエスト URL、または Bitbucket プルリクエスト URL を受け入れます。Claude がプルリクエストを作成するときに、セッションは自動的にリンクされます | `claude --from-pr 123` |

68| `--ide` | 起動時に、正確に 1 つの有効な IDE が利用可能な場合、自動的に IDE に接続します | `claude --ide` |

69| `--init` | セッション開始前に `init` マッチャーで [Setup hooks](/ja/hooks#setup) を実行します(プリントモードのみ) | `claude -p --init "query"` |

70| `--init-only` | [Setup](/ja/hooks#setup) および `SessionStart` hooks を実行してから、会話を開始せずに終了します | `claude --init-only` |

71| `--include-hook-events` | すべてのフックライフサイクルイベントを出力ストリームに含めます。`--output-format stream-json` が必要です | `claude -p --output-format stream-json --include-hook-events "query"` |

72| `--include-partial-messages` | 部分的なストリーミングイベントを出力に含めます。`--print` と `--output-format stream-json` が必要です | `claude -p --output-format stream-json --include-partial-messages "query"` |

73| `--input-format` | プリントモードの入力形式を指定します(オプション:`text`、`stream-json`) | `claude -p --output-format json --input-format stream-json` |

74| `--json-schema` | エージェントがワークフローを完了した後、JSON Schema に一致する検証済み JSON 出力を取得します(プリントモードのみ。[構造化出力](/ja/agent-sdk/structured-outputs) を参照) | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

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

76| `--max-budget-usd` | 停止する前に API 呼び出しに費やす最大ドル金額(プリントモードのみ) | `claude -p --max-budget-usd 5.00 "query"` |

77| `--max-turns` | agentic ターンの数を制限します(プリントモードのみ)。制限に達するとエラーで終了します。デフォルトでは制限なし | `claude -p --max-turns 3 "query"` |

78| `--mcp-config` | JSON ファイルまたは文字列から MCP サーバーを読み込みます(スペース区切り) | `claude --mcp-config ./mcp.json` |

79| `--model` | 現在のセッションのモデルを、最新モデルのエイリアス(`sonnet` または `opus`)またはモデルの完全な名前で設定します | `claude --model claude-sonnet-4-6` |

80| `--name`, `-n` | セッションの表示名を設定します。`/resume` とターミナルタイトルに表示されます。`claude --resume <name>` で名前付きセッションを再開できます。<br /><br />[`/rename`](/ja/commands) はセッション中に名前を変更し、プロンプトバーにも表示します | `claude -n "my-feature-work"` |

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

82| `--no-session-persistence` | セッション永続化を無効にして、セッションがディスクに保存されず、再開できないようにします(プリントモードのみ) | `claude -p --no-session-persistence "query"` |

83| `--output-format` | プリントモードの出力形式を指定します(オプション:`text`、`json`、`stream-json`) | `claude -p "query" --output-format json` |

84| `--permission-mode` | 指定された [権限モード](/ja/permission-modes) で開始します。`default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、または `bypassPermissions` を受け入れます。設定ファイルの `defaultMode` をオーバーライドします | `claude --permission-mode plan` |

85| `--permission-prompt-tool` | 非インタラクティブモードで権限プロンプトを処理する MCP ツールを指定します | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

86| `--plugin-dir` | このセッションのみのプラグインをディレクトリから読み込みます。各フラグは 1 つのパスを取ります。複数のディレクトリの場合はフラグを繰り返します:`--plugin-dir A --plugin-dir B` | `claude --plugin-dir ./my-plugins` |

87| `--print`, `-p` | インタラクティブモードなしで応答を出力します(プログラムによる使用の詳細については [Agent SDK ドキュメント](/ja/agent-sdk/overview) を参照) | `claude -p "query"` |

88| `--remote` | 提供されたタスク説明で claude.ai に新しい [Web セッション](/ja/claude-code-on-the-web) を作成します | `claude --remote "Fix the login bug"` |

89| `--remote-control`, `--rc` | [Remote Control](/ja/remote-control#start-a-remote-control-session) を有効にしてインタラクティブセッションを開始し、claude.ai または Claude アプリからも制御できるようにします。オプションでセッションの名前を渡すことができます | `claude --remote-control "My Project"` |

90| `--remote-control-session-name-prefix <prefix>` | 明示的な名前が設定されていない場合、自動生成される [Remote Control](/ja/remote-control) セッション名のプレフィックス。デフォルトはマシンのホスト名で、`myhost-graceful-unicorn` のような名前が生成されます。同じ効果を得るには `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` を設定してください | `claude remote-control --remote-control-session-name-prefix dev-box` |

91| `--replay-user-messages` | stdin からのユーザーメッセージを stdout に再発行して確認します。`--input-format stream-json` と `--output-format stream-json` が必要です | `claude -p --input-format stream-json --output-format stream-json --replay-user-messages` |

92| `--resume`, `-r` | ID または名前で特定のセッションを再開するか、セッションを選択するためのインタラクティブピッカーを表示します。このディレクトリを `/add-dir` で追加したセッションを含みます | `claude --resume auth-refactor` |

93| `--session-id` | 会話に特定のセッション ID を使用します(有効な UUID である必要があります) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

94| `--setting-sources` | 読み込む設定ソースのカンマ区切りリスト(`user`、`project`、`local`) | `claude --setting-sources user,project` |

95| `--settings` | 追加の設定を読み込むための設定 JSON ファイルまたは JSON 文字列へのパス | `claude --settings ./settings.json` |

96| `--strict-mcp-config` | `--mcp-config` からのみ MCP サーバーを使用し、他のすべての MCP 設定を無視します | `claude --strict-mcp-config --mcp-config ./mcp.json` |

97| `--system-prompt` | デフォルトシステムプロンプト全体をカスタムテキストで置き換え | `claude --system-prompt "You are a Python expert"` |

98| `--system-prompt-file` | ファイルからシステムプロンプトを読み込み、デフォルトプロンプトを置き換え | `claude --system-prompt-file ./custom-prompt.txt` |

99| `--teleport` | [Web セッション](/ja/claude-code-on-the-web) をローカルターミナルで再開します | `claude --teleport` |

100| `--teammate-mode` | [エージェントチーム](/ja/agent-teams) のチームメイトの表示方法を設定します:`auto`(デフォルト)、`in-process`、または `tmux`。[ディスプレイモードを選択](/ja/agent-teams#choose-a-display-mode) を参照してください | `claude --teammate-mode in-process` |

101| `--tmux` | worktree 用に tmux セッションを作成します。`--worktree` が必要です。利用可能な場合は iTerm2 ネイティブペインを使用します。従来の tmux の場合は `--tmux=classic` を渡します | `claude -w feature-auth --tmux` |

102| `--tools` | Claude が使用できる組み込みツールを制限します。`""` を使用してすべてを無効にし、`"default"` を使用してすべてを有効にするか、`"Bash,Edit,Read"` のようなツール名を使用します | `claude --tools "Bash,Edit,Read"` |

103| `--verbose` | 詳細ログを有効にし、ターンごとの完全な出力を表示 | `claude --verbose` |

104| `--version`, `-v` | バージョン番号を出力 | `claude -v` |

105| `--worktree`, `-w` | Claude を `<repo>/.claude/worktrees/<name>` の分離された [git worktree](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) で開始します。名前が指定されていない場合は、自動生成されます | `claude -w feature-auth` |

106 

107### システムプロンプトフラグ

108 

109Claude Code は、システムプロンプトをカスタマイズするための 4 つのフラグを提供します。すべて 4 つはインタラクティブモードと非インタラクティブモードの両方で機能します。

110 

111| フラグ | 動作 | 例 |

112| :---------------------------- | :-------------------- | :------------------------------------------------------ |

113| `--system-prompt` | デフォルトプロンプト全体を置き換え | `claude --system-prompt "You are a Python expert"` |

114| `--system-prompt-file` | ファイルの内容で置き換え | `claude --system-prompt-file ./prompts/review.txt` |

115| `--append-system-prompt` | デフォルトプロンプトに追加 | `claude --append-system-prompt "Always use TypeScript"` |

116| `--append-system-prompt-file` | ファイルの内容をデフォルトプロンプトに追加 | `claude --append-system-prompt-file ./style-rules.txt` |

117 

118`--system-prompt` と `--system-prompt-file` は相互に排他的です。追加フラグは、置き換えフラグのいずれかと組み合わせることができます。

119 

120ほとんどのユースケースでは、追加フラグを使用してください。追加することで、Claude Code の組み込み機能を保持しながら、要件を追加できます。置き換えフラグは、システムプロンプトを完全に制御する必要がある場合にのみ使用してください。

121 

122## 関連項目

123 

124* [Chrome 拡張機能](/ja/chrome) - ブラウザ自動化と Web テスト

125* [インタラクティブモード](/ja/interactive-mode) - ショートカット、入力モード、インタラクティブ機能

126* [クイックスタートガイド](/ja/quickstart) - Claude Code の開始方法

127* [一般的なワークフロー](/ja/common-workflows) - 高度なワークフローとパターン

128* [設定](/ja/settings) - 設定オプション

129* [Agent SDK ドキュメント](/ja/agent-sdk/overview) - プログラムによる使用と統合

code-review.md +274 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Code Review

6 

7> マルチエージェント分析を使用してコードベース全体を検査し、ロジックエラー、セキュリティ脆弱性、リグレッションを検出する自動化された PR レビューを設定します

8 

9<Note>

10 Code Review はリサーチプレビュー段階であり、[Team および Enterprise](https://claude.ai/admin-settings/claude-code) サブスクリプションで利用可能です。[Zero Data Retention](/ja/zero-data-retention) が有効になっている組織では利用できません。

11</Note>

12 

13Code Review は GitHub プルリクエストを分析し、コードの問題が見つかった行にインラインコメントとして結果を投稿します。特化したエージェントのフリートがコード変更をコードベース全体のコンテキストで検査し、ロジックエラー、セキュリティ脆弱性、壊れたエッジケース、微妙なリグレッションを探します。

14 

15結果は重大度でタグ付けされ、PR を承認またはブロックしないため、既存のレビューワークフローはそのまま機能します。リポジトリに `CLAUDE.md` または `REVIEW.md` ファイルを追加することで、Claude がフラグを立てる内容をカスタマイズできます。

16 

17Claude を管理サービスではなく独自の CI インフラストラクチャで実行する場合は、[GitHub Actions](/ja/github-actions) または [GitLab CI/CD](/ja/gitlab-ci-cd) を参照してください。自己ホスト型 GitHub インスタンス上のリポジトリについては、[GitHub Enterprise Server](/ja/github-enterprise-server) を参照してください。

18 

19このページでは以下をカバーしています:

20 

21* [レビューの仕組み](#how-reviews-work)

22* [セットアップ](#set-up-code-review)

23* [`@claude review` と `@claude review once` を使用した](#manually-trigger-reviews)レビューの手動トリガー

24* [`CLAUDE.md` と `REVIEW.md` を使用した](#customize-reviews)レビューのカスタマイズ

25* [料金](#pricing)

26* [トラブルシューティング](#troubleshooting)失敗した実行と欠落したコメント

27 

28## レビューの仕組み

29 

30管理者が組織の Code Review を[有効にする](#set-up-code-review)と、リポジトリの設定された動作に応じて、PR が開かれたとき、すべてのプッシュ時、または手動でリクエストされたときにレビューがトリガーされます。PR で `@claude review` と[コメントすると](#manually-trigger-reviews)、任意のモードでレビューが開始されます。

31 

32レビューが実行されると、複数のエージェントが Anthropic インフラストラクチャ上で並行して diff と周囲のコードを分析します。各エージェントは異なるクラスの問題を探し、その後、検証ステップが候補を実際のコード動作に対してチェックして、偽陽性を除外します。結果は重複排除され、重大度でランク付けされ、問題が見つかった特定の行にインラインコメントとして投稿されます。問題が見つからない場合、Claude は PR に短い確認コメントを投稿します。

33 

34レビューはコストが PR のサイズと複雑さに応じてスケーリングされ、平均 20 分で完了します。管理者は[分析ダッシュボード](#view-usage)を通じてレビューアクティビティと支出を監視できます。

35 

36### 重大度レベル

37 

38各結果は重大度レベルでタグ付けされます:

39 

40| マーカー | 重大度 | 意味 |

41| :--- | :----------- | :----------------------------- |

42| 🔴 | Important | マージ前に修正すべきバグ |

43| 🟡 | Nit | 軽微な問題、修正する価値があるがブロッキングではない |

44| 🟣 | Pre-existing | コードベースに存在するが、この PR で導入されなかったバグ |

45 

46結果には、展開可能な拡張推論セクションが含まれており、Claude がなぜ問題をフラグ立てしたのか、どのように問題を検証したのかを理解するために展開できます。

47 

48### 結果に対する評価と返信

49 

50Claude からの各レビューコメントには、👍 と 👎 が既に添付されているため、GitHub UI で両方のボタンがワンクリック評価のために表示されます。結果が有用だった場合は 👍 をクリックし、間違っていたか騒々しかった場合は 👎 をクリックしてください。Anthropic は PR がマージされた後にリアクションカウントを収集し、それを使用してレビュアーをチューニングします。リアクションは再レビューをトリガーしたり、PR 上の何かを変更したりしません。

51 

52インラインコメントに返信しても、Claude が応答したり PR を更新したりするようにプロンプトされません。結果に対処するには、コードを修正してプッシュしてください。PR がプッシュトリガーレビューにサブスクライブされている場合、次の実行は問題が修正されるとスレッドを解決します。プッシュせずに新しいレビューをリクエストするには、[トップレベルの PR コメント](#manually-trigger-reviews)として `@claude review once` とコメントしてください。

53 

54### チェック実行出力

55 

56インラインレビューコメントに加えて、各レビューは CI チェックと並んで表示される **Claude Code Review** チェック実行を生成します。その **Details** リンクを展開して、すべての結果の概要を 1 か所で確認でき、重大度でソートされています:

57 

58| 重大度 | ファイル:行 | 問題 |

59| ------------ | ------------------------- | ------------------------------------ |

60| 🔴 Important | `src/auth/session.ts:142` | トークン更新がログアウトと競合し、古いセッションがアクティブなままになる |

61| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` は不正な形式の入力で黙って 0 を返す |

62 

63各結果は、**Files changed** タブの注釈としても表示され、関連する diff 行に直接マークされます。Important の結果は赤いマーカーで、nit は黄色の警告で、既存のバグは灰色の通知でレンダリングされます。注釈と重大度テーブルはインラインレビューコメントとは独立してチェック実行に書き込まれるため、移動した行のインラインコメントが GitHub に拒否された場合でも利用可能なままです。

64 

65チェック実行は常に中立的な結論で完了するため、ブランチ保護ルールを通じてマージをブロックすることはありません。Code Review の結果に基づいてマージをゲートしたい場合は、チェック実行出力から重大度の内訳を読み取り、独自の CI で使用してください。Details テキストの最後の行は、ワークフローが `gh` と jq で解析できるマシン可読コメントです:

66 

67```bash theme={null}

68gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

69 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

70```

71 

72これは重大度ごとのカウントを含む JSON オブジェクトを返します。例えば `{"normal": 2, "nit": 1, "pre_existing": 0}` です。`normal` キーは Important の結果のカウントを保持します。ゼロ以外の値は、Claude がマージ前に修正する価値のあるバグを少なくとも 1 つ見つけたことを意味します。

73 

74### Code Review がチェックする内容

75 

76デフォルトでは、Code Review は正確性に焦点を当てています:フォーマット設定の好みやテストカバレッジの欠落ではなく、本番環境を壊すバグです。リポジトリに[ガイダンスファイルを追加](#customize-reviews)することで、チェック内容を拡張できます。

77 

78## Code Review のセットアップ

79 

80管理者が組織に対して Code Review を 1 回有効にし、含めるリポジトリを選択します。

81 

82<Steps>

83 <Step title="Claude Code 管理設定を開く">

84 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) にアクセスして、Code Review セクションを見つけます。Claude 組織への管理者アクセスと GitHub 組織に GitHub Apps をインストールする権限が必要です。

85 </Step>

86 

87 <Step title="セットアップを開始する">

88 **Setup** をクリックします。これにより GitHub App インストールフローが開始されます。

89 </Step>

90 

91 <Step title="Claude GitHub App をインストールする">

92 プロンプトに従って、Claude GitHub App を GitHub 組織にインストールします。アプリは以下のリポジトリ権限をリクエストします:

93 

94 * **Contents**: 読み取りと書き込み

95 * **Issues**: 読み取りと書き込み

96 * **Pull requests**: 読み取りと書き込み

97 

98 Code Review は contents への読み取りアクセスと pull requests への書き込みアクセスを使用します。より広い権限セットは、後で有効にする場合、[GitHub Actions](/ja/github-actions) もサポートします。

99 </Step>

100 

101 <Step title="リポジトリを選択する">

102 Code Review を有効にするリポジトリを選択します。リポジトリが表示されない場合は、インストール中に Claude GitHub App にアクセス権を付与したことを確認してください。後でリポジトリを追加できます。

103 </Step>

104 

105 <Step title="リポジトリごとにレビュートリガーを設定する">

106 セットアップが完了すると、Code Review セクションはリポジトリをテーブルに表示します。各リポジトリについて、**Review Behavior** ドロップダウンを使用してレビューが実行されるタイミングを選択します:

107 

108 * **Once after PR creation**: PR が開かれるか ready for review としてマークされたときにレビューが 1 回実行されます

109 * **After every push**: PR ブランチへのすべてのプッシュでレビューが実行され、PR が進化するにつれて新しい問題をキャッチし、フラグが立てられた問題を修正するとスレッドを自動解決します

110 * **Manual**: [PR で `@claude review` または `@claude review once` とコメント](#manually-trigger-reviews)したときのみレビューが開始されます。`@claude review` はまた、その後のプッシュでレビューに PR をサブスクライブします

111 

112 すべてのプッシュでレビューすると、最も多くのレビューが実行され、最もコストがかかります。Manual モードは、特定の PR をレビューにオプトインしたい高トラフィックリポジトリ、または PR が ready になったら PR のレビューを開始したい場合に便利です。

113 </Step>

114</Steps>

115 

116リポジトリテーブルは、最近のアクティビティに基づいて各リポジトリの平均レビューコストも表示します。行アクションメニューを使用して、リポジトリごとに Code Review をオンまたはオフにするか、リポジトリを完全に削除します。

117 

118セットアップを確認するには、テスト PR を開きます。自動トリガーを選択した場合、**Claude Code Review** という名前のチェック実行が数分以内に表示されます。Manual を選択した場合は、PR で `@claude review` とコメントして最初のレビューを開始します。チェック実行が表示されない場合は、リポジトリが管理設定に一覧表示されていることと、Claude GitHub App がアクセス権を持っていることを確認してください。

119 

120## レビューを手動でトリガーする

121 

1222 つのコメントコマンドがオンデマンドでレビューを開始します。どちらもリポジトリの設定されたトリガーに関係なく機能するため、Manual モードで特定の PR をレビューにオプトインするか、他のモードで即座に再レビューを取得するために使用できます。

123 

124| コマンド | 実行内容 |

125| :-------------------- | :----------------------------------------------- |

126| `@claude review` | レビューを開始し、その後のプッシュでレビューがトリガーされるように PR をサブスクライブします |

127| `@claude review once` | 今後のプッシュにサブスクライブせずに単一のレビューを開始します |

128 

129PR の現在の状態についてフィードバックが必要だが、その後のすべてのプッシュでレビューが発生するのを望まない場合は、`@claude review once` を使用します。これは頻繁なプッシュを伴う長時間実行される PR や、PR のレビュー動作を変更せずに 1 回限りの 2 番目の意見が必要な場合に便利です。

130 

131どちらのコマンドでもレビューをトリガーするには:

132 

133* トップレベルの PR コメントとして投稿し、diff 行のインラインコメントではない

134* コメントの開始にコマンドを配置し、ワンショット形式を使用している場合は `once` を同じ行に配置します

135* リポジトリへのオーナー、メンバー、またはコラボレーターアクセス権を持つ必要があります

136* PR は開いている必要があります

137 

138自動トリガーとは異なり、手動トリガーはドラフト PR で実行されます。明示的なリクエストはドラフトステータスに関係なく、今すぐレビューが必要であることを示すためです。

139 

140その PR でレビューが既に実行されている場合、リクエストは進行中のレビューが完了するまでキューに入ります。PR のチェック実行を通じて進捗を監視できます。

141 

142## レビューをカスタマイズする

143 

144Code Review はリポジトリから 2 つのファイルを読み取り、フラグを立てる内容をガイドします。これらは、デフォルトの正確性チェックの上にどの程度強く影響するかが異なります:

145 

146* **`CLAUDE.md`**: Claude Code がすべてのタスク(レビューだけではなく)に使用する共有プロジェクト指示。Code Review はそれをプロジェクトコンテキストとして読み取り、新しく導入された違反を nit としてフラグ立てします。

147* **`REVIEW.md`**: レビューのみのガイダンス、レビューパイプラインのすべてのエージェントに最優先として直接注入されます。フラグを立てるもの、重大度、結果の報告方法を変更するために使用します。

148 

149### CLAUDE.md

150 

151Code Review はリポジトリの `CLAUDE.md` ファイルを読み取り、新しく導入された違反を[nit レベル](#severity-levels)の結果として扱います。これは双方向に機能します:PR が `CLAUDE.md` ステートメントを古くする方法でコードを変更する場合、Claude はドキュメントを更新する必要があることをフラグ立てします。

152 

153Claude はディレクトリ階層のすべてのレベルで `CLAUDE.md` ファイルを読み取るため、サブディレクトリの `CLAUDE.md` のルールはそのパスの下のファイルにのみ適用されます。`CLAUDE.md` の仕組みの詳細については、[memory ドキュメント](/ja/memory)を参照してください。

154 

155一般的な Claude Code セッションに適用したくないレビュー固有のガイダンスについては、代わりに[`REVIEW.md`](#review-md)を使用します。

156 

157### REVIEW\.md

158 

159`REVIEW.md` はリポジトリルートのファイルで、Code Review がリポジトリ上でどのように動作するかをオーバーライドします。その内容は、レビューパイプラインのすべてのエージェントのシステムプロンプトに最優先の指示ブロックとして注入され、デフォルトのレビューガイダンスより優先されます。

160 

161逐語的に貼り付けられるため、`REVIEW.md` はプレーンな指示です:[`@` import 構文](/ja/memory#import-additional-files)は展開されず、参照されたファイルはプロンプトに読み込まれません。実装したいルールをファイルに直接配置します。

162 

163#### チューニング可能な内容

164 

165`REVIEW.md` はフリーフォーム markdown であるため、レビュー指示として表現できるものはすべてスコープ内です。以下のパターンは実際に最も影響があります。

166 

167**重大度**: リポジトリの 🔴 Important の意味を再定義します。デフォルトのキャリブレーションは本番コードをターゲットにしています。ドキュメントリポジトリ、設定リポジトリ、またはプロトタイプは、はるかに狭い定義が必要な場合があります。Important である結果のクラスと、最大でも Nit である結果のクラスを明示的に述べます。別の方向にエスカレートすることもできます。例えば、デフォルトの nit ではなく、`CLAUDE.md` 違反を Important として扱う場合です。

168 

169**Nit ボリューム**: 単一のレビューが投稿する 🟡 Nit コメントの数をキャップします。散文と設定ファイルは永遠に磨くことができます。「最大 5 つの nit を報告し、残りを概要のカウントとして言及する」というようなキャップは、レビューを実行可能に保ちます。

170 

171**スキップルール**: Claude が結果を投稿しないべきパス、ブランチパターン、結果カテゴリを一覧表示します。一般的な候補は、生成されたコード、ロックファイル、ベンダーされた依存関係、マシン作成ブランチ、および linting やスペルチェックなど CI が既に実装しているものです。完全な精査を保証しないが何らかのレビューを保証するパスについては、完全にスキップするのではなく、より高いバーを設定します:「`scripts/` では、ほぼ確実で重大な場合のみ報告します」。

172 

173**リポジトリ固有のチェック**: すべての PR でフラグを立てたいルールを追加します。例えば「新しい API ルートには統合テストが必要」。`REVIEW.md` は最優先として注入されるため、これらは長い `CLAUDE.md` の同じルールよりも確実に着地します。

174 

175**検証バー**: 結果クラスが投稿される前に証拠を要求します。例えば「動作クレームは命名からの推論ではなく、ソースの `file:line` 引用が必要」は、そうでなければ著者に往復を費やさせる偽陽性を削減します。

176 

177**再レビュー収束**: PR が既にレビューされている場合、Claude がどのように動作するかを伝えます。「最初のレビュー後、新しい nit を抑制し、Important の結果のみを投稿する」というようなルールは、1 行の修正がスタイルだけで 7 ラウンド目に到達するのを防ぎます。

178 

179**概要の形状**: レビュー本文が `2 factual, 4 style` のような 1 行のタリーで開くことを要求し、その場合は「ファクチュアルな問題なし」で始めることを要求します。著者は詳細の前に作業の形状を知りたいです。

180 

181#### 例

182 

183この `REVIEW.md` はバックエンドサービスの重大度を再キャリブレーションし、nit をキャップし、生成されたファイルをスキップし、リポジトリ固有のチェックを追加します。

184 

185```markdown theme={null}

186# レビュー指示

187 

188## ここで Important が意味するもの

189 

190Important は、動作を壊す、データをリークする、またはロールバックをブロックする結果のために予約します:不正なロジック、スコープされていないデータベースクエリ、ログまたはエラーメッセージの PII、および後方互換性のないマイグレーション。スタイル、命名、リファクタリング提案は最大でも Nit です。

191 

192## Nit をキャップする

193 

194レビューごとに最大 5 つの Nit を報告します。さらに見つけた場合は、インラインで投稿する代わりに、概要で「plus N similar items」と言います。見つけたすべてが Nit の場合、概要を「No blocking issues」で始めます。

195 

196## 報告しない

197 

198- CI が既に実装しているもの:lint、フォーマット、型エラー

199- `src/gen/` の下の生成されたファイルと任意の `*.lock` ファイル

200- 本番ルールを意図的に違反するテストのみのコード

201 

202## 常にチェック

203 

204- 新しい API ルートには統合テストがある

205- ログ行にメールアドレス、ユーザー ID、またはリクエスト本文が含まれていない

206- データベースクエリは呼び出し元のテナントにスコープされている

207```

208 

209#### フォーカスを保つ

210 

211長さはコストがあります:長い `REVIEW.md` は最も重要なルールを薄めます。レビュー動作を変更する指示に保ち、一般的なプロジェクトコンテキストは `CLAUDE.md` に残します。

212 

213## 使用状況を表示する

214 

215[claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) にアクセスして、組織全体の Code Review アクティビティを確認します。ダッシュボードは以下を表示します:

216 

217| セクション | 表示内容 |

218| :------------------- | :-------------------------------- |

219| PRs reviewed | 選択した時間範囲でレビューされたプルリクエストの日次カウント |

220| Cost weekly | Code Review の週次支出 |

221| Feedback | 開発者が問題に対処したため自動解決されたレビューコメントのカウント |

222| Repository breakdown | リポジトリごとのレビューされた PR とコメント解決のカウント |

223 

224管理設定のリポジトリテーブルは、各リポジトリの平均レビューコストも表示します。ダッシュボードのコスト数値は活動を監視するための推定値です。請求書に正確な支出については、Anthropic の請求書を参照してください。

225 

226## 料金

227 

228Code Review はトークン使用量に基づいて請求されます。各レビューは平均 \$15~25 のコストで、PR サイズ、コードベースの複雑さ、検証が必要な問題の数に応じてスケーリングされます。Code Review の使用は[extra usage](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)を通じて個別に請求され、プランの含まれた使用量にはカウントされません。

229 

230選択するレビュートリガーは総コストに影響します:

231 

232* **Once after PR creation**: PR ごとに 1 回実行されます

233* **After every push**: 各プッシュで実行され、プッシュ数でコストが乗算されます

234* **Manual**: PR で誰かが `@claude review` とコメントするまでレビューはありません

235 

236どのモードでも、`@claude review` と[コメント](#manually-trigger-reviews)すると、PR がプッシュトリガーレビューにオプトインされるため、そのコメント後のプッシュごとに追加コストが発生します。今後のプッシュにサブスクライブせずに単一のレビューを実行するには、代わりに `@claude review once` とコメントしてください。

237 

238コストは、組織が他の Claude Code 機能に Amazon Bedrock または Google Vertex AI を使用しているかどうかに関係なく、Anthropic の請求書に表示されます。Code Review の月次支出上限を設定するには、[claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) にアクセスして、Claude Code Review サービスの制限を設定します。

239 

240[analytics](#view-usage) の週次コストチャートまたは管理設定のリポジトリごとの平均コスト列を通じて支出を監視します。

241 

242## トラブルシューティング

243 

244レビュー実行はベストエフォートです。失敗した実行は PR をブロックすることはありませんが、自動的に再試行されることもありません。このセクションでは、失敗した実行から回復する方法と、チェック実行が報告する問題が見つからない場合に確認する場所について説明します。

245 

246### 失敗またはタイムアウトしたレビューを再トリガーする

247 

248レビューインフラストラクチャが内部エラーに遭遇するか、時間制限を超える場合、チェック実行は **Code review encountered an error** または **Code review timed out** というタイトルで完了します。結論は依然として中立的であるため、マージをブロックするものはありませんが、結果は投稿されません。

249 

250レビューを再度実行するには、PR で `@claude review once` とコメントしてください。これは PR を今後のプッシュにサブスクライブせずに新しいレビューを開始します。PR が既にプッシュトリガーレビューにサブスクライブされている場合、新しいコミットをプッシュすることも新しいレビューを開始します。

251 

252GitHub の Checks タブの **Re-run** ボタンは Code Review を再トリガーしません。コメントコマンドまたは新しいプッシュを代わりに使用してください。

253 

254### レビューが実行されず、PR が支出上限メッセージを表示する

255 

256組織の月次支出上限に達すると、Code Review は PR に単一のコメントを投稿し、レビューがスキップされたことを説明します。レビューは次の請求期間の開始時に自動的に再開されるか、管理者が [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) で上限を引き上げるとすぐに再開されます。

257 

258### インラインコメントとして表示されていない問題を見つける

259 

260チェック実行タイトルが問題が見つかったと言っているが、diff にインラインレビューコメントが表示されない場合は、結果が表示されるこれらの他の場所を確認してください:

261 

262* **チェック実行 Details**: Checks タブの Claude Code Review チェックの横にある **Details** をクリックします。重大度テーブルは、インラインコメントが受け入れられたかどうかに関係なく、ファイル、行、概要を含むすべての結果を一覧表示します。

263* **Files changed 注釈**: PR の **Files changed** タブを開きます。結果はレビューコメントとは別に、diff 行に直接添付された注釈としてレンダリングされます。

264* **レビュー本文**: レビューが実行されている間に PR にプッシュした場合、一部の結果は現在の diff に存在しなくなった行を参照する場合があります。これらは、インラインコメントではなく、レビュー本文テキストの **Additional findings** 見出しの下に表示されます。

265 

266## 関連リソース

267 

268Code Review は Claude Code の残りの部分と連携するように設計されています。PR を開く前にローカルでレビューを実行したい場合、自己ホスト型セットアップが必要な場合、または `CLAUDE.md` がツール全体で Claude の動作をどのように形成するかについてさらに詳しく知りたい場合、これらのページは次の良い停止点です:

269 

270* [Plugins](/ja/discover-plugins): プッシュ前にローカルでオンデマンドレビューを実行するための `code-review` プラグインを含むプラグインマーケットプレイスを参照

271* [GitHub Actions](/ja/github-actions): コードレビューを超えたカスタム自動化のための独自の GitHub Actions ワークフローで Claude を実行

272* [GitLab CI/CD](/ja/gitlab-ci-cd): GitLab パイプライン用の自己ホスト型 Claude 統合

273* [Memory](/ja/memory): Claude Code 全体で `CLAUDE.md` ファイルがどのように機能するか

274* [Analytics](/ja/analytics): コードレビューを超えた Claude Code 使用状況を追跡

commands.md +113 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# コマンド

6 

7> Claude Code で利用可能なコマンドの完全なリファレンス。組み込みコマンドとバンドルされたスキルを含む。

8 

9コマンドはセッション内から Claude Code を制御します。モデルの切り替え、権限の管理、コンテキストのクリア、ワークフローの実行など、様々な操作を素早く行うことができます。

10 

11`/` と入力すると、利用可能なすべてのコマンドが表示されます。または `/` の後に文字を入力してフィルタリングできます。

12 

13以下の表は Claude Code に含まれるすべてのコマンドをリストしています。**[スキル](/ja/skills#bundled-skills)** とマークされたエントリはバンドルされたスキルです。これらは自分で作成するスキルと同じメカニズムを使用します。Claude に渡されるプロンプトであり、Claude は関連する場合に自動的に呼び出すこともできます。その他はすべて、CLI にコード化された動作を持つ組み込みコマンドです。独自のコマンドを追加するには、[スキル](/ja/skills)を参照してください。

14 

15すべてのコマンドがすべてのユーザーに表示されるわけではありません。可用性はプラットフォーム、プラン、環境によって異なります。たとえば、`/desktop` は macOS と Windows にのみ表示され、`/upgrade` は Pro プランと Max プランにのみ表示されます。

16 

17以下の表では、`<arg>` は必須引数を示し、`[arg]` はオプション引数を示します。

18 

19| コマンド | 目的 |

20| :---------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

21| `/add-dir <path>` | 現在のセッション中にファイルアクセス用の作業ディレクトリを追加。ほとんどの `.claude/` 設定は追加されたディレクトリから[検出されません](/ja/permissions#additional-directories-grant-file-access-not-configuration)。後で `--continue` または `--resume` を使用して、追加されたディレクトリからセッションを再開できます |

22| `/agents` | [エージェント](/ja/sub-agents)設定を管理 |

23| `/autofix-pr [prompt]` | 現在のブランチの PR を監視し、CI が失敗するか、レビュアーがコメントを残したときに修正をプッシュする [Claude Code on the web](/ja/claude-code-on-the-web#auto-fix-pull-requests) セッションを生成。`gh pr view` で開いている PR を検出します。別の PR を監視するには、最初にそのブランチをチェックアウトしてください。デフォルトでは、リモートセッションはすべての CI 失敗とレビューコメントを修正するよう指示されます。プロンプトを渡して異なる指示を与えることができます。例えば `/autofix-pr only fix lint and type errors`。`gh` CLI と [Claude Code on the web](/ja/claude-code-on-the-web#who-can-use-claude-code-on-the-web) へのアクセスが必要です |

24| `/batch <instruction>` | **[スキル](/ja/skills#bundled-skills)。** コードベース全体にわたる大規模な変更を並列で調整します。コードベースを調査し、作業を 5 ~ 30 個の独立したユニットに分解し、計画を提示します。承認されると、分離された [git worktree](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) 内の各ユニットごとに 1 つのバックグラウンドエージェントを生成します。各エージェントはそのユニットを実装し、テストを実行し、プルリクエストを開きます。git リポジトリが必要です。例: `/batch migrate src/ from Solid to React` |

25| `/branch [name]` | この時点で現在の会話のブランチを作成。ブランチに切り替え、元の会話を保持します。`/resume` で戻ることができます。エイリアス: `/fork`。[`CLAUDE_CODE_FORK_SUBAGENT`](/ja/env-vars) が設定されている場合、`/fork` は代わりに[フォークされたサブエージェント](/ja/sub-agents#fork-the-current-conversation)を生成し、このコマンドのエイリアスではなくなります |

26| `/btw <question>` | 会話に追加せずに[サイドクエスチョン](/ja/interactive-mode#side-questions-with-%2Fbtw)として素早く質問 |

27| `/chrome` | [Chrome の Claude](/ja/chrome) 設定を構成 |

28| `/claude-api [migrate\|managed-agents-onboard]` | **[スキル](/ja/skills#bundled-skills)。** プロジェクトの言語(Python、TypeScript、Java、Go、Ruby、C#、PHP、または cURL)と Managed Agents リファレンス用の Claude API リファレンス資料を読み込みます。ツール使用、ストリーミング、バッチ、構造化出力、および一般的な落とし穴をカバーしています。また、コードが `anthropic` または `@anthropic-ai/sdk` をインポートするときに自動的にアクティブになります。`/claude-api migrate` を実行して、既存の Claude API コードを新しいモデルにアップグレード: Claude はスキャンするファイルとターゲットモデルを尋ね、モデル ID、思考設定、およびバージョン間で変更されたその他のパラメータを更新します。`/claude-api managed-agents-onboard` を実行して、新しい Managed Agent をゼロから作成するインタラクティブなウォークスルーを実施します |

29| `/clear` | 空のコンテキストで新しい会話を開始。前の会話は `/resume` で利用可能なままです。同じ会話を続けながらコンテキストを解放するには、代わりに `/compact` を使用してください。エイリアス: `/reset`、`/new` |

30| `/color [color\|default]` | 現在のセッションのプロンプトバーの色を設定。利用可能な色: `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。`default` を使用してリセット。[リモートコントロール](/ja/remote-control)が接続されている場合、色は claude.ai/code に同期されます |

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

32| `/config` | [設定](/ja/settings)インターフェースを開いて、テーマ、モデル、[出力スタイル](/ja/output-styles)、およびその他の設定を調整。エイリアス: `/settings` |

33| `/context` | 現在のコンテキスト使用状況をカラーグリッドとして視覚化。コンテキストが多いツール、メモリ肥大化、容量警告の最適化提案を表示 |

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

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

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

37| `/desktop` | 現在のセッションを Claude Code デスクトップアプリで続行。macOS と Windows のみ。エイリアス: `/app` |

38| `/diff` | コミットされていない変更と各ターンの diff を表示するインタラクティブ diff ビューアを開きます。左右矢印を使用して現在の git diff と個別の Claude ターンを切り替え、上下矢印でファイルをブラウズします |

39| `/doctor` | Claude Code のインストールと設定を診断および検証。結果はステータスアイコン付きで表示されます。`f` を押して Claude に報告された問題を修正させます |

40| `/effort [level\|auto]` | モデルの[努力レベル](/ja/model-config#adjust-effort-level)を設定。`low`、`medium`、`high`、`xhigh`、または `max` を受け入れます。利用可能なレベルはモデルに依存し、`max` はセッションのみです。`auto` はモデルのデフォルトにリセットします。引数なしで、インタラクティブスライダーを開きます。左右矢印でレベルを選択し、`Enter` で適用します。現在の応答の完了を待たずに即座に有効になります |

41| `/exit` | CLI を終了。エイリアス: `/quit` |

42| `/export [filename]` | 現在の会話をプレーンテキストとしてエクスポート。ファイル名を指定すると、そのファイルに直接書き込みます。指定しない場合、クリップボードにコピーするか、ファイルに保存するダイアログを開きます |

43| `/extra-usage` | レート制限に達したときに作業を続行するための追加使用量を構成 |

44| `/fast [on\|off]` | [高速モード](/ja/fast-mode)のオン/オフを切り替え |

45| `/feedback [report]` | Claude Code に関するフィードバックを送信。エイリアス: `/bug` |

46| `/fewer-permission-prompts` | **[スキル](/ja/skills#bundled-skills)。** トランスクリプトで一般的な読み取り専用 Bash と MCP ツール呼び出しをスキャンし、プロジェクト `.claude/settings.json` に優先度付きの許可リストを追加して権限プロンプトを削減します |

47| `/focus` | フォーカスビューを切り替えます。最後のプロンプト、編集 diffstats を含む 1 行のツール呼び出し要約、および最終応答のみを表示します。選択は複数セッション間で保持されます。[フルスクリーンレンダリング](/ja/fullscreen)でのみ利用可能です |

48| `/heapdump` | JavaScript ヒープスナップショットとメモリ分析を `~/Desktop` に書き込んで、高いメモリ使用量を診断します。Linux で Desktop フォルダがない場合はホームディレクトリに書き込みます。[トラブルシューティング](/ja/troubleshooting#high-cpu-or-memory-usage)を参照してください |

49| `/help` | ヘルプと利用可能なコマンドを表示 |

50| `/hooks` | ツールイベント用の[フック](/ja/hooks)設定を表示 |

51| `/ide` | IDE 統合を管理し、ステータスを表示 |

52| `/init` | `CLAUDE.md` ガイドでプロジェクトを初期化。スキル、フック、個人メモリファイルをウォークスルーするインタラクティブフローについては、`CLAUDE_CODE_NEW_INIT=1` を設定します |

53| `/insights` | Claude Code セッションを分析するレポートを生成。プロジェクト領域、相互作用パターン、および摩擦点を含みます |

54| `/install-github-app` | リポジトリ用の [Claude GitHub Actions](/ja/github-actions) アプリをセットアップ。リポジトリを選択して統合を構成するプロセスをガイドします |

55| `/install-slack-app` | Claude Slack アプリをインストール。OAuth フローを完了するためにブラウザを開きます |

56| `/keybindings` | キーバインディング設定ファイルを開くか作成 |

57| `/login` | Anthropic アカウントにサインイン |

58| `/logout` | Anthropic アカウントからサインアウト |

59| `/loop [interval] [prompt]` | **[スキル](/ja/skills#bundled-skills)。** セッションが開いている間、プロンプトを繰り返し実行します。間隔を省略すると Claude は反復間で自動的にペースを調整します。プロンプトを省略すると Claude は自律的なメンテナンスチェックを実行するか、存在する場合は `.claude/loop.md` のプロンプトを実行します。例: `/loop 5m check if the deploy finished`。[スケジュールに従ってプロンプトを実行](/ja/scheduled-tasks)を参照してください。エイリアス: `/proactive` |

60| `/mcp` | MCP サーバー接続と OAuth 認証を管理 |

61| `/memory` | `CLAUDE.md` メモリファイルを編集し、[自動メモリ](/ja/memory#auto-memory)を有効または無効にし、自動メモリエントリを表示 |

62| `/mobile` | Claude モバイルアプリをダウンロードするための QR コードを表示。エイリアス: `/ios`、`/android` |

63| `/model [model]` | AI モデルを選択または変更。サポートしているモデルの場合、左右矢印を使用して[努力レベルを調整](/ja/model-config#adjust-effort-level)します。引数なしで、会話に前の出力がある場合に確認を求めるピッカーを開きます。次の応答はキャッシュされたコンテキストなしで完全な履歴を再読み込みするためです。確認されると、現在の応答の完了を待たずに変更が適用されます |

64| `/passes` | Claude Code の無料 1 週間を友人と共有。アカウントが対象の場合のみ表示 |

65| `/permissions` | ツール権限のアクセス許可、確認、および拒否ルールを管理。スコープ別にルールを表示し、ルールを追加または削除し、作業ディレクトリを管理し、[最近の自動モード拒否](/ja/auto-mode-config#review-denials)を確認できるインタラクティブダイアログを開きます。エイリアス: `/allowed-tools` |

66| `/plan [description]` | プロンプトから直接 Plan Mode に入ります。オプションの説明を渡して Plan Mode に入り、すぐにそのタスクで開始します。例えば `/plan fix the auth bug` |

67| `/plugin` | Claude Code [プラグイン](/ja/plugins)を管理 |

68| `/powerup` | アニメーション化されたデモを使用したクイックインタラクティブレッスンを通じて Claude Code 機能を発見 |

69| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}v2.1.91 で削除。代わりに Claude に直接プルリクエストコメントを表示するよう依頼してください。以前のバージョンでは、GitHub プルリクエストからコメントを取得して表示します。現在のブランチの PR を自動検出するか、PR URL または番号を渡します。`gh` CLI が必要です |

70| `/privacy-settings` | プライバシー設定を表示および更新。Pro および Max プランサブスクライバーのみ利用可能 |

71| `/recap` | 現在のセッションの 1 行の要約をオンデマンドで生成。[セッション要約](/ja/interactive-mode#session-recap)を参照してください。これは、しばらく離れた後に表示される自動要約です |

72| `/release-notes` | インタラクティブバージョンピッカーでチェンジログを表示。特定のバージョンを選択してそのリリースノートを表示するか、すべてのバージョンを表示することを選択します |

73| `/reload-plugins` | すべてのアクティブな[プラグイン](/ja/plugins)を再読み込みして、再起動せずに保留中の変更を適用。読み込まれた各コンポーネントのカウントを報告し、読み込みエラーをフラグします |

74| `/remote-control` | このセッションを claude.ai から[リモートコントロール](/ja/remote-control)できるようにします。エイリアス: `/rc` |

75| `/remote-env` | [`--remote` で開始されたウェブセッション](/ja/claude-code-on-the-web#configure-your-environment)のデフォルトリモート環境を構成 |

76| `/rename [name]` | 現在のセッションの名前を変更してプロンプトバーに名前を表示。名前を指定しない場合、会話履歴から自動生成 |

77| `/resume [session]` | ID または名前で会話を再開するか、セッションピッカーを開きます。エイリアス: `/continue` |

78| `/review [PR]` | 現在のセッションでプルリクエストをローカルでレビュー。より深いクラウドベースのレビューについては、[`/ultrareview`](/ja/ultrareview)を参照してください |

79| `/rewind` | 会話またはコードを前の時点に巻き戻すか、選択したメッセージから要約します。[チェックポイント](/ja/checkpointing)を参照してください。エイリアス: `/checkpoint`、`/undo` |

80| `/sandbox` | [サンドボックスモード](/ja/sandboxing)を切り替え。サポートされているプラットフォームでのみ利用可能 |

81| `/schedule [description]` | [ルーチン](/ja/routines)を作成、更新、リスト表示、または実行。Claude がセットアップを会話形式でガイドします。エイリアス: `/routines` |

82| `/security-review` | 現在のブランチの保留中の変更をセキュリティ脆弱性について分析。git diff をレビューし、インジェクション、認証の問題、データ露出などのリスクを特定 |

83| `/setup-bedrock` | [Amazon Bedrock](/ja/amazon-bedrock) 認証、リージョン、モデルピンをインタラクティブウィザードで構成。`CLAUDE_CODE_USE_BEDROCK=1` が設定されている場合のみ表示。初回 Bedrock ユーザーはログイン画面からこのウィザードにアクセスすることもできます |

84| `/setup-vertex` | [Google Vertex AI](/ja/google-vertex-ai) 認証、プロジェクト、リージョン、モデルピンをインタラクティブウィザードで構成。`CLAUDE_CODE_USE_VERTEX=1` が設定されている場合のみ表示。初回 Vertex AI ユーザーはログイン画面からこのウィザードにアクセスすることもできます |

85| `/simplify [focus]` | **[スキル](/ja/skills#bundled-skills)。** 最近変更されたファイルをコード再利用、品質、効率の問題についてレビュー。その後修正します。3 つのレビューエージェントを並列で生成し、その結果を集約し、修正を適用します。テキストを渡して特定の懸念事項にフォーカスを当てます: `/simplify focus on memory efficiency` |

86| `/skills` | 利用可能な[スキル](/ja/skills)をリスト表示。`t` を押してトークン数でソート |

87| `/stats` | `/usage` のエイリアス。Stats タブで開きます |

88| `/status` | 設定インターフェース(ステータスタブ)を開いて、バージョン、モデル、アカウント、および接続性を表示。Claude が応答中でも機能し、現在の応答の完了を待ちません |

89| `/statusline` | Claude Code の[ステータスライン](/ja/statusline)を構成。必要な内容を説明するか、引数なしで実行してシェルプロンプトから自動構成 |

90| `/stickers` | Claude Code ステッカーを注文 |

91| `/tasks` | バックグラウンドタスクをリストおよび管理。`/bashes` としても利用可能 |

92| `/team-onboarding` | Claude Code 使用履歴からチームオンボーディングガイドを生成。Claude は過去 30 日間のセッション、コマンド、MCP サーバー使用状況を分析し、チームメイトが最初のメッセージとして貼り付けて素早くセットアップできるマークダウンガイドを作成 |

93| `/teleport` | [Claude Code on the web](/ja/claude-code-on-the-web#from-web-to-terminal) セッションをこのターミナルに引き込みます。ピッカーを開き、ブランチと会話をフェッチします。`/tp` としても利用可能。claude.ai サブスクリプションが必要です |

94| `/terminal-setup` | Shift+Enter およびその他のショートカットのターミナルキーバインディングを構成。VS Code、Cursor、Windsurf、Alacritty、または Zed などの必要なターミナルでのみ表示 |

95| `/theme` | カラーテーマを変更。ターミナルのダークまたはライトモードに従う `auto` オプション、ライトおよびダークバリアント、色覚異常対応(ダルトン化)テーマ、ANSI テーマ(ターミナルのカラーパレットを使用)、および `~/.claude/themes/` またはプラグインからの[カスタムテーマ](/ja/terminal-config#create-a-custom-theme)を含みます。**新しいカスタムテーマ…** を選択して作成 |

96| `/tui [default\|fullscreen]` | ターミナル UI レンダラーを設定し、会話を保持したまま再起動します。`fullscreen` は[ちらつきなしの alt-screen レンダラー](/ja/fullscreen)を有効にします。引数なしで、アクティブなレンダラーを出力 |

97| `/ultraplan <prompt>` | [ultraplan](/ja/ultraplan) セッションで計画を作成し、ブラウザでレビューし、リモートで実行するか、ターミナルに送り返します |

98| `/ultrareview [PR]` | [ultrareview](/ja/ultrareview) を使用してクラウドサンドボックスで深い複数エージェントコードレビューを実行。Pro と Max に 3 つの無料実行が含まれ、2026 年 5 月 5 日まで、その後は [extra usage](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) が必要です |

99| `/upgrade` | アップグレードページを開いて、より高いプランティアに切り替え |

100| `/usage` | セッションコスト、プラン使用制限、およびアクティビティ統計を表示。サブスクリプション固有の詳細については、[コスト追跡ガイド](/ja/costs#using-the-%2Fusage-command)を参照してください。`/cost` と `/stats` はエイリアスです |

101| `/vim` | {/* max-version: 2.1.91 */}v2.1.92 で削除。Vim と通常編集モード間を切り替えるには、`/config` → エディタモードを使用してください |

102| `/voice [hold\|tap\|off]` | [音声ディクテーション](/ja/voice-dictation)を切り替えるか、特定のモードで有効にします。Claude.ai アカウントが必要です |

103| `/web-setup` | ローカル `gh` CLI 認証情報を使用して GitHub アカウントを [Claude Code on the web](/ja/web-quickstart#connect-from-your-terminal) に接続。GitHub が接続されていない場合、`/schedule` は自動的にこれを求めます |

104 

105## MCP プロンプト

106 

107MCP サーバーはコマンドとして表示されるプロンプトを公開できます。これらは `/mcp__<server>__<prompt>` 形式を使用し、接続されたサーバーから動的に検出されます。詳細については、[MCP プロンプト](/ja/mcp#use-mcp-prompts-as-commands)を参照してください。

108 

109## 関連項目

110 

111* [スキル](/ja/skills): 独自のコマンドを作成

112* [インタラクティブモード](/ja/interactive-mode): キーボードショートカット、Vim モード、およびコマンド履歴

113* [CLI リファレンス](/ja/cli-reference): 起動時フラグ

common-workflows.md +1030 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 一般的なワークフロー

6 

7> Claude Code を使用してコードベースの探索、バグ修正、リファクタリング、テスト、その他の日常的なタスクを実行するためのステップバイステップガイド。

8 

9このページでは、日常的な開発のための実践的なワークフローについて説明します。未知のコードの探索、デバッグ、リファクタリング、テストの作成、PR の作成、セッションの管理などです。各セクションには、自分のプロジェクトに適応させることができるプロンプトの例が含まれています。より高度なパターンとヒントについては、[ベストプラクティス](/ja/best-practices)を参照してください。

10 

11## 新しいコードベースを理解する

12 

13### コードベースの概要を素早く把握する

14 

15新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。

16 

17<Steps>

18 <Step title="プロジェクトルートディレクトリに移動する">

19 ```bash theme={null}

20 cd /path/to/project

21 ```

22 </Step>

23 

24 <Step title="Claude Code を起動する">

25 ```bash theme={null}

26 claude

27 ```

28 </Step>

29 

30 <Step title="高レベルの概要をリクエストする">

31 ```text theme={null}

32 give me an overview of this codebase

33 ```

34 </Step>

35 

36 <Step title="特定のコンポーネントについてさらに詳しく調べる">

37 ```text theme={null}

38 explain the main architecture patterns used here

39 ```

40 

41 ```text theme={null}

42 what are the key data models?

43 ```

44 

45 ```text theme={null}

46 how is authentication handled?

47 ```

48 </Step>

49</Steps>

50 

51<Tip>

52 ヒント:

53 

54 * 広い質問から始めて、特定の領域に絞り込んでいく

55 * プロジェクトで使用されているコーディング規約とパターンについて質問する

56 * プロジェクト固有の用語の用語集をリクエストする

57</Tip>

58 

59### 関連するコードを見つける

60 

61特定の機能または機能に関連するコードを見つける必要があるとします。

62 

63<Steps>

64 <Step title="Claude に関連ファイルを見つけるよう依頼する">

65 ```text theme={null}

66 find the files that handle user authentication

67 ```

68 </Step>

69 

70 <Step title="コンポーネントがどのように相互作用するかについてのコンテキストを取得する">

71 ```text theme={null}

72 how do these authentication files work together?

73 ```

74 </Step>

75 

76 <Step title="実行フローを理解する">

77 ```text theme={null}

78 trace the login process from front-end to database

79 ```

80 </Step>

81</Steps>

82 

83<Tip>

84 ヒント:

85 

86 * 探しているものについて具体的に説明する

87 * プロジェクトのドメイン言語を使用する

88 * 言語の[コード インテリジェンス プラグイン](/ja/discover-plugins#code-intelligence)をインストールして、Claude に正確な'定義に移動'と'参照を検索'のナビゲーションを提供する

89</Tip>

90 

91***

92 

93## バグを効率的に修正する

94 

95エラーメッセージが表示され、そのソースを見つけて修正する必要があるとします。

96 

97<Steps>

98 <Step title="Claude とエラーを共有する">

99 ```text theme={null}

100 I'm seeing an error when I run npm test

101 ```

102 </Step>

103 

104 <Step title="修正の推奨事項をリクエストする">

105 ```text theme={null}

106 suggest a few ways to fix the @ts-ignore in user.ts

107 ```

108 </Step>

109 

110 <Step title="修正を適用する">

111 ```text theme={null}

112 update user.ts to add the null check you suggested

113 ```

114 </Step>

115</Steps>

116 

117<Tip>

118 ヒント:

119 

120 * Claude に問題を再現するコマンドとスタックトレースを伝える

121 * エラーを再現するための手順を記載する

122 * エラーが断続的か一貫しているかを Claude に知らせる

123</Tip>

124 

125***

126 

127## コードをリファクタリングする

128 

129古いコードを最新のパターンとプラクティスを使用するように更新する必要があるとします。

130 

131<Steps>

132 <Step title="リファクタリング対象のレガシーコードを特定する">

133 ```text theme={null}

134 find deprecated API usage in our codebase

135 ```

136 </Step>

137 

138 <Step title="リファクタリングの推奨事項を取得する">

139 ```text theme={null}

140 suggest how to refactor utils.js to use modern JavaScript features

141 ```

142 </Step>

143 

144 <Step title="変更を安全に適用する">

145 ```text theme={null}

146 refactor utils.js to use ES2024 features while maintaining the same behavior

147 ```

148 </Step>

149 

150 <Step title="リファクタリングを検証する">

151 ```text theme={null}

152 run tests for the refactored code

153 ```

154 </Step>

155</Steps>

156 

157<Tip>

158 ヒント:

159 

160 * Claude に最新のアプローチの利点を説明するよう依頼する

161 * 必要に応じて変更が後方互換性を維持することをリクエストする

162 * リファクタリングを小さくテスト可能な増分で実行する

163</Tip>

164 

165***

166 

167## 特化した subagent を使用する

168 

169特定のタスクをより効果的に処理するために、特化した AI subagent を使用したいとします。

170 

171<Steps>

172 <Step title="利用可能な subagent を表示する">

173 ```text theme={null}

174 /agents

175 ```

176 

177 これにより、利用可能なすべての subagent が表示され、新しいものを作成できます。

178 </Step>

179 

180 <Step title="subagent を自動的に使用する">

181 Claude Code は自動的に適切なタスクを特化した subagent に委譲します:

182 

183 ```text theme={null}

184 review my recent code changes for security issues

185 ```

186 

187 ```text theme={null}

188 run all tests and fix any failures

189 ```

190 </Step>

191 

192 <Step title="特定の subagent を明示的にリクエストする">

193 ```text theme={null}

194 use the code-reviewer subagent to check the auth module

195 ```

196 

197 ```text theme={null}

198 have the debugger subagent investigate why users can't log in

199 ```

200 </Step>

201 

202 <Step title="ワークフロー用のカスタム subagent を作成する">

203 ```text theme={null}

204 /agents

205 ```

206 

207 次に「Create New subagent」を選択し、プロンプトに従って以下を定義します:

208 

209 * subagent の目的を説明する一意の識別子(例:`code-reviewer`、`api-designer`)。

210 * Claude がこのエージェントを使用する場合

211 * アクセスできるツール

212 * エージェントの役割と動作を説明するシステムプロンプト

213 </Step>

214</Steps>

215 

216<Tip>

217 ヒント:

218 

219 * チーム共有用に `.claude/agents/` にプロジェクト固有の subagent を作成する

220 * 自動委譲を有効にするために説明的な `description` フィールドを使用する

221 * ツールアクセスを各 subagent が実際に必要なものに制限する

222 * 詳細な例については、[subagents ドキュメント](/ja/sub-agents)を確認する

223</Tip>

224 

225***

226 

227## Plan Mode を使用して安全なコード分析を行う

228 

229Plan Mode は Claude に読み取り専用操作でコードベースを分析して計画を作成するよう指示します。これはコードベースの探索、複雑な変更の計画、またはコードの安全なレビューに最適です。Plan Mode では、Claude は [`AskUserQuestion`](/ja/tools-reference)を使用して要件を収集し、計画を提案する前に目標を明確にします。

230 

231### Plan Mode を使用する場合

232 

233* **マルチステップの実装**:機能が多くのファイルへの編集を必要とする場合

234* **コード探索**:何かを変更する前にコードベースを徹底的に調査したい場合

235* **インタラクティブな開発**:Claude との方向性について反復したい場合

236 

237### Plan Mode の使用方法

238 

239**セッション中に Plan Mode をオンにする**

240 

241**Shift+Tab** を使用してセッション中に Plan Mode に切り替えることができます。

242 

243Normal Mode にいる場合、**Shift+Tab** は最初に Auto-Accept Mode に切り替わります。これはターミナルの下部に `⏵⏵ accept edits on` で示されます。その後の **Shift+Tab** は Plan Mode に切り替わります。これは `⏸ plan mode on` で示されます。

244 

245**Plan Mode で新しいセッションを開始する**

246 

247Plan Mode で新しいセッションを開始するには、`--permission-mode plan` フラグを使用します:

248 

249```bash theme={null}

250claude --permission-mode plan

251```

252 

253**Plan Mode で「ヘッドレス」クエリを実行する**

254 

255[「ヘッドレスモード」](/ja/headless)で `-p` を使用して Plan Mode でクエリを直接実行することもできます:

256 

257```bash theme={null}

258claude --permission-mode plan -p "Analyze the authentication system and suggest improvements"

259```

260 

261### 例:複雑なリファクタリングの計画

262 

263```bash theme={null}

264claude --permission-mode plan

265```

266 

267```text theme={null}

268I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.

269```

270 

271Claude は現在の実装を分析し、包括的な計画を作成します。フォローアップで改善します:

272 

273```text theme={null}

274What about backward compatibility?

275```

276 

277```text theme={null}

278How should we handle database migration?

279```

280 

281<Tip>`Ctrl+G` を押してデフォルトのテキストエディタで計画を開き、Claude が進める前に直接編集できます。</Tip>

282 

283計画を受け入れると、Claude は計画コンテンツからセッションに自動的に名前を付けます。名前はプロンプトバーとセッションピッカーに表示されます。既に `--name` または `/rename` で名前を設定している場合、計画を受け入れてもそれは上書きされません。

284 

285### Plan Mode をデフォルトとして設定する

286 

287```json theme={null}

288// .claude/settings.json

289{

290 "permissions": {

291 "defaultMode": "plan"

292 }

293}

294```

295 

296詳細な設定オプションについては、[設定ドキュメント](/ja/settings#available-settings)を参照してください。

297 

298***

299 

300## テストを使用する

301 

302カバーされていないコードのテストを追加する必要があるとします。

303 

304<Steps>

305 <Step title="テストされていないコードを特定する">

306 ```text theme={null}

307 find functions in NotificationsService.swift that are not covered by tests

308 ```

309 </Step>

310 

311 <Step title="テストスキャフォルディングを生成する">

312 ```text theme={null}

313 add tests for the notification service

314 ```

315 </Step>

316 

317 <Step title="意味のあるテストケースを追加する">

318 ```text theme={null}

319 add test cases for edge conditions in the notification service

320 ```

321 </Step>

322 

323 <Step title="テストを実行して検証する">

324 ```text theme={null}

325 run the new tests and fix any failures

326 ```

327 </Step>

328</Steps>

329 

330Claude は、プロジェクトの既存のパターンと規約に従うテストを生成できます。テストをリクエストするときは、検証したい動作について具体的に説明してください。Claude は既存のテストファイルを調べて、既に使用されているスタイル、フレームワーク、アサーションパターンに一致させます。

331 

332包括的なカバレッジのために、Claude に見落とした可能性のあるエッジケースを特定するよう依頼してください。Claude はコードパスを分析し、エラー条件、境界値、見落としやすい予期しない入力のテストを提案できます。

333 

334***

335 

336## プルリクエストを作成する

337 

338Claude に直接プルリクエストを作成するよう依頼するか(「create a pr for my changes」)、ステップバイステップで Claude をガイドできます:

339 

340<Steps>

341 <Step title="変更内容を要約する">

342 ```text theme={null}

343 summarize the changes I've made to the authentication module

344 ```

345 </Step>

346 

347 <Step title="プルリクエストを生成する">

348 ```text theme={null}

349 create a pr

350 ```

351 </Step>

352 

353 <Step title="レビューと改善">

354 ```text theme={null}

355 enhance the PR description with more context about the security improvements

356 ```

357 </Step>

358</Steps>

359 

360`gh pr create` を使用して PR を作成すると、セッションはその PR に自動的にリンクされます。後で `claude --from-pr <number>` で再開できます。

361 

362<Tip>

363 Claude が生成した PR を送信する前にレビューし、Claude に潜在的なリスクや考慮事項を強調するよう依頼してください。

364</Tip>

365 

366## ドキュメントを処理する

367 

368コードのドキュメントを追加または更新する必要があるとします。

369 

370<Steps>

371 <Step title="ドキュメント化されていないコードを特定する">

372 ```text theme={null}

373 find functions without proper JSDoc comments in the auth module

374 ```

375 </Step>

376 

377 <Step title="ドキュメントを生成する">

378 ```text theme={null}

379 add JSDoc comments to the undocumented functions in auth.js

380 ```

381 </Step>

382 

383 <Step title="レビューと改善">

384 ```text theme={null}

385 improve the generated documentation with more context and examples

386 ```

387 </Step>

388 

389 <Step title="ドキュメントを検証する">

390 ```text theme={null}

391 check if the documentation follows our project standards

392 ```

393 </Step>

394</Steps>

395 

396<Tip>

397 ヒント:

398 

399 * 必要なドキュメントスタイル(JSDoc、docstring など)を指定する

400 * ドキュメント内の例をリクエストする

401 * パブリック API、インターフェース、複雑なロジックのドキュメントをリクエストする

402</Tip>

403 

404***

405 

406## ノートと非コードフォルダで作業する

407 

408Claude Code はどのディレクトリでも機能します。ノートボルト、ドキュメントフォルダ、またはマークダウンファイルの任意のコレクション内で実行して、コードと同じ方法でコンテンツを検索、編集、再編成します。

409 

410`.claude/` ディレクトリと `CLAUDE.md` は他のツールの設定ディレクトリと並んで競合なく存在します。Claude は各ツール呼び出しで新しくファイルを読み込むため、別のアプリケーションで行った編集は次回そのファイルを読み込むときに表示されます。

411 

412***

413 

414## 画像を使用する

415 

416コードベース内の画像を使用する必要があり、Claude の画像コンテンツ分析を支援したいとします。

417 

418<Steps>

419 <Step title="会話に画像を追加する">

420 次のいずれかの方法を使用できます:

421 

422 1. Claude Code ウィンドウに画像をドラッグアンドドロップする

423 2. 画像をコピーして、CLI に ctrl+v で貼り付ける(cmd+v は使用しないでください)

424 3. Claude に画像パスを提供する。例:「Analyze this image: /path/to/your/image.png」

425 </Step>

426 

427 <Step title="Claude に画像を分析するよう依頼する">

428 ```text theme={null}

429 What does this image show?

430 ```

431 

432 ```text theme={null}

433 Describe the UI elements in this screenshot

434 ```

435 

436 ```text theme={null}

437 Are there any problematic elements in this diagram?

438 ```

439 </Step>

440 

441 <Step title="コンテキストに画像を使用する">

442 ```text theme={null}

443 Here's a screenshot of the error. What's causing it?

444 ```

445 

446 ```text theme={null}

447 This is our current database schema. How should we modify it for the new feature?

448 ```

449 </Step>

450 

451 <Step title="ビジュアルコンテンツからコード提案を取得する">

452 ```text theme={null}

453 Generate CSS to match this design mockup

454 ```

455 

456 ```text theme={null}

457 What HTML structure would recreate this component?

458 ```

459 </Step>

460</Steps>

461 

462<Tip>

463 ヒント:

464 

465 * テキスト説明が不明確または面倒な場合は画像を使用する

466 * より良いコンテキストのために、エラー、UI デザイン、図のスクリーンショットを含める

467 * 会話で複数の画像を使用できます

468 * 画像分析は図、スクリーンショット、モックアップなどで機能します

469 * Claude が画像を参照する場合(例:`[Image #1]`)、`Cmd+Click`(Mac)または `Ctrl+Click`(Windows/Linux)リンクをクリックして、デフォルトビューアで画像を開きます

470</Tip>

471 

472***

473 

474## ファイルとディレクトリを参照する

475 

476@ を使用して、Claude に読み込まれるのを待たずにファイルまたはディレクトリをすばやく含めます。

477 

478<Steps>

479 <Step title="単一ファイルを参照する">

480 ```text theme={null}

481 Explain the logic in @src/utils/auth.js

482 ```

483 

484 これにより、ファイルの完全な内容が会話に含まれます。

485 </Step>

486 

487 <Step title="ディレクトリを参照する">

488 ```text theme={null}

489 What's the structure of @src/components?

490 ```

491 

492 これにより、ファイル情報を含むディレクトリリストが提供されます。

493 </Step>

494 

495 <Step title="MCP リソースを参照する">

496 ```text theme={null}

497 Show me the data from @github:repos/owner/repo/issues

498 ```

499 

500 これにより、@server:resource 形式を使用して接続された MCP サーバーからデータを取得します。詳細については、[MCP リソース](/ja/mcp#use-mcp-resources)を参照してください。

501 </Step>

502</Steps>

503 

504<Tip>

505 ヒント:

506 

507 * ファイルパスは相対パスまたは絶対パスにできます

508 * @ ファイル参照は、ファイルのディレクトリと親ディレクトリに `CLAUDE.md` を追加してコンテキストに含めます

509 * ディレクトリ参照はコンテンツではなくファイルリストを表示します

510 * 単一のメッセージで複数のファイルを参照できます(例:「@file1.js and @file2.js」)

511</Tip>

512 

513***

514 

515## 拡張思考(思考モード)を使用する

516 

517[拡張思考](https://platform.claude.com/docs/ja/build-with-claude/extended-thinking)はデフォルトで有効になっており、Claude が複雑な問題をステップバイステップで推論するためのスペースを提供します。この推論は詳細モードで表示され、`Ctrl+O` でオンに切り替えることができます。拡張思考中、スピナーは「still thinking」や「almost done thinking」などのインラインの進捗ヒントを表示し、Claude が積極的に作業していることを示します。

518 

519さらに、[努力レベルをサポートするモデル](/ja/model-config#adjust-effort-level)は適応的推論を使用します。固定された思考トークン予算の代わりに、モデルは努力レベル設定とタスクに基づいて動的に思考を決定します。適応的推論により、Claude は日常的なプロンプトにより速く応答し、それから恩恵を受けるステップのためにより深い思考を予約できます。

520 

521拡張思考は、複雑なアーキテクチャの決定、難しいバグ、マルチステップの実装計画、異なるアプローチ間のトレードオフの評価に特に価値があります。

522 

523<Note>

524 「think」、「think hard」、「think more」などのフレーズは通常のプロンプト指示として解釈され、思考トークンを割り当てません。

525</Note>

526 

527### 思考モードを設定する

528 

529思考はデフォルトで有効になっていますが、調整または無効にできます。

530 

531| スコープ | 設定方法 | 詳細 |

532| ---------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |

533| **努力レベル** | `/effort` を実行するか、`/model` で調整するか、[`CLAUDE_CODE_EFFORT_LEVEL`](/ja/env-vars)を設定する | [サポートされているモデル](/ja/model-config#adjust-effort-level)での思考の深さを制御する |

534| **`ultrathink` キーワード** | プロンプトの任意の場所に「ultrathink」を含める | そのターンでモデルがより多く推論するよう指示するコンテキスト内指示を追加します。努力レベル自体は変更しません。[努力レベルを調整](/ja/model-config#adjust-effort-level)を参照してください |

535| **トグルショートカット** | `Option+T`(macOS)または `Alt+T`(Windows/Linux)を押す | 現在のセッションの思考をオン/オフに切り替えます(すべてのモデル)。[ターミナル設定](/ja/terminal-config)を有効にして Option キーショートカットを有効にする必要がある場合があります |

536| **グローバルデフォルト** | `/config` を使用して思考モードをトグルする | すべてのプロジェクト全体でデフォルトを設定します(すべてのモデル)。<br />`~/.claude/settings.json` に `alwaysThinkingEnabled` として保存されます |

537| **トークン予算を制限する** | [`MAX_THINKING_TOKENS`](/ja/env-vars)環境変数を設定する | 思考予算を特定のトークン数に制限します。適応的推論を備えたモデルでは、適応的推論が無効になっていない限り `0` に設定されている場合のみ適用されます。例:`export MAX_THINKING_TOKENS=10000` |

538 

539Claude の思考プロセスを表示するには、`Ctrl+O` を押して詳細モードをトグルし、グレーのイタリック体で表示される内部推論を確認します。

540 

541### 拡張思考の仕組み

542 

543拡張思考は、Claude が応答する前に実行する内部推論の量を制御します。より多くの思考により、ソリューションを探索し、エッジケースを分析し、間違いを自己修正するためのより多くのスペースが提供されます。

544 

545[努力レベルをサポートするモデル](/ja/model-config#adjust-effort-level)では、思考は適応的推論を使用します。モデルは、選択した努力レベルに基づいて思考トークンを動的に割り当てます。これは速度と推論の深さのトレードオフを調整するための推奨される方法です。努力レベル自体を変更せずに、Claude がそのターンでより多くまたはより少なく思考することを望む場合は、プロンプトで直接そう言うか、`CLAUDE.md` で言うこともできます。

546 

547古いモデルでは、思考は出力予算から最大 31,999 トークンの固定予算を使用します。[`MAX_THINKING_TOKENS`](/ja/env-vars)環境変数でこれを制限するか、`/config` または `Option+T`/`Alt+T` トグルで思考を完全に無効にできます。

548 

549適応的推論を備えたモデルでは、`MAX_THINKING_TOKENS` は `0` に設定されている場合のみ適用されます。または `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` は、これらのモデルを固定予算に戻します。`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` は Opus 4.6 と Sonnet 4.6 にのみ適用されます。Opus 4.7 は常に適応的推論を使用し、固定思考予算をサポートしていません。[環境変数](/ja/env-vars)を参照してください。

550 

551<Warning>

552 思考の要約が編集されている場合でも、使用されたすべての思考トークンに対して課金されます。インタラクティブモードでは、思考はデフォルトで折りたたまれたスタブとして表示されます。`settings.json` で `showThinkingSummaries: true` を設定して、完全な要約を表示します。

553</Warning>

554 

555***

556 

557## 以前の会話を再開する

558 

559Claude Code を開始するときは、以前のセッションを再開できます:

560 

561* `claude --continue` は現在のディレクトリで最新の会話を続行します

562* `claude --resume` は会話ピッカーを開くか、名前で再開します

563* `claude --from-pr 123` は特定のプルリクエストにリンクされたセッションを再開します

564 

565アクティブなセッション内から、`/resume` を使用して別の会話に切り替えます。

566 

567選択したセッションが古く、それを再度読み込むことが使用制限の実質的な部分を消費するほど大きい場合、`--resume`、`--continue`、および `/resume` は完全なトランスクリプトを読み込む代わりに、サマリーから再開することを提案します。このプロンプトは Amazon Bedrock、Google Cloud Vertex AI、または Microsoft Foundry では利用できません。

568 

569セッションはプロジェクトディレクトリごとに保存されます。デフォルトでは、`/resume` ピッカーは現在の worktree からのインタラクティブセッションを表示し、リストを他の worktree またはプロジェクトに広げるためのキーボードショートカット、検索、プレビュー、名前変更があります。[以下のセッションピッカーを使用](#use-the-session-picker)を参照してください。

570 

571別の worktree の同じリポジトリからセッションを選択すると、Claude Code はディレクトリを切り替える必要なく直接再開します。関連のないプロジェクトからセッションを選択すると、`cd` と再開コマンドをクリップボードにコピーします。

572 

573名前で再開すると、現在のリポジトリとその worktree 全体で解決されます。`claude --resume <name>` と `/resume <name>` の両方が完全一致を探し、セッションが別の worktree に存在する場合でも直接再開します。

574 

575名前があいまいな場合、`claude --resume <name>` はピッカーを開き、名前を検索用語として事前入力します。`/resume <name>` をセッション内から実行すると、代わりにエラーが報告されるため、`/resume` を引数なしで実行してピッカーを開き、選択します。

576 

577`claude -p` または SDK 呼び出しで作成されたセッションはピッカーに表示されませんが、セッション ID をそのまま `claude --resume <session-id>` に渡すことで再開できます。

578 

579### セッションに名前を付ける

580 

581セッションに説明的な名前を付けて、後で見つけやすくします。これは複数のタスクまたは機能に取り組むときのベストプラクティスです。

582 

583<Steps>

584 <Step title="セッションに名前を付ける">

585 起動時に `-n` でセッションに名前を付けます:

586 

587 ```bash theme={null}

588 claude -n auth-refactor

589 ```

590 

591 またはセッション中に `/rename` を使用します。これはプロンプトバーに名前も表示します:

592 

593 ```text theme={null}

594 /rename auth-refactor

595 ```

596 

597 ピッカーから任意のセッションの名前を変更することもできます。`/resume` を実行し、セッションに移動して、`Ctrl+R` を押します。

598 </Step>

599 

600 <Step title="後で名前で再開する">

601 コマンドラインから:

602 

603 ```bash theme={null}

604 claude --resume auth-refactor

605 ```

606 

607 またはアクティブなセッション内から:

608 

609 ```text theme={null}

610 /resume auth-refactor

611 ```

612 </Step>

613</Steps>

614 

615### セッションピッカーを使用する

616 

617`/resume` コマンド(または引数なしの `claude --resume`)は、次の機能を備えたインタラクティブセッションピッカーを開きます:

618 

619**ピッカーのキーボードショートカット:**

620 

621| ショートカット | アクション |

622| :--------------------------- | :------------------------------------------------------------------------------------------ |

623| `↑` / `↓` | セッション間を移動する |

624| `→` / `←` | グループ化されたセッションを展開または折りたたむ |

625| `Enter` | ハイライトされたセッションを選択して再開する |

626| `Space` | セッションコンテンツをプレビューする。`Ctrl+V` も、ターミナルがペーストとしてキャプチャしないターミナルで機能します |

627| `Ctrl+R` | ハイライトされたセッションの名前を変更する |

628| `/` または `Space` 以外の任意の印字可能文字 | 検索モードに入り、セッションをフィルタリングする |

629| `Ctrl+A` | このマシン上のすべてのプロジェクトからセッションを表示します。もう一度押すと現在のリポジトリを復元します |

630| `Ctrl+W` | 現在のリポジトリのすべての worktree からセッションを表示します。もう一度押すと現在の worktree を復元します。マルチ worktree リポジトリでのみ表示されます |

631| `Ctrl+B` | 現在の git ブランチからのセッションにフィルタリングします。もう一度押すとすべてのブランチからのセッションを表示します |

632| `Esc` | ピッカーまたは検索モードを終了する |

633 

634**セッション組織:**

635 

636ピッカーは有用なメタデータを含むセッションを表示します:

637 

638* セッション名(設定されている場合)、そうでない場合は会話の要約または最初のユーザープロンプト

639* 最後のアクティビティからの経過時間

640* メッセージ数

641* Git ブランチ(該当する場合)

642* `Ctrl+A` ですべてのプロジェクトに広げた後に表示されるプロジェクトパス

643 

644フォークされたセッション(`/branch`、`/rewind`、または `--fork-session` で作成)はルートセッションの下にグループ化され、関連する会話を見つけやすくなります。

645 

646<Tip>

647 ヒント:

648 

649 * **セッションを早期に名前付ける**:異なるタスクで作業を開始するときに `/rename` を使用します。後で「payment-integration」を見つける方が「explain this function」よりもはるかに簡単です

650 * 現在のディレクトリで最新の会話にすばやくアクセスするには `--continue` を使用します

651 * 必要なセッションがわかっている場合は `--resume session-name` を使用します

652 * 参照して選択する必要がある場合は `--resume`(名前なし)を使用します

653 * スクリプトの場合は、`claude --continue --print "prompt"` を使用して非対話モードで再開します

654 * ピッカーで `Space` を押して、セッションを再開する前にプレビューします

655 * 再開された会話は、元のセッションと同じモデルと設定で開始されます

656 

657 仕組み:

658 

659 1. **会話ストレージ**:すべての会話は完全なメッセージ履歴とともにローカルに自動保存されます

660 2. **メッセージ逆シリアル化**:再開時に、コンテキストを維持するために全メッセージ履歴が復元されます

661 3. **ツール状態**:前の会話からのツール使用と結果が保持されます

662 4. **コンテキスト復元**:会話は前のすべてのコンテキストを保持して再開されます

663</Tip>

664 

665***

666 

667## Git worktree を使用して並列 Claude Code セッションを実行する

668 

669複数のタスクに同時に取り組む場合、各 Claude セッションがコードベースの独自のコピーを持つ必要があります。そうしないと変更が衝突します。Git worktree は、同じリポジトリ履歴とリモート接続を共有しながら、独自のファイルとブランチを持つ個別の作業ディレクトリを作成することで、この問題を解決します。つまり、Claude が 1 つの worktree で機能に取り組んでいる間に、別の worktree でバグを修正でき、どちらのセッションも相互に干渉しません。

670 

671`--worktree`(`-w`)フラグを使用して、分離された worktree を作成し、Claude をその中で開始します。渡す値は worktree ディレクトリ名とブランチ名になります:

672 

673```bash theme={null}

674# "feature-auth" という名前の worktree で Claude を開始する

675# 新しいブランチで .claude/worktrees/feature-auth/ を作成する

676claude --worktree feature-auth

677 

678# 別の worktree で別のセッションを開始する

679claude --worktree bugfix-123

680```

681 

682名前を省略すると、Claude は自動的にランダムな名前を生成します:

683 

684```bash theme={null}

685# "bright-running-fox" のような名前を自動生成する

686claude --worktree

687```

688 

689Worktree は `<repo>/.claude/worktrees/<name>` に作成され、デフォルトのリモートブランチから分岐します。これは `origin/HEAD` が指すところです。worktree ブランチは `worktree-<name>` という名前が付けられます。

690 

691ベースブランチは Claude Code フラグまたは設定を通じて設定できません。`origin/HEAD` はクローン時に Git が設定したローカル `.git` ディレクトリに保存される参照です。リポジトリのデフォルトブランチが後で GitHub または GitLab で変更された場合、ローカル `origin/HEAD` は古いものを指し続け、worktree はそこから分岐します。ローカル参照をリモートが現在デフォルトと見なしているものと再同期するには:

692 

693```bash theme={null}

694git remote set-head origin -a

695```

696 

697これは、ローカル `.git` ディレクトリのみを更新する標準 Git コマンドです。リモートサーバーでは何も変わりません。worktree が特定のブランチではなくリモートのデフォルトに基づくようにしたい場合は、`git remote set-head origin your-branch-name` で明示的に設定します。

698 

699worktree の作成方法を完全に制御するには、[WorktreeCreate フック](/ja/hooks#worktreecreate)を設定します。フックは Claude Code のデフォルト `git worktree` ロジックを完全に置き換えるため、必要な ref から取得してブランチできます。

700 

701セッション中に Claude に「work in a worktree」または「start a worktree」を依頼することもでき、自動的に作成されます。

702 

703### Subagent worktree

704 

705Subagent は worktree 分離を使用して、競合なしに並列で作業することもできます。Claude に「use worktrees for your agents」を依頼するか、[カスタム subagent](/ja/sub-agents#supported-frontmatter-fields)で `isolation: worktree` をエージェントのフロントマターに追加して設定します。各 subagent は独自の worktree を取得し、変更なしで subagent が終了すると自動的にクリーンアップされます。

706 

707### Worktree クリーンアップ

708 

709worktree セッションを終了すると、Claude は変更があったかどうかに基づいてクリーンアップを処理します:

710 

711* **変更なし**:worktree とそのブランチは自動的に削除されます

712* **変更またはコミットが存在する**:Claude は worktree を保持するか削除するかをプロンプトします。保持するとディレクトリとブランチが保存され、後で戻ることができます。削除すると worktree ディレクトリとそのブランチが削除され、すべてのコミットされていない変更とコミットが破棄されます

713 

714Subagent worktree は、subagent が変更なしで終了すると自動的にクリーンアップされます。クラッシュまたは中断された並列実行によって孤立した subagent worktree は、[`cleanupPeriodDays`](/ja/settings#available-settings)設定より古い場合、コミットされていない変更、追跡されていないファイル、プッシュされていないコミットがない場合、起動時に自動的に削除されます。`--worktree` で作成した worktree は、このスイープによって削除されることはありません。

715 

716Claude セッション外で worktree をクリーンアップするには、[worktree を手動で管理](#manage-worktrees-manually)を使用します。

717 

718<Tip>

719 `.claude/worktrees/` を `.gitignore` に追加して、worktree コンテンツがメインリポジトリに追跡されていないファイルとして表示されるのを防ぎます。

720</Tip>

721 

722### Worktree に gitignored ファイルをコピーする

723 

724Git worktree は新しいチェックアウトなので、メインリポジトリから `.env` や `.env.local` などの追跡されていないファイルは含まれません。Claude が worktree を作成するときにこれらのファイルを自動的にコピーするには、プロジェクトルートに `.worktreeinclude` ファイルを追加します。

725 

726ファイルは `.gitignore` 構文を使用して、コピーするファイルをリストします。パターンに一致し、gitignored されているファイルのみがコピーされるため、追跡されたファイルは決して複製されません。

727 

728```text .worktreeinclude theme={null}

729.env

730.env.local

731config/secrets.json

732```

733 

734これは `--worktree`、subagent worktree、および[デスクトップアプリ](/ja/desktop#work-in-parallel-with-sessions)の並列セッションで作成された worktree に適用されます。

735 

736### Worktree を手動で管理する

737 

738worktree の場所とブランチ設定をより細かく制御するには、Git を使用して worktree を直接作成します。これは特定の既存ブランチをチェックアウトするか、worktree をリポジトリの外に配置する必要がある場合に便利です。

739 

740```bash theme={null}

741# 新しいブランチで worktree を作成する

742git worktree add ../project-feature-a -b feature-a

743 

744# 既存のブランチで worktree を作成する

745git worktree add ../project-bugfix bugfix-123

746 

747# worktree で Claude を開始する

748cd ../project-feature-a && claude

749 

750# 完了したらクリーンアップする

751git worktree list

752git worktree remove ../project-feature-a

753```

754 

755詳細については、[公式 Git worktree ドキュメント](https://git-scm.com/docs/git-worktree)を参照してください。

756 

757<Tip>

758 プロジェクトのセットアップに従って、各新しい worktree で開発環境を初期化することを忘れないでください。スタックに応じて、これには依存関係のインストール(`npm install`、`yarn`)、仮想環境のセットアップ、またはプロジェクトの標準セットアップ手順に従うことが含まれる場合があります。

759</Tip>

760 

761### Git 以外のバージョン管理

762 

763Worktree 分離はデフォルトで git で機能します。SVN、Perforce、Mercurial などの他のバージョン管理システムの場合は、[WorktreeCreate と WorktreeRemove フック](/ja/hooks#worktreecreate)を設定して、カスタム worktree 作成とクリーンアップロジックを提供します。設定されている場合、これらのフックは `--worktree` を使用するときにデフォルトの git 動作を置き換えます。そのため、[`.worktreeinclude`](#copy-gitignored-files-to-worktrees)は処理されません。フックスクリプト内でローカル設定ファイルをコピーしてください。

764 

765共有タスクとメッセージングを使用した並列セッションの自動調整については、[エージェントチーム](/ja/agent-teams)を参照してください。

766 

767***

768 

769## Claude が注意を必要とするときに通知を受け取る

770 

771長時間実行されるタスクを開始して別のウィンドウに切り替えるときは、Claude が終了したときまたは入力が必要なときに知ることができるようにデスクトップ通知を設定できます。これは `Notification` [フックイベント](/ja/hooks-guide#get-notified-when-claude-needs-input)を使用します。これは Claude が許可を待っている、アイドル状態で新しいプロンプトの準備ができている、または認証を完了しているときはいつでも発火します。

772 

773<Steps>

774 <Step title="設定にフックを追加する">

775 `~/.claude/settings.json` を開き、プラットフォームのネイティブ通知コマンドを呼び出す `Notification` フックを追加します:

776 

777 <Tabs>

778 <Tab title="macOS">

779 ```json theme={null}

780 {

781 "hooks": {

782 "Notification": [

783 {

784 "matcher": "",

785 "hooks": [

786 {

787 "type": "command",

788 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"

789 }

790 ]

791 }

792 ]

793 }

794 }

795 ```

796 </Tab>

797 

798 <Tab title="Linux">

799 ```json theme={null}

800 {

801 "hooks": {

802 "Notification": [

803 {

804 "matcher": "",

805 "hooks": [

806 {

807 "type": "command",

808 "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"

809 }

810 ]

811 }

812 ]

813 }

814 }

815 ```

816 </Tab>

817 

818 <Tab title="Windows">

819 ```json theme={null}

820 {

821 "hooks": {

822 "Notification": [

823 {

824 "matcher": "",

825 "hooks": [

826 {

827 "type": "command",

828 "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""

829 }

830 ]

831 }

832 ]

833 }

834 }

835 ```

836 </Tab>

837 </Tabs>

838 

839 設定ファイルに既に `hooks` キーがある場合は、上書きするのではなく `Notification` エントリをマージします。CLI で説明したいことを説明することで、Claude にフックを書くよう依頼することもできます。

840 </Step>

841 

842 <Step title="オプションでマッチャーを絞り込む">

843 デフォルトでは、フックはすべての通知タイプで発火します。特定のイベントのみで発火させるには、`matcher` フィールドを次のいずれかの値に設定します:

844 

845 | マッチャー | 発火する場合 |

846 | :--------------------- | :-------------------------- |

847 | `permission_prompt` | Claude がツール使用を承認する必要がある場合 |

848 | `idle_prompt` | Claude が完了し、次のプロンプトを待っている場合 |

849 | `auth_success` | 認証が完了する場合 |

850 | `elicitation_dialog` | MCP サーバーが誘導フォームを開く場合 |

851 | `elicitation_complete` | MCP 誘導フォームが送信またはキャンセルされる場合 |

852 | `elicitation_response` | MCP 誘導応答がサーバーに送り返される場合 |

853 </Step>

854 

855 <Step title="フックを検証する">

856 `/hooks` と入力し、`Notification` を選択して、フックが表示されることを確認します。選択すると、実行されるコマンドが表示されます。エンドツーエンドでテストするには、Claude に許可が必要なコマンドを実行するよう依頼してターミナルから離れるか、Claude に通知を直接トリガーするよう依頼します。

857 </Step>

858</Steps>

859 

860完全なイベントスキーマと通知タイプについては、[通知リファレンス](/ja/hooks#notification)を参照してください。

861 

862***

863 

864## Claude を unix スタイルのユーティリティとして使用する

865 

866### 検証プロセスに Claude を追加する

867 

868Claude Code をリンターまたはコードレビューアーとして使用したいとします。

869 

870**ビルドスクリプトに Claude を追加する:**

871 

872```json theme={null}

873// package.json

874{

875 ...

876 "scripts": {

877 ...

878 "lint:claude": "claude -p 'you are a linter. please look at the changes vs. main and report any issues related to typos. report the filename and line number on one line, and a description of the issue on the second line. do not return any other text.'"

879 }

880}

881```

882 

883<Tip>

884 ヒント:

885 

886 * CI/CD パイプラインで自動コードレビューに Claude を使用する

887 * プロンプトをカスタマイズして、プロジェクトに関連する特定の問題をチェックする

888 * 異なるタイプの検証用に複数のスクリプトを作成することを検討する

889</Tip>

890 

891### パイプイン、パイプアウト

892 

893Claude にデータをパイプインし、構造化された形式でデータを取得したいとします。

894 

895**Claude を通じてデータをパイプする:**

896 

897```bash theme={null}

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

899```

900 

901<Tip>

902 ヒント:

903 

904 * パイプを使用して Claude を既存のシェルスクリプトに統合する

905 * 他の Unix ツールと組み合わせて強力なワークフローを作成する

906 * 構造化出力に `--output-format` を使用することを検討する

907</Tip>

908 

909### 出力形式を制御する

910 

911特に Claude Code をスクリプトまたは他のツールに統合する場合、Claude の出力が特定の形式である必要があるとします。

912 

913<Steps>

914 <Step title="テキスト形式を使用する(デフォルト)">

915 ```bash theme={null}

916 cat data.txt | claude -p 'summarize this data' --output-format text > summary.txt

917 ```

918 

919 これは Claude のプレーンテキスト応答のみを出力します(デフォルトの動作)。

920 </Step>

921 

922 <Step title="JSON 形式を使用する">

923 ```bash theme={null}

924 cat code.py | claude -p 'analyze this code for bugs' --output-format json > analysis.json

925 ```

926 

927 これは、コストと期間を含むメタデータを含むメッセージの JSON 配列を出力します。

928 </Step>

929 

930 <Step title="ストリーミング JSON 形式を使用する">

931 ```bash theme={null}

932 cat log.txt | claude -p 'parse this log file for errors' --output-format stream-json

933 ```

934 

935 これは、Claude がリクエストを処理するときにリアルタイムで一連の JSON オブジェクトを出力します。各メッセージは有効な JSON オブジェクトですが、連結された場合、全体の出力は有効な JSON ではありません。

936 </Step>

937</Steps>

938 

939<Tip>

940 ヒント:

941 

942 * Claude の応答だけが必要な単純な統合には `--output-format text` を使用する

943 * 完全な会話ログが必要な場合は `--output-format json` を使用する

944 * 各会話ターンのリアルタイム出力には `--output-format stream-json` を使用する

945</Tip>

946 

947***

948 

949## Claude をスケジュールで実行する

950 

951Claude に長時間実行されるタスクを自動的に定期的に処理させたいとします。例えば、毎朝オープン PR をレビューしたり、毎週依存関係を監査したり、夜間に CI の失敗をチェックしたりします。

952 

953実行場所に基づいてスケジューリングオプションを選択します:

954 

955| オプション | 実行場所 | 最適な用途 |

956| :----------------------------------------------- | :--------------------- | :------------------------------------------------------------------------------------------- |

957| [ルーチン](/ja/routines) | Anthropic 管理インフラストラクチャ | コンピュータがオフの場合でも実行する必要があるタスク。[claude.ai/code/routines](https://claude.ai/code/routines)で設定します。 |

958| [デスクトップスケジュール済みタスク](/ja/desktop-scheduled-tasks) | デスクトップアプリ経由のマシン | ローカルファイル、ツール、またはコミットされていない変更への直接アクセスが必要なタスク。 |

959| [GitHub Actions](/ja/github-actions) | CI パイプライン | オープン PR などのリポジトリイベント、またはワークフロー設定と一緒に存在する必要がある cron スケジュールに関連するタスク。 |

960| [`/loop`](/ja/scheduled-tasks) | 現在の CLI セッション | セッションが開いている間のクイックポーリング。タスクは新しい会話を開始すると停止します。`--resume` と `--continue` は期限切れでないものを復元します。 |

961 

962<Tip>

963 スケジュール済みタスク用のプロンプトを作成するときは、成功がどのように見えるか、および結果をどうするかについて明示的に説明してください。タスクは自律的に実行されるため、質問を明確にすることはできません。例えば:'`needs-review` ラベルが付いたオープン PR をレビューし、問題に関するインラインコメントを残し、`#eng-reviews` Slack チャネルに要約を投稿します。'

964</Tip>

965 

966***

967 

968## Claude にその機能について質問する

969 

970Claude は自分のドキュメントへの組み込みアクセスを持っており、自分の機能と制限について質問に答えることができます。

971 

972### 質問例

973 

974```text theme={null}

975can Claude Code create pull requests?

976```

977 

978```text theme={null}

979how does Claude Code handle permissions?

980```

981 

982```text theme={null}

983what skills are available?

984```

985 

986```text theme={null}

987how do I use MCP with Claude Code?

988```

989 

990```text theme={null}

991how do I configure Claude Code for Amazon Bedrock?

992```

993 

994```text theme={null}

995what are the limitations of Claude Code?

996```

997 

998<Note>

999 Claude はこれらの質問に対してドキュメントベースの回答を提供します。実行可能な例と実践的なデモンストレーションについては、`/powerup` を実行してアニメーション化されたデモを含むインタラクティブレッスンを受けるか、上記の特定のワークフローセクションを参照してください。

1000</Note>

1001 

1002<Tip>

1003 ヒント:

1004 

1005 * Claude は使用しているバージョンに関係なく、常に最新の Claude Code ドキュメントにアクセスできます

1006 * 詳細な回答を得るために具体的な質問をする

1007 * Claude は MCP 統合、エンタープライズ設定、高度なワークフローなどの複雑な機能を説明できます

1008</Tip>

1009 

1010***

1011 

1012## 次のステップ

1013 

1014<CardGroup cols={2}>

1015 <Card title="ベストプラクティス" icon="lightbulb" href="/ja/best-practices">

1016 Claude Code から最大限の価値を得るためのパターン

1017 </Card>

1018 

1019 <Card title="Claude Code の仕組み" icon="gear" href="/ja/how-claude-code-works">

1020 agentic ループとコンテキスト管理を理解する

1021 </Card>

1022 

1023 <Card title="Claude Code を拡張する" icon="puzzle-piece" href="/ja/features-overview">

1024 skill、フック、MCP、subagent、プラグインを追加する

1025 </Card>

1026 

1027 <Card title="リファレンス実装" icon="code" href="https://github.com/anthropics/claude-code/tree/main/.devcontainer">

1028 開発コンテナリファレンス実装をクローンする

1029 </Card>

1030</CardGroup>

communications-kit.md +535 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# コミュニケーションキット

6 

7> Claude Code をエンジニアリング組織全体にロールアウトするための、ローンチアナウンスメント、ドリップキャンペーンメッセージ、FAQ 回答。

8 

9このページは、Claude Code をチームにロールアウトする管理者とエンジニアリングリーダー向けです。すぐに送信できるローンチアナウンスメント、ティップス・アンド・トリックスのドリップキャンペーン、最も頻繁に聞かれる質問への 1 行の FAQ 回答を提供します。

10 

11<Note>

12 ここのすべてを下書きコピーとして扱い、完成したコピーではありません。各メッセージを組織の声で書き直し、例のタスクを自分のコードベースの実際のバグとモジュールに置き換え、送信前に `[括弧内のプレースホルダー]` を置き換えてください。採用を促進するアナウンスメントは、あなたの会社の誰かが書いたように読めるものです。

13</Note>

14 

15## ローンチコミュニケーション

16 

172 つの形式での 1 つのアナウンスメント、および 2 つのオプションバリアント。ロールアウトに合ったものを選択し、そこから書き直してください。

18 

19### 送信前に

20 

21アナウンスメントを送信する前に、このチェックリストを確認してください。各項目は、ローンチ当日のサポートスレッドになる可能性のあるギャップを解決します。

22 

23| 項目 | 重要な理由 |

24| ---------------------------------------------------------- | ----------------------------------------------------------- |

25| `#claude-code` チャネルが作成され、メッセージにリンクされている | 質問が 1 つの場所に集約される |

26| インストールコマンドが環境内の少なくとも 1 台のマシンでテストされている | プロキシまたはファイアウォールの問題を全員が一度に遭遇する前に検出できる |

27| セキュリティとデータ処理のリンクが準備されている([データ使用](/ja/data-usage) または内部相当物) | 「私のコードはどこに行くのか?」が最初の返信になる |

28| 1 つの具体的な最初のタスクが選択されている、コードベースの実際のバグまたはファイル | 一般的な例は変換されない。「`auth_test.go` の不安定なテストを修正する」は変換される |

29| 最初の 48 時間のチャネルの指定された所有者 | 回答されないローンチ当日の質問は勢いを殺す |

30| C スイートのスポンサーがアナウンスメントを送信または共同署名するよう準備されている | エグゼクティブが送信したローンチは、管理者またはツーリングチームから送信されたものより、一貫して最初の週の採用率が高い |

31 

32### アナウンスメント

33 

34これを標準的な組織全体のロールアウトメッセージとして使用してください。Claude Code が何であるかをカバーし、2 分のインストールパスを提供し、読者に 1 つの具体的なタスクを試すよう促し、「私のコードはどこに行くのか?」に誰かが尋ねる前に答えます。

35 

36<Tabs>

37 <Tab title="メール">

38 ```text theme={null}

39 件名:Claude Code は [エンジニアリング / あなたのチーム] で利用可能です

40 

41 チームへ、

42 

43 本日より、Claude Code にアクセスできるようになりました。Claude Code は、

44 ターミナルで実行され、実際のコードベースを読み、実際のタスクを最後まで

45 処理する AI コーディングエージェントです。デバッグ、リファクタリング、

46 テスト、PR などです。オートコンプリートではなく、チャットウィンドウでも

47 ありません。ファイルを編集し、コマンドを実行し、危険なことの前に許可を

48 求めます。

49 

50 2 分で実行開始:

51 

52 curl -fsSL https://claude.ai/install.sh | bash

53 cd <your-repo>

54 claude

55 

56 その後、/init を 1 回実行してください。Claude はプロジェクトを読み、

57 ビルドコマンドと規約を含む CLAUDE.md を書き込むため、基本を何度も

58 説明する必要がなくなります。

59 

60 その後、既に使用しているリポジトリで次のいずれかを試してください:

61 

62 - '[ファイル] のテストは不安定です。理由を調べて修正してください'

63 - '[モジュール] が [X] をどのように処理するかを説明してください'

64 - '私の動作中の diff を見て、プッシュする前に何が危険かを教えてください'

65 

66 コードの行き先:Claude Code はターミナルで実行され、Anthropic の API と

67 直接通信し、ループ内に第三者のサーバーはありません。ファイルを編集したり

68 コマンドを実行したりする前に許可を求めます。エンタープライズ契約の下では、

69 Anthropic はモデルのトレーニングにコードまたはプロンプトを使用しません。

70 詳細:https://code.claude.com/docs/ja/data-usage

71 https://code.claude.com/docs/ja/security

72 

73 質問がある場合:#claude-code。[所有者名] がこの週を監視しています。

74 

75 - [名前]

76 

77 P.S. エディタを好みますか?VS Code 拡張機能と JetBrains プラグインが

78 あります。同じエージェント、ターミナルは不要です。

79 ```

80 </Tab>

81 

82 <Tab title="Slack または Teams">

83 ```markdown theme={null}

84 🚀 *Claude Code は [チーム] で利用可能です*

85 

86 AI コーディングエージェント、ターミナルで実行、リポジトリを読み、実際の

87 作業を実行:バグ、リファクタリング、テスト、PR。何かに触れる前に許可を

88 求めます。

89 

90 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

91 

92 *最初に試すこと* → `/init` を実行してから:「[ファイル] のテストは

93 不安定です、理由を調べて修正してください。」

94 

95 🔒 ターミナルで実行、Anthropic の API とのみ通信します。エンタープライズ

96 プランの下では、コードとプロンプトはモデルのトレーニングに使用されません。

97 データ使用 → https://code.claude.com/docs/ja/data-usage

98 

99 📚 クイックスタート · VS Code · 無料 1 時間コース

100 https://code.claude.com/docs/ja/quickstart

101 https://code.claude.com/docs/ja/vs-code

102 https://anthropic.skilljar.com/claude-code-in-action

103 

104 質問 → このスレッド。[所有者] が対応しています。

105 ```

106 </Tab>

107</Tabs>

108 

109### エグゼクティブスポンサーバリアント

110 

111CTO、CIO、SVP エンジニアリングなどのスポンサーエグゼクティブから、彼らの名前と彼らのアカウントから送信してください。エグゼクティブの名前で送信されたローンチは、管理者またはツーリングチームからの同じメッセージより、一貫して高いオープンレートと高速な最初の週のアクティベーションを見ます。これは、オプションの実験ではなく、会社の優先事項を示します。

112 

113このバージョンは意図的に 1 つの要求に削減されています。インストールして 1 つの実際のタスクで実行してください。エグゼクティブの仕事は要求を着地させることです。標準的なアナウンスメントと `#claude-code` が方法を処理します。

114 

115<Tabs>

116 <Tab title="メール">

117 ```text theme={null}

118 件名:この週、すべてのエンジニアに試してもらいたいことが 1 つあります

119 

120 チームへ、

121 

122 エンジニアリング全体に対して Claude Code をオンにしました。これは

123 ターミナルで直接動作し、実際のコードベースで動作する AI エージェントで、

124 既に使用しているチームからの初期結果は十分に強いため、この週、全員に

125 使用してもらいたいと考えています。

126 

127 10 分をお願いします:

128 

129 curl -fsSL https://claude.ai/install.sh | bash

130 cd <your-repo>

131 claude

132 

133 その後、1 つの実際のタスクを渡してください。先延ばしにしていたバグ、

134 または'[モジュール] がどのように機能するかを説明してください'。

135 

136 それが全体の要求です。[所有者名] とチームは、何か問題が発生した場合は

137 #claude-code にいます。

138 

139 - [エグゼクティブ名]

140 [職位]

141 ```

142 </Tab>

143 

144 <Tab title="Slack または Teams">

145 ```markdown theme={null}

146 📣 *[エグゼクティブ名] から:この週試すべき 1 つのこと*

147 

148 エンジニアリング全体に対して *Claude Code* をオンにしました。初期結果は

149 十分に強いため、この週、全員に実際の作業で 10 分試すよう要求しています。

150 

151 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` →

152 `claude` → 1 つの実際のタスクを渡してください。

153 

154 それだけです。質問 → #claude-code。

155 ```

156 </Tab>

157</Tabs>

158 

159### パイロットグループバリアント

160 

161段階的なロールアウトに使用してください。パイロットコホートのみに送信してください。

162 

163```text theme={null}

164件名:Claude Code パイロットに参加しています

165 

166[名前 / チーム]、

167 

168あなたは [会社] での Claude Code の最初の波に参加しています。このグループを

169選んだのは、実際の問題に取り組み、それについて本当のことを教えてくれるからです。

170 

171要求:この週、少なくとも 1 つの実際のタスクで使用してから、#claude-code-pilot

172に、何が機能したか、何が煩わしかったか、何があなたを驚かせたかをカバーする

173メモを落としてください。そのフィードバックは、他の全員へのロールアウト方法を

174決定します。

175 

176[標準的なアナウンスメントから「2 分で実行開始」を続行]

177 

178パイロット向けの追加事項:最初のマルチファイル変更で、Shift+Tab を押して

179「plan」が表示されるまで押してください。Claude は、ファイルに触れる前に

180正確に何をするつもりかを説明します。これは、どの程度信頼するかを調整する

181最速の方法です。

182```

183 

184### チャンピオン採用 DM

185 

186ローンチ後、`#claude-code` で最も活動的な 2 ~ 3 人に DM を送信してください。

187 

188```text theme={null}

189やあ [名前]、あなたの #claude-code の投稿は、私のアナウンスメントより

190採用のためにはるかに多くのことをしています。何人かの人が、あなたの

191[スレッド / スクリーンショット] が実際に試した理由だと言いました。

192 

193それを半公式にしたいですか?低い負荷:主にあなたが投稿しているものを

194投稿し続け、新機能への最初のクラックと Anthropic チームへの直接的な

195ラインを追加してください。あなたが参加している場合、短いプレイブックを

196共有できます。

197```

198 

199## ティップス・アンド・トリックスキャンペーン

200 

201ローンチ後の機能アクティベーションを促進するために設計された、すぐに貼り付けられる Slack または Teams メッセージ。各メッセージは同じパターンに従います。フック、ペイオフ、「今すぐ試す」プロンプト、ドキュメントリンク。`#claude-code` で週に 1 ~ 2 回ドリップするか、チームのギャップに合った少数を選択してください。必須の順序なしで単独で機能します。

202 

203各ブロックからメッセージ本文を Slack または Teams に直接コピーしてください。送信前に `[括弧内のプレースホルダー]` を置き換えてください。

204 

205### 開始する

206 

207**正しいモデルを選択する**

208 

209```markdown theme={null}

210🎯 *ティップ:モデルを瞬間に合わせる*

211 

212Opus を使用してタイプミスを修正するとコンピュートが無駄になります。

213Haiku を 12 ファイルのリファクタリングに使用することは、やり直しを

214求めることです。

215 

216Claude Code は Claude アプリと同じモデルで実行され、セッション中に

217切り替えることができます。*Sonnet* は、日常的な機能作業、バグ、テスト、

218レビューのためのデフォルトの主力です。大規模なリファクタリング、複雑な

219デバッグ、または高リスクなものに対して *Opus* に手を伸ばしてください。

220速度が重要な迅速な質問、フォーマット、機械的な編集に対して *Haiku* に

221ドロップしてください。

222 

223*今すぐ試す:* `/model` を入力し、まだ選択していない場合は Sonnet を

224選択してください。これはほとんどのタスクの正しいデフォルトです。

225 

226📖 モデル設定 → https://code.claude.com/docs/ja/model-config

227```

228 

229| モデル | 最適な用途 |

230| ------ | ----------------------------------------- |

231| Opus | 大規模なリファクタリング、複雑なデバッグ、アーキテクチャの決定、高リスクな変更 |

232| Sonnet | 日常的な機能作業、バグ修正、テスト、ドキュメント、コードレビュー。推奨デフォルト。 |

233| Haiku | 迅速な質問、フォーマット、機械的な編集、迅速な反復 |

234 

235**最初に試すべき簡単な勝利**

236 

237```markdown theme={null}

238🚀 *ティップ:最初の 10 分で試すべき 3 つのこと*

239 

240Claude Code をインストールしたが、実際に何を尋ねるべきかわかりませんか?

241この週、あなたを悩ませてきたものから始めてください。

242 

243 - 煩わしいものを修正する:「[ファイル] のテストは不安定です、理由を調べてください」

244 - 書いていないコードで方向付けする:「[モジュール] がどのように機能するかを説明してください」

245 - プッシュする前に健全性チェック:「私の動作中の diff を見て、何が危険に見えるかを教えてください」

246 

247これらのいずれもセットアップは必要ありません。リポジトリに `cd` して `claude` を実行するだけです。

248 

249*今すぐ試す:* 避けてきたバグを選択し、エラーメッセージを貼り付けてください。

250 

251📖 クイックスタート → https://code.claude.com/docs/ja/quickstart

252```

253 

254### プロジェクトメモリ

255 

256**`/init` と CLAUDE.md**

257 

258```markdown theme={null}

259📁 *ティップ:毎セッション、リポジトリを何度も説明するのをやめてください*

260 

261Claude に「npm ではなく pnpm を使用します」と 5 回目に言っていますか?

2621 回限りの修正があります。

263 

264リポジトリごとに `/init` を 1 回実行してください。Claude はプロジェクト

265構造を読み、ビルドコマンド、アーキテクチャ、規約を含む CLAUDE.md ファイル

266を書き込みます。そのリポジトリの今後のすべてのセッションは、このファイルから

267自動的に開始されます。2 画面以下に保ってください。ドキュメントではなく、

268チートシートです。

269 

270*今すぐ試す:* メインリポジトリを開き、`claude` を実行し、`/init` を入力

271してください。30 秒で、その後のすべてのセッションで報酬が得られます。

272 

273📖 CLAUDE.md とプロジェクトメモリ → https://code.claude.com/docs/ja/memory

274```

275 

276**@-参照**

277 

278```markdown theme={null}

279📎 *ティップ:ファイルの内容をチャットに貼り付けるのをやめてください*

280 

281Claude が「見る」ことができるようにコンポーネントの 200 行をプロンプトに

282コピーしていますか?そうする必要はありません。

283 

284`@` を入力してからファイルパスを入力してください。Claude はファイルを

285直接コンテキストに取得します。ディレクトリ全体でも機能します。

286 

287> @src/components/Button.tsx のスタイルがおかしく見えます、

288> @docs/design-system.md に対してチェックしてください

289 

290*今すぐ試す:* `@` を入力してから Tab を入力してください。オートコンプリート

291は到達可能なすべてのファイルを表示します。

292 

293📖 ファイルの参照 → https://code.claude.com/docs/ja/common-workflows

294```

295 

296### コントロールとセキュリティ

297 

298**許可モード**

299 

300```markdown theme={null}

301🛡️ *ティップ:「見るが触らない」と「やってしまえ」の間の 1 つのキーストローク*

302 

303時々、Claude に編集する前に尋ねてもらいたいことがあります。時々、

304それを出荷させたいだけです。永遠に 1 つを選ぶ必要はありません。

305 

306*Shift+Tab* は Claude が得るリーシュの量を循環させます:*default* は

307危険なものの前に尋ねます、*acceptEdits* はファイル編集と一般的なファイル

308システムコマンドがフローを通して流れることを許可しながら、他のシェル

309コマンドの前にチェックし、*plan* は何かに触れる前に承認のための変更を

310提案します。Plan モードは信頼構築者なので、複数のファイルに触れるもの

311については最初にそこから始めてください。

312 

313*今すぐ試す:* 次のリファクタリングで、「plan」が表示されるまで Shift+Tab

314を押してから、変更を説明してください。単一のファイルが移動する前に完全な

315提案が得られます。

316 

317📖 許可モード → https://code.claude.com/docs/ja/permissions

318```

319 

320**チェックポイントと `/rewind`**

321 

322```markdown theme={null}

323⏪ *ティップ:会話全体の元に戻すボタンがあります*

324 

325Claude は 3 ターン前に間違ったパスに進み、今あなたはそれを解きほぐして

326いますか?前に修正する必要はありません。

327 

328`/rewind` は会話の前のポイントにロールバックし、Claude が作成したファイル

329変更を含みます。チェックポイントは自動です。何もセットアップする必要は

330ありません。

331 

332*今すぐ試す:* *Esc* を 2 回押してリワインドメニューを開くか、`/rewind`

333を入力してください。物事が横道に逸れる前のポイントを選択してください。

334 

335📖 チェックポイント → https://code.claude.com/docs/ja/checkpointing

336```

337 

338### ツールを接続する

339 

340**MCP コネクタ**

341 

342```markdown theme={null}

343🔌 *ティップ:Claude にイシュートラッカーを読ませて、チケットを貼り付ける

344必要がないようにしてください*

345 

346Jira チケットをターミナルに貼り付けることは、一歩後退しているように

347感じます。そうです。

348 

3491 つの設定ファイル(プロジェクトルートの `.mcp.json`)は Claude を GitHub、

350Jira、Linear、または使用しているトラッカーに接続します。その後、「私に

351割り当てられた最優先事項は何ですか?」と「先に進んでそれを修正してください」

352は同じ会話で発生します。

353 

354*今すぐ試す:* Claude に「このリポジトリで [GitHub/Jira/Linear] の MCP

355コネクタをセットアップしてください」と尋ねてください。設定を書き込みます。

356 

357📖 MCP コネクタ → https://code.claude.com/docs/ja/mcp

358```

359 

360### ワークフローを自動化する

361 

362**スキル**

363 

364```markdown theme={null}

365⚡ *ティップ:何度も再入力しているプロンプトをコマンドに変えてください*

366 

367この週、「git log から今日作業したことを要約し、スタンドアップ用に

368フォーマットしてください」を 3 回入力しましたか?それはスラッシュコマンド

369を待っています。

370 

371`.claude/skills/<name>/` の SKILL.md ファイルは再利用可能なプロンプトに

372なります。`/name` を入力して実行してください。複数ステップのプロンプトを

3732 回目に入力したら、1 つ作成してください。最も簡単なパス:Claude に

374作成させてください。

375 

376*今すぐ試す:* 「git log から今日作業したことを要約する /standup スキルを

377作成してください」と入力してから、明日の朝 `/standup` を実行してください。

378 

379📖 スキル → https://code.claude.com/docs/ja/skills

380```

381 

382**フック**

383 

384```markdown theme={null}

385🔔 *ティップ:リファクタリングが終了したときにピングを受け取ってください*

386 

387机に座って Claude が長いタスクを処理するのを見ていますか?その 8 分間

388やることがあります。

389 

390フック は Claude Code イベントで発火するシェルコマンドです。デスクトップ

391通知を送信する Stop フック は、長いリファクタリングを開始し、立ち去り、

392完了した瞬間にピングを受け取ることができることを意味します。

393 

394*今すぐ試す:* Claude に「完了したときにデスクトップ通知を送信する Stop

395フックを追加してください」と尋ねてください。スクリプトを書き込み、接続します。

396 

397📖 フックガイド → https://code.claude.com/docs/ja/hooks-guide

398```

399 

400### 日々の開発

401 

402**スクリーンショットと画像**

403 

404```markdown theme={null}

405📸 *ティップ:エラーダイアログを説明するのをやめてください。見せてください。*

406 

407「null 参照について何かを言う赤いボックスがあり、47 行目あたりを指しています」

408と入力していますか?スクリーンショットを撮ってください。

409 

410スクリーンショットをターミナルに直接ドラッグしてください。Claude はそれを

411見ます。エラーダイアログ、UI モックアップ、ホワイトボード写真、Figma

412エクスポート。*Ctrl+V* はクリップボードから貼り付けます(macOS でも

413Ctrl+V を使用してください、Cmd+V ではなく)。

414 

415*今すぐ試す:* 次に何か視覚的に壊れたら、スクリーンショットを撮ってプロンプト

416に直接貼り付けてください。その後、「ここで何が悪いのか?」と入力してください。

417 

418📖 画像の操作 → https://code.claude.com/docs/ja/common-workflows

419```

420 

421**Git ワークフロー**

422 

423```markdown theme={null}

424🌿 *ティップ:git の全体的な儀式を引き渡してください*

425 

426修正に 5 分かかりました。コミットメッセージ、ブランチ、PR の説明に 15 分

427かかりました。その比率は間違っています。

428 

429Claude は完全な git フロー を処理します。従来のメッセージを含むコミット、

430ブランチ、適切な要約を含む PR。1 つの要求:「off-by-one を修正し、

431従来のコミットメッセージでコミットし、PR を開いてください」。他の人の

432作業をレビューしていますか?PR URL を貼り付けて、Claude に diff を

433説明させてください。

434 

435*今すぐ試す:* 次の修正の後、git クライアントに切り替える代わりに、

436「これを良いメッセージでコミットして PR を開いてください」と入力してください。

437 

438📖 プルリクエストの作成 → https://code.claude.com/docs/ja/common-workflows

439```

440 

441### 共有とスケール

442 

443**プラグイン**

444 

445```markdown theme={null}

446📦 *ティップ:誰かがおそらくそのスキルを既に構築しています*

447 

448`/deploy` コマンドを構築するのに 1 時間を費やそうとしていますか?

449既に存在するかどうかを確認してください。

450 

451スキルはプラグインとしてバンドルおよび共有されます。`/plugin` は

452利用可能なものを参照し、1 ステップでインストールします。5 分の閲覧で

4531 時間の構築を節約できます。

454 

455*今すぐ試す:* `/plugin` を入力してスクロールしてください。知らなかった

456少なくとも 1 つのことを見つけるでしょう。

457 

458📖 プラグイン → https://code.claude.com/docs/ja/plugins

459```

460 

461### セキュリティと管理

462 

463**セキュリティアーキテクチャ**

464 

465```markdown theme={null}

466🔐 *ティップ:次に尋ねられたときの「これは安全ですか?」への答え*

467 

468チームの誰かが「待って、私のコードはどこに行くのか?」と尋ねるつもりです。

469ここに貼り付けることができる短いバージョンがあります。

470 

471許可優先の設計。すべてのファイル編集、シェルコマンド、外部呼び出しは

472承認によってゲートされます。CLI はターミナルで実行され、Anthropic の API

473と直接通信し、第三者のサーバーはなく、シェルコマンドのオプションの OS

474レベルのサンドボックスをサポートしています。エンタープライズプランの下では、

475Anthropic はモデルのトレーニングにコードまたはプロンプトを使用しません。

476 

477*今すぐ試す:* 次に質問が出たときのために、これら 2 つのリンクを保存してください。

478ほとんどのセキュリティレビューの質問に答えます。

479 

480📖 https://code.claude.com/docs/ja/security

481📖 https://code.claude.com/docs/ja/data-usage

482```

483 

484**ベストプラクティス**

485 

486```markdown theme={null}

487✅ *ティップ:「1 回試した」と「毎日使用」を分ける 4 つの習慣*

488 

489Claude Code から跳ね返るほとんどの人は、これらの 1 つをスキップしました。

490これらすべてを最初の週に実行した人のほとんどは、固執しています。

491 

492 - 複数のファイルに触れるものに対して plan モードで開始する

493 - /init を早期に実行する。コンテキストは複合する

494 - コミット前に diff をレビューする。Claude は自信を持って間違っている可能性がある

495 - 重要なパスに触れる変更を検証する。鋭い後輩のように扱う、オラクルではなく

496 

497*今すぐ試す:* これらの 1 つまたは 2 つだけを実行した場合、不足しているものを

498選択して、次のタスクで実行してください。#claude-code で変更内容を投稿してください。

499 

500📖 ベストプラクティス → https://code.claude.com/docs/ja/best-practices

501```

502 

503## クイックリファレンス

504 

505### FAQ 回答

506 

507最も頻繁に聞かれる質問への 1 行の返信。

508 

509| 質問 | 回答 |

510| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |

511| 「VS Code で動作しますか?」 | はい。VS Code 拡張機能と JetBrains プラグインがあり、エディタに埋め込まれた同じ機能があります。[VS Code →](/ja/vs-code) |

512| 「最初に何かを設定する必要がありますか?」 | いいえ。インストールしてから、任意のリポジトリで `claude` を実行してください。`/init` を 1 回実行すれば完了です。[クイックスタート →](/ja/quickstart) |

513| 「私のコードはどこに行きますか?」 | CLI はターミナルで実行され、コンテキストを Anthropic の API に送信して推論を行い、第三者のサーバーはありません。エンタープライズプランの下では、コードとプロンプトはモデルのトレーニングに使用されません。[データ使用 →](/ja/data-usage) |

514| 「リポジトリ全体を見ることができますか?」 | アクセス権を与えたものを読みます。作業ディレクトリ内のファイル読み取りはプロンプトしません。許可プロンプトはゲート編集、シェルコマンド、およびそのディレクトリの外側のすべてです。[許可 →](/ja/permissions) |

515| 「これは Copilot とどう違いますか?」 | Copilot は行を自動補完します。Claude Code はファイルを読み、コマンドを実行し、マルチファイル編集を行うエージェントです。[概要 →](/ja/overview) |

516| 「最初に何を試すべきですか?」 | 退屈だから先延ばしにしていたバグ。「\[ファイル] のテストは不安定です、理由を調べてください。」[クイックスタート →](/ja/quickstart) |

517 

518### プロンプトテンプレート

519 

520インストールしたが、何を尋ねるべきかわからないエンジニアと共有するスタータープロンプト。各プロンプトは実際のセッションに入力される方法で表現されます。括弧内の部分を自分のリポジトリのファイルに置き換えてください。

521 

522| タスク | プロンプト |

523| --------------- | -------------------------------------------------------------- |

524| バグを修正する | 「\[ファイル] のテストが失敗しています、理由を調べて修正してください」 |

525| コードを理解する | 「\[モジュール] がどのように機能するかを説明してから、エントリーポイントがどこにあるかを教えてください」 |

526| 安全なリファクタリング | 「\[モジュール] を \[目標] にリファクタリングし、plan モードを使用して最初にレビューできるようにしてください」 |

527| テストを書く | 「\[ファイル] のテストを書いて、\[シナリオ] の周りのエッジケースをカバーしてください」 |

528| コミット前にレビューする | 「私の動作中の diff を見て、何が危険に見えるかを教えてください」 |

529| PR を開く | 「\[問題] を修正し、従来のコミットを書き、要約を含む PR を開いてください」 |

530| スキルを作成する | 「コミット前にテストと lint を実行する /ship スキルを作成してください」 |

531| スタックトレースをデバッグする | 「スタックトレースはここです、根本原因を見つけてください、単に上に紙を貼らないでください」 |

532 

533<Tip>

534 Claude Code は頻繁にリリースされます。内部配布前に、[ドキュメントホームページ](/ja/overview) に対してバージョン固有の詳細を確認してください。

535</Tip>

computer-use.md +207 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude に CLI からコンピュータを使用させる

6 

7> Claude Code CLI でコンピュータ使用を有効にして、Claude がアプリを開いたり、クリックしたり、入力したり、macOS でスクリーンを表示したりできるようにします。ネイティブアプリをテストし、ビジュアルの問題をデバッグし、ターミナルを離れることなく GUI のみのツールを自動化します。

8 

9<Note>

10 {/* plan-availability: feature=computer-use plans=pro,max */}

11 

12 コンピュータ使用は macOS 上の研究プレビューであり、Pro または Max プランが必要です。Team または Enterprise プランでは利用できません。Claude Code v2.1.85 以降とインタラクティブセッションが必要なため、`-p` フラグを使用した非インタラクティブモードでは利用できません。

13</Note>

14 

15コンピュータ使用により、Claude はアプリを開き、スクリーンを制御し、あなたが行うのと同じ方法でマシンで作業できます。CLI から、Claude は Swift アプリをコンパイルし、起動し、すべてのボタンをクリックして、結果をスクリーンショットできます。これらはすべて、コードを書いた同じ会話内で行われます。

16 

17このページでは、CLI でコンピュータ使用がどのように機能するかについて説明します。Desktop アプリについては、[Desktop でのコンピュータ使用](/ja/desktop#let-claude-use-your-computer)を参照してください。

18 

19## コンピュータ使用でできること

20 

21コンピュータ使用は GUI が必要なタスクを処理します。通常、ターミナルを離れて手動で行う必要があるすべてのことです。

22 

23* **ネイティブアプリの構築と検証**: Claude に macOS メニューバーアプリを構築するよう依頼します。Claude は Swift を書き、コンパイルし、起動し、すべてのコントロールをクリックして、開く前に動作することを確認します。

24* **エンドツーエンド UI テスト**: Claude をローカル Electron アプリに指し、「オンボーディングフローをテストして」と言います。Claude はアプリを開き、サインアップをクリックして、各ステップをスクリーンショットします。Playwright 設定なし、テストハーネスなし。

25* **ビジュアルとレイアウトの問題をデバッグ**: Claude に「モーダルが小さいウィンドウでクリップしている」と伝えます。Claude はウィンドウをリサイズし、バグを再現し、スクリーンショットを撮り、CSS にパッチを当て、修正を検証します。Claude はあなたが見るものを見ます。

26* **GUI のみのツールを駆動**: デザインツール、ハードウェアコントロールパネル、iOS Simulator、または CLI や API がない独自のアプリと対話します。

27 

28## コンピュータ使用が適用される場合

29 

30Claude はアプリやサービスと対話するいくつかの方法があります。コンピュータ使用は最も広く、最も遅いため、Claude は最初に最も正確なツールを試します。

31 

32* サービスの [MCP サーバー](/ja/mcp)がある場合、Claude はそれを使用します。

33* タスクがシェルコマンドの場合、Claude は Bash を使用します。

34* タスクがブラウザ作業で、[Chrome の Claude](/ja/chrome)がセットアップされている場合、Claude はそれを使用します。

35* これらのいずれも適用されない場合、Claude はコンピュータ使用を使用します。

36 

37スクリーン制御は、他に何も到達できないもの(ネイティブアプリ、シミュレータ、API のないツール)のために予約されています。

38 

39## コンピュータ使用を有効にする

40 

41コンピュータ使用は `computer-use` という組み込み MCP サーバーとして利用可能です。有効にするまでデフォルトではオフです。

42 

43<Steps>

44 <Step title="MCP メニューを開く">

45 インタラクティブな Claude Code セッションで、以下を実行します。

46 

47 ```text theme={null}

48 /mcp

49 ```

50 

51 サーバーリストで `computer-use` を見つけます。無効として表示されます。

52 </Step>

53 

54 <Step title="サーバーを有効にする">

55 `computer-use` を選択し、**Enable** を選択します。設定はプロジェクトごとに保持されるため、コンピュータ使用が必要な各プロジェクトに対してこれを 1 回だけ行います。

56 </Step>

57 

58 <Step title="macOS のアクセス許可を付与する">

59 Claude がコンピュータを使用しようとする最初の時点で、2 つの macOS アクセス許可を付与するプロンプトが表示されます。

60 

61 * **Accessibility**: Claude がクリック、入力、スクロールできるようにします

62 * **Screen Recording**: Claude がスクリーンに表示されているものを見ることができるようにします

63 

64 プロンプトには、関連するシステム設定ペインを開くためのリンクが含まれています。両方を付与し、プロンプトで **Try again** を選択します。macOS は Screen Recording を付与した後、Claude Code を再起動する必要がある場合があります。

65 </Step>

66</Steps>

67 

68セットアップ後、Claude に GUI が必要なことを実行するよう依頼します。

69 

70```text theme={null}

71Build the app target, launch it, and click through each tab to make

72sure nothing crashes. Screenshot any error states you find.

73```

74 

75## セッションごとにアプリを承認する

76 

77`computer-use` サーバーを有効にしても、Claude にマシン上のすべてのアプリへのアクセスが許可されるわけではありません。Claude がセッション内で特定のアプリを初めて必要とする場合、ターミナルにプロンプトが表示され、以下が示されます。

78 

79* Claude が制御したいアプリ

80* クリップボードアクセスなどのリクエストされた追加のアクセス許可

81* Claude が作業している間に非表示になる他のアプリの数

82 

83**Allow for this session** または **Deny** を選択します。承認は現在のセッションに対して有効です。Claude が一度にそれらをリクエストする場合、複数のアプリを一度に承認できます。

84 

85広い範囲を持つアプリは、プロンプトに追加の警告を表示して、承認が何を許可するかを知ることができます。

86 

87| 警告 | 適用対象 |

88| :---------------------- | :-------------------------------------------- |

89| シェルアクセスと同等 | Terminal、iTerm、VS Code、Warp、およびその他のターミナルと IDE |

90| 任意のファイルを読み取りまたは書き込みできます | Finder |

91| システム設定を変更できます | System Settings |

92 

93これらのアプリはブロックされていません。警告により、タスクがそのレベルのアクセスを保証するかどうかを決定できます。

94 

95Claude の制御レベルはアプリカテゴリによっても異なります。ブラウザと取引プラットフォームはビューのみ、ターミナルと IDE はクリックのみ、その他すべてはフルコントロールを取得します。完全なティア分類については、[Desktop でのアプリのアクセス許可](/ja/desktop#app-permissions)を参照してください。

96 

97## Claude がスクリーンでどのように機能するか

98 

99フローを理解することで、Claude が何をするかを予測し、どのように介入するかを理解するのに役立ちます。

100 

101### 一度に 1 つのセッション

102 

103コンピュータ使用は、アクティブ中にマシン全体のロックを保持します。別の Claude Code セッションが既にコンピュータを使用している場合、新しい試みはロックを保持しているセッションを示すメッセージで失敗します。最初にそのセッションを終了または終了します。

104 

105### Claude が作業している間、アプリは非表示になります

106 

107Claude がスクリーンの制御を開始すると、他の表示されているアプリは非表示になり、Claude は承認されたアプリのみと対話します。ターミナルウィンドウは表示されたままで、スクリーンショットから除外されるため、セッションを監視でき、Claude は独自の出力を見ることはありません。

108 

109Claude がターンを終了すると、非表示のアプリは自動的に復元されます。

110 

111### いつでも停止

112 

113Claude がロックを取得すると、macOS 通知が表示されます。「Claude is using your computer · press Esc to stop」。どこからでも `Esc` を押して現在のアクションを直ちに中止するか、ターミナルで `Ctrl+C` を押します。どちらの方法でも、Claude はロックを解放し、アプリを表示し、制御をあなたに返します。

114 

115Claude が完了したときに 2 番目の通知が表示されます。

116 

117## セーフティと信頼の境界

118 

119<Warning>

120 [サンドボックス化された Bash ツール](/ja/sandboxing)とは異なり、コンピュータ使用は実際のデスクトップで実行され、承認したアプリへのアクセスがあります。Claude は各アクションをチェックし、オンスクリーンコンテンツからの潜在的なプロンプトインジェクションにフラグを立てますが、信頼の境界は異なります。ベストプラクティスについては、[コンピュータ使用セーフティガイド](https://support.claude.com/en/articles/14128542)を参照してください。

121</Warning>

122 

123組み込みのガードレールは、設定を必要とせずにリスクを軽減します。

124 

125* **アプリごとの承認**: Claude は現在のセッションで承認したアプリのみを制御できます。

126* **センチネル警告**: シェル、ファイルシステム、またはシステム設定アクセスを許可するアプリは、承認する前にフラグが立てられます。

127* **スクリーンショットから除外されたターミナル**: Claude はターミナルウィンドウを見ることはないため、セッション内のオンスクリーンプロンプトはモデルにフィードバックできません。

128* **グローバルエスケープ**: `Esc` キーはどこからでもコンピュータ使用を中止し、キープレスは消費されるため、プロンプトインジェクションはそれを使用してダイアログを閉じることはできません。

129* **ロックファイル**: 一度に 1 つのセッションのみがマシンを制御できます。

130 

131## ワークフロー例

132 

133これらの例は、コンピュータ使用とコーディングタスクを組み合わせる一般的な方法を示しています。

134 

135### ネイティブビルドを検証する

136 

137macOS または iOS アプリに変更を加えた後、Claude にコンパイルして 1 回のパスで検証させます。

138 

139```text theme={null}

140Build the MenuBarStats target, launch it, open the preferences window,

141and verify the interval slider updates the label. Screenshot the

142preferences window when you're done.

143```

144 

145Claude は `xcodebuild` を実行し、アプリを起動し、UI と対話し、見つけたものを報告します。

146 

147### レイアウトバグを再現する

148 

149ビジュアルバグが特定のウィンドウサイズでのみ表示される場合、Claude に見つけさせます。

150 

151```text theme={null}

152The settings modal clips its footer on narrow windows. Resize the app

153window down until you can reproduce it, screenshot the clipped state,

154then check the CSS for the modal container.

155```

156 

157Claude はウィンドウをリサイズし、壊れた状態をキャプチャし、関連するスタイルシートを読みます。

158 

159### シミュレータフローをテストする

160 

161XCTest を書かずに iOS Simulator を駆動します。

162 

163```text theme={null}

164Open the iOS Simulator, launch the app, tap through the onboarding

165screens, and tell me if any screen takes more than a second to load.

166```

167 

168Claude はマウスを使用するのと同じ方法でシミュレータを制御します。

169 

170## Desktop アプリとの違い

171 

172CLI と Desktop サーフェスは同じコンピュータ使用エンジンを共有します。Desktop 固有のコントロールの一部はまだ CLI にはありません。

173 

174| 機能 | Desktop | CLI |

175| :---------- | :---------------------------------------------- | :--------------------------- |

176| 有効化 | **Settings > General** のトグル(**Desktop app** の下) | `/mcp` で `computer-use` を有効化 |

177| 拒否されたアプリリスト | 設定で設定可能 | まだ利用できません |

178| 自動非表示トグル | オプション | 常にオン |

179| Dispatch 統合 | Dispatch で生成されたセッションはコンピュータ使用を使用できます | 適用されません |

180 

181## トラブルシューティング

182 

183### 「Computer use is in use by another Claude session」

184 

185別の Claude Code セッションがロックを保持しています。そのセッションでタスクを終了するか、終了します。他のセッションがクラッシュした場合、Claude がプロセスがもう実行されていないことを検出すると、ロックは自動的に解放されます。

186 

187### macOS のアクセス許可プロンプトが繰り返し表示される

188 

189macOS は、Screen Recording を付与した後、リクエストプロセスの再起動が必要な場合があります。Claude Code を完全に終了し、新しいセッションを開始します。プロンプトが続く場合は、**System Settings > Privacy & Security > Screen Recording** を開き、ターミナルアプリがリストされ、有効になっていることを確認します。

190 

191### `computer-use` が `/mcp` に表示されない

192 

193サーバーは適格なセットアップにのみ表示されます。以下を確認してください。

194 

195* macOS を使用しています。コンピュータ使用は Linux または Windows では利用できません。

196* Claude Code v2.1.85 以降を実行しています。`claude --version` を実行して確認します。

197* Pro または Max プランを使用しています。`/status` を実行してサブスクリプションを確認します。

198* claude.ai を通じて認証されています。コンピュータ使用は Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry などのサードパーティプロバイダーでは利用できません。サードパーティプロバイダーのみを通じて Claude にアクセスする場合、この機能を使用するには別の claude.ai アカウントが必要です。

199* インタラクティブセッションを使用しています。コンピュータ使用は `-p` フラグを使用した非インタラクティブモードでは利用できません。

200 

201## 関連項目

202 

203* [Desktop でのコンピュータ使用](/ja/desktop#let-claude-use-your-computer): グラフィカル設定ページを備えた同じ機能

204* [Chrome の Claude](/ja/chrome): Web ベースのタスク用のブラウザ自動化

205* [MCP](/ja/mcp): Claude を構造化ツールと API に接続する

206* [サンドボックス化](/ja/sandboxing): Claude の Bash ツールがファイルシステムとネットワークアクセスを分離する方法

207* [コンピュータ使用セーフティガイド](https://support.claude.com/en/articles/14128542): 安全なコンピュータ使用のためのベストプラクティス

costs.md +203 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# コストを効果的に管理する

6 

7> トークン使用量を追跡し、チームの支出制限を設定し、コンテキスト管理、モデル選択、拡張思考設定、前処理フックを使用して Claude Code のコストを削減します。

8 

9Claude Code は API トークン消費によって課金されます。サブスクリプションプラン価格(Pro、Max、Team、Enterprise)については、[claude.com/pricing](https://claude.com/pricing) を参照してください。開発者あたりのコストは、モデル選択、コードベースサイズ、複数インスタンスの実行や自動化などの使用パターンに基づいて大きく異なります。

10 

11エンタープライズ展開全体では、平均コストは開発者 1 人あたり 1 日約 13 ドル、開発者 1 人あたり月額 150~250 ドルで、90% のユーザーの 1 日あたりのコストは 30 ドル以下です。自分のチームの支出を見積もるには、小規模なパイロットグループから始めて、以下の追跡ツールを使用してベースラインを確立してから、より広い展開を行ってください。

12 

13このページでは、[コストを追跡する方法](#track-your-costs)、[チームのコストを管理する方法](#managing-costs-for-teams)、および [トークン使用量を削減する方法](#reduce-token-usage) について説明します。

14 

15## コストを追跡する

16 

17### `/usage` コマンドを使用する

18 

19<Note>

20 `/usage` のセッションブロックは API トークン使用量を表示し、API ユーザーを対象としています。Claude Max および Pro サブスクライバーはサブスクリプションに使用量が含まれているため、セッションコスト数値は請求目的では関連がありません。サブスクライバーは同じ画面でプラン使用量バーとアクティビティ統計を表示します。

21</Note>

22 

23`/usage` コマンドは現在のセッションの詳細なトークン使用統計を提供します。ドル数値はトークン数から局所的に計算された推定値であり、実際の請求書と異なる場合があります。権限のある請求については、[Claude Console](https://platform.claude.com/usage) の使用量ページを参照してください。

24 

25```text theme={null}

26Total cost: $0.55

27Total duration (API): 6m 19.7s

28Total duration (wall): 6h 33m 10.2s

29Total code changes: 0 lines added, 0 lines removed

30```

31 

32## チームのコストを管理する

33 

34Claude API を使用する場合、Claude Code ワークスペース支出の合計に対して [ワークスペース支出制限を設定](https://platform.claude.com/docs/ja/build-with-claude/workspaces#workspace-limits) できます。管理者は Console で [コストと使用状況レポートを表示](https://platform.claude.com/docs/ja/build-with-claude/workspaces#usage-and-cost-tracking) できます。

35 

36<Note>

37 Claude Code を Claude Console アカウントで初めて認証すると、「Claude Code」というワークスペースが自動的に作成されます。このワークスペースは、組織内のすべての Claude Code 使用量の一元化されたコスト追跡と管理を提供します。このワークスペースの API キーを作成することはできません。これは Claude Code 認証と使用量専用です。

38 

39 カスタムレート制限を持つ組織の場合、このワークスペースの Claude Code トラフィックは組織全体の API レート制限にカウントされます。Claude Console の Limits ページでこのワークスペースに [ワークスペースレート制限](https://platform.claude.com/docs/ja/api/rate-limits#setting-lower-limits-for-workspaces) を設定して、Claude Code の共有をキャップし、他の本番ワークロードを保護できます。

40</Note>

41 

42Bedrock、Vertex、および Foundry では、Claude Code はクラウドからメトリクスを送信しません。コストメトリクスを取得するために、複数の大規模企業は [LiteLLM](/ja/llm-gateway#litellm-configuration) を使用していると報告しており、これは企業が [キーごとに支出を追跡](https://docs.litellm.ai/docs/proxy/virtual_keys#tracking-spend) するのに役立つオープンソースツールです。このプロジェクトは Anthropic と提携していないため、セキュリティについて監査されていません。

43 

44### レート制限の推奨事項

45 

46チーム向けに Claude Code を設定する場合、組織のサイズに基づいて、これらのユーザーあたりのトークン/分(TPM)およびリクエスト/分(RPM)の推奨事項を検討してください。

47 

48| チームサイズ | ユーザーあたり TPM | ユーザーあたり RPM |

49| ------------ | ----------- | ----------- |

50| 1~5 ユーザー | 200k~300k | 5~7 |

51| 5~20 ユーザー | 100k~150k | 2.5~3.5 |

52| 20~50 ユーザー | 50k~75k | 1.25~1.75 |

53| 50~100 ユーザー | 25k~35k | 0.62~0.87 |

54| 100~500 ユーザー | 15k~20k | 0.37~0.47 |

55| 500 ユーザー以上 | 10k~15k | 0.25~0.35 |

56 

57たとえば、200 ユーザーがいる場合、各ユーザーに 20k TPM をリクエストするか、合計 400 万 TPM(200\*20,000 = 400 万)をリクエストできます。

58 

59チームサイズが大きくなるにつれて、ユーザーあたりの TPM は減少します。これは、より大きな組織では Claude Code を同時に使用するユーザーが少ない傾向があるためです。これらのレート制限は個別ユーザーレベルではなく組織レベルで適用されます。つまり、他のユーザーが積極的にサービスを使用していない場合、個別ユーザーは計算された共有量を一時的に超えて消費できます。

60 

61<Note>

62 大規模グループとのライブトレーニングセッションなど、異常に高い同時使用シナリオが予想される場合は、ユーザーあたりのより高い TPM 割り当てが必要になる場合があります。

63</Note>

64 

65### エージェントチームのトークンコスト

66 

67[エージェントチーム](/ja/agent-teams) は複数の Claude Code インスタンスを生成し、各インスタンスは独自のコンテキストウィンドウを持ちます。トークン使用量はアクティブなチームメイトの数と各チームメイトが実行される期間に応じてスケーリングされます。

68 

69エージェントチームのコストを管理可能に保つには、以下を実行してください。

70 

71* チームメイトに Sonnet を使用します。これは調整タスクの機能とコストのバランスを取ります。

72* チームを小さく保ちます。各チームメイトは独自のコンテキストウィンドウを実行するため、トークン使用量はおおよそチームサイズに比例します。

73* スポーンプロンプトを焦点を絞ったものにします。チームメイトは CLAUDE.md、MCP サーバー、およびスキルを自動的に読み込みますが、スポーンプロンプト内のすべてが最初からコンテキストに追加されます。

74* 作業が完了したらチームをクリーンアップします。アクティブなチームメイトはアイドル状態でもトークンを消費し続けます。

75* エージェントチームはデフォルトで無効になっています。[settings.json](/ja/settings) または環境で `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` を設定して有効にします。[エージェントチームを有効にする](/ja/agent-teams#enable-agent-teams) を参照してください。

76 

77## トークン使用量を削減する

78 

79トークンコストはコンテキストサイズに応じてスケーリングされます。Claude が処理するコンテキストが多いほど、より多くのトークンを使用します。Claude Code はプロンプトキャッシング(システムプロンプトなどの繰り返されるコンテンツのコストを削減)と自動コンパクション(コンテキスト制限に近づくと会話履歴を要約)を通じてコストを自動的に最適化します。

80 

81以下の戦略は、コンテキストを小さく保ち、メッセージあたりのコストを削減するのに役立ちます。

82 

83### コンテキストを積極的に管理する

84 

85`/usage` を使用して現在のトークン使用量を確認するか、[ステータスラインを設定](/ja/statusline#context-window-usage) してそれを継続的に表示します。

86 

87* **タスク間でクリアする**: 関連のない作業に切り替える場合は `/clear` を使用して新しく開始します。古いコンテキストは後続のすべてのメッセージでトークンを浪費します。クリアする前に `/rename` を使用してセッションに名前を付けると、後で簡単に見つけることができます。その後、`/resume` を使用して戻ります。

88* **カスタムコンパクション指示を追加する**: `/compact Focus on code samples and API usage` は、要約中に保持する内容を Claude に指示します。

89 

90CLAUDE.md でコンパクション動作をカスタマイズすることもできます。

91 

92```markdown theme={null}

93# Compact instructions

94 

95When you are using compact, please focus on test output and code changes

96```

97 

98### 適切なモデルを選択する

99 

100Sonnet はほとんどのコーディングタスクをうまく処理し、Opus よりもコストが低くなります。複雑なアーキテクチャの決定または複数ステップの推論のために Opus を予約します。`/model` を使用してセッション中にモデルを切り替えるか、`/config` でデフォルトを設定します。単純な subagent タスクの場合、[subagent 設定](/ja/sub-agents#choose-a-model) で `model: haiku` を指定します。

101 

102### MCP サーバーのオーバーヘッドを削減する

103 

104MCP ツール定義は [デフォルトで遅延](/ja/mcp#scale-with-mcp-tool-search) されるため、Claude が特定のツールを使用するまで、ツール名のみがコンテキストに入ります。`/context` を実行して、何がスペースを消費しているかを確認します。

105 

106* **利用可能な場合は CLI ツールを優先する**: `gh`、`aws`、`gcloud`、`sentry-cli` などのツールは、ツールごとのリストを追加しないため、MCP サーバーよりもコンテキスト効率が高くなります。Claude はオーバーヘッドなしで CLI コマンドを直接実行できます。

107* **未使用のサーバーを無効にする**: `/mcp` を実行して設定されたサーバーを確認し、積極的に使用していないサーバーを無効にします。

108 

109### 型付き言語用のコードインテリジェンスプラグインをインストールする

110 

111[コードインテリジェンスプラグイン](/ja/discover-plugins#code-intelligence) は Claude にテキストベースの検索の代わりに正確なシンボルナビゲーションを提供し、不慣れなコードを探索する際の不要なファイル読み取りを削減します。単一の「定義に移動」呼び出しは、grep の後に複数の候補ファイルを読み取る必要があるものを置き換えます。インストールされた言語サーバーは編集後に型エラーを自動的に報告するため、Claude はコンパイラを実行せずにエラーをキャッチします。

112 

113### フックとスキルに処理をオフロードする

114 

115カスタム [フック](/ja/hooks) は Claude がそれを見る前にデータを前処理できます。Claude が 10,000 行のログファイルを読んでエラーを見つける代わりに、フックは `ERROR` に対して grep を実行し、一致する行のみを返すことができ、コンテキストを数万トークンから数百に削減します。

116 

117[スキル](/ja/skills) は Claude にドメイン知識を与えることができるため、探索する必要がありません。たとえば、「codebase-overview」スキルはプロジェクトのアーキテクチャ、主要なディレクトリ、および命名規則を説明できます。Claude がスキルを呼び出すと、構造を理解するために複数のファイルを読むトークンを費やす代わりに、このコンテキストが即座に取得されます。

118 

119たとえば、この PreToolUse フックはテスト出力をフィルタリングして失敗のみを表示します。

120 

121<Tabs>

122 <Tab title="settings.json">

123 これを [settings.json](/ja/settings#settings-files) に追加して、すべての Bash コマンドの前にフックを実行します。

124 

125 ```json theme={null}

126 {

127 "hooks": {

128 "PreToolUse": [

129 {

130 "matcher": "Bash",

131 "hooks": [

132 {

133 "type": "command",

134 "command": "~/.claude/hooks/filter-test-output.sh"

135 }

136 ]

137 }

138 ]

139 }

140 }

141 ```

142 </Tab>

143 

144 <Tab title="filter-test-output.sh">

145 フックはこのスクリプトを呼び出し、コマンドがテストランナーであるかどうかを確認し、失敗のみを表示するように変更します。

146 

147 ```bash theme={null}

148 #!/bin/bash

149 input=$(cat)

150 cmd=$(echo "$input" | jq -r '.tool_input.command')

151 

152 # If running tests, filter to show only failures

153 if [[ "$cmd" =~ ^(npm test|pytest|go test) ]]; then

154 filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"

155 echo "{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"allow\",\"updatedInput\":{\"command\":\"$filtered_cmd\"}}}"

156 else

157 echo "{}"

158 fi

159 ```

160 </Tab>

161</Tabs>

162 

163### CLAUDE.md からスキルに指示を移動する

164 

165[CLAUDE.md](/ja/memory) ファイルはセッション開始時にコンテキストに読み込まれます。PR レビューやデータベース移行などの特定のワークフロー用の詳細な指示が含まれている場合、関連のない作業を行っている場合でもそれらのトークンが存在します。[スキル](/ja/skills) はオンデマンドでのみ呼び出されたときに読み込まれるため、特殊な指示をスキルに移動することで、ベースコンテキストを小さく保ちます。CLAUDE.md を 200 行以下に保つことを目指し、必須のみを含めます。

166 

167### 拡張思考を調整する

168 

169拡張思考はデフォルトで有効になっています。これは複雑な計画と推論タスクのパフォーマンスを大幅に向上させるためです。思考トークンは出力トークンとして課金され、デフォルト予算はモデルに応じて数万トークンになる場合があります。深い推論が必要ない単純なタスクの場合、`/effort` で [努力レベル](/ja/model-config#adjust-effort-level) を低下させるか、`/model` で、`/config` で思考を無効にするか、`MAX_THINKING_TOKENS=8000` で予算を低下させることでコストを削減できます。

170 

171### 詳細な操作を subagent に委任する

172 

173テストの実行、ドキュメントの取得、またはログファイルの処理は、かなりのコンテキストを消費できます。これらを [subagent](/ja/sub-agents#isolate-high-volume-operations) に委任して、詳細な出力が subagent のコンテキストに留まり、メインの会話に戻るのはサマリーのみです。

174 

175### エージェントチームのコストを管理する

176 

177エージェントチームは、チームメイトがプランモードで実行される場合、標準セッションよりも約 7 倍多くのトークンを使用します。これは、各チームメイトが独自のコンテキストウィンドウを維持し、別の Claude インスタンスとして実行されるためです。チームメイトあたりのトークン使用量を制限するために、チームタスクを小さく自己完結させておきます。詳細については、[エージェントチーム](/ja/agent-teams) を参照してください。

178 

179### 具体的なプロンプトを作成する

180 

181「このコードベースを改善する」のような曖昧なリクエストは、広範なスキャンをトリガーします。「auth.ts のログイン関数に入力検証を追加する」のような具体的なリクエストにより、Claude は最小限のファイル読み取りで効率的に作業できます。

182 

183### 複雑なタスクで効率的に作業する

184 

185より長いまたはより複雑な作業の場合、これらの習慣は間違った方向に進むことからの無駄なトークンを回避するのに役立ちます。

186 

187* **複雑なタスクにはプランモードを使用する**: Shift+Tab を押して、実装の前に [プランモード](/ja/common-workflows#use-plan-mode-for-safe-code-analysis) に入ります。Claude はコードベースを探索し、承認のためのアプローチを提案し、初期方向が間違っている場合の高価な再作業を防ぎます。

188* **早期に方向を修正する**: Claude が間違った方向に向かい始めた場合は、Escape を押して直ちに停止します。`/rewind` を使用するか、Escape をダブルタップして、会話とコードを前のチェックポイントに復元します。

189* **検証ターゲットを指定する**: テストケースを含めるか、スクリーンショットを貼り付けるか、プロンプトで予想される出力を定義します。Claude が独自の作業を検証できる場合、修正をリクエストする必要がある前に問題をキャッチします。

190* **段階的にテストする**: 1 つのファイルを作成し、テストしてから続行します。これは、修正が安い場合に早期に問題をキャッチします。

191 

192## バックグラウンドトークン使用量

193 

194Claude Code はアイドル状態でも、バックグラウンド機能にトークンを使用します。

195 

196* **会話要約**: `claude --resume` 機能の前の会話を要約するバックグラウンドジョブ

197* **コマンド処理**: `/usage` などの一部のコマンドは、ステータスを確認するためにリクエストを生成する場合があります

198 

199これらのバックグラウンドプロセスは、アクティブなインタラクションがなくても、少量のトークン(通常はセッションあたり 0.04 ドル未満)を消費します。

200 

201## Claude Code の動作の変更を理解する

202 

203Claude Code は、コスト報告を含む機能の動作方法を変更する可能性のある定期的な更新を受け取ります。`claude --version` を実行して現在のバージョンを確認します。特定の請求に関する質問については、[Console アカウント](https://platform.claude.com/login) を通じて Anthropic サポートに連絡してください。

data-usage.md +124 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# データ使用

6 

7> Anthropic の Claude のデータ使用ポリシーについて学習します

8 

9## データポリシー

10 

11### データトレーニングポリシー

12 

13**コンシューマーユーザー(Free、Pro、Max プラン)**:

14将来の Claude モデルの改善のためにデータを使用することを許可するかどうかを選択できます。この設定がオンの場合、Free、Pro、Max アカウントからのデータを使用して新しいモデルをトレーニングします(これらのアカウントから Claude Code を使用する場合も含みます)。

15 

16**商用ユーザー**:(Team および Enterprise プラン、API、サードパーティプラットフォーム、Claude Gov)既存のポリシーを維持します。Anthropic は、商用条件の下で Claude Code に送信されたコードまたはプロンプトを使用して生成モデルをトレーニングしません。ただし、カスタマーがモデル改善のためにデータを提供することを選択した場合は除きます(例えば、[Developer Partner Program](https://support.claude.com/ja/articles/11174108-about-the-development-partner-program))。

17 

18### Development Partner Program

19 

20[Development Partner Program](https://support.claude.com/ja/articles/11174108-about-the-development-partner-program) などを通じて、トレーニング用の資料を提供する方法に明示的にオプトインした場合、提供された資料を使用してモデルをトレーニングする可能性があります。組織管理者は、組織の Development Partner Program に明示的にオプトインできます。このプログラムは Anthropic ファーストパーティ API でのみ利用可能であり、Bedrock または Vertex ユーザーは利用できないことに注意してください。

21 

22### `/feedback` コマンドを使用したフィードバック

23 

24`/feedback` コマンドを使用して Claude Code に関するフィードバックを送信することを選択した場合、製品とサービスを改善するためにフィードバックを使用する可能性があります。`/feedback` を通じて共有されたトランスクリプトは 5 年間保持されます。

25 

26### セッション品質調査

27 

28Claude Code で「How is Claude doing this session?」プロンプトが表示されたときに、この調査に応答する場合(「Dismiss」を選択する場合を含む)、数値評価のみが記録されます。この調査の一部として、会話トランスクリプト、入力、出力、またはその他のセッションデータは収集または保存されません。サムズアップ/ダウンフィードバックまたは `/feedback` レポートとは異なり、このセッション品質調査は単純な製品満足度メトリックです。

29 

30数値評価プロンプトの後、「Can Anthropic look at your session transcript to help us improve Claude Code?」と尋ねる別の追加フォローアップが表示される場合があります。これは数値評価とは異なるオプションの 2 番目のステップです。

31 

32* **Yes**:会話トランスクリプト、サブエージェントトランスクリプト、ディスクからの生のセッションログファイルを Anthropic にアップロードします。既知の API キーとトークンパターンはアップロード前に削除されます。ソースコード、ファイルコンテンツ、およびその他の会話コンテンツはそのままアップロードされます。共有されたトランスクリプトは最大 6 ヶ月間保持されます。

33* **No**:何も送信せずに拒否します

34* **Don't ask again**:拒否し、今後のセッションでこのフォローアップが表示されなくなります

35 

36**Yes** を明示的に選択しない限り、何もアップロードされません。[ゼロデータ保持](/ja/zero-data-retention) を設定している組織、または組織ポリシーで製品フィードバックが無効になっている組織は、このフォローアップを表示しません。数値評価プロンプトの後に送信されたセッショントランスクリプトを含む、この調査への応答は、データトレーニング設定に影響を与えず、AI モデルをトレーニングするために使用することはできません。

37 

38これらの調査を無効にするには、`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` を設定します。調査は、`DISABLE_TELEMETRY` または `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` が設定されている場合にも無効になります。無効にする代わりに頻度を制御するには、設定ファイルで [`feedbackSurveyRate`](/ja/settings#available-settings) を `0` から `1` の間の確率に設定します。

39 

40### データ保持

41 

42Anthropic は、アカウントタイプと設定に基づいて Claude Code データを保持します。

43 

44**コンシューマーユーザー(Free、Pro、Max プラン)**:

45 

46* モデル改善のためのデータ使用を許可するユーザー:モデル開発とセキュリティ改善をサポートするための 5 年間の保持期間

47* モデル改善のためのデータ使用を許可しないユーザー:30 日間の保持期間

48* プライバシー設定は、[claude.ai/settings/data-privacy-controls](https://claude.ai/settings/data-privacy-controls) でいつでも変更できます。

49 

50**商用ユーザー(Team、Enterprise、API)**:

51 

52* 標準:30 日間の保持期間

53* [ゼロデータ保持](/ja/zero-data-retention):Claude for Enterprise の Claude Code で利用可能。ZDR は組織ごとに有効になります。新しい各組織は、アカウントチームによって個別に ZDR を有効にする必要があります

54* ローカルキャッシング:Claude Code クライアントは、セッション再開を有効にするために、`~/.claude/projects/` の下にセッショントランスクリプトをプレーンテキストでローカルに 30 日間保存します。`cleanupPeriodDays` で期間を調整できます。[application data](/ja/claude-directory#application-data) を参照して、何が保存されているか、およびそれをクリアする方法を確認してください。

55 

56Web 上の個別の Claude Code セッションはいつでも削除できます。セッションを削除すると、セッションのイベントデータが永久に削除されます。セッションの削除方法については、[Delete sessions](/ja/claude-code-on-the-web#delete-sessions) を参照してください。

57 

58データ保持慣行の詳細については、[Privacy Center](https://privacy.anthropic.com/) を参照してください。

59 

60詳細については、[Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms)(Team、Enterprise、API ユーザー向け)または [Consumer Terms](https://www.anthropic.com/legal/consumer-terms)(Free、Pro、Max ユーザー向け)および [Privacy Policy](https://www.anthropic.com/legal/privacy) を確認してください。

61 

62## データアクセス

63 

64すべてのファーストパーティユーザーの場合、[ローカル Claude Code](#local-claude-code-data-flow-and-dependencies) および [リモート Claude Code](#cloud-execution-data-flow-and-dependencies) に対してログされるデータについて詳しく知ることができます。[Remote Control](/ja/remote-control) セッションは、すべての実行がマシン上で行われるため、ローカルデータフローに従います。リモート Claude Code の場合、Claude は Claude Code セッションを開始するリポジトリにアクセスします。Claude は接続したが、セッションを開始していないリポジトリにはアクセスしません。

65 

66## ローカル Claude Code:データフローと依存関係

67 

68以下の図は、インストール中および通常の操作中に Claude Code が外部サービスにどのように接続するかを示しています。実線は必須の接続を示し、破線はオプションまたはユーザーが開始したデータフローを表します。

69 

70<img src="https://mintcdn.com/claude-code/YcBW2H7CArGcduPb/images/claude-code-data-flow.svg?fit=max&auto=format&n=YcBW2H7CArGcduPb&q=85&s=b600a89f84fc86f9ff7be00a466c0635" alt="Claude Code の外部接続を示す図:インストール/更新は配布サーバーに接続し、ユーザーリクエストは Console 認証、public-api、およびオプションで Statsig、Sentry、バグレポートを含む Anthropic サービスに接続します" width="720" height="520" data-path="images/claude-code-data-flow.svg" />

71 

72Claude Code はローカルで実行されます。LLM と対話するために、Claude Code はネットワーク経由でデータを送信します。このデータには、すべてのユーザープロンプトとモデル出力が含まれます。データは TLS 1.2 以上で転送中に暗号化されます。Claude Code はほとんどの一般的な VPN および LLM プロキシと互換性があります。

73 

74保存時の暗号化はモデルプロバイダーによって異なります:

75 

76| プロバイダー | 保存時の暗号化 |

77| ---------------------- | --------------------------------------------------------------------------------------------------------- |

78| Anthropic API | インフラストラクチャレベルのディスク暗号化(AES-256)。サーバー側の永続化がない場合は [Zero Data Retention](/ja/zero-data-retention) を有効にしてください。 |

79| Amazon Bedrock | AWS 管理キーを使用した AES-256。AWS KMS を通じてカスタマー管理キーが利用可能です。 |

80| Google Cloud Vertex AI | Google 管理の暗号化キー。CMEK が利用可能です。 |

81| Microsoft Foundry | リクエストは AES-256 ディスク暗号化を備えた Anthropic インフラストラクチャにルーティングされます。 |

82 

83Claude Code は Anthropic の API 上に構築されています。API のセキュリティ制御(API ロギング手順を含む)の詳細については、[Anthropic Trust Center](https://trust.anthropic.com) のコンプライアンスアーティファクトを参照してください。

84 

85### クラウド実行:データフローと依存関係

86 

87[Claude Code on the web](/ja/claude-code-on-the-web) を使用する場合、セッションはローカルではなく Anthropic が管理する仮想マシンで実行されます。クラウド環境では:

88 

89* **コードとデータストレージ**:リポジトリは分離された VM にクローンされます。コードとセッションデータは、アカウントタイプのデータ保持および使用ポリシーの対象となります(上記のデータ保持セクションを参照)

90* **認証情報**:GitHub 認証はセキュアプロキシを通じて処理されます。GitHub 認証情報がサンドボックスに入ることはありません

91* **ネットワークトラフィック**:すべてのアウトバウンドトラフィックは、監査ログと不正使用防止のためのセキュリティプロキシを通じて行われます

92* **セッションデータ**:プロンプト、コード変更、出力は、ローカル Claude Code 使用と同じデータポリシーに従います

93 

94クラウド実行のセキュリティの詳細については、[Security](/ja/security#cloud-execution-security) を参照してください。

95 

96## テレメトリサービス

97 

98Claude Code は、ユーザーのマシンから Statsig サービスに接続して、レイテンシ、信頼性、使用パターンなどの運用メトリックをログします。このログには、コードまたはファイルパスは含まれません。データは TLS を使用して転送中に暗号化され、256 ビット AES 暗号化を使用して保存時に暗号化されます。詳細については、[Statsig security documentation](https://www.statsig.com/trust/security) を参照してください。Statsig テレメトリをオプトアウトするには、`DISABLE_TELEMETRY` 環境変数を設定します。

99 

100Claude Code は、ユーザーのマシンから Sentry に接続して、運用エラーログを記録します。データは TLS を使用して転送中に暗号化され、256 ビット AES 暗号化を使用して保存時に暗号化されます。詳細については、[Sentry security documentation](https://sentry.io/security/) を参照してください。エラーログをオプトアウトするには、`DISABLE_ERROR_REPORTING` 環境変数を設定します。

101 

102ユーザーが `/feedback` コマンドを実行すると、コードを含む完全な会話履歴のコピーが Anthropic に送信されます。データは転送中に TLS で暗号化されます。オプションで、公開リポジトリに GitHub イシューが作成されます。オプトアウトするには、`DISABLE_FEEDBACK_COMMAND` 環境変数を `1` に設定します。

103 

104## API プロバイダーのデフォルト動作

105 

106デフォルトでは、Bedrock、Vertex、または Foundry を使用する場合、エラーレポート、テレメトリ、およびバグレポートは無効になります。セッション品質調査と WebFetch ドメインセーフティチェックは例外であり、プロバイダーに関係なく実行されます。`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` を設定することで、調査を含むすべての非必須トラフィックをオプトアウトできます。この変数は WebFetch チェックに影響を与えません。WebFetch チェックには独自のオプトアウトがあります。以下は完全なデフォルト動作です:

107 

108| サービス | Claude API | Vertex API | Bedrock API | Foundry API |

109| -------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |

110| **Statsig(メトリクス)** | デフォルトオン。<br />`DISABLE_TELEMETRY=1` で無効にします。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_VERTEX` は 1 である必要があります。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_BEDROCK` は 1 である必要があります。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_FOUNDRY` は 1 である必要があります。 |

111| **Sentry(エラー)** | デフォルトオン。<br />`DISABLE_ERROR_REPORTING=1` で無効にします。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_VERTEX` は 1 である必要があります。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_BEDROCK` は 1 である必要があります。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_FOUNDRY` は 1 である必要があります。 |

112| **Claude API(`/feedback` レポート)** | デフォルトオン。<br />`DISABLE_FEEDBACK_COMMAND=1` で無効にします。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_VERTEX` は 1 である必要があります。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_BEDROCK` は 1 である必要があります。 | デフォルトオフ。<br />`CLAUDE_CODE_USE_FOUNDRY` は 1 である必要があります。 |

113| **セッション品質調査** | デフォルトオン。<br />`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` で無効にします。 | デフォルトオン。<br />`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` で無効にします。 | デフォルトオン。<br />`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` で無効にします。 | デフォルトオン。<br />`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1` で無効にします。 |

114| **WebFetch ドメインセーフティチェック** | デフォルトオン。<br />[settings](/ja/settings) で `skipWebFetchPreflight: true` で無効にします。 | デフォルトオン。<br />[settings](/ja/settings) で `skipWebFetchPreflight: true` で無効にします。 | デフォルトオン。<br />[settings](/ja/settings) で `skipWebFetchPreflight: true` で無効にします。 | デフォルトオン。<br />[settings](/ja/settings) で `skipWebFetchPreflight: true` で無効にします。 |

115 

116すべての環境変数は `settings.json` にチェックインできます([settings reference](/ja/settings) を参照)。

117 

118v2.1.126 以降、ホストプラットフォームが `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` を設定する場合、Statsig メトリクスは Vertex、Bedrock、および Foundry でデフォルトでオンになり、標準の `DISABLE_TELEMETRY` オプトアウトに従います。Sentry エラーレポートと `/feedback` レポートは、これらのプロバイダーではデフォルトでオフのままです。

119 

120### WebFetch ドメインセーフティチェック

121 

122URL をフェッチする前に、WebFetch ツールは要求されたホスト名を `api.anthropic.com` に送信して、Anthropic が管理するセーフティブロックリストに対してチェックします。ホスト名のみが送信され、完全な URL、パス、またはページコンテンツは送信されません。結果はホスト名ごとに 5 分間キャッシュされます。

123 

124このチェックは、使用するモデルプロバイダーに関係なく実行され、`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` の影響を受けません。ネットワークが `api.anthropic.com` をブロックしている場合、WebFetch リクエストはドメインをホワイトリストに登録するか、[settings](/ja/settings) で `skipWebFetchPreflight: true` を設定するまで失敗します。チェックを無効にすると、WebFetch はブロックリストに相談せずに任意の URL を取得しようとするため、Claude が到達できるドメインを制限する必要がある場合は [`WebFetch` permission rules](/ja/permissions#webfetch) と組み合わせてください。

debug-your-config.md +97 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 設定をデバッグする

6 

7> CLAUDE.md、設定、hooks、MCP サーバー、またはスキルが機能していない理由を診断します。/context、/doctor、/hooks、/mcp を使用して、実際に読み込まれた内容を確認します。

8 

9Claude が指示を無視したり、設定した機能が表示されない場合、通常の原因はファイルが読み込まれなかった、予期した場所とは異なる場所から読み込まれた、または別のファイルがそれをオーバーライドしたことです。このガイドでは、Claude Code が実際に読み込んだ内容を検査して、どれが当てはまるかを絞り込む方法を示します。

10 

11インストール、認証、接続の問題については、代わりに [トラブルシューティング](/ja/troubleshoot-install) を参照してください。

12 

13## コンテキストに読み込まれた内容を確認する

14 

15`/context` コマンドは、現在のセッションのコンテキストウィンドウを占めるすべてのものを表示します。カテゴリ別に分類されます:システムプロンプト、メモリファイル、スキル、MCP ツール、会話メッセージです。まず実行して、`CLAUDE.md`、ルール、またはスキルの説明が存在するかどうかを確認します。

16 

17特定のカテゴリの詳細については、専用コマンドで確認してください:

18 

19| コマンド | 表示内容 |

20| :------------- | :---------------------------------------- |

21| `/memory` | 読み込まれた `CLAUDE.md` とルールファイル、およびオートメモリエントリ |

22| `/skills` | プロジェクト、ユーザー、プラグインソースから利用可能なスキル |

23| `/agents` | 設定されたサブエージェントとその設定 |

24| `/hooks` | アクティブなフック設定 |

25| `/mcp` | 接続された MCP サーバーとそのステータス |

26| `/permissions` | 現在有効な許可と拒否ルール |

27| `/doctor` | 設定診断:無効なキー、スキーマエラー、インストール状態 |

28| `/status` | アクティブな設定ソース(マネージド設定が有効かどうかを含む) |

29 

30メモリファイルが `/memory` に見つからない場合は、その場所を [CLAUDE.md ファイルの読み込み方法](/ja/memory#how-claude-md-files-load) と照らし合わせて確認してください。サブディレクトリの `CLAUDE.md` ファイルは、セッション開始時ではなく、Claude が Read ツールでそのディレクトリ内のファイルを読むときにオンデマンドで読み込まれます。

31 

32`/memory` がファイルが読み込まれたことを確認しても Claude が特定の指示に従わない場合、問題はファイルが読み込まれたかどうかではなく、指示の書き方である可能性が高いです。CLAUDE.md は、新しいチームメンバーに与えるような指示に適しています。例えば、プロジェクト規約、ビルドコマンド、ファイルの場所などです。

33 

34指示が複数の方法で解釈できるほど曖昧な場合、2 つのファイルが矛盾した指示を与える場合、またはファイルが長くなって個々のルールの注意が減る場合、遵守は低下します。[効果的な指示を書く](/ja/memory#write-effective-instructions) は、遵守を高く保つ特異性、サイズ、構造パターンをカバーしています。

35 

36<Note>

37 CLAUDE.md と権限は異なる問題を解決します。CLAUDE.md は Claude にプロジェクトの仕組みを伝えるため、良い決定を下します。[権限](/ja/permissions) と [hooks](/ja/hooks) は Claude が何を決定するかに関わらず制限を強制します。CLAUDE.md は「ここではこのようにしています」に使用します。権限または hooks は、セキュリティ境界と、保証が必要な絶対に起こってはいけないことに使用します。

38</Note>

39 

40## 解決された設定を確認する

41 

42設定はマネージド、ユーザー、プロジェクト、ローカルスコープ全体でマージされます。マネージド設定が存在する場合は常に優先されます。その他の場合、より近いスコープが、ローカル、プロジェクト、ユーザーの順序でより広いスコープをオーバーライドします。一部の設定は、コマンドラインフラグまたは [環境変数](/ja/env-vars) で設定することもでき、これは別のオーバーライドレイヤーとして機能します。設定が適用されないように見える場合、設定した値は通常、別のスコープまたは環境変数によってオーバーライドされています。

43 

44`/doctor` を実行して設定ファイルを検証し、無効なキーまたはスキーマエラーを表示します。`/status` を実行して、マネージド設定が有効かどうかを含む、どの設定ソースがアクティブかを確認します。特定のキーに対してどのスコープが優先されるかを理解するには、[スコープの相互作用方法](/ja/settings#how-scopes-interact) を参照してください。

45 

46## MCP サーバーを確認する

47 

48`/mcp` を実行して、すべての設定されたサーバー、その接続ステータス、および現在のプロジェクトに対して承認したかどうかを確認します。サーバーは正しく定義されていても、いくつかの一般的な理由でツールを提供しない場合があります:

49 

50* `.mcp.json` のプロジェクトスコープサーバーは 1 回限りの承認が必要です。プロンプトが却下された場合、`/mcp` から承認するまでサーバーは無効のままです。

51* 起動に失敗したサーバーは `/mcp` で失敗として表示されます。`command` または `args` の相対ファイルパスは頻繁な原因です。これらは `.mcp.json` の場所ではなく、Claude Code を起動したディレクトリに対して解決されるためです。

52* 接続されているが 0 個のツールをリストするサーバーは正常に起動していますが、ツールリストを返していません。`/mcp` から **再接続** を選択します。カウントが 0 のままの場合は、`claude --debug mcp` を実行してサーバーの stderr 出力を確認します。

53 

54設定場所とスコープルールについては、[MCP](/ja/mcp) を参照してください。

55 

56## Hooks を確認する

57 

58`/hooks` を実行して、現在のセッションに登録されているすべてのフックをイベント別にグループ化して一覧表示します。定義したフックが表示されない場合、それは読み込まれていません:hooks は設定ファイルの `"hooks"` キーの下に置かれ、スタンドアロンファイルではありません。

59 

60フックが表示されても発火しない場合、通常の原因はマッチャーです。`matcher` フィールドは、複数のツール名をマッチするために `|` を使用する単一の文字列です。例えば `"Edit|Write"` です。ツール名のスペルミスはマッチャーが一致しないため、サイレントに失敗します。配列値はスキーマエラーです:Claude Code は設定エラー通知を表示し、`/doctor` は検証失敗を報告し、フックエントリは削除されるため `/hooks` に表示されません。

61 

62`settings.json` への編集は、短いファイル安定性遅延後に実行中のセッションで有効になります。再起動する必要はありません。保存後数秒経っても `/hooks` が古い定義を表示している場合は、`/hooks` を再度実行してビューをリフレッシュします。

63 

64`/hooks` がフックを表示しても発火しない場合、次のステップはフック評価をライブで監視することです。`claude --debug hooks` でセッションを開始し、ツール呼び出しをトリガーします。デバッグログは各イベント、チェックされたマッチャー、フックの終了コードと出力を記録します。ログ形式については [フックをデバッグする](/ja/hooks#debug-hooks) を、一般的な失敗パターンについては [hooks トラブルシューティング](/ja/hooks-guide#limitations-and-troubleshooting) を参照してください。

65 

66## 一般的な原因

67 

68ほとんどの設定の問題は、小さな場所とシンタックスルールのセットに遡ります。バグを想定する前にこれらを確認してください:

69 

70| 症状 | 原因 | 修正 |

71| :--------------------------------------------------------- | :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |

72| フックが発火しない | `matcher` が JSON 配列ではなく文字列である | 複数のツールをマッチするために `\|` を含む単一の文字列を使用します。例えば `"Edit\|Write"` です。[マッチャーパターン](/ja/hooks#matcher-patterns) を参照してください。 |

73| フックが発火しない | `matcher` 値が小文字です。例えば `"bash"` | マッチングは大文字と小文字を区別します。ツール名は大文字です:`Bash`、`Edit`、`Write`、`Read`。 |

74| フックが発火しない | Hooks がスタンドアロンの `.claude/hooks.json` ファイルにあります | スタンドアロンの hooks ファイルはありません。`settings.json` の `"hooks"` キーの下に hooks を定義します。[フック設定](/ja/hooks) を参照してください。 |

75| グローバルに設定された権限、hooks、env が無視されます | 設定が `~/.claude.json` に追加されました | `~/.claude.json` はアプリ状態と UI トグルを保持します。`permissions`、`hooks`、`env` は `~/.claude/settings.json` に属します。これらは 2 つの異なるファイルです。 |

76| `settings.json` 値が無視されているように見えます | 同じキーが `settings.local.json` で設定されています | `settings.local.json` は `settings.json` をオーバーライドし、両方とも `~/.claude/settings.json` をオーバーライドします。[設定の優先順位](/ja/settings#how-scopes-interact) を参照してください。 |

77| スキルが `/skills` に表示されません | スキルファイルがフォルダ内ではなく `.claude/skills/name.md` にあります | `SKILL.md` を含むフォルダを使用します:`.claude/skills/name/SKILL.md`。 |

78| スキルが `/skills` に表示されますが Claude が呼び出しません | スキルのフロントマターに `disable-model-invocation: true` があるか、その説明がリクエストの言い方と一致しません | `/skills` のバッジを確認します:「user-only」ラベルは Claude が独自にトリガーしないことを意味します。[スキル呼び出し](/ja/skills) を参照してください。 |

79| サブディレクトリの `CLAUDE.md` 指示が無視されているように見えます | サブディレクトリファイルはセッション開始時ではなくオンデマンドで読み込まれます | Claude が Read ツールでそのディレクトリ内のファイルを読むときに読み込まれます。起動時ではなく、ファイルを書き込みまたは作成するときではありません。[CLAUDE.md ファイルの読み込み方法](/ja/memory#how-claude-md-files-load) を参照してください。 |

80| サブエージェントが `CLAUDE.md` 指示を無視します | サブエージェントは常にプロジェクトメモリを継承するわけではありません | 重要なルールをエージェントファイル本体に入れます。これはサブエージェントのシステムプロンプトになります。[サブエージェント設定](/ja/sub-agents) を参照してください。 |

81| クリーンアップロジックがセッション終了時に実行されません | `SessionEnd` フックが設定されていません | `settings.json` に `SessionEnd` フックを追加します。[フックイベントリスト](/ja/hooks#hook-events) を参照してください。 |

82| `.mcp.json` の MCP サーバーが読み込まれません | ファイルが `.claude/` の下にあるか、Claude Desktop の設定形式を使用しています | プロジェクト MCP 設定はリポジトリルートの `.mcp.json` に置かれます。`.claude/` 内ではありません。[MCP 設定](/ja/mcp) を参照してください。 |

83| プロジェクト MCP サーバーが追加されても表示されません | 1 回限りの承認プロンプトが却下されました | プロジェクトスコープサーバーは承認が必要です。`/mcp` を実行してステータスを確認し、承認します。 |

84| MCP サーバーが一部のディレクトリから起動に失敗します | `command` または `args` が相対ファイルパスを使用しています | ローカルスクリプトには絶対パスを使用します。`npx` または `uvx` のような `PATH` 上の実行可能ファイルはそのまま機能します。 |

85| MCP サーバーが予期された環境変数なしで起動します | 変数は `settings.json` `env` にあり、MCP 子プロセスに伝播しません | 代わりに `.mcp.json` 内のサーバーごとの `env` を設定します。 |

86| `Bash(rm *)` 拒否ルールが `/bin/rm` または `find -delete` をブロックしません | プレフィックスルールは基になる実行可能ファイルではなく、リテラルコマンド文字列をマッチします | 各バリアントの明示的なパターンを追加するか、[PreToolUse フック](/ja/hooks-guide) または [サンドボックス](/ja/sandboxing) を使用して、ハード保証を取得します。 |

87 

88## 関連リソース

89 

90各設定サーフェスの完全なリファレンスについては、専用ページを参照してください:

91 

92* **[`.claude` ディレクトリリファレンス](/ja/claude-directory)**: すべての設定ファイルの場所とそれを読むもの

93* **[設定](/ja/settings)**: 優先順位と完全なキーリスト

94* **[Hooks リファレンス](/ja/hooks)**: イベント名、ペイロード、`--debug hooks` 出力形式

95* **[MCP](/ja/mcp)**: サーバー設定、承認、`/mcp` 出力

96* **[インストールとログインのトラブルシューティング](/ja/troubleshoot-install)**: `command not found`、PATH、認証の問題

97* **[トラブルシューティング](/ja/troubleshooting)**: パフォーマンス、ハング、検索の問題

desktop.md +761 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code Desktop を使用する

6 

7> Claude Code Desktop をさらに活用する:Git 分離による並列セッション、ドラッグアンドドロップペインレイアウト、統合ターミナルとファイルエディタ、サイドチャット、コンピュータ使用、電話から Dispatch セッションを送信、ビジュアル diff レビュー、アプリプレビュー、PR 監視、コネクタ、エンタープライズ設定。

8 

9Claude Desktop アプリには 3 つのタブがあります:**Chat** は会話用、**Cowork** は [Dispatch とより長い agentic work](https://claude.com/product/cowork) 用、**Code** はソフトウェア開発用です。このページは Code タブのリファレンスです。

10 

11<CardGroup cols={2}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon

14 </Card>

15 

16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors

18 </Card>

19</CardGroup>

20 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.

22 

23インストール後、Claude を起動してサインインし、**Code** タブをクリックします。Windows で初めて開く場合、[Git for Windows](https://git-scm.com/downloads/win) がインストールされている必要があります。インストール後、アプリを再起動してください。最初のセッションのウォークスルーについては、[はじめにガイド](/ja/desktop-quickstart)を参照してください。

24 

25Code タブでは、各会話は **セッション** です:独自のチャット履歴、プロジェクトフォルダ、コード変更を持ち、他のセッションとは独立しています。サイドバーはセッションをリストアップし、複数を並列で実行できます。セッション内では以下のことができます:

26 

27* [diff ビューで変更をレビューしてコメント](#review-changes-with-diff-view)してから、[CI を通じて結果の PR を監視](#monitor-pull-request-status)

28* [埋め込みブラウザで実行中のアプリをプレビュー](#preview-your-app)し、Claude が独自の変更を検証

29* [ペインを配置](#arrange-your-workspace)して、チャット、diff、プレビュー、ターミナル、ファイルエディタを並べて表示

30* セッションのコンテキストを使用する[サイド質問](#ask-a-side-question-without-derailing-the-session)を尋ねて、セッションを脱線させない

31* [外部ツールを接続](#connect-external-tools)(GitHub、Slack、Linear など)

32* Claude に[アプリを開いてスクリーンを制御](#let-claude-use-your-computer)させる

33* マシン上、[クラウド](#run-long-running-tasks-remotely)上、または [SSH](#ssh-sessions) 上で実行

34 

35[スケジュール済みの定期的な作業](/ja/desktop-scheduled-tasks)、[キーボードショートカット](#keyboard-shortcuts)、または[電話からタスクを送信](#sessions-from-dispatch)については、リンクされたページとセクションを参照してください。既にターミナルベースの CLI を使用している場合は、[CLI 比較](#coming-from-the-cli)を参照して、何が引き継がれるかを確認してください。

36 

37## セッションを開始する

38 

39最初のメッセージを送信する前に、プロンプト領域で 4 つのことを設定してください:

40 

41* **環境**:Claude が実行される場所を選択します。ローカルマシンの場合は**Local**、Anthropic ホスト型クラウドセッションの場合は**Remote**、管理するリモートマシンの場合は[**SSH 接続**](#ssh-sessions)を選択します。[環境設定](#environment-configuration)を参照してください。

42* **プロジェクトフォルダ**:Claude が作業するフォルダまたはリポジトリを選択します。リモートセッションの場合、[複数のリポジトリ](#run-long-running-tasks-remotely)を追加できます。

43* **モデル**:送信ボタンの横のドロップダウンから[モデル](/ja/model-config#available-models)を選択します。セッション中にこれを変更できます。

44* **権限モード**:[モードセレクタ](#choose-a-permission-mode)から Claude がどの程度の自律性を持つかを選択します。セッション中にこれを変更できます。

45 

46タスクを入力して**Enter**キーを押してセッションを開始します。各セッションは独自のコンテキストと変更を追跡します。

47 

48## コードの操作

49 

50Claude に適切なコンテキストを提供し、それが独立して実行する量を制御し、変更内容を確認します。

51 

52### プロンプトボックスを使用する

53 

54Claude に実行させたいことを入力して**Enter**キーを押して送信します。Claude はプロジェクトファイルを読み取り、[権限モード](#choose-a-permission-mode)に基づいて変更を加えてコマンドを実行します。いつでも Claude を中断できます:停止ボタンをクリックするか、修正を入力して**Enter**キーを押します。Claude は実行を停止し、入力に基づいて調整します。

55 

56プロンプトボックスの横の\*\*+\*\*ボタンをクリックすると、ファイル添付、[スキル](#use-skills)、[コネクタ](#connect-external-tools)、および[プラグイン](#install-plugins)にアクセスできます。

57 

58### ファイルとコンテキストをプロンプトに追加する

59 

60プロンプトボックスは外部コンテキストを取り込む 2 つの方法をサポートしています:

61 

62* **@mention ファイル**:`@`の後にファイル名を入力して、ファイルを会話コンテキストに追加します。Claude はそのファイルを読み取り、参照できます。@mention はリモートセッションでは利用できません。

63* **ファイルを添付**:添付ボタンを使用するか、ファイルをプロンプトに直接ドラッグアンドドロップして、画像、PDF、およびその他のファイルをプロンプトに添付します。これはバグのスクリーンショット、デザインモックアップ、または参照ドキュメントを共有するのに便利です。

64 

65### 権限モードを選択する

66 

67権限モードは、セッション中に Claude がどの程度の自律性を持つかを制御します:ファイルの編集、コマンドの実行、またはその両方の前に確認するかどうかです。送信ボタンの横のモードセレクタを使用して、いつでもモードを切り替えることができます。Ask permissions で開始して Claude が実行する内容を正確に確認してから、慣れてきたら Auto accept edits または Plan mode に移動します。

68 

69| モード | 設定キー | 動作 |

70| ---------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

71| **Ask permissions** | `default` | Claude はファイルの編集またはコマンドの実行の前に確認を求めます。diff を確認し、各変更を受け入れるか拒否できます。新規ユーザーに推奨されます。 |

72| **Auto accept edits** | `acceptEdits` | Claude はファイル編集と`mkdir`、`touch`、`mv`などの一般的なファイルシステムコマンドを自動的に受け入れますが、他のターミナルコマンドの実行前には確認を求めます。ファイル変更を信頼し、より高速な反復を望む場合に使用します。 |

73| **Plan mode** | `plan` | Claude はファイルを読み取り、コマンドを実行して探索してから、ソースコードを編集せずにプランを提案します。アプローチを最初に確認したい複雑なタスクに適しています。 |

74| **Auto** | `auto` | Claude はすべてのアクションをバックグラウンド安全チェック付きで実行し、リクエストとの整合性を確認します。権限プロンプトを削減しながら監視を維持します。Settings → Claude Code で有効にします。[利用可能性要件](#auto-mode-availability)以下を参照してください。 |

75| **Bypass permissions** | `bypassPermissions` | Claude は権限プロンプトなしで実行され、CLI の`--dangerously-skip-permissions`と同等です。Settings → Claude Code の「Allow bypass permissions mode」で有効にします。サンドボックス化されたコンテナまたは VM でのみ使用してください。エンタープライズ管理者はこのオプションを無効にできます。 |

76 

77`dontAsk`権限モードは[CLI](/ja/permission-modes#allow-only-pre-approved-tools-with-dontask-mode)でのみ利用可能です。

78 

79<span id="auto-mode-availability" />

80 

81Auto mode は Max、Team、Enterprise、および API プランで利用可能な研究プレビューです。Pro プランまたはサードパーティプロバイダーでは利用できません。Team、Enterprise、および API プランでは Claude Sonnet 4.6、Opus 4.6、または Opus 4.7 が必要です。Max プランでは Claude Opus 4.7 が必要です。

82 

83<Tip title="ベストプラクティス">

84 複雑なタスクを Plan mode で開始して、Claude が変更を加える前にアプローチをマップアウトするようにします。プランを承認したら、Auto accept edits または Ask permissions に切り替えて実行します。このワークフローの詳細については、[最初に探索してからプランしてからコード化する](/ja/best-practices#explore-first-then-plan-then-code)を参照してください。

85</Tip>

86 

87リモートセッションは Auto accept edits と Plan mode をサポートしています。Ask permissions はリモートセッションがデフォルトでファイル編集を自動受け入れするため利用できず、Bypass permissions はリモート環境が既にサンドボックス化されているため利用できません。

88 

89エンタープライズ管理者は利用可能な権限モードを制限できます。詳細については、[エンタープライズ設定](#enterprise-configuration)を参照してください。

90 

91### アプリをプレビューする

92 

93Claude は dev サーバーを起動し、埋め込みブラウザを開いて変更を確認できます。これはフロントエンド Web アプリとバックエンドサーバーの両方で機能します:Claude は API エンドポイントをテストし、サーバーログを表示し、見つけた問題を反復処理できます。ほとんどの場合、Claude はプロジェクトファイルを編集した後、サーバーを自動的に起動します。いつでも Claude にプレビューを要求することもできます。デフォルトでは、Claude は編集後に[変更を自動検証](#auto-verify-changes)します。

94 

95プレビューペインは、プロジェクトから静的 HTML ファイル、PDF、画像、およびビデオを開くこともできます。チャットで HTML、PDF、画像、またはビデオパスをクリックして、プレビューで開きます。

96 

97プレビューペインから、以下を実行できます:

98 

99* 埋め込みブラウザで実行中のアプリと直接対話する

100* Claude が自動的に独自の変更を検証するのを監視する:スクリーンショットを撮影し、DOM を検査し、要素をクリックし、フォームに入力し、見つけた問題を修正します

101* セッションツールバーの**Preview**ドロップダウンからサーバーを開始または停止する

102* ドロップダウンで**Persist sessions**を選択して、サーバーの再起動時にクッキーとローカルストレージを保持し、開発中に再度ログインする必要がないようにする

103* サーバー設定を編集するか、すべてのサーバーを一度に停止する

104 

105Claude はプロジェクトに基づいて初期サーバー設定を作成します。アプリがカスタム dev コマンドを使用する場合、`.claude/launch.json`を編集してセットアップに合わせます。完全なリファレンスについては、[プレビューサーバーを設定する](#configure-preview-servers)を参照してください。

106 

107保存されたセッションデータをクリアするには、Settings → Claude Code で**Persist preview sessions**をオフに切り替えます。プレビューを完全に無効にするには、Settings → Claude Code で**Preview**をオフに切り替えます。

108 

109### diff ビューで変更を確認する

110 

111Claude がコードに変更を加えた後、diff ビューを使用して、プルリクエストを作成する前にファイルごとに変更を確認できます。

112 

113Claude がファイルを変更すると、`+12 -1`などの追加および削除された行数を示す diff 統計インジケータが表示されます。このインジケータをクリックして diff ビューアを開きます。左側にファイルリストが表示され、右側に各ファイルの変更が表示されます。

114 

115特定の行にコメントするには、diff 内の任意の行をクリックしてコメントボックスを開きます。フィードバックを入力して**Enter**キーを押してコメントを追加します。複数の行にコメントを追加した後、すべてのコメントを一度に送信します:

116 

117* **macOS**:**Cmd+Enter**を押す

118* **Windows**:**Ctrl+Enter**を押す

119 

120Claude はコメントを読み取り、要求された変更を加えます。これは確認できる新しい diff として表示されます。

121 

122### コードを確認する

123 

124diff ビューで、右上のツールバーの**Review code**をクリックして、Claude にコミット前に変更を評価するよう依頼します。Claude は現在の diff を検査し、diff ビューに直接コメントを残します。任意のコメントに応答するか、Claude に修正を依頼できます。

125 

126レビューは高シグナル問題に焦点を当てています:コンパイルエラー、明確なロジックエラー、セキュリティ脆弱性、および明らかなバグです。スタイル、フォーマット、既存の問題、またはリンターが検出するものにはフラグを立てません。

127 

128### プルリクエストステータスを監視する

129 

130プルリクエストを開いた後、CI ステータスバーがセッションに表示されます。Claude Code は GitHub CLI を使用してチェック結果をポーリングし、失敗を表示します。

131 

132* **Auto-fix**:有効にすると、Claude は失敗出力を読み取り、反復することで、失敗した CI チェックを自動的に修正しようとします。

133* **Auto-merge**:有効にすると、Claude はすべてのチェックが成功したら PR をマージします。マージ方法はスカッシュです。Auto-merge がこれを機能させるために[GitHub リポジトリ設定で有効にされている](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)必要があります。

134 

135CI ステータスバーの**Auto-fix**および**Auto-merge**トグルを使用して、いずれかのオプションを有効にします。Claude Code はまた、CI が完了したときにデスクトップ通知を送信します。PR がマージまたはクローズされた後にセッションを自動的にアーカイブするには、Settings → Claude Code で[auto-archive](#work-in-parallel-with-sessions)をオンにします。

136 

137<Note>

138 PR 監視には、[GitHub CLI(`gh`)](https://cli.github.com/)がマシンにインストールされ、認証されている必要があります。`gh`がインストールされていない場合、Desktop は PR を作成しようとする最初の時点でインストールを促します。

139</Note>

140 

141## ワークスペースを配置する

142 

143Code タブはペインを任意のレイアウトで配置できるように構築されています:チャット、diff、プレビュー、ターミナル、ファイル、プラン、タスク、およびサブエージェント。ペインをヘッダーでドラッグして位置を変更するか、ペインエッジをドラッグしてサイズを変更します。macOS では**Cmd+\\**を、Windows では**Ctrl+\\**を押してフォーカスされたペインを閉じます。セッションツールバーの**Views**メニューから追加のペインを開きます。

144 

145<Note>

146 このセクションのペインレイアウト、ターミナル、ファイルエディタ、およびビューモードには Claude Desktop v1.2581.0 以降が必要です。macOS では**Claude → Check for Updates**を、Windows では**Help → Check for Updates**を開いて更新してください。

147</Note>

148 

149### ターミナルでコマンドを実行する

150 

151統合ターミナルを使用すると、別のアプリに切り替えることなく、セッションと並行してコマンドを実行できます。**Views**メニューから開くか、macOS または Windows で\*\*Ctrl+\`\*\*を押します。ターミナルはセッションの作業ディレクトリで開き、Claude と同じ環境を共有するため、`npm test`や`git status`などのコマンドは Claude が編集しているのと同じファイルを見ます。ターミナルはローカルセッションでのみ利用可能です。

152 

153### ファイルを開いて編集する

154 

155チャットまたは diff ビューアのファイルパスをクリックして、ファイルペインで開きます。HTML、PDF、画像、およびビデオパスは代わりに[プレビューペイン](#preview-your-app)で開きます。スポット編集を行い、**Save**をクリックして書き戻します。ファイルを開いてからディスク上で変更された場合、ペインは警告を表示し、オーバーライドまたは破棄できます。**Discard**をクリックして編集を元に戻すか、ペインヘッダーのパスをクリックして絶対パスをコピーします。

156 

157ファイルペインはローカルおよび SSH セッションで利用可能です。リモートセッションの場合、Claude に変更を加えるよう依頼します。

158 

159### ファイルを他のアプリで開く

160 

161チャット、diff ビューア、またはファイルペイン内のファイルパスを右クリックしてコンテキストメニューを開きます:

162 

163* **Attach as context**:ファイルを次のプロンプトに追加

164* **Open in**:VS Code、Cursor、Zed などのインストール済みエディタでファイルを開く

165* **Show in Finder**(macOS)、**Show in Explorer**(Windows):含まれるフォルダを開く

166* **Copy path**:絶対パスをクリップボードにコピー

167 

168### ビューモードを切り替える

169 

170ビューモードは、チャットトランスクリプトに表示される詳細の量を制御します。送信ボタンの横の**Transcript view**ドロップダウンからモードを切り替えるか、macOS または Windows で**Ctrl+O**を押してモードをサイクルします。

171 

172| モード | 表示内容 |

173| ----------- | --------------------------------------- |

174| **Normal** | ツール呼び出しは要約に折りたたまれ、完全なテキスト応答 |

175| **Verbose** | すべてのツール呼び出し、ファイル読み取り、Claude が実行した中間ステップ |

176| **Summary** | Claude の最終応答と加えた変更のみ |

177 

178Claude が特定のアクションを実行した理由をデバッグするときは Verbose を使用します。複数のセッションを実行していて結果をすばやくスキャンしたい場合は Summary を使用します。

179 

180### キーボードショートカット

181 

182macOS で**Cmd+/**を、Windows で**Ctrl+/**を押して、Code タブで利用可能なすべてのショートカットを表示します。Windows では、以下のショートカットに対して**Cmd**の代わりに**Ctrl**を使用します。セッションサイクリング、ターミナルトグル、およびビューモードトグルはすべてのプラットフォームで**Ctrl**を使用します。

183 

184| ショートカット | アクション |

185| ------------------------------------- | --------------- |

186| `Cmd` `/` | キーボードショートカットを表示 |

187| `Cmd` `N` | 新しいセッション |

188| `Cmd` `W` | セッションを閉じる |

189| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | 次または前のセッション |

190| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | 次または前のセッション |

191| `Esc` | Claude の応答を停止 |

192| `Cmd` `Shift` `D` | diff ペインを切り替え |

193| `Cmd` `Shift` `P` | プレビューペインを切り替え |

194| `Cmd` `Shift` `S` | プレビューで要素を選択 |

195| `Ctrl` `` ` `` | ターミナルペインを切り替え |

196| `Cmd` `\` | フォーカスされたペインを閉じる |

197| `Cmd` `;` | サイドチャットを開く |

198| `Ctrl` `O` | ビューモードをサイクル |

199| `Cmd` `Shift` `M` | 権限モードメニューを開く |

200| `Cmd` `Shift` `I` | モデルメニューを開く |

201| `Cmd` `Shift` `E` | 努力メニューを開く |

202| `1`–`9` | 開いているメニューの項目を選択 |

203 

204これらのショートカットは Code タブにのみ適用されます。ターミナルベースの[インタラクティブモードショートカット](/ja/interactive-mode#keyboard-shortcuts)(モードをサイクルするための`Shift+Tab`など)は Desktop では適用されません。

205 

206### 使用状況を確認する

207 

208モデルピッカーの横の使用状況リングをクリックして、現在のコンテキストウィンドウ使用状況とプラン使用状況を確認します。コンテキスト使用状況はセッションごと、プラン使用状況はすべての Claude Code サーフェス全体で共有されます。

209 

210## Claude にコンピュータを使用させる

211 

212コンピュータ使用により、Claude はアプリを開き、スクリーンを制御し、あなたがするのと同じ方法でマシンで直接作業できます。iOS シミュレータでネイティブアプリをテストするよう Claude に依頼したり、CLI がないデスクトップツールと対話したり、GUI を通じてのみ機能する何かを自動化したりします。

213 

214<Note>

215 コンピュータ使用は macOS と Windows の研究プレビューであり、Pro または Max プランが必要です。Team または Enterprise プランでは利用できません。Claude Desktop アプリが実行されている必要があります。

216</Note>

217 

218コンピュータ使用はデフォルトでオフです。[設定で有効にして](#enable-computer-use)、Claude がスクリーンを制御する前に必要な権限を付与してください。macOS では、Accessibility と Screen Recording の権限も付与する必要があります。

219 

220<Warning>

221 [サンドボックス化された Bash ツール](/ja/sandboxing)とは異なり、コンピュータ使用は実際のデスクトップで実行され、承認したものへのアクセス権があります。Claude は各アクションをチェックし、オンスクリーンコンテンツからの潜在的なプロンプトインジェクションにフラグを立てますが、信頼境界は異なります。ベストプラクティスについては、[コンピュータ使用安全ガイド](https://support.claude.com/en/articles/14128542)を参照してください。

222</Warning>

223 

224### コンピュータ使用が適用される場合

225 

226Claude はアプリまたはサービスと対話するための複数の方法を持ち、コンピュータ使用は最も広範で最も遅いです。最も正確なツールを最初に試します:

227 

228* サービスの[コネクタ](#connect-external-tools)がある場合、Claude はコネクタを使用します。

229* タスクがシェルコマンドの場合、Claude は Bash を使用します。

230* タスクがブラウザ作業であり、[Chrome の Claude](/ja/chrome)がセットアップされている場合、Claude はそれを使用します。

231* これらのいずれも適用されない場合、Claude はコンピュータ使用を使用します。

232 

233[アプリごとのアクセス層](#app-permissions)はこれを強化します:ブラウザはビューのみに制限され、ターミナルと IDE はクリックのみに制限され、Claude をコンピュータ使用がアクティブな場合でも専用ツールに向けます。スクリーン制御は、ネイティブアプリ、ハードウェア制御パネル、iOS シミュレータ、または API のない独自ツールなど、他に何も到達できないものに予約されています。

234 

235### コンピュータ使用を有効にする

236 

237コンピュータ使用はデフォルトでオフです。それが必要な何かをするよう Claude に依頼し、それがオフの場合、Claude は Settings でコンピュータ使用を有効にすれば、タスクを実行できることを伝えます。

238 

239<Steps>

240 <Step title="デスクトップアプリを更新する">

241 Claude Desktop の最新バージョンがあることを確認してください。[claude.com/download](https://claude.com/download)でダウンロードまたは更新してから、アプリを再起動します。

242 </Step>

243 

244 <Step title="トグルをオンにする">

245 デスクトップアプリで、**Settings > General**(**Desktop app**の下)に移動します。**Computer use**トグルを見つけてオンにします。Windows では、トグルはすぐに有効になり、セットアップは完了です。macOS では、次のステップに進みます。

246 

247 トグルが表示されない場合は、macOS または Windows で Pro または Max プランを使用していることを確認してから、アプリを更新して再起動します。

248 </Step>

249 

250 <Step title="macOS 権限を付与する">

251 macOS では、トグルが有効になる前に 2 つのシステム権限を付与します:

252 

253 * **Accessibility**:Claude がクリック、入力、スクロールできるようにします

254 * **Screen Recording**:Claude がスクリーンに表示されているものを見ることができるようにします

255 

256 Settings ページは各権限の現在のステータスを表示します。いずれかが拒否されている場合、バッジをクリックして関連するシステム設定ペインを開きます。

257 </Step>

258</Steps>

259 

260### アプリ権限

261 

262Claude が初めてアプリを使用する必要がある場合、セッションにプロンプトが表示されます。**Allow for this session**または**Deny**をクリックします。承認は現在のセッション、または[Dispatch が生成したセッション](#sessions-from-dispatch)では 30 分間有効です。

263 

264プロンプトは、Claude がそのアプリに対して取得するコントロールのレベルも表示します。これらの層はアプリカテゴリによって固定され、変更できません:

265 

266| 層 | Claude ができること | 適用対象 |

267| :------- | :--------------------------------- | :-------------- |

268| ビューのみ | スクリーンショットでアプリを見る | ブラウザ、取引プラットフォーム |

269| クリックのみ | クリックとスクロール、ただし入力またはキーボードショートカットは不可 | ターミナル、IDE |

270| フルコントロール | クリック、入力、ドラッグ、キーボードショートカットの使用 | その他すべて |

271 

272Terminal、Finder または File Explorer、System Settings または Settings などの広範なリーチを持つアプリは、承認が何を付与するかを知るようにプロンプトに追加の警告を表示します。

273 

274**Settings > General**(**Desktop app**の下)で 2 つの設定を設定できます:

275 

276* **Denied apps**:ここにアプリを追加して、プロンプトなしで拒否します。Claude は許可されたアプリのアクションを通じて拒否されたアプリに間接的に影響を与える可能性がありますが、拒否されたアプリと直接対話することはできません。

277* **Unhide apps when Claude finishes**:Claude が作業している間、他のウィンドウは非表示になり、承認されたアプリのみと対話します。Claude が完了すると、この設定をオフにしない限り、非表示のウィンドウが復元されます。

278 

279## セッションを管理する

280 

281各セッションは独立した会話であり、独自のコンテキストと変更があります。複数のセッションを並列で実行するか、サイドチャットを分岐させるか、作業をクラウドに送信するか、Dispatch にセッションを電話から開始させることができます。

282 

283### セッションで並列に作業する

284 

285サイドバーの\*\*+ New session**をクリックするか、macOS で**Cmd+N**を、Windows で**Ctrl+N**を押して、複数のタスクを並列で作業します。**Ctrl+Tab**と**Ctrl+Shift+Tab\*\*を押してサイドバーのセッションをサイクルします。Git リポジトリの場合、各セッションは[Git worktrees](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)を使用してプロジェクトの独立した分離コピーを取得するため、1 つのセッションの変更は、コミットするまで他のセッションに影響しません。

286 

287Worktrees はデフォルトで`<project-root>/.claude/worktrees/`に保存されます。Settings → Claude Code の「Worktree location」でカスタムディレクトリに変更できます。また、すべての worktree ブランチ名の前に付加されるブランチプレフィックスを設定することもできます。これは Claude が作成したブランチを整理するのに便利です。完了したら、サイドバーのセッションにマウスを合わせてアーカイブアイコンをクリックして worktree を削除します。PR がマージまたはクローズされた後にセッションを自動的にアーカイブするには、Settings → Claude Code で**Auto-archive after PR merge or close**をオンにします。Auto-archive はローカルセッションで実行が完了したものにのみ適用されます。

288 

289gitignored ファイル(`.env`など)を新しい worktrees に含めるには、プロジェクトルートに[`.worktreeinclude`ファイル](/ja/common-workflows#copy-gitignored-files-to-worktrees)を作成します。

290 

291<Note>

292 セッション分離には[Git](https://git-scm.com/downloads)が必要です。ほとんどの Mac には Git がデフォルトで含まれています。Terminal で`git --version`を実行して確認してください。Windows では、Code タブが機能するために Git が必要です:[Git for Windows をダウンロード](https://git-scm.com/downloads/win)し、インストールしてアプリを再起動します。Git エラーが発生した場合は、[Cowork タブ](https://claude.com/product/cowork)で Claude に助けを求めてセットアップのトラブルシューティングを行ってください。

293</Note>

294 

295サイドバーの上部のコントロールを使用して、ステータス、プロジェクト、または環境でセッションをフィルタリングし、プロジェクトでセッションをグループ化します。セッション名を変更するには、アクティブセッションの上部のツールバーのセッションタイトルをクリックします。コンテキスト使用状況を確認するには、[使用状況を確認する](#check-usage)を参照してください。コンテキストがいっぱいになると、Claude は自動的に会話を要約して作業を続けます。`/compact`を入力して要約をより早くトリガーし、コンテキストスペースを解放することもできます。[コンテキストウィンドウ](/ja/how-claude-code-works#the-context-window)を参照して、圧縮がどのように機能するかについての詳細を確認してください。

296 

297### メインセッションを脱線させずにサイドクエスチョンを尋ねる

298 

299サイドチャットを使用すると、セッションのコンテキストを使用するが、メインの会話に何も追加しない質問を Claude に尋ねることができます。コードの一部を理解したい、仮定を確認したい、またはセッションを脱線させずにアイデアを探索したい場合に使用します。

300 

301macOS で\*\*Cmd+;**を、Windows で**Ctrl+;\*\*を押してサイドチャットを開くか、プロンプトボックスで`/btw`を入力します。サイドチャットはその時点までのメインスレッドのすべてを読み取ることができます。完了したら、サイドチャットを閉じてメインセッションを続行します。サイドチャットはローカルおよび SSH セッションで利用可能です。

302 

303### バックグラウンドタスクを監視する

304 

305タスクペインは、現在のセッション内で実行されているバックグラウンド作業を表示します:サブエージェント、バックグラウンドシェルコマンド、およびワークフロー。**Views**メニューから開くか、レイアウトにドラッグします。

306 

307任意のエントリをクリックして、サブエージェントペインで出力を確認するか、停止します。他のセッションが何をしているかを確認するには、[サイドバー](#work-in-parallel-with-sessions)を使用します。

308 

309### 長時間実行されるタスクをリモートで実行する

310 

311大規模なリファクタリング、テストスイート、マイグレーション、またはその他の長時間実行されるタスクの場合、セッションを開始するときに**Local**の代わりに**Remote**を選択します。リモートセッションは Anthropic のクラウドインフラストラクチャで実行され、アプリを閉じたりコンピュータをシャットダウンしたりしても続行します。いつでも戻ってきて進捗を確認するか、Claude を別の方向に導くことができます。[claude.ai/code](https://claude.ai/code)または Claude iOS アプリからリモートセッションを監視することもできます。

312 

313リモートセッションは複数のリポジトリもサポートしています。クラウド環境を選択した後、リポジトリピルの横の\*\*+\*\*ボタンをクリックして、セッションに追加のリポジトリを追加します。各リポジトリは独自のブランチセレクタを取得します。これは共有ライブラリとそのコンシューマーの更新など、複数のコードベースにまたがるタスクに便利です。

314 

315リモートセッションがどのように機能するかについての詳細については、[Web 上の Claude Code](/ja/claude-code-on-the-web)を参照してください。

316 

317### 別のサーフェスで続行する

318 

319セッションツールバーの右下の VS Code アイコンからアクセスできる**Continue in**メニューを使用すると、セッションを別のサーフェスに移動できます:

320 

321* **Claude Code on the Web**:ローカルセッションをリモートで実行し続けるために送信します。Desktop はブランチをプッシュし、会話の要約を生成し、完全なコンテキストを持つ新しいリモートセッションを作成します。その後、ローカルセッションをアーカイブするか保持するかを選択できます。これはクリーンなワーキングツリーが必要であり、SSH セッションでは利用できません。

322* **Your IDE**:現在の作業ディレクトリでサポートされている IDE でプロジェクトを開きます。

323 

324### Dispatch からのセッション

325 

326[Dispatch](https://support.claude.com/en/articles/13947068)は、[Cowork](https://claude.com/product/cowork#dispatch-and-computer-use)タブに存在する Claude との永続的な会話です。Dispatch にタスクをメッセージで送信すると、それをどのように処理するかを決定します。

327 

328タスクは 2 つの方法で Code セッションになります:「Claude Code セッションを開いてログインバグを修正する」など直接要求するか、Dispatch がタスクが開発作業であると判断して自動的に生成するかです。通常 Code にルーティングされるタスクには、バグの修正、依存関係の更新、テストの実行、またはプルリクエストの開くが含まれます。研究、ドキュメント編集、スプレッドシート作業は Cowork に留まります。

329 

330どちらの方法でも、Code セッションは Code タブのサイドバーに**Dispatch**バッジ付きで表示されます。完了したときまたは承認が必要なときに、電話でプッシュ通知を受け取ります。

331 

332[コンピュータ使用](#let-claude-use-your-computer)が有効な場合、Dispatch が生成した Code セッションもそれを使用できます。これらのセッションのアプリ承認は 30 分後に期限切れになり、通常の Code セッションのようにセッション全体を続けるのではなく、再度プロンプトが表示されます。

333 

334セットアップ、ペアリング、Dispatch 設定については、[Dispatch ヘルプ記事](https://support.claude.com/en/articles/13947068)を参照してください。Dispatch には Pro または Max プランが必要であり、Team または Enterprise プランでは利用できません。

335 

336Dispatch は、ターミナルから離れているときに Claude で作業する複数の方法の 1 つです。[プラットフォームと統合](/ja/platforms#work-when-you-are-away-from-your-terminal)を参照して、Remote Control、Channels、Slack、スケジュール済みタスクと比較してください。

337 

338## Claude Code を拡張する

339 

340外部サービスを接続し、再利用可能なワークフローを追加し、Claude の動作をカスタマイズし、プレビューサーバーを設定します。コネクタ、スキル、プラグインを 1 か所で管理するには、サイドバーの**Customize**をクリックします。

341 

342### 外部ツールを接続する

343 

344ローカルおよび[SSH](#ssh-sessions)セッションの場合、プロンプトボックスの横の\*\*+**ボタンをクリックして**Connectors**を選択し、Google Calendar、Slack、GitHub、Linear、Notion などの統合を追加します。セッションの前または中にコネクタを追加できます。**+\*\*ボタンはリモートセッションでは利用できませんが、[ルーチン](/ja/routines)はルーチン作成時にコネクタを設定します。

345 

346コネクタを管理または切断するには、デスクトップアプリの Settings → Connectors に移動するか、プロンプトボックスの Connectors メニューから**Manage connectors**を選択します。

347 

348接続すると、Claude はカレンダーを読み取り、メッセージを送信し、問題を作成し、ツールと直接対話できます。セッションで設定されているコネクタについて Claude に尋ねることができます。

349 

350コネクタは[MCP サーバー](/ja/mcp)であり、グラフィカルセットアップフローを備えています。サポートされているサービスとの迅速な統合に使用します。Connectors にリストされていない統合の場合、[設定ファイル](/ja/mcp#installing-mcp-servers)を介して MCP サーバーを手動で追加します。また、[カスタムコネクタを作成](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp)することもできます。

351 

352### スキルを使用する

353 

354[スキル](/ja/skills)は Claude ができることを拡張します。Claude は関連する場合に自動的にロードするか、直接呼び出すことができます:プロンプトボックスで`/`を入力するか、**+**ボタンをクリックして**Slash commands**を選択して、利用可能なものを参照します。これには[組み込みコマンド](/ja/commands)、[カスタムスキル](/ja/skills#create-your-first-skill)、コードベースからのプロジェクトスキル、および[インストール済みプラグイン](/ja/plugins)からのスキルが含まれます。1 つを選択すると、入力フィールドで強調表示されます。その後にタスクを入力して、通常どおり送信します。

355 

356### プラグインをインストールする

357 

358[プラグイン](/ja/plugins)は、スキル、エージェント、hooks、MCP サーバー、および LSP 設定を Claude Code に追加する再利用可能なパッケージです。ターミナルを使用せずにデスクトップアプリからプラグインをインストールできます。

359 

360ローカルおよび[SSH](#ssh-sessions)セッションの場合、プロンプトボックスの横の\*\*+**ボタンをクリックして**Plugins**を選択して、インストール済みプラグインとそのスキルを確認します。プラグインを追加するには、サブメニューから**Add plugin\*\*を選択してプラグインブラウザを開きます。これは、公式 Anthropic マーケットプレイスを含む、設定された[マーケットプレイス](/ja/plugin-marketplaces)から利用可能なプラグインを表示します。**Manage plugins**を選択して、プラグインを有効化、無効化、またはアンインストールします。

361 

362プラグインはユーザーアカウント、特定のプロジェクト、またはローカルのみにスコープできます。組織がプラグインを一元管理する場合、それらのプラグインは CLI セッションと同じ方法で Desktop セッションで利用可能です。プラグインはリモートセッションでは利用できません。プラグインの作成を含む完全なプラグインリファレンスについては、[プラグイン](/ja/plugins)を参照してください。

363 

364### プレビューサーバーを設定する

365 

366Claude は dev サーバーセットアップを自動的に検出し、セッションを開始するときに選択したフォルダのルートの`.claude/launch.json`に設定を保存します。Preview はこのフォルダを作業ディレクトリとして使用するため、親フォルダを選択した場合、独自の dev サーバーを持つサブフォルダは自動的に検出されません。サブフォルダのサーバーで作業するには、そのフォルダで直接セッションを開始するか、設定を手動で追加します。

367 

368サーバーの起動方法をカスタマイズするには、たとえば`npm run dev`の代わりに`yarn dev`を使用するか、ポートを変更するには、ファイルを手動で編集するか、Preview ドロップダウンの**Edit configuration**をクリックしてコードエディタで開きます。ファイルはコメント付き JSON をサポートしています。

369 

370```json theme={null}

371{

372 "version": "0.0.1",

373 "configurations": [

374 {

375 "name": "my-app",

376 "runtimeExecutable": "npm",

377 "runtimeArgs": ["run", "dev"],

378 "port": 3000

379 }

380 ]

381}

382```

383 

384同じプロジェクトから異なるサーバーを実行するために複数の設定を定義できます。たとえば、フロントエンドと API です。以下の[例](#examples)を参照してください。

385 

386#### 変更を自動検証する

387 

388`autoVerify`が有効な場合、Claude はファイルを編集した後、コード変更を自動的に検証します。スクリーンショットを撮影し、エラーをチェックし、応答を完了する前に変更が機能することを確認します。

389 

390Auto-verify はデフォルトで有効です。`.claude/launch.json`に`"autoVerify": false`を追加してプロジェクトごとに無効にするか、**Preview**ドロップダウンメニューから切り替えます。

391 

392```json theme={null}

393{

394 "version": "0.0.1",

395 "autoVerify": false,

396 "configurations": [...]

397}

398```

399 

400無効にすると、プレビューツールは引き続き利用可能であり、いつでも Claude に検証を依頼できます。Auto-verify は編集後に自動的に実行します。

401 

402#### 設定フィールド

403 

404`configurations`配列の各エントリは、以下のフィールドを受け入れます:

405 

406| フィールド | 型 | 説明 |

407| ------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |

408| `name` | string | このサーバーの一意の識別子 |

409| `runtimeExecutable` | string | 実行するコマンド(`npm`、`yarn`、`node`など) |

410| `runtimeArgs` | string\[] | `runtimeExecutable`に渡される引数(`["run", "dev"]`など) |

411| `port` | number | サーバーがリッスンするポート。デフォルトは 3000 |

412| `cwd` | string | プロジェクトルートに相対的な作業ディレクトリ。デフォルトはプロジェクトルート。プロジェクトルートを明示的に参照するには`${workspaceFolder}`を使用します |

413| `env` | object | `{ "NODE_ENV": "development" }`などのキーと値のペアとしての追加環境変数。このファイルはリポジトリにコミットされるため、ここにシークレットを入れないでください。dev サーバーにシークレットを渡すには、[ローカル環境エディタ](#local-sessions)で設定します。 |

414| `autoPort` | boolean | ポート競合の処理方法。以下を参照してください |

415| `program` | string | `node`で実行するスクリプト。[`program`と`runtimeExecutable`を使用する場合](#when-to-use-program-vs-runtimeexecutable)を参照してください |

416| `args` | string\[] | `program`に渡される引数。`program`が設定されている場合のみ使用されます |

417 

418##### `program`と`runtimeExecutable`を使用する場合

419 

420`runtimeExecutable`を`runtimeArgs`と共に使用して、パッケージマネージャーを通じて dev サーバーを起動します。たとえば、`"runtimeExecutable": "npm"`と`"runtimeArgs": ["run", "dev"]`は`npm run dev`を実行します。

421 

422`node`で直接実行したいスタンドアロンスクリプトがある場合は`program`を使用します。たとえば、`"program": "server.js"`は`node server.js`を実行します。`args`で追加フラグを渡します。

423 

424#### ポート競合

425 

426`autoPort`フィールドは、優先ポートが既に使用されている場合の処理を制御します:

427 

428* **`true`**:Claude は自動的に空きポートを見つけて使用します。ほとんどの dev サーバーに適しています。

429* **`false`**:Claude はエラーで失敗します。OAuth コールバックまたは CORS 許可リストなど、サーバーが特定のポートを使用する必要がある場合に使用します。

430* **設定されていない(デフォルト)**:Claude はサーバーがそのポートを必要とするかどうかを尋ねてから、答えを保存します。

431 

432Claude が別のポートを選択すると、割り当てられたポートを`PORT`環境変数を通じてサーバーに渡します。

433 

434#### 例

435 

436これらの設定は、異なるプロジェクトタイプの一般的なセットアップを示しています:

437 

438<Tabs>

439 <Tab title="Next.js">

440 この設定は、Yarn を使用してポート 3000 で Next.js アプリを実行します:

441 

442 ```json theme={null}

443 {

444 "version": "0.0.1",

445 "configurations": [

446 {

447 "name": "web",

448 "runtimeExecutable": "yarn",

449 "runtimeArgs": ["dev"],

450 "port": 3000

451 }

452 ]

453 }

454 ```

455 </Tab>

456 

457 <Tab title="複数のサーバー">

458 フロントエンドと API サーバーを持つモノレポの場合、複数の設定を定義します。フロントエンドは`autoPort: true`を使用して、3000 が使用されている場合は空きポートを選択し、API サーバーはポート 8080 を正確に必要とします:

459 

460 ```json theme={null}

461 {

462 "version": "0.0.1",

463 "configurations": [

464 {

465 "name": "frontend",

466 "runtimeExecutable": "npm",

467 "runtimeArgs": ["run", "dev"],

468 "cwd": "apps/web",

469 "port": 3000,

470 "autoPort": true

471 },

472 {

473 "name": "api",

474 "runtimeExecutable": "npm",

475 "runtimeArgs": ["run", "start"],

476 "cwd": "server",

477 "port": 8080,

478 "env": { "NODE_ENV": "development" },

479 "autoPort": false

480 }

481 ]

482 }

483 ```

484 </Tab>

485 

486 <Tab title="Node.js スクリプト">

487 パッケージマネージャーコマンドを使用する代わりに Node.js スクリプトを直接実行するには、`program`フィールドを使用します:

488 

489 ```json theme={null}

490 {

491 "version": "0.0.1",

492 "configurations": [

493 {

494 "name": "server",

495 "program": "server.js",

496 "args": ["--verbose"],

497 "port": 4000

498 }

499 ]

500 }

501 ```

502 </Tab>

503</Tabs>

504 

505## 環境設定

506 

507[セッションを開始する](#start-a-session)ときに選択する環境は、Claude が実行される場所と接続方法を決定します:

508 

509* **Local**:マシンで実行され、ファイルに直接アクセスできます

510* **Remote**:Anthropic のクラウドインフラストラクチャで実行されます。アプリを閉じても、セッションは続行されます。

511* **SSH**:SSH 経由で接続するリモートマシンで実行されます。たとえば、独自のサーバー、クラウド VM、または dev コンテナなどです。

512 

513### ローカルセッション

514 

515デスクトップアプリは常にシェル環境全体を継承するわけではありません。macOS では、Dock または Finder からアプリを起動すると、`~/.zshrc` または `~/.bashrc` などのシェルプロファイルを読み取り、`PATH` と固定された Claude Code 変数セットを抽出しますが、そこでエクスポートする他の変数は取得されません。Windows では、アプリはユーザーおよびシステム環境変数を継承しますが、PowerShell プロファイルは読み取りません。

516 

517ローカルセッションと dev サーバーの環境変数を設定するには、プロンプトボックスの環境ドロップダウンを開き、**Local** にマウスを合わせて、ギアアイコンをクリックしてローカル環境エディタを開きます。ここで保存する変数は、マシンに暗号化されて保存され、開始するすべてのローカルセッションとプレビューサーバーに適用されます。また、`~/.claude/settings.json` ファイルの `env` キーに変数を追加することもできます。ただし、これらは Claude セッションにのみ到達し、dev サーバーには到達しません。サポートされている変数の完全なリストについては、[環境変数](/ja/env-vars)を参照してください。

518 

519[拡張思考](/ja/common-workflows#use-extended-thinking-thinking-mode)はデフォルトで有効になっており、複雑な推論タスクのパフォーマンスを向上させますが、追加のトークンを使用します。思考を完全に無効にするには、ローカル環境エディタで `MAX_THINKING_TOKENS` を `0` に設定します。[適応的推論](/ja/model-config#adjust-effort-level)を持つモデルでは、適応的推論が思考の深さを制御するため、他の `MAX_THINKING_TOKENS` 値は無視されます。Opus 4.6 と Sonnet 4.6 では、固定思考予算を使用するために `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` を `1` に設定します。Opus 4.7 は常に適応的推論を使用し、固定予算モードはありません。

520 

521### リモートセッション

522 

523リモートセッションはアプリを閉じても、バックグラウンドで続行されます。使用状況は[サブスクリプションプランの制限](/ja/costs)にカウントされ、別の計算料金はありません。

524 

525異なるネットワークアクセスレベルと環境変数を持つカスタムクラウド環境を作成できます。リモートセッションを開始するときに環境ドロップダウンを選択し、**Add environment** を選択します。ネットワークアクセスと環境変数の設定の詳細については、[クラウド環境](/ja/claude-code-on-the-web#the-cloud-environment)を参照してください。

526 

527### SSH セッション

528 

529SSH セッションを使用すると、デスクトップアプリをインターフェイスとして使用しながら、リモートマシンで Claude Code を実行できます。これは、クラウド VM、dev コンテナ、または特定のハードウェアまたは依存関係を持つサーバーに存在するコードベースで作業するのに便利です。

530 

531SSH 接続を追加するには、セッションを開始する前に環境ドロップダウンをクリックして、**+ Add SSH connection** を選択します。ダイアログは以下を要求します:

532 

533* **Name**:この接続のフレンドリーラベル

534* **SSH Host**:`user@hostname` または `~/.ssh/config` で定義されたホスト

535* **SSH Port**:空のままの場合はデフォルトの 22、または SSH config からのポート

536* **Identity File**:`~/.ssh/id_rsa` などの秘密鍵へのパス。デフォルトキーまたは SSH config を使用するには空のままにします。

537 

538追加されると、接続は環境ドロップダウンに表示されます。それを選択して、そのマシンでセッションを開始します。Claude はリモートマシンで実行され、そのファイルとツールにアクセスできます。

539 

540リモートマシンは Linux または macOS を実行する必要があります。デスクトップは初回接続時にリモートマシンに Claude Code を自動的にインストールします。接続されると、SSH セッションは権限モード、コネクタ、プラグイン、および MCP サーバーをサポートします。

541 

542#### チームの SSH 接続を事前設定する

543 

544管理者は、[管理設定](/ja/settings#settings-precedence)ファイルに `sshConfigs` を追加することで、SSH 接続をチームメンバーに配布できます。この方法で定義された接続は、各ユーザーの環境ドロップダウンに自動的に表示され、管理対象として表示されるため、ユーザーはそれらを選択できますが、アプリで編集または削除することはできません。

545 

546次の例は、リモートホストの `~/projects` で開く単一の接続を事前設定しています:

547 

548```json theme={null}

549{

550 "sshConfigs": [

551 {

552 "id": "shared-dev-vm",

553 "name": "Shared Dev VM",

554 "sshHost": "user@dev.example.com",

555 "sshPort": 22,

556 "sshIdentityFile": "~/.ssh/id_ed25519",

557 "startDirectory": "~/projects"

558 }

559 ]

560}

561```

562 

563各エントリには `id`、`name`、および `sshHost` が必要です。`sshPort`、`sshIdentityFile`、および `startDirectory` フィールドはオプションです。ユーザーは、ダイアログを通じて追加された接続が保存される独自の `~/.claude/settings.json` に `sshConfigs` を追加することもできます。

564 

565## エンタープライズ設定

566 

567Team または Enterprise プランの組織は、管理コンソールコントロール、管理設定ファイル、およびデバイス管理ポリシーを通じてデスクトップアプリの動作を管理できます。

568 

569### 管理コンソールコントロール

570 

571これらの設定は[管理設定コンソール](https://claude.ai/admin-settings/claude-code)を通じて設定されます:

572 

573* **Code in the desktop**:組織内のユーザーがデスクトップアプリで Claude Code にアクセスできるかどうかを制御します

574* **Code in the web**:組織の[Web セッション](/ja/claude-code-on-the-web)を有効または無効にします

575* **Remote Control**:組織の[Remote Control](/ja/remote-control)を有効または無効にします

576* **Disable Bypass permissions mode**:組織内のユーザーが bypass permissions モードを有効にするのを防ぎます

577 

578### 管理設定

579 

580管理設定はプロジェクトおよびユーザー設定をオーバーライドし、Desktop が CLI セッションを生成するときに適用されます。これらのキーを組織の[管理設定](/ja/settings#settings-precedence)ファイルで設定するか、管理コンソールを通じてリモートでプッシュできます。

581 

582| キー | 説明 |

583| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |

584| `permissions.disableBypassPermissionsMode` | ユーザーが Bypass permissions モードを有効にするのを防ぐには`"disable"`に設定します。 |

585| `disableAutoMode` | ユーザーが[Auto](/ja/permission-modes#eliminate-prompts-with-auto-mode)モードを有効にするのを防ぐには`"disable"`に設定します。モードセレクタから Auto を削除します。`permissions`の下でも受け入れられます。 |

586| `autoMode` | 組織全体で auto mode 分類器が信頼およびブロックするものをカスタマイズします。[auto mode を設定する](/ja/auto-mode-config)を参照してください。 |

587| `sshConfigs` | 環境ドロップダウンに表示される[SSH 接続](#pre-configure-ssh-connections-for-your-team)を事前設定します。ユーザーは管理接続を編集または削除できません。 |

588 

589ディスク上の各マシンにデプロイされた管理設定ファイルは Desktop セッションに適用されます。管理コンソールを通じてリモートでプッシュされた管理設定は、現在 CLI および IDE セッションにのみ適用されるため、Desktop デプロイメントの場合は MDM 経由でファイルを配布するか、上記の[管理コンソールコントロール](#admin-console-controls)を使用してください。

590 

591`permissions.disableBypassPermissionsMode`と`disableAutoMode`はユーザーおよびプロジェクト設定でも機能しますが、管理設定に配置するとユーザーがそれらをオーバーライドするのを防ぎます。`autoMode`はユーザー設定、`.claude/settings.local.json`、および管理設定から読み取られますが、チェックイン済みの`.claude/settings.json`からは読み取られません:クローンされたリポジトリは独自の分類器ルールを注入できません。`allowManagedPermissionRulesOnly`と`allowManagedHooksOnly`を含む管理専用設定の完全なリストについては、[管理専用設定](/ja/permissions#managed-only-settings)を参照してください。

592 

593### デバイス管理ポリシー

594 

595IT チームは、macOS の MDM または Windows のグループポリシーを通じてデスクトップアプリを管理できます。利用可能なポリシーには、Claude Code 機能の有効化または無効化、自動更新の制御、およびカスタムデプロイメント URL の設定が含まれます。

596 

597* **macOS**:Jamf または Kandji などのツールを使用して`com.anthropic.Claude`プリファレンスドメインを通じて設定します

598* **Windows**:`SOFTWARE\Policies\Claude`のレジストリを通じて設定します

599 

600### 認証と SSO

601 

602エンタープライズ組織はすべてのユーザーに SSO を要求できます。プランレベルの詳細については[認証](/ja/authentication)を参照し、SAML および OIDC 設定については[SSO の設定](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)を参照してください。

603 

604### データ処理

605 

606Claude Code はローカルセッションではコードをローカルで処理するか、リモートセッションでは Anthropic のクラウドインフラストラクチャで処理します。会話とコードコンテキストは処理のために Anthropic の API に送信されます。データ保持、プライバシー、およびコンプライアンスの詳細については、[データ処理](/ja/data-usage)を参照してください。

607 

608### デプロイメント

609 

610Desktop はエンタープライズデプロイメントツールを通じて配布できます:

611 

612* **macOS**:Jamf または Kandji などの MDM を使用して`.dmg`インストーラーを通じて配布します

613* **Windows**:MSIX パッケージまたは`.exe`インストーラーを通じてデプロイします。サイレントインストールを含むエンタープライズデプロイメントオプションについては、[Deploy Claude Desktop for Windows](https://support.claude.com/en/articles/12622703-deploy-claude-desktop-for-windows)を参照してください。

614 

615ネットワーク設定(プロキシ設定、ファイアウォール許可リスト、LLM ゲートウェイなど)については、[ネットワーク設定](/ja/network-config)を参照してください。

616 

617完全なエンタープライズ設定リファレンスについては、[エンタープライズ設定ガイド](https://support.claude.com/en/articles/12622667-enterprise-configuration)を参照してください。

618 

619## CLI から来ましたか?

620 

621既に Claude Code CLI を使用している場合、Desktop は同じ基盤となるエンジンをグラフィカルインターフェイスで実行します。同じマシン上で、同じプロジェクト上でも、両方を同時に実行できます。各々は個別のセッション履歴を保持しますが、CLAUDE.md ファイルを通じて設定とプロジェクトメモリを共有します。

622 

623CLI セッションを Desktop に移動するには、ターミナルで `/desktop` を実行します。Claude はセッションを保存し、デスクトップアプリで開いてから CLI を終了します。このコマンドは macOS と Windows でのみ利用可能です。

624 

625<Tip>

626 Desktop と CLI をいつ使用するか:並列セッションをウィンドウで管理したい場合、ペインを並べて配置したい場合、または変更をビジュアルで確認したい場合は Desktop を使用します。スクリプト、自動化、またはターミナルワークフローが必要な場合は CLI を使用します。

627</Tip>

628 

629### CLI フラグの同等物

630 

631このテーブルは、一般的な CLI フラグのデスクトップアプリの同等物を示しています。リストされていないフラグは、スクリプトまたは自動化用に設計されているため、デスクトップの同等物がありません。

632 

633| CLI | Desktop の同等物 |

634| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |

635| `--model sonnet` | 送信ボタンの横のモデルドロップダウン |

636| `--resume`、`--continue` | サイドバーのセッションをクリック |

637| `--permission-mode` | 送信ボタンの横のモードセレクタ |

638| `--dangerously-skip-permissions` | Bypass permissions モード。Settings → Claude Code → 「Allow bypass permissions mode」で有効にします。エンタープライズ管理者はこの設定を無効にできます。 |

639| `--add-dir` | リモートセッションで **+** ボタンで複数のリポジトリを追加 |

640| `--allowedTools`、`--disallowedTools` | [設定ファイル](/ja/settings)の権限ルールは引き続き適用されます。Desktop の同等物はありません。 |

641| `--verbose` | [Verbose ビューモード](#switch-view-modes)(Transcript view ドロップダウン) |

642| `--print`、`--output-format` | 利用できません。Desktop はインタラクティブのみです。 |

643| `ANTHROPIC_MODEL` 環境変数 | 送信ボタンの横のモデルドロップダウン |

644| `MAX_THINKING_TOKENS` 環境変数 | ローカル環境エディタで設定します。[環境設定](#environment-configuration)を参照してください。 |

645 

646### 共有設定

647 

648Desktop と CLI は同じ設定ファイルを読み取るため、セットアップが引き継がれます:

649 

650* プロジェクト内の **[CLAUDE.md](/ja/memory)** および `CLAUDE.local.md` ファイルは両方で使用されます

651* `~/.claude.json` または `.mcp.json` で設定された **[MCP サーバー](/ja/mcp)** は両方で機能します

652* 設定で定義された **[Hooks](/ja/hooks)** および **[skills](/ja/skills)** は両方に適用されます

653* `~/.claude.json` および `~/.claude/settings.json` の **[設定](/ja/settings)** は共有されます。`settings.json` の権限ルール、許可されたツール、およびその他の設定は Desktop セッションに適用されます。

654* **モデル**:Sonnet、Opus、および Haiku は両方で利用可能です。Desktop では、送信ボタンの横のドロップダウンからモデルを選択します。セッション中にモデルを変更できます。

655 

656<Note>

657 **MCP サーバー:デスクトップチャットアプリと Claude Code**:Claude Desktop チャットアプリの `claude_desktop_config.json` で設定された MCP サーバーは Claude Code とは別であり、Code タブに表示されません。Claude Code で MCP サーバーを使用するには、`~/.claude.json` またはプロジェクトの `.mcp.json` ファイルで設定します。詳細については、[MCP 設定](/ja/mcp#installing-mcp-servers)を参照してください。

658</Note>

659 

660### 機能比較

661 

662このテーブルは、CLI と Desktop の間のコア機能を比較しています。CLI フラグの完全なリストについては、[CLI リファレンス](/ja/cli-reference)を参照してください。

663 

664| 機能 | CLI | Desktop |

665| --------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

666| 権限モード | `dontAsk` を含むすべてのモード | Ask permissions、Auto accept edits、Plan mode、Auto、および Settings 経由の Bypass permissions |

667| `--dangerously-skip-permissions` | CLI フラグ | Bypass permissions モード。Settings → Claude Code → 「Allow bypass permissions mode」で有効にします |

668| [サードパーティプロバイダー](/ja/third-party-integrations) | Bedrock、Vertex、Foundry | Anthropic の API がデフォルト。エンタープライズデプロイメントは Vertex AI とゲートウェイプロバイダーを設定できます。[エンタープライズ設定ガイド](https://support.claude.com/en/articles/12622667-enterprise-configuration)を参照してください。 |

669| [MCP サーバー](/ja/mcp) | 設定ファイルで設定 | ローカルおよび SSH セッションの Connectors UI、または設定ファイル |

670| [Plugins](/ja/plugins) | `/plugin` コマンド | プラグインマネージャー UI |

671| @mention ファイル | テキストベース | オートコンプリート付き;ローカルおよび SSH セッションのみ |

672| ファイル添付 | 利用できません | 画像、PDF |

673| セッション分離 | [`--worktree`](/ja/cli-reference) フラグ | 自動 worktrees |

674| 複数セッション | 別のターミナル | サイドバータブ |

675| 定期的なタスク | Cron ジョブ、CI パイプライン | [スケジュール済みタスク](/ja/desktop-scheduled-tasks) |

676| コンピュータ使用 | [macOS で `/mcp` 経由で有効化](/ja/computer-use) | [macOS と Windows でアプリとスクリーン制御](#let-claude-use-your-computer) |

677| Dispatch 統合 | 利用できません | [Dispatch セッション](#sessions-from-dispatch)(サイドバー) |

678| スクリプトと自動化 | [`--print`](/ja/cli-reference)、[Agent SDK](/ja/headless) | 利用できません |

679 

680### Desktop では利用できないもの

681 

682以下の機能は CLI または VS Code 拡張機能でのみ利用可能です:

683 

684* **サードパーティプロバイダー**:Desktop は Anthropic の API に直接接続します。エンタープライズデプロイメントは Vertex AI とゲートウェイプロバイダーを [管理設定](https://support.claude.com/en/articles/12622667-enterprise-configuration)経由で設定できます。Bedrock または Foundry の場合は、[CLI](/ja/quickstart)を使用します。

685* **Linux**:デスクトップアプリは macOS と Windows でのみ利用可能です。Linux では、[CLI](/ja/quickstart)を使用します。

686* **インラインコード提案**:Desktop はオートコンプリートスタイルの提案を提供しません。会話型プロンプトと明示的なコード変更を通じて機能します。

687* **エージェントチーム**:マルチエージェントオーケストレーションは [CLI](/ja/agent-teams) および [Agent SDK](/ja/headless) を通じて利用可能であり、Desktop では利用できません。

688 

689## トラブルシューティング

690 

691以下のセクションでは、デスクトップアプリに固有の問題について説明します。チャットに表示される`API Error: 500`、`529 Overloaded`、`429`、または`Prompt is too long`などのランタイム API エラーについては、[エラーリファレンス](/ja/errors)を参照してください。これらのエラーとその修正は、CLI、Desktop、Web 全体で同じです。

692 

693### バージョンを確認する

694 

695実行しているデスクトップアプリのバージョンを確認するには:

696 

697* **macOS**:メニューバーの**Claude**をクリックしてから、**About Claude**をクリック

698* **Windows**:**Help**をクリックしてから、**About**をクリック

699 

700バージョン番号をクリックしてクリップボードにコピーします。

701 

702### Code タブの 403 またはエラー認証エラー

703 

704Code タブを使用するときに`Error 403: Forbidden`またはその他の認証エラーが表示される場合:

705 

7061. アプリメニューからサインアウトして再度サインインします。これが最も一般的な修正です。

7072. アクティブな有料サブスクリプション(Pro、Max、Team、または Enterprise)があることを確認します。

7083. CLI は機能するが Desktop は機能しない場合、デスクトップアプリを完全に終了し(ウィンドウを閉じるだけではなく)、再度開いてサインインします。

7094. インターネット接続とプロキシ設定を確認します。

710 

711### 起動時に空白または停止画面

712 

713アプリが開いても空白または応答しない画面が表示される場合:

714 

7151. アプリを再起動します。

7162. 保留中の更新を確認します。アプリは起動時に自動更新されます。

7173. Windows では、**Windows Logs → Application**の Event Viewer でクラッシュログを確認します。

718 

719### 「Failed to load session」

720 

721`Failed to load session`が表示される場合、選択したフォルダが存在しなくなった可能性があります。Git リポジトリがインストールされていない Git LFS を必要とする可能性があります。またはファイル権限がアクセスを防ぐ可能性があります。別のフォルダを選択するか、アプリを再起動してみてください。

722 

723### セッションがインストール済みツールを見つけられない

724 

725Claude が`npm`、`node`、またはその他の CLI コマンドなどのツールを見つけられない場合、ツールが通常のターミナルで機能することを確認し、シェルプロファイルが PATH を正しく設定していることを確認し、デスクトップアプリを再起動して環境変数を再度読み込みます。

726 

727### Git および Git LFS エラー

728 

729Windows では、Code タブがローカルセッションを開始するために Git が必要です。「Git is required」が表示される場合、[Git for Windows](https://git-scm.com/downloads/win)をインストールしてアプリを再起動します。

730 

731「Git LFS is required by this repository but is not installed」が表示される場合、[git-lfs.com](https://git-lfs.com/)から Git LFS をインストールし、`git lfs install`を実行してアプリを再起動します。

732 

733### Windows で MCP サーバーが機能しない

734 

735MCP サーバートグルが応答しない場合、または Windows でサーバーが接続に失敗する場合、サーバーが設定で正しく設定されていることを確認し、アプリを再起動し、Task Manager でサーバープロセスが実行されていることを確認し、接続エラーについてサーバーログを確認します。

736 

737### アプリが終了しない

738 

739* **macOS**:Cmd+Q を押します。アプリが応答しない場合、Cmd+Option+Esc で Force Quit を使用し、Claude を選択して Force Quit をクリックします。

740* **Windows**:Ctrl+Shift+Esc で Task Manager を使用して Claude プロセスを終了します。

741 

742### Windows 固有の問題

743 

744* **インストール後に PATH が更新されない**:新しいターミナルウィンドウを開きます。PATH の更新は新しいターミナルセッションにのみ適用されます。

745* **同時インストールエラー**:別のインストールが進行中であるというエラーが表示されるが、実際には進行中でない場合、インストーラーを管理者として実行してみてください。

746 

747### CLI で開くときに「Branch doesn't exist yet」

748 

749リモートセッションはローカルマシンに存在しないブランチを作成できます。セッションツールバーのブランチ名をクリックしてコピーしてから、ローカルでフェッチします:

750 

751```bash theme={null}

752git fetch origin <branch-name>

753git checkout <branch-name>

754```

755 

756### まだ立ち往生していますか?

757 

758* [GitHub Issues](https://github.com/anthropics/claude-code/issues)でバグを検索またはファイルします

759* [Claude サポートセンター](https://support.claude.com/)にアクセスします

760 

761バグをファイルするときは、デスクトップアプリのバージョン、オペレーティングシステム、正確なエラーメッセージ、および関連ログを含めます。macOS では Console.app を確認します。Windows では Event Viewer → Windows Logs → Application を確認します。

desktop-quickstart.md +129 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# デスクトップアプリを始める

6 

7> Claude Code をデスクトップにインストールして、最初のコーディングセッションを開始します

8 

9デスクトップアプリは、複数のセッションを並行して実行するために構築されたグラフィカルインターフェース付きの Claude Code を提供します。並列作業を管理するためのサイドバー、統合ターミナルとファイルエディター付きのドラッグアンドドロップレイアウト、ビジュアル diff レビュー、ライブアプリプレビュー、自動マージ機能付きの GitHub PR 監視、スケジュール済みタスクがあります。ターミナルは不要です。

10 

11<CardGroup cols={2}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon

14 </Card>

15 

16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors

18 </Card>

19</CardGroup>

20 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.

22 

23<Note>

24 Claude Code には [Pro、Max、Team、または Enterprise サブスクリプション](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)が必要です。

25</Note>

26 

27このページでは、アプリのインストールと最初のセッションの開始について説明します。既にセットアップが完了している場合は、[Claude Code Desktop を使用する](/ja/desktop)で完全なリファレンスを参照してください。

28 

29デスクトップアプリには 3 つのタブがあります。

30 

31* **Chat**: ファイルアクセスなしの一般的な会話。claude.ai と同様です。

32* **Cowork**: クラウド VM で独自の環境を持つ自律型バックグラウンドエージェント。あなたが他の作業をしている間も独立して実行できます。

33* **Code**: ローカルファイルへの直接アクセスを備えたインタラクティブなコーディングアシスタント。各変更をリアルタイムでレビューして承認します。

34 

35Chat と Cowork は [Claude Desktop サポート記事](https://support.claude.com/en/collections/16163169-claude-desktop)で説明されています。このページは **Code** タブに焦点を当てています。

36 

37## インストール

38 

39<Steps>

40 <Step title="インストールしてサインインする">

41 上記のリンクからお使いのプラットフォーム用のインストーラーをダウンロードして実行します。macOS の Applications フォルダまたは Windows の Start メニューから Claude を起動し、Anthropic アカウントでサインインします。

42 </Step>

43 

44 <Step title="Code タブを開く">

45 上部中央の **Code** タブをクリックします。Code をクリックするとアップグレードを促すメッセージが表示される場合は、最初に[有料プランにサブスクライブ](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade)する必要があります。オンラインでサインインするよう促すメッセージが表示される場合は、サインインを完了してアプリを再起動してください。403 エラーが表示される場合は、[認証のトラブルシューティング](/ja/desktop#403-or-authentication-errors-in-the-code-tab)を参照してください。

46 </Step>

47</Steps>

48 

49デスクトップアプリには Claude Code が含まれています。Node.js または CLI を別途インストールする必要はありません。ターミナルから `claude` を使用するには、CLI を別途インストールしてください。[CLI を始める](/ja/quickstart)を参照してください。

50 

51## 最初のセッションを開始する

52 

53Code タブを開いた状態で、プロジェクトを選択して Claude に何かをさせます。

54 

55<Steps>

56 <Step title="環境とフォルダを選択する">

57 **Local** を選択して、Claude をマシン上で実行し、ファイルを直接使用します。**Select folder** をクリックして、プロジェクトディレクトリを選択します。

58 

59 <Tip>

60 よく知っている小さなプロジェクトから始めてください。Claude Code が何ができるかを見るための最速の方法です。Windows では、ローカルセッションが機能するために [Git](https://git-scm.com/downloads/win)がインストールされている必要があります。ほとんどの Mac にはデフォルトで Git が含まれています。

61 </Tip>

62 

63 以下も選択できます。

64 

65 * **Remote**: Anthropic のクラウドインフラストラクチャでセッションを実行します。アプリを閉じても続行します。リモートセッションは [Claude Code on the web](/ja/claude-code-on-the-web)と同じインフラストラクチャを使用します。

66 * **SSH**: SSH 経由でリモートマシンに接続します(独自のサーバー、クラウド VM、または dev コンテナー)。Claude Code はリモートマシンにインストールされている必要があります。

67 </Step>

68 

69 <Step title="モデルを選択する">

70 送信ボタンの横のドロップダウンからモデルを選択します。Opus、Sonnet、Haiku の比較については、[モデル](/ja/model-config#available-models)を参照してください。後でこのドロップダウンから同じモデルを変更できます。

71 </Step>

72 

73 <Step title="Claude に何をするかを伝える">

74 Claude にしてほしいことを入力します。

75 

76 * `TODO コメントを見つけて修正する`

77 * `メイン関数のテストを追加する`

78 * `このコードベースの指示を含む CLAUDE.md を作成する`

79 

80 [セッション](/ja/desktop#work-in-parallel-with-sessions)は、コードについて Claude との会話です。各セッションは独自のコンテキストと変更を追跡するため、複数のタスクに取り組む際に相互に干渉することなく作業できます。

81 </Step>

82 

83 <Step title="変更をレビューして受け入れる">

84 デフォルトでは、Code タブは [Ask permissions モード](/ja/desktop#choose-a-permission-mode)で開始されます。このモードでは、Claude が変更を提案し、適用する前にあなたの承認を待ちます。以下が表示されます。

85 

86 1. 各ファイルで何が変わるかを正確に示す [diff ビュー](/ja/desktop#review-changes-with-diff-view)

87 2. 各変更を承認または拒否する Accept/Reject ボタン

88 3. Claude があなたのリクエストを処理する際のリアルタイム更新

89 

90 変更を拒否すると、Claude は別の方法で進めたいかを尋ねます。あなたが受け入れるまで、ファイルは変更されません。

91 </Step>

92</Steps>

93 

94## 次は何をしますか?

95 

96最初の編集が完了しました。Desktop ができることすべての完全なリファレンスについては、[Claude Code Desktop を使用する](/ja/desktop)を参照してください。次に試すべきことをいくつか紹介します。

97 

98**割り込みと操舵。** Claude をいつでも割り込むことができます。間違った方向に進んでいる場合は、停止ボタンをクリックするか、修正を入力して **Enter** を押します。Claude は何をしているかを停止し、あなたの入力に基づいて調整します。完了を待つか、最初からやり直す必要はありません。

99 

100**Claude により多くのコンテキストを提供する。** プロンプトボックスに `@filename` と入力して特定のファイルを会話に取り込み、添付ボタンを使用して画像と PDF を添付するか、ファイルをプロンプトに直接ドラッグアンドドロップします。Claude が持つコンテキストが多いほど、結果は良くなります。[ファイルとコンテキストを追加する](/ja/desktop#add-files-and-context-to-prompts)を参照してください。

101 

102**繰り返し可能なタスクにスキルを使用する。** `/` を入力するか、**+** → **Slash commands** をクリックして、[組み込みコマンド](/ja/commands)、[カスタムスキル](/ja/skills)、およびプラグインスキルを参照します。スキルは、コードレビューチェックリストやデプロイメント手順など、必要なときに呼び出すことができる再利用可能なプロンプトです。

103 

104**コミット前に変更をレビューする。** Claude がファイルを編集した後、`+12 -1` インジケーターが表示されます。それをクリックして [diff ビュー](/ja/desktop#review-changes-with-diff-view)を開き、ファイルごとに変更をレビューし、特定の行にコメントします。Claude はあなたのコメントを読んで修正します。**Review code** をクリックして、Claude に diff を評価させ、インライン提案を残させます。

105 

106**コントロール量を調整する。** [権限モード](/ja/desktop#choose-a-permission-mode)は、バランスを制御します。Ask permissions(デフォルト)は、すべての編集の前に承認が必要です。Auto accept edits は、ファイル編集を自動的に受け入れて、より高速な反復を実現します。Plan mode では、Claude がファイルに触れずにアプローチをマップアウトできます。これは大規模なリファクタリング前に便利です。

107 

108**プラグインを追加してさらに多くの機能を追加する。** プロンプトボックスの横の **+** ボタンをクリックして **Plugins** を選択し、スキル、エージェント、MCP servers などを追加する [プラグイン](/ja/desktop#install-plugins)を参照してインストールします。

109 

110**ワークスペースを配置する。** チャット、diff、ターミナル、ファイル、プレビューペインを好きなレイアウトにドラッグします。**Ctrl+\`** でターミナルを開いてセッションと一緒にコマンドを実行するか、ファイルパスをクリックしてファイルペインで開きます。[ワークスペースを配置する](/ja/desktop#arrange-your-workspace)を参照してください。

111 

112**アプリをプレビューする。** **Preview** ドロップダウンをクリックして、デスクトップで直接開発サーバーを実行します。Claude は実行中のアプリを表示し、エンドポイントをテストし、ログを検査し、見たものに対して反復できます。[アプリをプレビューする](/ja/desktop#preview-your-app)を参照してください。

113 

114**プルリクエストを追跡する。** PR を開いた後、Claude Code は CI チェック結果を監視し、失敗を自動的に修正するか、すべてのチェックが成功したら PR をマージできます。[プルリクエストステータスを監視する](/ja/desktop#monitor-pull-request-status)を参照してください。

115 

116**Claude をスケジュールに配置する。** [スケジュール済みタスク](/ja/desktop-scheduled-tasks)を設定して、Claude を定期的に自動実行します。毎朝のコードレビュー、週次の依存関係監査、または接続されたツールから取得する概要です。

117 

118**準備ができたらスケールアップする。** サイドバーから [並列セッション](/ja/desktop#work-in-parallel-with-sessions)を開いて、複数のタスクに同時に取り組みます。各タスクは独自の Git worktree にあります。[タスクペイン](/ja/desktop#watch-background-tasks)を開いて、セッションが実行しているサブエージェントとバックグラウンドコマンドを監視します。[サイドチャット](/ja/desktop#ask-a-side-question-without-derailing-the-session)を開いて、メインスレッドを脱線させずに質問をします。[長時間実行される作業をクラウドに送信](/ja/desktop#run-long-running-tasks-remotely)して、アプリを閉じても続行するか、タスクが予想より長くかかる場合は [web またはあなたの IDE でセッションを続行](/ja/desktop#continue-in-another-surface)します。[GitHub、Slack、Linear などの外部ツールを接続](/ja/desktop#extend-claude-code)して、ワークフローをまとめます。

119 

120## CLI から来ましたか?

121 

122Desktop は、グラフィカルインターフェース付きの CLI と同じエンジンを実行します。同じプロジェクトで両方を同時に実行でき、設定(CLAUDE.md ファイル、MCP servers、hooks、スキル、設定)を共有します。機能、フラグの同等物、Desktop で利用できないものの完全な比較については、[CLI 比較](/ja/desktop#coming-from-the-cli)を参照してください。

123 

124## 次のステップ

125 

126* [Claude Code Desktop を使用する](/ja/desktop): 権限モード、並列セッション、diff ビュー、コネクター、エンタープライズ設定

127* [トラブルシューティング](/ja/desktop#troubleshooting): 一般的なエラーとセットアップの問題の解決策

128* [ベストプラクティス](/ja/best-practices): 効果的なプロンプトを書き、Claude Code を最大限に活用するためのヒント

129* [一般的なワークフロー](/ja/common-workflows): デバッグ、リファクタリング、テストなどのチュートリアル

devcontainer.md +194 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 開発コンテナ

6 

7> チーム全体で一貫した分離環境を実現するため、開発コンテナ内で Claude Code を実行します。

8 

9[開発コンテナ](https://containers.dev/)(dev container)を使用すると、チームのすべてのエンジニアが実行できる同一の分離環境を定義できます。Claude Code がそのコンテナにインストールされている場合、Claude が実行するコマンドはホストマシンではなくコンテナ内で実行され、プロジェクトファイルへの編集はローカルリポジトリに表示されます。

10 

11このページでは、[開発コンテナに Claude Code をインストール](#add-claude-code-to-your-dev-container)する方法と、その後の設定トピックについて説明します。各トピックは独立しているため、必要な設定に合わせてジャンプしてください:

12 

13* [再構築時に認証と設定を保持する](#persist-authentication-and-settings-across-rebuilds)

14* [組織ポリシーを適用する](#enforce-organization-policy)

15* [ネットワークエグレスを制限する](#restrict-network-egress)

16* [権限プロンプトなしで実行する](#run-without-permission-prompts)

17 

18<Warning>

19 開発コンテナは実質的な保護を提供していますが、すべての攻撃に完全に耐性のあるシステムはありません。

20 `--dangerously-skip-permissions` で実行する場合、開発コンテナは、[`~/.claude`](/ja/claude-directory) に保存されている Claude Code の認証情報を含む、コンテナ内でアクセス可能なものを悪意のあるプロジェクトが流出させることを防ぎません。

21 信頼できるリポジトリで開発する場合にのみ開発コンテナを使用し、Claude のアクティビティを監視してください。

22 `~/.ssh` やクラウド認証情報ファイルなどのホストシークレットをコンテナにマウントすることは避け、リポジトリスコープまたは短期間有効なトークンを使用してください。

23</Warning>

24 

25<Accordion title="開発コンテナがエディタとどのように連携するか">

26 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=9017b1d16a446c6cc37ba562f35b9aae" className="dark:hidden" alt="ホスト上のエディタが Docker 開発コンテナに接続する図。Claude Code、ターミナル、ビルドツールはコンテナ内で実行されます。ホストリポジトリはコンテナにバインドマウントされ、ワークスペースとして機能します。" width="640" height="300" data-path="images/devcontainer-architecture.svg" />

27 

28 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture-dark.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=ef00c8e25b1ea7a3a152895f1488831b" className="hidden dark:block" alt="ホスト上のエディタが Docker 開発コンテナに接続する図。Claude Code、ターミナル、ビルドツールはコンテナ内で実行されます。ホストリポジトリはコンテナにバインドマウントされ、ワークスペースとして機能します。" width="640" height="300" data-path="images/devcontainer-architecture-dark.svg" />

29 

30 開発コンテナは Docker コンテナとして実行され、マシン上またはGitHub Codespaces などのクラウドホスト上で実行されます。Dev Containers 仕様をサポートするエディタ(VS Code、GitHub Codespaces、JetBrains IDE、Cursor など)がそのコンテナに接続します。通常どおりエディタでファイルを参照および編集しますが、統合ターミナル、言語サーバー、ビルドツールはすべてホストではなくコンテナ内で実行されます。プレーン Vim などの開発コンテナをサポートしていないエディタはこのワークフローの対象外です。

31 

32 Claude Code はコンテナ内で実行されるため、プロジェクトのツールチェーンの残りの部分と同じファイル、依存関係、ツールが表示されます。VS Code では、[Claude Code 拡張機能パネル](/ja/vs-code)を使用するか、統合ターミナルで `claude` を実行できます。どちらもコンテナ内で実行され、同じ `~/.claude` 設定を共有します。

33</Accordion>

34 

35## 開発コンテナに Claude Code を追加する

36 

37Claude Code は、[Claude Code Dev Container Feature](https://github.com/anthropics/devcontainer-features/tree/main/src/claude-code) を通じて任意の開発コンテナにインストールされます。

38 

39設定は、VS Code、GitHub Codespaces、JetBrains IDE など、Dev Containers 仕様をサポートするあらゆるツールで機能します。以下の手順では、例として VS Code を使用しています。

40 

41VS Code または Codespaces でコンテナを開くと、機能は Claude Code VS Code 拡張機能も追加します。他のエディタはその部分を無視します。

42 

43<Tip>

44 開発コンテナが初めてですか?[VS Code Dev Containers チュートリアル](https://code.visualstudio.com/docs/devcontainers/tutorial)では、Docker、拡張機能、最初のコンテナを開く方法について説明しています。ファイアウォールと永続ボリュームを備えた、より完全な強化例については、[リファレンスコンテナを試す](#try-the-reference-container)を参照してください。

45</Tip>

46 

47<Steps>

48 <Step title="devcontainer.json を作成または更新する">

49 以下をリポジトリの `.devcontainer/devcontainer.json` として保存するか、既存ファイルに `features` ブロックを追加します。

50 

51 末尾のバージョンタグ(`:1.0` など)は、Claude Code リリースではなく、機能のインストールスクリプトをピン留めします。機能は最新の Claude Code をインストールし、Claude Code はデフォルトでコンテナ内で自動更新されます。

52 

53 CLI バージョンをピン留めするか、自動更新を無効にするには、[組織ポリシーを適用する](#enforce-organization-policy)を参照してください。

54 

55 ```json .devcontainer/devcontainer.json theme={null}

56 {

57 "image": "mcr.microsoft.com/devcontainers/base:ubuntu",

58 "features": {

59 "ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}

60 }

61 }

62 ```

63 

64 `image` 行をプロジェクトのベースイメージに置き換えるか、既存ファイルが Dockerfile を使用している場合は削除します。

65 </Step>

66 

67 <Step title="コンテナを再構築する">

68 Mac では `Cmd+Shift+P`、Windows と Linux では `Ctrl+Shift+P` で VS Code コマンドパレットを開き、**Dev Containers: Rebuild Container** を実行します。

69 

70 他のツールについては、そのツールの再構築アクション([GitHub Codespaces での再構築](https://docs.github.com/en/codespaces/developing-in-a-codespace/rebuilding-the-container-in-a-codespace)、[Dev Containers CLI](https://github.com/devcontainers/cli)、または IDE の開発コンテナドキュメント)に従ってください。

71 </Step>

72 

73 <Step title="Claude Code にサインインする">

74 再構築されたコンテナでターミナルを開き、`claude` を実行して、認証プロンプトに従います。

75 </Step>

76</Steps>

77 

78認証プロンプトで表示される内容は、プロバイダーによって異なります:

79 

80* **Anthropic**:Claude または Anthropic Console アカウントでブラウザ経由でサインイン

81* **[Amazon Bedrock、Google Vertex AI、または Microsoft Foundry](/ja/third-party-integrations)**:Claude Code はクラウドプロバイダーの認証情報を使用し、ブラウザプロンプトはありません

82 

83クラウドプロバイダーの場合、ホストから認証情報ファイルをマウントするのではなく、`containerEnv`、Codespaces シークレット、またはクラウドのワークロード ID を通じて認証情報をコンテナに渡します。Claude Code が読み取る認証情報チェーンについては、[Amazon Bedrock](/ja/amazon-bedrock)、[Google Vertex AI](/ja/google-vertex-ai)、または [Microsoft Foundry](/ja/microsoft-foundry) を参照してください。

84 

85どのパスが組織に適しているかを決定するには、[API プロバイダーを選択する](/ja/admin-setup#choose-your-api-provider)を参照してください。

86 

87<Note>

88 ブラウザサインインが完了しても、コールバックがコンテナに到達しない場合は、ブラウザに表示されているコードをコピーして、ターミナルの `Paste code here if prompted` プロンプトに貼り付けます。これは、エディタのポート転送が localhost コールバックをルーティングしない場合に発生する可能性があります。

89</Note>

90 

91## 再構築時に認証と設定を保持する

92 

93デフォルトでは、コンテナのホームディレクトリは再構築時に破棄されるため、エンジニアは毎回サインインし直す必要があります。Claude Code は認証トークン、ユーザー設定、セッション履歴を [`~/.claude`](/ja/claude-directory) に保存します。そのパスに名前付きボリュームをマウントして、再構築時にこの状態を保持します。

94 

95以下の例は、`node` ユーザーのホームディレクトリにボリュームをマウントします:

96 

97```json devcontainer.json theme={null}

98"mounts": [

99 "source=claude-code-config,target=/home/node/.claude,type=volume"

100]

101```

102 

103`/home/node` をコンテナの `remoteUser` のホームディレクトリに置き換えます。ボリュームを `~/.claude` 以外の場所にマウントする場合は、[`CLAUDE_CONFIG_DIR`](/ja/env-vars) をマウントパスに設定して、Claude Code がそこで読み書きするようにします。

104 

105プロジェクトごとに状態を分離して、すべてのリポジトリ間で 1 つのボリュームを共有しないようにするには、ソース名に `${devcontainerId}` 変数を含めます。[リファレンス設定](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json)はこの目的で `source=claude-code-config-${devcontainerId}` を使用しています。

106 

107GitHub Codespaces では、`~/.claude` は codespace の停止と開始の間で保持されますが、コンテナを再構築するときはまだクリアされるため、上記のボリュームマウントがそこにも適用されます。codespace 間で認証を実行するには、[Codespaces シークレット](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces)として `ANTHROPIC_API_KEY` または [`claude setup-token`](/ja/authentication#generate-a-long-lived-token) からの `CLAUDE_CODE_OAUTH_TOKEN` を保存します。Codespaces はシークレットを自動的にコンテナ内の環境変数として利用可能にします。

108 

109## 組織ポリシーを適用する

110 

111開発コンテナは、同じイメージと設定がすべてのエンジニアのマシンで実行されるため、組織ポリシーを適用するのに便利な場所です。

112 

113Claude Code は Linux で `/etc/claude-code/managed-settings.json` を読み取り、[設定階層](/ja/settings#how-scopes-interact)で最高の優先度で適用するため、そこの値はエンジニアが `~/.claude` またはプロジェクトの `.claude/` ディレクトリで設定したものをオーバーライドします。Dockerfile からファイルをコピーして配置します:

114 

115```dockerfile Dockerfile theme={null}

116RUN mkdir -p /etc/claude-code

117COPY managed-settings.json /etc/claude-code/managed-settings.json

118```

119 

120Dockerfile はリポジトリに存在するため、書き込みアクセス権を持つ誰でもこのステップを変更または削除できます。エンジニアがリポジトリファイルを編集してバイパスできないポリシーについては、[サーバー管理設定](/ja/server-managed-settings)または MDM を通じて管理設定を配信します。利用可能なキーと他の配信パスについては、[管理設定ファイル](/ja/settings#settings-files)を参照してください。

121 

122コンテナ内のすべての Claude Code セッションに適用される[環境変数](/ja/env-vars)を設定するには、`devcontainer.json` の `containerEnv` に追加します。以下の例は、テレメトリとエラーレポートをオプトアウトし、Claude Code がインストール後に自動更新されるのを防ぎます:

123 

124```json devcontainer.json theme={null}

125"containerEnv": {

126 "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",

127 "DISABLE_AUTOUPDATER": "1"

128}

129```

130 

131Dev Container Feature は常に最新の Claude Code リリースをインストールします。再現可能なビルドのために特定の Claude Code バージョンをピン留めするには、機能を使用する代わりに Dockerfile から `npm install -g @anthropic-ai/claude-code@X.Y.Z` でインストールし、上記のように `DISABLE_AUTOUPDATER` を設定します。

132 

133権限ルール、ツール制限、MCP サーバーアローリストを含むポリシーコントロールの完全なリストについては、[組織向けに Claude Code をセットアップする](/ja/admin-setup)を参照してください。

134 

135[MCP サーバー](/ja/mcp)をコンテナ内で利用可能にするには、リポジトリルートの `.mcp.json` ファイルで[プロジェクトスコープ](/ja/mcp#mcp-installation-scopes)で定義して、開発コンテナ設定と一緒にチェックインします。ローカル stdio サーバーが依存するバイナリを Dockerfile にインストールし、リモートサーバードメインをネットワークアローリストに追加します。

136 

137## ネットワークエグレスを制限する

138 

139コンテナのアウトバウンドトラフィックを Claude Code が必要とするドメインのみに制限できます。推論と認証ドメインについては[ネットワークアクセス要件](/ja/network-config#network-access-requirements)を参照し、オプションのテレメトリとエラーレポート接続およびそれらを無効にする方法については[テレメトリサービス](/ja/data-usage#telemetry-services)を参照してください。

140 

141リファレンスコンテナには、Claude Code と開発ツールが必要とするドメイン以外のすべてのアウトバウンドトラフィックをブロックする [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh) スクリプトが含まれています。コンテナ内でファイアウォールを実行するには追加の権限が必要なため、リファレンスは `runArgs` を通じて `NET_ADMIN` と `NET_RAW` 機能を追加します。ファイアウォールスクリプトとこれらの機能は Claude Code 自体には必須ではありません。これらを除外して、代わりに独自のネットワークコントロールに依存することができます。

142 

143## 権限プロンプトなしで実行する

144 

145コンテナは Claude Code を非ルートユーザーとして実行し、コマンド実行をコンテナに限定するため、無人操作のために `--dangerously-skip-permissions` を渡すことができます。CLI はルートとして起動された場合、このフラグを拒否するため、`remoteUser` が非ルートアカウントに設定されていることを確認します。

146 

147権限プロンプトをスキップすると、実行前にツール呼び出しを確認する機会が失われます。Claude はバインドマウントされたワークスペース内のあらゆるファイルを変更でき、これはホストに直接表示され、コンテナのネットワークポリシーが許可するものに到達できます。このフラグを上記の[ネットワークエグレス制限](#restrict-network-egress)と組み合わせて、バイパスされたセッションが到達できるものを制限します。

148 

149安全チェックを無効にせずにプロンプトを減らしたい場合は、代わりに[自動モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)を検討してください。これは、実行前にアクションを確認するための分類器を備えています。エンジニアが `--dangerously-skip-permissions` をまったく使用できないようにするには、[管理設定](/ja/settings#permission-settings)で `permissions.disableBypassPermissionsMode` を `"disable"` に設定します。

150 

151## リファレンスコンテナを試す

152 

153[`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/.devcontainer) リポジトリには、CLI、エグレスファイアウォール、永続ボリューム、Zsh ベースのシェルを組み合わせた開発コンテナの例が含まれています。これは、保守されたベースイメージではなく、動作する例として提供されています。独自の設定に適用する前に、ピースがどのように組み合わさるかを確認するために使用してください。

154 

155<Steps>

156 <Step title="前提条件をインストールする">

157 VS Code と [Dev Containers 拡張機能](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)をインストールします。

158 </Step>

159 

160 <Step title="リファレンスをクローンする">

161 [Claude Code リポジトリ](https://github.com/anthropics/claude-code)をクローンして、VS Code で開きます。

162 </Step>

163 

164 <Step title="コンテナで再度開く">

165 プロンプトが表示されたら、**Reopen in Container** をクリックするか、コマンドパレットから **Dev Containers: Reopen in Container** を実行します。

166 </Step>

167 

168 <Step title="Claude Code を開始する">

169 コンテナのビルドが完了したら、`` Ctrl+` `` でターミナルを開き、`claude` を実行してサインインし、最初のセッションを開始します。

170 </Step>

171</Steps>

172 

173この設定を独自のプロジェクトで使用するには、`.devcontainer/` ディレクトリをリポジトリにコピーして、ツールチェーン用に Dockerfile を調整するか、[開発コンテナに Claude Code を追加する](#add-claude-code-to-your-dev-container)に戻って、既に持っている設定に機能のみを追加します。

174 

175リファレンス設定は 3 つのファイルで構成されています。機能を通じて独自の開発コンテナに Claude Code を追加する場合、これらは必須ではありませんが、ピースを組み合わせる 1 つの方法を示しています。

176 

177| ファイル | 目的 |

178| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |

179| [`devcontainer.json`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) | ボリュームマウント、`runArgs` 機能、VS Code 拡張機能、`containerEnv` |

180| [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile) | ベースイメージ、開発ツール、Claude Code インストール |

181| [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh) | 許可されたドメイン以外のすべてのアウトバウンドネットワークトラフィックをブロック |

182 

183## 次のステップ

184 

185Claude Code が開発コンテナで実行されたら、以下のページは組織ロールアウトの残りの部分をカバーしています。認証パスの選択、リポジトリ外での管理ポリシーの配信、使用状況の監視、Claude Code が保存および送信するものの理解です。

186 

187* [組織向けに Claude Code をセットアップする](/ja/admin-setup):認証プロバイダーを選択し、ポリシーがデバイスに到達する方法を決定し、ロールアウトを計画します

188* [サーバー管理設定](/ja/server-managed-settings):Claude.ai 管理コンソールから管理ポリシーを配信して、エンジニアがリポジトリファイルを編集してバイパスできないようにします

189* [使用状況の監視と監査アクティビティ](/ja/monitoring-usage):OpenTelemetry メトリクスをエクスポートして、チームが実行しているものを確認します

190* [ネットワークアクセス要件](/ja/network-config#network-access-requirements):プロキシとファイアウォール用の完全なドメインアローリスト

191* [テレメトリサービスとオプトアウト](/ja/data-usage#telemetry-services):Claude Code がデフォルトで送信するもの、およびそれを無効にする環境変数

192* [`.claude` ディレクトリを探索する](/ja/claude-directory):ボリュームマウントが保持するもの(認証情報、設定、セッション履歴を含む)

193* [セキュリティモデル](/ja/security):Claude Code の権限システム、サンドボックス、プロンプトインジェクション保護がどのように組み合わさるか

194* [権限モード](/ja/permission-modes):プランモードから自動モードからバイパスまでの完全な範囲、および各モードを使用する場合

discover-plugins.md +427 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# マーケットプレイスから事前構築されたプラグインを発見してインストールする

6 

7> マーケットプレイスからプラグインを検索してインストールし、Claude Code を新しいコマンド、エージェント、機能で拡張します。

8 

9プラグインは Claude Code をスキル、エージェント、フック、MCP サーバーで拡張します。プラグインマーケットプレイスは、これらの拡張機能を自分で構築することなく発見してインストールするのに役立つカタログです。

10 

11独自のマーケットプレイスを作成して配布したいですか?[プラグインマーケットプレイスを作成して配布する](/ja/plugin-marketplaces)を参照してください。

12 

13## マーケットプレイスの仕組み

14 

15マーケットプレイスは、他の誰かが作成して共有したプラグインのカタログです。マーケットプレイスを使用するのは 2 段階のプロセスです。

16 

17<Steps>

18 <Step title="マーケットプレイスを追加する">

19 これにより、カタログが Claude Code に登録され、利用可能なものを参照できるようになります。プラグインはまだインストールされていません。

20 </Step>

21 

22 <Step title="個別のプラグインをインストールする">

23 カタログを参照して、必要なプラグインをインストールします。

24 </Step>

25</Steps>

26 

27アプリストアを追加するようなものと考えてください。ストアを追加するとそのコレクションを参照できるようになりますが、どのアプリをダウンロードするかは個別に選択します。

28 

29## 公式 Anthropic マーケットプレイス

30 

31公式 Anthropic マーケットプレイス(`claude-plugins-official`)は Claude Code を起動すると自動的に利用可能になります。`/plugin` を実行して **Discover** タブに移動し、利用可能なものを参照するか、[claude.com/plugins](https://claude.com/plugins)でカタログを表示してください。

32 

33公式マーケットプレイスからプラグインをインストールするには、`/plugin install <name>@claude-plugins-official` を使用します。たとえば、GitHub 統合をインストールするには:

34 

35```shell theme={null}

36/plugin install github@claude-plugins-official

37```

38 

39<Note>

40 公式マーケットプレイスは Anthropic によって管理されています。公式マーケットプレイスにプラグインを送信するには、アプリ内送信フォームのいずれかを使用してください。

41 

42 * **Claude.ai**: [claude.ai/settings/plugins/submit](https://claude.ai/settings/plugins/submit)

43 * **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

44 

45 プラグインを独立して配布するには、[独自のマーケットプレイスを作成](/ja/plugin-marketplaces)してユーザーと共有してください。

46</Note>

47 

48公式マーケットプレイスには、プラグインのいくつかのカテゴリが含まれています。

49 

50### コード インテリジェンス

51 

52コード インテリジェンス プラグインは Claude Code の組み込み LSP ツールを有効にし、Claude が定義にジャンプしたり、参照を見つけたり、編集直後に型エラーを確認したりできるようにします。これらのプラグインは [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 接続を構成します。これは VS Code のコード インテリジェンスを強化する同じテクノロジーです。

53 

54これらのプラグインでは、言語サーバーバイナリがシステムにインストールされている必要があります。言語サーバーが既にインストールされている場合、プロジェクトを開くと Claude は対応するプラグインをインストールするよう促す場合があります。

55 

56| 言語 | プラグイン | 必要なバイナリ |

57| :--------- | :------------------ | :--------------------------- |

58| C/C++ | `clangd-lsp` | `clangd` |

59| C# | `csharp-lsp` | `csharp-ls` |

60| Go | `gopls-lsp` | `gopls` |

61| Java | `jdtls-lsp` | `jdtls` |

62| Kotlin | `kotlin-lsp` | `kotlin-language-server` |

63| Lua | `lua-lsp` | `lua-language-server` |

64| PHP | `php-lsp` | `intelephense` |

65| Python | `pyright-lsp` | `pyright-langserver` |

66| Rust | `rust-analyzer-lsp` | `rust-analyzer` |

67| Swift | `swift-lsp` | `sourcekit-lsp` |

68| TypeScript | `typescript-lsp` | `typescript-language-server` |

69 

70[他の言語用に独自の LSP プラグインを作成](/ja/plugins-reference#lsp-servers)することもできます。

71 

72<Note>

73 プラグインをインストール後に `/plugin` Errors タブに `Executable not found in $PATH` が表示される場合は、上記の表から必要なバイナリをインストールしてください。

74</Note>

75 

76#### コード インテリジェンス プラグインから Claude が得られるもの

77 

78コード インテリジェンス プラグインがインストールされ、その言語サーバーバイナリが利用可能になると、Claude は 2 つの機能を得られます。

79 

80* **自動診断**: Claude が行うすべてのファイル編集後、言語サーバーは変更を分析し、エラーと警告を自動的に報告します。Claude はコンパイラやリンターを実行することなく、型エラー、不足しているインポート、構文の問題を確認します。Claude がエラーを導入した場合、それに気付いて同じターンで問題を修正します。これはプラグインをインストール以外の設定は必要ありません。「diagnostics found」インジケーターが表示されたときに **Ctrl+O** を押すと、診断をインラインで確認できます。

81* **コード ナビゲーション**: Claude は言語サーバーを使用して定義にジャンプしたり、参照を見つけたり、ホバーで型情報を取得したり、シンボルをリストしたり、実装を見つけたり、呼び出し階層をトレースしたりできます。これらの操作により、Claude は grep ベースの検索よりも正確なナビゲーションが可能になりますが、言語と環境によって可用性が異なる場合があります。

82 

83問題が発生した場合は、[コード インテリジェンスのトラブルシューティング](#code-intelligence-issues)を参照してください。

84 

85### 外部統合

86 

87これらのプラグインは事前構成された [MCP サーバー](/ja/mcp)をバンドルしているため、手動セットアップなしで Claude を外部サービスに接続できます。

88 

89* **ソース管理**: `github`、`gitlab`

90* **プロジェクト管理**: `atlassian`(Jira/Confluence)、`asana`、`linear`、`notion`

91* **デザイン**: `figma`

92* **インフラストラクチャ**: `vercel`、`firebase`、`supabase`

93* **コミュニケーション**: `slack`

94* **監視**: `sentry`

95 

96### 開発ワークフロー

97 

98一般的な開発タスク用のコマンドとエージェントを追加するプラグイン。

99 

100* **commit-commands**: コミット、プッシュ、PR 作成を含む Git コミット ワークフロー

101* **pr-review-toolkit**: プルリクエストをレビューするための特化したエージェント

102* **agent-sdk-dev**: Claude Agent SDK で構築するためのツール

103* **plugin-dev**: 独自のプラグインを作成するためのツールキット

104 

105### 出力スタイル

106 

107Claude の応答方法をカスタマイズします。

108 

109* **explanatory-output-style**: 実装の選択に関する教育的な洞察

110* **learning-output-style**: スキル構築のためのインタラクティブな学習モード

111 

112## 試してみる: デモマーケットプレイスを追加する

113 

114Anthropic は、プラグインシステムで何が可能かを示す例プラグインを含む [デモプラグインマーケットプレイス](https://github.com/anthropics/claude-code/tree/main/plugins)(`claude-code-plugins`)も管理しています。公式マーケットプレイスとは異なり、このマーケットプレイスは手動で追加する必要があります。

115 

116<Steps>

117 <Step title="マーケットプレイスを追加する">

118 Claude Code 内から、`anthropics/claude-code` マーケットプレイスの `plugin marketplace add` コマンドを実行します。

119 

120 ```shell theme={null}

121 /plugin marketplace add anthropics/claude-code

122 ```

123 

124 これにより、マーケットプレイス カタログがダウンロードされ、そのプラグインが利用可能になります。

125 </Step>

126 

127 <Step title="利用可能なプラグインを参照する">

128 `/plugin` を実行してプラグイン マネージャーを開きます。これにより、**Tab**(または後方に移動するには **Shift+Tab**)を使用して循環できる 4 つのタブを持つタブ付きインターフェースが開きます。

129 

130 * **Discover**: すべてのマーケットプレイスから利用可能なプラグインを参照

131 * **Installed**: インストール済みプラグインを表示および管理

132 * **Marketplaces**: 追加したマーケットプレイスを追加、削除、または更新

133 * **Errors**: プラグイン読み込みエラーを表示

134 

135 **Discover** タブに移動して、追加したばかりのマーケットプレイスからプラグインを確認してください。

136 </Step>

137 

138 <Step title="プラグインをインストールする">

139 プラグインを選択してその詳細を表示し、インストール スコープを選択します。

140 

141 * **User scope**: すべてのプロジェクト全体で自分用にインストール

142 * **Project scope**: このリポジトリのすべてのコラボレーター用にインストール

143 * **Local scope**: このリポジトリ内で自分用にのみインストール

144 

145 たとえば、**commit-commands**(git ワークフロー コマンドを追加するプラグイン)を選択して、ユーザー スコープにインストールします。

146 

147 コマンドラインから直接インストールすることもできます。

148 

149 ```shell theme={null}

150 /plugin install commit-commands@anthropics-claude-code

151 ```

152 

153 スコープの詳細については、[構成スコープ](/ja/settings#configuration-scopes)を参照してください。

154 </Step>

155 

156 <Step title="新しいプラグインを使用する">

157 インストール後、`/reload-plugins` を実行してプラグインをアクティブ化します。プラグイン コマンドはプラグイン名でネームスペース化されているため、**commit-commands** は `/commit-commands:commit` のようなコマンドを提供します。

158 

159 ファイルに変更を加えて、以下を実行して試してみてください。

160 

161 ```shell theme={null}

162 /commit-commands:commit

163 ```

164 

165 これにより、変更がステージされ、コミット メッセージが生成され、コミットが作成されます。

166 

167 各プラグインは異なる方法で機能します。**Discover** タブのプラグインの説明またはそのホームページをチェックして、提供されるコマンドと機能を確認してください。

168 </Step>

169</Steps>

170 

171このガイドの残りの部分では、マーケットプレイスを追加し、プラグインをインストールし、構成を管理するすべての方法について説明します。

172 

173## マーケットプレイスを追加する

174 

175`/plugin marketplace add` コマンドを使用して、異なるソースからマーケットプレイスを追加します。

176 

177<Tip>

178 **ショートカット**: `/plugin marketplace` の代わりに `/plugin market` を使用でき、`remove` の代わりに `rm` を使用できます。

179</Tip>

180 

181* **GitHub リポジトリ**: `owner/repo` 形式(例:`anthropics/claude-code`)

182* **Git URL**: 任意の git リポジトリ URL(GitLab、Bitbucket、自己ホスト)

183* **ローカル パス**: ディレクトリまたは `marketplace.json` ファイルへの直接パス

184* **リモート URL**: ホストされた `marketplace.json` ファイルへの直接 URL

185 

186### GitHub から追加する

187 

188`.claude-plugin/marketplace.json` ファイルを含む GitHub リポジトリを `owner/repo` 形式を使用して追加します。ここで `owner` は GitHub ユーザー名または組織で、`repo` はリポジトリ名です。

189 

190たとえば、`anthropics/claude-code` は `anthropics` が所有する `claude-code` リポジトリを指します。

191 

192```shell theme={null}

193/plugin marketplace add anthropics/claude-code

194```

195 

196### 他の Git ホストから追加する

197 

198完全な URL を提供することで、任意の git リポジトリを追加します。これは GitLab、Bitbucket、自己ホスト サーバーを含む任意の Git ホストで機能します。

199 

200HTTPS を使用する場合:

201 

202```shell theme={null}

203/plugin marketplace add https://gitlab.com/company/plugins.git

204```

205 

206SSH を使用する場合:

207 

208```shell theme={null}

209/plugin marketplace add git@gitlab.com:company/plugins.git

210```

211 

212特定のブランチまたはタグを追加するには、`#` の後に ref を追加します。

213 

214```shell theme={null}

215/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0

216```

217 

218### ローカル パスから追加する

219 

220`.claude-plugin/marketplace.json` ファイルを含むローカル ディレクトリを追加します。

221 

222```shell theme={null}

223/plugin marketplace add ./my-marketplace

224```

225 

226`marketplace.json` ファイルへの直接パスを追加することもできます。

227 

228```shell theme={null}

229/plugin marketplace add ./path/to/marketplace.json

230```

231 

232### リモート URL から追加する

233 

234URL 経由でリモート `marketplace.json` ファイルを追加します。

235 

236```shell theme={null}

237/plugin marketplace add https://example.com/marketplace.json

238```

239 

240<Note>

241 URL ベースのマーケットプレイスは、Git ベースのマーケットプレイスと比べていくつかの制限があります。プラグインをインストールするときに「path not found」エラーが発生した場合は、[トラブルシューティング](/ja/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)を参照してください。

242</Note>

243 

244## プラグインをインストールする

245 

246マーケットプレイスを追加したら、プラグインを直接インストールできます(デフォルトではユーザー スコープにインストール)。

247 

248```shell theme={null}

249/plugin install plugin-name@marketplace-name

250```

251 

252別の[インストール スコープ](/ja/settings#configuration-scopes)を選択するには、インタラクティブ UI を使用します。`/plugin` を実行して **Discover** タブに移動し、プラグインで **Enter** を押します。以下のオプションが表示されます。

253 

254* **User scope**(デフォルト): すべてのプロジェクト全体で自分用にインストール

255* **Project scope**: このリポジトリのすべてのコラボレーター用にインストール(`.claude/settings.json` に追加)

256* **Local scope**: このリポジトリ内で自分用にのみインストール(コラボレーターと共有されない)

257 

258**managed** スコープのプラグインも表示される場合があります。これらは管理者が[管理設定](/ja/settings#settings-files)経由でインストールしたもので、変更することはできません。

259 

260`/plugin` を実行して **Installed** タブに移動し、スコープでグループ化されたプラグインを確認してください。

261 

262<Warning>

263 プラグインをインストールする前に、それを信頼していることを確認してください。Anthropic はプラグインに含まれる MCP サーバー、ファイル、またはその他のソフトウェアを制御せず、意図したとおりに機能することを確認できません。詳細については、各プラグインのホームページを確認してください。

264</Warning>

265 

266## インストール済みプラグインを管理する

267 

268`/plugin` を実行して **Installed** タブに移動し、プラグインを表示、有効化、無効化、またはアンインストールします。プラグイン名または説明でリストをフィルタリングするには、入力します。

269 

270直接コマンドでプラグインを管理することもできます。

271 

272プラグインをアンインストールせずに無効化します。

273 

274```shell theme={null}

275/plugin disable plugin-name@marketplace-name

276```

277 

278無効化されたプラグインを再度有効化します。

279 

280```shell theme={null}

281/plugin enable plugin-name@marketplace-name

282```

283 

284プラグインを完全に削除します。

285 

286```shell theme={null}

287/plugin uninstall plugin-name@marketplace-name

288```

289 

290`--scope` オプションを使用すると、CLI コマンドで特定のスコープをターゲットにできます。

291 

292```shell theme={null}

293claude plugin install formatter@your-org --scope project

294claude plugin uninstall formatter@your-org --scope project

295```

296 

297### プラグインの変更をリスタートなしで適用する

298 

299セッション中にプラグインをインストール、有効化、または無効化すると、`/reload-plugins` を実行してすべての変更をリスタートなしで取得します。

300 

301```shell theme={null}

302/reload-plugins

303```

304 

305Claude Code はすべてのアクティブなプラグインをリロードし、プラグイン、スキル、エージェント、フック、プラグイン MCP サーバー、プラグイン LSP サーバーのカウントを表示します。

306 

307## マーケットプレイスを管理する

308 

309インタラクティブな `/plugin` インターフェースまたは CLI コマンドを使用してマーケットプレイスを管理できます。

310 

311### インタラクティブ インターフェースを使用する

312 

313`/plugin` を実行して **Marketplaces** タブに移動して、以下を実行します。

314 

315* 追加したすべてのマーケットプレイスをそのソースとステータスで表示

316* 新しいマーケットプレイスを追加

317* マーケットプレイス リストを更新して最新のプラグインを取得

318* 不要になったマーケットプレイスを削除

319 

320### CLI コマンドを使用する

321 

322直接コマンドでマーケットプレイスを管理することもできます。

323 

324構成されたすべてのマーケットプレイスをリストします。

325 

326```shell theme={null}

327/plugin marketplace list

328```

329 

330マーケットプレイスからプラグイン リストを更新します。

331 

332```shell theme={null}

333/plugin marketplace update marketplace-name

334```

335 

336マーケットプレイスを削除します。

337 

338```shell theme={null}

339/plugin marketplace remove marketplace-name

340```

341 

342<Warning>

343 マーケットプレイスを削除すると、そこからインストールしたプラグインがアンインストールされます。

344</Warning>

345 

346### 自動更新を構成する

347 

348Claude Code はスタートアップ時にマーケットプレイスとそのインストール済みプラグインを自動的に更新できます。マーケットプレイスで自動更新が有効になっている場合、Claude Code はマーケットプレイス データを更新し、インストール済みプラグインを最新バージョンに更新します。プラグインが更新された場合、`/reload-plugins` を実行するよう促すメッセージが表示されます。

349 

350UI を通じて個別のマーケットプレイスの自動更新を切り替えます。

351 

3521. `/plugin` を実行してプラグイン マネージャーを開く

3532. **Marketplaces** を選択

3543. リストからマーケットプレイスを選択

3554. **Enable auto-update** または **Disable auto-update** を選択

356 

357公式 Anthropic マーケットプレイスはデフォルトで自動更新が有効になっています。サードパーティおよびローカル開発マーケットプレイスはデフォルトで自動更新が無効になっています。

358 

359Claude Code とすべてのプラグインの両方のすべての自動更新を完全に無効化するには、`DISABLE_AUTOUPDATER` 環境変数を設定します。詳細については、[自動更新](/ja/setup#auto-updates)を参照してください。

360 

361Claude Code の自動更新を無効化しながらプラグイン自動更新を有効化したままにするには、`DISABLE_AUTOUPDATER` と共に `FORCE_AUTOUPDATE_PLUGINS=1` を設定します。

362 

363```bash theme={null}

364export DISABLE_AUTOUPDATER=1

365export FORCE_AUTOUPDATE_PLUGINS=1

366```

367 

368これは Claude Code の更新を手動で管理したいが、プラグイン更新を自動的に受け取りたい場合に便利です。

369 

370## チーム マーケットプレイスを構成する

371 

372チーム管理者は、`.claude/settings.json` にマーケットプレイス構成を追加することで、プロジェクトの自動マーケットプレイス インストールを設定できます。チーム メンバーがリポジトリ フォルダを信頼すると、Claude Code はこれらのマーケットプレイスとプラグインをインストールするよう促します。

373 

374プロジェクトの `.claude/settings.json` に `extraKnownMarketplaces` を追加します。

375 

376```json theme={null}

377{

378 "extraKnownMarketplaces": {

379 "my-team-tools": {

380 "source": {

381 "source": "github",

382 "repo": "your-org/claude-plugins"

383 }

384 }

385 }

386}

387```

388 

389`extraKnownMarketplaces` と `enabledPlugins` を含む完全な構成オプションについては、[プラグイン設定](/ja/settings#plugin-settings)を参照してください。

390 

391## セキュリティ

392 

393プラグインとマーケットプレイスは、ユーザー権限でマシン上で任意のコードを実行できる、非常に信頼されたコンポーネントです。信頼できるソースからのみプラグインをインストールし、マーケットプレイスを追加してください。組織は、[管理マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を使用してユーザーが追加できるマーケットプレイスを制限できます。

394 

395## トラブルシューティング

396 

397### /plugin コマンドが認識されない

398 

399「unknown command」が表示されるか、`/plugin` コマンドが表示されない場合:

400 

4011. **バージョンを確認する**: `claude --version` を実行します。

4022. **Claude Code を更新する**:

403 * **Homebrew**: `brew upgrade claude-code`

404 * **npm**: `npm update -g @anthropic-ai/claude-code`

405 * **ネイティブ インストーラー**: [セットアップ](/ja/setup)からインストール コマンドを再実行します。

4063. **Claude Code を再起動する**: 更新後、ターミナルを再起動して `claude` を再度実行します。

407 

408### 一般的な問題

409 

410* **マーケットプレイスが読み込まれない**: URL がアクセス可能であり、`.claude-plugin/marketplace.json` がパスに存在することを確認してください。

411* **プラグイン インストール エラー**: プラグイン ソース URL がアクセス可能であり、リポジトリが公開されている(またはアクセス権がある)ことを確認してください。

412* **インストール後にファイルが見つからない**: プラグインはキャッシュにコピーされるため、プラグイン ディレクトリ外のファイルを参照するパスは機能しません。

413* **プラグイン スキルが表示されない**: `rm -rf ~/.claude/plugins/cache` でキャッシュをクリアし、Claude Code を再起動して、プラグインを再度インストールしてください。

414 

415詳細なトラブルシューティングとソリューションについては、マーケットプレイス ガイドの [トラブルシューティング](/ja/plugin-marketplaces#troubleshooting)を参照してください。デバッグ ツールについては、[デバッグと開発ツール](/ja/plugins-reference#debugging-and-development-tools)を参照してください。

416 

417### コード インテリジェンスの問題

418 

419* **言語サーバーが起動しない**: バイナリがインストールされており、`$PATH` で利用可能であることを確認してください。詳細については、`/plugin` Errors タブを確認してください。

420* **メモリ使用量が多い**: `rust-analyzer` や `pyright` などの言語サーバーは、大規模なプロジェクトで大量のメモリを消費する可能性があります。メモリの問題が発生した場合は、`/plugin disable <plugin-name>` でプラグインを無効化し、代わりに Claude の組み込み検索ツールを使用してください。

421* **モノレポでの誤検知診断**: ワークスペースが正しく構成されていない場合、言語サーバーは内部パッケージの未解決インポート エラーを報告する可能性があります。これらはコードを編集する Claude の能力に影響しません。

422 

423## 次のステップ

424 

425* **独自のプラグインを構築する**: スキル、エージェント、フックを作成するには、[プラグイン](/ja/plugins)を参照してください。

426* **マーケットプレイスを作成する**: チームまたはコミュニティにプラグインを配布するには、[プラグイン マーケットプレイスを作成](/ja/plugin-marketplaces)を参照してください。

427* **技術リファレンス**: 完全な仕様については、[プラグイン リファレンス](/ja/plugins-reference)を参照してください。

env-vars.md +238 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 環境変数

6 

7> Claude Code の動作を制御する環境変数の完全なリファレンス。

8 

9Claude Code は、その動作を制御するために以下の環境変数をサポートしています。`claude` を起動する前にシェルで設定するか、[`settings.json`](/ja/settings#available-settings) の `env` キーで設定して、すべてのセッションに適用するか、チーム全体にロールアウトしてください。

10 

11| 変数 | 目的 |

12| :------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

13| `ANTHROPIC_API_KEY` | `X-Api-Key` ヘッダーとして送信される API キー。設定されている場合、ログインしていても Claude Pro、Max、Team、または Enterprise サブスクリプションの代わりにこのキーが使用されます。非対話モード(`-p`)では、キーが存在する場合は常に使用されます。対話モードでは、キーがサブスクリプションをオーバーライドする前に一度承認するよう求められます。代わりにサブスクリプションを使用するには、`unset ANTHROPIC_API_KEY` を実行してください |

14| `ANTHROPIC_AUTH_TOKEN` | `Authorization` ヘッダーのカスタム値(ここで設定した値には `Bearer ` が接頭辞として付けられます) |

15| `ANTHROPIC_BASE_URL` | API エンドポイントをオーバーライドして、プロキシまたはゲートウェイを通じてリクエストをルーティングします。ファーストパーティ以外のホストに設定されている場合、[MCP ツール検索](/ja/mcp#scale-with-mcp-tool-search) はデフォルトで無効になります。プロキシが `tool_reference` ブロックを転送する場合は、`ENABLE_TOOL_SEARCH=true` を設定してください |

16| `ANTHROPIC_BEDROCK_BASE_URL` | Bedrock エンドポイント URL をオーバーライドします。カスタム Bedrock エンドポイントを使用する場合、または [LLM ゲートウェイ](/ja/llm-gateway) を通じてルーティングする場合に使用します。[Amazon Bedrock](/ja/amazon-bedrock) を参照してください |

17| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Bedrock Mantle エンドポイント URL をオーバーライドします。[Mantle エンドポイント](/ja/amazon-bedrock#use-the-mantle-endpoint) を参照してください |

18| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Bedrock [サービスティア](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`、`flex`、または `priority`)。`X-Amzn-Bedrock-Service-Tier` ヘッダーとして送信されます。[Amazon Bedrock](/ja/amazon-bedrock#service-tiers) を参照してください |

19| `ANTHROPIC_BETAS` | API リクエストに含める追加の `anthropic-beta` ヘッダー値のカンマ区切りリスト。Claude Code は既に必要なベータヘッダーを送信しています。Claude Code がネイティブサポートを追加する前に、[Anthropic API ベータ](https://platform.claude.com/docs/en/api/beta-headers) にオプトインするために使用します。API キー認証が必要な [`--betas` フラグ](/ja/cli-reference#cli-flags) とは異なり、この変数は Claude.ai サブスクリプションを含むすべての認証方法で機能します |

20| `ANTHROPIC_CUSTOM_HEADERS` | リクエストに追加するカスタムヘッダー(`Name: Value` 形式、複数のヘッダーの場合は改行で区切られます) |

21| `ANTHROPIC_CUSTOM_MODEL_OPTION` | `/model` ピッカーにカスタムエントリとして追加するモデル ID。組み込みエイリアスを置き換えずに、非標準またはゲートウェイ固有のモデルを選択可能にするために使用します。[モデル設定](/ja/model-config#add-a-custom-model-option) を参照してください |

22| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` ピッカーのカスタムモデルエントリの表示説明。設定されていない場合、デフォルトは `Custom model (<model-id>)` です |

23| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` ピッカーのカスタムモデルエントリの表示名。設定されていない場合、デフォルトはモデル ID です |

24| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

25| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | [モデル設定](/ja/model-config#environment-variables) を参照してください |

26| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

27| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

28| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

29| `ANTHROPIC_DEFAULT_OPUS_MODEL` | [モデル設定](/ja/model-config#environment-variables) を参照してください |

30| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

31| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

32| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

33| `ANTHROPIC_DEFAULT_SONNET_MODEL` | [モデル設定](/ja/model-config#environment-variables) を参照してください |

34| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

35| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

36| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | [モデル設定](/ja/model-config#customize-pinned-model-display-and-capabilities) を参照してください |

37| `ANTHROPIC_FOUNDRY_API_KEY` | Microsoft Foundry 認証用の API キー([Microsoft Foundry](/ja/microsoft-foundry) を参照してください) |

38| `ANTHROPIC_FOUNDRY_BASE_URL` | Foundry リソースの完全なベース URL(例:`https://my-resource.services.ai.azure.com/anthropic`)。`ANTHROPIC_FOUNDRY_RESOURCE` の代替([Microsoft Foundry](/ja/microsoft-foundry) を参照してください) |

39| `ANTHROPIC_FOUNDRY_RESOURCE` | Foundry リソース名(例:`my-resource`)。`ANTHROPIC_FOUNDRY_BASE_URL` が設定されていない場合は必須([Microsoft Foundry](/ja/microsoft-foundry) を参照してください) |

40| `ANTHROPIC_MODEL` | 使用するモデル設定の名前([モデル設定](/ja/model-config#environment-variables) を参照してください) |

41| `ANTHROPIC_SMALL_FAST_MODEL` | \[非推奨] バックグラウンドタスク用の [Haiku クラスモデルの名前](/ja/costs) |

42| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Bedrock または Bedrock Mantle を使用する場合、Haiku クラスモデルの AWS リージョンをオーバーライドします |

43| `ANTHROPIC_VERTEX_BASE_URL` | Vertex AI エンドポイント URL をオーバーライドします。カスタム Vertex エンドポイントを使用する場合、または [LLM ゲートウェイ](/ja/llm-gateway) を通じてルーティングする場合に使用します。[Google Vertex AI](/ja/google-vertex-ai) を参照してください |

44| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI の GCP プロジェクト ID。[Google Vertex AI](/ja/google-vertex-ai) を使用する場合は必須です |

45| `API_TIMEOUT_MS` | API リクエストのタイムアウト(ミリ秒)(デフォルト:600000、または 10 分。最大:2147483647)。遅いネットワークでリクエストがタイムアウトする場合、またはプロキシを通じてルーティングする場合は、この値を増やしてください。最大値を超える値は基盤となるタイマーをオーバーフローさせ、リクエストが直ちに失敗する原因となります |

46| `AWS_BEARER_TOKEN_BEDROCK` | 認証用の Bedrock API キー([Bedrock API キー](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) を参照してください) |

47| `BASH_DEFAULT_TIMEOUT_MS` | 長時間実行される bash コマンドのデフォルトタイムアウト(デフォルト:120000、または 2 分) |

48| `BASH_MAX_OUTPUT_LENGTH` | bash 出力が中央で切り詰められる前の最大文字数 |

49| `BASH_MAX_TIMEOUT_MS` | 長時間実行される bash コマンドに対してモデルが設定できる最大タイムアウト(デフォルト:600000、または 10 分) |

50| `CCR_FORCE_BUNDLE` | GitHub アクセスが利用可能な場合でも、[`claude --remote`](/ja/claude-code-on-the-web#send-local-repositories-without-github) がローカルリポジトリをバンドルしてアップロードするよう強制するには `1` に設定します |

51| `CLAUDECODE` | Claude Code がスポーンするシェル環境(Bash ツール、tmux セッション)で `1` に設定されます。[フック](/ja/hooks) または [ステータスライン](/ja/statusline) コマンドでは設定されません。スクリプトが Claude Code によってスポーンされたシェル内で実行されているかどうかを検出するために使用します |

52| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | すべての組み込み [subagent](/ja/sub-agents) タイプ(Explore や Plan など)を無効にするには `1` に設定します。非対話モード(`-p` フラグ)でのみ適用されます。SDK ユーザーが白紙の状態を望む場合に役立ちます |

53| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | SDK で作成された MCP サーバーからのツール名の `mcp__<server>__` プレフィックスをスキップするには `1` に設定します。ツールは元の名前を使用します。SDK 使用のみ |

54| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | オートコンパクションがトリガーされるコンテキスト容量のパーセンテージ(1~100)を設定します。デフォルトでは、オートコンパクションは約 95% の容量でトリガーされます。`50` などの低い値を使用して、より早くコンパクトします。デフォルトの閾値より高い値は効果がありません。メインの会話と subagent の両方に適用されます。このパーセンテージは、[ステータスライン](/ja/statusline) で利用可能な `context_window.used_percentage` フィールドと一致します |

55| `CLAUDE_AUTO_BACKGROUND_TASKS` | 長時間実行されるエージェントタスクの自動バックグラウンド化を強制的に有効にするには `1` に設定します。有効にすると、subagent は約 2 分間実行した後、バックグラウンドに移動されます |

56| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | メインセッションの各 Bash または PowerShell コマンドの後に元の作業ディレクトリに戻ります |

57| `CLAUDE_CODE_ACCESSIBILITY` | ネイティブターミナルカーソルを表示したままにし、反転テキストカーソルインジケーターを無効にするには `1` に設定します。macOS Zoom などのスクリーンマグニファイアーがカーソル位置を追跡できるようにします |

58| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | `--add-dir` で指定されたディレクトリからメモリファイルを読み込むには `1` に設定します。`CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md`、および `CLAUDE.local.md` を読み込みます。デフォルトでは、追加ディレクトリはメモリファイルを読み込みません |

59| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 認証情報をリフレッシュする間隔(ミリ秒)([`apiKeyHelper`](/ja/settings#available-settings) を使用する場合) |

60| `CLAUDE_CODE_ATTRIBUTION_HEADER` | システムプロンプトの開始から属性ブロック(クライアントバージョンとプロンプトフィンガープリント)を省略するには `0` に設定します。これを無効にすると、[LLM ゲートウェイ](/ja/llm-gateway) を通じてルーティングする場合のプロンプトキャッシュヒット率が向上します。Anthropic API キャッシングは影響を受けません |

61| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | オートコンパクション計算に使用されるコンテキスト容量をトークン単位で設定します。デフォルトはモデルのコンテキストウィンドウです:標準モデルの場合は 200K、[拡張コンテキスト](/ja/model-config#extended-context) モデルの場合は 1M。1M モデルで `500000` などの低い値を使用して、コンパクション目的でウィンドウを 500K として扱います。値はモデルの実際のコンテキストウィンドウでキャップされます。`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` はこの値のパーセンテージとして適用されます。この変数を設定すると、コンパクション閾値がステータスラインの `used_percentage` から分離されます。これは常にモデルの完全なコンテキストウィンドウを使用します |

62| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 自動 [IDE 接続](/ja/vs-code) をオーバーライドします。デフォルトでは、Claude Code はサポートされている IDE の統合ターミナル内で起動されると自動的に接続します。これを防ぐには `false` に設定します。tmux が親ターミナルを隠すなど、自動検出が失敗した場合に接続を強制するには `true` に設定します |

63| `CLAUDE_CODE_CERT_STORE` | TLS 接続用の CA 証明書ソースのカンマ区切りリスト。`bundled` は Claude Code に付属する Mozilla CA セットです。`system` はオペレーティングシステムの信頼ストアです。デフォルトは `bundled,system` です。システムストア統合にはネイティブバイナリ配布が必須です。Node.js ランタイムでは、この値に関係なく、バンドルされたセットのみが使用されます |

64| `CLAUDE_CODE_CLIENT_CERT` | mTLS 認証用のクライアント証明書ファイルへのパス |

65| `CLAUDE_CODE_CLIENT_KEY` | mTLS 認証用のクライアント秘密鍵ファイルへのパス |

66| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 暗号化された CLAUDE\_CODE\_CLIENT\_KEY のパスフレーズ(オプション) |

67| `CLAUDE_CODE_DEBUG_LOGS_DIR` | デバッグログファイルパスをオーバーライドします。名前に反して、これはディレクトリではなくファイルパスです。デバッグモードを `--debug` または `/debug` で別途有効にする必要があります。この変数を設定するだけではログが有効になりません。[`--debug-file`](/ja/cli-reference#cli-flags) フラグは両方を一度に行います。デフォルトは `~/.claude/debug/<session-id>.txt` です |

68| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | デバッグログファイルに書き込まれる最小ログレベル。値:`verbose`、`debug`(デフォルト)、`info`、`warn`、`error`。フルステータスラインコマンド出力などの大量の診断を含めるには `verbose` に設定するか、ノイズを減らすには `error` に上げます |

69| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | [1M コンテキストウィンドウ](/ja/model-config#extended-context) サポートを無効にするには `1` に設定します。設定すると、1M モデルバリアントはモデルピッカーで利用できなくなります。コンプライアンス要件のあるエンタープライズ環境に役立ちます |

70| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 と Sonnet 4.6 の [適応的推論](/ja/model-config#adjust-effort-level) を無効にするには `1` に設定します。`MAX_THINKING_TOKENS` で制御される固定思考予算にフォールバックします。{/* min-version: 2.1.111 */}Opus 4.7 では効果がなく、常に適応的推論を使用します |

71| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 添付ファイル処理を無効にするには `1` に設定します。`@` 構文を使用したファイルメンションはファイルコンテンツに展開される代わりにプレーンテキストとして送信されます |

72| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [自動メモリ](/ja/memory#auto-memory) を無効にするには `1` に設定します。段階的なロールアウト中に自動メモリを強制的にオンにするには `0` に設定します。無効にすると、Claude は自動メモリファイルを作成または読み込みません |

73| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Bash と subagent ツールの `run_in_background` パラメータ、自動バックグラウンド化、Ctrl+B ショートカットを含む、すべてのバックグラウンドタスク機能を無効にするには `1` に設定します |

74| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | ユーザー、プロジェクト、自動メモリファイルを含む、任意の CLAUDE.md メモリファイルをコンテキストに読み込むことを防ぐには `1` に設定します |

75| `CLAUDE_CODE_DISABLE_CRON` | [スケジュール済みタスク](/ja/scheduled-tasks) を無効にするには `1` に設定します。`/loop` スキルと cron ツールが利用できなくなり、既にスケジュール済みのタスクはすべて実行を停止します。これには既にセッション中に実行中のタスクも含まれます |

76| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Anthropic 固有の `anthropic-beta` リクエストヘッダーと beta ツールスキーマフィールド(`defer_loading` や `eager_input_streaming` など)を API リクエストから削除するには `1` に設定します。プロキシゲートウェイが「`anthropic-beta` ヘッダーの予期しない値」や「追加の入力は許可されていません」などのエラーでリクエストを拒否する場合に使用します。標準フィールド(`name`、`description`、`input_schema`、`cache_control`)は保持されます。 |

77| `CLAUDE_CODE_DISABLE_FAST_MODE` | [高速モード](/ja/fast-mode) を無効にするには `1` に設定します |

78| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | 「Claude の調子はどうですか?」セッション品質調査を無効にするには `1` に設定します。`DISABLE_TELEMETRY` または `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` が設定されている場合も調査は無効になります。[セッション品質調査](/ja/data-usage#session-quality-surveys) を参照してください |

79| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | ファイル [チェックポイント](/ja/checkpointing) を無効にするには `1` に設定します。`/rewind` コマンドはコード変更を復元できなくなります |

80| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Claude のシステムプロンプトから組み込みのコミットと PR ワークフロー命令と git ステータススナップショットを削除するには `1` に設定します。独自の git ワークフロースキルを使用する場合に役立ちます。設定されている場合、[`includeGitInstructions`](/ja/settings#available-settings) 設定よりも優先されます |

81| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API で Opus 4.0 と 4.1 を現在の Opus バージョンに自動的にリマップすることを防ぐには `1` に設定します。古いモデルを意図的にピンしたい場合に使用します。リマップは Bedrock、Vertex、または Foundry では実行されません |

82| `CLAUDE_CODE_DISABLE_MOUSE` | [フルスクリーンレンダリング](/ja/fullscreen) でマウストラッキングを無効にするには `1` に設定します。`PgUp` と `PgDn` でのキーボードスクロールは引き続き機能します。ターミナルのネイティブなコピーオンセレクト動作を保持するために使用します |

83| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | `DISABLE_AUTOUPDATER`、`DISABLE_FEEDBACK_COMMAND`、`DISABLE_ERROR_REPORTING`、`DISABLE_TELEMETRY` を設定するのと同等です |

84| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | ストリーミングリクエストがストリーム中に失敗した場合の非ストリーミングフォールバックを無効にするには `1` に設定します。ストリーミングエラーは再試行レイヤーに伝播します。プロキシまたはゲートウェイがフォールバックで重複したツール実行を生成する場合に役立ちます |

85| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 初回実行時に公式プラグインマーケットプレイスの自動追加をスキップするには `1` に設定します |

86| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | システム全体で管理されているスキルディレクトリからスキルを読み込むことをスキップするには `1` に設定します。コンテナまたは CI セッションがオペレーターがプロビジョニングしたスキルを読み込むべきでない場合に役立ちます |

87| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 会話コンテキストに基づいて自動的にターミナルタイトルを更新することを無効にするには `1` に設定します |

88| `CLAUDE_CODE_DISABLE_THINKING` | モデルサポートまたは他の設定に関係なく、[拡張思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) を強制的に無効にするには `1` に設定します。`MAX_THINKING_TOKENS=0` よりも直接的です |

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

90| `CLAUDE_CODE_EFFORT_LEVEL` | サポートされているモデルの努力レベルを設定します。値:`low`、`medium`、`high`、`xhigh`、`max`、または `auto`(モデルのデフォルトを使用)。利用可能なレベルはモデルによって異なります。`/effort` および `effortLevel` 設定より優先されます。[努力レベルを調整](/ja/model-config#adjust-effort-level) を参照してください |

91| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [セッションリキャップ](/ja/interactive-mode#session-recap) の利用可能性をオーバーライドします。`/config` トグルに関係なくリキャップを強制的にオフにするには `0` に設定します。[`awaySummaryEnabled`](/ja/settings#available-settings) が `false` の場合にリキャップを強制的にオンにするには `1` に設定します。設定と `/config` トグルより優先されます |

92| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | [非対話モード](/ja/headless) でバックグラウンドインストールが完了した後、ターン境界でプラグイン状態をリフレッシュするには `1` に設定します。リフレッシュはセッション中にシステムプロンプトを変更するため、デフォルトではオフです。これにより、そのターンの [プロンプトキャッシング](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) が無効になります |

93| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 細粒度ツール入力ストリーミングを強制的に有効にするには `1` に設定します。これがない場合、API はツール入力パラメータを完全にバッファリングしてからデルタイベントを送信します。これは大きなツール入力での表示を遅延させる可能性があります。Anthropic API のみ:Bedrock、Vertex、または Foundry では効果がありません |

94| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | プロンプト提案を無効にするには `false` に設定します(`/config` の「プロンプト提案」トグル)。これらは Claude が応答した後にプロンプト入力に表示される灰色の予測です。[プロンプト提案](/ja/interactive-mode#prompt-suggestions) を参照してください |

95| `CLAUDE_CODE_ENABLE_TASKS` | 非対話モード(`-p` フラグ)でタスク追跡システムを有効にするには `1` に設定します。タスクは対話モードではデフォルトでオンです。[タスクリスト](/ja/interactive-mode#task-list) を参照してください |

96| `CLAUDE_CODE_ENABLE_TELEMETRY` | OpenTelemetry データ収集をメトリクスとログ用に有効にするには `1` に設定します。OTel エクスポーターを設定する前に必須です。[監視](/ja/monitoring-usage) を参照してください |

97| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | クエリループがアイドル状態になった後、自動的に終了するまで待機する時間(ミリ秒)。SDK モードを使用した自動化されたワークフローとスクリプトに役立ちます |

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

99| `CLAUDE_CODE_EXTRA_BODY` | すべての API リクエストボディの最上位にマージする JSON オブジェクト。Claude Code が直接公開していないプロバイダー固有のパラメータを渡すのに役立ちます |

100| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | ファイル読み取りのデフォルトトークン制限をオーバーライドします。より大きなファイルを完全に読み取る必要がある場合に役立ちます |

101| `CLAUDE_CODE_FORK_SUBAGENT` | [フォークされた subagent](/ja/sub-agents#fork-the-current-conversation) を有効にするには `1` に設定します。フォークされた subagent は、最初から開始する代わりに、メインセッションから完全な会話コンテキストを継承します。有効にすると、`/fork` は [`/branch`](/ja/commands) のエイリアスとして機能する代わりに、フォークされた subagent をスポーンします。すべての subagent スポーンはバックグラウンドで実行されます。対話モードと SDK または `claude -p` を通じて |

102| `CLAUDE_CODE_GIT_BASH_PATH` | Windows のみ:Git Bash 実行可能ファイル(`bash.exe`)へのパス。Git Bash がインストールされているが PATH にない場合に使用します。[Windows セットアップ](/ja/setup#set-up-on-windows) を参照してください |

103| `CLAUDE_CODE_GLOB_HIDDEN` | Claude が [Glob ツール](/ja/tools-reference) を呼び出すときに結果からドットファイルを除外するには `false` に設定します。デフォルトで含まれます。`@` ファイルオートコンプリート、`ls`、Grep、または Read には影響しません |

104| `CLAUDE_CODE_GLOB_NO_IGNORE` | [Glob ツール](/ja/tools-reference) が `.gitignore` パターンを尊重するようにするには `false` に設定します。デフォルトでは、Glob は gitignored されたものを含むすべての一致するファイルを返します。`@` ファイルオートコンプリートには影響しません。これは独自の [`respectGitignore` 設定](/ja/settings#available-settings) を持っています |

105| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob ツールファイル検出のタイムアウト(秒)。ほとんどのプラットフォームではデフォルト 20 秒、WSL では 60 秒 |

106| `CLAUDE_CODE_HIDE_CWD` | スタートアップロゴで作業ディレクトリを非表示にするには `1` に設定します。スクリーンシェアまたは記録でパスが OS ユーザー名を公開する場合に役立ちます |

107| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | IDE 拡張機能への接続に使用されるホストアドレスをオーバーライドします。デフォルトでは Claude Code は WSL-to-Windows ルーティングを含む正しいアドレスを自動検出します |

108| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | IDE 拡張機能の自動インストールをスキップします。[`autoInstallIdeExtension`](/ja/settings#global-config-settings) を `false` に設定するのと同等です |

109| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | IDE ロックファイルエントリの検証をスキップするには `1` に設定します。自動接続が実行中の IDE を見つけられない場合に使用します |

110| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code がアクティブなモデルに対して想定するコンテキストウィンドウサイズをオーバーライドします。`DISABLE_COMPACT` も設定されている場合にのみ有効になります。`ANTHROPIC_BASE_URL` を通じてモデルにルーティングする場合に使用します。その名前の組み込みサイズと一致しないコンテキストウィンドウを持つモデルの場合 |

111| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | ほとんどのリクエストの最大出力トークン数を設定します。デフォルトとキャップはモデルによって異なります。[最大出力トークン](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) を参照してください。この値を増やすと、[オートコンパクション](/ja/costs#reduce-token-usage) がトリガーされる前に利用可能な有効なコンテキストウィンドウが減少します。 |

112| `CLAUDE_CODE_MAX_RETRIES` | 失敗した API リクエストを再試行する回数をオーバーライドします(デフォルト:10) |

113| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 並列実行できる読み取り専用ツールと subagent の最大数(デフォルト:10)。高い値は並列性を増加させますが、より多くのリソースを消費します |

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

115| `CLAUDE_CODE_NEW_INIT` | `/init` が対話的なセットアップフローを実行するようにするには `1` に設定します。フローは、CLAUDE.md、スキル、フックを含む、生成するファイルを尋ねてから、コードベースを探索して書き込みます。この変数がない場合、`/init` はプロンプトなしに CLAUDE.md を自動的に生成します。 |

116| `CLAUDE_CODE_NO_FLICKER` | [フルスクリーンレンダリング](/ja/fullscreen) を有効にするには `1` に設定します。これは研究プレビューで、フリッカーを減らし、長い会話でメモリをフラットに保ちます。[`tui`](/ja/settings#available-settings) 設定と同等です。`/tui fullscreen` で切り替えることもできます |

117| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 認証用の OAuth リフレッシュトークン。設定されている場合、`claude auth login` はブラウザを開く代わりにこのトークンを直接交換します。`CLAUDE_CODE_OAUTH_SCOPES` が必須です。自動化された環境での認証のプロビジョニングに役立ちます |

118| `CLAUDE_CODE_OAUTH_SCOPES` | リフレッシュトークンが発行されたスペース区切りの OAuth スコープ(例:`"user:profile user:inference user:sessions:claude_code"`)。`CLAUDE_CODE_OAUTH_REFRESH_TOKEN` が設定されている場合は必須です |

119| `CLAUDE_CODE_OAUTH_TOKEN` | Claude.ai 認証用の OAuth アクセストークン。SDK および自動化された環境での `/login` の代替。キーチェーンに保存された認証情報よりも優先されます。[`claude setup-token`](/ja/authentication#generate-a-long-lived-token) で生成します |

120| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 保留中の OpenTelemetry スパンをフラッシュするためのタイムアウト(ミリ秒)(デフォルト:5000)。[監視](/ja/monitoring-usage) を参照してください |

121| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 動的 OpenTelemetry ヘッダーをリフレッシュする間隔(ミリ秒)(デフォルト:1740000 / 29 分)。[動的ヘッダー](/ja/monitoring-usage#dynamic-headers) を参照してください |

122| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | シャットダウン時に OpenTelemetry エクスポーターが完了するためのタイムアウト(ミリ秒)(デフォルト:2000)。終了時にメトリクスがドロップされる場合は増やしてください。[監視](/ja/monitoring-usage) を参照してください |

123| `CLAUDE_CODE_PERFORCE_MODE` | Perforce 対応の書き込み保護を有効にするには `1` に設定します。設定されている場合、Edit、Write、NotebookEdit は、ターゲットファイルが所有者書き込みビットを欠いている場合に `p4 edit <file>` ヒント付きで失敗します。これは Perforce が同期されたファイルで消去し、`p4 edit` が開くまで消去したままにします。これにより、Claude Code が Perforce 変更追跡をバイパスすることを防ぎます |

124| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | プラグインルートディレクトリをオーバーライドします。名前に反して、これはキャッシュ自体ではなく親ディレクトリを設定します:マーケットプレイスとプラグインキャッシュはこのパスの下のサブディレクトリに存在します。デフォルトは `~/.claude/plugins` です |

125| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | プラグインをインストールまたは更新するときの git 操作のタイムアウト(ミリ秒)(デフォルト:120000)。大規模なリポジトリまたは遅いネットワーク接続の場合、この値を増やします。[Git 操作がタイムアウト](/ja/plugin-marketplaces#git-operations-time-out) を参照してください |

126| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | `git pull` が失敗した場合、既存のマーケットプレイスキャッシュを保持するには `1` に設定します。ワイプして再クローンする代わりに。オフラインまたはエアギャップ環境で役立ちます。再クローンは同じ方法で失敗します。[オフライン環境でのマーケットプレイス更新の失敗](/ja/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) を参照してください |

127| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 1 つ以上の読み取り専用プラグインシードディレクトリへのパス。Unix では `:` で、Windows では `;` で区切られます。事前入力されたプラグインディレクトリをコンテナイメージにバンドルするために使用します。Claude Code はこれらのディレクトリからマーケットプレイスを登録し、再クローンなしで事前キャッシュされたプラグインを使用します。[コンテナ用のプラグインを事前入力](/ja/plugin-marketplaces#pre-populate-plugins-for-containers) を参照してください |

128| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Claude Code を埋め込み、その代わりにモデルプロバイダーのルーティングを管理するホストプラットフォームによって設定されます。設定されている場合、`CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL`、`ANTHROPIC_API_KEY` などのプロバイダー選択、エンドポイント、認証変数は設定ファイルで無視されるため、ユーザー設定はホストのルーティングをオーバーライドできません。Bedrock、Vertex、Foundry の自動テレメトリオプトアウトもスキップされるため、テレメトリは標準の `DISABLE_TELEMETRY` オプトアウトに従います。[API プロバイダーごとのデフォルト動作](/ja/data-usage#default-behaviors-by-api-provider) を参照してください |

129| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | プロキシが呼び出し元の代わりに DNS 解決を実行できるようにするには `1` に設定します。プロキシがホスト名解決を処理する必要がある環境でオプトインします |

130| `CLAUDE_CODE_REMOTE` | Claude Code が [クラウドセッション](/ja/claude-code-on-the-web) として実行されている場合に自動的に `true` に設定されます。フックまたはセットアップスクリプトからこれを読み取って、クラウド環境にいるかどうかを検出します |

131| `CLAUDE_CODE_REMOTE_SESSION_ID` | [クラウドセッション](/ja/claude-code-on-the-web) で現在のセッションの ID に自動的に設定されます。セッショントランスクリプトへのリンクを構築するために読み取ります。[セッションにアーティファクトをリンク](/ja/claude-code-on-the-web#link-artifacts-back-to-the-session) を参照してください |

132| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 前のセッションが途中で終了した場合に自動的に再開するには `1` に設定します。SDK モードで使用されるため、モデルは SDK がプロンプトを再送信する必要なく続行します |

133| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` が設定されている場合、セッションごとに特定のスクリプトを呼び出すことができる回数を制限する JSON オブジェクト。キーはコマンドテキストに対して一致するサブストリングです。値は整数呼び出し制限です。例えば、`{"deploy.sh": 2}` は `deploy.sh` を最大 2 回呼び出すことを許可します。マッチングはサブストリングベースなので、`./scripts/deploy.sh $(evil)` などのシェル展開トリックは依然としてキャップに対してカウントされます。`xargs` または `find -exec` を通じた実行時ファンアウトは検出されません。これは多層防御制御です |

134| `CLAUDE_CODE_SCROLL_SPEED` | [フルスクリーンレンダリング](/ja/fullscreen) でマウスホイールスクロール乗数を設定します。1~20 の値を受け入れます。ターミナルが増幅なしで 1 ノッチあたり 1 つのホイールイベントを送信する場合、`vim` に一致させるには `3` に設定します |

135| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/ja/hooks#sessionend) フックの時間予算をオーバーライドします(ミリ秒)。セッション終了、`/clear`、および対話的な `/resume` を通じたセッション切り替えに適用されます。デフォルトでは予算は 1.5 秒で、設定ファイルで設定されたフックごとの最高 `timeout` に自動的に引き上げられます。最大 60 秒。プラグイン提供フックのタイムアウトは予算を引き上げません |

136| `CLAUDE_CODE_SHELL` | 自動シェル検出をオーバーライドします。ログインシェルが優先作業シェルと異なる場合に役立ちます(例:`bash` vs `zsh`) |

137| `CLAUDE_CODE_SHELL_PREFIX` | すべての bash コマンドをラップするコマンドプレフィックス(ログまたは監査用など)。例:`/path/to/logger.sh` は `/path/to/logger.sh <command>` を実行します |

138| `CLAUDE_CODE_SIMPLE` | 最小限のシステムプロンプトと Bash、ファイル読み取り、ファイル編集ツールのみで実行するには `1` に設定します。`--mcp-config` からの MCP ツールは引き続き利用可能です。フック、スキル、プラグイン、MCP サーバー、自動メモリ、CLAUDE.md の自動検出を無効にします。[`--bare`](/ja/headless#start-faster-with-bare-mode) CLI フラグがこれを設定します |

139| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Opus 4.7 で短いシステムプロンプトと省略されたツール説明を使用するには `1` に設定します。他のモデルには効果がありません。完全なツールセット、フック、MCP サーバー、CLAUDE.md 検出は有効なままです |

140| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Bedrock の AWS 認証をスキップします(例:LLM ゲートウェイを使用する場合) |

141| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Microsoft Foundry の Azure 認証をスキップします(例:LLM ゲートウェイを使用する場合) |

142| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Bedrock Mantle の AWS 認証をスキップします(例:LLM ゲートウェイを使用する場合) |

143| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | プロンプト履歴とセッショントランスクリプトをディスクに書き込むことをスキップするには `1` に設定します。この変数が設定されたセッションは `--resume`、`--continue`、または上矢印履歴に表示されません。一時的なスクリプト化されたセッションに役立ちます |

144| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Vertex の Google 認証をスキップします(例:LLM ゲートウェイを使用する場合) |

145| `CLAUDE_CODE_SUBAGENT_MODEL` | [モデル設定](/ja/model-config) を参照してください |

146| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Anthropic とクラウドプロバイダーの認証情報をサブプロセス環境(Bash ツール、フック、MCP stdio サーバー)から削除するには `1` に設定します。親 Claude プロセスはこれらの認証情報を API 呼び出し用に保持しますが、子プロセスはそれらを読み取ることができず、シェル展開を通じてシークレットを流出させようとするプロンプトインジェクション攻撃への露出を減らします。Linux では、これは Bash サブプロセスを分離された PID 名前空間で実行するため、ホストプロセス環境を `/proc` 経由で読み取ることができません。副作用として、`ps`、`pgrep`、`kill` はホストプロセスを見たり、シグナルを送ったりできません。`allowed_non_write_users` が設定されている場合、`claude-code-action` はこれを自動的に設定します |

147| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 非対話モード(`-p` フラグ)でプラグインインストールが完了するまで待機するには `1` に設定します。これがない場合、プラグインはバックグラウンドでインストールされ、最初のターンで利用できない可能性があります。`CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` と組み合わせて待機を制限します |

148| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同期プラグインインストールのタイムアウト(ミリ秒)。超過すると、Claude Code はプラグインなしで続行し、エラーをログします。デフォルトなし:この変数がない場合、同期インストールは完了するまで待機します |

149| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | diff 出力の構文強調表示を無効にするには `false` に設定します。色がターミナルセットアップに干渉する場合に役立ちます |

150| `CLAUDE_CODE_TASK_LIST_ID` | セッション間でタスクリストを共有します。複数の Claude Code インスタンスで同じ ID を設定して、共有タスクリストで調整します。[タスクリスト](/ja/interactive-mode#task-list) を参照してください |

151| `CLAUDE_CODE_TEAM_NAME` | このチームメイトが属するエージェントチームの名前。[エージェントチーム](/ja/agent-teams) メンバーで自動的に設定されます |

152| `CLAUDE_CODE_TMPDIR` | 内部一時ファイルに使用される一時ディレクトリをオーバーライドします。Claude Code はこのパスに `/claude-{uid}/`(Unix)または `/claude/`(Windows)を追加します。デフォルト:macOS では `/tmp`、Linux/Windows では `os.tmpdir()` |

153| `CLAUDE_CODE_TMUX_TRUECOLOR` | tmux 内で 24 ビット truecolor 出力を許可するには `1` に設定します。デフォルトでは、`$TMUX` が設定されている場合、Claude Code は 256 色にクランプされます。tmux は設定されていない限り truecolor エスケープシーケンスを通過させないためです。`~/.tmux.conf` に `set -ga terminal-overrides ',*:Tc'` を追加した後、これを設定します。[ターミナル設定](/ja/terminal-config) で他の tmux 設定を参照してください |

154| `CLAUDE_CODE_USE_BEDROCK` | [Bedrock](/ja/amazon-bedrock) を使用します |

155| `CLAUDE_CODE_USE_FOUNDRY` | [Microsoft Foundry](/ja/microsoft-foundry) を使用します |

156| `CLAUDE_CODE_USE_MANTLE` | Bedrock [Mantle エンドポイント](/ja/amazon-bedrock#use-the-mantle-endpoint) を使用します |

157| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | ripgrep の代わりに Node.js ファイル API を使用してカスタムコマンド、subagent、出力スタイルを検出するには `1` に設定します。バンドルされた ripgrep バイナリが利用できないか、環境でブロックされている場合に設定します。Grep またはファイル検索ツールには影響しません |

158| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell ツールを制御します。Windows では Git Bash がない場合、ツールは自動的に有効になります。無効にするには `0` に設定します。Windows に Git Bash がインストールされている場合、ツールは段階的にロールアウトされています:オプトインするには `1` に、オプトアウトするには `0` に設定します。Linux、macOS、WSL では、有効にするには `1` に設定します。これには PATH に `pwsh` が必須です。Windows で有効にすると、Claude は Git Bash を通じてルーティングする代わりに PowerShell コマンドをネイティブに実行できます。[PowerShell ツール](/ja/tools-reference#powershell-tool) を参照してください |

159| `CLAUDE_CODE_USE_VERTEX` | [Vertex](/ja/google-vertex-ai) を使用します |

160| `CLAUDE_CONFIG_DIR` | 設定ディレクトリをオーバーライドします(デフォルト:`~/.claude`)。すべての設定、認証情報、セッション履歴、プラグインはこのパスの下に保存されます。複数のアカウントを並行して実行する場合に役立ちます:例えば、`alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

161| `CLAUDE_ENABLE_BYTE_WATCHDOG` | バイトレベルストリーミングアイドルウォッチドッグを強制的に有効にするには `1` に設定するか、強制的に無効にするには `0` に設定します。未設定の場合、ウォッチドッグは Anthropic API 接続でデフォルトで有効になります。バイトウォッチドッグは、`CLAUDE_STREAM_IDLE_TIMEOUT_MS` で設定された期間、ワイヤ上にバイトが到着しない場合に接続を中止します。最小 5 分で、イベントレベルウォッチドッグとは独立しています |

162| `CLAUDE_ENABLE_STREAM_WATCHDOG` | イベントレベルストリーミングアイドルウォッチドッグを有効にするには `1` に設定します。デフォルトではオフです。Bedrock、Vertex、Foundry では、これが唯一利用可能なアイドルウォッチドッグです。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` でタイムアウトを設定します |

163| `CLAUDE_ENV_FILE` | Claude Code が各 Bash コマンドの前に同じシェルプロセスで実行するシェルスクリプトへのパス。ファイル内のエクスポートはコマンドに表示されます。virtualenv または conda アクティベーションをコマンド間で永続化するために使用します。[SessionStart](/ja/hooks#persist-environment-variables)、[Setup](/ja/hooks#setup)、[CwdChanged](/ja/hooks#cwdchanged)、[FileChanged](/ja/hooks#filechanged) フックによって動的に入力されます |

164| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 明示的な名前が指定されていない場合、自動生成される [Remote Control](/ja/remote-control) セッション名のプレフィックス。デフォルトはマシンのホスト名で、`myhost-graceful-unicorn` のような名前を生成します。`--remote-control-session-name-prefix` CLI フラグは単一の呼び出しに対して同じ値を設定します |

165| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | ストリーミングアイドルウォッチドッグが停止した接続を閉じるまでのタイムアウト(ミリ秒)。Anthropic API のバイトレベルウォッチドッグの場合:デフォルトと最小 `300000`(5 分)。低い値は拡張思考の一時停止とプロキシバッファリングを吸収するために自動的にクランプされます。イベントレベルウォッチドッグの場合:デフォルト `90000`(90 秒)、最小なし。サードパーティプロバイダーの場合、`CLAUDE_ENABLE_STREAM_WATCHDOG=1` が必須です |

166| `DISABLE_AUTOUPDATER` | 自動更新を無効にするには `1` に設定します。手動の `claude update` は引き続き機能します。`DISABLE_UPDATES` を使用して両方をブロックします |

167| `DISABLE_AUTO_COMPACT` | コンテキスト制限に近づいたときの自動コンパクションを無効にするには `1` に設定します。手動の `/compact` コマンドは引き続き利用可能です。コンパクションが発生するタイミングを明示的に制御したい場合に使用します |

168| `DISABLE_COMPACT` | すべてのコンパクションを無効にするには `1` に設定します:自動コンパクションと手動の `/compact` コマンドの両方 |

169| `DISABLE_COST_WARNINGS` | コスト警告メッセージを無効にするには `1` に設定します |

170| `DISABLE_DOCTOR_COMMAND` | `/doctor` コマンドを非表示にするには `1` に設定します。ユーザーがインストール診断を実行すべきでない管理されたデプロイメントに役立ちます |

171| `DISABLE_ERROR_REPORTING` | Sentry エラーレポートをオプトアウトするには `1` に設定します |

172| `DISABLE_EXTRA_USAGE_COMMAND` | ユーザーがレート制限を超えて追加使用量を購入できる `/extra-usage` コマンドを非表示にするには `1` に設定します |

173| `DISABLE_FEEDBACK_COMMAND` | `/feedback` コマンドを無効にするには `1` に設定します。古い名前 `DISABLE_BUG_COMMAND` も受け入れられます |

174| `DISABLE_GROWTHBOOK` | GrowthBook フィーチャーフラグ取得を無効にするには `1` に設定します。すべてのフラグにコードデフォルトを使用します。テレメトリイベントログは `DISABLE_TELEMETRY` も設定されていない限りオンのままです |

175| `DISABLE_INSTALLATION_CHECKS` | インストール警告を無効にするには `1` に設定します。インストール場所を手動で管理する場合にのみ使用してください。標準インストールの問題をマスクする可能性があります |

176| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` コマンドを非表示にするには `1` に設定します。サードパーティプロバイダー(Bedrock、Vertex、または Foundry)を使用する場合は既に非表示です |

177| `DISABLE_INTERLEAVED_THINKING` | インターリーブ思考ベータヘッダーの送信を防ぐには `1` に設定します。LLM ゲートウェイまたはプロバイダーが [インターリーブ思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) をサポートしていない場合に役立ちます |

178| `DISABLE_LOGIN_COMMAND` | `/login` コマンドを非表示にするには `1` に設定します。認証が API キーまたは `apiKeyHelper` を通じて外部で処理される場合に役立ちます |

179| `DISABLE_LOGOUT_COMMAND` | `/logout` コマンドを非表示にするには `1` に設定します |

180| `DISABLE_PROMPT_CACHING` | すべてのモデルのプロンプトキャッシングを無効にするには `1` に設定します(モデルごとの設定よりも優先されます) |

181| `DISABLE_PROMPT_CACHING_HAIKU` | Haiku モデルのプロンプトキャッシングを無効にするには `1` に設定します |

182| `DISABLE_PROMPT_CACHING_OPUS` | Opus モデルのプロンプトキャッシングを無効にするには `1` に設定します |

183| `DISABLE_PROMPT_CACHING_SONNET` | Sonnet モデルのプロンプトキャッシングを無効にするには `1` に設定します |

184| `DISABLE_TELEMETRY` | Statsig テレメトリをオプトアウトするには `1` に設定します(Statsig イベントにはコード、ファイルパス、bash コマンドなどのユーザーデータは含まれません) |

185| `DISABLE_UPDATES` | すべての更新をブロックするには `1` に設定します。手動の `claude update` と `claude install` を含みます。`DISABLE_AUTOUPDATER` より厳密です。Claude Code を独自のチャネルを通じて配布し、ユーザーが自己更新すべきでない場合に使用します |

186| `DISABLE_UPGRADE_COMMAND` | `/upgrade` コマンドを非表示にするには `1` に設定します |

187| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code で [claude.ai MCP サーバー](/ja/mcp#use-mcp-servers-from-claude-ai) を無効にするには `false` に設定します。ログインしているユーザーではデフォルトで有効です |

188| `ENABLE_PROMPT_CACHING_1H` | API キー、[Bedrock](/ja/amazon-bedrock)、[Vertex](/ja/google-vertex-ai)、[Foundry](/ja/microsoft-foundry) ユーザーの場合、デフォルトの 5 分の代わりに 1 時間のプロンプトキャッシュ TTL をリクエストするには `1` に設定します。サブスクリプションユーザーは 1 時間の TTL を自動的に受け取ります。1 時間キャッシュ書き込みはより高いレートで請求されます |

189| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 非推奨。代わりに `ENABLE_PROMPT_CACHING_1H` を使用してください |

190| `ENABLE_TOOL_SEARCH` | [MCP ツール検索](/ja/mcp#scale-with-mcp-tool-search) を制御します。未設定:すべての MCP ツールはデフォルトで遅延されますが、Vertex AI または `ANTHROPIC_BASE_URL` がファーストパーティ以外のホストを指している場合は事前に読み込まれます。値:`true`(プロキシを含めて常に遅延)、`auto`(閾値モード:ツールがコンテキストの 10% に収まる場合は事前に読み込み)、`auto:N`(カスタム閾値、例:5% の場合は `auto:5`)、`false`(すべて事前に読み込み) |

191| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 任意のプライマリモデルで繰り返されるオーバーロードエラーの後に [`--fallback-model`](/ja/cli-reference#cli-flags) へのフォールバックをトリガーするには、空でない値に設定します。デフォルトでは、Opus モデルのみがフォールバックをトリガーします |

192| `FORCE_AUTOUPDATE_PLUGINS` | メインのオートアップデーターが `DISABLE_AUTOUPDATER` で無効になっている場合でも、プラグインの自動更新を強制するには `1` に設定します |

193| `FORCE_PROMPT_CACHING_5M` | 1 時間の TTL が適用される場合でも、5 分のプロンプトキャッシュ TTL を強制するには `1` に設定します。`ENABLE_PROMPT_CACHING_1H` をオーバーライドします |

194| `HTTP_PROXY` | ネットワーク接続用の HTTP プロキシサーバーを指定します |

195| `HTTPS_PROXY` | ネットワーク接続用の HTTPS プロキシサーバーを指定します |

196| `IS_DEMO` | デモモードを有効にするには `1` に設定します:ヘッダーと `/status` 出力からメールと組織名を非表示にし、オンボーディングをスキップします。セッションをストリーミングまたは記録する場合に役立ちます |

197| `MAX_MCP_OUTPUT_TOKENS` | MCP ツール応答で許可される最大トークン数。Claude Code は出力が 10,000 トークンを超える場合に警告を表示します。[`anthropic/maxResultSizeChars`](/ja/mcp#raise-the-limit-for-a-specific-tool) を宣言するツールはテキストコンテンツにその文字制限を使用しますが、これらのツールからの画像コンテンツはこの変数の対象です(デフォルト:25000) |

198| `MAX_STRUCTURED_OUTPUT_RETRIES` | 非対話モード(`-p` フラグ)で [`--json-schema`](/ja/cli-reference#cli-flags) に対するモデルの応答検証が失敗した場合の再試行回数。デフォルト:5 |

199| `MAX_THINKING_TOKENS` | [拡張思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) トークン予算をオーバーライドします。上限はモデルの [最大出力トークン](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) から 1 を引いた値です。思考を完全に無効にするには `0` に設定します。[適応的推論](/ja/model-config#adjust-effort-level) を備えたモデルでは、`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` を通じて適応的推論が無効にされない限り、予算は無視されます |

200| `MCP_CLIENT_SECRET` | [事前設定された認証情報](/ja/mcp#use-pre-configured-oauth-credentials) が必要な MCP サーバーの OAuth クライアントシークレット。`--client-secret` でサーバーを追加するときに対話的なプロンプトを回避します |

201| `MCP_CONNECTION_NONBLOCKING` | 非対話モード(`-p`)で MCP 接続待機全体をスキップするには `true` に設定します。MCP ツールが不要なスクリプト化されたパイプラインに役立ちます。この変数がない場合、最初のクエリは `--mcp-config` サーバー接続を最大 5 秒待機します |

202| `MCP_OAUTH_CALLBACK_PORT` | OAuth リダイレクトコールバック用の固定ポート。[事前設定された認証情報](/ja/mcp#use-pre-configured-oauth-credentials) で MCP サーバーを追加する場合の `--callback-port` の代替 |

203| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | スタートアップ中に並列接続するリモート MCP サーバー(HTTP/SSE)の最大数(デフォルト:20) |

204| `MCP_SERVER_CONNECTION_BATCH_SIZE` | スタートアップ中に並列接続するローカル MCP サーバー(stdio)の最大数(デフォルト:3) |

205| `MCP_TIMEOUT` | MCP サーバー起動のタイムアウト(ミリ秒)(デフォルト:30000、または 30 秒) |

206| `MCP_TOOL_TIMEOUT` | MCP ツール実行のタイムアウト(ミリ秒)(デフォルト:100000000、約 28 時間) |

207| `NO_PROXY` | リクエストが直接発行されるドメインと IP のリスト。プロキシをバイパスします |

208| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API リクエストとレスポンス JSON を `api_request_body` / `api_response_body` ログイベントとして出力します。60 KB で切り詰められたインラインボディの場合は `1` に設定するか、切り詰められていないボディをディスクに書き込み、`body_ref` パスを出力する場合は `file:<dir>` に設定します。デフォルトでは無効です。ボディには会話履歴全体が含まれます。[監視](/ja/monitoring-usage#api-request-body-event) を参照してください |

209| `OTEL_LOG_TOOL_CONTENT` | ツール入力と出力コンテンツを OpenTelemetry スパンイベントに含めるには `1` に設定します。機密データを保護するためにデフォルトで無効です。[監視](/ja/monitoring-usage) を参照してください |

210| `OTEL_LOG_TOOL_DETAILS` | ツール入力引数、MCP サーバー名、ツール失敗時の生エラー文字列、その他のツール詳細を OpenTelemetry トレースとログに含めるには `1` に設定します。PII を保護するためにデフォルトで無効です。[監視](/ja/monitoring-usage) を参照してください |

211| `OTEL_LOG_USER_PROMPTS` | ユーザープロンプトテキストを OpenTelemetry トレースとログに含めるには `1` に設定します。デフォルトで無効です(プロンプトは編集されます)。[監視](/ja/monitoring-usage) を参照してください |

212| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | メトリクス属性からアカウント UUID を除外するには `false` に設定します(デフォルト:含まれます)。[監視](/ja/monitoring-usage) を参照してください |

213| `OTEL_METRICS_INCLUDE_SESSION_ID` | メトリクス属性からセッション ID を除外するには `false` に設定します(デフォルト:含まれます)。[監視](/ja/monitoring-usage) を参照してください |

214| `OTEL_METRICS_INCLUDE_VERSION` | Claude Code バージョンをメトリクス属性に含めるには `true` に設定します(デフォルト:除外)。[監視](/ja/monitoring-usage) を参照してください |

215| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | [Skill ツール](/ja/skills#control-who-invokes-a-skill) に表示されるスキルメタデータの文字予算をオーバーライドします。予算はコンテキストウィンドウの 1% で動的にスケーリングされ、フォールバックは 8,000 文字です。後方互換性のために従来の名前が保持されています |

216| `TASK_MAX_OUTPUT_LENGTH` | 切り詰め前の [subagent](/ja/sub-agents) 出力の最大文字数(デフォルト:32000、最大:160000)。切り詰められた場合、完全な出力はディスクに保存され、パスは切り詰められた応答に含まれます |

217| `USE_BUILTIN_RIPGREP` | Claude Code に含まれる `rg` の代わりにシステムにインストールされた `rg` を使用するには `0` に設定します |

218| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Vertex AI を使用する場合、Claude 3.5 Haiku のリージョンをオーバーライドします |

219| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Vertex AI を使用する場合、Claude 3.5 Sonnet のリージョンをオーバーライドします |

220| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Vertex AI を使用する場合、Claude 3.7 Sonnet のリージョンをオーバーライドします |

221| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Vertex AI を使用する場合、Claude 4.0 Opus のリージョンをオーバーライドします |

222| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Vertex AI を使用する場合、Claude 4.0 Sonnet のリージョンをオーバーライドします |

223| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Vertex AI を使用する場合、Claude 4.1 Opus のリージョンをオーバーライドします |

224| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Vertex AI を使用する場合、Claude Opus 4.5 のリージョンをオーバーライドします |

225| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Vertex AI を使用する場合、Claude Sonnet 4.5 のリージョンをオーバーライドします |

226| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Vertex AI を使用する場合、Claude Opus 4.6 のリージョンをオーバーライドします |

227| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Vertex AI を使用する場合、Claude Sonnet 4.6 のリージョンをオーバーライドします |

228| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Vertex AI を使用する場合、Claude Opus 4.7 のリージョンをオーバーライドします |

229| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Vertex AI を使用する場合、Claude Haiku 4.5 のリージョンをオーバーライドします |

230 

231標準 OpenTelemetry エクスポーター変数(`OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_EXPORTER_OTLP_ENDPOINT`、`OTEL_EXPORTER_OTLP_PROTOCOL`、`OTEL_EXPORTER_OTLP_HEADERS`、`OTEL_METRIC_EXPORT_INTERVAL`、`OTEL_RESOURCE_ATTRIBUTES`、およびシグナル固有のバリアント)もサポートされています。設定の詳細は [監視](/ja/monitoring-usage) を参照してください。

232 

233## 関連項目

234 

235* [設定](/ja/settings):`settings.json` で環境変数を設定して、すべてのセッションに適用します

236* [CLI リファレンス](/ja/cli-reference):起動時フラグ

237* [ネットワーク設定](/ja/network-config):プロキシと TLS セットアップ

238* [監視](/ja/monitoring-usage):OpenTelemetry 設定

errors.md +536 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# エラーリファレンス

6 

7> Claude Code のランタイムエラーメッセージを検索し、各エラーの意味と修正方法を確認できます。

8 

9このページでは、Claude Code が表示するランタイムエラーと各エラーからの復旧方法、および応答がエラーなしで異常に見える場合に確認すべき内容を一覧表示しています。セットアップ中の `command not found` や TLS エラーなどのインストールエラーについては、[トラブルシューティング インストールとログイン](/ja/troubleshoot-install)を参照してください。

10 

11これらのエラーと復旧コマンドは、CLI、[デスクトップアプリ](/ja/desktop)、および[ウェブ上の Claude Code](/ja/claude-code-on-the-web)全体に適用されます。これら 3 つはすべて同じ Claude Code CLI をラップしているためです。サーフェス固有の問題については、そのサーフェスのページのトラブルシューティングセクションを参照してください。

12 

13<Note>

14 Claude Code は、モデルレスポンスについて Claude API を呼び出すため、ほとんどのランタイムエラーは基盤となる API エラーコードにマップされます。このページでは、Claude Code 内での各エラーの意味と復旧方法について説明しています。生の HTTP ステータスコード定義については、[Claude Platform エラーリファレンス](https://platform.claude.com/docs/en/api/errors)を参照してください。

15</Note>

16 

17## エラーを検索する

18 

19ターミナルに表示されるメッセージを以下のセクションと照合してください。

20 

21| メッセージ | セクション |

22| :----------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- |

23| `API Error: 500 ... Internal server error` | [サーバーエラー](#api-error-500-internal-server-error) |

24| `API Error: Repeated 529 Overloaded errors` | [サーバーエラー](#api-error-repeated-529-overloaded-errors) |

25| `Request timed out` | [サーバーエラー](#request-timed-out)、またはメッセージがインターネット接続に言及している場合は[ネットワーク](#unable-to-connect-to-api) |

26| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [サーバーエラー](#auto-mode-cannot-determine-the-safety-of-an-action) |

27| `You've hit your session limit` / `You've hit your weekly limit` | [使用制限](#youve-hit-your-session-limit) |

28| `Server is temporarily limiting requests` | [使用制限](#server-is-temporarily-limiting-requests) |

29| `Request rejected (429)` | [使用制限](#request-rejected-429) |

30| `Credit balance is too low` | [使用制限](#credit-balance-is-too-low) |

31| `Not logged in · Please run /login` | [認証](#not-logged-in) |

32| `Invalid API key` | [認証](#invalid-api-key) |

33| `This organization has been disabled` | [認証](#this-organization-has-been-disabled) |

34| `OAuth token revoked` / `OAuth token has expired` | [認証](#oauth-token-revoked-or-expired) |

35| `does not meet scope requirement user:profile` | [認証](#oauth-scope-requirement) |

36| `Unable to connect to API` | [ネットワーク](#unable-to-connect-to-api) |

37| `SSL certificate verification failed` | [ネットワーク](#ssl-certificate-errors) |

38| `Prompt is too long` | [リクエストエラー](#prompt-is-too-long) |

39| `Error during compaction: Conversation too long` | [リクエストエラー](#error-during-compaction-conversation-too-long) |

40| `Request too large` | [リクエストエラー](#request-too-large) |

41| `Image was too large` | [リクエストエラー](#image-was-too-large) |

42| `PDF too large` / `PDF is password protected` | [リクエストエラー](#pdf-errors) |

43| `Extra inputs are not permitted` | [リクエストエラー](#extra-inputs-are-not-permitted) |

44| `There's an issue with the selected model` | [リクエストエラー](#theres-an-issue-with-the-selected-model) |

45| `Claude Opus is not available with the Claude Pro plan` | [リクエストエラー](#claude-opus-is-not-available-with-the-claude-pro-plan) |

46| `thinking.type.enabled is not supported for this model` | [リクエストエラー](#thinking-type-enabled-is-not-supported-for-this-model) |

47| `max_tokens must be greater than thinking.budget_tokens` | [リクエストエラー](#thinking-budget-exceeds-output-limit) |

48| `API Error: 400 due to tool use concurrency issues` | [リクエストエラー](#tool-use-or-thinking-block-mismatch) |

49| レスポンスの品質が通常より低いように見える | [レスポンス品質](#responses-seem-lower-quality-than-usual) |

50 

51## 自動リトライ

52 

53Claude Code は、エラーを表示する前に一時的な障害をリトライします。サーバーエラー、オーバーロードレスポンス、リクエストタイムアウト、一時的な 429 スロットル、および接続の切断はすべて、指数バックオフで最大 10 回リトライされます。リトライ中、スピナーは `Retrying in Ns · attempt x/y` カウントダウンを表示します。

54 

55このページのエラーの 1 つが表示されている場合、これらのリトライはすでに使い果たされています。2 つの環境変数で動作をチューニングできます。

56 

57| 変数 | デフォルト | 効果 |

58| :---------------------------------------- | :----- | :---------------------------------------------------- |

59| [`CLAUDE_CODE_MAX_RETRIES`](/ja/env-vars) | 10 | リトライ試行回数。スクリプトで障害をより速く表示するには低くし、より長いインシデントを待つには高くします。 |

60| [`API_TIMEOUT_MS`](/ja/env-vars) | 600000 | リクエストごとのタイムアウト(ミリ秒単位)。遅いネットワークまたはプロキシの場合は高くします。 |

61 

62## サーバーエラー

63 

64これらのエラーは、アカウントまたはリクエストではなく、Anthropic インフラストラクチャから発生します。

65 

66### API Error: 500 Internal server error

67 

68Claude Code は、5xx ステータスの生の API レスポンスボディを表示します。以下の例は 500 レスポンスを示しています。

69 

70```text theme={null}

71API Error: 500 {"type":"error","error":{"type":"api_error","message":"Internal server error"}} · check status.claude.com

72```

73 

74これは API 内の予期しない障害を示しています。プロンプト、設定、またはアカウントが原因ではありません。

75 

76**対応方法:**

77 

78* [status.claude.com](https://status.claude.com)でアクティブなインシデントを確認してください

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

80* エラーが投稿されたインシデントなしで続く場合は、`/feedback` を実行して、Anthropic がリクエスト詳細で調査できるようにしてください。プロバイダーで `/feedback` が利用できない場合は、[エラーを報告する](#report-an-error)を参照してください。

81 

82### API Error: Repeated 529 Overloaded errors

83 

84API は、すべてのユーザー全体で一時的に容量に達しています。Claude Code は、このメッセージを表示する前に既に数回リトライしています。

85 

86```text theme={null}

87API Error: Repeated 529 Overloaded errors · check status.claude.com

88```

89 

90529 は使用制限ではなく、クォータに対してカウントされません。

91 

92**対応方法:**

93 

94* [status.claude.com](https://status.claude.com)で容量に関する通知を確認してください

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

96* `/model` を実行して別のモデルに切り替えて、容量がモデルごとに追跡されるため、作業を続けてください。Claude Code は、1 つのモデルが特に高い負荷を受けている場合、たとえば `Opus is experiencing high load, please use /model to switch to Sonnet` のようにこれを行うようにプロンプトを表示します。

97 

98### Request timed out

99 

100API は接続期限前に応答しませんでした。

101 

102```text theme={null}

103Request timed out

104```

105 

106これは、高負荷期間中または非常に大きなレスポンスが生成されている場合に発生する可能性があります。デフォルトのリクエストタイムアウトは 10 分です。

107 

108**対応方法:**

109 

110* リクエストを再試行してください

111* 長時間実行されるタスクの場合は、作業をより小さいプロンプトに分割してください

112* 遅いネットワークまたはプロキシが原因の場合は、[自動リトライ](#automatic-retries)で説明されているように `API_TIMEOUT_MS` を上げてください

113* タイムアウトが頻繁で、ネットワークが正常な場合は、以下の[ネットワークと接続エラー](#network-and-connection-errors)を参照してください

114 

115### Auto mode cannot determine the safety of an action

116 

117[auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode)がアクションを分類するために使用するモデルがオーバーロードされているため、auto mode はそれをチェックなしで承認する代わりにアクションをブロックしました。

118 

119```text theme={null}

120<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait briefly and then try this action again.

121```

122 

123読み取り、検索、および作業ディレクトリ内の編集は分類器をスキップするため、停止中も機能し続けます。

124 

125**対応方法:**

126 

127* 数秒後に再試行してください。Claude は同じメッセージを見て、通常は自動的に再試行します

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

129* これは一時的であり、[auto mode 適格性](/ja/permission-modes#eliminate-prompts-with-auto-mode)とは無関係です。設定を変更する必要はありません

130 

131## 使用制限

132 

133これらのエラーは、アカウントまたはプランに関連するクォータに達したことを意味します。これらは、すべてに影響する[サーバーエラー](#server-errors)とは異なります。

134 

135### You've hit your session limit

136 

137サブスクリプションプランには、ローリング使用許容量が含まれています。使い果たされると、次のいずれかのメッセージが表示されます。

138 

139```text theme={null}

140You've hit your session limit · resets 3:45pm

141You've hit your weekly limit · resets Mon 12:00am

142You've hit your Opus limit · resets 3:45pm

143```

144 

145Claude Code は、メッセージに表示されているリセット時刻までさらなるリクエストをブロックします。

146 

147**対応方法:**

148 

149* エラーに表示されているリセット時刻を待ってください

150* `/usage` を実行して、プランの制限とリセット時刻を確認してください

151* `/extra-usage` を実行して、Pro および Max で追加使用量を購入するか、Team および Enterprise で管理者にリクエストしてください。[有料プランの追加使用量](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)を参照して、これがどのように請求されるかを確認してください。

152* プランをアップグレードしてより高いベース制限を取得するには、[claude.com/pricing](https://claude.com/pricing)を参照してください

153 

154制限に達する前に残りの許容量を監視するには、`rate_limits` フィールドを[カスタムステータスライン](/ja/statusline#rate-limit-usage)に追加するか、デスクトップアプリでモデルピッカーの横にある[使用量リング](/ja/desktop#check-usage)をクリックしてください。

155 

156### Server is temporarily limiting requests

157 

158API は、プランクォータとは無関係の短期的なスロットルを適用しました。

159 

160```text theme={null}

161API Error: Server is temporarily limiting requests (not your usage limit)

162```

163 

164これは、表示される前に[自動的にリトライ](#automatic-retries)されます。

165 

166**対応方法:**

167 

168* 少し待ってから再度試してください

169* 続く場合は [status.claude.com](https://status.claude.com)を確認してください

170 

171### Request rejected (429)

172 

173API キー、Amazon Bedrock プロジェクト、または Google Vertex AI プロジェクト用に設定されたレート制限に達しました。

174 

175```text theme={null}

176API Error: Request rejected (429) · this may be a temporary capacity issue

177```

178 

179**対応方法:**

180 

181* `/status` を実行して、アクティブな認証情報が予想されるものであることを確認してください。環境内の迷走した `ANTHROPIC_API_KEY` は、サブスクリプションではなく低層キーを通じてリクエストをルーティングできます。

182* プロバイダーコンソールでアクティブな制限を確認し、必要に応じてより高い層をリクエストしてください

183* Anthropic API キーについては、[レート制限リファレンス](https://platform.claude.com/docs/en/api/rate-limits)を参照して、層がどのように機能し、ワークスペースごとのキャップを設定する方法を確認してください

184* 同時実行性を削減します。[`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/ja/env-vars)を低くするか、多くの並列サブエージェントの実行を避けるか、高ボリュームのスクリプト実行用に `/model` で小さいモデルに切り替えてください

185 

186### Credit balance is too low

187 

188Console 組織は、プリペイドクレジットを使い果たしました。

189 

190```text theme={null}

191Credit balance is too low

192```

193 

194**対応方法:**

195 

196* [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing)でクレジットを追加し、そこで自動リロードを有効にして、残高がゼロに達する前に補充されるようにすることを検討してください

197* Pro、Max、Team、または Enterprise プランがある場合は、`/login` でサブスクリプション認証に切り替えてください

198* Console でワークスペースごとの支出キャップを設定して、単一のプロジェクトが組織の残高を枯渇させるのを防いでください。[コストを効果的に管理する](/ja/costs)を参照してください。

199 

200## 認証エラー

201 

202これらのエラーは、Claude Code が API に対して身元を証明できないことを意味します。いつでも `/status` を実行して、現在アクティブな認証情報を確認してください。

203 

204### Not logged in

205 

206このセッションで有効な認証情報は利用できません。

207 

208```text theme={null}

209Not logged in · Please run /login

210```

211 

212**対応方法:**

213 

214* `/login` を実行して、Claude サブスクリプションまたは Console アカウントで認証してください

215* 環境変数で認証されることを期待していた場合は、`ANTHROPIC_API_KEY` が設定され、`claude` を起動したシェルでエクスポートされていることを確認してください

216* インタラクティブログインが不可能な CI または自動化の場合は、起動時にキーをフェッチする[`apiKeyHelper`](/ja/settings#available-settings)スクリプトを設定してください

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

218 

219ログインを繰り返しプロンプトされている場合は、[ログインしていないまたはトークンの有効期限が切れている](/ja/troubleshoot-install#not-logged-in-or-token-expired)を参照して、システムクロックと macOS キーチェーンの修正を確認してください。

220 

221### Invalid API key

222 

223`ANTHROPIC_API_KEY` 環境変数または `apiKeyHelper` スクリプトが、API が拒否したキーを返しました。

224 

225```text theme={null}

226Invalid API key · Fix external API key

227```

228 

229**対応方法:**

230 

231* タイプミスを確認し、キーが [Console](https://platform.claude.com/settings/keys) で取り消されていないことを確認してください

232* 同じシェルで `env | grep ANTHROPIC` を実行してください。direnv、dotenv シェルプラグイン、IDE ターミナルなどのツールは、明示的に設定せずにプロジェクト内の `.env` ファイルから古いキーをロードできます。

233* `ANTHROPIC_API_KEY` をアンセットして `/login` を実行し、代わりにサブスクリプション認証を使用してください

234* キーが[`apiKeyHelper`](/ja/settings#available-settings)スクリプトから来ている場合は、スクリプトを直接実行して、stdout に有効なキーを出力することを確認してください

235* `/status` を実行して、Claude Code が実際に使用している認証情報ソースを確認してください

236 

237### This organization has been disabled

238 

239無効な Console 組織からの古い `ANTHROPIC_API_KEY` がサブスクリプションログインをオーバーライドしています。

240 

241```text theme={null}

242Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your other credentials

243API Error: 400 ... This organization has been disabled.

244```

245 

246環境変数は `/login` より優先されるため、シェルプロファイルでエクスポートされたキーまたは `.env` ファイルからロードされたキーは、機能する Pro または Max サブスクリプションがある場合でも使用されます。非インタラクティブモード(`-p`)では、キーが存在する場合は常に使用されます。

247 

248**対応方法:**

249 

250* 現在のシェルで `ANTHROPIC_API_KEY` をアンセットし、シェルプロファイルから削除してから、`claude` を再起動してください

251* その後 `/status` を実行して、アクティブな認証情報がサブスクリプションであることを確認してください

252* 環境変数が設定されておらず、エラーが続く場合、無効な組織は `/login` に関連付けられているものです。サポートに連絡するか、別のアカウントでサインインしてください。

253 

254### OAuth token revoked or expired

255 

256保存されたログインは有効ではなくなりました。取り消されたトークンは、どこかでサインアウトしたか、管理者がアクセスを削除したことを意味します。期限切れのトークンは、自動リフレッシュがセッション中に失敗したことを意味します。

257 

258```text theme={null}

259OAuth token revoked · Please run /login

260OAuth token has expired · Please run /login

261API Error: 401 ... authentication_error

262```

263 

264**対応方法:**

265 

266* `/login` を実行して再度サインインしてください

267* 再認証後、同じセッション内でエラーが返される場合は、最初に `/logout` を実行して保存されたトークンを完全にクリアしてから、`/login` を実行してください

268* 起動全体でログインを繰り返しプロンプトされている場合は、[トラブルシューティング](/ja/troubleshoot-install#not-logged-in-or-token-expired)のシステムクロックと macOS キーチェーンチェックを参照してください

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

270 

271### OAuth scope requirement

272 

273保存されたトークンは、新しい機能が必要とする権限スコープより前のものです。これは、`/usage` とステータスラインの使用量インジケーターから最も頻繁に表示されます。

274 

275```text theme={null}

276OAuth token does not meet scope requirement: user:profile

277```

278 

279**対応方法:**

280 

281* `/login` を実行して、現在のスコープで新しいトークンを作成してください。ログアウトする必要はありません。

282 

283## ネットワークと接続エラー

284 

285これらのエラーは、Claude Code が API に到達できなかったことを意味します。これらはほぼ常に、Anthropic インフラストラクチャではなく、ローカルネットワーク、プロキシ、またはファイアウォールから発生します。

286 

287### Unable to connect to API

288 

289API への TCP 接続に失敗したか、完了しませんでした。

290 

291```text theme={null}

292Unable to connect to API. Check your internet connection

293Unable to connect to API (ECONNREFUSED)

294Unable to connect to API (ECONNRESET)

295Unable to connect to API (ETIMEDOUT)

296fetch failed

297Request timed out. Check your internet connection and proxy settings

298```

299 

300一般的な原因には、インターネットアクセスがない、`api.anthropic.com` をブロックする VPN、または設定されていない必須の企業プロキシが含まれます。

301 

302**対応方法:**

303 

304* 同じシェルから `curl -I https://api.anthropic.com` を実行して、API ホストに到達できることを確認してください。Windows PowerShell では、組み込みの `Invoke-WebRequest` エイリアスが使用されないように `curl.exe -I https://api.anthropic.com` を使用してください。

305* 企業プロキシの背後にある場合は、Claude Code を起動する前に `HTTPS_PROXY` を設定し、[ネットワーク設定](/ja/network-config)を参照してください

306* LLM ゲートウェイまたはリレーを通じてルーティングする場合は、[`ANTHROPIC_BASE_URL`](/ja/env-vars)をそのアドレスに設定してください。セットアップについては、[LLM ゲートウェイ設定](/ja/llm-gateway)を参照してください。

307* ファイアウォールが[ネットワークアクセス要件](/ja/network-config#network-access-requirements)に記載されているホストを許可していることを確認してください

308* 一時的な障害は[自動的にリトライ](#automatic-retries)されます。永続的な障害はローカルネットワークの問題を指しています

309 

310`curl` は成功しても Claude Code が失敗する場合、原因は通常、ネットワーク自体ではなく Node.js とネットワークの間にあります。

311 

312* Linux および WSL では、`/etc/resolv.conf` で到達不可能なネームサーバーを確認してください。特に WSL はホストから壊れたリゾルバーを継承できます。

313* macOS では、切断または削除された VPN クライアントがトンネルインターフェースまたはルーティングルールを残す可能性があります。`ifconfig` で古い `utun` インターフェースを確認し、システム設定で VPN のネットワーク拡張を削除してください。

314* Docker Desktop および同様のコンテナランタイムは、アウトバウンドトラフィックをインターセプトできます。それらを終了して再試行し、これを除外してください。

315 

316### SSL certificate errors

317 

318ネットワーク上のプロキシまたはセキュリティアプライアンスが、独自の証明書で TLS トラフィックをインターセプトしており、Node.js がそれを信頼していません。

319 

320```text theme={null}

321Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates

322Unable to connect to API: Self-signed certificate detected

323```

324 

325**対応方法:**

326 

327* 組織の CA バンドルをエクスポートし、`NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem` で Node をポイントしてください

328* 完全なセットアップ手順については、[ネットワーク設定](/ja/network-config#custom-ca-certificates)を参照してください

329* 証明書検証を完全に無効にする `NODE_TLS_REJECT_UNAUTHORIZED=0` を設定しないでください

330 

331## リクエストエラー

332 

333これらのエラーは、API がリクエストを受け取ったが、その内容を拒否したことを意味します。

334 

335### Prompt is too long

336 

337会話と添付ファイルがモデルのコンテキストウィンドウを超えています。

338 

339```text theme={null}

340Prompt is too long

341```

342 

343**対応方法:**

344 

345* `/compact` を実行して以前のターンを要約し、スペースを解放するか、`/clear` を実行して新しく開始してください

346* `/context` を実行して、ウィンドウを消費しているものの内訳を確認してください。システムプロンプト、ツール、メモリファイル、およびメッセージです

347* `/mcp disable <name>` で使用していない MCP サーバーを無効にして、コンテキストからツール定義を削除してください

348* 大きな `CLAUDE.md` メモリファイルをトリミングするか、関連する場合にのみロードされる[パススコープルール](/ja/memory#path-specific-rules)に指示を移動してください

349* サブエージェントは親セッションからすべての MCP ツール定義を継承します。これにより、最初のターンの前にコンテキストウィンドウが満杯になる可能性があります。サブエージェントを生成する前に、使用していない MCP サーバーを無効にしてください。

350* 自動コンパクトはデフォルトで有効になっており、通常このエラーを防ぎます。[`DISABLE_AUTO_COMPACT`](/ja/env-vars)を設定している場合は、再度有効にするか、ウィンドウが満杯になる前に `/compact` を手動で実行してください。

351 

352[コンテキストウィンドウを探索する](/ja/context-window)を参照して、コンテキストがどのように満杯になるかのインタラクティブビューを確認してください。

353 

354### Error during compaction: Conversation too long

355 

356`/compact` 自体が失敗しました。これは、生成される要約を保持するのに十分な空きコンテキストがないためです。

357 

358```text theme={null}

359Error during compaction: Conversation too long. Press esc twice to go up a few messages and try again.

360```

361 

362これは、ウィンドウが自動コンパクトがトリガーされる時点で既に満杯の場合、または `Prompt is too long` を見た後に `/compact` を実行する場合に発生する可能性があります。

363 

364**対応方法:**

365 

366* Esc を 2 回押してメッセージリストを開き、数ターン戻ってください。これにより、最新のメッセージがコンテキストから削除されます。その後、`/compact` を再度実行してください。

367* 戻ることで十分なスペースが解放されない場合は、`/clear` を実行して新しいセッションを開始してください。以前の会話は保存され、`/resume` で再度開くことができます。

368 

369### Request too large

370 

371生のリクエストボディが、トークン化前に API のバイト制限を超えました。通常、大きく貼り付けられたファイルまたは添付ファイルが原因です。

372 

373```text theme={null}

374Request too large (max 30 MB). Double press esc to go back and remove or shrink the attached content.

375```

376 

377これは、[コンテキストウィンドウ制限](#prompt-is-too-long)とは別の HTTP リクエストのサイズ制限です。

378 

379**対応方法:**

380 

381* Esc を 2 回押して、サイズを超えたコンテンツを追加したターンを過ぎて戻ってください

382* 大きなファイルをパスで参照して、内容を貼り付けるのではなく、Claude がチャンク単位で読み取ることができるようにしてください

383* 画像については、以下の[画像が大きすぎました](#image-was-too-large)を参照してください

384 

385### Image was too large

386 

387貼り付けられた、または添付された画像が API のサイズまたは寸法制限を超えています。

388 

389```text theme={null}

390Image was too large. Double press esc to go back and try again with a smaller image.

391API Error: 400 ... image dimensions exceed max allowed size

392```

393 

394画像はエラー後も会話履歴に残るため、削除するまで後続のすべてのメッセージは同じエラーで失敗します。

395 

396**対応方法:**

397 

398* Esc を 2 回押して、画像が追加されたターンを過ぎて戻ってください

399* 貼り付ける前に画像をリサイズしてください。API は、単一の画像の場合は最長辺で最大 8000 ピクセル、またはコンテキストに多くの画像がある場合は 2000 ピクセルの画像を受け入れます。

400* 全画面ではなく、関連する領域のより厳密なスクリーンショットを撮ってください

401 

402### PDF errors

403 

404添付した PDF を処理できませんでした。

405 

406```text theme={null}

407PDF too large (max 100 pages, 32 MB). Try splitting it or extracting text first.

408PDF is password protected. Try removing protection or extracting text first.

409The PDF file was not valid. Try converting to a different format first.

410```

411 

412**対応方法:**

413 

414* サイズの大きい PDF の場合は、ファイル全体を添付する代わりに Read ツールでページ範囲を読み取るよう Claude に依頼するか、`pdftotext` などのツールでテキストを抽出し、パスでファイルを参照してください

415* 保護されたまたは無効な PDF の場合は、パスワードを削除するか、ソースアプリケーションからファイルを再度エクスポートしてから、再度試してください

416 

417### Extra inputs are not permitted

418 

419Claude Code と API の間のプロキシまたは LLM ゲートウェイが `anthropic-beta` リクエストヘッダーをストリップしたため、API はそれに依存するフィールドを拒否しました。

420 

421```text theme={null}

422API Error: 400 ... Extra inputs are not permitted ... context_management

423API Error: 400 ... Extra inputs are not permitted ... tools.0.custom.input_examples

424API Error: 400 ... Unexpected value(s) for the `anthropic-beta` header

425```

426 

427Claude Code は、`context_management`、`effort`、ツール `input_examples` などのベータのみのフィールドを、それらを有効にする `anthropic-beta` ヘッダーと共に送信します。ゲートウェイがボディを転送しますがヘッダーをドロップすると、API は認識しないフィールドを見ます。

428 

429**対応方法:**

430 

431* `anthropic-beta` ヘッダーを転送するようにゲートウェイを設定してください。[LLM ゲートウェイ設定](/ja/llm-gateway)を参照してください。

432* フォールバックとして、起動前に[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/ja/env-vars)を設定してください。これにより、ベータヘッダーが必要な機能が無効になり、リクエストはそれを転送できないゲートウェイを通じて成功します。

433 

434### There's an issue with the selected model

435 

436設定されたモデル名が認識されなかったか、アカウントがそれへのアクセスを持っていません。

437 

438```text theme={null}

439There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to select a different one.

440```

441 

442**対応方法:**

443 

444* `/model` を実行して、アカウントで利用可能なモデルから選択してください

445* 完全なバージョン ID ではなく、`sonnet` や `opus` などのエイリアスを使用してください。エイリアスは最新リリースを追跡するため、古くなりません。[モデル設定](/ja/model-config)を参照してください。

446* 間違ったモデルが戻り続ける場合は、古い ID がどこかに設定されています。[優先順位順](/ja/model-config#setting-your-model)で確認してください。`--model` フラグ、`ANTHROPIC_MODEL` 環境変数、その後 `.claude/settings.local.json`、プロジェクトの `.claude/settings.json`、および `~/.claude/settings.json` の `model` フィールド。古い値を削除すると、Claude Code はアカウントのデフォルトにフォールバックします。

447* Vertex AI デプロイメントについては、[Vertex AI トラブルシューティング](/ja/google-vertex-ai#troubleshooting)を参照してください。

448 

449### Claude Opus is not available with the Claude Pro plan

450 

451アクティブなサブスクリプションプランには、選択したモデルが含まれていません。

452 

453```text theme={null}

454Claude Opus is not available with the Claude Pro plan · Select a different model in /model

455```

456 

457**対応方法:**

458 

459* `/model` を実行して、プランに含まれるモデルを選択してください

460* 最近プランをアップグレードしてもこれが表示される場合は、`/logout` を実行してから `/login` を実行してください。保存されたトークンはサインイン時のプランを反映しているため、ウェブでアップグレードしても既存のセッションで有効になるまで再認証する必要があります。

461* [claude.com/pricing](https://claude.com/pricing)を参照して、各プランに含まれるモデルを確認してください

462 

463### thinking.type.enabled is not supported for this model

464 

465Claude Code バージョンが Opus 4.7 の最小値より古いです。CLI は、モデルが受け入れなくなった思考設定を送信しました。

466 

467```text theme={null}

468API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

469```

470 

471**対応方法:**

472 

473* `claude update` を実行して v2.1.111 以降にアップグレードしてから、Claude Code を再起動してください

474* アップグレードできない場合は、`/model` を実行して Opus 4.6 または Sonnet を選択してください

475* Agent SDK でこれに遭遇した場合は、[SDK トラブルシューティング](/ja/agent-sdk/quickstart#troubleshooting)を参照してください

476 

477### Thinking budget exceeds output limit

478 

479設定された拡張思考予算が最大レスポンス長を超えているため、実際の回答用のスペースが残っていません。

480 

481```text theme={null}

482API Error: 400 ... max_tokens must be greater than thinking.budget_tokens

483```

484 

485Claude Code は Anthropic API でこれらの値を自動的に調整します。通常、Amazon Bedrock または Google Vertex AI でこのエラーが表示されるのは、[`MAX_THINKING_TOKENS`](/ja/env-vars)がプロバイダーの出力制限より高く設定されている場合、またはプランモードが思考予算を上げる場合です。

486 

487**対応方法:**

488 

489* `MAX_THINKING_TOKENS` を低くするか、[`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/ja/env-vars)を思考予算より上に上げてください

490* [拡張思考](/ja/common-workflows#use-extended-thinking-thinking-mode)を参照して、予算が出力長とどのように相互作用するかを確認してください

491 

492### Tool use or thinking block mismatch

493 

494会話履歴が矛盾した状態で API に到達しました。通常、ツール呼び出しが中断されたか、ターンがストリーム中に編集された後です。

495 

496```text theme={null}

497API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.

498API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks

499API Error: 400 ... thinking blocks ... cannot be modified

500```

501 

5023 つのバリアントはすべて同じことを意味します。履歴内の `tool_use`、`tool_result`、および `thinking` ブロックのシーケンスが、API が期待するものと一致しなくなりました。

503 

504**対応方法:**

505 

506* `/rewind` を実行するか、Esc を 2 回押して、破損したターンの前のチェックポイントに戻り、そこから続行してください。[チェックポイント](/ja/checkpointing)を参照して、チェックポイントがどのように作成および復元されるかを確認してください。

507 

508## Responses seem lower quality than usual

509 

510Claude の回答がエラーなしで予想より能力が低いように見える場合、原因は通常、モデル自体ではなく会話状態です。Claude Code はモデルバージョンを静かに変更しません。Opus クォータに達した場合や Bedrock または Vertex AI リージョンがモデルを欠いている場合など、特定の場合にはフォールバックモデルに切り替えることができます。以下のモデル選択チェックはその両方をキャッチし、[モデル設定](/ja/model-config)はフォールバックが適用される場合を説明しています。

511 

512最初にこれらを確認してください。

513 

514* **モデル選択**:`/model` を実行して、予想されるモデルにいることを確認してください。以前の `/model` 選択または `ANTHROPIC_MODEL` 環境変数により、意図したより小さいモデルにいる可能性があります。

515* **努力レベル**:`/effort` を実行して、現在の推論レベルを確認し、難しいデバッグまたは設計作業のためにそれを上げてください。デフォルトはモデルによって異なるため、最大値より下にあると仮定する前に確認してください。[努力レベルを調整する](/ja/model-config#adjust-effort-level)を参照して、モデルごとのデフォルトと `ultrathink` ショートカットを確認してください。

516* **コンテキスト圧力**:`/context` を実行して、ウィンドウがどの程度満杯かを確認してください。容量に近い場合は、自然な区切り点で `/compact` を実行するか、`/clear` を実行して新しく開始してください。[コンテキストウィンドウを探索する](/ja/context-window)を参照して、自動コンパクトが以前のターンにどのように影響するかを確認してください。

517* **古い指示**:大きなまたは古い `CLAUDE.md` ファイルと MCP ツール定義はコンテキストを消費し、レスポンスを操作できます。`/doctor` は大きなメモリファイルとサブエージェント定義にフラグを立てます。`/context` は MCP ツールトークン使用量を表示します。

518 

519レスポンスが間違っている場合、修正で返信するより、巻き戻しの方が通常うまくいきます。Esc を 2 回押すか、`/rewind` を実行して悪いターンの前に戻り、より詳細なプロンプトで言い換えてください。スレッド内で修正すると、間違った試みがコンテキストに残り、後の回答をそれに固定できます。[チェックポイント](/ja/checkpointing)を参照してください。

520 

521上記を確認した後も品質が異常に見える場合は、`/feedback` を実行して、期待したものと得たものを説明してください。このように送信されたフィードバックには会話トランスクリプトが含まれており、Anthropic が実際の回帰を診断する最速の方法です。プロバイダーで `/feedback` が利用できない場合は、[エラーを報告する](#report-an-error)を参照してください。

522 

523## エラーを報告する

524 

525このページでは Claude API からのエラーについて説明しています。Claude Code の他のコンポーネントからのエラーについては、関連するガイドを参照してください。

526 

527* MCP サーバーが接続または認証に失敗しました:[MCP](/ja/mcp)

528* フックスクリプトが失敗したか、ツールをブロックしました:[フックをデバッグする](/ja/hooks#debug-hooks)

529* インストール中に権限が拒否されたか、ファイルシステムエラーが発生しました:[インストールとログインのトラブルシューティング](/ja/troubleshoot-install)

530 

531エラーがここに記載されていない場合、または提案された修正が役に立たない場合:

532 

533* Claude Code 内で `/feedback` を実行して、トランスクリプトと説明を Anthropic に送信してください。コマンドは、事前入力された GitHub イシューを開くことも提供します。フィードバックは Bedrock、Vertex AI、および Foundry デプロイメントでは利用できません。

534* `/doctor` を実行してローカル設定の問題を確認してください

535* [status.claude.com](https://status.claude.com) でアクティブなインシデントを確認してください

536* GitHub の[既存のイシュー](https://github.com/anthropics/claude-code/issues)を検索してください

fast-mode.md +151 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 高速モードでレスポンスを高速化

6 

7> Claude Code で高速モードを切り替えて、Opus 4.6 のレスポンスを高速化します。

8 

9<Note>

10 高速モードは[リサーチプレビュー](#research-preview)段階です。機能、価格設定、および利用可能性はフィードバックに基づいて変更される可能性があります。

11</Note>

12 

13高速モードは Claude Opus 4.6 の高速構成で、モデルを 2.5 倍高速化しますが、トークンあたりのコストは高くなります。迅速な反復やライブデバッグなどのインタラクティブな作業で速度が必要な場合は `/fast` でオンにし、コストがレイテンシーより重要な場合はオフにします。

14 

15高速モードは異なるモデルではありません。同じ Opus 4.6 を使用していますが、コスト効率よりも速度を優先する異なる API 構成です。同じ品質と機能が得られ、レスポンスが高速化されるだけです。

16 

17<Note>

18 高速モードには Claude Code v2.1.36 以降が必要です。`claude --version` でバージョンを確認してください。

19</Note>

20 

21知っておくべきこと:

22 

23* Claude Code CLI で `/fast` を使用して高速モードをオンにします。Claude Code VS Code Extension でも `/fast` で利用可能です。

24* Opus 4.6 の高速モード価格は \$30/150 MTok から始まります。高速モードは 2 月 16 日午後 11 時 59 分 PT まですべてのプランで 50% 割引で利用可能です。

25* サブスクリプションプラン(Pro/Max/Team/Enterprise)の Claude Code ユーザーと Claude Console のすべてのユーザーが利用可能です。

26* サブスクリプションプラン(Pro/Max/Team/Enterprise)の Claude Code ユーザーの場合、高速モードは追加使用量のみで利用可能であり、サブスクリプションレート制限に含まれていません。

27 

28このページでは、[高速モードの切り替え](#toggle-fast-mode)、[コストのトレードオフ](#understand-the-cost-tradeoff)、[使用時期の判断](#decide-when-to-use-fast-mode)、[要件](#requirements)、[セッションごとのオプトイン](#require-per-session-opt-in)、および[レート制限の処理](#handle-rate-limits)について説明します。

29 

30## 高速モードの切り替え

31 

32次のいずれかの方法で高速モードを切り替えます:

33 

34* `/fast` と入力して Tab キーを押してオンまたはオフに切り替える

35* [ユーザー設定ファイル](/ja/settings)で `"fastMode": true` を設定する

36 

37デフォルトでは、高速モードはセッション全体で保持されます。管理者は高速モードを各セッションでリセットするように構成できます。詳細は[セッションごとのオプトインが必要](#require-per-session-opt-in)を参照してください。

38 

39最高のコスト効率を得るには、会話の途中で切り替えるのではなく、セッションの開始時に高速モードを有効にします。詳細は[コストのトレードオフを理解する](#understand-the-cost-tradeoff)を参照してください。

40 

41高速モードを有効にすると:

42 

43* 別のモデルを使用している場合、Claude Code は自動的に Opus 4.6 に切り替わります

44* 確認メッセージが表示されます:「Fast mode ON」

45* 高速モードがアクティブな間、プロンプトの横に小さい `↯` アイコンが表示されます

46* いつでも `/fast` を再度実行して、高速モードがオンかオフかを確認できます

47 

48`/fast` を再度実行して高速モードを無効にすると、Opus 4.6 に留まります。モデルは以前のモデルに戻りません。別のモデルに切り替えるには、`/model` を使用します。

49 

50## コストのトレードオフを理解する

51 

52高速モードは標準 Opus 4.6 よりもトークンあたりの価格が高くなります:

53 

54| モード | 入力(MTok) | 出力(MTok) |

55| ----------------------- | -------- | -------- |

56| Opus 4.6 の高速モード(\<200K) | \$30 | \$150 |

57| Opus 4.6 の高速モード(>200K) | \$60 | \$225 |

58 

59高速モードは 1M トークン拡張コンテキストウィンドウと互換性があります。

60 

61会話の途中で高速モードに切り替えると、会話コンテキスト全体に対して完全な高速モードキャッシュなし入力トークン価格を支払います。これは最初から高速モードを有効にした場合よりもコストが高くなります。

62 

63## 高速モードの使用時期を判断する

64 

65高速モードはレスポンスレイテンシーがコストより重要なインタラクティブな作業に最適です:

66 

67* コード変更の迅速な反復

68* ライブデバッグセッション

69* 厳しい期限を持つ時間に敏感な作業

70 

71標準モードは以下に適しています:

72 

73* 速度がそれほど重要でない長い自動タスク

74* バッチ処理または CI/CD パイプライン

75* コストに敏感なワークロード

76 

77### 高速モードと努力レベル

78 

79高速モードと努力レベルはどちらもレスポンス速度に影響しますが、方法が異なります:

80 

81| 設定 | 効果 |

82| ----------- | ----------------------------------- |

83| **高速モード** | 同じモデル品質、低レイテンシー、高コスト |

84| **低い努力レベル** | 思考時間が短い、レスポンスが高速、複雑なタスクでは品質が低下する可能性 |

85 

86両方を組み合わせることができます:単純なタスクで最大速度を得るために、低い[努力レベル](/ja/model-config#adjust-effort-level)で高速モードを使用します。

87 

88## 要件

89 

90高速モードには以下のすべてが必要です:

91 

92* **サードパーティクラウドプロバイダーでは利用不可**:高速モードは Amazon Bedrock、Google Vertex AI、または Microsoft Azure Foundry では利用できません。高速モードは Anthropic Console API および追加使用量を使用する Claude サブスクリプションプランで利用可能です。

93* **追加使用量が有効**:アカウントで追加使用量が有効になっている必要があります。これにより、プランに含まれる使用量を超えて請求できます。個人アカウントの場合、[Console 請求設定](https://platform.claude.com/settings/organization/billing)で有効にします。Teams および Enterprise の場合、管理者が組織の追加使用量を有効にする必要があります。

94 

95<Note>

96 高速モード使用量は、プランに残りの使用量がある場合でも、追加使用量に直接請求されます。これは、高速モードトークンがプランに含まれる使用量にカウントされず、最初のトークンから高速モード料金で請求されることを意味します。

97</Note>

98 

99* **Teams および Enterprise の管理者による有効化**:高速モードは Teams および Enterprise 組織ではデフォルトで無効になっています。ユーザーがアクセスできるようにするには、管理者が明示的に[高速モードを有効にする](#enable-fast-mode-for-your-organization)必要があります。

100 

101<Note>

102 管理者が組織の高速モードを有効にしていない場合、`/fast` コマンドは「Fast mode has been disabled by your organization.」と表示されます。

103</Note>

104 

105### 組織の高速モードを有効にする

106 

107管理者は以下で高速モードを有効にできます:

108 

109* **Console**(API カスタマー):[Claude Code preferences](https://platform.claude.com/claude-code/preferences)

110* **Claude AI**(Teams および Enterprise):[Admin Settings > Claude Code](https://claude.ai/admin-settings/claude-code)

111 

112高速モードを完全に無効にするもう 1 つのオプションは、`CLAUDE_CODE_DISABLE_FAST_MODE=1` を設定することです。[環境変数](/ja/env-vars)を参照してください。

113 

114### セッションごとのオプトインが必要

115 

116デフォルトでは、高速モードはセッション全体で保持されます:ユーザーが高速モードを有効にすると、将来のセッションでもオンのままです。[Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) または [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) プランの管理者は、[管理設定](/ja/settings#settings-files)または[サーバー管理設定](/ja/server-managed-settings)で `fastModePerSessionOptIn` を `true` に設定することでこれを防ぐことができます。これにより、各セッションは高速モードがオフで開始され、ユーザーが `/fast` で明示的に有効にする必要があります。

117 

118```json theme={null}

119{

120 "fastModePerSessionOptIn": true

121}

122```

123 

124これは、ユーザーが複数の同時セッションを実行する組織でコストを制御するのに役立ちます。ユーザーは速度が必要な場合でも `/fast` で高速モードを有効にできますが、新しいセッションの開始時にリセットされます。ユーザーの高速モード設定は保存されたままなので、この設定を削除するとデフォルトの永続的な動作が復元されます。

125 

126## レート制限の処理

127 

128高速モードは標準 Opus 4.6 とは別のレート制限があります。高速モードレート制限に達するか、追加使用量クレジットが不足した場合:

129 

1301. 高速モードは自動的に標準 Opus 4.6 にフォールバックします

1312. `↯` アイコンがグレーに変わってクールダウンを示します

1323. 標準速度と価格で作業を続けます

1334. クールダウンが終了すると、高速モードは自動的に再度有効になります

134 

135クールダウンを待つ代わりに高速モードを手動で無効にするには、`/fast` を再度実行します。

136 

137## リサーチプレビュー

138 

139高速モードはリサーチプレビュー機能です。これは以下を意味します:

140 

141* 機能はフィードバックに基づいて変更される可能性があります

142* 利用可能性と価格設定は変更される可能性があります

143* 基盤となる API 構成は進化する可能性があります

144 

145通常の Anthropic サポートチャネルを通じて問題またはフィードバックを報告してください。

146 

147## 関連項目

148 

149* [モデル構成](/ja/model-config):モデルを切り替えて努力レベルを調整する

150* [コストを効果的に管理する](/ja/costs):トークン使用量を追跡してコストを削減する

151* [ステータスラインの構成](/ja/statusline):モデルとコンテキスト情報を表示する

features-overview.md +294 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code を拡張する

6 

7> CLAUDE.md、Skills、subagents、hooks、MCP、plugins をいつ使用するかを理解します。

8 

9Claude Code は、コードについて推論するモデルと、ファイル操作、検索、実行、ウェブアクセス用の[組み込みツール](/ja/how-claude-code-works#tools)を組み合わせています。組み込みツールはほとんどのコーディングタスクをカバーしています。このガイドは拡張レイヤーについて説明します。つまり、Claude が何を知るかをカスタマイズし、外部サービスに接続し、ワークフローを自動化するために追加する機能です。

10 

11<Note>

12 コア agentic ループがどのように機能するかについては、[How Claude Code works](/ja/how-claude-code-works) を参照してください。

13</Note>

14 

15**Claude Code は初めてですか?** [CLAUDE.md](/ja/memory) でプロジェクト規約を開始します。必要に応じて他の拡張機能を追加してください。

16 

17## 概要

18 

19拡張機能は agentic ループのさまざまな部分に接続します。

20 

21* **[CLAUDE.md](/ja/memory)** は、Claude がすべてのセッションで見る永続的なコンテキストを追加します

22* **[Skills](/ja/skills)** は再利用可能な知識と呼び出し可能なワークフローを追加します

23* **[MCP](/ja/mcp)** は Claude を外部サービスとツールに接続します

24* **[Subagents](/ja/sub-agents)** は独立したコンテキストで独自のループを実行し、サマリーを返します

25* **[Agent teams](/ja/agent-teams)** は、共有タスクとピアツーピアメッセージングを使用して複数の独立したセッションを調整します

26* **[Hooks](/ja/hooks)** はループの外側で決定論的スクリプトとして実行されます

27* **[Plugins](/ja/plugins)** と **[marketplaces](/ja/plugin-marketplaces)** はこれらの機能をパッケージ化して配布します

28 

29[Skills](/ja/skills) は最も柔軟な拡張機能です。スキルは知識、ワークフロー、または指示を含むマークダウンファイルです。`/deploy` のようなコマンドでスキルを呼び出すことができます。または Claude は関連する場合に自動的にスキルをロードできます。スキルは現在の会話で実行することも、subagents を介して独立したコンテキストで実行することもできます。

30 

31## 機能をあなたの目標に合わせる

32 

33機能は、Claude がすべてのセッションで見る常時オンのコンテキストから、あなたまたは Claude が呼び出すことができるオンデマンド機能、特定のイベントで実行される背景自動化まで、さまざまです。以下の表は、利用可能な機能と各機能が適切な場合を示しています。

34 

35| 機能 | 機能 | 使用する場合 | 例 |

36| ---------------------------------- | ---------------------------- | -------------------------------- | ------------------------------------------------------------ |

37| **CLAUDE.md** | すべての会話で読み込まれる永続的なコンテキスト | プロジェクト規約、「常に X を実行する」ルール | 「pnpm を使用し、npm は使用しない。コミット前にテストを実行する。」 |

38| **Skill** | Claude が使用できる指示、知識、ワークフロー | 再利用可能なコンテンツ、リファレンスドキュメント、繰り返しタスク | `/deploy` はデプロイメントチェックリストを実行します。エンドポイントパターンを持つ API ドキュメントスキル |

39| **Subagent** | サマリー結果を返す独立した実行コンテキスト | コンテキスト分離、並列タスク、専門的なワーカー | 多くのファイルを読み取るが、主要な結果のみを返す研究タスク |

40| **[Agent teams](/ja/agent-teams)** | 複数の独立した Claude Code セッションを調整 | 並列研究、新機能開発、競合する仮説でのデバッグ | セキュリティ、パフォーマンス、テストを同時にチェックするレビュアーをスポーン |

41| **MCP** | 外部サービスに接続 | 外部データまたはアクション | データベースをクエリ、Slack に投稿、ブラウザを制御 |

42| **Hook** | イベントで実行される決定論的スクリプト | 予測可能な自動化、LLM は関与しない | すべてのファイル編集後に ESLint を実行 |

43 

44**[Plugins](/ja/plugins)** はパッケージングレイヤーです。プラグインはスキル、フック、subagents、MCP サーバーを単一のインストール可能なユニットにバンドルします。プラグインスキルは名前空間化されています(`/my-plugin:review` のように)ため、複数のプラグインが共存できます。同じセットアップを複数のリポジトリで再利用したい場合、または **[marketplace](/ja/plugin-marketplaces)** を通じて他のユーザーに配布したい場合はプラグインを使用します。

45 

46### 類似機能を比較する

47 

48一部の機能は似ているように見えることがあります。ここでは、それらを区別する方法を説明します。

49 

50<Tabs>

51 <Tab title="Skill vs Subagent">

52 スキルと subagents は異なる問題を解決します。

53 

54 * **Skills** は任意のコンテキストにロードできる再利用可能なコンテンツです

55 * **Subagents** はメイン会話とは別に実行される独立したワーカーです

56 

57 | 側面 | Skill | Subagent |

58 | --------- | ------------------------- | ------------------------------ |

59 | **それは何か** | 再利用可能な指示、知識、またはワークフロー | 独自のコンテキストを持つ独立したワーカー |

60 | **主な利点** | コンテキスト全体でコンテンツを共有 | コンテキスト分離。作業は別々に行われ、サマリーのみが返される |

61 | **最適な用途** | リファレンスマテリアル、呼び出し可能なワークフロー | 多くのファイルを読み取るタスク、並列作業、専門的なワーカー |

62 

63 **スキルはリファレンスまたはアクションです。** リファレンススキルは Claude がセッション全体で使用する知識を提供します(API スタイルガイドなど)。アクションスキルは Claude に特定の操作を実行するよう指示します(デプロイメントワークフローを実行する `/deploy` など)。

64 

65 **コンテキスト分離が必要な場合、または コンテキストウィンドウがいっぱいになっている場合は subagent を使用します。** subagent は数十のファイルを読み取るか、広範な検索を実行する可能性がありますが、メイン会話はサマリーのみを受け取ります。subagent の作業はメインコンテキストを消費しないため、中間作業を表示したままにする必要がない場合にも便利です。カスタム subagents は独自の指示を持つことができ、スキルをプリロードできます。

66 

67 **それらは組み合わせることができます。** subagent は特定のスキルをプリロードできます(`skills:` フィールド)。スキルは `context: fork` を使用して独立したコンテキストで実行できます。詳細は [Skills](/ja/skills) を参照してください。

68 </Tab>

69 

70 <Tab title="CLAUDE.md vs Skill">

71 どちらも指示を保存しますが、ロード方法と目的が異なります。

72 

73 | 側面 | CLAUDE.md | Skill |

74 | ------------------- | ------------------ | ------------------------- |

75 | **ロード** | すべてのセッション、自動的に | オンデマンド |

76 | **ファイルを含めることができます** | はい、`@path` インポート付き | はい、`@path` インポート付き |

77 | **ワークフローをトリガーできます** | いいえ | はい、`/<name>` 付き |

78 | **最適な用途** | 「常に X を実行する」ルール | リファレンスマテリアル、呼び出し可能なワークフロー |

79 

80 **Claude が常に知っておくべき場合は CLAUDE.md に入れます。** コーディング規約、ビルドコマンド、プロジェクト構造、「X を実行しない」ルール。

81 

82 **Claude が時々必要とするリファレンスマテリアル(API ドキュメント、スタイルガイド)の場合、またはあなたが `/<name>` でトリガーするワークフロー(デプロイ、レビュー、リリース)の場合は、スキルに入れます。**

83 

84 **経験則:** CLAUDE.md を 200 行以下に保ちます。増加している場合は、リファレンスコンテンツをスキルに移動するか、[`.claude/rules/`](/ja/memory#organize-rules-with-clauderules) ファイルに分割します。

85 </Tab>

86 

87 <Tab title="CLAUDE.md vs Rules vs Skills">

88 3 つすべてが指示を保存しますが、ロード方法が異なります。

89 

90 | 側面 | CLAUDE.md | `.claude/rules/` | Skill |

91 | --------- | ------------ | ----------------------------- | ------------------------ |

92 | **ロード** | すべてのセッション | すべてのセッション、またはマッチングファイルが開かれたとき | オンデマンド、呼び出されたときまたは関連するとき |

93 | **スコープ** | プロジェクト全体 | ファイルパスにスコープできます | タスク固有 |

94 | **最適な用途** | コア規約とビルドコマンド | 言語固有またはディレクトリ固有のガイドライン | リファレンスマテリアル、繰り返しワークフロー |

95 

96 **すべてのセッションが必要とする指示には CLAUDE.md を使用します。** ビルドコマンド、テスト規約、プロジェクトアーキテクチャ。

97 

98 **CLAUDE.md を焦点を当てたままにするためにルールを使用します。** [`paths` frontmatter](/ja/memory#path-specific-rules) を持つルールは、Claude がマッチングファイルで作業するときのみロードされ、コンテキストを節約します。

99 

100 **Claude が時々必要とするコンテンツ(API ドキュメントまたは `/<name>` でトリガーするデプロイメントチェックリスト)にはスキルを使用します。**

101 </Tab>

102 

103 <Tab title="Subagent vs Agent team">

104 どちらも作業を並列化しますが、アーキテクチャ的には異なります。

105 

106 * **Subagents** はセッション内で実行され、結果をメインコンテキストに報告します

107 * **Agent teams** は独立した Claude Code セッションであり、互いに通信します

108 

109 | 側面 | Subagent | Agent team |

110 | ----------- | ---------------------------- | ---------------------------- |

111 | **コンテキスト** | 独自のコンテキストウィンドウ。結果は呼び出し元に返される | 独自のコンテキストウィンドウ。完全に独立 |

112 | **通信** | 結果をメインエージェントのみに報告 | チームメイトが直接互いにメッセージを送信 |

113 | **調整** | メインエージェントがすべての作業を管理 | 共有タスクリストと自己調整 |

114 | **最適な用途** | 結果のみが重要な焦点を絞ったタスク | 議論と協力が必要な複雑な作業 |

115 | **トークンコスト** | 低い。結果がメインコンテキストに要約される | 高い。各チームメイトは個別の Claude インスタンス |

116 

117 **クイックで焦点を絞ったワーカーが必要な場合は subagent を使用します。** 質問を研究する、主張を検証する、ファイルをレビューする。subagent は作業を実行し、サマリーを返します。メイン会話はクリーンなままです。

118 

119 **チームメイトが結果を共有し、互いに異議を唱え、独立して調整する必要がある場合は agent team を使用します。** Agent teams は競合する仮説での研究、並列コードレビュー、各チームメイトが個別の部分を所有する新機能開発に最適です。

120 

121 **遷移ポイント:** 並列 subagents を実行しているがコンテキスト制限に達している場合、または subagents が互いに通信する必要がある場合、agent teams は自然な次のステップです。

122 

123 <Note>

124 Agent teams は実験的であり、デフォルトで無効になっています。セットアップと現在の制限については [agent teams](/ja/agent-teams) を参照してください。

125 </Note>

126 </Tab>

127 

128 <Tab title="MCP vs Skill">

129 MCP は Claude を外部サービスに接続します。スキルは Claude が知ることを拡張します。これらのサービスを効果的に使用する方法を含みます。

130 

131 | 側面 | MCP | Skill |

132 | --------- | ------------------------- | ------------------------------------- |

133 | **それは何か** | 外部サービスに接続するためのプロトコル | 知識、ワークフロー、リファレンスマテリアル |

134 | **提供** | ツールとデータアクセス | 知識、ワークフロー、リファレンスマテリアル |

135 | **例** | Slack 統合、データベースクエリ、ブラウザ制御 | コードレビューチェックリスト、デプロイワークフロー、API スタイルガイド |

136 

137 これらは異なる問題を解決し、一緒に機能します。

138 

139 **MCP** は Claude に外部システムと相互作用する能力を与えます。MCP がなければ、Claude はデータベースをクエリしたり、Slack に投稿したりできません。

140 

141 **スキル** は Claude にこれらのツールを効果的に使用する方法についての知識を与え、さらに `/<name>` でトリガーできるワークフローを提供します。スキルには、チームのデータベーススキーマとクエリパターン、または `/post-to-slack` ワークフローとチームのメッセージフォーマットルールが含まれる場合があります。

142 

143 例:MCP サーバーは Claude をデータベースに接続します。スキルは Claude にデータモデル、一般的なクエリパターン、さまざまなタスクに使用するテーブルを教えます。

144 </Tab>

145</Tabs>

146 

147### 機能がどのようにレイヤーするかを理解する

148 

149機能は複数のレベルで定義できます。ユーザー全体、プロジェクトごと、プラグイン経由、または管理ポリシーを通じて。また、CLAUDE.md ファイルをサブディレクトリにネストしたり、スキルをモノレポの特定のパッケージに配置したりすることもできます。同じ機能が複数のレベルに存在する場合、ここでそれらがどのようにレイヤーするかを示します。

150 

151* **CLAUDE.md ファイル** は加算的です。すべてのレベルがコンテンツを同時に Claude のコンテキストに提供します。作業ディレクトリ以上のファイルは起動時にロードされます。サブディレクトリは作業時にロードされます。指示が競合する場合、Claude は判断を使用してそれらを調整し、より具体的な指示が通常優先されます。[CLAUDE.md ファイルがどのようにロードされるか](/ja/memory#how-claudemd-files-load) を参照してください。

152* **スキルと subagents** は名前でオーバーライドします。同じ名前が複数のレベルに存在する場合、優先度に基づいて 1 つの定義が勝ちます(スキルの場合は管理 > ユーザー > プロジェクト。subagents の場合は管理 > CLI フラグ > プロジェクト > ユーザー > プラグイン)。プラグインスキルは競合を避けるために[名前空間化](/ja/plugins#add-skills-to-your-plugin)されています。[スキル検出](/ja/skills#where-skills-live) と [subagent スコープ](/ja/sub-agents#choose-the-subagent-scope) を参照してください。

153* **MCP サーバー** は名前でオーバーライドします。ローカル > プロジェクト > ユーザー。[MCP スコープ](/ja/mcp#scope-hierarchy-and-precedence) を参照してください。

154* **Hooks** はマージされます。すべての登録されたフックは、ソースに関係なく、マッチングイベントに対して発火します。[Hooks](/ja/hooks) を参照してください。

155 

156### 機能を組み合わせる

157 

158各拡張機能は異なる問題を解決します。CLAUDE.md は常時オンのコンテキストを処理し、スキルはオンデマンド知識とワークフローを処理し、MCP は外部接続を処理し、subagents は分離を処理し、フックは自動化を処理します。実際のセットアップはワークフローに基づいてそれらを組み合わせます。

159 

160たとえば、CLAUDE.md をプロジェクト規約に使用し、スキルをデプロイメントワークフローに使用し、MCP をデータベースに接続し、フックをすべての編集後にリントを実行するために使用する場合があります。各機能は最適な機能を処理します。

161 

162| パターン | 機能 | 例 |

163| ---------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- |

164| **Skill + MCP** | MCP は接続を提供します。スキルは Claude にそれを効果的に使用する方法を教えます | MCP はデータベースに接続し、スキルはスキーマとクエリパターンを文書化します |

165| **Skill + Subagent** | スキルは並列作業のために subagents をスポーンします | `/audit` スキルはセキュリティ、パフォーマンス、スタイル subagents を開始し、独立したコンテキストで作業します |

166| **CLAUDE.md + Skills** | CLAUDE.md は常時オンのルールを保持します。スキルはオンデマンドでロードされるリファレンスマテリアルを保持します | CLAUDE.md は'API 規約に従う'と言い、スキルは完全な API スタイルガイドを含みます |

167| **Hook + MCP** | フックは MCP を通じて外部アクションをトリガーします | 編集後フックは Claude が重要なファイルを変更するときに Slack 通知を送信します |

168 

169## コンテキストコストを理解する

170 

171追加する各機能は Claude のコンテキストの一部を消費します。多すぎるとコンテキストウィンドウがいっぱいになる可能性がありますが、Claude の効果を低下させるノイズを追加することもできます。スキルが正しくトリガーされない場合や、Claude が規約を失う場合があります。これらのトレードオフを理解することで、効果的なセットアップを構築するのに役立ちます。

172 

173### 機能別のコンテキストコスト

174 

175各機能には異なるロード戦略とコンテキストコストがあります。

176 

177| 機能 | ロード時期 | ロード内容 | コンテキストコスト |

178| ------------- | ------------- | -------------------- | ---------------------- |

179| **CLAUDE.md** | セッション開始 | 完全なコンテンツ | すべてのリクエスト |

180| **Skills** | セッション開始 + 使用時 | 開始時の説明、使用時の完全なコンテンツ | 低い(毎リクエスト説明)\* |

181| **MCP サーバー** | セッション開始 | すべてのツール定義と JSON スキーマ | すべてのリクエスト |

182| **Subagents** | スポーン時 | 指定されたスキルを持つ新しいコンテキスト | メインセッションから分離 |

183| **Hooks** | トリガー時 | なし(外部で実行) | ゼロ、フックが追加コンテキストを返さない限り |

184 

185\*デフォルトでは、スキル説明はセッション開始時にロードされるため、Claude はそれらを使用する時期を決定できます。スキルの frontmatter で `disable-model-invocation: true` を設定して、手動で呼び出すまで Claude から完全に非表示にします。これにより、自分でのみトリガーするスキルのコンテキストコストをゼロに削減します。

186 

187### 機能がどのようにロードされるかを理解する

188 

189各機能はセッション内の異なるポイントでロードされます。以下のタブは、各機能がいつロードされるか、およびコンテキストに何が入るかを説明しています。

190 

191<img src="https://mintcdn.com/claude-code/6yTCYq1p37ZB8-CQ/images/context-loading.svg?fit=max&auto=format&n=6yTCYq1p37ZB8-CQ&q=85&s=5a58ce953a35a2412892015e2ad6cb67" alt="コンテキストロード:CLAUDE.md と MCP はセッション開始時にロードされ、すべてのリクエストに留まります。スキルは開始時に説明をロードし、呼び出し時に完全なコンテンツをロードします。Subagents は独立したコンテキストを取得します。Hooks は外部で実行されます。" width="720" height="410" data-path="images/context-loading.svg" />

192 

193<Tabs>

194 <Tab title="CLAUDE.md">

195 **時期:** セッション開始

196 

197 **ロード内容:** すべての CLAUDE.md ファイル(管理、ユーザー、プロジェクトレベル)の完全なコンテンツ。

198 

199 **継承:** Claude は作業ディレクトリからルートまで CLAUDE.md ファイルを読み取り、サブディレクトリにネストされたものを、それらのファイルにアクセスするときに検出します。詳細は [How CLAUDE.md files load](/ja/memory#how-claudemd-files-load) を参照してください。

200 

201 <Tip>CLAUDE.md を 200 行以下に保ちます。リファレンスマテリアルをスキルに移動します。スキルはオンデマンドでロードされます。</Tip>

202 </Tab>

203 

204 <Tab title="Skills">

205 スキルは Claude のツールキットの追加機能です。リファレンスマテリアル(API スタイルガイドなど)または `/<name>` でトリガーする呼び出し可能なワークフロー(`/deploy` など)です。Claude Code は `/simplify`、`/batch`、`/debug` などの[バンドルされたスキル](/ja/skills#bundled-skills)を備えており、すぐに機能します。独自のスキルを作成することもできます。Claude は適切な場合にスキルを使用するか、直接呼び出すことができます。

206 

207 **時期:** スキルの設定によって異なります。デフォルトでは、説明はセッション開始時にロードされ、完全なコンテンツは使用時にロードされます。ユーザーのみのスキル(`disable-model-invocation: true`)の場合、呼び出すまで何もロードされません。

208 

209 **ロード内容:** モデル呼び出し可能なスキルの場合、Claude はすべてのリクエストで名前と説明を見ます。`/<name>` でスキルを呼び出すか、Claude が自動的にロードする場合、完全なコンテンツが会話にロードされます。

210 

211 **Claude がスキルを選択する方法:** Claude はタスクをスキル説明と照合して、関連するものを決定します。説明が曖昧または重複している場合、Claude は間違ったスキルをロードするか、役立つスキルを見落とす可能性があります。Claude に特定のスキルを使用するよう指示するには、`/<name>` で呼び出します。`disable-model-invocation: true` を持つスキルは、呼び出すまで Claude に見えません。

212 

213 **コンテキストコスト:** 使用されるまで低い。ユーザーのみのスキルは呼び出されるまでゼロコストです。

214 

215 **Subagents 内:** スキルは subagents で異なる動作をします。オンデマンドロードの代わりに、subagent に渡されるスキルは起動時にそのコンテキストに完全にプリロードされます。Subagents はメインセッションからスキルを継承しません。明示的に指定する必要があります。

216 

217 <Tip>副作用を持つスキルには `disable-model-invocation: true` を使用します。これはコンテキストを節約し、あなたのみがそれらをトリガーすることを保証します。</Tip>

218 </Tab>

219 

220 <Tab title="MCP servers">

221 **時期:** セッション開始。

222 

223 **ロード内容:** 接続されたサーバーからのすべてのツール定義と JSON スキーマ。

224 

225 **コンテキストコスト:** [Tool search](/ja/mcp#scale-with-mcp-tool-search)(デフォルトで有効)は MCP ツールをコンテキストの最大 10% までロードし、残りは必要になるまで遅延します。

226 

227 **信頼性に関する注記:** MCP 接続はセッション中に静かに失敗する可能性があります。サーバーが切断されると、そのツールは警告なく消えます。Claude は以前アクセスできたツールを使用しようとする可能性があります。Claude が以前アクセスできた MCP ツールを使用できなくなったことに気付いた場合は、`/mcp` で接続を確認してください。

228 

229 <Tip>`/mcp` を実行してサーバーごとのトークンコストを確認します。積極的に使用していないサーバーを切断します。</Tip>

230 </Tab>

231 

232 <Tab title="Subagents">

233 **時期:** オンデマンド、タスクのためにあなたまたは Claude がスポーンするとき。

234 

235 **ロード内容:** 以下を含む新しい独立したコンテキスト。

236 

237 * システムプロンプト(キャッシュ効率のため親と共有)

238 * エージェントの `skills:` フィールドにリストされているスキルの完全なコンテンツ

239 * CLAUDE.md と git ステータス(親から継承)

240 * リードエージェントがプロンプトで渡すコンテキスト

241 

242 **コンテキストコスト:** メインセッションから分離。Subagents は会話履歴または呼び出されたスキルを継承しません。

243 

244 <Tip>フルな会話コンテキストが必要ない作業に subagents を使用します。それらの分離はメインセッションの膨張を防ぎます。</Tip>

245 </Tab>

246 

247 <Tab title="Hooks">

248 **時期:** トリガー時。フックはツール実行、セッション境界、プロンプト送信、権限リクエスト、コンパクション などの特定のライフサイクルイベントで発火します。完全なリストは [Hooks](/ja/hooks) を参照してください。

249 

250 **ロード内容:** デフォルトではなし。フックは外部スクリプトとして実行されます。

251 

252 **コンテキストコスト:** ゼロ、フックが会話にメッセージとして追加されるコンテキストを返さない限り。

253 

254 <Tip>フックは Claude のコンテキストに影響する必要がない副作用(リント、ロギング)に最適です。</Tip>

255 </Tab>

256</Tabs>

257 

258## 詳細を学ぶ

259 

260各機能には、セットアップ指示、例、設定オプションを含む独自のガイドがあります。

261 

262<CardGroup cols={2}>

263 <Card title="CLAUDE.md" icon="file-lines" href="/ja/memory">

264 プロジェクトコンテキスト、規約、指示を保存

265 </Card>

266 

267 <Card title="Skills" icon="brain" href="/ja/skills">

268 Claude にドメイン専門知識と再利用可能なワークフローを提供

269 </Card>

270 

271 <Card title="Subagents" icon="users" href="/ja/sub-agents">

272 独立したコンテキストに作業をオフロード

273 </Card>

274 

275 <Card title="Agent teams" icon="network" href="/ja/agent-teams">

276 複数のセッションを並列で調整

277 </Card>

278 

279 <Card title="MCP" icon="plug" href="/ja/mcp">

280 Claude を外部サービスに接続

281 </Card>

282 

283 <Card title="Hooks" icon="bolt" href="/ja/hooks-guide">

284 フックでワークフローを自動化

285 </Card>

286 

287 <Card title="Plugins" icon="puzzle-piece" href="/ja/plugins">

288 機能セットをバンドルして共有

289 </Card>

290 

291 <Card title="Marketplaces" icon="store" href="/ja/plugin-marketplaces">

292 プラグインコレクションをホストして配布

293 </Card>

294</CardGroup>

fullscreen.md +159 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# フルスクリーンレンダリング

6 

7> マウスサポートと安定したメモリ使用量を備えた、より滑らかでちらつきのないレンダリングモードを有効にします。

8 

9<Note>

10 フルスクリーンレンダリングはオプトイン形式の[リサーチプレビュー](#research-preview)であり、Claude Code v2.1.89 以降が必要です。現在の会話で `/tui fullscreen` を実行して切り替えるか、v2.1.110 より前のバージョンで `CLAUDE_CODE_NO_FLICKER=1` を設定してください。フィードバックに基づいて動作が変わる可能性があります。

11</Note>

12 

13フルスクリーンレンダリングは Claude Code CLI の代替レンダリングパスで、ちらつきを排除し、長い会話でもメモリ使用量を一定に保ち、マウスサポートを追加します。`vim` や `htop` のようにターミナルの代替スクリーンバッファにインターフェースを描画し、現在表示されているメッセージのみをレンダリングします。これにより、各更新時にターミナルに送信されるデータ量が削減されます。

14 

15この違いは、VS Code 統合ターミナル、tmux、iTerm2 など、レンダリングスループットがボトルネックになるターミナルエミュレータで最も顕著です。Claude が作業中にターミナルのスクロール位置が上部にジャンプしたり、ツール出力がストリーミングされるときに画面がフラッシュしたりする場合、このモードがそれに対応します。

16 

17<Note>

18 フルスクリーンという用語は、`vim` のようにターミナルの描画サーフェスを Claude Code が占有する方法を説明しています。ターミナルウィンドウを最大化することとは関係なく、任意のウィンドウサイズで動作します。

19</Note>

20 

21## フルスクリーンレンダリングを有効にする

22 

23Claude Code の会話内で `/tui fullscreen` を実行してください。CLI は [`tui` 設定](/ja/settings#available-settings)を保存し、会話をそのままにしてフルスクリーンで再起動するため、コンテキストを失わずにセッション中に切り替えることができます。引数なしで `/tui` を実行して、どのレンダラーがアクティブかを確認してください。

24 

25Claude Code を起動する前に `CLAUDE_CODE_NO_FLICKER` 環境変数を設定することもできます。

26 

27```bash theme={null}

28CLAUDE_CODE_NO_FLICKER=1 claude

29```

30 

31`tui` 設定と環境変数は同等です。`/tui` コマンドは再起動されたプロセスから `CLAUDE_CODE_NO_FLICKER` をクリアして、書き込まれた設定が有効になるようにします。

32 

33## 変更内容

34 

35フルスクリーンレンダリングは CLI がターミナルに描画する方法を変更します。入力ボックスは出力がストリーミングされるときに移動するのではなく、画面の下部に固定されたままになります。Claude が作業中に入力が固定されたままの場合、フルスクリーンレンダリングがアクティブです。レンダーツリーに保持されるのは表示されているメッセージのみなので、会話の長さに関係なくメモリは一定に保たれます。

36 

37会話がターミナルのスクロールバックではなく代替スクリーンバッファに存在するため、いくつかの点で動作が異なります。

38 

39| 以前 | 現在 | 詳細 |

40| :------------------------------- | :----------------------------------------------------- | :---------------------------------------------------- |

41| `Cmd+f` または tmux 検索でテキストを検索 | `Ctrl+o` でトランスクリプトモードに入り、`/` で検索するか `[` でスクロールバックに書き込む | [会話を検索およびレビューする](#search-and-review-the-conversation) |

42| ターミナルのネイティブなクリックアンドドラッグで選択およびコピー | アプリ内選択、マウスリリース時に自動的にコピー | [マウスを使用する](#use-the-mouse) |

43| `Cmd` クリックで URL を開く | URL をクリック | [マウスを使用する](#use-the-mouse) |

44 

45マウスキャプチャがワークフローに干渉する場合、ちらつきのないレンダリングを保持しながら[オフにする](#keep-native-text-selection)ことができます。

46 

47## マウスを使用する

48 

49フルスクリーンレンダリングはマウスイベントをキャプチャし、Claude Code 内で処理します。

50 

51* **プロンプト入力をクリック**して、入力しているテキスト内の任意の場所にカーソルを配置します。

52* **折りたたまれたツール結果をクリック**して展開し、完全な出力を表示します。もう一度クリックして折りたたみます。ツール呼び出しとその結果は一緒に展開されます。表示するものがあるメッセージのみがクリック可能です。

53* **URL またはファイルパスをクリック**して開きます。Edit または Write の後に出力されたものなど、ツール出力内のファイルパスはデフォルトアプリケーションで開きます。プレーン `http://` および `https://` URL はブラウザで開きます。ほとんどのターミナルでは、マウスキャプチャが傍受するネイティブな `Cmd` クリックまたは `Ctrl` クリックが置き換わります。VS Code 統合ターミナルおよび同様の xterm.js ベースのターミナルでは、`Cmd` クリックを使い続けてください。Claude Code はリンクが 2 回開かれるのを避けるため、そこではターミナル独自のリンクハンドラに従います。

54* **クリックしてドラッグ**して、会話内の任意の場所のテキストを選択します。ダブルクリックで単語を選択し、iTerm2 の単語境界に一致するため、ファイルパスは 1 つのユニットとして選択されます。トリプルクリックで行を選択します。

55* **マウスホイールでスクロール**して会話を移動します。

56 

57選択されたテキストはマウスリリース時にクリップボードに自動的にコピーされます。これをオフにするには、`/config` で \[Copy on select] をトグルします。オフの場合、`Ctrl+Shift+c` を押して手動でコピーします。kitty、WezTerm、Ghostty、iTerm2 など kitty キーボードプロトコルをサポートするターミナルでは、`Cmd+c` も機能します。選択がアクティブな場合、`Ctrl+c` はキャンセルではなくコピーします。

58 

59選択がアクティブな場合、`Shift` を押しながら矢印キーを押して、キーボードから選択を拡張します。`Shift+↑` と `Shift+↓` は、選択が上部または下部のエッジに達したときにビューポートをスクロールします。`Shift+Home` と `Shift+End` は、現在の行の開始または終了まで拡張します。

60 

61## 会話をスクロールする

62 

63フルスクリーンレンダリングはアプリ内でスクロールを処理します。これらのショートカットを使用してナビゲートします。

64 

65| ショートカット | アクション |

66| :-------------- | :---------------------------- |

67| `PgUp` / `PgDn` | 画面の半分だけ上下にスクロール |

68| `Ctrl+Home` | 会話の開始にジャンプ |

69| `Ctrl+End` | 最新のメッセージにジャンプして自動フォローを再度有効にする |

70| マウスホイール | 数行ずつスクロール |

71 

72MacBook キーボードのように `PgUp`、`PgDn`、`Home`、`End` キーが専用にない場合、`Fn` を矢印キーで押し続けます。`Fn+↑` は `PgUp` を送信し、`Fn+↓` は `PgDn` を送信し、`Fn+←` は `Home` を送信し、`Fn+→` は `End` を送信します。これにより `Ctrl+Fn+→` が下部へのジャンプショートカットになります。これが不便に感じられる場合は、マウスホイールで下部にスクロールしてフォローを再開するか、`scroll:bottom` を到達可能な何かに再バインドしてください。

73 

74これらのアクションは再バインド可能です。[スクロールアクション](/ja/keybindings#scroll-actions)を参照して、半ページおよび全ページバリアントを含むアクション名の完全なリストを確認してください。これらにはデフォルトバインディングがありません。

75 

76### 自動フォロー

77 

78上にスクロールすると自動フォローが一時停止され、新しい出力があなたを下部に戻しません。`Ctrl+End` を押すか、下部にスクロールしてフォローを再開します。

79 

80自動フォローを完全にオフにして、ビューが置いた場所に留まるようにするには、`/config` を開き、\[Auto-scroll] をオフに設定します。自動スクロールが無効な場合、ビューは独自に下部にジャンプすることはありません。権限プロンプトおよび応答が必要なその他のダイアログは、この設定に関係なく、ビューにスクロールします。

81 

82### マウスホイールスクロール

83 

84マウスホイールスクロールには、ターミナルが Claude Code にマウスイベントを転送する必要があります。ほとんどのターミナルはアプリケーションがそれを要求するときにこれを行います。iTerm2 はそれをプロファイルごとの設定にします。ホイールが何もしませんが `PgUp` と `PgDn` が機能する場合は、\[設定] → \[プロファイル] → \[ターミナル] を開き、\[マウスレポートを有効にする] をオンにします。同じ設定は、クリックして展開とテキスト選択が機能するためにも必要です。

85 

86マウスホイールスクロールが遅く感じられる場合、ターミナルは乗数なしで物理的なノッチごとに 1 つのスクロールイベントを送信している可能性があります。Ghostty や高速スクロールが有効な iTerm2 など、一部のターミナルはすでにホイールイベントを増幅しています。VS Code 統合ターミナルを含む他のターミナルは、ノッチごとに正確に 1 つのイベントを送信します。Claude Code は検出できません。

87 

88`CLAUDE_CODE_SCROLL_SPEED` を設定してベーススクロール距離を乗算します。

89 

90```bash theme={null}

91export CLAUDE_CODE_SCROLL_SPEED=3

92```

93 

94値 `3` は `vim` および同様のアプリケーションのデフォルトと一致します。この設定は 1 から 20 の値を受け入れます。

95 

96## 会話を検索およびレビューする

97 

98`Ctrl+o` を押してノーマルプロンプトとトランスクリプトモードを切り替えます。最後のプロンプト、編集 diffstats を含むツール呼び出しの 1 行の概要、および最終応答のみを表示する、より静かなビューの場合は、`/focus` を実行してください。この設定はセッション全体で保持されます。オフにするには、`/focus` をもう一度実行してください。

99 

100トランスクリプトモードは `less` スタイルのナビゲーションと検索を取得します。

101 

102| キー | アクション |

103| :------------------------------------ | :----------------------------------------------------------- |

104| `/` | 検索を開きます。入力して一致を検索し、`Enter` で受け入れ、`Esc` でキャンセルしてスクロール位置を復元します |

105| `n` / `N` | 次または前の一致にジャンプします。検索バーを閉じた後に機能します |

106| `j` / `k` または `↑` / `↓` | 1 行スクロール |

107| `g` / `G` または `Home` / `End` | 上部または下部にジャンプ |

108| `Ctrl+u` / `Ctrl+d` | ページの半分をスクロール |

109| `Ctrl+b` / `Ctrl+f` または `Space` / `b` | ページ全体をスクロール |

110| `Ctrl+o`、`Esc`、または `q` | トランスクリプトモードを終了してプロンプトに戻る |

111 

112ターミナルの `Cmd+f` と tmux 検索は、会話がネイティブスクロールバックではなく代替スクリーンバッファに存在するため、会話を見ることができません。コンテンツをターミナルに戻すには、`Ctrl+o` を押してトランスクリプトモードに最初に入ってから、以下を実行します。

113 

114* **`[`**: すべてのツール出力が展開された完全な会話をターミナルのネイティブスクロールバッファに書き込みます。会話はターミナル内の通常のテキストになるため、`Cmd+f`、tmux コピーモード、その他のネイティブツールで検索または選択できます。長いセッションはこれが発生している間、一瞬一時停止する可能性があります。これは `Esc` または `q` でトランスクリプトモードを終了するまで続き、フルスクリーンレンダリングに戻ります。次の `Ctrl+o` は新たに開始します。

115* **`v`**: 会話を一時ファイルに書き込み、`$VISUAL` または `$EDITOR` で開きます。

116 

117`Esc` または `q` を押してプロンプトに戻ります。

118 

119## 会話をクリアする

120 

1212 秒以内に `Ctrl+L` を 2 回押して `/clear` を実行し、新しい会話を開始します。最初のプレスは画面を再描画してヒントを表示します。2 番目のプレスは会話をクリアします。macOS では、`Cmd+K` をダブルプレスしても `/clear` が実行されます。

122 

123## tmux で使用する

124 

125フルスクリーンレンダリングは tmux 内で機能しますが、2 つの注意点があります。

126 

127マウスホイールスクロールには tmux のマウスモードが必要です。`~/.tmux.conf` がまだ有効にしていない場合は、この行を追加して設定をリロードします。

128 

129```bash theme={null}

130set -g mouse on

131```

132 

133マウスモードがない場合、ホイールイベントは Claude Code ではなく tmux に送信されます。`PgUp` と `PgDn` を使用したキーボードスクロールはどちらの方法でも機能します。Claude Code は起動時に tmux がマウスモードオフで検出された場合、1 回限りのヒントを出力します。

134 

135フルスクリーンレンダリングは iTerm2 の tmux 統合モード(`tmux -CC` で入るモード)と互換性がありません。統合モードでは、iTerm2 は各 tmux ペインをネイティブスプリットとしてレンダリングし、tmux がターミナルに描画することを許可しません。代替スクリーンバッファとマウストラッキングはそこで正しく機能しません。マウスホイールは何もしませんし、ダブルクリックはターミナル状態を破損する可能性があります。`tmux -CC` セッションでフルスクリーンレンダリングを有効にしないでください。`-CC` なしの iTerm2 内の通常の tmux は正常に機能します。

136 

137## ネイティブテキスト選択を保持する

138 

139マウスキャプチャは最も一般的な摩擦点です。特に SSH 経由または tmux 内です。Claude Code がマウスイベントをキャプチャすると、ターミナルのネイティブなコピーオンセレクトが機能しなくなります。クリックアンドドラッグで行う選択は Claude Code 内に存在し、ターミナルの選択バッファには存在しないため、tmux コピーモード、Kitty ヒント、および同様のツールはそれを見ることができません。

140 

141Claude Code は選択をクリップボードに書き込もうとしますが、使用するパスはセットアップに依存します。tmux 内では tmux ペーストバッファに書き込みます。SSH 経由では OSC 52 エスケープシーケンスにフォールバックし、一部のターミナルはデフォルトでブロックします。iTerm2 は Settings → General → Selection → Applications in terminal may access clipboard をオンにするまでブロックします。Claude Code は各コピー後にトーストを出力し、使用したパスを通知します。

142 

143一度限りのネイティブ選択の場合、ターミナルのバイパス修飾キーを押しながらクリックアンドドラッグします。iTerm2 では `Option`、ほとんどの Linux および Windows ターミナルでは `Shift` です。修飾キーはターミナルに選択を自分で処理するよう指示し、マウスイベントを Claude Code に転送しないため、`Cmd+C` とターミナルの他のコピーショートカットが機能します。

144 

145ネイティブ選択に常に依存する場合、`CLAUDE_CODE_DISABLE_MOUSE=1` を設定してマウスキャプチャをオプトアウトしながら、ちらつきのないレンダリングとフラットメモリを保持します。

146 

147```bash theme={null}

148CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude

149```

150 

151マウスキャプチャが無効な場合、`PgUp`、`PgDn`、`Ctrl+Home`、`Ctrl+End` を使用したキーボードスクロールは引き続き機能し、ターミナルはネイティブに選択を処理します。クリックしてカーソルを配置、クリックしてツール出力を展開、URL クリック、Claude Code 内でのホイールスクロールが失われます。

152 

153## リサーチプレビュー

154 

155フルスクリーンレンダリングはリサーチプレビュー機能です。一般的なターミナルエミュレータでテストされていますが、あまり一般的でないターミナルまたは異常な設定でレンダリングの問題が発生する可能性があります。

156 

157問題が発生した場合は、Claude Code 内で `/feedback` を実行して報告するか、[claude-code GitHub リポジトリ](https://github.com/anthropics/claude-code/issues)で issue を開いてください。ターミナルエミュレータの名前とバージョンを含めてください。

158 

159フルスクリーンレンダリングをオフにするには、`/tui default` を実行するか、その方法で有効にした場合は環境変数をアンセットしてください。

github-actions.md +670 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code GitHub Actions

6 

7> Claude Code を開発ワークフローに統合する Claude Code GitHub Actions について学びます

8 

9Claude Code GitHub Actions は、GitHub ワークフローに AI を活用した自動化をもたらします。任意の PR またはイシューで `@claude` とメンションするだけで、Claude はコードを分析し、プルリクエストを作成し、機能を実装し、バグを修正できます。すべてプロジェクトの標準に従いながら実行されます。すべての PR に自動的に投稿されるレビューについては、[GitHub Code Review](/ja/code-review) を参照してください。

10 

11<Note>

12 Claude Code GitHub Actions は [Claude Agent SDK](/ja/agent-sdk/overview) の上に構築されており、Claude Code をアプリケーションにプログラム的に統合できます。SDK を使用して、GitHub Actions を超えたカスタム自動化ワークフローを構築できます。

13</Note>

14 

15<Info>

16 **Claude Opus 4.7 が利用可能になりました。** Claude Code GitHub Actions はデフォルトで Sonnet を使用します。Opus 4.7 を使用するには、[model パラメータ](#breaking-changes-reference) を `claude-opus-4-7` に設定してください。

17</Info>

18 

19## Claude Code GitHub Actions を使用する理由

20 

21* **即座の PR 作成**: 必要なことを説明すると、Claude は必要なすべての変更を含む完全な PR を作成します

22* **自動コード実装**: イシューを 1 つのコマンドで動作するコードに変換します

23* **標準に従う**: Claude は `CLAUDE.md` ガイドラインと既存のコードパターンを尊重します

24* **シンプルなセットアップ**: インストーラーと API キーで数分で開始できます

25* **デフォルトで安全**: コードは Github のランナーに留まります

26 

27## Claude は何ができますか?

28 

29Claude Code は、コードの操作方法を変える強力な GitHub Action を提供します。

30 

31### Claude Code Action

32 

33この GitHub Action により、GitHub Actions ワークフロー内で Claude Code を実行できます。Claude Code の上に任意のカスタムワークフローを構築するために使用できます。

34 

35[リポジトリを表示 →](https://github.com/anthropics/claude-code-action)

36 

37## セットアップ

38 

39## クイックセットアップ

40 

41このアクションをセットアップする最も簡単な方法は、ターミナルで Claude Code を使用することです。claude を開いて `/install-github-app` を実行するだけです。

42 

43このコマンドは、GitHub アプリと必要なシークレットのセットアップをガイドします。

44 

45<Note>

46 * GitHub アプリをインストールしてシークレットを追加するには、リポジトリ管理者である必要があります

47 * GitHub アプリは、Contents、Issues、Pull requests に対する読み取りと書き込みのアクセス許可をリクエストします

48 * このクイックスタート方法は、直接 Claude API ユーザーのみが利用できます。Amazon Bedrock または Google Vertex AI を使用している場合は、[Amazon Bedrock と Google Vertex AI での使用](#using-with-amazon-bedrock-%26-google-vertex-ai) セクションを参照してください。

49</Note>

50 

51## 手動セットアップ

52 

53`/install-github-app` コマンドが失敗した場合、または手動セットアップを希望する場合は、以下の手動セットアップ手順に従ってください。

54 

551. **Claude GitHub アプリをリポジトリにインストール**: [https://github.com/apps/claude](https://github.com/apps/claude)

56 

57 Claude GitHub アプリには、以下のリポジトリアクセス許可が必要です。

58 

59 * **Contents**: 読み取りと書き込み(リポジトリファイルを変更するため)

60 * **Issues**: 読み取りと書き込み(イシューに応答するため)

61 * **Pull requests**: 読み取りと書き込み(PR を作成して変更をプッシュするため)

62 

63 セキュリティとアクセス許可の詳細については、[セキュリティドキュメント](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md) を参照してください。

642. **ANTHROPIC\_API\_KEY をリポジトリシークレットに追加** ([GitHub Actions でシークレットを使用する方法を学ぶ](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions))

653. **ワークフローファイルをコピー** [examples/claude.yml](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) からリポジトリの `.github/workflows/` にコピーします

66 

67<Tip>

68 クイックスタートまたは手動セットアップのいずれかを完了した後、イシューまたは PR コメントで `@claude` をタグ付けしてアクションをテストします。

69</Tip>

70 

71## ベータ版からのアップグレード

72 

73<Warning>

74 Claude Code GitHub Actions v1.0 は、ベータ版から v1.0 にアップグレードするためにワークフローファイルを更新する必要がある破壊的な変更を導入しています。

75</Warning>

76 

77現在 Claude Code GitHub Actions のベータ版を使用している場合は、ワークフローを GA バージョンを使用するように更新することをお勧めします。新しいバージョンは、自動モード検出などの強力な新機能を追加しながら、設定を簡素化します。

78 

79### 重要な変更

80 

81すべてのベータユーザーは、アップグレードするためにワークフローファイルで以下の変更を行う必要があります。

82 

831. **アクションバージョンを更新**: `@beta` を `@v1` に変更します

842. **モード設定を削除**: `mode: "tag"` または `mode: "agent"` を削除します(現在は自動検出)

853. **プロンプト入力を更新**: `direct_prompt` を `prompt` に置き換えます

864. **CLI オプションを移動**: `max_turns`、`model`、`custom_instructions` などを `claude_args` に変換します

87 

88### 破壊的な変更リファレンス

89 

90| 古いベータ入力 | 新しい v1.0 入力 |

91| --------------------- | ------------------------------------- |

92| `mode` | *(削除 - 自動検出)* |

93| `direct_prompt` | `prompt` |

94| `override_prompt` | `prompt` with GitHub variables |

95| `custom_instructions` | `claude_args: --append-system-prompt` |

96| `max_turns` | `claude_args: --max-turns` |

97| `model` | `claude_args: --model` |

98| `allowed_tools` | `claude_args: --allowedTools` |

99| `disallowed_tools` | `claude_args: --disallowedTools` |

100| `claude_env` | `settings` JSON format |

101 

102### 前後の例

103 

104**ベータ版:**

105 

106```yaml theme={null}

107- uses: anthropics/claude-code-action@beta

108 with:

109 mode: "tag"

110 direct_prompt: "Review this PR for security issues"

111 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

112 custom_instructions: "Follow our coding standards"

113 max_turns: "10"

114 model: "claude-sonnet-4-6"

115```

116 

117**GA バージョン(v1.0):**

118 

119```yaml theme={null}

120- uses: anthropics/claude-code-action@v1

121 with:

122 prompt: "Review this PR for security issues"

123 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

124 claude_args: |

125 --append-system-prompt "Follow our coding standards"

126 --max-turns 10

127 --model claude-sonnet-4-6

128```

129 

130<Tip>

131 アクションは、設定に基づいて、インタラクティブモード(`@claude` メンションに応答)または自動化モード(プロンプト付きで即座に実行)で実行するかどうかを自動的に検出します。

132</Tip>

133 

134## 使用例

135 

136Claude Code GitHub Actions は、さまざまなタスクに役立ちます。[examples ディレクトリ](https://github.com/anthropics/claude-code-action/tree/main/examples) には、さまざまなシナリオ用の使用可能なワークフローが含まれています。

137 

138### 基本的なワークフロー

139 

140```yaml theme={null}

141name: Claude Code

142on:

143 issue_comment:

144 types: [created]

145 pull_request_review_comment:

146 types: [created]

147jobs:

148 claude:

149 runs-on: ubuntu-latest

150 steps:

151 - uses: anthropics/claude-code-action@v1

152 with:

153 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

154 # Responds to @claude mentions in comments

155```

156 

157### skills を使用する

158 

159```yaml theme={null}

160name: Code Review

161on:

162 pull_request:

163 types: [opened, synchronize]

164jobs:

165 review:

166 runs-on: ubuntu-latest

167 steps:

168 - uses: anthropics/claude-code-action@v1

169 with:

170 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

171 prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."

172 claude_args: "--max-turns 5"

173```

174 

175### プロンプトを使用したカスタム自動化

176 

177```yaml theme={null}

178name: Daily Report

179on:

180 schedule:

181 - cron: "0 9 * * *"

182jobs:

183 report:

184 runs-on: ubuntu-latest

185 steps:

186 - uses: anthropics/claude-code-action@v1

187 with:

188 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

189 prompt: "Generate a summary of yesterday's commits and open issues"

190 claude_args: "--model opus"

191```

192 

193### 一般的な使用例

194 

195イシューまたは PR コメント内:

196 

197```text theme={null}

198@claude implement this feature based on the issue description

199@claude how should I implement user authentication for this endpoint?

200@claude fix the TypeError in the user dashboard component

201```

202 

203Claude は自動的にコンテキストを分析し、適切に応答します。

204 

205## ベストプラクティス

206 

207### CLAUDE.md 設定

208 

209リポジトリルートに `CLAUDE.md` ファイルを作成して、コードスタイルガイドライン、レビュー基準、プロジェクト固有のルール、および推奨パターンを定義します。このファイルは、Claude のプロジェクト標準の理解をガイドします。

210 

211### セキュリティに関する考慮事項

212 

213<Warning>API キーをリポジトリに直接コミットしないでください。</Warning>

214 

215アクセス許可、認証、ベストプラクティスを含む包括的なセキュリティガイダンスについては、[Claude Code Action セキュリティドキュメント](https://github.com/anthropics/claude-code-action/blob/main/docs/security.md) を参照してください。

216 

217常に GitHub Secrets を API キーに使用します。

218 

219* API キーを `ANTHROPIC_API_KEY` という名前のリポジトリシークレットとして追加します

220* ワークフローで参照します: `anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}`

221* アクションのアクセス許可を必要なものだけに制限します

222* マージする前に Claude の提案を確認します

223 

224常に GitHub Secrets(例えば、`${{ secrets.ANTHROPIC_API_KEY }}`)を使用し、API キーをワークフローファイルに直接ハードコードしないでください。

225 

226### パフォーマンスの最適化

227 

228イシューテンプレートを使用してコンテキストを提供し、`CLAUDE.md` を簡潔で焦点を絞ったものに保ち、ワークフローに適切なタイムアウトを設定します。

229 

230### CI コスト

231 

232Claude Code GitHub Actions を使用する場合、関連するコストに注意してください。

233 

234**GitHub Actions コスト:**

235 

236* Claude Code は GitHub ホストランナーで実行され、GitHub Actions の分を消費します

237* 詳細な価格設定と分の制限については、[GitHub の請求ドキュメント](https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions) を参照してください

238 

239**API コスト:**

240 

241* 各 Claude インタラクションは、プロンプトと応答の長さに基づいて API トークンを消費します

242* トークン使用量は、タスクの複雑さとコードベースのサイズによって異なります

243* 現在のトークンレートについては、[Claude の価格ページ](https://claude.com/platform/api) を参照してください

244 

245**コスト最適化のヒント:**

246 

247* 特定の `@claude` コマンドを使用して、不要な API 呼び出しを減らします

248* `claude_args` で適切な `--max-turns` を設定して、過度な反復を防ぎます

249* ワークフローレベルのタイムアウトを設定して、暴走ジョブを回避します

250* GitHub の並行制御を使用して、並列実行を制限することを検討します

251 

252## 設定例

253 

254Claude Code Action v1 は、統一されたパラメータで設定を簡素化します。

255 

256```yaml theme={null}

257- uses: anthropics/claude-code-action@v1

258 with:

259 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

260 prompt: "Your instructions here" # Optional

261 claude_args: "--max-turns 5" # Optional CLI arguments

262```

263 

264主な機能:

265 

266* **統一されたプロンプトインターフェース** - すべての指示に `prompt` を使用します

267* **Skills** - インストール済みの [skills](/ja/skills) をプロンプトから直接呼び出します

268* **CLI パススルー** - `claude_args` 経由の任意の Claude Code CLI 引数

269* **柔軟なトリガー** - 任意の GitHub イベントで動作します

270 

271完全なワークフローファイルについては、[examples ディレクトリ](https://github.com/anthropics/claude-code-action/tree/main/examples) を参照してください。

272 

273<Tip>

274 イシューまたは PR コメントに応答する場合、Claude は自動的に @claude メンションに応答します。その他のイベントについては、`prompt` パラメータを使用して指示を提供します。

275</Tip>

276 

277## Amazon Bedrock と Google Vertex AI での使用

278 

279エンタープライズ環境では、Claude Code GitHub Actions を独自のクラウドインフラストラクチャで使用できます。このアプローチにより、データレジデンシーと請求を制御しながら、同じ機能を維持できます。

280 

281### 前提条件

282 

283クラウドプロバイダーで Claude Code GitHub Actions をセットアップする前に、以下が必要です。

284 

285#### Google Cloud Vertex AI の場合:

286 

2871. Vertex AI が有効な Google Cloud プロジェクト

2882. GitHub Actions 用に設定された Workload Identity Federation

2893. 必要なアクセス許可を持つサービスアカウント

2904. GitHub App(推奨)または デフォルトの GITHUB\_TOKEN を使用

291 

292#### Amazon Bedrock の場合:

293 

2941. Amazon Bedrock が有効な AWS アカウント

2952. AWS で設定された GitHub OIDC Identity Provider

2963. Bedrock アクセス許可を持つ IAM ロール

2974. GitHub App(推奨)または デフォルトの GITHUB\_TOKEN を使用

298 

299<Steps>

300 <Step title="カスタム GitHub App を作成(3P プロバイダーに推奨)">

301 Vertex AI や Bedrock などの 3P プロバイダーを使用する場合、最適な制御とセキュリティのために、独自の GitHub App を作成することをお勧めします。

302 

303 1. [https://github.com/settings/apps/new](https://github.com/settings/apps/new) にアクセスします

304 2. 基本情報を入力します。

305 * **GitHub App name**: 一意の名前を選択します(例:'YourOrg Claude Assistant')

306 * **Homepage URL**: 組織の Web サイトまたはリポジトリ URL

307 3. アプリ設定を設定します。

308 * **Webhooks**: 'Active'をオフにします(この統合には不要)

309 4. 必要なアクセス許可を設定します。

310 * **Repository permissions**:

311 * Contents: Read & Write

312 * Issues: Read & Write

313 * Pull requests: Read & Write

314 5. 'Create GitHub App'をクリックします

315 6. 作成後、'Generate a private key'をクリックしてダウンロードした `.pem` ファイルを保存します

316 7. アプリ設定ページからアプリ ID をメモします

317 8. アプリをリポジトリにインストールします。

318 * アプリの設定ページから、左側のサイドバーの'Install App'をクリックします

319 * アカウントまたは組織を選択します

320 * 'Only select repositories'を選択して、特定のリポジトリを選択します

321 * 'Install'をクリックします

322 9. プライベートキーをリポジトリシークレットとして追加します。

323 * リポジトリの Settings → Secrets and variables → Actions に移動します

324 * `.pem` ファイルの内容を含む `APP_PRIVATE_KEY` という名前の新しいシークレットを作成します

325 10. アプリ ID をシークレットとして追加します。

326 

327 * GitHub App の ID を含む `APP_ID` という名前の新しいシークレットを作成します

328 

329 <Note>

330 このアプリは [actions/create-github-app-token](https://github.com/actions/create-github-app-token) アクションで使用され、ワークフロー内で認証トークンを生成します。

331 </Note>

332 

333 **Claude API の場合、または独自の Github アプリをセットアップしたくない場合の代替案**: 公式 Anthropic アプリを使用します。

334 

335 1. [https://github.com/apps/claude](https://github.com/apps/claude) からインストールします

336 2. 認証に追加の設定は不要です

337 </Step>

338 

339 <Step title="クラウドプロバイダー認証を設定">

340 クラウドプロバイダーを選択し、安全な認証をセットアップします。

341 

342 <AccordionGroup>

343 <Accordion title="AWS Bedrock">

344 **GitHub Actions が認証情報を保存せずに安全に認証できるように AWS を設定します。**

345 

346 > **セキュリティに関する注意**: リポジトリ固有の設定を使用し、最小限の必要なアクセス許可のみを付与します。

347 

348 **必要なセットアップ**:

349 

350 1. **Amazon Bedrock を有効にします**:

351 * Amazon Bedrock で Claude モデルへのアクセスをリクエストします

352 * クロスリージョンモデルの場合、すべての必要なリージョンでアクセスをリクエストします

353 

354 2. **GitHub OIDC Identity Provider をセットアップします**:

355 * Provider URL: `https://token.actions.githubusercontent.com`

356 * Audience: `sts.amazonaws.com`

357 

358 3. **GitHub Actions 用の IAM ロールを作成します**:

359 * Trusted entity type: Web identity

360 * Identity provider: `token.actions.githubusercontent.com`

361 * Permissions: `AmazonBedrockFullAccess` ポリシー

362 * 特定のリポジトリの信頼ポリシーを設定します

363 

364 **必要な値**:

365 

366 セットアップ後、以下が必要です。

367 

368 * **AWS\_ROLE\_TO\_ASSUME**: 作成した IAM ロールの ARN

369 

370 <Tip>

371 OIDC は、認証情報が一時的で自動的にローテーションされるため、静的な AWS アクセスキーを使用するよりも安全です。

372 </Tip>

373 

374 詳細な OIDC セットアップ手順については、[AWS ドキュメント](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) を参照してください。

375 </Accordion>

376 

377 <Accordion title="Google Vertex AI">

378 **GitHub Actions が認証情報を保存せずに安全に認証できるように Google Cloud を設定します。**

379 

380 > **セキュリティに関する注意**: リポジトリ固有の設定を使用し、最小限の必要なアクセス許可のみを付与します。

381 

382 **必要なセットアップ**:

383 

384 1. **Google Cloud プロジェクトで API を有効にします**:

385 * IAM Credentials API

386 * Security Token Service(STS)API

387 * Vertex AI API

388 

389 2. **Workload Identity Federation リソースを作成します**:

390 * Workload Identity Pool を作成します

391 * GitHub OIDC プロバイダーを追加します。

392 * Issuer: `https://token.actions.githubusercontent.com`

393 * リポジトリと所有者の属性マッピング

394 * **セキュリティ推奨**: リポジトリ固有の属性条件を使用します

395 

396 3. **サービスアカウントを作成します**:

397 * `Vertex AI User` ロールのみを付与します

398 * **セキュリティ推奨**: リポジトリごとに専用のサービスアカウントを作成します

399 

400 4. **IAM バインディングを設定します**:

401 * Workload Identity Pool がサービスアカウントを偽装できるようにします

402 * **セキュリティ推奨**: リポジトリ固有のプリンシパルセットを使用します

403 

404 **必要な値**:

405 

406 セットアップ後、以下が必要です。

407 

408 * **GCP\_WORKLOAD\_IDENTITY\_PROVIDER**: 完全なプロバイダーリソース名

409 * **GCP\_SERVICE\_ACCOUNT**: サービスアカウントのメールアドレス

410 

411 <Tip>

412 Workload Identity Federation により、ダウンロード可能なサービスアカウントキーが不要になり、セキュリティが向上します。

413 </Tip>

414 

415 詳細なセットアップ手順については、[Google Cloud Workload Identity Federation ドキュメント](https://cloud.google.com/iam/docs/workload-identity-federation) を参照してください。

416 </Accordion>

417 </AccordionGroup>

418 </Step>

419 

420 <Step title="必要なシークレットを追加">

421 リポジトリに以下のシークレットを追加します(Settings → Secrets and variables → Actions):

422 

423 #### Claude API(直接)の場合:

424 

425 1. **API 認証の場合**:

426 * `ANTHROPIC_API_KEY`: [console.anthropic.com](https://console.anthropic.com) からの Claude API キー

427 

428 2. **GitHub App を使用する場合(独自のアプリを使用している場合)**:

429 * `APP_ID`: GitHub App の ID

430 * `APP_PRIVATE_KEY`: プライベートキー(.pem)の内容

431 

432 #### Google Cloud Vertex AI の場合

433 

434 1. **GCP 認証の場合**:

435 * `GCP_WORKLOAD_IDENTITY_PROVIDER`

436 * `GCP_SERVICE_ACCOUNT`

437 

438 2. **GitHub App を使用する場合(独自のアプリを使用している場合)**:

439 * `APP_ID`: GitHub App の ID

440 * `APP_PRIVATE_KEY`: プライベートキー(.pem)の内容

441 

442 #### AWS Bedrock の場合

443 

444 1. **AWS 認証の場合**:

445 * `AWS_ROLE_TO_ASSUME`

446 

447 2. **GitHub App を使用する場合(独自のアプリを使用している場合)**:

448 * `APP_ID`: GitHub App の ID

449 * `APP_PRIVATE_KEY`: プライベートキー(.pem)の内容

450 </Step>

451 

452 <Step title="ワークフローファイルを作成">

453 クラウドプロバイダーと統合する GitHub Actions ワークフローファイルを作成します。以下の例は、AWS Bedrock と Google Vertex AI の両方の完全な設定を示しています。

454 

455 <AccordionGroup>

456 <Accordion title="AWS Bedrock ワークフロー">

457 **前提条件:**

458 

459 * AWS Bedrock アクセスが有効で、Claude モデルのアクセス許可がある

460 * GitHub が AWS で OIDC ID プロバイダーとして設定されている

461 * Bedrock アクセス許可を持つ IAM ロールが GitHub Actions を信頼している

462 

463 **必要な GitHub シークレット:**

464 

465 | Secret Name | Description |

466 | -------------------- | --------------------------- |

467 | `AWS_ROLE_TO_ASSUME` | Bedrock アクセス用の IAM ロールの ARN |

468 | `APP_ID` | GitHub App ID(アプリ設定から) |

469 | `APP_PRIVATE_KEY` | GitHub App 用に生成したプライベートキー |

470 

471 ```yaml theme={null}

472 name: Claude PR Action

473 

474 permissions:

475 contents: write

476 pull-requests: write

477 issues: write

478 id-token: write

479 

480 on:

481 issue_comment:

482 types: [created]

483 pull_request_review_comment:

484 types: [created]

485 issues:

486 types: [opened, assigned]

487 

488 jobs:

489 claude-pr:

490 if: |

491 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

492 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

493 (github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))

494 runs-on: ubuntu-latest

495 env:

496 AWS_REGION: us-west-2

497 steps:

498 - name: Checkout repository

499 uses: actions/checkout@v4

500 

501 - name: Generate GitHub App token

502 id: app-token

503 uses: actions/create-github-app-token@v2

504 with:

505 app-id: ${{ secrets.APP_ID }}

506 private-key: ${{ secrets.APP_PRIVATE_KEY }}

507 

508 - name: Configure AWS Credentials (OIDC)

509 uses: aws-actions/configure-aws-credentials@v4

510 with:

511 role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}

512 aws-region: us-west-2

513 

514 - uses: anthropics/claude-code-action@v1

515 with:

516 github_token: ${{ steps.app-token.outputs.token }}

517 use_bedrock: "true"

518 claude_args: '--model us.anthropic.claude-sonnet-4-6 --max-turns 10'

519 ```

520 

521 <Tip>

522 Bedrock のモデル ID 形式には、リージョンプレフィックスが含まれます(例:`us.anthropic.claude-sonnet-4-6`)。

523 </Tip>

524 </Accordion>

525 

526 <Accordion title="Google Vertex AI ワークフロー">

527 **前提条件:**

528 

529 * GCP プロジェクトで Vertex AI API が有効

530 * GitHub 用に Workload Identity Federation が設定されている

531 * Vertex AI アクセス許可を持つサービスアカウント

532 

533 **必要な GitHub シークレット:**

534 

535 | Secret Name | Description |

536 | -------------------------------- | -------------------------------- |

537 | `GCP_WORKLOAD_IDENTITY_PROVIDER` | Workload identity provider リソース名 |

538 | `GCP_SERVICE_ACCOUNT` | Vertex AI アクセス権を持つサービスアカウントメール |

539 | `APP_ID` | GitHub App ID(アプリ設定から) |

540 | `APP_PRIVATE_KEY` | GitHub App 用に生成したプライベートキー |

541 

542 ```yaml theme={null}

543 name: Claude PR Action

544 

545 permissions:

546 contents: write

547 pull-requests: write

548 issues: write

549 id-token: write

550 

551 on:

552 issue_comment:

553 types: [created]

554 pull_request_review_comment:

555 types: [created]

556 issues:

557 types: [opened, assigned]

558 

559 jobs:

560 claude-pr:

561 if: |

562 (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||

563 (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||

564 (github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))

565 runs-on: ubuntu-latest

566 steps:

567 - name: Checkout repository

568 uses: actions/checkout@v4

569 

570 - name: Generate GitHub App token

571 id: app-token

572 uses: actions/create-github-app-token@v2

573 with:

574 app-id: ${{ secrets.APP_ID }}

575 private-key: ${{ secrets.APP_PRIVATE_KEY }}

576 

577 - name: Authenticate to Google Cloud

578 id: auth

579 uses: google-github-actions/auth@v2

580 with:

581 workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}

582 service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

583 

584 - uses: anthropics/claude-code-action@v1

585 with:

586 github_token: ${{ steps.app-token.outputs.token }}

587 trigger_phrase: "@claude"

588 use_vertex: "true"

589 claude_args: '--model claude-sonnet-4-5@20250929 --max-turns 10'

590 env:

591 ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}

592 CLOUD_ML_REGION: us-east5

593 VERTEX_REGION_CLAUDE_4_5_SONNET: us-east5

594 ```

595 

596 <Tip>

597 プロジェクト ID は Google Cloud 認証ステップから自動的に取得されるため、ハードコードする必要はありません。

598 </Tip>

599 </Accordion>

600 </AccordionGroup>

601 </Step>

602</Steps>

603 

604## トラブルシューティング

605 

606### Claude が @claude コマンドに応答しない

607 

608GitHub App が正しくインストールされていることを確認し、ワークフローが有効になっていることを確認し、API キーがリポジトリシークレットに設定されていることを確認し、コメントに `@claude` が含まれていることを確認します(`/claude` ではなく)。

609 

610### CI が Claude のコミットで実行されない

611 

612GitHub App またはカスタムアプリを使用していることを確認します(Actions ユーザーではなく)、ワークフロートリガーに必要なイベントが含まれていることを確認し、アプリのアクセス許可に CI トリガーが含まれていることを確認します。

613 

614### 認証エラー

615 

616API キーが有効で十分なアクセス許可があることを確認します。Bedrock/Vertex の場合、認証情報の設定を確認し、シークレットがワークフロー内で正しく名前付けされていることを確認します。

617 

618## 高度な設定

619 

620### アクションパラメータ

621 

622Claude Code Action v1 は、簡素化された設定を使用します。

623 

624| Parameter | Description | Required |

625| ------------------- | --------------------------------------------- | -------- |

626| `prompt` | Claude の指示(プレーンテキストまたは [skill](/ja/skills) 名) | No\* |

627| `claude_args` | Claude Code に渡される CLI 引数 | No |

628| `anthropic_api_key` | Claude API キー | Yes\*\* |

629| `github_token` | API アクセス用の GitHub トークン | No |

630| `trigger_phrase` | カスタムトリガーフレーズ(デフォルト:「@claude」) | No |

631| `use_bedrock` | Claude API の代わりに AWS Bedrock を使用 | No |

632| `use_vertex` | Claude API の代わりに Google Vertex AI を使用 | No |

633 

634\*プロンプトはオプションです。イシュー/PR コメントで省略された場合、Claude はトリガーフレーズに応答します\

635\*\*直接 Claude API に必要です。Bedrock/Vertex には不要です

636 

637#### CLI 引数を渡す

638 

639`claude_args` パラメータは、任意の Claude Code CLI 引数を受け入れます。

640 

641```yaml theme={null}

642claude_args: "--max-turns 5 --model claude-sonnet-4-6 --mcp-config /path/to/config.json"

643```

644 

645一般的な引数:

646 

647* `--max-turns`: 最大会話ターン数(デフォルト:10)

648* `--model`: 使用するモデル(例:`claude-sonnet-4-6`)

649* `--mcp-config`: MCP 設定へのパス

650* `--allowedTools`: 許可されたツールのカンマ区切りリスト。`--allowed-tools` エイリアスも機能します。

651* `--debug`: デバッグ出力を有効にします

652 

653### 代替統合方法

654 

655`/install-github-app` コマンドは推奨されるアプローチですが、以下も実行できます。

656 

657* **カスタム GitHub App**: ブランド化されたユーザー名またはカスタム認証フローが必要な組織向け。必要なアクセス許可(contents、issues、pull requests)を持つ独自の GitHub App を作成し、actions/create-github-app-token アクションを使用してワークフロー内でトークンを生成します。

658* **手動 GitHub Actions**: 最大の柔軟性のための直接ワークフロー設定

659* **MCP 設定**: Model Context Protocol サーバーの動的読み込み

660 

661詳細なガイドについては、[Claude Code Action ドキュメント](https://github.com/anthropics/claude-code-action/blob/main/docs) を参照してください。認証、セキュリティ、高度な設定に関する詳細なガイドがあります。

662 

663### Claude の動作をカスタマイズ

664 

665Claude の動作は 2 つの方法で設定できます。

666 

6671. **CLAUDE.md**: リポジトリのルートに `CLAUDE.md` ファイルを作成して、コーディング標準、レビュー基準、プロジェクト固有のルールを定義します。Claude は PR を作成し、リクエストに応答するときにこれらのガイドラインに従います。詳細については、[Memory ドキュメント](/ja/memory) を確認してください。

6682. **カスタムプロンプト**: ワークフローファイルの `prompt` パラメータを使用して、ワークフロー固有の指示を提供します。これにより、異なるワークフローまたはタスク用に Claude の動作をカスタマイズできます。

669 

670Claude は PR を作成し、リクエストに応答するときにこれらのガイドラインに従います。

gitlab-ci-cd.md +466 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code GitLab CI/CD

6 

7> Claude Code を GitLab CI/CD で開発ワークフローに統合する方法を学びます

8 

9<Info>

10 Claude Code for GitLab CI/CD は現在ベータ版です。機能と機能性は、エクスペリエンスを改善する際に進化する可能性があります。

11 

12 この統合は GitLab によって保守されています。サポートについては、以下の [GitLab issue](https://gitlab.com/gitlab-org/gitlab/-/issues/573776) を参照してください。

13</Info>

14 

15<Note>

16 この統合は [Claude Code CLI and Agent SDK](/ja/agent-sdk/overview) の上に構築されており、CI/CD ジョブとカスタム自動化ワークフローで Claude をプログラム的に使用できます。

17</Note>

18 

19## GitLab で Claude Code を使用する理由

20 

21* **インスタント MR 作成**: 必要なことを説明すると、Claude は変更と説明を含む完全な MR を提案します

22* **自動実装**: 単一のコマンドまたはメンションで issue を実行可能なコードに変換します

23* **プロジェクト対応**: Claude は `CLAUDE.md` ガイドラインと既存のコードパターンに従います

24* **シンプルなセットアップ**: `.gitlab-ci.yml` に 1 つのジョブとマスクされた CI/CD 変数を追加します

25* **エンタープライズ対応**: Claude API、Amazon Bedrock、または Google Vertex AI を選択して、データレジデンシーと調達のニーズを満たします

26* **デフォルトでセキュア**: GitLab ランナーで実行され、ブランチ保護と承認が適用されます

27 

28## 仕組み

29 

30Claude Code は GitLab CI/CD を使用して AI タスクを分離されたジョブで実行し、MR 経由で結果をコミットバックします。

31 

321. **イベント駆動型オーケストレーション**: GitLab は選択したトリガー(例えば、issue、MR、またはレビュースレッドで `@claude` をメンションするコメント)をリッスンします。ジョブはスレッドとリポジトリからコンテキストを収集し、その入力からプロンプトを構築し、Claude Code を実行します。

33 

342. **プロバイダー抽象化**: 環境に適したプロバイダーを使用します。

35 * Claude API(SaaS)

36 * Amazon Bedrock(IAM ベースのアクセス、クロスリージョンオプション)

37 * Google Vertex AI(GCP ネイティブ、Workload Identity Federation)

38 

393. **サンドボックス実行**: 各インタラクションは厳密なネットワークとファイルシステムルールを持つコンテナで実行されます。Claude Code はワークスペーススコープの権限を適用して書き込みを制限します。すべての変更は MR を通じてフローするため、レビュアーは diff を確認でき、承認が引き続き適用されます。

40 

41地域エンドポイントを選択して、既存のクラウド契約を使用しながらレイテンシーを削減し、データソブリンティ要件を満たします。

42 

43## Claude は何ができますか?

44 

45Claude Code は、コードの操作方法を変える強力な CI/CD ワークフローを実現します。

46 

47* issue の説明またはコメントから MR を作成および更新します

48* パフォーマンス低下を分析し、最適化を提案します

49* ブランチに直接機能を実装し、MR を開きます

50* テストまたはコメントで特定されたバグと低下を修正します

51* フォローアップコメントに応答して、リクエストされた変更を反復処理します

52 

53## セットアップ

54 

55### クイックセットアップ

56 

57最速で開始する方法は、`.gitlab-ci.yml` に最小限のジョブを追加し、API キーをマスクされた変数として設定することです。

58 

591. **マスクされた CI/CD 変数を追加します**

60 * **Settings** → **CI/CD** → **Variables** に移動します

61 * `ANTHROPIC_API_KEY` を追加します(マスク、必要に応じて保護)

62 

632. **Claude ジョブを `.gitlab-ci.yml` に追加します**

64 

65```yaml theme={null}

66stages:

67 - ai

68 

69claude:

70 stage: ai

71 image: node:24-alpine3.21

72 # ジョブをトリガーする方法に合わせてルールを調整します。

73 # - 手動実行

74 # - マージリクエストイベント

75 # - '@claude' を含むコメント時の web/API トリガー

76 rules:

77 - if: '$CI_PIPELINE_SOURCE == "web"'

78 - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

79 variables:

80 GIT_STRATEGY: fetch

81 before_script:

82 - apk update

83 - apk add --no-cache git curl bash

84 - curl -fsSL https://claude.ai/install.sh | bash

85 script:

86 # オプション: セットアップが提供する場合は GitLab MCP サーバーを開始します

87 - /bin/gitlab-mcp-server || true

88 # web/API トリガーでコンテキストペイロードを使用して呼び出す場合は AI_FLOW_* 変数を使用します

89 - echo "$AI_FLOW_INPUT for $AI_FLOW_CONTEXT on $AI_FLOW_EVENT"

90 - >

91 claude

92 -p "${AI_FLOW_INPUT:-'Review this MR and implement the requested changes'}"

93 --permission-mode acceptEdits

94 --allowedTools "Bash Read Edit Write mcp__gitlab"

95 --debug

96```

97 

98ジョブと `ANTHROPIC_API_KEY` 変数を追加した後、**CI/CD** → **Pipelines** からジョブを手動で実行してテストするか、MR からトリガーして Claude が変更を提案し、必要に応じて MR を開くようにします。

99 

100<Note>

101 Claude API の代わりに Amazon Bedrock または Google Vertex AI で実行するには、以下の [Using with Amazon Bedrock & Google Vertex AI](#using-with-amazon-bedrock--google-vertex-ai) セクションを参照して、認証と環境セットアップを確認してください。

102</Note>

103 

104### 手動セットアップ(本番環境に推奨)

105 

106より制御されたセットアップが必要な場合、またはエンタープライズプロバイダーが必要な場合:

107 

1081. **プロバイダーアクセスを構成します**。

109 * **Claude API**: `ANTHROPIC_API_KEY` を作成してマスクされた CI/CD 変数として保存します

110 * **Amazon Bedrock**: **Configure GitLab** → **AWS OIDC** を実行し、Bedrock 用の IAM ロールを作成します

111 * **Google Vertex AI**: **Configure Workload Identity Federation for GitLab** → **GCP** を実行します

112 

1132. **GitLab API 操作用のプロジェクト認証情報を追加します**。

114 * デフォルトで `CI_JOB_TOKEN` を使用するか、`api` スコープを持つ Project Access Token を作成します

115 * PAT を使用する場合は `GITLAB_ACCESS_TOKEN`(マスク)として保存します

116 

1173. **Claude ジョブを `.gitlab-ci.yml` に追加します**(以下の例を参照)

118 

1194. **(オプション)メンション駆動型トリガーを有効にします**。

120 * プロジェクト webhook を「Comments(notes)」に追加して、イベントリスナーに追加します(使用する場合)

121 * コメントに `@claude` が含まれている場合、リスナーがパイプライントリガー API を `AI_FLOW_INPUT` や `AI_FLOW_CONTEXT` などの変数で呼び出すようにします

122 

123## 使用例

124 

125### issue を MR に変換する

126 

127issue コメント内:

128 

129```text theme={null}

130@claude implement this feature based on the issue description

131```

132 

133Claude は issue とコードベースを分析し、ブランチに変更を書き込み、レビュー用に MR を開きます。

134 

135### 実装ヘルプを取得する

136 

137MR ディスカッション内:

138 

139```text theme={null}

140@claude suggest a concrete approach to cache the results of this API call

141```

142 

143Claude は変更を提案し、適切なキャッシングを使用してコードを追加し、MR を更新します。

144 

145### バグを素早く修正する

146 

147issue または MR コメント内:

148 

149```text theme={null}

150@claude fix the TypeError in the user dashboard component

151```

152 

153Claude はバグを特定し、修正を実装し、ブランチを更新するか新しい MR を開きます。

154 

155## Amazon Bedrock & Google Vertex AI での使用

156 

157エンタープライズ環境では、同じ開発者エクスペリエンスで Claude Code をクラウドインフラストラクチャ全体で実行できます。

158 

159<Tabs>

160 <Tab title="Amazon Bedrock">

161 ### 前提条件

162 

163 Amazon Bedrock で Claude Code をセットアップする前に、以下が必要です。

164 

165 1. 目的の Claude モデルへのアクセス権を持つ Amazon Bedrock を備えた AWS アカウント

166 2. AWS IAM で OIDC ID プロバイダーとして構成された GitLab

167 3. Bedrock 権限と GitLab プロジェクト/refs に制限された信頼ポリシーを持つ IAM ロール

168 4. ロール仮定用の GitLab CI/CD 変数:

169 * `AWS_ROLE_TO_ASSUME`(ロール ARN)

170 * `AWS_REGION`(Bedrock リージョン)

171 

172 ### セットアップ手順

173 

174 GitLab CI ジョブが OIDC 経由で IAM ロールを仮定できるように AWS を構成します(静的キーなし)。

175 

176 **必須セットアップ:**

177 

178 1. Amazon Bedrock を有効にし、ターゲット Claude モデルへのアクセスをリクエストします

179 2. GitLab 用の IAM OIDC プロバイダーを作成します(まだ存在しない場合)

180 3. GitLab OIDC プロバイダーによって信頼され、プロジェクトと保護された refs に制限された IAM ロールを作成します

181 4. Bedrock invoke API に対する最小権限権限を付与します

182 

183 **CI/CD 変数に保存する必須値:**

184 

185 * `AWS_ROLE_TO_ASSUME`

186 * `AWS_REGION`

187 

188 Settings → CI/CD → Variables で変数を追加します。

189 

190 ```yaml theme={null}

191 # Amazon Bedrock の場合:

192 - AWS_ROLE_TO_ASSUME

193 - AWS_REGION

194 ```

195 

196 上記の Amazon Bedrock ジョブの例を使用して、GitLab ジョブトークンを実行時に一時的な AWS 認証情報と交換します。

197 </Tab>

198 

199 <Tab title="Google Vertex AI">

200 ### 前提条件

201 

202 Google Vertex AI で Claude Code をセットアップする前に、以下が必要です。

203 

204 1. 以下を備えた Google Cloud プロジェクト:

205 * Vertex AI API が有効

206 * GitLab OIDC を信頼するように構成された Workload Identity Federation

207 2. 必要な Vertex AI ロールのみを持つ専用サービスアカウント

208 3. WIF 用の GitLab CI/CD 変数:

209 * `GCP_WORKLOAD_IDENTITY_PROVIDER`(完全なリソース名)

210 * `GCP_SERVICE_ACCOUNT`(サービスアカウントメール)

211 

212 ### セットアップ手順

213 

214 GitLab CI ジョブが Workload Identity Federation 経由でサービスアカウントを偽装できるように Google Cloud を構成します。

215 

216 **必須セットアップ:**

217 

218 1. IAM Credentials API、STS API、および Vertex AI API を有効にします

219 2. GitLab OIDC 用の Workload Identity Pool とプロバイダーを作成します

220 3. Vertex AI ロールを持つ専用サービスアカウントを作成します

221 4. WIF プリンシパルにサービスアカウントを偽装する権限を付与します

222 

223 **CI/CD 変数に保存する必須値:**

224 

225 * `GCP_WORKLOAD_IDENTITY_PROVIDER`

226 * `GCP_SERVICE_ACCOUNT`

227 

228 Settings → CI/CD → Variables で変数を追加します。

229 

230 ```yaml theme={null}

231 # Google Vertex AI の場合:

232 - GCP_WORKLOAD_IDENTITY_PROVIDER

233 - GCP_SERVICE_ACCOUNT

234 - CLOUD_ML_REGION(例:us-east5)

235 ```

236 

237 上記の Google Vertex AI ジョブの例を使用して、キーを保存せずに認証します。

238 </Tab>

239</Tabs>

240 

241## 構成例

242 

243以下は、パイプラインに適応させることができる使用可能なスニペットです。

244 

245### 基本的な .gitlab-ci.yml(Claude API)

246 

247```yaml theme={null}

248stages:

249 - ai

250 

251claude:

252 stage: ai

253 image: node:24-alpine3.21

254 rules:

255 - if: '$CI_PIPELINE_SOURCE == "web"'

256 - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

257 variables:

258 GIT_STRATEGY: fetch

259 before_script:

260 - apk update

261 - apk add --no-cache git curl bash

262 - curl -fsSL https://claude.ai/install.sh | bash

263 script:

264 - /bin/gitlab-mcp-server || true

265 - >

266 claude

267 -p "${AI_FLOW_INPUT:-'Summarize recent changes and suggest improvements'}"

268 --permission-mode acceptEdits

269 --allowedTools "Bash Read Edit Write mcp__gitlab"

270 --debug

271 # Claude Code は CI/CD 変数から ANTHROPIC_API_KEY を使用します

272```

273 

274### Amazon Bedrock ジョブの例(OIDC)

275 

276**前提条件:**

277 

278* Amazon Bedrock が有効で、選択した Claude モデルへのアクセス権がある

279* GitLab OIDC が AWS で構成され、GitLab プロジェクトと refs を信頼するロールがある

280* Bedrock 権限を持つ IAM ロール(最小権限を推奨)

281 

282**必須 CI/CD 変数:**

283 

284* `AWS_ROLE_TO_ASSUME`: Bedrock アクセス用の IAM ロールの ARN

285* `AWS_REGION`: Bedrock リージョン(例:`us-west-2`)

286 

287```yaml theme={null}

288claude-bedrock:

289 stage: ai

290 image: node:24-alpine3.21

291 rules:

292 - if: '$CI_PIPELINE_SOURCE == "web"'

293 before_script:

294 - apk add --no-cache bash curl jq git python3 py3-pip

295 - pip install --no-cache-dir awscli

296 - curl -fsSL https://claude.ai/install.sh | bash

297 # GitLab OIDC トークンを AWS 認証情報と交換します

298 - export AWS_WEB_IDENTITY_TOKEN_FILE="${CI_JOB_JWT_FILE:-/tmp/oidc_token}"

299 - if [ -n "${CI_JOB_JWT_V2}" ]; then printf "%s" "$CI_JOB_JWT_V2" > "$AWS_WEB_IDENTITY_TOKEN_FILE"; fi

300 - >

301 aws sts assume-role-with-web-identity

302 --role-arn "$AWS_ROLE_TO_ASSUME"

303 --role-session-name "gitlab-claude-$(date +%s)"

304 --web-identity-token "file://$AWS_WEB_IDENTITY_TOKEN_FILE"

305 --duration-seconds 3600 > /tmp/aws_creds.json

306 - export AWS_ACCESS_KEY_ID="$(jq -r .Credentials.AccessKeyId /tmp/aws_creds.json)"

307 - export AWS_SECRET_ACCESS_KEY="$(jq -r .Credentials.SecretAccessKey /tmp/aws_creds.json)"

308 - export AWS_SESSION_TOKEN="$(jq -r .Credentials.SessionToken /tmp/aws_creds.json)"

309 script:

310 - /bin/gitlab-mcp-server || true

311 - >

312 claude

313 -p "${AI_FLOW_INPUT:-'Implement the requested changes and open an MR'}"

314 --permission-mode acceptEdits

315 --allowedTools "Bash Read Edit Write mcp__gitlab"

316 --debug

317 variables:

318 AWS_REGION: "us-west-2"

319```

320 

321<Note>

322 Bedrock のモデル ID にはリージョン固有のプレフィックスが含まれます(例:`us.anthropic.claude-sonnet-4-6`)。ワークフローがサポートしている場合は、ジョブ構成またはプロンプト経由で目的のモデルを渡します。

323</Note>

324 

325### Google Vertex AI ジョブの例(Workload Identity Federation)

326 

327**前提条件:**

328 

329* GCP プロジェクトで Vertex AI API が有効

330* GitLab OIDC を信頼するように構成された Workload Identity Federation

331* Vertex AI 権限を持つサービスアカウント

332 

333**必須 CI/CD 変数:**

334 

335* `GCP_WORKLOAD_IDENTITY_PROVIDER`: 完全なプロバイダーリソース名

336* `GCP_SERVICE_ACCOUNT`: サービスアカウントメール

337* `CLOUD_ML_REGION`: Vertex リージョン(例:`us-east5`)

338 

339```yaml theme={null}

340claude-vertex:

341 stage: ai

342 image: gcr.io/google.com/cloudsdktool/google-cloud-cli:slim

343 rules:

344 - if: '$CI_PIPELINE_SOURCE == "web"'

345 before_script:

346 - apt-get update && apt-get install -y git && apt-get clean

347 - curl -fsSL https://claude.ai/install.sh | bash

348 # WIF 経由で Google Cloud に認証します(ダウンロードされたキーなし)

349 - >

350 gcloud auth login --cred-file=<(cat <<EOF

351 {

352 "type": "external_account",

353 "audience": "${GCP_WORKLOAD_IDENTITY_PROVIDER}",

354 "subject_token_type": "urn:ietf:params:oauth:token-type:jwt",

355 "service_account_impersonation_url": "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${GCP_SERVICE_ACCOUNT}:generateAccessToken",

356 "token_url": "https://sts.googleapis.com/v1/token"

357 }

358 EOF

359 )

360 - gcloud config set project "$(gcloud projects list --format='value(projectId)' --filter="name:${CI_PROJECT_NAMESPACE}" | head -n1)" || true

361 script:

362 - /bin/gitlab-mcp-server || true

363 - >

364 CLOUD_ML_REGION="${CLOUD_ML_REGION:-us-east5}"

365 claude

366 -p "${AI_FLOW_INPUT:-'Review and update code as requested'}"

367 --permission-mode acceptEdits

368 --allowedTools "Bash Read Edit Write mcp__gitlab"

369 --debug

370 variables:

371 CLOUD_ML_REGION: "us-east5"

372```

373 

374<Note>

375 Workload Identity Federation では、サービスアカウントキーを保存する必要はありません。リポジトリ固有の信頼条件と最小権限サービスアカウントを使用します。

376</Note>

377 

378## ベストプラクティス

379 

380### CLAUDE.md 構成

381 

382リポジトリルートに `CLAUDE.md` ファイルを作成して、コーディング標準、レビュー基準、およびプロジェクト固有のルールを定義します。Claude は実行中にこのファイルを読み取り、変更を提案する際にあなたの規約に従います。

383 

384### セキュリティに関する考慮事項

385 

386**API キーやクラウド認証情報をリポジトリにコミットしないでください**。常に GitLab CI/CD 変数を使用します。

387 

388* `ANTHROPIC_API_KEY` をマスクされた変数として追加します(必要に応じて保護)

389* 可能な限りプロバイダー固有の OIDC を使用します(長期キーなし)

390* ジョブ権限とネットワーク出力を制限します

391* 他の貢献者と同じように Claude の MR をレビューします

392 

393### パフォーマンスの最適化

394 

395* `CLAUDE.md` を焦点を絞った簡潔なものに保ちます

396* issue/MR の説明を明確にして、反復を減らします

397* 実行不可能な実行を避けるために、適切なジョブタイムアウトを構成します

398* ランナーで npm とパッケージのインストールをキャッシュします(可能な場合)

399 

400### CI コスト

401 

402GitLab CI/CD で Claude Code を使用する場合、関連するコストに注意してください。

403 

404* **GitLab Runner 時間**:

405 * Claude は GitLab ランナーで実行され、コンピュート分を消費します

406 * GitLab プランのランナー請求の詳細については、プランを参照してください

407 

408* **API コスト**:

409 * 各 Claude インタラクションは、プロンプトと応答サイズに基づいてトークンを消費します

410 * トークン使用量はタスクの複雑さとコードベースのサイズによって異なります

411 * 詳細については [Anthropic pricing](https://platform.claude.com/docs/ja/about-claude/pricing) を参照してください

412 

413* **コスト最適化のヒント**:

414 * 特定の `@claude` コマンドを使用して、不要なターンを減らします

415 * 適切な `max_turns` とジョブタイムアウト値を設定します

416 * 並列実行を制限して、並行実行を制御します

417 

418## セキュリティとガバナンス

419 

420* 各ジョブは、ネットワークアクセスが制限された分離されたコンテナで実行されます

421* Claude の変更は MR を通じてフローするため、レビュアーはすべての diff を確認できます

422* ブランチ保護と承認ルールが AI 生成コードに適用されます

423* Claude Code はワークスペーススコープの権限を使用して書き込みを制限します

424* 独自のプロバイダー認証情報を持ち込むため、コストは制御下に置かれます

425 

426## トラブルシューティング

427 

428### Claude が @claude コマンドに応答しない

429 

430* パイプラインがトリガーされていることを確認します(手動、MR イベント、またはメモイベントリスナー/webhook 経由)

431* CI/CD 変数(`ANTHROPIC_API_KEY` またはクラウドプロバイダー設定)が存在し、マスク解除されていることを確認します

432* コメントに `@claude`(`/claude` ではなく)が含まれており、メンショントリガーが構成されていることを確認します

433 

434### ジョブがコメントを書き込めない、または MR を開けない

435 

436* `CI_JOB_TOKEN` がプロジェクトに対して十分な権限を持っていることを確認するか、`api` スコープを持つ Project Access Token を使用します

437* `mcp__gitlab` ツールが `--allowedTools` で有効になっていることを確認します

438* ジョブが MR のコンテキストで実行されているか、`AI_FLOW_*` 変数経由で十分なコンテキストを持っていることを確認します

439 

440### 認証エラー

441 

442* **Claude API の場合**: `ANTHROPIC_API_KEY` が有効で期限切れでないことを確認します

443* **Bedrock/Vertex の場合**: OIDC/WIF 構成、ロール偽装、シークレット名を確認します。リージョンとモデルの可用性を確認します

444 

445## 高度な構成

446 

447### 一般的なパラメータと変数

448 

449Claude Code は以下の一般的に使用される入力をサポートしています。

450 

451* `prompt` / `prompt_file`: インライン(`-p`)またはファイル経由で指示を提供します

452* `max_turns`: バックアンドフォース反復の数を制限します

453* `timeout_minutes`: 総実行時間を制限します

454* `ANTHROPIC_API_KEY`: Claude API に必須(Bedrock/Vertex では使用されません)

455* プロバイダー固有の環境: `AWS_REGION`、Vertex のプロジェクト/リージョン変数

456 

457<Note>

458 正確なフラグとパラメータは `@anthropic-ai/claude-code` のバージョンによって異なる場合があります。ジョブで `claude --help` を実行して、サポートされているオプションを確認してください。

459</Note>

460 

461### Claude の動作をカスタマイズする

462 

463Claude をガイドするには、主に 2 つの方法があります。

464 

4651. **CLAUDE.md**: コーディング標準、セキュリティ要件、およびプロジェクト規約を定義します。Claude は実行中にこれを読み取り、ルールに従います。

4662. **カスタムプロンプト**: ジョブで `prompt`/`prompt_file` 経由してタスク固有の指示を渡します。異なるジョブに異なるプロンプトを使用します(例:レビュー、実装、リファクタリング)。

glossary.md +307 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 用語集

6 

7> Claude Code の用語の定義。agentic loop、compaction、CLAUDE.md、hooks、subagents、MCP などのコア概念の意味を学びます。

8 

9この用語集は Claude Code の用語を定義しています。各エントリは、その概念について詳しく説明されているページにリンクしています。トークン、temperature、RAG などのモデルレベルの概念については、[プラットフォーム用語集](https://platform.claude.com/docs/ja/about-claude/glossary)を参照してください。

10 

11## A

12 

13### Agent teams

14 

15複数の独立した Claude Code セッションがチームリーダーによって調整され、共有タスクリストとピアツーピアメッセージングを備えています。単一のセッション内で実行され、親にのみレポートする [subagents](#subagent) とは異なり、チームメイトはそれぞれ独自のコンテキストウィンドウを持ち、任意のメンバーと直接対話できます。Agent teams は実験的機能であり、`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` を設定して有効にする必要があります。

16 

17詳細情報: [Run agent teams](/ja/agent-teams)

18 

19### Agentic coding

20 

21AI がファイルを読み取り、コマンドを実行し、自律的に変更を加えることができるワークフロー。あなたが見守ったり、リダイレクトしたり、立ち去ったりできます。これは、テキストのみで応答するチャットベースのアシスタントとは異なり、自分で適用する必要があります。Claude Code は agentic です。なぜなら、アドバイスするだけでなく、行動できる [tools](#tool) を持っているからです。

22 

23詳細情報: [How Claude Code works](/ja/how-claude-code-works)

24 

25### Agentic harness

26 

27言語モデルを有能なコーディングエージェントに変える、ツール、コンテキスト管理、実行環境。Claude Code はハーネスです。Claude はその中のモデルです。ハーネスはファイルアクセス、シェル実行、権限ゲーティング、メモリロード、およびアクションをチェーンするループを提供します。

28 

29詳細情報: [How Claude Code works](/ja/how-claude-code-works)

30 

31### Agentic loop

32 

33Claude がすべてのタスクで実行するサイクル: コンテキストを収集し、アクションを実行し、結果を検証し、完了するまで繰り返します。各ツール使用は次のステップに情報を提供します。ループはいつでも中断してリダイレクトできます。[hooks](#hook)、[skills](#skill)、[MCP](#mcp-model-context-protocol) を含むほとんどの拡張ポイントは、このループの特定のフェーズにプラグインします。

34 

35詳細情報: [How Claude Code works](/ja/how-claude-code-works#the-agentic-loop)

36 

37### Auto memory

38 

39Claude が自分自身のために書いたメモ。あなたの修正と設定に基づいて、git リポジトリごとに `~/.claude/projects/` に保存されます。同じリポジトリのすべてのワークツリーは 1 つの auto memory ディレクトリを共有します。`MEMORY.md` インデックスの最初の 200 行または 25 KB がすべてのセッションの開始時にロードされます。Auto memory は、あなたが書く [CLAUDE.md](#claude-md) に対する Claude が書いた対応物です。

40 

41詳細情報: [Auto memory](/ja/memory#auto-memory)

42 

43### Auto mode

44 

45[permission mode](#permission-mode) の一種。承認プロンプトを表示する代わりに、別の分類器モデルがバックグラウンドで各アクションをレビューします。分類器はスコープエスカレーション、信頼されていないインフラストラクチャ、および [prompt injection](#prompt-injection) をブロックします。ツール結果を見ることはないため、注入された指示がその決定に影響を与えることはできません。Auto mode は Max、Team、Enterprise、API プランで利用可能な研究プレビューです。

46 

47詳細情報: [Eliminate prompts with auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode)

48 

49## B

50 

51### Bare mode

52 

53スタートアップフラグ `--bare`。hooks、skills、plugins、MCP servers、auto memory、CLAUDE.md の自動検出をスキップします。明示的に渡したフラグのみが有効になります。ローカル設定に関係なく、マシン間で同じ動作が必要な CI とスクリプト呼び出しに推奨されます。

54 

55詳細情報: [Start faster with bare mode](/ja/headless#start-faster-with-bare-mode)

56 

57### Bundled skills

58 

59Claude Code に含まれるプロンプトベースのプレイブック。`/batch`、`/simplify`、`/debug`、`/loop` など。固定ロジックを実行する組み込みコマンドとは異なり、bundled skills は Claude に詳細なプロンプトを与え、作業をオーケストレーションさせるため、エージェントを生成し、ファイルを読み取り、コードベースに適応できます。

60 

61詳細情報: [Bundled skills](/ja/skills#bundled-skills)

62 

63## C

64 

65### Channel

66 

67[MCP server](#mcp-model-context-protocol) の一種。実行中のセッションにイベントをプッシュして、Claude がターミナルから離れている間に発生することに反応できるようにします。チャネルは双方向にできます。Claude は受信イベントを読み取り、同じチャネルを通じて返信します。Telegram、Discord、iMessage は研究プレビューに含まれています。

68 

69詳細情報: [Channels](/ja/channels)

70 

71### Checkpoint

72 

73Claude が各編集を行う前にキャプチャされたコードの自動スナップショット。`Esc` を 2 回押すか `/rewind` を実行して、コード、会話、またはその両方を以前のポイントに復元します。チェックポイントはセッションに対してローカルであり、git とは別であり、Bash ツールを通じて行われた変更は追跡しません。

74 

75詳細情報: [Checkpointing](/ja/checkpointing)

76 

77### `.claude` directory

78 

79Claude Code がプロジェクトスコープの設定を読み取るディレクトリ: 設定、hooks、skills、subagents、rules、auto memory。プロジェクトはそのルートに `.claude/` を持ちます。ユーザーレベルのデフォルトは `~/.claude/` にあります。

80 

81詳細情報: [The `.claude` directory](/ja/claude-directory)

82 

83### CLAUDE.md

84 

85Claude のために書く永続的な指示のマークダウンファイル。システムプロンプトの後、ユーザーメッセージとしてすべてのセッションの開始時にロードされます。プロジェクト規約、アーキテクチャノート、「常に X を行う」ルールをここに配置します。CLAUDE.md は [compaction](#compaction) を生き残り、その後ディスクから新しく再読み込みされます。

86 

87CLAUDE.md は `./CLAUDE.md` または `./.claude/CLAUDE.md` のプロジェクトスコープに、`~/.claude/CLAUDE.md` のユーザースコープに、または組織の [managed policy](#managed-settings) として配置できます。より具体的な場所が優先されます。

88 

89詳細情報: [CLAUDE.md files](/ja/memory#claude-md-files)

90 

91### Command

92 

93プロンプトに `/name` と入力して呼び出す再利用可能な指示。`/clear`、`/model`、`/compact` などの組み込みコマンドはセッションを制御します。`.claude/commands/` のファイルとして独自のコマンドを定義するか、[plugin](#plugin) からインストールできます。[Skills](#skill) は複数ステップのコマンドをパッケージ化するための推奨される方法です。

94 

95詳細情報: [Commands](/ja/commands) · [Skills](/ja/skills)

96 

97### Compaction

98 

99[context window](#context-window) がその制限に近づくときの会話の自動要約。古いツール出力が最初にクリアされ、次に会話が要約されます。プロジェクトルート CLAUDE.md と auto memory は compaction を生き残り、ディスクから再ロードされます。会話でのみ与えられた指示は失われる可能性があります。`/compact` を手動でトリガーするか、オプションで `/compact focus on the API changes` のようなフォーカスを指定します。

100 

101詳細情報: [What survives compaction](/ja/context-window#what-survives-compaction) · [When context fills up](/ja/how-claude-code-works#when-context-fills-up)

102 

103### Context window

104 

105セッションの作業メモリ。会話履歴、ファイルコンテンツ、コマンド出力、CLAUDE.md、auto memory、ロードされたスキル、システム指示を保持します。作業を進めるにつれて、コンテキストが満杯になるまで [compaction](#compaction) がそれを要約します。`/context` を実行して、スペースを使用しているものを確認します。基礎となるモデル概念については、[プラットフォーム用語集](https://platform.claude.com/docs/ja/about-claude/glossary#context-window)を参照してください。

106 

107詳細情報: [Explore the context window](/ja/context-window)

108 

109## D

110 

111### Dispatch

112 

113電話で開始されたタスクルーター。Claude モバイルアプリからコーディングタスクを送信すると、Desktop アプリで Claude Code セッションを生成します。プロンプトは自動的に正しいツールにルーティングされます。Pro および Max プランで利用可能です。

114 

115詳細情報: [Sessions from Dispatch](/ja/desktop#sessions-from-dispatch)

116 

117## E

118 

119### Effort level

120 

121各ターンで Claude が適応的推論思考予算をどの程度使用するかを制御する設定。より高い努力は、より多くの思考トークンとより深い推論を意味します。より低い努力はより速く、より安価です。Effort は Opus 4.7、Opus 4.6、Sonnet 4.6 でサポートされています。

122 

123詳細情報: [Adjust effort level](/ja/model-config#adjust-effort-level)

124 

125### Extended thinking

126 

127モデルが応答する前に実行する可視的なステップバイステップの推論。`MAX_THINKING_TOKENS` で思考トークンをキャップするか、[effort level](#effort-level) を調整できます。思考はターミナルのグレーイタリックテキストで表示されます。

128 

129詳細情報: [Use extended thinking](/ja/common-workflows#use-extended-thinking-thinking-mode)

130 

131## H

132 

133### Hook

134 

135Claude Code のライフサイクルの特定のポイント(ツール実行前、ファイル編集後、セッション開始時など)で自動的に実行されるユーザー定義ハンドラー。ハンドラーはシェルコマンド、HTTP エンドポイント、MCP ツール、LLM プロンプト、または subagent にできます。Hooks は決定論的です。モデルの裁量ではなく、固定ライフサイクルポイントで発火します。

136 

137フック設定には 3 つのレベルがあります:

138 

139* **Hook event**: ライフサイクルポイント

140* **Matcher**: どのイベントがそれを発火させるかをフィルタリング

141* **Hook handler**: 実行内容

142 

143詳細情報: [Get started with hooks](/ja/hooks-guide) · [Hooks reference](/ja/hooks)

144 

145## M

146 

147### Managed settings

148 

149IT または DevOps によって組織全体で実施される設定ファイル。`~/.claude` の外の OS レベルパスに配置されます。ユーザーは managed settings をオーバーライドまたは除外することはできません。セキュリティポリシー、コンプライアンス要件、またはフロート全体の標準化されたツールに使用します。

150 

151詳細情報: [Server-managed settings](/ja/server-managed-settings)

152 

153### MCP (Model Context Protocol)

154 

155AI ツールを外部データソースとサービスに接続するためのオープン標準。MCP servers は Claude に Slack、Jira、データベース、ブラウザ、および数百の他の統合用の新しいツールを提供します。`/mcp` を使用するか、`.mcp.json` に追加してサーバーを接続します。プロトコル自体については、[プラットフォーム用語集](https://platform.claude.com/docs/ja/about-claude/glossary#mcp-model-context-protocol)を参照してください。

156 

157詳細情報: [Model Context Protocol](/ja/mcp)

158 

159### MCP Tool Search

160 

161コンテキスト節約メカニズム。MCP ツールスキーマを必要になるまで遅延させます。スタートアップ時にはツール名のみがロードされます。Claude は特定のツールを使用することを決定したときにオンデマンドで完全なスキーマを取得します。これにより、アイドル MCP servers がコンテキストをあまり消費しないようにします。

162 

163詳細情報: [Scale with MCP Tool Search](/ja/mcp#scale-with-mcp-tool-search)

164 

165## N

166 

167### Non-interactive mode

168 

169単一のプロンプトを実行して会話セッションなしで終了するモード。`-p` または `--print` で呼び出されます。CI、スクリプト、パイピングに使用されます。[Agent SDK](/ja/agent-sdk/overview) は Python および TypeScript の同等物です。以前は headless mode と呼ばれていました。

170 

171詳細情報: [Run Claude Code programmatically](/ja/headless)

172 

173## O

174 

175### Output style

176 

177Claude のシステムプロンプトを変更して応答動作、トーン、または形式を変更する設定。Output styles は、システムプロンプトの後に配信される [CLAUDE.md](#claude-md) とは異なり、デフォルトシステムプロンプトのソフトウェアエンジニアリング固有の部分をオフにします。組み込みスタイルには Default、Explanatory、Learning が含まれます。

178 

179詳細情報: [Output styles](/ja/output-styles)

180 

181## P

182 

183### Permission mode

184 

185セッションのベースライン承認動作。CLI で `Shift+Tab` でサイクルするか、VS Code、Desktop、claude.ai のモードセレクターを使用します。利用可能なモードは `default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions` です。

186 

187詳細情報: [Choose a permission mode](/ja/permission-modes)

188 

189### Permission rule

190 

191ツール名と引数パターンに基づいてツール呼び出しを許可、質問、または拒否する設定エントリ。ルールは deny→ask→allow で評価され、最初にマッチしたものが優先されます。Permission rules は、より広い [permission mode](#permission-mode) の上に層状化された細粒度制御です。

192 

193詳細情報: [Configure permissions](/ja/permissions)

194 

195### Plan mode

196 

197[permission mode](#permission-mode) の一種。Claude はソースファイルを編集せずに変更を研究および提案します。読み取り、検索、探索コマンドを実行でき、その後、何かに触れる前に承認用の計画を提示します。`/plan` を入力するか、`Shift+Tab` を押して plan mode に入ります。

198 

199詳細情報: [Analyze before you edit with plan mode](/ja/permission-modes#analyze-before-you-edit-with-plan-mode)

200 

201### Plugin

202 

203skills、hooks、subagents、MCP servers のバンドル。単一のインストール可能なユニットとしてパッケージ化されます。Plugin skills は `plugin-name:skill-name` として名前空間化されるため、複数のプラグインが共存できます。[marketplace](/ja/plugin-marketplaces) を通じてチーム全体にプラグインを配布します。

204 

205詳細情報: [Plugins](/ja/plugins)

206 

207### Project trust

208 

209ディレクトリを受け入れる 1 回限りのダイアログ。Claude Code がその設定をロードする前に。Trust は marketplace プラグインの自動インストールとプロジェクト定義フックの実行をゲートします。ディレクトリを信頼することは、その `.claude/settings.json`、`.mcp.json`、および他の設定ファイルが有効になることを意味します。

210 

211詳細情報: [The `.claude` directory](/ja/claude-directory)

212 

213### Prompt injection

214 

215ファイル、ウェブページ、またはツール結果に埋め込まれた敵対的な指示。Claude を、あなたが決して求めなかったアクションにリダイレクトしようとします。Claude Code の防御には、権限システム、コマンドブロックリスト、信頼検証が含まれます。[Auto mode](#auto-mode) は、ツール結果の疑わしいコンテンツをスキャンするサーバー側プローブと、ツール結果を見ない分類器を追加します。そのため、注入されたテキストが承認決定に影響を与えることはできません。

216 

217詳細情報: [Protect against prompt injection](/ja/security#protect-against-prompt-injection)

218 

219## R

220 

221### Remote Control

222 

223ローカル Claude Code セッションを電話またはブラウザから claude.ai 経由で続行する方法。コードはマシンに留まります。UI のみがリモートです。クラウドサンドボックスで実行される web 上の Claude Code とは異なります。

224 

225詳細情報: [Remote Control](/ja/remote-control)

226 

227### Rules

228 

229`.claude/rules/` のモジュール化された指示ファイル。CLAUDE.md と一緒にロードされます。ルールは YAML `paths:` frontmatter でパススコープできるため、Claude が一致するファイルを読み取るときのみロードされ、関連になるまでコンテキストを精力的に保ちます。

230 

231詳細情報: [Organize rules with `.claude/rules/`](/ja/memory#organize-rules-with-claude/rules/)

232 

233## S

234 

235### Sandboxing

236 

237Bash ツールの OS レベルのファイルシステムおよびネットワーク分離。コマンドは事前に定義した境界内で実行されるため、Claude はコマンドごとの承認プロンプトなしで自由に作業できます。Sandboxing は [permission rules](#permission-rule) とは別のレイヤーです。

238 

239詳細情報: [Sandboxing](/ja/sandboxing)

240 

241### Session

242 

243現在のディレクトリに関連付けられた会話。独自の独立した [context window](#context-window) を持ちます。セッションは `claude -c` で再開でき、`--fork-session` でフォークして履歴を新しいセッション ID の下に保存でき、またはターミナル全体で並列実行できます。`/clear` を実行すると新しいセッションが開始されます。前のセッションは保存されたままで、`/resume` を通じて利用可能です。各セッションのトランスクリプトは `~/.claude/projects/` に保存されます。

244 

245詳細情報: [Work with sessions](/ja/how-claude-code-works#work-with-sessions)

246 

247### Settings layers

248 

249Claude Code が設定を読み取る階層。優先順位の高い順から低い順: [managed policy](#managed-settings)、コマンドライン引数、`.claude/settings.local.json` のローカル設定、`.claude/settings.json` のプロジェクト設定、`~/.claude/settings.json` のユーザー設定。配列はレイヤー全体でマージされます。スカラーは高いレイヤーで低いレイヤーをオーバーライドします。

250 

251詳細情報: [Settings files](/ja/settings#settings-files)

252 

253### Skill

254 

255指示、知識、またはワークフローを含む `SKILL.md` ファイル。Claude はそれをツールキットに追加します。Claude は関連する場合に自動的にスキルをロードするか、`/skill-name` で直接呼び出します。Skills は Agent Skills オープン標準に従います。Claude Code はそれを呼び出し制御と subagent 実行で拡張します。

256 

257Skills は custom commands の推奨される後継者です。`.claude/commands/deploy.md` のファイルと `.claude/skills/deploy/SKILL.md` のファイルの両方が `/deploy` を作成し、同じように機能します。既存のコマンドファイルは引き続き機能します。

258 

259詳細情報: [Extend Claude with skills](/ja/skills)

260 

261### Subagent

262 

263独自のコンテキストウィンドウ、カスタムシステムプロンプト、特定のツールアクセス、独立した権限で実行される特化した AI アシスタント。委任されたタスクで機能し、メイン会話に要約を返します。大規模な探索をプライマリコンテキストから除外するか、並列研究を実行するために subagents を使用します。各エージェントが直接対話できる完全な独立したセッションである [agent teams](#agent-teams) とは異なります。

264 

265組み込み subagents には Explore、Plan、汎用があります。

266 

267詳細情報: [Create custom subagents](/ja/sub-agents)

268 

269### Surface

270 

271Claude Code にアクセスする任意の場所: CLI、VS Code、JetBrains、Desktop、または claude.ai。すべてのサーフェスは同じエンジンを共有するため、CLAUDE.md、設定、スキルはすべてのサーフェスで同じように機能します。Slack と Chrome 拡張機能は、サーフェス自体ではなくサーフェスに接続する統合です。

272 

273詳細情報: [Platforms and integrations](/ja/platforms)

274 

275## T

276 

277### Teleport

278 

279コマンド `/teleport`。クラウド Claude Code セッションをローカルターミナルにプルします。Claude はブランチをフェッチし、会話履歴をロードし、web セッションの最後の状態から再開します。逆方向は `--remote` です。ローカルタスクを web で実行するために送信します。

280 

281詳細情報: [From web to terminal](/ja/claude-code-on-the-web#from-web-to-terminal)

282 

283### Tool

284 

285Claude が実行できるアクション: ファイルを読み取る、コードを編集する、シェルコマンドを実行する、web を検索する、subagent を生成する。Tools は Claude Code を agentic にするものです。それらなしでは、Claude はテキストのみで応答できます。各ツール使用は、[agentic loop](#agentic-loop) での Claude の次の決定に情報を提供する結果を返します。

286 

287詳細情報: [Tools available to Claude](/ja/tools-reference)

288 

289## W

290 

291### Worktree isolation

292 

293Claude を `.claude/worktrees/` の別の git worktree で実行する分離モード。`-w` フラグまたは subagent 設定の `isolation: worktree` で有効にされます。変更は別のブランチの別のディレクトリに留まるため、並列エージェントはお互いのファイルを上書きしません。

294 

295詳細情報: [Run parallel sessions with git worktrees](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)

296 

297***

298 

299## 非推奨および名前変更された用語

300 

301これらの用語は古いドキュメント、ブログ投稿、コミュニティコンテンツに表示されます。このサイトを検索するときは現在の名前を使用してください。

302 

303| 古い用語 | 現在の呼び方 | 注記 |

304| --------------- | --------------------------------------------- | ------------------------------- |

305| Headless mode | [Non-interactive mode](#non-interactive-mode) | 同じ `-p` フラグ、同じ動作 |

306| Custom commands | [Skills](#skill) | `.claude/commands/` ファイルは引き続き機能 |

307| Slash commands | Commands | 製品コピーから「Slash」を削除 |

google-vertex-ai.md +387 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Google Vertex AI 上の Claude Code

6 

7> Google Vertex AI を通じた Claude Code の設定方法について学びます。セットアップ、IAM 設定、トラブルシューティングを含みます。

8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79export const Experiment = ({flag, treatment, children}) => {

80 const VID_KEY = 'exp_vid';

81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

82 const fnv1a = s => {

83 let h = 0x811c9dc5;

84 for (let i = 0; i < s.length; i++) {

85 h ^= s.charCodeAt(i);

86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

87 }

88 return h >>> 0;

89 };

90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

91 const [decision] = useState(() => {

92 const params = new URLSearchParams(location.search);

93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

94 const force = params.get('gb-force');

95 if (force) {

96 for (const p of force.split(',')) {

97 const [k, v] = p.split(':');

98 if (k === flag) return {

99 variant: v || 'treatment',

100 track: false

101 };

102 }

103 }

104 if (navigator.globalPrivacyControl) {

105 return {

106 variant: 'control',

107 track: false

108 };

109 }

110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

111 if (prefsMatch) {

112 try {

113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

114 return {

115 variant: 'control',

116 track: false

117 };

118 }

119 } catch {

120 return {

121 variant: 'control',

122 track: false

123 };

124 }

125 } else {

126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

127 if (!country || CONSENT_COUNTRIES.has(country)) {

128 return {

129 variant: 'control',

130 track: false

131 };

132 }

133 }

134 let vid;

135 try {

136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

137 if (ajsMatch) {

138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

139 } else {

140 vid = localStorage.getItem(VID_KEY);

141 if (!vid) {

142 vid = crypto.randomUUID();

143 }

144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

145 }

146 try {

147 localStorage.setItem(VID_KEY, vid);

148 } catch {}

149 } catch {

150 return {

151 variant: 'control',

152 track: false

153 };

154 }

155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

156 return {

157 variant,

158 track: true,

159 vid

160 };

161 });

162 useEffect(() => {

163 if (!decision.track) return;

164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

165 method: 'POST',

166 headers: {

167 'Content-Type': 'application/json',

168 'x-service-name': 'claude_code_docs'

169 },

170 body: JSON.stringify({

171 events: [{

172 event_type: 'GrowthbookExperimentEvent',

173 event_data: {

174 device_id: decision.vid,

175 anonymous_id: decision.vid,

176 timestamp: new Date().toISOString(),

177 experiment_id: flag,

178 variation_id: decision.variant === 'treatment' ? 1 : 0,

179 environment: 'production'

180 }

181 }]

182 }),

183 keepalive: true

184 }).catch(() => {});

185 }, []);

186 return decision.variant === 'treatment' ? treatment : children;

187};

188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="vertex" />} />

190 

191## 前提条件

192 

193Claude Code を Vertex AI で設定する前に、以下を確認してください。

194 

195* 請求が有効になっている Google Cloud Platform(GCP)アカウント

196* Vertex AI API が有効になっている GCP プロジェクト

197* 目的の Claude モデルへのアクセス(例:Claude Sonnet 4.6)

198* Google Cloud SDK(`gcloud`)がインストールされ、設定されていること

199* 目的の GCP リージョンに割り当てられたクォータ

200 

201Vertex AI 認証情報で サインインするには、以下の[Vertex AI でサインイン](#sign-in-with-vertex-ai)に従ってください。チーム全体に Claude Code をデプロイするには、[手動セットアップ](#set-up-manually)の手順を使用し、ロールアウト前に[モデルバージョンをピン留めして](#5-pin-model-versions)ください。

202 

203## Vertex AI でサインイン

204 

205Google Cloud 認証情報を持っていて、Vertex AI を通じて Claude Code の使用を開始したい場合、ログインウィザードがそれをガイドします。GCP 側の前提条件はプロジェクトごとに 1 回完了します。ウィザードが Claude Code 側を処理します。

206 

207<Note>

208 Vertex AI セットアップウィザードには Claude Code v2.1.98 以降が必要です。`claude --version` を実行して確認してください。

209</Note>

210 

211<Steps>

212 <Step title="GCP プロジェクトで Claude モデルを有効にする">

213 プロジェクトの[Vertex AI API を有効にして](#1-enable-vertex-ai-api)、[Vertex AI Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)で必要な Claude モデルへのアクセスをリクエストしてください。アカウントに必要な権限については、[IAM 設定](#iam-configuration)を参照してください。

214 </Step>

215 

216 <Step title="Claude Code を起動して Vertex AI を選択する">

217 `claude` を実行します。ログインプロンプトで、**3rd-party platform**、次に **Google Vertex AI** を選択します。

218 </Step>

219 

220 <Step title="ウィザードプロンプトに従う">

221 Google Cloud への認証方法を選択します。`gcloud` からの Application Default Credentials、サービスアカウントキーファイル、または環境内に既にある認証情報です。ウィザードはプロジェクトとリージョンを検出し、プロジェクトが呼び出せる Claude モデルを確認し、それらをピン留めできます。結果は[ユーザー設定ファイル](/ja/settings)の `env` ブロックに保存されるため、環境変数を自分でエクスポートする必要はありません。

222 </Step>

223</Steps>

224 

225サインイン後、いつでも `/setup-vertex` を実行してウィザードを再度開き、認証情報、プロジェクト、リージョン、またはモデルピンを変更できます。

226 

227## リージョン設定

228 

229Claude Code は Vertex AI の[グローバル](https://cloud.google.com/blog/products/ai-machine-learning/global-endpoint-for-claude-models-generally-available-on-vertex-ai)、マルチリージョン、および地域別エンドポイントをサポートしています。`CLOUD_ML_REGION` を `global`、`eu` または `us` などのマルチリージョンロケーション、または `us-east5` などの特定のリージョンに設定します。Claude Code は各フォームの正しい Vertex AI ホスト名を選択します。これには、マルチリージョンロケーション用の `aiplatform.eu.rep.googleapis.com` および `aiplatform.us.rep.googleapis.com` ホストが含まれます。

230 

231<Note>

232 Vertex AI は、すべてのエンドポイントタイプで Claude Code デフォルトモデルをサポートしていない場合があります。モデルの可用性は、[特定のリージョン](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations#genai-partner-models)、マルチリージョンロケーション、および[グローバルエンドポイント](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#supported_models)によって異なります。サポートされているロケーションに切り替えるか、サポートされているモデルを指定する必要がある場合があります。

233</Note>

234 

235## 手動でセットアップする

236 

237ウィザードの代わりに環境変数を通じて Vertex AI を設定するには、例えば CI またはスクリプト化されたエンタープライズロールアウトで、以下の手順に従ってください。

238 

239### 1. Vertex AI API を有効にする

240 

241GCP プロジェクトで Vertex AI API を有効にします。

242 

243```bash theme={null}

244# プロジェクト ID を設定

245gcloud config set project YOUR-PROJECT-ID

246 

247# Vertex AI API を有効にする

248gcloud services enable aiplatform.googleapis.com

249```

250 

251### 2. モデルアクセスをリクエストする

252 

253Vertex AI で Claude モデルへのアクセスをリクエストします。

254 

2551. [Vertex AI Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)に移動します

2562. 「Claude」モデルを検索します

2573. 目的の Claude モデルへのアクセスをリクエストします(例:Claude Sonnet 4.6)

2584. 承認を待ちます(24 ~ 48 時間かかる場合があります)

259 

260### 3. GCP 認証情報を設定する

261 

262Claude Code は標準的な Google Cloud 認証を使用します。

263 

264詳細については、[Google Cloud 認証ドキュメント](https://cloud.google.com/docs/authentication)を参照してください。

265 

266Claude Code v2.1.121 以降は、同じ Application Default Credentials チェーンを通じて [X.509 証明書ベースのワークロード ID フェデレーション](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates)をサポートしています。`GOOGLE_APPLICATION_CREDENTIALS` を認証情報設定ファイルのパスに設定します。

267 

268<Note>

269 認証時に、Claude Code は `ANTHROPIC_VERTEX_PROJECT_ID` 環境変数からプロジェクト ID を自動的に使用します。これをオーバーライドするには、次の環境変数のいずれかを設定します。`GCLOUD_PROJECT`、`GOOGLE_CLOUD_PROJECT`、または `GOOGLE_APPLICATION_CREDENTIALS`。

270</Note>

271 

272### 4. Claude Code を設定する

273 

274次の環境変数を設定します。

275 

276```bash theme={null}

277# Vertex AI 統合を有効にする

278export CLAUDE_CODE_USE_VERTEX=1

279export CLOUD_ML_REGION=global

280export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-ID

281 

282# オプション:カスタムエンドポイントまたはゲートウェイ用に Vertex エンドポイント URL をオーバーライドする

283# export ANTHROPIC_VERTEX_BASE_URL=https://aiplatform.googleapis.com

284 

285# オプション:必要に応じてプロンプトキャッシングを無効にする

286export DISABLE_PROMPT_CACHING=1

287 

288# オプション:デフォルトの 5 分ではなく 1 時間のプロンプトキャッシュ TTL をリクエストする

289export ENABLE_PROMPT_CACHING_1H=1

290 

291# CLOUD_ML_REGION=global の場合、グローバルエンドポイントをサポートしていないモデルのリージョンをオーバーライドする

292export VERTEX_REGION_CLAUDE_HAIKU_4_5=us-east5

293export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1

294```

295 

296ほとんどのモデルバージョンには、対応する `VERTEX_REGION_CLAUDE_*` 変数があります。完全なリストについては、[環境変数リファレンス](/ja/env-vars)を参照してください。どのモデルがグローバルエンドポイントをサポートしているか、または地域別のみをサポートしているかを確認するには、[Vertex Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)を確認してください。

297 

298[prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)は自動的に有効になります。これを無効にするには、`DISABLE_PROMPT_CACHING=1` を設定します。デフォルトの 5 分ではなく 1 時間のキャッシュ TTL をリクエストするには、`ENABLE_PROMPT_CACHING_1H=1` を設定します。1 時間の TTL でのキャッシュ書き込みはより高いレートで課金されます。レート制限を高くするには、Google Cloud サポートに連絡してください。Vertex AI を使用する場合、Google Cloud 認証情報を通じて認証が処理されるため、`/login` および `/logout` コマンドは無効になります。

299 

300[MCP tool search](/ja/mcp#scale-with-mcp-tool-search)は、エンドポイントが必要なベータヘッダーを受け入れないため、Vertex AI ではデフォルトで無効になっています。すべての MCP ツール定義は代わりに事前にロードされます。オプトインするには、`ENABLE_TOOL_SEARCH=true` を設定します。

301 

302### 5. モデルバージョンをピン留めする

303 

304<Warning>

305 複数のユーザーにデプロイする場合は、特定のモデルバージョンをピン留めしてください。ピン留めなしでは、`sonnet` および `opus` などのモデルエイリアスは最新バージョンに解決されます。これは、Anthropic がアップデートをリリースしたときに Vertex AI プロジェクトでまだ有効になっていない可能性があります。Claude Code は、最新が利用できない場合、起動時に[前のバージョンにフォールバック](#startup-model-checks)しますが、ピン留めすることで、ユーザーが新しいモデルに移行するタイミングを制御できます。

306</Warning>

307 

308これらの環境変数を特定の Vertex AI モデル ID に設定します。

309 

310`ANTHROPIC_DEFAULT_OPUS_MODEL` がない場合、Vertex 上の `opus` エイリアスは Opus 4.6 に解決されます。最新モデルを使用するには、Opus 4.7 ID に設定します。

311 

312```bash theme={null}

313export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7'

314export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'

315export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'

316```

317 

318現在および従来のモデル ID については、[モデル概要](https://platform.claude.com/docs/en/about-claude/models/overview)を参照してください。環境変数の完全なリストについては、[モデル設定](/ja/model-config#pin-models-for-third-party-deployments)を参照してください。

319 

320Claude Code は、ピン留め変数が設定されていない場合、これらのデフォルトモデルを使用します。

321 

322| モデルタイプ | デフォルト値 |

323| :------- | :--------------------------- |

324| プライマリモデル | `claude-sonnet-4-5@20250929` |

325| 小型/高速モデル | `claude-haiku-4-5@20251001` |

326 

327モデルをさらにカスタマイズするには、以下を実行します。

328 

329```bash theme={null}

330export ANTHROPIC_MODEL='claude-opus-4-7'

331export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'

332```

333 

334## 起動時のモデルチェック

335 

336Claude Code が Vertex AI で設定されて起動すると、使用するモデルがプロジェクトでアクセス可能であることを確認します。このチェックには Claude Code v2.1.98 以降が必要です。

337 

338Claude Code デフォルトより古いモデルバージョンをピン留めしていて、プロジェクトが新しいバージョンを呼び出せる場合、Claude Code はピンを更新するよう促します。受け入れると、新しいモデル ID が[ユーザー設定ファイル](/ja/settings)に書き込まれ、Claude Code が再起動されます。拒否すると、次のデフォルトバージョン変更まで記憶されます。

339 

340モデルをピン留めしていなくて、現在のデフォルトがプロジェクトで利用できない場合、Claude Code は現在のセッション用に前のバージョンにフォールバックし、通知を表示します。フォールバックは永続化されません。[Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)で新しいモデルを有効にするか、[バージョンをピン留めして](#5-pin-model-versions)選択を永続化してください。

341 

342## IAM 設定

343 

344必要な IAM 権限を割り当てます。

345 

346`roles/aiplatform.user` ロールには、必要な権限が含まれています。

347 

348* `aiplatform.endpoints.predict` - モデル呼び出しとトークンカウントに必要

349 

350より制限的な権限については、上記の権限のみを持つカスタムロールを作成してください。

351 

352詳細については、[Vertex IAM ドキュメント](https://cloud.google.com/vertex-ai/docs/general/access-control)を参照してください。

353 

354<Note>

355 Claude Code 用に専用の GCP プロジェクトを作成して、コスト追跡とアクセス制御を簡素化してください。

356</Note>

357 

358## 100 万トークンコンテキストウィンドウ

359 

360Claude Opus 4.7、Opus 4.6、および Sonnet 4.6 は、Vertex AI で[100 万トークンコンテキストウィンドウ](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window)をサポートしています。Claude Code は、100 万トークンモデルバリアントを選択すると、拡張コンテキストウィンドウを自動的に有効にします。

361 

362[セットアップウィザード](#sign-in-with-vertex-ai)は、モデルをピン留めするときに 100 万トークンコンテキストオプションを提供します。手動でピン留めされたモデルの代わりに有効にするには、モデル ID に `[1m]` を追加します。詳細については、[サードパーティデプロイメント用のモデルをピン留めする](/ja/model-config#pin-models-for-third-party-deployments)を参照してください。

363 

364## トラブルシューティング

365 

366クォータの問題が発生した場合:

367 

368* [Cloud Console](https://cloud.google.com/docs/quotas/view-manage)を通じて現在のクォータを確認するか、クォータ増加をリクエストしてください

369 

370「モデルが見つかりません」404 エラーが発生した場合:

371 

372* [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)でモデルが有効になっていることを確認してください

373* 指定したロケーションでモデルが利用可能であることを確認してください。一部のモデルは `global` またはマルチリージョンロケーション(`eu` および `us` など)でのみ提供され、特定のリージョンでは提供されていません

374* `CLOUD_ML_REGION=global` を使用している場合、[Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)の「サポートされている機能」でモデルがグローバルエンドポイントをサポートしていることを確認してください。グローバルエンドポイントをサポートしていないモデルの場合は、以下のいずれかを実行してください。

375 * `ANTHROPIC_MODEL` または `ANTHROPIC_DEFAULT_HAIKU_MODEL` を通じてサポートされているモデルを指定するか、

376 * `VERTEX_REGION_<MODEL_NAME>` 環境変数を使用してリージョンまたはマルチリージョンロケーションを設定してください

377 

378429 エラーが発生した場合:

379 

380* 地域別エンドポイントの場合、プライマリモデルと小型/高速モデルが選択したリージョンでサポートされていることを確認してください

381* より良い可用性のために `CLOUD_ML_REGION=global` に切り替えることを検討してください

382 

383## 追加リソース

384 

385* [Vertex AI ドキュメント](https://cloud.google.com/vertex-ai/docs)

386* [Vertex AI 価格](https://cloud.google.com/vertex-ai/pricing)

387* [Vertex AI クォータと制限](https://cloud.google.com/vertex-ai/docs/quotas)

headless.md +225 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code をプログラムで実行する

6 

7> Agent SDK を使用して、CLI、Python、または TypeScript からプログラムで Claude Code を実行します。

8 

9[Agent SDK](/ja/agent-sdk/overview) は、Claude Code を支える同じツール、エージェントループ、およびコンテキスト管理を提供します。スクリプトと CI/CD 用の CLI として、または完全なプログラムによる制御のための [Python](/ja/agent-sdk/python) および [TypeScript](/ja/agent-sdk/typescript) パッケージとして利用できます。

10 

11<Note>

12 CLI は以前「headless mode」と呼ばれていました。`-p` フラグとすべての CLI オプションは同じように機能します。

13</Note>

14 

15CLI からプログラムで Claude Code を実行するには、プロンプトと任意の [CLI オプション](/ja/cli-reference) を指定して `-p` を渡します。

16 

17```bash theme={null}

18claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"

19```

20 

21このページでは、CLI(`claude -p`)経由で Agent SDK を使用することについて説明しています。構造化された出力、ツール承認コールバック、およびネイティブメッセージオブジェクトを備えた Python および TypeScript SDK パッケージについては、[完全な Agent SDK ドキュメント](/ja/agent-sdk/overview) を参照してください。

22 

23## 基本的な使用方法

24 

25任意の `claude` コマンドに `-p`(または `--print`)フラグを追加して、非対話的に実行します。すべての [CLI オプション](/ja/cli-reference) は `-p` で機能します。以下を含みます。

26 

27* `--continue` は [会話を続ける](#continue-conversations) 場合

28* `--allowedTools` は [ツールを自動承認する](#auto-approve-tools) 場合

29* `--output-format` は [構造化された出力を取得する](#get-structured-output) 場合

30 

31この例は、コードベースについて Claude に質問し、応答を出力します。

32 

33```bash theme={null}

34claude -p "What does the auth module do?"

35```

36 

37### ベアモードでより高速に開始する

38 

39`--bare` を追加して、hooks、skills、plugins、MCP サーバー、auto memory、および CLAUDE.md の自動検出をスキップすることで、起動時間を短縮します。これがない場合、`claude -p` は対話型セッションと同じ [コンテキスト](/ja/how-claude-code-works#the-context-window) を読み込みます。これには、作業ディレクトリまたは `~/.claude` で設定されたすべてのものが含まれます。

40 

41ベアモードは、すべてのマシンで同じ結果が必要な CI とスクリプトに役立ちます。チームメイトの `~/.claude` のフック、またはプロジェクトの `.mcp.json` の MCP サーバーは実行されません。ベアモードはそれらを読み込まないためです。明示的に渡すフラグのみが有効になります。

42 

43この例は、ベアモードで 1 回限りの要約タスクを実行し、Read ツールを事前承認して、呼び出しが許可プロンプトなしで完了するようにします。

44 

45```bash theme={null}

46claude --bare -p "Summarize this file" --allowedTools "Read"

47```

48 

49ベアモードでは、Claude は Bash、ファイル読み取り、およびファイル編集ツールにアクセスできます。フラグを使用して必要なコンテキストを渡します。

50 

51| 読み込むもの | 使用するもの |

52| ----------- | ------------------------------------------------------ |

53| システムプロンプト追加 | `--append-system-prompt`、`--append-system-prompt-file` |

54| 設定 | `--settings <file-or-json>` |

55| MCP サーバー | `--mcp-config <file-or-json>` |

56| カスタムエージェント | `--agents <json>` |

57| プラグインディレクトリ | `--plugin-dir <path>` |

58 

59ベアモードは OAuth とキーチェーン読み取りをスキップします。Anthropic 認証は `ANTHROPIC_API_KEY` または `--settings` に渡される JSON の `apiKeyHelper` から取得する必要があります。Bedrock、Vertex、および Foundry は通常のプロバイダー認証情報を使用します。

60 

61<Note>

62 `--bare` はスクリプトおよび SDK 呼び出しの推奨モードであり、将来のリリースで `-p` のデフォルトになります。

63</Note>

64 

65## 例

66 

67これらの例は、一般的な CLI パターンを強調しています。CI およびその他のスクリプト呼び出しの場合は、[`--bare`](#start-faster-with-bare-mode) を追加して、ローカルで設定されているものを取得しないようにします。

68 

69### 構造化された出力を取得する

70 

71`--output-format` を使用して、応答がどのように返されるかを制御します。

72 

73* `text`(デフォルト):プレーンテキスト出力

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

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

76 

77この例は、セッションメタデータを含む JSON としてプロジェクト概要を返し、テキスト結果は `result` フィールドに含まれます。

78 

79```bash theme={null}

80claude -p "Summarize this project" --output-format json

81```

82 

83特定のスキーマに準拠した出力を取得するには、`--output-format json` を `--json-schema` および [JSON Schema](https://json-schema.org/) 定義と共に使用します。応答には、リクエストに関するメタデータ(セッション ID、使用状況など)が含まれ、構造化された出力は `structured_output` フィールドに含まれます。

84 

85この例は、auth.py から関数名を抽出し、文字列の配列として返します。

86 

87```bash theme={null}

88claude -p "Extract the main function names from auth.py" \

89 --output-format json \

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

91```

92 

93<Tip>

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

95 

96 ```bash theme={null}

97 # テキスト結果を抽出

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

99 

100 # 構造化された出力を抽出

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

102 --output-format json \

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

104 | jq '.structured_output'

105 ```

106</Tip>

107 

108### レスポンスをストリーミングする

109 

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

111 

112```bash theme={null}

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

114```

115 

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

117 

118```bash theme={null}

119claude -p "Write a poem" --output-format stream-json --verbose --include-partial-messages | \

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

121```

122 

123API リクエストが再試行可能なエラーで失敗すると、Claude Code は再試行前に `system/api_retry` イベントを発行します。これを使用して、再試行の進行状況を表示したり、カスタムバックオフロジックを実装したりできます。

124 

125| フィールド | 型 | 説明 |

126| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |

127| `type` | `"system"` | メッセージタイプ |

128| `subtype` | `"api_retry"` | これが再試行イベントであることを識別します |

129| `attempt` | 整数 | 現在の試行番号(1 から開始) |

130| `max_retries` | 整数 | 許可される再試行の合計 |

131| `retry_delay_ms` | 整数 | 次の試行までのミリ秒 |

132| `error_status` | 整数または null | HTTP ステータスコード、または HTTP レスポンスのない接続エラーの場合は `null` |

133| `error` | 文字列 | エラーカテゴリ:`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`rate_limit`、`invalid_request`、`server_error`、`max_output_tokens`、または `unknown` |

134| `uuid` | 文字列 | 一意のイベント識別子 |

135| `session_id` | 文字列 | イベントが属するセッション |

136 

137`system/init` イベントは、モデル、ツール、MCP サーバー、および読み込まれたプラグインを含むセッションメタデータを報告します。[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/ja/env-vars) が設定されていない限り、ストリームの最初のイベントです。その場合、`plugin_install` イベントがそれより前にあります。プラグインフィールドを使用して、プラグインが読み込まれなかった場合に CI を失敗させます。

138 

139| フィールド | 型 | 説明 |

140| --------------- | -- | ---------------------------------------------------------------------------------------------------------------------------------- |

141| `plugins` | 配列 | 正常に読み込まれたプラグイン。各プラグインは `name` と `path` を持ちます |

142| `plugin_errors` | 配列 | 満たされていない依存関係バージョンなどのプラグイン読み込み時エラー。各エラーは `plugin`、`type`、および `message` を持ちます。影響を受けたプラグインは降格され、`plugins` から削除されます。エラーがない場合、キーは省略されます |

143 

144[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/ja/env-vars) が設定されている場合、Claude Code は最初のターンの前にマーケットプレイスプラグインがインストールされている間、`system/plugin_install` イベントを発行します。これらを使用して、独自の UI にインストール進行状況を表示します。

145 

146| フィールド | 型 | 説明 |

147| ------------ | ------------------------------------------------------ | ----------------------------------------------------------------------------------- |

148| `type` | `"system"` | メッセージタイプ |

149| `subtype` | `"plugin_install"` | これがプラグインインストールイベントであることを識別します |

150| `status` | `"started"`、`"installed"`、`"failed"`、または `"completed"` | `started` と `completed` は全体的なインストールを囲みます。`installed` と `failed` は個別のマーケットプレイスを報告します |

151| `name` | 文字列(オプション) | マーケットプレイス名。`installed` と `failed` に存在します |

152| `error` | 文字列(オプション) | 失敗メッセージ。`failed` に存在します |

153| `uuid` | 文字列 | 一意のイベント識別子 |

154| `session_id` | 文字列 | イベントが属するセッション |

155 

156コールバックとメッセージオブジェクトを使用したプログラムによるストリーミングについては、Agent SDK ドキュメントの [リアルタイムでレスポンスをストリーミングする](/ja/agent-sdk/streaming-output) を参照してください。

157 

158### ツールを自動承認する

159 

160`--allowedTools` を使用して、Claude が確認を求めずに特定のツールを使用できるようにします。この例はテストスイートを実行し、失敗を修正し、Claude が許可を求めずに Bash コマンドを実行し、ファイルを読み取り/編集できるようにします。

161 

162```bash theme={null}

163claude -p "Run the test suite and fix any failures" \

164 --allowedTools "Bash,Read,Edit"

165```

166 

167セッション全体のベースラインを設定する代わりに個別のツールをリストするには、[パーミッションモード](/ja/permission-modes) を渡します。`dontAsk` は `permissions.allow` ルールまたは [読み取り専用コマンドセット](/ja/permissions#read-only-commands) にないものをすべて拒否します。これはロックダウンされた CI 実行に役立ちます。`acceptEdits` を使用すると、Claude はプロンプトなしでファイルを書き込むことができ、`mkdir`、`touch`、`mv`、`cp` などの一般的なファイルシステムコマンドも自動承認します。その他のシェルコマンドとネットワークリクエストは、`--allowedTools` エントリまたは `permissions.allow` ルールが必要です。そうでない場合、実行が試みられると実行が中止されます。

168 

169```bash theme={null}

170claude -p "Apply the lint fixes" --permission-mode acceptEdits

171```

172 

173### コミットを作成する

174 

175この例は、ステージされた変更を確認し、適切なメッセージを含むコミットを作成します。

176 

177```bash theme={null}

178claude -p "Look at my staged changes and create an appropriate commit" \

179 --allowedTools "Bash(git diff *),Bash(git log *),Bash(git status *),Bash(git commit *)"

180```

181 

182`--allowedTools` フラグは [パーミッションルール構文](/ja/settings#permission-rule-syntax) を使用します。末尾の ` *` はプレフィックスマッチングを有効にするため、`Bash(git diff *)` は `git diff` で始まるすべてのコマンドを許可します。スペースは重要です。スペースがない場合、`Bash(git diff*)` は `git diff-index` にも一致します。

183 

184<Note>

185 ユーザーが呼び出した [skills](/ja/skills)(`/commit` など)および [組み込みコマンド](/ja/commands) は、対話モードでのみ利用可能です。`-p` モードでは、代わりに実行したいタスクを説明してください。

186</Note>

187 

188### システムプロンプトをカスタマイズする

189 

190`--append-system-prompt` を使用して、Claude Code のデフォルト動作を保持しながら指示を追加します。この例は PR diff を Claude にパイプし、セキュリティ脆弱性をレビューするよう指示します。

191 

192```bash theme={null}

193gh pr diff "$1" | claude -p \

194 --append-system-prompt "You are a security engineer. Review for vulnerabilities." \

195 --output-format json

196```

197 

198デフォルトプロンプトを完全に置き換える `--system-prompt` を含む詳細なオプションについては、[システムプロンプトフラグ](/ja/cli-reference#system-prompt-flags) を参照してください。

199 

200### 会話を続ける

201 

202`--continue` を使用して最新の会話を続けるか、`--resume` をセッション ID と共に使用して特定の会話を続けます。この例はレビューを実行し、その後フォローアッププロンプトを送信します。

203 

204```bash theme={null}

205# 最初のリクエスト

206claude -p "Review this codebase for performance issues"

207 

208# 最新の会話を続ける

209claude -p "Now focus on the database queries" --continue

210claude -p "Generate a summary of all issues found" --continue

211```

212 

213複数の会話を実行している場合は、セッション ID をキャプチャして特定の会話を再開します。

214 

215```bash theme={null}

216session_id=$(claude -p "Start a review" --output-format json | jq -r '.session_id')

217claude -p "Continue that review" --resume "$session_id"

218```

219 

220## 次のステップ

221 

222* [Agent SDK クイックスタート](/ja/agent-sdk/quickstart):Python または TypeScript で最初のエージェントを構築します

223* [CLI リファレンス](/ja/cli-reference):すべての CLI フラグとオプション

224* [GitHub Actions](/ja/github-actions):GitHub ワークフローで Agent SDK を使用します

225* [GitLab CI/CD](/ja/gitlab-ci-cd):GitLab パイプラインで Agent SDK を使用します

hooks.md +2653 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Hooks リファレンス

6 

7> Claude Code のフック イベント、設定スキーマ、JSON 入出力形式、終了コード、非同期フック、HTTP フック、プロンプト フック、MCP ツール フックのリファレンス。

8 

9<Tip>

10 例を含むクイックスタート ガイドについては、[ワークフローをフックで自動化する](/ja/hooks-guide)を参照してください。

11</Tip>

12 

13フックは、Claude Code のライフサイクル内の特定のポイントで自動的に実行されるユーザー定義のシェル コマンド、HTTP エンドポイント、または LLM プロンプトです。このリファレンスを使用して、イベント スキーマ、設定オプション、JSON 入出力形式、非同期フック、HTTP フック、MCP ツール フックなどの高度な機能を検索してください。初めてフックを設定する場合は、代わりに[ガイド](/ja/hooks-guide)から始めてください。

14 

15## フック ライフサイクル

16 

17フックは Claude Code セッション中の特定のポイントで発火します。イベントが発火してマッチャーがマッチすると、Claude Code はイベントに関する JSON コンテキストをフック ハンドラーに渡します。コマンド フックの場合、入力は stdin に到着します。HTTP フックの場合、POST リクエスト本体として到着します。ハンドラーは入力を検査し、アクションを実行し、オプションで決定を返すことができます。イベントは 3 つのケイデンスに分類されます。セッションごとに 1 回(`SessionStart`、`SessionEnd`)、ターンごとに 1 回(`UserPromptSubmit`、`Stop`、`StopFailure`)、agentic ループ内のすべてのツール呼び出しで(`PreToolUse`、`PostToolUse`)です。

18 

19<div style={{maxWidth: "500px", margin: "0 auto"}}>

20 <Frame>

21 <img src="https://mintcdn.com/claude-code/ZIW26Z9pnpsXLhbS/images/hooks-lifecycle.svg?fit=max&auto=format&n=ZIW26Z9pnpsXLhbS&q=85&s=ee23691324deb6501df09bfdae560b64" alt="オプションの Setup から SessionStart に流れ込み、その後、UserPromptSubmit、スラッシュ コマンド用の UserPromptExpansion、ネストされた agentic ループ(PreToolUse、PermissionRequest、PostToolUse、PostToolUseFailure、PostToolBatch、SubagentStart/Stop、TaskCreated、TaskCompleted)、Stop または StopFailure を含むターンごとのループ、その後 TeammateIdle、PreCompact、PostCompact、SessionEnd が続き、Elicitation と ElicitationResult は MCP ツール実行内にネストされ、PermissionDenied は PermissionRequest からの副分岐として自動モード拒否のため、WorktreeCreate、WorktreeRemove、Notification、ConfigChange、InstructionsLoaded、CwdChanged、FileChanged はスタンドアロン非同期イベントとして表示されるフック ライフサイクル図" width="520" height="1228" data-path="images/hooks-lifecycle.svg" />

22 </Frame>

23</div>

24 

25以下の表は、各イベントがいつ発火するかをまとめています。[フック イベント](#hook-events)セクションでは、各イベントの完全な入力スキーマと決定制御オプションについて説明しています。

26 

27| Event | When it fires |

28| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |

29| `SessionStart` | When a session begins or resumes |

30| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |

31| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |

32| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |

33| `PreToolUse` | Before a tool call executes. Can block it |

34| `PermissionRequest` | When a permission dialog appears |

35| `PermissionDenied` | When a tool call is denied by the auto mode classifier. Return `{retry: true}` to tell the model it may retry the denied tool call |

36| `PostToolUse` | After a tool call succeeds |

37| `PostToolUseFailure` | After a tool call fails |

38| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |

39| `Notification` | When Claude Code sends a notification |

40| `SubagentStart` | When a subagent is spawned |

41| `SubagentStop` | When a subagent finishes |

42| `TaskCreated` | When a task is being created via `TaskCreate` |

43| `TaskCompleted` | When a task is being marked as completed |

44| `Stop` | When Claude finishes responding |

45| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |

46| `TeammateIdle` | When an [agent team](/en/agent-teams) teammate is about to go idle |

47| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |

48| `ConfigChange` | When a configuration file changes during a session |

49| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |

50| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |

51| `WorktreeCreate` | When a worktree is being created via `--worktree` or `isolation: "worktree"`. Replaces default git behavior |

52| `WorktreeRemove` | When a worktree is being removed, either at session exit or when a subagent finishes |

53| `PreCompact` | Before context compaction |

54| `PostCompact` | After context compaction completes |

55| `Elicitation` | When an MCP server requests user input during a tool call |

56| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |

57| `SessionEnd` | When a session terminates |

58 

59### フックがどのように解決されるか

60 

61これらの部分がどのように組み合わさるかを理解するために、破壊的なシェル コマンドをブロックする `PreToolUse` フックを考えてみましょう。`matcher` は Bash ツール呼び出しに絞り込み、`if` 条件は `rm *` にマッチするコマンドにさらに絞り込むため、`block-rm.sh` は両方のフィルターがマッチするときのみ生成されます。

62 

63```json theme={null}

64{

65 "hooks": {

66 "PreToolUse": [

67 {

68 "matcher": "Bash",

69 "hooks": [

70 {

71 "type": "command",

72 "if": "Bash(rm *)",

73 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-rm.sh"

74 }

75 ]

76 }

77 ]

78 }

79}

80```

81 

82スクリプトは stdin から JSON 入力を読み取り、コマンドを抽出し、`rm -rf` が含まれている場合は `permissionDecision` として `"deny"` を返します。

83 

84```bash theme={null}

85#!/bin/bash

86# .claude/hooks/block-rm.sh

87COMMAND=$(jq -r '.tool_input.command')

88 

89if echo "$COMMAND" | grep -q 'rm -rf'; then

90 jq -n '{

91 hookSpecificOutput: {

92 hookEventName: "PreToolUse",

93 permissionDecision: "deny",

94 permissionDecisionReason: "Destructive command blocked by hook"

95 }

96 }'

97else

98 exit 0 # allow the command

99fi

100```

101 

102ここで Claude Code が `Bash "rm -rf /tmp/build"` を実行することにしたとします。以下が起こります。

103 

104<Frame>

105 <img src="https://mintcdn.com/claude-code/-tYw1BD_DEqfyyOZ/images/hook-resolution.svg?fit=max&auto=format&n=-tYw1BD_DEqfyyOZ&q=85&s=c73ebc1eeda2037570427d7af1e0a891" alt="フック解決フロー:PreToolUse イベントが発火し、マッチャーが Bash マッチをチェックし、if 条件が Bash(rm *) マッチをチェックし、フック ハンドラーが実行され、結果が Claude Code に返される" width="930" height="290" data-path="images/hook-resolution.svg" />

106</Frame>

107 

108<Steps>

109 <Step title="イベントが発火">

110 `PreToolUse` イベントが発火します。Claude Code はツール入力を JSON として stdin のフックに送信します。

111 

112 ```json theme={null}

113 { "tool_name": "Bash", "tool_input": { "command": "rm -rf /tmp/build" }, ... }

114 ```

115 </Step>

116 

117 <Step title="マッチャーがチェック">

118 マッチャー `"Bash"` がツール名にマッチするため、このフック グループがアクティブになります。マッチャーを省略するか `"*"` を使用すると、グループはイベントのすべての出現でアクティブになります。

119 </Step>

120 

121 <Step title="If 条件がチェック">

122 `if` 条件 `"Bash(rm *)"` は `rm -rf /tmp/build` が `rm *` にマッチするサブコマンドであるためマッチするため、このハンドラーが生成されます。コマンドが `npm test` だった場合、`if` チェックは失敗し、`block-rm.sh` は実行されず、プロセス生成のオーバーヘッドを回避します。`if` フィールドはオプションです。なければ、マッチしたグループ内のすべてのハンドラーが実行されます。

123 </Step>

124 

125 <Step title="フック ハンドラーが実行">

126 スクリプトは完全なコマンドを検査し、`rm -rf` を見つけるため、stdout に決定を出力します。

127 

128 ```json theme={null}

129 {

130 "hookSpecificOutput": {

131 "hookEventName": "PreToolUse",

132 "permissionDecision": "deny",

133 "permissionDecisionReason": "Destructive command blocked by hook"

134 }

135 }

136 ```

137 

138 コマンドが安全だった場合(`rm file.txt` など)、スクリプトは代わりに `exit 0` に到達し、これは Claude Code にツール呼び出しを許可するよう指示します。

139 </Step>

140 

141 <Step title="Claude Code が結果に基づいて行動">

142 Claude Code は JSON 決定を読み取り、ツール呼び出しをブロックし、Claude に理由を表示します。

143 </Step>

144</Steps>

145 

146以下の[設定](#configuration)セクションでは完全なスキーマについて説明し、各[フック イベント](#hook-events)セクションでは、コマンドが受け取る入力と返すことができる出力について説明しています。

147 

148## 設定

149 

150フックは JSON 設定ファイルで定義されます。設定には 3 つのネストレベルがあります。

151 

1521. 応答する[フック イベント](#hook-events)を選択します(`PreToolUse` や `Stop` など)

1532. 発火するタイミングをフィルタリングする[マッチャー グループ](#matcher-patterns)を追加します('Bash ツールのみ'など)

1543. マッチしたときに実行する 1 つ以上の[フック ハンドラー](#hook-handler-fields)を定義します

155 

156完全なウォークスルーと注釈付きの例については、上記の[フックがどのように解決されるか](#how-a-hook-resolves)を参照してください。

157 

158<Note>

159 このページでは各レベルに特定の用語を使用しています。**フック イベント**はライフサイクル ポイント、**マッチャー グループ**はフィルター、**フック ハンドラー**はシェル コマンド、HTTP エンドポイント、MCP ツール、プロンプト、または実行されるエージェントです。'フック'単独は一般的な機能を指します。

160</Note>

161 

162### フック位置

163 

164フックを定義する場所によって、そのスコープが決まります。

165 

166| 位置 | スコープ | 共有可能 |

167| :-------------------------------------------------- | :--------------- | :----------------- |

168| `~/.claude/settings.json` | すべてのプロジェクト | いいえ、マシンにローカル |

169| `.claude/settings.json` | 単一プロジェクト | はい、リポジトリにコミット可能 |

170| `.claude/settings.local.json` | 単一プロジェクト | いいえ、gitignored |

171| 管理ポリシー設定 | 組織全体 | はい、管理者が制御 |

172| [プラグイン](/ja/plugins) `hooks/hooks.json` | プラグインが有効な場合 | はい、プラグインにバンドル |

173| [スキル](/ja/skills)または[エージェント](/ja/sub-agents)フロントマター | コンポーネントがアクティブな場合 | はい、コンポーネント ファイルで定義 |

174 

175設定ファイル解決の詳細については、[設定](/ja/settings)を参照してください。エンタープライズ管理者は `allowManagedHooksOnly` を使用して、ユーザー、プロジェクト、プラグイン フックをブロックできます。管理設定で force-enabled されたプラグインからのフックは除外されるため、管理者は組織マーケットプレイスを通じて検証済みのフックを配布できます。[フック設定](/ja/settings#hook-configuration)を参照してください。

176 

177### マッチャー パターン

178 

179`matcher` フィールドは、フックが発火するタイミングをフィルタリングします。マッチャーの評価方法は、含まれている文字に依存します。

180 

181| マッチャー値 | 評価方法 | 例 |

182| :---------------- | :--------------------------- | :------------------------------------------------------------------------------- |

183| `"*"`、`""`、または省略 | すべてにマッチ | イベントのすべての出現で発火 |

184| 文字、数字、`_`、`\|` のみ | 完全一致、または `\|` で区切られた完全一致のリスト | `Bash` は Bash ツールのみにマッチ。`Edit\|Write` はいずれかのツールに完全にマッチ |

185| その他の文字を含む | JavaScript 正規表現 | `^Notebook` は Notebook で始まるツールにマッチ。`mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ |

186 

187`FileChanged` イベントは監視リストを構築するときにこれらのルールに従いません。[FileChanged](#filechanged)を参照してください。

188 

189各イベント タイプは異なるフィールドでマッチします。

190 

191| イベント | マッチャーがフィルタリングするもの | マッチャー値の例 |

192| :----------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |

193| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | ツール名 | `Bash`、`Edit\|Write`、`mcp__.*` |

194| `SessionStart` | セッションの開始方法 | `startup`、`resume`、`clear`、`compact` |

195| `Setup` | セットアップをトリガーした CLI フラグ | `init`、`maintenance` |

196| `SessionEnd` | セッションが終了した理由 | `clear`、`resume`、`logout`、`prompt_input_exit`、`bypass_permissions_disabled`、`other` |

197| `Notification` | 通知タイプ | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_complete`、`elicitation_response` |

198| `SubagentStart` | エージェント タイプ | `general-purpose`、`Explore`、`Plan`、またはカスタム エージェント名 |

199| `PreCompact`、`PostCompact` | コンパクションをトリガーしたもの | `manual`、`auto` |

200| `SubagentStop` | エージェント タイプ | `SubagentStart` と同じ値 |

201| `ConfigChange` | 設定ソース | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |

202| `CwdChanged` | マッチャー サポートなし | すべてのディレクトリ変更で常に発火 |

203| `FileChanged` | 監視するリテラル ファイル名([FileChanged](#filechanged)を参照) | `.envrc\|.env` |

204| `StopFailure` | エラー タイプ | `rate_limit`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`server_error`、`max_output_tokens`、`unknown` |

205| `InstructionsLoaded` | ロード理由 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |

206| `UserPromptExpansion` | コマンド名 | スキルまたはコマンド名 |

207| `Elicitation` | MCP サーバー名 | 設定された MCP サーバー名 |

208| `ElicitationResult` | MCP サーバー名 | `Elicitation` と同じ値 |

209| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove` | マッチャー サポートなし | すべての出現で常に発火 |

210 

211マッチャーは、Claude Code がフックに stdin で送信する[JSON 入力](#hook-input-and-output)からのフィールドに対して実行されます。ツール イベントの場合、そのフィールドは `tool_name` です。各[フック イベント](#hook-events)セクションでは、マッチャー値の完全なセットとそのイベントの入力スキーマをリストしています。

212 

213この例は、Claude がファイルを書き込むまたは編集するときにのみ linting スクリプトを実行します。

214 

215```json theme={null}

216{

217 "hooks": {

218 "PostToolUse": [

219 {

220 "matcher": "Edit|Write",

221 "hooks": [

222 {

223 "type": "command",

224 "command": "/path/to/lint-check.sh"

225 }

226 ]

227 }

228 ]

229 }

230}

231```

232 

233`UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`CwdChanged` はマッチャーをサポートせず、すべての出現で常に発火します。これらのイベントに `matcher` フィールドを追加すると、サイレントに無視されます。

234 

235ツール イベントの場合、個別のフック ハンドラーで [`if` フィールド](#common-fields)を設定することで、より狭くフィルタリングできます。`if` は[権限ルール構文](/ja/permissions)を使用してツール名と引数を一緒にマッチするため、`"Bash(git *)"` は `git *` に一致する Bash 入力のサブコマンドのいずれかに対して実行され、`"Edit(*.ts)"` は TypeScript ファイルのみに対して実行されます。

236 

237#### MCP ツールをマッチ

238 

239[MCP](/ja/mcp) サーバー ツールはツール イベント(`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`)で通常のツールとして表示されるため、他のツール名と同じ方法でマッチできます。

240 

241MCP ツールは `mcp__<server>__<tool>` という命名パターンに従います。例えば、

242 

243* `mcp__memory__create_entities`: Memory サーバーの create entities ツール

244* `mcp__filesystem__read_file`: Filesystem サーバーの read file ツール

245* `mcp__github__search_repositories`: GitHub サーバーの search ツール

246 

247すべてのツールをサーバーからマッチするには、サーバー プレフィックスに `.*` を追加します。`.*` は必須です。`mcp__memory` のようなマッチャーは文字とアンダースコアのみを含むため、完全一致として比較され、ツールにマッチしません。

248 

249* `mcp__memory__.*` は `memory` サーバーのすべてのツールにマッチ

250* `mcp__.*__write.*` は任意のサーバーから「write」で始まるツールにマッチ

251 

252この例は、すべてのメモリ サーバー操作をログし、任意の MCP サーバーからの書き込み操作を検証します。

253 

254```json theme={null}

255{

256 "hooks": {

257 "PreToolUse": [

258 {

259 "matcher": "mcp__memory__.*",

260 "hooks": [

261 {

262 "type": "command",

263 "command": "echo 'Memory operation initiated' >> ~/mcp-operations.log"

264 }

265 ]

266 },

267 {

268 "matcher": "mcp__.*__write.*",

269 "hooks": [

270 {

271 "type": "command",

272 "command": "/home/user/scripts/validate-mcp-write.py"

273 }

274 ]

275 }

276 ]

277 }

278}

279```

280 

281### フック ハンドラー フィールド

282 

283内側の `hooks` 配列の各オブジェクトはフック ハンドラーです。マッチャーがマッチしたときに実行されるシェル コマンド、HTTP エンドポイント、MCP ツール、LLM プロンプト、またはエージェントです。5 つのタイプがあります。

284 

285* **[コマンド フック](#command-hook-fields)** (`type: "command"`): シェル コマンドを実行します。スクリプトはイベントの[JSON 入力](#hook-input-and-output)を stdin で受け取り、終了コードと stdout を通じて結果を通信します。

286* **[HTTP フック](#http-hook-fields)** (`type: "http"`): イベントの JSON 入力を HTTP POST リクエストとして URL に送信します。エンドポイントは、コマンド フックと同じ[JSON 出力形式](#json-output)を使用して、レスポンス本体を通じて結果を通信します。

287* **[MCP ツール フック](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): 既に接続されている[MCP サーバー](/ja/mcp)上のツールを呼び出します。ツールのテキスト出力はコマンド フック stdout のように扱われます。

288* **[プロンプト フック](#prompt-and-agent-hook-fields)** (`type: "prompt"`): Claude モデルにプロンプトを送信して、単一ターンの評価を行います。モデルは yes/no 決定を JSON として返します。[プロンプト ベースのフック](#prompt-based-hooks)を参照してください。

289* **[エージェント フック](#prompt-and-agent-hook-fields)** (`type: "agent"`): Read、Grep、Glob などのツールを使用して条件を検証してから決定を返すことができるサブエージェントを生成します。エージェント フックは実験的であり、変更される可能性があります。[エージェント ベースのフック](#agent-based-hooks)を参照してください。

290 

291#### 共通フィールド

292 

293これらのフィールドはすべてのフック タイプに適用されます。

294 

295| フィールド | 必須 | 説明 |

296| :-------------- | :-- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

297| `type` | はい | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"`、または `"agent"` |

298| `if` | いいえ | `"Bash(git *)"` または `"Edit(*.ts)"` などの権限ルール構文を使用してこのフックが実行されるタイミングをフィルタリングします。ツール呼び出しがパターンにマッチする場合のみ、フックが生成されます。または Bash コマンドが解析するには複雑すぎる場合。ツール イベントでのみ評価されます。`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`。他のイベントでは、`if` が設定されたフックは実行されません。[権限ルール](/ja/permissions)と同じ構文を使用します |

299| `timeout` | いいえ | キャンセルまでの秒数。デフォルト: コマンドは 600、プロンプトは 30、エージェントは 60 |

300| `statusMessage` | いいえ | フックの実行中に表示されるカスタム スピナー メッセージ |

301| `once` | いいえ | `true` の場合、セッションごとに 1 回だけ実行してから削除されます。[スキルとエージェントのフック](#hooks-in-skills-and-agents)でのみ尊重されます。設定ファイルとエージェント フロントマターでは無視されます |

302 

303`if` フィールドは正確に 1 つの権限ルールを保持します。ルールを組み合わせるための `&&`、`||`、またはリスト構文はありません。複数の条件を適用するには、各条件に対して個別のフック ハンドラーを定義します。Bash の場合、ルールは先頭の `VAR=value` 割り当てが削除された後のツール入力の各サブコマンドに対してマッチされるため、`if: "Bash(git push *)"` は `FOO=bar git push` と `npm test && git push` の両方にマッチします。コマンドが解析するには複雑すぎる場合、いずれかのサブコマンドがマッチすると、またはいつでもフックが実行されます。

304 

305#### コマンド フック フィールド

306 

307[共通フィールド](#common-fields)に加えて、コマンド フックはこれらのフィールドを受け入れます。

308 

309| フィールド | 必須 | 説明 |

310| :------------ | :-- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `command` | はい | 実行するシェル コマンド |

312| `async` | いいえ | `true` の場合、ブロックせずにバックグラウンドで実行されます。[バックグラウンドでフックを実行](#run-hooks-in-the-background)を参照してください |

313| `asyncRewake` | いいえ | `true` の場合、バックグラウンドで実行され、終了コード 2 で Claude を起動します。`async` を暗黙的に指定します。フックの stderr、または stderr が空の場合は stdout が、Claude がシステム リマインダーとして長時間実行されるバックグラウンド失敗に反応できるように表示されます |

314| `shell` | いいえ | このフックに使用するシェル。`"bash"`(デフォルト)または `"powershell"` を受け入れます。`"powershell"` を設定すると、Windows 上で PowerShell 経由でコマンドが実行されます。`CLAUDE_CODE_USE_POWERSHELL_TOOL` は不要です。フックは PowerShell を直接生成するため |

315 

316#### HTTP フック フィールド

317 

318[共通フィールド](#common-fields)に加えて、HTTP フックはこれらのフィールドを受け入れます。

319 

320| フィールド | 必須 | 説明 |

321| :--------------- | :-- | :----------------------------------------------------------------------------------------------------------------- |

322| `url` | はい | POST リクエストを送信する URL |

323| `headers` | いいえ | キー値ペアとしての追加 HTTP ヘッダー。値は `$VAR_NAME` または `${VAR_NAME}` 構文を使用した環境変数補間をサポートします。`allowedEnvVars` にリストされている変数のみが解決されます |

324| `allowedEnvVars` | いいえ | ヘッダー値に補間される可能性のある環境変数名のリスト。リストされていない変数への参照は空の文字列に置き換えられます。環境変数補間が機能するために必須 |

325 

326Claude Code はフックの[JSON 入力](#hook-input-and-output)を `Content-Type: application/json` の POST リクエスト本体として送信します。レスポンス本体はコマンド フックと同じ[JSON 出力形式](#json-output)を使用します。

327 

328エラー処理はコマンド フックと異なります。2xx 以外のレスポンス、接続失敗、タイムアウトはすべて、実行を続行できる非ブロッキング エラーを生成します。ツール呼び出しをブロックまたは権限を拒否するには、`decision: "block"` または `hookSpecificOutput` を含む `permissionDecision: "deny"` を含む JSON 本体を持つ 2xx レスポンスを返します。

329 

330この例は `PreToolUse` イベントをローカル検証サービスに送信し、`MY_TOKEN` 環境変数からのトークンで認証します。

331 

332```json theme={null}

333{

334 "hooks": {

335 "PreToolUse": [

336 {

337 "matcher": "Bash",

338 "hooks": [

339 {

340 "type": "http",

341 "url": "http://localhost:8080/hooks/pre-tool-use",

342 "timeout": 30,

343 "headers": {

344 "Authorization": "Bearer $MY_TOKEN"

345 },

346 "allowedEnvVars": ["MY_TOKEN"]

347 }

348 ]

349 }

350 ]

351 }

352}

353```

354 

355#### MCP ツール フック フィールド

356 

357[共通フィールド](#common-fields)に加えて、MCP ツール フックはこれらのフィールドを受け入れます。

358 

359| フィールド | 必須 | 説明 |

360| :------- | :-- | :----------------------------------------------------------------------------------------------------------- |

361| `server` | はい | 設定された MCP サーバーの名前。サーバーは既に接続されている必要があります。フックは OAuth または接続フローをトリガーしません |

362| `tool` | はい | そのサーバー上で呼び出すツールの名前 |

363| `input` | いいえ | ツールに渡される引数。文字列値は、フックの[JSON 入力](#hook-input-and-output)から `${path}` 置換をサポートします(例:`"${tool_input.file_path}"`) |

364 

365ツールのテキスト コンテンツはコマンド フック stdout のように扱われます。有効な[JSON 出力](#json-output)として解析される場合、決定として処理されます。そうでない場合は、プレーン テキストとして表示されます。指定されたサーバーが接続されていない場合、またはツールが `isError: true` を返す場合、フックは非ブロッキング エラーを生成し、実行は続行されます。

366 

367MCP ツール フックは、Claude Code が MCP サーバーに接続した後、すべてのフック イベントで利用可能です。`SessionStart` と `Setup` は通常、サーバーが接続を完了する前に発火するため、これらのイベント上のフックは最初の実行時に「接続されていない」エラーを予期する必要があります。

368 

369この例は、各 `Write` または `Edit` の後、`my_server` MCP サーバー上の `security_scan` ツールを呼び出し、編集されたファイルのパスを渡します。

370 

371```json theme={null}

372{

373 "hooks": {

374 "PostToolUse": [

375 {

376 "matcher": "Write|Edit",

377 "hooks": [

378 {

379 "type": "mcp_tool",

380 "server": "my_server",

381 "tool": "security_scan",

382 "input": { "file_path": "${tool_input.file_path}" }

383 }

384 ]

385 }

386 ]

387 }

388}

389```

390 

391#### プロンプト フックとエージェント フック フィールド

392 

393[共通フィールド](#common-fields)に加えて、プロンプト フックとエージェント フックはこれらのフィールドを受け入れます。

394 

395| フィールド | 必須 | 説明 |

396| :------- | :-- | :------------------------------------------------------------- |

397| `prompt` | はい | モデルに送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します |

398| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |

399 

400すべてのマッチング フックは並列で実行され、同一のハンドラーは自動的に重複排除されます。コマンド フックはコマンド文字列で重複排除され、HTTP フックは URL で重複排除されます。ハンドラーは Claude Code の環境を持つ現在のディレクトリで実行されます。`$CLAUDE_CODE_REMOTE` 環境変数はリモート Web 環境で `"true"` に設定され、ローカル CLI では設定されません。

401 

402### パスでフック スクリプトを参照

403 

404環境変数を使用して、フックが実行されるときの作業ディレクトリに関係なく、プロジェクトまたはプラグイン ルートを基準にしてフック スクリプトを参照します。

405 

406* `$CLAUDE_PROJECT_DIR`: プロジェクト ルート。スペースを含むパスを処理するために引用符で囲みます。

407* `${CLAUDE_PLUGIN_ROOT}`: プラグイン インストール ディレクトリ、プラグインにバンドルされたスクリプト用。プラグイン更新時に変更されます。

408* `${CLAUDE_PLUGIN_DATA}`: プラグインの[永続データ ディレクトリ](/ja/plugins-reference#persistent-data-directory)、プラグイン更新を通じて存続すべき依存関係と状態用。

409 

410<Tabs>

411 <Tab title="プロジェクト スクリプト">

412 この例は `$CLAUDE_PROJECT_DIR` を使用して、`Write` または `Edit` ツール呼び出しの後、プロジェクトの `.claude/hooks/` ディレクトリからスタイル チェッカーを実行します。

413 

414 ```json theme={null}

415 {

416 "hooks": {

417 "PostToolUse": [

418 {

419 "matcher": "Write|Edit",

420 "hooks": [

421 {

422 "type": "command",

423 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-style.sh"

424 }

425 ]

426 }

427 ]

428 }

429 }

430 ```

431 </Tab>

432 

433 <Tab title="プラグイン スクリプト">

434 `hooks/hooks.json` でプラグイン フックを定義し、オプションのトップレベル `description` フィールドを使用します。プラグインが有効な場合、そのフックはユーザーおよびプロジェクト フックとマージされます。

435 

436 この例は、プラグインにバンドルされたフォーマット スクリプトを実行します。

437 

438 ```json theme={null}

439 {

440 "description": "Automatic code formatting",

441 "hooks": {

442 "PostToolUse": [

443 {

444 "matcher": "Write|Edit",

445 "hooks": [

446 {

447 "type": "command",

448 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",

449 "timeout": 30

450 }

451 ]

452 }

453 ]

454 }

455 }

456 ```

457 

458 プラグイン フックの作成の詳細については、[プラグイン コンポーネント リファレンス](/ja/plugins-reference#hooks)を参照してください。

459 </Tab>

460</Tabs>

461 

462### スキルとエージェントのフック

463 

464設定ファイルとプラグインに加えて、フックは[スキル](/ja/skills)と[サブエージェント](/ja/sub-agents)でフロントマターを使用して直接定義できます。これらのフックはコンポーネントのライフサイクルにスコープされ、そのコンポーネントがアクティブな場合にのみ実行されます。

465 

466すべてのフック イベントがサポートされています。サブエージェントの場合、`Stop` フックは自動的に `SubagentStop` に変換されます。これはサブエージェントが完了したときに発火するイベントです。

467 

468フックは設定ベースのフックと同じ設定形式を使用しますが、コンポーネントのライフタイムにスコープされ、完了時にクリーンアップされます。

469 

470このスキルは、各 `Bash` コマンドの前にセキュリティ検証スクリプトを実行する `PreToolUse` フックを定義します。

471 

472```yaml theme={null}

473---

474name: secure-operations

475description: Perform operations with security checks

476hooks:

477 PreToolUse:

478 - matcher: "Bash"

479 hooks:

480 - type: command

481 command: "./scripts/security-check.sh"

482---

483```

484 

485エージェントは YAML フロントマターで同じ形式を使用します。

486 

487### `/hooks` メニュー

488 

489Claude Code で `/hooks` と入力して、設定されたフックの読み取り専用ブラウザーを開きます。メニューはすべてのフック イベントを表示し、設定されたフックの数を示し、マッチャーにドリルダウンでき、各フック ハンドラーの完全な詳細を表示します。これを使用して設定を検証し、フックがどの設定ファイルから定義されたかを確認するか、フックのコマンド、プロンプト、または URL を検査します。

490 

491メニューは 5 つのフック タイプをすべて表示します。`command`、`prompt`、`agent`、`http`、`mcp_tool`。各フックには、そのソースを示す `[type]` プレフィックスとソース ラベルが付けられています。

492 

493* `User`: `~/.claude/settings.json` から

494* `Project`: `.claude/settings.json` から

495* `Local`: `.claude/settings.local.json` から

496* `Plugin`: プラグインの `hooks/hooks.json` から

497* `Session`: 現在のセッション用にメモリに登録

498* `Built-in`: Claude Code によって内部的に登録

499 

500フックを選択すると、詳細ビューが開き、そのイベント、マッチャー、タイプ、ソース ファイル、および完全なコマンド、プロンプト、または URL が表示されます。メニューは読み取り専用です。フックを追加、変更、または削除するには、設定 JSON を直接編集するか、Claude にその変更を依頼してください。

501 

502### フックを無効化または削除

503 

504フックを削除するには、設定 JSON ファイルからそのエントリを削除します。

505 

506すべてのフックを削除せずに一時的に無効化するには、設定ファイルで `"disableAllHooks": true` を設定します。個別のフックを設定に保持したまま無効化する方法はありません。

507 

508`disableAllHooks` 設定は管理設定階層を尊重します。管理者が管理ポリシー設定を通じてフックを設定している場合、ユーザー、プロジェクト、またはローカル設定で設定された `disableAllHooks` は、それらの管理フックを無効化できません。管理設定レベルで設定された `disableAllHooks` のみが管理フックを無効化できます。

509 

510設定ファイルのフックへの直接編集は通常、ファイル ウォッチャーによって自動的に取得されます。

511 

512## フック入出力

513 

514コマンド フックは stdin 経由で JSON データを受け取り、終了コード、stdout、stderr を通じて結果を通信します。HTTP フックは同じ JSON をリクエスト本体として受け取り、HTTP レスポンス本体を通じて結果を通信します。このセクションでは、すべてのイベントに共通するフィールドと動作について説明します。[フック イベント](#hook-events)の各セクションには、その特定の入力スキーマと決定制御オプションが含まれています。

515 

516### 共通入力フィールド

517 

518すべてのフック イベントは、各[フック イベント](#hook-events)セクションで説明されているイベント固有のフィールドに加えて、これらのフィールドを JSON として受け取ります。コマンド フックの場合、この JSON は stdin 経由で到着します。HTTP フックの場合、POST リクエスト本体として到着します。

519 

520| フィールド | 説明 |

521| :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

522| `session_id` | 現在のセッション識別子 |

523| `transcript_path` | 会話 JSON へのパス |

524| `cwd` | フックが呼び出されるときの現在の作業ディレクトリ |

525| `permission_mode` | 現在の[権限モード](/ja/permissions#permission-modes): `"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"`、または `"bypassPermissions"`。すべてのイベントがこのフィールドを受け取るわけではありません。各イベントの JSON 例を確認してください |

526| `hook_event_name` | 発火したイベントの名前 |

527 

528`--agent` で実行するか、サブエージェント内で実行する場合、2 つの追加フィールドが含まれます。

529 

530| フィールド | 説明 |

531| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |

532| `agent_id` | サブエージェントの一意の識別子。フックがサブエージェント呼び出し内で発火する場合にのみ存在します。これを使用して、サブエージェント フック呼び出しをメイン スレッド呼び出しから区別します。 |

533| `agent_type` | エージェント名(例えば、`"Explore"` または `"security-reviewer"`)。セッションが `--agent` を使用するか、フックがサブエージェント内で発火する場合に存在します。サブエージェントの場合、サブエージェントのタイプがセッションの `--agent` 値よりも優先されます。 |

534 

535例えば、Bash コマンドの `PreToolUse` フックは stdin で以下を受け取ります。

536 

537```json theme={null}

538{

539 "session_id": "abc123",

540 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",

541 "cwd": "/home/user/my-project",

542 "permission_mode": "default",

543 "hook_event_name": "PreToolUse",

544 "tool_name": "Bash",

545 "tool_input": {

546 "command": "npm test"

547 }

548}

549```

550 

551`tool_name` と `tool_input` フィールドはイベント固有です。各[フック イベント](#hook-events)セクションでは、そのイベントの追加フィールドについて説明しています。

552 

553### 終了コード出力

554 

555フック コマンドからの終了コードは、Claude Code にアクションが進行すべきか、ブロックされるべきか、無視されるべきかを伝えます。

556 

557**終了 0** は成功を意味します。Claude Code は stdout を[JSON 出力フィールド](#json-output)で解析します。JSON 出力は終了 0 でのみ処理されます。ほとんどのイベントでは、stdout はデバッグ ログに書き込まれますが、トランスクリプトには表示されません。例外は `UserPromptSubmit`、`UserPromptExpansion`、および `SessionStart` で、stdout は Claude が見て行動できるコンテキストとして追加されます。

558 

559**終了 2** はブロッキング エラーを意味します。Claude Code は stdout とそれ内の JSON を無視します。代わりに、stderr テキストがエラー メッセージとして Claude にフィードバックされます。効果はイベントに依存します。`PreToolUse` はツール呼び出しをブロックし、`UserPromptSubmit` はプロンプトを拒否します。完全なリストについては、[終了コード 2 動作](#exit-code-2-behavior-per-event)を参照してください。

560 

561**その他の終了コード** はほとんどのフック イベントの非ブロッキング エラーです。トランスクリプトは `<hook name> hook error` 通知を表示し、その後に stderr の最初の行が続くため、`--debug` なしで原因を特定できます。実行は続行され、完全な stderr はデバッグ ログに書き込まれます。

562 

563例えば、危険な Bash コマンドをブロックするフック コマンド スクリプト。

564 

565```bash theme={null}

566#!/bin/bash

567# stdin から JSON 入力を読み取り、コマンドをチェック

568command=$(jq -r '.tool_input.command' < /dev/stdin)

569 

570if [[ "$command" == rm* ]]; then

571 echo "Blocked: rm commands are not allowed" >&2

572 exit 2 # ブロッキング エラー: ツール呼び出しが防止される

573fi

574 

575exit 0 # 成功: ツール呼び出しが進行

576```

577 

578<Warning>

579 ほとんどのフック イベントでは、終了コード 2 のみがアクションをブロックします。Claude Code は終了コード 1 を非ブロッキング エラーとして扱い、1 が従来の Unix 失敗コードであっても、アクションを進行させます。フックがポリシーを実施することを目的としている場合は、`exit 2` を使用してください。例外は `WorktreeCreate` で、0 以外の終了コードはワークツリー作成を中止します。

580</Warning>

581 

582#### イベントごとの終了コード 2 動作

583 

584終了コード 2 は、フックが「停止、これをしないでください」と通知する方法です。効果はイベントに依存します。一部のイベントはブロック可能なアクション(まだ発生していないツール呼び出しなど)を表し、他のイベントはすでに発生したか防止できないことを表すためです。

585 

586| フック イベント | ブロック可能? | 終了 2 で何が起こるか |

587| :-------------------- | :------ | :-------------------------------------------------------------------------------------- |

588| `PreToolUse` | はい | ツール呼び出しをブロック |

589| `PermissionRequest` | はい | 権限を拒否 |

590| `UserPromptSubmit` | はい | プロンプト処理をブロックしてプロンプトを消去 |

591| `UserPromptExpansion` | はい | 拡張をブロック |

592| `Stop` | はい | Claude が停止するのを防ぎ、会話を続行 |

593| `SubagentStop` | はい | サブエージェントが停止するのを防止 |

594| `TeammateIdle` | はい | チームメイトがアイドル状態になるのを防止(チームメイトが作業を続行) |

595| `TaskCreated` | はい | タスク作成をロールバック |

596| `TaskCompleted` | はい | タスクが完了としてマークされるのを防止 |

597| `ConfigChange` | はい | 設定変更が有効になるのをブロック(`policy_settings` を除く) |

598| `StopFailure` | いいえ | 出力と終了コードは無視 |

599| `PostToolUse` | いいえ | Claude に stderr を表示(ツールはすでに実行) |

600| `PostToolUseFailure` | いいえ | Claude に stderr を表示(ツールはすでに失敗) |

601| `PostToolBatch` | はい | 次のモデル呼び出しの前に agentic ループを停止 |

602| `PermissionDenied` | いいえ | 終了コードと stderr は無視(拒否はすでに発生)。JSON `hookSpecificOutput.retry: true` を使用してモデルが再試行できることを伝える |

603| `Notification` | いいえ | ユーザーのみに stderr を表示 |

604| `SubagentStart` | いいえ | ユーザーのみに stderr を表示 |

605| `SessionStart` | いいえ | ユーザーのみに stderr を表示 |

606| `Setup` | いいえ | ユーザーのみに stderr を表示 |

607| `SessionEnd` | いいえ | ユーザーのみに stderr を表示 |

608| `CwdChanged` | いいえ | ユーザーのみに stderr を表示 |

609| `FileChanged` | いいえ | ユーザーのみに stderr を表示 |

610| `PreCompact` | はい | コンパクションをブロック |

611| `PostCompact` | いいえ | ユーザーのみに stderr を表示 |

612| `Elicitation` | はい | elicitation を拒否 |

613| `ElicitationResult` | はい | レスポンスをブロック(アクションが decline になる) |

614| `WorktreeCreate` | はい | 0 以外の終了コードでワークツリー作成が失敗 |

615| `WorktreeRemove` | いいえ | 失敗はデバッグ モードでのみログ |

616| `InstructionsLoaded` | いいえ | 終了コードは無視 |

617 

618### HTTP レスポンス処理

619 

620HTTP フックは終了コードと stdout の代わりに HTTP ステータス コードとレスポンス本体を使用します。

621 

622* **2xx で空の本体**: 成功、終了コード 0 で出力なしと同等

623* **2xx でプレーン テキスト本体**: 成功、テキストがコンテキストとして追加

624* **2xx で JSON 本体**: 成功、コマンド フックと同じ[JSON 出力](#json-output)スキーマを使用して解析

625* **2xx 以外のステータス**: 非ブロッキング エラー、実行は続行

626* **接続失敗またはタイムアウト**: 非ブロッキング エラー、実行は続行

627 

628コマンド フックとは異なり、HTTP フックはステータス コードのみでブロッキング エラーを通知できません。ツール呼び出しをブロックまたは権限を拒否するには、適切な決定フィールドを含む JSON 本体を持つ 2xx レスポンスを返します。

629 

630### JSON 出力

631 

632終了コードで許可またはブロックできますが、JSON 出力はより細かい制御を提供します。終了コード 2 でブロックする代わりに、終了 0 して stdout に JSON オブジェクトを出力します。Claude Code はその JSON から特定のフィールドを読み取り、ブロック、許可、またはユーザーへのエスカレーションを含む[決定制御](#decision-control)を通じた動作を制御します。

633 

634<Note>

635 フックごとに 1 つのアプローチを選択する必要があります。両方ではありません。終了コードのみでシグナリングするか、終了 0 して構造化制御のために JSON を出力するかのいずれかです。Claude Code は終了 0 でのみ JSON を処理します。終了 2 の場合、JSON は無視されます。

636</Note>

637 

638フックの stdout には JSON オブジェクトのみが含まれている必要があります。シェル プロファイルがスタートアップ時にテキストを出力する場合、JSON 解析に干渉する可能性があります。トラブルシューティング ガイドの[JSON 検証に失敗](/ja/hooks-guide#json-validation-failed)を参照してください。

639 

640コンテキストに注入されたフック出力(`additionalContext`、`systemMessage`、またはプレーン stdout)は 10,000 文字でキャップされます。この制限を超える出力はファイルに保存され、プレビューとファイル パスに置き換えられます。大きなツール結果と同じ方法で処理されます。

641 

642JSON オブジェクトは 3 種類のフィールドをサポートしています。

643 

644* **`continue` などのユニバーサル フィールド**はすべてのイベント全体で機能します。これらは以下の表にリストされています。

645* **トップレベルの `decision` と `reason`** は一部のイベントで使用され、ブロックまたはフィードバックを提供します。

646* **`hookSpecificOutput`** はより豊かな制御が必要なイベント用のネストされたオブジェクトです。イベント名に設定された `hookEventName` フィールドが必要です。

647 

648| フィールド | デフォルト | 説明 |

649| :--------------- | :------ | :----------------------------------------------------------------- |

650| `continue` | `true` | `false` の場合、フックが実行された後、Claude は完全に処理を停止します。イベント固有の決定フィールドよりも優先されます |

651| `stopReason` | なし | `continue` が `false` のときにユーザーに表示されるメッセージ。Claude には表示されません |

652| `suppressOutput` | `false` | `true` の場合、デバッグ ログから stdout を非表示にします |

653| `systemMessage` | なし | ユーザーに表示される警告メッセージ |

654 

655Claude を完全に停止するには、イベント タイプに関係なく。

656 

657```json theme={null}

658{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

659```

660 

661#### Claude 用にコンテキストを追加

662 

663`additionalContext` フィールドは、フックから Claude のコンテキスト ウィンドウに文字列を渡します。Claude Code は文字列をシステム リマインダーでラップし、フックが発火した時点で会話に挿入します。Claude は次のモデル リクエストでリマインダーを読み取りますが、インターフェイスではチャット メッセージとして表示されません。

664 

665`hookSpecificOutput` 内でイベント名と一緒に `additionalContext` を返します。

666 

667```json theme={null}

668{

669 "hookSpecificOutput": {

670 "hookEventName": "PostToolUse",

671 "additionalContext": "This file is generated. Edit src/schema.ts and run `bun generate` instead."

672 }

673}

674```

675 

676リマインダーが表示される場所はイベントに依存します。

677 

678* [SessionStart](#sessionstart)、[Setup](#setup)、および [SubagentStart](#subagentstart): 会話の開始時、最初のプロンプトの前

679* [UserPromptSubmit](#userpromptsubmit) および [UserPromptExpansion](#userpromptexpansion): 送信されたプロンプトの横

680* [PreToolUse](#pretooluse)、[PostToolUse](#posttooluse)、[PostToolUseFailure](#posttoolusefailure)、および [PostToolBatch](#posttoolbatch): ツール結果の横

681 

682複数のフックが同じイベントに対して `additionalContext` を返す場合、Claude はすべての値を受け取ります。値が 10,000 文字を超える場合、Claude Code はセッション ディレクトリ内のファイルに完全なテキストを書き込み、短いプレビューとファイル パスを Claude に渡します。

683 

684Claude が現在の環境の状態または実行されたばかりの操作について知っておくべき情報に `additionalContext` を使用します。

685 

686* **環境状態**: 現在のブランチ、デプロイ ターゲット、またはアクティブな機能フラグ

687* **条件付きプロジェクト ルール**: 編集されたばかりのファイルに適用されるテスト コマンド、このワークツリーで読み取り専用のディレクトリ

688* **外部データ**: 割り当てられたオープン イシュー、最近の CI 結果、内部サービスから取得されたコンテンツ

689 

690変わらない指示については、[CLAUDE.md](/ja/memory)を優先します。スクリプトを実行せずに読み込まれ、静的なプロジェクト規約の標準的な場所です。

691 

692テキストを命令型システム指示ではなく、事実的なステートメントとして記述します。「デプロイ ターゲットは本番環境です」または「このリポジトリは `bun test` を使用します」などのフレーズはプロジェクト情報として読み取られます。帯域外システム コマンドとしてフレーム化されたテキストは Claude のプロンプト インジェクション防御をトリガーする可能性があり、Claude がテキストをコンテキストとして扱う代わりに表示します。

693 

694注入されたテキストはセッション トランスクリプトに保存されます。`PostToolUse` または `UserPromptSubmit` などの中盤イベントの場合、`--continue` または `--resume` で再開すると、フックを再実行する代わりに保存されたテキストが再生されるため、タイムスタンプやコミット SHA などの値は再開時に古くなります。`SessionStart` フックは `source` を `"resume"` に設定して再開時に再度実行されるため、コンテキストをリフレッシュできます。

695 

696#### 決定制御

697 

698すべてのイベントが JSON を通じたブロッキングまたは動作制御をサポートしているわけではありません。サポートするイベントは、その決定を表現するために異なるフィールド セットを使用します。フックを書く前に、このテーブルをクイック リファレンスとして使用してください。

699 

700| イベント | 決定パターン | キー フィールド |

701| :-------------------------------------------------------------------------------------------------------------------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------- |

702| UserPromptSubmit、UserPromptExpansion、PostToolUse、PostToolUseFailure、PostToolBatch、Stop、SubagentStop、ConfigChange、PreCompact | トップレベル `decision` | `decision: "block"`、`reason` |

703| TeammateIdle、TaskCreated、TaskCompleted | 終了コードまたは `continue: false` | 終了コード 2 はアクションをブロックし、stderr フィードバックを使用します。JSON `{"continue": false, "stopReason": "..."}` はチームメイト全体を停止し、`Stop` フック動作と一致します |

704| PreToolUse | `hookSpecificOutput` | `permissionDecision`(allow/deny/ask/defer)、`permissionDecisionReason` |

705| PermissionRequest | `hookSpecificOutput` | `decision.behavior`(allow/deny) |

706| PermissionDenied | `hookSpecificOutput` | `retry: true` はモデルが拒否されたツール呼び出しを再試行できることを伝える |

707| WorktreeCreate | パス戻り値 | コマンド フックは stdout にパスを出力します。HTTP フックは `hookSpecificOutput.worktreePath` 経由で返します。フック失敗またはパス欠落で作成が失敗 |

708| Elicitation | `hookSpecificOutput` | `action`(accept/decline/cancel)、`content`(accept の場合のフォーム フィールド値) |

709| ElicitationResult | `hookSpecificOutput` | `action`(accept/decline/cancel)、`content`(フォーム フィールド値をオーバーライド) |

710| WorktreeRemove、Notification、SessionEnd、PostCompact、InstructionsLoaded、StopFailure、CwdChanged、FileChanged | なし | 決定制御なし。ログやクリーンアップなどの副作用に使用 |

711 

712各パターンの実行例を以下に示します。

713 

714<Tabs>

715 <Tab title="トップレベル決定">

716 `UserPromptSubmit`、`UserPromptExpansion`、`PostToolUse`、`PostToolUseFailure`、`PostToolBatch`、`Stop`、`SubagentStop`、`ConfigChange`、`PreCompact` で使用されます。唯一の値は `"block"` です。アクションを進行させるには、JSON から `decision` を省略するか、JSON なしで終了 0 で終了します。

717 

718 ```json theme={null}

719 {

720 "decision": "block",

721 "reason": "Test suite must pass before proceeding"

722 }

723 ```

724 </Tab>

725 

726 <Tab title="PreToolUse">

727 より豊かな制御のために `hookSpecificOutput` を使用します。許可、拒否、またはユーザーへのエスカレーション。ツール入力を実行前に変更したり、Claude 用に追加コンテキストを注入することもできます。オプションの完全なセットについては、[PreToolUse 決定制御](#pretooluse-decision-control)を参照してください。

728 

729 ```json theme={null}

730 {

731 "hookSpecificOutput": {

732 "hookEventName": "PreToolUse",

733 "permissionDecision": "deny",

734 "permissionDecisionReason": "Database writes are not allowed"

735 }

736 }

737 ```

738 </Tab>

739 

740 <Tab title="PermissionRequest">

741 `hookSpecificOutput` を使用して、ユーザーに代わって権限リクエストを許可または拒否します。許可する場合、ツールの入力を変更したり、権限ルールを適用して、ユーザーが再度プロンプトされないようにすることもできます。オプションの完全なセットについては、[PermissionRequest 決定制御](#permissionrequest-decision-control)を参照してください。

742 

743 ```json theme={null}

744 {

745 "hookSpecificOutput": {

746 "hookEventName": "PermissionRequest",

747 "decision": {

748 "behavior": "allow",

749 "updatedInput": {

750 "command": "npm run lint"

751 }

752 }

753 }

754 }

755 ```

756 </Tab>

757</Tabs>

758 

759Bash コマンド検証、プロンプト フィルタリング、自動承認スクリプトを含む拡張例については、ガイドの[自動化できること](/ja/hooks-guide#what-you-can-automate)と[Bash コマンド バリデーター リファレンス実装](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py)を参照してください。

760 

761## フック イベント

762 

763各イベントは Claude Code のライフサイクル内のポイントに対応し、フックが実行できます。以下のセクションはライフサイクルに一致する順序で配置されています。セッション セットアップから agentic ループを経由してセッション終了まで。各セクションでは、イベントがいつ発火するか、サポートするマッチャー、受け取る JSON 入力、出力を通じた動作制御方法について説明しています。

764 

765### SessionStart

766 

767Claude Code が新しいセッションを開始するか、既存のセッションを再開するときに実行されます。既存の問題や最近のコードベース変更など、開発コンテキストをロードしたり、環境変数をセットアップしたりするのに便利です。静的コンテキストでスクリプトが不要な場合は、代わりに[CLAUDE.md](/ja/memory)を使用してください。

768 

769SessionStart はすべてのセッションで実行されるため、これらのフックを高速に保ちます。`type: "command"` と `type: "mcp_tool"` フックのみがサポートされています。

770 

771マッチャー値はセッションがどのように開始されたかに対応しています。

772 

773| マッチャー | いつ発火するか |

774| :-------- | :------------------------------------ |

775| `startup` | 新しいセッション |

776| `resume` | `--resume`、`--continue`、または `/resume` |

777| `clear` | `/clear` |

778| `compact` | 自動またはマニュアル コンパクション |

779 

780#### SessionStart 入力

781 

782[共通入力フィールド](#common-input-fields)に加えて、SessionStart フックは `source`、`model`、およびオプションで `agent_type` を受け取ります。`source` フィールドはセッションがどのように開始されたかを示します。新しいセッションの場合は `"startup"`、再開されたセッションの場合は `"resume"`、`/clear` の後は `"clear"`、コンパクション後は `"compact"`。`model` フィールドはモデル識別子を含みます。`claude --agent <name>` で Claude Code を開始する場合、`agent_type` フィールドはエージェント名を含みます。

783 

784```json theme={null}

785{

786 "session_id": "abc123",

787 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

788 "cwd": "/Users/...",

789 "hook_event_name": "SessionStart",

790 "source": "startup",

791 "model": "claude-sonnet-4-6"

792}

793```

794 

795#### SessionStart 決定制御

796 

797フック スクリプトが stdout に出力するテキストは Claude のコンテキストとして追加されます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。

798 

799| フィールド | 説明 |

800| :------------------ | :------------------------------------------------------------------------------------------------------------------------ |

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

802 

803```json theme={null}

804{

805 "hookSpecificOutput": {

806 "hookEventName": "SessionStart",

807 "additionalContext": "Current branch: feat/auth-refactor\nUncommitted changes: src/auth.ts, src/login.tsx\nActive issue: #4211 Migrate to OAuth2"

808 }

809}

810```

811 

812このイベントではプレーン stdout が既に Claude に到達するため、コンテキストのみをロードするフックは JSON を構築せずに stdout に直接出力できます。`suppressOutput` などの他のフィールドとコンテキストを組み合わせる必要がある場合は JSON 形式を使用します。

813 

814#### 環境変数を永続化

815 

816SessionStart フックは `CLAUDE_ENV_FILE` 環境変数にアクセスでき、後続の Bash コマンド用に環境変数を永続化できるファイル パスを提供します。

817 

818個別の環境変数を設定するには、`export` ステートメントを `CLAUDE_ENV_FILE` に書き込みます。他のフックで設定された変数を保持するには、追加(`>>`)を使用します。

819 

820```bash theme={null}

821#!/bin/bash

822 

823if [ -n "$CLAUDE_ENV_FILE" ]; then

824 echo 'export NODE_ENV=production' >> "$CLAUDE_ENV_FILE"

825 echo 'export DEBUG_LOG=true' >> "$CLAUDE_ENV_FILE"

826 echo 'export PATH="$PATH:./node_modules/.bin"' >> "$CLAUDE_ENV_FILE"

827fi

828 

829exit 0

830```

831 

832環境からのすべての変更をキャプチャするには、セットアップ コマンドの前後でエクスポートされた変数を比較します。

833 

834```bash theme={null}

835#!/bin/bash

836 

837ENV_BEFORE=$(export -p | sort)

838 

839# 環境を変更するセットアップ コマンドを実行

840source ~/.nvm/nvm.sh

841nvm use 20

842 

843if [ -n "$CLAUDE_ENV_FILE" ]; then

844 ENV_AFTER=$(export -p | sort)

845 comm -13 <(echo "$ENV_BEFORE") <(echo "$ENV_AFTER") >> "$CLAUDE_ENV_FILE"

846fi

847 

848exit 0

849```

850 

851このファイルに書き込まれた変数は、セッション中に Claude Code が実行するすべての後続の Bash コマンドで利用可能になります。

852 

853<Note>

854 `CLAUDE_ENV_FILE` は SessionStart、[Setup](#setup)、[CwdChanged](#cwdchanged)、[FileChanged](#filechanged)フックで利用可能です。他のフック タイプはこの変数にアクセスできません。

855</Note>

856 

857### Setup

858 

859`--init-only` で Claude Code を起動するか、プリント モード(`-p`)で `--init` または `--maintenance` で起動するときのみ発火します。通常のスタートアップでは発火しません。CI またはスクリプトから明示的にトリガーする 1 回限りの依存関係インストールまたはスケジュール済みクリーンアップに使用します。通常のセッション スタートアップとは別です。セッションごとの初期化の場合は、代わりに[SessionStart](#sessionstart)を使用してください。

860 

861マッチャー値はフックをトリガーした CLI フラグに対応しています。

862 

863| マッチャー | いつ発火するか |

864| :------------ | :------------------------------------------ |

865| `init` | `claude --init-only` または `claude -p --init` |

866| `maintenance` | `claude -p --maintenance` |

867 

868`--init-only` は Setup フックと `startup` マッチャーを持つ SessionStart フックを実行してから、会話を開始せずに終了します。`--init` と `--maintenance` は `-p`(プリント モード)と組み合わせた場合のみ Setup フックを発火させます。対話型セッションでは、これら 2 つのフラグは現在 Setup フックを発火させません。

869 

870Setup はすべての起動で発火しないため、依存関係がインストールされている必要があるプラグインは Setup のみに依存できません。実用的なパターンは、最初の使用時に依存関係をチェックし、欠落している場合はインストールすることです。例えば、`${CLAUDE_PLUGIN_DATA}/node_modules` をテストし、欠落している場合は `npm install` を実行するフックまたはスキル。永続データ ディレクトリについては、[永続データ ディレクトリ](/ja/plugins-reference#persistent-data-directory)を参照して、インストールされた依存関係を保存する場所を確認してください。

871 

872#### Setup 入力

873 

874[共通入力フィールド](#common-input-fields)に加えて、Setup フックは `trigger` フィールドを受け取ります。これは `"init"` または `"maintenance"` に設定されます。

875 

876```json theme={null}

877{

878 "session_id": "abc123",

879 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

880 "cwd": "/Users/...",

881 "hook_event_name": "Setup",

882 "trigger": "init"

883}

884```

885 

886#### Setup 決定制御

887 

888Setup フックはブロックできません。終了コード 2 では、stderr がユーザーに表示されます。その他の非ゼロ終了コードでは、stderr は `--verbose` で起動した場合のみ表示されます。どちらの場合も実行は続行されます。Claude のコンテキストに情報を渡すには、JSON 出力で `additionalContext` を返します。プレーン stdout はデバッグ ログにのみ書き込まれます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、これらのイベント固有のフィールドを返すことができます。

889 

890| フィールド | 説明 |

891| :------------------ | :-------------------------------------- |

892| `additionalContext` | Claude のコンテキストに追加される文字列。複数のフックの値は連結されます |

893 

894```json theme={null}

895{

896 "hookSpecificOutput": {

897 "hookEventName": "Setup",

898 "additionalContext": "Dependencies installed: node_modules, .venv"

899 }

900}

901```

902 

903Setup フックは `CLAUDE_ENV_FILE` にアクセスできます。そのファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同じように、セッション中の後続の Bash コマンドに永続化されます。`type: "command"` と `type: "mcp_tool"` フックのみがサポートされています。

904 

905### InstructionsLoaded

906 

907`CLAUDE.md` または `.claude/rules/*.md` ファイルがコンテキストにロードされるときに発火します。このイベントはセッション開始時に熱心にロードされたファイルに対して発火し、後で Claude がネストされた `CLAUDE.md` を含むサブディレクトリにアクセスするときなど、遅延ロードされたファイルに対して再度発火します。または `paths:` フロントマターを持つ条件付きルールがマッチするとき。フックはブロッキングまたは決定制御をサポートしません。観測可能性の目的で非同期に実行されます。

908 

909マッチャーは `load_reason` に対して実行されます。例えば、`"matcher": "session_start"` を使用してセッション開始時にロードされたファイルのみに対して発火するか、`"matcher": "path_glob_match|nested_traversal"` を使用して遅延ロードのみに対して発火します。

910 

911#### InstructionsLoaded 入力

912 

913[共通入力フィールド](#common-input-fields)に加えて、InstructionsLoaded フックはこれらのフィールドを受け取ります。

914 

915| フィールド | 説明 |

916| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------- |

917| `file_path` | ロードされた命令ファイルへの絶対パス |

918| `memory_type` | ファイルのスコープ: `"User"`、`"Project"`、`"Local"`、または `"Managed"` |

919| `load_reason` | ファイルがロードされた理由: `"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"`、または `"compact"`。`"compact"` 値はコンパクション イベント後に命令ファイルが再ロードされるときに発火します |

920| `globs` | ファイルの `paths:` フロントマターからのパス グロブ パターン(存在する場合)。`path_glob_match` ロードの場合のみ存在 |

921| `trigger_file_path` | 遅延ロードの場合、このロードをトリガーしたファイルへのパス |

922| `parent_file_path` | `include` ロードの場合、このファイルを含む親命令ファイルへのパス |

923 

924```json theme={null}

925{

926 "session_id": "abc123",

927 "transcript_path": "/Users/.../.claude/projects/.../transcript.jsonl",

928 "cwd": "/Users/my-project",

929 "hook_event_name": "InstructionsLoaded",

930 "file_path": "/Users/my-project/CLAUDE.md",

931 "memory_type": "Project",

932 "load_reason": "session_start"

933}

934```

935 

936#### InstructionsLoaded 決定制御

937 

938InstructionsLoaded フックは決定制御がありません。命令ロードをブロックまたは変更できません。このイベントを監査ログ、コンプライアンス追跡、または観測可能性に使用します。

939 

940### UserPromptSubmit

941 

942ユーザーがプロンプトを送信するときに実行されます。Claude がそれを処理する前に。これにより、プロンプト/会話に基づいて追加コンテキストを追加したり、プロンプトを検証したり、特定のタイプのプロンプトをブロックしたりできます。

943 

944#### UserPromptSubmit 入力

945 

946[共通入力フィールド](#common-input-fields)に加えて、UserPromptSubmit フックはユーザーが送信したテキストを含む `prompt` フィールドを受け取ります。

947 

948```json theme={null}

949{

950 "session_id": "abc123",

951 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

952 "cwd": "/Users/...",

953 "permission_mode": "default",

954 "hook_event_name": "UserPromptSubmit",

955 "prompt": "Write a function to calculate the factorial of a number"

956}

957```

958 

959#### UserPromptSubmit 決定制御

960 

961`UserPromptSubmit` フックは、ユーザー プロンプトが処理されるかどうかを制御し、コンテキストを追加できます。すべての[JSON 出力フィールド](#json-output)が利用可能です。

962 

963終了コード 0 で会話にコンテキストを追加する 2 つの方法があります。

964 

965* **プレーン テキスト stdout**: stdout に書き込まれた JSON 以外のテキストはコンテキストとして追加されます

966* **`additionalContext` を含む JSON**: より多くの制御のために以下の JSON 形式を使用します。`additionalContext` フィールドはコンテキストとして追加されます

967 

968プレーン stdout はトランスクリプトのフック出力として表示されます。`additionalContext` フィールドはより慎重に追加されます。

969 

970プロンプトをブロックするには、`decision` を `"block"` に設定した JSON オブジェクトを返します。

971 

972| フィールド | 説明 |

973| :------------------ | :---------------------------------------------------------------------------- |

974| `decision` | `"block"` はプロンプトが処理されるのを防ぎ、コンテキストから消去します。許可するには省略 |

975| `reason` | `decision` が `"block"` のときにユーザーに表示されます。コンテキストに追加されません |

976| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

977| `sessionTitle` | セッション タイトルを設定します。`/rename` と同じ効果。プロンプト コンテンツに基づいてセッションを自動的に名前付けするのに使用 |

978 

979```json theme={null}

980{

981 "decision": "block",

982 "reason": "Explanation for decision",

983 "hookSpecificOutput": {

984 "hookEventName": "UserPromptSubmit",

985 "additionalContext": "My additional context here",

986 "sessionTitle": "My session title"

987 }

988}

989```

990 

991<Note>

992 JSON 形式は単純なユースケースには必須ではありません。コンテキストを追加するには、終了コード 0 で stdout にプレーン テキストを出力できます。プロンプトをブロックしたい場合、またはより構造化された制御が必要な場合は JSON を使用します。

993</Note>

994 

995### UserPromptExpansion

996 

997ユーザーが入力したスラッシュ コマンドが Claude に到達する前にプロンプトに展開されるときに実行されます。特定のコマンドを直接呼び出しからブロックしたり、特定のスキルのコンテキストを注入したり、ユーザーが呼び出すコマンドをログしたりするのに使用します。例えば、`deploy` にマッチするフックは、承認ファイルが存在しない限り `/deploy` をブロックできます。または、レビュー スキルにマッチするフックはチームのレビュー チェックリストを `additionalContext` として追加できます。

998 

999このイベントは `PreToolUse` がカバーしないパスをカバーします。`PreToolUse` フックが `Skill` ツールにマッチするのは Claude がツールを呼び出すときのみですが、`/skillname` を直接入力すると `PreToolUse` をバイパスします。`UserPromptExpansion` はその直接パスで発火します。

1000 

1001`command_name` でマッチします。マッチャーを空のままにして、すべてのプロンプト タイプのスラッシュ コマンドで発火します。

1002 

1003#### UserPromptExpansion 入力

1004 

1005[共通入力フィールド](#common-input-fields)に加えて、UserPromptExpansion フックは `expansion_type`、`command_name`、`command_args`、`command_source`、および元の `prompt` 文字列を受け取ります。`expansion_type` フィールドはスキルとカスタム コマンドの場合は `slash_command`、MCP サーバー プロンプトの場合は `mcp_prompt` です。

1006 

1007```json theme={null}

1008{

1009 "session_id": "abc123",

1010 "transcript_path": "/Users/.../00893aaf.jsonl",

1011 "cwd": "/Users/...",

1012 "permission_mode": "default",

1013 "hook_event_name": "UserPromptExpansion",

1014 "expansion_type": "slash_command",

1015 "command_name": "example-skill",

1016 "command_args": "arg1 arg2",

1017 "command_source": "plugin",

1018 "prompt": "/example-skill arg1 arg2"

1019}

1020```

1021 

1022#### UserPromptExpansion 決定制御

1023 

1024`UserPromptExpansion` フックは展開をブロックするか、コンテキストを追加できます。すべての[JSON 出力フィールド](#json-output)が利用可能です。

1025 

1026| フィールド | 説明 |

1027| :------------------ | :------------------------------------------------------------------------------------------- |

1028| `decision` | `"block"` はスラッシュ コマンドが展開されるのを防止。許可するには省略 |

1029| `reason` | `decision` が `"block"` のときにユーザーに表示されます |

1030| `additionalContext` | 展開されたプロンプトと一緒に Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

1031 

1032```json theme={null}

1033{

1034 "decision": "block",

1035 "reason": "This slash command is not available",

1036 "hookSpecificOutput": {

1037 "hookEventName": "UserPromptExpansion",

1038 "additionalContext": "Additional context for this expansion"

1039 }

1040}

1041```

1042 

1043### PreToolUse

1044 

1045Claude がツール パラメーターを作成した後、ツール呼び出しを処理する前に実行されます。ツール名でマッチします。`Bash`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`WebFetch`、`WebSearch`、`AskUserQuestion`、`ExitPlanMode`、および任意の[MCP ツール名](#match-mcp-tools)。

1046 

1047[PreToolUse 決定制御](#pretooluse-decision-control)を使用して、ツールの使用を許可、拒否、質問、または遅延します。

1048 

1049#### PreToolUse 入力

1050 

1051[共通入力フィールド](#common-input-fields)に加えて、PreToolUse フックは `tool_name`、`tool_input`、`tool_use_id` を受け取ります。`tool_input` フィールドはツールに依存します。

1052 

1053##### Bash

1054 

1055シェル コマンドを実行します。

1056 

1057| フィールド | タイプ | 例 | 説明 |

1058| :------------------ | :--- | :----------------- | :--------------------- |

1059| `command` | 文字列 | `"npm test"` | 実行するシェル コマンド |

1060| `description` | 文字列 | `"Run test suite"` | コマンドが何をするかのオプション説明 |

1061| `timeout` | 数値 | `120000` | ミリ秒単位のオプション タイムアウト |

1062| `run_in_background` | ブール値 | `false` | コマンドをバックグラウンドで実行するかどうか |

1063 

1064##### Write

1065 

1066ファイルを作成または上書きします。

1067 

1068| フィールド | タイプ | 例 | 説明 |

1069| :---------- | :-- | :-------------------- | :------------- |

1070| `file_path` | 文字列 | `"/path/to/file.txt"` | 書き込むファイルへの絶対パス |

1071| `content` | 文字列 | `"file content"` | ファイルに書き込むコンテンツ |

1072 

1073##### Edit

1074 

1075既存ファイル内の文字列を置換します。

1076 

1077| フィールド | タイプ | 例 | 説明 |

1078| :------------ | :--- | :-------------------- | :-------------- |

1079| `file_path` | 文字列 | `"/path/to/file.txt"` | 編集するファイルへの絶対パス |

1080| `old_string` | 文字列 | `"original text"` | 検索して置換するテキスト |

1081| `new_string` | 文字列 | `"replacement text"` | 置換テキスト |

1082| `replace_all` | ブール値 | `false` | すべての出現を置換するかどうか |

1083 

1084##### Read

1085 

1086ファイル コンテンツを読み取ります。

1087 

1088| フィールド | タイプ | 例 | 説明 |

1089| :---------- | :-- | :-------------------- | :----------------- |

1090| `file_path` | 文字列 | `"/path/to/file.txt"` | 読み取るファイルへの絶対パス |

1091| `offset` | 数値 | `10` | 読み取りを開始する行番号のオプション |

1092| `limit` | 数値 | `50` | 読み取る行数のオプション |

1093 

1094##### Glob

1095 

1096グロブ パターンにマッチするファイルを検索します。

1097 

1098| フィールド | タイプ | 例 | 説明 |

1099| :-------- | :-- | :--------------- | :--------------------------------- |

1100| `pattern` | 文字列 | `"**/*.ts"` | ファイルにマッチするグロブ パターン |

1101| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ディレクトリ。デフォルトは現在の作業ディレクトリ |

1102 

1103##### Grep

1104 

1105正規表現でファイル コンテンツを検索します。

1106 

1107| フィールド | タイプ | 例 | 説明 |

1108| :------------ | :--- | :--------------- | :----------------------------------------------------------------------------- |

1109| `pattern` | 文字列 | `"TODO.*fix"` | 検索する正規表現パターン |

1110| `path` | 文字列 | `"/path/to/dir"` | 検索するオプション ファイルまたはディレクトリ |

1111| `glob` | 文字列 | `"*.ts"` | ファイルをフィルタリングするオプション グロブ パターン |

1112| `output_mode` | 文字列 | `"content"` | `"content"`、`"files_with_matches"`、または `"count"`。デフォルトは `"files_with_matches"` |

1113| `-i` | ブール値 | `true` | 大文字小文字を区別しない検索 |

1114| `multiline` | ブール値 | `false` | 複数行マッチングを有効化 |

1115 

1116##### WebFetch

1117 

1118Web コンテンツを取得して処理します。

1119 

1120| フィールド | タイプ | 例 | 説明 |

1121| :------- | :-- | :---------------------------- | :------------------ |

1122| `url` | 文字列 | `"https://example.com/api"` | コンテンツを取得する URL |

1123| `prompt` | 文字列 | `"Extract the API endpoints"` | 取得したコンテンツで実行するプロンプト |

1124 

1125##### WebSearch

1126 

1127Web を検索します。

1128 

1129| フィールド | タイプ | 例 | 説明 |

1130| :---------------- | :-- | :----------------------------- | :------------------------ |

1131| `query` | 文字列 | `"react hooks best practices"` | 検索クエリ |

1132| `allowed_domains` | 配列 | `["docs.example.com"]` | オプション: これらのドメインからのみ結果を含める |

1133| `blocked_domains` | 配列 | `["spam.example.com"]` | オプション: これらのドメインからの結果を除外 |

1134 

1135##### Agent

1136 

1137[サブエージェント](/ja/sub-agents)を生成します。

1138 

1139| フィールド | タイプ | 例 | 説明 |

1140| :-------------- | :-- | :------------------------- | :----------------------------- |

1141| `prompt` | 文字列 | `"Find all API endpoints"` | エージェントが実行するタスク |

1142| `description` | 文字列 | `"Find API endpoints"` | タスクの短い説明 |

1143| `subagent_type` | 文字列 | `"Explore"` | 使用する特殊エージェントのタイプ |

1144| `model` | 文字列 | `"sonnet"` | デフォルトをオーバーライドするオプション モデル エイリアス |

1145 

1146##### AskUserQuestion

1147 

1148ユーザーに 1 つから 4 つの複数選択肢の質問をします。

1149 

1150| フィールド | タイプ | 例 | 説明 |

1151| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |

1152| `questions` | 配列 | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 提示する質問。各質問には `question` 文字列、短い `header`、`options` 配列、およびオプションの `multiSelect` フラグがあります |

1153| `answers` | オブジェクト | `{"Which framework?": "React"}` | オプション。質問テキストを選択されたオプション ラベルにマップします。複数選択の回答はラベルをコンマで結合します。Claude はこのフィールドを設定しません。`updatedInput` 経由で提供して、プログラムで回答します |

1154 

1155#### PreToolUse 決定制御

1156 

1157`PreToolUse` フックはツール呼び出しが進行するかどうかを制御できます。トップレベル `decision` フィールドを使用する他のフックとは異なり、PreToolUse は `hookSpecificOutput` オブジェクト内に決定を返します。これにより、より豊かな制御が可能になります。4 つの結果(許可、拒否、質問、遅延)と、実行前にツール入力を変更する機能。

1158 

1159| フィールド | 説明 |

1160| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1161| `permissionDecision` | `"allow"` はツール呼び出しをスキップします。`"deny"` はツール呼び出しを防止します。`"ask"` はユーザーに確認を促します。`"defer"` は優雅に終了して、ツールを後で再開できるようにします。[拒否と質問ルール](/ja/permissions#manage-permissions)は、フックが返す内容に関係なく引き続き評価されます |

1162| `permissionDecisionReason` | `"allow"` と `"ask"` の場合、ユーザーに表示されますが Claude には表示されません。`"deny"` の場合、Claude に表示されます。`"defer"` の場合、無視されます |

1163| `updatedInput` | 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。`"allow"` と組み合わせて自動承認するか、`"ask"` と組み合わせて変更された入力をユーザーに表示します。`"defer"` の場合、無視されます |

1164| `additionalContext` | ツール実行前に Claude のコンテキストに追加される文字列。`"defer"` の場合、無視されます。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

1165 

1166複数の PreToolUse フックが異なる決定を返す場合、優先順位は `deny` > `defer` > `ask` > `allow` です。

1167 

1168フックが `"ask"` を返すと、ユーザーに表示される権限プロンプトには、フックの出所を識別するラベルが含まれます。例えば、`[User]`、`[Project]`、`[Plugin]`、または `[Local]`。これにより、ユーザーはどの設定ソースが確認を要求しているかを理解できます。

1169 

1170```json theme={null}

1171{

1172 "hookSpecificOutput": {

1173 "hookEventName": "PreToolUse",

1174 "permissionDecision": "allow",

1175 "permissionDecisionReason": "My reason here",

1176 "updatedInput": {

1177 "field_to_modify": "new value"

1178 },

1179 "additionalContext": "Current environment: production. Proceed with caution."

1180 }

1181}

1182```

1183 

1184`AskUserQuestion` と `ExitPlanMode` はユーザー操作が必要で、通常は[非対話型モード](/ja/headless)で `-p` フラグでブロックします。`permissionDecision: "allow"` を `updatedInput` と一緒に返すことでその要件を満たします。フックは stdin からツールの入力を読み取り、独自の UI を通じて回答を収集し、ツールがプロンプトなしで実行されるように `updatedInput` で返します。`"allow"` のみを返すことはこれらのツールには十分ではありません。`AskUserQuestion` の場合、元の `questions` 配列をエコーバックし、各質問のテキストを選択された回答にマップする [`answers`](#askuserquestion) オブジェクトを追加します。

1185 

1186<Note>

1187 PreToolUse は以前、トップレベル `decision` と `reason` フィールドを使用していましたが、このイベントでは非推奨です。代わりに `hookSpecificOutput.permissionDecision` と `hookSpecificOutput.permissionDecisionReason` を使用してください。非推奨の値 `"approve"` と `"block"` は `"allow"` と `"deny"` にマップされます。PostToolUse と Stop などの他のイベントは、現在の形式としてトップレベル `decision` と `reason` を使用し続けます。

1188</Note>

1189 

1190#### ツール呼び出しを後で再開するために遅延

1191 

1192`"defer"` は `claude -p` をサブプロセスとして実行し、その JSON 出力を読み取る Agent SDK アプリまたはカスタム UI などの統合用です。これにより、その呼び出しプロセスは Claude をツール呼び出しで一時停止し、独自のインターフェースを通じて入力を収集し、中断したところから再開できます。Claude Code は[非対話型モード](/ja/headless)で `-p` フラグでのみこの値を尊重します。対話型セッションではログ警告を記録し、フック結果を無視します。

1193 

1194<Note>

1195 `defer` 値には Claude Code v2.1.89 以降が必要です。以前のバージョンはこれを認識せず、ツールは通常の権限フローを通じて進行します。

1196</Note>

1197 

1198`AskUserQuestion` ツールが典型的なケースです。Claude はユーザーに何かを尋ねたいのですが、応答するターミナルがありません。ラウンド トリップは次のように機能します。

1199 

12001. Claude が `AskUserQuestion` を呼び出します。`PreToolUse` フックが発火します。

12012. フックは `permissionDecision: "defer"` を返します。ツールは実行されません。プロセスは `stop_reason: "tool_deferred"` で終了し、トランスクリプトに保留中のツール呼び出しが保持されます。

12023. 呼び出しプロセスは SDK 結果から `deferred_tool_use` を読み取り、独自の UI で質問を表示し、回答を待ちます。

12034. 呼び出しプロセスは `claude -p --resume <session-id>` を実行します。同じツール呼び出しが `PreToolUse` を再度発火させます。

12045. フックは `permissionDecision: "allow"` を返し、`updatedInput` に回答を含めます。ツールが実行され、Claude が続行します。

1205 

1206`deferred_tool_use` フィールドはツールの `id`、`name`、`input` を含みます。`input` は実行前にキャプチャされたツール呼び出しのパラメーターです。

1207 

1208```json theme={null}

1209{

1210 "type": "result",

1211 "subtype": "success",

1212 "stop_reason": "tool_deferred",

1213 "session_id": "abc123",

1214 "deferred_tool_use": {

1215 "id": "toolu_01abc",

1216 "name": "AskUserQuestion",

1217 "input": { "questions": [{ "question": "Which framework?", "header": "Framework", "options": [{"label": "React"}, {"label": "Vue"}], "multiSelect": false }] }

1218 }

1219}

1220```

1221 

1222タイムアウトまたは再試行制限はありません。セッションはディスク上に残ります。回答の準備ができていないときに再開する場合、フックは再度 `"defer"` を返すことができ、プロセスは同じ方法で終了します。呼び出しプロセスはループを破るタイミングを制御し、最終的に `"allow"` または `"deny"` を返します。

1223 

1224`"defer"` は Claude が単一のツール呼び出しを行うときのみ機能します。Claude が一度に複数のツール呼び出しを行う場合、`"defer"` は警告で無視され、ツールは通常の権限フローを通じて進行します。制約が存在するのは、再開が 1 つのツールのみを再実行できるためです。バッチから 1 つの呼び出しを遅延させる方法はなく、他の呼び出しは未解決のままになります。

1225 

1226遅延されたツールが再開時に利用できなくなった場合、プロセスは `stop_reason: "tool_deferred_unavailable"` と `is_error: true` で終了し、フックが発火する前に。これは、提供されたツールの MCP サーバーが再開されたセッションに接続されていない場合に発生します。`deferred_tool_use` ペイロードは引き続き含まれるため、どのツールが欠落しているかを識別できます。

1227 

1228<Warning>

1229 `--resume` は前のセッションから権限モードを復元しません。遅延されたときにアクティブだった `--permission-mode` フラグを再開時に渡します。Claude Code はモードが異なる場合に警告をログします。

1230</Warning>

1231 

1232### PermissionRequest

1233 

1234ユーザーに権限ダイアログが表示されるときに実行されます。

1235[PermissionRequest 決定制御](#permissionrequest-decision-control)を使用して、ユーザーに代わって許可または拒否します。

1236 

1237ツール名でマッチします。PreToolUse と同じ値。

1238 

1239#### PermissionRequest 入力

1240 

1241PermissionRequest フックは PreToolUse フックのような `tool_name` と `tool_input` フィールドを受け取りますが、`tool_use_id` はありません。オプションの `permission_suggestions` 配列には、ユーザーが通常権限ダイアログで見る「常に許可」オプションが含まれています。違いはフックが発火するタイミングです。PermissionRequest フックはユーザーに権限ダイアログが表示されようとしているときに実行され、PreToolUse フックは権限ステータスに関係なくツール実行前に実行されます。

1242 

1243```json theme={null}

1244{

1245 "session_id": "abc123",

1246 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1247 "cwd": "/Users/...",

1248 "permission_mode": "default",

1249 "hook_event_name": "PermissionRequest",

1250 "tool_name": "Bash",

1251 "tool_input": {

1252 "command": "rm -rf node_modules",

1253 "description": "Remove node_modules directory"

1254 },

1255 "permission_suggestions": [

1256 {

1257 "type": "addRules",

1258 "rules": [{ "toolName": "Bash", "ruleContent": "rm -rf node_modules" }],

1259 "behavior": "allow",

1260 "destination": "localSettings"

1261 }

1262 ]

1263}

1264```

1265 

1266#### PermissionRequest 決定制御

1267 

1268`PermissionRequest` フックは権限リクエストを許可または拒否できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを持つ `decision` オブジェクトを返すことができます。

1269 

1270| フィールド | 説明 |

1271| :------------------- | :------------------------------------------------------------------------------------------------------------------------------ |

1272| `behavior` | `"allow"` は権限を付与、`"deny"` は拒否。[拒否と質問ルール](/ja/permissions#manage-permissions)は引き続き評価されるため、`"allow"` を返すフックは一致する拒否ルールをオーバーライドしません |

1273| `updatedInput` | `"allow"` のみ: 実行前にツールの入力パラメーターを変更します。入力オブジェクト全体を置き換えるため、変更されていないフィールドを変更されたフィールドと一緒に含めます。変更された入力は拒否と質問ルールに対して再評価されます |

1274| `updatedPermissions` | `"allow"` のみ: 適用する[権限更新エントリ](#permission-update-entries)の配列。許可ルールを追加したり、セッション権限モードを変更したりするなど |

1275| `message` | `"deny"` のみ: 権限が拒否された理由を Claude に伝える |

1276| `interrupt` | `"deny"` のみ: `true` の場合、Claude を停止 |

1277 

1278```json theme={null}

1279{

1280 "hookSpecificOutput": {

1281 "hookEventName": "PermissionRequest",

1282 "decision": {

1283 "behavior": "allow",

1284 "updatedInput": {

1285 "command": "npm run lint"

1286 }

1287 }

1288 }

1289}

1290```

1291 

1292#### 権限更新エントリ

1293 

1294`updatedPermissions` 出力フィールドと[`permission_suggestions` 入力フィールド](#permissionrequest-input)の両方が同じエントリ オブジェクトの配列を使用します。各エントリには、その他のフィールドを決定する `type` と、変更が書き込まれる場所を制御する `destination` があります。

1295 

1296| `type` | フィールド | 効果 |

1297| :------------------ | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |

1298| `addRules` | `rules`、`behavior`、`destination` | 権限ルールを追加します。`rules` は `{toolName, ruleContent?}` オブジェクトの配列です。ツール全体にマッチするには `ruleContent` を省略します。`behavior` は `"allow"`、`"deny"`、または `"ask"` |

1299| `replaceRules` | `rules`、`behavior`、`destination` | `destination` で指定された `behavior` のすべてのルールを提供されたルールに置き換えます |

1300| `removeRules` | `rules`、`behavior`、`destination` | 指定された `behavior` の一致するルールを削除 |

1301| `setMode` | `mode`、`destination` | 権限モードを変更します。有効なモードは `default`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan` |

1302| `addDirectories` | `directories`、`destination` | 作業ディレクトリを追加します。`directories` はパス文字列の配列 |

1303| `removeDirectories` | `directories`、`destination` | 作業ディレクトリを削除 |

1304 

1305<Note>

1306 `setMode` で `bypassPermissions` を使用する場合、セッションが既にバイパス モードで起動されている場合のみ有効です。`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`、または設定の `permissions.defaultMode: "bypassPermissions"` を使用し、モードが [`permissions.disableBypassPermissionsMode`](/ja/permissions#managed-settings)で無効化されていない場合。それ以外の場合、更新は no-op です。`bypassPermissions` は `destination` に関係なく `defaultMode` として永続化されません。

1307</Note>

1308 

1309すべてのエントリの `destination` フィールドは、変更がメモリに留まるか設定ファイルに永続化されるかを決定します。

1310 

1311| `destination` | 書き込み先 |

1312| :---------------- | :---------------------------- |

1313| `session` | メモリのみ、セッション終了時に破棄 |

1314| `localSettings` | `.claude/settings.local.json` |

1315| `projectSettings` | `.claude/settings.json` |

1316| `userSettings` | `~/.claude/settings.json` |

1317 

1318フックは受け取った `permission_suggestions` の 1 つを独自の `updatedPermissions` 出力として反映できます。これは、ユーザーがダイアログで「常に許可」オプションを選択するのと同等です。

1319 

1320### PostToolUse

1321 

1322ツールが正常に完了した直後に実行されます。

1323 

1324ツール名でマッチします。PreToolUse と同じ値。

1325 

1326#### PostToolUse 入力

1327 

1328`PostToolUse` フックはツールがすでに正常に実行された後に発火します。入力には、ツールに送信された引数である `tool_input` と、返された結果である `tool_response` の両方が含まれます。両方の正確なスキーマはツールに依存します。

1329 

1330```json theme={null}

1331{

1332 "session_id": "abc123",

1333 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1334 "cwd": "/Users/...",

1335 "permission_mode": "default",

1336 "hook_event_name": "PostToolUse",

1337 "tool_name": "Write",

1338 "tool_input": {

1339 "file_path": "/path/to/file.txt",

1340 "content": "file content"

1341 },

1342 "tool_response": {

1343 "filePath": "/path/to/file.txt",

1344 "success": true

1345 },

1346 "tool_use_id": "toolu_01ABC123...",

1347 "duration_ms": 12

1348}

1349```

1350 

1351| フィールド | 説明 |

1352| :------------ | :---------------------------------------------------- |

1353| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |

1354 

1355#### PostToolUse 決定制御

1356 

1357`PostToolUse` フックはツール実行後に Claude にフィードバックを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。

1358 

1359| フィールド | 説明 |

1360| :--------------------- | :---------------------------------------------------------------------------- |

1361| `decision` | `"block"` は Claude に `reason` でプロンプトを表示。許可するには省略 |

1362| `reason` | `decision` が `"block"` のときに Claude に表示される説明 |

1363| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

1364| `updatedToolOutput` | ツールの出力を提供された値に置換してから Claude に送信。値はツールの出力形状と一致する必要があります |

1365| `updatedMCPToolOutput` | [MCP ツール](#match-mcp-tools)のみ: ツールの出力を置換。すべてのツールで機能する `updatedToolOutput` を優先 |

1366 

1367以下の例は `Bash` 呼び出しの出力を置換します。置換値は `Bash` ツールの出力形状と一致します。

1368 

1369```json theme={null}

1370{

1371 "hookSpecificOutput": {

1372 "hookEventName": "PostToolUse",

1373 "additionalContext": "Additional information for Claude",

1374 "updatedToolOutput": {

1375 "stdout": "[redacted]",

1376 "stderr": "",

1377 "interrupted": false,

1378 "isImage": false

1379 }

1380 }

1381}

1382```

1383 

1384<Warning>

1385 `updatedToolOutput` は Claude が見るものだけを変更します。フックが発火するまでにツールはすでに実行されているため、書き込まれたファイル、実行されたコマンド、送信されたネットワーク リクエストはすでに有効になっています。OpenTelemetry ツール スパンやアナリティクス イベントなどのテレメトリも、フックが実行される前に元の出力をキャプチャします。ツール呼び出しを実行前に防止または変更するには、代わりに[PreToolUse](#pretooluse)フックを使用します。

1386 

1387 置換値はツールの出力形状と一致する必要があります。組み込みツールは単純な文字列ではなく構造化オブジェクトを返します。例えば、`Bash` は `stdout`、`stderr`、`interrupted`、`isImage` フィールドを持つオブジェクトを返します。組み込みツールの場合、ツールの出力スキーマと一致しない値は無視され、元の出力が使用されます。MCP ツール出力はスキーマ検証なしで渡されます。Claude が必要とするエラー詳細を削除すると、Claude が誤った仮定で進行する可能性があります。

1388</Warning>

1389 

1390### PostToolUseFailure

1391 

1392ツール実行が失敗するときに実行されます。このイベントはエラーをスロー、または失敗結果を返すツール呼び出しに対して発火します。これを使用して失敗をログ、アラートを送信、または Claude に是正フィードバックを提供します。

1393 

1394ツール名でマッチします。PreToolUse と同じ値。

1395 

1396#### PostToolUseFailure 入力

1397 

1398PostToolUseFailure フックは PostToolUse と同じ `tool_name` と `tool_input` フィールドを受け取り、エラー情報をトップレベル フィールドとして受け取ります。

1399 

1400```json theme={null}

1401{

1402 "session_id": "abc123",

1403 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1404 "cwd": "/Users/...",

1405 "permission_mode": "default",

1406 "hook_event_name": "PostToolUseFailure",

1407 "tool_name": "Bash",

1408 "tool_input": {

1409 "command": "npm test",

1410 "description": "Run test suite"

1411 },

1412 "tool_use_id": "toolu_01ABC123...",

1413 "error": "Command exited with non-zero status code 1",

1414 "is_interrupt": false,

1415 "duration_ms": 4187

1416}

1417```

1418 

1419| フィールド | 説明 |

1420| :------------- | :---------------------------------------------------- |

1421| `error` | 何が悪かったかを説明する文字列 |

1422| `is_interrupt` | 失敗がユーザー割り込みによって引き起こされたかどうかを示すオプション ブール値 |

1423| `duration_ms` | オプション。ツール実行時間(ミリ秒)。権限プロンプトと PreToolUse フックに費やされた時間は除外 |

1424 

1425#### PostToolUseFailure 決定制御

1426 

1427`PostToolUseFailure` フックはツール失敗後に Claude にコンテキストを提供できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。

1428 

1429| フィールド | 説明 |

1430| :------------------ | :---------------------------------------------------------------------------- |

1431| `additionalContext` | Claude のコンテキストに追加される文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

1432 

1433```json theme={null}

1434{

1435 "hookSpecificOutput": {

1436 "hookEventName": "PostToolUseFailure",

1437 "additionalContext": "Additional information about the failure for Claude"

1438 }

1439}

1440```

1441 

1442### PostToolBatch

1443 

1444バッチ内のすべてのツール呼び出しが解決された後、Claude Code が次のモデル リクエストを送信する前に、1 回実行されます。`PostToolUse` はツールごとに 1 回発火します。つまり、Claude が並列ツール呼び出しを行うときに同時に発火します。`PostToolBatch` は完全なバッチで正確に 1 回発火するため、単一のツールではなく、実行されたツールのセットに依存するコンテキストを注入するのに適切な場所です。このイベントにはマッチャーがありません。

1445 

1446#### PostToolBatch 入力

1447 

1448[共通入力フィールド](#common-input-fields)に加えて、PostToolBatch フックはバッチ内のすべてのツール呼び出しを説明する `tool_calls` 配列を受け取ります。

1449 

1450```json theme={null}

1451{

1452 "session_id": "abc123",

1453 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1454 "cwd": "/Users/...",

1455 "permission_mode": "default",

1456 "hook_event_name": "PostToolBatch",

1457 "tool_calls": [

1458 {

1459 "tool_name": "Read",

1460 "tool_input": {"file_path": "/.../ledger/accounts.py"},

1461 "tool_use_id": "toolu_01...",

1462 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."

1463 },

1464 {

1465 "tool_name": "Read",

1466 "tool_input": {"file_path": "/.../ledger/transactions.py"},

1467 "tool_use_id": "toolu_02...",

1468 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."

1469 }

1470 ]

1471}

1472```

1473 

1474`tool_response` はモデルが対応する `tool_result` ブロックで受け取るのと同じコンテンツを含みます。値はツールが発行したのと同じように、シリアル化された文字列またはコンテンツ ブロック配列です。`Read` の場合、これは生のファイル コンテンツではなく、行番号が付いたテキストを意味します。応答は大きくなる可能性があるため、必要なフィールドのみを解析してください。

1475 

1476<Note>

1477 `tool_response` の形状は `PostToolUse` のものと異なります。`PostToolUse` はツールの構造化 `Output` オブジェクト(`Write` の場合は `{filePath: "...", success: true}` など)を渡します。`PostToolBatch` はモデルが見るシリアル化された `tool_result` コンテンツを渡します。

1478</Note>

1479 

1480#### PostToolBatch 決定制御

1481 

1482`PostToolBatch` フックは Claude のコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。

1483 

1484| フィールド | 説明 |

1485| :------------------ | :----------------------------------------------------------------------------------- |

1486| `additionalContext` | 次のモデル呼び出しの前に 1 回注入されるコンテキスト文字列。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

1487 

1488```json theme={null}

1489{

1490 "hookSpecificOutput": {

1491 "hookEventName": "PostToolBatch",

1492 "additionalContext": "These files are part of the ledger module. Run pytest before marking the task complete."

1493 }

1494}

1495```

1496 

1497`decision: "block"` または `continue: false` を返すと、次のモデル呼び出しの前に agentic ループが停止します。

1498 

1499### PermissionDenied

1500 

1501[自動モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器がツール呼び出しを拒否するときに実行されます。このフックは自動モードでのみ発火します。手動で権限ダイアログを拒否するとき、`PreToolUse` フックがコールをブロックするとき、または `deny` ルールがマッチするときは実行されません。これを使用して分類器の拒否をログ、設定を調整、またはモデルがツール呼び出しを再試行できることを伝えます。

1502 

1503ツール名でマッチします。PreToolUse と同じ値。

1504 

1505#### PermissionDenied 入力

1506 

1507[共通入力フィールド](#common-input-fields)に加えて、PermissionDenied フックは `tool_name`、`tool_input`、`tool_use_id`、`reason` を受け取ります。

1508 

1509```json theme={null}

1510{

1511 "session_id": "abc123",

1512 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1513 "cwd": "/Users/...",

1514 "permission_mode": "auto",

1515 "hook_event_name": "PermissionDenied",

1516 "tool_name": "Bash",

1517 "tool_input": {

1518 "command": "rm -rf /tmp/build",

1519 "description": "Clean build directory"

1520 },

1521 "tool_use_id": "toolu_01ABC123...",

1522 "reason": "Auto mode denied: command targets a path outside the project"

1523}

1524```

1525 

1526| フィールド | 説明 |

1527| :------- | :--------------------- |

1528| `reason` | ツール呼び出しが拒否された理由の分類器の説明 |

1529 

1530#### PermissionDenied 決定制御

1531 

1532PermissionDenied フックはモデルが拒否されたツール呼び出しを再試行できることを伝えることができます。`hookSpecificOutput.retry` を `true` に設定した JSON オブジェクトを返します。

1533 

1534```json theme={null}

1535{

1536 "hookSpecificOutput": {

1537 "hookEventName": "PermissionDenied",

1538 "retry": true

1539 }

1540}

1541```

1542 

1543`retry` が `true` の場合、Claude Code は会話にメッセージを追加し、モデルがツール呼び出しを再試行できることを伝えます。拒否自体は反転されません。フックが JSON を返さない場合、または `retry: false` を返す場合、拒否は立ったままで、モデルは元の拒否メッセージを受け取ります。

1544 

1545### Notification

1546 

1547Claude Code が通知を送信するときに実行されます。通知タイプでマッチします。`permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_complete`、`elicitation_response`。マッチャーを省略して、すべての通知タイプのフックを実行します。

1548 

1549異なるマッチャーを使用して、通知タイプに応じて異なるハンドラーを実行します。この設定は、Claude が権限承認を必要とするときに権限固有のアラート スクリプトをトリガーし、Claude がアイドル状態になったときに異なる通知をトリガーします。

1550 

1551```json theme={null}

1552{

1553 "hooks": {

1554 "Notification": [

1555 {

1556 "matcher": "permission_prompt",

1557 "hooks": [

1558 {

1559 "type": "command",

1560 "command": "/path/to/permission-alert.sh"

1561 }

1562 ]

1563 },

1564 {

1565 "matcher": "idle_prompt",

1566 "hooks": [

1567 {

1568 "type": "command",

1569 "command": "/path/to/idle-notification.sh"

1570 }

1571 ]

1572 }

1573 ]

1574 }

1575}

1576```

1577 

1578#### Notification 入力

1579 

1580[共通入力フィールド](#common-input-fields)に加えて、Notification フックは通知テキストを含む `message`、オプションの `title`、発火したタイプを示す `notification_type` を受け取ります。

1581 

1582```json theme={null}

1583{

1584 "session_id": "abc123",

1585 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1586 "cwd": "/Users/...",

1587 "hook_event_name": "Notification",

1588 "message": "Claude needs your permission to use Bash",

1589 "title": "Permission needed",

1590 "notification_type": "permission_prompt"

1591}

1592```

1593 

1594Notification フックは通知をブロックまたは変更できません。これらは副作用(外部サービスへの通知の転送など)を目的としています。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)(`systemMessage` など)が適用されます。

1595 

1596### SubagentStart

1597 

1598Agent ツール経由でサブエージェントが生成されるときに実行されます。エージェント タイプ名でフィルタリングするマッチャーをサポート(`general-purpose`、`Explore`、`Plan` などの組み込みエージェント、または `.claude/agents/` からのカスタム エージェント名)。

1599 

1600#### SubagentStart 入力

1601 

1602[共通入力フィールド](#common-input-fields)に加えて、SubagentStart フックはサブエージェントの一意の識別子を含む `agent_id` とエージェント名を含む `agent_type`(`"general-purpose"`、`"Explore"`、`"Plan"` などの組み込みエージェント、またはカスタム エージェント名)を受け取ります。

1603 

1604```json theme={null}

1605{

1606 "session_id": "abc123",

1607 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1608 "cwd": "/Users/...",

1609 "hook_event_name": "SubagentStart",

1610 "agent_id": "agent-abc123",

1611 "agent_type": "Explore"

1612}

1613```

1614 

1615SubagentStart フックはサブエージェント作成をブロックできませんが、サブエージェントにコンテキストを注入できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、以下を返すことができます。

1616 

1617| フィールド | 説明 |

1618| :------------------ | :-------------------------------------------------------------------------------------------- |

1619| `additionalContext` | サブエージェントのコンテキストの開始時に追加される文字列。最初のプロンプトの前。[Claude のコンテキストを追加](#add-context-for-claude)を参照してください |

1620 

1621```json theme={null}

1622{

1623 "hookSpecificOutput": {

1624 "hookEventName": "SubagentStart",

1625 "additionalContext": "Follow security guidelines for this task"

1626 }

1627}

1628```

1629 

1630### SubagentStop

1631 

1632Claude Code サブエージェントが応答を終了したときに実行されます。エージェント タイプでマッチします。SubagentStart と同じ値。

1633 

1634#### SubagentStop 入力

1635 

1636[共通入力フィールド](#common-input-fields)に加えて、SubagentStop フックは `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path`、`last_assistant_message` を受け取ります。`agent_type` フィールドはマッチャー フィルタリングに使用される値です。`transcript_path` はメイン セッションのトランスクリプト、`agent_transcript_path` はネストされた `subagents/` フォルダに保存されたサブエージェント独自のトランスクリプトです。`last_assistant_message` フィールドはサブエージェントの最終応答のテキスト コンテンツを含むため、フックはトランスクリプト ファイルを解析せずにアクセスできます。

1637 

1638```json theme={null}

1639{

1640 "session_id": "abc123",

1641 "transcript_path": "~/.claude/projects/.../abc123.jsonl",

1642 "cwd": "/Users/...",

1643 "permission_mode": "default",

1644 "hook_event_name": "SubagentStop",

1645 "stop_hook_active": false,

1646 "agent_id": "def456",

1647 "agent_type": "Explore",

1648 "agent_transcript_path": "~/.claude/projects/.../abc123/subagents/agent-def456.jsonl",

1649 "last_assistant_message": "Analysis complete. Found 3 potential issues..."

1650}

1651```

1652 

1653SubagentStop フックは[Stop フック](#stop-decision-control)と同じ決定制御形式を使用します。

1654 

1655### TaskCreated

1656 

1657タスクが `TaskCreate` ツール経由で作成されるときに実行されます。命名規則を実施したり、タスク説明を要求したり、特定のタスクが作成されるのを防いだりするのに使用します。

1658 

1659`TaskCreated` フックが終了コード 2 で終了すると、タスクは作成されず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。チームメイト全体を停止する代わりに再実行するには、`{"continue": false, "stopReason": "..."}` を含む JSON を返します。TaskCreated フックはマッチャーをサポートせず、すべての出現で発火します。

1660 

1661#### TaskCreated 入力

1662 

1663[共通入力フィールド](#common-input-fields)に加えて、TaskCreated フックは `task_id`、`task_subject`、およびオプションで `task_description`、`teammate_name`、`team_name` を受け取ります。

1664 

1665```json theme={null}

1666{

1667 "session_id": "abc123",

1668 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1669 "cwd": "/Users/...",

1670 "permission_mode": "default",

1671 "hook_event_name": "TaskCreated",

1672 "task_id": "task-001",

1673 "task_subject": "Implement user authentication",

1674 "task_description": "Add login and signup endpoints",

1675 "teammate_name": "implementer",

1676 "team_name": "my-project"

1677}

1678```

1679 

1680| フィールド | 説明 |

1681| :----------------- | :-------------------------------- |

1682| `task_id` | 作成されるタスクの識別子 |

1683| `task_subject` | タスクのタイトル |

1684| `task_description` | タスクの詳細説明。存在しない可能性があります |

1685| `teammate_name` | タスクを作成しているチームメイトの名前。存在しない可能性があります |

1686| `team_name` | チームの名前。存在しない可能性があります |

1687 

1688#### TaskCreated 決定制御

1689 

1690TaskCreated フックはタスク作成を制御する 2 つの方法をサポートしています。

1691 

1692* **終了コード 2**: タスクは作成されず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。

1693* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイト全体を停止し、`Stop` フック動作と一致します。`stopReason` はユーザーに表示されます。

1694 

1695この例は、タスク件名が必要な形式に従わない場合、タスク作成をブロックします。

1696 

1697```bash theme={null}

1698#!/bin/bash

1699INPUT=$(cat)

1700TASK_SUBJECT=$(echo "$INPUT" | jq -r '.task_subject')

1701 

1702if [[ ! "$TASK_SUBJECT" =~ ^\[TICKET-[0-9]+\] ]]; then

1703 echo "Task subject must start with a ticket number, e.g. '[TICKET-123] Add feature'" >&2

1704 exit 2

1705fi

1706 

1707exit 0

1708```

1709 

1710### TaskCompleted

1711 

1712タスクが完了としてマークされるときに実行されます。これは 2 つの状況で発火します。任意のエージェントが TaskUpdate ツール経由でタスクを明示的に完了としてマークするとき、または[エージェント チーム](/ja/agent-teams)チームメイトが進行中のタスクでターンを終了するとき。これを使用してチームメイトが作業を停止する前に品質ゲートを実施します。例えば、lint チェックの合格を要求したり、出力ファイルが存在することを確認したりします。

1713 

1714`TaskCompleted` フックが終了コード 2 で終了すると、タスクは完了としてマークされず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。チームメイト全体を停止する代わりに再実行するには、`{"continue": false, "stopReason": "..."}` を含む JSON を返します。TaskCompleted フックはマッチャーをサポートせず、すべての出現で発火します。

1715 

1716#### TaskCompleted 入力

1717 

1718[共通入力フィールド](#common-input-fields)に加えて、TaskCompleted フックは `task_id`、`task_subject`、およびオプションで `task_description`、`teammate_name`、`team_name` を受け取ります。

1719 

1720```json theme={null}

1721{

1722 "session_id": "abc123",

1723 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1724 "cwd": "/Users/...",

1725 "permission_mode": "default",

1726 "hook_event_name": "TaskCompleted",

1727 "task_id": "task-001",

1728 "task_subject": "Implement user authentication",

1729 "task_description": "Add login and signup endpoints",

1730 "teammate_name": "implementer",

1731 "team_name": "my-project"

1732}

1733```

1734 

1735| フィールド | 説明 |

1736| :----------------- | :-------------------------------- |

1737| `task_id` | 完了しているタスクの識別子 |

1738| `task_subject` | タスクのタイトル |

1739| `task_description` | タスクの詳細説明。存在しない可能性があります |

1740| `teammate_name` | タスクを完了しているチームメイトの名前。存在しない可能性があります |

1741| `team_name` | チームの名前。存在しない可能性があります |

1742 

1743#### TaskCompleted 決定制御

1744 

1745TaskCompleted フックはタスク完了を制御する 2 つの方法をサポートしています。

1746 

1747* **終了コード 2**: タスクは完了としてマークされず、stderr メッセージはモデルへのフィードバックとしてフィードバックされます。

1748* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイト全体を停止し、`Stop` フック動作と一致します。`stopReason` はユーザーに表示されます。

1749 

1750この例はテストを実行し、失敗した場合はタスク完了をブロックします。

1751 

1752```bash theme={null}

1753#!/bin/bash

1754INPUT=$(cat)

1755TASK_SUBJECT=$(echo "$INPUT" | jq -r '.task_subject')

1756 

1757# テスト スイートを実行

1758if ! npm test 2>&1; then

1759 echo "Tests not passing. Fix failing tests before completing: $TASK_SUBJECT" >&2

1760 exit 2

1761fi

1762 

1763exit 0

1764```

1765 

1766### Stop

1767 

1768メイン Claude Code エージェントが応答を終了したときに実行されます。ユーザー割り込みが原因で停止が発生した場合は実行されません。API エラーは代わりに[StopFailure](#stopfailure)を発火させます。

1769 

1770#### Stop 入力

1771 

1772[共通入力フィールド](#common-input-fields)に加えて、Stop フックは `stop_hook_active` と `last_assistant_message` を受け取ります。`stop_hook_active` フィールドは、Claude Code がすでに stop フックの結果として続行している場合は `true` です。この値をチェックするか、Claude Code が無限に実行されるのを防ぐためにトランスクリプトを処理します。`last_assistant_message` フィールドは Claude の最終応答のテキスト コンテンツを含むため、フックはトランスクリプト ファイルを解析せずにアクセスできます。

1773 

1774```json theme={null}

1775{

1776 "session_id": "abc123",

1777 "transcript_path": "~/.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1778 "cwd": "/Users/...",

1779 "permission_mode": "default",

1780 "hook_event_name": "Stop",

1781 "stop_hook_active": true,

1782 "last_assistant_message": "I've completed the refactoring. Here's a summary..."

1783}

1784```

1785 

1786#### Stop 決定制御

1787 

1788`Stop` と `SubagentStop` フックは Claude が続行するかどうかを制御できます。すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、フック スクリプトはこれらのイベント固有のフィールドを返すことができます。

1789 

1790| フィールド | 説明 |

1791| :--------- | :------------------------------------------------ |

1792| `decision` | `"block"` は Claude が停止するのを防止。Claude を停止させるには省略 |

1793| `reason` | `decision` が `"block"` のときに必須。Claude が続行すべき理由を伝える |

1794 

1795```json theme={null}

1796{

1797 "decision": "block",

1798 "reason": "Must be provided when Claude is blocked from stopping"

1799}

1800```

1801 

1802### StopFailure

1803 

1804[Stop](#stop)の代わりに、ターンが API エラーのために終了するときに実行されます。出力と終了コードは無視されます。Claude が API エラーのため応答を完了できない場合、失敗をログ、アラートを送信、または回復アクションを実行するのに使用します。

1805 

1806#### StopFailure 入力

1807 

1808[共通入力フィールド](#common-input-fields)に加えて、StopFailure フックは `error`、オプションの `error_details`、およびオプションの `last_assistant_message` を受け取ります。`error` フィールドはエラー タイプを識別し、マッチャー フィルタリングに使用されます。

1809 

1810| フィールド | 説明 |

1811| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |

1812| `error` | エラー タイプ: `rate_limit`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`server_error`、`max_output_tokens`、または `unknown` |

1813| `error_details` | 利用可能な場合、エラーに関する追加詳細 |

1814| `last_assistant_message` | 会話に表示されるレンダリングされたエラー テキスト。`Stop` と `SubagentStop` とは異なり、このフィールドは Claude の会話出力ではなく、`"API Error: Rate limit reached"` などの API エラー文字列を含みます |

1815 

1816```json theme={null}

1817{

1818 "session_id": "abc123",

1819 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1820 "cwd": "/Users/...",

1821 "hook_event_name": "StopFailure",

1822 "error": "rate_limit",

1823 "error_details": "429 Too Many Requests",

1824 "last_assistant_message": "API Error: Rate limit reached"

1825}

1826```

1827 

1828StopFailure フックは決定制御がありません。通知とログの目的でのみ実行されます。

1829 

1830### TeammateIdle

1831 

1832[エージェント チーム](/ja/agent-teams)チームメイトがターンを終了した後、アイドル状態になろうとしているときに実行されます。これを使用してチームメイトが作業を停止する前に品質ゲートを実施します。例えば、lint チェックの合格を要求したり、出力ファイルが存在することを確認したりします。

1833 

1834`TeammateIdle` フックが終了コード 2 で終了すると、チームメイトは stderr メッセージをフィードバックとして受け取り、アイドル状態になる代わりに作業を続行します。チームメイト全体を停止する代わりに再実行するには、`{"continue": false, "stopReason": "..."}` を含む JSON を返します。TeammateIdle フックはマッチャーをサポートせず、すべての出現で発火します。

1835 

1836#### TeammateIdle 入力

1837 

1838[共通入力フィールド](#common-input-fields)に加えて、TeammateIdle フックは `teammate_name` と `team_name` を受け取ります。

1839 

1840```json theme={null}

1841{

1842 "session_id": "abc123",

1843 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1844 "cwd": "/Users/...",

1845 "permission_mode": "default",

1846 "hook_event_name": "TeammateIdle",

1847 "teammate_name": "researcher",

1848 "team_name": "my-project"

1849}

1850```

1851 

1852| フィールド | 説明 |

1853| :-------------- | :----------------------- |

1854| `teammate_name` | アイドル状態になろうとしているチームメイトの名前 |

1855| `team_name` | チームの名前 |

1856 

1857#### TeammateIdle 決定制御

1858 

1859TeammateIdle フックはチームメイト動作を制御する 2 つの方法をサポートしています。

1860 

1861* **終了コード 2**: チームメイトは stderr メッセージをフィードバックとして受け取り、アイドル状態になる代わりに作業を続行します。

1862* **JSON `{"continue": false, "stopReason": "..."}`**: チームメイト全体を停止し、`Stop` フック動作と一致します。`stopReason` はユーザーに表示されます。

1863 

1864この例は、チームメイトがアイドル状態になることを許可する前に、ビルド アーティファクトが存在することをチェックします。

1865 

1866```bash theme={null}

1867#!/bin/bash

1868 

1869if [ ! -f "./dist/output.js" ]; then

1870 echo "Build artifact missing. Run the build before stopping." >&2

1871 exit 2

1872fi

1873 

1874exit 0

1875```

1876 

1877### ConfigChange

1878 

1879セッション中に設定ファイルが変更されるときに実行されます。設定変更を監査したり、セキュリティ ポリシーを実施したり、設定ファイルへの不正な変更をブロックしたりするのに使用します。

1880 

1881ConfigChange フックは設定ファイル、管理ポリシー設定、スキル ファイルの変更に対して発火します。入力の `source` フィールドは、どのタイプの設定が変更されたかを示し、オプションの `file_path` フィールドは変更されたファイルへのパスを提供します。

1882 

1883マッチャーは設定ソースでフィルタリングします。

1884 

1885| マッチャー | いつ発火するか |

1886| :----------------- | :-------------------------------- |

1887| `user_settings` | `~/.claude/settings.json` が変更 |

1888| `project_settings` | `.claude/settings.json` が変更 |

1889| `local_settings` | `.claude/settings.local.json` が変更 |

1890| `policy_settings` | 管理ポリシー設定が変更 |

1891| `skills` | `.claude/skills/` のスキル ファイルが変更 |

1892 

1893この例は、セキュリティ監査のためにすべての設定変更をログします。

1894 

1895```json theme={null}

1896{

1897 "hooks": {

1898 "ConfigChange": [

1899 {

1900 "hooks": [

1901 {

1902 "type": "command",

1903 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/audit-config-change.sh"

1904 }

1905 ]

1906 }

1907 ]

1908 }

1909}

1910```

1911 

1912#### ConfigChange 入力

1913 

1914[共通入力フィールド](#common-input-fields)に加えて、ConfigChange フックは `source` とオプションで `file_path` を受け取ります。`source` フィールドは、どのタイプの設定が変更されたかを示し、`file_path` は変更されたファイルへのパスを提供します。

1915 

1916```json theme={null}

1917{

1918 "session_id": "abc123",

1919 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

1920 "cwd": "/Users/...",

1921 "hook_event_name": "ConfigChange",

1922 "source": "project_settings",

1923 "file_path": "/Users/.../my-project/.claude/settings.json"

1924}

1925```

1926 

1927#### ConfigChange 決定制御

1928 

1929ConfigChange フックは設定変更が有効になるのをブロックできます。終了コード 2 または JSON `decision` を使用して変更を防止します。ブロックされた場合、新しい設定は実行中のセッションに適用されません。

1930 

1931| フィールド | 説明 |

1932| :--------- | :-------------------------------------- |

1933| `decision` | `"block"` は設定変更が適用されるのを防止。変更を許可するには省略 |

1934| `reason` | `decision` が `"block"` のときにユーザーに表示される説明 |

1935 

1936```json theme={null}

1937{

1938 "decision": "block",

1939 "reason": "Configuration changes to project settings require admin approval"

1940}

1941```

1942 

1943`policy_settings` の変更はブロックできません。フックは `policy_settings` ソースに対して引き続き発火するため、監査ログに使用できますが、ブロッキング決定は無視されます。これにより、エンタープライズ管理設定が常に有効になることが保証されます。

1944 

1945### CwdChanged

1946 

1947セッション中に作業ディレクトリが変更されるときに実行されます。例えば、Claude が `cd` コマンドを実行するとき。これを使用してディレクトリ変更に反応します。環境変数をリロードしたり、プロジェクト固有のツールチェーンをアクティブにしたり、セットアップ スクリプトを自動的に実行したりします。[FileChanged](#filechanged)とペアになり、[direnv](https://direnv.net/)などのツール用に、ディレクトリごとの環境を管理します。

1948 

1949CwdChanged フックは `CLAUDE_ENV_FILE` にアクセスできます。そのファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同じように、セッション中の後続の Bash コマンドに永続化されます。

1950 

1951CwdChanged はマッチャーをサポートせず、すべてのディレクトリ変更で発火します。

1952 

1953#### CwdChanged 入力

1954 

1955[共通入力フィールド](#common-input-fields)に加えて、CwdChanged フックは `old_cwd` と `new_cwd` を受け取ります。

1956 

1957```json theme={null}

1958{

1959 "session_id": "abc123",

1960 "transcript_path": "/Users/.../.claude/projects/.../transcript.jsonl",

1961 "cwd": "/Users/my-project/src",

1962 "hook_event_name": "CwdChanged",

1963 "old_cwd": "/Users/my-project",

1964 "new_cwd": "/Users/my-project/src"

1965}

1966```

1967 

1968#### CwdChanged 出力

1969 

1970すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、CwdChanged フックは `watchPaths` を返して、[FileChanged](#filechanged)が監視するファイル パスを動的に設定できます。

1971 

1972| フィールド | 説明 |

1973| :----------- | :------------------------------------------------------------------------------ |

1974| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。新しいディレクトリに入るときは、空の配列を返すのが一般的です |

1975 

1976CwdChanged フックは決定制御がありません。ディレクトリ変更をブロックできません。

1977 

1978### FileChanged

1979 

1980監視されたファイルがディスク上で変更されるときに実行されます。プロジェクト設定ファイルが変更されたときに環境変数をリロードするのに便利です。

1981 

1982このイベントの `matcher` は 2 つの役割を果たします。

1983 

1984* **監視リストを構築**: 値は `|` で分割され、各セグメントは作業ディレクトリのリテラル ファイル名として登録されるため、`.envrc|.env` はこれら 2 つのファイルを正確に監視します。正規表現パターンはここでは役に立ちません。`^\.env` のような値は `^\.env` という文字通りの名前のファイルを監視します。

1985* **どのフックが実行されるかをフィルタリング**: 監視されたファイルが変更されると、同じ値は標準[マッチャー ルール](#matcher-patterns)を使用して、変更されたファイルのベース名に対してどのフック グループが実行されるかをフィルタリングします。

1986 

1987FileChanged フックは `CLAUDE_ENV_FILE` にアクセスできます。そのファイルに書き込まれた変数は、[SessionStart フック](#persist-environment-variables)と同じように、セッション中の後続の Bash コマンドに永続化されます。

1988 

1989#### FileChanged 入力

1990 

1991[共通入力フィールド](#common-input-fields)に加えて、FileChanged フックは `file_path` と `event` を受け取ります。

1992 

1993| フィールド | 説明 |

1994| :---------- | :----------------------------------------------------------------- |

1995| `file_path` | 変更されたファイルへの絶対パス |

1996| `event` | 何が起こったか: `"change"`(ファイル変更)、`"add"`(ファイル作成)、または `"unlink"`(ファイル削除) |

1997 

1998```json theme={null}

1999{

2000 "session_id": "abc123",

2001 "transcript_path": "/Users/.../.claude/projects/.../transcript.jsonl",

2002 "cwd": "/Users/my-project",

2003 "hook_event_name": "FileChanged",

2004 "file_path": "/Users/my-project/.envrc",

2005 "event": "change"

2006}

2007```

2008 

2009#### FileChanged 出力

2010 

2011すべてのフックで利用可能な[JSON 出力フィールド](#json-output)に加えて、FileChanged フックは `watchPaths` を返して、監視されるファイル パスを動的に更新できます。

2012 

2013| フィールド | 説明 |

2014| :----------- | :----------------------------------------------------------------------------------------------- |

2015| `watchPaths` | 絶対パスの配列。現在の動的監視リストを置き換えます(マッチャー設定からのパスは常に監視されます)。フック スクリプトが変更されたファイルに基づいて検出した追加ファイルを監視する場合に使用します |

2016 

2017FileChanged フックは決定制御がありません。ファイル変更をブロックできません。

2018 

2019### WorktreeCreate

2020 

2021`claude --worktree` を実行するか、[サブエージェントが `isolation: "worktree"` を使用](/ja/sub-agents#choose-the-subagent-scope)する場合、Claude Code は `git worktree` を使用して分離された作業コピーを作成します。WorktreeCreate フックを設定する場合、デフォルトの git 動作を置き換え、SVN、Perforce、Mercurial などの別のバージョン管理システムを使用できます。

2022 

2023フックは作成されたワークツリー ディレクトリへの絶対パスを返す必要があります。Claude Code はこのパスを分離されたセッションの作業ディレクトリとして使用します。コマンド フックは stdout にパスを出力します。HTTP フックは `hookSpecificOutput.worktreePath` 経由で返します。

2024 

2025フックはデフォルトの git 動作を完全に置き換えるため、[`.worktreeinclude`](/ja/worktrees#copy-gitignored-files-into-worktrees)は処理されません。`.env` などのローカル設定ファイルを新しいワークツリーにコピーする必要がある場合は、フック スクリプト内で実行してください。

2026 

2027この例は SVN 作業コピーを作成し、Claude Code が使用するパスを出力します。リポジトリ URL を自分のものに置き換えます。

2028 

2029```json theme={null}

2030{

2031 "hooks": {

2032 "WorktreeCreate": [

2033 {

2034 "hooks": [

2035 {

2036 "type": "command",

2037 "command": "bash -c 'NAME=$(jq -r .name); DIR=\"$HOME/.claude/worktrees/$NAME\"; svn checkout https://svn.example.com/repo/trunk \"$DIR\" >&2 && echo \"$DIR\"'"

2038 }

2039 ]

2040 }

2041 ]

2042 }

2043}

2044```

2045 

2046フックは stdin から JSON 入力からワークツリー `name` を読み取り、新しいディレクトリに新しいコピーをチェックアウトし、ディレクトリ パスを出力します。最後の行の `echo` は Claude Code が読み取るワークツリー パスです。他の出力を stderr にリダイレクトして、パスに干渉しないようにします。

2047 

2048#### WorktreeCreate 入力

2049 

2050[共通入力フィールド](#common-input-fields)に加えて、WorktreeCreate フックは `name` フィールドを受け取ります。これは新しいワークツリーのスラッグ識別子で、ユーザーが指定するか自動生成されます(例えば、`bold-oak-a3f2`)。

2051 

2052```json theme={null}

2053{

2054 "session_id": "abc123",

2055 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2056 "cwd": "/Users/...",

2057 "hook_event_name": "WorktreeCreate",

2058 "name": "feature-auth"

2059}

2060```

2061 

2062#### WorktreeCreate 出力

2063 

2064WorktreeCreate フックは標準的な許可/ブロック決定モデルを使用しません。代わりに、フックの成功または失敗が結果を決定します。フックは作成されたワークツリー ディレクトリへの絶対パスを返す必要があります。

2065 

2066* **コマンド フック** (`type: "command"`): stdout にパスを出力します。

2067* **HTTP フック** (`type: "http"`): レスポンス本体で `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` を返します。

2068 

2069フックが失敗するか出力を生成しない場合、ワークツリー作成はエラーで失敗します。

2070 

2071### WorktreeRemove

2072 

2073[WorktreeCreate](#worktreecreate)のクリーンアップ対応。このフックはワークツリーが削除されるときに発火します。`--worktree` セッションを終了して削除を選択するか、`isolation: "worktree"` を持つサブエージェントが完了するとき。git ベースのワークツリーの場合、Claude は `git worktree remove` で自動的にクリーンアップを処理します。git 以外のバージョン管理システムの WorktreeCreate フックを設定した場合、クリーンアップを処理するために WorktreeRemove フックとペアにします。なければ、ワークツリー ディレクトリはディスク上に残ります。

2074 

2075Claude Code は WorktreeCreate が返したパスを `worktree_path` としてフック入力に渡します。この例はそのパスを読み取り、ディレクトリを削除します。

2076 

2077```json theme={null}

2078{

2079 "hooks": {

2080 "WorktreeRemove": [

2081 {

2082 "hooks": [

2083 {

2084 "type": "command",

2085 "command": "bash -c 'jq -r .worktree_path | xargs rm -rf'"

2086 }

2087 ]

2088 }

2089 ]

2090 }

2091}

2092```

2093 

2094#### WorktreeRemove 入力

2095 

2096[共通入力フィールド](#common-input-fields)に加え、WorktreeRemove フックは削除されるワークツリーへの絶対パスである `worktree_path` フィールドを受け取ります。

2097 

2098```json theme={null}

2099{

2100 "session_id": "abc123",

2101 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2102 "cwd": "/Users/...",

2103 "hook_event_name": "WorktreeRemove",

2104 "worktree_path": "/Users/.../my-project/.claude/worktrees/feature-auth"

2105}

2106```

2107 

2108WorktreeRemove フックは決定制御がありません。ワークツリー削除をブロックできませんが、バージョン管理状態の削除やアーカイブ変更などのクリーンアップ タスクを実行できます。フック失敗はデバッグ モードでのみログされます。

2109 

2110### PreCompact

2111 

2112Claude Code がコンパクション操作を実行しようとしている前に実行されます。

2113 

2114マッチャー値は、コンパクションが手動でトリガーされたか自動的にトリガーされたかを示します。

2115 

2116| マッチャー | いつ発火するか |

2117| :------- | :--------------------------- |

2118| `manual` | `/compact` |

2119| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション |

2120 

2121終了コード 2 でコンパクションをブロック。手動の `/compact` の場合、stderr メッセージはユーザーに表示されます。JSON で `"decision": "block"` を返してブロックすることもできます。

2122 

2123自動コンパクションのブロックは、いつ発火するかに応じて異なる効果があります。コンテキスト制限の前にコンパクションがプロアクティブにトリガーされた場合、Claude Code はそれをスキップし、会話は非圧縮で続行されます。コンテキスト制限エラーから回復するためにコンパクションがトリガーされた場合、基礎となるエラーが表示され、現在のリクエストが失敗します。

2124 

2125#### PreCompact 入力

2126 

2127[共通入力フィールド](#common-input-fields)に加えて、PreCompact フックは `trigger` と `custom_instructions` を受け取ります。`manual` の場合、`custom_instructions` はユーザーが `/compact` に渡すものを含みます。`auto` の場合、`custom_instructions` は空です。

2128 

2129```json theme={null}

2130{

2131 "session_id": "abc123",

2132 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2133 "cwd": "/Users/...",

2134 "hook_event_name": "PreCompact",

2135 "trigger": "manual",

2136 "custom_instructions": ""

2137}

2138```

2139 

2140### PostCompact

2141 

2142Claude Code がコンパクション操作を完了した後に実行されます。このイベントを使用して、新しいコンパクト状態に反応します。例えば、生成されたサマリーをログしたり、外部状態を更新したりします。

2143 

2144`PreCompact` と同じマッチャー値が適用されます。

2145 

2146| マッチャー | いつ発火するか |

2147| :------- | :---------------------------- |

2148| `manual` | `/compact` の後 |

2149| `auto` | コンテキスト ウィンドウが満杯のときの自動コンパクション後 |

2150 

2151#### PostCompact 入力

2152 

2153[共通入力フィールド](#common-input-fields)に加えて、PostCompact フックは `trigger` と `compact_summary` を受け取ります。`compact_summary` フィールドはコンパクション操作によって生成された会話サマリーを含みます。

2154 

2155```json theme={null}

2156{

2157 "session_id": "abc123",

2158 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2159 "cwd": "/Users/...",

2160 "hook_event_name": "PostCompact",

2161 "trigger": "manual",

2162 "compact_summary": "Summary of the compacted conversation..."

2163}

2164```

2165 

2166PostCompact フックは決定制御がありません。コンパクション結果に影響を与えることはできませんが、フォローアップ タスクを実行できます。

2167 

2168### SessionEnd

2169 

2170Claude Code セッションが終了するときに実行されます。クリーンアップ タスク、セッション統計のログ、またはセッション状態の保存に便利です。終了理由でフィルタリングするマッチャーをサポートします。

2171 

2172フック入力の `reason` フィールドはセッションが終了した理由を示します。

2173 

2174| 理由 | 説明 |

2175| :---------------------------- | :------------------------------- |

2176| `clear` | `/clear` コマンドでセッションをクリア |

2177| `resume` | インタラクティブ `/resume` 経由でセッションを切り替え |

2178| `logout` | ユーザーがログアウト |

2179| `prompt_input_exit` | プロンプト入力が表示されている間にユーザーが終了 |

2180| `bypass_permissions_disabled` | バイパス権限モードが無効化 |

2181| `other` | その他の終了理由 |

2182 

2183#### SessionEnd 入力

2184 

2185[共通入力フィールド](#common-input-fields)に加えて、SessionEnd フックはセッションが終了した理由を示す `reason` フィールドを受け取ります。上記の[理由テーブル](#sessionend)をすべての値について参照してください。

2186 

2187```json theme={null}

2188{

2189 "session_id": "abc123",

2190 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2191 "cwd": "/Users/...",

2192 "hook_event_name": "SessionEnd",

2193 "reason": "other"

2194}

2195```

2196 

2197SessionEnd フックは決定制御がありません。セッション終了をブロックできませんが、クリーンアップ タスクを実行できます。

2198 

2199SessionEnd フックのデフォルト タイムアウトは 1.5 秒です。これはセッション終了、`/clear`、およびインタラクティブ `/resume` 経由でのセッション切り替えに適用されます。フックにより多くの時間が必要な場合は、フック設定でフックごとの `timeout` を設定します。全体的な予算は、設定ファイルで設定されたフックごとのタイムアウトの最高値に自動的に引き上げられ、最大 60 秒です。プラグイン提供のフックに設定されたタイムアウトは予算を引き上げません。予算を明示的にオーバーライドするには、`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` 環境変数をミリ秒単位で設定します。

2200 

2201```bash theme={null}

2202CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

2203```

2204 

2205### Elicitation

2206 

2207MCP サーバーがタスク中にユーザー入力をリクエストするときに実行されます。デフォルトでは、Claude Code はユーザーが応答するためのインタラクティブ ダイアログを表示します。フックはこのリクエストをインターセプトして、プログラムで応答し、ダイアログを完全にスキップできます。

2208 

2209マッチャー フィールドは MCP サーバー名に対してマッチします。

2210 

2211#### Elicitation 入力

2212 

2213[共通入力フィールド](#common-input-fields)に加えて、Elicitation フックは `mcp_server_name`、`message`、およびオプションで `mode`、`url`、`elicitation_id`、`requested_schema` フィールドを受け取ります。

2214 

2215フォーム モード elicitation(最も一般的なケース)の場合。

2216 

2217```json theme={null}

2218{

2219 "session_id": "abc123",

2220 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2221 "cwd": "/Users/...",

2222 "permission_mode": "default",

2223 "hook_event_name": "Elicitation",

2224 "mcp_server_name": "my-mcp-server",

2225 "message": "Please provide your credentials",

2226 "mode": "form",

2227 "requested_schema": {

2228 "type": "object",

2229 "properties": {

2230 "username": { "type": "string", "title": "Username" }

2231 }

2232 }

2233}

2234```

2235 

2236URL モード elicitation(ブラウザベースの認証)の場合。

2237 

2238```json theme={null}

2239{

2240 "session_id": "abc123",

2241 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2242 "cwd": "/Users/...",

2243 "permission_mode": "default",

2244 "hook_event_name": "Elicitation",

2245 "mcp_server_name": "my-mcp-server",

2246 "message": "Please authenticate",

2247 "mode": "url",

2248 "url": "https://auth.example.com/login"

2249}

2250```

2251 

2252#### Elicitation 出力

2253 

2254ダイアログを表示せずにプログラムで応答するには、`hookSpecificOutput` を含む JSON オブジェクトを返します。

2255 

2256```json theme={null}

2257{

2258 "hookSpecificOutput": {

2259 "hookEventName": "Elicitation",

2260 "action": "accept",

2261 "content": {

2262 "username": "alice"

2263 }

2264 }

2265}

2266```

2267 

2268| フィールド | 値 | 説明 |

2269| :-------- | :-------------------------- | :------------------------------------------ |

2270| `action` | `accept`、`decline`、`cancel` | リクエストを受け入れるか、拒否するか、キャンセルするか |

2271| `content` | オブジェクト | 送信するフォーム フィールド値。`action` が `accept` のときのみ使用 |

2272 

2273終了コード 2 は elicitation を拒否し、stderr をユーザーに表示します。

2274 

2275### ElicitationResult

2276 

2277ユーザーが MCP elicitation に応答した後に実行されます。フックは応答を観察、変更、またはブロックしてから、MCP サーバーに送り返すことができます。

2278 

2279マッチャー フィールドは MCP サーバー名に対してマッチします。

2280 

2281#### ElicitationResult 入力

2282 

2283[共通入力フィールド](#common-input-fields)に加えて、ElicitationResult フックは `mcp_server_name`、`action`、およびオプションで `mode`、`elicitation_id`、`content` フィールドを受け取ります。

2284 

2285```json theme={null}

2286{

2287 "session_id": "abc123",

2288 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2289 "cwd": "/Users/...",

2290 "permission_mode": "default",

2291 "hook_event_name": "ElicitationResult",

2292 "mcp_server_name": "my-mcp-server",

2293 "action": "accept",

2294 "content": { "username": "alice" },

2295 "mode": "form",

2296 "elicitation_id": "elicit-123"

2297}

2298```

2299 

2300#### ElicitationResult 出力

2301 

2302ユーザーの応答をオーバーライドするには、`hookSpecificOutput` を含む JSON オブジェクトを返します。

2303 

2304```json theme={null}

2305{

2306 "hookSpecificOutput": {

2307 "hookEventName": "ElicitationResult",

2308 "action": "decline",

2309 "content": {}

2310 }

2311}

2312```

2313 

2314| フィールド | 値 | 説明 |

2315| :-------- | :-------------------------- | :------------------------------------------------- |

2316| `action` | `accept`、`decline`、`cancel` | ユーザーのアクションをオーバーライド |

2317| `content` | オブジェクト | フォーム フィールド値をオーバーライド。`action` が `accept` のときのみ意味がある |

2318 

2319終了コード 2 はレスポンスをブロックし、有効なアクションを `decline` に変更します。

2320 

2321## プロンプト ベースのフック

2322 

2323コマンド、HTTP、MCP ツール フックに加えて、Claude Code はプロンプト ベースのフック(`type: "prompt"`)をサポートしており、LLM を使用してアクションを許可またはブロックするかどうかを評価し、エージェント フック(`type: "agent"`)はツール アクセスを持つ agentic ベリファイアーを生成します。すべてのイベントがすべてのフック タイプをサポートしているわけではありません。

2324 

23255 つのフック タイプ(`command`、`http`、`mcp_tool`、`prompt`、`agent`)すべてをサポートするイベント:

2326 

2327* `PermissionRequest`

2328* `PostToolBatch`

2329* `PostToolUse`

2330* `PostToolUseFailure`

2331* `PreToolUse`

2332* `Stop`

2333* `SubagentStop`

2334* `TaskCompleted`

2335* `TaskCreated`

2336* `UserPromptExpansion`

2337* `UserPromptSubmit`

2338 

2339`command`、`http`、`mcp_tool` フックをサポートするが、`prompt` または `agent` をサポートしないイベント:

2340 

2341* `ConfigChange`

2342* `CwdChanged`

2343* `Elicitation`

2344* `ElicitationResult`

2345* `FileChanged`

2346* `InstructionsLoaded`

2347* `Notification`

2348* `PermissionDenied`

2349* `PostCompact`

2350* `PreCompact`

2351* `SessionEnd`

2352* `StopFailure`

2353* `SubagentStart`

2354* `TeammateIdle`

2355* `WorktreeCreate`

2356* `WorktreeRemove`

2357 

2358`SessionStart` と `Setup` は `command` と `mcp_tool` フックをサポートしています。これらは `http`、`prompt`、`agent` フックをサポートしていません。

2359 

2360### プロンプト ベースのフックの仕組み

2361 

2362プロンプト ベースのフックは Bash コマンドを実行する代わりに:

2363 

23641. フック入力とプロンプトを Claude モデル(デフォルトは Haiku)に送信

23652. LLM は決定を含む構造化 JSON で応答

23663. Claude Code は決定を自動的に処理

2367 

2368### プロンプト フック設定

2369 

2370`type` を `"prompt"` に設定し、`command` の代わりに `prompt` 文字列を提供します。`$ARGUMENTS` プレースホルダーを使用して、フックの JSON 入力データをプロンプト テキストに注入します。Claude Code は結合されたプロンプトと入力を高速 Claude モデルに送信し、JSON 決定を返します。

2371 

2372この `Stop` フックは、Claude が終了する前にすべてのタスクが完了しているかどうかを評価するよう LLM に求めます:

2373 

2374```json theme={null}

2375{

2376 "hooks": {

2377 "Stop": [

2378 {

2379 "hooks": [

2380 {

2381 "type": "prompt",

2382 "prompt": "Evaluate if Claude should stop: $ARGUMENTS. Check if all tasks are complete."

2383 }

2384 ]

2385 }

2386 ]

2387 }

2388}

2389```

2390 

2391| フィールド | 必須 | 説明 |

2392| :-------- | :-- | :---------------------------------------------------------------------------------------------------------- |

2393| `type` | はい | `"prompt"` である必要があります |

2394| `prompt` | はい | LLM に送信するプロンプト テキスト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します。`$ARGUMENTS` が存在しない場合、入力 JSON がプロンプトに追加されます |

2395| `model` | いいえ | 評価に使用するモデル。デフォルトは高速モデル |

2396| `timeout` | いいえ | タイムアウト(秒単位)。デフォルト:30 |

2397 

2398### レスポンス スキーマ

2399 

2400LLM は以下を含む JSON で応答する必要があります:

2401 

2402```json theme={null}

2403{

2404 "ok": true | false,

2405 "reason": "Explanation for the decision"

2406}

2407```

2408 

2409| フィールド | 説明 |

2410| :------- | :---------------------------- |

2411| `ok` | `true` はアクションを許可、`false` は防止 |

2412| `reason` | `ok` が `false` のときに必須。ブロックの説明 |

2413 

2414`ok: false` で何が起こるかはイベントによって異なります:

2415 

2416* `Stop` と `SubagentStop`:理由は Claude の次の指示としてフィードバックされ、ターンが続行されます

2417* `PreToolUse`:ツール呼び出しが拒否され、理由は Claude にツール エラーとして返されます。これはコマンド フックの `permissionDecision: "deny"` と同等です

2418* `PostToolUse`、`PostToolBatch`、`UserPromptSubmit`、`UserPromptExpansion`:ターンが終了し、理由は警告行としてチャットに表示されます。これはコマンド フックから `"continue": false` を返すことと同等です

2419* `PostToolUseFailure`、`TaskCreated`、`TaskCompleted`:理由は Claude にツール エラーとして返されます。`PreToolUse` と同様です

2420* `PermissionRequest`:`ok: false` は効果がありません。フックから承認を拒否するには、[コマンド フック](#command-hook-fields)を使用して `hookSpecificOutput.decision.behavior: "deny"` を返します

2421 

2422任意のイベントでより細かい制御が必要な場合は、[決定制御](#decision-control)で説明されているイベント ごとのフィールドを使用して、[コマンド フック](#command-hook-fields)を使用してください。

2423 

2424### 例:マルチ基準 Stop フック

2425 

2426この `Stop` フックは詳細なプロンプトを使用して、Claude が停止することを許可する前に 3 つの条件をチェックします。`"ok"` が `false` の場合、Claude は提供された理由を次の指示として受け取り、作業を続行します。`SubagentStop` フックは同じ形式を使用して、[サブエージェント](/ja/sub-agents)が停止すべきかどうかを評価します:

2427 

2428```json theme={null}

2429{

2430 "hooks": {

2431 "Stop": [

2432 {

2433 "hooks": [

2434 {

2435 "type": "prompt",

2436 "prompt": "You are evaluating whether Claude should stop working. Context: $ARGUMENTS\n\nAnalyze the conversation and determine if:\n1. All user-requested tasks are complete\n2. Any errors need to be addressed\n3. Follow-up work is needed\n\nRespond with JSON: {\"ok\": true} to allow stopping, or {\"ok\": false, \"reason\": \"your explanation\"} to continue working.",

2437 "timeout": 30

2438 }

2439 ]

2440 }

2441 ]

2442 }

2443}

2444```

2445 

2446## エージェント ベースのフック

2447 

2448<Warning>

2449 エージェント フックは実験的です。動作と設定は将来のリリースで変更される可能性があります。本番ワークフローの場合は、[コマンド フック](#command-hook-fields)を優先してください。

2450</Warning>

2451 

2452エージェント ベースのフック(`type: "agent"`)はプロンプト ベースのフックのようですが、マルチターン ツール アクセスを備えています。単一の LLM 呼び出しの代わりに、エージェント フックはサブエージェントを生成し、ファイルを読み取り、コードを検索し、コードベースを検査して条件を検証できます。エージェント フックはプロンプト ベースのフックと同じイベントをサポートしています。

2453 

2454### エージェント フックの仕組み

2455 

2456エージェント フックが発火するとき:

2457 

24581. Claude Code はプロンプトとフックの JSON 入力を持つサブエージェントを生成します

24592. サブエージェントは Read、Grep、Glob などのツールを使用して調査できます

24603. 最大 50 ターン後、サブエージェントは構造化 `{ "ok": true/false }` 決定を返します

24614. Claude Code はプロンプト フックと同じ方法で決定を処理します

2462 

2463エージェント フックは、フック入力データのみを評価するのではなく、実際のファイルを検査したりテスト出力を検査したりする必要がある場合に便利です。

2464 

2465### エージェント フック設定

2466 

2467`type` を `"agent"` に設定し、`prompt` 文字列を提供します。設定フィールドは[プロンプト フック](#prompt-hook-configuration)と同じですが、より長いデフォルト タイムアウトです:

2468 

2469| フィールド | 必須 | 説明 |

2470| :-------- | :-- | :----------------------------------------------------------- |

2471| `type` | はい | `"agent"` である必要があります |

2472| `prompt` | はい | 検証する内容を説明するプロンプト。フック入力 JSON のプレースホルダーとして `$ARGUMENTS` を使用します |

2473| `model` | いいえ | 使用するモデル。デフォルトは高速モデル |

2474| `timeout` | いいえ | タイムアウト(秒単位)。デフォルト:60 |

2475 

2476レスポンス スキーマはプロンプト フックと同じです:許可するには `{ "ok": true }` を、ブロックするには `{ "ok": false, "reason": "..." }` を返します。

2477 

2478この `Stop` フックは、Claude が終了することを許可する前にすべてのユニット テストが合格することを検証します:

2479 

2480```json theme={null}

2481{

2482 "hooks": {

2483 "Stop": [

2484 {

2485 "hooks": [

2486 {

2487 "type": "agent",

2488 "prompt": "Verify that all unit tests pass. Run the test suite and check the results. $ARGUMENTS",

2489 "timeout": 120

2490 }

2491 ]

2492 }

2493 ]

2494 }

2495}

2496```

2497 

2498## バックグラウンドでフックを実行

2499 

2500デフォルトでは、フックは完了するまで Claude の実行をブロックします。デプロイメント、テスト スイート、外部 API 呼び出しなどの長時間実行タスクの場合、`"async": true` を設定してフックをバックグラウンドで実行し、Claude が作業を続行できるようにします。非同期フックはブロックまたは Claude の動作を制御できません。`decision`、`permissionDecision`、`continue` などのレスポンス フィールドは、制御しようとしたアクションがすでに完了しているため、効果がありません。

2501 

2502### 非同期フックを設定

2503 

2504コマンド フックの設定に `"async": true` を追加して、Claude をブロックせずにバックグラウンドで実行します。このフィールドは `type: "command"` フックでのみ利用可能です。

2505 

2506このフックは、すべての `Write` ツール呼び出しの後にテスト スクリプトを実行します。Claude は `run-tests.sh` が最大 120 秒間実行されている間、すぐに作業を続行します。スクリプトが完了すると、その出力は次の会話ターンで配信されます。

2507 

2508```json theme={null}

2509{

2510 "hooks": {

2511 "PostToolUse": [

2512 {

2513 "matcher": "Write",

2514 "hooks": [

2515 {

2516 "type": "command",

2517 "command": "/path/to/run-tests.sh",

2518 "async": true,

2519 "timeout": 120

2520 }

2521 ]

2522 }

2523 ]

2524 }

2525}

2526```

2527 

2528`timeout` フィールドはバックグラウンド プロセスの最大時間(秒単位)を設定します。指定されない場合、非同期フックは同期フックと同じ 10 分のデフォルトを使用します。

2529 

2530### 非同期フックの実行方法

2531 

2532非同期フックが発火すると、Claude Code はフック プロセスを開始し、完了を待たずにすぐに続行します。フックは同期フックと同じ JSON 入力を stdin 経由で受け取ります。

2533 

2534バックグラウンド プロセスが終了した後、フックが `systemMessage` または `additionalContext` フィールドを含む JSON レスポンスを生成した場合、そのコンテンツは次の会話ターンで Claude にコンテキストとして配信されます。

2535 

2536非同期フック完了通知はデフォルトで抑制されます。これらを表示するには、`Ctrl+O` で詳細モードを有効にするか、`--verbose` で Claude Code を開始します。

2537 

2538### 例: ファイル変更後にテストを実行

2539 

2540このフックは Claude がファイルを書き込むたびにバックグラウンドでテスト スイートを開始し、テストが完了したら結果を Claude に報告します。このスクリプトをプロジェクトの `.claude/hooks/run-tests-async.sh` に保存し、`chmod +x` で実行可能にします。

2541 

2542```bash theme={null}

2543#!/bin/bash

2544# run-tests-async.sh

2545 

2546# stdin からフック入力を読み取る

2547INPUT=$(cat)

2548FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')

2549 

2550# ソース ファイルのみテストを実行

2551if [[ "$FILE_PATH" != *.ts && "$FILE_PATH" != *.js ]]; then

2552 exit 0

2553fi

2554 

2555# テストを実行し、systemMessage 経由で結果を報告

2556RESULT=$(npm test 2>&1)

2557EXIT_CODE=$?

2558 

2559if [ $EXIT_CODE -eq 0 ]; then

2560 echo "{\"systemMessage\": \"Tests passed after editing $FILE_PATH\"}"

2561else

2562 echo "{\"systemMessage\": \"Tests failed after editing $FILE_PATH: $RESULT\"}"

2563fi

2564```

2565 

2566次に、プロジェクト ルートの `.claude/settings.json` にこの設定を追加します。`async: true` フラグにより、Claude はテストの実行中に作業を続行できます。

2567 

2568```json theme={null}

2569{

2570 "hooks": {

2571 "PostToolUse": [

2572 {

2573 "matcher": "Write|Edit",

2574 "hooks": [

2575 {

2576 "type": "command",

2577 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/run-tests-async.sh",

2578 "async": true,

2579 "timeout": 300

2580 }

2581 ]

2582 }

2583 ]

2584 }

2585}

2586```

2587 

2588### 制限事項

2589 

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

2591 

2592* `async` をサポートするのは `type: "command"` フックのみです。プロンプト ベースのフックは非同期で実行できません。

2593* 非同期フックはツール呼び出しをブロックまたは決定を返すことができません。フックが完了するまでに、トリガーするアクションはすでに進行しています。

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

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

2596 

2597## セキュリティに関する考慮事項

2598 

2599### 免責事項

2600 

2601コマンド フックはシステム ユーザーの完全な権限で実行されます。

2602 

2603<Warning>

2604 コマンド フックはユーザー アカウントの完全な権限でシェル コマンドを実行します。ユーザー アカウントがアクセスできるファイルを変更、削除、またはアクセスできます。フック コマンドを設定に追加する前に、すべてのフック コマンドを確認してテストしてください。

2605</Warning>

2606 

2607### セキュリティ ベストプラクティス

2608 

2609フックを書くときは、これらのプラクティスに留意してください。

2610 

2611* **入力を検証およびサニタイズ**: 入力データを盲目的に信頼しないでください

2612* **常にシェル変数を引用**: `$VAR` ではなく `"$VAR"` を使用

2613* **パス トラバーサルをブロック**: ファイル パスで `..` をチェック

2614* **絶対パスを使用**: スクリプトの完全なパスを指定し、プロジェクト ルートに `"$CLAUDE_PROJECT_DIR"` を使用

2615* **機密ファイルをスキップ**: `.env`、`.git/`、キーなどを避ける

2616 

2617## Windows PowerShell ツール

2618 

2619Windows では、コマンド フックで `"shell": "powershell"` を設定することで、個別のフックを PowerShell で実行できます。フックは PowerShell を直接生成するため、`CLAUDE_CODE_USE_POWERSHELL_TOOL` が設定されているかどうかに関係なく機能します。Claude Code は `pwsh.exe`(PowerShell 7 以上)を自動検出し、`powershell.exe`(5.1)にフォールバックします。

2620 

2621```json theme={null}

2622{

2623 "hooks": {

2624 "PostToolUse": [

2625 {

2626 "matcher": "Write",

2627 "hooks": [

2628 {

2629 "type": "command",

2630 "shell": "powershell",

2631 "command": "Write-Host 'File written'"

2632 }

2633 ]

2634 }

2635 ]

2636 }

2637}

2638```

2639 

2640## フックをデバッグ

2641 

2642フック実行の詳細、マッチしたフック、終了コード、完全な stdout と stderr はデバッグ ログ ファイルに書き込まれます。`claude --debug-file <path>` で既知の場所にログを書き込むか、`claude --debug` を実行してログを `~/.claude/debug/<session-id>.txt` で読み取ります。`--debug` フラグはターミナルに出力しません。

2643 

2644```text theme={null}

2645[DEBUG] Executing hooks for PostToolUse:Write

2646[DEBUG] Found 1 hook commands to execute

2647[DEBUG] Executing hook command: <Your command> with timeout 600000ms

2648[DEBUG] Hook command completed with status 0: <Your stdout>

2649```

2650 

2651より詳細なフック マッチング詳細については、`CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose` を設定して、フック マッチャー数とクエリ マッチングなどの追加ログ行を確認します。

2652 

2653フックが発火しない、無限 Stop フック ループ、設定エラーなどの一般的な問題のトラブルシューティングについては、ガイドの[制限事項とトラブルシューティング](/ja/hooks-guide#limitations-and-troubleshooting)を参照してください。より広範な診断チュートリアルについては、`/context`、`/doctor`、および設定の優先順位をカバーする[設定をデバッグ](/ja/debug-your-config)を参照してください。

hooks-guide.md +927 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# hooks でワークフローを自動化する

6 

7> Claude Code がファイルを編集したり、タスクを完了したり、入力が必要になったりしたときに、シェルコマンドを自動的に実行します。コードをフォーマットし、通知を送信し、コマンドを検証し、プロジェクトルールを適用します。

8 

9Hooks は Claude Code のライフサイクルの特定のポイントで実行されるユーザー定義のシェルコマンドです。これらは Claude Code の動作に対して決定論的な制御を提供し、LLM が実行を選択するのに依存するのではなく、特定のアクションが常に発生することを保証します。Hooks を使用して、プロジェクトルールを適用し、反復的なタスクを自動化し、Claude Code を既存のツールと統合します。

10 

11判断が必要な決定については、決定論的なルールではなく、Claude モデルを使用して条件を評価する [プロンプトベースの hooks](#prompt-based-hooks) または [エージェントベースの hooks](#agent-based-hooks) を使用することもできます。

12 

13Claude Code を拡張する他の方法については、Claude に追加の指示と実行可能なコマンドを与えるための [skills](/ja/skills)、分離されたコンテキストでタスクを実行するための [subagents](/ja/sub-agents)、プロジェクト全体で共有する拡張機能をパッケージ化するための [plugins](/ja/plugins) を参照してください。

14 

15<Tip>

16 このガイドでは一般的なユースケースと始め方をカバーしています。完全なイベントスキーマ、JSON 入力/出力形式、非同期 hooks や MCP ツール hooks などの高度な機能については、[Hooks リファレンス](/ja/hooks) を参照してください。

17</Tip>

18 

19## 最初の hook をセットアップする

20 

21Hook を作成するには、[設定ファイル](#configure-hook-location) に `hooks` ブロックを追加します。このチュートリアルではデスクトップ通知 hook を作成するため、Claude があなたの入力を待っているときにアラートを受け取ることができます。ターミナルを監視する代わりに。

22 

23<Steps>

24 <Step title="hook を設定に追加する">

25 `~/.claude/settings.json` を開き、`Notification` hook を追加します。以下の例は macOS 用に `osascript` を使用しています。Linux と Windows のコマンドについては、[Claude が入力を必要とするときに通知を受け取る](#get-notified-when-claude-needs-input) を参照してください。

26 

27 ```json theme={null}

28 {

29 "hooks": {

30 "Notification": [

31 {

32 "matcher": "",

33 "hooks": [

34 {

35 "type": "command",

36 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"

37 }

38 ]

39 }

40 ]

41 }

42 }

43 ```

44 

45 設定ファイルに既に `hooks` キーがある場合は、オブジェクト全体を置き換えるのではなく、`Notification` を既存のイベントキーの兄弟として追加します。各イベント名は単一の `hooks` オブジェクト内のキーです:

46 

47 ```json theme={null}

48 {

49 "hooks": {

50 "PostToolUse": [

51 {

52 "matcher": "Edit|Write",

53 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }]

54 }

55 ],

56 "Notification": [

57 {

58 "matcher": "",

59 "hooks": [{ "type": "command", "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'" }]

60 }

61 ]

62 }

63 }

64 ```

65 

66 CLI で説明することで、Claude に hook を書いてもらうこともできます。

67 </Step>

68 

69 <Step title="設定を確認する">

70 `/hooks` と入力して hooks ブラウザを開きます。利用可能なすべての hook イベントのリストが表示され、hooks が設定されているイベントの横に数が表示されます。`Notification` を選択して、新しい hook がリストに表示されることを確認します。Hook を選択すると、その詳細が表示されます:イベント、マッチャー、タイプ、ソースファイル、およびコマンド。

71 </Step>

72 

73 <Step title="hook をテストする">

74 `Esc` を押して CLI に戻ります。Claude に許可が必要な何かをするよう依頼し、ターミナルから切り替えます。デスクトップ通知を受け取るはずです。

75 </Step>

76</Steps>

77 

78<Tip>

79 `/hooks` メニューは読み取り専用です。Hooks を追加、変更、または削除するには、設定 JSON を直接編集するか、Claude に変更を依頼します。

80</Tip>

81 

82## 自動化できるもの

83 

84Hooks を使用すると、Claude Code のライフサイクルの主要なポイントでコードを実行できます:編集後にファイルをフォーマットし、実行前にコマンドをブロックし、Claude が入力を必要とするときに通知を送信し、セッション開始時にコンテキストを注入するなど。Hook イベントの完全なリストについては、[Hooks リファレンス](/ja/hooks#hook-lifecycle) を参照してください。

85 

86各例には、[設定ファイル](#configure-hook-location) に追加する準備ができた設定ブロックが含まれています。最も一般的なパターン:

87 

88* [Claude が入力を必要とするときに通知を受け取る](#get-notified-when-claude-needs-input)

89* [編集後にコードを自動フォーマットする](#auto-format-code-after-edits)

90* [保護されたファイルへの編集をブロックする](#block-edits-to-protected-files)

91* [圧縮後にコンテキストを再注入する](#re-inject-context-after-compaction)

92* [設定変更を監査する](#audit-configuration-changes)

93* [ディレクトリまたはファイルが変更されたときに環境をリロードする](#reload-environment-when-directory-or-files-change)

94* [特定の許可プロンプトを自動承認する](#auto-approve-specific-permission-prompts)

95 

96### Claude が入力を必要とするときに通知を受け取る

97 

98Claude が作業を完了して入力を必要とするときはいつでもデスクトップ通知を取得し、ターミナルをチェックせずに他のタスクに切り替えることができます。

99 

100この hook は `Notification` イベントを使用します。これは Claude が入力または許可を待っているときに発火します。以下の各タブはプラットフォームのネイティブ通知コマンドを使用します。これを `~/.claude/settings.json` に追加します:

101 

102<Tabs>

103 <Tab title="macOS">

104 ```json theme={null}

105 {

106 "hooks": {

107 "Notification": [

108 {

109 "matcher": "",

110 "hooks": [

111 {

112 "type": "command",

113 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"

114 }

115 ]

116 }

117 ]

118 }

119 }

120 ```

121 

122 <Accordion title="通知が表示されない場合">

123 `osascript` は組み込みの Script Editor アプリを通じて通知をルーティングします。Script Editor に通知権限がない場合、コマンドは静かに失敗し、macOS はそれを付与するよう求めません。Terminal でこれを 1 回実行して、Script Editor を通知設定に表示させます:

124 

125 ```bash theme={null}

126 osascript -e 'display notification "test"'

127 ```

128 

129 まだ何も表示されません。**System Settings > Notifications** を開き、リストで **Script Editor** を見つけて、**Allow Notifications** をオンにします。コマンドを再度実行して、テスト通知が表示されることを確認します。

130 </Accordion>

131 </Tab>

132 

133 <Tab title="Linux">

134 ```json theme={null}

135 {

136 "hooks": {

137 "Notification": [

138 {

139 "matcher": "",

140 "hooks": [

141 {

142 "type": "command",

143 "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"

144 }

145 ]

146 }

147 ]

148 }

149 }

150 ```

151 </Tab>

152 

153 <Tab title="Windows (PowerShell)">

154 ```json theme={null}

155 {

156 "hooks": {

157 "Notification": [

158 {

159 "matcher": "",

160 "hooks": [

161 {

162 "type": "command",

163 "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""

164 }

165 ]

166 }

167 ]

168 }

169 }

170 ```

171 </Tab>

172</Tabs>

173 

174空の `matcher` はすべての通知タイプで発火します。特定のイベントでのみ発火させるには、次のいずれかの値に設定します:

175 

176| Matcher | 発火するタイミング |

177| :--------------------- | :-------------------------- |

178| `permission_prompt` | Claude がツール使用を承認する必要があるとき |

179| `idle_prompt` | Claude が完了し、次のプロンプトを待っているとき |

180| `auth_success` | 認証が完了したとき |

181| `elicitation_dialog` | MCP サーバーが引き出しフォームを開くとき |

182| `elicitation_complete` | MCP 引き出しフォームが送信または却下されたとき |

183| `elicitation_response` | MCP 引き出し応答がサーバーに送り返されたとき |

184 

185`/hooks` と入力して `Notification` を選択し、hook が登録されていることを確認します。完全なイベントスキーマについては、[Notification リファレンス](/ja/hooks#notification) を参照してください。

186 

187### 編集後にコードを自動フォーマットする

188 

189Claude が編集するすべてのファイルで [Prettier](https://prettier.io/) を自動的に実行し、手動操作なしでフォーマットの一貫性を保ちます。

190 

191この hook は `PostToolUse` イベントを `Edit|Write` マッチャーで使用するため、ファイル編集ツールの後にのみ実行されます。コマンドは [`jq`](https://jqlang.github.io/jq/) で編集されたファイルパスを抽出し、Prettier に渡します。これをプロジェクトルートの `.claude/settings.json` に追加します:

192 

193```json theme={null}

194{

195 "hooks": {

196 "PostToolUse": [

197 {

198 "matcher": "Edit|Write",

199 "hooks": [

200 {

201 "type": "command",

202 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"

203 }

204 ]

205 }

206 ]

207 }

208}

209```

210 

211<Note>

212 このページの Bash の例は JSON 解析に `jq` を使用します。`brew install jq`(macOS)、`apt-get install jq`(Debian/Ubuntu)でインストールするか、[`jq` ダウンロード](https://jqlang.github.io/jq/download/) を参照してください。

213</Note>

214 

215### 保護されたファイルへの編集をブロックする

216 

217Claude が `.env`、`package-lock.json`、`.git/` 内のものなどの機密ファイルを変更するのを防ぎます。Claude は編集がブロックされた理由を説明するフィードバックを受け取るため、アプローチを調整できます。

218 

219この例は hook が呼び出す別のスクリプトファイルを使用します。スクリプトはターゲットファイルパスを保護されたパターンのリストに対してチェックし、終了コード 2 で編集をブロックします。

220 

221<Steps>

222 <Step title="hook スクリプトを作成する">

223 これを `.claude/hooks/protect-files.sh` に保存します:

224 

225 ```bash theme={null}

226 #!/bin/bash

227 # protect-files.sh

228 

229 INPUT=$(cat)

230 FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')

231 

232 PROTECTED_PATTERNS=(".env" "package-lock.json" ".git/")

233 

234 for pattern in "${PROTECTED_PATTERNS[@]}"; do

235 if [[ "$FILE_PATH" == *"$pattern"* ]]; then

236 echo "Blocked: $FILE_PATH matches protected pattern '$pattern'" >&2

237 exit 2

238 fi

239 done

240 

241 exit 0

242 ```

243 </Step>

244 

245 <Step title="スクリプトを実行可能にする(macOS/Linux)">

246 Claude Code が hook スクリプトを実行するには、実行可能である必要があります:

247 

248 ```bash theme={null}

249 chmod +x .claude/hooks/protect-files.sh

250 ```

251 </Step>

252 

253 <Step title="hook を登録する">

254 `.claude/settings.json` に `PreToolUse` hook を追加して、`Edit` または `Write` ツール呼び出しの前にスクリプトを実行します:

255 

256 ```json theme={null}

257 {

258 "hooks": {

259 "PreToolUse": [

260 {

261 "matcher": "Edit|Write",

262 "hooks": [

263 {

264 "type": "command",

265 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/protect-files.sh"

266 }

267 ]

268 }

269 ]

270 }

271 }

272 ```

273 </Step>

274</Steps>

275 

276### 圧縮後にコンテキストを再注入する

277 

278Claude のコンテキストウィンドウがいっぱいになると、圧縮は会話を要約してスペースを解放します。これは重要な詳細を失う可能性があります。`compact` マッチャーで `SessionStart` hook を使用して、すべての圧縮後に重要なコンテキストを再注入します。

279 

280コマンドが stdout に書き込むテキストは Claude のコンテキストに追加されます。この例はプロジェクト規約と最近の作業を Claude に思い出させます。これをプロジェクトルートの `.claude/settings.json` に追加します:

281 

282```json theme={null}

283{

284 "hooks": {

285 "SessionStart": [

286 {

287 "matcher": "compact",

288 "hooks": [

289 {

290 "type": "command",

291 "command": "echo 'Reminder: use Bun, not npm. Run bun test before committing. Current sprint: auth refactor.'"

292 }

293 ]

294 }

295 ]

296 }

297}

298```

299 

300`echo` を `git log --oneline -5` などの動的出力を生成するコマンドに置き換えて、最近のコミットを表示できます。すべてのセッション開始時にコンテキストを注入する場合は、代わりに [CLAUDE.md](/ja/memory) を使用することを検討してください。環境変数については、リファレンスの [`CLAUDE_ENV_FILE`](/ja/hooks#persist-environment-variables) を参照してください。

301 

302### 設定変更を監査する

303 

304セッション中に設定またはスキルファイルが変更されたときを追跡します。`ConfigChange` イベントは外部プロセスまたはエディタが設定ファイルを変更したときに発火するため、コンプライアンスのために変更をログに記録したり、不正な変更をブロックしたりできます。

305 

306この例は各変更を監査ログに追加します。これを `~/.claude/settings.json` に追加します:

307 

308```json theme={null}

309{

310 "hooks": {

311 "ConfigChange": [

312 {

313 "matcher": "",

314 "hooks": [

315 {

316 "type": "command",

317 "command": "jq -c '{timestamp: now | todate, source: .source, file: .file_path}' >> ~/claude-config-audit.log"

318 }

319 ]

320 }

321 ]

322 }

323}

324```

325 

326マッチャーは設定タイプでフィルタリングします:`user_settings`、`project_settings`、`local_settings`、`policy_settings`、または `skills`。変更が有効になるのをブロックするには、終了コード 2 で終了するか、`{"decision": "block"}` を返します。完全な入力スキーマについては、[ConfigChange リファレンス](/ja/hooks#configchange) を参照してください。

327 

328### ディレクトリまたはファイルが変更されたときに環境をリロードする

329 

330一部のプロジェクトは、どのディレクトリにいるかに応じて異なる環境変数を設定します。[direnv](https://direnv.net/) などのツールはシェルで自動的にこれを行いますが、Claude の Bash ツールはそれらの変更を自動的に取得しません。

331 

332`SessionStart` hook を `CwdChanged` hook とペアリングすることでこれを修正します。`SessionStart` は起動したディレクトリの変数をロードし、`CwdChanged` は Claude がディレクトリを変更するたびにそれらをリロードします。どちらも `CLAUDE_ENV_FILE` に書き込み、Claude Code は各 Bash コマンドの前にスクリプトプリアンブルとして実行します。これを `~/.claude/settings.json` に追加します:

333 

334```json theme={null}

335{

336 "hooks": {

337 "SessionStart": [

338 {

339 "hooks": [

340 {

341 "type": "command",

342 "command": "direnv export bash > \"$CLAUDE_ENV_FILE\""

343 }

344 ]

345 }

346 ],

347 "CwdChanged": [

348 {

349 "hooks": [

350 {

351 "type": "command",

352 "command": "direnv export bash > \"$CLAUDE_ENV_FILE\""

353 }

354 ]

355 }

356 ]

357 }

358}

359```

360 

361`direnv allow` をすべてのディレクトリで 1 回実行して、direnv が `.envrc` をロードすることが許可されるようにします。direnv の代わりに devbox または nix を使用する場合、同じパターンは `direnv export bash` の代わりに `devbox shellenv` または `devbox global shellenv` で機能します。

362 

363すべてのディレクトリ変更ではなく、特定のファイルに反応するには、`FileChanged` を `matcher` で使用して、監視するファイル名をリストします(パイプで区切られています)。ウォッチリストを構築するために、この値は正規表現として評価されるのではなく、リテラルファイル名に分割されます。[FileChanged](/ja/hooks#filechanged) を参照して、同じ値がファイルが変更されたときにどの hook グループが実行されるかをフィルタリングする方法を確認してください。この例は現在のディレクトリの `.envrc` と `.env` を監視します:

364 

365```json theme={null}

366{

367 "hooks": {

368 "FileChanged": [

369 {

370 "matcher": ".envrc|.env",

371 "hooks": [

372 {

373 "type": "command",

374 "command": "direnv export bash > \"$CLAUDE_ENV_FILE\""

375 }

376 ]

377 }

378 ]

379 }

380}

381```

382 

383入力スキーマ、`watchPaths` 出力、および `CLAUDE_ENV_FILE` の詳細については、[CwdChanged](/ja/hooks#cwdchanged) および [FileChanged](/ja/hooks#filechanged) リファレンスエントリを参照してください。

384 

385### 特定の許可プロンプトを自動承認する

386 

387常に許可するツール呼び出しの承認ダイアログをスキップします。この例は `ExitPlanMode` を自動承認します。これは Claude がプランの提示を終了して続行するよう求めるときに呼び出すツールです。プランが準備できるたびにプロンプトが表示されることはありません。

388 

389上記の終了コード例とは異なり、自動承認には hook が JSON 決定を stdout に書き込む必要があります。`PermissionRequest` hook は Claude Code が許可ダイアログを表示しようとするときに発火し、`"behavior": "allow"` を返すとあなたの代わりにそれに答えます。

390 

391マッチャーは hook を `ExitPlanMode` のみにスコープするため、他のプロンプトは影響を受けません。これを `~/.claude/settings.json` に追加します:

392 

393```json theme={null}

394{

395 "hooks": {

396 "PermissionRequest": [

397 {

398 "matcher": "ExitPlanMode",

399 "hooks": [

400 {

401 "type": "command",

402 "command": "echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PermissionRequest\", \"decision\": {\"behavior\": \"allow\"}}}'"

403 }

404 ]

405 }

406 ]

407 }

408}

409```

410 

411Hook が承認すると、Claude Code は Plan Mode を終了し、Plan Mode に入る前にアクティブだった許可モードを復元します。トランスクリプトは、ダイアログが表示されたはずの場所に「Allowed by PermissionRequest hook」と表示されます。Hook パスは常に現在の会話を保持します:ダイアログができるように、コンテキストをクリアして新しい実装セッションを開始することはできません。

412 

413特定の許可モードを設定する代わりに、hook の出力に `setMode` エントリを含む `updatedPermissions` 配列を含めることができます。`mode` 値は `default`、`acceptEdits`、または `bypassPermissions` などの任意の許可モードであり、`destination: "session"` は現在のセッションのみに適用します。

414 

415<Note>

416 `bypassPermissions` は、セッションが既にバイパスモードで起動された場合にのみ適用されます:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`、または設定の `permissions.defaultMode: "bypassPermissions"`、および [`permissions.disableBypassPermissionsMode`](/ja/permissions#managed-settings) で無効化されていない場合。`defaultMode` として永続化されることはありません。

417</Note>

418 

419セッションを `acceptEdits` に切り替えるには、hook は stdout に次の JSON を書き込みます:

420 

421```json theme={null}

422{

423 "hookSpecificOutput": {

424 "hookEventName": "PermissionRequest",

425 "decision": {

426 "behavior": "allow",

427 "updatedPermissions": [

428 { "type": "setMode", "mode": "acceptEdits", "destination": "session" }

429 ]

430 }

431 }

432}

433```

434 

435マッチャーをできるだけ狭く保ちます。`.*` でマッチングするか、マッチャーを空のままにすると、ファイル書き込みやシェルコマンドを含むすべての許可プロンプトが自動承認されます。決定フィールドの完全なセットについては、[PermissionRequest リファレンス](/ja/hooks#permissionrequest-decision-control) を参照してください。

436 

437## hooks の仕組み

438 

439Hook イベントは Claude Code のライフサイクルの特定のポイントで発火します。イベントが発火すると、すべてのマッチングする hooks が並列で実行され、同一の hook コマンドは自動的に重複排除されます。以下の表は各イベントとそれがトリガーされるときを示しています:

440 

441| Event | When it fires |

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

443| `SessionStart` | When a session begins or resumes |

444| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |

445| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |

446| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |

447| `PreToolUse` | Before a tool call executes. Can block it |

448| `PermissionRequest` | When a permission dialog appears |

449| `PermissionDenied` | When a tool call is denied by the auto mode classifier. Return `{retry: true}` to tell the model it may retry the denied tool call |

450| `PostToolUse` | After a tool call succeeds |

451| `PostToolUseFailure` | After a tool call fails |

452| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |

453| `Notification` | When Claude Code sends a notification |

454| `SubagentStart` | When a subagent is spawned |

455| `SubagentStop` | When a subagent finishes |

456| `TaskCreated` | When a task is being created via `TaskCreate` |

457| `TaskCompleted` | When a task is being marked as completed |

458| `Stop` | When Claude finishes responding |

459| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |

460| `TeammateIdle` | When an [agent team](/en/agent-teams) teammate is about to go idle |

461| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |

462| `ConfigChange` | When a configuration file changes during a session |

463| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |

464| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |

465| `WorktreeCreate` | When a worktree is being created via `--worktree` or `isolation: "worktree"`. Replaces default git behavior |

466| `WorktreeRemove` | When a worktree is being removed, either at session exit or when a subagent finishes |

467| `PreCompact` | Before context compaction |

468| `PostCompact` | After context compaction completes |

469| `Elicitation` | When an MCP server requests user input during a tool call |

470| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |

471| `SessionEnd` | When a session terminates |

472 

473複数の hooks がマッチする場合、それぞれが独自の結果を返します。決定については、Claude Code は最も制限的な答えを選択します。`PreToolUse` hook が `deny` を返すと、他が何を返すかに関わらず、ツール呼び出しがキャンセルされます。1 つの hook が `ask` を返すと、残りが `allow` を返しても、許可プロンプトが強制されます。`additionalContext` からのテキストはすべての hook から保持され、Claude に一緒に渡されます。

474 

475各 hook には、それがどのように実行されるかを決定する `type` があります。ほとんどの hooks は `"type": "command"` を使用し、シェルコマンドを実行します。他の 4 つのタイプが利用可能です:

476 

477* `"type": "http"`:イベントデータを URL に POST します。[HTTP hooks](#http-hooks) を参照してください。

478* `"type": "mcp_tool"`:既に接続されている MCP サーバー上のツールを呼び出します。[MCP tool hooks](/ja/hooks#mcp-tool-hook-fields) を参照してください。

479* `"type": "prompt"`:シングルターン LLM 評価。[プロンプトベースの hooks](#prompt-based-hooks) を参照してください。

480* `"type": "agent"`:ツールアクセス付きマルチターン検証。エージェント hooks は実験的であり、変更される可能性があります。[エージェントベースの hooks](#agent-based-hooks) を参照してください。

481 

482### 入力を読み取り、出力を返す

483 

484Hooks は stdin、stdout、stderr、および終了コードを通じて Claude Code と通信します。イベントが発火すると、Claude Code はイベント固有のデータを JSON としてスクリプトの stdin に渡します。スクリプトはそのデータを読み取り、作業を行い、終了コードを通じて Claude Code に次に何をするかを伝えます。

485 

486#### Hook 入力

487 

488すべてのイベントには `session_id` と `cwd` などの共通フィールドが含まれていますが、各イベントタイプは異なるデータを追加します。たとえば、Claude が Bash コマンドを実行するとき、`PreToolUse` hook は stdin で次のようなものを受け取ります:

489 

490```json theme={null}

491{

492 "session_id": "abc123", // このセッションの一意の ID

493 "cwd": "/Users/sarah/myproject", // イベントが発火したときの作業ディレクトリ

494 "hook_event_name": "PreToolUse", // この hook をトリガーしたイベント

495 "tool_name": "Bash", // Claude が使用しようとしているツール

496 "tool_input": { // Claude がツールに渡した引数

497 "command": "npm test" // Bash の場合、これはシェルコマンド

498 }

499}

500```

501 

502スクリプトはその JSON を解析し、これらのフィールドのいずれかに基づいて動作できます。`UserPromptSubmit` hooks は代わりに `prompt` テキストを取得し、`SessionStart` hooks は `source`(startup、resume、clear、compact)を取得するなど。リファレンスの [共通入力フィールド](/ja/hooks#common-input-fields) で共有フィールドを参照し、各イベントのセクションでイベント固有のスキーマを参照してください。

503 

504#### Hook 出力

505 

506スクリプトは stdout または stderr に書き込み、特定のコードで終了することで、Claude Code に次に何をするかを伝えます。たとえば、コマンドをブロックしたい `PreToolUse` hook:

507 

508```bash theme={null}

509#!/bin/bash

510INPUT=$(cat)

511COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command')

512 

513if echo "$COMMAND" | grep -q "drop table"; then

514 echo "Blocked: dropping tables is not allowed" >&2 # stderr は Claude のフィードバックになります

515 exit 2 # exit 2 = アクションをブロック

516fi

517 

518exit 0 # exit 0 = 続行させる

519```

520 

521終了コードは次に何が起こるかを決定します:

522 

523* **終了 0**:アクションが続行されます。`UserPromptSubmit`、`UserPromptExpansion`、および `SessionStart` hooks の場合、stdout に書き込むすべてのものが Claude のコンテキストに追加されます。

524* **終了 2**:アクションがブロックされます。stderr に理由を書き込み、Claude はそれをフィードバックとして受け取るため、調整できます。一部のイベントはブロックできません:`SessionStart`、`Setup`、`Notification` などの場合、終了 2 は stderr をユーザーに表示し、実行は続行されます。[イベントごとの終了コード 2 の動作](/ja/hooks#exit-code-2-behavior-per-event) で完全なリストを参照してください。

525* **その他の終了コード**:アクションが続行されます。トランスクリプトは `<hook name> hook error` 通知を表示し、その後 stderr の最初の行が続きます。完全な stderr は [デバッグログ](/ja/hooks#debug-hooks) に記録されます。

526 

527#### 構造化 JSON 出力

528 

529終了コードは 2 つのオプションを提供します:許可またはブロック。より多くの制御のために、終了 0 して stdout に JSON オブジェクトを出力します。

530 

531<Note>

532 終了 2 で stderr メッセージでブロックするか、終了 0 で JSON で構造化制御を使用します。混在させないでください:Claude Code は終了 2 のときに JSON を無視します。

533</Note>

534 

535たとえば、`PreToolUse` hook はツール呼び出しを拒否して理由を Claude に伝えたり、ユーザーの承認のためにエスカレートしたりできます:

536 

537```json theme={null}

538{

539 "hookSpecificOutput": {

540 "hookEventName": "PreToolUse",

541 "permissionDecision": "deny",

542 "permissionDecisionReason": "Use rg instead of grep for better performance"

543 }

544}

545```

546 

547`"deny"` を使用すると、Claude Code はツール呼び出しをキャンセルし、`permissionDecisionReason` を Claude にフィードバックとして返します。これらの `permissionDecision` 値は `PreToolUse` に固有です:

548 

549* `"allow"`:インタラクティブな許可プロンプトをスキップします。Deny および ask ルール(エンタープライズ管理 deny リストを含む)は引き続き適用されます

550* `"deny"`:ツール呼び出しをキャンセルし、理由を Claude に送信します

551* `"ask"`:通常どおりユーザーに許可プロンプトを表示します

552 

5534 番目の値 `"defer"` は、`-p` フラグ付きの [非インタラクティブモード](/ja/headless) で利用可能です。プロセスを終了し、ツール呼び出しを保持して、Agent SDK ラッパーが入力を収集して再開できるようにします。リファレンスの [ツール呼び出しを後で延期する](/ja/hooks#defer-a-tool-call-for-later) を参照してください。

554 

555`"allow"` を返すとインタラクティブプロンプトをスキップしますが、[許可ルール](/ja/permissions#manage-permissions) をオーバーライドしません。Deny ルールがツール呼び出しにマッチする場合、hook が `"allow"` を返しても呼び出しはブロックされます。Ask ルールがマッチする場合、ユーザーはまだプロンプトが表示されます。これは、[管理設定](/ja/settings#settings-files) を含むすべての設定スコープからの deny ルールが、hook 承認よりも常に優先されることを意味します。

556 

557他のイベントは異なる決定パターンを使用します。たとえば、`PostToolUse` および `Stop` hooks はトップレベルの `decision: "block"` フィールドを使用し、`PermissionRequest` は `hookSpecificOutput.decision.behavior` を使用します。リファレンスの [サマリーテーブル](/ja/hooks#decision-control) でイベント別の完全な内訳を参照してください。

558 

559`UserPromptSubmit` hooks の場合、代わりに `additionalContext` を使用して Claude のコンテキストにテキストを注入します。プロンプトベースの hooks(`type: "prompt"`)は出力を異なる方法で処理します:[プロンプトベースの hooks](#prompt-based-hooks) を参照してください。

560 

561### マッチャーで hooks をフィルタリングする

562 

563マッチャーなしでは、hook はそのイベントのすべての発生で発火します。マッチャーを使用すると、それを絞り込むことができます。たとえば、ファイル編集後にのみフォーマッターを実行したい場合(すべてのツール呼び出しの後ではなく)、`PostToolUse` hook にマッチャーを追加します:

564 

565```json theme={null}

566{

567 "hooks": {

568 "PostToolUse": [

569 {

570 "matcher": "Edit|Write",

571 "hooks": [

572 { "type": "command", "command": "prettier --write ..." }

573 ]

574 }

575 ]

576 }

577}

578```

579 

580`"Edit|Write"` マッチャーは `Edit` または `Write` ツール呼び出しでのみ発火し、`Bash`、`Read`、または他のツールでは発火しません。[マッチャーパターン](/ja/hooks#matcher-patterns) を参照して、プレーン名と正規表現がどのように評価されるかを確認してください。

581 

582<Note>

583 Claude はまた、`Bash` ツールを通じてシェルコマンドを実行することでファイルを作成または変更できます。コンプライアンススキャンまたは監査ログなど、hook がすべてのファイル変更を確認する必要がある場合は、ターンごとに 1 回作業ツリーをスキャンする [`Stop`](/ja/hooks#stop) hook を追加してください。呼び出しごとのカバレッジの場合は、`Bash` もマッチさせ、スクリプトで `git status --porcelain` を使用して変更されたファイルと追跡されていないファイルをリストアップしてください。

584</Note>

585 

586各イベントタイプは特定のフィールドでマッチします:

587 

588| イベント | マッチャーがフィルタリングするもの | マッチャー値の例 |

589| :------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |

590| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | ツール名 | `Bash`、`Edit\|Write`、`mcp__.*` |

591| `SessionStart` | セッションがどのように開始されたか | `startup`、`resume`、`clear`、`compact` |

592| `Setup` | どの CLI フラグがセットアップをトリガーしたか | `init`、`maintenance` |

593| `SessionEnd` | セッションが終了した理由 | `clear`、`resume`、`logout`、`prompt_input_exit`、`bypass_permissions_disabled`、`other` |

594| `Notification` | 通知タイプ | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_complete`、`elicitation_response` |

595| `SubagentStart` | エージェントタイプ | `general-purpose`、`Explore`、`Plan`、またはカスタムエージェント名 |

596| `PreCompact`、`PostCompact` | 圧縮をトリガーしたもの | `manual`、`auto` |

597| `SubagentStop` | エージェントタイプ | `SubagentStart` と同じ値 |

598| `ConfigChange` | 設定ソース | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |

599| `StopFailure` | エラータイプ | `rate_limit`、`authentication_failed`、`oauth_org_not_allowed`、`billing_error`、`invalid_request`、`server_error`、`max_output_tokens`、`unknown` |

600| `InstructionsLoaded` | ロード理由 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |

601| `Elicitation` | MCP サーバー名 | 設定した MCP サーバー名 |

602| `ElicitationResult` | MCP サーバー名 | `Elicitation` と同じ値 |

603| `FileChanged` | リテラルファイル名を監視([FileChanged](/ja/hooks#filechanged) を参照) | `.envrc\|.env` |

604| `UserPromptExpansion` | コマンド名 | スキルまたはコマンド名 |

605| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`CwdChanged` | マッチャーサポートなし | すべての発生で常に発火 |

606 

607異なるイベントタイプのマッチャーを示すいくつかの例:

608 

609<Tabs>

610 <Tab title="すべての Bash コマンドをログに記録する">

611 `Bash` ツール呼び出しのみをマッチし、各コマンドをファイルにログに記録します。`PostToolUse` イベントはコマンドが完了した後に発火するため、`tool_input.command` は実行されたものを含みます。Hook は stdin で JSON としてイベントデータを受け取り、`jq -r '.tool_input.command'` はコマンド文字列のみを抽出し、`>>` はログファイルに追加します:

612 

613 ```json theme={null}

614 {

615 "hooks": {

616 "PostToolUse": [

617 {

618 "matcher": "Bash",

619 "hooks": [

620 {

621 "type": "command",

622 "command": "jq -r '.tool_input.command' >> ~/.claude/command-log.txt"

623 }

624 ]

625 }

626 ]

627 }

628 }

629 ```

630 </Tab>

631 

632 <Tab title="MCP ツールをマッチさせる">

633 MCP ツールは組み込みツールとは異なる命名規則を使用します:`mcp__<server>__<tool>`。ここで `<server>` は MCP サーバー名で、`<tool>` はそれが提供するツールです。たとえば、`mcp__github__search_repositories` または `mcp__filesystem__read_file`。特定のサーバーからすべてのツールをターゲットするために正規表現マッチャーを使用するか、`mcp__.*__write.*` のようなパターンでサーバー全体でマッチします。リファレンスの [MCP ツールをマッチさせる](/ja/hooks#match-mcp-tools) を参照して、完全な例のリストを確認してください。

634 

635 以下のコマンドは hook の JSON 入力からツール名を `jq` で抽出し、stderr に書き込みます。stderr に書き込むことで stdout をクリーンに保ち、メッセージを [デバッグログ](/ja/hooks#debug-hooks) に送信します:

636 

637 ```json theme={null}

638 {

639 "hooks": {

640 "PreToolUse": [

641 {

642 "matcher": "mcp__github__.*",

643 "hooks": [

644 {

645 "type": "command",

646 "command": "echo \"GitHub tool called: $(jq -r '.tool_name')\" >&2"

647 }

648 ]

649 }

650 ]

651 }

652 }

653 ```

654 </Tab>

655 

656 <Tab title="セッション終了時にクリーンアップする">

657 `SessionEnd` イベントはセッションが終了した理由のマッチャーをサポートします。この hook は `clear`(`/clear` を実行するとき)でのみ発火し、通常の終了では発火しません:

658 

659 ```json theme={null}

660 {

661 "hooks": {

662 "SessionEnd": [

663 {

664 "matcher": "clear",

665 "hooks": [

666 {

667 "type": "command",

668 "command": "rm -f /tmp/claude-scratch-*.txt"

669 }

670 ]

671 }

672 ]

673 }

674 }

675 ```

676 </Tab>

677</Tabs>

678 

679完全なマッチャー構文については、[Hooks リファレンス](/ja/hooks#configuration) を参照してください。

680 

681#### `if` フィールドでツール名と引数でフィルタリングする

682 

683<Note>

684 `if` フィールドには Claude Code v2.1.85 以降が必要です。以前のバージョンはそれを無視し、マッチしたすべての呼び出しで hook を実行します。

685</Note>

686 

687`if` フィールドは [許可ルール構文](/ja/permissions) を使用して、ツール名と引数の両方で hooks をフィルタリングするため、hook プロセスはツール呼び出しがマッチするときにのみ生成されます。これは `matcher` を超えており、ツール名のみでグループレベルでフィルタリングします。

688 

689たとえば、すべての Bash コマンドではなく、Claude が `git` コマンドを使用するときにのみ hook を実行するには:

690 

691```json theme={null}

692{

693 "hooks": {

694 "PreToolUse": [

695 {

696 "matcher": "Bash",

697 "hooks": [

698 {

699 "type": "command",

700 "if": "Bash(git *)",

701 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-git-policy.sh"

702 }

703 ]

704 }

705 ]

706 }

707}

708```

709 

710Hook プロセスは Bash コマンドが `git *` にマッチするときにのみ生成されます。または、コマンドが解析するには複雑すぎるときです。`npm test && git push` のような複合コマンドの場合、Claude Code は各サブコマンドを評価し、`git push` がマッチするため hook を発火させます。`if` フィールドは許可ルールと同じパターンを受け入れます:`"Bash(git *)"`、`"Edit(*.ts)"` など。複数のツール名をマッチさせるには、それぞれ独自の `if` 値を持つ別のハンドラーを使用するか、パイプ交替がサポートされている `matcher` レベルでマッチします。

711 

712`if` はツールイベントでのみ機能します:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、および `PermissionDenied`。他のイベントに追加すると、hook が実行されるのを防ぎます。

713 

714### hook の場所を設定する

715 

716Hook を追加する場所がそのスコープを決定します:

717 

718| 場所 | スコープ | 共有可能 |

719| :---------------------------------------------------------- | :-------------------- | :---------------- |

720| `~/.claude/settings.json` | すべてのプロジェクト | いいえ、マシンにローカル |

721| `.claude/settings.json` | 単一プロジェクト | はい、リポジトリにコミット可能 |

722| `.claude/settings.local.json` | 単一プロジェクト | いいえ、gitignored |

723| 管理ポリシー設定 | 組織全体 | はい、管理者制御 |

724| [Plugin](/ja/plugins) `hooks/hooks.json` | プラグインが有効なとき | はい、プラグインにバンドル |

725| [Skill](/ja/skills) または [agent](/ja/sub-agents) frontmatter | スキルまたはエージェントがアクティブなとき | はい、コンポーネントファイルで定義 |

726 

727Claude Code で [`/hooks`](/ja/hooks#the-hooks-menu) を実行して、イベント別にグループ化されたすべての設定済み hooks を参照します。すべての hooks を一度に無効にするには、設定ファイルで `"disableAllHooks": true` を設定します。

728 

729Claude Code が実行中に設定ファイルを直接編集する場合、ファイルウォッチャーは通常、hook の変更を自動的に取得します。

730 

731## プロンプトベースの hooks

732 

733決定論的なルールではなく判断が必要な決定については、`type: "prompt"` hooks を使用します。シェルコマンドを実行する代わりに、Claude Code はプロンプトと hook の入力データを Claude モデル(デフォルトでは Haiku)に送信して決定を下します。より多くの機能が必要な場合は、`model` フィールドで異なるモデルを指定できます。

734 

735モデルの唯一の仕事は、yes/no 決定を JSON として返すことです:

736 

737* `"ok": true`:アクションが続行されます

738* `"ok": false`:何が起こるかはイベントによって異なります:

739 * `Stop` および `SubagentStop`:`reason` は Claude にフィードバックとして返されるため、作業を続けます

740 * `PreToolUse`:ツール呼び出しが拒否され、`reason` はツールエラーとして Claude に返されるため、調整して続行できます

741 * `PostToolUse`、`PostToolBatch`、`UserPromptSubmit`、および `UserPromptExpansion`:ターンが終了し、`reason` は警告行としてチャットに表示されます

742 

743この例は `Stop` hook を使用して、要求されたすべてのタスクが完了しているかどうかをモデルに尋ねます。モデルが `"ok": false` を返す場合、Claude は作業を続け、`reason` を次の指示として使用します:

744 

745```json theme={null}

746{

747 "hooks": {

748 "Stop": [

749 {

750 "hooks": [

751 {

752 "type": "prompt",

753 "prompt": "Check if all tasks are complete. If not, respond with {\"ok\": false, \"reason\": \"what remains to be done\"}."

754 }

755 ]

756 }

757 ]

758 }

759}

760```

761 

762完全な設定オプションについては、リファレンスの [プロンプトベースの hooks](/ja/hooks#prompt-based-hooks) を参照してください。

763 

764## エージェントベースの hooks

765 

766<Warning>

767 エージェント hooks は実験的です。動作と設定は将来のリリースで変更される可能性があります。本番ワークフローについては、[コマンド hooks](/ja/hooks#command-hook-fields) を優先してください。

768</Warning>

769 

770検証がファイルの検査またはコマンドの実行を必要とする場合、`type: "agent"` hooks を使用します。プロンプト hooks は単一の LLM 呼び出しを行いますが、エージェント hooks は条件を返す前にファイルを読み取り、コードを検索し、他のツールを使用できる subagent を生成します。

771 

772エージェント hooks はプロンプト hooks と同じ `"ok"` / `"reason"` 応答形式を使用しますが、デフォルトのタイムアウトが 60 秒で、最大 50 ツール使用ターンです。

773 

774この例は Claude が停止することを許可する前にテストが合格することを検証します:

775 

776```json theme={null}

777{

778 "hooks": {

779 "Stop": [

780 {

781 "hooks": [

782 {

783 "type": "agent",

784 "prompt": "Verify that all unit tests pass. Run the test suite and check the results. $ARGUMENTS",

785 "timeout": 120

786 }

787 ]

788 }

789 ]

790 }

791}

792```

793 

794Hook 入力データだけで決定を下すのに十分な場合はプロンプト hooks を使用します。コードベースの実際の状態に対して何かを検証する必要がある場合はエージェント hooks を使用します。

795 

796完全な設定オプションについては、リファレンスの [エージェントベースの hooks](/ja/hooks#agent-based-hooks) を参照してください。

797 

798## HTTP hooks

799 

800`type: "http"` hooks を使用して、シェルコマンドを実行する代わりに、イベントデータを HTTP エンドポイントに POST します。エンドポイントはコマンド hook が stdin で受け取るのと同じ JSON を受け取り、HTTP レスポンスボディを使用して同じ JSON 形式で結果を返します。

801 

802HTTP hooks は、Web サーバー、クラウド関数、または外部サービスに hook ロジックを処理させたい場合に便利です。たとえば、チーム全体のツール使用イベントをログに記録する共有監査サービス。

803 

804この例はすべてのツール使用をローカルログサービスに POST します:

805 

806```json theme={null}

807{

808 "hooks": {

809 "PostToolUse": [

810 {

811 "hooks": [

812 {

813 "type": "http",

814 "url": "http://localhost:8080/hooks/tool-use",

815 "headers": {

816 "Authorization": "Bearer $MY_TOKEN"

817 },

818 "allowedEnvVars": ["MY_TOKEN"]

819 }

820 ]

821 }

822 ]

823 }

824}

825```

826 

827エンドポイントは、コマンド hooks と同じ [出力形式](/ja/hooks#json-output) を使用して JSON レスポンスボディを返す必要があります。ツール呼び出しをブロックするには、適切な `hookSpecificOutput` フィールドで 2xx レスポンスを返します。HTTP ステータスコードだけではアクションをブロックできません。

828 

829ヘッダー値は `$VAR_NAME` または `${VAR_NAME}` 構文を使用した環境変数補間をサポートします。`allowedEnvVars` 配列にリストされている変数のみが解決されます。他のすべての `$VAR` 参照は空のままです。

830 

831完全な設定オプションとレスポンス処理については、リファレンスの [HTTP hooks](/ja/hooks#http-hook-fields) を参照してください。

832 

833## 制限とトラブルシューティング

834 

835### 制限

836 

837* コマンド hooks は stdout、stderr、および終了コードを通じてのみ通信します。これらは `/` コマンドまたはツール呼び出しをトリガーできません。`additionalContext` を通じて返されたテキストは、Claude が平文として読むシステムリマインダーとして注入されます。HTTP hooks はレスポンスボディを通じて通信します。

838* Hook タイムアウトはデフォルトで 10 分で、hook ごとに `timeout` フィールド(秒単位)で設定可能です。

839* `PostToolUse` hooks はツールが既に実行されているため、アクションを元に戻すことはできません。

840* `PermissionRequest` hooks は [非インタラクティブモード](/ja/headless)(`-p`)では発火しません。自動化された許可決定には `PreToolUse` hooks を使用します。

841* `Stop` hooks はタスク完了時だけでなく、Claude が応答を終了するたびに発火します。ユーザーの割り込みでは発火しません。API エラーは代わりに [StopFailure](/ja/hooks#stopfailure) を発火させます。

842* 複数の PreToolUse hooks が [`updatedInput`](/ja/hooks#pretooluse) を返してツールの引数を書き直す場合、最後に完了したものが勝ちます。Hooks は並列で実行されるため、順序は非決定的です。同じツールの入力を変更する複数の hooks を持つことを避けてください。

843 

844### Hooks と許可モード

845 

846PreToolUse hooks は任意の許可モードチェックの前に発火します。`permissionDecision: "deny"` を返す hook は、`bypassPermissions` モードまたは `--dangerously-skip-permissions` でもツールをブロックします。これにより、ユーザーが許可モードを変更してバイパスできないポリシーを適用できます。

847 

848逆は真ではありません:`"allow"` を返す hook は、設定からの deny ルールをバイパスしません。Hooks は制限を厳しくできますが、許可ルールが許可する範囲を超えて緩和することはできません。

849 

850### Hook が発火しない

851 

852Hook は設定されていますが、実行されません。

853 

854* `/hooks` を実行し、hook が正しいイベントの下に表示されることを確認します

855* マッチャーパターンがツール名と正確にマッチすることを確認します(マッチャーは大文字小文字を区別します)

856* 正しいイベントタイプをトリガーしていることを確認します(例:`PreToolUse` はツール実行前に発火し、`PostToolUse` は後に発火します)

857* 非インタラクティブモード(`-p`)で `PermissionRequest` hooks を使用している場合は、代わりに `PreToolUse` に切り替えます

858 

859### Hook エラーが出力に表示される

860 

861トランスクリプトに「PreToolUse hook error: ...」というメッセージが表示されます。

862 

863* スクリプトが予期せずゼロ以外のコードで終了しました。サンプル JSON をパイプして手動でテストします:

864 ```bash theme={null}

865 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh

866 echo $? # 終了コードを確認

867 ```

868* 「command not found」が表示される場合は、絶対パスを使用するか、スクリプトを参照するために `$CLAUDE_PROJECT_DIR` を使用します

869* 「jq: command not found」が表示される場合は、`jq` をインストールするか、JSON 解析に Python/Node.js を使用します

870* スクリプトがまったく実行されていない場合は、実行可能にします:`chmod +x ./my-hook.sh`

871 

872### `/hooks` に設定された hooks が表示されない

873 

874設定ファイルを編集しましたが、hooks がメニューに表示されません。

875 

876* ファイル編集は通常自動的に取得されます。数秒後に表示されていない場合、ファイルウォッチャーが変更を見逃した可能性があります:セッションを再開して強制的にリロードします。

877* JSON が有効であることを確認します(末尾のコンマとコメントは許可されていません)

878* 設定ファイルが正しい場所にあることを確認します:プロジェクト hooks の場合は `.claude/settings.json`、グローバル hooks の場合は `~/.claude/settings.json`

879 

880### Stop hook が永遠に実行される

881 

882Claude は無限ループで作業を続けます。停止する代わりに。

883 

884Stop hook スクリプトは、それが既にトリガーされたかどうかをチェックする必要があります。JSON 入力から `stop_hook_active` フィールドを解析し、`true` の場合は早期に終了します:

885 

886```bash theme={null}

887#!/bin/bash

888INPUT=$(cat)

889if [ "$(echo "$INPUT" | jq -r '.stop_hook_active')" = "true" ]; then

890 exit 0 # Claude が停止することを許可

891fi

892# ... hook ロジックの残り

893```

894 

895### JSON 検証に失敗しました

896 

897Claude Code は hook スクリプトが有効な JSON を出力しているにもかかわらず、JSON 解析エラーを表示します。

898 

899Claude Code が hook を実行するとき、プロファイル(`~/.zshrc` または `~/.bashrc`)をソースするシェルを生成します。プロファイルに無条件の `echo` ステートメントが含まれている場合、その出力は hook の JSON に前置されます:

900 

901```text theme={null}

902Shell ready on arm64

903{"decision": "block", "reason": "Not allowed"}

904```

905 

906Claude Code はこれを JSON として解析しようとして失敗します。これを修正するには、シェルプロファイルの echo ステートメントをラップして、インタラクティブシェルでのみ実行するようにします:

907 

908```bash theme={null}

909# ~/.zshrc または ~/.bashrc 内

910if [[ $- == *i* ]]; then

911 echo "Shell ready"

912fi

913```

914 

915`$-` 変数はシェルフラグを含み、`i` はインタラクティブを意味します。Hooks は非インタラクティブシェルで実行されるため、echo はスキップされます。

916 

917### デバッグ技術

918 

919トランスクリプトビュー(`Ctrl+O` で切り替え)は、発火した各 hook の 1 行のサマリーを表示します:成功は無音、ブロッキングエラーは stderr を表示し、非ブロッキングエラーは `<hook name> hook error` 通知を表示し、その後 stderr の最初の行が続きます。

920 

921完全な実行詳細(どの hooks がマッチしたか、それらの終了コード、stdout、stderr など)については、デバッグログを読みます。`claude --debug-file /tmp/claude.log` で Claude Code を開始して既知のパスに書き込み、別のターミナルで `tail -f /tmp/claude.log` を実行します。そのフラグなしで開始した場合は、セッション中に `/debug` を実行してログを有効にし、ログパスを見つけます。

922 

923## 詳細を学ぶ

924 

925* [Hooks リファレンス](/ja/hooks):完全なイベントスキーマ、JSON 出力形式、非同期 hooks、および MCP ツール hooks

926* [セキュリティに関する考慮事項](/ja/hooks#security-considerations):共有または本番環境に hooks をデプロイする前に確認してください

927* [Bash コマンドバリデーター例](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py):完全なリファレンス実装

how-claude-code-works.md +263 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code の仕組み

6 

7> agentic ループ、組み込みツール、Claude Code がプロジェクトとどのように相互作用するかを理解します。

8 

9Claude Code はターミナルで実行される agentic アシスタントです。コーディングに優れていますが、コマンドラインからできることなら何でも支援できます。ドキュメント作成、ビルド実行、ファイル検索、トピック調査など、様々なタスクに対応します。

10 

11このガイドでは、コアアーキテクチャ、組み込み機能、および [Claude Code を効果的に使用するためのヒント](#work-effectively-with-claude-code) について説明します。ステップバイステップのウォークスルーについては、[一般的なワークフロー](/ja/common-workflows) を参照してください。スキル、MCP、フックなどの拡張機能については、[Claude Code を拡張する](/ja/features-overview) を参照してください。

12 

13## agentic ループ

14 

15Claude にタスクを与えると、3 つのフェーズを通じて作業します。**コンテキストの収集**、**アクションの実行**、**結果の検証** です。これらのフェーズは相互に融合します。Claude はツールを使用して、コードを理解するためのファイル検索、変更を加えるための編集、作業を確認するためのテスト実行など、様々な場面で活用します。

16 

17<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/agentic-loop.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=5f1827dec8539f38adee90ead3a85a38" alt="agentic ループ:プロンプトから Claude がコンテキストを収集し、アクションを実行し、結果を検証し、タスク完了まで繰り返します。任意の時点で中断できます。" width="720" height="280" data-path="images/agentic-loop.svg" />

18 

19ループは、あなたが何を求めるかに応じて適応します。コードベースに関する質問は、コンテキスト収集だけで済むかもしれません。バグ修正は 3 つのフェーズすべてを繰り返し循環します。リファクタリングは広範な検証を伴うかもしれません。Claude は前のステップから学んだことに基づいて各ステップが何を必要とするかを判断し、数十のアクションを連鎖させ、途中で軌道修正します。

20 

21あなたもこのループの一部です。任意の時点で中断して Claude を別の方向に導いたり、追加のコンテキストを提供したり、別のアプローチを試すよう求めたりできます。Claude は自律的に動作しますが、あなたの入力に対して応答性を保ちます。

22 

23agentic ループは 2 つのコンポーネントによって駆動されます。推論する [モデル](#models) と、アクションを実行する [ツール](#tools) です。Claude Code は Claude の周りの **agentic ハーネス** として機能します。言語モデルを有能なコーディングエージェントに変えるツール、コンテキスト管理、実行環境を提供します。

24 

25### モデル

26 

27Claude Code は Claude モデルを使用して、コードを理解し、タスクについて推論します。Claude は任意の言語のコードを読み、コンポーネントがどのように接続されているかを理解し、目標を達成するために何を変更する必要があるかを判断できます。複雑なタスクの場合、作業をステップに分割し、実行し、学んだことに基づいて調整します。

28 

29[複数のモデル](/ja/model-config) が異なるトレードオフで利用可能です。Sonnet はほとんどのコーディングタスクをうまく処理します。Opus は複雑なアーキテクチャ上の決定に対してより強力な推論を提供します。セッション中に `/model` で切り替えるか、`claude --model <name>` で開始します。

30 

31このガイドで「Claude が選択する」または「Claude が決定する」と言う場合、モデルが推論を行っています。

32 

33### ツール

34 

35ツールは Claude Code を agentic にするものです。ツールがなければ、Claude はテキストで応答することしかできません。ツールがあれば、Claude はアクションを実行できます。コードを読み、ファイルを編集し、コマンドを実行し、ウェブを検索し、外部サービスと相互作用します。各ツール使用は情報を返し、ループにフィードバックされ、Claude の次の決定に情報を与えます。

36 

37組み込みツールは一般的に 5 つのカテゴリに分類され、それぞれが異なる種類のエージェンシーを表します。

38 

39| カテゴリ | Claude ができること |

40| ---------------- | ---------------------------------------------------------------------------------------------- |

41| **ファイル操作** | ファイルの読み取り、コード編集、新規ファイル作成、名前変更と再編成 |

42| **検索** | パターンでファイルを検索、正規表現でコンテンツを検索、コードベースを探索 |

43| **実行** | シェルコマンド実行、サーバー起動、テスト実行、git 使用 |

44| **ウェブ** | ウェブ検索、ドキュメント取得、エラーメッセージ検索 |

45| **コード インテリジェンス** | 編集後の型エラーと警告を表示、定義にジャンプ、参照を検索([コード インテリジェンス プラグイン](/ja/discover-plugins#code-intelligence) が必要) |

46 

47これらが主な機能です。Claude には subagent の生成、質問、その他のオーケストレーションタスク用のツールもあります。完全なリストについては、[Claude が利用可能なツール](/ja/tools-reference) を参照してください。

48 

49Claude はプロンプトと学んだことに基づいて、どのツールを使用するかを選択します。「失敗しているテストを修正して」と言うと、Claude は以下のようなことを行うかもしれません。

50 

511. テストスイートを実行して、何が失敗しているかを確認

522. エラー出力を読む

533. 関連するソースファイルを検索

544. それらのファイルを読んでコードを理解

555. ファイルを編集して問題を修正

566. テストを再度実行して検証

57 

58各ツール使用は Claude に新しい情報を与え、次のステップに情報を与えます。これが agentic ループの実際の動作です。

59 

60**基本機能の拡張:** 組み込みツールが基盤です。[スキル](/ja/skills) で Claude が知ることを拡張し、[MCP](/ja/mcp) で外部サービスに接続し、[フック](/ja/hooks) でワークフローを自動化し、[subagent](/ja/sub-agents) にタスクをオフロードできます。これらの拡張は、コア agentic ループの上に層を形成します。ニーズに合った拡張を選択するためのガイダンスについては、[Claude Code を拡張する](/ja/features-overview) を参照してください。

61 

62## Claude がアクセスできるもの

63 

64このガイドはターミナルに焦点を当てています。Claude Code は [VS Code](/ja/vs-code)、[JetBrains IDE](/ja/jetbrains)、その他の環境でも実行されます。

65 

66ディレクトリで `claude` を実行すると、Claude Code は以下にアクセスできます。

67 

68* **プロジェクト。** ディレクトリとサブディレクトリ内のファイル、および許可を得た他の場所のファイル。

69* **ターミナル。** 実行できるあらゆるコマンド。ビルドツール、git、パッケージマネージャー、システムユーティリティ、スクリプト。コマンドラインからできることなら、Claude もできます。

70* **git の状態。** 現在のブランチ、コミットされていない変更、最近のコミット履歴。

71* **[CLAUDE.md](/ja/memory)。** プロジェクト固有の指示、規約、Claude が毎回のセッションで知っておくべきコンテキストを保存するマークダウンファイル。

72* **[自動メモリ](/ja/memory#auto-memory)。** 作業中に Claude が自動的に保存する学習。プロジェクトパターンと設定など。MEMORY.md の最初の 200 行または 25KB のいずれか先に達した方が、各セッションの開始時に読み込まれます。

73* **設定した拡張機能。** 外部サービス用の [MCP サーバー](/ja/mcp)、ワークフロー用の [スキル](/ja/skills)、委譲作業用の [subagent](/ja/sub-agents)、ブラウザ相互作用用の [Claude in Chrome](/ja/chrome)。

74 

75Claude はプロジェクト全体を見ることができるため、プロジェクト全体で作業できます。「認証バグを修正して」と Claude に求めると、関連ファイルを検索し、複数のファイルを読んでコンテキストを理解し、それらを横断して調整された編集を行い、テストを実行して修正を検証し、求めればコミットします。これは現在のファイルのみを見るインラインコードアシスタントとは異なります。

76 

77## 環境とインターフェース

78 

79上記で説明した agentic ループ、ツール、機能は、Claude Code を使用するあらゆる場所で同じです。変わるのは、コードが実行される場所とそれとの相互作用方法です。

80 

81### 実行環境

82 

83Claude Code は 3 つの環境で実行され、各環境はコード実行場所に対して異なるトレードオフを持ちます。

84 

85| 環境 | コード実行場所 | ユースケース |

86| -------------- | --------------- | -------------------------- |

87| **ローカル** | マシン | デフォルト。ファイル、ツール、環境への完全なアクセス |

88| **クラウド** | Anthropic 管理 VM | タスクをオフロード、ローカルにないリポジトリで作業 |

89| **リモートコントロール** | マシン、ブラウザから制御 | ウェブ UI を使用しながらすべてをローカルに保つ |

90 

91### インターフェース

92 

93Claude Code には、ターミナル、[デスクトップアプリ](/ja/desktop)、[IDE 拡張機能](/ja/vs-code)、[claude.ai/code](https://claude.ai/code)、[リモートコントロール](/ja/remote-control)、[Slack](/ja/slack)、[CI/CD パイプライン](/ja/github-actions) を通じてアクセスできます。インターフェースは Claude の表示方法と相互作用方法を決定しますが、基盤となる agentic ループは同じです。完全なリストについては、[Claude Code をどこでも使用する](/ja/overview#use-claude-code-everywhere) を参照してください。

94 

95## セッションで作業する

96 

97Claude Code は作業中にローカルで会話を保存します。各メッセージ、ツール使用、結果が保存され、[巻き戻し](#undo-changes-with-checkpoints)、[再開、フォーク](#resume-or-fork-sessions) セッションが可能になります。Claude がコード変更を行う前に、影響を受けるファイルのスナップショットも作成されるため、必要に応じて元に戻すことができます。

98 

99**セッションは独立しています。** 各新規セッションは、前のセッションの会話履歴なしで、新しいコンテキストウィンドウで開始されます。Claude は [自動メモリ](/ja/memory#auto-memory) を使用してセッション間で学習を保持でき、[CLAUDE.md](/ja/memory) に独自の永続的な指示を追加できます。

100 

101### ブランチ間で作業する

102 

103各 Claude Code 会話は、現在のディレクトリに結び付けられたセッションです。再開すると、そのディレクトリからのセッションのみが表示されます。

104 

105Claude は現在のブランチのファイルを見ます。ブランチを切り替えると、Claude は新しいブランチのファイルを見ますが、会話履歴は同じままです。Claude はブランチ切り替え後も、議論したことを覚えています。

106 

107セッションはディレクトリに結び付けられているため、[git worktree](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) を使用して並列 Claude Code セッションを実行できます。これは個別のブランチ用に別のディレクトリを作成します。

108 

109### セッションを再開またはフォークする

110 

111`claude --continue` または `claude --resume` でセッションを再開すると、同じセッション ID を使用して中断したところから再開します。新しいメッセージは既存の会話に追加されます。完全な会話履歴が復元されますが、セッションスコープの権限は復元されません。それらを再度承認する必要があります。

112 

113<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/session-continuity.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=fa41d12bfb57579cabfeece907151d30" alt="セッション継続性:再開は同じセッションを続行し、フォークは新しい ID で新しいブランチを作成します。" width="560" height="280" data-path="images/session-continuity.svg" />

114 

115元のセッションに影響を与えずに別のアプローチを試すために分岐するには、`--fork-session` フラグを使用します。

116 

117```bash theme={null}

118claude --continue --fork-session

119```

120 

121これは会話履歴をその時点まで保持しながら、新しいセッション ID を作成します。元のセッションは変更されません。再開と同様に、フォークされたセッションはセッションスコープの権限を継承しません。

122 

123**複数のターミナルで同じセッション**:複数のターミナルで同じセッションを再開すると、両方のターミナルが同じセッションファイルに書き込みます。両方からのメッセージがインターリーブされます。同じノートブックに 2 人が書き込むようなものです。何も破損しませんが、会話がごちゃごちゃになります。セッション中、各ターミナルは独自のメッセージのみを見ますが、後でそのセッションを再開すると、すべてがインターリーブされた状態で表示されます。同じ開始点から並列作業する場合は、`--fork-session` を使用して各ターミナルに独自のクリーンなセッションを与えます。

124 

125### コンテキストウィンドウ

126 

127Claude のコンテキストウィンドウは、会話履歴、ファイルコンテンツ、コマンド出力、[CLAUDE.md](/ja/memory)、[自動メモリ](/ja/memory#auto-memory)、読み込まれたスキル、システム指示を保持します。作業を進めると、コンテキストが満杯になります。Claude は自動的にコンパクト化しますが、会話の早い段階からの指示が失われる可能性があります。永続的なルールを CLAUDE.md に入れ、`/context` を実行してスペースを使用しているものを確認してください。

128 

129対話的なウォークスルーについては、[コンテキストウィンドウを探索する](/ja/context-window) を参照してください。

130 

131#### コンテキストが満杯になったとき

132 

133Claude Code はコンテキストウィンドウの制限に近づくと、自動的にコンテキストを管理します。古いツール出力をクリアし、必要に応じて会話を要約します。リクエストと主要なコードスニペットは保持されます。会話の早い段階からの詳細な指示は失われる可能性があります。会話履歴に依存するのではなく、永続的なルールを CLAUDE.md に入れてください。

134 

135コンパクト化中に保持されるものを制御するには、CLAUDE.md に「Compact Instructions」セクションを追加するか、`/compact` をフォーカス付きで実行します(例:`/compact focus on the API changes`)。

136 

137`/context` を実行してスペースを使用しているものを確認してください。MCP ツール定義はデフォルトで遅延され、[ツール検索](/ja/mcp#scale-with-mcp-tool-search) を通じてオンデマンドで読み込まれるため、Claude が特定のツールを使用するまで、ツール名のみがコンテキストを消費します。`/mcp` を実行してサーバーごとのコストを確認してください。

138 

139#### スキルと subagent でコンテキストを管理する

140 

141コンパクト化を超えて、他の機能を使用してコンテキストに読み込まれるものを制御できます。

142 

143[スキル](/ja/skills) はオンデマンドで読み込まれます。Claude はセッション開始時にスキル説明を見ますが、完全なコンテンツはスキルが使用されるときのみ読み込まれます。手動で呼び出すスキルの場合、`disable-model-invocation: true` を設定して、必要になるまで説明をコンテキストから除外します。

144 

145[Subagent](/ja/sub-agents) は独自の新しいコンテキストを取得し、メイン会話から完全に分離されます。それらの作業はコンテキストを膨張させません。完了すると、要約を返します。この分離が長いセッションで subagent が役立つ理由です。

146 

147各機能のコストについては [コンテキストコスト](/ja/features-overview#understand-context-costs) を参照し、コンテキスト管理のヒントについては [トークン使用量を削減する](/ja/costs#reduce-token-usage) を参照してください。

148 

149## チェックポイントと権限で安全に保つ

150 

151Claude には 2 つの安全メカニズムがあります。チェックポイントはファイル変更を元に戻すことができ、権限は Claude ができることを制御します。

152 

153### チェックポイントで変更を元に戻す

154 

155**すべてのファイル編集は可逆的です。** Claude がファイルを編集する前に、現在のコンテンツのスナップショットを作成します。何か問題が発生した場合、`Esc` を 2 回押して前の状態に巻き戻すか、Claude に元に戻すよう求めてください。

156 

157チェックポイントはセッションに対してローカルで、git とは別です。ファイル変更のみをカバーします。リモートシステム(データベース、API、デプロイメント)に影響するアクションはチェックポイントできません。これが Claude が外部の副作用を持つコマンドを実行する前に求める理由です。

158 

159### Claude ができることを制御する

160 

161`Shift+Tab` を押して権限モードをサイクルします。

162 

163* **デフォルト**:Claude はファイル編集とシェルコマンドの前に求めます

164* **自動受け入れ編集**:Claude はファイルを編集するよう求めず、コマンドは求めます

165* **Plan Mode**:Claude は読み取り専用ツールのみを使用し、実行前に承認できるプランを作成します

166* **Auto mode**:Claude はバックグラウンド安全チェック付きですべてのアクションを評価します。現在は研究プレビューです

167 

168`.claude/settings.json` で特定のコマンドを許可することもできます。これにより、Claude は毎回求めません。これは `npm test` や `git status` などの信頼できるコマンドに便利です。設定は組織全体のポリシーから個人的な設定までスコープできます。詳細については、[権限](/ja/permissions) を参照してください。

169 

170***

171 

172## Claude Code を効果的に使用する

173 

174これらのヒントは Claude Code からより良い結果を得るのに役立ちます。

175 

176### Claude Code に助けを求める

177 

178Claude Code はそれの使用方法を教えることができます。「フックをセットアップするにはどうすればいいですか?」や「CLAUDE.md を構造化する最良の方法は何ですか?」などの質問をすると、Claude が説明します。

179 

180組み込みコマンドもセットアップをガイドします。

181 

182* `/init` はプロジェクト用の CLAUDE.md を作成するプロセスをウォークスルーします

183* `/agents` はカスタム subagent を設定するのに役立ちます

184* `/doctor` はインストールの一般的な問題を診断します

185 

186### 会話です

187 

188Claude Code は会話的です。完璧なプロンプトは必要ありません。何を望むかで始めて、その後改善します。

189 

190```text theme={null}

191ログインバグを修正して

192```

193 

194\[Claude が調査し、何かを試す]

195 

196```text theme={null}

197それは完全には正しくありません。問題はセッション処理にあります。

198```

199 

200\[Claude がアプローチを調整]

201 

202最初の試みが正しくない場合、最初からやり直す必要はありません。反復します。

203 

204#### 中断して操舵する

205 

206任意の時点で Claude を中断できます。間違った道を進んでいる場合は、修正を入力して Enter を押すだけです。Claude は何をしているかを停止し、入力に基づいてアプローチを調整します。完了を待つか、最初からやり直す必要はありません。

207 

208### 最初から具体的に

209 

210最初のプロンプトがより正確であるほど、必要な修正が少なくなります。特定のファイルを参照し、制約を述べ、例のパターンを指摘します。

211 

212```text theme={null}

213チェックアウトフローは期限切れのカードを持つユーザーに対して壊れています。

214src/payments/ で問題を確認してください。特にトークン更新。

215最初に失敗するテストを書いて、その後修正してください。

216```

217 

218曖昧なプロンプトは機能しますが、より多くの時間を操舵に費やします。上記のような具体的なプロンプトは、最初の試みで成功することが多いです。

219 

220### Claude が検証するものを与える

221 

222Claude は独自の作業を確認できるときにより良いパフォーマンスを発揮します。テストケース、期待される UI のスクリーンショット、または望む出力を含めます。

223 

224```text theme={null}

225validateEmail を実装します。テストケース:'user@example.com' → true、

226'invalid' → false、'user@.com' → false。その後テストを実行します。

227```

228 

229ビジュアル作業の場合、デザインのスクリーンショットを貼り付けて、Claude に実装と比較するよう求めます。

230 

231### 実装する前に探索する

232 

233複雑な問題の場合、研究とコーディングを分離します。Plan Mode(`Shift+Tab` を 2 回)を使用してコードベースを最初に分析します。

234 

235```text theme={null}

236src/auth/ を読んで、セッション処理方法を理解してください。

237その後、OAuth サポート追加のプランを作成してください。

238```

239 

240プランを確認し、会話を通じて改善し、Claude に実装させます。このフェーズアプローチは、コードに直接ジャンプするよりも良い結果を生成します。

241 

242### 指示するのではなく委譲する

243 

244有能な同僚に委譲することを考えてください。コンテキストと方向を与え、Claude が詳細を理解することを信頼します。

245 

246```text theme={null}

247チェックアウトフローは期限切れのカードを持つユーザーに対して壊れています。

248関連するコードは src/payments/ にあります。調査して修正できますか?

249```

250 

251どのファイルを読むか、どのコマンドを実行するかを指定する必要はありません。Claude がそれを理解します。

252 

253## 次のステップ

254 

255<CardGroup cols={2}>

256 <Card title="機能で拡張する" icon="puzzle-piece" href="/ja/features-overview">

257 スキル、MCP 接続、カスタムコマンドを追加

258 </Card>

259 

260 <Card title="一般的なワークフロー" icon="graduation-cap" href="/ja/common-workflows">

261 典型的なタスクのステップバイステップガイド

262 </Card>

263</CardGroup>

interactive-mode.md +362 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# インタラクティブモード

6 

7> Claude Code セッションのキーボードショートカット、入力モード、インタラクティブ機能の完全なリファレンス。

8 

9## キーボードショートカット

10 

11<Note>

12 キーボードショートカットはプラットフォームとターミナルによって異なる場合があります。`?` を押すと、お使いの環境で利用可能なショートカットが表示されます。

13 

14 **macOS ユーザー**: Option/Alt キーショートカット(`Alt+B`、`Alt+F`、`Alt+Y`、`Alt+M`、`Alt+P`、`Alt+T`)を使用するには、ターミナルで Option を Meta として設定する必要があります:

15 

16 * **iTerm2**: 設定 → プロファイル → キー → 一般 → Left/Right Option キーを「Esc+」に設定

17 * **Apple Terminal**: 設定 → プロファイル → キーボード → 「Option キーを Meta キーとして使用」をチェック

18 * **VS Code**: VS Code 設定で `"terminal.integrated.macOptionIsMeta": true` を設定

19 

20 詳細は [ターミナル設定](/ja/terminal-config) を参照してください。

21</Note>

22 

23### 一般的なコントロール

24 

25| ショートカット | 説明 | コンテキスト |

26| :----------------------------------------------- | :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

27| `Ctrl+C` | 現在の入力または生成をキャンセル | 標準割り込み |

28| `Ctrl+X Ctrl+K` | すべてのバックグラウンドエージェントを終了。3 秒以内に 2 回押して確認 | バックグラウンドエージェント制御 |

29| `Ctrl+D` | Claude Code セッションを終了 | EOF シグナル |

30| `Ctrl+G` または `Ctrl+X Ctrl+E` | デフォルトテキストエディタで開く | プロンプトまたはカスタム応答をデフォルトテキストエディタで編集します。`Ctrl+X Ctrl+E` は readline ネイティブバインディングです。`/config` で「外部エディタで最後の応答を表示」をオンにすると、Claude の前の応答を `#` でコメント化されたコンテキストとしてプロンプトの上に追加します。保存時にコメントブロックは削除されます |

31| `Ctrl+L` | 画面を再描画 | 完全なターミナル再描画を強制します。入力と会話履歴は保持されます。ディスプレイが破損したり部分的に空白になった場合に、これを使用して復旧します |

32| `Ctrl+O` | トランスクリプトビューアを切り替え | 詳細なツール使用と実行を表示します。また MCP 呼び出しを展開します。デフォルトでは「Slack を 3 回呼び出し」のような 1 行に折りたたまれます |

33| `Ctrl+R` | コマンド履歴を逆順検索 | 前のコマンドをインタラクティブに検索 |

34| `Ctrl+V` または `Cmd+V`(iTerm2)または `Alt+V`(Windows) | クリップボードから画像を貼り付け | カーソルに `[Image #N]` チップを挿入して、プロンプト内で位置的に参照できます |

35| `Ctrl+B` | バックグラウンドで実行中のタスク | bash コマンドとエージェントをバックグラウンドで実行します。Tmux ユーザーは 2 回押す |

36| `Ctrl+T` | タスクリストを切り替え | ターミナルステータス領域の [タスクリスト](#task-list) を表示または非表示 |

37| `Left/Right 矢印` | ダイアログタブを循環 | 権限ダイアログとメニューのタブ間を移動 |

38| `Up/Down 矢印` または `Ctrl+P`/`Ctrl+N` | カーソルを移動またはコマンド履歴を移動 | 複数行入力では、最初にカーソルをプロンプト内で移動します。カーソルが既に上端または下端にある場合、もう一度押すとコマンド履歴を移動します |

39| `Esc` + `Esc` | 巻き戻しまたは要約 | コードおよび/または会話を前の時点に復元するか、選択したメッセージから要約 |

40| `Shift+Tab` または `Alt+M`(一部の設定) | 権限モードを切り替え | `default`、`acceptEdits`、`plan`、および `auto` や `bypassPermissions` などの有効にしたモード間を循環します。[権限モード](/ja/permission-modes) を参照してください。 |

41| `Option+P`(macOS)または `Alt+P`(Windows/Linux) | モデルを切り替え | プロンプトをクリアせずにモデルを切り替え |

42| `Option+T`(macOS)または `Alt+T`(Windows/Linux) | 拡張思考を切り替え | 拡張思考モードを有効または無効にします。macOS では、このショートカットが機能するようにターミナルを設定して Option を Meta として送信してください |

43| `Option+O`(macOS)または `Alt+O`(Windows/Linux) | 高速モードを切り替え | [高速モード](/ja/fast-mode) を有効または無効にします |

44 

45### テキスト編集

46 

47| ショートカット | 説明 | コンテキスト |

48| :------------------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------ |

49| `Ctrl+A` | カーソルを現在の行の開始に移動 | 複数行入力では、現在の論理行の開始に移動します |

50| `Ctrl+E` | カーソルを現在の行の終了に移動 | 複数行入力では、現在の論理行の終了に移動します |

51| `Ctrl+K` | 行末まで削除 | 削除されたテキストを貼り付け用に保存 |

52| `Ctrl+U` | カーソルから行の開始まで削除 | 削除されたテキストを貼り付け用に保存。複数行入力で行全体をクリアするには繰り返す。macOS では、iTerm2 と Terminal.app を含むターミナルエミュレータが `Cmd+Backspace` をこのショートカットにマップします |

53| `Ctrl+W` | 前の単語を削除 | 削除されたテキストを貼り付け用に保存。Windows では、`Ctrl+Backspace` も前の単語を削除します |

54| `Ctrl+Y` | 削除されたテキストを貼り付け | `Ctrl+K`、`Ctrl+U`、または `Ctrl+W` で削除されたテキストを貼り付け |

55| `Alt+Y`(`Ctrl+Y` の後) | 貼り付け履歴を循環 | 貼り付け後、以前に削除されたテキストを循環します。macOS では [Option を Meta として](#keyboard-shortcuts) 設定が必要 |

56| `Alt+B` | カーソルを 1 単語戻す | 単語ナビゲーション。macOS では [Option を Meta として](#keyboard-shortcuts) 設定が必要 |

57| `Alt+F` | カーソルを 1 単語進める | 単語ナビゲーション。macOS では [Option を Meta として](#keyboard-shortcuts) 設定が必要 |

58 

59### テーマと表示

60 

61| ショートカット | 説明 | コンテキスト |

62| :------- | :------------------ | :---------------------------------------------------------- |

63| `Ctrl+T` | コードブロックの構文強調表示を切り替え | `/theme` ピッカーメニュー内でのみ機能します。Claude の応答のコードが構文色付けを使用するかどうかを制御 |

64 

65### 複数行入力

66 

67| 方法 | ショートカット | コンテキスト |

68| :---------- | :------------- | :------------------------------------------------------------------------------------------- |

69| クイック脱出 | `\` + `Enter` | すべてのターミナルで機能 |

70| Option キー | `Option+Enter` | macOS で [Option を Meta として](/ja/terminal-config#enable-option-key-shortcuts-on-macos) 有効にした後 |

71| Shift+Enter | `Shift+Enter` | iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal でネイティブ |

72| 制御シーケンス | `Ctrl+J` | 設定なしで任意のターミナルで機能 |

73| ペーストモード | 直接貼り付け | コードブロック、ログの場合 |

74 

75<Tip>

76 Shift+Enter は設定なしで iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal で機能します。VS Code、Cursor、Windsurf、Alacritty、Zed の場合は、`/terminal-setup` を実行してバインディングをインストールしてください。

77</Tip>

78 

79### クイックコマンド

80 

81| ショートカット | 説明 | 注記 |

82| :------ | :---------- | :---------------------------------------- |

83| `/` で開始 | コマンドまたはスキル | [コマンド](#commands) と [スキル](/ja/skills) を参照 |

84| `!` で開始 | Bash モード | コマンドを直接実行し、実行出力をセッションに追加 |

85| `@` | ファイルパスメンション | ファイルパスオートコンプリートをトリガー |

86 

87### トランスクリプトビューア

88 

89トランスクリプトビューアが開いている場合(`Ctrl+O` で切り替え)、これらのショートカットが利用可能です。`Ctrl+E` は [`transcript:toggleShowAll`](/ja/keybindings) で再バインド可能です。

90 

91| ショートカット | 説明 |

92| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |

93| `Ctrl+E` | すべてのコンテンツを表示を切り替え |

94| `[` | 完全な会話をターミナルのネイティブスクロールバックに書き込み、`Cmd+F`、tmux コピーモード、その他のネイティブツールで検索できるようにします。[フルスクリーンレンダリング](/ja/fullscreen#search-and-review-the-conversation) が必要 |

95| `v` | 会話を一時ファイルに書き込み、`$VISUAL` または `$EDITOR` で開きます。[フルスクリーンレンダリング](/ja/fullscreen) が必要 |

96| `q`、`Ctrl+C`、`Esc` | トランスクリプトビューを終了します。すべて [`transcript:exit`](/ja/keybindings) で再バインド可能です |

97 

98### 音声入力

99 

100| ショートカット | 説明 | 注記 |

101| :------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |

102| `Space` を押し続ける | 音声ディクテーション | [音声ディクテーション](/ja/voice-dictation) を有効にする必要があります。押し続けて記録するか、`/voice tap` を実行してタップトグルを使用します。[再バインド可能](/ja/voice-dictation#rebind-the-dictation-key) |

103 

104## コマンド

105 

106Claude Code で `/` を入力すると、利用可能なすべてのコマンドが表示されます。または `/` の後に任意の文字を入力してフィルタリングできます。`/` メニューには、組み込みコマンド、バンドルされたユーザー作成の [スキル](/ja/skills)、および [プラグイン](/ja/plugins) と [MCP サーバー](/ja/mcp#use-mcp-prompts-as-commands) によって提供されるコマンドが表示されます。すべてのコマンドがすべてのユーザーに表示されるわけではありません。プラットフォームまたはプランに依存するものもあるためです。

107 

108Claude Code に含まれるコマンドの完全なリストについては、[コマンドリファレンス](/ja/commands) を参照してください。

109 

110## Vim エディタモード

111 

112`/config` → エディタモードで Vim スタイルの編集を有効にします。

113 

114### モード切り替え

115 

116| コマンド | アクション | モードから |

117| :---- | :-------------- | :------------ |

118| `Esc` | NORMAL モードに入る | INSERT、VISUAL |

119| `i` | カーソルの前に挿入 | NORMAL |

120| `I` | 行の開始に挿入 | NORMAL |

121| `a` | カーソルの後に挿入 | NORMAL |

122| `A` | 行の終了に挿入 | NORMAL |

123| `o` | 下に行を開く | NORMAL |

124| `O` | 上に行を開く | NORMAL |

125| `v` | 文字単位のビジュアル選択を開始 | NORMAL |

126| `V` | 行単位のビジュアル選択を開始 | NORMAL |

127 

128### ナビゲーション(NORMAL モード)

129 

130| コマンド | アクション |

131| :-------------- | :------------------------ |

132| `h`/`j`/`k`/`l` | 左/下/上/右に移動 |

133| `w` | 次の単語 |

134| `e` | 単語の終わり |

135| `b` | 前の単語 |

136| `0` | 行の開始 |

137| `$` | 行の終わり |

138| `^` | 最初の空白以外の文字 |

139| `gg` | 入力の開始 |

140| `G` | 入力の終わり |

141| `f{char}` | 次の文字の出現位置にジャンプ |

142| `F{char}` | 前の文字の出現位置にジャンプ |

143| `t{char}` | 次の文字の出現位置の直前にジャンプ |

144| `T{char}` | 前の文字の出現位置の直後にジャンプ |

145| `;` | 最後の f/F/t/T モーションを繰り返す |

146| `,` | 最後の f/F/t/T モーションを逆順で繰り返す |

147 

148<Note>

149 Vim ノーマルモードでは、カーソルが入力の開始または終了にあり、それ以上移動できない場合、`j`/`k` と矢印キーはコマンド履歴を移動します。

150</Note>

151 

152### 編集(NORMAL モード)

153 

154| コマンド | アクション |

155| :------------- | :-------------- |

156| `x` | 文字を削除 |

157| `dd` | 行を削除 |

158| `D` | 行末まで削除 |

159| `dw`/`de`/`db` | 単語を削除/終わりまで/戻す |

160| `cc` | 行を変更 |

161| `C` | 行末まで変更 |

162| `cw`/`ce`/`cb` | 単語を変更/終わりまで/戻す |

163| `yy`/`Y` | 行をヤンク(コピー) |

164| `yw`/`ye`/`yb` | 単語をヤンク/終わりまで/戻す |

165| `p` | カーソルの後に貼り付け |

166| `P` | カーソルの前に貼り付け |

167| `>>` | 行をインデント |

168| `<<` | 行をデデント |

169| `J` | 行を結合 |

170| `u` | 元に戻す |

171| `.` | 最後の変更を繰り返す |

172 

173### テキストオブジェクト(NORMAL モード)

174 

175テキストオブジェクトは `d`、`c`、`y` などのオペレータで機能します:

176 

177| コマンド | アクション |

178| :-------- | :----------------- |

179| `iw`/`aw` | 内部/周囲の単語 |

180| `iW`/`aW` | 内部/周囲の WORD(空白区切り) |

181| `i"`/`a"` | 内部/周囲のダブルクォート |

182| `i'`/`a'` | 内部/周囲のシングルクォート |

183| `i(`/`a(` | 内部/周囲の括弧 |

184| `i[`/`a[` | 内部/周囲の角括弧 |

185| `i{`/`a{` | 内部/周囲の波括弧 |

186 

187### ビジュアルモード

188 

189文字単位の選択は `v` を、行単位の選択は `V` を押します。モーションは選択を拡張し、オペレータはそれに直接作用します。

190 

191| コマンド | アクション |

192| :--------------- | :-------------------------- |

193| `d`/`x` | 選択を削除 |

194| `y` | 選択をヤンク |

195| `c`/`s` | 選択を変更 |

196| `p` | 選択をレジスタの内容に置き換え |

197| `r{char}` | 選択されたすべての文字を `{char}` に置き換え |

198| `~`/`u`/`U` | 選択を切り替え、小文字、または大文字に |

199| `>`/`<` | 選択された行をインデントまたはデデント |

200| `J` | 選択された行を結合 |

201| `o` | カーソルとアンカーを交換 |

202| `iw`/`aw`/`i"`/… | テキストオブジェクトを選択 |

203| `v`/`V` | 文字単位と行単位を切り替え、または終了 |

204 

205`Ctrl+V` を使用したブロック単位のビジュアルモードはサポートされていません。

206 

207## コマンド履歴

208 

209Claude Code は現在のセッションのコマンド履歴を保持します:

210 

211* 入力履歴は作業ディレクトリごとに保存されます

212* `/clear` を実行して新しいセッションを開始すると、入力履歴がリセットされます。前のセッションの会話は保持され、再開できます。

213* Up/Down 矢印を使用して移動します(上記のキーボードショートカットを参照)

214* **注記**: 履歴展開(`!`)はデフォルトで無効です

215 

216### Ctrl+R での逆順検索

217 

218`Ctrl+R` を押してコマンド履歴をインタラクティブに検索します:

219 

2201. **検索を開始**: `Ctrl+R` を押して逆順履歴検索を有効化

2212. **クエリを入力**: 前のコマンドで検索するテキストを入力します。検索用語は一致する結果で強調表示されます

2223. **一致を移動**: `Ctrl+R` をもう一度押して、より古い一致を循環

2234. **スコープを変更**: `Ctrl+S` を押してこのセッション、このプロジェクト、すべてのプロジェクト間で循環

2245. **一致を受け入れ**:

225 * `Tab` または `Esc` を押して現在の一致を受け入れ、編集を続行

226 * `Enter` を押して一致を受け入れ、コマンドを即座に実行

2276. **検索をキャンセル**:

228 * `Ctrl+C` を押して検索をキャンセルし、元の入力を復元

229 * 空の検索で `Backspace` を押してキャンセル

230 

231検索は検索用語が強調表示されたマッチングコマンドを表示するため、前の入力を見つけて再利用できます。

232 

233## バックグラウンド bash コマンド

234 

235Claude Code はバックグラウンドで bash コマンドを実行することをサポートしており、長時間実行されるプロセスが実行されている間も作業を続けることができます。

236 

237### バックグラウンド実行の仕組み

238 

239Claude Code がコマンドをバックグラウンドで実行すると、コマンドを非同期で実行し、すぐにバックグラウンドタスク ID を返します。Claude Code は、コマンドがバックグラウンドで実行され続けている間、新しいプロンプトに応答できます。

240 

241コマンドをバックグラウンドで実行するには、以下のいずれかを実行できます:

242 

243* Claude Code にコマンドをバックグラウンドで実行するよう指示

244* Ctrl+B を押して、通常の Bash ツール呼び出しをバックグラウンドに移動。(Tmux ユーザーは tmux のプレフィックスキーのため Ctrl+B を 2 回押す必要があります。)

245 

246**主な機能:**

247 

248* 出力はファイルに書き込まれ、Claude は Read ツールを使用して取得できます

249* バックグラウンドタスクには、追跡と出力取得用の一意の ID があります

250* Claude Code が終了すると、バックグラウンドタスクは自動的にクリーンアップされます

251* 出力が 5GB を超える場合、バックグラウンドタスクは自動的に終了され、理由を説明するメモが stderr に表示されます

252 

253すべてのバックグラウンドタスク機能を無効にするには、`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 環境変数を `1` に設定します。詳細は [環境変数](/ja/env-vars) を参照してください。

254 

255**一般的なバックグラウンド実行コマンド:**

256 

257* ビルドツール(webpack、vite、make)

258* パッケージマネージャー(npm、yarn、pnpm)

259* テストランナー(jest、pytest)

260* 開発サーバー

261* 長時間実行プロセス(docker、terraform)

262 

263### `!` プレフィックス付き Bash モード

264 

265入力に `!` をプレフィックスして、Claude を経由せずに bash コマンドを直接実行します:

266 

267```bash theme={null}

268! npm test

269! git status

270! ls -la

271```

272 

273Bash モード:

274 

275* コマンドとその出力を会話コンテキストに追加

276* リアルタイムの進捗と出力を表示

277* 長時間実行コマンド用に同じ `Ctrl+B` バックグラウンド実行をサポート

278* Claude がコマンドを解釈または承認する必要がない

279* 履歴ベースのオートコンプリートをサポート:部分的なコマンドを入力し、**Tab** を押して現在のプロジェクトの前の `!` コマンドから完成させる

280* `Escape`、`Backspace`、または空のプロンプトで `Ctrl+U` で終了

281* 空のプロンプトに `!` で始まるテキストを貼り付けると、入力された `!` の動作と一致して、自動的に bash モードに入ります

282 

283これは会話コンテキストを保持しながら、クイックシェル操作に便利です。

284 

285## プロンプト提案

286 

287セッションを最初に開くと、グレーアウトされた例コマンドがプロンプト入力に表示され、開始するのに役立ちます。Claude Code はプロジェクトの git 履歴からこれを選択するため、最近作業しているファイルが反映されます。

288 

289Claude が応答した後、マルチパートリクエストのフォローアップステップや、ワークフローの自然な継続など、会話履歴に基づいて提案が表示され続けます。

290 

291* **Tab** または **Right arrow** を押して提案を受け入れるか、**Enter** を押して受け入れて送信

292* 入力を開始して却下

293 

294提案は、親会話のプロンプトキャッシュを再利用するバックグラウンドリクエストとして実行されるため、追加コストは最小限です。Claude Code はキャッシュがコールドの場合、不要なコストを避けるために提案生成をスキップします。

295 

296提案は会話の最初のターン後、非インタラクティブモード、およびプランモードで自動的にスキップされます。

297 

298プロンプト提案を完全に無効にするには、環境変数を設定するか、`/config` で設定を切り替えます:

299 

300```bash theme={null}

301export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false

302```

303 

304## /btw でのサイドクエスチョン

305 

306`/btw` を使用して、会話履歴に追加せずに現在の作業に関する簡単な質問をします。これは、高速な回答が必要だが、メインコンテキストを乱したくない、または Claude を長時間実行中のタスクから脱線させたくない場合に便利です。

307 

308```

309/btw what was the name of that config file again?

310```

311 

312サイドクエスチョンは現在の会話に完全に表示されるため、Claude が既に読んだコード、以前に行った決定、またはセッションからの他のことについて質問できます。質問と回答は一時的です:却下可能なオーバーレイに表示され、会話履歴に入ることはありません。

313 

314* **Claude が作業中に利用可能**: Claude が応答を処理している間でも `/btw` を実行できます。サイドクエスチョンは独立して実行され、メインターンを中断しません。

315* **ツールアクセスなし**: サイドクエスチョンは既にコンテキストにあるものからのみ回答します。Claude はサイドクエスチョンに回答する際、ファイルを読み取ったり、コマンドを実行したり、検索したりできません。

316* **単一応答**: フォローアップターンはありません。バックアンドフォースが必要な場合は、通常のプロンプトを使用してください。

317* **低コスト**: サイドクエスチョンは親会話のプロンプトキャッシュを再利用するため、追加コストは最小限です。

318 

319**Space**、**Enter**、または **Escape** を押して回答を却下し、プロンプトに戻ります。

320 

321`/btw` は [subagent](/ja/sub-agents) の逆です:完全な会話を見ることができますがツールがない一方、subagent は完全なツールを持っていますが空のコンテキストで開始します。このセッションから Claude が既に知っていることについて質問するには `/btw` を使用します。新しいことを見つけるには subagent を使用します。

322 

323## タスクリスト

324 

325複雑なマルチステップ作業に取り組む場合、Claude はタスクリストを作成して進捗を追跡します。タスクはターミナルのステータス領域に表示され、保留中、進行中、または完了を示すインジケータが表示されます。

326 

327* `Ctrl+T` を押してタスクリストビューを切り替えます。表示は一度に最大 5 個のタスクを表示します

328* すべてのタスクを表示するか、クリアするには、Claude に直接質問します:「すべてのタスクを表示して」または「すべてのタスクをクリアして」

329* タスクはコンテキストコンパクション全体で保持され、Claude がより大きなプロジェクトで整理された状態を保つのに役立ちます

330* タスクリストをセッション全体で共有するには、`CLAUDE_CODE_TASK_LIST_ID` を `~/.claude/tasks/` の名前付きディレクトリに使用するように設定します:`CLAUDE_CODE_TASK_LIST_ID=my-project claude`

331 

332## セッション要約

333 

334ターミナルから離れた後に戻ると、Claude Code はセッションで今までに何が起こったかの 1 行の要約を表示します。要約は、最後に完了したターン以降少なくとも 3 分が経過し、ターミナルがフォーカスされていない場合、バックグラウンドで 1 回生成されるため、切り替え時に準備ができています。要約はセッションに少なくとも 3 ターンがある場合にのみ表示され、連続して 2 回表示されることはありません。

335 

336`/recap` を実行してオンデマンドで要約を生成します。自動要約をオフにするには、`/config` を開いて **セッション要約** を無効にします。

337 

338セッション要約はすべてのプランとプロバイダーでデフォルトでオンです。要約は非インタラクティブモードでは常にスキップされます。

339 

340## PR レビューステータス

341 

342オープンなプルリクエストを持つブランチで作業する場合、Claude Code はフッターにクリック可能な PR リンクを表示します(例:「PR #446」)。リンクには、レビュー状態を示す色付きの下線があります:

343 

344* 緑:承認済み

345* 黄:レビュー保留中

346* 赤:変更をリクエスト

347* グレー:ドラフト

348* 紫:マージ済み

349 

350`Cmd+click`(Mac)または `Ctrl+click`(Windows/Linux)でリンクをクリックして、プルリクエストをブラウザで開きます。ステータスは 60 秒ごとに自動的に更新されます。

351 

352<Note>

353 PR ステータスには、`gh` CLI がインストールされ、認証されている必要があります(`gh auth login`)。

354</Note>

355 

356## 関連項目

357 

358* [スキル](/ja/skills) - カスタムプロンプトとワークフロー

359* [チェックポイント](/ja/checkpointing) - Claude の編集を巻き戻し、前の状態を復元

360* [CLI リファレンス](/ja/cli-reference) - コマンドラインフラグとオプション

361* [設定](/ja/settings) - 設定オプション

362* [メモリ管理](/ja/memory) - CLAUDE.md ファイルの管理

jetbrains.md +192 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# JetBrains IDEs

6 

7> Claude Code を IntelliJ、PyCharm、WebStorm など JetBrains IDEs で使用する

8 

9Claude Code は専用プラグインを通じて JetBrains IDEs と統合され、インタラクティブな diff ビューイング、選択コンテキスト共有など、様々な機能を提供します。

10 

11## サポートされている IDE

12 

13Claude Code プラグインは、以下を含むほとんどの JetBrains IDEs で動作します。

14 

15* IntelliJ IDEA

16* PyCharm

17* Android Studio

18* WebStorm

19* PhpStorm

20* GoLand

21 

22## 機能

23 

24* **クイック起動**: `Cmd+Esc`(Mac)または `Ctrl+Esc`(Windows/Linux)を使用してエディタから Claude Code を直接開くか、UI の Claude Code ボタンをクリックします

25* **Diff ビューイング**: コードの変更をターミナルではなく IDE の diff ビューアに直接表示できます

26* **選択コンテキスト**: IDE の現在の選択またはタブが Claude Code と自動的に共有されます

27* **ファイル参照ショートカット**: `Cmd+Option+K`(Mac)または `Alt+Ctrl+K`(Linux/Windows)を使用して `@src/auth.ts#L1-99` などのファイル参照を挿入します

28* **診断共有**: IDE からの診断エラー(lint、構文エラーなど)が作業中に Claude と自動的に共有されます

29 

30## インストール

31 

32### マーケットプレイスからのインストール

33 

34JetBrains マーケットプレイスから [Claude Code プラグイン](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) を見つけてインストールし、IDE を再起動します。

35 

36Claude Code をまだインストールしていない場合は、[クイックスタートガイド](/ja/quickstart) でインストール手順を確認してください。

37 

38<Note>

39 プラグインをインストール後、IDE を完全に再起動する必要がある場合があります。

40</Note>

41 

42## 使用方法

43 

44### IDE から

45 

46IDE の統合ターミナルから `claude` を実行すると、すべての統合機能がアクティブになります。

47 

48### 外部ターミナルから

49 

50任意の外部ターミナルで `/ide` コマンドを使用して Claude Code を JetBrains IDE に接続し、すべての機能をアクティブにします。

51 

52```bash theme={null}

53claude

54```

55 

56```text theme={null}

57/ide

58```

59 

60Claude が IDE と同じファイルにアクセスできるようにしたい場合は、IDE プロジェクトルートと同じディレクトリから Claude Code を起動してください。

61 

62## 設定

63 

64### Claude Code 設定

65 

66Claude Code の設定を通じて IDE 統合を設定します。

67 

681. `claude` を実行します

692. `/config` コマンドを入力します

703. diff ツールを `auto` に設定して IDE に diff を表示するか、`terminal` に設定してターミナルに表示したままにします

71 

72### プラグイン設定

73 

74**Settings → Tools → Claude Code \[Beta]** に移動して Claude Code プラグインを設定します。

75 

76#### 一般設定

77 

78* **Claude command**: Claude を実行するカスタムコマンドを指定します(例:`claude`、`/usr/local/bin/claude`、または `npx @anthropic-ai/claude-code`)

79* **Suppress notification for Claude command not found**: Claude コマンドが見つからないことに関する通知をスキップします

80* **Enable using Option+Enter for multi-line prompts**: macOS のみ。有効にすると、Option+Enter は Claude Code プロンプトに新しい行を挿入します。Option キーが予期せずキャプチャされる場合は無効にしてください。ターミナルの再起動が必要です。

81* **Enable automatic updates**: プラグインの更新を自動的にチェックしてインストールします。再起動時に適用されます

82 

83<Tip>

84 WSL ユーザー向け: Claude コマンドとして `wsl -d Ubuntu -- bash -lic "claude"` を設定します(`Ubuntu` を WSL ディストリビューション名に置き換えてください)

85</Tip>

86 

87#### ESC キー設定

88 

89ESC キーが JetBrains ターミナルで Claude Code 操作を中断しない場合:

90 

911. **Settings → Tools → Terminal** に移動します

922. 以下のいずれかを実行します。

93 * 「Move focus to the editor with Escape」をオフにするか、

94 * 「Configure terminal keybindings」をクリックして「Switch focus to Editor」ショートカットを削除します

953. 変更を適用します

96 

97これにより、ESC キーが Claude Code 操作を適切に中断できるようになります。

98 

99## 特別な設定

100 

101### リモート開発

102 

103<Warning>

104 JetBrains リモート開発を使用する場合、**Settings → Plugin (Host)** を通じてリモートホストにプラグインをインストールする必要があります。

105</Warning>

106 

107プラグインはローカルクライアントマシンではなく、リモートホストにインストールする必要があります。

108 

109### WSL 設定

110 

111Claude Code を WSL2 の JetBrains IDE で使用していて「No available IDEs detected」が表示される場合、原因は通常 WSL2 の NAT ネットワークまたは Windows ファイアウォールが WSL2 と Windows ホストで実行されている IDE 間の接続をブロックしていることです。WSL1 はホストのネットワークを直接使用するため、影響を受けません。

112 

113#### Windows ファイアウォール経由で WSL2 トラフィックを許可する

114 

115これは推奨される修正方法です。既存の WSL2 ネットワークモードを保持するためです。

116 

117<Steps>

118 <Step title="WSL2 IP アドレスを見つける">

119 WSL シェル内から以下を実行します。

120 

121 ```bash theme={null}

122 hostname -I

123 ```

124 

125 サブネットをメモします。例えば `172.21.123.45` は `172.21.0.0/16` に含まれます。

126 </Step>

127 

128 <Step title="ファイアウォールルールを作成する">

129 PowerShell を管理者として開き、以下を実行します。IP 範囲をサブネットに合わせて調整してください。

130 

131 ```powershell theme={null}

132 New-NetFirewallRule -DisplayName "Allow WSL2 Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 172.21.0.0/16 -LocalAddress 172.21.0.0/16

133 ```

134 </Step>

135 

136 <Step title="IDE と Claude Code を再起動する">

137 両方を閉じて再度開き、新しいルールが有効になるようにします。

138 </Step>

139</Steps>

140 

141#### WSL2 をミラーリングネットワークに切り替える

142 

143ミラーリングネットワークには Windows 11 22H2 以降が必要です。Windows 10 を使用している場合は、代わりに上記のファイアウォールルールを使用してください。

144 

145Windows ユーザーディレクトリの `.wslconfig` に以下を追加します。

146 

147```ini theme={null}

148[wsl2]

149networkingMode=mirrored

150```

151 

152その後、PowerShell から `wsl --shutdown` で WSL を再起動します。

153 

154## トラブルシューティング

155 

156### プラグインが動作しない

157 

158プラグインがインストールされているが Claude Code 機能が IDE に表示されない場合:

159 

160* Claude Code をプロジェクトルートディレクトリから実行していることを確認してください

161* JetBrains プラグインが IDE 設定で有効になっていることを確認してください

162* IDE を完全に再起動してください(複数回実行する必要がある場合があります)

163* リモート開発の場合、プラグインがリモートホストにインストールされていることを確認してください

164 

165### IDE が検出されない

166 

167`claude` を実行して「No available IDEs detected」が表示される場合:

168 

169* プラグインがインストールされて有効になっていることを確認してください

170* IDE を完全に再起動してください

171* 統合ターミナルから Claude Code を実行していることを確認してください

172* WSL ユーザーの場合、上記の [WSL 設定](#wsl-configuration) を参照してください

173 

174### コマンドが見つからない

175 

176Claude アイコンをクリックして「command not found」が表示される場合:

177 

1781. `claude --version` をターミナルで実行して Claude Code がインストールされていることを確認してください

1792. プラグイン設定で Claude コマンドパスを設定してください

1803. WSL ユーザーの場合、設定セクションで説明されている WSL コマンド形式を使用してください

181 

182## セキュリティに関する考慮事項

183 

184Claude Code が自動編集権限が有効な JetBrains IDE で実行される場合、IDE によって自動的に実行される可能性のある IDE 設定ファイルを変更できる場合があります。これにより、自動編集モードで Claude Code を実行するリスクが増加し、bash 実行に対する Claude Code の権限プロンプトをバイパスできる可能性があります。

185 

186JetBrains IDEs で実行する場合は、以下を検討してください。

187 

188* 編集に対して手動承認モードを使用する

189* Claude が信頼できるプロンプトでのみ使用されることを確認するために特に注意する

190* Claude Code がアクセスして変更できるファイルを認識する

191 

192Claude Code のインストールまたはログインの問題については、[インストールとログインのトラブルシューティング](/ja/troubleshoot-install) を参照してください。

keybindings.md +463 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# キーボードショートカットのカスタマイズ

6 

7> キーボードショートカットをカスタマイズして、Claude Code でキーバインディング設定ファイルを使用します。

8 

9<Note>

10 カスタマイズ可能なキーボードショートカットには Claude Code v2.1.18 以降が必要です。`claude --version` でバージョンを確認してください。

11</Note>

12 

13Claude Code はカスタマイズ可能なキーボードショートカットをサポートしています。`/keybindings` を実行して、`~/.claude/keybindings.json` に設定ファイルを作成または開きます。

14 

15## 設定ファイル

16 

17キーバインディング設定ファイルは、`bindings` 配列を持つオブジェクトです。各ブロックはコンテキストとキーストロークからアクションへのマップを指定します。

18 

19<Note>キーバインディングファイルへの変更は自動的に検出され、Claude Code を再起動することなく適用されます。</Note>

20 

21| フィールド | 説明 |

22| :--------- | :---------------------------------- |

23| `$schema` | エディタのオートコンプリート用のオプション JSON スキーマ URL |

24| `$docs` | オプションのドキュメント URL |

25| `bindings` | コンテキスト別のバインディングブロックの配列 |

26 

27この例では、チャットコンテキストで `Ctrl+E` を外部エディタを開くにバインドし、`Ctrl+U` をアンバインドします。

28 

29```json theme={null}

30{

31 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

32 "$docs": "https://code.claude.com/docs/ja/keybindings",

33 "bindings": [

34 {

35 "context": "Chat",

36 "bindings": {

37 "ctrl+e": "chat:externalEditor",

38 "ctrl+u": null

39 }

40 }

41 ]

42}

43```

44 

45## コンテキスト

46 

47各バインディングブロックは、バインディングが適用される**コンテキスト**を指定します。

48 

49| コンテキスト | 説明 |

50| :---------------- | :------------------------------ |

51| `Global` | アプリ全体に適用 |

52| `Chat` | メインチャット入力エリア |

53| `Autocomplete` | オートコンプリートメニューが開いている |

54| `Settings` | 設定メニュー |

55| `Confirmation` | 権限と確認ダイアログ |

56| `Tabs` | タブナビゲーションコンポーネント |

57| `Help` | ヘルプメニューが表示されている |

58| `Transcript` | トランスクリプトビューア |

59| `HistorySearch` | 履歴検索モード(Ctrl+R) |

60| `Task` | バックグラウンドタスクが実行中 |

61| `ThemePicker` | テーマピッカーダイアログ |

62| `Attachments` | 選択ダイアログ内の画像添付ファイルナビゲーション |

63| `Footer` | フッターインジケータナビゲーション(タスク、チーム、diff) |

64| `MessageSelector` | 巻き戻しと要約ダイアログのメッセージ選択 |

65| `DiffDialog` | Diff ビューアナビゲーション |

66| `ModelPicker` | モデルピッカー努力レベル |

67| `Select` | 汎用選択/リストコンポーネント |

68| `Plugin` | プラグインダイアログ(参照、発見、管理) |

69| `Scroll` | 会話スクロールとフルスクリーンモードでのテキスト選択 |

70| `Doctor` | `/doctor` 診断スクリーン |

71 

72## 利用可能なアクション

73 

74アクションは `namespace:action` 形式に従います。例えば、`chat:submit` はメッセージを送信し、`app:toggleTodos` はタスクリストを表示します。各コンテキストには特定のアクションが利用可能です。

75 

76### アプリアクション

77 

78`Global` コンテキストで利用可能なアクション:

79 

80| アクション | デフォルト | 説明 |

81| :--------------------- | :------- | :----------------- |

82| `app:interrupt` | Ctrl+C | 現在の操作をキャンセル |

83| `app:exit` | Ctrl+D | Claude Code を終了 |

84| `app:redraw` | (アンバインド) | ターミナルを強制的に再描画 |

85| `app:toggleTodos` | Ctrl+T | タスクリストの表示を切り替え |

86| `app:toggleTranscript` | Ctrl+O | 詳細トランスクリプトの表示を切り替え |

87 

88### 履歴アクション

89 

90コマンド履歴をナビゲートするためのアクション:

91 

92| アクション | デフォルト | 説明 |

93| :----------------- | :----- | :------ |

94| `history:search` | Ctrl+R | 履歴検索を開く |

95| `history:previous` | Up | 前の履歴項目 |

96| `history:next` | Down | 次の履歴項目 |

97 

98### チャットアクション

99 

100`Chat` コンテキストで利用可能なアクション:

101 

102| アクション | デフォルト | 説明 |

103| :-------------------- | :----------------------- | :-------------------------------------------------------------------------------------------------------- |

104| `chat:cancel` | Escape | 現在の入力をキャンセル |

105| `chat:clearInput` | Ctrl+L | 入力を保持したまま全画面再描画を強制します。[フルスクリーンレンダリング](/ja/fullscreen#clear-the-conversation)では、2 秒以内に 2 回押して `/clear` を実行 |

106| `chat:clearScreen` | Cmd+K | [フルスクリーンレンダリング](/ja/fullscreen#clear-the-conversation)では、2 秒以内に 2 回押して `/clear` を実行 |

107| `chat:killAgents` | Ctrl+X Ctrl+K | すべてのバックグラウンドエージェントを終了 |

108| `chat:cycleMode` | Shift+Tab\* | 権限モードをサイクル |

109| `chat:modelPicker` | Meta+P | モデルピッカーを開く |

110| `chat:fastMode` | Meta+O | 高速モードを切り替え |

111| `chat:thinkingToggle` | Meta+T | 拡張思考を切り替え |

112| `chat:submit` | Enter | メッセージを送信 |

113| `chat:newline` | Ctrl+J | 送信せずに改行を挿入 |

114| `chat:undo` | Ctrl+\_、Ctrl+Shift+- | 最後のアクションを元に戻す |

115| `chat:externalEditor` | Ctrl+G、Ctrl+X Ctrl+E | 外部エディタで開く |

116| `chat:stash` | Ctrl+S | 現在のプロンプトを保存 |

117| `chat:imagePaste` | Ctrl+V(Windows では Alt+V) | 画像を貼り付け |

118 

119\*VT モードなし(Node \<24.2.0/\<22.17.0、Bun \<1.2.23)の Windows では、デフォルトは Meta+M です。

120 

121### オートコンプリートアクション

122 

123`Autocomplete` コンテキストで利用可能なアクション:

124 

125| アクション | デフォルト | 説明 |

126| :---------------------- | :----- | :------- |

127| `autocomplete:accept` | Tab | 提案を受け入れ |

128| `autocomplete:dismiss` | Escape | メニューを閉じる |

129| `autocomplete:previous` | Up | 前の提案 |

130| `autocomplete:next` | Down | 次の提案 |

131 

132### 確認アクション

133 

134`Confirmation` コンテキストで利用可能なアクション:

135 

136| アクション | デフォルト | 説明 |

137| :-------------------------- | :-------- | :--------- |

138| `confirm:yes` | Y、Enter | アクションを確認 |

139| `confirm:no` | N、Escape | アクションを拒否 |

140| `confirm:previous` | Up | 前のオプション |

141| `confirm:next` | Down | 次のオプション |

142| `confirm:nextField` | Tab | 次のフィールド |

143| `confirm:previousField` | (アンバインド) | 前のフィールド |

144| `confirm:toggle` | Space | 選択を切り替え |

145| `confirm:cycleMode` | Shift+Tab | 権限モードをサイクル |

146| `confirm:toggleExplanation` | Ctrl+E | 権限説明を切り替え |

147 

148### 権限アクション

149 

150権限ダイアログの `Confirmation` コンテキストで利用可能なアクション:

151 

152| アクション | デフォルト | 説明 |

153| :----------------------- | :----- | :------------ |

154| `permission:toggleDebug` | Ctrl+D | 権限デバッグ情報を切り替え |

155 

156### トランスクリプトアクション

157 

158`Transcript` コンテキストで利用可能なアクション:

159 

160| アクション | デフォルト | 説明 |

161| :------------------------- | :-------------- | :---------------- |

162| `transcript:toggleShowAll` | Ctrl+E | すべてのコンテンツの表示を切り替え |

163| `transcript:exit` | q、Ctrl+C、Escape | トランスクリプトビューを終了 |

164 

165### 履歴検索アクション

166 

167`HistorySearch` コンテキストで利用可能なアクション:

168 

169| アクション | デフォルト | 説明 |

170| :------------------------- | :--------- | :------------------------- |

171| `historySearch:next` | Ctrl+R | 次のマッチ |

172| `historySearch:accept` | Escape、Tab | 選択を受け入れ |

173| `historySearch:cancel` | Ctrl+C | 検索をキャンセル |

174| `historySearch:execute` | Enter | 選択したコマンドを実行 |

175| `historySearch:cycleScope` | Ctrl+S | スコープをサイクル:セッション、プロジェクト、すべて |

176 

177### タスクアクション

178 

179`Task` コンテキストで利用可能なアクション:

180 

181| アクション | デフォルト | 説明 |

182| :---------------- | :----- | :--------------- |

183| `task:background` | Ctrl+B | 現在のタスクをバックグラウンドに |

184 

185### テーマアクション

186 

187`ThemePicker` コンテキストで利用可能なアクション:

188 

189| アクション | デフォルト | 説明 |

190| :------------------------------- | :----- | :--------------- |

191| `theme:toggleSyntaxHighlighting` | Ctrl+T | シンタックスハイライトを切り替え |

192 

193### ヘルプアクション

194 

195`Help` コンテキストで利用可能なアクション:

196 

197| アクション | デフォルト | 説明 |

198| :------------- | :----- | :---------- |

199| `help:dismiss` | Escape | ヘルプメニューを閉じる |

200 

201### タブアクション

202 

203`Tabs` コンテキストで利用可能なアクション:

204 

205| アクション | デフォルト | 説明 |

206| :-------------- | :------------- | :--- |

207| `tabs:next` | Tab、Right | 次のタブ |

208| `tabs:previous` | Shift+Tab、Left | 前のタブ |

209 

210### 添付ファイルアクション

211 

212`Attachments` コンテキストで利用可能なアクション:

213 

214| アクション | デフォルト | 説明 |

215| :--------------------- | :--------------- | :--------------- |

216| `attachments:next` | Right | 次の添付ファイル |

217| `attachments:previous` | Left | 前の添付ファイル |

218| `attachments:remove` | Backspace、Delete | 選択した添付ファイルを削除 |

219| `attachments:exit` | Down、Escape | 添付ファイルナビゲーションを終了 |

220 

221### フッターアクション

222 

223`Footer` コンテキストで利用可能なアクション:

224 

225| アクション | デフォルト | 説明 |

226| :---------------------- | :----- | :------------------- |

227| `footer:next` | Right | 次のフッター項目 |

228| `footer:previous` | Left | 前のフッター項目 |

229| `footer:up` | Up | フッター内で上に移動(最上部で選択解除) |

230| `footer:down` | Down | フッター内で下に移動 |

231| `footer:openSelected` | Enter | 選択したフッター項目を開く |

232| `footer:clearSelection` | Escape | フッター選択をクリア |

233 

234### メッセージセレクタアクション

235 

236`MessageSelector` コンテキストで利用可能なアクション:

237 

238| アクション | デフォルト | 説明 |

239| :----------------------- | :------------------------------------- | :------- |

240| `messageSelector:up` | Up、K、Ctrl+P | リストで上に移動 |

241| `messageSelector:down` | Down、J、Ctrl+N | リストで下に移動 |

242| `messageSelector:top` | Ctrl+Up、Shift+Up、Meta+Up、Shift+K | 最上部にジャンプ |

243| `messageSelector:bottom` | Ctrl+Down、Shift+Down、Meta+Down、Shift+J | 最下部にジャンプ |

244| `messageSelector:select` | Enter | メッセージを選択 |

245 

246### Diff アクション

247 

248`DiffDialog` コンテキストで利用可能なアクション:

249 

250| アクション | デフォルト | 説明 |

251| :-------------------- | :--------- | :------------ |

252| `diff:dismiss` | Escape | Diff ビューアを閉じる |

253| `diff:previousSource` | Left | 前の Diff ソース |

254| `diff:nextSource` | Right | 次の Diff ソース |

255| `diff:previousFile` | Up | Diff の前のファイル |

256| `diff:nextFile` | Down | Diff の次のファイル |

257| `diff:viewDetails` | Enter | Diff の詳細を表示 |

258| `diff:back` | (コンテキスト固有) | Diff ビューアで戻る |

259 

260### モデルピッカーアクション

261 

262`ModelPicker` コンテキストで利用可能なアクション:

263 

264| アクション | デフォルト | 説明 |

265| :--------------------------- | :---- | :------- |

266| `modelPicker:decreaseEffort` | Left | 努力レベルを低下 |

267| `modelPicker:increaseEffort` | Right | 努力レベルを増加 |

268 

269### 選択アクション

270 

271`Select` コンテキストで利用可能なアクション:

272 

273| アクション | デフォルト | 説明 |

274| :---------------- | :------------ | :------- |

275| `select:next` | Down、J、Ctrl+N | 次のオプション |

276| `select:previous` | Up、K、Ctrl+P | 前のオプション |

277| `select:accept` | Enter | 選択を受け入れ |

278| `select:cancel` | Escape | 選択をキャンセル |

279 

280### プラグインアクション

281 

282`Plugin` コンテキストで利用可能なアクション:

283 

284| アクション | デフォルト | 説明 |

285| :---------------- | :---- | :---------------------------------------------- |

286| `plugin:toggle` | Space | プラグイン選択を切り替え |

287| `plugin:install` | I | 選択したプラグインをインストール |

288| `plugin:favorite` | F | 選択したプラグインをお気に入りにして、インストール済みタブの上部付近にソートされるようにします |

289 

290### 設定アクション

291 

292`Settings` コンテキストで利用可能なアクション:

293 

294| アクション | デフォルト | 説明 |

295| :---------------- | :---- | :------------------------------------ |

296| `settings:search` | / | 検索モードに入る |

297| `settings:retry` | R | 使用状況データの読み込みを再試行(エラー時) |

298| `settings:close` | Enter | 変更を保存して設定パネルを閉じます。Escape は変更を破棄して閉じます |

299 

300### Doctor アクション

301 

302`Doctor` コンテキストで利用可能なアクション:

303 

304| アクション | デフォルト | 説明 |

305| :----------- | :---- | :--------------------------------------------------- |

306| `doctor:fix` | F | 診断レポートを Claude に送信して、報告された問題を修正します。問題が見つかった場合のみアクティブ |

307 

308### 音声アクション

309 

310[音声ディクテーション](/ja/voice-dictation)が有効な場合、`Chat` コンテキストで利用可能なアクション:

311 

312| アクション | デフォルト | 説明 |

313| :----------------- | :---- | :-------------------------------------------- |

314| `voice:pushToTalk` | Space | プロンプトをディクテートします。`/voice` モードに応じて押し続けるか、タップします |

315 

316### スクロールアクション

317 

318[フルスクリーンレンダリング](/ja/fullscreen)が有効な場合、`Scroll` コンテキストで利用可能なアクション:

319 

320| アクション | デフォルト | 説明 |

321| :-------------------------- | :------------------- | :---------------------------------------------------------------- |

322| `scroll:lineUp` | (アンバインド) | 1 行上にスクロール。マウスホイールスクロールがこのアクションをトリガー |

323| `scroll:lineDown` | (アンバインド) | 1 行下にスクロール。マウスホイールスクロールがこのアクションをトリガー |

324| `scroll:pageUp` | PageUp | ビューポート高さの半分だけ上にスクロール |

325| `scroll:pageDown` | PageDown | ビューポート高さの半分だけ下にスクロール |

326| `scroll:top` | Ctrl+Home | 会話の開始位置にジャンプ |

327| `scroll:bottom` | Ctrl+End | 最新メッセージにジャンプして自動フォローを再度有効化 |

328| `scroll:halfPageUp` | (アンバインド) | ビューポート高さの半分だけ上にスクロール。`scroll:pageUp` と同じ動作で、vi スタイルの再バインドのために提供 |

329| `scroll:halfPageDown` | (アンバインド) | ビューポート高さの半分だけ下にスクロール。`scroll:pageDown` と同じ動作で、vi スタイルの再バインドのために提供 |

330| `scroll:fullPageUp` | (アンバインド) | ビューポート高さ全体だけ上にスクロール |

331| `scroll:fullPageDown` | (アンバインド) | ビューポート高さ全体だけ下にスクロール |

332| `selection:copy` | Ctrl+Shift+C / Cmd+C | 選択したテキストをクリップボードにコピー |

333| `selection:clear` | (アンバインド) | アクティブなテキスト選択をクリア |

334| `selection:extendLeft` | Shift+Left | アクティブな選択を 1 列左に拡張 |

335| `selection:extendRight` | Shift+Right | アクティブな選択を 1 列右に拡張 |

336| `selection:extendUp` | Shift+Up | アクティブな選択を 1 行上に拡張。選択が上端に達するとビューポートをスクロール |

337| `selection:extendDown` | Shift+Down | アクティブな選択を 1 行下に拡張。選択が下端に達するとビューポートをスクロール |

338| `selection:extendLineStart` | Shift+Home | アクティブな選択を行の開始位置に拡張 |

339| `selection:extendLineEnd` | Shift+End | アクティブな選択を行の終了位置に拡張 |

340 

341## キーストロークシンタックス

342 

343### モディファイア

344 

345`+` セパレータでモディファイアキーを使用します。

346 

347* `ctrl` または `control` - Control キー

348* `shift` - Shift キー

349* `alt`、`opt`、`option`、または `meta` - Windows と Linux の Alt キー、macOS の Option キー

350* `cmd`、`command`、`super`、または `win` - macOS の Command キー、Windows の Windows キー、Linux の Super キー

351 

352`cmd` グループは Super モディファイアを報告するターミナル(Kitty キーボードプロトコルまたは xterm の `modifyOtherKeys` モードをサポートするターミナルなど)でのみ検出されます。ほとんどのターミナルはこれを送信しないため、すべての場所で機能するバインディングには `ctrl` または `meta` を使用してください。

353 

354例えば:

355 

356```text theme={null}

357ctrl+k Ctrl + K

358shift+tab Shift + Tab

359meta+p macOS の Option + P、その他の場所では Alt + P

360ctrl+shift+c 複数のモディファイア

361```

362 

363### 大文字

364 

365スタンドアロンの大文字は Shift を意味します。例えば、`K` は `shift+k` と同等です。これは大文字と小文字のキーが異なる意味を持つ vim スタイルのバインディングに便利です。

366 

367モディファイア付きの大文字(例:`ctrl+K`)はスタイル的に扱われ、Shift を意味**しません** — `ctrl+K` は `ctrl+k` と同じです。

368 

369### コード

370 

371コードはスペースで区切られたキーストロークのシーケンスです。

372 

373```text theme={null}

374ctrl+k ctrl+s Ctrl+K を押して、リリースしてから Ctrl+S

375```

376 

377### 特殊キー

378 

379* `escape` または `esc` - Escape キー

380* `enter` または `return` - Enter キー

381* `tab` - Tab キー

382* `space` - スペースバー

383* `up`、`down`、`left`、`right` - 矢印キー

384* `backspace`、`delete` - Delete キー

385 

386## デフォルトショートカットをアンバインド

387 

388アクションを `null` に設定して、デフォルトショートカットをアンバインドします。

389 

390```json theme={null}

391{

392 "bindings": [

393 {

394 "context": "Chat",

395 "bindings": {

396 "ctrl+s": null

397 }

398 }

399 ]

400}

401```

402 

403これはコードバインディングでも機能します。プレフィックスを共有するすべてのコードをアンバインドすると、そのプレフィックスを単一キーバインディングとして使用できるようになります。

404 

405```json theme={null}

406{

407 "bindings": [

408 {

409 "context": "Chat",

410 "bindings": {

411 "ctrl+x ctrl+k": null,

412 "ctrl+x ctrl+e": null,

413 "ctrl+x": "chat:newline"

414 }

415 }

416 ]

417}

418```

419 

420プレフィックス上の一部のコードをアンバインドしても、すべてをアンバインドしない場合、プレフィックスを押すと残りのバインディングのコード待機モードに入ります。

421 

422## 予約済みショートカット

423 

424これらのショートカットは再バインドできません。

425 

426| ショートカット | 理由 |

427| :-------- | :---------------------------- |

428| Ctrl+C | ハードコードされた割り込み/キャンセル |

429| Ctrl+D | ハードコードされた終了 |

430| Ctrl+M | ターミナルの Enter と同じ(どちらも CR を送信) |

431| Caps Lock | ターミナルアプリケーションに配信されない |

432 

433## ターミナルの競合

434 

435一部のショートカットはターミナルマルチプレクサと競合する可能性があります。

436 

437| ショートカット | 競合 |

438| :------ | :--------------------- |

439| Ctrl+B | tmux プレフィックス(2 回押して送信) |

440| Ctrl+A | GNU screen プレフィックス |

441| Ctrl+Z | Unix プロセス一時停止(SIGTSTP) |

442 

443## Vim モードの相互作用

444 

445Vim モードが `/config` → エディタモードで有効な場合、キーバインディングと Vim モードは独立して動作します。

446 

447* **Vim モード** はテキスト入力レベルで入力を処理します(カーソル移動、モード、モーション)

448* **キーバインディング** はコンポーネントレベルでアクションを処理します(todos を切り替え、送信など)

449* Vim モードの Escape キーは INSERT から NORMAL モードに切り替わります。`chat:cancel` をトリガーしません

450* ほとんどの Ctrl+key ショートカットは Vim モードを通過してキーバインディングシステムに渡されます

451* Vim NORMAL モードでは、`?` はヘルプメニューを表示します(Vim の動作)

452 

453## 検証

454 

455Claude Code はキーバインディングを検証し、以下の警告を表示します。

456 

457* 解析エラー(無効な JSON または構造)

458* 無効なコンテキスト名

459* 予約済みショートカットの競合

460* ターミナルマルチプレクサの競合

461* 同じコンテキスト内の重複バインディング

462 

463`/doctor` を実行して、キーバインディングの警告を確認します。

llm-gateway.md +196 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# LLM gateway設定

6 

7> Claude CodeをLLM gatewayソリューションと連携するための設定方法を学びます。gateway要件、認証設定、モデル選択、プロバイダー固有のエンドポイント設定をカバーしています。

8 

9LLM gatewayは、Claude Codeとモデルプロバイダー間の集中型プロキシレイヤーを提供し、以下のような機能をしばしば提供します:

10 

11* **集中型認証** - API キー管理の単一ポイント

12* **使用状況追跡** - チームとプロジェクト全体での使用状況の監視

13* **コスト管理** - 予算とレート制限の実装

14* **監査ログ** - コンプライアンスのためのすべてのモデル相互作用の追跡

15* **モデルルーティング** - コード変更なしでプロバイダー間の切り替え

16 

17## Gateway要件

18 

19LLM gatewayがClaude Codeと連携するには、以下の要件を満たす必要があります:

20 

21**API形式**

22 

23gatewayは、クライアントに対して以下のAPI形式の少なくとも1つを公開する必要があります:

24 

251. **Anthropic Messages**: `/v1/messages`、`/v1/messages/count_tokens`

26 * リクエストヘッダーを転送する必要があります:`anthropic-beta`、`anthropic-version`

27 

282. **Bedrock InvokeModel**: `/invoke`、`/invoke-with-response-stream`

29 * リクエストボディフィールドを保持する必要があります:`anthropic_beta`、`anthropic_version`

30 

313. **Vertex rawPredict**: `:rawPredict`、`:streamRawPredict`、`/count-tokens:rawPredict`

32 * リクエストヘッダーを転送する必要があります:`anthropic-beta`、`anthropic-version`

33 

34ヘッダーの転送またはボディフィールドの保持に失敗すると、機能が低下したり、Claude Code機能を使用できなくなる可能性があります。

35 

36<Note>

37 Claude Codeは、API形式に基づいて有効にする機能を決定します。Anthropic Messages形式をBedrocまたはVertexで使用する場合、環境変数 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` を設定する必要があります。

38</Note>

39 

40**リクエストヘッダー**

41 

42Claude Codeは、すべてのAPI リクエストに以下のヘッダーを含めます:

43 

44| ヘッダー | 説明 |

45| :------------------------- | :---------------------------------------------------------------------------------------- |

46| `X-Claude-Code-Session-Id` | 現在のClaude Codeセッションの一意の識別子。プロキシはこれを使用して、リクエストボディを解析することなく、単一セッションからのすべてのAPI リクエストを集約できます。 |

47 

48Claude Codeはまた、クライアントバージョンと会話から派生したフィンガープリントを含む短い帰属ブロックをシステムプロンプトの前に付加します。Anthropic APIはこのブロックを処理前に削除するため、ファーストパーティプロンプトキャッシングには影響しません。gatewayが完全なリクエストボディをキーとしたプロンプトキャッシュを実装している場合は、[`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/ja/env-vars)を設定して、それを省略してください。

49 

50## 設定

51 

52### モデル選択

53 

54デフォルトでは、Claude Code は選択したAPI形式の標準モデル名を使用します。

55 

56`ANTHROPIC_BASE_URL` が Anthropic Messages 形式を公開するゲートウェイを指している場合、Claude Code はスタートアップ時にゲートウェイの `/v1/models` エンドポイントをクエリし、返されたモデルを `/model` ピッカーに追加します。検出された各エントリは「From gateway」というラベルが付けられ、レスポンスから提供されている場合は `display_name` フィールドを使用します。これには Claude Code v2.1.126 以降が必要です。

57 

58検出は Anthropic Messages 形式にのみ適用されます。Bedrock または Vertex パススルーエンドポイントでは実行されず、`ANTHROPIC_BASE_URL` が設定されていない場合または `api.anthropic.com` を指している場合にも実行されません。

59 

60検出リクエストは推論リクエストと同じ方法で認証されます。認証トークンが設定されていない場合は、`ANTHROPIC_AUTH_TOKEN` をベアラートークンとして、または `ANTHROPIC_API_KEY` を `x-api-key` ヘッダーとして送信し、`ANTHROPIC_CUSTOM_HEADERS` からのヘッダーと共に送信されます。ID が `claude` または `anthropic` で始まるモデルのみがピッカーに追加されます。結果は `~/.claude/cache/gateway-models.json` にキャッシュされ、スタートアップのたびに更新されます。リクエストが失敗するか、ゲートウェイが `/v1/models` を実装していない場合、ピッカーは前回のスタートアップからのキャッシュリストまたは組み込みモデルリストにフォールバックします。

61 

62ゲートウェイが検出フィルターと一致しないモデル名を使用している場合は、[モデル設定](/ja/model-config)に記載されている環境変数を使用して、手動で追加してください。

63 

64## LiteLLM設定

65 

66<Warning>

67 LiteLLM PyPI バージョン 1.82.7 および 1.82.8 は、認証情報を盗むマルウェアで侵害されました。これらのバージョンをインストールしないでください。既にインストールしている場合:

68 

69 * パッケージを削除してください

70 * 影響を受けたシステムのすべての認証情報をローテーションしてください

71 * [BerriAI/litellm#24518](https://github.com/BerriAI/litellm/issues/24518)の修復手順に従ってください

72 

73 LiteLLMはサードパーティのプロキシサービスです。Anthropicは、LiteLLMのセキュリティまたは機能を推奨、保守、または監査していません。このガイドは情報提供目的で提供されており、古くなる可能性があります。自己判断で使用してください。

74</Warning>

75 

76### 前提条件

77 

78* Claude Codeが最新バージョンに更新されている

79* LiteLLM Proxy Serverがデプロイされてアクセス可能

80* 選択したプロバイダーを通じてClaudeモデルへのアクセス

81 

82### 基本的なLiteLLMセットアップ

83 

84**Claude Codeを設定する**:

85 

86#### 認証方法

87 

88##### 静的APIキー

89 

90固定APIキーを使用した最も簡単な方法:

91 

92```bash theme={null}

93# 環境で設定

94export ANTHROPIC_AUTH_TOKEN=sk-litellm-static-key

95 

96# またはClaude Code設定で

97{

98 "env": {

99 "ANTHROPIC_AUTH_TOKEN": "sk-litellm-static-key"

100 }

101}

102```

103 

104この値は `Authorization` ヘッダーとして送信されます。

105 

106##### ヘルパーを使用した動的APIキー

107 

108キーのローテーションまたはユーザーごとの認証の場合:

109 

1101. APIキーヘルパースクリプトを作成します:

111 

112```bash theme={null}

113#!/bin/bash

114# ~/bin/get-litellm-key.sh

115 

116# 例:vaultからキーを取得

117vault kv get -field=api_key secret/litellm/claude-code

118 

119# 例:JWTトークンを生成

120jwt encode \

121 --secret="${JWT_SECRET}" \

122 --exp="+1h" \

123 '{"user":"'${USER}'","team":"engineering"}'

124```

125 

1262. ヘルパーを使用するようにClaude Code設定を構成します:

127 

128```json theme={null}

129{

130 "apiKeyHelper": "~/bin/get-litellm-key.sh"

131}

132```

133 

1343. トークンリフレッシュ間隔を設定します:

135 

136```bash theme={null}

137# 1時間ごとにリフレッシュ(3600000 ms)

138export CLAUDE_CODE_API_KEY_HELPER_TTL_MS=3600000

139```

140 

141この値は `Authorization` および `X-Api-Key` ヘッダーとして送信されます。`apiKeyHelper` は `ANTHROPIC_AUTH_TOKEN` または `ANTHROPIC_API_KEY` より優先度が低くなります。

142 

143#### 統合エンドポイント(推奨)

144 

145LiteLLMの[Anthropic形式エンドポイント](https://docs.litellm.ai/docs/anthropic_unified)を使用:

146 

147```bash theme={null}

148export ANTHROPIC_BASE_URL=https://litellm-server:4000

149```

150 

151**統合エンドポイントのパススルーエンドポイント上での利点:**

152 

153* ロードバランシング

154* フェイルオーバー

155* コスト追跡とエンドユーザー追跡の一貫したサポート

156 

157#### プロバイダー固有のパススルーエンドポイント(代替)

158 

159##### LiteLLMを通じたClaude API

160 

161[パススルーエンドポイント](https://docs.litellm.ai/docs/pass_through/anthropic_completion)を使用:

162 

163```bash theme={null}

164export ANTHROPIC_BASE_URL=https://litellm-server:4000/anthropic

165```

166 

167##### LiteLLMを通じたAmazon Bedrock

168 

169[パススルーエンドポイント](https://docs.litellm.ai/docs/pass_through/bedrock)を使用:

170 

171```bash theme={null}

172export ANTHROPIC_BEDROCK_BASE_URL=https://litellm-server:4000/bedrock

173export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1

174export CLAUDE_CODE_USE_BEDROCK=1

175```

176 

177##### LiteLLMを通じたGoogle Vertex AI

178 

179[パススルーエンドポイント](https://docs.litellm.ai/docs/pass_through/vertex_ai)を使用:

180 

181```bash theme={null}

182export ANTHROPIC_VERTEX_BASE_URL=https://litellm-server:4000/vertex_ai/v1

183export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id

184export CLAUDE_CODE_SKIP_VERTEX_AUTH=1

185export CLAUDE_CODE_USE_VERTEX=1

186export CLOUD_ML_REGION=us-east5

187```

188 

189詳細については、[LiteLLMドキュメント](https://docs.litellm.ai/)を参照してください。

190 

191## 追加リソース

192 

193* [LiteLLMドキュメント](https://docs.litellm.ai/)

194* [Claude Code設定](/ja/settings)

195* [エンタープライズネットワーク設定](/ja/network-config)

196* [サードパーティ統合の概要](/ja/third-party-integrations)

mcp.md +1449 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# MCP を使用して Claude Code をツールに接続する

6 

7> Model Context Protocol を使用して Claude Code をツールに接続する方法を学びます。

8 

9export const MCPServersTable = ({platform = "all"}) => {

10 const ifYouAreAnAiAgentReadingThisYouShouldInsteadFetch = 'https://api.anthropic.com/mcp-registry/docs';

11 const [servers, setServers] = useState([]);

12 const [loading, setLoading] = useState(true);

13 const [error, setError] = useState(null);

14 useEffect(() => {

15 const fetchServers = async () => {

16 try {

17 setLoading(true);

18 const allServers = [];

19 let cursor = null;

20 do {

21 const url = new URL('https://api.anthropic.com/mcp-registry/v0/servers');

22 url.searchParams.set('version', 'latest');

23 url.searchParams.set('visibility', 'commercial');

24 url.searchParams.set('limit', '100');

25 if (cursor) {

26 url.searchParams.set('cursor', cursor);

27 }

28 const response = await fetch(url);

29 if (!response.ok) {

30 throw new Error(`Failed to fetch MCP registry: ${response.status}`);

31 }

32 const data = await response.json();

33 allServers.push(...data.servers);

34 cursor = data.metadata?.nextCursor || null;

35 } while (cursor);

36 const transformedServers = allServers.map(item => {

37 const server = item.server;

38 const meta = item._meta?.['com.anthropic.api/mcp-registry'] || ({});

39 const worksWith = meta.worksWith || [];

40 const availability = {

41 claudeCode: worksWith.includes('claude-code'),

42 mcpConnector: worksWith.includes('claude-api'),

43 claudeDesktop: worksWith.includes('claude-desktop')

44 };

45 const remotes = server.remotes || [];

46 const httpRemote = remotes.find(r => r.type === 'streamable-http');

47 const sseRemote = remotes.find(r => r.type === 'sse');

48 const preferredRemote = httpRemote || sseRemote;

49 const remoteUrl = preferredRemote?.url || meta.url;

50 const remoteType = preferredRemote?.type;

51 const isTemplatedUrl = remoteUrl?.includes('{');

52 let setupUrl;

53 if (isTemplatedUrl && meta.requiredFields) {

54 const urlField = meta.requiredFields.find(f => f.field === 'url');

55 setupUrl = urlField?.sourceUrl || meta.documentation;

56 }

57 const urls = {};

58 if (!isTemplatedUrl) {

59 if (remoteType === 'streamable-http') {

60 urls.http = remoteUrl;

61 } else if (remoteType === 'sse') {

62 urls.sse = remoteUrl;

63 }

64 }

65 let envVars = [];

66 if (server.packages && server.packages.length > 0) {

67 const npmPackage = server.packages.find(p => p.registryType === 'npm');

68 if (npmPackage) {

69 urls.stdio = `npx -y ${npmPackage.identifier}`;

70 if (npmPackage.environmentVariables) {

71 envVars = npmPackage.environmentVariables;

72 }

73 }

74 }

75 return {

76 name: meta.displayName || server.title || server.name,

77 description: meta.oneLiner || server.description,

78 documentation: meta.documentation,

79 urls: urls,

80 envVars: envVars,

81 availability: availability,

82 customCommands: meta.claudeCodeCopyText ? {

83 claudeCode: meta.claudeCodeCopyText

84 } : undefined,

85 setupUrl: setupUrl

86 };

87 });

88 setServers(transformedServers);

89 setError(null);

90 } catch (err) {

91 setError(err.message);

92 console.error('Error fetching MCP registry:', err);

93 } finally {

94 setLoading(false);

95 }

96 };

97 fetchServers();

98 }, []);

99 const generateClaudeCodeCommand = server => {

100 if (server.customCommands && server.customCommands.claudeCode) {

101 return server.customCommands.claudeCode.replace('--transport streamable-http', '--transport http');

102 }

103 const serverSlug = server.name.toLowerCase().replace(/[^a-z0-9]/g, '-');

104 if (server.urls.http) {

105 return `claude mcp add ${serverSlug} --transport http ${server.urls.http}`;

106 }

107 if (server.urls.sse) {

108 return `claude mcp add ${serverSlug} --transport sse ${server.urls.sse}`;

109 }

110 if (server.urls.stdio) {

111 const envFlags = server.envVars && server.envVars.length > 0 ? server.envVars.map(v => `--env ${v.name}=YOUR_${v.name}`).join(' ') : '';

112 const baseCommand = `claude mcp add ${serverSlug} --transport stdio`;

113 return envFlags ? `${baseCommand} ${envFlags} -- ${server.urls.stdio}` : `${baseCommand} -- ${server.urls.stdio}`;

114 }

115 return null;

116 };

117 if (loading) {

118 return <div>Loading MCP servers...</div>;

119 }

120 if (error) {

121 return <div>Error loading MCP servers: {error}</div>;

122 }

123 const filteredServers = servers.filter(server => {

124 if (platform === "claudeCode") {

125 return server.availability.claudeCode;

126 } else if (platform === "mcpConnector") {

127 return server.availability.mcpConnector;

128 } else if (platform === "claudeDesktop") {

129 return server.availability.claudeDesktop;

130 } else if (platform === "all") {

131 return true;

132 } else {

133 throw new Error(`Unknown platform: ${platform}`);

134 }

135 });

136 return <>

137 <style jsx>{`

138 .cards-container {

139 display: grid;

140 gap: 1rem;

141 margin-bottom: 2rem;

142 }

143 .server-card {

144 border: 1px solid var(--border-color, #e5e7eb);

145 border-radius: 6px;

146 padding: 1rem;

147 }

148 .command-row {

149 display: flex;

150 align-items: center;

151 gap: 0.25rem;

152 }

153 .command-row code {

154 font-size: 0.75rem;

155 overflow-x: auto;

156 }

157 `}</style>

158 

159 <div className="cards-container">

160 {filteredServers.map(server => {

161 const claudeCodeCommand = generateClaudeCodeCommand(server);

162 const mcpUrl = server.urls.http || server.urls.sse;

163 const commandToShow = platform === "claudeCode" ? claudeCodeCommand : mcpUrl;

164 return <div key={server.name} className="server-card">

165 <div>

166 {server.documentation ? <a href={server.documentation}>

167 <strong>{server.name}</strong>

168 </a> : <strong>{server.name}</strong>}

169 </div>

170 

171 <p style={{

172 margin: '0.5rem 0',

173 fontSize: '0.9rem'

174 }}>

175 {server.description}

176 </p>

177 

178 {server.setupUrl && <p style={{

179 margin: '0.25rem 0',

180 fontSize: '0.8rem',

181 fontStyle: 'italic',

182 opacity: 0.7

183 }}>

184 Requires user-specific URL.{' '}

185 <a href={server.setupUrl} style={{

186 textDecoration: 'underline'

187 }}>

188 Get your URL here

189 </a>.

190 </p>}

191 

192 {commandToShow && !server.setupUrl && <>

193 <p style={{

194 display: 'block',

195 fontSize: '0.75rem',

196 fontWeight: 500,

197 minWidth: 'fit-content',

198 marginTop: '0.5rem',

199 marginBottom: 0

200 }}>

201 {platform === "claudeCode" ? "Command" : "URL"}

202 </p>

203 <div className="command-row">

204 <code>

205 {commandToShow}

206 </code>

207 </div>

208 </>}

209 </div>;

210 })}

211 </div>

212 </>;

213};

214 

215Claude Code は、AI ツール統合のためのオープンソース標準である [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) を通じて、数百の外部ツールとデータソースに接続できます。MCP サーバーは Claude Code にツール、データベース、API へのアクセスを提供します。

216 

217別のツール(課題追跡ツールや監視ダッシュボードなど)からチャットにデータをコピーしている場合は、サーバーを接続してください。接続すると、Claude は貼り付けたものから作業する代わりに、そのシステムを直接読み取り、操作できます。

218 

219## MCP でできること

220 

221MCP サーバーが接続されている場合、Claude Code に以下のことを依頼できます:

222 

223* **課題追跡ツールから機能を実装する**:「JIRA の課題 ENG-4521 に記載されている機能を追加し、GitHub に PR を作成してください。」

224* **監視データを分析する**:「Sentry と Statsig をチェックして、ENG-4521 に記載されている機能の使用状況を確認してください。」

225* **データベースをクエリする**:「PostgreSQL データベースに基づいて、ENG-4521 機能を使用した 10 人のランダムなユーザーのメールアドレスを検索してください。」

226* **デザインを統合する**:「Slack に投稿された新しい Figma デザインに基づいて、標準メールテンプレートを更新してください。」

227* **ワークフローを自動化する**:「新機能に関するフィードバックセッションに招待する 10 人のユーザーに Gmail ドラフトを作成してください。」

228* **外部イベントに対応する**:MCP サーバーは [チャネル](/ja/channels) として機能することもでき、セッションにメッセージをプッシュするため、Claude は離席中に Telegram メッセージ、Discord チャット、または webhook イベントに対応できます。

229 

230## 人気のある MCP サーバー

231 

232Claude Code に接続できる一般的に使用される MCP サーバーをいくつか紹介します:

233 

234<Warning>

235 サードパーティの MCP サーバーは自己責任で使用してください。Anthropic はこれらすべてのサーバーの正確性またはセキュリティを検証していません。

236 インストールする MCP サーバーを信頼していることを確認してください。

237 信頼できないコンテンツを取得する可能性のある MCP サーバーを使用する場合は特に注意してください。これらはプロンプトインジェクションのリスクにさらされる可能性があります。

238</Warning>

239 

240<MCPServersTable platform="claudeCode" />

241 

242<Note>

243 **特定の統合が必要ですか?** [GitHub で数百以上の MCP サーバーを検索](https://github.com/modelcontextprotocol/servers)するか、[MCP SDK](https://modelcontextprotocol.io/quickstart/server) を使用して独自のサーバーを構築してください。

244</Note>

245 

246## MCP サーバーのインストール

247 

248MCP サーバーは、ニーズに応じて 3 つの異なる方法で設定できます:

249 

250### オプション 1:リモート HTTP サーバーを追加する

251 

252HTTP サーバーはリモート MCP サーバーに接続するための推奨オプションです。これはクラウドベースのサービスに最も広くサポートされているトランスポートです。

253 

254```bash theme={null}

255# 基本的な構文

256claude mcp add --transport http <name> <url>

257 

258# 実際の例:Notion に接続する

259claude mcp add --transport http notion https://mcp.notion.com/mcp

260 

261# Bearer トークンを使用した例

262claude mcp add --transport http secure-api https://api.example.com/mcp \

263 --header "Authorization: Bearer your-token"

264```

265 

266### オプション 2:リモート SSE サーバーを追加する

267 

268<Warning>

269 SSE(Server-Sent Events)トランスポートは非推奨です。利用可能な場合は HTTP サーバーを使用してください。

270</Warning>

271 

272```bash theme={null}

273# 基本的な構文

274claude mcp add --transport sse <name> <url>

275 

276# 実際の例:Asana に接続する

277claude mcp add --transport sse asana https://mcp.asana.com/sse

278 

279# 認証ヘッダーを使用した例

280claude mcp add --transport sse private-api https://api.company.com/sse \

281 --header "X-API-Key: your-key-here"

282```

283 

284### オプション 3:ローカル stdio サーバーを追加する

285 

286Stdio サーバーはマシン上でローカルプロセスとして実行されます。システムへの直接アクセスやカスタムスクリプトが必要なツールに最適です。

287 

288```bash theme={null}

289# 基本的な構文

290claude mcp add [options] <name> -- <command> [args...]

291 

292# 実際の例:Airtable サーバーを追加する

293claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \

294 -- npx -y airtable-mcp-server

295```

296 

297<Note>

298 **重要:オプションの順序**

299 

300 すべてのオプション(`--transport`、`--env`、`--scope`、`--header`)はサーバー名の**前に**来る必要があります。`--`(ダブルダッシュ)はサーバー名を MCP サーバーに渡されるコマンドと引数から分離します。

301 

302 例:

303 

304 * `claude mcp add --transport stdio myserver -- npx server` → `npx server` を実行します

305 * `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → 環境に `KEY=value` を設定して `python server.py --port 8080` を実行します

306 

307 これにより、Claude のフラグとサーバーのフラグの間の競合を防ぎます。

308</Note>

309 

310### サーバーの管理

311 

312設定後、これらのコマンドで MCP サーバーを管理できます:

313 

314```bash theme={null}

315# すべての設定済みサーバーをリストする

316claude mcp list

317 

318# 特定のサーバーの詳細を取得する

319claude mcp get github

320 

321# サーバーを削除する

322claude mcp remove github

323 

324# (Claude Code 内)サーバーのステータスを確認する

325/mcp

326```

327 

328### 動的ツール更新

329 

330Claude Code は MCP `list_changed` 通知をサポートしており、MCP サーバーが切断して再接続することなく、利用可能なツール、プロンプト、リソースを動的に更新できます。MCP サーバーが `list_changed` 通知を送信すると、Claude Code はそのサーバーから利用可能な機能を自動的に更新します。

331 

332### 自動再接続

333 

334HTTP または SSE サーバーがセッション中に切断された場合、Claude Code は指数バックオフで自動的に再接続します:最大 5 回の試行、1 秒の遅延から始まり、毎回 2 倍になります。サーバーは再接続が進行中の間、`/mcp` では保留中として表示されます。5 回の失敗した試行の後、サーバーは失敗としてマークされ、`/mcp` から手動で再試行できます。Stdio サーバーはローカルプロセスであり、自動的には再接続されません。

335 

336同じバックオフは、HTTP または SSE サーバーが起動時に初期接続に失敗した場合にも適用されます。v2.1.121 以降、Claude Code は 5xx レスポンス、接続拒否、タイムアウトなどの一時的なエラーで初期接続を最大 3 回再試行し、それでも接続できない場合はサーバーを失敗としてマークします。認証エラーと見つからないエラーは、解決するために設定変更が必要なため、再試行されません。

337 

338### チャネルでメッセージをプッシュする

339 

340MCP サーバーはセッションに直接メッセージをプッシュすることもでき、Claude が CI 結果、監視アラート、チャットメッセージなどの外部イベントに対応できます。これを有効にするには、サーバーが `claude/channel` 機能を宣言し、起動時に `--channels` フラグでオプトインします。公式にサポートされているチャネルを使用するには [チャネル](/ja/channels) を参照するか、独自に構築するには [チャネルリファレンス](/ja/channels-reference) を参照してください。

341 

342<Tip>

343 ヒント:

344 

345 * `--scope` フラグを使用して、設定が保存される場所を指定します:

346 * `local`(デフォルト):現在のプロジェクトでのみ利用可能(古いバージョンでは `project` と呼ばれていました)

347 * `project`:`.mcp.json` ファイルを通じてプロジェクト内のすべてのユーザーと共有

348 * `user`:すべてのプロジェクト全体で利用可能(古いバージョンでは `global` と呼ばれていました)

349 * `--env` フラグで環境変数を設定します(例:`--env KEY=value`)

350 * `MCP_TIMEOUT` 環境変数を使用して MCP サーバーのスタートアップタイムアウトを設定します(例:`MCP_TIMEOUT=10000 claude` は 10 秒のタイムアウトを設定します)

351 * Claude Code は MCP ツール出力が 10,000 トークンを超えると警告を表示します。この制限を増やすには、`MAX_MCP_OUTPUT_TOKENS` 環境変数を設定します(例:`MAX_MCP_OUTPUT_TOKENS=50000`)

352 * `/mcp` を使用して、OAuth 2.0 認証が必要なリモートサーバーで認証します

353</Tip>

354 

355### プラグイン提供の MCP サーバー

356 

357[プラグイン](/ja/plugins) は MCP サーバーをバンドルでき、プラグインが有効になると自動的にツールと統合を提供します。プラグイン MCP サーバーはユーザーが設定したサーバーと同じように機能します。

358 

359**プラグイン MCP サーバーの仕組み**:

360 

361* プラグインはプラグインルートの `.mcp.json` または `plugin.json` 内でインラインで MCP サーバーを定義します

362* プラグインが有効になると、その MCP サーバーが自動的に起動します

363* プラグイン MCP ツールは手動で設定された MCP ツールと一緒に表示されます

364* プラグインサーバーはプラグインのインストールを通じて管理されます(`/mcp` コマンドではありません)

365 

366**プラグイン MCP 設定の例**:

367 

368プラグインルートの `.mcp.json` 内:

369 

370```json theme={null}

371{

372 "mcpServers": {

373 "database-tools": {

374 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

375 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],

376 "env": {

377 "DB_URL": "${DB_URL}"

378 }

379 }

380 }

381}

382```

383 

384または `plugin.json` 内でインライン:

385 

386```json theme={null}

387{

388 "name": "my-plugin",

389 "mcpServers": {

390 "plugin-api": {

391 "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",

392 "args": ["--port", "8080"]

393 }

394 }

395}

396```

397 

398**プラグイン MCP 機能**:

399 

400* **自動ライフサイクル**:セッション起動時に、有効なプラグインのサーバーが自動的に接続されます。セッション中にプラグインを有効または無効にする場合は、`/reload-plugins` を実行して MCP サーバーを接続または切断してください

401* **環境変数**:バンドルされたプラグインファイルに `${CLAUDE_PLUGIN_ROOT}` を使用し、プラグイン更新を通じて保持される [永続的な状態](/ja/plugins-reference#persistent-data-directory) に `${CLAUDE_PLUGIN_DATA}` を使用します

402* **ユーザー環境アクセス**:手動で設定されたサーバーと同じ環境変数へのアクセス

403* **複数のトランスポートタイプ**:stdio、SSE、HTTP トランスポートをサポート(トランスポートサポートはサーバーによって異なる場合があります)

404 

405**プラグイン MCP サーバーの表示**:

406 

407```bash theme={null}

408# Claude Code 内で、プラグインのものを含むすべての MCP サーバーを表示

409/mcp

410```

411 

412プラグインサーバーはプラグインから来ていることを示すインジケータ付きでリストに表示されます。

413 

414**プラグイン MCP サーバーの利点**:

415 

416* **バンドル配布**:ツールとサーバーが一緒にパッケージ化されます

417* **自動セットアップ**:手動の MCP 設定は不要です

418* **チーム一貫性**:プラグインがインストールされると、すべてのユーザーが同じツールを取得します

419 

420プラグインで MCP サーバーをバンドルする詳細については、[プラグインコンポーネントリファレンス](/ja/plugins-reference#mcp-servers)を参照してください。

421 

422## MCP インストールスコープ

423 

424MCP サーバーは 3 つのスコープで設定できます。選択するスコープは、サーバーがロードされるプロジェクトと、設定がチームと共有されるかどうかを制御します。

425 

426| スコープ | ロード対象 | チームと共有 | 保存場所 |

427| ------------------------ | ----------- | ------------ | ---------------------- |

428| [ローカル](#local-scope) | 現在のプロジェクトのみ | いいえ | `~/.claude.json` |

429| [プロジェクト](#project-scope) | 現在のプロジェクトのみ | はい、バージョン管理経由 | プロジェクトルートの `.mcp.json` |

430| [ユーザー](#user-scope) | すべてのプロジェクト | いいえ | `~/.claude.json` |

431 

432### ローカルスコープ

433 

434ローカルスコープはデフォルトです。ローカルスコープのサーバーは、追加したプロジェクトでのみロードされ、あなたにプライベートなままです。Claude Code は `~/.claude.json` のそのプロジェクトのパスの下に保存するため、同じサーバーは他のプロジェクトに表示されません。個人開発サーバー、実験的な設定、またはバージョン管理に含めたくない認証情報を持つサーバーにはローカルスコープを使用してください。

435 

436<Note>

437 MCP サーバーの「ローカルスコープ」という用語は、一般的なローカル設定とは異なります。MCP ローカルスコープのサーバーは `~/.claude.json`(ホームディレクトリ)に保存されますが、一般的なローカル設定は `.claude/settings.local.json`(プロジェクトディレクトリ内)を使用します。設定ファイルの場所の詳細については、[設定](/ja/settings#settings-files)を参照してください。

438</Note>

439 

440```bash theme={null}

441# ローカルスコープのサーバーを追加する(デフォルト)

442claude mcp add --transport http stripe https://mcp.stripe.com

443 

444# ローカルスコープを明示的に指定する

445claude mcp add --transport http stripe --scope local https://mcp.stripe.com

446```

447 

448コマンドは現在のプロジェクトのエントリを `~/.claude.json` に書き込みます。以下の例は、`/path/to/your/project` から実行した場合の結果を示しています:

449 

450```json theme={null}

451{

452 "projects": {

453 "/path/to/your/project": {

454 "mcpServers": {

455 "stripe": {

456 "type": "http",

457 "url": "https://mcp.stripe.com"

458 }

459 }

460 }

461 }

462}

463```

464 

465### プロジェクトスコープ

466 

467プロジェクトスコープのサーバーは、プロジェクトのルートディレクトリの `.mcp.json` ファイルに設定を保存することで、チーム間のコラボレーションを可能にします。このファイルはバージョン管理にチェックインするように設計されており、すべてのチームメンバーが同じ MCP ツールとサービスにアクセスできることを保証します。プロジェクトスコープのサーバーを追加すると、Claude Code は自動的にこのファイルを作成または更新して、適切な設定構造を使用します。

468 

469```bash theme={null}

470# プロジェクトスコープのサーバーを追加する

471claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp

472```

473 

474結果の `.mcp.json` ファイルは標準化された形式に従います:

475 

476```json theme={null}

477{

478 "mcpServers": {

479 "shared-server": {

480 "command": "/path/to/server",

481 "args": [],

482 "env": {}

483 }

484 }

485}

486```

487 

488セキュリティ上の理由から、Claude Code は `.mcp.json` ファイルからプロジェクトスコープのサーバーを使用する前に承認を求めます。これらの承認選択をリセットする必要がある場合は、`claude mcp reset-project-choices` コマンドを使用してください。

489 

490### ユーザースコープ

491 

492ユーザースコープのサーバーは `~/.claude.json` に保存され、クロスプロジェクトのアクセス可能性を提供し、マシン上のすべてのプロジェクト全体で利用可能になりながら、ユーザーアカウントにプライベートなままです。このスコープは、個人的なユーティリティサーバー、開発ツール、または異なるプロジェクト全体で頻繁に使用するサービスに適しています。

493 

494```bash theme={null}

495# ユーザーサーバーを追加する

496claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

497```

498 

499### スコープの階層と優先順位

500 

501同じサーバーが複数の場所で定義されている場合、Claude Code はそれに 1 回接続し、最も優先度の高いソースからの定義を使用します:

502 

5031. ローカルスコープ

5042. プロジェクトスコープ

5053. ユーザースコープ

5064. [プラグイン提供サーバー](/ja/plugins)

5075. [claude.ai コネクタ](#use-mcp-servers-from-claude-ai)

508 

5093 つのスコープは名前で重複を照合します。プラグインとコネクタはエンドポイントで照合するため、上記のサーバーと同じ URL またはコマンドを指すものは重複として扱われます。

510 

511### `.mcp.json` での環境変数の展開

512 

513Claude Code は `.mcp.json` ファイルの環境変数の展開をサポートしており、チームが設定を共有しながら、マシン固有のパスと API キーなどの機密値の柔軟性を維持できます。

514 

515**サポートされている構文:**

516 

517* `${VAR}` - 環境変数 `VAR` の値に展開されます

518* `${VAR:-default}` - `VAR` が設定されている場合は `VAR` に展開され、そうでない場合はデフォルトを使用します

519 

520**展開場所:**

521環境変数は以下で展開できます:

522 

523* `command` - サーバー実行可能ファイルのパス

524* `args` - コマンドライン引数

525* `env` - サーバーに渡される環境変数

526* `url` - HTTP サーバータイプの場合

527* `headers` - HTTP サーバー認証の場合

528 

529**変数展開を使用した例:**

530 

531```json theme={null}

532{

533 "mcpServers": {

534 "api-server": {

535 "type": "http",

536 "url": "${API_BASE_URL:-https://api.example.com}/mcp",

537 "headers": {

538 "Authorization": "Bearer ${API_KEY}"

539 }

540 }

541 }

542}

543```

544 

545必要な環境変数が設定されておらず、デフォルト値がない場合、Claude Code は設定の解析に失敗します。

546 

547## 実践的な例

548 

549{/* ### 例:Playwright でブラウザテストを自動化する

550 

551```bash

552claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest

553```

554 

555その後、ブラウザテストを作成して実行します:

556 

557```text

558test@example.com でログインフローが機能するかテストしてください

559```

560```text

561モバイルでチェックアウトページのスクリーンショットを撮ってください

562```

563```text

564検索機能が結果を返すことを確認してください

565``` */}

566 

567### 例:Sentry でエラーを監視する

568 

569```bash theme={null}

570claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

571```

572 

573Sentry アカウントで認証します:

574 

575```text theme={null}

576/mcp

577```

578 

579その後、本番環境の問題をデバッグします:

580 

581```text theme={null}

582過去 24 時間で最も一般的なエラーは何ですか?

583```

584 

585```text theme={null}

586エラー ID abc123 のスタックトレースを表示してください

587```

588 

589```text theme={null}

590どのデプロイメントがこれらの新しいエラーを導入しましたか?

591```

592 

593### 例:コードレビューのために GitHub に接続する

594 

595GitHub のリモート MCP サーバーは、ヘッダーとして渡される GitHub 個人アクセストークンで認証します。取得するには、[GitHub トークン設定](https://github.com/settings/personal-access-tokens)を開き、Claude が操作したいリポジトリへのアクセス権を持つ新しいきめ細かいトークンを生成してから、サーバーを追加します:

596 

597```bash theme={null}

598claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \

599 --header "Authorization: Bearer YOUR_GITHUB_PAT"

600```

601 

602その後、GitHub で作業します:

603 

604```text theme={null}

605PR #456 をレビューして改善を提案してください

606```

607 

608```text theme={null}

609見つけたバグの新しい課題を作成してください

610```

611 

612```text theme={null}

613自分に割り当てられているすべてのオープン PR を表示してください

614```

615 

616### 例:PostgreSQL データベースをクエリする

617 

618```bash theme={null}

619claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \

620 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

621```

622 

623その後、データベースを自然に照会します:

624 

625```text theme={null}

626今月の総収益はいくらですか?

627```

628 

629```text theme={null}

630orders テーブルのスキーマを表示してください

631```

632 

633```text theme={null}

634過去 90 日間に購入していない顧客を検索してください

635```

636 

637## リモート MCP サーバーで認証する

638 

639多くのクラウドベースの MCP サーバーは認証が必要です。Claude Code は安全な接続のために OAuth 2.0 をサポートしています。

640 

641<Steps>

642 <Step title="認証が必要なサーバーを追加する">

643 例:

644 

645 ```bash theme={null}

646 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

647 ```

648 </Step>

649 

650 <Step title="Claude Code 内で /mcp コマンドを使用する">

651 Claude Code で、コマンドを使用します:

652 

653 ```text theme={null}

654 /mcp

655 ```

656 

657 その後、ブラウザでログインするための手順に従ってください。

658 </Step>

659</Steps>

660 

661<Tip>

662 ヒント:

663 

664 * 認証トークンは安全に保存され、自動的に更新されます

665 * `/mcp` メニューで「Clear authentication」を使用してアクセスを取り消します

666 * ブラウザが自動的に開かない場合は、提供された URL をコピーして手動で開いてください

667 * ブラウザのリダイレクトが認証後に接続エラーで失敗する場合は、ブラウザのアドレスバーから完全なコールバック URL を Claude Code に表示される URL プロンプトに貼り付けてください

668 * OAuth 認証は HTTP サーバーで機能します

669</Tip>

670 

671### 固定 OAuth コールバックポートを使用する

672 

673一部の MCP サーバーは、事前に登録された特定のリダイレクト URI が必要です。デフォルトでは、Claude Code は OAuth コールバック用にランダムに利用可能なポートを選択します。`--callback-port` を使用してポートを固定し、`http://localhost:PORT/callback` の形式の事前登録されたリダイレクト URI と一致させます。

674 

675`--callback-port` を単独で使用できます(動的クライアント登録を使用)、または `--client-id` と一緒に使用できます(事前設定された認証情報を使用)。

676 

677```bash theme={null}

678# 動的クライアント登録を使用した固定コールバックポート

679claude mcp add --transport http \

680 --callback-port 8080 \

681 my-server https://mcp.example.com/mcp

682```

683 

684### 事前設定された OAuth 認証情報を使用する

685 

686一部の MCP サーバーは自動 OAuth セットアップをサポートしていません。「Incompatible auth server: does not support dynamic client registration」のようなエラーが表示される場合、サーバーは事前設定された認証情報が必要です。Claude Code は Client ID Metadata Document(CIMD)を使用するサーバーもサポートしており、これらを自動的に検出します。自動検出に失敗した場合は、まずサーバーの開発者ポータルを通じて OAuth アプリを登録し、サーバーを追加するときに認証情報を提供してください。

687 

688<Steps>

689 <Step title="サーバーで OAuth アプリを登録する">

690 サーバーの開発者ポータルを通じてアプリを作成し、クライアント ID とクライアントシークレットをメモしてください。

691 

692 多くのサーバーはリダイレクト URI も必要とします。その場合は、ポートを選択し、`http://localhost:PORT/callback` の形式でリダイレクト URI を登録してください。次のステップで `--callback-port` と同じポートを使用してください。

693 </Step>

694 

695 <Step title="認証情報を使用してサーバーを追加する">

696 次のいずれかの方法を選択してください。`--callback-port` に使用されるポートは、利用可能な任意のポートにすることができます。前のステップで登録したリダイレクト URI と一致する必要があります。

697 

698 <Tabs>

699 <Tab title="claude mcp add">

700 `--client-id` を使用してアプリのクライアント ID を渡します。`--client-secret` フラグはマスクされた入力でシークレットを求めます:

701 

702 ```bash theme={null}

703 claude mcp add --transport http \

704 --client-id your-client-id --client-secret --callback-port 8080 \

705 my-server https://mcp.example.com/mcp

706 ```

707 </Tab>

708 

709 <Tab title="claude mcp add-json">

710 JSON 設定に `oauth` オブジェクトを含め、`--client-secret` を別のフラグとして渡します:

711 

712 ```bash theme={null}

713 claude mcp add-json my-server \

714 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' \

715 --client-secret

716 ```

717 </Tab>

718 

719 <Tab title="claude mcp add-json(コールバックポートのみ)">

720 動的クライアント登録を使用しながらポートを固定するには、クライアント ID なしで `--callback-port` を使用します:

721 

722 ```bash theme={null}

723 claude mcp add-json my-server \

724 '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"callbackPort":8080}}'

725 ```

726 </Tab>

727 

728 <Tab title="CI / env var">

729 環境変数を通じてシークレットを設定して、対話的なプロンプトをスキップします:

730 

731 ```bash theme={null}

732 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \

733 --client-id your-client-id --client-secret --callback-port 8080 \

734 my-server https://mcp.example.com/mcp

735 ```

736 </Tab>

737 </Tabs>

738 </Step>

739 

740 <Step title="Claude Code で認証する">

741 Claude Code で `/mcp` を実行し、ブラウザのログインフローに従ってください。

742 </Step>

743</Steps>

744 

745<Tip>

746 ヒント:

747 

748 * クライアントシークレットはシステムキーチェーン(macOS)または認証情報ファイルに安全に保存され、設定には保存されません

749 * サーバーがシークレットなしのパブリック OAuth クライアントを使用する場合は、`--client-secret` なしで `--client-id` のみを使用してください

750 * `--callback-port` は `--client-id` の有無にかかわらず使用できます

751 * これらのフラグは HTTP および SSE トランスポートにのみ適用されます。stdio サーバーには影響しません

752 * `claude mcp get <name>` を使用して、OAuth 認証情報がサーバーに設定されていることを確認してください

753</Tip>

754 

755### OAuth メタデータ検出をオーバーライドする

756 

757Claude Code を特定の OAuth 認可サーバーメタデータ URL に指定して、デフォルトの検出チェーンをバイパスします。MCP サーバーの標準エンドポイントがエラーになる場合、または内部プロキシを通じて検出をルーティングしたい場合に設定します。デフォルトでは、Claude Code は最初に RFC 9728 保護リソースメタデータを `/.well-known/oauth-protected-resource` でチェックし、次に RFC 8414 認可サーバーメタデータを `/.well-known/oauth-authorization-server` でフォールバックします。

758 

759`.mcp.json` のサーバー設定の `oauth` オブジェクトに `authServerMetadataUrl` を設定します:

760 

761```json theme={null}

762{

763 "mcpServers": {

764 "my-server": {

765 "type": "http",

766 "url": "https://mcp.example.com/mcp",

767 "oauth": {

768 "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"

769 }

770 }

771 }

772}

773```

774 

775URL は `https://` を使用する必要があります。`authServerMetadataUrl` には Claude Code v2.1.64 以降が必要です。メタデータ URL の `scopes_supported` は、アップストリームサーバーがアドバタイズするスコープをオーバーライドします。

776 

777### OAuth スコープを制限する

778 

779`oauth.scopes` を設定して、認可フロー中に Claude Code がリクエストするスコープをピン留めします。これは、アップストリーム認可サーバーがより多くのスコープをアドバタイズする場合に、MCP サーバーをセキュリティチームが承認したサブセットに制限するサポートされた方法です。値は RFC 6749 §3.3 の `scope` パラメータ形式と一致する単一のスペース区切り文字列です。

780 

781```json theme={null}

782{

783 "mcpServers": {

784 "slack": {

785 "type": "http",

786 "url": "https://mcp.slack.com/mcp",

787 "oauth": {

788 "scopes": "channels:read chat:write search:read"

789 }

790 }

791 }

792}

793```

794 

795`oauth.scopes` は `authServerMetadataUrl` と `/.well-known` でサーバーが検出するスコープの両方に優先します。MCP サーバーがリクエストするスコープセットを決定するようにするには、設定を解除したままにしてください。

796 

797認可サーバーが `scopes_supported` で `offline_access` をアドバタイズする場合、Claude Code はそれをピン留めされたスコープに追加して、新しいブラウザサインインなしでアクセストークンを更新できるようにします。

798 

799サーバーが後で `insufficient_scope` の 403 を返す場合、Claude Code は同じピン留めされたスコープで再認証します。必要なツールが pin の外側のスコープを必要とする場合は、`oauth.scopes` を拡張してください。

800 

801### カスタム認証用の動的ヘッダーを使用する

802 

803MCP サーバーが OAuth 以外の認証スキーム(Kerberos、短期トークン、内部 SSO など)を使用する場合、`headersHelper` を使用して接続時にリクエストヘッダーを生成します。Claude Code はコマンドを実行し、その出力を接続ヘッダーにマージします。

804 

805```json theme={null}

806{

807 "mcpServers": {

808 "internal-api": {

809 "type": "http",

810 "url": "https://mcp.internal.example.com",

811 "headersHelper": "/opt/bin/get-mcp-auth-headers.sh"

812 }

813 }

814}

815```

816 

817コマンドはインラインにすることもできます:

818 

819```json theme={null}

820{

821 "mcpServers": {

822 "internal-api": {

823 "type": "http",

824 "url": "https://mcp.internal.example.com",

825 "headersHelper": "echo '{\"Authorization\": \"Bearer '\"$(get-token)\"'\"}'"

826 }

827 }

828}

829```

830 

831**要件:**

832 

833* コマンドは文字列キーと値のペアの JSON オブジェクトを stdout に書き込む必要があります

834* コマンドは 10 秒のタイムアウト付きのシェルで実行されます

835* 動的ヘッダーは同じ名前の静的 `headers` をオーバーライドします

836 

837ヘルパーは各接続時に実行されます(セッション開始時と再接続時)。キャッシングはないため、スクリプトはトークンの再利用を担当します。

838 

839Claude Code は、ヘルパーを実行するときにこれらの環境変数を設定します:

840 

841| 変数 | 値 |

842| :---------------------------- | :------------ |

843| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP サーバーの名前 |

844| `CLAUDE_CODE_MCP_SERVER_URL` | MCP サーバーの URL |

845 

846これらを使用して、複数の MCP サーバーに対応する単一のヘルパースクリプトを作成できます。

847 

848<Note>

849 `headersHelper` は任意のシェルコマンドを実行します。プロジェクトまたはローカルスコープで定義されている場合、ワークスペース信頼ダイアログを受け入れた後にのみ実行されます。

850</Note>

851 

852## JSON 設定から MCP サーバーを追加する

853 

854MCP サーバーの JSON 設定がある場合は、直接追加できます:

855 

856<Steps>

857 <Step title="JSON から MCP サーバーを追加する">

858 ```bash theme={null}

859 # 基本的な構文

860 claude mcp add-json <name> '<json>'

861 

862 # 例:JSON 設定を使用して HTTP サーバーを追加する

863 claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'

864 

865 # 例:JSON 設定を使用して stdio サーバーを追加する

866 claude mcp add-json local-weather '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'

867 

868 # 例:事前設定された OAuth 認証情報を使用して HTTP サーバーを追加する

869 claude mcp add-json my-server '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' --client-secret

870 ```

871 </Step>

872 

873 <Step title="サーバーが追加されたことを確認する">

874 ```bash theme={null}

875 claude mcp get weather-api

876 ```

877 </Step>

878</Steps>

879 

880<Tip>

881 ヒント:

882 

883 * JSON がシェルで適切にエスケープされていることを確認してください

884 * JSON は MCP サーバー設定スキーマに準拠する必要があります

885 * `--scope user` を使用して、プロジェクト固有のサーバーの代わりにユーザー設定にサーバーを追加できます

886</Tip>

887 

888## Claude Desktop から MCP サーバーをインポートする

889 

890Claude Desktop で MCP サーバーを既に設定している場合は、それらをインポートできます:

891 

892<Steps>

893 <Step title="Claude Desktop からサーバーをインポートする">

894 ```bash theme={null}

895 # 基本的な構文

896 claude mcp add-from-claude-desktop

897 ```

898 </Step>

899 

900 <Step title="インポートするサーバーを選択する">

901 コマンドを実行した後、インポートするサーバーを選択できる対話的なダイアログが表示されます。

902 </Step>

903 

904 <Step title="サーバーがインポートされたことを確認する">

905 ```bash theme={null}

906 claude mcp list

907 ```

908 </Step>

909</Steps>

910 

911<Tip>

912 ヒント:

913 

914 * この機能は macOS と Windows Subsystem for Linux(WSL)でのみ機能します

915 * これらのプラットフォームの標準的な場所から Claude Desktop 設定ファイルを読み取ります

916 * `--scope user` フラグを使用してサーバーをユーザー設定に追加します

917 * インポートされたサーバーは Claude Desktop と同じ名前を持ちます

918 * 同じ名前のサーバーが既に存在する場合、数値サフィックスが付与されます(例:`server_1`)

919</Tip>

920 

921## Claude.ai から MCP サーバーを使用する

922 

923[Claude.ai](https://claude.ai) アカウントで Claude Code にログインしている場合、Claude.ai で追加した MCP サーバーは Claude Code で自動的に利用可能です:

924 

925<Steps>

926 <Step title="Claude.ai で MCP サーバーを設定する">

927 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) でサーバーを追加します。Team および Enterprise プランでは、管理者のみがサーバーを追加できます。

928 </Step>

929 

930 <Step title="MCP サーバーを認証する">

931 Claude.ai で必要な認証ステップを完了します。

932 </Step>

933 

934 <Step title="Claude Code でサーバーを表示および管理する">

935 Claude Code で、コマンドを使用します:

936 

937 ```text theme={null}

938 /mcp

939 ```

940 

941 Claude.ai サーバーはリストに表示され、Claude.ai から来ていることを示すインジケータが付きます。

942 </Step>

943</Steps>

944 

945Claude Code で claude.ai MCP サーバーを無効にするには、`ENABLE_CLAUDEAI_MCP_SERVERS` 環境変数を `false` に設定します:

946 

947```bash theme={null}

948ENABLE_CLAUDEAI_MCP_SERVERS=false claude

949```

950 

951## Claude Code を MCP サーバーとして使用する

952 

953Claude Code 自体を MCP サーバーとして使用でき、他のアプリケーションが接続できます:

954 

955```bash theme={null}

956# Claude を stdio MCP サーバーとして起動する

957claude mcp serve

958```

959 

960これを Claude Desktop で使用するには、この設定を claude\_desktop\_config.json に追加します:

961 

962```json theme={null}

963{

964 "mcpServers": {

965 "claude-code": {

966 "type": "stdio",

967 "command": "claude",

968 "args": ["mcp", "serve"],

969 "env": {}

970 }

971 }

972}

973```

974 

975<Warning>

976 **実行可能ファイルパスの設定**:`command` フィールドは Claude Code 実行可能ファイルを参照する必要があります。`claude` コマンドがシステムの PATH にない場合は、実行可能ファイルへの完全なパスを指定する必要があります。

977 

978 完全なパスを見つけるには:

979 

980 ```bash theme={null}

981 which claude

982 ```

983 

984 その後、設定で完全なパスを使用します:

985 

986 ```json theme={null}

987 {

988 "mcpServers": {

989 "claude-code": {

990 "type": "stdio",

991 "command": "/full/path/to/claude",

992 "args": ["mcp", "serve"],

993 "env": {}

994 }

995 }

996 }

997 ```

998 

999 正しい実行可能ファイルパスがないと、`spawn claude ENOENT` のようなエラーが発生します。

1000</Warning>

1001 

1002<Tip>

1003 ヒント:

1004 

1005 * サーバーは View、Edit、LS などの Claude のツールへのアクセスを提供します

1006 * Claude Desktop で、Claude にディレクトリ内のファイルを読み取り、編集などを行うよう依頼してみてください。

1007 * この MCP サーバーは Claude Code のツールのみを MCP クライアントに公開しているため、独自のクライアントは個々のツール呼び出しのユーザー確認を実装する責任があります。

1008</Tip>

1009 

1010## MCP 出力制限と警告

1011 

1012MCP ツールが大きな出力を生成する場合、Claude Code はトークン使用量を管理して、会話コンテキストが圧倒されるのを防ぐのに役立ちます:

1013 

1014* **出力警告閾値**:Claude Code は MCP ツール出力が 10,000 トークンを超えると警告を表示します

1015* **設定可能な制限**:`MAX_MCP_OUTPUT_TOKENS` 環境変数を使用して、許可される最大 MCP 出力トークンを調整できます

1016* **デフォルト制限**:デフォルトの最大値は 25,000 トークンです

1017* **スコープ**:環境変数は独自の制限を宣言しないツールに適用されます。[`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) を設定するツールは、`MAX_MCP_OUTPUT_TOKENS` が何に設定されているかに関わらず、テキストコンテンツにその値を使用します。画像データを返すツールは引き続き `MAX_MCP_OUTPUT_TOKENS` の対象です

1018 

1019大きな出力を生成するツールの制限を増やすには:

1020 

1021```bash theme={null}

1022export MAX_MCP_OUTPUT_TOKENS=50000

1023claude

1024```

1025 

1026これは特に以下を行う MCP サーバーで役立ちます:

1027 

1028* 大規模なデータセットまたはデータベースをクエリする

1029* 詳細なレポートまたはドキュメントを生成する

1030* 広範なログファイルまたはデバッグ情報を処理する

1031 

1032### 特定のツールの制限を引き上げる

1033 

1034MCP サーバーを構築している場合、ツールの `tools/list` 応答エントリで `_meta["anthropic/maxResultSizeChars"]` を設定することで、個々のツールがデフォルトの永続化ディスク閾値より大きい結果を返すことを許可できます。Claude Code はそのツールの閾値を注釈付き値に引き上げます。最大 500,000 文字のハードシーリングまで。

1035 

1036これは、データベーススキーマまたは完全なファイルツリーなど、本質的に大きいが必要な出力を返すツールに役立ちます。注釈がない場合、デフォルト閾値を超える結果はディスクに永続化され、会話内のファイル参照に置き換えられます。

1037 

1038```json theme={null}

1039{

1040 "name": "get_schema",

1041 "description": "Returns the full database schema",

1042 "_meta": {

1043 "anthropic/maxResultSizeChars": 200000

1044 }

1045}

1046```

1047 

1048注釈はテキストコンテンツの `MAX_MCP_OUTPUT_TOKENS` とは独立して適用されるため、ユーザーは注釈を宣言するツールのために環境変数を引き上げる必要はありません。画像データを返すツールは引き続きトークン制限の対象です。

1049 

1050<Warning>

1051 特定の MCP サーバーで出力警告が頻繁に発生する場合は、`MAX_MCP_OUTPUT_TOKENS` 制限を増やすことを検討してください。制御していないサーバーの場合は、サーバー作成者に `anthropic/maxResultSizeChars` 注釈を追加するか、応答をページネーションするよう依頼することもできます。注釈は画像コンテンツを返すツールには影響しません。これらの場合、`MAX_MCP_OUTPUT_TOKENS` を引き上げることが唯一のオプションです。

1052</Warning>

1053 

1054## MCP 応答要求に対応する

1055 

1056MCP サーバーはタスク中に構造化された入力をあなたに要求するための応答要求を使用できます。サーバーが独自に取得できない情報が必要な場合、Claude Code は対話的なダイアログを表示し、あなたの応答をサーバーに返します。設定は不要です。応答要求ダイアログはサーバーが要求したときに自動的に表示されます。

1057 

1058サーバーは 2 つの方法で入力を要求できます:

1059 

1060* **フォームモード**:Claude Code はサーバーで定義されたフォームフィールド(例:ユーザー名とパスワードプロンプト)を含むダイアログを表示します。フィールドに入力して送信します。

1061* **URL モード**:Claude Code はブラウザ URL を開いて認証または承認を行います。ブラウザでフローを完了し、CLI で確認します。

1062 

1063応答要求に自動応答するには、[`Elicitation` フック](/ja/hooks#Elicitation)を使用してください。

1064 

1065MCP サーバーを構築していて応答要求を使用する場合は、[MCP 応答要求仕様](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)を参照してプロトコルの詳細とスキーマの例を確認してください。

1066 

1067## MCP リソースを使用する

1068 

1069MCP サーバーはリソースを公開でき、ファイルを参照する方法と同様に @ メンションを使用して参照できます。

1070 

1071### MCP リソースを参照する

1072 

1073<Steps>

1074 <Step title="利用可能なリソースをリストする">

1075 プロンプトで `@` を入力して、接続されているすべての MCP サーバーから利用可能なリソースを表示します。リソースはオートコンプリートメニューのファイルと一緒に表示されます。

1076 </Step>

1077 

1078 <Step title="特定のリソースを参照する">

1079 `@server:protocol://resource/path` の形式を使用してリソースを参照します:

1080 

1081 ```text theme={null}

1082 @github:issue://123 を分析して修正を提案できますか?

1083 ```

1084 

1085 ```text theme={null}

1086 @docs:file://api/authentication の API ドキュメントをレビューしてください

1087 ```

1088 </Step>

1089 

1090 <Step title="複数のリソース参照">

1091 1 つのプロンプトで複数のリソースを参照できます:

1092 

1093 ```text theme={null}

1094 @postgres:schema://users と @docs:file://database/user-model を比較してください

1095 ```

1096 </Step>

1097</Steps>

1098 

1099<Tip>

1100 ヒント:

1101 

1102 * リソースは参照されると自動的に取得され、添付ファイルとして含まれます

1103 * リソースパスは @ メンションオートコンプリートでファジー検索可能です

1104 * Claude Code はサーバーがサポートしている場合、MCP リソースをリストおよび読み取るツールを自動的に提供します

1105 * リソースには、MCP サーバーが提供するあらゆるタイプのコンテンツ(テキスト、JSON、構造化データなど)を含めることができます

1106</Tip>

1107 

1108## MCP ツール検索でスケーリングする

1109 

1110ツール検索は MCP コンテキスト使用量を低く保つことで、ツール定義をオンデマンドで遅延させます。セッション開始時にはツール名のみがロードされるため、より多くの MCP サーバーを追加してもコンテキストウィンドウへの影響は最小限です。

1111 

1112### 仕組み

1113 

1114ツール検索はデフォルトで有効です。MCP ツールは事前にコンテキストにロードされるのではなく、遅延されます。Claude はタスクが必要な場合、検索ツールを使用して関連する MCP ツールを検出します。Claude が実際に使用するツールのみがコンテキストに入ります。あなたの視点からは、MCP ツールは以前と同じように機能します。

1115 

1116しきい値ベースのロードを優先する場合は、`ENABLE_TOOL_SEARCH=auto` を設定して、コンテキストウィンドウの 10% 以内に収まる場合はスキーマを事前にロードし、オーバーフローのみを遅延させます。すべてのオプションについては、[ツール検索の設定](#configure-tool-search)を参照してください。

1117 

1118### MCP サーバー作成者向け

1119 

1120MCP サーバーを構築している場合、ツール検索が有効になっているとサーバー命令フィールドがより有用になります。サーバー命令は、[スキル](/ja/skills)の仕組みと同様に、Claude がいつサーバーのツールを検索するかを理解するのに役立ちます。

1121 

1122明確で説明的なサーバー命令を追加して、以下を説明します:

1123 

1124* ツールが処理するタスクのカテゴリ

1125* Claude がツールを検索すべき場合

1126* サーバーが提供する主な機能

1127 

1128Claude Code はツール説明とサーバー命令を各 2KB で切り詰めます。切り詰めを避けるために簡潔に保ち、重要な詳細を最初に配置してください。

1129 

1130### ツール検索を設定する

1131 

1132ツール検索はデフォルトで有効です:MCP ツールは遅延され、オンデマンドで検出されます。Vertex AI ではデフォルトで無効です。これは `tool_reference` ブロックを受け入れないためです。`ANTHROPIC_BASE_URL` が非ファーストパーティホストを指している場合も無効です。ほとんどのプロキシは `tool_reference` ブロックを転送しないためです。`ENABLE_TOOL_SEARCH` を明示的に設定してオプトインしてください。この機能には、`tool_reference` ブロックをサポートするモデルが必要です:Sonnet 4 以降、または Opus 4 以降。Haiku モデルはツール検索をサポートしていません。

1133 

1134`ENABLE_TOOL_SEARCH` 環境変数でツール検索の動作を制御します:

1135 

1136| 値 | 動作 |

1137| :--------- | :------------------------------------------------------------------------------------------------------- |

1138| (未設定) | すべての MCP ツールが遅延され、オンデマンドでロードされます。Vertex AI または `ANTHROPIC_BASE_URL` が非ファーストパーティホストの場合はアップフロントロードにフォールバック |

1139| `true` | すべての MCP ツールが遅延。Vertex AI および非ファーストパーティ `ANTHROPIC_BASE_URL` を含む |

1140| `auto` | しきい値モード:ツールがコンテキストウィンドウの 10% 以内に収まる場合はアップフロントロード、そうでない場合は遅延 |

1141| `auto:<N>` | カスタムパーセンテージ付きしきい値モード。`<N>` は 0-100(例:5% の場合は `auto:5`) |

1142| `false` | すべての MCP ツールがアップフロントロード、遅延なし |

1143 

1144```bash theme={null}

1145# カスタム 5% しきい値を使用する

1146ENABLE_TOOL_SEARCH=auto:5 claude

1147 

1148# ツール検索を完全に無効にする

1149ENABLE_TOOL_SEARCH=false claude

1150```

1151 

1152または、[settings.json `env` フィールド](/ja/settings#available-settings)で値を設定します。

1153 

1154`ToolSearch` ツールを特別に無効にすることもできます:

1155 

1156```json theme={null}

1157{

1158 "permissions": {

1159 "deny": ["ToolSearch"]

1160 }

1161}

1162```

1163 

1164### サーバーを遅延から除外する

1165 

1166サーバーのツールが検索ステップなしで常に Claude に表示される場合は、そのサーバーの設定で `alwaysLoad` を `true` に設定します。そのサーバーのすべてのツールは、`ENABLE_TOOL_SEARCH` 設定に関係なく、セッション開始時にコンテキストにロードされます。これは、Claude がすべてのターンで必要とする少数のツールに使用してください。各アップフロントツールはコンテキストを消費するため、会話に利用可能なコンテキストが減少します。

1167 

1168次の `.mcp.json` エントリは、1 つの HTTP サーバーを除外し、他のサーバーは遅延したままにします:

1169 

1170```json theme={null}

1171{

1172 "mcpServers": {

1173 "core-tools": {

1174 "type": "http",

1175 "url": "https://mcp.example.com/mcp",

1176 "alwaysLoad": true

1177 }

1178 }

1179}

1180```

1181 

1182`alwaysLoad` フィールドはすべてのサーバータイプで利用可能で、Claude Code v2.1.121 以降が必要です。MCP サーバーは、ツールの `_meta` オブジェクトに `"anthropic/alwaysLoad": true` を含めることで、個別のツールを常にロードとしてマークすることもできます。これはそのツールのみに同じ効果があります。

1183 

1184## MCP プロンプトをコマンドとして使用する

1185 

1186MCP サーバーはプロンプトを公開でき、Claude Code でコマンドとして利用可能になります。

1187 

1188### MCP プロンプトを実行する

1189 

1190<Steps>

1191 <Step title="利用可能なプロンプトを検出する">

1192 `/` を入力して、MCP サーバーからのプロンプトを含むすべての利用可能なコマンドを表示します。MCP プロンプトは `/mcp__servername__promptname` の形式で表示されます。

1193 </Step>

1194 

1195 <Step title="引数なしでプロンプトを実行する">

1196 ```text theme={null}

1197 /mcp__github__list_prs

1198 ```

1199 </Step>

1200 

1201 <Step title="引数を使用してプロンプトを実行する">

1202 多くのプロンプトは引数を受け入れます。コマンドの後にスペース区切りで渡します:

1203 

1204 ```text theme={null}

1205 /mcp__github__pr_review 456

1206 ```

1207 

1208 ```text theme={null}

1209 /mcp__jira__create_issue "ログインフローのバグ" high

1210 ```

1211 </Step>

1212</Steps>

1213 

1214<Tip>

1215 ヒント:

1216 

1217 * MCP プロンプトは接続されているサーバーから動的に検出されます

1218 * 引数はプロンプトの定義されたパラメータに基づいて解析されます

1219 * プロンプト結果は会話に直接注入されます

1220 * サーバーとプロンプト名は正規化されます(スペースはアンダースコアになります)

1221</Tip>

1222 

1223## 管理対象 MCP 設定

1224 

1225MCP サーバーの集中管理が必要な組織の場合、Claude Code は 2 つの設定オプションをサポートしています:

1226 

12271. **`managed-mcp.json` による排他的制御**:ユーザーが変更または拡張できない固定の MCP サーバーセットをデプロイします

12282. **許可リスト/拒否リストによるポリシーベースの制御**:ユーザーが独自のサーバーを追加できるようにしますが、許可されているサーバーを制限します

1229 

1230これらのオプションにより、IT 管理者は以下を実行できます:

1231 

1232* **従業員がアクセスできる MCP サーバーを制御する**:組織全体で承認された MCP サーバーの標準化されたセットをデプロイします

1233* **不正な MCP サーバーを防止する**:ユーザーが未承認の MCP サーバーを追加するのを制限します

1234* **MCP を完全に無効にする**:必要に応じて MCP 機能を完全に削除します

1235 

1236### オプション 1:`managed-mcp.json` による排他的制御

1237 

1238`managed-mcp.json` ファイルをデプロイすると、すべての MCP サーバーに対して**排他的な制御**が行われます。ユーザーはこのファイルで定義されているもの以外の MCP サーバーを追加、変更、または使用することはできません。これは、完全な制御を望む組織にとって最も単純なアプローチです。

1239 

1240システム管理者は、設定ファイルをシステム全体のディレクトリにデプロイします:

1241 

1242* macOS:`/Library/Application Support/ClaudeCode/managed-mcp.json`

1243* Linux および WSL:`/etc/claude-code/managed-mcp.json`

1244* Windows:`C:\Program Files\ClaudeCode\managed-mcp.json`

1245 

1246<Note>

1247 これらはシステム全体のパス(`~/Library/...` のようなユーザーホームディレクトリではない)であり、管理者権限が必要です。IT 管理者によってデプロイされるように設計されています。

1248</Note>

1249 

1250`managed-mcp.json` ファイルは標準的な `.mcp.json` ファイルと同じ形式を使用します:

1251 

1252```json theme={null}

1253{

1254 "mcpServers": {

1255 "github": {

1256 "type": "http",

1257 "url": "https://api.githubcopilot.com/mcp/"

1258 },

1259 "sentry": {

1260 "type": "http",

1261 "url": "https://mcp.sentry.dev/mcp"

1262 },

1263 "company-internal": {

1264 "type": "stdio",

1265 "command": "/usr/local/bin/company-mcp-server",

1266 "args": ["--config", "/etc/company/mcp-config.json"],

1267 "env": {

1268 "COMPANY_API_URL": "https://internal.company.com"

1269 }

1270 }

1271 }

1272}

1273```

1274 

1275### オプション 2:許可リストと拒否リストによるポリシーベースの制御

1276 

1277排他的な制御を行う代わりに、管理者はユーザーが独自の MCP サーバーを設定できるようにしながら、許可されているサーバーに制限を適用できます。このアプローチは、[管理対象設定ファイル](/ja/settings#settings-files)の `allowedMcpServers` と `deniedMcpServers` を使用します。

1278 

1279<Note>

1280 **オプションの選択**:固定のサーバーセットをデプロイしてユーザーのカスタマイズを行わない場合はオプション 1(`managed-mcp.json`)を使用します。ユーザーがポリシー制約内で独自のサーバーを追加できるようにする場合はオプション 2(許可リスト/拒否リスト)を使用します。

1281</Note>

1282 

1283#### 制限オプション

1284 

1285許可リストまたは拒否リストの各エントリは、3 つの方法でサーバーを制限できます:

1286 

12871. **サーバー名による** (`serverName`):設定されたサーバーの名前と一致します

12882. **コマンドによる** (`serverCommand`):stdio サーバーを起動するために使用される正確なコマンドと引数と一致します

12893. **URL パターンによる** (`serverUrl`):ワイルドカードサポート付きのリモートサーバー URL と一致します

1290 

1291**重要**:各エントリは `serverName`、`serverCommand`、または `serverUrl` のいずれか 1 つだけを持つ必要があります。

1292 

1293#### 設定例

1294 

1295```json theme={null}

1296{

1297 "allowedMcpServers": [

1298 // サーバー名で許可

1299 { "serverName": "github" },

1300 { "serverName": "sentry" },

1301 

1302 // 正確なコマンドで許可(stdio サーバーの場合)

1303 { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] },

1304 { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },

1305 

1306 // URL パターンで許可(リモートサーバーの場合)

1307 { "serverUrl": "https://mcp.company.com/*" },

1308 { "serverUrl": "https://*.internal.corp/*" }

1309 ],

1310 "deniedMcpServers": [

1311 // サーバー名でブロック

1312 { "serverName": "dangerous-server" },

1313 

1314 // 正確なコマンドでブロック(stdio サーバーの場合)

1315 { "serverCommand": ["npx", "-y", "unapproved-package"] },

1316 

1317 // URL パターンでブロック(リモートサーバーの場合)

1318 { "serverUrl": "https://*.untrusted.com/*" }

1319 ]

1320}

1321```

1322 

1323#### コマンドベースの制限の仕組み

1324 

1325**完全一致**:

1326 

1327* コマンド配列は**完全に**一致する必要があります。コマンドと正しい順序のすべての引数

1328* 例:`["npx", "-y", "server"]` は `["npx", "server"]` または `["npx", "-y", "server", "--flag"]` と一致しません

1329 

1330**Stdio サーバーの動作**:

1331 

1332* 許可リストに**任意の** `serverCommand` エントリが含まれている場合、stdio サーバーはそれらのコマンドの 1 つと一致する必要があります

1333* Stdio サーバーはコマンド制限が存在する場合、名前だけでは通過できません

1334* これにより、管理者は実行が許可されているコマンドを強制できます

1335 

1336**非 stdio サーバーの動作**:

1337 

1338* リモートサーバー(HTTP、SSE、WebSocket)は、許可リストに `serverUrl` エントリが存在する場合、URL ベースのマッチングを使用します

1339* URL エントリが存在しない場合、リモートサーバーは名前ベースのマッチングにフォールバックします

1340* コマンド制限はリモートサーバーには適用されません

1341 

1342#### URL ベースの制限の仕組み

1343 

1344URL パターンは `*` を使用してワイルドカードをサポートし、任意の文字シーケンスと一致します。これはドメイン全体またはサブドメイン全体を許可するのに役立ちます。

1345 

1346**ワイルドカード例**:

1347 

1348* `https://mcp.company.com/*` - 特定のドメイン上のすべてのパスを許可

1349* `https://*.example.com/*` - example.com の任意のサブドメインを許可

1350* `http://localhost:*/*` - localhost 上の任意のポートを許可

1351 

1352**リモートサーバーの動作**:

1353 

1354* 許可リストに**任意の** `serverUrl` エントリが含まれている場合、リモートサーバーはそれらの URL パターンの 1 つと一致する必要があります

1355* リモートサーバーは URL 制限が存在する場合、名前だけでは通過できません

1356* これにより、管理者は許可されているリモートエンドポイントを強制できます

1357 

1358<Accordion title="例:URL のみの許可リスト">

1359 ```json theme={null}

1360 {

1361 "allowedMcpServers": [

1362 { "serverUrl": "https://mcp.company.com/*" },

1363 { "serverUrl": "https://*.internal.corp/*" }

1364 ]

1365 }

1366 ```

1367 

1368 **結果**:

1369 

1370 * `https://mcp.company.com/api` の HTTP サーバー:✅ 許可(URL パターンと一致)

1371 * `https://api.internal.corp/mcp` の HTTP サーバー:✅ 許可(ワイルドカードサブドメインと一致)

1372 * `https://external.com/mcp` の HTTP サーバー:❌ ブロック(URL パターンと一致しない)

1373 * 任意のコマンドの Stdio サーバー:❌ ブロック(一致する名前またはコマンドエントリがない)

1374</Accordion>

1375 

1376<Accordion title="例:コマンドのみの許可リスト">

1377 ```json theme={null}

1378 {

1379 "allowedMcpServers": [

1380 { "serverCommand": ["npx", "-y", "approved-package"] }

1381 ]

1382 }

1383 ```

1384 

1385 **結果**:

1386 

1387 * `["npx", "-y", "approved-package"]` の Stdio サーバー:✅ 許可(コマンドと一致)

1388 * `["node", "server.js"]` の Stdio サーバー:❌ ブロック(コマンドと一致しない)

1389 * 「my-api」という名前の HTTP サーバー:❌ ブロック(一致する名前エントリがない)

1390</Accordion>

1391 

1392<Accordion title="例:混合名とコマンド許可リスト">

1393 ```json theme={null}

1394 {

1395 "allowedMcpServers": [

1396 { "serverName": "github" },

1397 { "serverCommand": ["npx", "-y", "approved-package"] }

1398 ]

1399 }

1400 ```

1401 

1402 **結果**:

1403 

1404 * 「local-tool」という名前で `["npx", "-y", "approved-package"]` の Stdio サーバー:✅ 許可(コマンドと一致)

1405 * 「local-tool」という名前で `["node", "server.js"]` の Stdio サーバー:❌ ブロック(コマンドエントリが存在しますが一致しない)

1406 * 「github」という名前で `["node", "server.js"]` の Stdio サーバー:❌ ブロック(stdio サーバーはコマンドエントリが存在する場合、コマンドと一致する必要があります)

1407 * 「github」という名前の HTTP サーバー:✅ 許可(名前と一致)

1408 * 「other-api」という名前の HTTP サーバー:❌ ブロック(名前と一致しない)

1409</Accordion>

1410 

1411<Accordion title="例:名前のみの許可リスト">

1412 ```json theme={null}

1413 {

1414 "allowedMcpServers": [

1415 { "serverName": "github" },

1416 { "serverName": "internal-tool" }

1417 ]

1418 }

1419 ```

1420 

1421 **結果**:

1422 

1423 * 任意のコマンドで「github」という名前の Stdio サーバー:✅ 許可(コマンド制限なし)

1424 * 任意のコマンドで「internal-tool」という名前の Stdio サーバー:✅ 許可(コマンド制限なし)

1425 * 「github」という名前の HTTP サーバー:✅ 許可(名前と一致)

1426 * 「other」という名前のサーバー:❌ ブロック(名前と一致しない)

1427</Accordion>

1428 

1429#### 許可リストの動作(`allowedMcpServers`)

1430 

1431* `undefined`(デフォルト):制限なし。ユーザーは任意の MCP サーバーを設定できます

1432* 空の配列 `[]`:完全なロックダウン。ユーザーは MCP サーバーを設定できません

1433* エントリのリスト:ユーザーは名前、コマンド、または URL パターンで一致するサーバーのみを設定できます

1434 

1435#### 拒否リストの動作(`deniedMcpServers`)

1436 

1437* `undefined`(デフォルト):サーバーはブロックされません

1438* 空の配列 `[]`:サーバーはブロックされません

1439* エントリのリスト:指定されたサーバーはすべてのスコープ全体で明示的にブロックされます

1440 

1441#### 重要な注意事項

1442 

1443* **オプション 1 とオプション 2 を組み合わせることができます**:`managed-mcp.json` が存在する場合、排他的な制御があり、ユーザーはサーバーを追加できません。許可リスト/拒否リストは管理対象サーバー自体に引き続き適用されます。

1444* **拒否リストは絶対的な優先順位を持ちます**:サーバーが拒否リストエントリ(名前、コマンド、または URL による)と一致する場合、許可リストに含まれていても、ブロックされます

1445* 名前ベース、コマンドベース、URL ベースの制限は一緒に機能します:サーバーは名前エントリ、コマンドエントリ、または URL パターンのいずれかと一致する場合に通過します(拒否リストでブロックされていない限り)

1446 

1447<Note>

1448 **`managed-mcp.json` を使用する場合**:ユーザーは `claude mcp add` または設定ファイルを通じて MCP サーバーを追加できません。`allowedMcpServers` と `deniedMcpServers` の設定は、実際にロードされる管理対象サーバーをフィルタリングするために引き続き適用されます。

1449</Note>

memory.md +408 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude があなたのプロジェクトを記憶する方法

6 

7> CLAUDE.md ファイルで Claude に永続的な指示を与え、自動メモリで Claude が自動的に学習を蓄積できるようにします。

8 

9Claude Code の各セッションは、新しいコンテキストウィンドウで始まります。2 つのメカニズムがセッション間で知識を保持します。

10 

11* **CLAUDE.md ファイル**: Claude に永続的なコンテキストを与えるために書く指示

12* **自動メモリ**: あなたの修正と好みに基づいて Claude が自分自身で書くメモ

13 

14このページでは、以下の方法について説明します。

15 

16* [CLAUDE.md ファイルを書いて整理する](#claude-md-files)

17* [`.claude/rules/` で特定のファイルタイプにルールをスコープする](#organize-rules-with-clauderules)

18* [自動メモリを設定する](#auto-memory)ので Claude が自動的にメモを取ります

19* [指示が従われていない場合のトラブルシューティング](#troubleshoot-memory-issues)

20 

21## CLAUDE.md と自動メモリ

22 

23Claude Code には 2 つの相互補完的なメモリシステムがあります。どちらも各会話の開始時に読み込まれます。Claude はこれらをコンテキストとして扱い、強制的な設定ではありません。指示がより具体的で簡潔であるほど、Claude はそれに従う可能性が高くなります。

24 

25| | CLAUDE.md ファイル | 自動メモリ |

26| :----------- | :---------------------------- | :----------------------------- |

27| **誰が書くか** | あなた | Claude |

28| **何が含まれるか** | 指示とルール | 学習とパターン |

29| **スコープ** | プロジェクト、ユーザー、または組織 | ワーキングツリーごと |

30| **読み込まれる場所** | すべてのセッション | すべてのセッション(最初の 200 行または 25KB) |

31| **用途** | コーディング標準、ワークフロー、プロジェクトアーキテクチャ | ビルドコマンド、デバッグの洞察、Claude が発見する好み |

32 

33Claude の動作をガイドしたい場合は CLAUDE.md ファイルを使用します。自動メモリにより、Claude は手動の作業なしにあなたの修正から学習できます。

34 

35Subagent も独自の自動メモリを保持できます。詳細については、[subagent 設定](/ja/sub-agents#enable-persistent-memory)を参照してください。

36 

37## CLAUDE.md ファイル

38 

39CLAUDE.md ファイルは、プロジェクト、個人的なワークフロー、または組織全体に対して Claude に永続的な指示を与えるマークダウンファイルです。これらのファイルをプレーンテキストで書きます。Claude は各セッションの開始時にそれらを読みます。

40 

41### CLAUDE.md をいつ追加するか

42 

43CLAUDE.md を、そうでなければ再度説明する場所として扱います。以下の場合に追加します。

44 

45* Claude が 2 回目に同じ間違いを犯す

46* コードレビューが Claude がこのコードベースについて知っておくべきだったことを指摘する

47* 前回のセッションで入力した同じ修正または説明をチャットに入力する

48* 新しいチームメンバーが生産的になるために同じコンテキストが必要になる

49 

50Claude がすべてのセッションで保持すべき事実に限定します。ビルドコマンド、規約、プロジェクトレイアウト、「常に X を実行する」ルール。エントリが複数ステップの手順である場合、またはコードベースの 1 つの部分にのみ関連する場合は、代わりに [skill](/ja/skills) または [パススコープルール](#organize-rules-with-claude/rules/) に移動します。[拡張機能の概要](/ja/features-overview#build-your-setup-over-time)では、各メカニズムをいつ使用するかについて説明しています。

51 

52### CLAUDE.md ファイルをどこに配置するかを選択する

53 

54CLAUDE.md ファイルはいくつかの場所に配置でき、それぞれ異なるスコープを持ちます。より具体的な場所がより広い場所よりも優先されます。

55 

56| スコープ | 場所 | 目的 | ユースケースの例 | 共有対象 |

57| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | --------------------------------- | ----------------- |

58| **管理ポリシー** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux と WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | IT/DevOps が管理する組織全体の指示 | 会社のコーディング標準、セキュリティポリシー、コンプライアンス要件 | 組織内のすべてのユーザー |

59| **プロジェクト指示** | `./CLAUDE.md` または `./.claude/CLAUDE.md` | プロジェクトのチーム共有指示 | プロジェクトアーキテクチャ、コーディング標準、一般的なワークフロー | ソース管理を通じたチームメンバー |

60| **ユーザー指示** | `~/.claude/CLAUDE.md` | すべてのプロジェクトの個人的な好み | コードスタイルの好み、個人的なツーリングショートカット | あなただけ(すべてのプロジェクト) |

61| **ローカル指示** | `./CLAUDE.local.md` | 個人的なプロジェクト固有の好み。`.gitignore` に追加します | あなたのサンドボックス URL、好みのテストデータ | あなただけ(現在のプロジェクト) |

62 

63ワーキングディレクトリより上のディレクトリ階層内の CLAUDE.md および CLAUDE.local.md ファイルは、起動時に完全に読み込まれます。サブディレクトリ内のファイルは、Claude がそれらのディレクトリ内のファイルを読むときにオンデマンドで読み込まれます。完全な解決順序については、[CLAUDE.md ファイルの読み込み方法](#how-claude-md-files-load)を参照してください。

64 

65大規模なプロジェクトの場合、[プロジェクトルール](#organize-rules-with-claude/rules/)を使用してトピック固有のファイルに指示を分割できます。ルールを使用すると、特定のファイルタイプまたはサブディレクトリに指示をスコープできます。

66 

67### プロジェクト CLAUDE.md を設定する

68 

69プロジェクト CLAUDE.md は `./CLAUDE.md` または `./.claude/CLAUDE.md` に保存できます。このファイルを作成し、プロジェクトで作業する誰もが適用できる指示を追加します。ビルドおよびテストコマンド、コーディング標準、アーキテクチャの決定、命名規則、一般的なワークフロー。これらの指示はバージョン管理を通じてチームと共有されるため、個人的な好みではなくプロジェクトレベルの標準に焦点を当てます。

70 

71<Tip>

72 `/init` を実行して、CLAUDE.md を自動的に生成します。Claude はコードベースを分析し、発見したビルドコマンド、テスト指示、プロジェクト規約を含むファイルを作成します。CLAUDE.md が既に存在する場合、`/init` は上書きするのではなく改善を提案します。Claude が自分で発見しない指示でそこから改善します。

73 

74 `CLAUDE_CODE_NEW_INIT=1` を設定して、対話的なマルチフェーズフローを有効にします。`/init` は、どのアーティファクトを設定するかを尋ねます。CLAUDE.md ファイル、skills、および hooks。その後、subagent でコードベースを探索し、フォローアップの質問を通じてギャップを埋め、ファイルを書く前に確認可能な提案を提示します。

75</Tip>

76 

77### 効果的な指示を書く

78 

79CLAUDE.md ファイルは各セッションの開始時にコンテキストウィンドウに読み込まれ、会話と一緒にトークンを消費します。[コンテキストウィンドウの可視化](/ja/context-window)は、CLAUDE.md がスタートアップコンテキストの残りの部分に相対的にどこに読み込まれるかを示します。これらはコンテキストであり強制的な設定ではないため、指示の書き方は Claude がそれに従う信頼性に影響します。具体的で簡潔でよく構造化された指示が最適に機能します。

80 

81**サイズ**: CLAUDE.md ファイルあたり 200 行以下を目標にします。より長いファイルはより多くのコンテキストを消費し、遵守を減らします。指示が大きくなっている場合は、[パススコープルール](#path-specific-rules)を使用して、指示が一致するファイルで作業するときにのみ読み込まれるようにして、ノイズを減らしてコンテキストスペースを節約できます。[インポート](#import-additional-files)を使用してコンテンツを分割して整理することもできますが、インポートされたファイルは依然として読み込まれ、起動時にコンテキストウィンドウに入ります。

82 

83**構造**: マークダウンヘッダーと箇条書きを使用して関連する指示をグループ化します。Claude は読者と同じ方法で構造をスキャンします。整理されたセクションは密集した段落よりも従いやすいです。

84 

85**具体性**: 検証できるほど具体的な指示を書きます。例えば:

86 

87* 「コードを適切にフォーマットする」ではなく「2 スペースのインデントを使用する」

88* 「変更をテストする」ではなく「コミット前に `npm test` を実行する」

89* 「ファイルを整理しておく」ではなく「API ハンドラーは `src/api/handlers/` に存在する」

90 

91**一貫性**: 2 つのルールが互いに矛盾している場合、Claude は 1 つを任意に選択する可能性があります。CLAUDE.md ファイル、サブディレクトリ内のネストされた CLAUDE.md ファイル、および [`.claude/rules/`](#organize-rules-with-claude/rules/) を定期的に確認して、古い指示または矛盾する指示を削除します。モノレポでは、[`claudeMdExcludes`](#exclude-specific-claude-md-files) を使用して、作業に関連のない他のチームの CLAUDE.md ファイルをスキップします。

92 

93### 追加ファイルをインポートする

94 

95CLAUDE.md ファイルは `@path/to/import` 構文を使用して追加ファイルをインポートできます。インポートされたファイルは展開され、それらを参照する CLAUDE.md と一緒に起動時にコンテキストに読み込まれます。

96 

97相対パスと絶対パスの両方が許可されます。相対パスはワーキングディレクトリではなく、インポートを含むファイルに相対的に解決されます。インポートされたファイルは他のファイルを再帰的にインポートでき、最大深度は 5 ホップです。

98 

99README、package.json、およびワークフローガイドを取得するには、CLAUDE.md の任意の場所で `@` 構文を使用してそれらを参照します。

100 

101```text theme={null}

102プロジェクト概要については @README を参照し、このプロジェクトで利用可能な npm コマンドについては @package.json を参照してください。

103 

104# 追加の指示

105- git ワークフロー @docs/git-instructions.md

106```

107 

108バージョン管理にチェックインしたくない個人的なプロジェクト固有の好みについては、プロジェクトルートで `CLAUDE.local.md` を作成します。これは `CLAUDE.md` と一緒に読み込まれ、同じ方法で扱われます。`CLAUDE.local.md` を `.gitignore` に追加して、コミットされないようにします。`/init` を実行して個人的なオプションを選択すると、これが自動的に行われます。

109 

110複数の git worktrees で同じリポジトリを操作する場合、gitignored `CLAUDE.local.md` は作成したワーキングツリーにのみ存在します。ワーキングツリー全体で個人的な指示を共有するには、代わりにホームディレクトリからファイルをインポートします。

111 

112```text theme={null}

113# 個人的な好み

114- @~/.claude/my-project-instructions.md

115```

116 

117<Warning>

118 Claude Code が初めてプロジェクトで外部インポートを検出すると、ファイルをリストする承認ダイアログが表示されます。拒否すると、インポートは無効のままになり、ダイアログは再度表示されません。

119</Warning>

120 

121指示を整理するためのより構造化されたアプローチについては、[`.claude/rules/`](#organize-rules-with-claude/rules/)を参照してください。

122 

123### AGENTS.md

124 

125Claude Code は `CLAUDE.md` を読みます。`AGENTS.md` ではありません。リポジトリが既に他のコーディングエージェント用に `AGENTS.md` を使用している場合、`CLAUDE.md` を作成してそれをインポートし、両方のツールが重複なしに同じ指示を読むようにします。Claude 固有の指示をインポートの下に追加することもできます。Claude はインポートされたファイルをセッション開始時に読み込み、その後残りを追加します。

126 

127```markdown CLAUDE.md theme={null}

128@AGENTS.md

129 

130## Claude Code

131 

132`src/billing/` の下の変更には Plan Mode を使用します。

133```

134 

135### CLAUDE.md ファイルの読み込み方法

136 

137Claude Code は現在のワーキングディレクトリからディレクトリツリーを上に歩き、途中の各ディレクトリをチェックして `CLAUDE.md` および `CLAUDE.local.md` ファイルを探します。つまり、`foo/bar/` で Claude Code を実行すると、`foo/bar/CLAUDE.md`、`foo/CLAUDE.md`、およびそれらと一緒にある `CLAUDE.local.md` ファイルから指示を読み込みます。

138 

139発見されたすべてのファイルはコンテキストに連結され、互いに上書きするのではなく、各ディレクトリ内で `CLAUDE.local.md` は `CLAUDE.md` の後に追加されるため、指示が矛盾する場合、個人的なメモはそのレベルで Claude が読む最後のものです。

140 

141Claude は現在のワーキングディレクトリの下のサブディレクトリ内の `CLAUDE.md` および `CLAUDE.local.md` ファイルも発見します。起動時に読み込む代わりに、Claude がそれらのサブディレクトリ内のファイルを読むときに含まれます。

142 

143他のチームの CLAUDE.md ファイルが取得される大規模なモノレポで作業する場合は、[`claudeMdExcludes`](#exclude-specific-claude-md-files) を使用してそれらをスキップします。

144 

145CLAUDE.md ファイル内のブロックレベル HTML コメント(`<!-- maintainer notes -->`)は、コンテンツが Claude のコンテキストに注入される前に削除されます。コンテキストトークンを費やさずに人間のメンテナーのためにメモを残すために使用します。コードブロック内のコメントは保持されます。Read ツールで CLAUDE.md ファイルを直接開くと、コメントは表示されたままになります。

146 

147#### 追加ディレクトリから読み込む

148 

149`--add-dir` フラグは、メインワーキングディレクトリの外の追加ディレクトリへのアクセスを Claude に与えます。デフォルトでは、これらのディレクトリからの CLAUDE.md ファイルは読み込まれません。

150 

151追加ディレクトリから CLAUDE.md ファイルを読み込むには、`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` 環境変数を設定します。

152 

153```bash theme={null}

154CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

155```

156 

157これは追加ディレクトリから `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md`、および `CLAUDE.local.md` を読み込みます。[`--setting-sources`](/ja/cli-reference)から `local` を除外する場合、`CLAUDE.local.md` はスキップされます。

158 

159### `.claude/rules/` でルールを整理する

160 

161大規模なプロジェクトの場合、`.claude/rules/` ディレクトリを使用して指示を複数のファイルに整理できます。これにより、指示がモジュール化され、チームが保守しやすくなります。ルールは[特定のファイルパスにスコープ](#path-specific-rules)することもできるため、Claude が一致するファイルで作業するときにのみコンテキストに読み込まれ、ノイズを減らしてコンテキストスペースを節約します。

162 

163<Note>

164 ルールは各セッションまたは一致するファイルが開かれたときにコンテキストに読み込まれます。常にコンテキストに必要ないタスク固有の指示については、[skills](/ja/skills)を使用してください。これは、呼び出すときまたは Claude がプロンプトに関連していると判断したときにのみ読み込まれます。

165</Note>

166 

167#### ルールを設定する

168 

169プロジェクトの `.claude/rules/` ディレクトリにマークダウンファイルを配置します。各ファイルは 1 つのトピックをカバーし、`testing.md` または `api-design.md` のような説明的なファイル名を持つ必要があります。すべての `.md` ファイルは再帰的に発見されるため、`frontend/` または `backend/` のようなサブディレクトリにルールを整理できます。

170 

171```text theme={null}

172your-project/

173├── .claude/

174│ ├── CLAUDE.md # メインプロジェクト指示

175│ └── rules/

176│ ├── code-style.md # コードスタイルガイドライン

177│ ├── testing.md # テスト規約

178│ └── security.md # セキュリティ要件

179```

180 

181[`paths` frontmatter](#path-specific-rules) のないルールは、`.claude/CLAUDE.md` と同じ優先度で起動時に読み込まれます。

182 

183#### パス固有のルール

184 

185ルールは `paths` フィールドを持つ YAML frontmatter を使用して特定のファイルにスコープできます。これらの条件付きルールは、Claude が指定されたパターンに一致するファイルで作業するときにのみ適用されます。

186 

187```markdown theme={null}

188---

189paths:

190 - "src/api/**/*.ts"

191---

192 

193# API 開発ルール

194 

195- すべての API エンドポイントは入力検証を含める必要があります

196- 標準エラー応答形式を使用します

197- OpenAPI ドキュメンテーションコメントを含めます

198```

199 

200`paths` フィールドのないルールは無条件に読み込まれ、すべてのファイルに適用されます。パススコープルールは、すべてのツール使用時ではなく、パターンに一致するファイルを読むときにトリガーされます。

201 

202`paths` フィールドでグロブパターンを使用して、拡張子、ディレクトリ、またはその組み合わせでファイルを一致させます。

203 

204| パターン | 一致 |

205| ---------------------- | ------------------------------- |

206| `**/*.ts` | 任意のディレクトリ内のすべての TypeScript ファイル |

207| `src/**/*` | `src/` ディレクトリの下のすべてのファイル |

208| `*.md` | プロジェクトルート内のマークダウンファイル |

209| `src/components/*.tsx` | 特定のディレクトリ内の React コンポーネント |

210 

211複数のパターンを指定し、ブレース展開を使用して 1 つのパターンで複数の拡張子を一致させることができます。

212 

213```markdown theme={null}

214---

215paths:

216 - "src/**/*.{ts,tsx}"

217 - "lib/**/*.ts"

218 - "tests/**/*.test.ts"

219---

220```

221 

222#### シンボリックリンクでプロジェクト間でルールを共有する

223 

224`.claude/rules/` ディレクトリはシンボリックリンクをサポートしているため、共有ルールセットを保持し、複数のプロジェクトにリンクできます。シンボリックリンクは解決され、通常どおり読み込まれ、循環シンボリックリンクは検出され、適切に処理されます。

225 

226この例は、共有ディレクトリと個別ファイルの両方をリンクします。

227 

228```bash theme={null}

229ln -s ~/shared-claude-rules .claude/rules/shared

230ln -s ~/company-standards/security.md .claude/rules/security.md

231```

232 

233#### ユーザーレベルのルール

234 

235`~/.claude/rules/` の個人的なルールはマシン上のすべてのプロジェクトに適用されます。プロジェクト固有ではない好みに使用します。

236 

237```text theme={null}

238~/.claude/rules/

239├── preferences.md # あなたの個人的なコーディング好み

240└── workflows.md # あなたの好みのワークフロー

241```

242 

243ユーザーレベルのルールはプロジェクトルールの前に読み込まれ、プロジェクトルールに高い優先度を与えます。

244 

245### 大規模なチーム向けに CLAUDE.md を管理する

246 

247Claude Code をチーム全体に展開する組織の場合、指示を一元化し、どの CLAUDE.md ファイルが読み込まれるかを制御できます。

248 

249#### 組織全体の CLAUDE.md を展開する

250 

251組織は、マシン上のすべてのユーザーに適用される一元管理の CLAUDE.md を展開できます。このファイルは個別の設定で除外することはできません。

252 

253<Steps>

254 <Step title="管理ポリシーの場所にファイルを作成する">

255 * macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`

256 * Linux と WSL: `/etc/claude-code/CLAUDE.md`

257 * Windows: `C:\Program Files\ClaudeCode\CLAUDE.md`

258 </Step>

259 

260 <Step title="設定管理システムで展開する">

261 MDM、グループポリシー、Ansible、または同様のツールを使用して、開発者マシン全体にファイルを配布します。その他の組織全体の設定オプションについては、[管理設定](/ja/permissions#managed-settings)を参照してください。

262 </Step>

263</Steps>

264 

265管理 CLAUDE.md と[管理設定](/ja/settings#settings-files)は異なる目的を果たします。設定を技術的な強制に使用し、CLAUDE.md を行動ガイダンスに使用します。

266 

267| 懸念事項 | 設定対象 |

268| :--------------------------- | :------------------------------------------- |

269| 特定のツール、コマンド、またはファイルパスをブロックする | 管理設定: `permissions.deny` |

270| サンドボックス分離を強制する | 管理設定: `sandbox.enabled` |

271| 環境変数と API プロバイダーのルーティング | 管理設定: `env` |

272| 認証方法と組織ロック | 管理設定: `forceLoginMethod`、`forceLoginOrgUUID` |

273| コードスタイルと品質ガイドライン | 管理 CLAUDE.md |

274| データ処理とコンプライアンスのリマインダー | 管理 CLAUDE.md |

275| Claude の行動指示 | 管理 CLAUDE.md |

276 

277設定ルールはクライアントによって強制され、Claude が何をするかに関係なく。CLAUDE.md 指示は Claude の動作を形作りますが、ハード強制レイヤーではありません。

278 

279#### 特定の CLAUDE.md ファイルを除外する

280 

281大規模なモノレポでは、祖先 CLAUDE.md ファイルに作業に関連のない指示が含まれている可能性があります。`claudeMdExcludes` 設定を使用すると、パスまたはグロブパターンで特定のファイルをスキップできます。

282 

283この例は、トップレベルの CLAUDE.md と親フォルダのルールディレクトリを除外します。`.claude/settings.local.json` に追加して、除外をマシンにローカルに保ちます。

284 

285```json theme={null}

286{

287 "claudeMdExcludes": [

288 "**/monorepo/CLAUDE.md",

289 "/home/user/monorepo/other-team/.claude/rules/**"

290 ]

291}

292```

293 

294パターンはグロブ構文を使用して絶対ファイルパスに対して一致します。`claudeMdExcludes` は任意の[設定レイヤー](/ja/settings#settings-files)で設定できます。ユーザー、プロジェクト、ローカル、または管理ポリシー。配列はレイヤー全体でマージされます。

295 

296管理ポリシー CLAUDE.md ファイルは除外できません。これにより、個別の設定に関係なく、組織全体の指示が常に適用されることが保証されます。

297 

298## 自動メモリ

299 

300自動メモリを使用すると、Claude は何も書かずにセッション間で知識を蓄積できます。Claude は作業中に自分自身のためにメモを保存します。ビルドコマンド、デバッグの洞察、アーキテクチャノート、コードスタイルの好み、ワークフローの習慣です。Claude はすべてのセッションで何かを保存するわけではありません。情報が将来の会話で役立つかどうかに基づいて、何を記憶する価値があるかを決定します。

301 

302<Note>

303 自動メモリには Claude Code v2.1.59 以降が必要です。`claude --version` でバージョンを確認してください。

304</Note>

305 

306### 自動メモリを有効または無効にする

307 

308自動メモリはデフォルトで有効です。切り替えるには、セッションで `/memory` を開き、自動メモリトグルを使用するか、プロジェクト設定で `autoMemoryEnabled` を設定します。

309 

310```json theme={null}

311{

312 "autoMemoryEnabled": false

313}

314```

315 

316環境変数を使用して自動メモリを無効にするには、`CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` を設定します。

317 

318### ストレージの場所

319 

320各プロジェクトは `~/.claude/projects/<project>/memory/` に独自のメモリディレクトリを取得します。`<project>` パスは git リポジトリから派生しているため、同じリポジトリ内のすべてのワーキングツリーとサブディレクトリは 1 つの自動メモリディレクトリを共有します。git リポジトリの外では、プロジェクトルートが代わりに使用されます。

321 

322自動メモリを別の場所に保存するには、`~/.claude/settings.json` のユーザー設定で `autoMemoryDirectory` を設定します。

323 

324```json theme={null}

325{

326 "autoMemoryDirectory": "~/my-custom-memory-dir"

327}

328```

329 

330値は絶対パスであるか、`~/` で始まる必要があります。この設定はポリシーおよびユーザー設定から受け入れられ、`--settings` フラグからも受け入れられます。プロジェクトまたはローカル設定からは受け入れられません。両方のファイルはプロジェクトディレクトリ内に存在し、クローンされたリポジトリは自動メモリ書き込みを機密の場所にリダイレクトするために、どちらかを提供する可能性があるためです。

331 

332ディレクトリには `MEMORY.md` エントリポイントとオプションのトピックファイルが含まれます。

333 

334```text theme={null}

335~/.claude/projects/<project>/memory/

336├── MEMORY.md # 簡潔なインデックス、すべてのセッションに読み込まれます

337├── debugging.md # デバッグパターンの詳細なメモ

338├── api-conventions.md # API 設計の決定

339└── ... # Claude が作成するその他のトピックファイル

340```

341 

342`MEMORY.md` はメモリディレクトリのインデックスとして機能します。Claude はセッション全体を通じてこのディレクトリ内のファイルを読み書きし、`MEMORY.md` を使用して保存されている内容を追跡します。

343 

344自動メモリはマシンローカルです。同じ git リポジトリ内のすべてのワーキングツリーとサブディレクトリは 1 つの自動メモリディレクトリを共有します。ファイルはマシン間またはクラウド環境全体で共有されません。

345 

346### 仕組み

347 

348`MEMORY.md` の最初の 200 行、または最初の 25KB のいずれか先に来る方が、すべての会話の開始時に読み込まれます。そのしきい値を超えるコンテンツはセッション開始時に読み込まれません。Claude は詳細なメモを別のトピックファイルに移動することで、`MEMORY.md` を簡潔に保ちます。

349 

350この制限は `MEMORY.md` にのみ適用されます。CLAUDE.md ファイルは長さに関係なく完全に読み込まれますが、より短いファイルはより良い遵守を生成します。

351 

352`debugging.md` または `patterns.md` のようなトピックファイルは起動時に読み込まれません。Claude は標準ファイルツールを使用してセッション中にオンデマンドで読み込み、情報が必要な場合に読みます。

353 

354Claude はセッション中にメモリファイルを読み書きします。Claude Code インターフェイスで「Writing memory」または「Recalled memory」が表示されたら、Claude は `~/.claude/projects/<project>/memory/` から積極的に更新または読み込みを行っています。

355 

356### メモリを監査および編集する

357 

358自動メモリファイルはプレーンマークダウンで、いつでも編集または削除できます。[`/memory`](#view-and-edit-with-memory) を実行して、セッション内からメモリファイルを参照して開きます。

359 

360## `/memory` で表示および編集する

361 

362`/memory` コマンドは、現在のセッションに読み込まれたすべての CLAUDE.md、CLAUDE.local.md、およびルールファイルをリストし、自動メモリのオン/オフを切り替え、自動メモリフォルダを開くためのリンクを提供します。任意のファイルを選択してエディタで開きます。

363 

364Claude に何かを記憶するよう求めるとき、「常に npm ではなく pnpm を使用する」または「API テストがローカル Redis インスタンスを必要とすることを覚えておく」のように、Claude はそれを自動メモリに保存します。代わりに CLAUDE.md に指示を追加するには、Claude に直接「これを CLAUDE.md に追加する」と尋ねるか、`/memory` を通じてファイルを自分で編集します。

365 

366## メモリの問題をトラブルシューティングする

367 

368これらは CLAUDE.md と自動メモリの最も一般的な問題と、それらをデバッグするための手順です。

369 

370### Claude が CLAUDE.md に従っていない

371 

372CLAUDE.md コンテンツはシステムプロンプト自体の一部ではなく、システムプロンプトの後のユーザーメッセージとして配信されます。Claude はそれを読んで従おうとしますが、特に曖昧または矛盾する指示の場合、厳密な遵守の保証はありません。

373 

374デバッグするには:

375 

376* `/memory` を実行して、CLAUDE.md および CLAUDE.local.md ファイルが読み込まれていることを確認します。ファイルがリストされていない場合、Claude はそれを見ることができません。

377* 関連する CLAUDE.md がセッションに読み込まれる場所にあることを確認します([CLAUDE.md ファイルをどこに配置するかを選択する](#choose-where-to-put-claude-md-files)を参照)。

378* 指示をより具体的にします。「コードを適切にフォーマットする」よりも「2 スペースのインデントを使用する」の方が機能します。

379* CLAUDE.md ファイル全体で矛盾する指示を探します。2 つのファイルが同じ動作に対して異なるガイダンスを提供する場合、Claude は 1 つを任意に選択する可能性があります。

380 

381システムプロンプトレベルで必要な指示については、[`--append-system-prompt`](/ja/cli-reference#system-prompt-flags) を使用します。これはすべての呼び出しで渡す必要があるため、対話的な使用よりもスクリプトと自動化に適しています。

382 

383<Tip>

384 [`InstructionsLoaded` hook](/ja/hooks#instructionsloaded) を使用して、どの指示ファイルが読み込まれているか、いつ読み込まれているか、なぜ読み込まれているかを正確にログに記録します。これはパス固有のルールまたはサブディレクトリ内のレイジーロードファイルをデバッグするのに役立ちます。

385</Tip>

386 

387### 自動メモリが何を保存したかわからない

388 

389`/memory` を実行し、自動メモリフォルダを選択して、Claude が保存したものを参照します。すべてはプレーンマークダウンで、読み取り、編集、または削除できます。

390 

391### CLAUDE.md が大きすぎる

392 

393200 行を超えるファイルはより多くのコンテキストを消費し、遵守を減らす可能性があります。[パス固有のルール](#path-specific-rules)を使用して、Claude が一致するファイルで作業する場合にのみ指示を読み込むか、すべてのセッションで必要でないコンテンツをトリミングします。[`@path` インポート](#import-additional-files)に分割すると、組織化に役立ちますが、インポートされたファイルは起動時に読み込まれるため、コンテキストは削減されません。

394 

395### `/compact` 後に指示が失われたようです

396 

397プロジェクトルート CLAUDE.md は圧縮を完全に生き残ります。`/compact` の後、Claude はディスクから CLAUDE.md を再度読み込み、セッションに新しく再注入します。サブディレクトリ内のネストされた CLAUDE.md ファイルは自動的に再注入されません。それらは Claude がそのサブディレクトリ内のファイルを読む次回に再度読み込まれます。

398 

399圧縮後に指示が消えた場合、それは会話でのみ与えられたか、まだ再度読み込まれていないネストされた CLAUDE.md に存在しています。セッション間で永続化するために、会話のみの指示を CLAUDE.md に追加します。[圧縮後に何が生き残るか](/ja/context-window#what-survives-compaction)を参照して、完全な内訳を確認してください。

400 

401[効果的な指示を書く](#write-effective-instructions)を参照して、サイズ、構造、および具体性に関するガイダンスを確認してください。

402 

403## 関連リソース

404 

405* [設定をデバッグする](/ja/debug-your-config): CLAUDE.md または設定が有効にならない理由を診断する

406* [Skills](/ja/skills): オンデマンドで読み込まれる反復可能なワークフローをパッケージ化する

407* [Settings](/ja/settings): 設定ファイルで Claude Code の動作を設定する

408* [Subagent メモリ](/ja/sub-agents#enable-persistent-memory): subagent が独自の自動メモリを保持できるようにする

microsoft-foundry.md +314 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code on Microsoft Foundry

6 

7> Microsoft Foundry を通じて Claude Code を構成する方法について学びます。セットアップ、構成、トラブルシューティングを含みます。

8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79export const Experiment = ({flag, treatment, children}) => {

80 const VID_KEY = 'exp_vid';

81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

82 const fnv1a = s => {

83 let h = 0x811c9dc5;

84 for (let i = 0; i < s.length; i++) {

85 h ^= s.charCodeAt(i);

86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

87 }

88 return h >>> 0;

89 };

90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

91 const [decision] = useState(() => {

92 const params = new URLSearchParams(location.search);

93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

94 const force = params.get('gb-force');

95 if (force) {

96 for (const p of force.split(',')) {

97 const [k, v] = p.split(':');

98 if (k === flag) return {

99 variant: v || 'treatment',

100 track: false

101 };

102 }

103 }

104 if (navigator.globalPrivacyControl) {

105 return {

106 variant: 'control',

107 track: false

108 };

109 }

110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

111 if (prefsMatch) {

112 try {

113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

114 return {

115 variant: 'control',

116 track: false

117 };

118 }

119 } catch {

120 return {

121 variant: 'control',

122 track: false

123 };

124 }

125 } else {

126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

127 if (!country || CONSENT_COUNTRIES.has(country)) {

128 return {

129 variant: 'control',

130 track: false

131 };

132 }

133 }

134 let vid;

135 try {

136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

137 if (ajsMatch) {

138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

139 } else {

140 vid = localStorage.getItem(VID_KEY);

141 if (!vid) {

142 vid = crypto.randomUUID();

143 }

144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

145 }

146 try {

147 localStorage.setItem(VID_KEY, vid);

148 } catch {}

149 } catch {

150 return {

151 variant: 'control',

152 track: false

153 };

154 }

155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

156 return {

157 variant,

158 track: true,

159 vid

160 };

161 });

162 useEffect(() => {

163 if (!decision.track) return;

164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

165 method: 'POST',

166 headers: {

167 'Content-Type': 'application/json',

168 'x-service-name': 'claude_code_docs'

169 },

170 body: JSON.stringify({

171 events: [{

172 event_type: 'GrowthbookExperimentEvent',

173 event_data: {

174 device_id: decision.vid,

175 anonymous_id: decision.vid,

176 timestamp: new Date().toISOString(),

177 experiment_id: flag,

178 variation_id: decision.variant === 'treatment' ? 1 : 0,

179 environment: 'production'

180 }

181 }]

182 }),

183 keepalive: true

184 }).catch(() => {});

185 }, []);

186 return decision.variant === 'treatment' ? treatment : children;

187};

188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="foundry" />} />

190 

191## 前提条件

192 

193Microsoft Foundry で Claude Code を構成する前に、以下を確認してください:

194 

195* Microsoft Foundry へのアクセス権を持つ Azure サブスクリプション

196* Microsoft Foundry リソースとデプロイメントを作成するための RBAC 権限

197* Azure CLI がインストールされ、構成されている(オプション - 認証情報を取得する別のメカニズムがない場合のみ必要)

198 

199<Note>

200 Claude Code を複数のユーザーにデプロイする場合は、[モデルバージョンをピン留めして](#4-pin-model-versions)、Anthropic が新しいモデルをリリースしたときの破損を防いでください。

201</Note>

202 

203## セットアップ

204 

205### 1. Microsoft Foundry リソースをプロビジョニングする

206 

207まず、Azure で Claude リソースを作成します:

208 

2091. [Microsoft Foundry ポータル](https://ai.azure.com/)に移動します

2102. 新しいリソースを作成し、リソース名をメモします

2113. Claude モデルのデプロイメントを作成します:

212 * Claude Opus

213 * Claude Sonnet

214 * Claude Haiku

215 

216### 2. Azure 認証情報を構成する

217 

218Claude Code は Microsoft Foundry の 2 つの認証方法をサポートしています。セキュリティ要件に最適な方法を選択してください。

219 

220**オプション A:API キー認証**

221 

2221. Microsoft Foundry ポータルでリソースに移動します

2232. **エンドポイントとキー**セクションに移動します

2243. **API キー**をコピーします

2254. 環境変数を設定します:

226 

227```bash theme={null}

228export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key

229```

230 

231**オプション B:Microsoft Entra ID 認証**

232 

233`ANTHROPIC_FOUNDRY_API_KEY` が設定されていない場合、Claude Code は Azure SDK [デフォルト認証情報チェーン](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview)を自動的に使用します。

234これは、ローカルおよびリモートワークロードを認証するためのさまざまな方法をサポートしています。

235 

236ローカル環境では、一般的に Azure CLI を使用できます:

237 

238```bash theme={null}

239az login

240```

241 

242<Note>

243 Microsoft Foundry を使用する場合、認証が Azure 認証情報を通じて処理されるため、`/login` および `/logout` コマンドは無効になります。

244</Note>

245 

246### 3. Claude Code を構成する

247 

248Microsoft Foundry を有効にするには、以下の環境変数を設定します:

249 

250```bash theme={null}

251# Microsoft Foundry 統合を有効にする

252export CLAUDE_CODE_USE_FOUNDRY=1

253 

254# Azure リソース名({resource} をリソース名に置き換えます)

255export ANTHROPIC_FOUNDRY_RESOURCE={resource}

256# または完全なベース URL を提供します:

257# export ANTHROPIC_FOUNDRY_BASE_URL=https://{resource}.services.ai.azure.com/anthropic

258```

259 

260### 4. モデルバージョンをピン留めする

261 

262<Warning>

263 すべてのデプロイメントに対して特定のモデルバージョンをピン留めしてください。モデルエイリアス(`sonnet`、`opus`、`haiku`)をピン留めなしで使用する場合、Claude Code は Foundry アカウントで利用できない新しいモデルバージョンを使用しようとする可能性があり、Anthropic がアップデートをリリースしたときに既存のユーザーが破損します。Azure デプロイメントを作成するときは、「最新に自動更新」ではなく、特定のモデルバージョンを選択してください。

264</Warning>

265 

266モデル変数をステップ 1 で作成したデプロイメント名と一致するように設定します。

267 

268`ANTHROPIC_DEFAULT_OPUS_MODEL` がない場合、Foundry の `opus` エイリアスは Opus 4.6 に解決されます。最新のモデルを使用するために Opus 4.7 ID に設定します:

269 

270```bash theme={null}

271export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7'

272export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'

273export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'

274```

275 

276現在および従来のモデル ID については、[モデル概要](https://platform.claude.com/docs/en/about-claude/models/overview)を参照してください。環境変数の完全なリストについては、[モデル構成](/ja/model-config#pin-models-for-third-party-deployments)を参照してください。

277 

278[プロンプトキャッシング](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)は自動的に有効になります。デフォルトの 5 分ではなく 1 時間のキャッシュ TTL をリクエストするには、以下の変数を設定します。1 時間の TTL でのキャッシュ書き込みはより高いレートで課金されます:

279 

280```bash theme={null}

281export ENABLE_PROMPT_CACHING_1H=1

282```

283 

284## Azure RBAC 構成

285 

286`Azure AI User` および `Cognitive Services User` デフォルトロールには、Claude モデルを呼び出すために必要なすべての権限が含まれています。

287 

288より制限的な権限の場合は、以下を含むカスタムロールを作成します:

289 

290```json theme={null}

291{

292 "permissions": [

293 {

294 "dataActions": [

295 "Microsoft.CognitiveServices/accounts/providers/*"

296 ]

297 }

298 ]

299}

300```

301 

302詳細については、[Microsoft Foundry RBAC ドキュメント](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry)を参照してください。

303 

304## トラブルシューティング

305 

306「Failed to get token from azureADTokenProvider: ChainedTokenCredential authentication failed」というエラーが表示される場合:

307 

308* 環境で Entra ID を構成するか、`ANTHROPIC_FOUNDRY_API_KEY` を設定してください。

309 

310## その他のリソース

311 

312* [Microsoft Foundry ドキュメント](https://learn.microsoft.com/en-us/azure/ai-foundry/what-is-azure-ai-foundry)

313* [Microsoft Foundry モデル](https://ai.azure.com/explore/models)

314* [Microsoft Foundry 価格](https://azure.microsoft.com/en-us/pricing/details/ai-foundry/)

model-config.md +382 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# モデル設定

6 

7> Claude Code のモデル設定について学習します。`opusplan` などのモデルエイリアスを含みます

8 

9## 利用可能なモデル

10 

11Claude Code の `model` 設定では、以下のいずれかを設定できます。

12 

13* **モデルエイリアス**

14* **モデル名**

15 * Anthropic API:完全な **[モデル名](https://platform.claude.com/docs/ja/about-claude/models/overview)**

16 * Bedrock:推論プロファイル ARN

17 * Foundry:デプロイメント名

18 * Vertex:バージョン名

19 

20### モデルエイリアス

21 

22モデルエイリアスは、正確なバージョン番号を覚えることなくモデル設定を選択するための便利な方法を提供します。

23 

24| モデルエイリアス | 動作 |

25| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |

26| **`default`** | 特別な値で、モデルオーバーライドをクリアし、アカウントタイプに応じた推奨モデルに戻します。それ自体はモデルエイリアスではありません |

27| **`best`** | 最も高性能な利用可能なモデルを使用します。現在は `opus` と同等です |

28| **`sonnet`** | 日常的なコーディングタスク用に最新の Sonnet モデルを使用 |

29| **`opus`** | 複雑な推論タスク用に最新の Opus モデルを使用 |

30| **`haiku`** | シンプルなタスク用に高速で効率的な Haiku モデルを使用 |

31| **`sonnet[1m]`** | 長いセッション用に [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/ja/build-with-claude/context-windows#1m-token-context-window) を備えた Sonnet を使用 |

32| **`opus[1m]`** | 長いセッション用に [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/ja/build-with-claude/context-windows#1m-token-context-window) を備えた Opus を使用 |

33| **`opusplan`** | Plan Mode 中は `opus` を使用し、実行中は `sonnet` に自動的に切り替わる特別なモード |

34 

35Anthropic API では、`opus` は Opus 4.7 に解決され、`sonnet` は Sonnet 4.6 に解決されます。Bedrock、Vertex、Foundry では、`opus` は Opus 4.6 に解決され、`sonnet` は Sonnet 4.5 に解決されます。より新しいモデルは、完全なモデル名を明示的に選択するか、`ANTHROPIC_DEFAULT_OPUS_MODEL` または `ANTHROPIC_DEFAULT_SONNET_MODEL` を設定することで、これらのプロバイダーで利用可能です。

36 

37エイリアスはプロバイダーの推奨バージョンを指し、時間とともに更新されます。特定のバージョンに固定するには、完全なモデル名(例:`claude-opus-4-7`)を使用するか、`ANTHROPIC_DEFAULT_OPUS_MODEL` などの対応する環境変数を設定します。

38 

39<Note>

40 Opus 4.7 には Claude Code v2.1.111 以降が必要です。`claude update` を実行してアップグレードしてください。

41</Note>

42 

43### モデルの設定

44 

45モデルは、優先度順に複数の方法で設定できます。

46 

471. **セッション中** - `/model <alias|name>` を使用してセッション中にモデルを切り替えるか、引数なしで `/model` を実行してピッカーを開きます。ピッカーは、会話に以前の出力がある場合に確認を求めます。次の応答がキャッシュされたコンテキストなしで完全な履歴を再読み込みするためです

482. **起動時** - `claude --model <alias|name>` で起動

493. **環境変数** - `ANTHROPIC_MODEL=<alias|name>` を設定

504. **設定** - 設定ファイルで `model` フィールドを使用して永続的に設定

51 

52`/model` の選択はユーザー設定に保存され、再起動後も保持されます。v2.1.117 以降では、プロジェクトの `.claude/settings.json` が異なるモデルを指定している場合、Claude Code はあなたの選択を `.claude/settings.local.json` にも書き込むため、再起動後もそのプロジェクトで継続して適用されます。管理設定が優先され、次の起動時に再度適用されます。

53 

54起動時のアクティブなモデルがあなた自身の選択ではなく、プロジェクトまたは管理設定から来ている場合、起動ヘッダーはどの設定ファイルがそれを設定したかを表示します。`/model` を実行して、現在のセッションでオーバーライドします。

55 

56使用例:

57 

58```bash theme={null}

59# Opus で開始

60claude --model opus

61 

62# セッション中に Sonnet に切り替え

63/model sonnet

64```

65 

66設定ファイルの例:

67 

68```json theme={null}

69{

70 "permissions": {

71 ...

72 },

73 "model": "opus"

74}

75```

76 

77## モデル選択の制限

78 

79エンタープライズ管理者は、[管理設定またはポリシー設定](/ja/settings#settings-files) で `availableModels` を使用して、ユーザーが選択できるモデルを制限できます。

80 

81`availableModels` が設定されている場合、ユーザーは `/model`、`--model` フラグ、または `ANTHROPIC_MODEL` 環境変数を使用してリスト内にないモデルに切り替えることはできません。

82 

83```json theme={null}

84{

85 "availableModels": ["sonnet", "haiku"]

86}

87```

88 

89### デフォルトモデルの動作

90 

91モデルピッカーの Default オプションは `availableModels` の影響を受けません。常に利用可能であり、[ユーザーのサブスクリプション層に基づいた](#default-model-setting) システムのランタイムデフォルトを表します。

92 

93`availableModels: []` の場合でも、ユーザーはそのティアの Default モデルで Claude Code を使用できます。

94 

95### ユーザーが実行するモデルの制御

96 

97`model` 設定は初期選択であり、強制ではありません。セッション開始時にアクティブなモデルを設定しますが、ユーザーは `/model` を開いて Default を選択することができ、これはそのティアのシステムデフォルトに解決されます。`model` が何に設定されているかに関係なく。

98 

99モデル体験を完全に制御するには、3 つの設定を組み合わせます。

100 

101* **`availableModels`**:ユーザーが切り替えられるという名前のモデルを制限

102* **`model`**:セッション開始時にアクティブなモデルを設定

103* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`**:Default オプションと `sonnet`、`opus`、`haiku` エイリアスが解決するものを制御

104 

105この例では、ユーザーを Sonnet 4.5 で開始し、ピッカーを Sonnet と Haiku に制限し、Default を最新リリースではなく Sonnet 4.5 に解決するようにピン留めします。

106 

107```json theme={null}

108{

109 "model": "claude-sonnet-4-5",

110 "availableModels": ["claude-sonnet-4-5", "haiku"],

111 "env": {

112 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"

113 }

114}

115```

116 

117`env` ブロックがない場合、ユーザーがピッカーで Default を選択すると、最新の Sonnet リリースが取得され、`model` と `availableModels` のバージョンピンがバイパスされます。

118 

119### マージ動作

120 

121`availableModels` がユーザー設定とプロジェクト設定など複数のレベルで設定されている場合、配列はマージされ、重複排除されます。厳密なアローリストを適用するには、最優先度を持つ管理設定またはポリシー設定で `availableModels` を設定します。

122 

123### Mantle モデル ID

124 

125[Bedrock Mantle エンドポイント](/ja/amazon-bedrock#use-the-mantle-endpoint) が有効な場合、`availableModels` の `anthropic.` で始まるエントリは、カスタムオプションとして `/model` ピッカーに追加され、Mantle エンドポイントにルーティングされます。これは [サードパーティデプロイメント用のモデルのピン留め](#pin-models-for-third-party-deployments) で説明されているエイリアスのみマッチングの例外です。設定はピッカーをリストされたエントリに制限するため、標準エイリアスと一緒に Mantle ID を含めます。

126 

127## 特別なモデルの動作

128 

129### `default` モデル設定

130 

131`default` の動作はアカウントタイプによって異なります。

132 

133* **Max と Team Premium**:Opus 4.7 がデフォルト

134* **Pro、Team Standard、Enterprise、Anthropic API**:Sonnet 4.6 がデフォルト

135* **Bedrock、Vertex、Foundry**:Sonnet 4.5 がデフォルト

136 

137Claude Code は、Opus の使用量閾値に達した場合、自動的に Sonnet にフォールバックする可能性があります。

138 

139<Note>

140 2026 年 4 月 23 日に、Enterprise 従量課金および Anthropic API ユーザーのデフォルトモデルが Opus 4.7 に変更されます。別のデフォルトを保つには、[サーバー管理設定](/ja/server-managed-settings) で `ANTHROPIC_MODEL` または `model` フィールドを設定します。

141</Note>

142 

143### `opusplan` モデル設定

144 

145`opusplan` モデルエイリアスは、自動化されたハイブリッドアプローチを提供します。

146 

147* **Plan Mode 中** - 複雑な推論とアーキテクチャの決定用に `opus` を使用

148* **実行モード中** - コード生成と実装用に自動的に `sonnet` に切り替わり

149 

150これにより、両方の長所が得られます。計画用の Opus の優れた推論と、実行用の Sonnet の効率性です。

151 

152Plan Mode の Opus フェーズは標準的な 200K コンテキストウィンドウで実行されます。[拡張コンテキスト](#extended-context) で説明されている自動 1M アップグレードは `opus` モデル設定に適用され、`opusplan` には拡張されません。

153 

154### 努力レベルの調整

155 

156[努力レベル](https://platform.claude.com/docs/ja/build-with-claude/effort) は適応的推論を制御し、タスクの複雑さに基づいて各ステップで思考するかどうか、どの程度思考するかをモデルが決定できるようにします。低い努力はシンプルなタスクではより高速で安価ですが、高い努力は複雑な問題に対してより深い推論を提供します。

157 

158努力は Opus 4.7、Opus 4.6、Sonnet 4.6 でサポートされています。利用可能なレベルはモデルによって異なります。

159 

160| モデル | レベル |

161| :-------------------- | :---------------------------------- |

162| Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |

163| Opus 4.6 と Sonnet 4.6 | `low`、`medium`、`high`、`max` |

164 

165アクティブなモデルがサポートしないレベルを設定した場合、Claude Code は設定したレベル以下の最高サポートレベルにフォールバックします。例えば、`xhigh` は Opus 4.6 では `high` として実行されます。

166 

167v2.1.117 以降、Opus 4.7 のデフォルト努力は `xhigh` で、Opus 4.6 と Sonnet 4.6 のデフォルト努力は `high` です。

168 

169Opus 4.7 を初めて実行する場合、Claude Code は、以前に Opus 4.6 または Sonnet 4.6 に対して別の努力レベルを設定していても、`xhigh` を適用します。切り替え後に `/effort` を再度実行して、別のレベルを選択します。

170 

171`low`、`medium`、`high`、`xhigh` はセッション全体で保持されます。`max` はトークン支出に制約がない最も深い推論を提供し、`CLAUDE_CODE_EFFORT_LEVEL` 環境変数を通じて設定された場合を除き、現在のセッションのみに適用されます。

172 

173#### 努力レベルの選択

174 

175各レベルはトークン支出と機能をトレードオフします。デフォルトはほとんどのコーディングタスクに適しています。別のバランスが必要な場合は調整します。

176 

177| レベル | 使用する場合 |

178| :------- | :---------------------------------------------------------------------------- |

179| `low` | インテリジェンスに敏感でない短くスコープされたレイテンシに敏感なタスク用に予約 |

180| `medium` | インテリジェンスをトレードオフできるコスト敏感な作業のトークン使用量を削減 |

181| `high` | トークン使用量とインテリジェンスのバランス。インテリジェンスに敏感な作業の最小値として使用するか、`xhigh` に対してトークン支出を削減するために使用 |

182| `xhigh` | ほとんどのコーディングおよび agentic コーディングタスクに最適な結果。Opus 4.7 での推奨デフォルト |

183| `max` | 難しいタスクのパフォーマンスを改善できますが、収益逓減を示す可能性があり、過度な思考の傾向があります。広く採用する前にテスト |

184 

185努力スケールはモデルごとに調整されるため、同じレベル名はモデル全体で同じ基盤値を表しません。

186 

187セッション設定を変更せずに 1 回限りの深い推論を行うには、プロンプトに「ultrathink」を含めます。これにより、そのターンでより多く推論するようにモデルに指示するインコンテキスト命令が追加されます。努力レベルを API に送信するように変更しません。

188 

189#### 努力レベルの設定

190 

191努力は以下のいずれかを通じて変更できます。

192 

193* **`/effort`**:引数なしで `/effort` を実行してインタラクティブスライダーを開くか、`/effort` の後にレベル名を続けて直接設定するか、`/effort auto` を実行してモデルのデフォルトにリセット

194* **`/model` 内**:モデルを選択する際に左右矢印キーを使用して努力スライダーを調整

195* **`--effort` フラグ**:Claude Code を起動する際にレベル名を渡して、単一セッションのレベルを設定

196* **環境変数**:`CLAUDE_CODE_EFFORT_LEVEL` をレベル名または `auto` に設定

197* **設定**:設定ファイルで `effortLevel` を設定

198* **Skill と subagent frontmatter**:[skill](/ja/skills#frontmatter-reference) または [subagent](/ja/sub-agents#supported-frontmatter-fields) markdown ファイルで `effort` を設定して、その skill または subagent が実行される際の努力レベルをオーバーライド

199 

200環境変数がすべての他の方法より優先され、次に設定されたレベル、次にモデルのデフォルトが優先されます。Frontmatter 努力は、その skill または subagent がアクティブな場合に適用され、セッションレベルをオーバーライドしますが、環境変数はオーバーライドしません。

201 

202努力スライダーは、サポートされているモデルが選択されている場合、`/model` に表示されます。現在の努力レベルはロゴとスピナーの横にも表示されます(例:「with low effort」)。`/model` を開かなくても、どの設定がアクティブかを確認できます。

203 

204#### 適応的推論と固定思考予算

205 

206適応的推論は各ステップで思考をオプションにするため、Claude はルーチンプロンプトにより速く応答でき、より深い思考から利益を得るステップのために深い思考を予約できます。現在のレベルが生成するよりも Claude がより頻繁に、またはより少なく思考することを望む場合、プロンプトまたは `CLAUDE.md` で直接そう言うことができます。モデルはその努力設定内でそのガイダンスに応答します。

207 

208Opus 4.7 は常に適応的推論を使用します。固定思考予算モードと `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` はそれに適用されません。

209 

210Opus 4.6 と Sonnet 4.6 では、`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` を設定して、`MAX_THINKING_TOKENS` で制御される以前の固定思考予算に戻すことができます。[環境変数](/ja/env-vars) を参照してください。

211 

212### 拡張コンテキスト

213 

214Opus 4.7、Opus 4.6、Sonnet 4.6 は、大規模なコードベースを持つ長いセッション用に [100 万トークンのコンテキストウィンドウ](https://platform.claude.com/docs/ja/build-with-claude/context-windows#1m-token-context-window) をサポートしています。

215 

216利用可能性はモデルとプランによって異なります。Max、Team、Enterprise プランでは、Opus は追加設定なしで自動的に 1M コンテキストにアップグレードされます。これは Team Standard と Team Premium の両方のシートに適用されます。

217 

218| プラン | Opus with 1M context | Sonnet with 1M context |

219| ------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |

220| Max、Team、Enterprise | サブスクリプションに含まれる | [追加使用](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) が必要 |

221| Pro | [追加使用](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) が必要 | [追加使用](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) が必要 |

222| API と従量課金 | フルアクセス | フルアクセス |

223 

2241M コンテキストを完全に無効にするには、`CLAUDE_CODE_DISABLE_1M_CONTEXT=1` を設定します。これにより、1M モデルバリアントがモデルピッカーから削除されます。[環境変数](/ja/env-vars) を参照してください。

225 

2261M コンテキストウィンドウは標準モデル価格を使用し、200K を超えるトークンに対するプレミアムはありません。拡張コンテキストがサブスクリプションに含まれているプランでは、使用量はサブスクリプションでカバーされたままです。拡張コンテキストに追加使用でアクセスするプランでは、トークンは追加使用に請求されます。

227 

228アカウントが 1M コンテキストをサポートしている場合、オプションは Claude Code の最新バージョンのモデルピッカー(`/model`)に表示されます。表示されない場合は、セッションを再起動してみてください。

229 

230モデルエイリアスまたは完全なモデル名で `[1m]` サフィックスを使用することもできます。

231 

232```bash theme={null}

233# opus[1m] または sonnet[1m] エイリアスを使用

234/model opus[1m]

235/model sonnet[1m]

236 

237# または完全なモデル名に [1m] を追加

238/model claude-opus-4-7[1m]

239```

240 

241## 現在のモデルの確認

242 

243現在使用しているモデルは、複数の方法で確認できます。

244 

2451. [ステータスライン](/ja/statusline) 内(設定されている場合)

2462. `/status` 内。アカウント情報も表示されます。

247 

248## カスタムモデルオプションの追加

249 

250`ANTHROPIC_CUSTOM_MODEL_OPTION` を使用して、組み込みエイリアスを置き換えることなく、単一のカスタムエントリを `/model` ピッカーに追加します。これは Claude Code がデフォルトでリストしないモデル ID のテストに役立ちます。LLM ゲートウェイデプロイメントの場合、Claude Code はゲートウェイの `/v1/models` エンドポイントからピッカーを自動的に入力するため、この変数が必要なのはディスカバリーが必要なモデルを返さない場合のみです。[LLM ゲートウェイモデル選択](/ja/llm-gateway#model-selection)を参照してください。

251 

252この例では、3 つの変数をすべて設定して、ゲートウェイルーティングされた Opus デプロイメントを選択可能にします。

253 

254```bash theme={null}

255export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-7"

256export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

257export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

258```

259 

260カスタムエントリは `/model` ピッカーの下部に表示されます。`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` と `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` はオプションです。省略された場合、モデル ID は名前として使用され、説明はデフォルトで `Custom model (<model-id>)` になります。

261 

262Claude Code は `ANTHROPIC_CUSTOM_MODEL_OPTION` で設定されたモデル ID の検証をスキップするため、API エンドポイントが受け入れる任意の文字列を使用できます。

263 

264## 環境変数

265 

266以下の環境変数を使用できます。これらは完全な **モデル名**(または API プロバイダーの同等のもの)である必要があり、エイリアスがマップするモデル名を制御します。

267 

268| 環境変数 | 説明 |

269| -------------------------------- | ---------------------------------------------------------------------------- |

270| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` に使用するモデル、または Plan Mode がアクティブな場合の `opusplan` に使用するモデル。 |

271| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` に使用するモデル、または Plan Mode がアクティブでない場合の `opusplan` に使用するモデル。 |

272| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` に使用するモデル、または [バックグラウンド機能](/ja/costs#background-token-usage) に使用するモデル |

273| `CLAUDE_CODE_SUBAGENT_MODEL` | [subagents](/ja/sub-agents) に使用するモデル |

274 

275注:`ANTHROPIC_SMALL_FAST_MODEL` は `ANTHROPIC_DEFAULT_HAIKU_MODEL` の代わりに非推奨です。

276 

277### サードパーティデプロイメント用のモデルのピン留め

278 

279[Bedrock](/ja/amazon-bedrock)、[Vertex AI](/ja/google-vertex-ai)、または [Foundry](/ja/microsoft-foundry) を通じて Claude Code をデプロイする場合、ユーザーへのロールアウト前にモデルバージョンをピン留めします。

280 

281ピン留めなしでは、Claude Code はモデルエイリアス(`sonnet`、`opus`、`haiku`)を使用し、最新バージョンに解決されます。Anthropic が新しいモデルをリリースすると、新しいバージョンが有効になっていないアカウントを持つユーザーは通知を見て、Bedrock と Vertex AI ユーザーはそのセッションの以前のバージョンにフォールバックしますが、Foundry ユーザーはエラーを見ます。Foundry には同等のスタートアップチェックがないためです。

282 

283<Warning>

284 初期セットアップの一部として、3 つのモデル環境変数すべてを特定のバージョン ID に設定します。ピン留めにより、ユーザーが新しいモデルに移行するタイミングを制御できます。

285</Warning>

286 

287プロバイダーのバージョン固有のモデル ID を使用して、以下の環境変数を使用します。

288 

289| プロバイダー | 例 |

290| :-------- | :------------------------------------------------------------------- |

291| Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-7'` |

292| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7'` |

293| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7'` |

294 

295`ANTHROPIC_DEFAULT_SONNET_MODEL` と `ANTHROPIC_DEFAULT_HAIKU_MODEL` に同じパターンを適用します。すべてのプロバイダー全体の現在および従来のモデル ID については、[モデル概要](https://platform.claude.com/docs/ja/about-claude/models/overview) を参照してください。ユーザーを新しいモデルバージョンにアップグレードするには、これらの環境変数を更新して再デプロイします。

296 

297ピン留めされたモデルの [拡張コンテキスト](#extended-context) を有効にするには、`ANTHROPIC_DEFAULT_OPUS_MODEL` または `ANTHROPIC_DEFAULT_SONNET_MODEL` のモデル ID に `[1m]` を追加します。

298 

299```bash theme={null}

300export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7[1m]'

301```

302 

303`[1m]` サフィックスは、`opusplan` を含むそのエイリアスのすべての使用に 1M コンテキストウィンドウを適用します。Claude Code は、モデル ID をプロバイダーに送信する前にサフィックスを削除します。Opus 4.7 や Sonnet 4.6 など、基盤となるモデルが 1M コンテキストをサポートする場合にのみ `[1m]` を追加します。

304 

305<Note>

306 `settings.availableModels` アローリストは、サードパーティプロバイダーを使用する場合でも適用されます。フィルタリングはプロバイダー固有のモデル ID ではなく、モデルエイリアス(`opus`、`sonnet`、`haiku`)で一致します。

307</Note>

308 

309### ピン留めされたモデルの表示と機能のカスタマイズ

310 

311サードパーティプロバイダーでモデルをピン留めする場合、プロバイダー固有の ID は `/model` ピッカーにそのまま表示され、Claude Code はモデルがサポートする機能を認識しない可能性があります。ピン留めされた各モデルの表示名と機能を宣言するコンパニオン環境変数でオーバーライドできます。

312 

313これらの変数は、Bedrock、Vertex AI、Foundry などのサードパーティプロバイダーでのみ有効です。`ANTHROPIC_BASE_URL` が [LLM ゲートウェイ](/ja/llm-gateway) を指す場合、`_NAME` と `_DESCRIPTION` 変数も有効です。`api.anthropic.com` に直接接続する場合は効果がありません。

314 

315| 環境変数 | 説明 |

316| ----------------------------------------------------- | -------------------------------------------------------------------------- |

317| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` ピッカーでピン留めされた Opus モデルの表示名。設定されていない場合はモデル ID がデフォルト |

318| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` ピッカーでピン留めされた Opus モデルの表示説明。設定されていない場合は `Custom Opus model` がデフォルト |

319| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | ピン留めされた Opus モデルがサポートする機能のカンマ区切りリスト |

320 

321同じ `_NAME`、`_DESCRIPTION`、`_SUPPORTED_CAPABILITIES` サフィックスは `ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、`ANTHROPIC_CUSTOM_MODEL_OPTION` で利用可能です。

322 

323Claude Code は、モデル ID を既知のパターンと照合することで、[努力レベル](#adjust-effort-level) や [拡張思考](/ja/common-workflows#use-extended-thinking-thinking-mode) などの機能を有効にします。Bedrock ARN やカスタムデプロイメント名などのプロバイダー固有の ID は、これらのパターンと一致しないことが多く、サポートされている機能が無効のままになります。`_SUPPORTED_CAPABILITIES` を設定して、Claude Code にモデルが実際にサポートする機能を伝えます。

324 

325| 機能値 | 有効にするもの |

326| ---------------------- | ---------------------------------------------------------------- |

327| `effort` | [努力レベル](#adjust-effort-level) と `/effort` コマンド |

328| `xhigh_effort` | {/* min-version: 2.1.111 */}`xhigh` 努力レベル |

329| `max_effort` | `max` 努力レベル |

330| `thinking` | [拡張思考](/ja/common-workflows#use-extended-thinking-thinking-mode) |

331| `adaptive_thinking` | タスクの複雑さに基づいて思考を動的に割り当てる適応的推論 |

332| `interleaved_thinking` | ツール呼び出し間の思考 |

333 

334`_SUPPORTED_CAPABILITIES` が設定されている場合、リストされた機能は有効になり、リストされていない機能はマッチングされたピン留めされたモデルに対して無効になります。変数が設定されていない場合、Claude Code はモデル ID に基づいた組み込み検出にフォールバックします。

335 

336この例では、Bedrock カスタムモデル ARN に Opus をピン留めし、フレンドリーな名前を設定し、その機能を宣言します。

337 

338```bash theme={null}

339export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'

340export ANTHROPIC_DEFAULT_OPUS_MODEL_NAME='Opus via Bedrock'

341export ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION='Opus 4.7 routed through a Bedrock custom endpoint'

342export ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES='effort,xhigh_effort,max_effort,thinking,adaptive_thinking,interleaved_thinking'

343```

344 

345### バージョンごとのモデル ID のオーバーライド

346 

347上記のファミリーレベルの環境変数は、ファミリーエイリアスごとに 1 つのモデル ID を設定します。同じファミリー内の複数のバージョンを異なるプロバイダー ID にマップする必要がある場合は、代わりに `modelOverrides` 設定を使用します。

348 

349`modelOverrides` は個別の Anthropic モデル ID をプロバイダー固有の文字列にマップし、Claude Code がプロバイダーの API に送信します。ユーザーが `/model` ピッカーでマップされたモデルを選択すると、Claude Code は組み込みのデフォルトの代わりに設定された値を使用します。

350 

351これにより、エンタープライズ管理者は、ガバナンス、コスト配分、または地域的なルーティングのために、各モデルバージョンを特定の Bedrock 推論プロファイル ARN、Vertex AI バージョン名、または Foundry デプロイメント名にルーティングできます。

352 

353[設定ファイル](/ja/settings#settings-files) で `modelOverrides` を設定します。

354 

355```json theme={null}

356{

357 "modelOverrides": {

358 "claude-opus-4-7": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-prod",

359 "claude-opus-4-6": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-46-prod",

360 "claude-sonnet-4-6": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/sonnet-prod"

361 }

362}

363```

364 

365キーは [モデル概要](https://platform.claude.com/docs/ja/about-claude/models/overview) にリストされている Anthropic モデル ID である必要があります。日付付きモデル ID の場合、そこに表示されるとおりに日付サフィックスを含めます。不明なキーは無視されます。

366 

367オーバーライドは、`/model` ピッカーの各エントリをサポートする組み込みモデル ID を置き換えます。Bedrock では、オーバーライドは Claude Code が起動時に自動的に検出する推論プロファイルより優先されます。`ANTHROPIC_MODEL`、`--model`、または `ANTHROPIC_DEFAULT_*_MODEL` 環境変数を通じて直接提供される値は、プロバイダーにそのまま渡され、`modelOverrides` によって変換されません。

368 

369`modelOverrides` は `availableModels` と一緒に機能します。アローリストは Anthropic モデル ID に対して評価され、オーバーライド値に対してではないため、`availableModels` の `"opus"` などのエントリは、Opus バージョンが ARN にマップされている場合でも一致し続けます。

370 

371### プロンプトキャッシング設定

372 

373Claude Code は [プロンプトキャッシング](https://platform.claude.com/docs/ja/build-with-claude/prompt-caching) を自動的に使用してパフォーマンスを最適化し、コストを削減します。プロンプトキャッシングをグローバルに、または特定のモデルティアに対して無効にできます。

374 

375| 環境変数 | 説明 |

376| ------------------------------- | -------------------------------------------------- |

377| `DISABLE_PROMPT_CACHING` | `1` に設定して、すべてのモデルのプロンプトキャッシングを無効にします(モデル固有の設定より優先) |

378| `DISABLE_PROMPT_CACHING_HAIKU` | `1` に設定して、Haiku モデルのみのプロンプトキャッシングを無効にします |

379| `DISABLE_PROMPT_CACHING_SONNET` | `1` に設定して、Sonnet モデルのみのプロンプトキャッシングを無効にします |

380| `DISABLE_PROMPT_CACHING_OPUS` | `1` に設定して、Opus モデルのみのプロンプトキャッシングを無効にします |

381 

382これらの環境変数は、プロンプトキャッシング動作に対する細かい制御を提供します。グローバル `DISABLE_PROMPT_CACHING` 設定はモデル固有の設定より優先され、必要に応じてすべてのキャッシングをすばやく無効にできます。モデル固有の設定は、特定のモデルをデバッグする場合や、異なるキャッシング実装を持つ可能性があるクラウドプロバイダーと連携する場合など、選択的な制御に役立ちます。

monitoring-usage.md +955 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 監視

6 

7> Claude Code の OpenTelemetry を有効にして設定する方法を学びます。

8 

9OpenTelemetry (OTel) を通じてテレメトリデータをエクスポートすることで、組織全体で Claude Code の使用状況、コスト、ツールアクティビティを追跡します。Claude Code はメトリクスを標準メトリクスプロトコル経由で時系列データとしてエクスポートし、イベントをログ/イベントプロトコル経由でエクスポートし、オプションで [トレースプロトコル](#traces-beta)経由で分散トレースをエクスポートします。メトリクス、ログ、トレースのバックエンドを設定して、監視要件に合わせます。

10 

11## クイックスタート

12 

13環境変数を使用して OpenTelemetry を設定します:

14 

15```bash theme={null}

16# 1. テレメトリを有効にする

17export CLAUDE_CODE_ENABLE_TELEMETRY=1

18 

19# 2. エクスポーターを選択する (両方はオプション - 必要なものだけを設定してください)

20export OTEL_METRICS_EXPORTER=otlp # オプション: otlp、prometheus、console、none

21export OTEL_LOGS_EXPORTER=otlp # オプション: otlp、console、none

22 

23# 3. OTLP エンドポイントを設定する (OTLP エクスポーター用)

24export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

25export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

26 

27# 4. 認証を設定する (必要な場合)

28export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-token"

29 

30# 5. デバッグ用: エクスポート間隔を短縮する

31export OTEL_METRIC_EXPORT_INTERVAL=10000 # 10 秒 (デフォルト: 60000ms)

32export OTEL_LOGS_EXPORT_INTERVAL=5000 # 5 秒 (デフォルト: 5000ms)

33 

34# 6. Claude Code を実行する

35claude

36```

37 

38<Note>

39 デフォルトのエクスポート間隔は、メトリクスが 60 秒、ログが 5 秒です。セットアップ中は、デバッグ目的で短い間隔を使用することをお勧めします。本番環境での使用に向けてこれらをリセットすることを忘れないでください。

40</Note>

41 

42完全な設定オプションについては、[OpenTelemetry 仕様](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options)を参照してください。

43 

44## 管理者設定

45 

46管理者は、[管理設定ファイル](/ja/settings#settings-files)を通じてすべてのユーザーの OpenTelemetry 設定を設定できます。これにより、組織全体のテレメトリ設定を一元管理できます。設定がどのように適用されるかについては、[設定の優先順位](/ja/settings#settings-precedence)を参照してください。

47 

48管理設定の設定例:

49 

50```json theme={null}

51{

52 "env": {

53 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

54 "OTEL_METRICS_EXPORTER": "otlp",

55 "OTEL_LOGS_EXPORTER": "otlp",

56 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

57 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317",

58 "OTEL_EXPORTER_OTLP_HEADERS": "Authorization=Bearer example-token"

59 }

60}

61```

62 

63<Note>

64 管理設定は MDM (Mobile Device Management) または他のデバイス管理ソリューションを通じて配布できます。管理設定ファイルで定義された環境変数は優先度が高く、ユーザーによってオーバーライドすることはできません。

65</Note>

66 

67## 設定の詳細

68 

69### 一般的な設定変数

70 

71| 環境変数 | 説明 | 例の値 |

72| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |

73| `CLAUDE_CODE_ENABLE_TELEMETRY` | テレメトリ収集を有効にする (必須) | `1` |

74| `OTEL_METRICS_EXPORTER` | メトリクスエクスポーターのタイプ (カンマ区切り)。`none` を使用して無効化 | `console`、`otlp`、`prometheus`、`none` |

75| `OTEL_LOGS_EXPORTER` | ログ/イベントエクスポーターのタイプ (カンマ区切り)。`none` を使用して無効化 | `console`、`otlp`、`none` |

76| `OTEL_EXPORTER_OTLP_PROTOCOL` | OTLP エクスポーターのプロトコル (すべてのシグナル) | `grpc`、`http/json`、`http/protobuf` |

77| `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP コレクターエンドポイント (すべてのシグナル) | `http://localhost:4317` |

78| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | メトリクスのプロトコル (一般的な設定をオーバーライド) | `grpc`、`http/json`、`http/protobuf` |

79| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | OTLP メトリクスエンドポイント (一般的な設定をオーバーライド) | `http://localhost:4318/v1/metrics` |

80| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | ログのプロトコル (一般的な設定をオーバーライド) | `grpc`、`http/json`、`http/protobuf` |

81| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | OTLP ログエンドポイント (一般的な設定をオーバーライド) | `http://localhost:4318/v1/logs` |

82| `OTEL_EXPORTER_OTLP_HEADERS` | OTLP の認証ヘッダー | `Authorization=Bearer token` |

83| `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` | mTLS 認証用のクライアントキー | クライアントキーファイルへのパス |

84| `OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE` | mTLS 認証用のクライアント証明書 | クライアント証明書ファイルへのパス |

85| `OTEL_METRIC_EXPORT_INTERVAL` | エクスポート間隔 (ミリ秒単位、デフォルト: 60000) | `5000`、`60000` |

86| `OTEL_LOGS_EXPORT_INTERVAL` | ログエクスポート間隔 (ミリ秒単位、デフォルト: 5000) | `1000`、`10000` |

87| `OTEL_LOG_USER_PROMPTS` | ユーザープロンプトコンテンツのログを有効にする (デフォルト: 無効) | `1` で有効化 |

88| `OTEL_LOG_TOOL_DETAILS` | ツールイベントでツールパラメーターと入力引数のログを有効にする: Bash コマンド、MCP サーバーとツール名、スキル名、ツール入力。また、`user_prompt` イベントでカスタム、プラグイン、MCP コマンド名を有効にします (デフォルト: 無効) | `1` で有効化 |

89| `OTEL_LOG_TOOL_CONTENT` | スパンイベントでツール入力と出力コンテンツのログを有効にする (デフォルト: 無効)。[トレース](#traces-beta)が必要です。コンテンツは 60 KB で切り詰められます | `1` で有効化 |

90| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API リクエストとレスポンス JSON 全体を `api_request_body` / `api_response_body` ログイベントとして出力します (デフォルト: 無効)。ボディには会話履歴全体が含まれます。これを有効にすることは、`OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS`、および `OTEL_LOG_TOOL_CONTENT` が明かすすべてのものに同意することを意味します | `1` で 60 KB で切り詰められたインラインボディ、または `file:<dir>` でディスク上の切り詰められていないボディと、イベント内の `body_ref` ポインター |

91| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | メトリクスの時間性設定 (デフォルト: `delta`)。バックエンドが累積時間性を期待する場合は `cumulative` に設定 | `delta`、`cumulative` |

92| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 動的ヘッダーを更新するための間隔 (デフォルト: 1740000ms / 29 分) | `900000` |

93 

94### メトリクスカーディナリティ制御

95 

96以下の環境変数は、カーディナリティを管理するためにメトリクスに含まれる属性を制御します:

97 

98| 環境変数 | 説明 | デフォルト値 | 無効化する例 |

99| ----------------------------------- | ----------------------------------------------------- | ------- | ------- |

100| `OTEL_METRICS_INCLUDE_SESSION_ID` | メトリクスに session.id 属性を含める | `true` | `false` |

101| `OTEL_METRICS_INCLUDE_VERSION` | メトリクスに app.version 属性を含める | `false` | `true` |

102| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | メトリクスに user.account\_uuid および user.account\_id 属性を含める | `true` | `false` |

103 

104これらの変数は、メトリクスのカーディナリティを制御するのに役立ちます。これはメトリクスバックエンドのストレージ要件とクエリパフォーマンスに影響します。カーディナリティが低いほど、一般的にパフォーマンスが向上し、ストレージコストが低くなりますが、分析用のより詳細なデータは少なくなります。

105 

106### トレース (ベータ)

107 

108分散トレースは、各ユーザープロンプトをそれがトリガーする API リクエストとツール実行にリンクするスパンをエクスポートします。これにより、トレーシングバックエンドで完全なリクエストを単一のトレースとして表示できます。

109 

110トレースはデフォルトでオフです。有効にするには、`CLAUDE_CODE_ENABLE_TELEMETRY=1` と `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` の両方を設定してから、`OTEL_TRACES_EXPORTER` を設定してスパンの送信先を選択します。トレースは、エンドポイント、プロトコル、ヘッダーについて [一般的な OTLP 設定](#common-configuration-variables)を再利用します。

111 

112| 環境変数 | 説明 | 例の値 |

113| ------------------------------------- | ------------------------------------------------------------- | ---------------------------------- |

114| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | スパントレースを有効にする (必須)。`ENABLE_ENHANCED_TELEMETRY_BETA` も受け入れられます | `1` |

115| `OTEL_TRACES_EXPORTER` | トレースエクスポーターのタイプ (カンマ区切り)。`none` を使用して無効化 | `console`、`otlp`、`none` |

116| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | トレースのプロトコル (`OTEL_EXPORTER_OTLP_PROTOCOL` をオーバーライド) | `grpc`、`http/json`、`http/protobuf` |

117| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | OTLP トレースエンドポイント (`OTEL_EXPORTER_OTLP_ENDPOINT` をオーバーライド) | `http://localhost:4318/v1/traces` |

118| `OTEL_TRACES_EXPORT_INTERVAL` | スパンバッチエクスポート間隔 (ミリ秒単位、デフォルト: 5000) | `1000`、`10000` |

119 

120スパンはデフォルトでユーザープロンプトテキスト、ツール入力詳細、ツールコンテンツをマスクします。これらを含めるには、`OTEL_LOG_USER_PROMPTS=1`、`OTEL_LOG_TOOL_DETAILS=1`、および `OTEL_LOG_TOOL_CONTENT=1` を設定します。

121 

122トレースがアクティブな場合、Bash および PowerShell サブプロセスは、アクティブなツール実行スパンの W3C トレースコンテキストを含む `TRACEPARENT` 環境変数を自動的に継承します。これにより、`TRACEPARENT` を読み取るサブプロセスは、同じトレースの下に独自のスパンを親にすることができ、Claude が実行するスクリプトとコマンドを通じたエンドツーエンドの分散トレースが可能になります。

123 

124Agent SDK および `-p` で開始された非対話型セッションでは、Claude Code は各インタラクションスパンを開始するときに独自の環境から `TRACEPARENT` と `TRACESTATE` も読み取ります。これにより、埋め込みプロセスがアクティブな W3C トレースコンテキストをサブプロセスに渡すことができるため、Claude Code のスパンは呼び出し元の分散トレースの子として表示されます。対話型セッションは、CI またはコンテナ環境からの環境値を誤って継承するのを避けるため、インバウンド `TRACEPARENT` を無視します。

125 

126#### スパン階層

127 

128各ユーザープロンプトは `claude_code.interaction` ルートスパンを開始します。API 呼び出し、ツール呼び出し、フック実行はその子として記録されます。ツールスパンには 2 つの子スパンがあります: 1 つは権限決定の待機に費やされた時間用、もう 1 つは実行自体用です。Task ツールがサブエージェントを生成する場合、サブエージェントの API とツールスパンは親の `claude_code.tool` スパンの下にネストされます。

129 

130```text theme={null}

131claude_code.interaction

132├── claude_code.llm_request

133├── claude_code.hook (詳細なベータトレースが必要)

134└── claude_code.tool

135 ├── claude_code.tool.blocked_on_user

136 ├── claude_code.tool.execution

137 └── (Task ツール) サブエージェント claude_code.llm_request / claude_code.tool スパン

138```

139 

140Agent SDK および `claude -p` セッションでは、`TRACEPARENT` が環境に設定されている場合、`claude_code.interaction` 自体が呼び出し元のスパンの子になります。

141 

142#### スパン属性

143 

144すべてのスパンは [標準属性](#standard-attributes)と、その名前に一致する `span.type` 属性を持ちます。以下の表は、各スパンに設定される追加属性をリストしています。`llm_request`、`tool.execution`、および `hook` スパンは、失敗を記録するときに OpenTelemetry ステータス `ERROR` を設定します。他のスパンは常にステータス `UNSET` で終了します。

145 

146**`claude_code.interaction`**

147 

148| 属性 | 説明 | ゲート |

149| ------------------------- | ------------------------------------------- | ----------------------- |

150| `user_prompt` | プロンプトテキスト。ゲートが設定されていない限り、値は `<REDACTED>` です | `OTEL_LOG_USER_PROMPTS` |

151| `user_prompt_length` | プロンプト長 (文字数) | |

152| `interaction.sequence` | このセッション内のインタラクションの 1 ベースカウンター | |

153| `interaction.duration_ms` | ターンの実時間 | |

154 

155**`claude_code.llm_request`**

156 

157| 属性 | 説明 | ゲート |

158| -------------------------------- | -------------------------------------------------------------------------------------------------------- | --- |

159| `model` | モデル識別子 | |

160| `gen_ai.system` | 常に `anthropic`。OpenTelemetry GenAI セマンティック規約 | |

161| `gen_ai.request.model` | `model` と同じ値。OpenTelemetry GenAI セマンティック規約 | |

162| `query_source` | リクエストを発行したサブシステム。例: `repl_main_thread` またはサブエージェント名 | |

163| `speed` | `fast` または `normal` | |

164| `llm_request.context` | 親スパンに応じて `interaction`、`tool`、または `standalone` | |

165| `duration_ms` | 再試行を含む実時間 | |

166| `ttft_ms` | 最初のトークンまでの時間 (ミリ秒単位) | |

167| `input_tokens` | API 使用ブロックからの入力トークン数 | |

168| `output_tokens` | 出力トークン数 | |

169| `cache_read_tokens` | プロンプトキャッシュから読み取られたトークン | |

170| `cache_creation_tokens` | プロンプトキャッシュに書き込まれたトークン | |

171| `request_id` | レスポンスヘッダーの `request-id` からの Anthropic API リクエスト ID | |

172| `gen_ai.response.id` | `request_id` と同じ値。OpenTelemetry GenAI セマンティック規約 | |

173| `client_request_id` | 最終試行のクライアント生成 `x-client-request-id` | |

174| `attempt` | このリクエストに対して行われた総試行回数 | |

175| `success` | `true` または `false` | |

176| `status_code` | リクエストが失敗した場合の HTTP ステータスコード | |

177| `error` | リクエストが失敗した場合のエラーメッセージ | |

178| `response.has_tool_call` | レスポンスにツール使用ブロックが含まれている場合は `true` | |

179| `stop_reason` | API レスポンス `stop_reason`。例: `end_turn`、`tool_use`、`max_tokens`、`stop_sequence`、`pause_turn`、または `refusal` | |

180| `gen_ai.response.finish_reasons` | `stop_reason` と同じ値。文字列配列でラップされています。OpenTelemetry GenAI セマンティック規約 | |

181 

182各再試行試行は、`attempt` および `client_request_id` 属性を持つ `gen_ai.request.attempt` スパンイベントとしても記録されます。

183 

184**`claude_code.tool`**

185 

186| 属性 | 説明 | ゲート |

187| --------------- | ------------------------------- | ----------------------- |

188| `tool_name` | ツール名 | |

189| `duration_ms` | 権限待機と実行を含む実時間 | |

190| `result_tokens` | ツール結果のおおよそのトークンサイズ | |

191| `file_path` | Read、Edit、Write ツールのターゲットファイルパス | `OTEL_LOG_TOOL_DETAILS` |

192| `full_command` | Bash ツールのコマンド文字列 | `OTEL_LOG_TOOL_DETAILS` |

193| `skill_name` | Skill ツールのスキル名 | `OTEL_LOG_TOOL_DETAILS` |

194| `subagent_type` | Task ツールのサブエージェントタイプ | `OTEL_LOG_TOOL_DETAILS` |

195 

196`OTEL_LOG_TOOL_CONTENT=1` の場合、このスパンは、属性にツールの入力と出力ボディを含む `tool.output` スパンイベントも記録します。属性ごとに 60 KB で切り詰められます。

197 

198**`claude_code.tool.blocked_on_user`**

199 

200| 属性 | 説明 | ゲート |

201| ------------- | ----------------------------------------------------- | --- |

202| `duration_ms` | 権限決定の待機に費やされた時間 | |

203| `decision` | `accept` または `reject` | |

204| `source` | 決定ソース。[Tool decision event](#tool-decision-event) と一致 | |

205 

206**`claude_code.tool.execution`**

207 

208| 属性 | 説明 | ゲート |

209| ------------- | ------------------------------------------------------------------------------------ | ----------------------- |

210| `duration_ms` | ツール本体の実行に費やされた時間 | |

211| `success` | `true` または `false` | |

212| `error` | 実行が失敗した場合のエラーカテゴリ文字列。例: `Error:ENOENT` または `ShellError`。ゲートが設定されている場合は完全なエラーメッセージを含む | `OTEL_LOG_TOOL_DETAILS` |

213 

214**`claude_code.hook`**

215 

216このスパンは、詳細なベータトレースがアクティブな場合にのみ出力されます。これには、上記のトレースエクスポーター設定に加えて `ENABLE_BETA_TRACING_DETAILED=1` と `BETA_TRACING_ENDPOINT` が必要です。対話型 CLI セッションでは、これは組織がこの機能のホワイトリストに登録されていることも必要です。Agent SDK および非対話型 `-p` セッションはゲートされていません。`CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` のみが設定されている場合は出力されません。

217 

218| 属性 | 説明 | ゲート |

219| ------------------------ | ----------------------------- | ----------------------- |

220| `hook_event` | フックイベントタイプ。例: `PreToolUse` | |

221| `hook_name` | 完全なフック名。例: `PreToolUse:Write` | |

222| `num_hooks` | 実行された一致するフックコマンドの数 | |

223| `hook_definitions` | JSON シリアル化されたフック設定 | `OTEL_LOG_TOOL_DETAILS` |

224| `duration_ms` | すべての一致するフックの実時間 | |

225| `num_success` | 正常に完了したフックの数 | |

226| `num_blocking` | ブロッキング決定を返したフックの数 | |

227| `num_non_blocking_error` | ブロックなしで失敗したフックの数 | |

228| `num_cancelled` | 完了前にキャンセルされたフックの数 | |

229 

230<Note>

231 `new_context`、`system_prompt_preview`、`user_system_prompt`、`tool_input`、`response.model_output` などの追加のコンテンツを含む属性は、詳細なベータトレースがアクティブな場合にのみ出力されます。これらは安定したスパンスキーマの一部ではありません。`user_system_prompt` はさらに `OTEL_LOG_USER_PROMPTS=1` が必要です。これは `systemPrompt` SDK オプションまたは `--system-prompt` および `--append-system-prompt` フラグを通じて提供するシステムプロンプトテキストのみを含み、60 KB で切り詰められ、リクエストごとではなくセッションごとに 1 回出力されます。

232</Note>

233 

234### 動的ヘッダー

235 

236動的認証が必要なエンタープライズ環境では、ヘッダーを動的に生成するスクリプトを設定できます:

237 

238#### 設定ファイルの設定

239 

240`.claude/settings.json` に追加します:

241 

242```json theme={null}

243{

244 "otelHeadersHelper": "/bin/generate_opentelemetry_headers.sh"

245}

246```

247 

248#### スクリプト要件

249 

250スクリプトは HTTP ヘッダーを表す文字列キーと値のペアを持つ有効な JSON を出力する必要があります:

251 

252```bash theme={null}

253#!/bin/bash

254# 例: 複数のヘッダー

255echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

256```

257 

258#### リフレッシュ動作

259 

260ヘッダーヘルパースクリプトはスタートアップ時に実行され、その後定期的に実行されてトークンリフレッシュをサポートします。デフォルトでは、スクリプトは 29 分ごとに実行されます。`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` 環境変数で間隔をカスタマイズします。

261 

262### マルチチーム組織サポート

263 

264複数のチームまたは部門を持つ組織は、`OTEL_RESOURCE_ATTRIBUTES` 環境変数を使用してカスタム属性を追加し、異なるグループを区別できます:

265 

266```bash theme={null}

267# チーム識別用のカスタム属性を追加する

268export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"

269```

270 

271これらのカスタム属性はすべてのメトリクスとイベントに含まれ、以下のことが可能になります:

272 

273* チームまたは部門別にメトリクスをフィルタリングする

274* コストセンターごとのコストを追跡する

275* チーム固有のダッシュボードを作成する

276* 特定のチームのアラートを設定する

277 

278<Warning>

279 **OTEL\_RESOURCE\_ATTRIBUTES の重要なフォーマット要件:**

280 

281 `OTEL_RESOURCE_ATTRIBUTES` 環境変数はカンマ区切りのキー=値ペアを使用し、厳密なフォーマット要件があります:

282 

283 * **スペースは許可されません**: 値にスペースを含めることはできません。例えば、`user.organizationName=My Company` は無効です

284 * **フォーマット**: カンマ区切りのキー=値ペアである必要があります: `key1=value1,key2=value2`

285 * **許可される文字**: 制御文字、空白、ダブルクォート、カンマ、セミコロン、バックスラッシュを除く US-ASCII 文字のみ

286 * **特殊文字**: 許可された範囲外の文字はパーセントエンコードする必要があります

287 

288 **例:**

289 

290 ```bash theme={null}

291 # ❌ 無効 - スペースを含む

292 export OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"

293 

294 # ✅ 有効 - アンダースコアまたはキャメルケースを代わりに使用する

295 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"

296 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"

297 

298 # ✅ 有効 - 必要に応じて特殊文字をパーセントエンコードする

299 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"

300 ```

301 

302 注: 値をクォートで囲むことはスペースをエスケープしません。例えば、`org.name="My Company"` は `My Company` ではなく、リテラル値 `"My Company"` (クォート付き) になります。

303</Warning>

304 

305### 設定例

306 

307`claude` を実行する前にこれらの環境変数を設定します。各ブロックは、異なるエクスポーターまたはデプロイメントシナリオの完全な設定を示しています:

308 

309```bash theme={null}

310# コンソールデバッグ (1 秒間隔)

311export CLAUDE_CODE_ENABLE_TELEMETRY=1

312export OTEL_METRICS_EXPORTER=console

313export OTEL_METRIC_EXPORT_INTERVAL=1000

314 

315# OTLP/gRPC

316export CLAUDE_CODE_ENABLE_TELEMETRY=1

317export OTEL_METRICS_EXPORTER=otlp

318export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

319export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

320 

321# Prometheus

322export CLAUDE_CODE_ENABLE_TELEMETRY=1

323export OTEL_METRICS_EXPORTER=prometheus

324 

325# 複数のエクスポーター

326export CLAUDE_CODE_ENABLE_TELEMETRY=1

327export OTEL_METRICS_EXPORTER=console,otlp

328export OTEL_EXPORTER_OTLP_PROTOCOL=http/json

329 

330# メトリクスとログの異なるエンドポイント/バックエンド

331export CLAUDE_CODE_ENABLE_TELEMETRY=1

332export OTEL_METRICS_EXPORTER=otlp

333export OTEL_LOGS_EXPORTER=otlp

334export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf

335export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318

336export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc

337export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

338 

339# メトリクスのみ (イベント/ログなし)

340export CLAUDE_CODE_ENABLE_TELEMETRY=1

341export OTEL_METRICS_EXPORTER=otlp

342export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

343export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

344 

345# イベント/ログのみ (メトリクスなし)

346export CLAUDE_CODE_ENABLE_TELEMETRY=1

347export OTEL_LOGS_EXPORTER=otlp

348export OTEL_EXPORTER_OTLP_PROTOCOL=grpc

349export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

350```

351 

352## 利用可能なメトリクスとイベント

353 

354### 標準属性

355 

356すべてのメトリクスとイベントは、これらの標準属性を共有します:

357 

358| 属性 | 説明 | 制御者 |

359| ------------------- | ------------------------------------------------------------------ | ------------------------------------------------- |

360| `session.id` | 一意のセッション識別子 | `OTEL_METRICS_INCLUDE_SESSION_ID` (デフォルト: true) |

361| `app.version` | 現在の Claude Code バージョン | `OTEL_METRICS_INCLUDE_VERSION` (デフォルト: false) |

362| `organization.id` | 組織 UUID (認証時) | 利用可能な場合は常に含まれます |

363| `user.account_uuid` | アカウント UUID (認証時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (デフォルト: true) |

364| `user.account_id` | Anthropic 管理 API と一致するタグ付き形式のアカウント ID (認証時)。例: `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (デフォルト: true) |

365| `user.id` | Claude Code インストールごとに生成される匿名デバイス/インストール識別子 | 常に含まれます |

366| `user.email` | ユーザーメールアドレス (OAuth 経由で認証時) | 利用可能な場合は常に含まれます |

367| `terminal.type` | ターミナルタイプ。例: `iTerm.app`、`vscode`、`cursor`、`tmux` | 検出された場合は常に含まれます |

368 

369イベントには、以下の追加属性が含まれます。これらはメトリクスに添付されることはありません。これらはバウンドされていないカーディナリティを引き起こすためです:

370 

371* `prompt.id`: ユーザープロンプトを次のプロンプトまでのすべての後続イベントと相関させる UUID。[イベント相関属性](#event-correlation-attributes)を参照してください。

372* `workspace.host_paths`: デスクトップアプリで選択されたホストワークスペースディレクトリ (文字列配列として)

373 

374### メトリクス

375 

376Claude Code は以下のメトリクスをエクスポートします:

377 

378| メトリクス名 | 説明 | 単位 |

379| ------------------------------------- | --------------------- | ------ |

380| `claude_code.session.count` | 開始された CLI セッションの数 | count |

381| `claude_code.lines_of_code.count` | 変更されたコード行の数 | count |

382| `claude_code.pull_request.count` | 作成されたプルリクエストの数 | count |

383| `claude_code.commit.count` | 作成された git コミットの数 | count |

384| `claude_code.cost.usage` | Claude Code セッションのコスト | USD |

385| `claude_code.token.usage` | 使用されたトークンの数 | tokens |

386| `claude_code.code_edit_tool.decision` | コード編集ツールの権限決定の数 | count |

387| `claude_code.active_time.total` | 合計アクティブ時間 (秒単位) | s |

388 

389### メトリクスの詳細

390 

391各メトリクスには、上記の標準属性が含まれます。追加のコンテキスト固有の属性を持つメトリクスは以下に記載されています。

392 

393#### セッションカウンター

394 

395各セッションの開始時にインクリメントされます。

396 

397**属性**:

398 

399* すべての[標準属性](#standard-attributes)

400* `start_type`: セッションがどのように開始されたか。`"fresh"`、`"resume"`、または `"continue"` のいずれか

401 

402#### コード行カウンター

403 

404コードが追加または削除されたときにインクリメントされます。

405 

406**属性**:

407 

408* すべての[標準属性](#standard-attributes)

409* `type`: (`"added"`、`"removed"`)

410 

411#### プルリクエストカウンター

412 

413Claude Code を介してプルリクエストを作成するときにインクリメントされます。

414 

415**属性**:

416 

417* すべての[標準属性](#standard-attributes)

418 

419#### コミットカウンター

420 

421Claude Code を介して git コミットを作成するときにインクリメントされます。

422 

423**属性**:

424 

425* すべての[標準属性](#standard-attributes)

426 

427#### コストカウンター

428 

429各 API リクエスト後にインクリメントされます。

430 

431**属性**:

432 

433* すべての[標準属性](#standard-attributes)

434* `model`: モデル識別子 (例: "claude-sonnet-4-6")

435* `query_source`: リクエストを発行したサブシステムのカテゴリ。`"main"`、`"subagent"`、または `"auxiliary"` のいずれか

436* `speed`: 高速モードを使用した場合は `"fast"`。それ以外の場合は存在しません

437* `effort`: リクエストに適用された[努力レベル](/ja/model-config#adjust-effort-level): `"low"`、`"medium"`、`"high"`、`"xhigh"`、または `"max"`。モデルが努力をサポートしない場合は存在しません。

438 

439#### トークンカウンター

440 

441各 API リクエスト後にインクリメントされます。

442 

443**属性**:

444 

445* すべての[標準属性](#standard-attributes)

446* `type`: (`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)

447* `model`: モデル識別子 (例: "claude-sonnet-4-6")

448* `query_source`: リクエストを発行したサブシステムのカテゴリ。`"main"`、`"subagent"`、または `"auxiliary"` のいずれか

449* `speed`: 高速モードを使用した場合は `"fast"`。それ以外の場合は存在しません

450* `effort`: リクエストに適用された[努力レベル](/ja/model-config#adjust-effort-level)。詳細は [コストカウンター](#cost-counter)を参照してください。

451 

452#### コード編集ツール決定カウンター

453 

454ユーザーが Edit、Write、または NotebookEdit ツールの使用を受け入れるか拒否するときにインクリメントされます。

455 

456**属性**:

457 

458* すべての[標準属性](#standard-attributes)

459* `tool_name`: ツール名 (`"Edit"`、`"Write"`、`"NotebookEdit"`)

460* `decision`: ユーザーの決定 (`"accept"`、`"reject"`)

461* `source`: 決定ソース - `"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"`、または `"user_reject"`。詳細は [ツール決定イベント](#tool-decision-event)を参照してください。

462* `language`: 編集されたファイルのプログラミング言語。例: `"TypeScript"`、`"Python"`、`"JavaScript"`、`"Markdown"`。認識されないファイル拡張子の場合は `"unknown"` を返します。

463 

464#### アクティブ時間カウンター

465 

466Claude Code を積極的に使用している実際の時間を追跡します (アイドル時間ではありません)。このメトリクスは、ユーザーインタラクション (入力、応答の読み取り) 中および CLI 処理 (ツール実行、AI 応答生成) 中にインクリメントされます。

467 

468**属性**:

469 

470* すべての[標準属性](#standard-attributes)

471* `type`: キーボードインタラクションの場合は `"user"`、ツール実行と AI 応答の場合は `"cli"`

472 

473### イベント

474 

475Claude Code は、OpenTelemetry ログ/イベント経由で以下のイベントをエクスポートします (`OTEL_LOGS_EXPORTER` が設定されている場合):

476 

477#### イベント相関属性

478 

479ユーザーがプロンプトを送信すると、Claude Code は複数の API 呼び出しを行い、複数のツールを実行する場合があります。`prompt.id` 属性を使用すると、それらのすべてのイベントを、それらをトリガーした単一のプロンプトに結び付けることができます。

480 

481| 属性 | 説明 |

482| ----------- | ------------------------------------------------ |

483| `prompt.id` | 単一のユーザープロンプトの処理中に生成されたすべてのイベントをリンクする UUID v4 識別子 |

484 

485単一のプロンプトによってトリガーされたすべてのアクティビティをトレースするには、特定の `prompt.id` 値でイベントをフィルタリングします。これにより、user\_prompt イベント、api\_request イベント、およびそのプロンプトの処理中に発生した tool\_result イベントが返されます。

486 

487<Note>

488 `prompt.id` は、各プロンプトが一意の ID を生成し、時系列が増え続けるため、メトリクスから意図的に除外されています。イベントレベルの分析と監査証跡にのみ使用してください。

489</Note>

490 

491#### ユーザープロンプトイベント

492 

493ユーザーがプロンプトを送信するときにログされます。

494 

495**イベント名**: `claude_code.user_prompt`

496 

497**属性**:

498 

499* すべての[標準属性](#standard-attributes)

500* `event.name`: `"user_prompt"`

501* `event.timestamp`: ISO 8601 タイムスタンプ

502* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

503* `prompt_length`: プロンプトの長さ

504* `prompt`: プロンプトコンテンツ (デフォルトではマスク、`OTEL_LOG_USER_PROMPTS=1` で有効化)

505* `command_name`: プロンプトがコマンドを呼び出す場合のコマンド名。`compact` または `debug` などの組み込みおよびバンドルされたコマンド名はそのまま出力されます。`reset` などのエイリアスは、正規名ではなく入力されたとおりに出力されます。カスタム、プラグイン、MCP コマンド名は、`OTEL_LOG_TOOL_DETAILS=1` が設定されていない限り `custom` または `mcp` に折りたたまれます

506* `command_source`: コマンドが存在する場合のコマンドの起源: `builtin`、`custom`、または `mcp`。プラグイン提供のコマンドは `custom` として報告されます

507 

508#### ツール結果イベント

509 

510ツールが実行を完了するときにログされます。

511 

512**イベント名**: `claude_code.tool_result`

513 

514**属性**:

515 

516* すべての[標準属性](#standard-attributes)

517* `event.name`: `"tool_result"`

518* `event.timestamp`: ISO 8601 タイムスタンプ

519* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

520* `tool_name`: ツールの名前

521* `tool_use_id`: このツール呼び出しの一意の識別子。フックに渡される `tool_use_id` と一致し、OTel イベントとフック取得データ間の相関を可能にします。

522* `success`: `"true"` または `"false"`

523* `duration_ms`: 実行時間 (ミリ秒単位)

524* `error_type`: ツールが失敗した場合のエラーカテゴリ文字列。例: `"Error:ENOENT"` または `"ShellError"`

525* `error` (`OTEL_LOG_TOOL_DETAILS=1` の場合): ツールが失敗した場合の完全なエラーメッセージ

526* `decision_type`: `"accept"` または `"reject"`

527* `decision_source`: 決定ソース - `"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"`、または `"user_reject"`。詳細は [ツール決定イベント](#tool-decision-event)を参照してください。

528* `tool_input_size_bytes`: JSON シリアル化されたツール入力のサイズ (バイト単位)

529* `tool_result_size_bytes`: ツール結果のサイズ (バイト単位)

530* `mcp_server_scope`: MCP サーバースコープ識別子 (MCP ツール用)

531* `tool_parameters` (`OTEL_LOG_TOOL_DETAILS=1` の場合): ツール固有のパラメーターを含む JSON 文字列:

532 * Bash ツールの場合: `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`、および `git_commit_id` (git commit コマンドが成功した場合のコミット SHA) を含む

533 * MCP ツール: `mcp_server_name`、`mcp_tool_name` を含む

534 * Skill ツール: `skill_name` を含む

535 * Task ツール: `subagent_type` を含む

536* `tool_input` (`OTEL_LOG_TOOL_DETAILS=1` の場合): JSON シリアル化されたツール引数。512 文字を超える個別の値は切り詰められ、全体のペイロードは約 4 K 文字に制限されます。すべてのツール (MCP ツールを含む) に適用されます。

537 

538#### API リクエストイベント

539 

540Claude への各 API リクエストについてログされます。

541 

542**イベント名**: `claude_code.api_request`

543 

544**属性**:

545 

546* すべての[標準属性](#standard-attributes)

547* `event.name`: `"api_request"`

548* `event.timestamp`: ISO 8601 タイムスタンプ

549* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

550* `model`: 使用されたモデル (例: "claude-sonnet-4-6")

551* `cost_usd`: 推定コスト (USD)

552* `duration_ms`: リクエスト期間 (ミリ秒単位)

553* `input_tokens`: 入力トークンの数

554* `output_tokens`: 出力トークンの数

555* `cache_read_tokens`: キャッシュから読み取られたトークンの数

556* `cache_creation_tokens`: キャッシュ作成に使用されたトークンの数

557* `request_id`: レスポンスの `request-id` ヘッダーからの Anthropic API リクエスト ID。例: `"req_011..."`。API が返す場合のみ存在します。

558* `speed`: `"fast"` または `"normal"`、高速モードがアクティブであったかどうかを示します

559* `query_source`: リクエストを発行したサブシステム。例: `"repl_main_thread"`、`"compact"`、またはサブエージェント名

560* `effort`: リクエストに適用された[努力レベル](/ja/model-config#adjust-effort-level): `"low"`、`"medium"`、`"high"`、`"xhigh"`、または `"max"`。モデルが努力をサポートしない場合は存在しません。

561 

562#### API エラーイベント

563 

564Claude への API リクエストが失敗するときにログされます。

565 

566**イベント名**: `claude_code.api_error`

567 

568**属性**:

569 

570* すべての[標準属性](#standard-attributes)

571* `event.name`: `"api_error"`

572* `event.timestamp`: ISO 8601 タイムスタンプ

573* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

574* `model`: 使用されたモデル (例: "claude-sonnet-4-6")

575* `error`: エラーメッセージ

576* `status_code`: HTTP ステータスコード (数値)。接続失敗などの非 HTTP エラーの場合は存在しません。

577* `duration_ms`: リクエスト期間 (ミリ秒単位)

578* `attempt`: 試行の総数 (初期リクエストを含む。`1` は再試行が発生しなかったことを意味します)

579* `request_id`: レスポンスの `request-id` ヘッダーからの Anthropic API リクエスト ID。例: `"req_011..."`。API が返す場合のみ存在します。

580* `speed`: `"fast"` または `"normal"`、高速モードがアクティブであったかどうかを示します

581* `query_source`: リクエストを発行したサブシステム。例: `"repl_main_thread"`、`"compact"`、またはサブエージェント名

582* `effort`: リクエストに適用された[努力レベル](/ja/model-config#adjust-effort-level)。モデルが努力をサポートしない場合は存在しません。

583 

584#### API リクエストボディイベント

585 

586`OTEL_LOG_RAW_API_BODIES` が設定されている場合、各 API リクエスト試行についてログされます。調整されたパラメーターでの再試行ごとに 1 つのイベントが出力されます。

587 

588**イベント名**: `claude_code.api_request_body`

589 

590**属性**:

591 

592* すべての[標準属性](#standard-attributes)

593* `event.name`: `"api_request_body"`

594* `event.timestamp`: ISO 8601 タイムスタンプ

595* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

596* `body`: JSON シリアル化された Messages API リクエストパラメーター (システムプロンプト、メッセージ、ツールなど)。60 KB で切り詰められます。前のアシスタントターンの拡張思考コンテンツはマスクされます。インラインモード (`OTEL_LOG_RAW_API_BODIES=1`) でのみ出力されます。

597* `body_ref`: 切り詰められていないボディを含む `<dir>/<uuid>.request.json` ファイルへの絶対パス。ファイルモード (`OTEL_LOG_RAW_API_BODIES=file:<dir>`) でのみ出力されます。

598* `body_length`: 切り詰められていないボディの長さ。`OTEL_LOG_RAW_API_BODIES=file:<dir>` の場合は UTF-8 バイト、`=1` の場合は UTF-16 コードユニット

599* `body_truncated`: インライン切り詰めが発生した場合は `"true"`。ファイルモードおよび切り詰めが発生しなかった場合は存在しません。

600* `model`: リクエストパラメーターからのモデル識別子

601* `query_source`: リクエストを発行したサブシステム (例: `"compact"`)

602 

603#### API レスポンスボディイベント

604 

605`OTEL_LOG_RAW_API_BODIES` が設定されている場合、各成功した API レスポンスについてログされます。

606 

607**イベント名**: `claude_code.api_response_body`

608 

609**属性**:

610 

611* すべての[標準属性](#standard-attributes)

612* `event.name`: `"api_response_body"`

613* `event.timestamp`: ISO 8601 タイムスタンプ

614* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

615* `body`: JSON シリアル化された Messages API レスポンス (id、コンテンツブロック、使用状況、停止理由)。60 KB で切り詰められます。拡張思考コンテンツはマスクされます。インラインモード (`OTEL_LOG_RAW_API_BODIES=1`) でのみ出力されます。

616* `body_ref`: 切り詰められていないボディを含む `<dir>/<request_id>.response.json` ファイルへの絶対パス。ファイルモード (`OTEL_LOG_RAW_API_BODIES=file:<dir>`) でのみ出力されます。

617* `body_length`: 切り詰められていないボディの長さ。`OTEL_LOG_RAW_API_BODIES=file:<dir>` の場合は UTF-8 バイト、`=1` の場合は UTF-16 コードユニット

618* `body_truncated`: インライン切り詰めが発生した場合は `"true"`。ファイルモードおよび切り詰めが発生しなかった場合は存在しません。

619* `model`: モデル識別子

620* `query_source`: リクエストを発行したサブシステム

621* `request_id`: レスポンスの `request-id` ヘッダーからの Anthropic API リクエスト ID。例: `"req_011..."`。API が返す場合のみ存在します。

622 

623#### ツール決定イベント

624 

625ツール権限決定 (受け入れ/拒否) が行われるときにログされます。

626 

627**イベント名**: `claude_code.tool_decision`

628 

629**属性**:

630 

631* すべての[標準属性](#standard-attributes)

632* `event.name`: `"tool_decision"`

633* `event.timestamp`: ISO 8601 タイムスタンプ

634* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

635* `tool_name`: ツールの名前 (例: "Read"、"Edit"、"Write"、"NotebookEdit")

636* `tool_use_id`: このツール呼び出しの一意の識別子。フックに渡される `tool_use_id` と一致し、OTel イベントとフック取得データ間の相関を可能にします。

637* `decision`: `"accept"` または `"reject"`

638* `source`: 決定ソース:

639 * `"config"`: プロジェクト設定、エンタープライズ管理ポリシー、`--allowedTools` または `--disallowedTools` フラグ、アクティブな権限モード、またはツールが本質的に安全であるため、プロンプトなしで自動的に決定されました。

640 * `"hook"`: `PreToolUse` または `PermissionRequest` フックが決定を返しました。

641 * `"user_permanent"`: ユーザーがプロンプトされたときに「常に許可」を選択し、個人設定にルールを保存した場合に出力されます。また、そのルールに一致する後の呼び出しに対しても出力されます。受け入れとして扱われます。

642 * `"user_temporary"`: ユーザーがプロンプトされたときに「はい」または「このセッションのみはい」を選択し、ルールを保存しなかった場合に出力されます。また、そのセッションスコープの許可に一致する同じセッション内の後の呼び出しに対しても出力されます。受け入れとして扱われます。

643 * `"user_abort"`: ユーザーが権限プロンプトを回答なしで閉じた場合に出力されます。拒否として扱われます。

644 * `"user_reject"`: ユーザーがプロンプトされたときに「いいえ」を選択した場合、または呼び出しが個人設定内の拒否ルールに一致した場合に出力されます。拒否として扱われます。

645 

646#### 権限モード変更イベント

647 

648権限モードが変更されるときにログされます。例えば、`Shift+Tab` サイクリング、プランモード終了、または自動モードゲートチェックから。

649 

650**イベント名**: `claude_code.permission_mode_changed`

651 

652**属性**:

653 

654* すべての[標準属性](#standard-attributes)

655* `event.name`: `"permission_mode_changed"`

656* `event.timestamp`: ISO 8601 タイムスタンプ

657* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

658* `from_mode`: 前の権限モード。例: `"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、または `"bypassPermissions"`

659* `to_mode`: 新しい権限モード

660* `trigger`: 変更の原因。`"shift_tab"`、`"exit_plan_mode"`、`"auto_gate_denied"`、または `"auto_opt_in"` のいずれか。SDK またはブリッジから発生する場合は存在しません

661 

662#### 認証イベント

663 

664`/login` または `/logout` が完了するときにログされます。

665 

666**イベント名**: `claude_code.auth`

667 

668**属性**:

669 

670* すべての[標準属性](#standard-attributes)

671* `event.name`: `"auth"`

672* `event.timestamp`: ISO 8601 タイムスタンプ

673* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

674* `action`: `"login"` または `"logout"`

675* `success`: `"true"` または `"false"`

676* `auth_method`: 認証方法。例: `"oauth"`

677* `error_category`: アクションが失敗した場合のカテゴリエラー種別。生のエラーメッセージは含まれません

678* `status_code`: アクションが HTTP エラーで失敗した場合の HTTP ステータスコード (文字列)

679 

680#### MCP サーバー接続イベント

681 

682MCP サーバーが接続、切断、または接続に失敗するときにログされます。

683 

684**イベント名**: `claude_code.mcp_server_connection`

685 

686**属性**:

687 

688* すべての[標準属性](#standard-attributes)

689* `event.name`: `"mcp_server_connection"`

690* `event.timestamp`: ISO 8601 タイムスタンプ

691* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

692* `status`: `"connected"`、`"failed"`、または `"disconnected"`

693* `transport_type`: サーバートランスポート。例: `"stdio"`、`"sse"`、または `"http"`

694* `server_scope`: サーバーが設定されているスコープ。例: `"user"`、`"project"`、または `"local"`

695* `duration_ms`: 接続試行期間 (ミリ秒単位)

696* `error_code`: 接続が失敗した場合のエラーコード

697* `server_name` (`OTEL_LOG_TOOL_DETAILS=1` の場合): 設定されたサーバー名

698* `error` (`OTEL_LOG_TOOL_DETAILS=1` の場合): 接続が失敗した場合の完全なエラーメッセージ

699 

700#### 内部エラーイベント

701 

702Claude Code が予期しない内部エラーをキャッチするときにログされます。エラークラス名と errno スタイルコードのみが記録されます。エラーメッセージとスタックトレースは含まれません。このイベントは、Bedrock、Vertex、Foundry に対して実行している場合、または `DISABLE_ERROR_REPORTING` が設定されている場合は出力されません。

703 

704**イベント名**: `claude_code.internal_error`

705 

706**属性**:

707 

708* すべての[標準属性](#standard-attributes)

709* `event.name`: `"internal_error"`

710* `event.timestamp`: ISO 8601 タイムスタンプ

711* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

712* `error_name`: エラークラス名。例: `"TypeError"` または `"SyntaxError"`

713* `error_code`: エラーに存在する場合の Node.js errno コード。例: `"ENOENT"`

714 

715#### プラグインインストールイベント

716 

717プラグインがインストール完了するときにログされます。`claude plugin install` CLI コマンドと対話型 `/plugin` UI の両方から。

718 

719**イベント名**: `claude_code.plugin_installed`

720 

721**属性**:

722 

723* すべての[標準属性](#standard-attributes)

724* `event.name`: `"plugin_installed"`

725* `event.timestamp`: ISO 8601 タイムスタンプ

726* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

727* `marketplace.is_official`: マーケットプレイスが公式 Anthropic マーケットプレイスの場合は `"true"`、そうでない場合は `"false"`

728* `install.trigger`: `"cli"` または `"ui"`

729* `plugin.name`: インストールされたプラグインの名前。サードパーティマーケットプレイスの場合、`OTEL_LOG_TOOL_DETAILS=1` の場合のみ含まれます

730* `plugin.version`: マーケットプレイスエントリで宣言されている場合のプラグインバージョン。サードパーティマーケットプレイスの場合、`OTEL_LOG_TOOL_DETAILS=1` の場合のみ含まれます

731* `marketplace.name`: プラグインがインストールされたマーケットプレイス。サードパーティマーケットプレイスの場合、`OTEL_LOG_TOOL_DETAILS=1` の場合のみ含まれます

732 

733#### スキル有効化イベント

734 

735スキルが呼び出されるときにログされます。Claude が Skill ツールを通じてそれを呼び出すか、`/` コマンドとして実行するかどうかにかかわらず。

736 

737**イベント名**: `claude_code.skill_activated`

738 

739**属性**:

740 

741* すべての[標準属性](#standard-attributes)

742* `event.name`: `"skill_activated"`

743* `event.timestamp`: ISO 8601 タイムスタンプ

744* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

745* `skill.name`: スキルの名前。ユーザー定義およびサードパーティプラグインスキルの場合、`OTEL_LOG_TOOL_DETAILS=1` が設定されていない限り値はプレースホルダー `"custom_skill"` です

746* `invocation_trigger`: スキルがどのようにトリガーされたか (`"user-slash"`、`"claude-proactive"`、または `"nested-skill"`)

747* `skill.source`: スキルが読み込まれた場所 (例: `"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)

748* `plugin.name` (`OTEL_LOG_TOOL_DETAILS=1` またはプラグインが公式マーケットプレイスからの場合): スキルがプラグインによって提供される場合の所有プラグインの名前

749* `marketplace.name` (`OTEL_LOG_TOOL_DETAILS=1` またはプラグインが公式マーケットプレイスからの場合): スキルがプラグインによって提供される場合、所有プラグインがインストールされたマーケットプレイス

750 

751#### @ メンションイベント

752 

753Claude Code がプロンプト内の `@` メンションを解決するときにログされます。すべてのメンションがイベントを出力するわけではありません。権限拒否、ファイルサイズ超過、PDF 参照添付、ディレクトリリスト失敗などの早期終了パスはログなしで返されます。

754 

755**イベント名**: `claude_code.at_mention`

756 

757**属性**:

758 

759* すべての[標準属性](#standard-attributes)

760* `event.name`: `"at_mention"`

761* `event.timestamp`: ISO 8601 タイムスタンプ

762* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

763* `mention_type`: メンションのタイプ (`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`)

764* `success`: メンションが正常に解決されたかどうか (`"true"` または `"false"`)

765 

766#### API 再試行枯渇イベント

767 

768API リクエストが複数回の試行後に失敗した場合に 1 回ログされます。最終的な `api_error` イベントと一緒に出力されます。

769 

770**イベント名**: `claude_code.api_retries_exhausted`

771 

772**属性**:

773 

774* すべての[標準属性](#standard-attributes)

775* `event.name`: `"api_retries_exhausted"`

776* `event.timestamp`: ISO 8601 タイムスタンプ

777* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

778* `model`: 使用されたモデル

779* `error`: 最終エラーメッセージ

780* `status_code`: HTTP ステータスコード (数値)。非 HTTP エラーの場合は存在しません。

781* `total_attempts`: 試行の総数

782* `total_retry_duration_ms`: すべての試行にわたる実時間

783* `speed`: `"fast"` または `"normal"`

784 

785#### フック実行開始イベント

786 

7871 つ以上のフックがフックイベントの実行を開始するときにログされます。

788 

789**イベント名**: `claude_code.hook_execution_start`

790 

791**属性**:

792 

793* すべての[標準属性](#standard-attributes)

794* `event.name`: `"hook_execution_start"`

795* `event.timestamp`: ISO 8601 タイムスタンプ

796* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

797* `hook_event`: フックイベントタイプ。例: `"PreToolUse"` または `"PostToolUse"`

798* `hook_name`: マッチャーを含む完全なフック名。例: `"PreToolUse:Write"`

799* `num_hooks`: 一致するフックコマンドの数

800* `managed_only`: 管理ポリシーフックのみが許可されている場合は `"true"`

801* `hook_source`: `"policySettings"` または `"merged"`

802* `hook_definitions`: JSON シリアル化されたフック設定。詳細なベータトレースと `OTEL_LOG_TOOL_DETAILS=1` の両方が有効な場合にのみ含まれます

803 

804#### フック実行完了イベント

805 

806フックイベントのすべてのフックが完了するときにログされます。

807 

808**イベント名**: `claude_code.hook_execution_complete`

809 

810**属性**:

811 

812* すべての[標準属性](#standard-attributes)

813* `event.name`: `"hook_execution_complete"`

814* `event.timestamp`: ISO 8601 タイムスタンプ

815* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

816* `hook_event`: フックイベントタイプ

817* `hook_name`: マッチャーを含む完全なフック名

818* `num_hooks`: 一致するフックコマンドの数

819* `num_success`: 正常に完了した数

820* `num_blocking`: ブロッキング決定を返した数

821* `num_non_blocking_error`: ブロックなしで失敗した数

822* `num_cancelled`: 完了前にキャンセルされた数

823* `total_duration_ms`: すべての一致するフックの実時間

824* `managed_only`: 管理ポリシーフックのみが許可されている場合は `"true"`

825* `hook_source`: `"policySettings"` または `"merged"`

826* `hook_definitions`: JSON シリアル化されたフック設定。詳細なベータトレースと `OTEL_LOG_TOOL_DETAILS=1` の両方が有効な場合にのみ含まれます

827 

828#### 圧縮イベント

829 

830会話圧縮が完了するときにログされます。

831 

832**イベント名**: `claude_code.compaction`

833 

834**属性**:

835 

836* すべての[標準属性](#standard-attributes)

837* `event.name`: `"compaction"`

838* `event.timestamp`: ISO 8601 タイムスタンプ

839* `event.sequence`: セッション内のイベントを順序付けするための単調増加カウンター

840* `trigger`: `"auto"` または `"manual"`

841* `success`: `"true"` または `"false"`

842* `duration_ms`: 圧縮期間

843* `pre_tokens`: 圧縮前のおおよそのトークン数

844* `post_tokens`: 圧縮後のおおよそのトークン数

845* `error`: 圧縮が失敗した場合のエラーメッセージ

846 

847## メトリクスとイベントデータの解釈

848 

849エクスポートされたメトリクスとイベントは、さまざまな分析をサポートします:

850 

851### 使用状況監視

852 

853| メトリクス | 分析の機会 |

854| ------------------------------------------------------------- | ---------------------------------- |

855| `claude_code.token.usage` | `type` (入力/出力)、ユーザー、チーム、またはモデル別に分類 |

856| `claude_code.session.count` | 時間経過に伴う採用と関与を追跡 |

857| `claude_code.lines_of_code.count` | コード追加/削除を追跡して生産性を測定 |

858| `claude_code.commit.count` & `claude_code.pull_request.count` | 開発ワークフローへの影響を理解 |

859 

860### コスト監視

861 

862`claude_code.cost.usage` メトリクスは以下に役立ちます:

863 

864* チームまたは個人全体の使用トレンドを追跡する

865* 最適化のための高使用セッションを特定する

866 

867<Note>

868 コストメトリクスは概算です。公式な請求データについては、API プロバイダー (Claude Console、Amazon Bedrock、または Google Cloud Vertex) を参照してください。

869</Note>

870 

871### アラートとセグメンテーション

872 

873検討すべき一般的なアラート:

874 

875* コストスパイク

876* 異常なトークン消費

877* 特定のユーザーからの高いセッションボリューム

878 

879すべてのメトリクスは、`user.account_uuid`、`user.account_id`、`organization.id`、`session.id`、`model`、および `app.version` でセグメント化できます。

880 

881### 再試行枯渇の検出

882 

883Claude Code は失敗した API リクエストを内部的に再試行し、あきらめた後にのみ単一の `claude_code.api_error` イベントを出力するため、イベント自体がそのリクエストの終端信号です。中間再試行試行は個別のイベントとしてログされません。

884 

885イベントの `attempt` 属性は、試行の総数を記録します。`CLAUDE_CODE_MAX_RETRIES` (デフォルト `10`) より大きい値は、リクエストが一時的なエラーのすべての再試行を枯渇させたことを示します。より低い値は、`400` レスポンスなどの再試行不可能なエラーを示します。

886 

887セッションが回復したものと停止したものを区別するには、イベントを `session.id` でグループ化し、エラーの後に後続の `api_request` イベントが存在するかどうかを確認します。

888 

889### イベント分析

890 

891イベントデータは Claude Code インタラクションに関する詳細な洞察を提供します:

892 

893**ツール使用パターン**: ツール結果イベントを分析して以下を特定します:

894 

895* 最も頻繁に使用されるツール

896* ツール成功率

897* 平均ツール実行時間

898* ツールタイプ別のエラーパターン

899 

900**パフォーマンス監視**: API リクエスト期間とツール実行時間を追跡して、パフォーマンスボトルネックを特定します。

901 

902## バックエンドに関する考慮事項

903 

904メトリクス、ログ、トレースバックエンドの選択により、実行できる分析のタイプが決まります:

905 

906### メトリクスの場合

907 

908* **時系列データベース (例: Prometheus)**: レート計算、集約メトリクス

909* **カラムナーストア (例: ClickHouse)**: 複雑なクエリ、一意のユーザー分析

910* **フル機能の可観測性プラットフォーム (例: Honeycomb、Datadog)**: 高度なクエリ、可視化、アラート

911 

912### イベント/ログの場合

913 

914* **ログ集約システム (例: Elasticsearch、Loki)**: 全文検索、ログ分析

915* **カラムナーストア (例: ClickHouse)**: 構造化イベント分析

916* **フル機能の可観測性プラットフォーム (例: Honeycomb、Datadog)**: メトリクスとイベント間の相関

917 

918### トレースの場合

919 

920分散トレースストレージとスパン相関をサポートするバックエンドを選択します:

921 

922* **分散トレースシステム (例: Jaeger、Zipkin、Grafana Tempo)**: スパン可視化、リクエストウォーターフォール、レイテンシー分析

923* **フル機能の可観測性プラットフォーム (例: Honeycomb、Datadog)**: トレース検索とメトリクスおよびログとの相関

924 

925日次/週次/月次アクティブユーザー (DAU/WAU/MAU) メトリクスが必要な組織の場合は、効率的な一意値クエリをサポートするバックエンドを検討してください。

926 

927## サービス情報

928 

929すべてのメトリクスとイベントは、以下のリソース属性でエクスポートされます:

930 

931* `service.name`: `claude-code`

932* `service.version`: 現在の Claude Code バージョン

933* `os.type`: オペレーティングシステムタイプ (例: `linux`、`darwin`、`windows`)

934* `os.version`: オペレーティングシステムバージョン文字列

935* `host.arch`: ホストアーキテクチャ (例: `amd64`、`arm64`)

936* `wsl.version`: WSL バージョン番号 (Windows Subsystem for Linux で実行している場合のみ存在)

937* メーター名: `com.anthropic.claude_code`

938 

939## ROI 測定リソース

940 

941テレメトリセットアップ、コスト分析、生産性メトリクス、自動レポート生成を含む Claude Code の投資収益率 (ROI) 測定に関する包括的なガイドについては、[Claude Code ROI 測定ガイド](https://github.com/anthropics/claude-code-monitoring-guide)を参照してください。このリポジトリは、すぐに使用できる Docker Compose 設定、Prometheus と OpenTelemetry セットアップ、Linear などのツールと統合された生産性レポート生成テンプレートを提供します。

942 

943## セキュリティとプライバシー

944 

945* OpenTelemetry エクスポートはオプトインであり、明示的な設定が必要です。Anthropic の個別の運用テレメトリと無効化方法については、[データ使用](/ja/data-usage#telemetry-services)を参照してください

946* 生のファイルコンテンツとコードスニペットはメトリクスやイベントに含まれません。トレーススパンは別のデータパスです: 以下の `OTEL_LOG_TOOL_CONTENT` の項目を参照してください

947* OAuth 経由で認証された場合、`user.email` はテレメトリ属性に含まれます。これが組織にとって懸念事項である場合は、テレメトリバックエンドと協力してこのフィールドをフィルタリングまたはマスクしてください

948* ユーザープロンプトコンテンツはデフォルトでは収集されません。プロンプト長のみが記録されます。プロンプトコンテンツを含めるには、`OTEL_LOG_USER_PROMPTS=1` を設定します

949* ツール入力引数とパラメーターはデフォルトではログされません。これらを含めるには、`OTEL_LOG_TOOL_DETAILS=1` を設定します。有効にすると、`tool_result` イベントには Bash コマンド、MCP サーバーとツール名、スキル名を含む `tool_parameters` 属性、およびファイルパス、URL、検索パターン、その他の引数を含む `tool_input` 属性が含まれます。`user_prompt` イベントには、カスタム、プラグイン、MCP コマンドの逐語的な `command_name` が含まれます。トレーススパンには同じ `tool_input` 属性と `file_path` などの入力派生属性が含まれます。512 文字を超える個別の値は切り詰められ、合計は約 4 K 文字に制限されますが、引数には機密値が含まれる可能性があります。必要に応じてこれらの属性をフィルタリングまたはマスクするようにテレメトリバックエンドを設定してください

950* ツール入力と出力コンテンツはデフォルトではトレーススパンでログされません。これを含めるには、`OTEL_LOG_TOOL_CONTENT=1` を設定します。有効にすると、スパンイベントには 60 KB で切り詰められたツール入力と出力コンテンツが含まれます。これには Read ツール結果からの生のファイルコンテンツと Bash コマンド出力が含まれる可能性があります。必要に応じてこれらの属性をフィルタリングまたはマスクするようにテレメトリバックエンドを設定してください

951* 生の Anthropic Messages API リクエストとレスポンスボディはデフォルトではログされません。これらを含めるには、`OTEL_LOG_RAW_API_BODIES` を設定します。`=1` の場合、各 API 呼び出しは `api_request_body` および `api_response_body` ログイベントを出力し、その `body` 属性は JSON シリアル化されたペイロードで、60 KB で切り詰められます。`=file:<dir>` の場合、切り詰められていないボディはそのディレクトリの下の `.request.json` および `.response.json` ファイルに書き込まれ、イベントはテレメトリストリームではなくログコレクターまたはサイドカーで配信されるディレクトリを含む `body_ref` パスを持ちます。両方のモードで、ボディには完全な会話履歴(システムプロンプト、すべての前のユーザーとアシスタントターン、ツール結果)が含まれるため、これを有効にすることは他の `OTEL_LOG_*` コンテンツフラグが明かすすべてのものに同意することを意味します。Claude の拡張思考コンテンツは、他の設定に関係なく、これらのボディから常にマスクされます

952 

953## Amazon Bedrock での Claude Code の監視

954 

955Amazon Bedrock での Claude Code 使用状況監視ガイダンスの詳細については、[Claude Code 監視実装 (Bedrock)](https://github.com/aws-solutions-library-samples/guidance-for-claude-code-with-amazon-bedrock/blob/main/assets/docs/MONITORING.md)を参照してください。

network-config.md +132 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# エンタープライズネットワーク設定

6 

7> プロキシサーバー、カスタム認証局(CA)、相互 Transport Layer Security(mTLS)認証を使用して、エンタープライズ環境向けに Claude Code を設定します。

8 

9Claude Code は、環境変数を通じてさまざまなエンタープライズネットワークおよびセキュリティ設定をサポートしています。これには、企業プロキシサーバーを通じたトラフィックのルーティング、カスタム認証局(CA)の信頼、および強化されたセキュリティのための相互 Transport Layer Security(mTLS)証明書による認証が含まれます。

10 

11<Note>

12 このページに表示されているすべての環境変数は、[`settings.json`](/ja/settings) でも設定できます。

13</Note>

14 

15## プロキシ設定

16 

17### 環境変数

18 

19Claude Code は標準的なプロキシ環境変数に対応しています。

20 

21```bash theme={null}

22# HTTPS プロキシ(推奨)

23export HTTPS_PROXY=https://proxy.example.com:8080

24 

25# HTTP プロキシ(HTTPS が利用できない場合)

26export HTTP_PROXY=http://proxy.example.com:8080

27 

28# 特定のリクエストのプロキシをバイパス - スペース区切り形式

29export NO_PROXY="localhost 192.168.1.1 example.com .example.com"

30# 特定のリクエストのプロキシをバイパス - カンマ区切り形式

31export NO_PROXY="localhost,192.168.1.1,example.com,.example.com"

32# すべてのリクエストのプロキシをバイパス

33export NO_PROXY="*"

34```

35 

36<Note>

37 Claude Code は SOCKS プロキシをサポートしていません。

38</Note>

39 

40### 基本認証

41 

42プロキシが基本認証を必要とする場合は、プロキシ URL に認証情報を含めます。

43 

44```bash theme={null}

45export HTTPS_PROXY=http://username:password@proxy.example.com:8080

46```

47 

48<Warning>

49 スクリプトにパスワードをハードコーディングすることは避けてください。代わりに環境変数またはセキュアな認証情報ストレージを使用してください。

50</Warning>

51 

52<Tip>

53 高度な認証(NTLM、Kerberos など)が必要なプロキシの場合は、認証方法をサポートする LLM Gateway サービスの使用を検討してください。

54</Tip>

55 

56## CA 証明書ストア

57 

58デフォルトでは、Claude Code は、バンドルされた Mozilla CA 証明書とオペレーティングシステムの証明書ストアの両方を信頼しています。CrowdStrike Falcon や Zscaler などのエンタープライズ TLS インスペクションプロキシは、ルート証明書が OS 信頼ストアにインストールされている場合、追加の設定なしで動作します。

59 

60<Note>

61 システム CA ストア統合には、ネイティブ Claude Code バイナリ配布が必要です。Node.js ランタイムで実行している場合、システム CA ストアは自動的にマージされません。その場合は、`NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem` を設定して、エンタープライズルート CA を信頼してください。

62</Note>

63 

64`CLAUDE_CODE_CERT_STORE` は、カンマ区切りのソースリストを受け入れます。認識される値は、Claude Code に付属する Mozilla CA セットの場合は `bundled`、オペレーティングシステムの信頼ストアの場合は `system` です。デフォルトは `bundled,system` です。

65 

66バンドルされた Mozilla CA セットのみを信頼するには:

67 

68```bash theme={null}

69export CLAUDE_CODE_CERT_STORE=bundled

70```

71 

72OS 証明書ストアのみを信頼するには:

73 

74```bash theme={null}

75export CLAUDE_CODE_CERT_STORE=system

76```

77 

78<Note>

79 `CLAUDE_CODE_CERT_STORE` には、専用の `settings.json` スキーマキーがありません。`~/.claude/settings.json` の `env` ブロック、またはプロセス環境で直接設定してください。

80</Note>

81 

82## カスタム CA 証明書

83 

84エンタープライズ環境でカスタム CA を使用している場合は、Claude Code をそれを直接信頼するように設定します。

85 

86```bash theme={null}

87export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem

88```

89 

90## mTLS 認証

91 

92クライアント証明書認証が必要なエンタープライズ環境の場合:

93 

94```bash theme={null}

95# 認証用のクライアント証明書

96export CLAUDE_CODE_CLIENT_CERT=/path/to/client-cert.pem

97 

98# クライアント秘密鍵

99export CLAUDE_CODE_CLIENT_KEY=/path/to/client-key.pem

100 

101# オプション:暗号化された秘密鍵のパスフレーズ

102export CLAUDE_CODE_CLIENT_KEY_PASSPHRASE="your-passphrase"

103```

104 

105## ネットワークアクセス要件

106 

107Claude Code は以下の URL へのアクセスが必要です。プロキシ設定とファイアウォールルールでこれらをホワイトリストに登録してください。特にコンテナ化された環境または制限されたネットワーク環境では重要です。

108 

109| URL | 必要な用途 |

110| ------------------------------ | --------------------------------------------------------------------------- |

111| `api.anthropic.com` | Claude API リクエスト |

112| `claude.ai` | claude.ai アカウント認証 |

113| `platform.claude.com` | Anthropic Console アカウント認証 |

114| `downloads.claude.ai` | プラグイン実行可能ファイルのダウンロード、ネイティブインストーラーおよびネイティブ自動更新プログラム |

115| `storage.googleapis.com` | {/* max-version: 2.1.115 */}2.1.116 より前のバージョンのネイティブインストーラーおよびネイティブ自動更新プログラム |

116| `bridge.claudeusercontent.com` | [Chrome の Claude](/ja/chrome) 拡張機能 WebSocket ブリッジ |

117 

118npm を通じて Claude Code をインストールするか、独自のバイナリ配布を管理する場合、エンドユーザーは `downloads.claude.ai` または `storage.googleapis.com` へのアクセスが不要な場合があります。

119 

120Claude Code はデフォルトでオプションの運用テレメトリを送信します。これは環境変数で無効にできます。ホワイトリストを最終化する前に、[テレメトリサービス](/ja/data-usage#telemetry-services) を参照して無効にする方法を確認してください。

121 

122[Amazon Bedrock](/ja/amazon-bedrock)、[Google Vertex AI](/ja/google-vertex-ai)、または [Microsoft Foundry](/ja/microsoft-foundry) を使用する場合、モデルトラフィックと認証は `api.anthropic.com`、`claude.ai`、または `platform.claude.com` ではなくプロバイダーに送信されます。WebFetch ツールは、[settings](/ja/settings) で `skipWebFetchPreflight: true` を設定しない限り、[ドメイン安全性チェック](/ja/data-usage#webfetch-domain-safety-check) のために `api.anthropic.com` を呼び出します。

123 

124[Claude Code on the web](/ja/claude-code-on-the-web) および [Code Review](/ja/code-review) は、Anthropic が管理するインフラストラクチャからリポジトリに接続します。GitHub Enterprise Cloud 組織が IP アドレスによるアクセスを制限している場合は、[インストール済み GitHub Apps の IP 許可リスト継承を有効にします](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)。Claude GitHub App は IP 範囲を登録するため、この設定を有効にするとマニュアル設定なしでアクセスが可能になります。代わりに[範囲を許可リストに手動で追加する](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)場合、または他のファイアウォールを設定する場合は、[Anthropic API IP アドレス](https://platform.claude.com/docs/en/api/ip-addresses) を参照してください。

125 

126ファイアウォールの背後にある自社ホスト型の [GitHub Enterprise Server](/ja/github-enterprise-server) インスタンスの場合は、Anthropic インフラストラクチャがリポジトリをクローンしてレビューコメントを投稿できるように、同じ [Anthropic API IP アドレス](https://platform.claude.com/docs/en/api/ip-addresses) をホワイトリストに登録してください。

127 

128## その他のリソース

129 

130* [Claude Code 設定](/ja/settings)

131* [環境変数リファレンス](/ja/env-vars)

132* [トラブルシューティングガイド](/ja/troubleshooting)

output-styles.md +90 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 出力スタイル

6 

7> ソフトウェアエンジニアリング以外の用途に合わせて Claude Code をカスタマイズする

8 

9出力スタイルを使用すると、Claude Code をあらゆるタイプのエージェントとして使用できます。ローカルスクリプトの実行、ファイルの読み書き、TODO の追跡など、コアの機能を保持したままです。

10 

11## 組み込み出力スタイル

12 

13Claude Code の **Default** 出力スタイルは既存のシステムプロンプトであり、ソフトウェアエンジニアリングタスクを効率的に完了するのに役立つように設計されています。

14 

15コードベースと Claude の動作方法を教えることに焦点を当てた、2 つの追加の組み込み出力スタイルがあります。

16 

17* **Explanatory**: ソフトウェアエンジニアリングタスクの完了を支援しながら、教育的な「Insights」を提供します。実装の選択肢とコードベースのパターンを理解するのに役立ちます。

18 

19* **Learning**: 協調的な学習型モードです。Claude はコーディング中に「Insights」を共有するだけでなく、小さな戦略的なコードの一部を自分で実装するよう求めます。Claude Code はコード内に `TODO(human)` マーカーを追加して、実装するべき箇所を示します。

20 

21## 出力スタイルの仕組み

22 

23出力スタイルは Claude Code のシステムプロンプトを直接変更します。

24 

25* カスタム出力スタイルは、`keep-coding-instructions` が true でない限り、コーディングのための指示(テストでコードを検証するなど)を除外します。

26* すべての出力スタイルは、システムプロンプトの最後に独自のカスタム指示が追加されます。

27* すべての出力スタイルは、会話中に出力スタイルの指示に従うよう Claude に思い出させるリマインダーをトリガーします。

28 

29トークン使用量はスタイルによって異なります。システムプロンプトに指示を追加するとインプットトークンが増加しますが、プロンプトキャッシングはセッション内の最初のリクエスト後にこのコストを削減します。組み込みの Explanatory および Learning スタイルは、設計上 Default よりも長い応答を生成するため、アウトプットトークンが増加します。カスタムスタイルの場合、アウトプットトークン使用量は、指示が Claude に生成させるものに依存します。

30 

31## 出力スタイルを変更する

32 

33`/config` を実行し、**Output style** を選択してメニューからスタイルを選択します。選択内容は [ローカルプロジェクトレベル](/ja/settings) の `.claude/settings.local.json` に保存されます。

34 

35メニューなしでスタイルを設定するには、設定ファイルの `outputStyle` フィールドを直接編集します。

36 

37```json theme={null}

38{

39 "outputStyle": "Explanatory"

40}

41```

42 

43出力スタイルはセッション開始時にシステムプロンプトで設定されるため、変更は新しいセッションを開始した次回に有効になります。これにより、会話全体を通じてシステムプロンプトが安定し、プロンプトキャッシングがレイテンシとコストを削減できます。

44 

45## カスタム出力スタイルを作成する

46 

47カスタム出力スタイルは、frontmatter とシステムプロンプトに追加されるテキストを含む Markdown ファイルです。

48 

49```markdown theme={null}

50---

51name: My Custom Style

52description:

53 A brief description of what this style does, to be displayed to the user

54---

55 

56# Custom Style Instructions

57 

58You are an interactive CLI tool that helps users with software engineering

59tasks. [Your custom instructions here...]

60 

61## Specific Behaviors

62 

63[Define how the assistant should behave in this style...]

64```

65 

66これらのファイルはユーザーレベル(`~/.claude/output-styles`)またはプロジェクトレベル(`.claude/output-styles`)に保存できます。

67 

68### Frontmatter

69 

70出力スタイルファイルは、メタデータを指定するための frontmatter をサポートしています。

71 

72| Frontmatter | 目的 | デフォルト |

73| :------------------------- | :------------------------------------------ | :-------- |

74| `name` | 出力スタイルの名前(ファイル名でない場合) | ファイル名から継承 |

75| `description` | `/config` ピッカーに表示される出力スタイルの説明 | なし |

76| `keep-coding-instructions` | Claude Code のシステムプロンプトのコーディング関連の部分を保持するかどうか | false |

77 

78## 関連機能との比較

79 

80### 出力スタイル vs. CLAUDE.md vs. --append-system-prompt

81 

82出力スタイルは、ソフトウェアエンジニアリング固有の Claude Code のデフォルトシステムプロンプトの部分を完全に「オフ」にします。CLAUDE.md も `--append-system-prompt` も Claude Code のデフォルトシステムプロンプトを編集しません。CLAUDE.md は内容をユーザーメッセージとして Claude Code のデフォルトシステムプロンプトの「後に」追加します。`--append-system-prompt` はコンテンツをシステムプロンプトに追加します。

83 

84### 出力スタイル vs. [Agents](/ja/sub-agents)

85 

86出力スタイルはメインエージェントループに直接影響し、システムプロンプトのみに影響します。エージェントは特定のタスクを処理するために呼び出され、使用するモデル、利用可能なツール、エージェントをいつ使用するかに関するコンテキストなどの追加設定を含めることができます。

87 

88### 出力スタイル vs. [Skills](/ja/skills)

89 

90出力スタイルは Claude の応答方法(フォーマット、トーン、構造)を変更し、選択されると常にアクティブです。Skills はタスク固有のプロンプトであり、`/skill-name` で呼び出すか、関連する場合に Claude が自動的に読み込みます。一貫したフォーマット設定を使用する場合は出力スタイルを使用します。再利用可能なワークフローとタスクの場合は Skills を使用します。

overview.md +875 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code の概要

6 

7> Claude Code は agentic coding ツールで、コードベースを読み取り、ファイルを編集し、コマンドを実行し、開発ツールと統合します。ターミナル、IDE、デスクトップアプリ、ブラウザで利用できます。

8 

9export const InstallConfigurator = ({defaultSurface = 'terminal'}) => {

10 const TERM = {

11 mac: {

12 label: 'macOS / Linux',

13 cmd: 'curl -fsSL https://claude.ai/install.sh | bash'

14 },

15 win: {

16 label: 'Windows'

17 },

18 brew: {

19 label: 'Homebrew',

20 cmd: 'brew install --cask claude-code'

21 },

22 winget: {

23 label: 'WinGet',

24 cmd: 'winget install Anthropic.ClaudeCode'

25 }

26 };

27 const WIN_VARIANTS = {

28 ps: 'irm https://claude.ai/install.ps1 | iex',

29 cmd: 'curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd'

30 };

31 const TABS = [{

32 key: 'terminal',

33 label: 'Terminal'

34 }, {

35 key: 'desktop',

36 label: 'Desktop'

37 }, {

38 key: 'vscode',

39 label: 'VS Code'

40 }, {

41 key: 'jetbrains',

42 label: 'JetBrains'

43 }];

44 const ALT_TARGETS = {

45 desktop: {

46 name: 'Desktop',

47 tagline: 'The full agent in a native app for macOS and Windows.',

48 installLabel: 'Download the app',

49 installHref: 'https://claude.com/download?utm_source=claude_code&utm_medium=docs&utm_content=configurator_desktop_download',

50 guideHref: '/en/desktop-quickstart'

51 },

52 vscode: {

53 name: 'VS Code',

54 tagline: 'Review diffs, manage context, and chat without leaving your editor.',

55 installLabel: 'Install from Marketplace',

56 installHref: 'https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code',

57 altCmd: 'code --install-extension anthropic.claude-code',

58 guideHref: '/en/vs-code'

59 },

60 jetbrains: {

61 name: 'JetBrains',

62 tagline: 'Native plugin for IntelliJ, PyCharm, WebStorm, and other JetBrains IDEs.',

63 installLabel: 'Install from Marketplace',

64 installHref: 'https://plugins.jetbrains.com/plugin/27310-claude-code-beta-',

65 guideHref: '/en/jetbrains'

66 }

67 };

68 const PROVIDERS = [{

69 key: 'anthropic',

70 label: 'Anthropic'

71 }, {

72 key: 'bedrock',

73 label: 'Amazon Bedrock'

74 }, {

75 key: 'foundry',

76 label: 'Microsoft Foundry'

77 }, {

78 key: 'vertex',

79 label: 'Google Vertex AI'

80 }];

81 const PROVIDER_NOTICE = {

82 bedrock: <>

83 <strong>Configure your AWS account first.</strong> Running on Bedrock

84 requires model access enabled in the AWS console and IAM credentials.{' '}

85 <a href="/en/amazon-bedrock">Bedrock setup guide →</a>

86 </>,

87 vertex: <>

88 <strong>Configure your GCP project first.</strong> Running on Vertex AI

89 requires the Vertex API enabled and a service account with the right

90 permissions.{' '}

91 <a href="/en/google-vertex-ai">Vertex setup guide →</a>

92 </>,

93 foundry: <>

94 <strong>Configure your Azure resources first.</strong> Running on

95 Microsoft Foundry requires an Azure subscription with a Foundry resource

96 and model deployments provisioned.{' '}

97 <a href="/en/microsoft-foundry">Foundry setup guide →</a>

98 </>

99 };

100 const iconCheck = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

101 <polyline points="20 6 9 17 4 12" />

102 </svg>;

103 const iconCopy = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

104 <rect x="9" y="9" width="13" height="13" rx="2" />

105 <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />

106 </svg>;

107 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

108 <line x1="5" y1="12" x2="19" y2="12" />

109 <polyline points="12 5 19 12 12 19" />

110 </svg>;

111 const iconArrowUpRight = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

112 <line x1="7" y1="17" x2="17" y2="7" />

113 <polyline points="7 7 17 7 17 17" />

114 </svg>;

115 const iconInfo = (size = 16) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

116 <circle cx="12" cy="12" r="10" />

117 <line x1="12" y1="16" x2="12" y2="12" />

118 <line x1="12" y1="8" x2="12.01" y2="8" />

119 </svg>;

120 const [target, setTarget] = useState(defaultSurface);

121 const [team, setTeam] = useState(false);

122 const [provider, setProvider] = useState('anthropic');

123 const [pkg, setPkg] = useState(() => (/Win/).test(navigator.userAgent) ? 'win' : 'mac');

124 const [winCmd, setWinCmd] = useState(false);

125 const [copied, setCopied] = useState(null);

126 const copyTimer = useRef(null);

127 const handleCopy = async (text, key) => {

128 try {

129 await navigator.clipboard.writeText(text);

130 } catch {

131 const ta = document.createElement('textarea');

132 ta.value = text;

133 document.body.appendChild(ta);

134 ta.select();

135 document.execCommand('copy');

136 document.body.removeChild(ta);

137 }

138 clearTimeout(copyTimer.current);

139 setCopied(key);

140 copyTimer.current = setTimeout(() => setCopied(null), 1800);

141 };

142 const cardBodyCmd = (cmd, prompt) => {

143 const on = copied === 'term';

144 return <div className="cc-ic-card-body">

145 <span className="cc-ic-prompt">{prompt || '$'}</span>

146 <div className="cc-ic-cmd">{cmd}</div>

147 <button type="button" className={'cc-ic-copy' + (on ? ' cc-ic-copied' : '')} onClick={() => handleCopy(cmd, 'term')}>

148 {on ? iconCheck(13) : iconCopy(13)}

149 <span>{on ? 'Copied' : 'Copy'}</span>

150 </button>

151 </div>;

152 };

153 const isWinInstaller = pkg === 'win';

154 const isWinPrompt = pkg === 'win' || pkg === 'winget';

155 const terminalCmd = isWinInstaller ? WIN_VARIANTS[winCmd ? 'cmd' : 'ps'] : TERM[pkg].cmd;

156 const alt = ALT_TARGETS[target];

157 const showNotice = team && provider !== 'anthropic';

158 const STYLES = `

159.cc-ic {

160 --ic-slate: #141413;

161 --ic-clay: #d97757;

162 --ic-clay-deep: #c6613f;

163 --ic-gray-000: #ffffff;

164 --ic-gray-150: #f0eee6;

165 --ic-gray-550: #73726c;

166 --ic-gray-700: #3d3d3a;

167 --ic-border-subtle: rgba(31, 30, 29, 0.08);

168 --ic-border-default: rgba(31, 30, 29, 0.15);

169 --ic-border-strong: rgba(31, 30, 29, 0.3);

170 --ic-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Courier New', monospace;

171 font-family: 'Anthropic Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

172 font-size: 14px; line-height: 1.5; color: var(--ic-slate);

173 margin: 8px 0 32px;

174}

175.dark .cc-ic {

176 --ic-slate: #f0eee6;

177 --ic-gray-000: #262624;

178 --ic-gray-150: #1f1e1d;

179 --ic-gray-550: #91908a;

180 --ic-gray-700: #bfbdb4;

181 --ic-border-subtle: rgba(240, 238, 230, 0.08);

182 --ic-border-default: rgba(240, 238, 230, 0.14);

183 --ic-border-strong: rgba(240, 238, 230, 0.28);

184}

185.dark .cc-ic-check { background: transparent; }

186.dark .cc-ic-card { border: 0.5px solid var(--ic-border-subtle); }

187.dark .cc-ic-p-pill.cc-ic-active { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }

188.cc-ic *, .cc-ic *::before, .cc-ic *::after { box-sizing: border-box; }

189.cc-ic a { text-decoration: none; }

190.cc-ic a:not([class]) { color: inherit; }

191.cc-ic button { font-family: inherit; cursor: pointer; }

192 

193.cc-ic-tab-strip {

194 display: inline-flex; gap: 2px;

195 padding: 4px; background: var(--ic-gray-150);

196 border-radius: 10px; overflow-x: auto;

197 max-width: 100%;

198}

199.cc-ic-tab {

200 appearance: none; background: none; border: none;

201 padding: 10px 18px; font-size: 15px; font-weight: 430;

202 color: var(--ic-gray-550); border-radius: 7px;

203 white-space: nowrap;

204 transition: color 0.12s, background-color 0.12s;

205}

206.cc-ic-tab:hover { color: var(--ic-gray-700); }

207.cc-ic-tab.cc-ic-active {

208 color: var(--ic-slate); font-weight: 500;

209 background: var(--ic-gray-000);

210 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);

211}

212.dark .cc-ic-tab.cc-ic-active { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }

213 

214.cc-ic-team-wrap { padding: 16px 0 20px; }

215.cc-ic-team-toggle {

216 display: flex; align-items: center; gap: 12px; font-family: inherit;

217 padding: 12px 16px; font-size: 14px; font-weight: 430;

218 color: var(--ic-gray-700); cursor: pointer; user-select: none;

219 width: fit-content; background: var(--ic-gray-150);

220 border: 0.5px solid var(--ic-border-subtle); border-radius: 8px;

221 transition: border-color 0.15s;

222}

223.cc-ic-team-toggle:hover { border-color: var(--ic-border-default); }

224.cc-ic-team-toggle.cc-ic-checked {

225 background: rgba(217, 119, 87, 0.08);

226 border-color: rgba(217, 119, 87, 0.25);

227}

228.cc-ic-check {

229 width: 16px; height: 16px;

230 border: 1px solid var(--ic-border-strong); border-radius: 4px;

231 background: var(--ic-gray-000);

232 display: flex; align-items: center; justify-content: center;

233 flex-shrink: 0;

234}

235.cc-ic-check svg { color: #fff; display: none; }

236.cc-ic-team-toggle.cc-ic-checked .cc-ic-check { background: var(--ic-clay-deep); border-color: var(--ic-clay-deep); }

237.cc-ic-team-toggle.cc-ic-checked .cc-ic-check svg { display: block; }

238 

239.cc-ic-team-reveal { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }

240.cc-ic-sales {

241 display: flex; align-items: center; justify-content: space-between;

242 gap: 16px; padding: 14px 16px;

243 background: var(--ic-gray-000); border: 0.5px solid var(--ic-border-default);

244 border-radius: 8px; flex-wrap: wrap;

245}

246.cc-ic-sales-text { font-size: 13px; color: var(--ic-gray-700); line-height: 1.5; flex: 1; min-width: 200px; }

247.cc-ic-sales-text strong { font-weight: 550; color: var(--ic-slate); }

248.cc-ic-sales-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

249.cc-ic-btn-clay {

250 display: inline-flex; align-items: center; gap: 8px;

251 background: var(--ic-clay-deep); color: #fff; border: none;

252 border-radius: 8px; padding: 8px 14px;

253 font-size: 13px; font-weight: 500;

254 transition: background-color 0.15s; white-space: nowrap;

255}

256.cc-ic-btn-clay:hover { background: var(--ic-clay); }

257.cc-ic-btn-ghost {

258 display: inline-flex; align-items: center; gap: 8px;

259 background: transparent; color: var(--ic-gray-700);

260 border: 0.5px solid var(--ic-border-default);

261 border-radius: 8px; padding: 8px 14px;

262 font-size: 13px; font-weight: 500;

263}

264.cc-ic-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

265 

266.cc-ic-provider-bar {

267 display: flex; align-items: center; gap: 12px;

268 padding: 14px 16px; background: var(--ic-gray-150);

269 border-radius: 8px; font-size: 13px; flex-wrap: wrap;

270}

271.cc-ic-provider-bar .cc-ic-label { color: var(--ic-gray-550); flex-shrink: 0; }

272.cc-ic-provider-pills { display: flex; gap: 4px; flex-wrap: wrap; }

273.cc-ic-p-pill {

274 appearance: none; border: none; background: transparent;

275 padding: 6px 12px; border-radius: 6px;

276 font-size: 13px; font-weight: 430; color: var(--ic-gray-700);

277 white-space: nowrap;

278}

279.cc-ic-p-pill:hover { background: rgba(0, 0, 0, 0.04); }

280.cc-ic-p-pill.cc-ic-active {

281 background: var(--ic-gray-000); color: var(--ic-slate);

282 font-weight: 500; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);

283}

284.cc-ic-provider-notice {

285 display: flex; padding: 16px 18px;

286 background: var(--ic-gray-000); border: 0.5px solid var(--ic-border-default);

287 border-radius: 8px; gap: 14px; align-items: flex-start;

288}

289.cc-ic-provider-notice > svg { color: var(--ic-gray-550); margin-top: 2px; flex-shrink: 0; }

290.cc-ic-provider-notice-body { font-size: 14px; line-height: 1.55; color: var(--ic-gray-700); }

291.cc-ic-provider-notice-body strong { font-weight: 550; color: var(--ic-slate); }

292.cc-ic-provider-notice-body a { color: var(--ic-clay-deep); font-weight: 500; }

293.cc-ic-provider-notice-body a:hover { text-decoration: underline; }

294 

295.cc-ic-card { background: #141413; border-radius: 12px; overflow: hidden; }

296.cc-ic-subtabs {

297 display: flex; align-items: center;

298 background: #1a1918;

299 border-bottom: 0.5px solid rgba(255, 255, 255, 0.08);

300 padding: 0 8px; overflow-x: auto;

301}

302.cc-ic-subtab {

303 appearance: none; background: none; border: none;

304 padding: 12px 16px; font-size: 12px;

305 color: rgba(255, 255, 255, 0.5);

306 position: relative; white-space: nowrap;

307}

308.cc-ic-subtab:hover { color: rgba(255, 255, 255, 0.75); }

309.cc-ic-subtab.cc-ic-active { color: #fff; }

310.cc-ic-subtab.cc-ic-active::after {

311 content: ''; position: absolute;

312 left: 12px; right: 12px; bottom: -0.5px;

313 height: 2px; background: var(--ic-clay);

314}

315.cc-ic-shell-switch {

316 display: inline-flex; gap: 2px;

317 margin: 14px 26px 0; padding: 3px;

318 background: rgba(255, 255, 255, 0.06);

319 border: 0.5px solid rgba(255, 255, 255, 0.08);

320 border-radius: 8px;

321 font-family: inherit;

322}

323.cc-ic-shell-option {

324 font: inherit; font-size: 12px; font-weight: 500;

325 padding: 5px 12px; border-radius: 6px;

326 background: transparent; border: none;

327 color: rgba(255, 255, 255, 0.55);

328 cursor: pointer; user-select: none; white-space: nowrap;

329 transition: color 120ms ease, background-color 120ms ease;

330}

331.cc-ic-shell-option:hover { color: rgba(255, 255, 255, 0.85); }

332.cc-ic-shell-option.cc-ic-active {

333 background: rgba(255, 255, 255, 0.12);

334 color: #fff;

335 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);

336}

337 

338.cc-ic-card-body { padding: 24px 26px; display: flex; align-items: flex-start; gap: 14px; }

339.cc-ic-prompt {

340 color: var(--ic-clay); font-family: var(--ic-font-mono);

341 font-size: 17px; user-select: none; padding-top: 2px;

342}

343.cc-ic-cmd {

344 flex: 1; font-family: var(--ic-font-mono);

345 font-size: 17px; color: #f0eee6;

346 line-height: 1.55; white-space: pre-wrap; word-break: break-word;

347}

348.cc-ic-copy {

349 display: inline-flex; align-items: center; gap: 6px;

350 background: rgba(255, 255, 255, 0.08);

351 border: 0.5px solid rgba(255, 255, 255, 0.12);

352 color: rgba(255, 255, 255, 0.85);

353 padding: 7px 13px; border-radius: 8px;

354 font-size: 13px; font-weight: 500; flex-shrink: 0;

355}

356.cc-ic-copy:hover { background: rgba(255, 255, 255, 0.14); }

357.cc-ic-copy.cc-ic-copied { background: var(--ic-clay-deep); border-color: var(--ic-clay-deep); color: #fff; }

358 

359.cc-ic-below {

360 margin-top: 12px; font-size: 13px; color: var(--ic-gray-550);

361 display: flex; gap: 16px; flex-wrap: wrap; align-items: baseline;

362}

363.cc-ic-below a { color: var(--ic-gray-700); border-bottom: 0.5px solid var(--ic-border-default); }

364.cc-ic-below a:hover { color: var(--ic-clay-deep); border-bottom-color: var(--ic-clay-deep); }

365.cc-ic-handoff {

366 padding: 22px 24px;

367 background: linear-gradient(180deg, #faf9f4 0%, #f3f1e9 100%);

368 border: 0.5px solid var(--ic-border-default);

369 border-radius: 12px;

370 box-shadow: 0 1px 2px rgba(31, 30, 29, 0.04), 0 6px 16px -4px rgba(31, 30, 29, 0.06);

371}

372.dark .cc-ic-handoff {

373 background: linear-gradient(180deg, #262624 0%, #1f1e1d 100%);

374 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 16px -4px rgba(0, 0, 0, 0.4);

375}

376.cc-ic-handoff-title {

377 font-size: 16px; font-weight: 550; color: var(--ic-slate);

378 letter-spacing: -0.01em; margin-bottom: 4px;

379}

380.cc-ic-handoff-sub {

381 font-size: 14px; line-height: 1.5; color: var(--ic-gray-700);

382 margin-bottom: 18px;

383}

384.cc-ic-handoff-actions { display: flex; gap: 10px; flex-wrap: wrap; }

385.cc-ic-handoff-alt {

386 margin-top: 12px; font-size: 12px; color: var(--ic-gray-550);

387}

388.cc-ic-handoff-alt code {

389 font-family: var(--ic-font-mono); font-size: 11px;

390 background: var(--ic-gray-150); padding: 2px 6px;

391 border-radius: 4px; color: var(--ic-gray-700);

392}

393.cc-ic-copy-sm {

394 appearance: none; border: none;

395 display: inline-flex; align-items: center; justify-content: center;

396 width: 22px; height: 22px;

397 margin-left: 4px; vertical-align: middle;

398 background: var(--ic-gray-150); color: var(--ic-gray-550);

399 border-radius: 4px;

400 transition: color 0.1s, background-color 0.1s;

401}

402.cc-ic-copy-sm:hover { color: var(--ic-gray-700); background: var(--ic-border-default); }

403.cc-ic-copy-sm.cc-ic-copied { background: var(--ic-clay-deep); color: #fff; }

404 

405@media (max-width: 720px) {

406 .cc-ic-tab { padding: 12px 14px; font-size: 14px; }

407 .cc-ic-sales-actions { width: 100%; }

408 .cc-ic-card-body { padding: 20px; }

409 .cc-ic-cmd { font-size: 15px; }

410}

411`;

412 return <div className="cc-ic not-prose">

413 <style>{STYLES}</style>

414 

415 {}

416 <div className="cc-ic-tab-strip" role="tablist">

417 {TABS.map(t => <button key={t.key} type="button" role="tab" aria-selected={target === t.key} className={'cc-ic-tab' + (target === t.key ? ' cc-ic-active' : '')} onClick={() => setTarget(t.key)}>

418 {t.label}

419 </button>)}

420 </div>

421 

422 {}

423 <div className="cc-ic-team-wrap">

424 <button type="button" role="switch" aria-checked={team} className={'cc-ic-team-toggle' + (team ? ' cc-ic-checked' : '')} onClick={() => setTeam(!team)}>

425 <span className="cc-ic-check">{iconCheck(11)}</span>

426 <span>

427 I’m buying for a team or company (SSO, AWS/Azure/GCP, central billing)

428 </span>

429 </button>

430 </div>

431 

432 {}

433 {team && <div className="cc-ic-team-reveal">

434 <div className="cc-ic-sales">

435 <div className="cc-ic-sales-text">

436 <strong>Set up your team:</strong> self-serve or talk to sales.

437 </div>

438 <div className="cc-ic-sales-actions">

439 <a href="https://claude.ai/upgrade?initialPlanType=team&amp;utm_source=claude_code&amp;utm_medium=docs&amp;utm_content=configurator_team_get_started" className="cc-ic-btn-ghost">

440 Get started

441 </a>

442 <a href="https://www.anthropic.com/contact-sales?utm_source=claude_code&amp;utm_medium=docs&amp;utm_content=configurator_team_contact_sales" className="cc-ic-btn-clay">

443 Contact sales {iconArrowRight()}

444 </a>

445 </div>

446 </div>

447 

448 <div className="cc-ic-provider-bar">

449 <span className="cc-ic-label">Run on</span>

450 <div className="cc-ic-provider-pills" role="radiogroup" aria-label="Provider">

451 {PROVIDERS.map(p => <button key={p.key} type="button" role="radio" aria-checked={provider === p.key} className={'cc-ic-p-pill' + (provider === p.key ? ' cc-ic-active' : '')} onClick={() => setProvider(p.key)}>

452 {p.label}

453 </button>)}

454 </div>

455 </div>

456 

457 {showNotice && <div className="cc-ic-provider-notice">

458 {iconInfo()}

459 <div className="cc-ic-provider-notice-body">

460 {PROVIDER_NOTICE[provider]}

461 </div>

462 </div>}

463 </div>}

464 

465 {}

466 {target === 'terminal' && <div className="cc-ic-card">

467 <div className="cc-ic-subtabs" role="tablist" aria-label="Install method">

468 {Object.keys(TERM).map(k => <button key={k} type="button" role="tab" aria-selected={pkg === k} className={'cc-ic-subtab' + (pkg === k ? ' cc-ic-active' : '')} onClick={() => setPkg(k)}>

469 {TERM[k].label}

470 </button>)}

471 </div>

472 {isWinInstaller && <div className="cc-ic-shell-switch" role="tablist" aria-label="Shell">

473 {[{

474 k: 'ps',

475 label: 'PowerShell'

476 }, {

477 k: 'cmd',

478 label: 'CMD'

479 }].map(({k, label}) => {

480 const active = k === 'cmd' === winCmd;

481 return <button key={k} type="button" role="tab" aria-selected={active} className={'cc-ic-shell-option' + (active ? ' cc-ic-active' : '')} onClick={() => setWinCmd(k === 'cmd')}>

482 {label}

483 </button>;

484 })}

485 </div>}

486 {cardBodyCmd(terminalCmd, isWinPrompt ? '>' : '$')}

487 </div>}

488 

489 {}

490 {target === 'terminal' && <div className="cc-ic-below">

491 {isWinInstaller && <span>

492 <a href="https://git-scm.com/downloads/win" target="_blank" rel="noopener">

493 Git for Windows

494 </a>{' '}

495 recommended. PowerShell is used if Git Bash is absent.

496 </span>}

497 {(pkg === 'brew' || pkg === 'winget') && <span>

498 Does not auto-update. Run{' '}

499 <code>{pkg === 'brew' ? 'brew upgrade claude-code' : 'winget upgrade Anthropic.ClaudeCode'}</code>{' '}

500 periodically.

501 </span>}

502 <a href="/en/troubleshoot-install">Installation troubleshooting</a>

503 </div>}

504 

505 {alt && <div className="cc-ic-handoff">

506 <div className="cc-ic-handoff-title">Claude Code for {alt.name}</div>

507 <div className="cc-ic-handoff-sub">{alt.tagline}</div>

508 <div className="cc-ic-handoff-actions">

509 <a href={alt.installHref} className="cc-ic-btn-clay" {...alt.installHref.startsWith('http') ? {

510 target: '_blank',

511 rel: 'noopener'

512 } : {}}>

513 {alt.installLabel} {iconArrowUpRight(13)}

514 </a>

515 <a href={alt.guideHref} className="cc-ic-btn-ghost">

516 {alt.name} guide {iconArrowRight(12)}

517 </a>

518 </div>

519 {alt.altCmd && <div className="cc-ic-handoff-alt">

520 or run <code>{alt.altCmd}</code>

521 <button type="button" className={'cc-ic-copy-sm' + (copied === 'alt' ? ' cc-ic-copied' : '')} onClick={() => handleCopy(alt.altCmd, 'alt')} aria-label="Copy command">

522 {copied === 'alt' ? iconCheck(11) : iconCopy(11)}

523 </button>

524 </div>}

525 </div>}

526 </div>;

527};

528 

529export const Experiment = ({flag, treatment, children}) => {

530 const VID_KEY = 'exp_vid';

531 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

532 const fnv1a = s => {

533 let h = 0x811c9dc5;

534 for (let i = 0; i < s.length; i++) {

535 h ^= s.charCodeAt(i);

536 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

537 }

538 return h >>> 0;

539 };

540 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

541 const [decision] = useState(() => {

542 const params = new URLSearchParams(location.search);

543 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

544 const force = params.get('gb-force');

545 if (force) {

546 for (const p of force.split(',')) {

547 const [k, v] = p.split(':');

548 if (k === flag) return {

549 variant: v || 'treatment',

550 track: false

551 };

552 }

553 }

554 if (navigator.globalPrivacyControl) {

555 return {

556 variant: 'control',

557 track: false

558 };

559 }

560 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

561 if (prefsMatch) {

562 try {

563 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

564 return {

565 variant: 'control',

566 track: false

567 };

568 }

569 } catch {

570 return {

571 variant: 'control',

572 track: false

573 };

574 }

575 } else {

576 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

577 if (!country || CONSENT_COUNTRIES.has(country)) {

578 return {

579 variant: 'control',

580 track: false

581 };

582 }

583 }

584 let vid;

585 try {

586 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

587 if (ajsMatch) {

588 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

589 } else {

590 vid = localStorage.getItem(VID_KEY);

591 if (!vid) {

592 vid = crypto.randomUUID();

593 }

594 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

595 }

596 try {

597 localStorage.setItem(VID_KEY, vid);

598 } catch {}

599 } catch {

600 return {

601 variant: 'control',

602 track: false

603 };

604 }

605 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

606 return {

607 variant,

608 track: true,

609 vid

610 };

611 });

612 useEffect(() => {

613 if (!decision.track) return;

614 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

615 method: 'POST',

616 headers: {

617 'Content-Type': 'application/json',

618 'x-service-name': 'claude_code_docs'

619 },

620 body: JSON.stringify({

621 events: [{

622 event_type: 'GrowthbookExperimentEvent',

623 event_data: {

624 device_id: decision.vid,

625 anonymous_id: decision.vid,

626 timestamp: new Date().toISOString(),

627 experiment_id: flag,

628 variation_id: decision.variant === 'treatment' ? 1 : 0,

629 environment: 'production'

630 }

631 }]

632 }),

633 keepalive: true

634 }).catch(() => {});

635 }, []);

636 return decision.variant === 'treatment' ? treatment : children;

637};

638 

639Claude Code は AI を活用したコーディングアシスタントで、機能の構築、バグの修正、開発タスクの自動化を支援します。コードベース全体を理解し、複数のファイルとツール間で作業して目標を達成できます。

640 

641<div data-gb-slot="overview-install-configurator">

642 <Experiment flag="overview-install-configurator" treatment={<InstallConfigurator />} />

643</div>

644 

645## はじめに

646 

647環境を選択してはじめましょう。ほとんどのサーフェスには [Claude サブスクリプション](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=overview_pricing)または [Anthropic Console](https://console.anthropic.com/) アカウントが必要です。Terminal CLI と VS Code は [サードパーティプロバイダー](/ja/third-party-integrations)もサポートしています。

648 

649<Tabs>

650 <Tab title="Terminal">

651 ターミナルで Claude Code を直接操作するための機能豊富な CLI です。ファイルを編集し、コマンドを実行し、コマンドラインからプロジェクト全体を管理できます。

652 

653 To install Claude Code, use one of the following methods:

654 

655 <Tabs>

656 <Tab title="Native Install (Recommended)">

657 **macOS, Linux, WSL:**

658 

659 ```bash theme={null}

660 curl -fsSL https://claude.ai/install.sh | bash

661 ```

662 

663 **Windows PowerShell:**

664 

665 ```powershell theme={null}

666 irm https://claude.ai/install.ps1 | iex

667 ```

668 

669 **Windows CMD:**

670 

671 ```batch theme={null}

672 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

673 ```

674 

675 If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.

676 

677 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.

678 

679 <Info>

680 Native installations automatically update in the background to keep you on the latest version.

681 </Info>

682 </Tab>

683 

684 <Tab title="Homebrew">

685 ```bash theme={null}

686 brew install --cask claude-code

687 ```

688 

689 Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.

690 

691 <Info>

692 Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.

693 </Info>

694 </Tab>

695 

696 <Tab title="WinGet">

697 ```powershell theme={null}

698 winget install Anthropic.ClaudeCode

699 ```

700 

701 <Info>

702 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.

703 </Info>

704 </Tab>

705 </Tabs>

706 

707 You can also install with [apt, dnf, or apk](/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.

708 

709 その後、任意のプロジェクトで Claude Code を開始します:

710 

711 ```bash theme={null}

712 cd your-project

713 claude

714 ```

715 

716 初回使用時にログインするよう促されます。これで完了です![クイックスタートに進む →](/ja/quickstart)

717 

718 <Tip>

719 インストールオプション、手動更新、またはアンインストール手順については [高度なセットアップ](/ja/setup) を参照してください。問題が発生した場合は [インストールのトラブルシューティング](/ja/troubleshoot-install) にアクセスしてください。

720 </Tip>

721 </Tab>

722 

723 <Tab title="VS Code">

724 VS Code 拡張機能は、インラインの差分表示、@-メンション、プラン確認、会話履歴をエディター内で直接提供します。

725 

726 * [VS Code 用にインストール](vscode:extension/anthropic.claude-code)

727 * [Cursor 用にインストール](cursor:extension/anthropic.claude-code)

728 

729 または、拡張機能ビュー(Mac では `Cmd+Shift+X`、Windows/Linux では `Ctrl+Shift+X`)で「Claude Code」を検索してください。インストール後、コマンドパレット(`Cmd+Shift+P` / `Ctrl+Shift+P`)を開き、「Claude Code」と入力して、**新しいタブで開く** を選択します。

730 

731 [VS Code ではじめる →](/ja/vs-code#get-started)

732 </Tab>

733 

734 <Tab title="Desktop app">

735 IDE またはターミナルの外で Claude Code を実行するためのスタンドアロンアプリです。差分を視覚的に確認し、複数のセッションを並行実行し、定期的なタスクをスケジュール設定し、クラウドセッションを開始できます。

736 

737 ダウンロードしてインストール:

738 

739 * [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)(Intel および Apple Silicon)

740 * [Windows](https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)(x64)

741 * [Windows ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)

742 

743 インストール後、Claude を起動し、サインインして、**Code** タブをクリックしてコーディングを開始します。[有料サブスクリプション](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=overview_desktop_pricing)が必要です。

744 

745 [デスクトップアプリについて詳しく →](/ja/desktop-quickstart)

746 </Tab>

747 

748 <Tab title="Web">

749 ローカルセットアップなしでブラウザで Claude Code を実行します。長時間実行されるタスクを開始して完了を待つ、ローカルにないリポジトリで作業する、または複数のタスクを並行実行できます。デスクトップブラウザと Claude iOS アプリで利用できます。

750 

751 [claude.ai/code](https://claude.ai/code) でコーディングを開始します。

752 

753 [Web ではじめる →](/ja/web-quickstart)

754 </Tab>

755 

756 <Tab title="JetBrains">

757 IntelliJ IDEA、PyCharm、WebStorm、その他の JetBrains IDE 用のプラグインで、インタラクティブな差分表示と選択コンテキスト共有機能があります。

758 

759 JetBrains Marketplace から [Claude Code プラグイン](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) をインストールして IDE を再起動します。

760 

761 [JetBrains ではじめる →](/ja/jetbrains)

762 </Tab>

763</Tabs>

764 

765## できること

766 

767Claude Code を使用できるいくつかの方法を紹介します:

768 

769<AccordionGroup>

770 <Accordion title="先延ばしにしている作業を自動化する" icon="wand-magic-sparkles">

771 Claude Code は、1 日を費やす退屈なタスクを処理します:テストされていないコードのテスト作成、プロジェクト全体のリントエラー修正、マージコンフリクト解決、依存関係の更新、リリースノートの作成。

772 

773 ```bash theme={null}

774 claude "write tests for the auth module, run them, and fix any failures"

775 ```

776 </Accordion>

777 

778 <Accordion title="機能を構築し、バグを修正する" icon="hammer">

779 プレーンテキストで実現したいことを説明します。Claude Code はアプローチを計画し、複数のファイル間でコードを作成し、動作を検証します。

780 

781 バグの場合は、エラーメッセージを貼り付けるか、症状を説明します。Claude Code はコードベース全体で問題をトレースし、根本原因を特定し、修正を実装します。詳細な例については [一般的なワークフロー](/ja/common-workflows) を参照してください。

782 </Accordion>

783 

784 <Accordion title="コミットとプルリクエストを作成する" icon="code-branch">

785 Claude Code は git と直接連携します。変更をステージングし、コミットメッセージを作成し、ブランチを作成し、プルリクエストを開きます。

786 

787 ```bash theme={null}

788 claude "commit my changes with a descriptive message"

789 ```

790 

791 CI では、[GitHub Actions](/ja/github-actions) または [GitLab CI/CD](/ja/gitlab-ci-cd) でコードレビューと問題トリアージを自動化できます。

792 </Accordion>

793 

794 <Accordion title="MCP でツールを接続する" icon="plug">

795 [Model Context Protocol(MCP)](/ja/mcp) は、AI ツールを外部データソースに接続するためのオープンスタンダードです。MCP を使用すると、Claude Code は Google Drive のデザインドキュメントを読み取り、Jira のチケットを更新し、Slack からデータをプルするか、独自のカスタムツーリングを使用できます。

796 </Accordion>

797 

798 <Accordion title="指示、スキル、フックでカスタマイズする" icon="sliders">

799 [`CLAUDE.md`](/ja/memory) はプロジェクトルートに追加するマークダウンファイルで、Claude Code はすべてのセッションの開始時に読み取ります。コーディング標準、アーキテクチャの決定、推奨ライブラリ、レビューチェックリストを設定するために使用します。Claude は [自動メモリ](/ja/memory#auto-memory) も構築し、ビルドコマンドやデバッグの洞察などの学習内容を保存し、何も書かずにセッション間で共有します。

800 

801 [カスタムコマンド](/ja/skills) を作成して、チームが共有できる反復可能なワークフローをパッケージ化します(`/review-pr` や `/deploy-staging` など)。

802 

803 [フック](/ja/hooks) を使用すると、ファイル編集後の自動フォーマットやコミット前のリント実行など、Claude Code アクション前後にシェルコマンドを実行できます。

804 </Accordion>

805 

806 <Accordion title="エージェントチームを実行し、カスタムエージェントを構築する" icon="users">

807 [複数の Claude Code エージェント](/ja/sub-agents) を生成して、タスクの異なる部分に同時に取り組みます。リードエージェントが作業を調整し、サブタスクを割り当て、結果をマージします。

808 

809 完全にカスタムなワークフローの場合、[Agent SDK](/ja/agent-sdk/overview) を使用すると、Claude Code のツールと機能を活用した独自のエージェントを構築でき、オーケストレーション、ツールアクセス、権限を完全に制御できます。

810 </Accordion>

811 

812 <Accordion title="CLI でパイプ、スクリプト、自動化する" icon="terminal">

813 Claude Code は構成可能で Unix 哲学に従います。ログをパイプで渡し、CI で実行するか、他のツールと連鎖させます:

814 

815 ```bash theme={null}

816 # 最近のログ出力を分析する

817 tail -200 app.log | claude -p "Slack me if you see any anomalies"

818 

819 # CI で翻訳を自動化する

820 claude -p "translate new strings into French and raise a PR for review"

821 

822 # ファイル全体でバルク操作

823 git diff main --name-only | claude -p "review these changed files for security issues"

824 ```

825 

826 すべてのコマンドとフラグのセットについては [CLI リファレンス](/ja/cli-reference) を参照してください。

827 </Accordion>

828 

829 <Accordion title="定期的なタスクをスケジュール設定する" icon="clock">

830 繰り返される作業を自動化するためにスケジュールで Claude を実行します:朝の PR レビュー、夜間の CI 障害分析、週次の依存関係監査、または PR マージ後のドキュメント同期。

831 

832 * [ルーティン](/ja/routines) は Anthropic が管理するインフラストラクチャで実行されるため、コンピューターがオフの場合でも実行し続けます。API 呼び出しまたは GitHub イベントでトリガーすることもできます。Web、デスクトップアプリ、または CLI で `/schedule` を実行して作成します。

833 * [デスクトップスケジュール済みタスク](/ja/desktop-scheduled-tasks) はマシン上で実行され、ローカルファイルとツールに直接アクセスできます

834 * [`/loop`](/ja/scheduled-tasks) は CLI セッション内でプロンプトを繰り返し、クイックポーリングを行います

835 </Accordion>

836 

837 <Accordion title="どこからでも作業する" icon="globe">

838 セッションは単一のサーフェスに限定されません。コンテキストが変わるにつれて、環境間で作業を移動します:

839 

840 * デスクから離れて、電話または [リモートコントロール](/ja/remote-control) を使用した任意のブラウザから作業を続けます

841 * [Dispatch](/ja/desktop#sessions-from-dispatch) にメッセージを送信して、電話からタスクを送信し、作成されたデスクトップセッションを開きます

842 * [Web](/ja/claude-code-on-the-web) または [iOS アプリ](https://apps.apple.com/app/claude-by-anthropic/id6473753684) で長時間実行されるタスクを開始し、`claude --teleport` でターミナルにプルします

843 * ターミナルセッションを [デスクトップアプリ](/ja/desktop) に `/desktop` で渡して、視覚的な差分確認を行います

844 * チームチャットからタスクをルーティング:[Slack](/ja/slack) で `@Claude` にメンションしてバグレポートを送信し、プルリクエストを取得します

845 </Accordion>

846</AccordionGroup>

847 

848## Claude Code をどこでも使用する

849 

850各サーフェスは同じ基盤となる Claude Code エンジンに接続するため、CLAUDE.md ファイル、設定、MCP サーバーはすべてのサーフェスで機能します。

851 

852上記の [Terminal](/ja/quickstart)、[VS Code](/ja/vs-code)、[JetBrains](/ja/jetbrains)、[Desktop](/ja/desktop)、[Web](/ja/claude-code-on-the-web) 環境を超えて、Claude Code は CI/CD、チャット、ブラウザワークフローと統合します:

853 

854| 実現したいこと | 最適なオプション |

855| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |

856| ローカルセッションを電話または別のデバイスから続行する | [リモートコントロール](/ja/remote-control) |

857| Telegram、Discord、iMessage、または独自の webhook からセッションにイベントをプッシュする | [チャネル](/ja/channels) |

858| ローカルでタスクを開始し、モバイルで続行する | [Web](/ja/claude-code-on-the-web) または [Claude iOS アプリ](https://apps.apple.com/app/claude-by-anthropic/id6473753684) |

859| 定期的なスケジュールで Claude を実行する | [ルーティン](/ja/routines) または [デスクトップスケジュール済みタスク](/ja/desktop-scheduled-tasks) |

860| PR レビューと問題トリアージを自動化する | [GitHub Actions](/ja/github-actions) または [GitLab CI/CD](/ja/gitlab-ci-cd) |

861| すべての PR で自動コードレビューを取得する | [GitHub Code Review](/ja/code-review) |

862| Slack からプルリクエストへバグレポートをルーティングする | [Slack](/ja/slack) |

863| ライブ Web アプリケーションをデバッグする | [Chrome](/ja/chrome) |

864| 独自のワークフロー用のカスタムエージェントを構築する | [Agent SDK](/ja/agent-sdk/overview) |

865 

866## 次のステップ

867 

868Claude Code をインストールしたら、これらのガイドでさらに詳しく学べます。

869 

870* [クイックスタート](/ja/quickstart):コードベースの探索から修正のコミットまで、最初の実際のタスクを実行します

871* [指示とメモリを保存する](/ja/memory):CLAUDE.md ファイルと自動メモリで Claude に永続的な指示を与えます

872* [一般的なワークフロー](/ja/common-workflows) と [ベストプラクティス](/ja/best-practices):Claude Code から最大限の価値を得るためのパターン

873* [設定](/ja/settings):ワークフローに合わせて Claude Code をカスタマイズします

874* [トラブルシューティング](/ja/troubleshooting):一般的な問題の解決策

875* [code.claude.com](https://code.claude.com/):デモ、価格設定、製品の詳細

permission-modes.md +290 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# パーミッションモードを選択する

6 

7> Claude がファイルを編集またはコマンドを実行する前に確認するかどうかを制御します。CLI で Shift+Tab でモードをサイクルするか、VS Code、Desktop、claude.ai のモードセレクターを使用します。

8 

9Claude がファイルを編集、シェルコマンドを実行、またはネットワークリクエストを行いたい場合、一時停止してアクションを承認するよう求めます。パーミッションモードは、その一時停止がどのくらいの頻度で発生するかを制御します。選択するモードはセッションのフローを形作ります。デフォルトモードではアクションが来るたびにレビューし、より緩いモードでは Claude が長い中断のない作業を行い、完了時に報告できます。機密作業には監視を強化し、信頼できる方向性には中断を減らしてください。

10 

11## 利用可能なモード

12 

13各モードは利便性と監視のバランスが異なります。以下の表は、各モードでパーミッションプロンプトなしで Claude が実行できることを示しています。

14 

15| モード | 確認なしで実行されるもの | 最適な用途 |

16| :------------------------------------------------------------------ | :--------------------------------------------------------- | :---------------- |

17| `default` | 読み取りのみ | 開始、機密作業 |

18| [`acceptEdits`](#auto-approve-file-edits-with-acceptedits-mode) | 読み取り、ファイル編集、一般的なファイルシステムコマンド(`mkdir`、`touch`、`mv`、`cp` など) | レビュー中のコードの反復処理 |

19| [`plan`](#analyze-before-you-edit-with-plan-mode) | 読み取りのみ | コードベースの探索、変更前 |

20| [`auto`](#eliminate-prompts-with-auto-mode) | すべて、背景安全チェック付き | 長時間タスク、プロンプト疲労の軽減 |

21| [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode) | 事前承認済みツールのみ | ロックダウン CI とスクリプト |

22| [`bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) | すべて | 隔離されたコンテナと VM のみ |

23 

24`bypassPermissions` を除くすべてのモードで、[保護されたパス](#protected-paths)への書き込みは自動承認されることはなく、リポジトリ状態と Claude 独自の設定を偶発的な破損から保護します。

25 

26モードはベースラインを設定します。[パーミッションルール](/ja/permissions#manage-permissions)を上に層状にして、`bypassPermissions` を除くすべてのモードで特定のツールを事前承認またはブロックします。`bypassPermissions` はパーミッション層全体をスキップします。

27 

28## パーミッションモードを切り替える

29 

30セッション中、起動時、または永続的なデフォルトとしてモードを切り替えることができます。モードは Claude にチャットで尋ねるのではなく、これらのコントロールを通じて設定されます。以下からインターフェースを選択して、変更方法を確認してください。

31 

32<Tabs>

33 <Tab title="CLI">

34 **セッション中**:`Shift+Tab` を押して `default` → `acceptEdits` → `plan` をサイクルします。現在のモードはステータスバーに表示されます。すべてのモードがデフォルトサイクルに含まれるわけではありません。

35 

36 * `auto`:アカウントが [auto モード要件](#eliminate-prompts-with-auto-mode)を満たす場合に表示されます。auto へのサイクルはオプトインプロンプトを表示し、それを受け入れるか、**いいえ、今後は聞かないでください** を選択して auto をサイクルから削除するまで続きます

37 * `bypassPermissions`:`--permission-mode bypassPermissions`、`--dangerously-skip-permissions`、または `--allow-dangerously-skip-permissions` で開始した後に表示されます。`--allow-` バリアントはモードをサイクルに追加しますが、アクティブ化しません

38 * `dontAsk`:サイクルに表示されることはありません。`--permission-mode dontAsk` で設定します

39 

40 有効なオプションモードは `plan` の後にスロットインし、`bypassPermissions` が最初で `auto` が最後です。両方が有効な場合、`bypassPermissions` から `auto` へのサイクルを通過します。

41 

42 **起動時**:モードをフラグとして渡します。

43 

44 ```bash theme={null}

45 claude --permission-mode plan

46 ```

47 

48 **デフォルトとして**:[設定](/ja/settings#settings-files)で `defaultMode` を設定します。

49 

50 ```json theme={null}

51 {

52 "permissions": {

53 "defaultMode": "acceptEdits"

54 }

55 }

56 ```

57 

58 同じ `--permission-mode` フラグは [非対話的実行](/ja/headless)用に `-p` で機能します。

59 </Tab>

60 

61 <Tab title="VS Code">

62 **セッション中**:プロンプトボックスの下部にあるモード指示器をクリックします。

63 

64 **デフォルトとして**:VS Code 設定で `claudeCode.initialPermissionMode` を設定するか、Claude Code 拡張機能設定パネルを使用します。

65 

66 モード指示器は以下のラベルを表示し、各ラベルが適用するモードにマップされます。

67 

68 | UI ラベル | モード |

69 | :----------- | :------------------ |

70 | 編集前に確認 | `default` |

71 | 自動編集 | `acceptEdits` |

72 | 計画モード | `plan` |

73 | 自動モード | `auto` |

74 | パーミッションをバイパス | `bypassPermissions` |

75 

76 自動モードは拡張機能設定で **Allow dangerously skip permissions** を有効にした後、モード指示器に表示されますが、アカウントが [auto モードセクション](#eliminate-prompts-with-auto-mode)にリストされているすべての要件を満たすまで利用不可のままです。`claudeCode.initialPermissionMode` 設定は `auto` を受け入れません。デフォルトで自動モードで開始するには、代わりに Claude Code [`settings.json`](/ja/settings#settings-files) で `defaultMode` を設定します。

77 

78 パーミッションのバイパスもモード指示器に表示される前に **Allow dangerously skip permissions** トグルが必要です。

79 

80 拡張機能固有の詳細については、[VS Code ガイド](/ja/vs-code)を参照してください。

81 </Tab>

82 

83 <Tab title="JetBrains">

84 JetBrains プラグインは IDE ターミナルで Claude Code を実行するため、モードの切り替えは CLI と同じように機能します。`Shift+Tab` を押してサイクルするか、起動時に `--permission-mode` を渡します。

85 </Tab>

86 

87 <Tab title="Desktop">

88 送信ボタンの横にあるモードセレクターを使用します。自動とパーミッションのバイパスは Desktop 設定で有効にした後にのみ表示されます。[Desktop ガイド](/ja/desktop#choose-a-permission-mode)を参照してください。

89 </Tab>

90 

91 <Tab title="Web and mobile">

92 [claude.ai/code](https://claude.ai/code) のプロンプトボックスの横またはモバイルアプリのモードドロップダウンを使用します。パーミッションプロンプトは承認のために claude.ai に表示されます。どのモードが表示されるかはセッションが実行される場所によります。

93 

94 * **[Claude Code on the web](/ja/claude-code-on-the-web) のクラウドセッション**:自動編集受け入れと計画モード。パーミッション確認、自動、パーミッションのバイパスは利用できません。

95 * **ローカルマシンの [Remote Control](/ja/remote-control) セッション**:パーミッション確認、自動編集受け入れ、計画モード。自動とパーミッションのバイパスは利用できません。

96 

97 Remote Control の場合、ホストを起動するときに開始モードを設定することもできます。

98 

99 ```bash theme={null}

100 claude remote-control --permission-mode acceptEdits

101 ```

102 </Tab>

103</Tabs>

104 

105## acceptEdits モードでファイル編集を自動承認する

106 

107`acceptEdits` モードでは Claude はプロンプトなしに作業ディレクトリ内のファイルを作成および編集できます。このモードがアクティブな間、ステータスバーは `⏵⏵ accept edits on` を表示します。

108 

109ファイル編集に加えて、`acceptEdits` モードは一般的なファイルシステム Bash コマンドを自動承認します。`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp`、`sed`。これらのコマンドは `LANG=C` または `NO_COLOR=1` のような安全な環境変数、または `timeout`、`nice`、`nohup` のようなプロセスラッパーでプレフィックスされた場合にも自動承認されます。ファイル編集と同様に、自動承認は作業ディレクトリまたは `additionalDirectories` 内のパスにのみ適用されます。そのスコープ外のパス、[保護されたパス](#protected-paths)への書き込み、その他すべての Bash コマンドはまだプロンプトが表示されます。

110 

111[PowerShell ツール](/ja/tools-reference#powershell-tool)が有効な場合、`acceptEdits` モードはスコープ内のパスに対して `Set-Content`、`Add-Content`、`Clear-Content`、`Remove-Item` も自動承認し、それらの一般的なエイリアスも承認します。同じスコープと保護されたパスのルールが適用されます。

112 

113事実後にエディターまたは `git diff` 経由で変更をレビューしたい場合、各編集をインラインで承認するのではなく `acceptEdits` を使用します。デフォルトモードから `Shift+Tab` を 1 回押して入るか、直接開始します。

114 

115```bash theme={null}

116claude --permission-mode acceptEdits

117```

118 

119## 計画モードで編集前に分析する

120 

121計画モードは Claude に変更を加えずに調査と提案を行うよう指示します。Claude はファイルを読み、シェルコマンドを実行して探索し、計画を書きますが、ソースを編集しません。パーミッションプロンプトはデフォルトモードと同じように適用されます。

122 

123`Shift+Tab` を押すか、単一のプロンプトに `/plan` をプレフィックスして計画モードに入ります。CLI から計画モードで開始することもできます。

124 

125```bash theme={null}

126claude --permission-mode plan

127```

128 

129計画モードを終了するには `Shift+Tab` を再度押し、計画を承認しません。

130 

131計画の準備ができたら、Claude はそれを提示し、どのように進めるかを尋ねます。そのプロンプトから以下を実行できます。

132 

133* 承認して自動モードで開始

134* 承認して編集を受け入れる

135* 承認して各編集を手動でレビュー

136* フィードバック付きで計画を続ける

137* [Ultraplan](/ja/ultraplan) でブラウザベースのレビュー用に改善

138 

139各承認オプションは計画コンテキストを最初にクリアするオプションも提供します。

140 

141## 自動モードでプロンプトを削除する

142 

143<Note>

144 自動モードには Claude Code v2.1.83 以降が必要です。

145</Note>

146 

147自動モードでは Claude はパーミッションプロンプトなしで実行できます。別の分類器モデルはアクション実行前にアクションをレビューし、リクエストを超えてエスカレートするもの、認識されないインフラストラクチャをターゲットにするもの、または Claude が読んだ敵対的なコンテンツによって駆動されているように見えるものをブロックします。

148 

149<Warning>

150 自動モードはリサーチプレビューです。プロンプトを削除しますが、安全性を保証しません。一般的な方向を信頼するタスクに使用し、機密操作のレビューの代わりとしては使用しないでください。

151</Warning>

152 

153自動モードはアカウントがこれらすべての要件を満たす場合にのみ利用可能です。

154 

155* **プラン**:Max、Team、Enterprise、または API。Pro では利用できません。

156* **管理者**:Team と Enterprise では、管理者がユーザーがオンにできるようにする前に [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code) で有効にする必要があります。管理者は [管理設定](/ja/permissions#managed-settings) で `permissions.disableAutoMode` を `"disable"` に設定することでロックオフすることもできます。

157* **モデル**:Team、Enterprise、API プランで Claude Sonnet 4.6、Opus 4.6、または Opus 4.7。Max プランで Claude Opus 4.7 のみ。Haiku および claude-3 モデルを含む他のモデルはサポートされていません。

158* **プロバイダー**:Anthropic API のみ。Bedrock、Vertex、Foundry では利用できません。

159 

160Claude Code が自動モードを利用不可と報告する場合、これらの要件のいずれかが満たされていません。これは一時的な停止ではありません。モデルに名前を付けて自動モードが「アクションの安全性を判断できない」と言う別のメッセージは一時的な分類器停止です。[エラーリファレンス](/ja/errors#auto-mode-cannot-determine-the-safety-of-an-action)を参照してください。

161 

162### 分類器がデフォルトでブロックするもの

163 

164分類器は作業ディレクトリとリポジトリの設定されたリモートを信頼します。その他すべては [信頼できるインフラストラクチャを設定](/ja/auto-mode-config)するまで外部として扱われます。

165 

166**デフォルトでブロック**:

167 

168* `curl | bash` のようなコードのダウンロードと実行

169* 機密データを外部エンドポイントに送信

170* 本番環境へのデプロイとマイグレーション

171* クラウドストレージでの大量削除

172* IAM またはリポジトリパーミッションの付与

173* 共有インフラストラクチャの変更

174* セッション前に存在していたファイルを不可逆的に破壊

175* フォースプッシュまたは `main` への直接プッシュ

176 

177**デフォルトで許可**:

178 

179* 作業ディレクトリ内のローカルファイル操作

180* ロックファイルまたはマニフェストで宣言されている依存関係のインストール

181* `.env` を読み取り、認証情報を一致する API に送信

182* 読み取り専用 HTTP リクエスト

183* 開始したブランチまたは Claude が作成したブランチへのプッシュ

184 

185サンドボックスネットワークアクセスリクエストはデフォルトで許可されるのではなく、分類器を通じてルーティングされます。`claude auto-mode defaults` を実行して完全なルールリストを確認してください。日常的なアクションがブロックされている場合、管理者は `autoMode.environment` 設定を通じて信頼できるリポジトリ、バケット、サービスを追加できます。[自動モードを設定](/ja/auto-mode-config)を参照してください。

186 

187### 会話で述べる境界

188 

189分類器は会話で述べる境界をブロック信号として扱います。Claude に「プッシュしないで」または「デプロイ前にレビューを待って」と言う場合、分類器はデフォルトルールが許可する場合でも一致するアクションをブロックします。境界は後のメッセージで解除するまで有効です。Claude 独自の判断が条件が満たされたことは解除しません。

190 

191境界はルールとして保存されません。分類器はチェックのたびにトランスクリプトから再読み込みするため、[コンテキストコンパクション](/ja/costs#reduce-token-usage)が述べたメッセージを削除する場合、境界は失われる可能性があります。ハード保証の場合、代わりに [deny ルール](/ja/permissions#permission-rule-syntax)を追加します。

192 

193### 自動モードがフォールバックする場合

194 

195拒否されたアクションはそれぞれ通知を表示し、`/permissions` の Recently denied タブに表示されます。そこで `r` を押して手動承認で再試行できます。

196 

197分類器がアクション 3 回連続でブロックするか、合計 20 回ブロックする場合、自動モードは一時停止し、Claude Code はプロンプトを再開します。プロンプトされたアクションを承認すると自動モードが再開されます。これらのしきい値は設定不可です。許可されたアクションは連続カウンターをリセットし、合計カウンターはセッション中に保持され、独自の制限がフォールバックをトリガーする場合にのみリセットされます。

198 

199[非対話的モード](/ja/headless)で `-p` フラグを使用する場合、プロンプトするユーザーがいないため、繰り返されるブロックはセッションを中止します。

200 

201繰り返されるブロックは通常、分類器がインフラストラクチャについてのコンテキストが不足していることを意味します。`/feedback` を使用して誤検知を報告するか、管理者に [信頼できるインフラストラクチャを設定](/ja/auto-mode-config)するよう依頼してください。

202 

203<AccordionGroup>

204 <Accordion title="分類器がアクションを評価する方法">

205 各アクションは固定の決定順序を通過します。最初に一致するステップが勝ちます。

206 

207 1. [allow または deny ルール](/ja/permissions#manage-permissions)に一致するアクションは即座に解決されます

208 2. 読み取り専用アクションと作業ディレクトリ内のファイル編集は自動承認されます。[保護されたパス](#protected-paths)への書き込みを除く

209 3. その他すべては分類器に送られます

210 4. 分類器がブロックする場合、Claude は理由を受け取り、別のアプローチを試みます

211 

212 自動モードに入ると、任意のコード実行を許可する広いルールが削除されます。

213 

214 * ブランケット `Bash(*)` または `PowerShell(*)`

215 * `Bash(python*)` のようなワイルドカードインタープリター

216 * パッケージマネージャー実行コマンド

217 * `Agent` allow ルール

218 

219 `Bash(npm test)` のような狭いルールは引き継がれます。削除されたルールは自動モードを終了するときに復元されます。

220 

221 分類器はユーザーメッセージ、ツール呼び出し、CLAUDE.md コンテンツを見ます。ツール結果は削除されるため、ファイルまたは Web ページの敵対的なコンテンツはそれを直接操作することはできません。サーバー側プローブは受信ツール結果をスキャンし、Claude がそれを読む前に疑わしいコンテンツにフラグを立てます。これらのレイヤーがどのように連携するかについての詳細については、[自動モードのお知らせ](https://claude.com/blog/auto-mode)および [エンジニアリング深掘り](https://www.anthropic.com/engineering/claude-code-auto-mode)を参照してください。

222 </Accordion>

223 

224 <Accordion title="自動モードがサブエージェントを処理する方法">

225 分類器は [サブエージェント](/ja/sub-agents)の作業を 3 つのポイントでチェックします。

226 

227 1. サブエージェント開始前に、委譲されたタスク説明が評価されるため、危険に見えるタスクは生成時にブロックされます。

228 2. サブエージェント実行中、その各アクションは親セッションと同じルールで分類器を通過し、サブエージェントのフロントマターの任意の `permissionMode` は無視されます。

229 3. サブエージェント完了時、分類器はその完全なアクション履歴をレビューします。リターンチェックが懸念事項にフラグを立てた場合、セキュリティ警告がサブエージェントの結果の前に付加されます。

230 </Accordion>

231 

232 <Accordion title="コストとレイテンシ">

233 分類器は `/model` 選択から独立したサーバー設定モデルで実行されるため、モデルの切り替えは分類器の可用性を変更しません。分類器呼び出しはトークン使用量にカウントされます。各チェックはトランスクリプトの一部と保留中のアクションを送信し、実行前にラウンドトリップを追加します。保護されたパス外の読み取りと作業ディレクトリ編集は分類器をスキップするため、オーバーヘッドは主にシェルコマンドとネットワーク操作から発生します。

234 </Accordion>

235</AccordionGroup>

236 

237## dontAsk モードで事前承認済みツールのみを許可する

238 

239`dontAsk` モードはプロンプトが表示されるすべてのツール呼び出しを自動的に拒否します。`permissions.allow` ルールと [読み取り専用 Bash コマンド](/ja/permissions#read-only-commands)に一致するアクションのみが実行できます。明示的な `ask` ルールはプロンプトするのではなく拒否されます。これにより、モードは CI パイプラインまたは Claude が実行を許可されているものを事前に定義する制限環境で完全に非対話的になります。

240 

241フラグで起動時に設定します。

242 

243```bash theme={null}

244claude --permission-mode dontAsk

245```

246 

247## bypassPermissions モードですべてのチェックをスキップする

248 

249`bypassPermissions` モードはパーミッションプロンプトと安全チェックを無効にするため、ツール呼び出しは即座に実行されます。v2.1.126 以降、これには[保護されたパス](#protected-paths)への書き込みが含まれます。これより前のバージョンではまだプロンプトが表示されていました。ファイルシステムのルートまたはホームディレクトリを対象とした削除(`rm -rf /` や `rm -rf ~` など)は、モデルエラーに対する回路遮断器として機能するため、引き続きプロンプトが表示されます。このモードは、Claude Code がホストシステムに損害を与えることができないコンテナ、VM、またはインターネットアクセスのない dev container のような隔離環境でのみ使用してください。

250 

251有効にするフラグの 1 つで開始したセッションから `bypassPermissions` に入ることはできません。有効にするために再起動してください。

252 

253```bash theme={null}

254claude --permission-mode bypassPermissions

255```

256 

257`--dangerously-skip-permissions` フラグは同等です。

258 

259<Warning>

260 `bypassPermissions` はプロンプトインジェクションまたは意図しないアクションに対する保護を提供しません。プロンプトなしで背景安全チェックの場合、代わりに[自動モード](#eliminate-prompts-with-auto-mode)を使用してください。管理者は[管理設定](/ja/permissions#managed-settings)で `permissions.disableBypassPermissionsMode` を `"disable"` に設定することでこのモードをブロックできます。

261</Warning>

262 

263## 保護されたパス

264 

265パスの小さなセットへの書き込みは、`bypassPermissions` を除くすべてのモードで自動承認されることはありません。これはリポジトリ状態と Claude 独自の設定の偶発的な破損を防ぎます。`default`、`acceptEdits`、`plan` では、これらの書き込みはプロンプトが表示されます。`auto` では分類器にルーティングされます。`dontAsk` では拒否されます。`bypassPermissions` では許可されます。

266 

267保護されたディレクトリ:

268 

269* `.git`

270* `.vscode`

271* `.idea`

272* `.husky`

273* `.claude`。ただし `.claude/commands`、`.claude/agents`、`.claude/skills`、`.claude/worktrees` は除く。Claude はこれらで定期的にコンテンツを作成します

274 

275保護されたファイル:

276 

277* `.gitconfig`、`.gitmodules`

278* `.bashrc`、`.bash_profile`、`.zshrc`、`.zprofile`、`.profile`

279* `.ripgreprc`

280* `.mcp.json`、`.claude.json`

281 

282## 関連項目

283 

284* [Permissions](/ja/permissions):allow、ask、deny ルール。管理ポリシー

285* [Configure auto mode](/ja/auto-mode-config):分類器に組織が信頼するインフラストラクチャを伝える

286* [Hooks](/ja/hooks):`PreToolUse` および `PermissionRequest` フック経由のカスタムパーミッションロジック

287* [Ultraplan](/ja/ultraplan):ブラウザベースのレビュー付き Claude Code on the web セッションで計画モードを実行

288* [Security](/ja/security):セキュリティ保護とベストプラクティス

289* [Sandboxing](/ja/sandboxing):Bash コマンドのファイルシステムとネットワーク隔離

290* [Non-interactive mode](/ja/headless):`-p` フラグで Claude Code を実行

permissions.md +358 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 権限を設定する

6 

7> きめ細かい権限ルール、モード、管理ポリシーを使用して、Claude Code がアクセスして実行できる内容を制御します。

8 

9Claude Code は、エージェントが実行できることと実行できないことを正確に指定できるようにするため、きめ細かい権限をサポートしています。権限設定はバージョン管理にチェックインでき、組織内のすべての開発者に配布できるほか、個々の開発者がカスタマイズできます。

10 

11## 権限システム

12 

13Claude Code は、パワーと安全性のバランスを取るために、段階的な権限システムを使用しています。

14 

15| ツールタイプ | 例 | 承認が必要 | 「はい、今後は聞かない」の動作 |

16| :-------- | :-------------- | :---- | :---------------------- |

17| 読み取り専用 | ファイル読み取り、Grep | いいえ | N/A |

18| Bash コマンド | シェル実行 | はい | プロジェクトディレクトリとコマンドごとに永続的 |

19| ファイル変更 | Edit/Write ファイル | はい | セッション終了まで |

20 

21## 権限を管理する

22 

23`/permissions` を使用して、Claude Code のツール権限を表示および管理できます。この UI は、すべての権限ルールと、それらが取得される settings.json ファイルをリストします。

24 

25* **Allow** ルールは、Claude Code が手動承認なしで指定されたツールを使用できるようにします。

26* **Ask** ルールは、Claude Code が指定されたツールを使用しようとするたびに確認を促します。

27* **Deny** ルールは、Claude Code が指定されたツールを使用することを防止します。

28 

29ルールは順序で評価されます。**deny -> ask -> allow**。最初にマッチしたルールが優先されるため、deny ルールは常に優先されます。

30 

31## 権限モード

32 

33Claude Code は、ツールの承認方法を制御するいくつかの権限モードをサポートしています。[権限モード](/ja/permission-modes)を参照して、各モードをいつ使用するかを確認してください。[設定ファイル](/ja/settings#settings-files)で `defaultMode` を設定します。

34 

35| モード | 説明 |

36| :------------------ | :------------------------------------------------------------------------------------------------------------ |

37| `default` | 標準動作。各ツールの最初の使用時に権限を促します |

38| `acceptEdits` | ファイル編集と一般的なファイルシステムコマンド(`mkdir`、`touch`、`mv`、`cp` など)を、作業ディレクトリまたは `additionalDirectories` 内のパスに対して自動的に受け入れます |

39| `plan` | Plan Mode。Claude はファイルを分析できますが、ファイルを変更したりコマンドを実行したりすることはできません |

40| `auto` | バックグラウンド安全チェック付きでツール呼び出しを自動承認し、アクションがリクエストと一致することを確認します。現在は研究プレビューです |

41| `dontAsk` | `/permissions` または `permissions.allow` ルールで事前に承認されていない限り、ツールを自動的に拒否します |

42| `bypassPermissions` | ファイルシステムルートまたはホームディレクトリの削除(`rm -rf /` など)は回路遮断器として引き続きプロンプトを表示しますが、その他すべての権限プロンプトをスキップします |

43 

44<Warning>

45 `bypassPermissions` モードはすべての権限プロンプトをスキップします。`.git`、`.claude`、`.vscode`、`.idea`、`.husky` への書き込みを含みます。ファイルシステムルートまたはホームディレクトリを対象とした削除(`rm -rf /` や `rm -rf ~` など)は、モデルエラーに対する回路遮断器として引き続きプロンプトを表示します。このモードは、Claude Code が損害を引き起こせないコンテナや VM などの隔離された環境でのみ使用してください。管理者は、[管理設定](#managed-settings)で `permissions.disableBypassPermissionsMode` を `"disable"` に設定することで、このモードを防止できます。

46</Warning>

47 

48`bypassPermissions` または `auto` モードが使用されるのを防ぐには、任意の[設定ファイル](/ja/settings#settings-files)で `permissions.disableBypassPermissionsMode` または `permissions.disableAutoMode` を `"disable"` に設定します。これらは、オーバーライドできない[管理設定](#managed-settings)で最も有用です。

49 

50## 権限ルール構文

51 

52権限ルールは、`Tool` または `Tool(specifier)` の形式に従います。

53 

54### ツールのすべての使用をマッチさせる

55 

56ツールのすべての使用をマッチさせるには、括弧なしでツール名を使用します。

57 

58| ルール | 効果 |

59| :--------- | :----------------------- |

60| `Bash` | すべての Bash コマンドをマッチさせます |

61| `WebFetch` | すべてのウェブフェッチリクエストをマッチさせます |

62| `Read` | すべてのファイル読み取りをマッチさせます |

63 

64`Bash(*)` は `Bash` と同等で、すべての Bash コマンドをマッチさせます。

65 

66### 細かい制御のためにスペシファイアを使用する

67 

68括弧内にスペシファイアを追加して、特定のツール使用をマッチさせます。

69 

70| ルール | 効果 |

71| :----------------------------- | :------------------------------------ |

72| `Bash(npm run build)` | 正確なコマンド `npm run build` をマッチさせます |

73| `Read(./.env)` | 現在のディレクトリの `.env` ファイルを読み取ることをマッチさせます |

74| `WebFetch(domain:example.com)` | example.com へのフェッチリクエストをマッチさせます |

75 

76### ワイルドカードパターン

77 

78Bash ルールは `*` を使用したグロブパターンをサポートしています。ワイルドカードはコマンド内の任意の位置に表示できます。この設定により、npm および git commit コマンドが許可され、git push がブロックされます。

79 

80```json theme={null}

81{

82 "permissions": {

83 "allow": [

84 "Bash(npm run *)",

85 "Bash(git commit *)",

86 "Bash(git * main)",

87 "Bash(* --version)",

88 "Bash(* --help *)"

89 ],

90 "deny": [

91 "Bash(git push *)"

92 ]

93 }

94}

95```

96 

97`*` の前のスペースは重要です。`Bash(ls *)` は `ls -la` にマッチしますが `lsof` にはマッチしません。一方、`Bash(ls*)` は両方にマッチします。`:*` サフィックスは末尾のワイルドカードを記述する同等の方法であるため、`Bash(ls:*)` は `Bash(ls *)` と同じコマンドをマッチさせます。

98 

99権限ダイアログは、コマンドプレフィックスに対して「はい、今後は聞かない」を選択すると、スペース区切り形式を書き込みます。`:*` 形式はパターンの末尾でのみ認識されます。`Bash(git:* push)` のようなパターンでは、コロンはリテラル文字として扱われ、git コマンドにはマッチしません。

100 

101## ツール固有の権限ルール

102 

103### Bash

104 

105Bash 権限ルールは `*` を使用したワイルドカードマッチングをサポートしています。ワイルドカードは、開始、中央、終了を含むコマンド内の任意の位置に表示できます。

106 

107* `Bash(npm run build)` は正確な Bash コマンド `npm run build` をマッチさせます

108* `Bash(npm run test *)` は `npm run test` で始まる Bash コマンドをマッチさせます

109* `Bash(npm *)` は `npm ` で始まるコマンドをマッチさせます

110* `Bash(* install)` は ` install` で終わるコマンドをマッチさせます

111* `Bash(git * main)` は `git checkout main` や `git log --oneline main` などのコマンドをマッチさせます

112 

113単一の `*` は、スペースを含む任意の文字シーケンスをマッチさせるため、1 つのワイルドカードで複数の引数にまたがることができます。`Bash(git *)` は `git log --oneline --all` をマッチさせ、`Bash(git * main)` は `git push origin main` および `git merge main` をマッチさせます。

114 

115`*` が末尾にスペース付きで表示される場合(`Bash(ls *)` など)、単語境界を強制し、プレフィックスの後にスペースまたは文字列の終わりが続く必要があります。たとえば、`Bash(ls *)` は `ls -la` にマッチしますが `lsof` にはマッチしません。対照的に、スペースなしの `Bash(ls*)` は、単語境界制約がないため、`ls -la` と `lsof` の両方にマッチします。

116 

117#### 複合コマンド

118 

119<Tip>

120 Claude Code はシェルオペレータを認識しているため、`Bash(safe-cmd *)` のようなルールは、`safe-cmd && other-cmd` コマンドを実行する権限を与えません。認識されるコマンド区切り文字は `&&`、`||`、`;`、`|`、`|&`、`&`、および改行です。ルールは各サブコマンドを独立して個別にマッチさせる必要があります。

121</Tip>

122 

123「はい、今後は聞かない」で複合コマンドを承認すると、Claude Code は複合文字列全体の単一ルールではなく、承認が必要な各サブコマンドの個別ルールを保存します。たとえば、`git status && npm test` を承認すると、`npm test` のルールが保存されるため、将来の `npm test` 呼び出しは `&&` の前に何があるかに関係なく認識されます。`cd` をサブディレクトリに移動するようなサブコマンドは、そのパスの独自の Read ルールを生成します。単一の複合コマンドに対して最大 5 つのルールが保存される場合があります。

124 

125#### プロセスラッパー

126 

127Bash ルールをマッチさせる前に、Claude Code は固定されたプロセスラッパーセットをストリップするため、`Bash(npm test *)` のようなルールは `timeout 30 npm test` もマッチさせます。認識されるラッパーは `timeout`、`time`、`nice`、`nohup`、`stdbuf` です。

128 

129ベア `xargs` もストリップされるため、`Bash(grep *)` は `xargs grep pattern` をマッチさせます。ストリップは `xargs` にフラグがない場合にのみ適用されます。`xargs -n1 grep pattern` のような呼び出しは `xargs` コマンドとしてマッチされるため、内部コマンド用に記述されたルールはそれをカバーしません。

130 

131このラッパーリストは組み込まれており、設定不可能です。`direnv exec`、`devbox run`、`mise exec`、`npx`、`docker exec` などの開発環境ランナーはリストに含まれていません。これらのツールは引数をコマンドとして実行するため、`Bash(devbox run *)` のようなルールは `run` の後に続くものをマッチさせます。これには `devbox run rm -rf .` が含まれます。環境ランナー内での作業を承認するには、ランナーと内部コマンドの両方を含む特定のルールを記述します。例えば `Bash(devbox run npm test)`。許可する内部コマンドごとに 1 つのルールを追加します。

132 

133`watch`、`setsid`、`ionice`、`flock` などの Exec ラッパーは常にプロンプトを表示し、`Bash(watch *)` のようなプレフィックスルールで自動承認することはできません。同じことが `-exec` または `-delete` を使用する `find` にも適用されます。`Bash(find *)` ルールはこれらの形式をカバーしません。特定の呼び出しを承認するには、完全なコマンド文字列の正確一致ルールを記述します。

134 

135#### 読み取り専用コマンド

136 

137Claude Code は、Bash コマンドの組み込みセットを読み取り専用として認識し、すべてのモードで権限プロンプトなしで実行します。これには `ls`、`cat`、`head`、`tail`、`grep`、`find`、`wc`、`diff`、`stat`、`du`、`cd`、および `git` の読み取り専用形式が含まれます。セットは設定不可能です。これらのコマンドの 1 つにプロンプトを要求するには、それに対して `ask` または `deny` ルールを追加します。

138 

139すべてのフラグが読み取り専用であるコマンドに対しては、引用符なしのグロブパターンが許可されるため、`ls *.ts` および `wc -l src/*.py` はプロンプトなしで実行されます。`find`、`sort`、`sed`、`git` などの書き込み可能または実行可能なフラグを持つコマンドは、グロブが `-delete` のようなフラグに展開される可能性があるため、引用符なしのグロブが存在する場合でもプロンプトを表示します。

140 

141作業ディレクトリまたは[追加ディレクトリ](#working-directories)内のパスへの `cd` も読み取り専用です。`cd packages/api && ls` のような複合コマンドは、各部分が独立して適格である場合、プロンプトなしで実行されます。複合コマンドで `cd` と `git` を組み合わせると、ターゲットディレクトリに関係なく常にプロンプトが表示されます。

142 

143<Warning>

144 コマンド引数を制約しようとする Bash 権限パターンは脆弱です。たとえば、`Bash(curl http://github.com/ *)` は curl を GitHub URL に制限することを意図していますが、次のようなバリエーションにはマッチしません。

145 

146 * URL の前のオプション:`curl -X GET http://github.com/...`

147 * 異なるプロトコル:`curl https://github.com/...`

148 * リダイレクト:`curl -L http://bit.ly/xyz`(github にリダイレクト)

149 * 変数:`URL=http://github.com && curl $URL`

150 * 余分なスペース:`curl http://github.com`

151 

152 より信頼性の高い URL フィルタリングについては、以下を検討してください。

153 

154 * **Bash ネットワークツールを制限する**:deny ルールを使用して `curl`、`wget` などのコマンドをブロックし、許可されたドメインに対して `WebFetch(domain:github.com)` 権限で WebFetch ツールを使用します

155 * **PreToolUse フックを使用する**:Bash コマンドの URL を検証し、許可されていないドメインをブロックするフックを実装します

156 * CLAUDE.md を通じて Claude Code に許可された curl パターンについて指示します

157 

158 WebFetch のみを使用しても、ネットワークアクセスは防止されません。Bash が許可されている場合、Claude は `curl`、`wget` または他のツールを使用して任意の URL に到達できます。

159</Warning>

160 

161### PowerShell

162 

163PowerShell 権限ルールは Bash ルールと同じ形式を使用しています。`*` を使用したワイルドカードは任意の位置でマッチし、`:*` サフィックスは末尾の ` *` と同等であり、ベア `PowerShell` または `PowerShell(*)` はすべてのコマンドをマッチさせます。この設定により、`Get-ChildItem` および `git commit` コマンドが許可され、`Remove-Item` がブロックされます。

164 

165```json theme={null}

166{

167 "permissions": {

168 "allow": [

169 "PowerShell(Get-ChildItem *)",

170 "PowerShell(git commit *)"

171 ],

172 "deny": [

173 "PowerShell(Remove-Item *)"

174 ]

175 }

176}

177```

178 

179一般的なエイリアスはマッチング前に正規化されます。コマンドレット名用に記述されたルールはそのエイリアスもマッチさせるため、`PowerShell(Get-ChildItem *)` は `gci`、`ls`、`dir` もマッチさせます。マッチングは大文字と小文字を区別しません。

180 

181Claude Code は PowerShell AST を解析し、複合コマンド内の各コマンドを独立してチェックします。パイプオペレータ `|`、ステートメント区切り文字 `;`、および PowerShell 7 以降のチェーンオペレータ `&&` と `||` は複合コマンドをサブコマンドに分割します。複合コマンドが許可されるには、ルールがすべてのサブコマンドをマッチさせる必要があります。

182 

183### Read と Edit

184 

185`Edit` ルールは、ファイルを編集するすべての組み込みツールに適用されます。Claude は、Grep や Glob などのファイルを読み取るすべての組み込みツールに `Read` ルールを適用するためにベストエフォートを試みます。

186 

187<Warning>

188 Read と Edit deny ルールは Claude の組み込みファイルツールに適用され、Bash サブプロセスには適用されません。`Read(./.env)` deny ルールは Read ツールをブロックしますが、Bash での `cat .env` は防止しません。パスへのすべてのプロセスのアクセスをブロックする OS レベルの強制については、[サンドボックスを有効にしてください](/ja/sandboxing)。

189</Warning>

190 

191Read と Edit ルールの両方は、[gitignore](https://git-scm.com/docs/gitignore) 仕様に従い、4 つの異なるパターンタイプがあります。

192 

193| パターン | 意味 | 例 | マッチ |

194| ------------------- | ---------------------- | -------------------------------- | ------------------------------ |

195| `//path` | ファイルシステムルートからの**絶対**パス | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

196| `~/path` | **ホーム**ディレクトリからのパス | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

197| `/path` | **プロジェクトルートからの相対**パス | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |

198| `path` または `./path` | **現在のディレクトリからの相対**パス | `Read(*.env)` | `<cwd>/*.env` |

199 

200<Warning>

201 `/Users/alice/file` のようなパターンは絶対パスではありません。プロジェクトルートからの相対パスです。絶対パスには `//Users/alice/file` を使用してください。

202</Warning>

203 

204Windows では、パスはマッチング前に POSIX 形式に正規化されます。`C:\Users\alice` は `/c/Users/alice` になるため、`//c/**/.env` を使用してそのドライブ上の `.env` ファイルをマッチさせます。すべてのドライブ全体でマッチさせるには、`//**/.env` を使用します。

205 

206例:

207 

208* `Edit(/docs/**)`: `<project>/docs/` での編集(`/docs/` ではなく、`<project>/.claude/docs/` でもありません)

209* `Read(~/.zshrc)`: ホームディレクトリの `.zshrc` を読み取ります

210* `Edit(//tmp/scratch.txt)`: 絶対パス `/tmp/scratch.txt` を編集します

211* `Read(src/**)`: `<current-directory>/src/` から読み取ります

212 

213<Note>

214 gitignore パターンでは、`*` は単一のディレクトリ内のファイルをマッチさせ、`**` はディレクトリ全体で再帰的にマッチさせます。すべてのファイルアクセスを許可するには、括弧なしでツール名を使用します。`Read`、`Edit`、または `Write`。

215</Note>

216 

217Claude がシンボリックリンクにアクセスするとき、権限ルールは 2 つのパスをチェックします。シンボリックリンク自体と、それが解決するファイルです。Allow ルールと deny ルールはそのペアを異なる方法で扱います。allow ルールはプロンプトにフォールバックし、deny ルールは完全にブロックします。

218 

219* **Allow ルール**:シンボリックリンクパスとそのターゲットの両方がマッチする場合にのみ適用されます。許可されたディレクトリ内のシンボリックリンクがそれの外を指している場合でも、プロンプトが表示されます。

220* **Deny ルール**:シンボリックリンクパスまたはそのターゲットのいずれかがマッチする場合に適用されます。拒否されたファイルを指すシンボリックリンク自体が拒否されます。

221 

222たとえば、`Read(./project/**)` が許可され、`Read(~/.ssh/**)` が拒否されている場合、`./project/key` にあるシンボリックリンクが `~/.ssh/id_rsa` を指している場合、ターゲットが allow ルールに失敗し、deny ルールにマッチするため、ブロックされます。

223 

224### WebFetch

225 

226* `WebFetch(domain:example.com)` は example.com へのフェッチリクエストをマッチさせます

227 

228### MCP

229 

230* `mcp__puppeteer` は `puppeteer` サーバーによって提供されるツール(Claude Code で設定された名前)をマッチさせます

231* `mcp__puppeteer__*` ワイルドカード構文は、`puppeteer` サーバーからのすべてのツールもマッチさせます

232* `mcp__puppeteer__puppeteer_navigate` は `puppeteer` サーバーによって提供される `puppeteer_navigate` ツールをマッチさせます

233 

234### Agent(subagents)

235 

236`Agent(AgentName)` ルールを使用して、Claude が使用できる [subagents](/ja/sub-agents) を制御します。

237 

238* `Agent(Explore)` は Explore subagent をマッチさせます

239* `Agent(Plan)` は Plan subagent をマッチさせます

240* `Agent(my-custom-agent)` は `my-custom-agent` という名前のカスタム subagent をマッチさせます

241 

242これらのルールを設定の `deny` 配列に追加するか、`--disallowedTools` CLI フラグを使用して特定のエージェントを無効にします。Explore エージェントを無効にするには:

243 

244```json theme={null}

245{

246 "permissions": {

247 "deny": ["Agent(Explore)"]

248 }

249}

250```

251 

252## フックで権限を拡張する

253 

254[Claude Code フック](/ja/hooks-guide)は、実行時に権限評価を実行するカスタムシェルコマンドを登録する方法を提供します。Claude Code がツール呼び出しを行うと、PreToolUse フックは権限プロンプトの前に実行されます。フック出力はツール呼び出しを拒否し、プロンプトを強制し、またはプロンプトをスキップしてコールを続行させることができます。

255 

256フック決定は権限ルールをバイパスしません。deny ルールと ask ルールは、フックが何を返すかに関係なく評価されるため、マッチする deny ルールはコールをブロックし、マッチする ask ルールはフックが `"allow"` または `"ask"` を返した場合でもプロンプトを表示します。これは、[権限を管理する](#manage-permissions)で説明されている deny 優先の優先順位を保持し、管理設定で設定された deny ルールを含みます。

257 

258ブロッキングフックは allow ルールよりも優先されます。終了コード 2 で終了するフックは、権限ルールが評価される前にツール呼び出しを停止するため、allow ルールがコールを許可する場合でもブロックが適用されます。プロンプトなしですべての Bash コマンドを実行し、ブロックしたい少数のコマンドを除外するには、allow リストに `"Bash"` を追加し、それらの特定のコマンドを拒否する PreToolUse フックを登録します。適応できるフックスクリプトについては、[保護されたファイルへの編集をブロックする](/ja/hooks-guide#block-edits-to-protected-files)を参照してください。

259 

260## 作業ディレクトリ

261 

262デフォルトでは、Claude は起動されたディレクトリ内のファイルにアクセスできます。このアクセスを拡張できます。

263 

264* **起動時**。`--add-dir <path>` CLI 引数を使用します

265* **セッション中**。`/add-dir` コマンドを使用します

266* **永続的な設定**。[設定ファイル](/ja/settings#settings-files)の `additionalDirectories` に追加します

267 

268追加ディレクトリ内のファイルは、元の作業ディレクトリと同じ権限ルールに従います。プロンプトなしで読み取り可能になり、ファイル編集権限は現在の権限モードに従います。

269 

270### 追加ディレクトリはファイルアクセスを許可し、設定ではありません

271 

272ディレクトリを追加すると、Claude がファイルを読み取りおよび編集できる場所が拡張されます。そのディレクトリを完全な設定ルートにはしません。ほとんどの `.claude/` 設定は追加ディレクトリから検出されませんが、いくつかのタイプは例外として読み込まれます。

273 

274次の設定タイプは `--add-dir` ディレクトリから読み込まれます。

275 

276| 設定 | `--add-dir` から読み込まれます |

277| :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------- |

278| `.claude/skills/` の [Skills](/ja/skills) | はい、ライブリロード付き |

279| `.claude/settings.json` のプラグイン設定 | `enabledPlugins` と `extraKnownMarketplaces` のみ |

280| [CLAUDE.md](/ja/memory) ファイル、`.claude/rules/`、および `CLAUDE.local.md` | `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` が設定されている場合のみ。`CLAUDE.local.md` はさらに `local` 設定ソースが必要です。これはデフォルトで有効になっています |

281 

282その他すべて(subagents、コマンド、出力スタイル、フック、その他の設定を含む)は、現在の作業ディレクトリとその親、`~/.claude/` のユーザーディレクトリ、および管理設定からのみ検出されます。その設定をプロジェクト全体で共有するには、次のいずれかのアプローチを使用します。

283 

284* **ユーザーレベルの設定**。`~/.claude/agents/`、`~/.claude/output-styles/`、または `~/.claude/settings.json` にファイルを配置して、すべてのプロジェクトで利用可能にします

285* **プラグイン**。設定を [プラグイン](/ja/plugins)としてパッケージ化および配布し、チームがインストールできるようにします

286* **設定ディレクトリから起動する**。使用する `.claude/` 設定を含むディレクトリから Claude Code を実行します

287 

288## 権限がサンドボックスとどのように相互作用するか

289 

290権限と[サンドボックス](/ja/sandboxing)は、補完的なセキュリティレイヤーです。

291 

292* **権限**は、Claude Code が使用できるツール、およびアクセスできるファイルまたはドメインを制御します。すべてのツール(Bash、Read、Edit、WebFetch、MCP など)に適用されます。

293* **サンドボックス**は、Bash ツールのファイルシステムとネットワークアクセスを制限する OS レベルの強制を提供します。Bash コマンドとその子プロセスにのみ適用されます。

294 

295防御を深くするために両方を使用します。

296 

297* 権限 deny ルールは、Claude が制限されたリソースへのアクセスを試みることさえ防止します

298* サンドボックス制限は、プロンプトインジェクションが Claude の意思決定をバイパスしても、Bash コマンドが定義された境界外のリソースに到達することを防止します

299* サンドボックス内のファイルシステム制限は、Read と Edit deny ルールを使用し、別のサンドボックス設定は使用しません

300* ネットワーク制限は、WebFetch 権限ルールとサンドボックスの `allowedDomains` と `deniedDomains` リストを組み合わせます

301 

302サンドボックスが `autoAllowBashIfSandboxed: true` で有効になっている場合(デフォルト)、サンドボックス化された Bash コマンドは、権限に `ask: Bash(*)` が含まれている場合でもプロンプトなしで実行されます。サンドボックス境界はコマンドごとのプロンプトの代わりになります。[サンドボックスモード](/ja/sandboxing#sandbox-modes)を参照して、この動作を変更してください。

303 

304## 管理設定

305 

306Claude Code 設定の一元的な制御が必要な組織の場合、管理者はユーザーまたはプロジェクト設定でオーバーライドできない管理設定をデプロイできます。これらのポリシー設定は通常の設定ファイルと同じ形式に従い、MDM/OS レベルのポリシー、管理設定ファイル、または[サーバー管理設定](/ja/server-managed-settings)を通じて配信できます。配信メカニズムとファイルの場所については、[設定ファイル](/ja/settings#settings-files)を参照してください。

307 

308### 管理のみの設定

309 

310一部の設定は管理設定でのみ有効です。ユーザーまたはプロジェクト設定ファイルに配置しても効果がありません。

311 

312| 設定 | 説明 |

313| :--------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

314| `allowedChannelPlugins` | メッセージをプッシュできるチャネルプラグインのホワイトリスト。設定されている場合、デフォルトの Anthropic ホワイトリストを置き換えます。`channelsEnabled: true` が必要です。[チャネルプラグインの実行を制限する](/ja/channels#restrict-which-channel-plugins-can-run)を参照してください |

315| `allowManagedHooksOnly` | `true` の場合、管理フック、SDK フック、および管理設定 `enabledPlugins` で強制有効にされたプラグインからのフックのみが読み込まれます。ユーザー、プロジェクト、およびその他すべてのプラグインフックはブロックされます |

316| `allowManagedMcpServersOnly` | `true` の場合、管理設定からの `allowedMcpServers` のみが尊重されます。`deniedMcpServers` はすべてのソースからマージされます。[管理 MCP 設定](/ja/mcp#managed-mcp-configuration)を参照してください |

317| `allowManagedPermissionRulesOnly` | `true` の場合、ユーザーおよびプロジェクト設定が `allow`、`ask`、または `deny` 権限ルールを定義することを防止します。管理設定のルールのみが適用されます |

318| `blockedMarketplaces` | マーケットプレイスソースのブロックリスト。ブロックされたソースはダウンロード前にチェックされるため、ファイルシステムに触れることはありません。[管理マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を参照してください |

319| `channelsEnabled` | Team および Enterprise ユーザーの[チャネル](/ja/channels)を許可します。設定されていないか `false` の場合、ユーザーが `--channels` に渡すものに関係なく、チャネルメッセージ配信をブロックします |

320| `forceRemoteSettingsRefresh` | `true` の場合、リモート管理設定が新しく取得されるまで CLI 起動をブロックし、取得に失敗した場合は終了します。[フェイルクローズ強制](/ja/server-managed-settings#enforce-fail-closed-startup)を参照してください |

321| `pluginTrustMessage` | インストール前に表示されるプラグイン信頼警告に追加されるカスタムメッセージ |

322| `sandbox.filesystem.allowManagedReadPathsOnly` | `true` の場合、管理設定からの `filesystem.allowRead` パスのみが尊重されます。`denyRead` はすべてのソースからマージされます |

323| `sandbox.network.allowManagedDomainsOnly` | `true` の場合、管理設定からの `allowedDomains` と `WebFetch(domain:...)` allow ルールのみが尊重されます。許可されていないドメインはユーザーに促すことなく自動的にブロックされます。拒否されたドメインはすべてのソースからマージされます |

324| `strictKnownMarketplaces` | ユーザーが追加できるプラグインマーケットプレイスを制御します。[管理マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を参照してください |

325| `wslInheritsWindowsSettings` | Windows HKLM レジストリキーまたは `C:\Program Files\ClaudeCode\managed-settings.json` で `true` の場合、WSL は `/etc/claude-code` に加えて Windows ポリシーチェーンから管理設定を読み込みます。[設定ファイル](/ja/settings#settings-files)を参照してください |

326 

327`disableBypassPermissionsMode` は通常、組織ポリシーを強制するために管理設定に配置されますが、任意のスコープから機能します。ユーザーは独自の設定で設定して、自分自身をバイパスモードからロックアウトできます。

328 

329<Note>

330 [リモートコントロール](/ja/remote-control)と[ウェブセッション](/ja/claude-code-on-the-web)へのアクセスは、管理設定キーで制御されません。Team および Enterprise プランでは、管理者が [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code)でこれらの機能を有効または無効にします。

331</Note>

332 

333## 設定の優先順位

334 

335権限ルールは、他のすべての Claude Code 設定と同じ[設定優先順位](/ja/settings#settings-precedence)に従います。

336 

3371. **管理設定**。コマンドライン引数を含む他のレベルでオーバーライドできません

3382. **コマンドライン引数**。一時的なセッションオーバーライド

3393. **ローカルプロジェクト設定**(`.claude/settings.local.json`)

3404. **共有プロジェクト設定**(`.claude/settings.json`)

3415. **ユーザー設定**(`~/.claude/settings.json`)

342 

343ツールがいずれかのレベルで拒否されている場合、他のレベルはそれを許可できません。たとえば、管理設定 deny は `--allowedTools` でオーバーライドできず、`--disallowedTools` は管理設定が定義する内容を超えて制限を追加できます。

344 

345権限がユーザー設定で許可されているがプロジェクト設定で拒否されている場合、プロジェクト設定が優先され、権限はブロックされます。

346 

347## 設定例

348 

349この[リポジトリ](https://github.com/anthropics/claude-code/tree/main/examples/settings)には、一般的なデプロイメントシナリオのスターター設定が含まれています。これらを出発点として使用し、ニーズに合わせて調整してください。

350 

351## 関連項目

352 

353* [設定](/ja/settings)。権限設定テーブルを含む完全な設定リファレンス

354* [auto モードを設定する](/ja/auto-mode-config)。auto モード分類器が組織が信頼するインフラストラクチャを伝えます

355* [サンドボックス](/ja/sandboxing)。Bash コマンドの OS レベルのファイルシステムとネットワーク分離

356* [認証](/ja/authentication)。Claude Code へのユーザーアクセスを設定します

357* [セキュリティ](/ja/security)。セキュリティ保護とベストプラクティス

358* [フック](/ja/hooks-guide)。ワークフローを自動化し、権限評価を拡張します

platforms.md +78 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# プラットフォームと統合

6 

7> Claude Code を実行する場所を選択し、何に接続するかを決定します。CLI、Desktop、VS Code、JetBrains、Web、および Chrome、Slack、CI/CD などの統合を比較します。

8 

9Claude Code は、どこでも同じ基盤となるエンジンを実行しますが、各サーフェスは異なる作業方法に合わせて調整されています。このページは、ワークフローに適したプラットフォームを選択し、既に使用しているツールを接続するのに役立ちます。

10 

11## Claude Code を実行する場所

12 

13プロジェクトがどこにあるか、どのように作業したいかに基づいてプラットフォームを選択します。

14 

15| プラットフォーム | 最適な用途 | 提供される機能 |

16| :-------------------------------- | :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |

17| [CLI](/ja/quickstart) | ターミナルワークフロー、スクリプティング、リモートサーバー | 完全な機能セット、[Agent SDK](/ja/headless)、サードパーティプロバイダー |

18| [Desktop](/ja/desktop) | ビジュアルレビュー、並列セッション、管理されたセットアップ | Diff ビューアー、アプリプレビュー、Pro および Max での[コンピューター使用](/ja/desktop#let-claude-use-your-computer)および[Dispatch](/ja/desktop#sessions-from-dispatch) |

19| [VS Code](/ja/vs-code) | ターミナルに切り替えずに VS Code 内で作業 | インラインの Diff、統合ターミナル、ファイルコンテキスト |

20| [JetBrains](/ja/jetbrains) | IntelliJ、PyCharm、WebStorm、またはその他の JetBrains IDE 内で作業 | Diff ビューアー、選択共有、ターミナルセッション |

21| [Web](/ja/claude-code-on-the-web) | あまり操作が必要ない長時間実行タスク、またはオフラインの場合も続行すべき作業 | Anthropic 管理クラウド、切断後も続行 |

22 

23CLI はターミナルネイティブな作業に最も完全なサーフェスです。スクリプティング、サードパーティプロバイダー、Agent SDK は CLI のみです。Desktop と IDE 拡張機能は、CLI のみの機能の一部をビジュアルレビューとより緊密なエディター統合と引き換えにします。Web は Anthropic のクラウドで実行されるため、切断後もタスクが続行されます。

24 

25同じプロジェクトで複数のサーフェスを混在させることができます。設定、プロジェクトメモリ、MCP サーバーはローカルサーフェス全体で共有されます。

26 

27## ツールを接続する

28 

29統合により、Claude はコードベース外のサービスと連携できます。

30 

31| 統合 | 機能 | 用途 |

32| :----------------------------------- | :-------------------------- | :------------------------------------ |

33| [Chrome](/ja/chrome) | ログインしたセッションでブラウザを制御 | Web アプリのテスト、フォーム入力、API なしでサイトを自動化 |

34| [GitHub Actions](/ja/github-actions) | CI パイプラインで Claude を実行 | 自動 PR レビュー、Issue トリアージ、スケジュール済みメンテナンス |

35| [GitLab CI/CD](/ja/gitlab-ci-cd) | GitLab の GitHub Actions と同じ | GitLab での CI 駆動自動化 |

36| [Code Review](/ja/code-review) | すべての PR を自動的にレビュー | 人間によるレビュー前にバグをキャッチ |

37| [Slack](/ja/slack) | チャネルの `@Claude` メンションに応答 | バグレポートをチームチャットから PR に変換 |

38 

39ここにリストされていない統合については、[MCP サーバー](/ja/mcp)と[コネクター](/ja/desktop#connect-external-tools)により、ほぼすべてのものを接続できます。Linear、Notion、Google Drive、または独自の内部 API など。

40 

41## ターミナルから離れているときに作業する

42 

43Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.

44 

45| | Trigger | Claude runs on | Setup | Best for |

46| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |

47| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |

48| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |

49| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |

50| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |

51| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop-scheduled-tasks), or [cloud](/en/routines) | Pick a frequency | Recurring automation like daily reviews |

52 

53どこから始めるべきか不確かな場合は、[CLI をインストール](/ja/quickstart)してプロジェクトディレクトリで実行します。ターミナルを使用したくない場合は、[Desktop](/ja/desktop-quickstart) がグラフィカルインターフェースで同じエンジンを提供します。

54 

55## 関連リソース

56 

57### プラットフォーム

58 

59* [CLI クイックスタート](/ja/quickstart):ターミナルでインストールして最初のコマンドを実行

60* [Desktop](/ja/desktop):ビジュアル Diff レビュー、並列セッション、コンピューター使用、Dispatch

61* [VS Code](/ja/vs-code):エディター内の Claude Code 拡張機能

62* [JetBrains](/ja/jetbrains):IntelliJ、PyCharm、およびその他の JetBrains IDE の拡張機能

63* [Claude Code on the web](/ja/claude-code-on-the-web):切断後も実行し続けるクラウドセッション

64 

65### 統合

66 

67* [Chrome](/ja/chrome):ログインしたセッションでブラウザタスクを自動化

68* [GitHub Actions](/ja/github-actions):CI パイプラインで Claude を実行

69* [GitLab CI/CD](/ja/gitlab-ci-cd):GitLab の場合も同じ

70* [Code Review](/ja/code-review):すべてのプルリクエストで自動レビュー

71* [Slack](/ja/slack):チームチャットからタスクを送信、PR を取得

72 

73### リモートアクセス

74 

75* [Dispatch](/ja/desktop#sessions-from-dispatch):携帯電話からタスクをメッセージして Desktop セッションを生成

76* [Remote Control](/ja/remote-control):携帯電話またはブラウザから実行中のセッションを操作

77* [Channels](/ja/channels):チャットアプリまたは独自のサーバーからセッションにイベントをプッシュ

78* [Scheduled tasks](/ja/scheduled-tasks):定期的なスケジュールでプロンプトを実行

plugin-dependencies.md +153 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# プラグイン依存関係のバージョンを制約する

6 

7> プラグイン依存関係のバージョン制約を宣言して、アップストリームプラグインが破壊的変更をリリースしても、プラグインが動作し続けるようにします。

8 

9プラグインは、`plugin.json` またはマーケットプレイスエントリにリストすることで、他のプラグインに依存できます。デフォルトでは、依存関係は最新の利用可能なバージョンを追跡するため、アップストリームリリースは警告なしにプラグインの依存関係を変更できます。バージョン制約を使用すると、移動を選択するまで、依存関係をテスト済みのバージョン範囲に保つことができます。

10 

11依存関係を宣言するプラグインをインストールすると、Claude Code は依存関係を自動的に解決してインストールし、インストール出力の最後に追加された依存関係をリストします。依存関係が後で見つからなくなった場合、`/reload-plugins` とバックグラウンドプラグイン自動更新により、設定済みマーケットプレイスにそのマーケットプレイスが既にある場合は、それを再インストールします。依存プラグインで `claude plugin install` を再実行するか、`claude plugin marketplace add` でマーケットプレイスを追加することでも、未解決の依存関係が解決されます。追加していないマーケットプレイスからの依存関係は未解決のままになります。

12 

13このガイドは、`plugin.json` で依存関係を宣言するプラグイン作成者と、リリースにタグを付けるマーケットプレイス保守者向けです。依存関係を持つプラグインをインストールするには、[プラグインの検出とインストール](/ja/discover-plugins) を参照してください。完全なマニフェストスキーマについては、[プラグインリファレンス](/ja/plugins-reference) を参照してください。

14 

15<Note>

16 依存関係のバージョン制約には、Claude Code v2.1.110 以降が必要です。

17</Note>

18 

19## 依存関係のバージョンを制約する理由

20 

212 つのチームがプラグインを公開する内部マーケットプレイスを考えてみてください。プラットフォームチームは、シークレットバックエンドをラップする MCP サーバーである `secrets-vault` を保守しています。デプロイチームは、デプロイ中に認証情報を取得するために `secrets-vault` を呼び出す `deploy-kit` を保守しています。

22 

23`deploy-kit` は `secrets-vault` v2.1.0 に対してテストされています。バージョン制約がない場合、プラットフォームチームが MCP ツールの名前を変更するリリースにタグを付けると、次回の自動更新により、すべてのエンジニアの `secrets-vault` が新しいバージョンに移動し、`deploy-kit` が破損します。

24 

25バージョン制約を使用すると、`deploy-kit` は `secrets-vault` が `~2.1.0` 範囲内にあることが必要であることを宣言します。`deploy-kit` がインストールされているエンジニアは、最高の一致する `2.1.x` パッチに留まります。デプロイチームは、より広い制約を持つ新しい `deploy-kit` バージョンを公開することで、独自のスケジュールでアップグレードします。

26 

27## バージョン制約を使用して依存関係を宣言する

28 

29プラグインの `.claude-plugin/plugin.json` の `dependencies` 配列に依存関係をリストします。各エントリは、プラグイン名またはバージョン制約を持つオブジェクトのいずれかです。

30 

31次のマニフェストは、1 つのバージョン指定なしの依存関係と 1 つの制約付き依存関係を宣言しています。

32 

33```json .claude-plugin/plugin.json theme={null}

34{

35 "name": "deploy-kit",

36 "version": "3.1.0",

37 "dependencies": [

38 "audit-logger",

39 { "name": "secrets-vault", "version": "~2.1.0" }

40 ]

41}

42```

43 

44エントリは、上記の例の `"audit-logger"` のようにプラグイン名のみを含む単純な文字列にすることができます。これは、そのプラグインのマーケットプレイスが提供するバージョンに依存します。より詳細に制御するには、次のフィールドを持つオブジェクトを使用します。

45 

46| フィールド | 型 | 説明 |

47| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| `name` | string | プラグイン名。宣言するプラグインと同じマーケットプレイス内で解決されます。必須。 |

49| `version` | string | `~2.1.0`、`^2.0`、`>=1.4`、または `=2.1.0` などの [semver 範囲](https://github.com/npm/node-semver#ranges)。依存関係は、この範囲を満たす最高のタグ付きバージョンで取得されます。 |

50| `marketplace` | string | `name` を解決する別のマーケットプレイス。クロスマーケットプレイス依存関係は、ターゲットマーケットプレイスがルートマーケットプレイスの `marketplace.json` の [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace) にリストされていない限り、ブロックされます。 |

51 

52`version` フィールドは、キャレット、チルダ、ハイフン、比較演算子範囲を含む、Node の `semver` パッケージでサポートされている任意の式を受け入れます。`^2.0.0-0` のようなプレリリースサフィックスで範囲がオプトインしない限り、`2.0.0-beta.1` などのプレリリースバージョンは除外されます。

53 

54## 別のマーケットプレイスからプラグインに依存する

55 

56デフォルトでは、Claude Code は、それを宣言するプラグインとは異なるマーケットプレイスに存在する依存関係の自動インストールを拒否します。これにより、1 つのマーケットプレイスが、確認していないソースからプラグインを静かにプルインするのを防ぎます。

57 

58これを許可するには、ルートマーケットプレイスの保守者が、ターゲットマーケットプレイス名を `marketplace.json` の `allowCrossMarketplaceDependenciesOn` に追加します。ルートマーケットプレイスは、ユーザーがインストールしているプラグインをホストするマーケットプレイスです。そのアローリストのみが参照されるため、信頼は中間マーケットプレイスを通じてチェーンされません。

59 

60次の `marketplace.json` は、`deploy-kit` が `acme-shared` からプラグインに依存することを許可しています。

61 

62```json .claude-plugin/marketplace.json theme={null}

63{

64 "name": "acme-tools",

65 "owner": { "name": "Acme" },

66 "allowCrossMarketplaceDependenciesOn": ["acme-shared"],

67 "plugins": [

68 {

69 "name": "deploy-kit",

70 "source": "./deploy-kit",

71 "dependencies": [

72 { "name": "audit-logger", "marketplace": "acme-shared" }

73 ]

74 }

75 ]

76}

77```

78 

79フィールドが欠落しているか、ターゲットマーケットプレイスが含まれていない場合、インストールは `cross-marketplace` エラーで失敗し、設定するフィールドに名前を付けます。ユーザーは依然として依存関係を手動で最初にインストールできます。これにより、アローリストを変更することなく制約が満たされます。

80 

81## バージョン解決のためのタグプラグインリリース

82 

83バージョン制約は、マーケットプレイスリポジトリの git タグに対して解決されます。Claude Code が依存関係の利用可能なバージョンを見つけるには、アップストリームプラグインのリリースが特定の命名規則を使用してタグ付けされている必要があります。

84 

85各リリースを `{plugin-name}--v{version}` としてタグ付けします。ここで、`{version}` はそのコミットの `plugin.json` の `version` フィールドと一致します。プラグインディレクトリから、以下を実行します。

86 

87```bash theme={null}

88claude plugin tag --push

89```

90 

91`claude plugin tag` コマンドは、プラグインのマニフェストとそれを囲むマーケットプレイスエントリからタグ名を導出します。タグを作成する前に、プラグインの内容を検証し、`plugin.json` とマーケットプレイスエントリがバージョンについて一致していることを確認し、プラグインディレクトリの下でクリーンな作業ツリーを要求し、タグが既に存在する場合は拒否します。`--dry-run` を追加して、タグを作成せずにタグ付けされるものを確認します。`plugin.json` とマーケットプレイスエントリを自分で同期させておけば、`git tag secrets-vault--v2.1.0` を直接実行することと同等です。

92 

93プラグイン名プレフィックスにより、1 つのマーケットプレイスリポジトリが独立したバージョン行を持つ複数のプラグインをホストできます。`--v` セパレータは、完全なプラグイン名のプレフィックスマッチとして解析されるため、ハイフンを含むプラグイン名は正しく処理されます。

94 

95`{ "name": "secrets-vault", "version": "~2.1.0" }` を宣言するプラグインをインストールすると、Claude Code はマーケットプレイスのタグをリストし、`secrets-vault--v` で始まるタグにフィルタリングし、`~2.1.0` を満たす最高バージョンを取得します。一致するタグが存在しない場合、依存プラグインは利用可能なバージョンをリストするエラーで無効になります。

96 

97解決されたタグの semver は `plugin.json` の `version` とは別に記録されるため、制約チェックは `plugin.json` がそのコミットで古い値を持っていても、実際に取得されたタグを使用します。タグ解決インストールのキャッシュディレクトリ名には 12 文字のコミット SHA サフィックスが含まれるため、メンテナーがタグを別のコミットに強制移動した場合、次のインストールは古いコンテンツを再利用する代わりに新しいキャッシュディレクトリを取得します。

98 

99<Note>

100 `npm` マーケットプレイスソースの場合、タグベースの解決は git バックアップソースにのみ適用されるため、制約はどのバージョンが取得されるかを制御しません。制約は依然としてロード時にチェックされ、インストールされたバージョンが満たさない場合、依存プラグインは `dependency-version-unsatisfied` で無効になります。

101</Note>

102 

103## 制約がどのように相互作用するか

104 

105複数のインストール済みプラグインが同じ依存関係を制約する場合、Claude Code はそれらの範囲を交差させ、依存関係をすべての範囲を満たす最高バージョンに解決します。下の表は、一般的な組み合わせがどのように解決されるかを示しています。

106 

107| プラグイン A が必要 | プラグイン B が必要 | 結果 |

108| :---------- | :---------- | :---------------------------------------------------------------- |

109| `^2.0` | `>=2.1` | `2.1.0` 以上の最高 `2.x` タグで 1 つのインストール。両方のプラグインが読み込まれます。 |

110| `~2.1` | `~3.0` | プラグイン B のインストールが `range-conflict` で失敗します。プラグイン A と依存関係は以前のままです。 |

111| `=2.1.0` | なし | 依存関係は `2.1.0` に留まります。プラグイン A がインストールされている間、自動更新は新しいバージョンをスキップします。 |

112 

113自動更新は、制約付き依存関係を、マーケットプレイスの最新バージョンではなく、インストール済みプラグインのすべての範囲を満たす最高 git タグで取得するため、依存関係は許可された範囲内で更新を受け続けます。すべての範囲を満たすタグがない場合、更新はスキップされ、スキップは `/doctor` と `/plugin` エラータブに表示され、制約するプラグインに名前を付けます。

114 

115依存関係を制約する最後のプラグインをアンインストールすると、依存関係は保持されなくなり、次の更新でマーケットプレイスエントリの追跡を再開します。

116 

117## 孤立した自動インストール依存関係を削除する

118 

119自動インストール依存関係は、それらをインストールしたプラグインがアンインストールされた後もディスク上に留まります。これは、依存プラグインを再インストールしたい場合や、依存関係を直接使用し続けたい場合に備えてです。それらをクリーンアップするには、`claude plugin prune` を実行して、インストール済みプラグインがもう必要としない自動インストール依存関係をリストし、確認プロンプトの後に削除します。これには Claude Code v2.1.121 以降が必要です。

120 

121```bash theme={null}

122claude plugin prune

123```

124 

125デフォルトでは、prune はユーザースコープで動作します。別のスコープをターゲットにするには、`--scope project` または `--scope local` を使用します。`--dry-run` を渡して、何が削除されるかをリストし、何も変更しません。`-y` を渡して確認プロンプトをスキップします。stdin または stdout がターミナルでない場合、prune は孤立したものをリストして終了し、`-y` が渡されない限り削除しません。

126 

127アンインストールの一部として prune するには、`claude plugin uninstall` に `--prune` を渡します。名前付きプラグインを削除した後、Claude Code は自動インストール依存関係をスキャンして、現在孤立しているものを削除します。自分でインストールしたプラグインは決して prune されません。別のプラグインの `dependencies` 配列を通じて自動的にインストールされたものだけです。

128 

129たとえば、`deploy-kit` をアンインストールし、それが残す依存関係をクリーンアップするには、以下を実行します。

130 

131```bash theme={null}

132claude plugin uninstall deploy-kit --prune

133```

134 

135## 依存関係エラーを解決する

136 

137依存関係の問題は、`claude plugin list`、`/plugin` インターフェイス、および `/doctor` に表示されます。影響を受けるプラグインは、エラーを解決するまで無効になります。最も一般的なエラーとその修正は以下にリストされています。

138 

139| エラー | 意味 | 解決方法 |

140| :------------------------------- | :--------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

141| `dependency-unsatisfied` | 宣言された依存関係がインストールされていないか、インストールされていますが無効になっています。 | エラーメッセージに表示されている `claude plugin install` コマンドを実行してください。依存関係のマーケットプレイスがまだ設定されていない場合は、`claude plugin marketplace add` で追加すると、Claude Code が依存関係を自動的に解決します。依存関係が無効になっている場合は、有効にしてください。 |

142| `range-conflict` | 依存関係のバージョン要件を組み合わせることができません。エラーメッセージは原因に名前を付けます。バージョンがすべての範囲を満たさない、範囲が有効な semver 構文ではない、または結合された範囲が複雑すぎて交差できません。 | 競合するプラグインの 1 つをアンインストールまたは更新し、無効な `version` 文字列を修正し、長い `\|\|` チェーンを簡略化するか、アップストリーム作成者に制約を広げるよう依頼してください。 |

143| `dependency-version-unsatisfied` | インストール済み依存関係のバージョンがこのプラグインの宣言された範囲外です。 | `claude plugin install <dependency>@<marketplace>` を実行して、すべての現在の制約に対して依存関係を再解決します。 |

144| `no-matching-tag` | 依存関係のリポジトリに、範囲を満たす `{name}--v*` タグがありません。 | アップストリームが上記の規則を使用してリリースにタグを付けていることを確認するか、範囲を緩和してください。 |

145 

146これらのエラーをプログラムで確認するには、`claude plugin list --json` を実行し、各プラグインの `errors` フィールドを読みます。

147 

148## 関連項目

149 

150* [プラグインの作成](/ja/plugins): スキル、エージェント、フックを使用してプラグインを構築します

151* [プラグインマーケットプレイスの作成と配布](/ja/plugin-marketplaces): チーム向けのプラグインをホストします

152* [プラグインリファレンス](/ja/plugins-reference#plugin-manifest-schema): 完全な `plugin.json` スキーマ

153* [バージョン管理](/ja/plugins-reference#version-management): プラグイン独自のバージョンがどのように解決され、キャッシュキーとして使用されるか

plugin-marketplaces.md +1054 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# プラグインマーケットプレイスの作成と配布

6 

7> Claude Code 拡張機能を配布するためのプラグインマーケットプレイスを構築およびホストします。

8 

9**プラグインマーケットプレイス**は、他のユーザーにプラグインを配布できるカタログです。マーケットプレイスは、一元化された検出、バージョン追跡、自動更新、および複数のソースタイプ(Git リポジトリ、ローカルパス、その他)のサポートを提供します。このガイドでは、チームやコミュニティとプラグインを共有するための独自のマーケットプレイスを作成する方法を説明します。

10 

11既存のマーケットプレイスからプラグインをインストールしたいですか?[既成プラグインの検出とインストール](/ja/discover-plugins)を参照してください。

12 

13## 概要

14 

15マーケットプレイスの作成と配布には、以下が含まれます。

16 

171. **プラグインの作成**:skills、agents、hooks、MCP サーバー、または LSP サーバーを使用して 1 つ以上のプラグインを構築します。このガイドでは、配布するプラグインが既にあることを前提としています。プラグインの作成方法の詳細については、[プラグインの作成](/ja/plugins)を参照してください。

182. **マーケットプレイスファイルの作成**:プラグインとその場所を一覧表示する `marketplace.json` を定義します([マーケットプレイスファイルの作成](#create-the-marketplace-file)を参照)。

193. **マーケットプレイスのホスト**:GitHub、GitLab、または別の Git ホストにプッシュします([マーケットプレイスのホストと配布](#host-and-distribute-marketplaces)を参照)。

204. **ユーザーと共有**:ユーザーが `/plugin marketplace add` でマーケットプレイスを追加し、個別のプラグインをインストールします([プラグインの検出とインストール](/ja/discover-plugins)を参照)。

21 

22マーケットプレイスがライブになったら、リポジトリに変更をプッシュして更新できます。ユーザーは `/plugin marketplace update` でローカルコピーを更新します。

23 

24## チュートリアル:ローカルマーケットプレイスの作成

25 

26この例では、1 つのプラグイン(コードレビュー用の `/quality-review` skill)を含むマーケットプレイスを作成します。ディレクトリ構造を作成し、skill を追加し、プラグインマニフェストとマーケットプレイスカタログを作成してから、インストールしてテストします。

27 

28<Steps>

29 <Step title="ディレクトリ構造の作成">

30 ```bash theme={null}

31 mkdir -p my-marketplace/.claude-plugin

32 mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin

33 mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review

34 ```

35 </Step>

36 

37 <Step title="skill の作成">

38 `/quality-review` skill が何をするかを定義する `SKILL.md` ファイルを作成します。

39 

40 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

41 ---

42 description: Review code for bugs, security, and performance

43 disable-model-invocation: true

44 ---

45 

46 Review the code I've selected or the recent changes for:

47 - Potential bugs or edge cases

48 - Security concerns

49 - Performance issues

50 - Readability improvements

51 

52 Be concise and actionable.

53 ```

54 </Step>

55 

56 <Step title="プラグインマニフェストの作成">

57 プラグインを説明する `plugin.json` ファイルを作成します。マニフェストは `.claude-plugin/` ディレクトリに配置されます。

58 

59 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}

60 {

61 "name": "quality-review-plugin",

62 "description": "Adds a /quality-review skill for quick code reviews",

63 "version": "1.0.0"

64 }

65 ```

66 

67 <Note>

68 `version` を設定すると、ユーザーはこのフィールドを変更した場合にのみ更新を受け取ります。そのため、リリースのたびにバージョンを上げてください。`version` を省略し、このマーケットプレイスを git でホストする場合、すべてのコミットが自動的に新しいバージョンとしてカウントされます。[バージョン解決](#version-resolution-and-release-channels)を参照して、適切なアプローチを選択してください。

69 </Note>

70 </Step>

71 

72 <Step title="マーケットプレイスファイルの作成">

73 プラグインを一覧表示するマーケットプレイスカタログを作成します。

74 

75 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

76 {

77 "name": "my-plugins",

78 "owner": {

79 "name": "Your Name"

80 },

81 "plugins": [

82 {

83 "name": "quality-review-plugin",

84 "source": "./plugins/quality-review-plugin",

85 "description": "Adds a /quality-review skill for quick code reviews"

86 }

87 ]

88 }

89 ```

90 </Step>

91 

92 <Step title="追加とインストール">

93 マーケットプレイスを追加し、プラグインをインストールします。

94 

95 ```shell theme={null}

96 /plugin marketplace add ./my-marketplace

97 /plugin install quality-review-plugin@my-plugins

98 ```

99 </Step>

100 

101 <Step title="試してみる">

102 エディタでコードを選択し、新しい skill を実行します。

103 

104 ```shell theme={null}

105 /quality-review

106 ```

107 </Step>

108</Steps>

109 

110プラグインが実行できることの詳細(hooks、agents、MCP サーバー、LSP サーバーを含む)については、[プラグイン](/ja/plugins)を参照してください。

111 

112<Note>

113 **プラグインのインストール方法**:ユーザーがプラグインをインストールすると、Claude Code はプラグインディレクトリをキャッシュロケーションにコピーします。これは、`../shared-utils` のようなパスを使用してプラグインディレクトリの外部のファイルを参照できないことを意味します。これらのファイルはコピーされないためです。

114 

115 プラグイン間でファイルを共有する必要がある場合は、symlinks を使用します。詳細については、[プラグインキャッシングとファイル解決](/ja/plugins-reference#plugin-caching-and-file-resolution)を参照してください。

116</Note>

117 

118## マーケットプレイスファイルの作成

119 

120リポジトリルートに `.claude-plugin/marketplace.json` を作成します。このファイルは、マーケットプレイスの名前、所有者情報、およびソースを含むプラグインのリストを定義します。

121 

122各プラグインエントリには、最低限 `name` と `source`(取得元)が必要です。利用可能なすべてのフィールドについては、以下の[完全なスキーマ](#marketplace-schema)を参照してください。

123 

124```json theme={null}

125{

126 "name": "company-tools",

127 "owner": {

128 "name": "DevTools Team",

129 "email": "devtools@example.com"

130 },

131 "plugins": [

132 {

133 "name": "code-formatter",

134 "source": "./plugins/formatter",

135 "description": "Automatic code formatting on save",

136 "version": "2.1.0",

137 "author": {

138 "name": "DevTools Team"

139 }

140 },

141 {

142 "name": "deployment-tools",

143 "source": {

144 "source": "github",

145 "repo": "company/deploy-plugin"

146 },

147 "description": "Deployment automation tools"

148 }

149 ]

150}

151```

152 

153## マーケットプレイススキーマ

154 

155### 必須フィールド

156 

157| フィールド | タイプ | 説明 | 例 |

158| :-------- | :----- | :---------------------------------------------------------------------------------------------------------------- | :------------- |

159| `name` | string | マーケットプレイス識別子(ケバブケース、スペースなし)。これは公開向けです。ユーザーはプラグインをインストールするときに表示されます(例:`/plugin install my-tool@your-marketplace`)。 | `"acme-tools"` |

160| `owner` | object | マーケットプレイスメンテナー情報([以下のフィールドを参照](#owner-fields)) | |

161| `plugins` | array | 利用可能なプラグインのリスト | 以下を参照 |

162 

163<Note>

164 **予約名**:以下のマーケットプレイス名は Anthropic の公式使用のために予約されており、サードパーティのマーケットプレイスでは使用できません。`claude-code-marketplace`、`claude-code-plugins`、`claude-plugins-official`、`anthropic-marketplace`、`anthropic-plugins`、`agent-skills`、`knowledge-work-plugins`、`life-sciences`。公式マーケットプレイスになりすましている名前(`official-claude-plugins` や `anthropic-tools-v2` など)もブロックされています。

165</Note>

166 

167### 所有者フィールド

168 

169| フィールド | タイプ | 必須 | 説明 |

170| :------ | :----- | :-- | :------------- |

171| `name` | string | はい | メンテナーまたはチームの名前 |

172| `email` | string | いいえ | メンテナーの連絡先メール |

173 

174### オプションフィールド

175 

176| フィールド | タイプ | 説明 |

177| :------------------------------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

178| `$schema` | string | エディターのオートコンプリートと検証用の JSON Schema URL。Claude Code はロード時にこのフィールドを無視します。 |

179| `description` | string | マーケットプレイスの簡潔な説明 |

180| `version` | string | マーケットプレイスマニフェストバージョン |

181| `metadata.pluginRoot` | string | 相対プラグインソースパスの前に付加される基本ディレクトリ(例:`"./plugins"` を使用すると、`"source": "./plugins/formatter"` の代わりに `"source": "formatter"` と記述できます) |

182| `allowCrossMarketplaceDependenciesOn` | array | このマーケットプレイス内のプラグインが依存する可能性のある他のマーケットプレイス。ここにリストされていないマーケットプレイスからの依存関係はインストール時にブロックされます。[別のマーケットプレイスからプラグインに依存する](/ja/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)を参照してください。 |

183 

184`description` と `version` は後方互換性のため `metadata` の下でも受け入れられます。

185 

186## プラグインエントリ

187 

188`plugins` 配列内の各プラグインエントリは、プラグインとその場所を説明します。[プラグインマニフェストスキーマ](/ja/plugins-reference#plugin-manifest-schema)のフィールド(`description`、`version`、`author`、`commands`、`hooks` など)を含めることができます。さらに、これらのマーケットプレイス固有のフィールド:`source`、`category`、`tags`、`strict` があります。

189 

190### 必須フィールド

191 

192| フィールド | タイプ | 説明 |

193| :------- | :------------- | :------------------------------------------------------------------------------------------------ |

194| `name` | string | プラグイン識別子(ケバブケース、スペースなし)。これは公開向けです。ユーザーはインストール時に表示されます(例:`/plugin install my-plugin@marketplace`)。 |

195| `source` | string\|object | プラグインを取得する場所(以下の[プラグインソース](#plugin-sources)を参照) |

196 

197### オプションプラグインフィールド

198 

199**標準メタデータフィールド:**

200 

201| フィールド | タイプ | 説明 |

202| :------------ | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

203| `description` | string | プラグインの簡潔な説明 |

204| `version` | string | プラグインバージョン。設定されている場合(ここまたは `plugin.json` で)、プラグインはこの文字列にピン留めされ、ユーザーは変更時にのみ更新を受け取ります。省略すると、git コミット SHA にフォールバックします。[バージョン解決](#version-resolution-and-release-channels)を参照してください。 |

205| `author` | object | プラグイン作成者情報(`name` は必須、`email` はオプション) |

206| `homepage` | string | プラグインホームページまたはドキュメント URL |

207| `repository` | string | ソースコードリポジトリ URL |

208| `license` | string | SPDX ライセンス識別子(例:MIT、Apache-2.0) |

209| `keywords` | array | プラグイン検出と分類用のタグ |

210| `category` | string | 整理用のプラグインカテゴリ |

211| `tags` | array | 検索可能性用のタグ |

212| `strict` | boolean | `plugin.json` がコンポーネント定義の権限であるかどうかを制御します(デフォルト:true)。以下の[厳密モード](#strict-mode)を参照してください。 |

213 

214**コンポーネント設定フィールド:**

215 

216| フィールド | タイプ | 説明 |

217| :----------- | :------------- | :----------------------------------------- |

218| `skills` | string\|array | `<name>/SKILL.md` を含む skill ディレクトリへのカスタムパス |

219| `commands` | string\|array | フラットな `.md` skill ファイルまたはディレクトリへのカスタムパス |

220| `agents` | string\|array | agent ファイルへのカスタムパス |

221| `hooks` | string\|object | カスタム hooks 設定または hooks ファイルへのパス |

222| `mcpServers` | string\|object | MCP サーバー設定または MCP 設定ファイルへのパス |

223| `lspServers` | string\|object | LSP サーバー設定または LSP 設定ファイルへのパス |

224 

225## プラグインソース

226 

227プラグインソースは、マーケットプレイスに一覧表示されている各個別プラグインを取得する場所を Claude Code に指示します。これらは `marketplace.json` 内の各プラグインエントリの `source` フィールドで設定されます。

228 

229プラグインがローカルマシンにクローンまたはコピーされると、`~/.claude/plugins/cache` のローカルバージョン管理プラグインキャッシュにコピーされます。

230 

231| ソース | タイプ | フィールド | 注記 |

232| ------------ | --------------------------- | -------------------------------- | ------------------------------------------- |

233| 相対パス | `string`(例:`"./my-plugin"`) | — | マーケットプレイスリポジトリ内のローカルディレクトリ。`./` で始まる必要があります |

234| `github` | object | `repo`、`ref?`、`sha?` | |

235| `url` | object | `url`、`ref?`、`sha?` | Git URL ソース |

236| `git-subdir` | object | `url`、`path`、`ref?`、`sha?` | Git リポジトリ内のサブディレクトリ。帯域幅を最小化するためにスパースクローンします |

237| `npm` | object | `package`、`version?`、`registry?` | `npm install` でインストール |

238 

239<Note>

240 **マーケットプレイスソースとプラグインソース**:これらは異なる概念で、異なるものを制御します。

241 

242 * **マーケットプレイスソース** — `marketplace.json` カタログ自体を取得する場所。ユーザーが `/plugin marketplace add` を実行するか、`extraKnownMarketplaces` 設定で設定されます。`ref`(ブランチ/タグ)をサポートしますが、`sha` はサポートしません。

243 * **プラグインソース** — マーケットプレイスに一覧表示されている個別プラグインを取得する場所。`marketplace.json` 内の各プラグインエントリの `source` フィールドで設定されます。`ref`(ブランチ/タグ)と `sha`(正確なコミット)の両方をサポートします。

244 

245 例えば、`acme-corp/plugin-catalog`(マーケットプレイスソース)でホストされているマーケットプレイスは、`acme-corp/code-formatter`(プラグインソース)から取得されたプラグインを一覧表示できます。マーケットプレイスソースとプラグインソースは異なるリポジトリを指し、独立して固定されます。

246</Note>

247 

248### 相対パス

249 

250同じリポジトリ内のプラグインの場合、`./` で始まるパスを使用します。

251 

252```json theme={null}

253{

254 "name": "my-plugin",

255 "source": "./plugins/my-plugin"

256}

257```

258 

259パスはマーケットプレイスルート(`.claude-plugin/` を含むディレクトリ)に相対的に解決されます。上記の例では、`./plugins/my-plugin` は `<repo>/plugins/my-plugin` を指します。`marketplace.json` は `<repo>/.claude-plugin/marketplace.json` に存在していても同じです。`../` を使用してマーケットプレイスルートの外を参照しないでください。

260 

261<Note>

262 相対パスは、ユーザーが Git(GitHub、GitLab、または Git URL)経由でマーケットプレイスを追加する場合にのみ機能します。ユーザーが `marketplace.json` ファイルへの直接 URL でマーケットプレイスを追加する場合、相対パスは正しく解決されません。URL ベースの配布の場合は、GitHub、npm、または Git URL ソースを使用してください。詳細については、[トラブルシューティング](#plugins-with-relative-paths-fail-in-url-based-marketplaces)を参照してください。

263</Note>

264 

265### GitHub リポジトリ

266 

267```json theme={null}

268{

269 "name": "github-plugin",

270 "source": {

271 "source": "github",

272 "repo": "owner/plugin-repo"

273 }

274}

275```

276 

277特定のブランチ、タグ、またはコミットに固定できます。

278 

279```json theme={null}

280{

281 "name": "github-plugin",

282 "source": {

283 "source": "github",

284 "repo": "owner/plugin-repo",

285 "ref": "v2.0.0",

286 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

287 }

288}

289```

290 

291| フィールド | タイプ | 説明 |

292| :----- | :----- | :----------------------------------------- |

293| `repo` | string | 必須。`owner/repo` 形式の GitHub リポジトリ |

294| `ref` | string | オプション。Git ブランチまたはタグ(デフォルトはリポジトリのデフォルトブランチ) |

295| `sha` | string | オプション。完全な 40 文字の Git コミット SHA で正確なバージョンに固定 |

296 

297### Git リポジトリ

298 

299```json theme={null}

300{

301 "name": "git-plugin",

302 "source": {

303 "source": "url",

304 "url": "https://gitlab.com/team/plugin.git"

305 }

306}

307```

308 

309特定のブランチ、タグ、またはコミットに固定できます。

310 

311```json theme={null}

312{

313 "name": "git-plugin",

314 "source": {

315 "source": "url",

316 "url": "https://gitlab.com/team/plugin.git",

317 "ref": "main",

318 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

319 }

320}

321```

322 

323| フィールド | タイプ | 説明 |

324| :---- | :----- | :--------------------------------------------------------------------------------------------------------------------- |

325| `url` | string | 必須。完全な Git リポジトリ URL(`https://` または `git@`)。`.git` サフィックスはオプションなので、Azure DevOps と AWS CodeCommit の URL(サフィックスなし)が機能します |

326| `ref` | string | オプション。Git ブランチまたはタグ(デフォルトはリポジトリのデフォルトブランチ) |

327| `sha` | string | オプション。完全な 40 文字の Git コミット SHA で正確なバージョンに固定 |

328 

329### Git サブディレクトリ

330 

331`git-subdir` を使用して、Git リポジトリのサブディレクトリ内に存在するプラグインを指します。Claude Code はスパースな部分クローンを使用してサブディレクトリのみを取得し、大規模なモノレポの帯域幅を最小化します。

332 

333```json theme={null}

334{

335 "name": "my-plugin",

336 "source": {

337 "source": "git-subdir",

338 "url": "https://github.com/acme-corp/monorepo.git",

339 "path": "tools/claude-plugin"

340 }

341}

342```

343 

344特定のブランチ、タグ、またはコミットに固定できます。

345 

346```json theme={null}

347{

348 "name": "my-plugin",

349 "source": {

350 "source": "git-subdir",

351 "url": "https://github.com/acme-corp/monorepo.git",

352 "path": "tools/claude-plugin",

353 "ref": "v2.0.0",

354 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

355 }

356}

357```

358 

359`url` フィールドは、GitHub ショートハンド(`owner/repo`)または SSH URL(`git@github.com:owner/repo.git`)も受け入れます。

360 

361| フィールド | タイプ | 説明 |

362| :----- | :----- | :------------------------------------------------------- |

363| `url` | string | 必須。Git リポジトリ URL、GitHub `owner/repo` ショートハンド、または SSH URL |

364| `path` | string | 必須。プラグインを含むリポジトリ内のサブディレクトリパス(例:`"tools/claude-plugin"`) |

365| `ref` | string | オプション。Git ブランチまたはタグ(デフォルトはリポジトリのデフォルトブランチ) |

366| `sha` | string | オプション。完全な 40 文字の Git コミット SHA で正確なバージョンに固定 |

367 

368### npm パッケージ

369 

370npm パッケージとして配布されるプラグインは、`npm install` を使用してインストールされます。これは、公開 npm レジストリまたはチームがホストするプライベートレジストリ上の任意のパッケージで機能します。

371 

372```json theme={null}

373{

374 "name": "my-npm-plugin",

375 "source": {

376 "source": "npm",

377 "package": "@acme/claude-plugin"

378 }

379}

380```

381 

382特定のバージョンに固定するには、`version` フィールドを追加します。

383 

384```json theme={null}

385{

386 "name": "my-npm-plugin",

387 "source": {

388 "source": "npm",

389 "package": "@acme/claude-plugin",

390 "version": "2.1.0"

391 }

392}

393```

394 

395プライベートまたは内部レジストリからインストールするには、`registry` フィールドを追加します。

396 

397```json theme={null}

398{

399 "name": "my-npm-plugin",

400 "source": {

401 "source": "npm",

402 "package": "@acme/claude-plugin",

403 "version": "^2.0.0",

404 "registry": "https://npm.example.com"

405 }

406}

407```

408 

409| フィールド | タイプ | 説明 |

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

411| `package` | string | 必須。パッケージ名またはスコープ付きパッケージ(例:`@org/plugin`) |

412| `version` | string | オプション。バージョンまたはバージョン範囲(例:`2.1.0`、`^2.0.0`、`~1.5.0`) |

413| `registry` | string | オプション。カスタム npm レジストリ URL。デフォルトはシステム npm レジストリ(通常は npmjs.org) |

414 

415### 高度なプラグインエントリ

416 

417この例は、commands、agents、hooks、MCP サーバーのカスタムパスを含む、多くのオプションフィールドを使用するプラグインエントリを示しています。

418 

419```json theme={null}

420{

421 "name": "enterprise-tools",

422 "source": {

423 "source": "github",

424 "repo": "company/enterprise-plugin"

425 },

426 "description": "Enterprise workflow automation tools",

427 "version": "2.1.0",

428 "author": {

429 "name": "Enterprise Team",

430 "email": "enterprise@example.com"

431 },

432 "homepage": "https://docs.example.com/plugins/enterprise-tools",

433 "repository": "https://github.com/company/enterprise-plugin",

434 "license": "MIT",

435 "keywords": ["enterprise", "workflow", "automation"],

436 "category": "productivity",

437 "commands": [

438 "./commands/core/",

439 "./commands/enterprise/",

440 "./commands/experimental/preview.md"

441 ],

442 "agents": ["./agents/security-reviewer.md", "./agents/compliance-checker.md"],

443 "hooks": {

444 "PostToolUse": [

445 {

446 "matcher": "Write|Edit",

447 "hooks": [

448 {

449 "type": "command",

450 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"

451 }

452 ]

453 }

454 ]

455 },

456 "mcpServers": {

457 "enterprise-db": {

458 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

459 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]

460 }

461 },

462 "strict": false

463}

464```

465 

466注目すべき重要な点:

467 

468* **`commands` と `agents`**:複数のディレクトリまたは個別のファイルを指定できます。パスはプラグインルートに相対的です。

469* **`${CLAUDE_PLUGIN_ROOT}`**:hooks と MCP サーバー設定でこの変数を使用して、プラグインのインストールディレクトリ内のファイルを参照します。プラグインはインストール時にキャッシュロケーションにコピーされるため、これは必要です。永続的なデータまたはプラグイン更新後も保持する必要がある状態については、代わりに [`${CLAUDE_PLUGIN_DATA}`](/ja/plugins-reference#persistent-data-directory) を使用します。

470* **`strict: false`**:これが false に設定されているため、プラグインは独自の `plugin.json` を必要としません。マーケットプレイスエントリがすべてを定義します。以下の[厳密モード](#strict-mode)を参照してください。

471 

472### 厳密モード

473 

474`strict` フィールドは、`plugin.json` がコンポーネント定義(skills、agents、hooks、MCP サーバー、出力スタイル)の権限であるかどうかを制御します。

475 

476| 値 | 動作 |

477| :------------ | :----------------------------------------------------------------------------------------- |

478| `true`(デフォルト) | `plugin.json` が権限です。マーケットプレイスエントリは追加のコンポーネントで補足でき、両方のソースがマージされます。 |

479| `false` | マーケットプレイスエントリが完全な定義です。プラグインに `plugin.json` があってコンポーネントを宣言している場合、それは競合であり、プラグインは読み込みに失敗します。 |

480 

481**各モードを使用する場合:**

482 

483* **`strict: true`**:プラグインは独自の `plugin.json` を持ち、独自のコンポーネントを管理します。マーケットプレイスエントリは上に追加の skills または hooks を追加できます。これはデフォルトで、ほとんどのプラグインで機能します。

484* **`strict: false`**:マーケットプレイスオペレーターが完全に制御したい場合。プラグインリポジトリは生ファイルを提供し、マーケットプレイスエントリはそれらのファイルのどれが skills、agents、hooks などとして公開されるかを定義します。マーケットプレイスがプラグイン作成者の意図と異なる方法でプラグインのコンポーネントを再構成またはキュレートする場合に便利です。

485 

486## マーケットプレイスのホストと配布

487 

488### GitHub でホスト(推奨)

489 

490GitHub は最も簡単な配布方法を提供します。

491 

4921. **リポジトリを作成**:マーケットプレイス用の新しいリポジトリを設定します

4932. **マーケットプレイスファイルを追加**:プラグイン定義を含む `.claude-plugin/marketplace.json` を作成します

4943. **チームと共有**:ユーザーが `/plugin marketplace add owner/repo` でマーケットプレイスを追加します

495 

496**メリット**:組み込みバージョン管理、問題追跡、チームコラボレーション機能。

497 

498### 他の Git サービスでホスト

499 

500GitLab、Bitbucket、自己ホスト型サーバーなど、任意の Git ホスティングサービスが機能します。ユーザーは完全なリポジトリ URL で追加します。

501 

502```shell theme={null}

503/plugin marketplace add https://gitlab.com/company/plugins.git

504```

505 

506### プライベートリポジトリ

507 

508Claude Code はプライベートリポジトリからプラグインをインストールすることをサポートしています。手動インストールと更新の場合、Claude Code は既存の Git 認証情報ヘルパーを使用するため、HTTPS アクセスは `gh auth login`、macOS キーチェーン、または `git-credential-store` 経由で機能し、ターミナルと同じように動作します。SSH アクセスは、ホストが既に `known_hosts` ファイルにあり、キーが `ssh-agent` に読み込まれている限り機能します。Claude Code はホストフィンガープリントとキーパスフレーズの対話的な SSH プロンプトを抑制するためです。

509 

510バックグラウンド自動更新は、認証情報ヘルパーなしで起動時に実行されます。これは、対話的なプロンプトが Claude Code の起動をブロックするためです。プライベートマーケットプレイスの自動更新を有効にするには、環境に適切な認証トークンを設定します。

511 

512| プロバイダー | 環境変数 | 注記 |

513| :-------- | :---------------------------- | :----------------------------- |

514| GitHub | `GITHUB_TOKEN` または `GH_TOKEN` | 個人用アクセストークンまたは GitHub App トークン |

515| GitLab | `GITLAB_TOKEN` または `GL_TOKEN` | 個人用アクセストークンまたはプロジェクトトークン |

516| Bitbucket | `BITBUCKET_TOKEN` | アプリパスワードまたはリポジトリアクセストークン |

517 

518シェル設定(例:`.bashrc`、`.zshrc`)でトークンを設定するか、Claude Code を実行するときに渡します。

519 

520```bash theme={null}

521export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

522```

523 

524<Note>

525 CI/CD 環境の場合、トークンをシークレット環境変数として設定します。GitHub Actions は同じ組織内のリポジトリに対して `GITHUB_TOKEN` を自動的に提供します。

526</Note>

527 

528### 配布前にローカルでテスト

529 

530共有する前にマーケットプレイスをローカルでテストします。

531 

532```shell theme={null}

533/plugin marketplace add ./my-local-marketplace

534/plugin install test-plugin@my-local-marketplace

535```

536 

537add コマンドの完全な範囲(GitHub、Git URL、ローカルパス、リモート URL)については、[マーケットプレイスの追加](/ja/discover-plugins#add-marketplaces)を参照してください。

538 

539### チーム向けマーケットプレイスの要求

540 

541リポジトリを設定して、チームメンバーがプロジェクトフォルダを信頼するときにマーケットプレイスをインストールするよう自動的に促されるようにできます。マーケットプレイスを `.claude/settings.json` に追加します。

542 

543```json theme={null}

544{

545 "extraKnownMarketplaces": {

546 "company-tools": {

547 "source": {

548 "source": "github",

549 "repo": "your-org/claude-plugins"

550 }

551 }

552 }

553}

554```

555 

556デフォルトで有効にするプラグインを指定することもできます。

557 

558```json theme={null}

559{

560 "enabledPlugins": {

561 "code-formatter@company-tools": true,

562 "deployment-tools@company-tools": true

563 }

564}

565```

566 

567完全な設定オプションについては、[プラグイン設定](/ja/settings#plugin-settings)を参照してください。

568 

569<Note>

570 ローカル `directory` または `file` ソースを相対パスで使用する場合、パスはリポジトリのメインチェックアウトに対して解決されます。Git worktrees から Claude Code を実行する場合、パスはメインチェックアウトを指し続けるため、すべての worktrees は同じマーケットプレイスロケーションを共有します。マーケットプレイス状態は、プロジェクトごとではなく、ユーザーごとに 1 回 `~/.claude/plugins/known_marketplaces.json` に保存されます。

571</Note>

572 

573### コンテナ用にプラグインを事前入力する

574 

575コンテナイメージと CI 環境の場合、ビルド時にプラグインディレクトリを事前入力して、Claude Code が実行時にクローンすることなく、マーケットプレイスとプラグインが既に利用可能な状態で起動するようにできます。`CLAUDE_CODE_PLUGIN_SEED_DIR` 環境変数をこのディレクトリを指すように設定します。

576 

577複数のシードディレクトリをレイヤーするには、Unix では `:` で、Windows では `;` でパスを区切ります。Claude Code は各ディレクトリを順番に検索し、特定のマーケットプレイスまたはプラグインキャッシュを含む最初のシードが優先されます。

578 

579シードディレクトリは `~/.claude/plugins` の構造をミラーリングします。

580 

581```

582$CLAUDE_CODE_PLUGIN_SEED_DIR/

583 known_marketplaces.json

584 marketplaces/<name>/...

585 cache/<marketplace>/<plugin>/<version>/...

586```

587 

588シードディレクトリを構築するには、イメージビルド中に Claude Code を 1 回実行し、必要なプラグインをインストールしてから、結果の `~/.claude/plugins` ディレクトリをイメージにコピーして、`CLAUDE_CODE_PLUGIN_SEED_DIR` をそれを指すように設定します。

589 

590コピーステップをスキップするには、ビルド中に `CLAUDE_CODE_PLUGIN_CACHE_DIR` をターゲットシードパスに設定して、プラグインが直接そこにインストールされるようにします。

591 

592```bash theme={null}

593CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins

594CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins

595```

596 

597その後、コンテナのランタイム環境で `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` を設定して、Claude Code が起動時にシードから読み込むようにします。

598 

599起動時に、Claude Code はシードの `known_marketplaces.json` にあるマーケットプレイスをプライマリ設定に登録し、`cache/` の下にあるプラグインキャッシュを再クローンせずに使用します。これは対話モードと `-p` フラグを使用した非対話モードの両方で機能します。

600 

601動作の詳細:

602 

603* **読み取り専用**:シードディレクトリは書き込まれません。読み取り専用ファイルシステムで git pull が失敗するため、シードマーケットプレイスの自動更新は無効になります。

604* **シードエントリが優先**:シードで宣言されたマーケットプレイスは、起動時にユーザー設定の一致するエントリを上書きします。シードプラグインをオプトアウトするには、マーケットプレイスを削除するのではなく `/plugin disable` を使用します。

605* **パス解決**:Claude Code はシードの JSON に保存されているパスを信頼するのではなく、実行時に `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` をプローブしてマーケットプレイスコンテンツを見つけます。これは、シードがビルド時と異なるパスにマウントされている場合でも、シードが正しく機能することを意味します。

606* **変更がブロックされます**:シードで管理されているマーケットプレイスに対して `/plugin marketplace remove` または `/plugin marketplace update` を実行すると、管理者にシードイメージを更新するよう指示するガイダンスで失敗します。

607* **設定と構成**:`extraKnownMarketplaces` または `enabledPlugins` がシードに既に存在するマーケットプレイスを宣言している場合、Claude Code はクローンする代わりにシードコピーを使用します。

608 

609### 管理マーケットプレイスの制限

610 

611プラグインソースを厳密に制御する必要がある組織の場合、管理者は管理設定の [`strictKnownMarketplaces`](/ja/settings#strictknownmarketplaces) 設定を使用して、ユーザーが追加できるプラグインマーケットプレイスを制限できます。

612 

613`strictKnownMarketplaces` が管理設定で設定されている場合、制限動作は値によって異なります。

614 

615| 値 | 動作 |

616| ---------- | -------------------------------------- |

617| 未定義(デフォルト) | 制限なし。ユーザーは任意のマーケットプレイスを追加できます |

618| 空配列 `[]` | 完全なロックダウン。ユーザーは新しいマーケットプレイスを追加できません |

619| ソースのリスト | ユーザーはホワイトリストと正確に一致するマーケットプレイスのみを追加できます |

620 

621#### 一般的な設定

622 

623すべてのマーケットプレイス追加を無効にする:

624 

625```json theme={null}

626{

627 "strictKnownMarketplaces": []

628}

629```

630 

631特定のマーケットプレイスのみを許可する:

632 

633```json theme={null}

634{

635 "strictKnownMarketplaces": [

636 {

637 "source": "github",

638 "repo": "acme-corp/approved-plugins"

639 },

640 {

641 "source": "github",

642 "repo": "acme-corp/security-tools",

643 "ref": "v2.0"

644 },

645 {

646 "source": "url",

647 "url": "https://plugins.example.com/marketplace.json"

648 }

649 ]

650}

651```

652 

653ホストの正規表現パターンマッチングを使用して、内部 Git サーバーからのすべてのマーケットプレイスを許可する。これは [GitHub Enterprise Server](/ja/github-enterprise-server#plugin-marketplaces-on-ghes) または自己ホスト型 GitLab インスタンスの推奨アプローチです。

654 

655```json theme={null}

656{

657 "strictKnownMarketplaces": [

658 {

659 "source": "hostPattern",

660 "hostPattern": "^github\\.example\\.com$"

661 }

662 ]

663}

664```

665 

666パスの正規表現パターンマッチングを使用して、特定のディレクトリからのファイルシステムベースのマーケットプレイスを許可する:

667 

668```json theme={null}

669{

670 "strictKnownMarketplaces": [

671 {

672 "source": "pathPattern",

673 "pathPattern": "^/opt/approved/"

674 }

675 ]

676}

677```

678 

679`pathPattern` として `".*"` を使用して、ネットワークソースを `hostPattern` で制御しながら、任意のファイルシステムパスを許可します。

680 

681<Note>

682 `strictKnownMarketplaces` はユーザーが追加できるものを制限しますが、マーケットプレイスを自動的に登録しません。許可されたマーケットプレイスをユーザーが `/plugin marketplace add` を実行せずに自動的に利用可能にするには、同じ `managed-settings.json` で [`extraKnownMarketplaces`](/ja/settings#extraknownmarketplaces) と組み合わせます。[両方を一緒に使用する](/ja/settings#strictknownmarketplaces)を参照してください。

683</Note>

684 

685#### 制限の仕組み

686 

687制限はネットワークまたはファイルシステム操作の前にチェックされます。チェックはマーケットプレイス追加時およびプラグインのインストール、更新、リフレッシュ、自動更新時に実行されます。マーケットプレイスがポリシー設定前に追加され、そのソースがホワイトリストと一致しなくなった場合、Claude Code はそこからプラグインをインストールまたは更新することを拒否します。同じ強制が `blockedMarketplaces` に適用されます。

688 

689ホワイトリストはほとんどのソースタイプに対して正確なマッチングを使用します。マーケットプレイスが許可されるには、指定されたすべてのフィールドが正確に一致する必要があります。

690 

691* GitHub ソースの場合:`repo` は必須で、ホワイトリストで指定されている場合は `ref` または `path` も一致する必要があります

692* URL ソースの場合:完全な URL が正確に一致する必要があります

693* `hostPattern` ソースの場合:マーケットプレイスホストが正規表現パターンと照合されます

694* `pathPattern` ソースの場合:マーケットプレイスのファイルシステムパスが正規表現パターンと照合されます

695 

696`strictKnownMarketplaces` は[管理設定](/ja/settings#settings-files)で設定されるため、個別のユーザーとプロジェクト設定はこれらの制限をオーバーライドできません。

697 

698完全な設定詳細(サポートされているすべてのソースタイプと `extraKnownMarketplaces` との比較を含む)については、[strictKnownMarketplaces リファレンス](/ja/settings#strictknownmarketplaces)を参照してください。

699 

700### バージョン解決とリリースチャネル

701 

702プラグインバージョンはキャッシュパスと更新検出を決定します。解決されたバージョンがユーザーが既に持っているものと一致する場合、`/plugin update` と自動更新はプラグインをスキップします。

703 

704Claude Code はプラグインのバージョンを以下の最初のものから解決します。

705 

7061. プラグインの `plugin.json` の `version`

7072. プラグインのマーケットプレイスエントリの `version`

7083. プラグインのソースの Git コミット SHA

709 

710Git ベースのソースタイプ `github`、`url`、`git-subdir`、および Git ホスト型マーケットプレイス内の相対パスの場合、`version` を完全に省略でき、すべての新しいコミットが新しいバージョンとして扱われます。これは内部または積極的に開発されているプラグインの最も簡単なセットアップです。

711 

712<Warning>

713 `version` を設定するとプラグインがピンされます。`plugin.json` が `"version": "1.0.0"` を宣言している場合、その文字列を変更せずに新しいコミットをプッシュしても、Claude Code が同じバージョンを見て、キャッシュされたコピーを保持するため、既存のユーザーには何も起こりません。すべてのリリースでフィールドをバンプするか、コミット SHA を使用するために省略します。

714 

715 `plugin.json` とマーケットプレイスエントリの両方で `version` を設定することを避けてください。`plugin.json` の値は常に無言で優先されるため、古いマニフェストバージョンが `marketplace.json` で設定したバージョンをマスクできます。

716</Warning>

717 

718#### リリースチャネルの設定

719 

720プラグインの「安定」と「最新」リリースチャネルをサポートするには、同じリポジトリの異なる ref または SHA を指す 2 つのマーケットプレイスを設定できます。その後、[管理設定](/ja/settings#settings-files)を通じて 2 つのマーケットプレイスを異なるユーザーグループに割り当てることができます。

721 

722<Warning>

723 各チャネルは異なるバージョンに解決される必要があります。明示的なバージョンを使用する場合、`plugin.json` は各ピンされた ref で異なる `version` を宣言する必要があります。`version` を省略する場合、異なるコミット SHA が既にチャネルを区別しています。2 つの ref が同じバージョン文字列に解決される場合、Claude Code はそれらを同一として扱い、更新をスキップします。

724</Warning>

725 

726##### 例

727 

728```json theme={null}

729{

730 "name": "stable-tools",

731 "plugins": [

732 {

733 "name": "code-formatter",

734 "source": {

735 "source": "github",

736 "repo": "acme-corp/code-formatter",

737 "ref": "stable"

738 }

739 }

740 ]

741}

742```

743 

744```json theme={null}

745{

746 "name": "latest-tools",

747 "plugins": [

748 {

749 "name": "code-formatter",

750 "source": {

751 "source": "github",

752 "repo": "acme-corp/code-formatter",

753 "ref": "latest"

754 }

755 }

756 ]

757}

758```

759 

760##### チャネルをユーザーグループに割り当てる

761 

762管理設定を通じて各マーケットプレイスを適切なユーザーグループに割り当てます。例えば、安定グループは以下を受け取ります。

763 

764```json theme={null}

765{

766 "extraKnownMarketplaces": {

767 "stable-tools": {

768 "source": {

769 "source": "github",

770 "repo": "acme-corp/stable-tools"

771 }

772 }

773 }

774}

775```

776 

777早期アクセスグループは代わりに `latest-tools` を受け取ります。

778 

779```json theme={null}

780{

781 "extraKnownMarketplaces": {

782 "latest-tools": {

783 "source": {

784 "source": "github",

785 "repo": "acme-corp/latest-tools"

786 }

787 }

788 }

789}

790```

791 

792#### プラグイン依存関係バージョンをピンする

793 

794プラグインは依存関係を semver 範囲に制限して、依存関係の更新が依存プラグインを破壊しないようにできます。`{plugin-name}--v{version}` Git タグ規約、範囲構文、および同じ依存関係に対する複数の制約がどのように組み合わされるかについては、[プラグイン依存関係バージョンを制限する](/ja/plugin-dependencies)を参照してください。

795 

796## 検証とテスト

797 

798共有する前にマーケットプレイスをテストします。

799 

800マーケットプレイス JSON 構文を検証します。

801 

802```bash theme={null}

803claude plugin validate .

804```

805 

806または Claude Code 内から:

807 

808```shell theme={null}

809/plugin validate .

810```

811 

812テスト用にマーケットプレイスを追加します。

813 

814```shell theme={null}

815/plugin marketplace add ./path/to/marketplace

816```

817 

818すべてが機能することを確認するためにテストプラグインをインストールします。

819 

820```shell theme={null}

821/plugin install test-plugin@marketplace-name

822```

823 

824完全なプラグインテストワークフローについては、[プラグインをローカルでテスト](/ja/plugins#test-your-plugins-locally)を参照してください。技術的なトラブルシューティングについては、[プラグインリファレンス](/ja/plugins-reference)を参照してください。

825 

826## CLI からマーケットプレイスを管理する

827 

828Claude Code は、スクリプトと自動化のための非対話的な `claude plugin marketplace` サブコマンドを提供します。これらは、対話的なセッション内で利用可能な `/plugin marketplace` コマンドと同等です。

829 

830### プラグインマーケットプレイス追加

831 

832GitHub リポジトリ、Git URL、リモート URL、またはローカルパスからマーケットプレイスを追加します。

833 

834```bash theme={null}

835claude plugin marketplace add <source> [options]

836```

837 

838**引数:**

839 

840* `<source>`:GitHub `owner/repo` ショートハンド、Git URL、`marketplace.json` ファイルへのリモート URL、またはローカルディレクトリパス。ブランチまたはタグに固定するには、GitHub ショートハンドに `@ref` を追加するか、Git URL に `#ref` を追加します

841 

842**オプション:**

843 

844| オプション | 説明 | デフォルト |

845| :-------------------- | :------------------------------------------------------------------------------------------------------------------------- | :----- |

846| `--scope <scope>` | マーケットプレイスを宣言する場所:`user`、`project`、または `local`。[プラグインインストールスコープ](/ja/plugins-reference#plugin-installation-scopes)を参照してください | `user` |

847| `--sparse <paths...>` | Git スパースチェックアウト経由で特定のディレクトリにチェックアウトを制限します。モノレポに便利です | |

848 

849GitHub から `owner/repo` ショートハンドを使用してマーケットプレイスを追加します。

850 

851```bash theme={null}

852claude plugin marketplace add acme-corp/claude-plugins

853```

854 

855`@ref` を使用して特定のブランチまたはタグに固定します。

856 

857```bash theme={null}

858claude plugin marketplace add acme-corp/claude-plugins@v2.0

859```

860 

861非 GitHub ホスト上の Git URL から追加します。

862 

863```bash theme={null}

864claude plugin marketplace add https://gitlab.example.com/team/plugins.git

865```

866 

867`marketplace.json` ファイルを直接提供するリモート URL から追加します。

868 

869```bash theme={null}

870claude plugin marketplace add https://example.com/marketplace.json

871```

872 

873テスト用にローカルディレクトリから追加します。

874 

875```bash theme={null}

876claude plugin marketplace add ./my-marketplace

877```

878 

879マーケットプレイスをプロジェクトスコープで宣言して、`.claude/settings.json` 経由でチームと共有します。

880 

881```bash theme={null}

882claude plugin marketplace add acme-corp/claude-plugins --scope project

883```

884 

885モノレポの場合、プラグインコンテンツを含むディレクトリにチェックアウトを制限します。

886 

887```bash theme={null}

888claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

889```

890 

891### プラグインマーケットプレイスリスト

892 

893設定されたすべてのマーケットプレイスをリストします。

894 

895```bash theme={null}

896claude plugin marketplace list [options]

897```

898 

899**オプション:**

900 

901| オプション | 説明 |

902| :------- | :--------- |

903| `--json` | JSON として出力 |

904 

905### プラグインマーケットプレイス削除

906 

907設定されたマーケットプレイスを削除します。エイリアス `rm` も受け入れられます。

908 

909```bash theme={null}

910claude plugin marketplace remove <name>

911```

912 

913**引数:**

914 

915* `<name>`:削除するマーケットプレイス名。`claude plugin marketplace list` で表示されます。これは渡したソースではなく、`marketplace.json` の `name` です

916 

917<Warning>

918 マーケットプレイスを削除すると、そこからインストールしたプラグインもアンインストールされます。インストール済みプラグインを失わずにマーケットプレイスを更新するには、`claude plugin marketplace update` を使用してください。

919</Warning>

920 

921### プラグインマーケットプレイス更新

922 

923マーケットプレイスをソースから更新して、新しいプラグインとバージョン変更を取得します。

924 

925```bash theme={null}

926claude plugin marketplace update [name]

927```

928 

929**引数:**

930 

931* `[name]`:更新するマーケットプレイス名。`claude plugin marketplace list` で表示されます。省略した場合はすべてのマーケットプレイスを更新します

932 

933`remove` と `update` の両方は、読み取り専用のシード管理マーケットプレイスに対して実行すると失敗します。すべてのマーケットプレイスを更新する場合、シード管理エントリはスキップされ、他のマーケットプレイスは引き続き更新されます。シード提供プラグインを変更するには、管理者にシードイメージを更新するよう依頼してください。[コンテナ用にプラグインを事前入力する](#pre-populate-plugins-for-containers)を参照してください。

934 

935## トラブルシューティング

936 

937### マーケットプレイスが読み込まれない

938 

939**症状**:マーケットプレイスを追加できない、またはそこからプラグインが表示されない

940 

941**解決策**:

942 

943* マーケットプレイス URL がアクセス可能であることを確認します

944* `.claude-plugin/marketplace.json` が指定されたパスに存在することを確認します

945* `claude plugin validate` または `/plugin validate` を使用して JSON 構文が有効であることを確認します

946* プライベートリポジトリの場合、アクセス権限があることを確認します

947 

948### マーケットプレイス検証エラー

949 

950マーケットプレイスディレクトリから `claude plugin validate .` または `/plugin validate .` を実行して、問題をチェックします。バリデーターは `plugin.json`、skill/agent/command frontmatter、および `hooks/hooks.json` の構文とスキーマエラーをチェックします。一般的なエラー:

951 

952| エラー | 原因 | 解決策 |

953| :------------------------------------------------ | :---------------------------------- | :--------------------------------------------------------------------- |

954| `File not found: .claude-plugin/marketplace.json` | マニフェストが見つかりません | 必須フィールドを含む `.claude-plugin/marketplace.json` を作成します |

955| `Invalid JSON syntax: Unexpected token...` | JSON 構文エラー | コンマの欠落、余分なコンマ、または引用符なしの文字列をチェックします |

956| `Duplicate plugin name "x" found in marketplace` | 2 つのプラグインが同じ名前を共有しています | 各プラグインに一意の `name` 値を指定します |

957| `plugins[0].source: Path contains ".."` | ソースパスに `..` が含まれています | マーケットプレイスルートに相対的なパスを使用し、`..` なしで使用します。[相対パス](#relative-paths)を参照してください |

958| `YAML frontmatter failed to parse: ...` | skill、agent、またはコマンドファイルの YAML が無効です | frontmatter ブロックの YAML 構文を修正します。実行時にこのファイルはメタデータなしで読み込まれます。 |

959| `Invalid JSON syntax: ...`(hooks.json) | 不正な形式の `hooks/hooks.json` | JSON 構文を修正します。不正な形式の `hooks/hooks.json` はプラグイン全体の読み込みを防ぎます。 |

960 

961**警告**(ブロッキングなし):

962 

963* `Marketplace has no plugins defined`:`plugins` 配列に少なくとも 1 つのプラグインを追加します

964* `No marketplace description provided`:ユーザーがマーケットプレイスを理解するのに役立つように、トップレベルの `description` を追加します

965* `Plugin name "x" is not kebab-case`:プラグイン名に大文字、スペース、または特殊文字が含まれています。小文字、数字、ハイフンのみに名前を変更します(例:`my-plugin`)。Claude Code は他の形式を受け入れますが、Claude.ai マーケットプレイス同期はそれらを拒否します。

966 

967### プラグインインストール失敗

968 

969**症状**:マーケットプレイスは表示されますが、プラグインインストールが失敗します

970 

971**解決策**:

972 

973* プラグインソース URL がアクセス可能であることを確認します

974* プラグインディレクトリに必須ファイルが含まれていることを確認します

975* GitHub ソースの場合、リポジトリが公開されているか、アクセス権限があることを確認します

976* プラグインソースを手動でクローン/ダウンロードしてテストします

977 

978### プライベートリポジトリ認証が失敗する

979 

980**症状**:プライベートリポジトリからプラグインをインストールするときに認証エラーが発生します

981 

982**解決策**:

983 

984手動インストールと更新の場合:

985 

986* Git プロバイダーで認証されていることを確認します(例:GitHub の場合は `gh auth status` を実行)

987* 認証情報ヘルパーが正しく設定されていることを確認します:`git config --global credential.helper`

988* リポジトリを手動でクローンして、認証情報が機能することを確認します

989 

990バックグラウンド自動更新の場合:

991 

992* 環境でトークンが設定されていることを確認します:`echo $GITHUB_TOKEN`

993* トークンに必要な権限があることを確認します(リポジトリへの読み取りアクセス)

994* GitHub の場合、トークンがプライベートリポジトリの `repo` スコープを持つことを確認します

995* GitLab の場合、トークンが少なくとも `read_repository` スコープを持つことを確認します

996* トークンが期限切れになっていないことを確認します

997 

998### オフライン環境でマーケットプレイス更新が失敗する

999 

1000**症状**:マーケットプレイス `git pull` が失敗し、Claude Code が既存のキャッシュをワイプするため、プラグインが利用不可になります。

1001 

1002**原因**:デフォルトでは、`git pull` が失敗すると、Claude Code は古いクローンを削除して再クローンを試みます。オフラインまたはエアギャップ環境では、再クローンが同じ方法で失敗し、マーケットプレイスディレクトリが空になります。

1003 

1004**解決策**:`CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` を設定して、プルが失敗したときにワイプする代わりに既存のキャッシュを保持します:

1005 

1006```bash theme={null}

1007export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

1008```

1009 

1010この変数を設定すると、Claude Code は `git pull` 失敗時に古いマーケットプレイスクローンを保持し、最後の既知の良好な状態を使用し続けます。リポジトリに到達できないオフライン展開の場合は、代わりに [`CLAUDE_CODE_PLUGIN_SEED_DIR`](#pre-populate-plugins-for-containers) を使用してビルド時にプラグインディレクトリを事前入力します。

1011 

1012### Git 操作がタイムアウトする

1013 

1014**症状**:プラグインインストールまたはマーケットプレイス更新が「Git clone timed out after 120s」または「Git pull timed out after 120s」などのタイムアウトエラーで失敗します。

1015 

1016**原因**:Claude Code は、プラグインリポジトリのクローンやマーケットプレイス更新のプルを含む、すべての Git 操作に 120 秒のタイムアウトを使用します。大規模なリポジトリまたは遅いネットワーク接続がこの制限を超える可能性があります。

1017 

1018**解決策**:`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` 環境変数を使用してタイムアウトを増やします。値はミリ秒単位です:

1019 

1020```bash theme={null}

1021export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000 # 5 分

1022```

1023 

1024### 相対パスを持つプラグインが URL ベースのマーケットプレイスで失敗する

1025 

1026**症状**:URL(`https://example.com/marketplace.json` など)経由でマーケットプレイスを追加しましたが、`"./plugins/my-plugin"` のような相対パスソースを持つプラグインが「path not found」エラーでインストールに失敗します。

1027 

1028**原因**:URL ベースのマーケットプレイスは `marketplace.json` ファイル自体のみをダウンロードします。サーバーからプラグインファイルをダウンロードしません。マーケットプレイスエントリの相対パスは、ダウンロードされなかったリモートサーバー上のファイルを参照します。

1029 

1030**解決策**:

1031 

1032* **外部ソースを使用**:プラグインエントリを相対パスの代わりに GitHub、npm、または Git URL ソースを使用するように変更します:

1033 ```json theme={null}

1034 { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

1035 ```

1036* **Git ベースのマーケットプレイスを使用**:マーケットプレイスを Git リポジトリでホストし、Git URL で追加します。Git ベースのマーケットプレイスはリポジトリ全体をクローンするため、相対パスが正しく機能します。

1037 

1038### インストール後にファイルが見つからない

1039 

1040**症状**:プラグインはインストールされますが、ファイルへの参照が失敗します。特に、プラグインディレクトリの外部のファイル

1041 

1042**原因**:プラグインはインプレイスで使用されるのではなく、キャッシュディレクトリにコピーされます。プラグインディレクトリの外部のファイルを参照するパス(`../shared-utils` など)は、それらのファイルがコピーされないため機能しません。

1043 

1044**解決策**:symlinks とディレクトリ再構成を含む回避策については、[プラグインキャッシングとファイル解決](/ja/plugins-reference#plugin-caching-and-file-resolution)を参照してください。

1045 

1046追加のデバッグツールと一般的な問題については、[デバッグと開発ツール](/ja/plugins-reference#debugging-and-development-tools)を参照してください。

1047 

1048## 関連項目

1049 

1050* [既成プラグインの検出とインストール](/ja/discover-plugins) - 既存のマーケットプレイスからプラグインをインストール

1051* [プラグイン](/ja/plugins) - 独自のプラグインの作成

1052* [プラグインリファレンス](/ja/plugins-reference) - 完全な技術仕様とスキーマ

1053* [プラグイン設定](/ja/settings#plugin-settings) - プラグイン設定オプション

1054* [strictKnownMarketplaces リファレンス](/ja/settings#strictknownmarketplaces) - 管理マーケットプレイス制限

plugins.md +454 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# プラグインを作成する

6 

7> スキル、エージェント、フック、MCP サーバーで Claude Code を拡張するカスタムプラグインを作成します。

8 

9プラグインを使用すると、Claude Code をカスタム機能で拡張でき、プロジェクトとチーム全体で共有できます。このガイドでは、スキル、エージェント、フック、MCP サーバーを使用して独自のプラグインを作成する方法について説明します。

10 

11既存のプラグインをインストールしたいですか?[プラグインを検出してインストールする](/ja/discover-plugins)を参照してください。完全な技術仕様については、[プラグインリファレンス](/ja/plugins-reference)を参照してください。

12 

13## プラグインとスタンドアロン設定を使い分ける

14 

15Claude Code では、カスタムスキル、エージェント、フックを追加する 2 つの方法をサポートしています。

16 

17| アプローチ | スキル名 | 最適な用途 |

18| :------------------------------------------------ | :------------------- | :--------------------------------------------------- |

19| **スタンドアロン**(`.claude/` ディレクトリ) | `/hello` | 個人的なワークフロー、プロジェクト固有のカスタマイズ、クイック実験 |

20| **プラグイン**(`.claude-plugin/plugin.json` を含むディレクトリ) | `/plugin-name:hello` | チームメンバーとの共有、コミュニティへの配布、バージョン管理されたリリース、プロジェクト全体で再利用可能 |

21 

22**スタンドアロン設定を使用する場合**:

23 

24* 単一のプロジェクト用に Claude Code をカスタマイズしている

25* 設定が個人的で共有する必要がない

26* スキルやフックをパッケージ化する前に実験している

27* `/hello` や `/deploy` のような短いスキル名が必要

28 

29**プラグインを使用する場合**:

30 

31* 機能をチームまたはコミュニティと共有したい

32* 複数のプロジェクト全体で同じスキル/エージェントが必要

33* 拡張機能のバージョン管理と簡単な更新が必要

34* マーケットプレイスを通じて配布している

35* `/my-plugin:hello` のような名前空間付きスキルで問題ない(名前空間はプラグイン間の競合を防ぎます)

36 

37<Tip>

38 `.claude/` でスタンドアロン設定を使用してクイック反復を行い、共有する準備ができたら[既存の設定をプラグインに変換](#convert-existing-configurations-to-plugins)してください。

39</Tip>

40 

41## クイックスタート

42 

43このクイックスタートでは、カスタムスキルを使用してプラグインを作成する手順を説明します。マニフェスト(プラグインを定義する設定ファイル)を作成し、スキルを追加して、`--plugin-dir` フラグを使用してローカルでテストします。

44 

45### 前提条件

46 

47* Claude Code [インストール済みで認証済み](/ja/quickstart#step-1-install-claude-code)

48 

49<Note>

50 `/plugin` コマンドが表示されない場合は、Claude Code を最新バージョンに更新してください。アップグレード手順については、[トラブルシューティング](/ja/troubleshooting)を参照してください。

51</Note>

52 

53### 最初のプラグインを作成する

54 

55<Steps>

56 <Step title="プラグインディレクトリを作成する">

57 すべてのプラグインは、マニフェストとスキル、エージェント、またはフックを含む独自のディレクトリに存在します。今すぐ作成してください。

58 

59 ```bash theme={null}

60 mkdir my-first-plugin

61 ```

62 </Step>

63 

64 <Step title="プラグインマニフェストを作成する">

65 `.claude-plugin/plugin.json` のマニフェストファイルは、プラグインの ID(名前、説明、バージョン)を定義します。Claude Code はこのメタデータを使用して、プラグインマネージャーにプラグインを表示します。

66 

67 プラグインフォルダ内に `.claude-plugin` ディレクトリを作成します。

68 

69 ```bash theme={null}

70 mkdir my-first-plugin/.claude-plugin

71 ```

72 

73 次に、このコンテンツで `my-first-plugin/.claude-plugin/plugin.json` を作成します。

74 

75 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

76 {

77 "name": "my-first-plugin",

78 "description": "A greeting plugin to learn the basics",

79 "version": "1.0.0",

80 "author": {

81 "name": "Your Name"

82 }

83 }

84 ```

85 

86 | フィールド | 目的 |

87 | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

88 | `name` | 一意の識別子とスキル名前空間。スキルにはこれが接頭辞として付きます(例:`/my-first-plugin:hello`)。 |

89 | `description` | プラグインマネージャーでプラグインを参照またはインストールするときに表示されます。 |

90 | `version` | オプション。設定されている場合、ユーザーはこのフィールドをバンプしたときにのみ更新を受け取ります。省略され、プラグインが git 経由で配布される場合、コミット SHA が使用され、すべてのコミットが新しいバージョンとしてカウントされます。[バージョン管理](/ja/plugins-reference#version-management)を参照してください。 |

91 | `author` | オプション。属性に役立ちます。 |

92 

93 `homepage`、`repository`、`license` などの追加フィールドについては、[完全なマニフェストスキーマ](/ja/plugins-reference#plugin-manifest-schema)を参照してください。

94 </Step>

95 

96 <Step title="スキルを追加する">

97 スキルは `skills/` ディレクトリに存在します。各スキルは `SKILL.md` ファイルを含むフォルダです。フォルダ名がスキル名になり、プラグインの名前空間が接頭辞として付きます(`my-first-plugin` という名前のプラグイン内の `hello/` は `/my-first-plugin:hello` を作成します)。

98 

99 プラグインフォルダ内にスキルディレクトリを作成します。

100 

101 ```bash theme={null}

102 mkdir -p my-first-plugin/skills/hello

103 ```

104 

105 次に、このコンテンツで `my-first-plugin/skills/hello/SKILL.md` を作成します。

106 

107 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

108 ---

109 description: Greet the user with a friendly message

110 disable-model-invocation: true

111 ---

112 

113 Greet the user warmly and ask how you can help them today.

114 ```

115 </Step>

116 

117 <Step title="プラグインをテストする">

118 `--plugin-dir` フラグを使用して Claude Code を実行し、プラグインを読み込みます。

119 

120 ```bash theme={null}

121 claude --plugin-dir ./my-first-plugin

122 ```

123 

124 Claude Code が起動したら、新しいスキルを試してください。

125 

126 ```shell theme={null}

127 /my-first-plugin:hello

128 ```

129 

130 Claude がグリーティングで応答します。`/help` を実行して、プラグイン名前空間の下にリストされたスキルを確認してください。

131 

132 <Note>

133 **名前空間を使う理由は?** プラグインスキルは常に名前空間が付きます(`/my-first-plugin:hello` など)。複数のプラグインが同じ名前のスキルを持つ場合の競合を防ぐためです。

134 

135 名前空間プレフィックスを変更するには、`plugin.json` の `name` フィールドを更新してください。

136 </Note>

137 </Step>

138 

139 <Step title="スキル引数を追加する">

140 `$ARGUMENTS` プレースホルダーを使用してユーザー入力をキャプチャすることで、スキルを動的にします。

141 

142 `SKILL.md` ファイルを更新します。

143 

144 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

145 ---

146 description: Greet the user with a personalized message

147 ---

148 

149 # Hello Skill

150 

151 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.

152 ```

153 

154 `/reload-plugins` を実行して変更を反映させ、スキルを名前で試してください。

155 

156 ```shell theme={null}

157 /my-first-plugin:hello Alex

158 ```

159 

160 Claude があなたを名前で挨拶します。スキルに引数を渡す方法の詳細については、[スキル](/ja/skills#pass-arguments-to-skills)を参照してください。

161 </Step>

162</Steps>

163 

164これらの主要なコンポーネントを使用してプラグインを正常に作成およびテストしました。

165 

166* **プラグインマニフェスト**(`.claude-plugin/plugin.json`):プラグインのメタデータを説明します

167* **スキルディレクトリ**(`skills/`):カスタムスキルを含みます

168* **スキル引数**(`$ARGUMENTS`):動的な動作のためにユーザー入力をキャプチャします

169 

170<Tip>

171 `--plugin-dir` フラグは開発とテストに役立ちます。プラグインを他のユーザーと共有する準備ができたら、[プラグインマーケットプレイスを作成して配布する](/ja/plugin-marketplaces)を参照してください。

172</Tip>

173 

174## プラグイン構造の概要

175 

176スキルを使用してプラグインを作成しましたが、プラグインにはさらに多くの機能を含めることができます。カスタムエージェント、フック、MCP サーバー、LSP サーバー、バックグラウンドモニターです。

177 

178<Warning>

179 **よくある間違い**:`commands/`、`agents/`、`skills/`、`hooks/` を `.claude-plugin/` ディレクトリ内に配置しないでください。`plugin.json` のみが `.claude-plugin/` 内に入ります。他のすべてのディレクトリはプラグインルートレベルにある必要があります。

180</Warning>

181 

182| ディレクトリ | 場所 | 目的 |

183| :---------------- | :------- | :-------------------------------------------------------- |

184| `.claude-plugin/` | プラグインルート | `plugin.json` マニフェストを含みます(コンポーネントがデフォルトの場所を使用する場合はオプション) |

185| `skills/` | プラグインルート | `<name>/SKILL.md` ディレクトリとしてのスキル |

186| `commands/` | プラグインルート | フラットな Markdown ファイルとしてのスキル。新しいプラグインには `skills/` を使用してください |

187| `agents/` | プラグインルート | カスタムエージェント定義 |

188| `hooks/` | プラグインルート | `hooks.json` のイベントハンドラー |

189| `.mcp.json` | プラグインルート | MCP サーバー設定 |

190| `.lsp.json` | プラグインルート | コード インテリジェンス用の LSP サーバー設定 |

191| `monitors/` | プラグインルート | `monitors.json` のバックグラウンドモニター設定 |

192| `bin/` | プラグインルート | プラグインが有効になっている間に Bash ツールの `PATH` に追加される実行可能ファイル |

193| `settings.json` | プラグインルート | プラグインが有効になったときに適用されるデフォルト[設定](/ja/settings) |

194 

195<Note>

196 **次のステップ**:さらに多くの機能を追加する準備ができましたか?[より複雑なプラグインを開発する](#develop-more-complex-plugins)にジャンプして、エージェント、フック、MCP サーバー、LSP サーバーを追加してください。すべてのプラグインコンポーネントの完全な技術仕様については、[プラグインリファレンス](/ja/plugins-reference)を参照してください。

197</Note>

198 

199## より複雑なプラグインを開発する

200 

201基本的なプラグインに慣れたら、より高度な拡張機能を作成できます。

202 

203### プラグインにスキルを追加する

204 

205プラグインには、Claude の機能を拡張する[エージェントスキル](/ja/skills)を含めることができます。スキルはモデル呼び出し型です。Claude はタスクコンテキストに基づいて自動的にそれらを使用します。

206 

207プラグインルートに `skills/` ディレクトリを追加し、`SKILL.md` ファイルを含むスキルフォルダを追加します。

208 

209```text theme={null}

210my-plugin/

211├── .claude-plugin/

212│ └── plugin.json

213└── skills/

214 └── code-review/

215 └── SKILL.md

216```

217 

218各 `SKILL.md` には YAML フロントマターと指示が含まれます。Claude がスキルをいつ使用するかを知るように `description` を含めてください。

219 

220```yaml theme={null}

221---

222description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.

223---

224 

225When reviewing code, check for:

2261. Code organization and structure

2272. Error handling

2283. Security concerns

2294. Test coverage

230```

231 

232プラグインをインストールした後、`/reload-plugins` を実行してスキルを読み込みます。段階的な開示とツール制限を含む完全なスキル作成ガイダンスについては、[エージェントスキル](/ja/skills)を参照してください。

233 

234### プラグインに LSP サーバーを追加する

235 

236<Tip>

237 TypeScript、Python、Rust などの一般的な言語については、公式マーケットプレイスから事前構築された LSP プラグインをインストールしてください。既に対応されていない言語のサポートが必要な場合にのみ、カスタム LSP プラグインを作成してください。

238</Tip>

239 

240LSP(Language Server Protocol)プラグインは Claude にリアルタイムコード インテリジェンスを提供します。公式 LSP プラグインがない言語をサポートする必要がある場合は、プラグインに `.lsp.json` ファイルを追加することで、独自のプラグインを作成できます。

241 

242```json .lsp.json theme={null}

243{

244 "go": {

245 "command": "gopls",

246 "args": ["serve"],

247 "extensionToLanguage": {

248 ".go": "go"

249 }

250 }

251}

252```

253 

254プラグインをインストールするユーザーは、言語サーバーバイナリをマシンにインストールしておく必要があります。

255 

256完全な LSP 設定オプションについては、[LSP サーバー](/ja/plugins-reference#lsp-servers)を参照してください。

257 

258### プラグインにバックグラウンドモニターを追加する

259 

260バックグラウンドモニターを使用すると、プラグインはログ、ファイル、または外部ステータスをバックグラウンドで監視し、イベントが到着したときに Claude に通知できます。Claude Code はプラグインがアクティブな場合、各モニターを自動的に開始するため、Claude にモニターの開始を指示する必要はありません。

261 

262プラグインルートに `monitors/monitors.json` ファイルを追加し、モニターエントリの配列を含めます。

263 

264```json monitors/monitors.json theme={null}

265[

266 {

267 "name": "error-log",

268 "command": "tail -F ./logs/error.log",

269 "description": "Application error log"

270 }

271]

272```

273 

274`command` からの各 stdout 行は、セッション中に Claude への通知として配信されます。`when` トリガーと変数置換を含む完全なスキーマについては、[モニター](/ja/plugins-reference#monitors)を参照してください。

275 

276### プラグインでデフォルト設定を配布する

277 

278プラグインは、プラグインルートに `settings.json` ファイルを含めて、プラグインが有効になったときにデフォルト設定を適用できます。現在、`agent` と `subagentStatusLine` キーのみがサポートされています。

279 

280`agent` を設定すると、プラグインの[カスタムエージェント](/ja/sub-agents)の 1 つがメインスレッドとしてアクティブになり、そのシステムプロンプト、ツール制限、モデルが適用されます。これにより、プラグインは有効になったときに Claude Code の動作方法をデフォルトで変更できます。

281 

282```json settings.json theme={null}

283{

284 "agent": "security-reviewer"

285}

286```

287 

288この例は、プラグインの `agents/` ディレクトリで定義された `security-reviewer` エージェントをアクティブにします。`settings.json` の設定は、`plugin.json` で宣言された `settings` よりも優先されます。不明なキーは無視されます。

289 

290### 複雑なプラグインを整理する

291 

292多くのコンポーネントを持つプラグインの場合、ディレクトリ構造を機能別に整理してください。完全なディレクトリレイアウトと整理パターンについては、[プラグインディレクトリ構造](/ja/plugins-reference#plugin-directory-structure)を参照してください。

293 

294### プラグインをローカルでテストする

295 

296開発中にプラグインをテストするには、`--plugin-dir` フラグを使用してください。これにより、インストールを必要とせずにプラグインが直接読み込まれます。

297 

298```bash theme={null}

299claude --plugin-dir ./my-plugin

300```

301 

302`--plugin-dir` プラグインがインストール済みのマーケットプレイスプラグインと同じ名前を持つ場合、そのセッション中はローカルコピーが優先されます。これにより、最初にアンインストールしなくても、既にインストール済みのプラグインへの変更をテストできます。マネージド設定によって強制的に有効にされたマーケットプレイスプラグインは唯一の例外であり、オーバーライドできません。

303 

304プラグインに変更を加えると、`/reload-plugins` を実行して再起動せずに更新を反映させます。これにより、プラグイン、スキル、エージェント、フック、プラグイン MCP サーバー、プラグイン LSP サーバーが再読み込みされます。プラグインコンポーネントをテストします。

305 

306* `/plugin-name:skill-name` でスキルを試す

307* `/agents` でエージェントが表示されることを確認する

308* フックが期待どおりに機能することを確認する

309 

310<Tip>

311 フラグを複数回指定することで、複数のプラグインを一度に読み込むことができます。

312 

313 ```bash theme={null}

314 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

315 ```

316</Tip>

317 

318### プラグインの問題をデバッグする

319 

320プラグインが期待どおりに機能しない場合:

321 

3221. **構造を確認する**:ディレクトリが `.claude-plugin/` 内ではなく、プラグインルートにあることを確認してください

3232. **コンポーネントを個別にテストする**:各スキル、エージェント、フックを個別に確認してください

3243. **検証とデバッグツールを使用する**:CLI コマンドとトラブルシューティング技術については、[デバッグと開発ツール](/ja/plugins-reference#debugging-and-development-tools)を参照してください

325 

326### プラグインを共有する

327 

328プラグインを共有する準備ができたら:

329 

3301. **ドキュメントを追加する**:インストールと使用方法の指示を含む `README.md` を含めます

3312. **バージョン管理戦略を選択する**:明示的な `version` を設定するか、git コミット SHA に依存するかを決定してください。[バージョン管理](/ja/plugins-reference#version-management)を参照してください

3323. **マーケットプレイスを作成または使用する**:[プラグインマーケットプレイス](/ja/plugin-marketplaces)を通じて配布してインストールします

3334. **他のユーザーでテストする**:より広い配布の前に、チームメンバーにプラグインをテストしてもらいます

334 

335プラグインがマーケットプレイスに登録されたら、他のユーザーは[プラグインを検出してインストールする](/ja/discover-plugins)の指示を使用してインストールできます。プラグインをチーム内に保つには、[プライベートリポジトリ](/ja/plugin-marketplaces#private-repositories)でマーケットプレイスをホストしてください。

336 

337### プラグインを公式マーケットプレイスに送信する

338 

339プラグインを公式 Anthropic マーケットプレイスに送信するには、アプリ内送信フォームの 1 つを使用してください。

340 

341* **Claude.ai**:[claude.ai/settings/plugins/submit](https://claude.ai/settings/plugins/submit)

342* **Console**:[platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

343 

344プラグインが登録されたら、独自の CLI で Claude Code ユーザーにインストールを促すことができます。[CLI からプラグインを推奨する](/ja/plugin-hints)を参照してください。

345 

346<Note>

347 完全な技術仕様、デバッグ技術、配布戦略については、[プラグインリファレンス](/ja/plugins-reference)を参照してください。

348</Note>

349 

350## 既存の設定をプラグインに変換する

351 

352`.claude/` ディレクトリにスキルまたはフックが既にある場合は、それらをプラグインに変換して、より簡単に共有および配布できます。

353 

354### 移行手順

355 

356<Steps>

357 <Step title="プラグイン構造を作成する">

358 新しいプラグインディレクトリを作成します。

359 

360 ```bash theme={null}

361 mkdir -p my-plugin/.claude-plugin

362 ```

363 

364 `my-plugin/.claude-plugin/plugin.json` にマニフェストファイルを作成します。

365 

366 ```json my-plugin/.claude-plugin/plugin.json theme={null}

367 {

368 "name": "my-plugin",

369 "description": "Migrated from standalone configuration",

370 "version": "1.0.0"

371 }

372 ```

373 </Step>

374 

375 <Step title="既存のファイルをコピーする">

376 既存の設定をプラグインディレクトリにコピーします。

377 

378 ```bash theme={null}

379 # Copy commands

380 cp -r .claude/commands my-plugin/

381 

382 # Copy agents (if any)

383 cp -r .claude/agents my-plugin/

384 

385 # Copy skills (if any)

386 cp -r .claude/skills my-plugin/

387 ```

388 </Step>

389 

390 <Step title="フックを移行する">

391 設定にフックがある場合は、フックディレクトリを作成します。

392 

393 ```bash theme={null}

394 mkdir my-plugin/hooks

395 ```

396 

397 `my-plugin/hooks/hooks.json` をフック設定で作成します。`.claude/settings.json` または `settings.local.json` から `hooks` オブジェクトをコピーします。形式は同じです。コマンドはフック入力を stdin で JSON として受け取るため、`jq` を使用してファイルパスを抽出します。

398 

399 ```json my-plugin/hooks/hooks.json theme={null}

400 {

401 "hooks": {

402 "PostToolUse": [

403 {

404 "matcher": "Write|Edit",

405 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

406 }

407 ]

408 }

409 }

410 ```

411 </Step>

412 

413 <Step title="移行したプラグインをテストする">

414 プラグインを読み込んで、すべてが機能することを確認します。

415 

416 ```bash theme={null}

417 claude --plugin-dir ./my-plugin

418 ```

419 

420 各コンポーネントをテストします。コマンドを実行し、`/agents` にエージェントが表示されることを確認し、フックが正しくトリガーされることを確認します。

421 </Step>

422</Steps>

423 

424### 移行時の変更点

425 

426| スタンドアロン(`.claude/`) | プラグイン |

427| :------------------------- | :----------------------------- |

428| 1 つのプロジェクトでのみ利用可能 | マーケットプレイス経由で共有可能 |

429| `.claude/commands/` 内のファイル | `plugin-name/commands/` 内のファイル |

430| `settings.json` のフック | `hooks/hooks.json` のフック |

431| 共有するには手動でコピーする必要がある | `/plugin install` でインストール |

432 

433<Note>

434 移行後、重複を避けるために `.claude/` から元のファイルを削除できます。読み込まれたときは、プラグインバージョンが優先されます。

435</Note>

436 

437## 次のステップ

438 

439Claude Code のプラグインシステムを理解したので、異なる目標のための推奨パスを以下に示します。

440 

441### プラグインユーザー向け

442 

443* [プラグインを検出してインストールする](/ja/discover-plugins):マーケットプレイスを参照してプラグインをインストール

444* [チームマーケットプレイスを設定する](/ja/discover-plugins#configure-team-marketplaces):チーム用のリポジトリレベルプラグインを設定

445 

446### プラグイン開発者向け

447 

448* [マーケットプレイスを作成して配布する](/ja/plugin-marketplaces):プラグインをパッケージ化して共有

449* [プラグインリファレンス](/ja/plugins-reference):完全な技術仕様

450* 特定のプラグインコンポーネントをさらに詳しく調べる:

451 * [スキル](/ja/skills):スキル開発の詳細

452 * [サブエージェント](/ja/sub-agents):エージェント設定と機能

453 * [フック](/ja/hooks):イベント処理と自動化

454 * [MCP](/ja/mcp):外部ツール統合

plugins-reference.md +1011 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# プラグインリファレンス

6 

7> Claude Code プラグインシステムの完全な技術リファレンス。スキーマ、CLI コマンド、コンポーネント仕様を含みます。

8 

9<Tip>

10 プラグインをインストールしたいですか?[プラグインの検出とインストール](/ja/discover-plugins)を参照してください。プラグインの作成については、[プラグイン](/ja/plugins)を参照してください。プラグインの配布については、[プラグインマーケットプレイス](/ja/plugin-marketplaces)を参照してください。

11</Tip>

12 

13このリファレンスは、Claude Code プラグインシステムの完全な技術仕様を提供します。コンポーネントスキーマ、CLI コマンド、開発ツールを含みます。

14 

15**プラグイン**は、Claude Code をカスタム機能で拡張する自己完結型のコンポーネントディレクトリです。プラグインコンポーネントには、skills、agents、hooks、MCP servers、LSP servers、monitors が含まれます。

16 

17## プラグインコンポーネントリファレンス

18 

19### Skills

20 

21プラグインは Claude Code に skills を追加し、`/name` ショートカットを作成します。これらは、あなたまたは Claude が呼び出すことができます。

22 

23**場所**: プラグインルートの `skills/` または `commands/` ディレクトリ

24 

25**ファイル形式**: Skills はディレクトリで `SKILL.md` を含みます。commands はシンプルなマークダウンファイルです。

26 

27**Skill 構造**:

28 

29```text theme={null}

30skills/

31├── pdf-processor/

32│ ├── SKILL.md

33│ ├── reference.md (optional)

34│ └── scripts/ (optional)

35└── code-reviewer/

36 └── SKILL.md

37```

38 

39**統合動作**:

40 

41* Skills と commands はプラグインがインストールされると自動的に検出されます

42* Claude はタスクコンテキストに基づいて自動的にそれらを呼び出すことができます

43* Skills は SKILL.md の横にサポートファイルを含めることができます

44 

45詳細については、[Skills](/ja/skills)を参照してください。

46 

47### Agents

48 

49プラグインは、特定のタスク用の特化した subagents を提供できます。Claude は必要に応じて自動的にそれらを呼び出すことができます。

50 

51**場所**: プラグインルートの `agents/` ディレクトリ

52 

53**ファイル形式**: エージェント機能を説明するマークダウンファイル

54 

55**Agent 構造**:

56 

57```markdown theme={null}

58---

59name: agent-name

60description: このエージェントが専門とする内容と、Claude がそれを呼び出すべき時期

61model: sonnet

62effort: medium

63maxTurns: 20

64disallowedTools: Write, Edit

65---

66 

67エージェントの役割、専門知識、動作を説明する詳細なシステムプロンプト。

68```

69 

70プラグインエージェントは `name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、`isolation` frontmatter フィールドをサポートしています。唯一の有効な `isolation` 値は `"worktree"` です。セキュリティ上の理由から、`hooks`、`mcpServers`、`permissionMode` はプラグイン提供のエージェントではサポートされていません。

71 

72**統合ポイント**:

73 

74* Agents は `/agents` インターフェイスに表示されます

75* Claude はタスクコンテキストに基づいて自動的にエージェントを呼び出すことができます

76* Agents はユーザーが手動で呼び出すことができます

77* プラグインエージェントは組み込みの Claude エージェントと一緒に動作します

78 

79詳細については、[Subagents](/ja/sub-agents)を参照してください。

80 

81### Hooks

82 

83プラグインは Claude Code イベントに自動的に応答するイベントハンドラーを提供できます。

84 

85**場所**: プラグインルートの `hooks/hooks.json`、または plugin.json 内のインライン

86 

87**形式**: イベントマッチャーとアクションを含む JSON 設定

88 

89**Hook 設定**:

90 

91```json theme={null}

92{

93 "hooks": {

94 "PostToolUse": [

95 {

96 "matcher": "Write|Edit",

97 "hooks": [

98 {

99 "type": "command",

100 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"

101 }

102 ]

103 }

104 ]

105 }

106}

107```

108 

109プラグイン hooks は[ユーザー定義 hooks](/ja/hooks)と同じライフサイクルイベントに応答します:

110 

111| Event | When it fires |

112| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |

113| `SessionStart` | When a session begins or resumes |

114| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |

115| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |

116| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |

117| `PreToolUse` | Before a tool call executes. Can block it |

118| `PermissionRequest` | When a permission dialog appears |

119| `PermissionDenied` | When a tool call is denied by the auto mode classifier. Return `{retry: true}` to tell the model it may retry the denied tool call |

120| `PostToolUse` | After a tool call succeeds |

121| `PostToolUseFailure` | After a tool call fails |

122| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |

123| `Notification` | When Claude Code sends a notification |

124| `SubagentStart` | When a subagent is spawned |

125| `SubagentStop` | When a subagent finishes |

126| `TaskCreated` | When a task is being created via `TaskCreate` |

127| `TaskCompleted` | When a task is being marked as completed |

128| `Stop` | When Claude finishes responding |

129| `StopFailure` | When the turn ends due to an API error. Output and exit code are ignored |

130| `TeammateIdle` | When an [agent team](/en/agent-teams) teammate is about to go idle |

131| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |

132| `ConfigChange` | When a configuration file changes during a session |

133| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |

134| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |

135| `WorktreeCreate` | When a worktree is being created via `--worktree` or `isolation: "worktree"`. Replaces default git behavior |

136| `WorktreeRemove` | When a worktree is being removed, either at session exit or when a subagent finishes |

137| `PreCompact` | Before context compaction |

138| `PostCompact` | After context compaction completes |

139| `Elicitation` | When an MCP server requests user input during a tool call |

140| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |

141| `SessionEnd` | When a session terminates |

142 

143**Hook タイプ**:

144 

145* `command`: シェルコマンドまたはスクリプトを実行

146* `http`: イベント JSON を URL への POST リクエストとして送信

147* `mcp_tool`: 設定された[MCP server](/ja/mcp)上のツールを呼び出す

148* `prompt`: LLM でプロンプトを評価(コンテキストの `$ARGUMENTS` プレースホルダーを使用)

149* `agent`: 複雑な検証タスク用のツール付き agentic verifier を実行

150 

151### MCP servers

152 

153プラグインは Model Context Protocol(MCP)servers をバンドルして、Claude Code を外部ツールおよびサービスに接続できます。

154 

155**場所**: プラグインルートの `.mcp.json`、または plugin.json 内のインライン

156 

157**形式**: 標準 MCP サーバー設定

158 

159**MCP サーバー設定**:

160 

161```json theme={null}

162{

163 "mcpServers": {

164 "plugin-database": {

165 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

166 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],

167 "env": {

168 "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"

169 }

170 },

171 "plugin-api-client": {

172 "command": "npx",

173 "args": ["@company/mcp-server", "--plugin-mode"],

174 "cwd": "${CLAUDE_PLUGIN_ROOT}"

175 }

176 }

177}

178```

179 

180**統合動作**:

181 

182* プラグイン MCP servers はプラグインが有効になると自動的に開始されます

183* Servers は Claude のツールキットに標準 MCP ツールとして表示されます

184* サーバー機能は Claude の既存ツールとシームレスに統合されます

185* プラグインサーバーはユーザー MCP servers とは独立して設定できます

186 

187### LSP servers

188 

189<Tip>

190 LSP プラグインを使用したいですか?公式マーケットプレイスからインストールしてください。`/plugin` Discover タブで「lsp」を検索してください。このセクションでは、公式マーケットプレイスでカバーされていない言語用の LSP プラグインを作成する方法を説明しています。

191</Tip>

192 

193プラグインは [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)(LSP)servers を提供して、Claude がコードベースで作業する際にリアルタイムコード インテリジェンスを得ることができます。

194 

195LSP 統合は以下を提供します:

196 

197* **即座の診断**: Claude は各編集後すぐにエラーと警告を確認できます

198* **コードナビゲーション**: 定義へのジャンプ、参照の検索、ホバー情報

199* **言語認識**: コードシンボルの型情報とドキュメント

200 

201**場所**: プラグインルートの `.lsp.json`、または `plugin.json` 内のインライン

202 

203**形式**: 言語サーバー名をその設定にマップする JSON 設定

204 

205**`.lsp.json` ファイル形式**:

206 

207```json theme={null}

208{

209 "go": {

210 "command": "gopls",

211 "args": ["serve"],

212 "extensionToLanguage": {

213 ".go": "go"

214 }

215 }

216}

217```

218 

219**`plugin.json` 内のインライン**:

220 

221```json theme={null}

222{

223 "name": "my-plugin",

224 "lspServers": {

225 "go": {

226 "command": "gopls",

227 "args": ["serve"],

228 "extensionToLanguage": {

229 ".go": "go"

230 }

231 }

232 }

233}

234```

235 

236**必須フィールド:**

237 

238| フィールド | 説明 |

239| :-------------------- | :--------------------------------- |

240| `command` | 実行する LSP バイナリ(PATH に含まれている必要があります) |

241| `extensionToLanguage` | ファイル拡張子を言語識別子にマップ |

242 

243**オプションフィールド:**

244 

245| フィールド | 説明 |

246| :---------------------- | :------------------------------------------- |

247| `args` | LSP サーバーのコマンドライン引数 |

248| `transport` | 通信トランスポート: `stdio`(デフォルト)または `socket` |

249| `env` | サーバー起動時に設定する環境変数 |

250| `initializationOptions` | 初期化中にサーバーに渡されるオプション |

251| `settings` | `workspace/didChangeConfiguration` 経由で渡される設定 |

252| `workspaceFolder` | サーバーのワークスペースフォルダーパス |

253| `startupTimeout` | サーバー起動を待つ最大時間(ミリ秒) |

254| `shutdownTimeout` | グレースフルシャットダウンを待つ最大時間(ミリ秒) |

255| `restartOnCrash` | サーバーがクラッシュした場合に自動的に再起動するかどうか |

256| `maxRestarts` | 諦める前の最大再起動試行回数 |

257 

258<Warning>

259 **言語サーバーバイナリを別途インストールする必要があります。** LSP プラグインは Claude Code が言語サーバーに接続する方法を設定しますが、サーバー自体は含まれていません。`/plugin` Errors タブに `Executable not found in $PATH` が表示される場合は、言語に必要なバイナリをインストールしてください。

260</Warning>

261 

262**利用可能な LSP プラグイン:**

263 

264| プラグイン | 言語サーバー | インストールコマンド |

265| :--------------- | :------------------------- | :---------------------------------------------------------------------------------- |

266| `pyright-lsp` | Pyright(Python) | `pip install pyright` または `npm install -g pyright` |

267| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |

268| `rust-lsp` | rust-analyzer | [rust-analyzer インストールを参照](https://rust-analyzer.github.io/manual.html#installation) |

269 

270言語サーバーをまずインストールしてから、マーケットプレイスからプラグインをインストールしてください。

271 

272### Monitors

273 

274プラグインは、プラグインがアクティブな場合に Claude Code が自動的に開始するバックグラウンド monitors を宣言できます。各 monitor はセッションの期間中シェルコマンドを実行し、すべての stdout 行を Claude に通知として配信するため、Claude は自分自身に開始するよう求められることなく、ログエントリ、ステータス変更、またはポーリングされたイベントに反応できます。

275 

276プラグイン monitors は[Monitor tool](/ja/tools-reference#monitor-tool)と同じメカニズムを使用し、その可用性制約を共有します。これらはインタラクティブ CLI セッションでのみ実行され、[hooks](#hooks)と同じ信頼レベルでサンドボックス化されずに実行され、Monitor tool が利用できないホストではスキップされます。

277 

278<Note>

279 プラグイン monitors には Claude Code v2.1.105 以降が必要です。

280</Note>

281 

282**場所**: プラグインルートの `monitors/monitors.json`、または plugin.json 内のインライン

283 

284**形式**: monitor エントリの JSON 配列

285 

286次の `monitors/monitors.json` はデプロイメントステータスエンドポイントとローカルエラーログを監視します:

287 

288```json theme={null}

289[

290 {

291 "name": "deploy-status",

292 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/poll-deploy.sh ${user_config.api_endpoint}",

293 "description": "Deployment status changes"

294 },

295 {

296 "name": "error-log",

297 "command": "tail -F ./logs/error.log",

298 "description": "Application error log",

299 "when": "on-skill-invoke:debug"

300 }

301]

302```

303 

304monitors をインラインで宣言するには、`plugin.json` の `monitors` キーを同じ配列に設定します。デフォルト以外のパスから読み込むには、`monitors` を `"./config/monitors.json"` などの相対パス文字列に設定します。

305 

306**必須フィールド:**

307 

308| フィールド | 説明 |

309| :------------ | :---------------------------------------------------------- |

310| `name` | プラグイン内で一意の識別子。プラグインが再読み込みされるか skill が再度呼び出されるときに重複プロセスを防ぎます |

311| `command` | セッション作業ディレクトリで永続的なバックグラウンドプロセスとして実行されるシェルコマンド |

312| `description` | 監視対象の簡潔な概要。タスクパネルと通知サマリーに表示されます |

313 

314**オプションフィールド:**

315 

316| フィールド | 説明 |

317| :----- | :---------------------------------------------------------------------------------------------------------------------------------------------- |

318| `when` | monitor がいつ開始するかを制御します。`"always"` はセッション開始時とプラグイン再読み込み時に開始し、デフォルトです。`"on-skill-invoke:<skill-name>"` はこのプラグイン内の名前付き skill が最初にディスパッチされるときに開始します |

319 

320`command` 値は MCP および LSP サーバー設定と同じ[変数置換](#environment-variables)をサポートします: `${CLAUDE_PLUGIN_ROOT}`、`${CLAUDE_PLUGIN_DATA}`、`${user_config.*}`、および環境からの任意の `${ENV_VAR}`。スクリプトがプラグイン自体のディレクトリから実行される必要がある場合は、コマンドの前に `cd "${CLAUDE_PLUGIN_ROOT}" && ` を付けます。

321 

322セッション中にプラグインを無効にしても、既に実行中の monitors は停止しません。セッションが終了するときに停止します。

323 

324### Themes

325 

326プラグインは、`/theme` に組み込みプリセットおよびユーザーのローカルテーマと一緒に表示される色テーマを配布できます。テーマは `themes/` 内の JSON ファイルで、`base` プリセットと色トークンのスパース `overrides` マップを持ちます。

327 

328```json theme={null}

329{

330 "name": "Dracula",

331 "base": "dark",

332 "overrides": {

333 "claude": "#bd93f9",

334 "error": "#ff5555",

335 "success": "#50fa7b"

336 }

337}

338```

339 

340プラグインテーマを選択すると、`custom:<plugin-name>:<slug>` がユーザーの設定に保持されます。プラグインテーマは読み取り専用です。`/theme` で `Ctrl+E` を押すと、それが `~/.claude/themes/` にコピーされるため、ユーザーはコピーを編集できます。

341 

342***

343 

344## プラグインインストールスコープ

345 

346プラグインをインストールするときは、プラグインが利用可能な場所と他のユーザーが使用できるかどうかを決定する**スコープ**を選択します。

347 

348| スコープ | 設定ファイル | ユースケース |

349| :-------- | :---------------------------------- | :------------------------------- |

350| `user` | `~/.claude/settings.json` | すべてのプロジェクト全体で利用可能な個人プラグイン(デフォルト) |

351| `project` | `.claude/settings.json` | バージョン管理経由で共有されるチームプラグイン |

352| `local` | `.claude/settings.local.json` | プロジェクト固有のプラグイン、gitignored |

353| `managed` | [管理設定](/ja/settings#settings-files) | 管理プラグイン(読み取り専用、更新のみ) |

354 

355プラグインは他の Claude Code 設定と同じスコープシステムを使用します。インストール手順とスコープフラグについては、[プラグインのインストール](/ja/discover-plugins#install-plugins)を参照してください。スコープの完全な説明については、[設定スコープ](/ja/settings#configuration-scopes)を参照してください。

356 

357***

358 

359## プラグインマニフェストスキーマ

360 

361`.claude-plugin/plugin.json` ファイルはプラグインのメタデータと設定を定義します。このセクションでは、サポートされているすべてのフィールドとオプションを説明しています。

362 

363マニフェストはオプションです。省略された場合、Claude Code は[デフォルト場所](#file-locations-reference)のコンポーネントを自動検出し、ディレクトリ名からプラグイン名を導出します。メタデータを提供するか、カスタムコンポーネントパスが必要な場合はマニフェストを使用してください。

364 

365### 完全なスキーマ

366 

367```json theme={null}

368{

369 "name": "plugin-name",

370 "version": "1.2.0",

371 "description": "Brief plugin description",

372 "author": {

373 "name": "Author Name",

374 "email": "author@example.com",

375 "url": "https://github.com/author"

376 },

377 "homepage": "https://docs.example.com/plugin",

378 "repository": "https://github.com/author/plugin",

379 "license": "MIT",

380 "keywords": ["keyword1", "keyword2"],

381 "skills": "./custom/skills/",

382 "commands": ["./custom/commands/special.md"],

383 "agents": ["./custom/agents/reviewer.md"],

384 "hooks": "./config/hooks.json",

385 "mcpServers": "./mcp-config.json",

386 "outputStyles": "./styles/",

387 "themes": "./themes/",

388 "lspServers": "./.lsp.json",

389 "monitors": "./monitors.json",

390 "dependencies": [

391 "helper-lib",

392 { "name": "secrets-vault", "version": "~2.1.0" }

393 ]

394}

395```

396 

397### 必須フィールド

398 

399マニフェストを含める場合、`name` は唯一の必須フィールドです。

400 

401| フィールド | 型 | 説明 | 例 |

402| :----- | :----- | :------------------------ | :------------------- |

403| `name` | string | 一意の識別子(kebab-case、スペースなし) | `"deployment-tools"` |

404 

405この名前はコンポーネントの名前空間に使用されます。たとえば、UI では、名前が `plugin-dev` のプラグインのエージェント `agent-creator` は `plugin-dev:agent-creator` として表示されます。

406 

407### メタデータフィールド

408 

409| フィールド | 型 | 説明 | 例 |

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

411| `$schema` | string | エディタのオートコンプリートと検証用の JSON Schema URL。Claude Code はロード時にこのフィールドを無視します。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

412| `version` | string | オプション。セマンティックバージョン。これを設定するとプラグインをそのバージョン文字列にピン留めするため、ユーザーはバージョンをバンプしたときのみ更新を受け取ります。省略された場合、Claude Code は git コミット SHA にフォールバックするため、すべてのコミットが新しいバージョンとして扱われます。マーケットプレイスエントリにも設定されている場合、`plugin.json` が優先されます。[バージョン管理](#version-management)を参照してください。 | `"2.1.0"` |

413| `description` | string | プラグインの目的の簡潔な説明 | `"Deployment automation tools"` |

414| `author` | object | 著者情報 | `{"name": "Dev Team", "email": "dev@company.com"}` |

415| `homepage` | string | ドキュメント URL | `"https://docs.example.com"` |

416| `repository` | string | ソースコード URL | `"https://github.com/user/plugin"` |

417| `license` | string | ライセンス識別子 | `"MIT"`、`"Apache-2.0"` |

418| `keywords` | array | 検出タグ | `["deployment", "ci-cd"]` |

419 

420### コンポーネントパスフィールド

421 

422| フィールド | 型 | 説明 | 例 |

423| :------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |

424| `skills` | string\|array | `<name>/SKILL.md` を含むカスタム skill ディレクトリ(デフォルト `skills/` を置き換え) | `"./custom/skills/"` |

425| `commands` | string\|array | カスタムフラット `.md` skill ファイルまたはディレクトリ(デフォルト `commands/` を置き換え) | `"./custom/cmd.md"` または `["./cmd1.md"]` |

426| `agents` | string\|array | カスタムエージェントファイル(デフォルト `agents/` を置き換え) | `"./custom/agents/reviewer.md"` |

427| `hooks` | string\|array\|object | Hook 設定パスまたはインライン設定 | `"./my-extra-hooks.json"` |

428| `mcpServers` | string\|array\|object | MCP 設定パスまたはインライン設定 | `"./my-extra-mcp-config.json"` |

429| `outputStyles` | string\|array | カスタム出力スタイルファイル/ディレクトリ(デフォルト `output-styles/` を置き換え) | `"./styles/"` |

430| `themes` | string\|array | カラーテーマファイル/ディレクトリ(デフォルト `themes/` を置き換え)。[テーマ](#themes)を参照してください | `"./themes/"` |

431| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)コード インテリジェンス用の設定(定義へのジャンプ、参照の検索など) | `"./.lsp.json"` |

432| `monitors` | string\|array | プラグインがアクティブな場合に自動的に開始されるバックグラウンド[Monitor](/ja/tools-reference#monitor-tool)設定。[Monitors](#monitors)を参照してください | `"./monitors.json"` |

433| `userConfig` | object | ユーザー設定可能な値は有効化時にプロンプトされます。[ユーザー設定](#user-configuration)を参照してください | 下記を参照 |

434| `channels` | array | メッセージ注入用のチャネル宣言(Telegram、Slack、Discord スタイル)。[チャネル](#channels)を参照してください | 下記を参照 |

435| `dependencies` | array | このプラグインが必要とする他のプラグイン。オプションで semver バージョン制約付き。[プラグイン依存関係バージョンを制約](/ja/plugin-dependencies)を参照してください | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

436 

437### ユーザー設定

438 

439`userConfig` フィールドは、プラグインが有効になったときに Claude Code がユーザーにプロンプトする値を宣言します。ユーザーに `settings.json` を手動で編集させる代わりにこれを使用してください。

440 

441```json theme={null}

442{

443 "userConfig": {

444 "api_endpoint": {

445 "type": "string",

446 "title": "API endpoint",

447 "description": "Your team's API endpoint"

448 },

449 "api_token": {

450 "type": "string",

451 "title": "API token",

452 "description": "API authentication token",

453 "sensitive": true

454 }

455 }

456}

457```

458 

459キーは有効な識別子である必要があります。各オプションはこれらのフィールドをサポートします:

460 

461| フィールド | 必須 | 説明 |

462| :------------ | :-- | :------------------------------------------------------- |

463| `type` | はい | `string`、`number`、`boolean`、`directory`、または `file` のいずれか |

464| `title` | はい | 設定ダイアログに表示されるラベル |

465| `description` | はい | フィールドの下に表示されるヘルプテキスト |

466| `sensitive` | いいえ | `true` の場合、入力をマスクし、値を `settings.json` ではなくセキュアストレージに保存 |

467| `required` | いいえ | `true` の場合、フィールドが空のときに検証が失敗 |

468| `default` | いいえ | ユーザーが何も提供しない場合に使用される値 |

469| `multiple` | いいえ | `string` タイプの場合、文字列の配列を許可 |

470| `min` / `max` | いいえ | `number` タイプの境界 |

471 

472各値は MCP および LSP サーバー設定、hook コマンド、monitor コマンド、および skill とエージェントコンテンツ(機密でない値のみ)で `${user_config.KEY}` として置換可能です。すべての値はプラグインサブプロセスに `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数としてエクスポートされます。

473 

474機密でない値は `settings.json` の `pluginConfigs[<plugin-id>].options` に保存されます。機密値はシステムキーチェーン(またはキーチェーンが利用できない場合は `~/.claude/.credentials.json`)に移動します。キーチェーンストレージは OAuth トークンと共有され、約 2 KB の合計制限があるため、機密値は小さく保ってください。

475 

476### チャネル

477 

478`channels` フィールドを使用すると、プラグインは 1 つ以上のメッセージチャネルを宣言して、会話にコンテンツを注入できます。各チャネルはプラグインが提供する MCP サーバーにバインドされます。

479 

480```json theme={null}

481{

482 "channels": [

483 {

484 "server": "telegram",

485 "userConfig": {

486 "bot_token": {

487 "type": "string",

488 "title": "Bot token",

489 "description": "Telegram bot token",

490 "sensitive": true

491 },

492 "owner_id": {

493 "type": "string",

494 "title": "Owner ID",

495 "description": "Your Telegram user ID"

496 }

497 }

498 }

499 ]

500}

501```

502 

503`server` フィールドは必須で、プラグインの `mcpServers` のキーと一致する必要があります。オプションのチャネルごとの `userConfig` はトップレベルフィールドと同じスキーマを使用し、プラグインがプラグイン有効化時にボットトークンまたはオーナー ID をプロンプトできるようにします。

504 

505### パス動作ルール

506 

507`skills`、`commands`、`agents`、`outputStyles`、`themes`、`monitors` の場合、カスタムパスはデフォルトを置き換えます。マニフェストが `skills` を指定する場合、デフォルト `skills/` ディレクトリはスキャンされません。`monitors` を指定する場合、デフォルト `monitors/monitors.json` は読み込まれません。[Hooks](#hooks)、[MCP servers](#mcp-servers)、[LSP servers](#lsp-servers)は複数のソースを処理するための異なるセマンティクスを持ちます。

508 

509* すべてのパスはプラグインルートに相対的で、`./` で始まる必要があります

510* カスタムパスからのコンポーネントは同じ命名と名前空間ルールを使用します

511* 複数のパスを配列として指定できます

512* skills、commands、agents、output styles のデフォルトディレクトリを保持してさらにパスを追加するには、配列にデフォルトを含めます: `"skills": ["./skills/", "./extras/"]`

513* skill パスが `SKILL.md` を直接含むディレクトリを指す場合(例: `"skills": ["./"]` がプラグインルートを指す)、`SKILL.md` の frontmatter `name` フィールドが skill の呼び出し名を決定します。これはインストールディレクトリに関係なく安定した名前を提供します。frontmatter に `name` が設定されていない場合、ディレクトリ basename がフォールバックとして使用されます。

514 

515**パスの例**:

516 

517```json theme={null}

518{

519 "commands": [

520 "./specialized/deploy.md",

521 "./utilities/batch-process.md"

522 ],

523 "agents": [

524 "./custom-agents/reviewer.md",

525 "./custom-agents/tester.md"

526 ]

527}

528```

529 

530### 環境変数

531 

532Claude Code は、プラグインパスを参照するための 2 つの変数を提供します。どちらも skill コンテンツ、エージェントコンテンツ、hook コマンド、monitor コマンド、MCP または LSP サーバー設定に表示される場所にインラインで置換されます。どちらも hook プロセスおよび MCP または LSP サーバーサブプロセスに環境変数としてエクスポートされます。

533 

534**`${CLAUDE_PLUGIN_ROOT}`**: プラグインのインストールディレクトリへの絶対パス。プラグインにバンドルされたスクリプト、バイナリ、設定ファイルを参照するために使用します。このパスはプラグインが更新されると変更されるため、ここに書き込むファイルは更新後に保持されません。

535 

536**`${CLAUDE_PLUGIN_DATA}`**: 更新後も保持される永続ディレクトリ。`node_modules` または Python 仮想環境などのインストール済み依存関係、生成されたコード、キャッシュ、およびプラグインバージョン全体で保持する必要があるその他のファイルに使用します。このディレクトリは、この変数が最初に参照されるときに自動的に作成されます。

537 

538```json theme={null}

539{

540 "hooks": {

541 "PostToolUse": [

542 {

543 "hooks": [

544 {

545 "type": "command",

546 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"

547 }

548 ]

549 }

550 ]

551 }

552}

553```

554 

555#### 永続データディレクトリ

556 

557`${CLAUDE_PLUGIN_DATA}` ディレクトリは `~/.claude/plugins/data/{id}/` に解決されます。ここで `{id}` はプラグイン識別子で、`a-z`、`A-Z`、`0-9`、`_`、`-` 以外の文字が `-` に置き換えられます。`formatter@my-marketplace` としてインストールされたプラグインの場合、ディレクトリは `~/.claude/plugins/data/formatter-my-marketplace/` です。

558 

559一般的な使用法は、言語依存関係を 1 回インストールしてセッションとプラグイン更新全体で再利用することです。データディレクトリは単一のプラグインバージョンより長く存在するため、ディレクトリ存在チェックだけでは、更新がプラグインの依存関係マニフェストを変更したときを検出できません。推奨パターンはバンドルされたマニフェストをデータディレクトリのコピーと比較し、異なる場合は再インストールします。

560 

561この `SessionStart` hook は最初の実行時に `node_modules` をインストールし、プラグイン更新に変更された `package.json` が含まれるたびに再度インストールします:

562 

563```json theme={null}

564{

565 "hooks": {

566 "SessionStart": [

567 {

568 "hooks": [

569 {

570 "type": "command",

571 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

572 }

573 ]

574 }

575 ]

576 }

577}

578```

579 

580`diff` は保存されたコピーが不足しているか、バンドルされたコピーと異なる場合にゼロ以外で終了し、最初の実行と依存関係変更更新の両方をカバーします。`npm install` が失敗した場合、末尾の `rm` はコピーされたマニフェストを削除して、次のセッションが再試行します。

581 

582`${CLAUDE_PLUGIN_ROOT}` にバンドルされたスクリプトは、永続化された `node_modules` に対して実行できます:

583 

584```json theme={null}

585{

586 "mcpServers": {

587 "routines": {

588 "command": "node",

589 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

590 "env": {

591 "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"

592 }

593 }

594 }

595}

596```

597 

598データディレクトリは、インストールされている最後のスコープからプラグインをアンインストールするときに自動的に削除されます。`/plugin` インターフェイスはディレクトリサイズを表示し、削除前にプロンプトします。CLI はデフォルトで削除します。[`--keep-data`](#plugin-uninstall)を渡して保持します。

599 

600***

601 

602## プラグインキャッシングとファイル解決

603 

604プラグインは 2 つの方法で指定されます:

605 

606* `claude --plugin-dir` を通じて、セッションの期間。

607* マーケットプレイスを通じて、将来のセッション用にインストール。

608 

609セキュリティと検証の目的で、Claude Code は\_マーケットプレイス\_プラグインをユーザーのローカル**プラグインキャッシュ**(`~/.claude/plugins/cache`)にコピーします。これらを所定の場所で使用するのではなく。この動作を理解することは、外部ファイルを参照するプラグインを開発する際に重要です。

610 

611各インストール済みバージョンはキャッシュ内の別のディレクトリです。プラグインを更新またはアンインストールすると、前のバージョンディレクトリは孤立したものとしてマークされ、7 日後に自動的に削除されます。猶予期間により、既に古いバージョンを読み込んだ同時実行 Claude Code セッションがエラーなく実行を続けることができます。

612 

613Claude の Glob および Grep ツールは検索中に孤立したバージョンディレクトリをスキップするため、ファイル結果には古いプラグインコードが含まれません。

614 

615### パストラバーサル制限

616 

617インストールされたプラグインはディレクトリの外側のファイルを参照できません。プラグインルートの外側をトラバースするパス(`../shared-utils` など)は、これらの外部ファイルがキャッシュにコピーされないため、インストール後は機能しません。

618 

619### 外部依存関係の操作

620 

621プラグインがディレクトリの外側のファイルにアクセスする必要がある場合、プラグインディレクトリ内の外部ファイルへのシンボリックリンクを作成できます。シンボリックリンクはキャッシュに保持されるのではなく逆参照され、実行時にそのターゲットに解決されます。次のコマンドはプラグインディレクトリ内から共有ユーティリティの場所へのリンクを作成します:

622 

623```bash theme={null}

624ln -s /path/to/shared-utils ./shared-utils

625```

626 

627これはキャッシングシステムのセキュリティ上の利点を維持しながら柔軟性を提供します。

628 

629***

630 

631## プラグインディレクトリ構造

632 

633### 標準プラグインレイアウト

634 

635完全なプラグインは次の構造に従います:

636 

637```text theme={null}

638enterprise-plugin/

639├── .claude-plugin/ # メタデータディレクトリ(オプション)

640│ └── plugin.json # プラグインマニフェスト

641├── skills/ # Skills

642│ ├── code-reviewer/

643│ │ └── SKILL.md

644│ └── pdf-processor/

645│ ├── SKILL.md

646│ └── scripts/

647├── commands/ # フラット .md ファイルとしての Skills

648│ ├── status.md

649│ └── logs.md

650├── agents/ # Subagent 定義

651│ ├── security-reviewer.md

652│ ├── performance-tester.md

653│ └── compliance-checker.md

654├── output-styles/ # 出力スタイル定義

655│ └── terse.md

656├── themes/ # カラーテーマ定義

657│ └── dracula.json

658├── monitors/ # バックグラウンド monitor 設定

659│ └── monitors.json

660├── hooks/ # Hook 設定

661│ ├── hooks.json # メイン hook 設定

662│ └── security-hooks.json # 追加 hooks

663├── bin/ # PATH に追加されるプラグイン実行可能ファイル

664│ └── my-tool # Bash tool で裸のコマンドとして呼び出し可能

665├── settings.json # プラグインのデフォルト設定

666├── .mcp.json # MCP サーバー定義

667├── .lsp.json # LSP サーバー設定

668├── scripts/ # Hook とユーティリティスクリプト

669│ ├── security-scan.sh

670│ ├── format-code.py

671│ └── deploy.js

672├── LICENSE # ライセンスファイル

673└── CHANGELOG.md # バージョン履歴

674```

675 

676<Warning>

677 `.claude-plugin/` ディレクトリは `plugin.json` ファイルを含みます。他のすべてのディレクトリ(commands/、agents/、skills/、output-styles/、themes/、monitors/、hooks/)は `.claude-plugin/` 内ではなく、プラグインルートにある必要があります。

678</Warning>

679 

680### ファイル場所リファレンス

681 

682| コンポーネント | デフォルト場所 | 目的 |

683| :-------------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |

684| **マニフェスト** | `.claude-plugin/plugin.json` | プラグインメタデータと設定(オプション) |

685| **Skills** | `skills/` | `<name>/SKILL.md` 構造の Skills |

686| **コマンド** | `commands/` | フラット Markdown ファイルとしての Skills。新しいプラグインには `skills/` を使用 |

687| **Agents** | `agents/` | Subagent Markdown ファイル |

688| **出力スタイル** | `output-styles/` | 出力スタイル定義 |

689| **テーマ** | `themes/` | カラーテーマ定義 |

690| **Hooks** | `hooks/hooks.json` | Hook 設定 |

691| **MCP servers** | `.mcp.json` | MCP サーバー定義 |

692| **LSP servers** | `.lsp.json` | 言語サーバー設定 |

693| **Monitors** | `monitors/monitors.json` | バックグラウンド monitor 設定 |

694| **実行可能ファイル** | `bin/` | Bash tool の `PATH` に追加される実行可能ファイル。ここのファイルはプラグインが有効な場合、任意の Bash tool 呼び出しで裸のコマンドとして呼び出し可能 |

695| **設定** | `settings.json` | プラグインが有効になったときに適用されるデフォルト設定。現在、[`agent`](/ja/sub-agents)および[`subagentStatusLine`](/ja/statusline#subagent-status-lines)キーのみがサポートされています |

696 

697***

698 

699## CLI コマンドリファレンス

700 

701Claude Code は非対話的なプラグイン管理用の CLI コマンドを提供します。スクリプトと自動化に役立ちます。

702 

703### plugin install

704 

705利用可能なマーケットプレイスからプラグインをインストールします。

706 

707```bash theme={null}

708claude plugin install <plugin> [options]

709```

710 

711**引数:**

712 

713* `<plugin>`: プラグイン名または特定のマーケットプレイス用の `plugin-name@marketplace-name`

714 

715**オプション:**

716 

717| オプション | 説明 | デフォルト |

718| :-------------------- | :--------------------------------------- | :----- |

719| `-s, --scope <scope>` | インストールスコープ: `user`、`project`、または `local` | `user` |

720| `-h, --help` | コマンドのヘルプを表示 | |

721 

722スコープはインストールされたプラグインが追加される設定ファイルを決定します。たとえば、`--scope project` は `.claude/settings.json` の `enabledPlugins` に書き込み、プロジェクトリポジトリをクローンした全員がプラグインを利用できるようにします。

723 

724**例:**

725 

726```bash theme={null}

727# ユーザースコープにインストール(デフォルト)

728claude plugin install formatter@my-marketplace

729 

730# プロジェクトスコープにインストール(チームと共有)

731claude plugin install formatter@my-marketplace --scope project

732 

733# ローカルスコープにインストール(gitignored)

734claude plugin install formatter@my-marketplace --scope local

735```

736 

737### plugin uninstall

738 

739インストール済みプラグインを削除します。

740 

741```bash theme={null}

742claude plugin uninstall <plugin> [options]

743```

744 

745**引数:**

746 

747* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`

748 

749**オプション:**

750 

751| オプション | 説明 | デフォルト |

752| :-------------------- | :----------------------------------------------------------------------- | :----- |

753| `-s, --scope <scope>` | スコープからアンインストール: `user`、`project`、または `local` | `user` |

754| `--keep-data` | プラグインの[永続データディレクトリ](#persistent-data-directory)を保持 | |

755| `--prune` | 他のプラグインが必要としない自動インストール依存関係も削除します。[plugin prune](#plugin-prune) を参照してください | |

756| `-y, --yes` | `--prune` 確認プロンプトをスキップします。stdin が TTY でない場合は必須です | |

757| `-h, --help` | コマンドのヘルプを表示 | |

758 

759**エイリアス:** `remove`、`rm`

760 

761デフォルトでは、最後に残っているスコープからアンインストールすると、プラグインの `${CLAUDE_PLUGIN_DATA}` ディレクトリも削除されます。たとえば、新しいバージョンをテストした後に再インストールする場合は、`--keep-data` を使用して保持します。

762 

763### plugin prune

764 

765インストール済みプラグインによって不要になった自動インストール プラグイン依存関係を削除します。Claude Code が別のプラグインの [`dependencies`](/ja/plugin-dependencies) フィールドを満たすために取得した依存関係は削除されます。直接インストールしたプラグインは決して削除されません。

766 

767```bash theme={null}

768claude plugin prune [options]

769```

770 

771**オプション:**

772 

773| オプション | 説明 | デフォルト |

774| :-------------------- | :-------------------------------------- | :----- |

775| `-s, --scope <scope>` | スコープでプルーン: `user`、`project`、または `local` | `user` |

776| `--dry-run` | 削除されるものをリストアップします。実際には削除しません | |

777| `-y, --yes` | 確認プロンプトをスキップします。stdin が TTY でない場合は必須です | |

778| `-h, --help` | コマンドのヘルプを表示 | |

779 

780**エイリアス:** `autoremove`

781 

782このコマンドは孤立した依存関係をリストアップし、削除する前に確認を求めます。プラグインを削除し、その依存関係をクリーンアップする場合は、1 ステップで `claude plugin uninstall <plugin> --prune` を実行します。

783 

784<Note>

785 `claude plugin prune` には Claude Code v2.1.121 以降が必要です。

786</Note>

787 

788### plugin enable

789 

790無効なプラグインを有効にします。

791 

792```bash theme={null}

793claude plugin enable <plugin> [options]

794```

795 

796**引数:**

797 

798* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`

799 

800**オプション:**

801 

802| オプション | 説明 | デフォルト |

803| :-------------------- | :-------------------------------------- | :----- |

804| `-s, --scope <scope>` | 有効にするスコープ: `user`、`project`、または `local` | `user` |

805| `-h, --help` | コマンドのヘルプを表示 | |

806 

807### plugin disable

808 

809プラグインをアンインストールせずに無効にします。

810 

811```bash theme={null}

812claude plugin disable <plugin> [options]

813```

814 

815**引数:**

816 

817* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`

818 

819**オプション:**

820 

821| オプション | 説明 | デフォルト |

822| :-------------------- | :-------------------------------------- | :----- |

823| `-s, --scope <scope>` | 無効にするスコープ: `user`、`project`、または `local` | `user` |

824| `-h, --help` | コマンドのヘルプを表示 | |

825 

826### plugin update

827 

828プラグインを最新バージョンに更新します。

829 

830```bash theme={null}

831claude plugin update <plugin> [options]

832```

833 

834**引数:**

835 

836* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`

837 

838**オプション:**

839 

840| オプション | 説明 | デフォルト |

841| :-------------------- | :----------------------------------------------- | :----- |

842| `-s, --scope <scope>` | 更新するスコープ: `user`、`project`、`local`、または `managed` | `user` |

843| `-h, --help` | コマンドのヘルプを表示 | |

844 

845***

846 

847### plugin list

848 

849インストール済みプラグインをバージョン、ソースマーケットプレイス、有効状態とともにリストします。

850 

851```bash theme={null}

852claude plugin list [options]

853```

854 

855**オプション:**

856 

857| オプション | 説明 | デフォルト |

858| :------------ | :---------------------------------------- | :---- |

859| `--json` | JSON として出力 | |

860| `--available` | マーケットプレイスから利用可能なプラグインを含めます。`--json` が必要です | |

861| `-h, --help` | コマンドのヘルプを表示 | |

862 

863### plugin tag

864 

865現在のディレクトリ内のプラグインのリリース git タグを作成します。プラグインのフォルダ内から実行してください。[プラグインリリースにタグを付ける](/ja/plugin-dependencies#tag-plugin-releases-for-version-resolution)を参照してください。

866 

867```bash theme={null}

868claude plugin tag [options]

869```

870 

871**オプション:**

872 

873| オプション | 説明 | デフォルト |

874| :------------ | :-------------------------------------- | :---- |

875| `--push` | タグを作成した後、リモートにプッシュします | |

876| `--dry-run` | タグを作成せずに、タグ付けされる内容を出力します | |

877| `-f, --force` | ワーキングツリーがダーティであるか、タグが既に存在する場合でもタグを作成します | |

878| `-h, --help` | コマンドのヘルプを表示 | |

879 

880***

881 

882## デバッグと開発ツール

883 

884### デバッグコマンド

885 

886`claude --debug` を使用してプラグイン読み込みの詳細を確認します:

887 

888これは以下を表示します:

889 

890* どのプラグインが読み込まれているか

891* プラグインマニフェストのエラー

892* Skill、agent、hook 登録

893* MCP サーバー初期化

894 

895### 一般的な問題

896 

897| 問題 | 原因 | 解決策 |

898| :---------------------------------- | :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |

899| プラグインが読み込まれない | 無効な `plugin.json` | `claude plugin validate` または `/plugin validate` で `plugin.json`、skill/agent/command frontmatter、`hooks/hooks.json` の構文とスキーマを確認 |

900| Skills が表示されない | ディレクトリ構造が間違っている | `skills/` または `commands/` がプラグインルートにあることを確認。`.claude-plugin/` 内ではない |

901| Hooks が発火しない | スクリプトが実行可能でない | `chmod +x script.sh` を実行 |

902| MCP サーバーが失敗 | `${CLAUDE_PLUGIN_ROOT}` が不足 | すべてのプラグインパスに変数を使用 |

903| パスエラー | 絶対パスが使用されている | すべてのパスは相対的で `./` で始まる必要があります |

904| LSP `Executable not found in $PATH` | 言語サーバーがインストールされていない | バイナリをインストール(例: `npm install -g typescript-language-server typescript`) |

905 

906### エラーメッセージの例

907 

908**マニフェスト検証エラー**:

909 

910* `Invalid JSON syntax: Unexpected token } in JSON at position 142`: コンマの欠落、余分なコンマ、またはクォートされていない文字列を確認

911* `Plugin has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Required`: 必須フィールドが不足

912* `Plugin has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`: JSON 構文エラー

913 

914**プラグイン読み込みエラー**:

915 

916* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`: コマンドパスが存在するが有効なコマンドファイルが含まれていない

917* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`: marketplace.json の `source` パスが存在しないディレクトリを指している

918* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: 重複するコンポーネント定義を削除するか、marketplace エントリから `strict: false` を削除

919 

920### Hook トラブルシューティング

921 

922**Hook スクリプトが実行されない**:

923 

9241. スクリプトが実行可能であることを確認: `chmod +x ./scripts/your-script.sh`

9252. shebang 行を確認: 最初の行は `#!/bin/bash` または `#!/usr/bin/env bash` である必要があります

9263. パスが `${CLAUDE_PLUGIN_ROOT}` を使用していることを確認: `"command": "${CLAUDE_PLUGIN_ROOT}/scripts/your-script.sh"`

9274. スクリプトを手動でテスト: `./scripts/your-script.sh`

928 

929**Hook が予期されたイベントでトリガーされない**:

930 

9311. イベント名が正しいことを確認(大文字小文字を区別): `PostToolUse`、`postToolUse` ではない

9322. マッチャーパターンがツールと一致することを確認: ファイル操作の場合 `"matcher": "Write|Edit"`

9333. hook タイプが有効であることを確認: `command`、`http`、`mcp_tool`、`prompt`、または `agent`

934 

935### MCP サーバートラブルシューティング

936 

937**サーバーが起動しない**:

938 

9391. コマンドが存在し、実行可能であることを確認

9402. すべてのパスが `${CLAUDE_PLUGIN_ROOT}` 変数を使用していることを確認

9413. MCP サーバーログを確認: `claude --debug` は初期化エラーを表示

9424. Claude Code の外部でサーバーを手動でテスト

943 

944**サーバーツールが表示されない**:

945 

9461. サーバーが `.mcp.json` または `plugin.json` で正しく設定されていることを確認

9472. サーバーが MCP プロトコルを正しく実装していることを確認

9483. デバッグ出力で接続タイムアウトを確認

949 

950### ディレクトリ構造の間違い

951 

952**症状**: プラグインは読み込まれるがコンポーネント(skills、agents、hooks)が不足している。

953 

954**正しい構造**: コンポーネントはプラグインルートにある必要があり、`.claude-plugin/` 内ではありません。`.claude-plugin/` には `plugin.json` のみが属します。

955 

956```text theme={null}

957my-plugin/

958├── .claude-plugin/

959│ └── plugin.json ← マニフェストのみここ

960├── commands/ ← ルートレベル

961├── agents/ ← ルートレベル

962└── hooks/ ← ルートレベル

963```

964 

965コンポーネントが `.claude-plugin/` 内にある場合は、プラグインルートに移動してください。

966 

967**デバッグチェックリスト**:

968 

9691. `claude --debug` を実行し、「loading plugin」メッセージを探す

9702. 各コンポーネントディレクトリがデバッグ出力にリストされていることを確認

9713. プラグインファイルを読み取ることができるファイルパーミッションを確認

972 

973***

974 

975## 配布とバージョン管理リファレンス

976 

977### バージョン管理

978 

979Claude Code はプラグインのバージョンをキャッシュキーとして使用し、更新が利用可能かどうかを判断します。`/plugin update` を実行するか自動更新が実行されると、Claude Code は現在のバージョンを計算し、既にインストールされているものと一致する場合は更新をスキップします。

980 

981バージョンは、設定されている最初のものから解決されます:

982 

9831. プラグインの `plugin.json` の `version` フィールド

9842. `marketplace.json` のプラグインのマーケットプレイスエントリの `version` フィールド

9853. git でホストされているマーケットプレイスの `github`、`url`、`git-subdir`、および相対パスソースのプラグインソースの git コミット SHA

9864. npm ソースまたは git リポジトリ内にないローカルディレクトリの場合は `unknown`

987 

988これにより、プラグインをバージョン管理する 2 つの方法が提供されます:

989 

990| アプローチ | 方法 | 更新動作 | 最適な用途 |

991| :----------------- | :---------------------------------------------- | :-------------------------------------------------------------------------------------------------- | :--------------------- |

992| **明示的バージョン** | `plugin.json` で `"version": "2.1.0"` を設定 | ユーザーはこのフィールドをバンプした場合のみ更新を取得します。新しいコミットをプッシュしてもバンプしない場合は効果がなく、`/plugin update` は「既に最新バージョンです」と報告します。 | 安定したリリースサイクルを持つ公開プラグイン |

993| **コミット SHA バージョン** | `plugin.json` とマーケットプレイスエントリの両方から `version` を省略 | ユーザーはプラグインの git ソースへの新しいコミットのたびに更新を取得します | 積極的に開発中の内部またはチームプラグイン |

994 

995<Warning>

996 `plugin.json` で `version` を設定する場合、ユーザーが変更を受け取るたびにバンプする必要があります。新しいコミットをプッシュするだけでは不十分です。Claude Code は同じバージョン文字列を認識し、キャッシュされたコピーを保持するためです。迅速に反復している場合は、`version` を設定しないままにして、代わりに git コミット SHA が使用されるようにしてください。

997</Warning>

998 

999明示的なバージョンを使用する場合は、[semantic versioning](https://semver.org)(`MAJOR.MINOR.PATCH`)に従ってください:破壊的変更の場合は MAJOR をバンプし、新機能の場合は MINOR をバンプし、バグ修正の場合は PATCH をバンプしてください。`CHANGELOG.md` で変更を文書化してください。

1000 

1001***

1002 

1003## 関連項目

1004 

1005* [プラグイン](/ja/plugins) - チュートリアルと実践的な使用法

1006* [プラグインマーケットプレイス](/ja/plugin-marketplaces) - マーケットプレイスの作成と管理

1007* [Skills](/ja/skills) - Skill 開発の詳細

1008* [Subagents](/ja/sub-agents) - エージェント設定と機能

1009* [Hooks](/ja/hooks) - イベント処理と自動化

1010* [MCP](/ja/mcp) - 外部ツール統合

1011* [設定](/ja/settings) - プラグインの設定オプション

quickstart.md +976 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# クイックスタート

6 

7> Claude Code へようこそ!

8 

9export const InstallConfigurator = ({defaultSurface = 'terminal'}) => {

10 const TERM = {

11 mac: {

12 label: 'macOS / Linux',

13 cmd: 'curl -fsSL https://claude.ai/install.sh | bash'

14 },

15 win: {

16 label: 'Windows'

17 },

18 brew: {

19 label: 'Homebrew',

20 cmd: 'brew install --cask claude-code'

21 },

22 winget: {

23 label: 'WinGet',

24 cmd: 'winget install Anthropic.ClaudeCode'

25 }

26 };

27 const WIN_VARIANTS = {

28 ps: 'irm https://claude.ai/install.ps1 | iex',

29 cmd: 'curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd'

30 };

31 const TABS = [{

32 key: 'terminal',

33 label: 'Terminal'

34 }, {

35 key: 'desktop',

36 label: 'Desktop'

37 }, {

38 key: 'vscode',

39 label: 'VS Code'

40 }, {

41 key: 'jetbrains',

42 label: 'JetBrains'

43 }];

44 const ALT_TARGETS = {

45 desktop: {

46 name: 'Desktop',

47 tagline: 'The full agent in a native app for macOS and Windows.',

48 installLabel: 'Download the app',

49 installHref: 'https://claude.com/download?utm_source=claude_code&utm_medium=docs&utm_content=configurator_desktop_download',

50 guideHref: '/en/desktop-quickstart'

51 },

52 vscode: {

53 name: 'VS Code',

54 tagline: 'Review diffs, manage context, and chat without leaving your editor.',

55 installLabel: 'Install from Marketplace',

56 installHref: 'https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code',

57 altCmd: 'code --install-extension anthropic.claude-code',

58 guideHref: '/en/vs-code'

59 },

60 jetbrains: {

61 name: 'JetBrains',

62 tagline: 'Native plugin for IntelliJ, PyCharm, WebStorm, and other JetBrains IDEs.',

63 installLabel: 'Install from Marketplace',

64 installHref: 'https://plugins.jetbrains.com/plugin/27310-claude-code-beta-',

65 guideHref: '/en/jetbrains'

66 }

67 };

68 const PROVIDERS = [{

69 key: 'anthropic',

70 label: 'Anthropic'

71 }, {

72 key: 'bedrock',

73 label: 'Amazon Bedrock'

74 }, {

75 key: 'foundry',

76 label: 'Microsoft Foundry'

77 }, {

78 key: 'vertex',

79 label: 'Google Vertex AI'

80 }];

81 const PROVIDER_NOTICE = {

82 bedrock: <>

83 <strong>Configure your AWS account first.</strong> Running on Bedrock

84 requires model access enabled in the AWS console and IAM credentials.{' '}

85 <a href="/en/amazon-bedrock">Bedrock setup guide →</a>

86 </>,

87 vertex: <>

88 <strong>Configure your GCP project first.</strong> Running on Vertex AI

89 requires the Vertex API enabled and a service account with the right

90 permissions.{' '}

91 <a href="/en/google-vertex-ai">Vertex setup guide →</a>

92 </>,

93 foundry: <>

94 <strong>Configure your Azure resources first.</strong> Running on

95 Microsoft Foundry requires an Azure subscription with a Foundry resource

96 and model deployments provisioned.{' '}

97 <a href="/en/microsoft-foundry">Foundry setup guide →</a>

98 </>

99 };

100 const iconCheck = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

101 <polyline points="20 6 9 17 4 12" />

102 </svg>;

103 const iconCopy = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

104 <rect x="9" y="9" width="13" height="13" rx="2" />

105 <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />

106 </svg>;

107 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

108 <line x1="5" y1="12" x2="19" y2="12" />

109 <polyline points="12 5 19 12 12 19" />

110 </svg>;

111 const iconArrowUpRight = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

112 <line x1="7" y1="17" x2="17" y2="7" />

113 <polyline points="7 7 17 7 17 17" />

114 </svg>;

115 const iconInfo = (size = 16) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

116 <circle cx="12" cy="12" r="10" />

117 <line x1="12" y1="16" x2="12" y2="12" />

118 <line x1="12" y1="8" x2="12.01" y2="8" />

119 </svg>;

120 const [target, setTarget] = useState(defaultSurface);

121 const [team, setTeam] = useState(false);

122 const [provider, setProvider] = useState('anthropic');

123 const [pkg, setPkg] = useState(() => (/Win/).test(navigator.userAgent) ? 'win' : 'mac');

124 const [winCmd, setWinCmd] = useState(false);

125 const [copied, setCopied] = useState(null);

126 const copyTimer = useRef(null);

127 const handleCopy = async (text, key) => {

128 try {

129 await navigator.clipboard.writeText(text);

130 } catch {

131 const ta = document.createElement('textarea');

132 ta.value = text;

133 document.body.appendChild(ta);

134 ta.select();

135 document.execCommand('copy');

136 document.body.removeChild(ta);

137 }

138 clearTimeout(copyTimer.current);

139 setCopied(key);

140 copyTimer.current = setTimeout(() => setCopied(null), 1800);

141 };

142 const cardBodyCmd = (cmd, prompt) => {

143 const on = copied === 'term';

144 return <div className="cc-ic-card-body">

145 <span className="cc-ic-prompt">{prompt || '$'}</span>

146 <div className="cc-ic-cmd">{cmd}</div>

147 <button type="button" className={'cc-ic-copy' + (on ? ' cc-ic-copied' : '')} onClick={() => handleCopy(cmd, 'term')}>

148 {on ? iconCheck(13) : iconCopy(13)}

149 <span>{on ? 'Copied' : 'Copy'}</span>

150 </button>

151 </div>;

152 };

153 const isWinInstaller = pkg === 'win';

154 const isWinPrompt = pkg === 'win' || pkg === 'winget';

155 const terminalCmd = isWinInstaller ? WIN_VARIANTS[winCmd ? 'cmd' : 'ps'] : TERM[pkg].cmd;

156 const alt = ALT_TARGETS[target];

157 const showNotice = team && provider !== 'anthropic';

158 const STYLES = `

159.cc-ic {

160 --ic-slate: #141413;

161 --ic-clay: #d97757;

162 --ic-clay-deep: #c6613f;

163 --ic-gray-000: #ffffff;

164 --ic-gray-150: #f0eee6;

165 --ic-gray-550: #73726c;

166 --ic-gray-700: #3d3d3a;

167 --ic-border-subtle: rgba(31, 30, 29, 0.08);

168 --ic-border-default: rgba(31, 30, 29, 0.15);

169 --ic-border-strong: rgba(31, 30, 29, 0.3);

170 --ic-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Courier New', monospace;

171 font-family: 'Anthropic Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

172 font-size: 14px; line-height: 1.5; color: var(--ic-slate);

173 margin: 8px 0 32px;

174}

175.dark .cc-ic {

176 --ic-slate: #f0eee6;

177 --ic-gray-000: #262624;

178 --ic-gray-150: #1f1e1d;

179 --ic-gray-550: #91908a;

180 --ic-gray-700: #bfbdb4;

181 --ic-border-subtle: rgba(240, 238, 230, 0.08);

182 --ic-border-default: rgba(240, 238, 230, 0.14);

183 --ic-border-strong: rgba(240, 238, 230, 0.28);

184}

185.dark .cc-ic-check { background: transparent; }

186.dark .cc-ic-card { border: 0.5px solid var(--ic-border-subtle); }

187.dark .cc-ic-p-pill.cc-ic-active { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }

188.cc-ic *, .cc-ic *::before, .cc-ic *::after { box-sizing: border-box; }

189.cc-ic a { text-decoration: none; }

190.cc-ic a:not([class]) { color: inherit; }

191.cc-ic button { font-family: inherit; cursor: pointer; }

192 

193.cc-ic-tab-strip {

194 display: inline-flex; gap: 2px;

195 padding: 4px; background: var(--ic-gray-150);

196 border-radius: 10px; overflow-x: auto;

197 max-width: 100%;

198}

199.cc-ic-tab {

200 appearance: none; background: none; border: none;

201 padding: 10px 18px; font-size: 15px; font-weight: 430;

202 color: var(--ic-gray-550); border-radius: 7px;

203 white-space: nowrap;

204 transition: color 0.12s, background-color 0.12s;

205}

206.cc-ic-tab:hover { color: var(--ic-gray-700); }

207.cc-ic-tab.cc-ic-active {

208 color: var(--ic-slate); font-weight: 500;

209 background: var(--ic-gray-000);

210 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);

211}

212.dark .cc-ic-tab.cc-ic-active { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }

213 

214.cc-ic-team-wrap { padding: 16px 0 20px; }

215.cc-ic-team-toggle {

216 display: flex; align-items: center; gap: 12px; font-family: inherit;

217 padding: 12px 16px; font-size: 14px; font-weight: 430;

218 color: var(--ic-gray-700); cursor: pointer; user-select: none;

219 width: fit-content; background: var(--ic-gray-150);

220 border: 0.5px solid var(--ic-border-subtle); border-radius: 8px;

221 transition: border-color 0.15s;

222}

223.cc-ic-team-toggle:hover { border-color: var(--ic-border-default); }

224.cc-ic-team-toggle.cc-ic-checked {

225 background: rgba(217, 119, 87, 0.08);

226 border-color: rgba(217, 119, 87, 0.25);

227}

228.cc-ic-check {

229 width: 16px; height: 16px;

230 border: 1px solid var(--ic-border-strong); border-radius: 4px;

231 background: var(--ic-gray-000);

232 display: flex; align-items: center; justify-content: center;

233 flex-shrink: 0;

234}

235.cc-ic-check svg { color: #fff; display: none; }

236.cc-ic-team-toggle.cc-ic-checked .cc-ic-check { background: var(--ic-clay-deep); border-color: var(--ic-clay-deep); }

237.cc-ic-team-toggle.cc-ic-checked .cc-ic-check svg { display: block; }

238 

239.cc-ic-team-reveal { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }

240.cc-ic-sales {

241 display: flex; align-items: center; justify-content: space-between;

242 gap: 16px; padding: 14px 16px;

243 background: var(--ic-gray-000); border: 0.5px solid var(--ic-border-default);

244 border-radius: 8px; flex-wrap: wrap;

245}

246.cc-ic-sales-text { font-size: 13px; color: var(--ic-gray-700); line-height: 1.5; flex: 1; min-width: 200px; }

247.cc-ic-sales-text strong { font-weight: 550; color: var(--ic-slate); }

248.cc-ic-sales-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

249.cc-ic-btn-clay {

250 display: inline-flex; align-items: center; gap: 8px;

251 background: var(--ic-clay-deep); color: #fff; border: none;

252 border-radius: 8px; padding: 8px 14px;

253 font-size: 13px; font-weight: 500;

254 transition: background-color 0.15s; white-space: nowrap;

255}

256.cc-ic-btn-clay:hover { background: var(--ic-clay); }

257.cc-ic-btn-ghost {

258 display: inline-flex; align-items: center; gap: 8px;

259 background: transparent; color: var(--ic-gray-700);

260 border: 0.5px solid var(--ic-border-default);

261 border-radius: 8px; padding: 8px 14px;

262 font-size: 13px; font-weight: 500;

263}

264.cc-ic-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

265 

266.cc-ic-provider-bar {

267 display: flex; align-items: center; gap: 12px;

268 padding: 14px 16px; background: var(--ic-gray-150);

269 border-radius: 8px; font-size: 13px; flex-wrap: wrap;

270}

271.cc-ic-provider-bar .cc-ic-label { color: var(--ic-gray-550); flex-shrink: 0; }

272.cc-ic-provider-pills { display: flex; gap: 4px; flex-wrap: wrap; }

273.cc-ic-p-pill {

274 appearance: none; border: none; background: transparent;

275 padding: 6px 12px; border-radius: 6px;

276 font-size: 13px; font-weight: 430; color: var(--ic-gray-700);

277 white-space: nowrap;

278}

279.cc-ic-p-pill:hover { background: rgba(0, 0, 0, 0.04); }

280.cc-ic-p-pill.cc-ic-active {

281 background: var(--ic-gray-000); color: var(--ic-slate);

282 font-weight: 500; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);

283}

284.cc-ic-provider-notice {

285 display: flex; padding: 16px 18px;

286 background: var(--ic-gray-000); border: 0.5px solid var(--ic-border-default);

287 border-radius: 8px; gap: 14px; align-items: flex-start;

288}

289.cc-ic-provider-notice > svg { color: var(--ic-gray-550); margin-top: 2px; flex-shrink: 0; }

290.cc-ic-provider-notice-body { font-size: 14px; line-height: 1.55; color: var(--ic-gray-700); }

291.cc-ic-provider-notice-body strong { font-weight: 550; color: var(--ic-slate); }

292.cc-ic-provider-notice-body a { color: var(--ic-clay-deep); font-weight: 500; }

293.cc-ic-provider-notice-body a:hover { text-decoration: underline; }

294 

295.cc-ic-card { background: #141413; border-radius: 12px; overflow: hidden; }

296.cc-ic-subtabs {

297 display: flex; align-items: center;

298 background: #1a1918;

299 border-bottom: 0.5px solid rgba(255, 255, 255, 0.08);

300 padding: 0 8px; overflow-x: auto;

301}

302.cc-ic-subtab {

303 appearance: none; background: none; border: none;

304 padding: 12px 16px; font-size: 12px;

305 color: rgba(255, 255, 255, 0.5);

306 position: relative; white-space: nowrap;

307}

308.cc-ic-subtab:hover { color: rgba(255, 255, 255, 0.75); }

309.cc-ic-subtab.cc-ic-active { color: #fff; }

310.cc-ic-subtab.cc-ic-active::after {

311 content: ''; position: absolute;

312 left: 12px; right: 12px; bottom: -0.5px;

313 height: 2px; background: var(--ic-clay);

314}

315.cc-ic-shell-switch {

316 display: inline-flex; gap: 2px;

317 margin: 14px 26px 0; padding: 3px;

318 background: rgba(255, 255, 255, 0.06);

319 border: 0.5px solid rgba(255, 255, 255, 0.08);

320 border-radius: 8px;

321 font-family: inherit;

322}

323.cc-ic-shell-option {

324 font: inherit; font-size: 12px; font-weight: 500;

325 padding: 5px 12px; border-radius: 6px;

326 background: transparent; border: none;

327 color: rgba(255, 255, 255, 0.55);

328 cursor: pointer; user-select: none; white-space: nowrap;

329 transition: color 120ms ease, background-color 120ms ease;

330}

331.cc-ic-shell-option:hover { color: rgba(255, 255, 255, 0.85); }

332.cc-ic-shell-option.cc-ic-active {

333 background: rgba(255, 255, 255, 0.12);

334 color: #fff;

335 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);

336}

337 

338.cc-ic-card-body { padding: 24px 26px; display: flex; align-items: flex-start; gap: 14px; }

339.cc-ic-prompt {

340 color: var(--ic-clay); font-family: var(--ic-font-mono);

341 font-size: 17px; user-select: none; padding-top: 2px;

342}

343.cc-ic-cmd {

344 flex: 1; font-family: var(--ic-font-mono);

345 font-size: 17px; color: #f0eee6;

346 line-height: 1.55; white-space: pre-wrap; word-break: break-word;

347}

348.cc-ic-copy {

349 display: inline-flex; align-items: center; gap: 6px;

350 background: rgba(255, 255, 255, 0.08);

351 border: 0.5px solid rgba(255, 255, 255, 0.12);

352 color: rgba(255, 255, 255, 0.85);

353 padding: 7px 13px; border-radius: 8px;

354 font-size: 13px; font-weight: 500; flex-shrink: 0;

355}

356.cc-ic-copy:hover { background: rgba(255, 255, 255, 0.14); }

357.cc-ic-copy.cc-ic-copied { background: var(--ic-clay-deep); border-color: var(--ic-clay-deep); color: #fff; }

358 

359.cc-ic-below {

360 margin-top: 12px; font-size: 13px; color: var(--ic-gray-550);

361 display: flex; gap: 16px; flex-wrap: wrap; align-items: baseline;

362}

363.cc-ic-below a { color: var(--ic-gray-700); border-bottom: 0.5px solid var(--ic-border-default); }

364.cc-ic-below a:hover { color: var(--ic-clay-deep); border-bottom-color: var(--ic-clay-deep); }

365.cc-ic-handoff {

366 padding: 22px 24px;

367 background: linear-gradient(180deg, #faf9f4 0%, #f3f1e9 100%);

368 border: 0.5px solid var(--ic-border-default);

369 border-radius: 12px;

370 box-shadow: 0 1px 2px rgba(31, 30, 29, 0.04), 0 6px 16px -4px rgba(31, 30, 29, 0.06);

371}

372.dark .cc-ic-handoff {

373 background: linear-gradient(180deg, #262624 0%, #1f1e1d 100%);

374 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 16px -4px rgba(0, 0, 0, 0.4);

375}

376.cc-ic-handoff-title {

377 font-size: 16px; font-weight: 550; color: var(--ic-slate);

378 letter-spacing: -0.01em; margin-bottom: 4px;

379}

380.cc-ic-handoff-sub {

381 font-size: 14px; line-height: 1.5; color: var(--ic-gray-700);

382 margin-bottom: 18px;

383}

384.cc-ic-handoff-actions { display: flex; gap: 10px; flex-wrap: wrap; }

385.cc-ic-handoff-alt {

386 margin-top: 12px; font-size: 12px; color: var(--ic-gray-550);

387}

388.cc-ic-handoff-alt code {

389 font-family: var(--ic-font-mono); font-size: 11px;

390 background: var(--ic-gray-150); padding: 2px 6px;

391 border-radius: 4px; color: var(--ic-gray-700);

392}

393.cc-ic-copy-sm {

394 appearance: none; border: none;

395 display: inline-flex; align-items: center; justify-content: center;

396 width: 22px; height: 22px;

397 margin-left: 4px; vertical-align: middle;

398 background: var(--ic-gray-150); color: var(--ic-gray-550);

399 border-radius: 4px;

400 transition: color 0.1s, background-color 0.1s;

401}

402.cc-ic-copy-sm:hover { color: var(--ic-gray-700); background: var(--ic-border-default); }

403.cc-ic-copy-sm.cc-ic-copied { background: var(--ic-clay-deep); color: #fff; }

404 

405@media (max-width: 720px) {

406 .cc-ic-tab { padding: 12px 14px; font-size: 14px; }

407 .cc-ic-sales-actions { width: 100%; }

408 .cc-ic-card-body { padding: 20px; }

409 .cc-ic-cmd { font-size: 15px; }

410}

411`;

412 return <div className="cc-ic not-prose">

413 <style>{STYLES}</style>

414 

415 {}

416 <div className="cc-ic-tab-strip" role="tablist">

417 {TABS.map(t => <button key={t.key} type="button" role="tab" aria-selected={target === t.key} className={'cc-ic-tab' + (target === t.key ? ' cc-ic-active' : '')} onClick={() => setTarget(t.key)}>

418 {t.label}

419 </button>)}

420 </div>

421 

422 {}

423 <div className="cc-ic-team-wrap">

424 <button type="button" role="switch" aria-checked={team} className={'cc-ic-team-toggle' + (team ? ' cc-ic-checked' : '')} onClick={() => setTeam(!team)}>

425 <span className="cc-ic-check">{iconCheck(11)}</span>

426 <span>

427 I’m buying for a team or company (SSO, AWS/Azure/GCP, central billing)

428 </span>

429 </button>

430 </div>

431 

432 {}

433 {team && <div className="cc-ic-team-reveal">

434 <div className="cc-ic-sales">

435 <div className="cc-ic-sales-text">

436 <strong>Set up your team:</strong> self-serve or talk to sales.

437 </div>

438 <div className="cc-ic-sales-actions">

439 <a href="https://claude.ai/upgrade?initialPlanType=team&amp;utm_source=claude_code&amp;utm_medium=docs&amp;utm_content=configurator_team_get_started" className="cc-ic-btn-ghost">

440 Get started

441 </a>

442 <a href="https://www.anthropic.com/contact-sales?utm_source=claude_code&amp;utm_medium=docs&amp;utm_content=configurator_team_contact_sales" className="cc-ic-btn-clay">

443 Contact sales {iconArrowRight()}

444 </a>

445 </div>

446 </div>

447 

448 <div className="cc-ic-provider-bar">

449 <span className="cc-ic-label">Run on</span>

450 <div className="cc-ic-provider-pills" role="radiogroup" aria-label="Provider">

451 {PROVIDERS.map(p => <button key={p.key} type="button" role="radio" aria-checked={provider === p.key} className={'cc-ic-p-pill' + (provider === p.key ? ' cc-ic-active' : '')} onClick={() => setProvider(p.key)}>

452 {p.label}

453 </button>)}

454 </div>

455 </div>

456 

457 {showNotice && <div className="cc-ic-provider-notice">

458 {iconInfo()}

459 <div className="cc-ic-provider-notice-body">

460 {PROVIDER_NOTICE[provider]}

461 </div>

462 </div>}

463 </div>}

464 

465 {}

466 {target === 'terminal' && <div className="cc-ic-card">

467 <div className="cc-ic-subtabs" role="tablist" aria-label="Install method">

468 {Object.keys(TERM).map(k => <button key={k} type="button" role="tab" aria-selected={pkg === k} className={'cc-ic-subtab' + (pkg === k ? ' cc-ic-active' : '')} onClick={() => setPkg(k)}>

469 {TERM[k].label}

470 </button>)}

471 </div>

472 {isWinInstaller && <div className="cc-ic-shell-switch" role="tablist" aria-label="Shell">

473 {[{

474 k: 'ps',

475 label: 'PowerShell'

476 }, {

477 k: 'cmd',

478 label: 'CMD'

479 }].map(({k, label}) => {

480 const active = k === 'cmd' === winCmd;

481 return <button key={k} type="button" role="tab" aria-selected={active} className={'cc-ic-shell-option' + (active ? ' cc-ic-active' : '')} onClick={() => setWinCmd(k === 'cmd')}>

482 {label}

483 </button>;

484 })}

485 </div>}

486 {cardBodyCmd(terminalCmd, isWinPrompt ? '>' : '$')}

487 </div>}

488 

489 {}

490 {target === 'terminal' && <div className="cc-ic-below">

491 {isWinInstaller && <span>

492 <a href="https://git-scm.com/downloads/win" target="_blank" rel="noopener">

493 Git for Windows

494 </a>{' '}

495 recommended. PowerShell is used if Git Bash is absent.

496 </span>}

497 {(pkg === 'brew' || pkg === 'winget') && <span>

498 Does not auto-update. Run{' '}

499 <code>{pkg === 'brew' ? 'brew upgrade claude-code' : 'winget upgrade Anthropic.ClaudeCode'}</code>{' '}

500 periodically.

501 </span>}

502 <a href="/en/troubleshoot-install">Installation troubleshooting</a>

503 </div>}

504 

505 {alt && <div className="cc-ic-handoff">

506 <div className="cc-ic-handoff-title">Claude Code for {alt.name}</div>

507 <div className="cc-ic-handoff-sub">{alt.tagline}</div>

508 <div className="cc-ic-handoff-actions">

509 <a href={alt.installHref} className="cc-ic-btn-clay" {...alt.installHref.startsWith('http') ? {

510 target: '_blank',

511 rel: 'noopener'

512 } : {}}>

513 {alt.installLabel} {iconArrowUpRight(13)}

514 </a>

515 <a href={alt.guideHref} className="cc-ic-btn-ghost">

516 {alt.name} guide {iconArrowRight(12)}

517 </a>

518 </div>

519 {alt.altCmd && <div className="cc-ic-handoff-alt">

520 or run <code>{alt.altCmd}</code>

521 <button type="button" className={'cc-ic-copy-sm' + (copied === 'alt' ? ' cc-ic-copied' : '')} onClick={() => handleCopy(alt.altCmd, 'alt')} aria-label="Copy command">

522 {copied === 'alt' ? iconCheck(11) : iconCopy(11)}

523 </button>

524 </div>}

525 </div>}

526 </div>;

527};

528 

529export const Experiment = ({flag, treatment, children}) => {

530 const VID_KEY = 'exp_vid';

531 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

532 const fnv1a = s => {

533 let h = 0x811c9dc5;

534 for (let i = 0; i < s.length; i++) {

535 h ^= s.charCodeAt(i);

536 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

537 }

538 return h >>> 0;

539 };

540 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

541 const [decision] = useState(() => {

542 const params = new URLSearchParams(location.search);

543 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

544 const force = params.get('gb-force');

545 if (force) {

546 for (const p of force.split(',')) {

547 const [k, v] = p.split(':');

548 if (k === flag) return {

549 variant: v || 'treatment',

550 track: false

551 };

552 }

553 }

554 if (navigator.globalPrivacyControl) {

555 return {

556 variant: 'control',

557 track: false

558 };

559 }

560 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

561 if (prefsMatch) {

562 try {

563 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

564 return {

565 variant: 'control',

566 track: false

567 };

568 }

569 } catch {

570 return {

571 variant: 'control',

572 track: false

573 };

574 }

575 } else {

576 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

577 if (!country || CONSENT_COUNTRIES.has(country)) {

578 return {

579 variant: 'control',

580 track: false

581 };

582 }

583 }

584 let vid;

585 try {

586 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

587 if (ajsMatch) {

588 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

589 } else {

590 vid = localStorage.getItem(VID_KEY);

591 if (!vid) {

592 vid = crypto.randomUUID();

593 }

594 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

595 }

596 try {

597 localStorage.setItem(VID_KEY, vid);

598 } catch {}

599 } catch {

600 return {

601 variant: 'control',

602 track: false

603 };

604 }

605 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

606 return {

607 variant,

608 track: true,

609 vid

610 };

611 });

612 useEffect(() => {

613 if (!decision.track) return;

614 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

615 method: 'POST',

616 headers: {

617 'Content-Type': 'application/json',

618 'x-service-name': 'claude_code_docs'

619 },

620 body: JSON.stringify({

621 events: [{

622 event_type: 'GrowthbookExperimentEvent',

623 event_data: {

624 device_id: decision.vid,

625 anonymous_id: decision.vid,

626 timestamp: new Date().toISOString(),

627 experiment_id: flag,

628 variation_id: decision.variant === 'treatment' ? 1 : 0,

629 environment: 'production'

630 }

631 }]

632 }),

633 keepalive: true

634 }).catch(() => {});

635 }, []);

636 return decision.variant === 'treatment' ? treatment : children;

637};

638 

639このクイックスタートガイドを使用すれば、数分で AI を活用したコーディング支援を利用できます。このガイドを終了する頃には、一般的な開発タスクに Claude Code を使用する方法を理解できるようになります。

640 

641<Experiment flag="quickstart-install-configurator" treatment={<InstallConfigurator />} />

642 

643## 始める前に

644 

645以下を確認してください:

646 

647* ターミナルまたはコマンドプロンプトが開いている

648 * ターミナルを使用したことがない場合は、[ターミナルガイド](/ja/terminal-guide)をご覧ください

649* 作業するコードプロジェクトがある

650* [Claude サブスクリプション](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq)(Pro、Max、Teams、または Enterprise)、[Claude Console](https://console.anthropic.com/) アカウント、または[サポートされているクラウドプロバイダー](/ja/third-party-integrations)経由のアクセスがある

651 

652<Note>

653 このガイドはターミナル CLI について説明しています。Claude Code は[ウェブ](https://claude.ai/code)、[デスクトップアプリ](/ja/desktop)、[VS Code](/ja/vs-code) および [JetBrains IDE](/ja/jetbrains)、[Slack](/ja/slack)、および [GitHub Actions](/ja/github-actions) と [GitLab](/ja/gitlab-ci-cd) を使用した CI/CD でも利用できます。[すべてのインターフェース](/ja/overview#use-claude-code-everywhere)を参照してください。

654</Note>

655 

656## ステップ 1:Claude Code をインストールする

657 

658To install Claude Code, use one of the following methods:

659 

660<Tabs>

661 <Tab title="Native Install (Recommended)">

662 **macOS, Linux, WSL:**

663 

664 ```bash theme={null}

665 curl -fsSL https://claude.ai/install.sh | bash

666 ```

667 

668 **Windows PowerShell:**

669 

670 ```powershell theme={null}

671 irm https://claude.ai/install.ps1 | iex

672 ```

673 

674 **Windows CMD:**

675 

676 ```batch theme={null}

677 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

678 ```

679 

680 If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.

681 

682 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.

683 

684 <Info>

685 Native installations automatically update in the background to keep you on the latest version.

686 </Info>

687 </Tab>

688 

689 <Tab title="Homebrew">

690 ```bash theme={null}

691 brew install --cask claude-code

692 ```

693 

694 Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.

695 

696 <Info>

697 Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.

698 </Info>

699 </Tab>

700 

701 <Tab title="WinGet">

702 ```powershell theme={null}

703 winget install Anthropic.ClaudeCode

704 ```

705 

706 <Info>

707 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.

708 </Info>

709 </Tab>

710</Tabs>

711 

712You can also install with [apt, dnf, or apk](/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.

713 

714## ステップ 2:アカウントにログインする

715 

716Claude Code を使用するにはアカウントが必要です。`claude` コマンドでインタラクティブセッションを開始すると、ログインが必要になります:

717 

718```bash theme={null}

719claude

720# 初回使用時にログインするよう求められます

721```

722 

723```bash theme={null}

724/login

725# プロンプトに従ってアカウントでログインします

726```

727 

728以下のいずれかのアカウントタイプを使用してログインできます:

729 

730* [Claude Pro、Max、Teams、または Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login)(推奨)

731* [Claude Console](https://console.anthropic.com/)(プリペイドクレジット付き API アクセス)。初回ログイン時に、コスト追跡を一元化するために「Claude Code」ワークスペースが Console に自動的に作成されます。

732* [Amazon Bedrock、Google Vertex AI、または Microsoft Foundry](/ja/third-party-integrations)(エンタープライズクラウドプロバイダー)

733 

734ログイン後、認証情報がシステムに保存され、再度ログインする必要はありません。後でアカウントを切り替えるには、`/login` コマンドを使用します。

735 

736## ステップ 3:最初のセッションを開始する

737 

738任意のプロジェクトディレクトリでターミナルを開き、Claude Code を開始します:

739 

740```bash theme={null}

741cd /path/to/your/project

742claude

743```

744 

745セッション情報、最近の会話、および最新の更新を含む Claude Code ウェルカムスクリーンが表示されます。利用可能なコマンドについては `/help` を入力するか、前のセッションを続行するには `/resume` を入力します。

746 

747<Tip>

748 ログイン後(ステップ 2)、認証情報がシステムに保存されます。詳細については、[認証情報管理](/ja/authentication#credential-management)を参照してください。

749</Tip>

750 

751## ステップ 4:最初の質問をする

752 

753コードベースを理解することから始めましょう。以下のコマンドのいずれかを試してください:

754 

755```text theme={null}

756このプロジェクトは何をしていますか?

757```

758 

759Claude はファイルを分析して概要を提供します。より具体的な質問をすることもできます:

760 

761```text theme={null}

762このプロジェクトはどのようなテクノロジーを使用していますか?

763```

764 

765```text theme={null}

766メインエントリーポイントはどこですか?

767```

768 

769```text theme={null}

770フォルダ構造を説明してください

771```

772 

773Claude 自体の機能について質問することもできます:

774 

775```text theme={null}

776Claude Code は何ができますか?

777```

778 

779```text theme={null}

780Claude Code でカスタムスキルを作成するにはどうすればよいですか?

781```

782 

783```text theme={null}

784Claude Code は Docker で動作しますか?

785```

786 

787<Note>

788 Claude Code は必要に応じてプロジェクトファイルを読み込みます。コンテキストを手動で追加する必要はありません。

789</Note>

790 

791## ステップ 5:最初のコード変更を行う

792 

793次に、Claude Code に実際のコーディングを行わせましょう。簡単なタスクを試してください:

794 

795```text theme={null}

796メインファイルに hello world 関数を追加してください

797```

798 

799Claude Code は以下を実行します:

800 

8011. 適切なファイルを見つける

8022. 提案された変更を表示する

8033. 承認を求める

8044. 編集を行う

805 

806<Note>

807 Claude Code はファイルを変更する前に常に許可を求めます。個別の変更を承認するか、セッション中に「すべて承認」モードを有効にすることができます。

808</Note>

809 

810## ステップ 6:Claude Code で Git を使用する

811 

812Claude Code は Git 操作を会話形式にします:

813 

814```text theme={null}

815どのファイルを変更しましたか?

816```

817 

818```text theme={null}

819説明的なメッセージで変更をコミットしてください

820```

821 

822より複雑な Git 操作を求めることもできます:

823 

824```text theme={null}

825feature/quickstart という名前の新しいブランチを作成してください

826```

827 

828```text theme={null}

829最後の 5 つのコミットを表示してください

830```

831 

832```text theme={null}

833マージコンフリクトの解決を手伝ってください

834```

835 

836## ステップ 7:バグを修正するか機能を追加する

837 

838Claude はデバッグと機能実装に長けています。

839 

840自然言語で実現したいことを説明します:

841 

842```text theme={null}

843ユーザー登録フォームに入力検証を追加してください

844```

845 

846または既存の問題を修正します:

847 

848```text theme={null}

849ユーザーが空のフォームを送信できるバグがあります。修正してください

850```

851 

852Claude Code は以下を実行します:

853 

854* 関連するコードを見つける

855* コンテキストを理解する

856* ソリューションを実装する

857* 利用可能な場合はテストを実行する

858 

859## ステップ 8:他の一般的なワークフローを試す

860 

861Claude と連携する方法は多数あります:

862 

863**コードをリファクタリングする**

864 

865```text theme={null}

866認証モジュールをリファクタリングして、コールバックの代わりに async/await を使用するようにしてください

867```

868 

869**テストを書く**

870 

871```text theme={null}

872計算機関数のユニットテストを書いてください

873```

874 

875**ドキュメントを更新する**

876 

877```text theme={null}

878インストール手順で README を更新してください

879```

880 

881**コードレビュー**

882 

883```text theme={null}

884変更をレビューして改善を提案してください

885```

886 

887<Tip>

888 有能な同僚と話すように Claude と話してください。実現したいことを説明すれば、それを実現するのに役立ちます。

889</Tip>

890 

891## 必須コマンド

892 

893日常的に使用する最も重要なコマンドは以下の通りです:

894 

895| コマンド | 機能 | 例 |

896| ------------------- | -------------------- | ----------------------------------- |

897| `claude` | インタラクティブモードを開始する | `claude` |

898| `claude "task"` | 1 回限りのタスクを実行する | `claude "fix the build error"` |

899| `claude -p "query"` | 1 回限りのクエリを実行してから終了する | `claude -p "explain this function"` |

900| `claude -c` | 現在のディレクトリで最新の会話を続行する | `claude -c` |

901| `claude -r` | 前のセッションを再開する | `claude -r` |

902| `claude commit` | Git コミットを作成する | `claude commit` |

903| `/clear` | 会話履歴をクリアする | `/clear` |

904| `/help` | 利用可能なコマンドを表示する | `/help` |

905| `exit` または Ctrl+C | Claude Code を終了する | `exit` |

906 

907コマンドの完全なリストについては、[CLI リファレンス](/ja/cli-reference)を参照してください。

908 

909## 初心者向けのプロのヒント

910 

911詳細については、[ベストプラクティス](/ja/best-practices)と[一般的なワークフロー](/ja/common-workflows)を参照してください。

912 

913<AccordionGroup>

914 <Accordion title="リクエストを具体的にする">

915 代わりに:'バグを修正してください'

916 

917 試してください:'ユーザーが間違った認証情報を入力した後に空白の画面が表示されるログインバグを修正してください'

918 </Accordion>

919 

920 <Accordion title="段階的な指示を使用する">

921 複雑なタスクをステップに分割します:

922 

923 ```text theme={null}

924 1. ユーザープロファイル用の新しいデータベーステーブルを作成する

925 2. ユーザープロファイルを取得および更新するための API エンドポイントを作成する

926 3. ユーザーが自分の情報を表示および編集できるウェブページを構築する

927 ```

928 </Accordion>

929 

930 <Accordion title="Claude に最初に探索させる">

931 変更を加える前に、Claude にコードを理解させます:

932 

933 ```text theme={null}

934 データベーススキーマを分析する

935 ```

936 

937 ```text theme={null}

938 英国の顧客によって最も頻繁に返品される製品を表示するダッシュボードを構築する

939 ```

940 </Accordion>

941 

942 <Accordion title="ショートカットで時間を節約する">

943 * `?` を押してすべての利用可能なキーボードショートカットを表示する

944 * Tab キーでコマンド補完を使用する

945 * ↑ キーでコマンド履歴を表示する

946 * `/` を入力してすべてのコマンドとスキルを表示する

947 </Accordion>

948</AccordionGroup>

949 

950## 次のステップ

951 

952基本を学習したので、より高度な機能を探索してください:

953 

954<CardGroup cols={2}>

955 <Card title="Claude Code の仕組み" icon="microchip" href="/ja/how-claude-code-works">

956 agentic ループ、組み込みツール、および Claude Code がプロジェクトと相互作用する方法を理解する

957 </Card>

958 

959 <Card title="ベストプラクティス" icon="star" href="/ja/best-practices">

960 効果的なプロンプティングとプロジェクト設定でより良い結果を得る

961 </Card>

962 

963 <Card title="一般的なワークフロー" icon="graduation-cap" href="/ja/common-workflows">

964 一般的なタスクのステップバイステップガイド

965 </Card>

966 

967 <Card title="Claude Code を拡張する" icon="puzzle-piece" href="/ja/features-overview">

968 CLAUDE.md、スキル、フック、MCP などでカスタマイズする

969 </Card>

970</CardGroup>

971 

972## ヘルプを取得する

973 

974* **Claude Code 内**:`/help` を入力するか、「how do I...」と質問する

975* **ドキュメント**:ここにいます!他のガイドを参照してください

976* **コミュニティ**:[Discord](https://www.anthropic.com/discord) に参加してヒントとサポートを得る

remote-control.md +259 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 任意のデバイスからローカルセッションを続行する Remote Control

6 

7> Remote Control を使用して、電話、タブレット、または任意のブラウザから Claude Code のローカルセッションを続行します。claude.ai/code と Claude モバイルアプリで動作します。

8 

9<Note>

10 Remote Control は研究プレビュー段階にあり、すべてのプランで利用可能です。Team および Enterprise では、管理者が [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code) で Remote Control トグルを有効にするまで、デフォルトではオフになっています。

11</Note>

12 

13Remote Control は [claude.ai/code](https://claude.ai/code) または Claude アプリ([iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) および [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude))をマシン上で実行されている Claude Code セッションに接続します。デスクでタスクを開始してから、ソファの電話またはコンピュータのブラウザで続行できます。

14 

15マシン上で Remote Control セッションを開始すると、Claude はローカルで実行され続けるため、クラウドに移動するものはありません。Remote Control を使用すると、以下のことができます。

16 

17* **ローカル環境全体をリモートで使用する**: ファイルシステム、[MCP サーバー](/ja/mcp)、ツール、プロジェクト設定がすべて利用可能なままです。また、`@` を入力するとローカルプロジェクトのファイルパスが自動補完されます

18* **両方のサーフェスから同時に作業する**: 会話はすべての接続されたデバイス間で同期されるため、ターミナル、ブラウザ、電話から相互に交換可能にメッセージを送信できます

19* **中断に対応する**: ラップトップがスリープ状態になったり、ネットワークが切断されたりした場合、マシンがオンラインに戻ると、セッションは自動的に再接続されます

20 

21クラウドインフラストラクチャで実行される [Web 上の Claude Code](/ja/claude-code-on-the-web) とは異なり、Remote Control セッションはマシン上で直接実行され、ローカルファイルシステムと相互作用します。Web およびモバイルインターフェースは、そのローカルセッションへのウィンドウにすぎません。

22 

23<Note>

24 Remote Control には Claude Code v2.1.51 以降が必要です。`claude --version` でバージョンを確認してください。

25</Note>

26 

27このページでは、セットアップ、セッションの開始と接続方法、および Remote Control と Web 上の Claude Code の比較について説明します。

28 

29## 要件

30 

31Remote Control を使用する前に、環境が以下の条件を満たしていることを確認してください。

32 

33* **サブスクリプション**: Pro、Max、Team、および Enterprise プランで利用可能です。API キーはサポートされていません。Team および Enterprise では、管理者が [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code) で Remote Control トグルを有効にする必要があります。

34* **認証**: `claude` を実行し、まだサインインしていない場合は `/login` を使用して claude.ai 経由でサインインします。

35* **ワークスペース信頼**: プロジェクトディレクトリで少なくとも 1 回 `claude` を実行して、ワークスペース信頼ダイアログを受け入れます。

36 

37## Remote Control セッションを開始する

38 

39CLI または VS Code 拡張機能から Remote Control セッションを開始できます。CLI は 3 つの呼び出しモードを提供します。VS Code は `/remote-control` コマンドを使用します。

40 

41<Tabs>

42 <Tab title="サーバーモード">

43 プロジェクトディレクトリに移動して、以下を実行します。

44 

45 ```bash theme={null}

46 claude remote-control

47 ```

48 

49 プロセスはサーバーモードでターミナルで実行され続け、リモート接続を待機します。[別のデバイスから接続](#別のデバイスから接続する) するために使用できるセッション URL が表示され、スペースバーを押して電話からの高速アクセス用の QR コードを表示できます。リモートセッションがアクティブな間、ターミナルは接続ステータスとツールアクティビティを表示します。

50 

51 利用可能なフラグ:

52 

53 | フラグ | 説明 |

54 | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

55 | `--name "My Project"` | claude.ai/code のセッションリストに表示されるカスタムセッションタイトルを設定します。 |

56 | `--remote-control-session-name-prefix <prefix>` | 明示的な名前が設定されていない場合の自動生成セッション名のプレフィックス。デフォルトはマシンのホスト名で、`myhost-graceful-unicorn` のような名前が生成されます。同じ効果のために `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` を設定します。 |

57 | `--spawn <mode>` | サーバーがセッションを作成する方法。<br />• `same-dir`(デフォルト): すべてのセッションが現在の作業ディレクトリを共有するため、同じファイルを編集している場合は競合する可能性があります。<br />• `worktree`: オンデマンドセッションごとに独自の [git worktree](/ja/common-workflows#git-worktrees-を使用して並列-claude-code-セッションを実行する) を取得します。git リポジトリが必要です。<br />• `session`: シングルセッションモード。正確に 1 つのセッションを提供し、追加の接続を拒否します。スタートアップ時にのみ設定します。<br />実行時に `w` を押して `same-dir` と `worktree` の間でトグルします。 |

58 | `--capacity <N>` | 同時セッションの最大数。デフォルトは 32 です。`--spawn=session` では使用できません。 |

59 | `--verbose` | 詳細な接続とセッションログを表示します。 |

60 | `--sandbox` / `--no-sandbox` | ファイルシステムとネットワーク分離のための [サンドボックス](/ja/sandboxing) を有効または無効にします。デフォルトではオフです。 |

61 </Tab>

62 

63 <Tab title="対話型セッション">

64 Remote Control を有効にした通常の対話型 Claude Code セッションを開始するには、`--remote-control` フラグ(または `--rc`)を使用します。

65 

66 ```bash theme={null}

67 claude --remote-control

68 ```

69 

70 オプションでセッションの名前を渡します。

71 

72 ```bash theme={null}

73 claude --remote-control "My Project"

74 ```

75 

76 これにより、ターミナルで完全な対話型セッションが得られ、claude.ai または Claude アプリからも制御できます。`claude remote-control`(サーバーモード)とは異なり、セッションがリモートで利用可能な間、ローカルでメッセージを入力できます。

77 </Tab>

78 

79 <Tab title="既存のセッションから">

80 既に Claude Code セッションにいて、それをリモートで続行したい場合は、`/remote-control`(または `/rc`)コマンドを使用します。

81 

82 ```text theme={null}

83 /remote-control

84 ```

85 

86 カスタムセッションタイトルを設定するために、引数として名前を渡します。

87 

88 ```text theme={null}

89 /remote-control My Project

90 ```

91 

92 これにより、現在の会話履歴を引き継ぎ、[別のデバイスから接続](#別のデバイスから接続する) するために使用できるセッション URL と QR コードを表示する Remote Control セッションが開始されます。`--verbose`、`--sandbox`、および `--no-sandbox` フラグはこのコマンドでは利用できません。

93 </Tab>

94 

95 <Tab title="VS Code">

96 [Claude Code VS Code 拡張機能](/ja/vs-code) で、プロンプトボックスに `/remote-control` または `/rc` を入力するか、`/` でコマンドメニューを開いて選択します。Claude Code v2.1.79 以降が必要です。

97 

98 ```text theme={null}

99 /remote-control

100 ```

101 

102 プロンプトボックスの上にバナーが表示され、接続ステータスが示されます。接続されたら、バナーの **Open in browser** をクリックしてセッションに直接移動するか、[claude.ai/code](https://claude.ai/code) のセッションリストで見つけます。セッション URL は会話にも投稿されます。

103 

104 切断するには、バナーの閉じるアイコンをクリックするか、`/remote-control` を再度実行します。

105 

106 CLI とは異なり、VS Code コマンドは名前引数を受け入れず、QR コードを表示しません。セッションタイトルは会話履歴または最初のプロンプトから派生します。

107 </Tab>

108</Tabs>

109 

110### 別のデバイスから接続する

111 

112Remote Control セッションがアクティブになったら、別のデバイスから接続するいくつかの方法があります。

113 

114* **セッション URL を開く**: 任意のブラウザで [claude.ai/code](https://claude.ai/code) のセッションに直接移動します。

115* **QR コードをスキャンする**: セッション URL の横に表示される QR コードをスキャンして、Claude アプリで直接開きます。`claude remote-control` を使用する場合は、スペースバーを押して QR コード表示をトグルします。

116* **[claude.ai/code](https://claude.ai/code) または Claude アプリを開く**: セッションリストで名前でセッションを見つけます。Remote Control セッションはオンラインの場合、コンピュータアイコンと緑色のステータスドットを表示します。

117 

118リモートセッションのタイトルは、この順序で選択されます。

119 

1201. `--name`、`--remote-control`、または `/remote-control` に渡した名前

1212. `/rename` で設定したタイトル

1223. 既存の会話履歴の最後の意味のあるメッセージ

1234. `myhost-graceful-unicorn` のような自動生成名。ここで `myhost` はマシンのホスト名または `--remote-control-session-name-prefix` で設定したプレフィックスです

124 

125明示的な名前を設定しなかった場合、タイトルはプロンプトを送信すると更新されて反映されます。

126 

127環境に既にアクティブなセッションがある場合は、それを続行するか新しいセッションを開始するかを尋ねられます。

128 

129Claude アプリをまだ持っていない場合は、Claude Code 内で `/mobile` コマンドを使用して、[iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) または [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) のダウンロード QR コードを表示します。

130 

131### すべてのセッションで Remote Control を有効にする

132 

133デフォルトでは、Remote Control は `claude remote-control`、`claude --remote-control`、または `/remote-control` を明示的に実行した場合にのみアクティブになります。すべての対話型セッションで自動的に有効にするには、Claude Code 内で `/config` を実行し、**Enable Remote Control for all sessions** を `true` に設定します。無効にするには `false` に設定します。

134 

135この設定がオンの場合、各対話型 Claude Code プロセスは 1 つのリモートセッションを登録します。複数のインスタンスを実行する場合、各インスタンスは独自の環境とセッションを取得します。単一のプロセスから複数の同時セッションを実行するには、[サーバーモード](#remote-control-セッションを開始する) を使用します。

136 

137## 接続とセキュリティ

138 

139ローカル Claude Code セッションは、アウトバウンド HTTPS リクエストのみを行い、マシン上のインバウンドポートを開くことはありません。Remote Control を開始すると、Anthropic API に登録され、作業をポーリングします。別のデバイスから接続すると、サーバーは Web またはモバイルクライアントとローカルセッション間のメッセージをストリーミング接続経由でルーティングします。

140 

141すべてのトラフィックは TLS 経由で Anthropic API を通じて移動し、Claude Code セッションと同じトランスポートセキュリティです。接続は複数の短命の認証情報を使用し、各認証情報は単一の目的にスコープされ、独立して有効期限が切れます。

142 

143## Remote Control と Web 上の Claude Code

144 

145Remote Control と [Web 上の Claude Code](/ja/claude-code-on-the-web) の両方が claude.ai/code インターフェースを使用します。主な違いはセッションが実行される場所です。Remote Control はマシン上で実行されるため、ローカル MCP サーバー、ツール、プロジェクト設定が利用可能なままです。Web 上の Claude Code は Anthropic が管理するクラウドインフラストラクチャで実行されます。

146 

147ローカル作業の途中で別のデバイスから続行したい場合は Remote Control を使用します。ローカルセットアップなしでタスクを開始したい場合、クローンしていないリポジトリで作業したい場合、または複数のタスクを並列で実行したい場合は Web 上の Claude Code を使用します。

148 

149## モバイルプッシュ通知

150 

151Remote Control がアクティブな場合、Claude は電話にプッシュ通知を送信できます。

152 

153Claude がプッシュを送信するタイミングを決定します。通常は、長時間実行されるタスクが完了したときまたは続行するために決定が必要なときに送信されます。プロンプトでプッシュをリクエストすることもできます。たとえば、`notify me when the tests finish` のように指定します。以下のオン/オフトグル以外に、イベントごとの設定はありません。

154 

155<Note>

156 モバイルプッシュ通知には Claude Code v2.1.110 以降が必要です。

157</Note>

158 

159モバイルプッシュ通知をセットアップするには:

160 

161<Steps>

162 <Step title="Claude モバイルアプリをインストールする">

163 Claude アプリを [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) または [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) にダウンロードします。

164 </Step>

165 

166 <Step title="Claude Code アカウントでサインインする">

167 ターミナルで Claude Code に使用するのと同じアカウントと組織を使用します。

168 </Step>

169 

170 <Step title="通知を許可する">

171 オペレーティングシステムからの通知許可プロンプトを受け入れます。

172 </Step>

173 

174 <Step title="Claude Code でプッシュを有効にする">

175 ターミナルで `/config` を実行し、**Push when Claude decides** を有効にします。

176 </Step>

177</Steps>

178 

179通知が到着しない場合:

180 

181* `/config` が **No mobile registered** を表示する場合は、Claude アプリを電話で開いてプッシュトークンをリフレッシュできるようにします。警告は Remote Control が次に接続するときにクリアされます。

182* iOS では、フォーカスモードと通知サマリーがプッシュを抑制または遅延させることができます。Settings → Notifications → Claude を確認してください。

183* Android では、積極的なバッテリー最適化が配信を遅延させることができます。システム設定で Claude アプリをバッテリー最適化から除外します。

184 

185## 制限事項

186 

187* **対話型プロセスごとに 1 つのリモートセッション**: サーバーモード外では、各 Claude Code インスタンスは一度に 1 つのリモートセッションをサポートします。単一のプロセスから複数の同時セッションを実行するには、[サーバーモード](#start-a-remote-control-session) を使用します。

188* **ローカルプロセスは実行し続ける必要があります**: Remote Control はローカルプロセスとして実行されます。ターミナルを閉じるか、VS Code を終了するか、または `claude` プロセスを停止すると、セッションは終了します。

189* **長時間のネットワーク障害**: マシンが起動しているがおよそ 10 分以上ネットワークに到達できない場合、セッションはタイムアウトしてプロセスは終了します。新しいセッションを開始するには、`claude remote-control` を再度実行します。

190* **Ultraplan は Remote Control を切断します**: [ultraplan](/ja/ultraplan) セッションを開始すると、アクティブな Remote Control セッションが切断されます。両方の機能が claude.ai/code インターフェースを占有し、一度に 1 つだけ接続できるためです。

191* **一部のコマンドはローカルのみです**: ターミナルで対話型ピッカーを開くコマンド(`/mcp`、`/plugin`、`/resume` など)はローカル CLI からのみ機能します。テキスト出力を生成するコマンド(`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/extra-usage`、`/recap`、`/reload-plugins` を含む)はモバイルと Web から機能します。

192 

193## トラブルシューティング

194 

195### 「Remote Control には claude.ai サブスクリプションが必要です」

196 

197claude.ai アカウントで認証されていません。`claude auth login` を実行して claude.ai オプションを選択します。`ANTHROPIC_API_KEY` が環境に設定されている場合は、最初に設定を解除します。

198 

199### 「Remote Control には完全スコープのログイントークンが必要です」

200 

201`claude setup-token` または `CLAUDE_CODE_OAUTH_TOKEN` 環境変数からの長命トークンで認証されています。これらのトークンは推論のみに制限されており、Remote Control セッションを確立できません。代わりに `claude auth login` を実行して、完全スコープのセッショントークンで認証します。

202 

203### 「Remote Control 適格性のための組織を決定できません」

204 

205キャッシュされたアカウント情報が古いまたは不完全です。`claude auth login` を実行して更新します。

206 

207### 「Remote Control はまだアカウントで有効になっていません」

208 

209特定の環境変数が存在する場合、適格性チェックが失敗する可能性があります。

210 

211* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` または `DISABLE_TELEMETRY`: それらを設定解除して再度試してください。

212* `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX`、または `CLAUDE_CODE_USE_FOUNDRY`: Remote Control は claude.ai 認証が必要であり、サードパーティプロバイダーでは機能しません。

213 

214これらのいずれも設定されていない場合は、`/logout` を実行してから `/login` を実行して更新します。

215 

216### 「Remote Control は組織のポリシーで無効になっています」

217 

218このエラーには 3 つの異なる原因があります。最初に `/status` を実行して、使用しているログイン方法とサブスクリプションを確認してください。

219 

220* **API キーまたは Console アカウントで認証されている**: Remote Control は claude.ai OAuth が必要です。`/login` を実行して claude.ai オプションを選択します。`ANTHROPIC_API_KEY` が環境に設定されている場合は、設定を解除します。

221* **Team または Enterprise 管理者が有効にしていない**: Remote Control はこれらのプランではデフォルトでオフになっています。管理者は [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) で **Remote Control** トグルをオンにして有効にできます。これはサーバー側の組織設定であり、[管理設定のみ](/ja/permissions#managed-only-settings) キーではありません。

222* **管理者トグルがグレーアウトしている**: 組織には Remote Control と互換性のないデータ保持またはコンプライアンス設定があります。これは管理パネルから変更することはできません。オプションについて説明するために Anthropic サポートに連絡してください。

223 

224### 「リモート認証情報の取得に失敗しました」

225 

226Claude Code は Anthropic API から短命の認証情報を取得して接続を確立できませんでした。`--verbose` で再度実行して完全なエラーを確認してください。

227 

228```bash theme={null}

229claude remote-control --verbose

230```

231 

232一般的な原因:

233 

234* サインインしていない: `claude` を実行し、`/login` を使用して claude.ai アカウントで認証します。API キー認証は Remote Control ではサポートされていません。

235* ネットワークまたはプロキシの問題: ファイアウォールまたはプロキシがアウトバウンド HTTPS リクエストをブロックしている可能性があります。Remote Control はポート 443 で Anthropic API へのアクセスが必要です。

236* セッション作成に失敗: `Session creation failed — see debug log` も表示される場合、失敗はセットアップの前の段階で発生しました。サブスクリプションがアクティブであることを確認してください。

237 

238## 適切なアプローチを選択する

239 

240Claude Code offers several ways to work when you're not at your terminal. They differ in what triggers the work, where Claude runs, and how much you need to set up.

241 

242| | Trigger | Claude runs on | Setup | Best for |

243| :--------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |

244| [Dispatch](/en/desktop#sessions-from-dispatch) | Message a task from the Claude mobile app | Your machine (Desktop) | [Pair the mobile app with Desktop](https://support.claude.com/en/articles/13947068) | Delegating work while you're away, minimal setup |

245| [Remote Control](/en/remote-control) | Drive a running session from [claude.ai/code](https://claude.ai/code) or the Claude mobile app | Your machine (CLI or VS Code) | Run `claude remote-control` | Steering in-progress work from another device |

246| [Channels](/en/channels) | Push events from a chat app like Telegram or Discord, or your own server | Your machine (CLI) | [Install a channel plugin](/en/channels#quickstart) or [build your own](/en/channels-reference) | Reacting to external events like CI failures or chat messages |

247| [Slack](/en/slack) | Mention `@Claude` in a team channel | Anthropic cloud | [Install the Slack app](/en/slack#setting-up-claude-code-in-slack) with [Claude Code on the web](/en/claude-code-on-the-web) enabled | PRs and reviews from team chat |

248| [Scheduled tasks](/en/scheduled-tasks) | Set a schedule | [CLI](/en/scheduled-tasks), [Desktop](/en/desktop-scheduled-tasks), or [cloud](/en/routines) | Pick a frequency | Recurring automation like daily reviews |

249 

250## 関連リソース

251 

252* [Web 上の Claude Code](/ja/claude-code-on-the-web): マシン上ではなく Anthropic が管理するクラウド環境でセッションを実行します

253* [Ultraplan](/ja/ultraplan): ターミナルからクラウド計画セッションを起動し、ブラウザで計画を確認します

254* [チャネル](/ja/channels): Telegram、Discord、または iMessage をセッションに転送して、Claude が離席中にメッセージに反応するようにします

255* [Dispatch](/ja/desktop#dispatch-からのセッション): 電話からタスクをメッセージして、Desktop セッションを生成して処理できます

256* [認証](/ja/authentication): `/login` をセットアップし、claude.ai の認証情報を管理します

257* [CLI リファレンス](/ja/cli-reference): `claude remote-control` を含むフラグとコマンドの完全なリスト

258* [セキュリティ](/ja/security): Remote Control セッションが Claude Code セキュリティモデルにどのように適合するか

259* [データ使用](/ja/data-usage): ローカルおよびリモートセッション中に Anthropic API を通じてどのようなデータが流れるか

routines.md +317 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# ルーティンで作業を自動化する

6 

7> Claude Code を自動操縦に設定します。スケジュールで実行するルーティンを定義したり、API 呼び出しでトリガーしたり、Anthropic が管理するクラウドインフラストラクチャから GitHub イベントに反応させたりできます。

8 

9<Note>

10 ルーティンはリサーチプレビュー段階です。動作、制限、API サーフェスは変更される可能性があります。

11</Note>

12 

13ルーティンは保存された Claude Code 構成です。プロンプト、1 つ以上のリポジトリ、および一連の [コネクタ](/ja/mcp) をパッケージ化して、1 回定義し、自動的に実行します。ルーティンは Anthropic が管理するクラウドインフラストラクチャで実行されるため、ラップトップを閉じても動作し続けます。

14 

15各ルーティンには、1 つ以上のトリガーを接続できます。

16 

17* **スケジュール**: 時間ごと、毎晩、毎週など、定期的なペースで実行

18* **API**: ベアラートークン付きで HTTP POST をルーティン固有のエンドポイントに送信してオンデマンドでトリガー

19* **GitHub**: プルリクエストやリリースなどのリポジトリイベントに自動的に反応して実行

20 

211 つのルーティンは複数のトリガーを組み合わせることができます。たとえば、PR レビュールーティンは毎晩実行でき、デプロイスクリプトからトリガーでき、新しい PR すべてに反応することもできます。

22 

23ルーティンは Pro、Max、Team、Enterprise プランで利用可能です。[Claude Code on the web](/ja/claude-code-on-the-web) が有効になっている必要があります。[claude.ai/code/routines](https://claude.ai/code/routines) で作成・管理するか、CLI で `/schedule` を使用して管理できます。

24 

25このページでは、ルーティンの作成、各トリガータイプの構成、実行の管理、および使用制限の適用方法について説明します。

26 

27## ユースケースの例

28 

29各例は、トリガータイプと、ルーティンが適している作業の種類をペアにしています。無人で実行でき、繰り返し可能で、明確な成果に結びついています。

30 

31**バックログメンテナンス。** スケジュールトリガーは毎週夜間にコネクタ経由で問題追跡ツールに対して実行されます。ルーティンは最後の実行以降にオープンされた問題を読み取り、ラベルを適用し、参照されているコード領域に基づいて所有者を割り当て、Slack に概要を投稿して、チームが 1 日を整理されたキューで開始できるようにします。

32 

33**アラートトリアージ。** 監視ツールがエラー閾値を超えたときにルーティンの API エンドポイントを呼び出し、アラート本文を `text` として渡します。ルーティンはスタックトレースを取得し、リポジトリの最近のコミットと相関させ、提案された修正とアラートへのリンク付きのドラフトプルリクエストを開きます。オンコール担当者は空のターミナルから始めるのではなく PR をレビューします。

34 

35**カスタムコードレビュー。** GitHub トリガーは `pull_request.opened` で実行されます。ルーティンはチームの独自のレビューチェックリストを適用し、セキュリティ、パフォーマンス、スタイルの問題についてインラインコメントを残し、概要コメントを追加して、人間のレビュアーが機械的なチェックではなく設計に焦点を当てられるようにします。

36 

37**デプロイ検証。** CD パイプラインは各本番デプロイ後にルーティンの API エンドポイントを呼び出します。ルーティンは新しいビルドに対してスモークテストを実行し、エラーログをスキャンして回帰を検出し、デプロイウィンドウが閉じる前にリリースチャネルに go または no-go を投稿します。

38 

39**ドキュメントドリフト。** スケジュールトリガーは毎週実行されます。ルーティンは最後の実行以降にマージされた PR をスキャンし、変更された API を参照するドキュメントにフラグを立て、エディターがレビューするためにドキュメントリポジトリに対して更新 PR を開きます。

40 

41**ライブラリポート。** GitHub トリガーは `pull_request.closed` で実行され、1 つの SDK リポジトリのマージされた PR にフィルタリングされます。ルーティンは別の言語の並列 SDK に変更をポートし、マッチング PR を開き、人間が各変更を再実装することなく 2 つのライブラリを同期させます。

42 

43以下のセクションでは、ルーティンの作成と各トリガータイプの構成について説明します。

44 

45## ルーティンを作成する

46 

47Web、Desktop アプリ、または CLI からルーティンを作成します。3 つのサーフェスすべてが同じクラウドアカウントに書き込むため、CLI で作成したルーティンは claude.ai/code/routines に即座に表示されます。Desktop アプリで、**New task** をクリックして **New remote task** を選択します。代わりに **New local task** を選択すると、[ローカル Desktop スケジュール済みタスク](/ja/desktop-scheduled-tasks) が作成されます。これはマシンで実行され、ルーティンではありません。

48 

49作成フォームは、ルーティンのプロンプト、リポジトリ、環境、コネクタ、トリガーを設定します。

50 

51ルーティンは完全な Claude Code クラウドセッションとして自律的に実行されます。パーミッションモードピッカーはなく、実行中の承認プロンプトもありません。セッションはシェルコマンドを実行でき、クローンされたリポジトリにコミットされた [スキル](/ja/skills) を使用でき、含めたすべてのコネクタを呼び出すことができます。ルーティンが到達できるものは、選択したリポジトリとそのブランチプッシュ設定、[環境](/ja/claude-code-on-the-web#the-cloud-environment) のネットワークアクセスと変数、および含めたコネクタによって決定されます。これらのそれぞれをルーティンが実際に必要とするものにスコープします。

52 

53ルーティンは個別の claude.ai アカウントに属します。チームメイトと共有されず、アカウントの日次実行許容量に対してカウントされます。ルーティンが接続された GitHub ID またはコネクタを通じて行うことはすべて、あなたとして表示されます。コミットとプルリクエストは GitHub ユーザーを持ち、Slack メッセージ、Linear チケット、またはその他のコネクタアクションはそれらのサービスのリンクされたアカウントを使用します。

54 

55### Web から作成する

56 

57<Steps>

58 <Step title="作成フォームを開く">

59 [claude.ai/code/routines](https://claude.ai/code/routines) にアクセスして、**New routine** をクリックします。

60 </Step>

61 

62 <Step title="ルーティンに名前を付けてプロンプトを書く">

63 ルーティンに説明的な名前を付け、Claude が毎回実行するプロンプトを書きます。プロンプトが最も重要な部分です。ルーティンは自律的に実行されるため、プロンプトは自己完結型で、何をするか、成功がどのように見えるかについて明示的である必要があります。

64 

65 プロンプト入力にはモデルセレクタが含まれます。Claude は毎回実行時に選択されたモデルを使用します。

66 </Step>

67 

68 <Step title="リポジトリを選択する">

69 Claude が作業する 1 つ以上の GitHub リポジトリを追加します。各リポジトリは実行の開始時にクローンされ、デフォルトブランチから開始されます。Claude は変更用に `claude/` プレフィックス付きブランチを作成します。任意のブランチへのプッシュを許可するには、そのリポジトリに対して **Allow unrestricted branch pushes** を有効にします。

70 </Step>

71 

72 <Step title="環境を選択する">

73 ルーティン用に [クラウド環境](/ja/claude-code-on-the-web#the-cloud-environment) を選択します。環境は、クラウドセッションがアクセスできるものを制御します。

74 

75 * **ネットワークアクセス**: 各実行中に利用可能なインターネットアクセスのレベルを設定

76 * **環境変数**: Claude が使用できる API キー、トークン、またはその他のシークレットを提供

77 * **セットアップスクリプト**: 各セッション開始前にインストールコマンドを実行します。依存関係のインストールやツールの構成など

78 

79 **Default** 環境が提供されます。カスタム環境を使用するには、ルーティンを作成する前に [作成](/ja/claude-code-on-the-web#the-cloud-environment) してください。

80 </Step>

81 

82 <Step title="トリガーを選択する">

83 **Select a trigger** で、ルーティンの開始方法を選択します。1 つのトリガータイプを選択することも、複数を組み合わせることもできます。

84 

85 <Tabs>

86 <Tab title="Schedule">

87 プリセット周波数を選択します。時間ごと、毎日、平日、または毎週。タイムゾーン処理、スタガー、カスタム cron 間隔については、[スケジュールトリガーを追加](#add-a-schedule-trigger) を参照してください。

88 </Tab>

89 

90 <Tab title="GitHub event">

91 リポジトリ、反応するイベント、オプションのフィルタを選択します。サポートされているイベントとフィルタフィールドの完全なリストについては、[GitHub トリガーを追加](#add-a-github-trigger) を参照してください。

92 </Tab>

93 

94 <Tab title="API">

95 ここで **API** を選択してから、ルーティンを保存します。URL とトークンはルーティンが保存された後に生成されます。ルーティン ID に依存するためです。URL をコピーしてトークンを生成するには、[API トリガーを追加](#add-an-api-trigger) を参照してください。

96 </Tab>

97 </Tabs>

98 </Step>

99 

100 <Step title="コネクタをレビューする">

101 接続されたすべての [MCP コネクタ](/ja/mcp) はデフォルトで含まれます。ルーティンが必要としないものを削除します。コネクタは Claude に各実行中に Slack、Linear、Google Drive などの外部サービスへのアクセスを提供します。

102 </Step>

103 

104 <Step title="ルーティンを作成する">

105 **Create** をクリックします。ルーティンはリストに表示され、次回トリガーの 1 つが一致したときに実行されます。すぐに実行を開始するには、ルーティンの詳細ページで **Run now** をクリックします。

106 

107 各実行は他のセッションと並んで新しいセッションを作成します。Claude が何をしたかを確認し、変更をレビューし、プルリクエストを作成できます。

108 </Step>

109</Steps>

110 

111### CLI から作成する

112 

113任意のセッションで `/schedule` を実行して、スケジュール済みルーティンを会話形式で作成します。`/schedule daily PR review at 9am` のように、説明を直接渡すこともできます。Claude は Web フォームが収集するのと同じ情報を通じて、ルーティンをアカウントに保存します。

114 

115CLI の `/schedule` はスケジュール済みルーティンのみを作成します。API または GitHub トリガーを追加するには、[claude.ai/code/routines](https://claude.ai/code/routines) で Web 上のルーティンを編集します。

116 

117CLI は既存のルーティンの管理もサポートしています。`/schedule list` を実行してすべてのルーティンを表示し、`/schedule update` を実行して 1 つを変更するか、`/schedule run` を実行してすぐにトリガーします。

118 

119### Desktop アプリから作成する

120 

121Desktop アプリで **Schedule** ページを開き、**New task** をクリックして、**New remote task** を選択します。Desktop アプリは同じグリッドにローカルスケジュール済みタスクとルーティンの両方を表示します。ローカルオプションの詳細については、[Desktop スケジュール済みタスク](/ja/desktop-scheduled-tasks) を参照してください。

122 

123## トリガーを構成する

124 

125ルーティンはトリガーの 1 つが一致したときに開始されます。同じルーティンにスケジュール、API、GitHub トリガーの任意の組み合わせを接続でき、ルーティンの編集フォームの **Select a trigger** セクションからいつでも追加または削除できます。

126 

127### スケジュールトリガーを追加する

128 

129スケジュールトリガーは定期的なペースでルーティンを実行します。**Select a trigger** セクションでプリセット周波数を選択します。時間ごと、毎日、平日、または毎週。時間はローカルゾーンで入力され、自動的に変換されるため、ルーティンはクラウドインフラストラクチャがどこにあるかに関係なく、その壁時計時間で実行されます。

130 

131スタガーのため、実行はスケジュール時刻の数分後に開始される可能性があります。オフセットは各ルーティンで一貫しています。

132 

1332 時間ごと、または毎月の最初など、カスタム間隔の場合は、フォームで最も近いプリセットを選択してから、CLI で `/schedule update` を実行して特定の cron 式を設定します。最小間隔は 1 時間です。より頻繁に実行される式は拒否されます。

134 

135### API トリガーを追加する

136 

137API トリガーはルーティンに専用 HTTP エンドポイントを提供します。ルーティンのベアラートークンでエンドポイントに POST すると、新しいセッションが開始され、セッション URL が返されます。これを使用して Claude Code をアラートシステム、デプロイパイプライン、内部ツール、または認証済み HTTP リクエストを実行できる任意の場所に接続します。

138 

139API トリガーは Web から既存のルーティンに追加されます。CLI は現在、トークンを作成または取り消すことができません。

140 

141<Steps>

142 <Step title="ルーティンを編集用に開く">

143 [claude.ai/code/routines](https://claude.ai/code/routines) に移動し、API 経由でトリガーするルーティンをクリックしてから、鉛筆アイコンをクリックして **Edit routine** を開きます。

144 </Step>

145 

146 <Step title="API トリガーを追加する">

147 プロンプトの下の **Select a trigger** セクションまでスクロールし、**Add another trigger** をクリックして、**API** を選択します。

148 </Step>

149 

150 <Step title="URL をコピーしてトークンを生成する">

151 モーダルはこのルーティンの URL とサンプル curl コマンドを表示します。URL をコピーしてから、**Generate token** をクリックしてトークンをすぐにコピーします。トークンは 1 回表示され、後で取得できないため、アラートツールのシークレットストアなどの安全な場所に保存してください。

152 </Step>

153 

154 <Step title="エンドポイントを呼び出す">

155 URL に POST するときに `Authorization: Bearer` ヘッダーでトークンを送信します。以下の [ルーティンをトリガーする](#trigger-a-routine) セクションに完全な例が示されています。

156 </Step>

157</Steps>

158 

159各ルーティンは独自のトークンを持ち、そのルーティンのトリガーのみにスコープされています。ローテーションまたは取り消すには、同じモーダルに戻り、**Regenerate** または **Revoke** をクリックします。

160 

161#### ルーティンをトリガーする

162 

163`Authorization` ヘッダーのベアラートークンで `/fire` エンドポイントに POST リクエストを送信します。リクエスト本文は、アラート本文またはログの失敗など、実行固有のコンテキスト用のオプションの `text` フィールドを受け入れます。保存されたプロンプトと共にルーティンに渡されます。値はフリーフォームテキストで、解析されません。JSON または別の構造化ペイロードを送信する場合、ルーティンはリテラル文字列として受け取ります。

164 

165以下の例は、シェルからルーティンをトリガーします。

166 

167```bash theme={null}

168curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \

169 -H "Authorization: Bearer sk-ant-oat01-xxxxx" \

170 -H "anthropic-beta: experimental-cc-routine-2026-04-01" \

171 -H "anthropic-version: 2023-06-01" \

172 -H "Content-Type: application/json" \

173 -d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'

174```

175 

176成功したリクエストは、新しいセッション ID と URL を含む JSON 本文を返します。

177 

178```json theme={null}

179{

180 "type": "routine_fire",

181 "claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",

182 "claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"

183}

184```

185 

186ブラウザでセッション URL を開いて、実行をリアルタイムで監視し、変更をレビューするか、会話を手動で続行します。

187 

188<Warning>

189 `/fire` エンドポイントは `experimental-cc-routine-2026-04-01` ベータヘッダーの下で出荷されます。リクエストと応答の形状、レート制限、トークンセマンティクスは、機能がリサーチプレビュー段階にある間に変更される可能性があります。破壊的な変更は新しい日付付きベータヘッダーバージョンの背後で出荷され、最新の 2 つの前のヘッダーバージョンは引き続き機能するため、呼び出し元は移行する時間があります。

190</Warning>

191 

192#### API リファレンス

193 

194すべてのエラー応答、検証ルール、フィールド制限を含む完全な API リファレンスについては、Claude Platform ドキュメントの [API 経由でルーティンをトリガーする](https://platform.claude.com/docs/ja/api/claude-code/routines-fire) を参照してください。

195 

196`/fire` エンドポイントは claude.ai ユーザーのみが利用でき、Claude Platform API サーフェスの一部ではありません。

197 

198### GitHub トリガーを追加する

199 

200GitHub トリガーは、接続されたリポジトリで一致するイベントが発生したときに、新しいセッションを自動的に開始します。一致する各イベントは独自のセッションを開始します。

201 

202<Note>

203 リサーチプレビュー中、GitHub webhook イベントはルーティンごとおよびアカウントごとの時間単位の上限の対象です。制限を超えるイベントはウィンドウがリセットされるまでドロップされます。現在の制限は [claude.ai/code/routines](https://claude.ai/code/routines) で確認してください。

204</Note>

205 

206GitHub トリガーは Web UI からのみ構成されます。

207 

208<Steps>

209 <Step title="ルーティンを編集用に開く">

210 [claude.ai/code/routines](https://claude.ai/code/routines) に移動し、ルーティンをクリックしてから、鉛筆アイコンをクリックして **Edit routine** を開きます。

211 </Step>

212 

213 <Step title="GitHub イベントトリガーを追加する">

214 **Select a trigger** セクションまでスクロールし、**Add another trigger** をクリックして、**GitHub event** を選択します。

215 </Step>

216 

217 <Step title="Claude GitHub App をインストールする">

218 Claude GitHub App は、サブスクライブするリポジトリにインストールする必要があります。トリガーセットアップは、まだインストールされていない場合はインストールするよう促します。

219 

220 <Note>

221 CLI で `/web-setup` を実行するとリポジトリアクセスがクローン用に付与されますが、Claude GitHub App はインストールされず、webhook 配信は有効になりません。GitHub トリガーは Claude GitHub App をインストールする必要があり、トリガーセットアップはそれを行うよう促します。

222 </Note>

223 </Step>

224 

225 <Step title="トリガーを構成する">

226 リポジトリを選択し、[サポートされているイベント](#supported-events) リストからイベントを選択し、オプションでフィルタを追加します。トリガーを保存します。

227 </Step>

228</Steps>

229 

230#### サポートされているイベント

231 

232GitHub トリガーは、次のいずれかのイベントカテゴリにサブスクライブできます。各カテゴリ内で、`pull_request.opened` などの特定のアクションを選択するか、カテゴリ内のすべてのアクションに反応することができます。

233 

234| イベント | トリガーのタイミング |

235| :------ | :-------------------------------------------- |

236| プルリクエスト | PR がオープン、クローズ、割り当て、ラベル付け、同期、またはその他の方法で更新されたとき |

237| リリース | リリースが作成、公開、編集、または削除されたとき |

238 

239#### プルリクエストをフィルタリングする

240 

241フィルタを使用して、新しいセッションを開始するプルリクエストを絞り込みます。すべてのフィルタ条件がルーティンをトリガーするために一致する必要があります。利用可能なフィルタフィールドは次のとおりです。

242 

243| フィルタ | マッチ |

244| :------ | :------------------- |

245| 作成者 | PR 作成者の GitHub ユーザー名 |

246| タイトル | PR タイトルテキスト |

247| 本文 | PR 説明テキスト |

248| ベースブランチ | PR がターゲットするブランチ |

249| ヘッドブランチ | PR が由来するブランチ |

250| ラベル | PR に適用されたラベル |

251| ドラフト | PR がドラフト状態かどうか |

252| マージ済み | PR がマージされたかどうか |

253 

254各フィルタはフィールドを演算子とペアにします。等しい、含む、で始まる、の 1 つ、の 1 つではない、または正規表現に一致します。

255 

256`matches regex` 演算子はフィールド値全体をテストし、その中の部分文字列ではありません。`hotfix` を含むタイトルに一致させるには、`.*hotfix.*` を記述します。周囲の `.*` がない場合、フィルタは前後に何もない正確に `hotfix` であるタイトルのみに一致します。正規表現構文なしのリテラル部分文字列マッチングの場合は、代わりに `contains` 演算子を使用してください。

257 

258いくつかのフィルタ組み合わせの例。

259 

260* **認証モジュールレビュー**: ベースブランチ `main`、ヘッドブランチに `auth-provider` を含む。認証に触れる PR を焦点を絞ったレビュアーに送信します。

261* **レビュー準備完了のみ**: ドラフト `false`。ドラフトをスキップして、ルーティンが PR がレビュー準備完了のときのみ実行されるようにします。

262* **ラベルゲート付きバックポート**: ラベルに `needs-backport` を含む。メンテナーが PR にタグを付けたときのみ、別のブランチへのポートルーティンをトリガーします。

263 

264#### セッションがイベントにマップされる方法

265 

266一致する各 GitHub イベントは新しいセッションを開始します。GitHub トリガー付きルーティンではイベント間のセッション再利用は利用できないため、2 つの PR 更新は 2 つの独立したセッションを生成します。

267 

268## ルーティンを管理する

269 

270リストのルーティンをクリックして、詳細ページを開きます。詳細ページには、ルーティンのリポジトリ、コネクタ、プロンプト、スケジュール、API トークン、GitHub トリガー、および過去の実行のリストが表示されます。

271 

272### 実行を表示して操作する

273 

274任意の実行をクリックして、完全なセッションとして開きます。そこから Claude が何をしたかを確認し、変更をレビューし、プルリクエストを作成するか、会話を続行できます。各実行セッションは他のセッションと同じように機能します。セッションタイトルの横のドロップダウンメニューを使用して、名前変更、アーカイブ、または削除します。

275 

276### ルーティンを編集して制御する

277 

278ルーティン詳細ページから、以下を実行できます。

279 

280* **Run now** をクリックして、次のスケジュール時刻を待たずにすぐに実行を開始します。

281* **Repeats** セクションのトグルを使用して、スケジュールを一時停止または再開します。一時停止されたルーティンは構成を保持しますが、再度有効にするまで実行されません。

282* 鉛筆アイコンをクリックして **Edit routine** を開き、名前、プロンプト、リポジトリ、環境、コネクタ、またはルーティンのトリガーを変更します。**Select a trigger** セクションは、スケジュール、API トークン、GitHub イベントトリガーを追加または削除する場所です。

283* 削除アイコンをクリックしてルーティンを削除します。ルーティンによって作成された過去のセッションはセッションリストに残ります。

284 

285### リポジトリとブランチパーミッション

286 

287ルーティンはリポジトリをクローンするために GitHub アクセスが必要です。CLI で `/schedule` を使用してルーティンを作成する場合、Claude はアカウントに GitHub が接続されているかどうかを確認し、接続されていない場合は `/web-setup` を実行するよう促します。[GitHub 認証オプション](/ja/claude-code-on-the-web#github-authentication-options) を参照して、アクセスを付与する 2 つの方法を確認してください。

288 

289追加する各リポジトリは毎回実行時にクローンされます。Claude は、プロンプトで別の指定がない限り、リポジトリのデフォルトブランチから開始されます。

290 

291デフォルトでは、Claude は `claude/` プレフィックス付きブランチにのみプッシュできます。これにより、ルーティンが保護されたまたは長期的なブランチを誤って変更するのを防ぎます。特定のリポジトリのこの制限を削除するには、ルーティンを作成または編集するときにそのリポジトリに対して **Allow unrestricted branch pushes** を有効にします。

292 

293### コネクタ

294 

295ルーティンは接続された MCP コネクタを使用して、各実行中に外部サービスから読み取り、外部サービスに書き込むことができます。たとえば、サポートリクエストをトリアージするルーティンは Slack チャネルから読み取り、Linear で問題を作成する可能性があります。

296 

297ルーティンを作成するときに、現在接続されているすべてのコネクタがデフォルトで含まれます。実行中に Claude がアクセスできるツールを制限するために、必要でないものを削除します。ルーティンフォームの外からコネクタを管理または追加することもできます。

298 

299ルーティンフォームの外でコネクタを管理または追加するには、claude.ai で **Settings > Connectors** にアクセスするか、CLI で `/schedule update` を使用してください。

300 

301### 環境

302 

303各ルーティンは、ネットワークアクセス、環境変数、セットアップスクリプトを制御する [クラウド環境](/ja/claude-code-on-the-web#the-cloud-environment) で実行されます。ルーティンを作成する前に環境を構成して、Claude に API へのアクセス、依存関係のインストール、またはネットワークスコープの制限を提供します。完全なセットアップガイドについては、[クラウド環境](/ja/claude-code-on-the-web#the-cloud-environment) を参照してください。

304 

305## 使用と制限

306 

307ルーティンは対話型セッションと同じ方法でサブスクリプション使用量を削減します。標準的なサブスクリプション制限に加えて、ルーティンはアカウントごとに 1 日に開始できる実行数の上限があります。現在の消費と残りの日次ルーティン実行数は [claude.ai/code/routines](https://claude.ai/code/routines) または [claude.ai/settings/usage](https://claude.ai/settings/usage) で確認してください。

308 

309ルーティンが日次上限またはサブスクリプション使用制限に達したとき、追加使用が有効な組織は、メーター付きオーバーエッジでルーティンを実行し続けることができます。追加使用がない場合、ウィンドウがリセットされるまで追加実行は拒否されます。claude.ai で **Settings > Billing** から追加使用を有効にします。

310 

311## 関連リソース

312 

313* [`/loop` とセッション内スケジューリング](/ja/scheduled-tasks): オープン CLI セッション内でローカルタスクをスケジュール

314* [Desktop スケジュール済みタスク](/ja/desktop-scheduled-tasks): マシンで実行され、ローカルファイルへのアクセスを持つローカルスケジュール済みタスク

315* [クラウド環境](/ja/claude-code-on-the-web#the-cloud-environment): クラウドセッションのランタイム環境を構成

316* [MCP コネクタ](/ja/mcp): Slack、Linear、Google Drive などの外部サービスを接続

317* [GitHub Actions](/ja/github-actions): リポジトリイベントで CI パイプラインで Claude を実行

sandboxing.md +329 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# サンドボックス

6 

7> Claude Code のサンドボックス化された bash ツールがファイルシステムとネットワークの分離を提供し、より安全で自律的なエージェント実行を実現する方法について学びます。

8 

9## 概要

10 

11Claude Code はネイティブサンドボックス機能を備えており、エージェント実行のためのより安全な環境を提供しながら、継続的な許可プロンプトの必要性を軽減します。各 bash コマンドの実行許可を求める代わりに、サンドボックス化により事前に定義された境界が作成され、Claude Code はリスクを軽減しながらより自由に動作できます。

12 

13サンドボックス化された bash ツールは OS レベルのプリミティブを使用して、ファイルシステムとネットワークの両方の分離を実施します。

14 

15## サンドボックス化が重要な理由

16 

17従来の許可ベースのセキュリティでは、bash コマンドごとに継続的なユーザー承認が必要です。これは制御を提供しますが、以下の問題につながる可能性があります。

18 

19* **承認疲れ**:「承認」を繰り返しクリックすると、ユーザーが承認内容に注意を払わなくなる可能性があります

20* **生産性の低下**:継続的な中断により開発ワークフローが遅くなります

21* **自律性の制限**:Claude Code は承認を待つ際に効率的に動作できません

22 

23サンドボックス化はこれらの課題に以下の方法で対処します。

24 

251. **明確な境界を定義**:Claude Code がアクセスできるディレクトリとネットワークホストを正確に指定します

262. **許可プロンプトを削減**:サンドボックス内の安全なコマンドは承認を必要としません

273. **セキュリティを維持**:サンドボックス外のリソースへのアクセス試行は即座に通知をトリガーします

284. **自律性を有効化**:Claude Code は定義された制限内でより独立して実行できます

29 

30<Warning>

31 効果的なサンドボックス化には、ファイルシステムとネットワークの両方の分離が**必要**です。ネットワーク分離がない場合、侵害されたエージェントは SSH キーなどの機密ファイルを流出させる可能性があります。ファイルシステム分離がない場合、侵害されたエージェントはシステムリソースにバックドアを仕掛けてネットワークアクセスを取得する可能性があります。サンドボックス化を設定する際は、設定がこれらのシステムのバイパスを作成しないことを確認することが重要です。

32</Warning>

33 

34## 仕組み

35 

36### ファイルシステム分離

37 

38サンドボックス化された bash ツールはファイルシステムアクセスを特定のディレクトリに制限します。

39 

40* **デフォルトの書き込み動作**:現在の作業ディレクトリとそのサブディレクトリへの読み取りおよび書き込みアクセス

41* **デフォルトの読み取り動作**:特定の拒否ディレクトリを除く、コンピュータ全体への読み取りアクセス

42* **ブロックされたアクセス**:明示的な許可なしに現在の作業ディレクトリ外のファイルを変更できません

43* **設定可能**:設定を通じてカスタム許可パスと拒否パスを定義します

44 

45`sandbox.filesystem.allowWrite` を設定で使用して、追加のパスへの書き込みアクセスを付与できます。これらの制限は OS レベル(macOS の Seatbelt、Linux の bubblewrap)で実施されるため、Claude のファイルツールだけでなく、`kubectl`、`terraform`、`npm` などのツールを含むすべてのサブプロセスコマンドに適用されます。

46 

47### ネットワーク分離

48 

49ネットワークアクセスはサンドボックス外で実行されるプロキシサーバーを通じて制御されます。

50 

51* **ドメイン制限**:承認されたドメインのみにアクセスできます

52* **ユーザー確認**:新しいドメインリクエストは許可プロンプトをトリガーします([`allowManagedDomainsOnly`](/ja/settings#sandbox-settings) が有効な場合を除き、許可されていないドメインを自動的にブロックします)

53* **カスタムプロキシサポート**:高度なユーザーは発信トラフィックにカスタムルールを実装できます

54* **包括的なカバレッジ**:制限はすべてのスクリプト、プログラム、およびコマンドによって生成されるサブプロセスに適用されます

55 

56### OS レベルの実施

57 

58サンドボックス化された bash ツールは OS セキュリティプリミティブを活用します。

59 

60* **macOS**:Seatbelt をサンドボックス実施に使用します

61* **Linux**:分離に [bubblewrap](https://github.com/containers/bubblewrap) を使用します

62* **WSL2**:Linux と同じく bubblewrap を使用します

63 

64WSL1 は bubblewrap が WSL2 でのみ利用可能なカーネル機能を必要とするため、サポートされていません。

65 

66これらの OS レベルの制限により、Claude Code のコマンドによって生成されたすべての子プロセスが同じセキュリティ境界を継承することが保証されます。

67 

68## 開始方法

69 

70### 前提条件

71 

72**macOS** では、サンドボックス化は組み込みの Seatbelt フレームワークを使用してすぐに動作します。

73 

74**Linux と WSL2** では、まず必要なパッケージをインストールしてください。

75 

76<Tabs>

77 <Tab title="Ubuntu/Debian">

78 ```bash theme={null}

79 sudo apt-get install bubblewrap socat

80 ```

81 </Tab>

82 

83 <Tab title="Fedora">

84 ```bash theme={null}

85 sudo dnf install bubblewrap socat

86 ```

87 </Tab>

88</Tabs>

89 

90WSL1 は必要な Linux 名前空間プリミティブが不足しているため、サンドボックス化をサポートしていません。`Sandboxing requires WSL2` が表示される場合は、ディストリビューションを WSL2 にアップグレードするか、Claude Code をサンドボックス化なしで実行してください。

91 

92WSL2 では、サンドボックス化されたコマンドは `cmd.exe`、`powershell.exe`、または `/mnt/c/` 下のものなどの Windows バイナリを起動できません。WSL はこれらを Unix ソケット経由で Windows ホストに渡しますが、サンドボックスはこれをブロックします。コマンドが Windows バイナリを呼び出す必要がある場合は、[`excludedCommands`](/ja/settings#sandbox-settings) に追加して、サンドボックス外で実行するようにしてください。

93 

94### サンドボックス化を有効化

95 

96`/sandbox` コマンドを実行してサンドボックス化を有効化できます。

97 

98```text theme={null}

99/sandbox

100```

101 

102これはサンドボックスモードを選択できるメニューを開きます。必要な依存関係(Linux の `bubblewrap` や `socat` など)が不足している場合、メニューはプラットフォームのインストール手順を表示します。

103 

104デフォルトでは、サンドボックスが起動できない場合(依存関係の不足またはサポートされていないプラットフォーム)、Claude Code は警告を表示してサンドボックス化なしでコマンドを実行します。これをハード失敗にするには、[`sandbox.failIfUnavailable`](/ja/settings#sandbox-settings) を `true` に設定します。これは、セキュリティゲートとしてサンドボックス化を必要とする管理デプロイメント向けです。

105 

106### サンドボックスモード

107 

108Claude Code は 2 つのサンドボックスモードを提供します。

109 

110**自動許可モード**:Bash コマンドはサンドボックス内で実行を試みられ、許可なしに自動的に許可されます。サンドボックス化できないコマンド(許可されていないホストへのネットワークアクセスが必要なコマンドなど)は通常の許可フローにフォールバックします。明示的な拒否ルールは常に尊重されます。また、`rm` または `rmdir` コマンドが `/`、ホームディレクトリ、または他の重要なシステムパスをターゲットにしている場合でも、許可プロンプトがトリガーされます。Ask ルールは通常の許可フローにフォールバックするコマンドにのみ適用されます。

111 

112**通常の許可モード**:すべての bash コマンドは、サンドボックス化されている場合でも標準的な許可フローを通じます。これはより多くの制御を提供しますが、より多くの承認が必要です。

113 

114両方のモードで、サンドボックスは同じファイルシステムとネットワーク制限を実施します。違いは、サンドボックス化されたコマンドが自動承認されるか明示的な許可が必要かだけです。

115 

116<Info>

117 自動許可モードは許可モード設定とは独立して動作します。「編集を受け入れる」モードでない場合でも、自動許可が有効な場合、サンドボックス化された bash コマンドは自動的に実行されます。これは、ファイル編集ツールが通常は承認を必要とする場合でも、サンドボックス境界内のファイルを変更する bash コマンドはプロンプトなしに実行されることを意味します。

118</Info>

119 

120### サンドボックス化を設定

121 

122`settings.json` ファイルを通じてサンドボックス動作をカスタマイズします。完全な設定リファレンスについては [Settings](/ja/settings#sandbox-settings) を参照してください。

123 

124#### 特定のパスへのサブプロセス書き込みアクセスの付与

125 

126デフォルトでは、サンドボックス化されたコマンドは現在の作業ディレクトリにのみ書き込みできます。`kubectl`、`terraform`、`npm` などのサブプロセスコマンドがプロジェクトディレクトリ外に書き込む必要がある場合、`sandbox.filesystem.allowWrite` を使用して特定のパスへのアクセスを付与します。

127 

128```json theme={null}

129{

130 "sandbox": {

131 "enabled": true,

132 "filesystem": {

133 "allowWrite": ["~/.kube", "/tmp/build"]

134 }

135 }

136}

137```

138 

139これらのパスは OS レベルで実施されるため、サンドボックス内で実行されるすべてのコマンド(その子プロセスを含む)がそれらを尊重します。これは、`excludedCommands` でツールをサンドボックスから除外するのではなく、ツールが特定の場所への書き込みアクセスを必要とする場合の推奨アプローチです。

140 

141`allowWrite`(または `denyWrite`/`denyRead`/`allowRead`)が複数の [設定スコープ](/ja/settings#settings-precedence) で定義されている場合、配列は**マージ**されます。つまり、すべてのスコープからのパスが結合され、置き換えられません。たとえば、管理設定が `/opt/company-tools` への書き込みを許可し、ユーザーが個人設定で `~/.kube` を追加する場合、両方のパスが最終的なサンドボックス設定に含まれます。これは、ユーザーとプロジェクトが、より高い優先度のスコープで設定されたパスを複製または上書きすることなく、リストを拡張できることを意味します。

142 

143パスプレフィックスはパスの解決方法を制御します。

144 

145| プレフィックス | 意味 | 例 |

146| :---------------- | :------------------------------------------------------------- | :--------------------------------------------------------------------- |

147| `/` | ファイルシステムルートからの絶対パス | `/tmp/build` は `/tmp/build` のままです |

148| `~/` | ホームディレクトリからの相対パス | `~/.kube` は `$HOME/.kube` になります |

149| `./` またはプレフィックスなし | プロジェクト設定の場合はプロジェクトルートからの相対パス、またはユーザー設定の場合は `~/.claude` からの相対パス | `.claude/settings.json` の `./output` は `<project-root>/output` に解決されます |

150 

151古い `//path` プレフィックスは絶対パスの場合でも機能します。以前に単一スラッシュ `/path` を使用してプロジェクト相対解決を期待していた場合は、`./path` に切り替えてください。この構文は [Read と Edit 許可ルール](/ja/permissions#read-and-edit) とは異なります。これらは絶対パスに `//path` を使用し、プロジェクト相対に `/path` を使用します。サンドボックスファイルシステムパスは標準的な規則を使用します。`/tmp/build` は絶対パスです。

152 

153`sandbox.filesystem.denyWrite` と `sandbox.filesystem.denyRead` を使用して書き込みまたは読み取りアクセスを拒否することもできます。これらは `Edit(...)` と `Read(...)` 許可ルールからのパスとマージされます。拒否された領域内の特定のパスの読み取りを再度許可するには、`sandbox.filesystem.allowRead` を使用します。これは `denyRead` より優先されます。管理設定で `allowManagedReadPathsOnly` が有効な場合、管理 `allowRead` エントリのみが尊重されます。ユーザー、プロジェクト、ローカルの `allowRead` エントリは無視されます。`denyRead` はすべてのソースからマージされます。

154 

155たとえば、ホームディレクトリ全体からの読み取りをブロックしながら、現在のプロジェクトからの読み取りを許可するには、プロジェクトの `.claude/settings.json` に以下を追加します。

156 

157```json theme={null}

158{

159 "sandbox": {

160 "enabled": true,

161 "filesystem": {

162 "denyRead": ["~/"],

163 "allowRead": ["."]

164 }

165 }

166}

167```

168 

169この設定がプロジェクト設定に存在するため、`allowRead` の `.` はプロジェクトルートに解決されます。同じ設定を `~/.claude/settings.json` に配置した場合、`.` は `~/.claude` に解決され、プロジェクトファイルは `denyRead` ルールによってブロックされたままになります。

170 

171<Tip>

172 すべてのコマンドがサンドボックス化と互換性があるわけではありません。サンドボックスを最大限に活用するのに役立つ可能性のあるいくつかのメモ:

173 

174 * 多くの CLI ツールは特定のホストへのアクセスを必要とします。これらのツールを使用すると、特定のホストへのアクセス許可をリクエストします。許可を付与すると、これらのホストに今後アクセスでき、サンドボックス内で安全に実行できるようになります。

175 * `watchman` はサンドボックス内での実行と互換性がありません。`jest` を実行している場合は、`jest --no-watchman` の使用を検討してください

176 * `docker` はサンドボックス内での実行と互換性がありません。`excludedCommands` で `docker *` を指定して、サンドボックス外で実行するように強制することを検討してください。

177</Tip>

178 

179<Note>

180 Claude Code には、必要に応じてコマンドをサンドボックス外で実行できるようにする意図的なエスケープハッチメカニズムが含まれています。コマンドがサンドボックス制限(ネットワーク接続の問題や互換性のないツールなど)により失敗した場合、Claude は失敗を分析するよう促され、`dangerouslyDisableSandbox` パラメータでコマンドを再試行する可能性があります。このパラメータを使用するコマンドは、実行するユーザー許可を必要とする通常の Claude Code 許可フローを通じます。これにより、Claude Code は特定のツールまたはネットワーク操作がサンドボックス制約内で機能できないエッジケースを処理できます。

181 

182 このエスケープハッチは、[サンドボックス設定](/ja/settings#sandbox-settings) で `"allowUnsandboxedCommands": false` を設定することで無効化できます。無効化されると、`dangerouslyDisableSandbox` パラメータは完全に無視され、すべてのコマンドはサンドボックス化されるか、`excludedCommands` に明示的にリストされている必要があります。

183</Note>

184 

185## セキュリティ上の利点

186 

187### プロンプトインジェクションからの保護

188 

189攻撃者がプロンプトインジェクションを通じて Claude Code の動作を正常に操作した場合でも、サンドボックスはシステムのセキュリティを確保します。

190 

191**ファイルシステム保護:**

192 

193* `~/.bashrc` などの重要な設定ファイルを変更できません

194* `/bin/` のシステムレベルファイルを変更できません

195* [Claude 許可設定](/ja/permissions#manage-permissions) で拒否されたファイルを読み取ることができません

196 

197**ネットワーク保護:**

198 

199* 攻撃者が制御するサーバーへのデータ流出はできません

200* 許可されていないドメインから悪意のあるスクリプトをダウンロードできません

201* 承認されていないサービスへの予期しない API 呼び出しを行うことができません

202* 明示的に許可されていないドメインに連絡することはできません

203 

204**監視と制御:**

205 

206* サンドボックス外のすべてのアクセス試行は OS レベルでブロックされます

207* 境界がテストされるときに即座に通知を受け取ります

208* リクエストを拒否、1 回だけ許可、または設定を永続的に更新することを選択できます

209 

210### 攻撃面の削減

211 

212サンドボックス化は以下からの潜在的な損害を制限します。

213 

214* **悪意のある依存関係**:有害なコードを含む NPM パッケージまたは他の依存関係

215* **侵害されたスクリプト**:セキュリティ脆弱性を持つビルドスクリプトまたはツール

216* **ソーシャルエンジニアリング**:ユーザーに危険なコマンドを実行させるための攻撃

217* **プロンプトインジェクション**:Claude に危険なコマンドを実行させるための攻撃

218 

219### 透過的な操作

220 

221Claude Code がサンドボックス外のネットワークリソースにアクセスしようとする場合:

222 

2231. 操作は OS レベルでブロックされます

2242. 即座に通知を受け取ります

2253. 以下を選択できます。

226 * リクエストを拒否する

227 * 1 回だけ許可する

228 * サンドボックス設定を永続的に更新して許可する

229 

230## セキュリティ上の制限

231 

232* ネットワークサンドボックス化の制限:ネットワークフィルタリングシステムは、プロセスが接続を許可されるドメインを制限することで動作します。プロキシを通じて渡されるトラフィックを検査することはなく、ユーザーはポリシーで許可されたドメインが信頼できるドメインのみであることを確認する責任があります。

233 

234<Warning>

235 ユーザーは、データ流出を許可する可能性のある `github.com` などの広いドメインを許可することに伴う潜在的なリスクに注意する必要があります。また、場合によっては [ドメインフロンティング](https://en.wikipedia.org/wiki/Domain_fronting) を通じてネットワークフィルタリングをバイパスすることが可能な場合があります。

236</Warning>

237 

238* Unix ソケットを通じた権限昇格:`allowUnixSockets` 設定は、サンドボックスバイパスにつながる可能性のある強力なシステムサービスへのアクセスを不注意に付与する可能性があります。たとえば、`/var/run/docker.sock` へのアクセスを許可するために使用される場合、docker ソケットを悪用してホストシステムへのアクセスを効果的に付与します。ユーザーはサンドボックスを通じて許可する Unix ソケットを慎重に検討することをお勧めします。

239* ファイルシステム許可昇格:過度に広いファイルシステム書き込み許可は権限昇格攻撃を有効にする可能性があります。`$PATH` の実行可能ファイルを含むディレクトリ、システム設定ディレクトリ、またはユーザーシェル設定ファイル(`.bashrc`、`.zshrc`)への書き込みを許可すると、他のユーザーまたはシステムプロセスがこれらのファイルにアクセスするときに異なるセキュリティコンテキストでコード実行につながる可能性があります。

240* Linux サンドボックス強度:Linux 実装は強力なファイルシステムとネットワーク分離を提供しますが、特権のない名前空間なしで Docker 環境内で動作できるようにする `enableWeakerNestedSandbox` モードが含まれています。このオプションはセキュリティを大幅に弱め、追加の分離が別の方法で実施される場合にのみ使用する必要があります。

241 

242## サンドボックス化が許可とどのように関連するか

243 

244サンドボックス化と [許可](/ja/permissions) は、一緒に動作する補完的なセキュリティレイヤーです。

245 

246* **許可** は Claude Code が使用できるツールを制御し、任意のツールが実行される前に評価されます。これらは Bash、Read、Edit、WebFetch、MCP などすべてのツールに適用されます。

247* **サンドボックス化** は、Bash コマンドがファイルシステムとネットワークレベルでアクセスできるものを制限する OS レベルの実施を提供します。これは Bash コマンドとその子プロセスにのみ適用されます。

248 

249ファイルシステムとネットワーク制限は、サンドボックス設定と許可ルールの両方を通じて設定されます。

250 

251* `sandbox.filesystem.allowWrite` を使用して、作業ディレクトリ外のパスへのサブプロセス書き込みアクセスを付与します

252* `sandbox.filesystem.denyWrite` と `sandbox.filesystem.denyRead` を使用して、特定のパスへのサブプロセスアクセスをブロックします

253* `sandbox.filesystem.allowRead` を使用して、`denyRead` 領域内の特定のパスの読み取りを再度許可します

254* `Read` と `Edit` 拒否ルールを使用して、特定のファイルまたはディレクトリへのアクセスをブロックします

255* `WebFetch` 許可/拒否ルールを使用してドメインアクセスを制御します

256* サンドボックス `allowedDomains` を使用して、Bash コマンドが到達できるドメインを制御します

257* サンドボックス `deniedDomains` を使用して、より広い `allowedDomains` ワイルドカードが許可する場合でも、特定のドメインをブロックします

258 

259`sandbox.filesystem` 設定と許可ルールからのパスは、最終的なサンドボックス設定にマージされます。

260 

261この [リポジトリ](https://github.com/anthropics/claude-code/tree/main/examples/settings) には、一般的なデプロイメントシナリオ(サンドボックス固有の例を含む)のスターター設定が含まれています。これらを出発点として使用し、ニーズに合わせて調整してください。

262 

263## 高度な使用方法

264 

265### カスタムプロキシ設定

266 

267高度なネットワークセキュリティを必要とする組織の場合、カスタムプロキシを実装して以下を行うことができます。

268 

269* HTTPS トラフィックを復号化して検査する

270* カスタムフィルタリングルールを適用する

271* すべてのネットワークリクエストをログに記録する

272* 既存のセキュリティインフラストラクチャと統合する

273 

274```json theme={null}

275{

276 "sandbox": {

277 "network": {

278 "httpProxyPort": 8080,

279 "socksProxyPort": 8081

280 }

281 }

282}

283```

284 

285### 既存のセキュリティツールとの統合

286 

287サンドボックス化された bash ツールは以下と連携します。

288 

289* **許可ルール**:[許可設定](/ja/permissions) と組み合わせて多層防御を実現します

290* **開発コンテナ**:[dev containers](/ja/devcontainer) と共に使用して追加の分離を実現します

291* **エンタープライズポリシー**:[管理設定](/ja/settings#settings-precedence) を通じてサンドボックス設定を実施します

292 

293## ベストプラクティス

294 

2951. **制限的に開始**:最小限の許可で開始し、必要に応じて拡張します

2962. **ログを監視**:サンドボックス違反の試みを確認して、Claude Code のニーズを理解します

2973. **環境固有の設定を使用**:開発環境と本番環境で異なるサンドボックスルールを使用します

2984. **許可と組み合わせる**:包括的なセキュリティのためにサンドボックス化を IAM ポリシーと共に使用します

2995. **設定をテスト**:サンドボックス設定が正当なワークフローをブロックしないことを確認します

300 

301## オープンソース

302 

303サンドボックスランタイムは、独自のエージェントプロジェクトで使用するためのオープンソース npm パッケージとして利用可能です。これにより、より広い AI エージェントコミュニティがより安全で安全な自律システムを構築できます。これは、サンドボックス化したい他のプログラムをサンドボックス化するためにも使用できます。たとえば、MCP サーバーをサンドボックス化するには、以下を実行できます。

304 

305```bash theme={null}

306npx @anthropic-ai/sandbox-runtime <command-to-sandbox>

307```

308 

309実装の詳細とソースコードについては、[GitHub リポジトリ](https://github.com/anthropic-experimental/sandbox-runtime) を参照してください。

310 

311## 制限事項

312 

313* **パフォーマンスオーバーヘッド**:最小限ですが、一部のファイルシステム操作はわずかに遅くなる可能性があります

314* **互換性**:特定のシステムアクセスパターンを必要とするツールの中には、設定調整が必要な場合や、サンドボックス外で実行する必要がある場合があります

315* **プラットフォームサポート**:macOS、Linux、WSL2 をサポートします。WSL1 はサポートされていません。ネイティブ Windows サポートは計画中です。

316 

317## サンドボックス化がカバーしていないもの

318 

319サンドボックスは Bash サブプロセスを分離します。他のツールは異なる境界の下で動作します。

320 

321* **組み込みファイルツール**:Read、Edit、Write はサンドボックスを通じて実行するのではなく、許可システムを直接使用します。[許可](/ja/permissions) を参照してください。

322* **コンピュータ使用**:Claude が macOS でアプリを開いてスクリーンを制御する場合、分離された環境ではなく実際のデスクトップで実行されます。アプリごとの許可プロンプトが各アプリケーションをゲートします。[CLI でのコンピュータ使用](/ja/computer-use) または [Desktop でのコンピュータ使用](/ja/desktop#let-claude-use-your-computer) を参照してください。

323 

324## 関連項目

325 

326* [Security](/ja/security) - 包括的なセキュリティ機能とベストプラクティス

327* [Permissions](/ja/permissions) - 許可設定とアクセス制御

328* [Settings](/ja/settings) - 完全な設定リファレンス

329* [CLI reference](/ja/cli-reference) - コマンドラインオプション

scheduled-tasks.md +213 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# スケジュールに従ってプロンプトを実行する

6 

7> /loop と cron スケジューリングツールを使用して、Claude Code セッション内でプロンプトを繰り返し実行したり、ステータスをポーリングしたり、1 回限りのリマインダーを設定したりします。

8 

9<Note>

10 スケジュール済みタスクには Claude Code v2.1.72 以降が必要です。`claude --version` でバージョンを確認してください。

11</Note>

12 

13スケジュール済みタスクを使用すると、Claude は一定の間隔でプロンプトを自動的に再実行できます。デプロイメントをポーリングしたり、PR を監視したり、長時間実行されるビルドをチェックバックしたり、後でセッション内で何かを実行するようにリマインダーを設定したりするために使用します。イベントが発生したときにポーリングする代わりに反応するには、[Channels](/ja/channels) を参照してください。CI はセッションに直接失敗をプッシュできます。

14 

15タスクはセッションスコープです。現在の会話に存在し、新しい会話を開始すると停止します。`--resume` または `--continue` で再開すると、[有効期限切れ](#seven-day-expiry)になっていないタスクが復元されます。過去 7 日以内に作成された定期的なタスク、またはスケジュール済み時間がまだ経過していない 1 回限りのタスクです。セッションとは独立して存在する永続的なスケジューリングについては、[Routines](/ja/routines)、[Desktop スケジュール済みタスク](/ja/desktop-scheduled-tasks)、または [GitHub Actions](/ja/github-actions) を使用してください。

16 

17## スケジューリングオプションを比較する

18 

19Claude Code offers three ways to schedule recurring or one-off work:

20 

21| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

22| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |

23| Runs on | Anthropic cloud | Your machine | Your machine |

24| Requires machine on | No | Yes | Yes |

25| Requires open session | No | No | Yes |

26| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

27| Access to local files | No (fresh clone) | Yes | Yes |

28| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

29| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

30| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

31| Minimum interval | 1 hour | 1 minute | 1 minute |

32 

33<Tip>

34 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.

35</Tip>

36 

37## /loop で定期的にプロンプトを実行する

38 

39`/loop` [バンドルスキル](/ja/commands) は、セッションが開いている間、プロンプトを繰り返し実行する最速の方法です。間隔とプロンプトの両方はオプションであり、提供する内容によってループの動作が決まります。

40 

41| 提供する内容 | 例 | 動作 |

42| :----------- | :-------------------------- | :--------------------------------------------------------------------------------------- |

43| 間隔とプロンプト | `/loop 5m check the deploy` | プロンプトは[固定スケジュール](#run-on-a-fixed-interval)で実行されます |

44| プロンプトのみ | `/loop check the deploy` | プロンプトは各反復で[Claude が選択した間隔](#let-claude-choose-the-interval)で実行されます |

45| 間隔のみ、または何もなし | `/loop` | [組み込みメンテナンスプロンプト](#run-the-built-in-maintenance-prompt)が実行されるか、存在する場合は `loop.md` が実行されます |

46 

47別のコマンドをプロンプトとして渡すこともできます。例えば `/loop 20m /review-pr 1234` は、各反復でパッケージ化されたワークフローを再実行します。

48 

49### 固定間隔で実行する

50 

51間隔を指定すると、Claude はそれを cron 式に変換し、ジョブをスケジュールし、頻度とジョブ ID を確認します。

52 

53```text theme={null}

54/loop 5m check if the deployment finished and tell me what happened

55```

56 

57間隔は `30m` のような裸のトークンとしてプロンプトの前に配置することも、`every 2 hours` のような句としてプロンプトの後に配置することもできます。サポートされている単位は、秒の場合は `s`、分の場合は `m`、時間の場合は `h`、日の場合は `d` です。

58 

59秒は cron が 1 分の粒度を持つため、最も近い分に切り上げられます。`7m` や `90m` など、クリーンな cron ステップにマップされない間隔は、最も近い間隔に丸められ、Claude が選択したものを通知します。

60 

61### Claude に間隔を選択させる

62 

63間隔を省略すると、Claude は固定 cron スケジュールで実行する代わりに、動的に間隔を選択します。各反復の後、観察した内容に基づいて 1 分から 1 時間の間の遅延を選択します。ビルドが完了している間または PR がアクティブな間は短い待機時間、何も保留中でない場合は長い待機時間です。選択された遅延とその理由は、各反復の終了時に出力されます。

64 

65以下の例は CI とレビューコメントをチェックし、PR が静かになると Claude がより長く反復間で待機します。

66 

67```text theme={null}

68/loop check whether CI passed and address any review comments

69```

70 

71動的な `/loop` スケジュールをリクエストすると、Claude は [Monitor ツール](/ja/tools-reference#monitor-tool) を直接使用する場合があります。Monitor はバックグラウンドスクリプトを実行し、各出力行をストリーミングバックします。これにより、ポーリングを完全に回避でき、プロンプトを間隔で再実行するよりも多くの場合、トークン効率が高く、応答性が高くなります。

72 

73動的にスケジュールされたループは、他のタスクと同様に[スケジュール済みタスクリスト](#manage-scheduled-tasks)に表示されるため、同じ方法でリストまたはキャンセルできます。[ジッタールール](#jitter)は適用されませんが、[7 日間の有効期限](#seven-day-expiry)は適用されます。ループは開始後 7 日で自動的に終了します。

74 

75<Note>

76 Bedrock、Vertex AI、Microsoft Foundry では、間隔なしのプロンプトは固定 10 分スケジュールで実行されます。

77</Note>

78 

79### 組み込みメンテナンスプロンプトを実行する

80 

81プロンプトを省略すると、Claude は提供するプロンプトの代わりに組み込みメンテナンスプロンプトを使用します。各反復で、以下を順番に処理します。

82 

83* 会話からの未完了の作業を続行する

84* 現在のブランチのプルリクエストを処理する。レビューコメント、失敗した CI 実行、マージコンフリクト

85* 他に何も保留中でない場合、バグハントや簡素化などのクリーンアップパスを実行する

86 

87Claude はそのスコープ外の新しいイニシアチブを開始せず、プッシュまたは削除などの取り消し不可能なアクションは、トランスクリプトが既に承認した何かを続行する場合にのみ進行します。

88 

89```text theme={null}

90/loop

91```

92 

93裸の `/loop` は、このプロンプトを[動的に選択された間隔](#let-claude-choose-the-interval)で実行します。例えば `/loop 15m` のように間隔を追加して、代わりに固定スケジュールで実行します。組み込みプロンプトを独自のデフォルトに置き換えるには、[loop.md でデフォルトプロンプトをカスタマイズする](#customize-the-default-prompt-with-loop-md)を参照してください。

94 

95<Note>

96 Bedrock、Vertex AI、Microsoft Foundry では、プロンプトなしの `/loop` は使用メッセージを出力し、メンテナンスループを開始しません。

97</Note>

98 

99### loop.md でデフォルトプロンプトをカスタマイズする

100 

101`loop.md` ファイルは、組み込みメンテナンスプロンプトを独自の指示に置き換えます。これは、裸の `/loop` の単一のデフォルトプロンプトを定義し、個別のスケジュール済みタスクのリストではなく、コマンドラインでプロンプトを指定するたびに無視されます。それと一緒に追加のプロンプトをスケジュールするには、`/loop <prompt>` を使用するか、[Claude に直接依頼してください](#manage-scheduled-tasks)。

102 

103Claude は 2 つの場所でファイルを探し、最初に見つかったものを使用します。

104 

105| パス | スコープ |

106| :------------------ | :---------------------------------- |

107| `.claude/loop.md` | プロジェクトレベル。両方のファイルが存在する場合は優先されます。 |

108| `~/.claude/loop.md` | ユーザーレベル。独自のファイルを定義しないプロジェクトに適用されます。 |

109 

110ファイルは必須の構造を持たないプレーン Markdown です。`/loop` プロンプトを直接入力しているかのように記述してください。以下の例は、リリースブランチを健全に保ちます。

111 

112```markdown title=".claude/loop.md" theme={null}

113Check the `release/next` PR. If CI is red, pull the failing job log,

114diagnose, and push a minimal fix. If new review comments have arrived,

115address each one and resolve the thread. If everything is green and

116quiet, say so in one line.

117```

118 

119`loop.md` への編集は次の反復で有効になるため、ループが実行中に指示を改善できます。どちらの場所にも `loop.md` が存在しない場合、ループは組み込みメンテナンスプロンプトにフォールバックします。ファイルは簡潔に保ってください。25,000 バイトを超えるコンテンツは切り詰められます。

120 

121### ループを停止する

122 

123`/loop` が次の反復を待機している間に停止するには、`Esc` を押してください。これにより、保留中のウェイクアップがクリアされるため、ループは再度実行されません。[Claude に直接依頼](#manage-scheduled-tasks)してスケジュールしたタスクは `Esc` の影響を受けず、削除するまで存在し続けます。

124 

125## 1 回限りのリマインダーを設定する

126 

1271 回限りのリマインダーの場合は、`/loop` を使用する代わりに、自然言語で実行したい内容を説明してください。Claude は実行後に自身を削除する単一実行タスクをスケジュールします。

128 

129```text theme={null}

130remind me at 3pm to push the release branch

131```

132 

133```text theme={null}

134in 45 minutes, check whether the integration tests passed

135```

136 

137Claude は cron 式を使用して火災時間を特定の分と時間に固定し、いつ実行されるかを確認します。

138 

139## スケジュール済みタスクを管理する

140 

141自然言語で Claude にタスクをリストまたはキャンセルするよう依頼するか、基盤となるツールを直接参照してください。

142 

143```text theme={null}

144what scheduled tasks do I have?

145```

146 

147```text theme={null}

148cancel the deploy check job

149```

150 

151内部的には、Claude はこれらのツールを使用します。

152 

153| ツール | 目的 |

154| :----------- | :------------------------------------------------------------------- |

155| `CronCreate` | 新しいタスクをスケジュールします。5 フィールドの cron 式、実行するプロンプト、および繰り返すか 1 回実行するかを受け入れます。 |

156| `CronList` | ID、スケジュール、プロンプトを含むすべてのスケジュール済みタスクをリストします。 |

157| `CronDelete` | ID でタスクをキャンセルします。 |

158 

159各スケジュール済みタスクには、`CronDelete` に渡すことができる 8 文字の ID があります。セッションは一度に最大 50 個のスケジュール済みタスクを保持できます。

160 

161## スケジュール済みタスクの実行方法

162 

163スケジューラは毎秒期限切れのタスクをチェックし、低優先度でキューに入れます。スケジュール済みプロンプトは、Claude が応答の途中ではなく、ターン間で実行されます。タスクが期限切れになったときに Claude がビジーの場合、プロンプトは現在のターンが終了するまで待機します。

164 

165すべての時間はローカルタイムゾーンで解釈されます。`0 9 * * *` のような cron 式は、UTC ではなく、Claude Code を実行している場所の午前 9 時を意味します。

166 

167### ジッター

168 

169すべてのセッションが同じ壁時計の瞬間に API にヒットするのを避けるために、スケジューラは火災時間に小さな決定論的オフセットを追加します。

170 

171* 定期的なタスクは、その期間の最大 10% 遅く実行され、15 分でキャップされます。時間ごとのジョブは `:00` から `:06` のどこかで実行される可能性があります。

172* 時間の上部または下部にスケジュールされた 1 回限りのタスクは、最大 90 秒早く実行されます。

173 

174オフセットはタスク ID から派生しているため、同じタスクは常に同じオフセットを取得します。正確なタイミングが重要な場合は、`0 9 * * *` ではなく `3 9 * * *` など、`:00` または `:30` ではない分を選択すると、1 回限りのジッターは適用されません。

175 

176### 7 日間の有効期限

177 

178定期的なタスクは作成後 7 日で自動的に期限切れになります。タスクは最後に 1 回実行され、その後自身を削除します。これにより、忘れられたループが実行できる期間が制限されます。定期的なタスクをより長く続ける必要がある場合は、期限切れになる前にキャンセルして再作成するか、永続的なスケジューリングのために [Routines](/ja/routines) または [Desktop スケジュール済みタスク](/ja/desktop-scheduled-tasks) を使用してください。

179 

180## Cron 式リファレンス

181 

182`CronCreate` は標準 5 フィールド cron 式を受け入れます。`minute hour day-of-month month day-of-week`。すべてのフィールドは、ワイルドカード(`*`)、単一値(`5`)、ステップ(`*/15`)、範囲(`1-5`)、カンマ区切りリスト(`1,15,30`)をサポートしています。

183 

184| 例 | 意味 |

185| :------------- | :------------------------ |

186| `*/5 * * * *` | 5 分ごと |

187| `0 * * * *` | 毎時間の時刻 |

188| `7 * * * *` | 毎時間 7 分経過時 |

189| `0 9 * * *` | 毎日午前 9 時(ローカル) |

190| `0 9 * * 1-5` | 平日午前 9 時(ローカル) |

191| `30 14 15 3 *` | 3 月 15 日午後 2 時 30 分(ローカル) |

192 

193曜日は日曜日の場合は `0` または `7`、土曜日の場合は `6` を使用します。`L`、`W`、`?` などの拡張構文や、`MON` や `JAN` などの名前エイリアスはサポートされていません。

194 

195月の日と曜日の両方が制約されている場合、どちらかのフィールドが一致すれば日付が一致します。これは標準の vixie-cron セマンティクスに従います。

196 

197## スケジュール済みタスクを無効にする

198 

199環境で `CLAUDE_CODE_DISABLE_CRON=1` を設定して、スケジューラ全体を無効にします。cron ツールと `/loop` は利用できなくなり、既にスケジュール済みのタスクは実行を停止します。無効化フラグの完全なリストについては、[環境変数](/ja/env-vars) を参照してください。

200 

201## 制限事項

202 

203セッションスコープのスケジューリングには固有の制約があります。

204 

205* タスクは Claude Code が実行中でアイドル状態の場合にのみ実行されます。ターミナルを閉じるか、セッションを終了すると、タスクは実行を停止します。

206* 見落とされた火災のキャッチアップはありません。タスクのスケジュール済み時間が Claude が長時間実行されるリクエストでビジーの間に経過した場合、Claude がアイドル状態になったときに 1 回実行され、見落とされた間隔ごとに 1 回ではありません。

207* 新しい会話を開始すると、すべてのセッションスコープのタスクがクリアされます。`claude --resume` または `claude --continue` で再開すると、有効期限切れになっていないタスクが復元されます。過去 7 日以内に作成された定期的なタスク、およびスケジュール済み時間がまだ経過していない 1 回限りのタスク。バックグラウンド Bash およびモニタータスクは再開時に復元されることはありません。

208 

209無人で実行する必要がある cron 駆動オートメーションの場合は、以下を使用してください。

210 

211* [Routines](/ja/routines):Anthropic 管理インフラストラクチャでスケジュールに従って実行、API 呼び出し、または GitHub イベント時に実行

212* [GitHub Actions](/ja/github-actions):CI で `schedule` トリガーを使用

213* [Desktop スケジュール済みタスク](/ja/desktop-scheduled-tasks):マシン上でローカルに実行

security.md +141 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# セキュリティ

6 

7> Claude Code のセキュリティ対策とセキュアな使用方法のベストプラクティスについて学びます。

8 

9## セキュリティへのアプローチ方法

10 

11### セキュリティの基盤

12 

13コードのセキュリティは最優先事項です。Claude Code はセキュリティを中核に据えて構築されており、Anthropic の包括的なセキュリティプログラムに従って開発されています。詳細情報とリソース(SOC 2 Type 2 レポート、ISO 27001 証明書など)については、[Anthropic Trust Center](https://trust.anthropic.com) をご覧ください。

14 

15### パーミッションベースのアーキテクチャ

16 

17Claude Code はデフォルトで厳密な読み取り専用パーミッションを使用します。追加のアクション(ファイルの編集、テストの実行、コマンドの実行)が必要な場合、Claude Code は明示的なパーミッションをリクエストします。ユーザーは、アクションを 1 回だけ承認するか、自動的に許可するかを制御できます。

18 

19Claude Code は透明性とセキュリティを備えるように設計されています。例えば、bash コマンドを実行する前に承認が必要であり、直接制御できます。このアプローチにより、ユーザーと組織はパーミッションを直接設定できます。

20 

21詳細なパーミッション設定については、[Permissions](/ja/permissions) を参照してください。

22 

23### 組み込み保護機能

24 

25agentic システムのリスクを軽減するために:

26 

27* **サンドボックス化された bash ツール**: [Sandbox](/ja/sandboxing) bash コマンドをファイルシステムとネットワークの分離で実行し、パーミッションプロンプトを減らしながらセキュリティを維持します。`/sandbox` で有効にして、Claude Code が自律的に動作できる境界を定義します

28* **書き込みアクセス制限**: Claude Code は開始されたフォルダとそのサブフォルダにのみ書き込みでき、明示的なパーミッションなしに親ディレクトリのファイルを変更することはできません。Claude Code は作業ディレクトリ外のファイルを読み取ることができます(システムライブラリと依存関係へのアクセスに便利です)が、書き込み操作はプロジェクトスコープに厳密に限定され、明確なセキュリティ境界を作成します

29* **プロンプト疲労の軽減**: ユーザーごと、コードベースごと、または組織ごとに頻繁に使用される安全なコマンドのホワイトリスト化をサポート

30* **Accept Edits モード**: 複数の編集をバッチで受け入れながら、副作用のあるコマンドのパーミッションプロンプトを維持

31 

32### ユーザーの責任

33 

34Claude Code は、ユーザーが付与したパーミッションのみを持ちます。承認前に、提案されたコードとコマンドのセキュリティを確認する責任があります。

35 

36## プロンプトインジェクションから保護する

37 

38プロンプトインジェクションは、攻撃者が悪意のあるテキストを挿入することで AI アシスタントの指示をオーバーライドまたは操作しようとする手法です。Claude Code にはこれらの攻撃に対する複数のセーフガードが含まれています:

39 

40### コア保護機能

41 

42* **パーミッションシステム**: 機密操作には明示的な承認が必要です

43* **コンテキスト認識分析**: 完全なリクエストを分析して潜在的に有害な指示を検出します

44* **入力サニタイゼーション**: ユーザー入力を処理することでコマンドインジェクションを防止します

45* **コマンドブロックリスト**: `curl` や `wget` のようにウェブから任意のコンテンツを取得するリスクのあるコマンドをデフォルトでブロックします。明示的に許可する場合は、[パーミッションパターンの制限](/ja/permissions#tool-specific-permission-rules) に注意してください

46 

47### プライバシーセーフガード

48 

49データを保護するために、複数のセーフガードを実装しています:

50 

51* 機密情報の保持期間の制限(詳細については [Privacy Center](https://privacy.anthropic.com/en/articles/10023548-how-long-do-you-store-my-data) を参照してください)

52* ユーザーセッションデータへのアクセス制限

53* データトレーニング設定に対するユーザーコントロール。コンシューマーユーザーは [プライバシー設定](https://claude.ai/settings/privacy) をいつでも変更できます。

54 

55詳細については、[Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms)(Team、Enterprise、API ユーザー向け)または [Consumer Terms](https://www.anthropic.com/legal/consumer-terms)(Free、Pro、Max ユーザー向け)および [Privacy Policy](https://www.anthropic.com/legal/privacy) をご確認ください。

56 

57### 追加のセーフガード

58 

59* **ネットワークリクエスト承認**: ネットワークリクエストを行うツールはデフォルトでユーザー承認が必要です

60* **分離されたコンテキストウィンドウ**: Web fetch は潜在的に悪意のあるプロンプトの注入を避けるために別のコンテキストウィンドウを使用します

61* **信頼検証**: 初回のコードベース実行と新しい MCP サーバーには信頼検証が必要です

62 * 注:信頼検証は `-p` フラグで非対話的に実行する場合は無効になります

63* **コマンドインジェクション検出**: 疑わしい bash コマンドは、以前にホワイトリストに登録されていても手動承認が必要です

64* **フェイルクローズドマッチング**: マッチしないコマンドはデフォルトで手動承認が必要です

65* **自然言語説明**: 複雑な bash コマンドにはユーザーの理解のための説明が含まれます

66* **セキュアな認証情報ストレージ**: API キーとトークンは暗号化されます。[Credential Management](/ja/authentication#credential-management) を参照してください

67 

68<Warning>

69 **Windows WebDAV セキュリティリスク**: Windows で Claude Code を実行する場合、WebDAV を有効にしたり、Claude Code に `\\*` などの WebDAV サブディレクトリを含む可能性のあるパスへのアクセスを許可することはお勧めしません。[WebDAV は Microsoft によって非推奨になっています](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) セキュリティリスクのため。WebDAV を有効にすると、Claude Code がリモートホストへのネットワークリクエストをトリガーし、パーミッションシステムをバイパスする可能性があります。

70</Warning>

71 

72**信頼できないコンテンツを使用する場合のベストプラクティス**:

73 

741. 承認前に提案されたコマンドを確認します

752. 信頼できないコンテンツを Claude に直接パイプすることを避けます

763. 重要なファイルへの提案された変更を確認します

774. 仮想マシン(VM)を使用してスクリプトを実行し、ツール呼び出しを行います。特に外部 Web サービスと対話する場合

785. `/feedback` で疑わしい動作を報告します

79 

80<Warning>

81 これらの保護機能はリスクを大幅に軽減しますが、どのシステムもすべての攻撃に完全に免疫があるわけではありません。AI ツールを使用する場合は常に良好なセキュリティプラクティスを維持してください。

82</Warning>

83 

84## MCP セキュリティ

85 

86Claude Code ユーザーは Model Context Protocol(MCP)サーバーを設定できます。許可された MCP サーバーのリストは、エンジニアがソース管理にチェックインする Claude Code 設定の一部として、ソースコードで設定されます。

87 

88独自の MCP サーバーを作成するか、信頼できるプロバイダーからの MCP サーバーを使用することをお勧めします。Claude Code パーミッションを MCP サーバー用に設定できます。Anthropic は MCP サーバーを管理または監査しません。

89 

90## IDE セキュリティ

91 

92IDE で Claude Code を実行する場合の詳細については、[VS Code security and privacy](/ja/vs-code#security-and-privacy) を参照してください。

93 

94## クラウド実行セキュリティ

95 

96[Claude Code on the web](/ja/claude-code-on-the-web) を使用する場合、追加のセキュリティ制御が実施されます:

97 

98* **分離された仮想マシン**: 各クラウドセッションは分離された Anthropic 管理 VM で実行されます

99* **ネットワークアクセス制御**: ネットワークアクセスはデフォルトで制限され、無効にするか特定のドメインのみを許可するように設定できます

100* **認証情報保護**: 認証はサンドボックス内でスコープされた認証情報を使用するセキュアプロキシを通じて処理され、その後実際の GitHub 認証トークンに変換されます

101* **ブランチ制限**: Git push 操作は現在のワーキングブランチに制限されます

102* **監査ログ**: クラウド環境内のすべての操作はコンプライアンスと監査目的でログされます

103* **自動クリーンアップ**: クラウド環境はセッション完了後に自動的に終了されます

104 

105クラウド実行の詳細については、[Claude Code on the web](/ja/claude-code-on-the-web) を参照してください。

106 

107[Remote Control](/ja/remote-control) セッションは異なる方法で動作します:Web インターフェースはローカルマシンで実行されている Claude Code プロセスに接続します。すべてのコード実行とファイルアクセスはローカルに留まり、ローカル Claude Code セッション中に流れるのと同じデータが TLS 経由で Anthropic API を通じて流れます。クラウド VM またはサンドボックスは関与しません。接続は複数の短命で狭くスコープされた認証情報を使用し、各認証情報は特定の目的に限定され、独立して有効期限が切れ、単一の侵害された認証情報のブラストラディウスを制限します。

108 

109## セキュリティベストプラクティス

110 

111### 機密コードの使用

112 

113* 承認前にすべての提案された変更を確認してください

114* 機密リポジトリにはプロジェクト固有のパーミッション設定を使用してください

115* 追加の分離のために [dev containers](/ja/devcontainer) の使用を検討してください

116* `/permissions` で定期的にパーミッション設定を監査してください

117 

118### チームセキュリティ

119 

120* [managed settings](/ja/settings#settings-files) を使用して組織標準を実施してください

121* 承認されたパーミッション設定をバージョン管理を通じて共有してください

122* チームメンバーにセキュリティベストプラクティスについてトレーニングを行ってください

123* [OpenTelemetry metrics](/ja/monitoring-usage) を通じて Claude Code の使用を監視してください

124* [`ConfigChange` hooks](/ja/hooks#configchange) でセッション中の設定変更を監査またはブロックしてください

125 

126### セキュリティ問題の報告

127 

128Claude Code でセキュリティ脆弱性を発見した場合:

129 

1301. 公開で開示しないでください

1312. [HackerOne program](https://hackerone.com/4f1f16ba-10d3-4d09-9ecc-c721aad90f24/embedded_submissions/new) を通じて報告してください

1323. 詳細な再現手順を含めてください

1334. 公開開示前に問題に対処する時間を与えてください

134 

135## 関連リソース

136 

137* [Sandboxing](/ja/sandboxing) - bash コマンドのファイルシステムとネットワーク分離

138* [Permissions](/ja/permissions) - パーミッションとアクセス制御を設定します

139* [Monitoring usage](/ja/monitoring-usage) - Claude Code アクティビティを追跡および監査します

140* [Development containers](/ja/devcontainer) - セキュアで分離された環境

141* [Anthropic Trust Center](https://trust.anthropic.com) - セキュリティ認証とコンプライアンス

server-managed-settings.md +222 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# サーバー管理設定を構成する

6 

7> デバイス管理インフラストラクチャを必要とせずに、Claude.ai 上のウェブベースインターフェースを通じて、組織全体で Claude Code を一元的に構成します。

8 

9サーバー管理設定により、管理者は Claude.ai 上のウェブベースインターフェースを通じて Claude Code を一元的に構成できます。Claude Code クライアントは、ユーザーが組織の認証情報で認証すると、これらの設定を自動的に受け取ります。

10 

11このアプローチは、デバイス管理インフラストラクチャが導入されていない組織、または管理されていないデバイス上のユーザーの設定を管理する必要がある組織向けに設計されています。

12 

13<Note>

14 サーバー管理設定は [Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=server_settings_teams#team-&-enterprise) および [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=server_settings_enterprise) カスタマー向けに利用可能です。

15</Note>

16 

17## 要件

18 

19サーバー管理設定を使用するには、以下が必要です。

20 

21* Claude for Teams または Claude for Enterprise プラン

22* Claude for Teams の場合はバージョン 2.1.38 以降、Claude for Enterprise の場合はバージョン 2.1.30 以降の Claude Code

23* `api.anthropic.com` へのネットワークアクセス

24 

25## サーバー管理設定とエンドポイント管理設定の選択

26 

27Claude Code は、一元的な構成のための 2 つのアプローチをサポートしています。サーバー管理設定は Anthropic のサーバーから構成を配信します。[エンドポイント管理設定](/ja/settings#settings-files)は、ネイティブ OS ポリシー(macOS 管理設定、Windows レジストリ)または管理設定ファイルを通じてデバイスに直接配置されます。

28 

29| アプローチ | 最適な用途 | セキュリティモデル |

30| :--------------------------------------------- | :------------------------------ | :------------------------------------------------- |

31| **サーバー管理設定** | MDM がない組織、または管理されていないデバイス上のユーザー | 認証時に Anthropic のサーバーから配信される設定 |

32| **[エンドポイント管理設定](/ja/settings#settings-files)** | MDM またはエンドポイント管理がある組織 | MDM 構成プロファイル、レジストリポリシー、または管理設定ファイルを通じてデバイスに配置される設定 |

33 

34デバイスが MDM またはエンドポイント管理ソリューションに登録されている場合、エンドポイント管理設定はより強力なセキュリティ保証を提供します。これは、設定ファイルが OS レベルでユーザーの変更から保護される可能性があるためです。

35 

36## サーバー管理設定を構成する

37 

38<Steps>

39 <Step title="管理コンソールを開く">

40 [Claude.ai](https://claude.ai) で、**Admin Settings > Claude Code > Managed settings** に移動します。

41 </Step>

42 

43 <Step title="設定を定義する">

44 構成を JSON として追加します。`settings.json` で利用可能な[すべての設定](/ja/settings#available-settings)がサポートされており、[hooks](/ja/hooks)、[環境変数](/ja/env-vars)、および `allowManagedPermissionRulesOnly` などの[管理専用設定](/ja/permissions#managed-only-settings)も含まれます。

45 

46 この例は、権限拒否リストを適用し、ユーザーが権限をバイパスするのを防ぎ、権限ルールを管理設定で定義されたものに制限します。

47 

48 ```json theme={null}

49 {

50 "permissions": {

51 "deny": [

52 "Bash(curl *)",

53 "Read(./.env)",

54 "Read(./.env.*)",

55 "Read(./secrets/**)"

56 ],

57 "disableBypassPermissionsMode": "disable"

58 },

59 "allowManagedPermissionRulesOnly": true

60 }

61 ```

62 

63 hooks は `settings.json` と同じ形式を使用します。

64 

65 この例は、組織全体のすべてのファイル編集後に監査スクリプトを実行します。

66 

67 ```json theme={null}

68 {

69 "hooks": {

70 "PostToolUse": [

71 {

72 "matcher": "Edit|Write",

73 "hooks": [

74 { "type": "command", "command": "/usr/local/bin/audit-edit.sh" }

75 ]

76 }

77 ]

78 }

79 }

80 ```

81 

82 [auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode) 分類器を構成して、組織が信頼するリポジトリ、バケット、ドメインを認識させるには、以下のようにします。

83 

84 ```json theme={null}

85 {

86 "autoMode": {

87 "environment": [

88 "Source control: github.example.com/acme-corp and all repos under it",

89 "Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",

90 "Trusted internal domains: *.corp.example.com"

91 ]

92 }

93 }

94 ```

95 

96 hooks はシェルコマンドを実行するため、ユーザーは適用される前に[セキュリティ承認ダイアログ](#security-approval-dialogs)を表示します。`autoMode` エントリが分類器がブロックする内容にどのように影響するか、および `allow` フィールドと `soft_deny` フィールドに関する重要な警告については、[auto mode を構成する](/ja/auto-mode-config)を参照してください。

97 </Step>

98 

99 <Step title="保存してデプロイする">

100 変更を保存します。Claude Code クライアントは、次回の起動時または 1 時間ごとのポーリングサイクルで更新された設定を受け取ります。

101 </Step>

102</Steps>

103 

104### 設定配信の確認

105 

106設定が適用されていることを確認するには、ユーザーに Claude Code を再起動するよう依頼します。構成に[セキュリティ承認ダイアログ](#security-approval-dialogs)をトリガーする設定が含まれている場合、ユーザーは起動時に管理設定を説明するプロンプトを表示します。また、ユーザーに `/permissions` を実行して有効な権限ルールを表示させることで、管理権限ルールがアクティブであることを確認することもできます。

107 

108### アクセス制御

109 

110以下のロールがサーバー管理設定を管理できます。

111 

112* **Primary Owner**

113* **Owner**

114 

115設定の変更は組織内のすべてのユーザーに適用されるため、信頼できる担当者へのアクセスを制限してください。

116 

117### 管理専用設定

118 

119ほとんどの[設定キー](/ja/settings#available-settings)は任意のスコープで機能します。いくつかのキーは管理設定からのみ読み込まれ、ユーザーまたはプロジェクト設定ファイルに配置された場合は効果がありません。完全なリストについては、[管理専用設定](/ja/permissions#managed-only-settings)を参照してください。そのリストにない設定は、管理設定に配置することができ、最高の優先度を持ちます。

120 

121### 現在の制限事項

122 

123サーバー管理設定には、以下の制限があります。

124 

125* 設定は組織内のすべてのユーザーに均一に適用されます。グループごとの構成はまだサポートされていません。

126* [MCP サーバー構成](/ja/mcp#managed-mcp-configuration)は、サーバー管理設定を通じて配布することはできません。

127 

128## 設定配信

129 

130### 設定の優先順位

131 

132サーバー管理設定と[エンドポイント管理設定](/ja/settings#settings-files)は、Claude Code [設定階層](/ja/settings#settings-precedence)の最上位を占めます。コマンドライン引数を含む他の設定レベルはこれらをオーバーライドできません。管理層内では、空でない構成を配信する最初のソースが優先されます。サーバー管理設定が最初にチェックされ、次にエンドポイント管理設定がチェックされます。ソースはマージされません。サーバー管理設定がキーを配信する場合、エンドポイント管理設定は完全に無視されます。サーバー管理設定が何も配信しない場合、エンドポイント管理設定が適用されます。

133 

134管理コンソールでサーバー管理構成をクリアして、エンドポイント管理 plist またはレジストリポリシーにフォールバックする意図がある場合、[キャッシュされた設定](#fetch-and-caching-behavior)はクライアントマシンに保持され、次の成功したフェッチまで続きます。`/status` を実行して、どの管理ソースがアクティブであるかを確認してください。

135 

136### フェッチとキャッシング動作

137 

138Claude Code は起動時に Anthropic のサーバーから設定をフェッチし、アクティブなセッション中は 1 時間ごとに更新をポーリングします。

139 

140**キャッシュされた設定なしの初回起動:**

141 

142* Claude Code は非同期で設定をフェッチします

143* フェッチが失敗した場合、Claude Code は管理設定なしで続行します

144* 設定が読み込まれるまでの短い期間があり、その間は制限が適用されません

145 

146**キャッシュされた設定での後続の起動:**

147 

148* キャッシュされた設定は起動時に直ちに適用されます

149* Claude Code はバックグラウンドで新しい設定をフェッチします

150* キャッシュされた設定はネットワーク障害を通じて保持されます

151 

152Claude Code は設定の更新を自動的に適用します。ただし、OpenTelemetry 構成などの高度な設定は、有効にするために完全な再起動が必要です。

153 

154### 強制的にクローズされた起動を適用する

155 

156デフォルトでは、起動時にリモート設定フェッチが失敗した場合、CLI は管理設定なしで続行します。この短い未適用ウィンドウが許容できない環境では、管理設定で `forceRemoteSettingsRefresh: true` を設定します。

157 

158この設定がアクティブな場合、CLI は起動時にリモート設定が新しくフェッチされるまでブロックされます。フェッチが失敗した場合、CLI はポリシーなしで続行するのではなく、終了します。この設定は自己永続化します。サーバーから配信されると、ローカルにもキャッシュされるため、新しいセッションの最初の成功したフェッチの前でも、後続の起動は同じ動作を適用します。

159 

160これを有効にするには、管理設定構成にキーを追加します。

161 

162```json theme={null}

163{

164 "forceRemoteSettingsRefresh": true

165}

166```

167 

168この設定を有効にする前に、ネットワークポリシーが `api.anthropic.com` への接続を許可していることを確認してください。そのエンドポイントに到達できない場合、CLI は起動時に終了し、ユーザーは Claude Code を開始できません。

169 

170### セキュリティ承認ダイアログ

171 

172セキュリティリスクをもたらす可能性のある特定の設定には、適用される前に明示的なユーザー承認が必要です。

173 

174* **シェルコマンド設定**:シェルコマンドを実行する設定

175* **カスタム環境変数**:既知の安全なホワイトリストにない変数

176* **フック構成**:任意のフック定義

177 

178これらの設定が存在する場合、ユーザーは構成されている内容を説明するセキュリティダイアログを表示します。ユーザーは続行するために承認する必要があります。ユーザーが設定を拒否した場合、Claude Code は終了します。

179 

180<Note>

181 `-p` フラグを使用した非対話モードでは、Claude Code はセキュリティダイアログをスキップし、ユーザー承認なしで設定を適用します。

182</Note>

183 

184## プラットフォームの可用性

185 

186サーバー管理設定は `api.anthropic.com` への直接接続が必要であり、サードパーティのモデルプロバイダーを使用する場合は利用できません。

187 

188* Amazon Bedrock

189* Google Vertex AI

190* Microsoft Foundry

191* `ANTHROPIC_BASE_URL` または [LLM ゲートウェイ](/ja/llm-gateway)を通じたカスタム API エンドポイント

192 

193## 監査ログ

194 

195設定変更の監査ログイベントは、コンプライアンス API または監査ログエクスポートを通じて利用可能です。アクセスについては、Anthropic アカウントチームにお問い合わせください。

196 

197監査イベントには、実行されたアクションのタイプ、アクションを実行したアカウントとデバイス、および前の値と新しい値への参照が含まれます。

198 

199## セキュリティに関する考慮事項

200 

201サーバー管理設定は一元的なポリシー適用を提供しますが、クライアント側の制御として機能します。管理されていないデバイスでは、管理者またはスーパーユーザーアクセス権を持つユーザーは、Claude Code バイナリ、ファイルシステム、またはネットワーク構成を変更できます。

202 

203| シナリオ | 動作 |

204| :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

205| ユーザーがキャッシュされた設定ファイルを編集する | 改ざんされたファイルは起動時に適用されますが、次のサーバーフェッチで正しい設定が復元されます |

206| ユーザーがキャッシュされた設定ファイルを削除する | 初回起動動作が発生します。設定は非同期でフェッチされ、短い未適用ウィンドウがあります |

207| API が利用不可 | キャッシュされた設定が利用可能な場合は適用されます。そうでない場合、管理設定は次の成功したフェッチまで適用されません。`forceRemoteSettingsRefresh: true` の場合、CLI は続行するのではなく終了します |

208| ユーザーが別の組織で認証する | 管理対象組織外のアカウントには設定が配信されません |

209| ユーザーが[サードパーティモデルプロバイダー](#platform-availability)を構成する | サーバー管理設定はバイパスされます。これには `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_MANTLE`、`CLAUDE_CODE_USE_VERTEX`、`CLAUDE_CODE_USE_FOUNDRY`、またはデフォルト以外の `ANTHROPIC_BASE_URL` の設定が含まれます |

210 

211ランタイム構成の変更を検出するには、[`ConfigChange` フック](/ja/hooks#configchange)を使用して、変更をログに記録するか、変更が有効になる前に不正な変更をブロックしてください。

212 

213より強力な適用保証については、MDM ソリューションに登録されているデバイスで[エンドポイント管理設定](/ja/settings#settings-files)を使用してください。

214 

215## 関連項目

216 

217Claude Code 構成を管理するための関連ページ。

218 

219* [Settings](/ja/settings):すべての利用可能な設定を含む完全な構成リファレンス

220* [Endpoint-managed settings](/ja/settings#settings-files):IT によってデバイスに配置される管理設定

221* [Authentication](/ja/authentication):Claude Code へのユーザーアクセスのセットアップ

222* [Security](/ja/security):セキュリティ保護とベストプラクティス

settings.md +914 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code の設定

6 

7> Claude Code をグローバル設定とプロジェクトレベルの設定、および環境変数で構成します。

8 

9Claude Code は、ニーズに合わせて動作を構成するためのさまざまな設定を提供しています。インタラクティブ REPL を使用する際に `/config` コマンドを実行することで Claude Code を構成できます。これにより、ステータス情報を表示し、構成オプションを変更できるタブ付き設定インターフェースが開きます。

10 

11## 構成スコープ

12 

13Claude Code は、**スコープシステム**を使用して、構成がどこに適用され、誰と共有されるかを決定します。スコープを理解することで、個人使用、チーム協力、またはエンタープライズデプロイメント用に Claude Code を構成する方法を決定するのに役立ちます。

14 

15### 利用可能なスコープ

16 

17| スコープ | 場所 | 影響を受けるユーザー | チームと共有? |

18| :---------- | :--------------------------------------------------------- | :------------------ | :-------------- |

19| **Managed** | サーバー管理設定、plist / レジストリ、またはシステムレベルの `managed-settings.json` | マシン上のすべてのユーザー | はい(IT により展開) |

20| **User** | `~/.claude/` ディレクトリ | すべてのプロジェクト全体でのあなた | いいえ |

21| **Project** | リポジトリ内の `.claude/` | このリポジトリのすべてのコラボレーター | はい(git にコミット) |

22| **Local** | `.claude/settings.local.json` | このリポジトリ内のあなたのみ | いいえ(gitignored) |

23 

24### 各スコープを使用する場合

25 

26**Managed スコープ**は以下の用途です:

27 

28* 組織全体で強制する必要があるセキュリティポリシー

29* オーバーライドできないコンプライアンス要件

30* IT/DevOps により展開される標準化された構成

31 

32**User スコープ**は以下の用途に最適です:

33 

34* すべての場所で必要な個人設定(テーマ、エディター設定)

35* すべてのプロジェクト全体で使用するツールとプラグイン

36* API キーと認証(安全に保存)

37 

38**Project スコープ**は以下の用途に最適です:

39 

40* チーム共有設定(権限、hooks、MCP サーバー)

41* チーム全体が持つべきプラグイン

42* コラボレーター全体でのツール標準化

43 

44**Local スコープ**は以下の用途に最適です:

45 

46* 特定のプロジェクトの個人的なオーバーライド

47* チームと共有する前に構成をテストする

48* 他のユーザーには機能しないマシン固有の設定

49 

50### スコープの相互作用

51 

52同じ設定が複数のスコープで構成されている場合、より具体的なスコープが優先されます:

53 

541. **Managed**(最高) - 何によってもオーバーライドできない

552. **コマンドライン引数** - 一時的なセッションオーバーライド

563. **Local** - プロジェクトとユーザー設定をオーバーライド

574. **Project** - ユーザー設定をオーバーライド

585. **User**(最低) - 他に何も設定を指定しない場合に適用

59 

60たとえば、ユーザー設定で権限が許可されているが、プロジェクト設定で拒否されている場合、プロジェクト設定が優先され、権限はブロックされます。

61 

62### スコープを使用する機能

63 

64スコープは多くの Claude Code 機能に適用されます:

65 

66| 機能 | ユーザーの場所 | プロジェクトの場所 | ローカルの場所 |

67| :-------------- | :------------------------ | :---------------------------------- | :---------------------------- |

68| **Settings** | `~/.claude/settings.json` | `.claude/settings.json` | `.claude/settings.local.json` |

69| **Subagents** | `~/.claude/agents/` | `.claude/agents/` | なし |

70| **MCP servers** | `~/.claude.json` | `.mcp.json` | `~/.claude.json`(プロジェクトごと) |

71| **Plugins** | `~/.claude/settings.json` | `.claude/settings.json` | `.claude/settings.local.json` |

72| **CLAUDE.md** | `~/.claude/CLAUDE.md` | `CLAUDE.md` または `.claude/CLAUDE.md` | `CLAUDE.local.md` |

73 

74***

75 

76## 設定ファイル

77 

78`settings.json` ファイルは、階層的な設定を通じて Claude Code を構成するための公式メカニズムです:

79 

80* **ユーザー設定**は `~/.claude/settings.json` で定義され、すべてのプロジェクトに適用されます。

81* **プロジェクト設定**はプロジェクトディレクトリに保存されます:

82 * `.claude/settings.json` ソース管理にチェックインされ、チームと共有される設定用

83 * `.claude/settings.local.json` チェックインされない設定用。個人設定と実験に役立ちます。Claude Code は作成時に `.claude/settings.local.json` を無視するように git を構成します。

84* **Managed 設定**:集中管理が必要な組織向けに、Claude Code は managed 設定の複数の配信メカニズムをサポートしています。すべて同じ JSON 形式を使用し、ユーザー設定またはプロジェクト設定でオーバーライドできません:

85 

86 * **サーバー管理設定**:Anthropic のサーバーから Claude.ai 管理コンソール経由で配信されます。[サーバー管理設定](/ja/server-managed-settings)を参照してください。

87 * **MDM/OS レベルのポリシー**:macOS と Windows のネイティブデバイス管理を通じて配信されます:

88 * macOS:`com.anthropic.claudecode` managed preferences ドメイン。plist のトップレベルキーは `managed-settings.json` をミラーリングし、ネストされた設定は辞書として、配列は plist 配列として機能します。Jamf、Iru(Kandji)、または同様の MDM ツールの構成プロファイルを通じて展開します。

89 * Windows:`HKLM\SOFTWARE\Policies\ClaudeCode` レジストリキーと JSON を含む `Settings` 値(REG\_SZ または REG\_EXPAND\_SZ)。グループポリシーまたは Intune を通じて展開します

90 * Windows(ユーザーレベル):`HKCU\SOFTWARE\Policies\ClaudeCode`(最低ポリシー優先度、管理者レベルのソースが存在しない場合のみ使用)

91 * **ファイルベース**:`managed-settings.json` と `managed-mcp.json` をシステムディレクトリに展開:

92 

93 * macOS:`/Library/Application Support/ClaudeCode/`

94 * Linux と WSL:`/etc/claude-code/`

95 * Windows:`C:\Program Files\ClaudeCode\`

96 

97 <Warning>

98 レガシー Windows パス `C:\ProgramData\ClaudeCode\managed-settings.json` は v2.1.75 以降サポートされなくなりました。そのロケーションに設定を展開した管理者は、ファイルを `C:\Program Files\ClaudeCode\managed-settings.json` に移行する必要があります。

99 </Warning>

100 

101 ファイルベースの managed 設定は、`managed-settings.json` と同じシステムディレクトリ内の `managed-settings.d/` ドロップインディレクトリもサポートしています。これにより、別々のチームが単一ファイルの編集を調整することなく、独立したポリシーフラグメントを展開できます。

102 

103 systemd 規則に従い、`managed-settings.json` が最初にベースとしてマージされ、その後、ドロップインディレクトリ内のすべての `*.json` ファイルがアルファベット順にソートされてマージされます。スカラー値の場合、後のファイルが前のファイルをオーバーライドします。配列は連結され、重複排除されます。オブジェクトはディープマージされます。`.` で始まる隠しファイルは無視されます。

104 

105 マージ順序を制御するには、数値プレフィックスを使用します。たとえば、`10-telemetry.json` と `20-security.json` です。

106 

107 [managed 設定](/ja/permissions#managed-only-settings)と [Managed MCP 構成](/ja/mcp#managed-mcp-configuration)の詳細を参照してください。

108 

109 このリポジトリには、Jamf、Iru(Kandji)、Intune、およびグループポリシー用のスターターデプロイメントテンプレートが含まれています。これらを出発点として使用し、ニーズに合わせて調整してください。

110 

111 <Note>

112 Managed デプロイメントは、`strictKnownMarketplaces` を使用して**プラグインマーケットプレイスの追加**を制限することもできます。詳細については、[Managed マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を参照してください。

113 </Note>

114* **その他の構成**は `~/.claude.json` に保存されます。このファイルには、OAuth セッション、[MCP サーバー](/ja/mcp)ユーザーおよびローカルスコープの構成、プロジェクトごとの状態(許可されたツール、信頼設定)、およびさまざまなキャッシュが含まれます。プロジェクトスコープの MCP サーバーは `.mcp.json` に別途保存されます。

115 

116<Note>

117 Claude Code は構成ファイルのタイムスタンプ付きバックアップを自動的に作成し、データ損失を防ぐために最新の 5 つのバックアップを保持します。

118</Note>

119 

120```JSON Example settings.json theme={null}

121{

122 "$schema": "https://json.schemastore.org/claude-code-settings.json",

123 "permissions": {

124 "allow": [

125 "Bash(npm run lint)",

126 "Bash(npm run test *)",

127 "Read(~/.zshrc)"

128 ],

129 "deny": [

130 "Bash(curl *)",

131 "Read(./.env)",

132 "Read(./.env.*)",

133 "Read(./secrets/**)"

134 ]

135 },

136 "env": {

137 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

138 "OTEL_METRICS_EXPORTER": "otlp"

139 },

140 "companyAnnouncements": [

141 "Welcome to Acme Corp! Review our code guidelines at docs.acme.com",

142 "Reminder: Code reviews required for all PRs",

143 "New security policy in effect"

144 ]

145}

146```

147 

148上記の例の `$schema` 行は、Claude Code 設定の[公式 JSON スキーマ](https://json.schemastore.org/claude-code-settings.json)を指しています。これを `settings.json` に追加すると、VS Code、Cursor、および JSON スキーマ検証をサポートする他のエディターでオートコンプリートとインライン検証が有効になります。

149 

150公開されたスキーマは定期的に更新され、最新の CLI リリースで追加された設定を含まない場合があるため、最近ドキュメント化されたフィールドの検証警告は、必ずしも構成が無効であることを意味しません。

151 

152### 利用可能な設定

153 

154`settings.json` は多くのオプションをサポートしています:

155 

156| キー | 説明 | 例 |

157| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------ |

158| `agent` | メインスレッドを名前付き subagent として実行します。その subagent のシステムプロンプト、ツール制限、およびモデルを適用します。[subagents を明示的に呼び出す](/ja/sub-agents#invoke-subagents-explicitly)を参照してください | `"code-reviewer"` |

159| `allowedChannelPlugins` | (Managed 設定のみ)メッセージをプッシュできるチャネルプラグインのホワイトリスト。設定されている場合、デフォルトの Anthropic ホワイトリストを置き換えます。未定義 = デフォルトにフォールバック、空配列 = すべてのチャネルプラグインをブロック。`channelsEnabled: true` が必要です。[チャネルプラグインが実行できるものを制限](/ja/channels#restrict-which-channel-plugins-can-run)を参照してください | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

160| `allowedHttpHookUrls` | HTTP hooks がターゲットにできる URL パターンのホワイトリスト。`*` をワイルドカードとしてサポートします。設定されている場合、一致しない URL を持つ hooks はブロックされます。未定義 = 制限なし、空配列 = すべての HTTP hooks をブロック。配列はすべての設定ソース全体でマージされます。[Hook 構成](#hook-configuration)を参照してください | `["https://hooks.example.com/*"]` |

161| `allowedMcpServers` | managed-settings.json で設定されている場合、ユーザーが構成できる MCP サーバーのホワイトリスト。未定義 = 制限なし、空配列 = ロックダウン。すべてのスコープに適用されます。拒否リストが優先されます。[Managed MCP 構成](/ja/mcp#managed-mcp-configuration)を参照してください | `[{ "serverName": "github" }]` |

162| `allowManagedHooksOnly` | (Managed 設定のみ)managed hooks、SDK hooks、および managed 設定 `enabledPlugins` で強制的に有効にされたプラグインからの hooks のみが読み込まれます。ユーザー、プロジェクト、およびその他すべてのプラグイン hooks はブロックされます。[Hook 構成](#hook-configuration)を参照してください | `true` |

163| `allowManagedMcpServersOnly` | (Managed 設定のみ)managed 設定からの `allowedMcpServers` のみが尊重されます。`deniedMcpServers` はすべてのソースからマージされます。ユーザーは引き続き MCP サーバーを追加できますが、管理者定義のホワイトリストのみが適用されます。[Managed MCP 構成](/ja/mcp#managed-mcp-configuration)を参照してください | `true` |

164| `allowManagedPermissionRulesOnly` | (Managed 設定のみ)ユーザーおよびプロジェクト設定が `allow`、`ask`、または `deny` 権限ルールを定義するのを防止します。managed 設定のルールのみが適用されます。[Managed のみの設定](/ja/permissions#managed-only-settings)を参照してください | `true` |

165| `alwaysThinkingEnabled` | すべてのセッションに対してデフォルトで[拡張思考](/ja/model-config#extended-thinking)を有効にします。通常は直接編集するのではなく `/config` コマンドを通じて構成されます | `true` |

166| `apiKeyHelper` | `/bin/sh` で実行される認証値を生成するカスタムスクリプト。この値は、モデルリクエストの `X-Api-Key` および `Authorization: Bearer` ヘッダーとして送信されます | `/bin/generate_temp_api_key.sh` |

167| `attribution` | git コミットとプルリクエストの属性をカスタマイズします。[属性設定](#attribution-settings)を参照してください | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

168| `autoMemoryDirectory` | [自動メモリ](/ja/memory#storage-location)ストレージ用のカスタムディレクトリ。絶対パスまたは `~/` プレフィックス付きパスを受け入れます。ポリシーおよびユーザー設定から、および `--settings` フラグから受け入れられます。クローンされたリポジトリがメモリ書き込みを機密の場所にリダイレクトするのを防ぐため、プロジェクトまたはローカル設定からは受け入れられません | `"~/my-memory-dir"` |

169| `autoMode` | [自動モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)分類器がブロックおよび許可するものをカスタマイズします。`environment`、`allow`、および `soft_deny` 配列の散文ルールを含みます。リテラル文字列 `"$defaults"` を配列に含めて、その位置で組み込みルールを継承します。[自動モードを構成](/ja/auto-mode-config)を参照してください。共有プロジェクト設定から読み込まれません | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

170| `autoScrollEnabled` | [フルスクリーンレンダリング](/ja/fullscreen)で、新しい出力を会話の下部に追従します。デフォルト:`true`。`/config` に**自動スクロール**として表示されます。権限プロンプトはこれがオフの場合でもビューにスクロールします | `false` |

171| `autoUpdatesChannel` | 更新に従うリリースチャネル。約 1 週間古いバージョンで、大きな回帰のあるバージョンをスキップする `"stable"` を使用するか、最新リリースの `"latest"`(デフォルト)を使用します | `"stable"` |

172| `availableModels` | `/model`、`--model`、または `ANTHROPIC_MODEL` を通じてユーザーが選択できるモデルを制限します。デフォルトオプションには影響しません。[モデル選択を制限](/ja/model-config#restrict-model-selection)を参照してください | `["sonnet", "haiku"]` |

173| `awaySummaryEnabled` | 数分間ターミナルから離れた後に戻ったときに、1 行のセッション要約を表示します。`false` に設定するか、`/config` でセッション要約をオフにして無効にします。[`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/ja/env-vars)と同じです | `true` |

174| `awsAuthRefresh` | `.aws` ディレクトリを変更するカスタムスクリプト([高度な認証情報構成](/ja/amazon-bedrock#advanced-credential-configuration)を参照) | `aws sso login --profile myprofile` |

175| `awsCredentialExport` | AWS 認証情報を含む JSON を出力するカスタムスクリプト([高度な認証情報構成](/ja/amazon-bedrock#advanced-credential-configuration)を参照) | `/bin/generate_aws_grant.sh` |

176| `blockedMarketplaces` | (Managed 設定のみ)マーケットプレイスソースのブロックリスト。マーケットプレイス追加時およびプラグインのインストール、更新、リフレッシュ、自動更新時に適用されるため、ポリシーが設定される前に追加されたマーケットプレイスは使用できません。ブロックされたソースはダウンロード前にチェックされるため、ファイルシステムに触れることはありません。[Managed マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を参照してください | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

177| `channelsEnabled` | (Managed 設定のみ)Team および Enterprise ユーザーに対して[チャネル](/ja/channels)を許可します。未設定または `false` は、ユーザーが `--channels` に渡すものに関係なく、チャネルメッセージ配信をブロックします | `true` |

178| `cleanupPeriodDays` | この期間より長く非アクティブなセッションは起動時に削除されます(デフォルト:30 日、最小 1)。`0` に設定するとバリデーションエラーで拒否されます。また、起動時に[孤立した subagent worktrees](/ja/worktrees#clean-up-worktrees)の自動削除の年齢カットオフも制御します。トランスクリプト書き込みを完全に無効にするには、[`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ja/env-vars)環境変数を設定するか、非インタラクティブモード(`-p`)で `--no-session-persistence` フラグまたは `persistSession: false` SDK オプションを使用します。 | `20` |

179| `companyAnnouncements` | 起動時にユーザーに表示するアナウンス。複数のアナウンスが提供される場合、ランダムにサイクルされます。 | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |

180| `defaultShell` | 入力ボックス `!` コマンドのデフォルトシェル。`"bash"`(デフォルト)または `"powershell"` を受け入れます。`"powershell"` を設定すると、インタラクティブ `!` コマンドが Windows 上の PowerShell を通じてルーティングされます。`CLAUDE_CODE_USE_POWERSHELL_TOOL=1` が必要です。[PowerShell ツール](/ja/tools-reference#powershell-tool)を参照してください | `"powershell"` |

181| `deniedMcpServers` | managed-settings.json で設定されている場合、明示的にブロックされた MCP サーバーの拒否リスト。managed サーバーを含むすべてのスコープに適用されます。拒否リストがホワイトリストよりも優先されます。[Managed MCP 構成](/ja/mcp#managed-mcp-configuration)を参照してください | `[{ "serverName": "filesystem" }]` |

182| `disableAllHooks` | すべての [hooks](/ja/hooks) とカスタム [ステータスライン](/ja/statusline)を無効にします | `true` |

183| `disableAutoMode` | [自動モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)の有効化を防ぐために `"disable"` に設定します。`Shift+Tab` サイクルから `auto` を削除し、起動時に `--permission-mode auto` を拒否します。[managed 設定](/ja/permissions#managed-settings)で最も役立ちます。ユーザーはこれをオーバーライドできません | `"disable"` |

184| `disableDeepLinkRegistration` | Claude Code が起動時にオペレーティングシステムで `claude-cli://` プロトコルハンドラーを登録するのを防ぐために `"disable"` に設定します。[ディープリンク](/ja/deep-links)を使用すると、外部ツールは事前入力されたプロンプトで Claude Code セッションを開くことができます。プロトコルハンドラー登録が制限されているか、別途管理されている環境で役立ちます | `"disable"` |

185| `disabledMcpjsonServers` | `.mcp.json` ファイルから拒否する特定の MCP サーバーのリスト | `["filesystem"]` |

186| `disableSkillShellExecution` | [skills](/ja/skills) およびユーザー、プロジェクト、プラグイン、または追加ディレクトリソースからのカスタムコマンド内の `` !`...` `` および ` ```! ` ブロックのインラインシェル実行を無効にします。コマンドは実行される代わりに `[shell command execution disabled by policy]` に置き換えられます。バンドルされた skills および managed skills は影響を受けません。[managed 設定](/ja/permissions#managed-settings)で最も役立ちます。ユーザーはこれをオーバーライドできません | `true` |

187| `editorMode` | 入力プロンプトのキーバインディングモード:`"normal"` または `"vim"`。デフォルト:`"normal"`。`/config` に**エディターモード**として表示されます | `"vim"` |

188| `effortLevel` | [努力レベル](/ja/model-config#adjust-effort-level)をセッション全体で永続化します。`"low"`、`"medium"`、`"high"`、または `"xhigh"` を受け入れます。これらの値のいずれかで `/effort` を実行すると自動的に書き込まれます。[努力レベルを調整](/ja/model-config#adjust-effort-level)でサポートされているモデルを参照してください | `"xhigh"` |

189| `enableAllProjectMcpServers` | プロジェクト `.mcp.json` ファイルで定義されたすべての MCP サーバーを自動的に承認します | `true` |

190| `enabledMcpjsonServers` | `.mcp.json` ファイルから承認する特定の MCP サーバーのリスト | `["memory", "github"]` |

191| `env` | すべてのセッションに適用される環境変数 | `{"FOO": "bar"}` |

192| `fastModePerSessionOptIn` | `true` の場合、高速モードはセッション全体で永続化されません。各セッションは高速モードがオフで開始され、ユーザーが `/fast` で有効にする必要があります。ユーザーの高速モード設定は引き続き保存されます。[セッションごとのオプトインを要求](/ja/fast-mode#require-per-session-opt-in)を参照してください | `true` |

193| `feedbackSurveyRate` | [セッション品質調査](/ja/data-usage#session-quality-surveys)が適格な場合に表示される確率(0~1)。完全に抑制するには `0` に設定します。Bedrock、Vertex、または Foundry を使用する場合に役立ちます。デフォルトのサンプルレートは適用されません | `0.05` |

194| `fileSuggestion` | `@` ファイルオートコンプリート用のカスタムスクリプトを構成します。[ファイル提案設定](#file-suggestion-settings)を参照してください | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

195| `forceLoginMethod` | `claudeai` を使用して Claude.ai アカウントへのログインを制限するか、`console` を使用して Claude Console(API 使用量請求)アカウントへのログインを制限します | `claudeai` |

196| `forceLoginOrgUUID` | ログインが特定の組織に属することを要求します。単一の UUID 文字列を受け入れます。これはログイン中にその組織を自動的に事前選択するか、リストされた組織のいずれかが受け入れられる UUID の配列を受け入れます。事前選択なし。managed 設定で設定されている場合、認証されたアカウントがリストされた組織に属していない場合、ログインは失敗します。空配列は失敗して閉じられ、ログインを設定ミスメッセージでブロックします | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` または `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

197| `forceRemoteSettingsRefresh` | (Managed 設定のみ)リモート managed 設定がサーバーから新しく取得されるまで CLI スタートアップをブロックします。フェッチが失敗した場合、キャッシュされた設定または設定なしで続行するのではなく、CLI は終了します。設定されていない場合、スタートアップはリモート設定を待たずに続行します。[fail-closed 強制](/ja/server-managed-settings#enforce-fail-closed-startup)を参照してください | `true` |

198| `hooks` | ライフサイクルイベントで実行するカスタムコマンドを構成します。形式については [hooks ドキュメント](/ja/hooks)を参照してください | [hooks](/ja/hooks)を参照 |

199| `httpHookAllowedEnvVars` | HTTP hooks がヘッダーに補間できる環境変数名のホワイトリスト。設定されている場合、各 hook の有効な `allowedEnvVars` はこのリストとの交差です。未定義 = 制限なし。配列はすべての設定ソース全体でマージされます。[Hook 構成](#hook-configuration)を参照してください | `["MY_TOKEN", "HOOK_SECRET"]` |

200| `includeCoAuthoredBy` | **非推奨**:代わりに `attribution` を使用してください。git コミットとプルリクエストに `co-authored-by Claude` バイラインを含めるかどうか(デフォルト:`true`) | `false` |

201| `includeGitInstructions` | Claude のシステムプロンプトに組み込みコミットおよび PR ワークフロー命令と git ステータススナップショットを含めます(デフォルト:`true`)。たとえば、独自の git ワークフロースキルを使用する場合は、これらの命令を削除するために `false` に設定します。`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 環境変数が設定されている場合、この設定よりも優先されます | `false` |

202| `language` | Claude の優先応答言語を構成します(例:`"japanese"`、`"spanish"`、`"french"`)。Claude はデフォルトでこの言語で応答します。また、[音声ディクテーション](/ja/voice-dictation#change-the-dictation-language)言語も設定します | `"japanese"` |

203| `minimumVersion` | 背景自動更新と `claude update` が特定のバージョン以下にインストールするのを防止するフロア。`"latest"` チャネルから `"stable"` に `/config` を通じて切り替えると、現在のバージョンに留まるか、ダウングレードを許可するかを求めるプロンプトが表示されます。留まることを選択すると、この値が設定されます。また、[managed 設定](/ja/permissions#managed-settings)で組織全体の最小値をピンするのに役立ちます | `"2.1.100"` |

204| `model` | Claude Code に使用するデフォルトモデルをオーバーライドします | `"claude-sonnet-4-6"` |

205| `modelOverrides` | Anthropic モデル ID を Bedrock 推論プロファイル ARN などのプロバイダー固有のモデル ID にマップします。各モデルピッカーエントリは、プロバイダー API を呼び出すときにマップされた値を使用します。[バージョンごとにモデル ID をオーバーライド](/ja/model-config#override-model-ids-per-version)を参照してください | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

206| `otelHeadersHelper` | 動的 OpenTelemetry ヘッダーを生成するスクリプト。起動時および定期的に実行されます([動的ヘッダー](/ja/monitoring-usage#dynamic-headers)を参照) | `/bin/generate_otel_headers.sh` |

207| `outputStyle` | システムプロンプトを調整するための出力スタイルを構成します。[出力スタイルドキュメント](/ja/output-styles)を参照してください | `"Explanatory"` |

208| `permissions` | 権限の構造については、以下の表を参照してください。 | |

209| `plansDirectory` | プランファイルが保存される場所をカスタマイズします。パスはプロジェクトルートに相対的です。デフォルト:`~/.claude/plans` | `"./plans"` |

210| `pluginTrustMessage` | (Managed 設定のみ)インストール前に表示されるプラグイン信頼警告に追加されるカスタムメッセージ。これを使用して、組織固有のコンテキストを追加します。たとえば、内部マーケットプレイスからのプラグインが検証されていることを確認します。 | `"All plugins from our marketplace are approved by IT"` |

211| `preferredNotifChannel` | タスク完了および権限プロンプト通知の方法:`"auto"`、`"terminal_bell"`、`"iterm2"`、`"iterm2_with_bell"`、`"kitty"`、`"ghostty"`、または `"notifications_disabled"`。デフォルト:`"auto"`。iTerm2、Ghostty、Kitty ではデスクトップ通知を送信し、他のターミナルでは何もしません。任意のターミナルでベル文字を鳴らすには `"terminal_bell"` を設定します。`/config` に**通知**として表示されます。[ターミナルベルまたは通知を取得](/ja/terminal-config#get-a-terminal-bell-or-notification)を参照してください | `"terminal_bell"` |

212| `prefersReducedMotion` | アクセシビリティのために UI アニメーション(スピナー、シマー、フラッシュエフェクト)を削減または無効にします | `true` |

213| `prUrlTemplate` | フッターおよびツール結果サマリーに表示される PR バッジの URL テンプレート。`gh` レポートされた PR URL から `{host}`、`{owner}`、`{repo}`、`{number}`、および `{url}` を置き換えます。PR リンクを `github.com` の代わりに内部コードレビューツールにポイントするために使用します。Claude の散文の `#123` オートリンクには影響しません | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |

214| `respectGitignore` | `@` ファイルピッカーが `.gitignore` パターンを尊重するかどうかを制御します。`true`(デフォルト)の場合、`.gitignore` パターンに一致するファイルは提案から除外されます | `false` |

215| `showClearContextOnPlanAccept` | プラン受け入れ画面に「コンテキストをクリア」オプションを表示します。デフォルトは `false` です。`true` に設定してオプションを復元します | `true` |

216| `showThinkingSummaries` | [拡張思考](/ja/model-config#extended-thinking)サマリーをインタラクティブセッションに表示します。未設定または `false`(インタラクティブモードのデフォルト)の場合、思考ブロックは API によって編集され、折りたたまれたスタブとして表示されます。編集は表示内容のみを変更し、モデルが生成するものは変更しません:思考支出を削減するには、[予算を低下させるか思考を無効にする](/ja/model-config#extended-thinking)代わりに。非インタラクティブモード(`-p`)と SDK 呼び出し元は、この設定に関係なく常にサマリーを受け取ります | `true` |

217| `showTurnDuration` | レスポンス後のターン期間メッセージを表示します(例:「Cooked for 1m 6s」)。デフォルト:`true`。`/config` に**ターン期間を表示**として表示されます | `false` |

218| `skipWebFetchPreflight` | [WebFetch ドメイン安全チェック](/ja/data-usage#webfetch-domain-safety-check)をスキップします。このチェックは、フェッチ前に各リクエストされたホスト名を `api.anthropic.com` に送信します。Bedrock、Vertex AI、または制限的な出力を持つ Foundry デプロイメントなど、Anthropic へのトラフィックをブロックする環境で `true` に設定します。スキップされた場合、WebFetch はブロックリストを参照せずに任意の URL を試みます | `true` |

219| `spinnerTipsEnabled` | Claude が作業中にスピナーにヒントを表示します。ヒントを無効にするには `false` に設定します(デフォルト:`true`) | `false` |

220| `spinnerTipsOverride` | スピナーヒントをカスタム文字列でオーバーライドします。`tips`:ヒント文字列の配列。`excludeDefault`:`true` の場合、カスタムヒントのみを表示します。`false` または不在の場合、カスタムヒントは組み込みヒントとマージされます | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |

221| `spinnerVerbs` | スピナーとターン期間メッセージに表示されるアクション動詞をカスタマイズします。`mode` を `"replace"` に設定して動詞のみを使用するか、`"append"` に設定してデフォルトに追加します | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |

222| `sshConfigs` | [Desktop](/ja/desktop#pre-configure-ssh-connections-for-your-team)環境ドロップダウンに表示する SSH 接続。各エントリには `id`、`name`、および `sshHost` が必要です。`sshPort`、`sshIdentityFile`、および `startDirectory` はオプションです。managed 設定で設定されている場合、接続はユーザーに対して読み取り専用です。managed およびユーザー設定からのみ読み込まれます | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

223| `statusLine` | コンテキストを表示するカスタムステータスラインを構成します。[`statusLine` ドキュメント](/ja/statusline)を参照してください | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

224| `strictKnownMarketplaces` | (Managed 設定のみ)プラグインマーケットプレイスソースのホワイトリスト。未定義 = 制限なし、空配列 = ロックダウン。マーケットプレイス追加時およびプラグインのインストール、更新、リフレッシュ、自動更新時に適用されるため、ポリシーが設定される前に追加されたマーケットプレイスは使用できません。[Managed マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を参照してください | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

225| `teammateMode` | [エージェントチーム](/ja/agent-teams)チームメイトの表示方法:`auto`(tmux または iTerm2 で分割ペインを選択、それ以外の場合はインプロセス)、`in-process`、または `tmux`。[表示モードを選択](/ja/agent-teams#choose-a-display-mode)を参照してください | `"in-process"` |

226| `terminalProgressBarEnabled` | サポートされているターミナルでターミナル進行状況バーを表示します:ConEmu、Ghostty 1.2.0 以降、および iTerm2 3.6.6 以降。デフォルト:`true`。`/config` に**ターミナル進行状況バー**として表示されます | `false` |

227| `tui` | ターミナル UI レンダラー。フリッカーのない[alt-screen レンダラー](/ja/fullscreen)を備えた仮想スクロールバック用に `"fullscreen"` を使用します。クラシックメインスクリーンレンダラー用に `"default"` を使用します。`/tui` で設定します | `"fullscreen"` |

228| `useAutoModeDuringPlan` | プラン モードが自動モードが利用可能な場合に自動モードセマンティクスを使用するかどうか。デフォルト:`true`。共有プロジェクト設定から読み込まれません。`/config` に「プラン中に自動モードを使用」として表示されます | `false` |

229| `viewMode` | 起動時のデフォルトトランスクリプトビューモード:`"default"`、`"verbose"`、または `"focus"`。設定されている場合、スティッキー `/focus` 選択をオーバーライドします | `"verbose"` |

230| `voice` | [音声ディクテーション](/ja/voice-dictation)設定:`enabled` はディクテーションをオンにし、`mode` は `"hold"` または `"tap"` を選択し、`autoSubmit` はホールドモードでキーリリース時にプロンプトを送信します。`/voice` を実行すると自動的に書き込まれます。Claude.ai アカウントが必要です | `{ "enabled": true, "mode": "tap" }` |

231| `voiceEnabled` | `voice.enabled` のレガシーエイリアス。`voice` オブジェクトを優先します | `true` |

232| `wslInheritsWindowsSettings` | (Windows managed 設定のみ)`true` の場合、WSL 上の Claude Code は `/etc/claude-code` に加えて Windows ポリシーチェーンから managed 設定を読み込み、Windows ソースが優先されます。HKLM レジストリキーまたは `C:\Program Files\ClaudeCode\managed-settings.json` で設定されている場合のみ尊重されます。どちらも Windows 管理者が書き込む必要があります。HKCU ポリシーが WSL でも適用されるようにするには、フラグを HKCU 自体にも設定する必要があります。ネイティブ Windows には影響しません | `true` |

233 

234### グローバル構成設定

235 

236これらの設定は `settings.json` ではなく `~/.claude.json` に保存されます。これらを `settings.json` に追加すると、スキーマ検証エラーがトリガーされます。

237 

238<Note>

239 v2.1.119 より前のバージョンでは、`autoScrollEnabled`、`editorMode`、`showTurnDuration`、`teammateMode`、および `terminalProgressBarEnabled` も `settings.json` ではなくここに保存されます。

240</Note>

241 

242| キー | 説明 | 例 |

243| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

244| `autoConnectIde` | Claude Code が外部ターミナルから起動するときに、実行中の IDE に自動的に接続します。デフォルト:`false`。VS Code または JetBrains ターミナルの外で実行する場合、`/config` に\*\*IDE に自動接続(外部ターミナル)\*\*として表示されます | `true` |

245| `autoInstallIdeExtension` | VS Code ターミナルから実行するときに Claude Code IDE 拡張機能を自動的にインストールします。デフォルト:`true`。VS Code または JetBrains ターミナル内で実行する場合、`/config` に**IDE 拡張機能を自動インストール**として表示されます。[`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/ja/env-vars)環境変数を設定することもできます | `false` |

246| `externalEditorContext` | `Ctrl+G` で外部エディターを開くときに Claude の前の応答を `#` コメント付きコンテキストとして先頭に追加します。デフォルト:`false`。`/config` に**外部エディターに最後の応答を表示**として表示されます | `true` |

247 

248### Worktree 設定

249 

250`--worktree` が git worktrees を作成および管理する方法を構成します。これらの設定を使用して、大規模なモノレポのディスク使用量とスタートアップ時間を削減します。

251 

252| キー | 説明 | 例 |

253| :---------------------------- | :---------------------------------------------------------------------------------------------------- | :------------------------------------ |

254| `worktree.symlinkDirectories` | メインリポジトリから各 worktree にシンボリックリンクするディレクトリ。ディスク上の大規模なディレクトリの重複を避けるため。デフォルトではディレクトリはシンボリックリンクされません | `["node_modules", ".cache"]` |

255| `worktree.sparsePaths` | git sparse-checkout(cone モード)を通じて各 worktree でチェックアウトするディレクトリ。リストされたパスのみがディスクに書き込まれます。大規模なモノレポではより高速です | `["packages/my-app", "shared/utils"]` |

256 

257gitignored ファイル(`.env` など)を新しい worktrees にコピーするには、設定の代わりにプロジェクトルートの [`.worktreeinclude` ファイル](/ja/worktrees#copy-gitignored-files-into-worktrees)を使用します。

258 

259### 権限設定

260 

261| キー | 説明 | 例 |

262| :---------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |

263| `allow` | ツール使用を許可する権限ルールの配列。パターンマッチングの詳細については、以下の[権限ルール構文](#permission-rule-syntax)を参照してください | `[ "Bash(git diff *)" ]` |

264| `ask` | ツール使用時に確認を求める権限ルールの配列。[権限ルール構文](#permission-rule-syntax)を参照してください | `[ "Bash(git push *)" ]` |

265| `deny` | ツール使用を拒否する権限ルールの配列。これを使用して、機密ファイルを Claude Code アクセスから除外します。[権限ルール構文](#permission-rule-syntax)と [Bash 権限制限](/ja/permissions#tool-specific-permission-rules)を参照してください | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |

266| `additionalDirectories` | Claude がアクセスできる追加の[作業ディレクトリ](/ja/permissions#working-directories) | `[ "../docs/" ]` |

267| `defaultMode` | Claude Code を開くときのデフォルト[権限モード](/ja/permission-modes)。有効な値:`default`、`acceptEdits`、`plan`、`auto`、`dontAsk`、`bypassPermissions`。`--permission-mode` CLI フラグは単一セッションのこの設定をオーバーライドします | `"acceptEdits"` |

268| `disableBypassPermissionsMode` | `"disable"` に設定して `bypassPermissions` モードの有効化を防止します。これにより `--dangerously-skip-permissions` フラグが無効になります。通常は [managed 設定](/ja/permissions#managed-settings)に配置されます。ユーザーはこれをオーバーライドできません | `"disable"` |

269| `skipDangerousModePermissionPrompt` | `--dangerously-skip-permissions` または `defaultMode: "bypassPermissions"` を通じてバイパス権限モードに入る前に表示される確認プロンプトをスキップします。信頼されていないリポジトリがプロンプトを自動バイパスするのを防ぐため、プロジェクト設定(`.claude/settings.json`)で設定されている場合は無視されます | `true` |

270 

271### 権限ルール構文

272 

273権限ルールは `Tool` または `Tool(specifier)` の形式に従います。ルールは順序で評価されます:最初に拒否ルール、次に ask、次に allow。最初に一致するルールが優先されます。

274 

275クイック例:

276 

277| ルール | 効果 |

278| :----------------------------- | :------------------------- |

279| `Bash` | すべての Bash コマンドに一致 |

280| `Bash(npm run *)` | `npm run` で始まるコマンドに一致 |

281| `Read(./.env)` | `.env` ファイルの読み取りに一致 |

282| `WebFetch(domain:example.com)` | example.com へのフェッチリクエストに一致 |

283 

284ワイルドカード動作、Read、Edit、WebFetch、MCP、および Agent ルール用のツール固有パターン、および Bash パターンのセキュリティ制限を含む完全なルール構文リファレンスについては、[権限ルール構文](/ja/permissions#permission-rule-syntax)を参照してください。

285 

286### サンドボックス設定

287 

288高度なサンドボックス動作を構成します。サンドボックスは bash コマンドをファイルシステムとネットワークから分離します。詳細については [サンドボックス](/ja/sandboxing)を参照してください。

289 

290| キー | 説明 | 例 |

291| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------- |

292| `enabled` | bash サンドボックスを有効にします(macOS、Linux、WSL2)。デフォルト:false | `true` |

293| `failIfUnavailable` | `sandbox.enabled` が true だがサンドボックスが起動できない場合(依存関係の欠落、サポートされていないプラットフォーム)、起動時にエラーで終了します。false(デフォルト)の場合、警告が表示され、コマンドはサンドボックス化されずに実行されます。managed 設定デプロイメント用で、サンドボックスをハードゲートとして必要とします | `true` |

294| `autoAllowBashIfSandboxed` | サンドボックス化されている場合、bash コマンドを自動承認します。デフォルト:true | `true` |

295| `excludedCommands` | サンドボックスの外で実行する必要があるコマンド | `["docker *"]` |

296| `allowUnsandboxedCommands` | `dangerouslyDisableSandbox` パラメータを通じてコマンドをサンドボックスの外で実行することを許可します。`false` に設定すると、`dangerouslyDisableSandbox` エスケープハッチが完全に無効になり、すべてのコマンドはサンドボックス化されるか `excludedCommands` に含まれる必要があります。厳密なサンドボックスを必要とするエンタープライズポリシーに役立ちます。デフォルト:true | `false` |

297| `filesystem.allowWrite` | サンドボックス化されたコマンドが書き込みできる追加パス。配列はすべての設定スコープ全体でマージされます:ユーザー、プロジェクト、および managed パスが結合され、置き換えられません。`Edit(...)` allow 権限ルールからのパスともマージされます。以下の[パスプレフィックス](#sandbox-path-prefixes)を参照してください。 | `["/tmp/build", "~/.kube"]` |

298| `filesystem.denyWrite` | サンドボックス化されたコマンドが書き込みできないパス。配列はすべての設定スコープ全体でマージされます。`Edit(...)` deny 権限ルールからのパスともマージされます。 | `["/etc", "/usr/local/bin"]` |

299| `filesystem.denyRead` | サンドボックス化されたコマンドが読み取りできないパス。配列はすべての設定スコープ全体でマージされます。`Read(...)` deny 権限ルールからのパスともマージされます。 | `["~/.aws/credentials"]` |

300| `filesystem.allowRead` | `denyRead` 領域内での読み取りを再度許可するパス。`denyRead` よりも優先されます。配列はすべての設定スコープ全体でマージされます。これを使用してワークスペースのみの読み取りアクセスパターンを作成します。 | `["."]` |

301| `filesystem.allowManagedReadPathsOnly` | (Managed 設定のみ)managed 設定からの `filesystem.allowRead` パスのみが尊重されます。`denyRead` はすべてのソースからマージされます。デフォルト:false | `true` |

302| `network.allowUnixSockets` | (macOS のみ)サンドボックスでアクセス可能な Unix ソケットパス。Linux と WSL2 では無視されます。seccomp フィルターは `socket(AF_UNIX, ...)` 呼び出しをブロックできないため、代わりに `allowAllUnixSockets` を使用します。 | `["~/.ssh/agent-socket"]` |

303| `network.allowAllUnixSockets` | サンドボックス内のすべての Unix ソケット接続を許可します。Linux と WSL2 ではこれが Unix ソケットを許可する唯一の方法です。seccomp フィルターをスキップするため、`socket(AF_UNIX, ...)` 呼び出しをブロックします。デフォルト:false | `true` |

304| `network.allowLocalBinding` | localhost ポートへのバインドを許可します(macOS のみ)。デフォルト:false | `true` |

305| `network.allowMachLookup` | サンドボックスが検索できる追加の XPC/Mach サービス名(macOS のみ)。プレフィックスマッチング用に単一の末尾 `*` をサポートします。iOS Simulator または Playwright などの XPC を通じて通信するツールに必要です。 | `["com.apple.coresimulator.*"]` |

306| `network.allowedDomains` | アウトバウンドネットワークトラフィックを許可するドメインの配列。ワイルドカード(例:`*.example.com`)をサポートします。 | `["github.com", "*.npmjs.org"]` |

307| `network.deniedDomains` | アウトバウンドネットワークトラフィックをブロックするドメインの配列。`allowedDomains` と同じワイルドカード構文をサポートします。両方が一致する場合、拒否リストが優先されます。すべての設定ソースからマージされます。`allowManagedDomainsOnly` に関係なく | `["sensitive.cloud.example.com"]` |

308| `network.allowManagedDomainsOnly` | (Managed 設定のみ)managed 設定からの `allowedDomains` および `WebFetch(domain:...)` allow ルールのみが尊重されます。ユーザー、プロジェクト、およびローカル設定からのドメインは無視されます。許可されていないドメインはユーザーにプロンプトを表示せずに自動的にブロックされます。拒否されたドメインはすべてのソースから引き続き尊重されます。デフォルト:false | `true` |

309| `network.httpProxyPort` | 独自のプロキシを使用する場合に使用される HTTP プロキシポート。指定されていない場合、Claude は独自のプロキシを実行します。 | `8080` |

310| `network.socksProxyPort` | 独自のプロキシを使用する場合に使用される SOCKS5 プロキシポート。指定されていない場合、Claude は独自のプロキシを実行します。 | `8081` |

311| `enableWeakerNestedSandbox` | 非特権 Docker 環境用の弱いサンドボックスを有効にします(Linux と WSL2 のみ)。**セキュリティを低下させます。** デフォルト:false | `true` |

312| `enableWeakerNetworkIsolation` | (macOS のみ)サンドボックス内のシステム TLS 信頼サービス(`com.apple.trustd.agent`)へのアクセスを許可します。`httpProxyPort` を MITM プロキシおよびカスタム CA と共に使用する場合、`gh`、`gcloud`、`terraform` などの Go ベースのツールが TLS 証明書を検証するために必要です。**セキュリティを低下させます**。データ流出の可能性のあるパスを開きます。デフォルト:false | `true` |

313 

314#### サンドボックスパスプレフィックス

315 

316`filesystem.allowWrite`、`filesystem.denyWrite`、`filesystem.denyRead`、および `filesystem.allowRead` のパスは、これらのプレフィックスをサポートしています:

317 

318| プレフィックス | 意味 | 例 |

319| :---------------- | :--------------------------------------------------- | :---------------------------------------------------------------------- |

320| `/` | ファイルシステムルートからの絶対パス | `/tmp/build` は `/tmp/build` のままです |

321| `~/` | ホームディレクトリに相対的 | `~/.kube` は `$HOME/.kube` になります |

322| `./` またはプレフィックスなし | プロジェクト設定ではプロジェクトルートに相対的、またはユーザー設定では `~/.claude` に相対的 | `./output` は `.claude/settings.json` では `<project-root>/output` に解決されます |

323 

324古い `//path` プレフィックスは絶対パスに対して引き続き機能します。以前に単一スラッシュ `/path` を使用してプロジェクト相対解決を期待していた場合は、`./path` に切り替えてください。この構文は [Read および Edit 権限ルール](/ja/permissions#read-and-edit)と異なります。これは `//path` を絶対パスに、`/path` をプロジェクト相対に使用します。サンドボックスファイルシステムパスは標準的な規則を使用します:`/tmp/build` は絶対パスです。

325 

326**構成例:**

327 

328```json theme={null}

329{

330 "sandbox": {

331 "enabled": true,

332 "autoAllowBashIfSandboxed": true,

333 "excludedCommands": ["docker *"],

334 "filesystem": {

335 "allowWrite": ["/tmp/build", "~/.kube"],

336 "denyRead": ["~/.aws/credentials"]

337 },

338 "network": {

339 "allowedDomains": ["github.com", "*.npmjs.org", "registry.yarnpkg.com"],

340 "deniedDomains": ["uploads.github.com"],

341 "allowUnixSockets": [

342 "/var/run/docker.sock"

343 ],

344 "allowLocalBinding": true

345 }

346 }

347}

348```

349 

350**ファイルシステムとネットワーク制限**は、一緒にマージされる 2 つの方法で構成できます:

351 

352* **`sandbox.filesystem` 設定**(上記):OS レベルのサンドボックス境界でパスを制御します。これらの制限は、Claude のファイルツールだけでなく、すべてのサブプロセスコマンド(例:`kubectl`、`terraform`、`npm`)に適用されます。

353* **権限ルール**:`Edit` allow/deny ルールを使用して Claude のファイルツールアクセスを制御し、`Read` deny ルールを使用して読み取りをブロックし、`WebFetch` allow/deny ルールを使用してネットワークドメインを制御します。これらのルールからのパスもサンドボックス構成にマージされます。

354 

355### 属性設定

356 

357Claude Code は git コミットとプルリクエストに属性を追加します。これらは個別に構成されます:

358 

359* コミットはデフォルトで[git トレーラー](https://git-scm.com/docs/git-interpret-trailers)(`Co-Authored-By` など)を使用し、カスタマイズまたは無効にできます

360* プルリクエストの説明はプレーンテキストです

361 

362| キー | 説明 |

363| :------- | :----------------------------------------- |

364| `commit` | git コミットの属性(トレーラーを含む)。空の文字列はコミット属性を非表示にします |

365| `pr` | プルリクエストの説明の属性。空の文字列はプルリクエスト属性を非表示にします |

366 

367**デフォルトコミット属性:**

368 

369```text theme={null}

370🤖 Generated with [Claude Code](https://claude.com/claude-code)

371 

372 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

373```

374 

375**デフォルトプルリクエスト属性:**

376 

377```text theme={null}

378🤖 Generated with [Claude Code](https://claude.com/claude-code)

379```

380 

381**例:**

382 

383```json theme={null}

384{

385 "attribution": {

386 "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",

387 "pr": ""

388 }

389}

390```

391 

392<Note>

393 `attribution` 設定は非推奨の `includeCoAuthoredBy` 設定よりも優先されます。すべての属性を非表示にするには、`commit` と `pr` を空の文字列に設定します。

394</Note>

395 

396### ファイル提案設定

397 

398`@` ファイルパスオートコンプリート用のカスタムコマンドを構成します。組み込みファイル提案は高速ファイルシステムトラバーサルを使用しますが、大規模なモノレポは事前構築されたファイルインデックスやカスタムツールなどのプロジェクト固有のインデックスから利益を得る可能性があります。

399 

400```json theme={null}

401{

402 "fileSuggestion": {

403 "type": "command",

404 "command": "~/.claude/file-suggestion.sh"

405 }

406}

407```

408 

409コマンドは [hooks](/ja/hooks)と同じ環境変数(`CLAUDE_PROJECT_DIR` を含む)で実行されます。`query` フィールドを含む JSON を stdin 経由で受け取ります:

410 

411```json theme={null}

412{"query": "src/comp"}

413```

414 

415stdout にニューラインで区切られたファイルパスを出力します(現在 15 に制限):

416 

417```text theme={null}

418src/components/Button.tsx

419src/components/Modal.tsx

420src/components/Form.tsx

421```

422 

423**例:**

424 

425```bash theme={null}

426#!/bin/bash

427query=$(cat | jq -r '.query')

428your-repo-file-index --query "$query" | head -20

429```

430 

431### Hook 構成

432 

433これらの設定は、どの hooks が実行を許可されるか、および HTTP hooks がアクセスできるものを制御します。`allowManagedHooksOnly` 設定は [managed 設定](#settings-files)でのみ構成できます。URL と環境変数ホワイトリストは任意の設定レベルで設定でき、ソース全体でマージされます。

434 

435**`allowManagedHooksOnly` が `true` の場合の動作:**

436 

437* Managed hooks と SDK hooks が読み込まれます

438* managed 設定 `enabledPlugins` で強制的に有効にされたプラグインからの Hooks が読み込まれます。これにより、管理者は組織マーケットプレイスを通じて検証済みの hooks を配布しながら、他のすべてをブロックできます。信頼は完全な `plugin@marketplace` ID によって付与されるため、別のマーケットプレイスからの同じ名前のプラグインはブロックされたままです

439* ユーザー hooks、プロジェクト hooks、およびその他すべてのプラグイン hooks はブロックされます

440 

441**HTTP hook URL を制限:**

442 

443HTTP hooks がターゲットにできる URL を制限します。マッチングのワイルドカードとして `*` をサポートします。配列が定義されている場合、一致しない URL をターゲットにする HTTP hooks はサイレントにブロックされます。

444 

445```json theme={null}

446{

447 "allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]

448}

449```

450 

451**HTTP hook 環境変数を制限:**

452 

453HTTP hooks がヘッダー値に補間できる環境変数名を制限します。各 hook の有効な `allowedEnvVars` はこの設定との交差です。

454 

455```json theme={null}

456{

457 "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]

458}

459```

460 

461### 設定の優先度

462 

463設定は優先度の順に適用されます。最高から最低:

464 

4651. **Managed 設定**([サーバー管理](/ja/server-managed-settings)、[MDM/OS レベルのポリシー](#configuration-scopes)、または [managed 設定](/ja/settings#settings-files))

466 * IT がサーバー配信、MDM 構成プロファイル、レジストリポリシー、または managed 設定ファイルを通じて展開するポリシー

467 * コマンドラインの引数を含む他のレベルでオーバーライドできません

468 * managed ティア内では、優先度は:サーバー管理 > MDM/OS レベルのポリシー > ファイルベース(`managed-settings.d/*.json` + `managed-settings.json`)> HKCU レジストリ(Windows のみ)です。1 つの managed ソースのみが使用されます。ソースはマージされません。ファイルベースティア内では、ドロップインファイルとベースファイルがマージされます。

469 

4702. **コマンドラインの引数**

471 * 特定のセッションの一時的なオーバーライド

472 

4733. **ローカルプロジェクト設定**(`.claude/settings.local.json`)

474 * 個人的なプロジェクト固有の設定

475 

4764. **共有プロジェクト設定**(`.claude/settings.json`)

477 * ソース管理内のチーム共有プロジェクト設定

478 

4795. **ユーザー設定**(`~/.claude/settings.json`)

480 * 個人的なグローバル設定

481 

482この階層は、組織のポリシーが常に強制されながら、チームと個人がエクスペリエンスをカスタマイズできることを保証します。同じ優先度は、CLI から Claude Code を実行する場合、[VS Code 拡張機能](/ja/vs-code)から実行する場合、または [JetBrains IDE](/ja/jetbrains)から実行する場合に適用されます。

483 

484たとえば、ユーザー設定が `Bash(npm run *)` を許可しているが、プロジェクトの共有設定がそれを拒否している場合、プロジェクト設定が優先され、コマンドはブロックされます。

485 

486<Note>

487 **配列設定はスコープ全体でマージされます。** 同じ配列値の設定(`sandbox.filesystem.allowWrite` や `permissions.allow` など)が複数のスコープに表示される場合、配列は**連結および重複排除**され、置き換えられません。これは、低優先度のスコープが高優先度のスコープで設定されたエントリをオーバーライドすることなくエントリを追加でき、その逆も同様です。たとえば、managed 設定が `allowWrite` を `["/opt/company-tools"]` に設定し、ユーザーが `["~/.kube"]` を追加する場合、両方のパスが最終構成に含まれます。

488</Note>

489 

490### アクティブな設定を確認

491 

492Claude Code 内で `/status` を実行して、どの設定ソースがアクティブで、どこから来ているかを確認します。出力は、`Enterprise managed settings (remote)`、`Enterprise managed settings (plist)`、`Enterprise managed settings (HKLM)`、`Enterprise managed settings (HKCU)`、または `Enterprise managed settings (file)` などの出所を含む各構成レイヤー(managed、ユーザー、プロジェクト)を表示します。設定ファイルにエラーが含まれている場合、`/status` は問題を報告して修正できるようにします。

493 

494### 構成システムの重要なポイント

495 

496* **メモリファイル(`CLAUDE.md`)**:Claude が起動時に読み込む命令とコンテキストを含みます

497* **設定ファイル(JSON)**:権限、環境変数、およびツール動作を構成します

498* **Skills**:`/skill-name` で呼び出すか、Claude によって自動的に読み込むことができるカスタムプロンプト

499* **MCP サーバー**:追加のツールと統合で Claude Code を拡張します

500* **優先度**:高レベルの構成(Managed)が低レベルの構成(User/Project)をオーバーライドします

501* **継承**:設定はマージされ、より具体的な設定がより広い設定に追加またはオーバーライドされます

502 

503### システムプロンプト

504 

505Claude Code の内部システムプロンプトは公開されていません。カスタム命令を追加するには、`CLAUDE.md` ファイルまたは `--append-system-prompt` フラグを使用します。

506 

507### 機密ファイルを除外

508 

509API キー、シークレット、環境ファイルなどの機密情報を含むファイルへの Claude Code アクセスを防ぐには、`.claude/settings.json` ファイルの `permissions.deny` 設定を使用します:

510 

511```json theme={null}

512{

513 "permissions": {

514 "deny": [

515 "Read(./.env)",

516 "Read(./.env.*)",

517 "Read(./secrets/**)",

518 "Read(./config/credentials.json)",

519 "Read(./build)"

520 ]

521 }

522}

523```

524 

525これは非推奨の `ignorePatterns` 構成に置き換わります。これらのパターンに一致するファイルはファイル検出と検索結果から除外され、これらのファイルの読み取り操作は拒否されます。

526 

527## Subagent 構成

528 

529Claude Code は、ユーザーレベルとプロジェクトレベルの両方で構成できるカスタム AI subagents をサポートしています。これらの subagents は YAML frontmatter を含む Markdown ファイルとして保存されます:

530 

531* **ユーザー subagents**:`~/.claude/agents/` - すべてのプロジェクト全体で利用可能

532* **プロジェクト subagents**:`.claude/agents/` - プロジェクト固有で、チームと共有できます

533 

534Subagent ファイルは、カスタムプロンプトとツール権限を持つ特殊な AI アシスタントを定義します。[subagents ドキュメント](/ja/sub-agents)で subagents の作成と使用について詳しく学びます。

535 

536## プラグイン構成

537 

538Claude Code は、skills、agents、hooks、および MCP サーバーで機能を拡張できるプラグインシステムをサポートしています。プラグインはマーケットプレイスを通じて配布され、ユーザーレベルとリポジトリレベルの両方で構成できます。

539 

540### プラグイン設定

541 

542`settings.json` のプラグイン関連設定:

543 

544```json theme={null}

545{

546 "enabledPlugins": {

547 "formatter@acme-tools": true,

548 "deployer@acme-tools": true,

549 "analyzer@security-plugins": false

550 },

551 "extraKnownMarketplaces": {

552 "acme-tools": {

553 "source": "github",

554 "repo": "acme-corp/claude-plugins"

555 }

556 }

557}

558```

559 

560#### `enabledPlugins`

561 

562どのプラグインが有効かを制御します。形式:`"plugin-name@marketplace-name": true/false`

563 

564**スコープ**:

565 

566* **ユーザー設定**(`~/.claude/settings.json`):個人的なプラグイン設定

567* **プロジェクト設定**(`.claude/settings.json`):チームと共有されるプロジェクト固有のプラグイン

568* **ローカル設定**(`.claude/settings.local.json`):マシンごとのオーバーライド(コミットされない)

569* **Managed 設定**(`managed-settings.json`):すべてのスコープでのインストールをブロックし、マーケットプレイスからプラグインを非表示にする組織全体のポリシーオーバーライド

570 

571**例**:

572 

573```json theme={null}

574{

575 "enabledPlugins": {

576 "code-formatter@team-tools": true,

577 "deployment-tools@team-tools": true,

578 "experimental-features@personal": false

579 }

580}

581```

582 

583#### `extraKnownMarketplaces`

584 

585リポジトリで利用可能にする必要がある追加のマーケットプレイスを定義します。通常、リポジトリレベルの設定で使用され、チームメンバーが必要なプラグインソースにアクセスできることを確認します。

586 

587**リポジトリが `extraKnownMarketplaces` を含む場合**:

588 

5891. チームメンバーはフォルダを信頼するときにマーケットプレイスをインストールするよう求められます

5902. チームメンバーはそのマーケットプレイスからプラグインをインストールするよう求められます

5913. ユーザーは不要なマーケットプレイスまたはプラグインをスキップできます(ユーザー設定に保存)

5924. インストールは信頼境界を尊重し、明示的な同意が必要です

593 

594**例**:

595 

596```json theme={null}

597{

598 "extraKnownMarketplaces": {

599 "acme-tools": {

600 "source": {

601 "source": "github",

602 "repo": "acme-corp/claude-plugins"

603 }

604 },

605 "security-plugins": {

606 "source": {

607 "source": "git",

608 "url": "https://git.example.com/security/plugins.git"

609 }

610 }

611 }

612}

613```

614 

615**マーケットプレイスソースタイプ**:

616 

617* `github`:GitHub リポジトリ(`repo` を使用)

618* `git`:任意の git URL(`url` を使用)

619* `directory`:ローカルファイルシステムパス(開発のみ、`path` を使用)

620* `hostPattern`:マーケットプレイスホストに一致する正規表現パターン(`hostPattern` を使用)

621* `settings`:ホストされたリポジトリなしで settings.json に直接宣言されたインラインマーケットプレイス(`name` と `plugins` を使用)

622 

623`source: 'settings'` を使用して、ホストされたマーケットプレイスリポジトリをセットアップせずに、小規模なプラグインセットをインラインで宣言します。ここにリストされているプラグインは、GitHub または npm などの外部ソースを参照する必要があります。各プラグインを `enabledPlugins` で個別に有効にする必要があります。

624 

625```json theme={null}

626{

627 "extraKnownMarketplaces": {

628 "team-tools": {

629 "source": {

630 "source": "settings",

631 "name": "team-tools",

632 "plugins": [

633 {

634 "name": "code-formatter",

635 "source": {

636 "source": "github",

637 "repo": "acme-corp/code-formatter"

638 }

639 }

640 ]

641 }

642 }

643 }

644}

645```

646 

647#### `strictKnownMarketplaces`

648 

649**Managed 設定のみ**:ユーザーが追加できるプラグインマーケットプレイスを制御します。この設定は [managed 設定](/ja/settings#settings-files)でのみ構成でき、管理者にマーケットプレイスソースに対する厳密な制御を提供します。

650 

651**Managed 設定ファイルの場所**:

652 

653* **macOS**:`/Library/Application Support/ClaudeCode/managed-settings.json`

654* **Linux と WSL**:`/etc/claude-code/managed-settings.json`

655* **Windows**:`C:\Program Files\ClaudeCode\managed-settings.json`

656 

657**主な特性**:

658 

659* managed 設定(`managed-settings.json`)でのみ利用可能

660* ユーザーまたはプロジェクト設定でオーバーライドできません(最高優先度)

661* ネットワーク/ファイルシステム操作の前に強制されます(ブロックされたソースは実行されません)

662* `hostPattern` を除き、ソース仕様に対して完全一致を使用します。`hostPattern` は正規表現マッチングを使用します

663 

664**ホワイトリスト動作**:

665 

666* `undefined`(デフォルト):制限なし - ユーザーは任意のマーケットプレイスを追加できます

667* 空配列 `[]`:完全ロックダウン - ユーザーは新しいマーケットプレイスを追加できません

668* ソースのリスト:ユーザーは正確に一致するマーケットプレイスのみを追加できます

669 

670**サポートされているすべてのソースタイプ**:

671 

672ホワイトリストは複数のマーケットプレイスソースタイプをサポートしています。ほとんどのソースは完全一致を使用しますが、`hostPattern` はマーケットプレイスホストに対して正規表現マッチングを使用します。

673 

6741. **GitHub リポジトリ**:

675 

676```json theme={null}

677{ "source": "github", "repo": "acme-corp/approved-plugins" }

678{ "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" }

679{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }

680```

681 

682フィールド:`repo`(必須)、`ref`(オプション:ブランチ/タグ/SHA)、`path`(オプション:サブディレクトリ)

683 

6842. **Git リポジトリ**:

685 

686```json theme={null}

687{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }

688{ "source": "git", "url": "https://bitbucket.org/acme-corp/plugins.git", "ref": "production" }

689{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }

690```

691 

692フィールド:`url`(必須)、`ref`(オプション:ブランチ/タグ/SHA)、`path`(オプション:サブディレクトリ)

693 

6943. **URL ベースのマーケットプレイス**:

695 

696```json theme={null}

697{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }

698{ "source": "url", "url": "https://cdn.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }

699```

700 

701フィールド:`url`(必須)、`headers`(オプション:認証アクセス用の HTTP ヘッダー)

702 

703<Note>

704 URL ベースのマーケットプレイスは `marketplace.json` ファイルのみをダウンロードします。サーバーからプラグインファイルをダウンロードしません。URL ベースのマーケットプレイス内のプラグインは、相対パスではなく外部ソース(GitHub、npm、または git URL)を使用する必要があります。相対パスを持つプラグインの場合は、代わりに Git ベースのマーケットプレイスを使用します。詳細については [トラブルシューティング](/ja/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)を参照してください。

705</Note>

706 

7074. **NPM パッケージ**:

708 

709```json theme={null}

710{ "source": "npm", "package": "@acme-corp/claude-plugins" }

711{ "source": "npm", "package": "@acme-corp/approved-marketplace" }

712```

713 

714フィールド:`package`(必須、スコープ付きパッケージをサポート)

715 

7165. **ファイルパス**:

717 

718```json theme={null}

719{ "source": "file", "path": "/usr/local/share/claude/acme-marketplace.json" }

720{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }

721```

722 

723フィールド:`path`(必須:marketplace.json ファイルへの絶対パス)

724 

7256. **ディレクトリパス**:

726 

727```json theme={null}

728{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }

729{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }

730```

731 

732フィールド:`path`(必須:`.claude-plugin/marketplace.json` を含むディレクトリへの絶対パス)

733 

7347. **ホストパターンマッチング**:

735 

736```json theme={null}

737{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }

738{ "source": "hostPattern", "hostPattern": "^gitlab\\.internal\\.example\\.com$" }

739```

740 

741フィールド:`hostPattern`(必須:マーケットプレイスホストに対してマッチする正規表現パターン)

742 

743各リポジトリを列挙することなく、特定のホストからすべてのマーケットプレイスを許可する場合は、ホストパターンマッチングを使用します。これは、開発者が独自のマーケットプレイスを作成する内部 GitHub Enterprise または GitLab サーバーを持つ組織に役立ちます。

744 

745ソースタイプ別のホスト抽出:

746 

747* `github`:常に `github.com` に対してマッチ

748* `git`:URL からホスト名を抽出(HTTPS と SSH 形式の両方をサポート)

749* `url`:URL からホスト名を抽出

750* `npm`、`file`、`directory`:ホストパターンマッチングではサポートされていません

751 

752**構成例**:

753 

754例:特定のマーケットプレイスのみを許可:

755 

756```json theme={null}

757{

758 "strictKnownMarketplaces": [

759 {

760 "source": "github",

761 "repo": "acme-corp/approved-plugins"

762 },

763 {

764 "source": "github",

765 "repo": "acme-corp/security-tools",

766 "ref": "v2.0"

767 },

768 {

769 "source": "url",

770 "url": "https://plugins.example.com/marketplace.json"

771 },

772 {

773 "source": "npm",

774 "package": "@acme-corp/compliance-plugins"

775 }

776 ]

777}

778```

779 

780例 - すべてのマーケットプレイス追加を無効にする:

781 

782```json theme={null}

783{

784 "strictKnownMarketplaces": []

785}

786```

787 

788例:内部 git サーバーからすべてのマーケットプレイスを許可:

789 

790```json theme={null}

791{

792 "strictKnownMarketplaces": [

793 {

794 "source": "hostPattern",

795 "hostPattern": "^github\\.example\\.com$"

796 }

797 ]

798}

799```

800 

801**完全一致要件**:

802 

803マーケットプレイスソースはユーザーの追加を許可するために**正確に**一致する必要があります。git ベースのソース(`github` と `git`)の場合、これはすべてのオプションフィールドを含みます:

804 

805* `repo` または `url` は正確に一致する必要があります

806* `ref` フィールドは正確に一致する必要があります(または両方が未定義)

807* `path` フィールドは正確に一致する必要があります(または両方が未定義)

808 

809一致**しない**ソースの例:

810 

811```json theme={null}

812// これらは異なるソースです:

813{ "source": "github", "repo": "acme-corp/plugins" }

814{ "source": "github", "repo": "acme-corp/plugins", "ref": "main" }

815 

816// これらも異なります:

817{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }

818{ "source": "github", "repo": "acme-corp/plugins" }

819```

820 

821**`extraKnownMarketplaces` との比較**:

822 

823| 側面 | `strictKnownMarketplaces` | `extraKnownMarketplaces` |

824| ------------- | -------------------------- | ------------------------- |

825| **目的** | 組織ポリシーの強制 | チームの利便性 |

826| **設定ファイル** | `managed-settings.json` のみ | 任意の設定ファイル |

827| **動作** | 許可されていない追加をブロック | 不足しているマーケットプレイスを自動インストール |

828| **強制時期** | ネットワーク/ファイルシステム操作の前 | ユーザー信頼プロンプト後 |

829| **オーバーライド可能** | いいえ(最高優先度) | はい(高優先度設定による) |

830| **ソース形式** | 直接ソースオブジェクト | ネストされたソースを持つ名前付きマーケットプレイス |

831| **ユースケース** | コンプライアンス、セキュリティ制限 | オンボーディング、標準化 |

832 

833**形式の違い**:

834 

835`strictKnownMarketplaces` は直接ソースオブジェクトを使用します:

836 

837```json theme={null}

838{

839 "strictKnownMarketplaces": [

840 { "source": "github", "repo": "acme-corp/plugins" }

841 ]

842}

843```

844 

845`extraKnownMarketplaces` は名前付きマーケットプレイスが必要です:

846 

847```json theme={null}

848{

849 "extraKnownMarketplaces": {

850 "acme-tools": {

851 "source": { "source": "github", "repo": "acme-corp/plugins" }

852 }

853 }

854}

855```

856 

857**両方を一緒に使用**:

858 

859`strictKnownMarketplaces` はポリシーゲートです:ユーザーが追加できるものを制御しますが、マーケットプレイスを登録しません。マーケットプレイスを制限して事前登録するには、`managed-settings.json` で両方を設定します:

860 

861```json theme={null}

862{

863 "strictKnownMarketplaces": [

864 { "source": "github", "repo": "acme-corp/plugins" }

865 ],

866 "extraKnownMarketplaces": {

867 "acme-tools": {

868 "source": { "source": "github", "repo": "acme-corp/plugins" }

869 }

870 }

871}

872```

873 

874`strictKnownMarketplaces` のみが設定されている場合、ユーザーは `/plugin marketplace add` を通じて許可されたマーケットプレイスを手動で追加できますが、自動的には利用できません。

875 

876**重要な注意**:

877 

878* 制限はネットワークリクエストまたはファイルシステム操作の前にチェックされます

879* ブロックされた場合、ユーザーはソースが managed ポリシーでブロックされていることを示す明確なエラーメッセージを表示します

880* 制限はマーケットプレイスの追加およびプラグインのインストール、更新、リフレッシュ、および自動更新に対して強制されます。ポリシーが設定される前に追加されたマーケットプレイスは、そのソースがホワイトリストと一致しなくなると、プラグインのインストールまたは更新に使用できません

881* Managed 設定は最高優先度を持ち、オーバーライドできません

882 

883ユーザー向けドキュメントについては、[Managed マーケットプレイス制限](/ja/plugin-marketplaces#managed-marketplace-restrictions)を参照してください。

884 

885### プラグインの管理

886 

887`/plugin` コマンドを使用してプラグインを対話的に管理します:

888 

889* マーケットプレイスから利用可能なプラグインを参照

890* プラグインをインストール/アンインストール

891* プラグインを有効/無効にする

892* プラグインの詳細を表示(提供される skills、agents、hooks)

893* マーケットプレイスを追加/削除

894 

895[プラグインドキュメント](/ja/plugins)でプラグインシステムについて詳しく学びます。

896 

897## 環境変数

898 

899環境変数を使用すると、設定ファイルを編集することなく Claude Code の動作を制御できます。任意の変数は、すべてのセッションに適用するか、チームにロールアウトするために [`settings.json`](#available-settings) の `env` キーで構成することもできます。

900 

901完全なリストについては、[環境変数リファレンス](/ja/env-vars)を参照してください。

902 

903## Claude が利用できるツール

904 

905Claude Code は、ファイルの読み取り、編集、検索、コマンド実行、および subagents のオーケストレーション用のツールセットにアクセスできます。ツール名は、権限ルールと hook マッチャーで使用する正確な文字列です。

906 

907完全なリストと Bash ツール動作の詳細については、[ツールリファレンス](/ja/tools-reference)を参照してください。

908 

909## 関連項目

910 

911* [権限](/ja/permissions):権限システム、ルール構文、ツール固有パターン、および managed ポリシー

912* [認証](/ja/authentication):Claude Code へのユーザーアクセスをセットアップ

913* [設定をデバッグする](/ja/debug-your-config):設定、hook、または MCP サーバーが有効にならない理由を診断

914* [インストールとログインのトラブルシューティング](/ja/troubleshoot-install):インストール、認証、およびプラットフォームの問題

setup.md +606 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 高度なセットアップ

6 

7> Claude Code のシステム要件、プラットフォーム固有のインストール、バージョン管理、およびアンインストール。

8 

9このページでは、システム要件、プラットフォーム固有のインストール詳細、更新、およびアンインストールについて説明します。初回セッションのガイド付きウォークスルーについては、[クイックスタート](/ja/quickstart)を参照してください。ターミナルを使用したことがない場合は、[ターミナルガイド](/ja/terminal-guide)を参照してください。

10 

11## システム要件

12 

13Claude Code は以下のプラットフォームと構成で実行されます。

14 

15* **オペレーティングシステム**:

16 * macOS 13.0 以上

17 * Windows 10 1809 以上または Windows Server 2019 以上

18 * Ubuntu 20.04 以上

19 * Debian 10 以上

20 * Alpine Linux 3.19 以上

21* **ハードウェア**: 4 GB 以上の RAM、x64 または ARM64 プロセッサ

22* **ネットワーク**: インターネット接続が必要です。[ネットワーク構成](/ja/network-config#network-access-requirements)を参照してください。

23* **シェル**: Bash、Zsh、PowerShell、または CMD。Windows ネイティブセットアップには [Git for Windows](https://git-scm.com/downloads/win) が Git Bash に必要です。WSL セットアップは Git for Windows を必要としません。

24* **場所**: [Anthropic サポート対象国](https://www.anthropic.com/supported-countries)

25 

26### 追加の依存関係

27 

28* **ripgrep**: 通常は Claude Code に含まれています。検索が失敗する場合は、[検索トラブルシューティング](/ja/troubleshooting#search-and-discovery-issues)を参照してください。

29 

30## Claude Code をインストール

31 

32<Tip>

33 グラフィカルインターフェースをお好みですか?[Desktop app](/ja/desktop-quickstart)を使用すると、ターミナルなしで Claude Code を使用できます。[macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)または[Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs)でダウンロードしてください。

34 

35 ターミナルは初めてですか?[ターミナルガイド](/ja/terminal-guide)で段階的な手順を参照してください。

36</Tip>

37 

38To install Claude Code, use one of the following methods:

39 

40<Tabs>

41 <Tab title="Native Install (Recommended)">

42 **macOS, Linux, WSL:**

43 

44 ```bash theme={null}

45 curl -fsSL https://claude.ai/install.sh | bash

46 ```

47 

48 **Windows PowerShell:**

49 

50 ```powershell theme={null}

51 irm https://claude.ai/install.ps1 | iex

52 ```

53 

54 **Windows CMD:**

55 

56 ```batch theme={null}

57 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

58 ```

59 

60 If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.

61 

62 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.

63 

64 <Info>

65 Native installations automatically update in the background to keep you on the latest version.

66 </Info>

67 </Tab>

68 

69 <Tab title="Homebrew">

70 ```bash theme={null}

71 brew install --cask claude-code

72 ```

73 

74 Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.

75 

76 <Info>

77 Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.

78 </Info>

79 </Tab>

80 

81 <Tab title="WinGet">

82 ```powershell theme={null}

83 winget install Anthropic.ClaudeCode

84 ```

85 

86 <Info>

87 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.

88 </Info>

89 </Tab>

90</Tabs>

91 

92You can also install with [apt, dnf, or apk](/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.

93 

94インストールが完了したら、作業するプロジェクトでターミナルを開き、Claude Code を起動します。

95 

96```bash theme={null}

97claude

98```

99 

100インストール中に問題が発生した場合は、[インストールとログインのトラブルシューティング](/ja/troubleshoot-install)を参照してください。

101 

102### Windows でのセットアップ

103 

104Claude Code をネイティブに Windows で実行することも、WSL 内で実行することもできます。プロジェクトの場所と必要な機能に基づいて選択してください。

105 

106| オプション | 必須 | [サンドボックス](/ja/sandboxing) | 使用時期 |

107| ------------- | ---------------------------------------------------------------------------- | ------------------------- | --------------------------------- |

108| ネイティブ Windows | [Git for Windows](https://git-scm.com/downloads/win)推奨;不在の場合は PowerShell を使用 | サポートされていません | Windows ネイティブプロジェクトとツール |

109| WSL 2 | WSL 2 有効 | サポートされています | Linux ツールチェーンまたはサンドボックス化されたコマンド実行 |

110| WSL 1 | WSL 1 有効 | サポートされていません | WSL 2 が利用できない場合 |

111 

112**オプション 1: Git Bash を使用したネイティブ Windows**

113 

114[Git for Windows](https://git-scm.com/downloads/win)をインストールしてから、PowerShell または CMD からインストールコマンドを実行します。管理者として実行する必要はありません。

115 

116PowerShell または CMD からインストールするかどうかは、実行するインストールコマンドにのみ影響します。プロンプトは PowerShell では `PS C:\Users\YourName>` と表示され、CMD では `PS` なしで `C:\Users\YourName>` と表示されます。ターミナルが初めての場合は、[ターミナルガイド](/ja/terminal-guide#windows)で各ステップを説明しています。

117 

118インストール後、PowerShell、CMD、または Git Bash から `claude` を起動します。Git Bash がインストールされている場合、Claude Code は起動元に関係なく、内部的に Git Bash を使用してコマンドを実行します。Claude Code が Git Bash インストールを見つけられない場合は、[settings.json ファイル](/ja/settings)でパスを設定します。

119 

120```json theme={null}

121{

122 "env": {

123 "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"

124 }

125}

126```

127 

128Claude Code は Windows でネイティブに PowerShell を実行することもできます。Git Bash がインストールされている場合、PowerShell ツールは追加オプションとして段階的にロールアウトされています。オプトインするには `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` を設定するか、オプトアウトするには `0` を設定します。セットアップと制限については、[PowerShell ツール](/ja/tools-reference#powershell-tool)を参照してください。

129 

130**オプション 2: WSL**

131 

132WSL ディストリビューションを開き、上記の[インストール手順](#install-claude-code)から Linux インストーラーを実行します。PowerShell または CMD からではなく、WSL ターミナル内で `claude` をインストールして起動します。

133 

134### Alpine Linux と musl ベースのディストリビューション

135 

136Alpine およびその他の musl/uClibc ベースのディストリビューション上のネイティブインストーラーには、`libgcc`、`libstdc++`、および `ripgrep` が必要です。ディストリビューションのパッケージマネージャーを使用してこれらをインストールしてから、`USE_BUILTIN_RIPGREP=0` を設定します。

137 

138この例は Alpine で必要なパッケージをインストールします。

139 

140```bash theme={null}

141apk add libgcc libstdc++ ripgrep

142```

143 

144次に、[`settings.json`](/ja/settings#available-settings)ファイルで `USE_BUILTIN_RIPGREP` を `0` に設定します。

145 

146```json theme={null}

147{

148 "env": {

149 "USE_BUILTIN_RIPGREP": "0"

150 }

151}

152```

153 

154## インストールを確認

155 

156インストール後、Claude Code が機能していることを確認します。

157 

158```bash theme={null}

159claude --version

160```

161 

162これが `command not found` または別のエラーで失敗する場合は、[インストールとログインのトラブルシューティング](/ja/troubleshoot-install)を参照してください。

163 

164インストールと構成をより詳しく確認するには、[`claude doctor`](/ja/troubleshooting#get-more-help)を実行します。

165 

166```bash theme={null}

167claude doctor

168```

169 

170## 認証

171 

172Claude Code には、Pro、Max、Team、Enterprise、または Console アカウントが必要です。無料の Claude.ai プランには Claude Code アクセスは含まれていません。[Amazon Bedrock](/ja/amazon-bedrock)、[Google Vertex AI](/ja/google-vertex-ai)、または[Microsoft Foundry](/ja/microsoft-foundry)などのサードパーティ API プロバイダーで Claude Code を使用することもできます。

173 

174インストール後、`claude` を実行してブラウザーのプロンプトに従ってログインします。すべてのアカウントタイプとチームセットアップオプションについては、[認証](/ja/authentication)を参照してください。

175 

176## Claude Code を更新

177 

178ネイティブインストールは自動的にバックグラウンドで更新されます。[リリースチャネルを構成](#configure-release-channel)して、更新をすぐに受け取るか遅延安定スケジュールで受け取るかを制御することも、[自動更新を完全に無効にする](#disable-auto-updates)こともできます。Homebrew、WinGet、および[Linux パッケージマネージャー](#install-with-linux-package-managers)インストールは手動更新が必要です。

179 

180### 自動更新

181 

182Claude Code は起動時と実行中に定期的に更新をチェックします。更新はバックグラウンドでダウンロードおよびインストールされ、次に Claude Code を起動するときに有効になります。

183 

184<Note>

185 Homebrew、WinGet、apt、dnf、および apk インストールは自動更新されません。Homebrew の場合は、`brew upgrade claude-code` または `brew upgrade claude-code@latest` を実行します(インストールした cask によって異なります)。WinGet の場合は、`winget upgrade Anthropic.ClaudeCode` を実行します。Linux パッケージマネージャーの場合は、[Linux パッケージマネージャーでインストール](#install-with-linux-package-managers)のアップグレードコマンドを参照してください。

186 

187 **既知の問題**: Claude Code は、新しいバージョンがこれらのパッケージマネージャーで利用可能になる前に更新を通知する場合があります。アップグレードが失敗した場合は、しばらく待ってからもう一度試してください。

188 

189 Homebrew はアップグレード後、古いバージョンをディスク上に保持します。`brew cleanup` を定期的に実行してディスク容量を回収します。

190</Note>

191 

192### リリースチャネルを構成

193 

194`autoUpdatesChannel` 設定を使用して、Claude Code が自動更新と `claude update` に従うリリースチャネルを制御します。

195 

196* `"latest"`、デフォルト: リリースされるとすぐに新機能を受け取ります

197* `"stable"`: 通常約 1 週間前のバージョンを使用し、大きな回帰を伴うリリースをスキップします

198 

199これを `/config` → **自動更新チャネル**経由で構成するか、[settings.json ファイル](/ja/settings)に追加します。

200 

201```json theme={null}

202{

203 "autoUpdatesChannel": "stable"

204}

205```

206 

207エンタープライズデプロイメントの場合、[管理設定](/ja/permissions#managed-settings)を使用して、組織全体で一貫したリリースチャネルを適用できます。

208 

209Homebrew インストールは、この設定ではなく cask 名でチャネルを選択します。`claude-code` は安定版を追跡し、`claude-code@latest` は最新版を追跡します。

210 

211### 最小バージョンをピン留め

212 

213`minimumVersion` 設定は下限を確立します。バックグラウンド自動更新と `claude update` は、この値より下のバージョンのインストールを拒否するため、`"stable"` チャネルに移動しても、既に新しい `"latest"` ビルドを使用している場合はダウングレードされません。

214 

215`/config` 経由で `"latest"` から `"stable"` に切り替えると、現在のバージョンに留まるか、ダウングレードを許可するかを選択するよう求められます。留まることを選択すると、`minimumVersion` がそのバージョンに設定されます。`"latest"` に戻すと、それがクリアされます。

216 

217[settings.json ファイル](/ja/settings)に追加して、下限を明示的にピン留めします。

218 

219```json theme={null}

220{

221 "autoUpdatesChannel": "stable",

222 "minimumVersion": "2.1.100"

223}

224```

225 

226[管理設定](/ja/permissions#managed-settings)では、これはユーザーおよびプロジェクト設定がオーバーライドできない組織全体の最小値を適用します。

227 

228### 自動更新を無効にする

229 

230[`settings.json`](/ja/settings#available-settings)ファイルの `env` キーで `DISABLE_AUTOUPDATER` を `"1"` に設定します。

231 

232```json theme={null}

233{

234 "env": {

235 "DISABLE_AUTOUPDATER": "1"

236 }

237}

238```

239 

240`DISABLE_AUTOUPDATER` はバックグラウンドチェックのみを停止します。`claude update` と `claude install` は引き続き機能します。手動更新を含むすべての更新パスをブロックするには、代わりに [`DISABLE_UPDATES`](/ja/env-vars) を設定します。独自のチャネルを通じて Claude Code を配布し、ユーザーが提供するバージョンに留まる必要がある場合に使用します。

241 

242### 手動で更新

243 

244次のバックグラウンドチェックを待たずに更新をすぐに適用するには、以下を実行します。

245 

246```bash theme={null}

247claude update

248```

249 

250## 高度なインストールオプション

251 

252これらのオプションは、バージョンピニング、Linux パッケージマネージャー、npm、およびバイナリ整合性の検証用です。

253 

254### 特定のバージョンをインストール

255 

256ネイティブインストーラーは、特定のバージョン番号またはリリースチャネル(`latest` または `stable`)を受け入れます。インストール時に選択したチャネルが自動更新のデフォルトになります。詳細については、[リリースチャネルを構成](#configure-release-channel)を参照してください。

257 

258最新バージョンをインストールするには(デフォルト):

259 

260<Tabs>

261 <Tab title="macOS, Linux, WSL">

262 ```bash theme={null}

263 curl -fsSL https://claude.ai/install.sh | bash

264 ```

265 </Tab>

266 

267 <Tab title="Windows PowerShell">

268 ```powershell theme={null}

269 irm https://claude.ai/install.ps1 | iex

270 ```

271 </Tab>

272 

273 <Tab title="Windows CMD">

274 ```batch theme={null}

275 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

276 ```

277 </Tab>

278</Tabs>

279 

280安定版をインストールするには:

281 

282<Tabs>

283 <Tab title="macOS, Linux, WSL">

284 ```bash theme={null}

285 curl -fsSL https://claude.ai/install.sh | bash -s stable

286 ```

287 </Tab>

288 

289 <Tab title="Windows PowerShell">

290 ```powershell theme={null}

291 & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable

292 ```

293 </Tab>

294 

295 <Tab title="Windows CMD">

296 ```batch theme={null}

297 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd

298 ```

299 </Tab>

300</Tabs>

301 

302特定のバージョン番号をインストールするには:

303 

304<Tabs>

305 <Tab title="macOS, Linux, WSL">

306 ```bash theme={null}

307 curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89

308 ```

309 </Tab>

310 

311 <Tab title="Windows PowerShell">

312 ```powershell theme={null}

313 & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89

314 ```

315 </Tab>

316 

317 <Tab title="Windows CMD">

318 ```batch theme={null}

319 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.89 && del install.cmd

320 ```

321 </Tab>

322</Tabs>

323 

324### Linux パッケージマネージャーでのインストール

325 

326Claude Code は署名付き apt、dnf、および apk リポジトリを公開しています。ローリングチャネルの場合は `stable` を `latest` に置き換えてください。パッケージマネージャーのインストールは Claude Code を通じて自動更新されません。更新は通常のシステムアップグレードワークフローを通じて提供されます。

327 

328すべてのリポジトリは [Claude Code リリース署名キー](#binary-integrity-and-code-signing)で署名されています。キーを信頼する前に、各タブで説明されているとおりに検証してください。

329 

330<Tabs>

331 <Tab title="apt">

332 Debian および Ubuntu 用です。ローリングチャネルを使用するには、`deb` 行の両方の `stable` を変更します。URL パスとスイート名です。

333 

334 ```bash theme={null}

335 sudo install -d -m 0755 /etc/apt/keyrings

336 sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \

337 -o /etc/apt/keyrings/claude-code.asc

338 echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \

339 | sudo tee /etc/apt/sources.list.d/claude-code.list

340 sudo apt update

341 sudo apt install claude-code

342 ```

343 

344 信頼する前に GPG キーフィンガープリントを検証します。`gpg --show-keys /etc/apt/keyrings/claude-code.asc` は `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` を報告する必要があります。

345 

346 後で更新するには、`sudo apt update && sudo apt upgrade claude-code` を実行します。

347 </Tab>

348 

349 <Tab title="dnf">

350 Fedora および RHEL 用:

351 

352 ```bash theme={null}

353 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'

354 [claude-code]

355 name=Claude Code

356 baseurl=https://downloads.claude.ai/claude-code/rpm/stable

357 enabled=1

358 gpgcheck=1

359 gpgkey=https://downloads.claude.ai/keys/claude-code.asc

360 EOF

361 sudo dnf install claude-code

362 ```

363 

364 dnf は最初のインストール時にキーをダウンロードし、フィンガープリントを確認するよう求めます。受け入れる前に `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` と一致することを確認してください。

365 

366 後で更新するには、`sudo dnf upgrade claude-code` を実行します。

367 </Tab>

368 

369 <Tab title="apk">

370 Alpine Linux 用:

371 

372 ```sh theme={null}

373 wget -O /etc/apk/keys/claude-code.rsa.pub \

374 https://downloads.claude.ai/keys/claude-code.rsa.pub

375 echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

376 apk add claude-code

377 ```

378 

379 `sha256sum /etc/apk/keys/claude-code.rsa.pub` でダウンロードされたキーを検証します。これは `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6` を報告する必要があります。

380 

381 後で更新するには、`apk update && apk upgrade claude-code` を実行します。

382 </Tab>

383</Tabs>

384 

385### npm でのインストール

386 

387Claude Code をグローバル npm パッケージとしてインストールすることもできます。パッケージには [Node.js 18 以上](https://nodejs.org/en/download)が必要です。

388 

389```bash theme={null}

390npm install -g @anthropic-ai/claude-code

391```

392 

393npm パッケージは、スタンドアロンインストーラーと同じネイティブバイナリをインストールします。npm は `@anthropic-ai/claude-code-darwin-arm64` などのプラットフォーム固有のオプション依存関係を通じてバイナリをプルし、postinstall ステップがそれを所定の位置にリンクします。インストールされた `claude` バイナリ自体は Node を呼び出しません。

394 

395サポートされている npm インストールプラットフォームは `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64`、および `win32-arm64` です。パッケージマネージャーはオプション依存関係を許可する必要があります。インストール後にバイナリが見つからない場合は、[トラブルシューティング](/ja/troubleshoot-install#native-binary-not-found-after-npm-install)を参照してください。

396 

397<Warning>

398 `sudo npm install -g` を使用しないでください。これはアクセス許可の問題とセキュリティリスクにつながる可能性があります。アクセス許可エラーが発生した場合は、[トラブルシューティングアクセス許可エラー](/ja/troubleshoot-install#permission-errors-during-installation)を参照してください。

399</Warning>

400 

401### バイナリ整合性とコード署名

402 

403各リリースは、すべてのプラットフォームバイナリの SHA256 チェックサムを含む `manifest.json` を公開します。マニフェストは Anthropic GPG キーで署名されているため、マニフェスト上の署名を検証することで、それが列挙するすべてのバイナリを推移的に検証します。

404 

405#### マニフェスト署名を検証

406 

407ステップ 1~3 には、`gpg` と `curl` を備えた POSIX シェルが必要です。Windows では、Git Bash または WSL で実行します。ステップ 4 には PowerShell オプションが含まれています。

408 

409<Steps>

410 <Step title="公開鍵をダウンロードしてインポート">

411 リリース署名キーは固定 URL で公開されています。

412 

413 ```bash theme={null}

414 curl -fsSL https://downloads.claude.ai/keys/claude-code.asc | gpg --import

415 ```

416 

417 インポートされたキーのフィンガープリントを表示します。

418 

419 ```bash theme={null}

420 gpg --fingerprint security@anthropic.com

421 ```

422 

423 出力にこのフィンガープリントが含まれていることを確認します。

424 

425 ```text theme={null}

426 31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE

427 ```

428 </Step>

429 

430 <Step title="マニフェストと署名をダウンロード">

431 `VERSION` を検証するリリースに設定します。

432 

433 ```bash theme={null}

434 REPO=https://downloads.claude.ai/claude-code-releases

435 VERSION=2.1.89

436 curl -fsSLO "$REPO/$VERSION/manifest.json"

437 curl -fsSLO "$REPO/$VERSION/manifest.json.sig"

438 ```

439 </Step>

440 

441 <Step title="署名を検証">

442 マニフェストに対して分離された署名を検証します。

443 

444 ```bash theme={null}

445 gpg --verify manifest.json.sig manifest.json

446 ```

447 

448 有効な結果は `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"` を報告します。

449 

450 `gpg` は新しくインポートされたキーに対して `WARNING: This key is not certified with a trusted signature!` も出力します。これは予想されています。`Good signature` 行は暗号化チェックが成功したことを確認します。ステップ 1 のフィンガープリント比較はキー自体が本物であることを確認します。

451 </Step>

452 

453 <Step title="バイナリをマニフェストに対して確認">

454 ダウンロードしたバイナリの SHA256 チェックサムを `manifest.json` の `platforms.<platform>.checksum` の下にリストされている値と比較します。

455 

456 <Tabs>

457 <Tab title="Linux">

458 ```bash theme={null}

459 sha256sum claude

460 ```

461 </Tab>

462 

463 <Tab title="macOS">

464 ```bash theme={null}

465 shasum -a 256 claude

466 ```

467 </Tab>

468 

469 <Tab title="Windows PowerShell">

470 ```powershell theme={null}

471 (Get-FileHash claude.exe -Algorithm SHA256).Hash.ToLower()

472 ```

473 </Tab>

474 </Tabs>

475 </Step>

476</Steps>

477 

478<Note>

479 マニフェスト署名は `2.1.89` 以降のリリースで利用可能です。以前のリリースは分離された署名なしで `manifest.json` にチェックサムを公開します。

480</Note>

481 

482#### プラットフォームコード署名

483 

484署名付きマニフェストに加えて、個別のバイナリはサポートされている場所でプラットフォーム固有のコード署名を実行します。

485 

486* **macOS**: "Anthropic PBC" によって署名され、Apple によって公証されています。`codesign --verify --verbose ./claude` で検証します。

487* **Windows**: "Anthropic, PBC" によって署名されています。`Get-AuthenticodeSignature .\claude.exe` で検証します。

488* **Linux**: バイナリは個別にコード署名されていません。`claude-code-releases` バケットから直接ダウンロードするか、ネイティブインストーラーを使用する場合は、上記のマニフェスト署名で整合性を検証します。[apt、dnf、または apk](#install-with-linux-package-managers) でインストールする場合、パッケージマネージャーはリポジトリ署名キーを使用して署名を自動的に検証します。

489 

490## Claude Code をアンインストール

491 

492Claude Code を削除するには、インストール方法の指示に従ってください。

493 

494### ネイティブインストール

495 

496Claude Code バイナリとバージョンファイルを削除します。

497 

498<Tabs>

499 <Tab title="macOS, Linux, WSL">

500 ```bash theme={null}

501 rm -f ~/.local/bin/claude

502 rm -rf ~/.local/share/claude

503 ```

504 </Tab>

505 

506 <Tab title="Windows PowerShell">

507 ```powershell theme={null}

508 Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force

509 Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force

510 ```

511 </Tab>

512</Tabs>

513 

514### Homebrew インストール

515 

516インストールした Homebrew cask を削除します。安定版 cask をインストールした場合:

517 

518```bash theme={null}

519brew uninstall --cask claude-code

520```

521 

522最新版 cask をインストールした場合:

523 

524```bash theme={null}

525brew uninstall --cask claude-code@latest

526```

527 

528### WinGet インストール

529 

530WinGet パッケージを削除します:

531 

532```powershell theme={null}

533winget uninstall Anthropic.ClaudeCode

534```

535 

536### apt / dnf / apk

537 

538パッケージとリポジトリ構成を削除します:

539 

540<Tabs>

541 <Tab title="apt">

542 ```bash theme={null}

543 sudo apt remove claude-code

544 sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.asc

545 ```

546 </Tab>

547 

548 <Tab title="dnf">

549 ```bash theme={null}

550 sudo dnf remove claude-code

551 sudo rm /etc/yum.repos.d/claude-code.repo

552 ```

553 </Tab>

554 

555 <Tab title="apk">

556 ```sh theme={null}

557 apk del claude-code

558 sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories

559 rm /etc/apk/keys/claude-code.rsa.pub

560 ```

561 </Tab>

562</Tabs>

563 

564### npm

565 

566グローバル npm パッケージを削除します:

567 

568```bash theme={null}

569npm uninstall -g @anthropic-ai/claude-code

570```

571 

572### 構成ファイルを削除

573 

574<Warning>

575 構成ファイルを削除すると、すべての設定、許可されたツール、MCP サーバー構成、およびセッション履歴が削除されます。

576</Warning>

577 

578VS Code 拡張機能、JetBrains プラグイン、および Desktop アプリも `~/.claude/` に書き込みます。それらのいずれかがまだインストールされている場合、ディレクトリは次回実行時に再作成されます。Claude Code を完全に削除するには、これらのファイルを削除する前に、[VS Code 拡張機能](/ja/vs-code#uninstall-the-extension)、JetBrains プラグイン、および Desktop アプリをアンインストールしてください。

579 

580Claude Code の設定とキャッシュされたデータを削除するには:

581 

582<Tabs>

583 <Tab title="macOS, Linux, WSL">

584 ```bash theme={null}

585 # ユーザー設定と状態を削除

586 rm -rf ~/.claude

587 rm ~/.claude.json

588 

589 # プロジェクト固有の設定を削除(プロジェクトディレクトリから実行)

590 rm -rf .claude

591 rm -f .mcp.json

592 ```

593 </Tab>

594 

595 <Tab title="Windows PowerShell">

596 ```powershell theme={null}

597 # ユーザー設定と状態を削除

598 Remove-Item -Path "$env:USERPROFILE\.claude" -Recurse -Force

599 Remove-Item -Path "$env:USERPROFILE\.claude.json" -Force

600 

601 # プロジェクト固有の設定を削除(プロジェクトディレクトリから実行)

602 Remove-Item -Path ".claude" -Recurse -Force

603 Remove-Item -Path ".mcp.json" -Force

604 ```

605 </Tab>

606</Tabs>

skills.md +728 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# スキルで Claude を拡張する

6 

7> Claude Code でスキルを作成、管理、共有して Claude の機能を拡張します。カスタムコマンドとバンドルされたスキルが含まれます。

8 

9スキルは Claude ができることを拡張します。`SKILL.md` ファイルに指示を記述すると、Claude はそれをツールキットに追加します。Claude は関連する場合にスキルを使用するか、`/skill-name` で直接呼び出すことができます。

10 

11同じプレイブック、チェックリスト、または複数ステップの手順をチャットに何度も貼り付けるときや、CLAUDE.md のセクションが事実ではなく手順に成長したときにスキルを作成します。CLAUDE.md コンテンツとは異なり、スキルの本体は使用されるときにのみ読み込まれるため、長いリファレンス資料は必要になるまでほぼコストがかかりません。

12 

13<Note>

14 `/help` や `/compact` などの組み込みコマンド、および `/debug` や `/simplify` などのバンドルされたスキルについては、[コマンドリファレンス](/ja/commands)を参照してください。

15 

16 **カスタムコマンドはスキルにマージされました。** `.claude/commands/deploy.md` のファイルと `.claude/skills/deploy/SKILL.md` のスキルの両方が `/deploy` を作成し、同じように機能します。既存の `.claude/commands/` ファイルは引き続き機能します。スキルは追加機能を提供します。サポートファイル用のディレクトリ、[スキルを呼び出すユーザーを制御する](#control-who-invokes-a-skill)ためのフロントマター、および Claude が関連する場合に自動的にスキルを読み込む機能です。

17</Note>

18 

19Claude Code スキルは [Agent Skills](https://agentskills.io) オープンスタンダードに従い、複数の AI ツール全体で機能します。Claude Code は [呼び出し制御](#control-who-invokes-a-skill)、[サブエージェント実行](#run-skills-in-a-subagent)、[動的コンテキスト注入](#inject-dynamic-context)などの追加機能でスタンダードを拡張します。

20 

21## バンドルされたスキル

22 

23Claude Code には、すべてのセッションで利用可能な一連のバンドルされたスキルが含まれています。これには `/simplify`、`/batch`、`/debug`、`/loop`、および `/claude-api` が含まれます。固定ロジックを直接実行する組み込みコマンドとは異なり、バンドルされたスキルはプロンプトベースです。Claude に詳細なプレイブックを提供し、ツールを使用して作業を調整させます。他のスキルと同じ方法で呼び出します。`/` の後にスキル名を入力します。

24 

25バンドルされたスキルは [コマンドリファレンス](/ja/commands)に組み込みコマンドと一緒にリストされており、目的列に**スキル**とマークされています。

26 

27## はじめに

28 

29### 最初のスキルを作成する

30 

31この例は、Claude に視覚的な図と類推を使用してコードを説明するように教えるスキルを作成します。デフォルトのフロントマターを使用するため、何かの仕組みを尋ねるときに Claude が自動的にスキルを読み込むか、`/explain-code` で直接呼び出すことができます。

32 

33<Steps>

34 <Step title="スキルディレクトリを作成する">

35 個人用スキルフォルダにスキル用のディレクトリを作成します。個人用スキルはすべてのプロジェクト全体で利用可能です。

36 

37 ```bash theme={null}

38 mkdir -p ~/.claude/skills/explain-code

39 ```

40 </Step>

41 

42 <Step title="SKILL.md を記述する">

43 すべてのスキルには `SKILL.md` ファイルが必要です。2 つの部分があります。YAML フロントマター(`---` マーカー間)は Claude にスキルをいつ使用するかを伝え、マークダウンコンテンツはスキルが呼び出されるときに Claude が従う指示です。ディレクトリ名は `/slash-command` になり、`description` は Claude がスキルを自動的に読み込むかどうかを決定するのに役立ちます。

44 

45 `~/.claude/skills/explain-code/SKILL.md` を作成します:

46 

47 ```yaml theme={null}

48 ---

49 description: Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks "how does this work?"

50 ---

51 

52 When explaining code, always include:

53 

54 1. **Start with an analogy**: Compare the code to something from everyday life

55 2. **Draw a diagram**: Use ASCII art to show the flow, structure, or relationships

56 3. **Walk through the code**: Explain step-by-step what happens

57 4. **Highlight a gotcha**: What's a common mistake or misconception?

58 

59 Keep explanations conversational. For complex concepts, use multiple analogies.

60 ```

61 </Step>

62 

63 <Step title="スキルをテストする">

64 2 つの方法でテストできます:

65 

66 **説明に一致するものを尋ねることで Claude に自動的に呼び出させます:**

67 

68 ```text theme={null}

69 How does this code work?

70 ```

71 

72 **またはスキル名で直接呼び出します:**

73 

74 ```text theme={null}

75 /explain-code src/auth/login.ts

76 ```

77 

78 どちらの方法でも、Claude の説明に類推と ASCII 図が含まれるはずです。

79 </Step>

80</Steps>

81 

82### スキルが存在する場所

83 

84スキルを保存する場所によって、誰がそれを使用できるかが決まります:

85 

86| 場所 | パス | 適用対象 |

87| :--------- | :--------------------------------------- | :----------- |

88| Enterprise | [管理設定](/ja/settings#settings-files)を参照 | 組織内のすべてのユーザー |

89| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | すべてのプロジェクト |

90| Project | `.claude/skills/<skill-name>/SKILL.md` | このプロジェクトのみ |

91| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | プラグインが有効な場所 |

92 

93スキルがレベル全体で同じ名前を共有する場合、enterprise は personal をオーバーライドし、personal はプロジェクトをオーバーライドします。プラグインスキルは `plugin-name:skill-name` 名前空間を使用するため、他のレベルと競合することはできません。`.claude/commands/` にファイルがある場合、それらは同じように機能しますが、スキルとコマンドが同じ名前を共有する場合、スキルが優先されます。

94 

95#### ライブ変更検出

96 

97Claude Code はスキルディレクトリのファイル変更を監視します。`~/.claude/skills/`、プロジェクト `.claude/skills/`、または `--add-dir` ディレクトリ内の `.claude/skills/` の下でスキルを追加、編集、または削除すると、再起動せずに現在のセッション内で有効になります。セッション開始時に存在しなかった最上位のスキルディレクトリを作成するには、Claude Code を再起動して新しいディレクトリを監視できるようにする必要があります。

98 

99#### ネストされたディレクトリからの自動検出

100 

101サブディレクトリ内のファイルを操作する場合、Claude Code はネストされた `.claude/skills/` ディレクトリからスキルを自動的に検出します。たとえば、`packages/frontend/` 内のファイルを編集している場合、Claude Code は `packages/frontend/.claude/skills/` でもスキルを探します。これはパッケージが独自のスキルを持つモノレポセットアップをサポートします。

102 

103各スキルは `SKILL.md` をエントリポイントとするディレクトリです:

104 

105```text theme={null}

106my-skill/

107├── SKILL.md # Main instructions (required)

108├── template.md # Template for Claude to fill in

109├── examples/

110│ └── sample.md # Example output showing expected format

111└── scripts/

112 └── validate.sh # Script Claude can execute

113```

114 

115`SKILL.md` はメイン指示を含み、必須です。他のファイルはオプションで、より強力なスキルを構築できます。Claude が入力するテンプレート、期待される形式を示す出力例、Claude が実行できるスクリプト、または詳細なリファレンスドキュメント。`SKILL.md` からこれらのファイルを参照して、Claude が各ファイルの内容と読み込むタイミングを知るようにします。詳細については、[サポートファイルを追加する](#add-supporting-files)を参照してください。

116 

117<Note>

118 `.claude/commands/` 内のファイルは引き続き機能し、同じ[フロントマター](#frontmatter-reference)をサポートします。スキルはサポートファイルなどの追加機能をサポートするため、推奨されます。

119</Note>

120 

121#### 追加ディレクトリからのスキル

122 

123`--add-dir` フラグは[ファイルアクセスを許可](/ja/permissions#additional-directories-grant-file-access-not-configuration)しますが、スキルは例外です。追加されたディレクトリ内の `.claude/skills/` は自動的に読み込まれます。[ライブ変更検出](#live-change-detection)を参照して、セッション中に編集がどのように取得されるかを確認してください。

124 

125その他の `.claude/` 設定(サブエージェント、コマンド、出力スタイル)は追加ディレクトリから読み込まれません。読み込まれるもの、読み込まれないもの、および設定をプロジェクト全体で共有するための推奨方法の完全なリストについては、[例外テーブル](/ja/permissions#additional-directories-grant-file-access-not-configuration)を参照してください。

126 

127<Note>

128 `--add-dir` ディレクトリの CLAUDE.md ファイルはデフォルトでは読み込まれません。読み込むには、`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` を設定します。[追加ディレクトリから読み込む](/ja/memory#load-from-additional-directories)を参照してください。

129</Note>

130 

131## スキルを設定する

132 

133スキルは `SKILL.md` の上部の YAML フロントマターと、その後に続くマークダウンコンテンツを通じて設定されます。

134 

135### スキルコンテンツのタイプ

136 

137スキルファイルには任意の指示を含めることができますが、それらを呼び出す方法を考えることは、含める内容をガイドするのに役立ちます:

138 

139**リファレンスコンテンツ** は Claude が現在の作業に適用する知識を追加します。規約、パターン、スタイルガイド、ドメイン知識。このコンテンツはインラインで実行されるため、Claude は会話コンテキストと一緒に使用できます。

140 

141```yaml theme={null}

142---

143name: api-conventions

144description: API design patterns for this codebase

145---

146 

147When writing API endpoints:

148- Use RESTful naming conventions

149- Return consistent error formats

150- Include request validation

151```

152 

153**タスクコンテンツ** は Claude に特定のアクション(デプロイ、コミット、コード生成など)のステップバイステップの指示を提供します。これらは多くの場合、Claude が実行を決定するのではなく、`/skill-name` で直接呼び出したいアクションです。`disable-model-invocation: true` を追加して、Claude が自動的にトリガーするのを防ぎます。

154 

155```yaml theme={null}

156---

157name: deploy

158description: Deploy the application to production

159context: fork

160disable-model-invocation: true

161---

162 

163Deploy the application:

1641. Run the test suite

1652. Build the application

1663. Push to the deployment target

167```

168 

169`SKILL.md` には何でも含めることができますが、スキルを呼び出す方法(ユーザー、Claude、またはその両方)と実行場所(インラインまたはサブエージェント)を考えることは、含める内容をガイドするのに役立ちます。複雑なスキルの場合、[サポートファイルを追加する](#add-supporting-files)ことで、メインスキルに焦点を当てることもできます。

170 

171### フロントマターリファレンス

172 

173マークダウンコンテンツを超えて、`SKILL.md` ファイルの上部の `---` マーカー間の YAML フロントマターフィールドを使用してスキルの動作を設定できます:

174 

175```yaml theme={null}

176---

177name: my-skill

178description: What this skill does

179disable-model-invocation: true

180allowed-tools: Read Grep

181---

182 

183Your skill instructions here...

184```

185 

186すべてのフィールドはオプションです。Claude がスキルをいつ使用するかを知るために、`description` のみが推奨されます。

187 

188| フィールド | 必須 | 説明 |

189| :------------------------- | :-- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

190| `name` | いいえ | スキルの表示名。省略した場合、ディレクトリ名を使用します。小文字、数字、ハイフンのみ(最大 64 文字)。 |

191| `description` | 推奨 | スキルが何をするか、いつ使用するか。Claude はこれを使用してスキルを適用するかどうかを決定します。省略した場合、マークダウンコンテンツの最初の段落を使用します。主要なユースケースを前置きしてください。スキルリストのコンテキスト使用量を削減するため、`description` と `when_to_use` の組み合わせテキストは 1,536 文字で短縮されます。 |

192| `when_to_use` | いいえ | Claude がスキルを呼び出すべき場合の追加コンテキスト(トリガーフレーズやリクエスト例など)。スキルリストの `description` に追加され、1,536 文字の上限にカウントされます。 |

193| `argument-hint` | いいえ | 予想される引数を示すためにオートコンプリート中に表示されるヒント。例:`[issue-number]` または `[filename] [format]`。 |

194| `arguments` | いいえ | スキルコンテンツの [`$name` 置換](#available-string-substitutions)用の名前付き位置引数。スペース区切り文字列または YAML リストを受け入れます。名前は順序で位置にマップされます。 |

195| `disable-model-invocation` | いいえ | Claude がこのスキルを自動的に読み込むのを防ぐには `true` に設定します。`/name` で手動でトリガーするワークフロー用です。また、スキルが[サブエージェントにプリロードされる](/ja/sub-agents#preload-skills-into-subagents)のを防ぎます。デフォルト:`false`。 |

196| `user-invocable` | いいえ | `/` メニューから非表示にするには `false` に設定します。ユーザーが直接呼び出すべきではないバックグラウンド知識用です。デフォルト:`true`。 |

197| `allowed-tools` | いいえ | このスキルがアクティブな場合、Claude が許可を求めずに使用できるツール。スペース区切り文字列または YAML リストを受け入れます。 |

198| `model` | いいえ | このスキルがアクティブな場合に使用するモデル。オーバーライドは現在のターンの残りに適用され、設定に保存されません。セッションモデルは次のプロンプトで再開されます。[`/model`](/ja/model-config)と同じ値を受け入れるか、アクティブなモデルを保持するために `inherit` を受け入れます。 |

199| `effort` | いいえ | [努力レベル](/ja/model-config#adjust-effort-level)(このスキルがアクティブな場合)。セッション努力レベルをオーバーライドします。デフォルト:セッションから継承。オプション:`low`、`medium`、`high`、`xhigh`、`max`。利用可能なレベルはモデルに依存します。 |

200| `context` | いいえ | フォークされたサブエージェントコンテキストで実行するには `fork` に設定します。 |

201| `agent` | いいえ | `context: fork` が設定されている場合に使用するサブエージェントタイプ。 |

202| `hooks` | いいえ | このスキルのライフサイクルにスコープされたフック。設定形式については、[スキルとエージェントのフック](/ja/hooks#hooks-in-skills-and-agents)を参照してください。 |

203| `paths` | いいえ | このスキルがアクティブ化されるタイミングを制限する Glob パターン。カンマ区切り文字列または YAML リストを受け入れます。設定されている場合、Claude はパターンに一致するファイルを操作する場合にのみ、スキルを自動的に読み込みます。[パス固有のルール](/ja/memory#path-specific-rules)と同じ形式を使用します。 |

204| `shell` | いいえ | このスキルの `` !`command` `` および ` ```! ` ブロックに使用するシェル。`bash`(デフォルト)または `powershell` を受け入れます。`powershell` を設定すると、Windows 上で PowerShell 経由でインラインシェルコマンドが実行されます。`CLAUDE_CODE_USE_POWERSHELL_TOOL=1` が必要です。 |

205 

206#### 利用可能な文字列置換

207 

208スキルはスキルコンテンツの動的値の文字列置換をサポートします:

209 

210| 変数 | 説明 |

211| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

212| `$ARGUMENTS` | スキルを呼び出すときに渡されたすべての引数。`$ARGUMENTS` がコンテンツに存在しない場合、引数は `ARGUMENTS: <value>` として追加されます。 |

213| `$ARGUMENTS[N]` | 0 ベースのインデックスで特定の引数にアクセスします(例:最初の引数の場合は `$ARGUMENTS[0]`)。 |

214| `$N` | `$ARGUMENTS[N]` の短縮形(例:最初の引数の場合は `$0`、2 番目の引数の場合は `$1`)。 |

215| `$name` | [`arguments`](#frontmatter-reference) フロントマターリストで宣言された名前付き引数。名前は順序で位置にマップされるため、`arguments: [issue, branch]` の場合、プレースホルダー `$issue` は最初の引数に展開され、`$branch` は 2 番目の引数に展開されます。 |

216| `${CLAUDE_SESSION_ID}` | 現在のセッション ID。ログ、セッション固有のファイルの作成、またはスキル出力とセッションの相関付けに便利です。 |

217| `${CLAUDE_EFFORT}` | 現在の努力レベル:`low`、`medium`、`high`、`xhigh`、または `max`。スキル指示をアクティブな努力設定に適応させるために使用します。 |

218| `${CLAUDE_SKILL_DIR}` | スキルの `SKILL.md` ファイルを含むディレクトリ。プラグインスキルの場合、これはプラグインルートではなく、プラグイン内のスキルのサブディレクトリです。bash インジェクションコマンドでこれを使用して、現在の作業ディレクトリに関係なく、スキルにバンドルされたスクリプトまたはファイルを参照します。 |

219 

220インデックス付き引数はシェルスタイルのクォートを使用するため、複数単語の値をシングル引数として渡すためにクォートで囲みます。たとえば、`/my-skill "hello world" second` は `$0` を `hello world` に、`$1` を `second` に展開します。`$ARGUMENTS` プレースホルダーは常に、入力されたとおりの完全な引数文字列に展開されます。

221 

222**置換を使用した例:**

223 

224```yaml theme={null}

225---

226name: session-logger

227description: Log activity for this session

228---

229 

230Log the following to logs/${CLAUDE_SESSION_ID}.log:

231 

232$ARGUMENTS

233```

234 

235### サポートファイルを追加する

236 

237スキルはディレクトリ内に複数のファイルを含めることができます。これにより、`SKILL.md` は本質的なものに焦点を当てながら、Claude は必要な場合にのみ詳細なリファレンス資料にアクセスできます。大規模なリファレンスドキュメント、API 仕様、または例のコレクションは、スキルが実行されるたびにコンテキストに読み込む必要はありません。

238 

239```text theme={null}

240my-skill/

241├── SKILL.md (required - overview and navigation)

242├── reference.md (detailed API docs - loaded when needed)

243├── examples.md (usage examples - loaded when needed)

244└── scripts/

245 └── helper.py (utility script - executed, not loaded)

246```

247 

248`SKILL.md` からサポートファイルを参照して、Claude が各ファイルの内容と読み込むタイミングを知るようにします:

249 

250```markdown theme={null}

251## Additional resources

252 

253- For complete API details, see [reference.md](reference.md)

254- For usage examples, see [examples.md](examples.md)

255```

256 

257<Tip>`SKILL.md` を 500 行以下に保ちます。詳細なリファレンス資料を別のファイルに移動します。</Tip>

258 

259### スキルを呼び出すユーザーを制御する

260 

261デフォルトでは、ユーザーと Claude の両方がスキルを呼び出すことができます。`/skill-name` を入力して直接呼び出すことができ、Claude は会話に関連する場合に自動的にスキルを読み込むことができます。2 つのフロントマターフィールドでこれを制限できます:

262 

263* **`disable-model-invocation: true`**:ユーザーのみがスキルを呼び出すことができます。`/commit`、`/deploy`、`/send-slack-message` など、副作用があるワークフロー、またはタイミングを制御したいワークフロー用です。コードが準備完了に見えるため、Claude がデプロイを決定することは望ましくありません。

264 

265* **`user-invocable: false`**:Claude のみがスキルを呼び出すことができます。アクションとして実行できないバックグラウンド知識用です。`legacy-system-context` スキルは古いシステムの仕組みを説明します。Claude はこれが関連する場合に知っているべきですが、`/legacy-system-context` はユーザーが実行する意味のあるアクションではありません。

266 

267この例は、ユーザーのみがトリガーできるデプロイスキルを作成します。`disable-model-invocation: true` フィールドは Claude が自動的に実行するのを防ぎます:

268 

269```yaml theme={null}

270---

271name: deploy

272description: Deploy the application to production

273disable-model-invocation: true

274---

275 

276Deploy $ARGUMENTS to production:

277 

2781. Run the test suite

2792. Build the application

2803. Push to the deployment target

2814. Verify the deployment succeeded

282```

283 

2842 つのフィールドが呼び出しとコンテキスト読み込みにどのように影響するかは次のとおりです:

285 

286| フロントマター | ユーザーが呼び出せる | Claude が呼び出せる | コンテキストに読み込まれるタイミング |

287| :------------------------------- | :--------- | :------------ | :------------------------------------- |

288| (デフォルト) | はい | はい | 説明は常にコンテキストに含まれ、呼び出されるとフルスキルが読み込まれます |

289| `disable-model-invocation: true` | はい | いいえ | 説明はコンテキストに含まれず、ユーザーが呼び出すとフルスキルが読み込まれます |

290| `user-invocable: false` | いいえ | はい | 説明は常にコンテキストに含まれ、呼び出されるとフルスキルが読み込まれます |

291 

292<Note>

293 通常のセッションでは、スキルの説明がコンテキストに読み込まれるため、Claude は利用可能なものを知っていますが、フルスキルコンテンツは呼び出されるときにのみ読み込まれます。[プリロードされたスキルを持つサブエージェント](/ja/sub-agents#preload-skills-into-subagents)は異なります。フルスキルコンテンツはスタートアップで注入されます。

294</Note>

295 

296### スキルコンテンツのライフサイクル

297 

298ユーザーまたは Claude がスキルを呼び出すと、レンダリングされた `SKILL.md` コンテンツは会話に単一のメッセージとして入力され、セッションの残りの間そこに留まります。Claude Code は後のターンでスキルファイルを再度読み込まないため、タスク全体を通じて適用すべきガイダンスを 1 回限りのステップではなく、スタンディング指示として記述します。

299 

300[自動コンパクション](/ja/how-claude-code-works#when-context-fills-up)は、トークン予算内で呼び出されたスキルを前方に運びます。会話が要約されてコンテキストを解放するとき、Claude Code は各スキルの最新の呼び出しを要約の後に再度アタッチし、最初の 5,000 トークンを保持します。再度アタッチされたスキルは 25,000 トークンの合計予算を共有します。Claude Code はこの予算を最近呼び出されたスキルから開始して埋めるため、セッション内で多くのスキルを呼び出した場合、古いスキルはコンパクション後に完全にドロップされる可能性があります。

301 

302スキルが最初の応答の後に動作に影響を与えるのを停止しているように見える場合、コンテンツは通常まだ存在し、モデルは他のツールまたはアプローチを選択しています。スキルの `description` と指示を強化して、モデルがそれを優先し続けるようにするか、[フック](/ja/hooks)を使用して動作を決定的に強制します。スキルが大きいか、その後に他のスキルを多く呼び出した場合、コンパクション後にそれを再度呼び出して、フルコンテンツを復元します。

303 

304### スキルのツールを事前承認する

305 

306`allowed-tools` フィールドは、スキルがアクティブな場合、リストされたツールの権限を付与するため、Claude はあなたに承認を求めることなくそれらを使用できます。これは利用可能なツールを制限しません。すべてのツールは呼び出し可能なままであり、[権限設定](/ja/permissions)は引き続き、リストされていないツールのツール承認を管理します。

307 

308このスキルは、スキルを呼び出すときはいつでも、Claude が git コマンドを実行できるようにします:

309 

310```yaml theme={null}

311---

312name: commit

313description: Stage and commit the current changes

314disable-model-invocation: true

315allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *)

316---

317```

318 

319スキルが特定のツールを使用するのをブロックするには、代わりに[権限設定](/ja/permissions)に拒否ルールを追加します。

320 

321### スキルに引数を渡す

322 

323ユーザーと Claude の両方がスキルを呼び出すときに引数を渡すことができます。引数は `$ARGUMENTS` プレースホルダーを通じて利用可能です。

324 

325このスキルは GitHub の問題を番号で修正します。`$ARGUMENTS` プレースホルダーはスキル名の後に続くものに置き換えられます:

326 

327```yaml theme={null}

328---

329name: fix-issue

330description: Fix a GitHub issue

331disable-model-invocation: true

332---

333 

334Fix GitHub issue $ARGUMENTS following our coding standards.

335 

3361. Read the issue description

3372. Understand the requirements

3383. Implement the fix

3394. Write tests

3405. Create a commit

341```

342 

343`/fix-issue 123` を実行すると、Claude は「Fix GitHub issue 123 following our coding standards...」を受け取ります。

344 

345引数を使用してスキルを呼び出しても、スキルに `$ARGUMENTS` が含まれていない場合、Claude Code はスキルコンテンツの最後に `ARGUMENTS: <your input>` を追加するため、Claude は入力したものを引き続き見ることができます。

346 

347位置で個別の引数にアクセスするには、`$ARGUMENTS[N]` または短い `$N` を使用します:

348 

349```yaml theme={null}

350---

351name: migrate-component

352description: Migrate a component from one framework to another

353---

354 

355Migrate the $ARGUMENTS[0] component from $ARGUMENTS[1] to $ARGUMENTS[2].

356Preserve all existing behavior and tests.

357```

358 

359`/migrate-component SearchBar React Vue` を実行すると、`$ARGUMENTS[0]` が `SearchBar` に、`$ARGUMENTS[1]` が `React` に、`$ARGUMENTS[2]` が `Vue` に置き換えられます。`$N` 短縮形を使用する同じスキル:

360 

361```yaml theme={null}

362---

363name: migrate-component

364description: Migrate a component from one framework to another

365---

366 

367Migrate the $0 component from $1 to $2.

368Preserve all existing behavior and tests.

369```

370 

371## 高度なパターン

372 

373### 動的コンテキストを注入する

374 

375`` !`<command>` `` 構文はスキルコンテンツが Claude に送信される前にシェルコマンドを実行します。コマンド出力はプレースホルダーを置き換えるため、Claude はコマンド自体ではなく実際のデータを受け取ります。

376 

377このスキルは GitHub CLI でライブ PR データを取得することで、プルリクエストを要約します。`` !`gh pr diff` `` および他のコマンドが最初に実行され、その出力がプロンプトに挿入されます:

378 

379```yaml theme={null}

380---

381name: pr-summary

382description: Summarize changes in a pull request

383context: fork

384agent: Explore

385allowed-tools: Bash(gh *)

386---

387 

388## Pull request context

389- PR diff: !`gh pr diff`

390- PR comments: !`gh pr view --comments`

391- Changed files: !`gh pr diff --name-only`

392 

393## Your task

394Summarize this pull request...

395```

396 

397このスキルが実行されるとき:

398 

3991. 各 `` !`<command>` `` が直ちに実行されます(Claude が何かを見る前に)

4002. 出力はスキルコンテンツのプレースホルダーを置き換えます

4013. Claude は実際の PR データを含む完全にレンダリングされたプロンプトを受け取ります

402 

403これは前処理であり、Claude が実行するものではありません。Claude は最終結果のみを見ます。

404 

405複数行のコマンドの場合、インラインフォーム `` !`<command>` `` の代わりに、` ```! ` で開かれたフェンスコードブロックを使用します:

406 

407````markdown theme={null}

408## Environment

409```!

410node --version

411npm --version

412git status --short

413```

414````

415 

416ユーザー、プロジェクト、プラグイン、または[追加ディレクトリ](#skills-from-additional-directories)ソースからのスキルとカスタムコマンドについて、この動作を無効にするには、[設定](/ja/settings)で `"disableSkillShellExecution": true` を設定します。各コマンドは `[shell command execution disabled by policy]` に置き換えられます。バンドルされたスキルと管理スキルは影響を受けません。この設定は[管理設定](/ja/permissions#managed-settings)で最も有用です。ユーザーはそれをオーバーライドできません。

417 

418<Tip>

419 スキルで[拡張思考](/ja/common-workflows#use-extended-thinking-thinking-mode)を有効にするには、スキルコンテンツのどこかに「ultrathink」という単語を含めます。

420</Tip>

421 

422### スキルをサブエージェントで実行する

423 

424スキルを分離して実行したい場合は、フロントマターに `context: fork` を追加します。スキルコンテンツはサブエージェントを駆動するプロンプトになります。会話履歴にアクセスできません。

425 

426<Warning>

427 `context: fork` は明示的な指示を含むスキルにのみ意味があります。スキルにタスクなしで「これらの API 規約を使用する」などのガイドラインが含まれている場合、サブエージェントはガイドラインを受け取りますが、実行可能なプロンプトがなく、意味のある出力なしで返されます。

428</Warning>

429 

430スキルと[サブエージェント](/ja/sub-agents)は 2 つの方向で連携します:

431 

432| アプローチ | システムプロンプト | タスク | また読み込む |

433| :------------------------ | :------------------------------- | :-------------- | :---------------------- |

434| `context: fork` を持つスキル | エージェントタイプから(`Explore`、`Plan` など) | SKILL.md コンテンツ | CLAUDE.md |

435| `skills` フィールドを持つサブエージェント | サブエージェントのマークダウン本体 | Claude の委任メッセージ | プリロードされたスキル + CLAUDE.md |

436 

437`context: fork` を使用すると、スキルにタスクを記述し、実行するエージェントタイプを選択します。逆の場合(スキルをリファレンス資料として使用するカスタムサブエージェントを定義する)については、[サブエージェント](/ja/sub-agents#preload-skills-into-subagents)を参照してください。

438 

439#### 例:Explore エージェントを使用した研究スキル

440 

441このスキルはフォークされた Explore エージェントで研究を実行します。スキルコンテンツはタスクになり、エージェントはコードベース探索に最適化された読み取り専用ツールを提供します:

442 

443```yaml theme={null}

444---

445name: deep-research

446description: Research a topic thoroughly

447context: fork

448agent: Explore

449---

450 

451Research $ARGUMENTS thoroughly:

452 

4531. Find relevant files using Glob and Grep

4542. Read and analyze the code

4553. Summarize findings with specific file references

456```

457 

458このスキルが実行されるとき:

459 

4601. 新しい分離されたコンテキストが作成されます

4612. サブエージェントはスキルコンテンツをプロンプト(「\$ARGUMENTS を徹底的に調査...」)として受け取ります

4623. `agent` フィールドは実行環境(モデル、ツール、権限)を決定します

4634. 結果は要約され、メイン会話に返されます

464 

465`agent` フィールドは使用するサブエージェント設定を指定します。オプションには、組み込みエージェント(`Explore`、`Plan`、`general-purpose`)または `.claude/agents/` からのカスタムサブエージェントが含まれます。省略した場合、`general-purpose` を使用します。

466 

467### Claude のスキルアクセスを制限する

468 

469デフォルトでは、Claude は `disable-model-invocation: true` が設定されていないスキルを呼び出すことができます。`allowed-tools` を定義するスキルは、スキルがアクティブな場合、これらのツールへのアクセスを許可なしで Claude に付与します。[権限設定](/ja/permissions)は引き続き、他のすべてのツールのベースライン承認動作を管理します。`/init`、`/review`、`/security-review` などの組み込みコマンドも Skill ツールを通じて利用可能です。`/compact` などの他の組み込みコマンドはそうではありません。

470 

471Claude が呼び出すことができるスキルを制御する 3 つの方法:

472 

473**すべてのスキルを無効にする** には、`/permissions` で Skill ツールを拒否します:

474 

475```text theme={null}

476# Add to deny rules:

477Skill

478```

479 

480**特定のスキルを許可または拒否する** には、[権限ルール](/ja/permissions)を使用します:

481 

482```text theme={null}

483# Allow only specific skills

484Skill(commit)

485Skill(review-pr *)

486 

487# Deny specific skills

488Skill(deploy *)

489```

490 

491権限構文:完全一致の場合は `Skill(name)`、任意の引数を含むプレフィックス一致の場合は `Skill(name *)`。

492 

493**個別のスキルを非表示にする** には、フロントマターに `disable-model-invocation: true` を追加します。これにより、スキルが Claude のコンテキストから完全に削除されます。

494 

495<Note>

496 `user-invocable` フィールドはメニューの可視性のみを制御し、Skill ツールアクセスは制御しません。プログラムによる呼び出しをブロックするには `disable-model-invocation: true` を使用します。

497</Note>

498 

499## スキルを共有する

500 

501スキルはオーディエンスに応じて異なるスコープで配布できます:

502 

503* **プロジェクトスキル**:`.claude/skills/` をバージョン管理にコミットします

504* **プラグイン**:[プラグイン](/ja/plugins)に `skills/` ディレクトリを作成します

505* **管理**:[管理設定](/ja/settings#settings-files)を通じて組織全体にデプロイします

506 

507### 視覚的な出力を生成する

508 

509スキルは任意の言語でスクリプトをバンドルして実行でき、Claude に単一のプロンプトで可能なもの以上の機能を提供します。1 つの強力なパターンは視覚的な出力を生成することです。ブラウザで開くインタラクティブな HTML ファイルで、データの探索、デバッグ、またはレポートの作成に使用できます。

510 

511この例はコードベースエクスプローラーを作成します。ディレクトリを展開および折りたたむことができるインタラクティブなツリービュー、一目でファイルサイズを確認でき、ファイルタイプを色で識別できます。

512 

513スキルディレクトリを作成します:

514 

515```bash theme={null}

516mkdir -p ~/.claude/skills/codebase-visualizer/scripts

517```

518 

519`~/.claude/skills/codebase-visualizer/SKILL.md` を作成します。説明は Claude にこのスキルをいつアクティブにするかを伝え、指示は Claude にバンドルされたスクリプトを実行するよう伝えます:

520 

521````yaml theme={null}

522---

523name: codebase-visualizer

524description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.

525allowed-tools: Bash(python *)

526---

527 

528# Codebase Visualizer

529 

530Generate an interactive HTML tree view that shows your project's file structure with collapsible directories.

531 

532## Usage

533 

534Run the visualization script from your project root:

535 

536```bash

537python ~/.claude/skills/codebase-visualizer/scripts/visualize.py .

538```

539 

540This creates `codebase-map.html` in the current directory and opens it in your default browser.

541 

542## What the visualization shows

543 

544- **Collapsible directories**: Click folders to expand/collapse

545- **File sizes**: Displayed next to each file

546- **Colors**: Different colors for different file types

547- **Directory totals**: Shows aggregate size of each folder

548````

549 

550`~/.claude/skills/codebase-visualizer/scripts/visualize.py` を作成します。このスクリプトはディレクトリツリーをスキャンし、以下を含む自己完結型の HTML ファイルを生成します:

551 

552* ファイル数、ディレクトリ数、合計サイズ、ファイルタイプ数を示す**サマリーサイドバー**

553* コードベースをファイルタイプ別に分類する**棒グラフ**(サイズ別トップ 8)

554* ディレクトリを展開および折りたたむことができる**折りたたみ可能なツリー**(色分けされたファイルタイプインジケーター付き)

555 

556スクリプトは Python が必要ですが、組み込みライブラリのみを使用するため、インストールするパッケージはありません:

557 

558```python expandable theme={null}

559#!/usr/bin/env python3

560"""Generate an interactive collapsible tree visualization of a codebase."""

561 

562import json

563import sys

564import webbrowser

565from pathlib import Path

566from collections import Counter

567 

568IGNORE = {'.git', 'node_modules', '__pycache__', '.venv', 'venv', 'dist', 'build'}

569 

570def scan(path: Path, stats: dict) -> dict:

571 result = {"name": path.name, "children": [], "size": 0}

572 try:

573 for item in sorted(path.iterdir()):

574 if item.name in IGNORE or item.name.startswith('.'):

575 continue

576 if item.is_file():

577 size = item.stat().st_size

578 ext = item.suffix.lower() or '(no ext)'

579 result["children"].append({"name": item.name, "size": size, "ext": ext})

580 result["size"] += size

581 stats["files"] += 1

582 stats["extensions"][ext] += 1

583 stats["ext_sizes"][ext] += size

584 elif item.is_dir():

585 stats["dirs"] += 1

586 child = scan(item, stats)

587 if child["children"]:

588 result["children"].append(child)

589 result["size"] += child["size"]

590 except PermissionError:

591 pass

592 return result

593 

594def generate_html(data: dict, stats: dict, output: Path) -> None:

595 ext_sizes = stats["ext_sizes"]

596 total_size = sum(ext_sizes.values()) or 1

597 sorted_exts = sorted(ext_sizes.items(), key=lambda x: -x[1])[:8]

598 colors = {

599 '.js': '#f7df1e', '.ts': '#3178c6', '.py': '#3776ab', '.go': '#00add8',

600 '.rs': '#dea584', '.rb': '#cc342d', '.css': '#264de4', '.html': '#e34c26',

601 '.json': '#6b7280', '.md': '#083fa1', '.yaml': '#cb171e', '.yml': '#cb171e',

602 '.mdx': '#083fa1', '.tsx': '#3178c6', '.jsx': '#61dafb', '.sh': '#4eaa25',

603 }

604 lang_bars = "".join(

605 f'<div class="bar-row"><span class="bar-label">{ext}</span>'

606 f'<div class="bar" style="width:{(size/total_size)*100}%;background:{colors.get(ext,"#6b7280")}"></div>'

607 f'<span class="bar-pct">{(size/total_size)*100:.1f}%</span></div>'

608 for ext, size in sorted_exts

609 )

610 def fmt(b):

611 if b < 1024: return f"{b} B"

612 if b < 1048576: return f"{b/1024:.1f} KB"

613 return f"{b/1048576:.1f} MB"

614 

615 html = f'''<!DOCTYPE html>

616<html><head>

617 <meta charset="utf-8"><title>Codebase Explorer</title>

618 <style>

619 body {{ font: 14px/1.5 system-ui, sans-serif; margin: 0; background: #1a1a2e; color: #eee; }}

620 .container {{ display: flex; height: 100vh; }}

621 .sidebar {{ width: 280px; background: #252542; padding: 20px; border-right: 1px solid #3d3d5c; overflow-y: auto; flex-shrink: 0; }}

622 .main {{ flex: 1; padding: 20px; overflow-y: auto; }}

623 h1 {{ margin: 0 0 10px 0; font-size: 18px; }}

624 h2 {{ margin: 20px 0 10px 0; font-size: 14px; color: #888; text-transform: uppercase; }}

625 .stat {{ display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #3d3d5c; }}

626 .stat-value {{ font-weight: bold; }}

627 .bar-row {{ display: flex; align-items: center; margin: 6px 0; }}

628 .bar-label {{ width: 55px; font-size: 12px; color: #aaa; }}

629 .bar {{ height: 18px; border-radius: 3px; }}

630 .bar-pct {{ margin-left: 8px; font-size: 12px; color: #666; }}

631 .tree {{ list-style: none; padding-left: 20px; }}

632 details {{ cursor: pointer; }}

633 summary {{ padding: 4px 8px; border-radius: 4px; }}

634 summary:hover {{ background: #2d2d44; }}

635 .folder {{ color: #ffd700; }}

636 .file {{ display: flex; align-items: center; padding: 4px 8px; border-radius: 4px; }}

637 .file:hover {{ background: #2d2d44; }}

638 .size {{ color: #888; margin-left: auto; font-size: 12px; }}

639 .dot {{ width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; }}

640 </style>

641</head><body>

642 <div class="container">

643 <div class="sidebar">

644 <h1>📊 Summary</h1>

645 <div class="stat"><span>Files</span><span class="stat-value">{stats["files"]:,}</span></div>

646 <div class="stat"><span>Directories</span><span class="stat-value">{stats["dirs"]:,}</span></div>

647 <div class="stat"><span>Total size</span><span class="stat-value">{fmt(data["size"])}</span></div>

648 <div class="stat"><span>File types</span><span class="stat-value">{len(stats["extensions"])}</span></div>

649 <h2>By file type</h2>

650 {lang_bars}

651 </div>

652 <div class="main">

653 <h1>📁 {data["name"]}</h1>

654 <ul class="tree" id="root"></ul>

655 </div>

656 </div>

657 <script>

658 const data = {json.dumps(data)};

659 const colors = {json.dumps(colors)};

660 function fmt(b) {{ if (b < 1024) return b + ' B'; if (b < 1048576) return (b/1024).toFixed(1) + ' KB'; return (b/1048576).toFixed(1) + ' MB'; }}

661 function render(node, parent) {{

662 if (node.children) {{

663 const det = document.createElement('details');

664 det.open = parent === document.getElementById('root');

665 det.innerHTML = `<summary><span class="folder">📁 ${{node.name}}</span><span class="size">${{fmt(node.size)}}</span></summary>`;

666 const ul = document.createElement('ul'); ul.className = 'tree';

667 node.children.sort((a,b) => (b.children?1:0)-(a.children?1:0) || a.name.localeCompare(b.name));

668 node.children.forEach(c => render(c, ul));

669 det.appendChild(ul);

670 const li = document.createElement('li'); li.appendChild(det); parent.appendChild(li);

671 }} else {{

672 const li = document.createElement('li'); li.className = 'file';

673 li.innerHTML = `<span class="dot" style="background:${{colors[node.ext]||'#6b7280'}}"></span>${{node.name}}<span class="size">${{fmt(node.size)}}</span>`;

674 parent.appendChild(li);

675 }}

676 }}

677 data.children.forEach(c => render(c, document.getElementById('root')));

678 </script>

679</body></html>'''

680 output.write_text(html)

681 

682if __name__ == '__main__':

683 target = Path(sys.argv[1] if len(sys.argv) > 1 else '.').resolve()

684 stats = {"files": 0, "dirs": 0, "extensions": Counter(), "ext_sizes": Counter()}

685 data = scan(target, stats)

686 out = Path('codebase-map.html')

687 generate_html(data, stats, out)

688 print(f'Generated {out.absolute()}')

689 webbrowser.open(f'file://{out.absolute()}')

690```

691 

692テストするには、任意のプロジェクトで Claude Code を開き、「Visualize this codebase」と尋ねます。Claude はスクリプトを実行し、`codebase-map.html` を生成し、ブラウザで開きます。

693 

694このパターンは任意の視覚的な出力に機能します。依存関係グラフ、テストカバレッジレポート、API ドキュメント、またはデータベーススキーマの視覚化。バンドルされたスクリプトが重い処理を行い、Claude が調整を処理します。

695 

696## トラブルシューティング

697 

698### スキルがトリガーされない

699 

700Claude がスキルを期待どおりに使用しない場合:

701 

7021. 説明にユーザーが自然に言うキーワードが含まれていることを確認します

7032. スキルが「利用可能なスキルは何ですか?」に表示されることを確認します

7043. 説明により密接に一致するようにリクエストを言い換えてみます

7054. スキルがユーザー呼び出し可能な場合は、`/skill-name` で直接呼び出してみます

706 

707### スキルが頻繁にトリガーされる

708 

709Claude がスキルを使用したくない場合:

710 

7111. 説明をより具体的にします

7122. スキルを手動で呼び出したい場合のみ `disable-model-invocation: true` を追加します

713 

714### スキルの説明が短縮される

715 

716スキルの説明がコンテキストに読み込まれるため、Claude は利用可能なものを知っています。すべてのスキル名は常に含まれていますが、多くのスキルがある場合、説明は文字予算に合わせて短縮される可能性があり、Claude が一致するために必要なキーワードを削除できます。予算はコンテキストウィンドウの 1% で動的にスケーリングされ、8,000 文字のフォールバックがあります。

717 

718制限を上げるには、`SLASH_COMMAND_TOOL_CHAR_BUDGET` 環境変数を設定します。またはソースで `description` と `when_to_use` テキストをトリミングします。各エントリの組み合わせテキストは予算に関係なく 1,536 文字でキャップされているため、主要なユースケースを前置きしてください。

719 

720## 関連リソース

721 

722* **[設定をデバッグする](/ja/debug-your-config)**:スキルが表示されない、またはトリガーされない理由を診断する

723* **[サブエージェント](/ja/sub-agents)**:特化したエージェントにタスクを委任する

724* **[プラグイン](/ja/plugins)**:他の拡張機能でスキルをパッケージ化して配布する

725* **[フック](/ja/hooks)**:ツールイベント周辺のワークフローを自動化する

726* **[メモリ](/ja/memory)**:永続的なコンテキストのための CLAUDE.md ファイルを管理する

727* **[コマンド](/ja/commands)**:組み込みコマンドとバンドルされたスキルのリファレンス

728* **[権限](/ja/permissions)**:ツールとスキルアクセスを制御する

slack.md +210 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Slack での Claude Code

6 

7> Slack ワークスペースから直接コーディングタスクを委任する

8 

9Slack での Claude Code は、Claude Code の機能を Slack ワークスペースに直接もたらします。`@Claude` にコーディングタスクをメンションすると、Claude は自動的に意図を検出し、ウェブ上で Claude Code セッションを作成します。これにより、チームの会話を離れることなく開発作業を委任できます。

10 

11この統合は既存の Claude for Slack アプリに基づいていますが、コーディング関連のリクエストに対して Claude Code ウェブへのインテリジェントなルーティングを追加しています。

12 

13## ユースケース

14 

15* **バグ調査と修正**: Slack チャネルで報告されたバグを Claude に調査・修正させます。

16* **迅速なコードレビューと修正**: Claude にチームのフィードバックに基づいて小さな機能を実装したりコードをリファクタリングさせます。

17* **協調的なデバッグ**: チームの議論が重要なコンテキスト(エラーの再現やユーザーレポートなど)を提供する場合、Claude はその情報を使用してデバッグアプローチを知らせることができます。

18* **並列タスク実行**: Slack でコーディングタスクを開始しながら他の作業を続け、完了時に通知を受け取ります。

19 

20## 前提条件

21 

22Claude Code in Slack を使用する前に、以下を確認してください:

23 

24| 要件 | 詳細 |

25| :---------------- | :--------------------------------------------------------------------- |

26| Claude プラン | Pro、Max、Team、または Claude Code アクセス付き Enterprise(プレミアムシート) |

27| ウェブ上の Claude Code | [ウェブ上の Claude Code](/ja/claude-code-on-the-web) へのアクセスが有効になっている必要があります |

28| GitHub アカウント | ウェブ上の Claude Code に接続され、少なくとも 1 つのリポジトリが認証されている |

29| Slack 認証 | Slack アカウントが Claude アプリを通じて Claude アカウントにリンクされている |

30 

31## Slack での Claude Code のセットアップ

32 

33<Steps>

34 <Step title="Slack に Claude アプリをインストールする">

35 ワークスペース管理者は Slack App Marketplace から Claude アプリをインストールする必要があります。[Slack App Marketplace](https://slack.com/marketplace/A08SF47R6P4) にアクセスして「Add to Slack」をクリックしてインストールプロセスを開始します。

36 </Step>

37 

38 <Step title="Claude アカウントを接続する">

39 アプリがインストールされた後、個別の Claude アカウントを認証します:

40 

41 1. Apps セクションで「Claude」をクリックして Slack で Claude アプリを開きます

42 2. App Home タブに移動します

43 3. 「Connect」をクリックして Slack アカウントを Claude アカウントにリンクします

44 4. ブラウザで認証フローを完了します

45 </Step>

46 

47 <Step title="ウェブ上の Claude Code を設定する">

48 ウェブ上の Claude Code が適切に設定されていることを確認します:

49 

50 * [claude.ai/code](https://claude.ai/code) にアクセスして、Slack に接続したのと同じアカウントでサインインします

51 * GitHub アカウントがまだ接続されていない場合は接続します

52 * Claude が作業するリポジトリを少なくとも 1 つ認証します

53 </Step>

54 

55 <Step title="ルーティングモードを選択する">

56 アカウントを接続した後、Claude が Slack のメッセージをどのように処理するかを設定します。Slack の Claude App Home に移動して、**ルーティングモード**設定を見つけます。

57 

58 | モード | 動作 |

59 | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |

60 | **Code のみ** | Claude はすべての @mentions を Claude Code セッションにルーティングします。Claude を Slack で開発タスク専用に使用するチームに最適です。 |

61 | **Code + Chat** | Claude は各メッセージを分析し、Claude Code(コーディングタスク用)と Claude Chat(執筆、分析、一般的な質問用)の間でインテリジェントにルーティングします。すべてのタイプの作業に対して単一の @Claude エントリポイントが必要なチームに最適です。 |

62 

63 <Note>

64 Code + Chat モードでは、Claude がメッセージを Chat にルーティングしたがコーディングセッションが必要な場合は、「Retry as Code」をクリックして Claude Code セッションを作成できます。同様に、Code にルーティングされたが Chat セッションが必要な場合は、そのスレッドでそのオプションを選択できます。

65 </Note>

66 </Step>

67</Steps>

68 

69## 仕組み

70 

71### 自動検出

72 

73Slack チャネルまたはスレッドで @Claude をメンションすると、Claude は自動的にメッセージを分析してコーディングタスクかどうかを判断します。Claude がコーディング意図を検出した場合、通常のチャットアシスタントとして応答する代わりに、リクエストをウェブ上の Claude Code にルーティングします。

74 

75また、Claude が自動的に検出しない場合でも、リクエストをコーディングタスクとして処理するよう Claude に明示的に指示することもできます。

76 

77<Note>

78 Slack での Claude Code はチャネル(公開または非公開)でのみ機能します。ダイレクトメッセージ(DM)では機能しません。

79</Note>

80 

81### コンテキスト収集

82 

83**スレッドから**: スレッドで @Claude をメンションすると、そのスレッド内のすべてのメッセージからコンテキストを収集して、完全な会話を理解します。

84 

85**チャネルから**: チャネルで直接メンションされた場合、Claude は関連するコンテキストについて最近のチャネルメッセージを確認します。

86 

87このコンテキストは Claude が問題を理解し、適切なリポジトリを選択し、タスクへのアプローチを知らせるのに役立ちます。

88 

89<Warning>

90 @Claude が Slack で呼び出されると、Claude はリクエストをより良く理解するために会話コンテキストへのアクセスが与えられます。Claude は他のメッセージからの指示に従う可能性があるため、ユーザーは信頼できる Slack 会話でのみ Claude を使用するようにしてください。

91</Warning>

92 

93### セッションフロー

94 

951. **開始**: @Claude にコーディングリクエストをメンションします

962. **検出**: Claude がメッセージを分析してコーディング意図を検出します

973. **セッション作成**: claude.ai/code で新しい Claude Code セッションが作成されます

984. **進捗更新**: Claude は作業が進むにつれて Slack スレッドにステータス更新を投稿します

995. **完了**: 完了時に、Claude は概要とアクションボタンを含めてあなたをメンションします

1006. **レビュー**: 「View Session」をクリックして完全なトランスクリプトを表示するか、「Create PR」をクリックしてプルリクエストを開きます

101 

102## ユーザーインターフェース要素

103 

104### App Home

105 

106App Home タブは接続ステータスを表示し、Claude アカウントを Slack から接続または切断できます。

107 

108### メッセージアクション

109 

110* **View Session**: ブラウザで完全な Claude Code セッションを開き、実行されたすべての作業、セッションの継続、または追加のリクエストを確認できます。

111* **Create PR**: セッションの変更から直接プルリクエストを作成します。

112* **Retry as Code**: Claude が最初はチャットアシスタントとして応答したがコーディングセッションが必要な場合は、このボタンをクリックしてリクエストを Claude Code タスクとして再試行します。

113* **Change Repo**: Claude が誤って選択した場合、別のリポジトリを選択できます。

114 

115### リポジトリ選択

116 

117Claude は Slack 会話のコンテキストに基づいてリポジトリを自動的に選択します。複数のリポジトリが適用される可能性がある場合、Claude は正しいものを選択できるドロップダウンを表示する場合があります。

118 

119## アクセスと権限

120 

121### ユーザーレベルのアクセス

122 

123| アクセスタイプ | 要件 |

124| :---------------- | :-------------------------------------------- |

125| Claude Code セッション | 各ユーザーは自分の Claude アカウントでセッションを実行します |

126| 使用状況とレート制限 | セッションは個別ユーザーのプラン制限に対してカウントされます |

127| リポジトリアクセス | ユーザーは個人的に接続したリポジトリにのみアクセスできます |

128| セッション履歴 | セッションは claude.ai/code の Claude Code 履歴に表示されます |

129 

130### ワークスペース管理者の権限

131 

132Slack ワークスペース管理者は、Claude アプリをワークスペースにインストールできるかどうかを制御します。その後、個別ユーザーが自分の Claude アカウントで認証して統合を使用します。

133 

134## どこでアクセスできるか

135 

136**Slack で**: ステータス更新、完了概要、アクションボタンが表示されます。完全なトランスクリプトは保存され、常にアクセス可能です。

137 

138**ウェブで**: 完全な Claude Code セッション、完全な会話履歴、すべてのコード変更、ファイル操作、セッションの継続またはプルリクエストの作成機能があります。

139 

140## ベストプラクティス

141 

142### 効果的なリクエストの作成

143 

144* **具体的に**: ファイル名、関数名、またはエラーメッセージが関連する場合は含めます。

145* **コンテキストを提供**: 会話から明確でない場合はリポジトリまたはプロジェクトをメンションします。

146* **成功を定義**: 「完了」とはどういう意味か説明します。Claude はテストを書くべきですか?ドキュメントを更新しますか?PR を作成しますか?

147* **スレッドを使用**: バグや機能について議論する場合はスレッドで返信して、Claude が完全なコンテキストを収集できるようにします。

148 

149### Slack とウェブの使い分け

150 

151**Slack を使用する場合**: コンテキストが既に Slack の議論に存在する場合、タスクを非同期で開始したい場合、またはチームメイトが可視性を必要とする場合に協力しています。

152 

153**ウェブを直接使用する場合**: ファイルをアップロードする必要がある場合、開発中のリアルタイムインタラクションが必要な場合、またはより長く複雑なタスクに取り組んでいる場合。

154 

155## トラブルシューティング

156 

157### セッションが開始しない

158 

1591. Claude アカウントが Claude App Home で接続されていることを確認します

1602. ウェブ上の Claude Code アクセスが有効になっていることを確認します

1613. Claude Code に接続された GitHub リポジトリが少なくとも 1 つあることを確認します

162 

163### リポジトリが表示されない

164 

1651. [claude.ai/code](https://claude.ai/code) で Claude Code on the web でリポジトリを接続します

1662. そのリポジトリの GitHub 権限を確認します

1673. GitHub アカウントを切断して再接続してみます

168 

169### 誤ったリポジトリが選択された

170 

1711. 「Change Repo」ボタンをクリックして別のリポジトリを選択します

1722. より正確な選択のためにリクエストにリポジトリ名を含めます

173 

174### 認証エラー

175 

1761. App Home で Claude アカウントを切断して再接続します

1772. ブラウザで正しい Claude アカウントにサインインしていることを確認します

1783. Claude プランに Claude Code アクセスが含まれていることを確認します

179 

180### セッション有効期限

181 

1821. セッションはウェブ上の Claude Code 履歴でアクセス可能なままです

1832. [claude.ai/code](https://claude.ai/code) から過去のセッションを継続または参照できます

184 

185## 現在の制限事項

186 

187* **GitHub のみ**: 現在、GitHub 上のリポジトリのみをサポートしています。

188* **一度に 1 つの PR**: 各セッションは 1 つのプルリクエストを作成できます。

189* **レート制限が適用**: セッションは個別の Claude プランのレート制限を使用します。

190* **ウェブアクセスが必要**: ユーザーは Claude Code on the web アクセスを持つ必要があります。持たないユーザーは標準的な Claude チャット応答のみを取得します。

191 

192## 関連リソース

193 

194<CardGroup>

195 <Card title="ウェブ上の Claude Code" icon="globe" href="/ja/claude-code-on-the-web">

196 ウェブ上の Claude Code について詳しく学ぶ

197 </Card>

198 

199 <Card title="Claude for Slack" icon="slack" href="https://claude.com/claude-and-slack">

200 Claude for Slack の一般的なドキュメント

201 </Card>

202 

203 <Card title="Slack App Marketplace" icon="store" href="https://slack.com/marketplace/A08SF47R6P4">

204 Slack Marketplace から Claude アプリをインストール

205 </Card>

206 

207 <Card title="Claude ヘルプセンター" icon="circle-question" href="https://support.claude.com">

208 追加サポートを取得

209 </Card>

210</CardGroup>

statusline.md +1047 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# ステータスラインをカスタマイズする

6 

7> Claude Code でコンテキストウィンドウの使用状況、コスト、git ステータスを監視するカスタムステータスバーを設定します

8 

9ステータスラインは Claude Code の下部にあるカスタマイズ可能なバーで、設定したシェルスクリプトを実行します。stdin 経由で JSON セッションデータを受け取り、スクリプトが出力したものを表示し、コンテキスト使用状況、コスト、git ステータス、またはその他の追跡したい情報を一目で確認できる永続的なビューを提供します。

10 

11ステータスラインは以下の場合に便利です:

12 

13* 作業中にコンテキストウィンドウの使用状況を監視したい

14* セッションコストを追跡する必要がある

15* 複数のセッション間で作業し、それらを区別する必要がある

16* git ブランチとステータスを常に表示したい

17 

18以下は、最初の行に git 情報を表示し、2 番目の行にカラーコード化されたコンテキストバーを表示する [複数行ステータスライン](#display-multiple-lines) の例です。

19 

20<Frame>

21 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="最初の行にモデル名、ディレクトリ、git ブランチを表示し、2 番目の行にコンテキスト使用状況プログレスバー、コスト、期間を表示する複数行ステータスライン" width="776" height="212" data-path="images/statusline-multiline.png" />

22</Frame>

23 

24このページでは、[基本的なステータスラインの設定](#set-up-a-status-line) について説明し、Claude Code からスクリプトへの [データフロー](#how-status-lines-work) について説明し、[表示できるすべてのフィールド](#available-data) をリストアップし、git ステータス、コスト追跡、プログレスバーなどの一般的なパターンの [すぐに使える例](#examples) を提供します。

25 

26## ステータスラインを設定する

27 

28[`/statusline` コマンド](#use-the-statusline-command) を使用して Claude Code にスクリプトを生成させるか、[手動でスクリプトを作成](#manually-configure-a-status-line) して設定に追加します。

29 

30### /statusline コマンドを使用する

31 

32`/statusline` コマンドは、表示したい内容を説明する自然言語の指示を受け入れます。Claude Code は `~/.claude/` にスクリプトファイルを生成し、設定を自動的に更新します:

33 

34```text theme={null}

35/statusline show model name and context percentage with a progress bar

36```

37 

38### ステータスラインを手動で設定する

39 

40ユーザー設定(`~/.claude/settings.json`、`~` はホームディレクトリ)または [プロジェクト設定](/ja/settings#settings-files) に `statusLine` フィールドを追加します。`type` を `"command"` に設定し、`command` をスクリプトパスまたはインラインシェルコマンドに指定します。スクリプト作成の完全なチュートリアルについては、[ステータスラインをステップバイステップで構築する](#build-a-status-line-step-by-step) を参照してください。

41 

42```json theme={null}

43{

44 "statusLine": {

45 "type": "command",

46 "command": "~/.claude/statusline.sh",

47 "padding": 2

48 }

49}

50```

51 

52`command` フィールドはシェルで実行されるため、スクリプトファイルの代わりにインラインコマンドを使用することもできます。この例では `jq` を使用して JSON 入力を解析し、モデル名とコンテキスト割合を表示します:

53 

54```json theme={null}

55{

56 "statusLine": {

57 "type": "command",

58 "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"

59 }

60}

61```

62 

63オプションの `padding` フィールドは、ステータスラインコンテンツに追加の水平スペース(文字単位)を追加します。デフォルトは `0` です。このパディングはインターフェイスの組み込みスペースに加えて追加されるため、ターミナルエッジからの絶対距離ではなく相対的なインデントを制御します。

64 

65オプションの `refreshInterval` フィールドは、[イベント駆動更新](#how-status-lines-work) に加えて、N 秒ごとにコマンドを再実行します。最小値は `1` です。ステータスラインが時計などの時間ベースのデータを表示する場合、またはメインセッションがアイドル状態の間にバックグラウンドサブエージェントが git 状態を変更する場合に設定します。イベントのみで実行する場合は設定しないままにします。

66 

67オプションの `hideVimModeIndicator` フィールドは、プロンプトの下にある組み込みの `-- INSERT --` テキストを非表示にします。スクリプトが [`vim.mode`](#available-data) 自体をレンダリングする場合は、これを `true` に設定して、モードが 2 回表示されないようにします。

68 

69### ステータスラインを無効にする

70 

71`/statusline` を実行し、ステータスラインを削除またはクリアするよう指示します(例:`/statusline delete`、`/statusline clear`、`/statusline remove it`)。settings.json から `statusLine` フィールドを手動で削除することもできます。

72 

73## ステータスラインをステップバイステップで構築する

74 

75このチュートリアルでは、現在のモデル、作業ディレクトリ、コンテキストウィンドウ使用状況の割合を表示するステータスラインを手動で作成することで、内部で何が起こっているかを示します。

76 

77<Note>[`/statusline`](#use-the-statusline-command) を実行して、表示したい内容を説明すると、これらすべてが自動的に設定されます。</Note>

78 

79これらの例では Bash スクリプトを使用しており、macOS と Linux で動作します。Windows では、[Windows 設定](#windows-configuration) で PowerShell と Git Bash の例を参照してください。

80 

81<Frame>

82 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-quickstart.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=696445e59ca0059213250651ad23db6b" alt="モデル名、ディレクトリ、コンテキスト割合を表示するステータスライン" width="726" height="164" data-path="images/statusline-quickstart.png" />

83</Frame>

84 

85<Steps>

86 <Step title="JSON を読み取り、出力を出力するスクリプトを作成する">

87 Claude Code は stdin 経由でスクリプトに JSON データを送信します。このスクリプトは [`jq`](https://jqlang.github.io/jq/)(コマンドラインの JSON パーサーで、インストールが必要な場合があります)を使用して、モデル名、ディレクトリ、コンテキスト割合を抽出し、フォーマットされた行を出力します。

88 

89 これを `~/.claude/statusline.sh` に保存します(`~` はホームディレクトリ、macOS では `/Users/username`、Linux では `/home/username` など):

90 

91 ```bash theme={null}

92 #!/bin/bash

93 # Claude Code が stdin に送信する JSON データを読み取る

94 input=$(cat)

95 

96 # jq を使用してフィールドを抽出する

97 MODEL=$(echo "$input" | jq -r '.model.display_name')

98 DIR=$(echo "$input" | jq -r '.workspace.current_dir')

99 # "// 0" はフィールドが null の場合のフォールバックを提供します

100 PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

101 

102 # ステータスラインを出力します - ${DIR##*/} はフォルダ名のみを抽出します

103 echo "[$MODEL] 📁 ${DIR##*/} | ${PCT}% context"

104 ```

105 </Step>

106 

107 <Step title="実行可能にする">

108 スクリプトを実行可能にマークして、シェルが実行できるようにします:

109 

110 ```bash theme={null}

111 chmod +x ~/.claude/statusline.sh

112 ```

113 </Step>

114 

115 <Step title="設定に追加する">

116 Claude Code にスクリプトをステータスラインとして実行するよう指示します。この設定を `~/.claude/settings.json` に追加します。これは `type` を `"command"`(「このシェルコマンドを実行する」という意味)に設定し、`command` をスクリプトに指定します:

117 

118 ```json theme={null}

119 {

120 "statusLine": {

121 "type": "command",

122 "command": "~/.claude/statusline.sh"

123 }

124 }

125 ```

126 

127 ステータスラインはインターフェイスの下部に表示されます。設定は自動的に再読み込みされますが、Claude Code との次の相互作用まで変更は表示されません。

128 </Step>

129</Steps>

130 

131## ステータスラインの仕組み

132 

133Claude Code はスクリプトを実行し、stdin 経由で [JSON セッションデータ](#available-data) をパイプします。スクリプトは JSON を読み取り、必要なものを抽出し、stdout にテキストを出力します。Claude Code はスクリプトが出力したものを表示します。

134 

135**更新のタイミング**

136 

137スクリプトは新しいアシスタントメッセージの後、パーミッションモードが変更されたとき、または vim モードが切り替わったときに実行されます。更新は 300ms でデバウンスされます。つまり、急速な変更がバッチ処理され、スクリプトは物事が落ち着いたら一度実行されます。スクリプトがまだ実行中に新しい更新がトリガーされた場合、実行中の実行はキャンセルされます。スクリプトを編集した場合、Claude Code との次の相互作用がトリガーされるまで変更は表示されません。

138 

139これらのトリガーは、メインセッションがアイドル状態の場合(例えば、コーディネーターがバックグラウンドサブエージェントを待機している場合)、静かになる可能性があります。アイドル期間中に時間ベースまたは外部ソースのセグメントを最新に保つには、[`refreshInterval`](#manually-configure-a-status-line) を設定して、固定タイマーでもコマンドを再実行します。

140 

141**スクリプトが出力できるもの**

142 

143* **複数行**:各 `echo` または `print` ステートメントは別の行として表示されます。[複数行の例](#display-multiple-lines) を参照してください。

144* **色**:`\033[32m` のような [ANSI エスケープコード](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) を使用して緑色を表示します(ターミナルがサポートしている必要があります)。[git ステータスの例](#git-status-with-colors) を参照してください。

145* **リンク**:[OSC 8 エスケープシーケンス](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) を使用してテキストをクリック可能にします(macOS では Cmd+クリック、Windows/Linux では Ctrl+クリック)。iTerm2、Kitty、WezTerm などのハイパーリンクをサポートするターミナルが必要です。[クリック可能なリンクの例](#clickable-links) を参照してください。

146 

147<Note>ステータスラインはローカルで実行され、API トークンを消費しません。オートコンプリート提案、ヘルプメニュー、パーミッションプロンプトなど、特定の UI 相互作用中は一時的に非表示になります。</Note>

148 

149## 利用可能なデータ

150 

151Claude Code は以下の JSON フィールドを stdin 経由でスクリプトに送信します:

152 

153| フィールド | 説明 |

154| ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

155| `model.id`、`model.display_name` | 現在のモデル識別子と表示名 |

156| `cwd`、`workspace.current_dir` | 現在の作業ディレクトリ。両方のフィールドに同じ値が含まれます。`workspace.current_dir` は `workspace.project_dir` との一貫性のために推奨されます。 |

157| `workspace.project_dir` | Claude Code が起動されたディレクトリ。セッション中に作業ディレクトリが変更された場合、`cwd` と異なる場合があります |

158| `workspace.added_dirs` | `/add-dir` または `--add-dir` 経由で追加された追加ディレクトリ。追加されていない場合は空配列 |

159| `workspace.git_worktree` | 現在のディレクトリが `git worktree add` で作成されたリンク worktree 内にある場合の git worktree 名。メイン作業ツリーでは不在。`worktree.*` が `--worktree` セッションのみに適用されるのとは異なり、任意の git worktree に対して入力されます |

160| `cost.total_cost_usd` | USD でのセッションの推定コスト。クライアント側で計算されます。実際の請求額と異なる場合があります |

161| `cost.total_duration_ms` | セッション開始からの総経過時間(ミリ秒) |

162| `cost.total_api_duration_ms` | API レスポンスを待つのに費やされた総時間(ミリ秒) |

163| `cost.total_lines_added`、`cost.total_lines_removed` | 変更されたコード行 |

164| `context_window.total_input_tokens`、`context_window.total_output_tokens` | セッション全体の累積トークン数 |

165| `context_window.context_window_size` | トークン単位の最大コンテキストウィンドウサイズ。デフォルトは 200000、拡張コンテキストを持つモデルの場合は 1000000 |

166| `context_window.used_percentage` | 事前計算されたコンテキストウィンドウ使用割合 |

167| `context_window.remaining_percentage` | 事前計算されたコンテキストウィンドウ残り割合 |

168| `context_window.current_usage` | 最後の API 呼び出しからのトークン数。[コンテキストウィンドウフィールド](#context-window-fields) で説明されています |

169| `exceeds_200k_tokens` | 最新の API レスポンスからの総トークン数(入力、キャッシュ、出力トークンの組み合わせ)が 200k を超えるかどうか。これは実際のコンテキストウィンドウサイズに関係なく固定閾値です。 |

170| `effort.level` | 現在の推論努力レベル(`low`、`medium`、`high`、`xhigh`、または `max`)。ライブセッション値を反映しており、セッション中の `/effort` 変更を含みます。現在のモデルが effort パラメータをサポートしていない場合は不在 |

171| `thinking.enabled` | セッションで拡張思考が有効になっているかどうか |

172| `rate_limits.five_hour.used_percentage`、`rate_limits.seven_day.used_percentage` | 5 時間または 7 日のレート制限の消費割合(0~100) |

173| `rate_limits.five_hour.resets_at`、`rate_limits.seven_day.resets_at` | 5 時間または 7 日のレート制限ウィンドウがリセットされる Unix エポック秒 |

174| `session_id` | 一意のセッション識別子 |

175| `session_name` | `--name` フラグまたは `/rename` で設定されたカスタムセッション名。カスタム名が設定されていない場合は不在 |

176| `transcript_path` | 会話トランスクリプトファイルへのパス |

177| `version` | Claude Code バージョン |

178| `output_style.name` | 現在の出力スタイルの名前 |

179| `vim.mode` | [vim モード](/ja/interactive-mode#vim-editor-mode) が有効な場合の現在の vim モード(`NORMAL`、`INSERT`、`VISUAL`、または `VISUAL LINE`) |

180| `agent.name` | `--agent` フラグまたはエージェント設定が設定されている場合のエージェント名 |

181| `worktree.name` | アクティブな worktree の名前。`--worktree` セッション中のみ存在 |

182| `worktree.path` | worktree ディレクトリへの絶対パス |

183| `worktree.branch` | worktree の git ブランチ名(例:`"worktree-my-feature"`)。フックベースの worktree では不在 |

184| `worktree.original_cwd` | worktree に入る前に Claude がいたディレクトリ |

185| `worktree.original_branch` | worktree に入る前にチェックアウトされた git ブランチ。フックベースの worktree では不在 |

186 

187<Accordion title="完全な JSON スキーマ">

188 ステータスラインコマンドは stdin 経由でこの JSON 構造を受け取ります:

189 

190 ```json theme={null}

191 {

192 "cwd": "/current/working/directory",

193 "session_id": "abc123...",

194 "session_name": "my-session",

195 "transcript_path": "/path/to/transcript.jsonl",

196 "model": {

197 "id": "claude-opus-4-7",

198 "display_name": "Opus"

199 },

200 "workspace": {

201 "current_dir": "/current/working/directory",

202 "project_dir": "/original/project/directory",

203 "added_dirs": [],

204 "git_worktree": "feature-xyz"

205 },

206 "version": "2.1.90",

207 "output_style": {

208 "name": "default"

209 },

210 "cost": {

211 "total_cost_usd": 0.01234,

212 "total_duration_ms": 45000,

213 "total_api_duration_ms": 2300,

214 "total_lines_added": 156,

215 "total_lines_removed": 23

216 },

217 "context_window": {

218 "total_input_tokens": 15234,

219 "total_output_tokens": 4521,

220 "context_window_size": 200000,

221 "used_percentage": 8,

222 "remaining_percentage": 92,

223 "current_usage": {

224 "input_tokens": 8500,

225 "output_tokens": 1200,

226 "cache_creation_input_tokens": 5000,

227 "cache_read_input_tokens": 2000

228 }

229 },

230 "exceeds_200k_tokens": false,

231 "effort": {

232 "level": "high"

233 },

234 "thinking": {

235 "enabled": true

236 },

237 "rate_limits": {

238 "five_hour": {

239 "used_percentage": 23.5,

240 "resets_at": 1738425600

241 },

242 "seven_day": {

243 "used_percentage": 41.2,

244 "resets_at": 1738857600

245 }

246 },

247 "vim": {

248 "mode": "NORMAL"

249 },

250 "agent": {

251 "name": "security-reviewer"

252 },

253 "worktree": {

254 "name": "my-feature",

255 "path": "/path/to/.claude/worktrees/my-feature",

256 "branch": "worktree-my-feature",

257 "original_cwd": "/path/to/project",

258 "original_branch": "main"

259 }

260 }

261 ```

262 

263 **不在の可能性があるフィールド**(JSON に存在しない):

264 

265 * `session_name`:`--name` または `/rename` でカスタム名が設定されている場合のみ表示

266 * `workspace.git_worktree`:現在のディレクトリがリンク git worktree 内にある場合のみ表示

267 * `effort`:現在のモデルが推論努力パラメータをサポートしている場合のみ表示

268 * `vim`:vim モードが有効な場合のみ表示

269 * `agent`:`--agent` フラグまたはエージェント設定が設定されている場合のみ表示

270 * `worktree`:`--worktree` セッション中のみ表示。存在する場合、`branch` と `original_branch` もフックベースの worktree では不在の可能性があります

271 * `rate_limits`:Claude.ai サブスクライバー(Pro/Max)がセッションの最初の API レスポンスの後のみ表示。各ウィンドウ(`five_hour`、`seven_day`)は独立して不在の可能性があります。`jq -r '.rate_limits.five_hour.used_percentage // empty'` を使用して、不在を適切に処理します。

272 

273 **`null` の可能性があるフィールド**:

274 

275 * `context_window.current_usage`:セッションの最初の API 呼び出しの前は `null`

276 * `context_window.used_percentage`、`context_window.remaining_percentage`:セッションの早期段階では `null` の可能性があります

277 

278 スクリプトで条件付きアクセスと null 値のフォールバックデフォルトを使用して、不在のフィールドを処理します。

279</Accordion>

280 

281### コンテキストウィンドウフィールド

282 

283`context_window` オブジェクトは、コンテキスト使用状況を追跡する 2 つの方法を提供します:

284 

285* **累積合計**(`total_input_tokens`、`total_output_tokens`):セッション全体のすべてのトークンの合計。総消費量の追跡に便利です

286* **現在の使用状況**(`current_usage`):最新の API 呼び出しからのトークン数。実際のコンテキスト状態を反映しているため、正確なコンテキスト割合に使用します

287 

288`current_usage` オブジェクトには以下が含まれます:

289 

290* `input_tokens`:現在のコンテキストの入力トークン

291* `output_tokens`:生成された出力トークン

292* `cache_creation_input_tokens`:キャッシュに書き込まれたトークン

293* `cache_read_input_tokens`:キャッシュから読み取られたトークン

294 

295`used_percentage` フィールドは入力トークンのみから計算されます:`input_tokens + cache_creation_input_tokens + cache_read_input_tokens`。`output_tokens` は含まれません。

296 

297`current_usage` から手動でコンテキスト割合を計算する場合、`used_percentage` と一致させるために同じ入力のみの式を使用します。

298 

299`current_usage` オブジェクトはセッションの最初の API 呼び出しの前は `null` です。

300 

301## 例

302 

303これらの例は一般的なステータスラインパターンを示しています。任意の例を使用するには:

304 

3051. スクリプトを `~/.claude/statusline.sh`(または `.py`/`.js`)などのファイルに保存します

3062. 実行可能にします:`chmod +x ~/.claude/statusline.sh`

3073. [設定](#manually-configure-a-status-line) にパスを追加します

308 

309Bash の例は [`jq`](https://jqlang.github.io/jq/) を使用して JSON を解析します。Python と Node.js には組み込みの JSON 解析があります。

310 

311### コンテキストウィンドウの使用状況

312 

313現在のモデルとコンテキストウィンドウの使用状況を視覚的なプログレスバーで表示します。各スクリプトは stdin から JSON を読み取り、`used_percentage` フィールドを抽出し、塗りつぶされたブロック(▓)が使用状況を表す 10 文字のバーを構築します:

314 

315<Frame>

316 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-context-window-usage.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=15b58ab3602f036939145dde3165c6f7" alt="モデル名とパーセンテージ付きプログレスバーを表示するステータスライン" width="448" height="152" data-path="images/statusline-context-window-usage.png" />

317</Frame>

318 

319<CodeGroup>

320 ```bash Bash theme={null}

321 #!/bin/bash

322 # stdin 全体を変数に読み込む

323 input=$(cat)

324 

325 # jq でフィールドを抽出します。"// 0" は null のフォールバックを提供します

326 MODEL=$(echo "$input" | jq -r '.model.display_name')

327 PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

328 

329 # プログレスバーを構築します:printf -v はスペースを作成し、

330 # ${var// /▓} は各スペースをブロック文字に置き換えます

331 BAR_WIDTH=10

332 FILLED=$((PCT * BAR_WIDTH / 100))

333 EMPTY=$((BAR_WIDTH - FILLED))

334 BAR=""

335 [ "$FILLED" -gt 0 ] && printf -v FILL "%${FILLED}s" && BAR="${FILL// /▓}"

336 [ "$EMPTY" -gt 0 ] && printf -v PAD "%${EMPTY}s" && BAR="${BAR}${PAD// /░}"

337 

338 echo "[$MODEL] $BAR $PCT%"

339 ```

340 

341 ```python Python theme={null}

342 #!/usr/bin/env python3

343 import json, sys

344 

345 # json.load は stdin を 1 ステップで読み取り、解析します

346 data = json.load(sys.stdin)

347 model = data['model']['display_name']

348 # "or 0" は null 値を処理します

349 pct = int(data.get('context_window', {}).get('used_percentage', 0) or 0)

350 

351 # 文字列乗算がバーを構築します

352 filled = pct * 10 // 100

353 bar = '▓' * filled + '░' * (10 - filled)

354 

355 print(f"[{model}] {bar} {pct}%")

356 ```

357 

358 ```javascript Node.js theme={null}

359 #!/usr/bin/env node

360 // Node.js はイベントで stdin を非同期に読み取ります

361 let input = '';

362 process.stdin.on('data', chunk => input += chunk);

363 process.stdin.on('end', () => {

364 const data = JSON.parse(input);

365 const model = data.model.display_name;

366 // オプショナルチェーン(?.)は null フィールドを安全に処理します

367 const pct = Math.floor(data.context_window?.used_percentage || 0);

368 

369 // String.repeat() がバーを構築します

370 const filled = Math.floor(pct * 10 / 100);

371 const bar = '▓'.repeat(filled) + '░'.repeat(10 - filled);

372 

373 console.log(`[${model}] ${bar} ${pct}%`);

374 });

375 ```

376</CodeGroup>

377 

378### git ステータスと色

379 

380ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを使用して git ブランチを表示します。このスクリプトはターミナルの色に [ANSI エスケープコード](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) を使用します:`\033[32m` は緑、`\033[33m` は黄、`\033[0m` はデフォルトにリセットします。

381 

382<Frame>

383 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-git-context.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e656f34f90d1d9a1d0e220988914345f" alt="モデル、ディレクトリ、git ブランチ、ステージングされたファイルと変更されたファイルのカラーコード化されたインジケーターを表示するステータスライン" width="742" height="178" data-path="images/statusline-git-context.png" />

384</Frame>

385 

386各スクリプトは現在のディレクトリが git リポジトリであるかどうかを確認し、ステージングされたファイルと変更されたファイルをカウントし、カラーコード化されたインジケーターを表示します:

387 

388<CodeGroup>

389 ```bash Bash theme={null}

390 #!/bin/bash

391 input=$(cat)

392 

393 MODEL=$(echo "$input" | jq -r '.model.display_name')

394 DIR=$(echo "$input" | jq -r '.workspace.current_dir')

395 

396 GREEN='\033[32m'

397 YELLOW='\033[33m'

398 RESET='\033[0m'

399 

400 if git rev-parse --git-dir > /dev/null 2>&1; then

401 BRANCH=$(git branch --show-current 2>/dev/null)

402 STAGED=$(git diff --cached --numstat 2>/dev/null | wc -l | tr -d ' ')

403 MODIFIED=$(git diff --numstat 2>/dev/null | wc -l | tr -d ' ')

404 

405 GIT_STATUS=""

406 [ "$STAGED" -gt 0 ] && GIT_STATUS="${GREEN}+${STAGED}${RESET}"

407 [ "$MODIFIED" -gt 0 ] && GIT_STATUS="${GIT_STATUS}${YELLOW}~${MODIFIED}${RESET}"

408 

409 echo -e "[$MODEL] 📁 ${DIR##*/} | 🌿 $BRANCH $GIT_STATUS"

410 else

411 echo "[$MODEL] 📁 ${DIR##*/}"

412 fi

413 ```

414 

415 ```python Python theme={null}

416 #!/usr/bin/env python3

417 import json, sys, subprocess, os

418 

419 data = json.load(sys.stdin)

420 model = data['model']['display_name']

421 directory = os.path.basename(data['workspace']['current_dir'])

422 

423 GREEN, YELLOW, RESET = '\033[32m', '\033[33m', '\033[0m'

424 

425 try:

426 subprocess.check_output(['git', 'rev-parse', '--git-dir'], stderr=subprocess.DEVNULL)

427 branch = subprocess.check_output(['git', 'branch', '--show-current'], text=True).strip()

428 staged_output = subprocess.check_output(['git', 'diff', '--cached', '--numstat'], text=True).strip()

429 modified_output = subprocess.check_output(['git', 'diff', '--numstat'], text=True).strip()

430 staged = len(staged_output.split('\n')) if staged_output else 0

431 modified = len(modified_output.split('\n')) if modified_output else 0

432 

433 git_status = f"{GREEN}+{staged}{RESET}" if staged else ""

434 git_status += f"{YELLOW}~{modified}{RESET}" if modified else ""

435 

436 print(f"[{model}] 📁 {directory} | 🌿 {branch} {git_status}")

437 except:

438 print(f"[{model}] 📁 {directory}")

439 ```

440 

441 ```javascript Node.js theme={null}

442 #!/usr/bin/env node

443 const { execSync } = require('child_process');

444 const path = require('path');

445 

446 let input = '';

447 process.stdin.on('data', chunk => input += chunk);

448 process.stdin.on('end', () => {

449 const data = JSON.parse(input);

450 const model = data.model.display_name;

451 const dir = path.basename(data.workspace.current_dir);

452 

453 const GREEN = '\x1b[32m', YELLOW = '\x1b[33m', RESET = '\x1b[0m';

454 

455 try {

456 execSync('git rev-parse --git-dir', { stdio: 'ignore' });

457 const branch = execSync('git branch --show-current', { encoding: 'utf8' }).trim();

458 const staged = execSync('git diff --cached --numstat', { encoding: 'utf8' }).trim().split('\n').filter(Boolean).length;

459 const modified = execSync('git diff --numstat', { encoding: 'utf8' }).trim().split('\n').filter(Boolean).length;

460 

461 let gitStatus = staged ? `${GREEN}+${staged}${RESET}` : '';

462 gitStatus += modified ? `${YELLOW}~${modified}${RESET}` : '';

463 

464 console.log(`[${model}] 📁 ${dir} | 🌿 ${branch} ${gitStatus}`);

465 } catch {

466 console.log(`[${model}] 📁 ${dir}`);

467 }

468 });

469 ```

470</CodeGroup>

471 

472### コストと期間の追跡

473 

474セッションの API コストと経過時間を追跡します。`cost.total_cost_usd` フィールドは現在のセッションのすべての API 呼び出しの推定コストを累積します。`cost.total_duration_ms` フィールドはセッション開始からの総経過時間を測定し、`cost.total_api_duration_ms` は API レスポンスを待つのに費やされた時間のみを追跡します。

475 

476各スクリプトはコストを通貨としてフォーマットし、ミリ秒を分と秒に変換します:

477 

478<Frame>

479 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-cost-tracking.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=e3444a51fe6f3440c134bd5f1f08ad29" alt="モデル名、セッションコスト、期間を表示するステータスライン" width="588" height="180" data-path="images/statusline-cost-tracking.png" />

480</Frame>

481 

482<CodeGroup>

483 ```bash Bash theme={null}

484 #!/bin/bash

485 input=$(cat)

486 

487 MODEL=$(echo "$input" | jq -r '.model.display_name')

488 COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')

489 DURATION_MS=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')

490 

491 COST_FMT=$(printf '$%.2f' "$COST")

492 DURATION_SEC=$((DURATION_MS / 1000))

493 MINS=$((DURATION_SEC / 60))

494 SECS=$((DURATION_SEC % 60))

495 

496 echo "[$MODEL] 💰 $COST_FMT | ⏱️ ${MINS}m ${SECS}s"

497 ```

498 

499 ```python Python theme={null}

500 #!/usr/bin/env python3

501 import json, sys

502 

503 data = json.load(sys.stdin)

504 model = data['model']['display_name']

505 cost = data.get('cost', {}).get('total_cost_usd', 0) or 0

506 duration_ms = data.get('cost', {}).get('total_duration_ms', 0) or 0

507 

508 duration_sec = duration_ms // 1000

509 mins, secs = duration_sec // 60, duration_sec % 60

510 

511 print(f"[{model}] 💰 ${cost:.2f} | ⏱️ {mins}m {secs}s")

512 ```

513 

514 ```javascript Node.js theme={null}

515 #!/usr/bin/env node

516 let input = '';

517 process.stdin.on('data', chunk => input += chunk);

518 process.stdin.on('end', () => {

519 const data = JSON.parse(input);

520 const model = data.model.display_name;

521 const cost = data.cost?.total_cost_usd || 0;

522 const durationMs = data.cost?.total_duration_ms || 0;

523 

524 const durationSec = Math.floor(durationMs / 1000);

525 const mins = Math.floor(durationSec / 60);

526 const secs = durationSec % 60;

527 

528 console.log(`[${model}] 💰 $${cost.toFixed(2)} | ⏱️ ${mins}m ${secs}s`);

529 });

530 ```

531</CodeGroup>

532 

533### 複数行を表示する

534 

535スクリプトは複数の行を出力して、より豊かなディスプレイを作成できます。各 `echo` ステートメントはステータス領域に別の行を生成します。

536 

537<Frame>

538 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-multiline.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=60f11387658acc9ff75158ae85f2ac87" alt="最初の行にモデル名、ディレクトリ、git ブランチを表示し、2 番目の行にコンテキスト使用状況プログレスバー、コスト、期間を表示する複数行ステータスライン" width="776" height="212" data-path="images/statusline-multiline.png" />

539</Frame>

540 

541この例は複数のテクニックを組み合わせています:閾値ベースの色(70% 未満は緑、70~89% は黄、90% 以上は赤)、プログレスバー、git ブランチ情報。各 `print` または `echo` ステートメントは別の行を作成します:

542 

543<CodeGroup>

544 ```bash Bash theme={null}

545 #!/bin/bash

546 input=$(cat)

547 

548 MODEL=$(echo "$input" | jq -r '.model.display_name')

549 DIR=$(echo "$input" | jq -r '.workspace.current_dir')

550 COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')

551 PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

552 DURATION_MS=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')

553 

554 CYAN='\033[36m'; GREEN='\033[32m'; YELLOW='\033[33m'; RED='\033[31m'; RESET='\033[0m'

555 

556 # コンテキスト使用状況に基づいてバーの色を選択します

557 if [ "$PCT" -ge 90 ]; then BAR_COLOR="$RED"

558 elif [ "$PCT" -ge 70 ]; then BAR_COLOR="$YELLOW"

559 else BAR_COLOR="$GREEN"; fi

560 

561 FILLED=$((PCT / 10)); EMPTY=$((10 - FILLED))

562 printf -v FILL "%${FILLED}s"; printf -v PAD "%${EMPTY}s"

563 BAR="${FILL// /█}${PAD// /░}"

564 

565 MINS=$((DURATION_MS / 60000)); SECS=$(((DURATION_MS % 60000) / 1000))

566 

567 BRANCH=""

568 git rev-parse --git-dir > /dev/null 2>&1 && BRANCH=" | 🌿 $(git branch --show-current 2>/dev/null)"

569 

570 echo -e "${CYAN}[$MODEL]${RESET} 📁 ${DIR##*/}$BRANCH"

571 COST_FMT=$(printf '$%.2f' "$COST")

572 echo -e "${BAR_COLOR}${BAR}${RESET} ${PCT}% | ${YELLOW}${COST_FMT}${RESET} | ⏱️ ${MINS}m ${SECS}s"

573 ```

574 

575 ```python Python theme={null}

576 #!/usr/bin/env python3

577 import json, sys, subprocess, os

578 

579 data = json.load(sys.stdin)

580 model = data['model']['display_name']

581 directory = os.path.basename(data['workspace']['current_dir'])

582 cost = data.get('cost', {}).get('total_cost_usd', 0) or 0

583 pct = int(data.get('context_window', {}).get('used_percentage', 0) or 0)

584 duration_ms = data.get('cost', {}).get('total_duration_ms', 0) or 0

585 

586 CYAN, GREEN, YELLOW, RED, RESET = '\033[36m', '\033[32m', '\033[33m', '\033[31m', '\033[0m'

587 

588 bar_color = RED if pct >= 90 else YELLOW if pct >= 70 else GREEN

589 filled = pct // 10

590 bar = '█' * filled + '░' * (10 - filled)

591 

592 mins, secs = duration_ms // 60000, (duration_ms % 60000) // 1000

593 

594 try:

595 branch = subprocess.check_output(['git', 'branch', '--show-current'], text=True, stderr=subprocess.DEVNULL).strip()

596 branch = f" | 🌿 {branch}" if branch else ""

597 except:

598 branch = ""

599 

600 print(f"{CYAN}[{model}]{RESET} 📁 {directory}{branch}")

601 print(f"{bar_color}{bar}{RESET} {pct}% | {YELLOW}${cost:.2f}{RESET} | ⏱️ {mins}m {secs}s")

602 ```

603 

604 ```javascript Node.js theme={null}

605 #!/usr/bin/env node

606 const { execSync } = require('child_process');

607 const path = require('path');

608 

609 let input = '';

610 process.stdin.on('data', chunk => input += chunk);

611 process.stdin.on('end', () => {

612 const data = JSON.parse(input);

613 const model = data.model.display_name;

614 const dir = path.basename(data.workspace.current_dir);

615 const cost = data.cost?.total_cost_usd || 0;

616 const pct = Math.floor(data.context_window?.used_percentage || 0);

617 const durationMs = data.cost?.total_duration_ms || 0;

618 

619 const CYAN = '\x1b[36m', GREEN = '\x1b[32m', YELLOW = '\x1b[33m', RED = '\x1b[31m', RESET = '\x1b[0m';

620 

621 const barColor = pct >= 90 ? RED : pct >= 70 ? YELLOW : GREEN;

622 const filled = Math.floor(pct / 10);

623 const bar = '█'.repeat(filled) + '░'.repeat(10 - filled);

624 

625 const mins = Math.floor(durationMs / 60000);

626 const secs = Math.floor((durationMs % 60000) / 1000);

627 

628 let branch = '';

629 try {

630 branch = execSync('git branch --show-current', { encoding: 'utf8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();

631 branch = branch ? ` | 🌿 ${branch}` : '';

632 } catch {}

633 

634 console.log(`${CYAN}[${model}]${RESET} 📁 ${dir}${branch}`);

635 console.log(`${barColor}${bar}${RESET} ${pct}% | ${YELLOW}$${cost.toFixed(2)}${RESET} | ⏱️ ${mins}m ${secs}s`);

636 });

637 ```

638</CodeGroup>

639 

640### クリック可能なリンク

641 

642この例は GitHub リポジトリへのクリック可能なリンクを作成します。git リモート URL を読み取り、SSH 形式を `sed` で HTTPS に変換し、リポジトリ名を OSC 8 エスケープコードでラップします。Cmd(macOS)または Ctrl(Windows/Linux)を押しながらクリックして、ブラウザでリンクを開きます。

643 

644<Frame>

645 <img src="https://mintcdn.com/claude-code/nibzesLaJVh4ydOq/images/statusline-links.png?fit=max&auto=format&n=nibzesLaJVh4ydOq&q=85&s=4bcc6e7deb7cf52f41ab85a219b52661" alt="GitHub リポジトリへのクリック可能なリンクを表示するステータスライン" width="726" height="198" data-path="images/statusline-links.png" />

646</Frame>

647 

648各スクリプトは git リモート URL を取得し、SSH 形式を HTTPS に変換し、リポジトリ名を OSC 8 エスケープコードでラップします。Bash バージョンは `printf '%b'` を使用します。これはバックスラッシュエスケープを異なるシェル間でより確実に解釈します:

649 

650<CodeGroup>

651 ```bash Bash theme={null}

652 #!/bin/bash

653 input=$(cat)

654 

655 MODEL=$(echo "$input" | jq -r '.model.display_name')

656 

657 # git SSH URL を HTTPS に変換します

658 REMOTE=$(git remote get-url origin 2>/dev/null | sed 's/git@github.com:/https:\/\/github.com\//' | sed 's/\.git$//')

659 

660 if [ -n "$REMOTE" ]; then

661 REPO_NAME=$(basename "$REMOTE")

662 # OSC 8 形式:\e]8;;URL\a その後 TEXT その後 \e]8;;\a

663 # printf %b はシェル間でエスケープシーケンスを確実に解釈します

664 printf '%b' "[$MODEL] 🔗 \e]8;;${REMOTE}\a${REPO_NAME}\e]8;;\a\n"

665 else

666 echo "[$MODEL]"

667 fi

668 ```

669 

670 ```python Python theme={null}

671 #!/usr/bin/env python3

672 import json, sys, subprocess, re, os

673 

674 data = json.load(sys.stdin)

675 model = data['model']['display_name']

676 

677 # git リモート URL を取得します

678 try:

679 remote = subprocess.check_output(

680 ['git', 'remote', 'get-url', 'origin'],

681 stderr=subprocess.DEVNULL, text=True

682 ).strip()

683 # SSH を HTTPS 形式に変換します

684 remote = re.sub(r'^git@github\.com:', 'https://github.com/', remote)

685 remote = re.sub(r'\.git$', '', remote)

686 repo_name = os.path.basename(remote)

687 # OSC 8 エスケープシーケンス

688 link = f"\033]8;;{remote}\a{repo_name}\033]8;;\a"

689 print(f"[{model}] 🔗 {link}")

690 except:

691 print(f"[{model}]")

692 ```

693 

694 ```javascript Node.js theme={null}

695 #!/usr/bin/env node

696 const { execSync } = require('child_process');

697 const path = require('path');

698 

699 let input = '';

700 process.stdin.on('data', chunk => input += chunk);

701 process.stdin.on('end', () => {

702 const data = JSON.parse(input);

703 const model = data.model.display_name;

704 

705 try {

706 let remote = execSync('git remote get-url origin', { encoding: 'utf8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();

707 // SSH を HTTPS 形式に変換します

708 remote = remote.replace(/^git@github\.com:/, 'https://github.com/').replace(/\.git$/, '');

709 const repoName = path.basename(remote);

710 // OSC 8 エスケープシーケンス

711 const link = `\x1b]8;;${remote}\x07${repoName}\x1b]8;;\x07`;

712 console.log(`[${model}] 🔗 ${link}`);

713 } catch {

714 console.log(`[${model}]`);

715 }

716 });

717 ```

718</CodeGroup>

719 

720### レート制限の使用状況

721 

722Claude.ai サブスクリプションのレート制限使用状況をステータスラインに表示します。`rate_limits` オブジェクトには `five_hour`(5 時間のローリングウィンドウ)と `seven_day`(週間)ウィンドウが含まれます。各ウィンドウは `used_percentage`(0~100)とウィンドウがリセットされる Unix エポック秒の `resets_at` を提供します。

723 

724このフィールドは Claude.ai サブスクライバー(Pro/Max)がセッションの最初の API レスポンスの後のみ存在します。各スクリプトは不在のフィールドを適切に処理します:

725 

726<CodeGroup>

727 ```bash Bash theme={null}

728 #!/bin/bash

729 input=$(cat)

730 

731 MODEL=$(echo "$input" | jq -r '.model.display_name')

732 # "// empty" は rate_limits が不在の場合、出力を生成しません

733 FIVE_H=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty')

734 WEEK=$(echo "$input" | jq -r '.rate_limits.seven_day.used_percentage // empty')

735 

736 LIMITS=""

737 [ -n "$FIVE_H" ] && LIMITS="5h: $(printf '%.0f' "$FIVE_H")%"

738 [ -n "$WEEK" ] && LIMITS="${LIMITS:+$LIMITS }7d: $(printf '%.0f' "$WEEK")%"

739 

740 [ -n "$LIMITS" ] && echo "[$MODEL] | $LIMITS" || echo "[$MODEL]"

741 ```

742 

743 ```python Python theme={null}

744 #!/usr/bin/env python3

745 import json, sys

746 

747 data = json.load(sys.stdin)

748 model = data['model']['display_name']

749 

750 parts = []

751 rate = data.get('rate_limits', {})

752 five_h = rate.get('five_hour', {}).get('used_percentage')

753 week = rate.get('seven_day', {}).get('used_percentage')

754 

755 if five_h is not None:

756 parts.append(f"5h: {five_h:.0f}%")

757 if week is not None:

758 parts.append(f"7d: {week:.0f}%")

759 

760 if parts:

761 print(f"[{model}] | {' '.join(parts)}")

762 else:

763 print(f"[{model}]")

764 ```

765 

766 ```javascript Node.js theme={null}

767 #!/usr/bin/env node

768 let input = '';

769 process.stdin.on('data', chunk => input += chunk);

770 process.stdin.on('end', () => {

771 const data = JSON.parse(input);

772 const model = data.model.display_name;

773 

774 const parts = [];

775 const fiveH = data.rate_limits?.five_hour?.used_percentage;

776 const week = data.rate_limits?.seven_day?.used_percentage;

777 

778 if (fiveH != null) parts.push(`5h: ${Math.round(fiveH)}%`);

779 if (week != null) parts.push(`7d: ${Math.round(week)}%`);

780 

781 console.log(parts.length ? `[${model}] | ${parts.join(' ')}` : `[${model}]`);

782 });

783 ```

784</CodeGroup>

785 

786### 高コストな操作をキャッシュする

787 

788ステータスラインスクリプトはアクティブなセッション中に頻繁に実行されます。`git status` や `git diff` などのコマンドは、特に大規模なリポジトリでは遅い場合があります。この例は git 情報を一時ファイルにキャッシュし、5 秒ごとにのみ更新します。

789 

790キャッシュファイル名は、セッション内のステータスラインの呼び出し間で安定している必要がありますが、異なるリポジトリの同時セッションが互いのキャッシュされた git 状態を読み取らないように、セッション間で一意である必要があります。`$$`、`os.getpid()`、`process.pid` のようなプロセスベースの識別子は、呼び出しのたびに変わり、キャッシュを無効にします。代わりに JSON 入力から `session_id` を使用します:これはセッションの有効期間中は安定しており、セッションごとに一意です。

791 

792各スクリプトは git コマンドを実行する前に、キャッシュファイルが不在であるか 5 秒より古いかを確認します:

793 

794<CodeGroup>

795 ```bash Bash theme={null}

796 #!/bin/bash

797 input=$(cat)

798 

799 MODEL=$(echo "$input" | jq -r '.model.display_name')

800 DIR=$(echo "$input" | jq -r '.workspace.current_dir')

801 SESSION_ID=$(echo "$input" | jq -r '.session_id')

802 

803 CACHE_FILE="/tmp/statusline-git-cache-$SESSION_ID"

804 CACHE_MAX_AGE=5 # 秒

805 

806 cache_is_stale() {

807 [ ! -f "$CACHE_FILE" ] || \

808 # stat -f %m は macOS、stat -c %Y は Linux

809 [ $(($(date +%s) - $(stat -f %m "$CACHE_FILE" 2>/dev/null || stat -c %Y "$CACHE_FILE" 2>/dev/null || echo 0))) -gt $CACHE_MAX_AGE ]

810 }

811 

812 if cache_is_stale; then

813 if git rev-parse --git-dir > /dev/null 2>&1; then

814 BRANCH=$(git branch --show-current 2>/dev/null)

815 STAGED=$(git diff --cached --numstat 2>/dev/null | wc -l | tr -d ' ')

816 MODIFIED=$(git diff --numstat 2>/dev/null | wc -l | tr -d ' ')

817 echo "$BRANCH|$STAGED|$MODIFIED" > "$CACHE_FILE"

818 else

819 echo "||" > "$CACHE_FILE"

820 fi

821 fi

822 

823 IFS='|' read -r BRANCH STAGED MODIFIED < "$CACHE_FILE"

824 

825 if [ -n "$BRANCH" ]; then

826 echo "[$MODEL] 📁 ${DIR##*/} | 🌿 $BRANCH +$STAGED ~$MODIFIED"

827 else

828 echo "[$MODEL] 📁 ${DIR##*/}"

829 fi

830 ```

831 

832 ```python Python theme={null}

833 #!/usr/bin/env python3

834 import json, sys, subprocess, os, time

835 

836 data = json.load(sys.stdin)

837 model = data['model']['display_name']

838 directory = os.path.basename(data['workspace']['current_dir'])

839 session_id = data['session_id']

840 

841 CACHE_FILE = f"/tmp/statusline-git-cache-{session_id}"

842 CACHE_MAX_AGE = 5 # 秒

843 

844 def cache_is_stale():

845 if not os.path.exists(CACHE_FILE):

846 return True

847 return time.time() - os.path.getmtime(CACHE_FILE) > CACHE_MAX_AGE

848 

849 if cache_is_stale():

850 try:

851 subprocess.check_output(['git', 'rev-parse', '--git-dir'], stderr=subprocess.DEVNULL)

852 branch = subprocess.check_output(['git', 'branch', '--show-current'], text=True).strip()

853 staged = subprocess.check_output(['git', 'diff', '--cached', '--numstat'], text=True).strip()

854 modified = subprocess.check_output(['git', 'diff', '--numstat'], text=True).strip()

855 staged_count = len(staged.split('\n')) if staged else 0

856 modified_count = len(modified.split('\n')) if modified else 0

857 with open(CACHE_FILE, 'w') as f:

858 f.write(f"{branch}|{staged_count}|{modified_count}")

859 except:

860 with open(CACHE_FILE, 'w') as f:

861 f.write("||")

862 

863 with open(CACHE_FILE) as f:

864 branch, staged, modified = f.read().strip().split('|')

865 

866 if branch:

867 print(f"[{model}] 📁 {directory} | 🌿 {branch} +{staged} ~{modified}")

868 else:

869 print(f"[{model}] 📁 {directory}")

870 ```

871 

872 ```javascript Node.js theme={null}

873 #!/usr/bin/env node

874 const { execSync } = require('child_process');

875 const fs = require('fs');

876 const path = require('path');

877 

878 let input = '';

879 process.stdin.on('data', chunk => input += chunk);

880 process.stdin.on('end', () => {

881 const data = JSON.parse(input);

882 const model = data.model.display_name;

883 const dir = path.basename(data.workspace.current_dir);

884 const sessionId = data.session_id;

885 

886 const CACHE_FILE = `/tmp/statusline-git-cache-${sessionId}`;

887 const CACHE_MAX_AGE = 5; // 秒

888 

889 const cacheIsStale = () => {

890 if (!fs.existsSync(CACHE_FILE)) return true;

891 return (Date.now() / 1000) - fs.statSync(CACHE_FILE).mtimeMs / 1000 > CACHE_MAX_AGE;

892 };

893 

894 if (cacheIsStale()) {

895 try {

896 execSync('git rev-parse --git-dir', { stdio: 'ignore' });

897 const branch = execSync('git branch --show-current', { encoding: 'utf8' }).trim();

898 const staged = execSync('git diff --cached --numstat', { encoding: 'utf8' }).trim().split('\n').filter(Boolean).length;

899 const modified = execSync('git diff --numstat', { encoding: 'utf8' }).trim().split('\n').filter(Boolean).length;

900 fs.writeFileSync(CACHE_FILE, `${branch}|${staged}|${modified}`);

901 } catch {

902 fs.writeFileSync(CACHE_FILE, '||');

903 }

904 }

905 

906 const [branch, staged, modified] = fs.readFileSync(CACHE_FILE, 'utf8').trim().split('|');

907 

908 if (branch) {

909 console.log(`[${model}] 📁 ${dir} | 🌿 ${branch} +${staged} ~${modified}`);

910 } else {

911 console.log(`[${model}] 📁 ${dir}`);

912 }

913 });

914 ```

915</CodeGroup>

916 

917### Windows 設定

918 

919Windows では、Claude Code はステータスラインコマンドを Git Bash 経由で実行します。Git Bash がインストールされている場合、または Git Bash がない場合は PowerShell を通じて実行します。PowerShell スクリプトをステータスラインとして実行するには、`powershell` 経由で呼び出します。これはどちらのシェルからでも機能します:

920 

921<CodeGroup>

922 ```json settings.json theme={null}

923 {

924 "statusLine": {

925 "type": "command",

926 "command": "powershell -NoProfile -File C:/Users/username/.claude/statusline.ps1"

927 }

928 }

929 ```

930 

931 ```powershell statusline.ps1 theme={null}

932 $input_json = $input | Out-String | ConvertFrom-Json

933 $cwd = $input_json.cwd

934 $model = $input_json.model.display_name

935 $used = $input_json.context_window.used_percentage

936 $dirname = Split-Path $cwd -Leaf

937 

938 if ($used) {

939 Write-Host "$dirname [$model] ctx: $used%"

940 } else {

941 Write-Host "$dirname [$model]"

942 }

943 ```

944</CodeGroup>

945 

946または、Git Bash がインストールされている場合は、Bash スクリプトを直接実行します:

947 

948<CodeGroup>

949 ```json settings.json theme={null}

950 {

951 "statusLine": {

952 "type": "command",

953 "command": "~/.claude/statusline.sh"

954 }

955 }

956 ```

957 

958 ```bash statusline.sh theme={null}

959 #!/usr/bin/env bash

960 input=$(cat)

961 cwd=$(echo "$input" | grep -o '"cwd":"[^"]*"' | cut -d'"' -f4)

962 model=$(echo "$input" | grep -o '"display_name":"[^"]*"' | cut -d'"' -f4)

963 dirname="${cwd##*[/\\]}"

964 echo "$dirname [$model]"

965 ```

966</CodeGroup>

967 

968## サブエージェントステータスライン

969 

970`subagentStatusLine` 設定は、エージェントパネルに表示される各 [サブエージェント](/ja/sub-agents) のカスタム行本体をレンダリングします。デフォルトの `name · description · token count` 行を独自のフォーマットに置き換えるために使用します。

971 

972```json theme={null}

973{

974 "subagentStatusLine": {

975 "type": "command",

976 "command": "~/.claude/subagent-statusline.sh"

977 }

978}

979```

980 

981コマンドは、すべての表示されているサブエージェント行が stdin で単一の JSON オブジェクトとして渡される各リフレッシュティックで実行されます。入力には [基本フックフィールド](/ja/hooks#common-input-fields) に加えて、`columns`(使用可能な行幅)と `tasks` 配列が含まれます。各タスクには `id`、`name`、`type`、`status`、`description`、`label`、`startTime`、`tokenCount`、`tokenSamples`、`cwd` があります。

982 

983オーバーライドしたい各行に対して stdout に 1 つの JSON 行を書き込みます。形式は `{"id": "<task id>", "content": "<row body>"}` です。`content` 文字列はそのままレンダリングされます。ANSI 色と OSC 8 ハイパーリンクを含みます。タスクの `id` を省略して、その行のデフォルトレンダリングを保持します。空の `content` 文字列を出力して、その行を非表示にします。

984 

985`statusLine` に適用される同じトラストと `disableAllHooks` ゲートが `subagentStatusLine` に適用されます。プラグインは、[`settings.json`](/ja/plugins-reference#standard-plugin-layout) でデフォルトの `subagentStatusLine` を配布できます。

986 

987## ヒント

988 

989* **モック入力でテストする**:`echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`

990* **出力を短く保つ**:ステータスバーの幅は限られているため、長い出力は切り詰められたり、不適切にラップされたりする可能性があります

991* **遅い操作をキャッシュする**:スクリプトはアクティブなセッション中に頻繁に実行されるため、`git status` などのコマンドは遅延を引き起こす可能性があります。これを処理する方法については、[キャッシング例](#cache-expensive-operations) を参照してください。

992 

993[ccstatusline](https://github.com/sirmalloc/ccstatusline) や [starship-claude](https://github.com/martinemde/starship-claude) などのコミュニティプロジェクトは、テーマと追加機能を備えた事前構築設定を提供します。

994 

995## トラブルシューティング

996 

997**ステータスラインが表示されない**

998 

999* スクリプトが実行可能であることを確認します:`chmod +x ~/.claude/statusline.sh`

1000* スクリプトが stdout に出力し、stderr に出力していないことを確認します

1001* スクリプトを手動で実行して、出力を生成することを確認します

1002* `disableAllHooks` が設定で `true` に設定されている場合、ステータスラインも無効になります。この設定を削除するか、`false` に設定して再度有効にします。

1003* `claude --debug` を実行して、セッションの最初のステータスラインの呼び出しからの終了コードと stderr をログに記録します

1004* Claude にスクリプトファイルを読み取り、`statusLine` コマンドを直接実行するよう依頼して、エラーを表示します

1005 

1006**ステータスラインが `--` または空の値を表示する**

1007 

1008* フィールドは最初の API レスポンスが完了する前は `null` の可能性があります

1009* スクリプトで `// 0` のようなフォールバックを使用して null 値を処理します

1010* 複数のメッセージの後も値が空のままの場合は、Claude Code を再起動します

1011 

1012**コンテキスト割合が予期しない値を表示する**

1013 

1014* 累積合計ではなく、正確なコンテキスト状態に `used_percentage` を使用します

1015* `total_input_tokens` と `total_output_tokens` はセッション全体で累積され、コンテキストウィンドウサイズを超える可能性があります

1016* コンテキスト割合は `/context` 出力と異なる場合があります。これは各が計算されるタイミングが異なるためです

1017 

1018**OSC 8 リンクがクリック可能でない**

1019 

1020* ターミナルが OSC 8 ハイパーリンクをサポートしていることを確認します(iTerm2、Kitty、WezTerm)

1021* Terminal.app はクリック可能なリンクをサポートしていません

1022* SSH と tmux セッションは設定に応じて OSC シーケンスをストリップする可能性があります

1023* エスケープシーケンスが `\e]8;;` のようなリテラルテキストとして表示される場合は、`echo -e` の代わりに `printf '%b'` を使用して、より確実なエスケープ処理を行います

1024 

1025**エスケープシーケンスでの表示の不具合**

1026 

1027* 複雑なエスケープシーケンス(ANSI 色、OSC 8 リンク)は、他の UI 更新と重複する場合、時々破損した出力を引き起こす可能性があります

1028* 破損したテキストが表示される場合は、スクリプトをプレーンテキスト出力に簡略化してみてください

1029* エスケープコード付きの複数行ステータスラインは、プレーンテキストの単一行よりもレンダリングの問題が発生しやすくなります

1030 

1031**ワークスペーストラストが必要**

1032 

1033* ステータスラインコマンドは、現在のディレクトリのワークスペーストラストダイアログを受け入れた場合のみ実行されます。`statusLine` はシェルコマンドを実行するため、フックおよび他のシェル実行設定と同じトラストの受け入れが必要です。

1034* トラストが受け入れられていない場合、ステータスラインの出力の代わりに `statusline skipped · restart to fix` という通知が表示されます。Claude Code を再起動し、トラストプロンプトを受け入れて有効にします。

1035 

1036**スクリプトエラーまたはハング**

1037 

1038* ゼロ以外のコードで終了するか、出力を生成しないスクリプトは、ステータスラインを空白にします

1039* 遅いスクリプトは、完了するまでステータスラインの更新をブロックします。古い出力を避けるために、スクリプトを高速に保ちます。

1040* 遅いスクリプトの実行中に新しい更新がトリガーされた場合、実行中のスクリプトはキャンセルされます

1041* 設定する前に、モック入力を使用してスクリプトを独立してテストします

1042 

1043**通知がステータスラインの行を共有する**

1044 

1045* MCP サーバーエラー、自動更新などのシステム通知は、ステータスラインと同じ行の右側に表示されます

1046* 詳細モードを有効にすると、この領域にトークンカウンターが追加されます

1047* 狭いターミナルでは、これらの通知がステータスラインの出力を切り詰める可能性があります

sub-agents.md +1011 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# カスタムサブエージェントの作成

6 

7> Claude Code でタスク固有のワークフローと改善されたコンテキスト管理のための特化した AI サブエージェントを作成して使用します。

8 

9サブエージェントは、特定の種類のタスクを処理する特化した AI アシスタントです。サイドタスクがメイン会話に検索結果、ログ、または再度参照しないファイルコンテンツで溢れかえる場合に使用します。サブエージェントはそのタスクを独自のコンテキストで実行し、概要のみを返します。同じ種類のワーカーを同じ指示で繰り返し生成する場合は、カスタムサブエージェントを定義します。

10 

11各サブエージェントは、カスタムシステムプロンプト、特定のツールアクセス、および独立した権限を備えた独自のコンテキストウィンドウで実行されます。Claude がサブエージェントの説明に一致するタスクに遭遇すると、そのサブエージェントに委譲し、サブエージェントは独立して動作して結果を返します。実際にコンテキスト節約を確認するには、[コンテキストウィンドウの可視化](/ja/context-window)で、サブエージェントが独自の別のウィンドウで研究を処理するセッションを説明しています。

12 

13<Note>

14 複数のエージェントが並行して動作し、互いに通信する必要がある場合は、代わりに[エージェントチーム](/ja/agent-teams)を参照してください。サブエージェントは単一のセッション内で動作します。エージェントチームは別々のセッション間で調整します。

15</Note>

16 

17サブエージェントは以下に役立ちます:

18 

19* **コンテキストを保持する** ことで、探索と実装をメインの会話から分離します

20* **制約を強制する** ことで、サブエージェントが使用できるツールを制限します

21* **設定を再利用する** ことで、ユーザーレベルのサブエージェントをプロジェクト全体で再利用します

22* **動作を特化させる** ことで、特定のドメイン向けの焦点を絞ったシステムプロンプトを使用します

23* **コストを制御する** ことで、Haiku のような高速で安価なモデルにタスクをルーティングします

24 

25Claude は各サブエージェントの説明を使用して、タスクを委譲するかどうかを決定します。サブエージェントを作成するときは、Claude がいつそれを使用するかを知るように、明確な説明を書いてください。

26 

27Claude Code には、**Explore**、**Plan**、**general-purpose** などのいくつかの組み込みサブエージェントが含まれています。特定のタスクを処理するカスタムサブエージェントを作成することもできます。このページでは以下について説明します:

28 

29* [組み込みサブエージェント](#built-in-subagents)

30* [独自のサブエージェントを作成する方法](#quickstart-create-your-first-subagent)

31* [完全な設定オプション](#configure-subagents)

32* [サブエージェントを使用するためのパターン](#work-with-subagents)

33* [フォークされたサブエージェント](#fork-the-current-conversation)

34* [サブエージェントの例](#example-subagents)

35 

36## 組み込みサブエージェント

37 

38Claude Code には、Claude が適切なときに自動的に使用する組み込みサブエージェントが含まれています。各サブエージェントは、親の会話の権限を継承し、追加のツール制限があります。

39 

40<Tabs>

41 <Tab title="Explore">

42 コードベースの検索と分析に最適化された高速な読み取り専用エージェント。

43 

44 * **モデル**:Haiku(高速、低レイテンシ)

45 * **ツール**:読み取り専用ツール(Write および Edit ツールへのアクセスは拒否)

46 * **目的**:ファイル検出、コード検索、コードベース探索

47 

48 Claude は、変更を加えずにコードベースを検索または理解する必要があるときに Explore に委譲します。これにより、探索結果がメインの会話コンテキストから除外されます。

49 

50 Explore を呼び出すときに、Claude は徹底度レベルを指定します:ターゲット検索の場合は **quick**、バランスの取れた探索の場合は **medium**、包括的な分析の場合は **very thorough**。

51 </Tab>

52 

53 <Tab title="Plan">

54 [プランモード](/ja/common-workflows#use-plan-mode-for-safe-code-analysis)中にプランを提示する前にコンテキストを収集するために使用される研究エージェント。

55 

56 * **モデル**:メイン会話から継承

57 * **ツール**:読み取り専用ツール(Write および Edit ツールへのアクセスは拒否)

58 * **目的**:計画のためのコードベース研究

59 

60 プランモード中に Claude がコードベースを理解する必要がある場合、研究を Plan サブエージェントに委譲します。これにより、無限ネストを防ぎます(サブエージェントは他のサブエージェントを生成できません)。同時に、必要なコンテキストを収集します。

61 </Tab>

62 

63 <Tab title="General-purpose">

64 探索と実行の両方を必要とする複雑なマルチステップタスク向けの有能なエージェント。

65 

66 * **モデル**:メイン会話から継承

67 * **ツール**:すべてのツール

68 * **目的**:複雑な研究、マルチステップ操作、コード変更

69 

70 Claude は、タスクが探索と変更の両方を必要とする場合、結果を解釈するための複雑な推論が必要な場合、または複数の依存ステップがある場合に general-purpose に委譲します。

71 </Tab>

72 

73 <Tab title="Other">

74 Claude Code には、特定のタスク向けの追加のヘルパーエージェントが含まれています。これらは通常自動的に呼び出されるため、直接使用する必要はありません。

75 

76 | エージェント | モデル | Claude が使用する場合 |

77 | :---------------- | :----- | :--------------------------------- |

78 | statusline-setup | Sonnet | `/statusline` を実行してステータスラインを設定する場合 |

79 | Claude Code Guide | Haiku | Claude Code 機能について質問する場合 |

80 </Tab>

81</Tabs>

82 

83これらの組み込みサブエージェント以外に、カスタムプロンプト、ツール制限、権限モード、hooks、および skills を使用して独自のサブエージェントを作成できます。以下のセクションでは、開始方法とサブエージェントのカスタマイズ方法を示します。

84 

85## クイックスタート:最初のサブエージェントを作成する

86 

87サブエージェントは YAML フロントマターを含む Markdown ファイルで定義されます。[手動で作成](#write-subagent-files)することも、`/agents` コマンドを使用することもできます。

88 

89このチュートリアルでは、`/agents` コマンドを使用してユーザーレベルのサブエージェントを作成する手順を説明します。サブエージェントはコードをレビューし、コードベースの改善を提案します。

90 

91<Steps>

92 <Step title="サブエージェントインターフェースを開く">

93 Claude Code で、以下を実行します:

94 

95 ```text theme={null}

96 /agents

97 ```

98 </Step>

99 

100 <Step title="場所を選択する">

101 **Library** タブに切り替え、**Create new agent** を選択し、**Personal** を選択します。これにより、サブエージェントが `~/.claude/agents/` に保存され、すべてのプロジェクトで利用可能になります。

102 </Step>

103 

104 <Step title="Claude で生成する">

105 **Generate with Claude** を選択します。プロンプトが表示されたら、サブエージェントを説明します:

106 

107 ```text theme={null}

108 A code improvement agent that scans files and suggests improvements

109 for readability, performance, and best practices. It should explain

110 each issue, show the current code, and provide an improved version.

111 ```

112 

113 Claude は識別子、説明、およびシステムプロンプトを生成します。

114 </Step>

115 

116 <Step title="ツールを選択する">

117 読み取り専用レビュアーの場合は、**Read-only tools** 以外のすべてを選択解除します。すべてのツールを選択したままにすると、サブエージェントはメイン会話で利用可能なすべてのツールを継承します。

118 </Step>

119 

120 <Step title="モデルを選択する">

121 サブエージェントが使用するモデルを選択します。このサンプルエージェントの場合は、**Sonnet** を選択します。これはコードパターンの分析のための機能と速度のバランスを取ります。

122 </Step>

123 

124 <Step title="色を選択する">

125 サブエージェントの背景色を選択します。これにより、UI でどのサブエージェントが実行されているかを識別するのに役立ちます。

126 </Step>

127 

128 <Step title="メモリを設定する">

129 **User scope** を選択して、サブエージェントに `~/.claude/agent-memory/` の[永続メモリディレクトリ](#enable-persistent-memory)を提供します。サブエージェントはこれを使用して、コードベースパターンや繰り返される問題など、会話全体で洞察を蓄積します。サブエージェントが学習を永続化しないようにする場合は、**None** を選択します。

130 </Step>

131 

132 <Step title="保存して試す">

133 設定概要を確認します。`s` または `Enter` を押して保存するか、`e` を押してエディターで保存して編集します。サブエージェントはすぐに利用可能になります。試してみます:

134 

135 ```text theme={null}

136 Use the code-improver agent to suggest improvements in this project

137 ```

138 

139 Claude は新しいサブエージェントに委譲し、コードベースをスキャンして改善提案を返します。

140 </Step>

141</Steps>

142 

143これで、マシン上のプロジェクトでコードベースを分析し、改善を提案するために使用できるサブエージェントができました。

144 

145Markdown ファイルとして手動でサブエージェントを作成したり、CLI フラグを使用して定義したり、プラグインを通じて配布したりすることもできます。以下のセクションでは、すべての設定オプションについて説明します。

146 

147## サブエージェントを設定する

148 

149### /agents コマンドを使用する

150 

151`/agents` コマンドは、サブエージェントを管理するためのタブ付きインターフェースを開きます。**Running** タブはライブサブエージェントを表示し、それらを開くまたは停止できます。**Library** タブでは以下を実行できます:

152 

153* すべての利用可能なサブエージェント(組み込み、ユーザー、プロジェクト、プラグイン)を表示する

154* ガイド付きセットアップまたは Claude 生成を使用して新しいサブエージェントを作成する

155* 既存のサブエージェント設定とツールアクセスを編集する

156* カスタムサブエージェントを削除する

157* 重複が存在する場合、どのサブエージェントがアクティブであるかを確認する

158 

159これはサブエージェントを作成および管理するための推奨される方法です。手動作成または自動化の場合は、サブエージェントファイルを直接追加することもできます。

160 

161インタラクティブセッションを開始せずにコマンドラインからすべての設定されたサブエージェントをリストするには、`claude agents` を実行します。これにより、エージェントがソース別にグループ化され、より高い優先度の定義によってオーバーライドされているかどうかが示されます。

162 

163### サブエージェントのスコープを選択する

164 

165サブエージェントは YAML フロントマターを含む Markdown ファイルです。スコープに応じて異なる場所に保存します。複数のサブエージェントが同じ名前を共有する場合、より高い優先度の場所が優先されます。

166 

167| 場所 | スコープ | 優先度 | 作成方法 |

168| :---------------------- | :---------- | :---- | :---------------------------- |

169| 管理設定 | 組織全体 | 1(最高) | [管理設定](/ja/settings)を通じてデプロイ |

170| `--agents` CLI フラグ | 現在のセッション | 2 | Claude Code を起動するときに JSON を渡す |

171| `.claude/agents/` | 現在のプロジェクト | 3 | インタラクティブまたは手動 |

172| `~/.claude/agents/` | すべてのプロジェクト | 4 | インタラクティブまたは手動 |

173| プラグインの `agents/` ディレクトリ | プラグインが有効な場所 | 5(最低) | [プラグイン](/ja/plugins)でインストール |

174 

175**プロジェクトサブエージェント** (`.claude/agents/`)は、コードベース固有のサブエージェントに最適です。バージョン管理にチェックインして、チームが協力して使用および改善できるようにします。

176 

177プロジェクトサブエージェントは、現在の作業ディレクトリから上へ向かって検出されます。`--add-dir` で追加されたディレクトリは[ファイルアクセスのみを付与](/ja/permissions#additional-directories-grant-file-access-not-configuration)し、サブエージェントはスキャンされません。プロジェクト全体でサブエージェントを共有するには、`~/.claude/agents/` または[プラグイン](/ja/plugins)を使用します。

178 

179**ユーザーサブエージェント** (`~/.claude/agents/`)は、すべてのプロジェクトで利用可能な個人用サブエージェントです。

180 

181**CLI で定義されたサブエージェント** は、Claude Code を起動するときに JSON として渡されます。これらはそのセッションのみに存在し、ディスクに保存されないため、クイックテストまたは自動化スクリプトに役立ちます。単一の `--agents` 呼び出しで複数のサブエージェントを定義できます:

182 

183```bash theme={null}

184claude --agents '{

185 "code-reviewer": {

186 "description": "Expert code reviewer. Use proactively after code changes.",

187 "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",

188 "tools": ["Read", "Grep", "Glob", "Bash"],

189 "model": "sonnet"

190 },

191 "debugger": {

192 "description": "Debugging specialist for errors and test failures.",

193 "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes."

194 }

195}'

196```

197 

198`--agents` フラグは、ファイルベースのサブエージェントと同じ[フロントマター](#supported-frontmatter-fields)フィールドを持つ JSON を受け入れます:`description`、`prompt`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`isolation`、および `color`。システムプロンプトには `prompt` を使用します。これはファイルベースのサブエージェントの markdown 本体と同等です。

199 

200**管理サブエージェント** は、組織管理者によってデプロイされます。[管理設定ディレクトリ](/ja/settings#settings-files)内の `.claude/agents/` に markdown ファイルを配置し、プロジェクトおよびユーザーサブエージェントと同じフロントマター形式を使用します。管理定義は、同じ名前のプロジェクトおよびユーザーサブエージェントより優先されます。

201 

202**プラグインサブエージェント** は、インストールした[プラグイン](/ja/plugins)から提供されます。これらは、カスタムサブエージェントと一緒に `/agents` に表示されます。プラグインサブエージェントの作成の詳細については、[プラグインコンポーネントリファレンス](/ja/plugins-reference#agents)を参照してください。

203 

204<Note>

205 セキュリティ上の理由から、プラグインサブエージェントは `hooks`、`mcpServers`、または `permissionMode` フロントマターフィールドをサポートしていません。これらのフィールドはプラグインからエージェントを読み込むときに無視されます。これらが必要な場合は、エージェントファイルを `.claude/agents/` または `~/.claude/agents/` にコピーしてください。また、`settings.json` または `settings.local.json` の [`permissions.allow`](/ja/settings#permission-settings)にルールを追加することもできますが、これらのルールはプラグインサブエージェントだけでなく、セッション全体に適用されます。

206</Note>

207 

208これらのスコープのいずれかからのサブエージェント定義は、[エージェントチーム](/ja/agent-teams#use-subagent-definitions-for-teammates)でも利用可能です:チームメイトを生成するときに、サブエージェント型を参照でき、チームメイトはその `tools` と `model` を使用し、定義の本体がチームメイトのシステムプロンプトに追加指示として追加されます。[エージェントチーム](/ja/agent-teams#use-subagent-definitions-for-teammates)を参照して、どのフロントマターフィールドがこのパスに適用されるかを確認してください。

209 

210### サブエージェントファイルを書く

211 

212サブエージェントファイルは、YAML フロントマターを使用して設定を行い、その後に Markdown でシステムプロンプトを続けます:

213 

214<Note>

215 サブエージェントはセッション開始時に読み込まれます。ファイルを手動で追加してサブエージェントを作成する場合は、セッションを再起動するか、`/agents` を使用してすぐに読み込みます。

216</Note>

217 

218```markdown theme={null}

219---

220name: code-reviewer

221description: Reviews code for quality and best practices

222tools: Read, Glob, Grep

223model: sonnet

224---

225 

226You are a code reviewer. When invoked, analyze the code and provide

227specific, actionable feedback on quality, security, and best practices.

228```

229 

230フロントマターはサブエージェントのメタデータと設定を定義します。本体はサブエージェントの動作をガイドするシステムプロンプトになります。サブエージェントは、このシステムプロンプト(作業ディレクトリなどの基本的な環境詳細を含む)のみを受け取り、完全な Claude Code システムプロンプトは受け取りません。

231 

232サブエージェントはメイン会話の現在の作業ディレクトリで開始します。サブエージェント内では、`cd` コマンドは Bash または PowerShell ツール呼び出し間で永続化されず、メイン会話の作業ディレクトリに影響しません。代わりにサブエージェントにリポジトリの分離されたコピーを提供するには、[`isolation: worktree`](#supported-frontmatter-fields)を設定します。

233 

234#### サポートされているフロントマターフィールド

235 

236以下のフィールドは YAML フロントマターで使用できます。`name` と `description` のみが必須です。

237 

238| フィールド | 必須 | 説明 |

239| :---------------- | :-- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

240| `name` | はい | 小文字とハイフンを使用した一意の識別子 |

241| `description` | はい | Claude がこのサブエージェントに委譲する場合 |

242| `tools` | いいえ | サブエージェントが使用できる[ツール](#available-tools)。省略した場合はすべてのツールを継承 |

243| `disallowedTools` | いいえ | 拒否するツール。継承または指定されたリストから削除 |

244| `model` | いいえ | 使用する[モデル](#choose-a-model):`sonnet`、`opus`、`haiku`、完全なモデル ID(例:`claude-opus-4-7`)、または `inherit`。デフォルトは `inherit` |

245| `permissionMode` | いいえ | [権限モード](#permission-modes):`default`、`acceptEdits`、`auto`、`dontAsk`、`bypassPermissions`、または `plan`。[プラグインサブエージェント](#choose-the-subagent-scope)では無視されます |

246| `maxTurns` | いいえ | サブエージェントが停止する前の最大 agentic ターン数 |

247| `skills` | いいえ | スタートアップ時にサブエージェントのコンテキストに読み込む[スキル](/ja/skills)。呼び出しのために利用可能にするだけでなく、完全なスキルコンテンツが注入されます。サブエージェントは親の会話からスキルを継承しません |

248| `mcpServers` | いいえ | このサブエージェントで利用可能な[MCP サーバー](/ja/mcp)。各エントリは、既に設定されたサーバーを参照するサーバー名(例:`"slack"`)または、サーバー名をキーとし、完全な[MCP サーバー設定](/ja/mcp#installing-mcp-servers)を値とするインライン定義のいずれかです。[プラグインサブエージェント](#choose-the-subagent-scope)では無視されます |

249| `hooks` | いいえ | このサブエージェントにスコープされた[ライフサイクルフック](#define-hooks-for-subagents)。[プラグインサブエージェント](#choose-the-subagent-scope)では無視されます |

250| `memory` | いいえ | [永続メモリスコープ](#enable-persistent-memory):`user`、`project`、または `local`。クロスセッション学習を有効にします |

251| `background` | いいえ | `true` に設定して、このサブエージェントを常に[バックグラウンドタスク](#run-subagents-in-foreground-or-background)として実行します。デフォルト:`false` |

252| `effort` | いいえ | このサブエージェントがアクティブな場合の努力レベル。セッション努力レベルをオーバーライドします。デフォルト:セッションから継承。オプション:`low`、`medium`、`high`、`xhigh`、`max`。利用可能なレベルはモデルに依存します |

253| `isolation` | いいえ | `worktree` に設定して、サブエージェントを一時的な[git worktree](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)で実行し、リポジトリの分離されたコピーを提供します。サブエージェントが変更を加えない場合、worktree は自動的にクリーンアップされます |

254| `color` | いいえ | タスクリストとトランスクリプトでサブエージェントの表示色。`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、または `cyan` を受け入れます |

255| `initialPrompt` | いいえ | このエージェントがメインセッションエージェント(`--agent` または `agent` 設定を通じて)として実行される場合、最初のユーザーターンとして自動送信されます。[コマンド](/ja/commands)および[スキル](/ja/skills)が処理されます。ユーザーが提供するプロンプトの前に付加されます |

256 

257### モデルを選択する

258 

259`model` フィールドは、サブエージェントが使用する[AI モデル](/ja/model-config)を制御します:

260 

261* **モデルエイリアス**:利用可能なエイリアスの 1 つを使用します:`sonnet`、`opus`、または `haiku`

262* **完全なモデル ID**:`claude-opus-4-7` または `claude-sonnet-4-6` などの完全なモデル ID を使用します。`--model` フラグと同じ値を受け入れます

263* **inherit**:メイン会話と同じモデルを使用します

264* **省略**:指定されていない場合、デフォルトは `inherit`(メイン会話と同じモデルを使用)です

265 

266Claude がサブエージェントを呼び出すときに、その特定の呼び出しに対して `model` パラメーターを渡すこともできます。Claude Code はサブエージェントのモデルを次の順序で解決します:

267 

2681. [`CLAUDE_CODE_SUBAGENT_MODEL`](/ja/model-config#environment-variables)環境変数(設定されている場合)

2692. 呼び出しごとの `model` パラメーター

2703. サブエージェント定義の `model` フロントマター

2714. メイン会話のモデル

272 

273### サブエージェント機能を制御する

274 

275ツールアクセス、権限モード、および条件付きルールを通じて、サブエージェントが実行できることを制御できます。

276 

277#### 利用可能なツール

278 

279サブエージェントは、Claude Code の[内部ツール](/ja/tools-reference)のいずれかを使用できます。デフォルトでは、サブエージェントは MCP ツールを含む、メイン会話からすべてのツールを継承します。

280 

281ツールを制限するには、`tools` フィールド(許可リスト)または `disallowedTools` フィールド(拒否リスト)を使用します。この例は `tools` を使用して、Read、Grep、Glob、および Bash のみを排他的に許可します。サブエージェントはファイルを編集したり、ファイルを書き込んだり、MCP ツールを使用したりできません:

282 

283```yaml theme={null}

284---

285name: safe-researcher

286description: Research agent with restricted capabilities

287tools: Read, Grep, Glob, Bash

288---

289```

290 

291この例は `disallowedTools` を使用して、Write および Edit を除く、メイン会話からすべてのツールを継承します。サブエージェントは Bash、MCP ツール、およびその他すべてを保持します:

292 

293```yaml theme={null}

294---

295name: no-writes

296description: Inherits every tool except file writes

297disallowedTools: Write, Edit

298---

299```

300 

301両方が設定されている場合、`disallowedTools` が最初に適用され、その後 `tools` が残りのプールに対して解決されます。両方にリストされているツールは削除されます。

302 

303#### 生成できるサブエージェントを制限する

304 

305エージェントが `claude --agent` でメインスレッドとして実行される場合、Agent ツールを使用してサブエージェントを生成できます。生成できるサブエージェントの種類を制限するには、`tools` フィールドで `Agent(agent_type)` 構文を使用します。

306 

307<Note>バージョン 2.1.63 では、Task ツールが Agent に名前変更されました。設定とエージェント定義の既存の `Task(...)` 参照は引き続きエイリアスとして機能します。</Note>

308 

309```yaml theme={null}

310---

311name: coordinator

312description: Coordinates work across specialized agents

313tools: Agent(worker, researcher), Read, Bash

314---

315```

316 

317これは許可リストです:`worker` と `researcher` サブエージェントのみを生成できます。エージェントが他の種類を生成しようとすると、リクエストは失敗し、エージェントはプロンプトで許可されたタイプのみを表示します。特定のエージェントをブロックしながら他のすべてを許可するには、代わりに[`permissions.deny`](#disable-specific-subagents)を使用します。

318 

319制限なしでサブエージェントを生成できるようにするには、括弧なしで `Agent` を使用します:

320 

321```yaml theme={null}

322tools: Agent, Read, Bash

323```

324 

325`Agent` が `tools` リストから完全に省略されている場合、エージェントはサブエージェントを生成できません。この制限は、`claude --agent` でメインスレッドとして実行されるエージェントにのみ適用されます。サブエージェントは他のサブエージェントを生成できないため、`Agent(agent_type)` はサブエージェント定義では効果がありません。

326 

327#### MCP サーバーをサブエージェントにスコープする

328 

329`mcpServers` フィールドを使用して、メイン会話で利用可能でない[MCP](/ja/mcp) サーバーへのアクセスをサブエージェントに付与します。ここで定義されたインラインサーバーは、サブエージェントの開始時に接続され、終了時に切断されます。文字列参照は親セッションの接続を共有します。

330 

331<Note>

332 `mcpServers` フィールドは、エージェントファイルが実行できる両方のコンテキストに適用されます:

333 

334 * Agent ツールまたは @-mention を通じて生成されるサブエージェント

335 * [`--agent`](#invoke-subagents-explicitly)または `agent` 設定で起動されるメインセッション

336 

337 エージェントがメインセッションの場合、インラインサーバー定義は、[`.mcp.json`](/ja/mcp)および設定ファイルのサーバーと一緒にスタートアップ時に接続されます。

338</Note>

339 

340リスト内の各エントリは、インラインサーバー定義またはセッションで既に設定されている MCP サーバーを参照する文字列のいずれかです:

341 

342```yaml theme={null}

343---

344name: browser-tester

345description: Tests features in a real browser using Playwright

346mcpServers:

347 # Inline definition: scoped to this subagent only

348 - playwright:

349 type: stdio

350 command: npx

351 args: ["-y", "@playwright/mcp@latest"]

352 # Reference by name: reuses an already-configured server

353 - github

354---

355 

356Use the Playwright tools to navigate, screenshot, and interact with pages.

357```

358 

359インライン定義は、`.mcp.json` サーバーエントリ(`stdio`、`http`、`sse`、`ws`)と同じスキーマを使用し、サーバー名でキー付けされます。

360 

361MCP サーバーをメイン会話から完全に除外し、そのツール説明がコンテキストを消費するのを避けるには、`.mcp.json` ではなくここでインラインで定義します。サブエージェントはツールを取得します。親の会話は取得しません。

362 

363#### 権限モード

364 

365`permissionMode` フィールドは、サブエージェントが権限プロンプトをどのように処理するかを制御します。サブエージェントはメイン会話から権限コンテキストを継承しますが、モードをオーバーライドできます。ただし、以下で説明するように、親モードが優先される場合があります。

366 

367| モード | 動作 |

368| :------------------ | :------------------------------------------------------------------------------------------------- |

369| `default` | プロンプト付きの標準権限チェック |

370| `acceptEdits` | ファイル編集と作業ディレクトリまたは `additionalDirectories` 内のパスの一般的なファイルシステムコマンドを自動受け入れ |

371| `auto` | [自動モード](/ja/permission-modes#eliminate-prompts-with-auto-mode):バックグラウンド分類器がコマンドと保護されたディレクトリ書き込みを確認 |

372| `dontAsk` | 権限プロンプトを自動拒否(明示的に許可されたツールは引き続き機能) |

373| `bypassPermissions` | すべての権限チェックをスキップ |

374| `plan` | プランモード(読み取り専用探索) |

375 

376<Warning>

377 `bypassPermissions` は注意して使用してください。権限プロンプトをスキップし、サブエージェントが承認なしで操作を実行できるようにします。`.git`、`.claude`、`.vscode`、`.idea`、および `.husky` ディレクトリへの書き込みを含む、承認なしで操作を実行できるようにします。`/` や `/root` などのルートおよびホームディレクトリの削除は、サーキットブレーカーとしてプロンプトが表示されます。詳細については、[権限モード](/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)を参照してください。

378</Warning>

379 

380親が `bypassPermissions` または `acceptEdits` を使用する場合、これが優先され、オーバーライドできません。親が[自動モード](/ja/permission-modes#eliminate-prompts-with-auto-mode)を使用する場合、サブエージェントは自動モードを継承し、フロントマター内の `permissionMode` は無視されます:分類器は、親セッションと同じブロックおよび許可ルールを使用してサブエージェントのツール呼び出しを評価します。

381 

382#### スキルをサブエージェントにプリロードする

383 

384`skills` フィールドを使用して、スキルコンテンツをスタートアップ時にサブエージェントのコンテキストに注入します。これにより、実行中にスキルを検出して読み込む必要なく、サブエージェントにドメイン知識を提供します。

385 

386```yaml theme={null}

387---

388name: api-developer

389description: Implement API endpoints following team conventions

390skills:

391 - api-conventions

392 - error-handling-patterns

393---

394 

395Implement API endpoints. Follow the conventions and patterns from the preloaded skills.

396```

397 

398各スキルの完全なコンテンツがサブエージェントのコンテキストに注入され、呼び出しのために利用可能にするだけではありません。サブエージェントは親の会話からスキルを継承しません。明示的にリストする必要があります。

399 

400[`disable-model-invocation: true`](/ja/skills#control-who-invokes-a-skill)を設定するスキルをプリロードすることはできません。プリロードは Claude が呼び出すことができるスキルの同じセットから引き出されるためです。リストされたスキルが見つからないか無効な場合、Claude Code はそれをスキップし、デバッグログに警告をログします。

401 

402<Note>

403 これは[サブエージェントでスキルを実行する](/ja/skills#run-skills-in-a-subagent)の逆です。サブエージェントの `skills` を使用すると、サブエージェントはシステムプロンプトを制御し、スキルコンテンツを読み込みます。スキルの `context: fork` を使用すると、スキルコンテンツが指定したエージェントに注入されます。どちらも同じ基盤システムを使用します。

404</Note>

405 

406#### 永続メモリを有効にする

407 

408`memory` フィールドは、会話全体で存続する永続ディレクトリをサブエージェントに提供します。サブエージェントはこのディレクトリを使用して、コードベースパターン、デバッグの洞察、アーキテクチャの決定など、時間をかけて知識を構築します。

409 

410```yaml theme={null}

411---

412name: code-reviewer

413description: Reviews code for quality and best practices

414memory: user

415---

416 

417You are a code reviewer. As you review code, update your agent memory with

418patterns, conventions, and recurring issues you discover.

419```

420 

421メモリがどの程度広く適用されるべきかに基づいて、スコープを選択します:

422 

423| スコープ | 場所 | 使用する場合 |

424| :-------- | :-------------------------------------------- | :-------------------------------------------- |

425| `user` | `~/.claude/agent-memory/<name-of-agent>/` | サブエージェントがすべてのプロジェクト全体で学習を記憶する必要がある場合 |

426| `project` | `.claude/agent-memory/<name-of-agent>/` | サブエージェントの知識がプロジェクト固有で、バージョン管理を通じて共有可能な場合 |

427| `local` | `.claude/agent-memory-local/<name-of-agent>/` | サブエージェントの知識がプロジェクト固有だが、バージョン管理にチェックインすべきでない場合 |

428 

429メモリが有効な場合:

430 

431* サブエージェントのシステムプロンプトには、メモリディレクトリの読み取りと書き込みの指示が含まれます。

432* サブエージェントのシステムプロンプトには、メモリディレクトリの `MEMORY.md` の最初の 200 行または 25KB(どちらか小さい方)も含まれ、`MEMORY.md` がその制限を超える場合はキュレーションの指示が含まれます。

433* Read、Write、および Edit ツールが自動的に有効になり、サブエージェントがメモリファイルを管理できるようになります。

434 

435##### 永続メモリのヒント

436 

437* `project` は推奨されるデフォルトスコープです。バージョン管理を通じてサブエージェント知識を共有可能にします。サブエージェントの知識がプロジェクト全体で広く適用可能な場合は `user` を使用するか、知識がバージョン管理にチェックインされるべきでない場合は `local` を使用します。

438* サブエージェントに作業を開始する前にメモリを確認するよう依頼します:「このプルリクエストをレビューし、以前に見たパターンについてメモリを確認してください。」

439* タスク完了後、サブエージェントにメモリを更新するよう依頼します:「完了したので、学習したことをメモリに保存してください。」時間をかけて、これはサブエージェントをより効果的にする知識ベースを構築します。

440* メモリ指示をサブエージェントの markdown ファイルに直接含めて、独自の知識ベースを積極的に維持するようにします:

441 

442 ```markdown theme={null}

443 Update your agent memory as you discover codepaths, patterns, library

444 locations, and key architectural decisions. This builds up institutional

445 knowledge across conversations. Write concise notes about what you found

446 and where.

447 ```

448 

449#### hooks を使用した条件付きルール

450 

451ツール使用をより動的に制御するには、`PreToolUse` hooks を使用して、操作が実行される前に検証します。これは、ツールの一部の操作を許可しながら他の操作をブロックする必要がある場合に役立ちます。

452 

453この例は、読み取り専用データベースクエリのみを許可するサブエージェントを作成します。`PreToolUse` hook は、各 Bash コマンドが実行される前に `command` で指定されたスクリプトを実行します:

454 

455```yaml theme={null}

456---

457name: db-reader

458description: Execute read-only database queries

459tools: Bash

460hooks:

461 PreToolUse:

462 - matcher: "Bash"

463 hooks:

464 - type: command

465 command: "./scripts/validate-readonly-query.sh"

466---

467```

468 

469Claude Code は[hook 入力を JSON として](/ja/hooks#pretooluse-input)stdin を通じて hook コマンドに渡します。検証スクリプトはこの JSON を読み取り、Bash コマンドを抽出し、[終了コード 2](/ja/hooks#exit-code-2-behavior-per-event)で書き込み操作をブロックします:

470 

471```bash theme={null}

472#!/bin/bash

473# ./scripts/validate-readonly-query.sh

474 

475INPUT=$(cat)

476COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')

477 

478# Block SQL write operations (case-insensitive)

479if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE)\b' > /dev/null; then

480 echo "Blocked: Only SELECT queries are allowed" >&2

481 exit 2

482fi

483 

484exit 0

485```

486 

487完全な入力スキーマについては[Hook 入力](/ja/hooks#pretooluse-input)を参照し、終了コードが動作に与える影響については[終了コード](/ja/hooks#exit-code-output)を参照してください。

488 

489#### 特定のサブエージェントを無効にする

490 

491[設定](/ja/settings#permission-settings)の `deny` 配列にサブエージェントを追加することで、Claude が特定のサブエージェントを使用するのを防ぐことができます。`Agent(subagent-name)` 形式を使用します。ここで `subagent-name` はサブエージェントの name フィールドと一致します。

492 

493```json theme={null}

494{

495 "permissions": {

496 "deny": ["Agent(Explore)", "Agent(my-custom-agent)"]

497 }

498}

499```

500 

501これは組み込みとカスタムの両方のサブエージェントで機能します。`--disallowedTools` CLI フラグを使用することもできます:

502 

503```bash theme={null}

504claude --disallowedTools "Agent(Explore)"

505```

506 

507権限ルールの詳細については、[権限ドキュメント](/ja/permissions#tool-specific-permission-rules)を参照してください。

508 

509### サブエージェント用の hooks を定義する

510 

511サブエージェントは、サブエージェントのライフサイクル中に実行される[hooks](/ja/hooks)を定義できます。hooks を設定する方法は 2 つあります:

512 

5131. **サブエージェントのフロントマター内**:そのサブエージェントがアクティブな間のみ実行される hooks を定義します

5142. **`settings.json` 内**:サブエージェントが開始または停止するときにメインセッションで実行される hooks を定義します

515 

516#### サブエージェントフロントマター内の hooks

517 

518サブエージェントの markdown ファイルで直接 hooks を定義します。これらの hooks は、その特定のサブエージェントがアクティブな間のみ実行され、終了時にクリーンアップされます。

519 

520<Note>

521 フロントマター hooks は、Agent ツールまたは @-mention を通じてサブエージェントとして生成されるときに発火します。また、[`--agent`](#invoke-subagents-explicitly)または `agent` 設定でメインセッションとして実行される場合にも発火します。メインセッションの場合、[`settings.json`](/ja/hooks)で定義されている hooks と一緒に実行されます。

522</Note>

523 

524すべての[hook イベント](/ja/hooks#hook-events)がサポートされています。サブエージェントの最も一般的なイベントは:

525 

526| イベント | マッチャー入力 | 発火する場合 |

527| :------------ | :------ | :--------------------------------------- |

528| `PreToolUse` | ツール名 | サブエージェントがツールを使用する前 |

529| `PostToolUse` | ツール名 | サブエージェントがツールを使用した後 |

530| `Stop` | (なし) | サブエージェントが終了する場合(実行時に `SubagentStop` に変換) |

531 

532この例は、`PreToolUse` hook で Bash コマンドを検証し、`PostToolUse` でファイル編集後にリンターを実行します:

533 

534```yaml theme={null}

535---

536name: code-reviewer

537description: Review code changes with automatic linting

538hooks:

539 PreToolUse:

540 - matcher: "Bash"

541 hooks:

542 - type: command

543 command: "./scripts/validate-command.sh $TOOL_INPUT"

544 PostToolUse:

545 - matcher: "Edit|Write"

546 hooks:

547 - type: command

548 command: "./scripts/run-linter.sh"

549---

550```

551 

552フロントマター内の `Stop` hooks は自動的に `SubagentStop` イベントに変換されます。

553 

554#### サブエージェントイベント用のプロジェクトレベル hooks

555 

556メインセッションでサブエージェントのライフサイクルイベントに応答する hooks を `settings.json` で設定します。

557 

558| イベント | マッチャー入力 | 発火する場合 |

559| :-------------- | :------- | :----------------- |

560| `SubagentStart` | エージェント型名 | サブエージェントが実行を開始する場合 |

561| `SubagentStop` | エージェント型名 | サブエージェントが完了する場合 |

562 

563両方のイベントは、名前でエージェント型をターゲットにするマッチャーをサポートします。この例は、`db-agent` サブエージェントが開始するときのみセットアップスクリプトを実行し、サブエージェントが停止するときにクリーンアップスクリプトを実行します:

564 

565```json theme={null}

566{

567 "hooks": {

568 "SubagentStart": [

569 {

570 "matcher": "db-agent",

571 "hooks": [

572 { "type": "command", "command": "./scripts/setup-db-connection.sh" }

573 ]

574 }

575 ],

576 "SubagentStop": [

577 {

578 "hooks": [

579 { "type": "command", "command": "./scripts/cleanup-db-connection.sh" }

580 ]

581 }

582 ]

583 }

584}

585```

586 

587完全な hook 設定形式については、[Hooks](/ja/hooks)を参照してください。

588 

589## サブエージェントを使用する

590 

591### 自動委譲を理解する

592 

593Claude は、リクエスト内のタスク説明、サブエージェント設定の `description` フィールド、および現在のコンテキストに基づいて、タスクを自動的に委譲します。積極的な委譲を促進するには、サブエージェントの description フィールドに「use proactively」などのフレーズを含めます。

594 

595### サブエージェントを明示的に呼び出す

596 

597自動委譲では不十分な場合、サブエージェント自体をリクエストできます。3 つのパターンは、1 回限りの提案からセッション全体のデフォルトまでエスカレートします:

598 

599* **自然言語**:プロンプトでサブエージェントに名前を付けます。Claude は委譲するかどうかを決定します

600* **@-mention**:サブエージェントが 1 つのタスクで実行されることを保証します

601* **セッション全体**:セッション全体が `--agent` フラグまたは `agent` 設定を通じてそのサブエージェントのシステムプロンプト、ツール制限、およびモデルを使用します

602 

603自然言語の場合、特別な構文はありません。サブエージェントに名前を付けると、Claude は通常委譲します:

604 

605```text theme={null}

606Use the test-runner subagent to fix failing tests

607Have the code-reviewer subagent look at my recent changes

608```

609 

610**サブエージェントを @-mention します。** `@` を入力し、タイプアヘッドからサブエージェントを選択します。ファイルを @-mention する方法と同じです。これにより、Claude の選択ではなく、特定のサブエージェントが実行されることが保証されます:

611 

612```text theme={null}

613@"code-reviewer (agent)" look at the auth changes

614```

615 

616完全なメッセージは引き続き Claude に送信され、Claude はあなたが何を尋ねたかに基づいてサブエージェントのタスクプロンプトを作成します。@-mention は Claude が呼び出すサブエージェントを制御し、受け取るプロンプトではありません。

617 

618有効な[プラグイン](/ja/plugins)から提供されるサブエージェントは、タイプアヘッドに `<plugin-name>:<agent-name>` として表示されます。セッションで現在実行されている名前付きバックグラウンドサブエージェントもタイプアヘッドに表示され、名前の横にステータスが表示されます。ピッカーを使用せずに手動で mention を入力することもできます:ローカルサブエージェントの場合は `@agent-<name>`、プラグインサブエージェントの場合は `@agent-<plugin-name>:<agent-name>`。

619 

620**セッション全体をサブエージェントとして実行します。** [`--agent <name>`](/ja/cli-reference)を渡して、メインスレッド自体がそのサブエージェントのシステムプロンプト、ツール制限、およびモデルを採用するセッションを開始します:

621 

622```bash theme={null}

623claude --agent code-reviewer

624```

625 

626サブエージェントのシステムプロンプトは、[`--system-prompt`](/ja/cli-reference)と同じように、デフォルト Claude Code システムプロンプトを完全に置き換えます。`CLAUDE.md` ファイルとプロジェクトメモリは引き続き通常のメッセージフローを通じて読み込まれます。エージェント名は起動ヘッダーに `@<name>` として表示されるため、アクティブであることを確認できます。

627 

628これは組み込みとカスタムの両方のサブエージェントで機能し、セッションを再開するときに選択が保持されます。

629 

630プラグイン提供のサブエージェントの場合、スコープ付き名を渡します:`claude --agent <plugin-name>:<agent-name>`。

631 

632プロジェクト内のすべてのセッションのデフォルトにするには、`.claude/settings.json` で `agent` を設定します:

633 

634```json theme={null}

635{

636 "agent": "code-reviewer"

637}

638```

639 

640両方が存在する場合、CLI フラグが設定をオーバーライドします。

641 

642### サブエージェントをフォアグラウンドまたはバックグラウンドで実行する

643 

644サブエージェントは、フォアグラウンド(ブロッキング)またはバックグラウンド(並行)で実行できます:

645 

646* **フォアグラウンドサブエージェント** は、完了するまでメイン会話をブロックします。権限プロンプトと明確化の質問([`AskUserQuestion`](/ja/tools-reference)など)はあなたに渡されます。

647* **バックグラウンドサブエージェント** は、作業を続ける間に並行して実行されます。起動前に、Claude Code はサブエージェントが必要とするツール権限をプロンプトし、必要な承認があることを確認します。実行開始後、サブエージェントはこれらの権限を継承し、事前に承認されていないものを自動拒否します。バックグラウンドサブエージェントが明確化の質問をする必要がある場合、そのツール呼び出しは失敗しますが、サブエージェントは続行します。

648 

649バックグラウンドサブエージェントが権限不足で失敗した場合、新しいフォアグラウンドサブエージェントを開始して同じタスクで再試行し、インタラクティブプロンプトを使用できます。

650 

651Claude は、タスクに基づいてサブエージェントをフォアグラウンドまたはバックグラウンドで実行するかどうかを決定します。また、以下を実行できます:

652 

653* Claude に「run this in the background」と依頼する

654* **Ctrl+B** を押して実行中のタスクをバックグラウンドにする

655 

656すべてのバックグラウンドタスク機能を無効にするには、`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 環境変数を `1` に設定します。[環境変数](/ja/env-vars)を参照してください。

657 

658[fork モード](#fork-the-current-conversation)が有効な場合、すべてのサブエージェント生成は `background` フィールドに関係なくバックグラウンドで実行されます。フォークは引き続き権限プロンプトをターミナルに表示します。名前付きサブエージェントは上記の事前承認フローに従います。

659 

660### 一般的なパターン

661 

662#### 大量操作を分離する

663 

664サブエージェントの最も効果的な用途の 1 つは、大量の出力を生成する操作を分離することです。テストの実行、ドキュメントの取得、またはログファイルの処理は、かなりのコンテキストを消費できます。これらをサブエージェントに委譲することで、詳細な出力はサブエージェントのコンテキストに留まり、関連する概要のみがメイン会話に返されます。

665 

666```text theme={null}

667Use a subagent to run the test suite and report only the failing tests with their error messages

668```

669 

670#### 並行研究を実行する

671 

672独立した調査の場合、複数のサブエージェントを生成して同時に動作させます:

673 

674```text theme={null}

675Research the authentication, database, and API modules in parallel using separate subagents

676```

677 

678各サブエージェントは独立して領域を探索し、Claude は結果を統合します。これは、研究パスが互いに依存しない場合に最適に機能します。

679 

680<Warning>

681 サブエージェントが完了すると、その結果がメイン会話に返されます。詳細な結果を返す多くのサブエージェントを実行すると、かなりのコンテキストを消費できます。

682</Warning>

683 

684持続的な並列性が必要なタスクまたはコンテキストウィンドウを超えるタスクの場合、[エージェントチーム](/ja/agent-teams)は各ワーカーに独立したコンテキストを提供します。

685 

686#### サブエージェントをチェーンする

687 

688マルチステップワークフローの場合、Claude にサブエージェントを順序立てて使用するよう依頼します。各サブエージェントはタスクを完了して結果を Claude に返し、Claude は関連するコンテキストを次のサブエージェントに渡します。

689 

690```text theme={null}

691Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them

692```

693 

694### サブエージェントとメイン会話の選択

695 

696**メイン会話** を使用する場合:

697 

698* タスクが頻繁なやり取りまたは反復的な改善が必要な場合

699* 複数のフェーズが重要なコンテキストを共有する場合(計画 → 実装 → テスト)

700* 迅速でターゲット化された変更を行う場合

701* レイテンシが重要な場合。サブエージェントは新規に開始し、コンテキストを収集するのに時間がかかる場合があります

702 

703**サブエージェント** を使用する場合:

704 

705* タスクがメインコンテキストで不要な詳細な出力を生成する場合

706* 特定のツール制限または権限を強制したい場合

707* 作業が自己完結型で、概要を返すことができる場合

708 

709代わりに[スキル](/ja/skills)を検討してください。メイン会話コンテキストで実行される再利用可能なプロンプトまたはワークフローが必要な場合、分離されたサブエージェントコンテキストではなく。

710 

711会話に既にあるものについての簡単な質問の場合は、サブエージェントの代わりに[`/btw`](/ja/interactive-mode#side-questions-with-%2Fbtw)を使用します。完全なコンテキストを表示しますが、ツールアクセスはなく、答えは履歴に追加されるのではなく破棄されます。

712 

713<Note>

714 サブエージェントは他のサブエージェントを生成できません。ワークフローがネストされた委譲を必要とする場合は、[スキル](/ja/skills)を使用するか、メイン会話から[サブエージェントをチェーン](#chain-subagents)します。

715</Note>

716 

717### サブエージェントコンテキストを管理する

718 

719#### サブエージェントを再開する

720 

721各サブエージェント呼び出しは、新しいコンテキストで新しいインスタンスを作成します。最初からやり直すのではなく、既存のサブエージェントの作業を続けるには、Claude に再開するよう依頼します。

722 

723再開されたサブエージェントは、すべての前のツール呼び出し、結果、および推論を含む、完全な会話履歴を保持します。サブエージェントは、新規に開始するのではなく、停止した場所から正確に再開します。

724 

725サブエージェントが完了すると、Claude はエージェント ID を受け取ります。Claude は `SendMessage` ツールを使用してエージェントの ID を `to` フィールドとして使用してサブエージェントを再開します。`SendMessage` ツールは、[エージェントチーム](/ja/agent-teams)が `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` を通じて有効になっている場合にのみ利用可能です。

726 

727サブエージェントを再開するには、Claude に前の作業を続けるよう依頼します:

728 

729```text theme={null}

730Use the code-reviewer subagent to review the authentication module

731[Agent completes]

732 

733Continue that code review and now analyze the authorization logic

734[Claude resumes the subagent with full context from previous conversation]

735```

736 

737停止したサブエージェントが `SendMessage` を受け取った場合、新しい `Agent` 呼び出しを必要とせずにバックグラウンドで自動再開します。

738 

739エージェント ID を明示的に参照したい場合は Claude に依頼することもできます。または、`~/.claude/projects/{project}/{sessionId}/subagents/` のトランスクリプトファイルで ID を見つけることができます。各トランスクリプトは `agent-{agentId}.jsonl` として保存されます。

740 

741サブエージェントトランスクリプトはメイン会話から独立して永続化されます:

742 

743* **メイン会話圧縮**:メイン会話が圧縮されると、サブエージェントトランスクリプトは影響を受けません。別のファイルに保存されます。

744* **セッション永続性**:サブエージェントトランスクリプトはセッション内で永続化されます。Claude Code を再起動した後、同じセッションを再開することで[サブエージェントを再開](#resume-subagents)できます。

745* **自動クリーンアップ**:トランスクリプトは `cleanupPeriodDays` 設定に基づいてクリーンアップされます(デフォルト:30 日)。

746 

747#### 自動圧縮

748 

749サブエージェントは、メイン会話と同じロジックを使用した自動圧縮をサポートします。デフォルトでは、自動圧縮は約 95% の容量でトリガーされます。圧縮を早期にトリガーするには、`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` をより低いパーセンテージ(例:`50`)に設定します。詳細については、[環境変数](/ja/env-vars)を参照してください。

750 

751圧縮イベントはサブエージェントトランスクリプトファイルにログされます:

752 

753```json theme={null}

754{

755 "type": "system",

756 "subtype": "compact_boundary",

757 "compactMetadata": {

758 "trigger": "auto",

759 "preTokens": 167189

760 }

761}

762```

763 

764`preTokens` 値は、圧縮が発生する前に使用されたトークン数を示します。

765 

766## 現在の会話をフォークする

767 

768<Note>

769 フォークされたサブエージェントは実験的であり、Claude Code v2.1.117 以降が必要です。動作と設定は将来のリリースで変更される可能性があります。[`CLAUDE_CODE_FORK_SUBAGENT`](/ja/env-vars) 環境変数を `1` に設定して有効にしてください。この変数はインタラクティブモードおよび SDK または `claude -p` 経由で有効になります。

770</Note>

771 

772フォークは、これまでの会話全体を継承するサブエージェントです。これにより、サブエージェントが通常提供する入力分離が削除されます。フォークはメインセッションと同じシステムプロンプト、ツール、モデル、およびメッセージ履歴を表示するため、状況を再度説明することなく、サイドタスクを渡すことができます。フォークのツール呼び出しはまだ会話から除外され、最終結果のみが返されるため、メインコンテキストウィンドウはクリーンなままです。フォークを使用する場合は、名前付きサブエージェントが有用であるには背景が多すぎる場合、または同じ開始点から複数のアプローチを並行して試したい場合です。

773 

774フォークモードを有効にすると、Claude Code が 3 つの方法で変更されます:

775 

776* Claude は、[general-purpose](#built-in-subagents) サブエージェントを使用する場合にフォークを生成します。Explore などの名前付きサブエージェントは以前と同じように生成されます。

777* すべてのサブエージェント生成は、[バックグラウンド](#run-subagents-in-foreground-or-background)で実行されます。`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` を `1` に設定して、生成を同期的に保つことができます。

778* `/fork` コマンドは、[`/branch`](/ja/commands) のエイリアスとして機能するのではなく、フォークを生成します。

779 

780`/fork` の後に指示を続けて、フォークを自分で開始できます。Claude Code はフォークに指示の最初の単語から名前を付けます。次の例は、メインセッションで実装を続ける間に、フォークが会話をドラフトテストケースに分岐させます:

781 

782```text theme={null}

783/fork draft unit tests for the parser changes so far

784```

785 

786フォークはプロンプト入力の下のパネルに表示され、作業を続ける間にバックグラウンドで実行されます。完了すると、その結果がメイン会話にメッセージとして到着します。次のセクションでは、実行中のフォークを監視して操作するためのパネルコントロールについて説明します。

787 

788### 実行中のフォークを観察して操作する

789 

790実行中のフォークはプロンプト入力の下のパネルに表示され、メインセッション用に 1 行、各フォーク用に 1 行があります。これらのキーを使用してパネルと対話します:

791 

792| キー | アクション |

793| :-------- | :----------------------------------- |

794| `↑` / `↓` | 行間を移動 |

795| `Enter` | 選択したフォークのトランスクリプトを開き、フォローアップメッセージを送信 |

796| `x` | 完了したフォークを閉じるか、実行中のフォークを停止 |

797| `Esc` | フォーカスをプロンプト入力に戻す |

798 

799### フォークと名前付きサブエージェントの違い

800 

801フォークはメインセッションがその時点で持っているすべてを継承します。名前付きサブエージェントは独自の定義から開始します。

802 

803| | フォーク | 名前付きサブエージェント |

804| :------------ | :------------- | :------------------------------------------------------------- |

805| コンテキスト | 完全な会話履歴 | 渡すプロンプトを使用した新しいコンテキスト |

806| システムプロンプトとツール | メインセッションと同じ | [定義ファイル](#write-subagent-files) から |

807| モデル | メインセッションと同じ | サブエージェントの `model` フィールドから |

808| 権限 | プロンプトがターミナルに表示 | 起動前に[事前承認](#run-subagents-in-foreground-or-background)、その後自動拒否 |

809| プロンプトキャッシュ | メインセッションと共有 | 別のキャッシュ |

810 

811フォークのシステムプロンプトとツール定義は親と同じであるため、最初のリクエストは親のプロンプトキャッシュを再利用します。これにより、同じコンテキストが必要なタスクの場合、フォークは新しいサブエージェントを生成するよりも安価です。

812 

813Claude がフォークを Agent ツール経由で生成するときに、`isolation: "worktree"` を渡すことができるため、フォークのファイル編集は、チェックアウトではなく、別の git worktree に書き込まれます。

814 

815### 制限事項

816 

817`CLAUDE_CODE_FORK_SUBAGENT=1` を設定すると、インタラクティブセッション、[非インタラクティブモード](/ja/headless)、および Agent SDK でフォークモードが有効になります。フォークはさらにフォークを生成できません。

818 

819## サブエージェントの例

820 

821これらの例は、サブエージェントを構築するための効果的なパターンを示しています。出発点として使用するか、Claude を使用してカスタマイズされたバージョンを生成します。

822 

823<Tip>

824 **ベストプラクティス:**

825 

826 * **焦点を絞ったサブエージェントを設計する:** 各サブエージェントは 1 つの特定のタスクに優れている必要があります

827 * **詳細な説明を書く:** Claude は説明を使用して委譲するかどうかを決定します

828 * **ツールアクセスを制限する:** セキュリティと焦点のために必要な権限のみを付与します

829 * **バージョン管理にチェックインする:** プロジェクトサブエージェントをチームと共有します

830</Tip>

831 

832### コードレビュアー

833 

834コードを変更せずにレビューする読み取り専用サブエージェント。この例は、制限されたツールアクセス(Edit または Write なし)と、何を探すべきか、出力をどのようにフォーマットするかを正確に指定する詳細なプロンプトを使用して、焦点を絞ったサブエージェントを設計する方法を示しています。

835 

836```markdown theme={null}

837---

838name: code-reviewer

839description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.

840tools: Read, Grep, Glob, Bash

841model: inherit

842---

843 

844You are a senior code reviewer ensuring high standards of code quality and security.

845 

846When invoked:

8471. Run git diff to see recent changes

8482. Focus on modified files

8493. Begin review immediately

850 

851Review checklist:

852- Code is clear and readable

853- Functions and variables are well-named

854- No duplicated code

855- Proper error handling

856- No exposed secrets or API keys

857- Input validation implemented

858- Good test coverage

859- Performance considerations addressed

860 

861Provide feedback organized by priority:

862- Critical issues (must fix)

863- Warnings (should fix)

864- Suggestions (consider improving)

865 

866Include specific examples of how to fix issues.

867```

868 

869### デバッガー

870 

871問題を分析して修正できるサブエージェント。コードレビュアーとは異なり、このサブエージェントはバグの修正にはコード変更が必要なため、Edit を含みます。プロンプトは診断から検証までの明確なワークフローを提供します。

872 

873```markdown theme={null}

874---

875name: debugger

876description: Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.

877tools: Read, Edit, Bash, Grep, Glob

878---

879 

880You are an expert debugger specializing in root cause analysis.

881 

882When invoked:

8831. Capture error message and stack trace

8842. Identify reproduction steps

8853. Isolate the failure location

8864. Implement minimal fix

8875. Verify solution works

888 

889Debugging process:

890- Analyze error messages and logs

891- Check recent code changes

892- Form and test hypotheses

893- Add strategic debug logging

894- Inspect variable states

895 

896For each issue, provide:

897- Root cause explanation

898- Evidence supporting the diagnosis

899- Specific code fix

900- Testing approach

901- Prevention recommendations

902 

903Focus on fixing the underlying issue, not the symptoms.

904```

905 

906### データサイエンティスト

907 

908データ分析作業向けのドメイン固有のサブエージェント。この例は、典型的なコーディングタスク以外の特化したワークフロー向けのサブエージェントを作成する方法を示しています。より有能な分析のために `model: sonnet` を明示的に設定します。

909 

910```markdown theme={null}

911---

912name: data-scientist

913description: Data analysis expert for SQL queries, BigQuery operations, and data insights. Use proactively for data analysis tasks and queries.

914tools: Bash, Read, Write

915model: sonnet

916---

917 

918You are a data scientist specializing in SQL and BigQuery analysis.

919 

920When invoked:

9211. Understand the data analysis requirement

9222. Write efficient SQL queries

9233. Use BigQuery command line tools (bq) when appropriate

9244. Analyze and summarize results

9255. Present findings clearly

926 

927Key practices:

928- Write optimized SQL queries with proper filters

929- Use appropriate aggregations and joins

930- Include comments explaining complex logic

931- Format results for readability

932- Provide data-driven recommendations

933 

934For each analysis:

935- Explain the query approach

936- Document any assumptions

937- Highlight key findings

938- Suggest next steps based on data

939 

940Always ensure queries are efficient and cost-effective.

941```

942 

943### データベースクエリバリデーター

944 

945Bash アクセスを許可しますが、読み取り専用 SQL クエリのみを許可するようにコマンドを検証するサブエージェント。この例は、`tools` フィールドが提供するよりも細かい制御が必要な場合に、`PreToolUse` hooks を使用して条件付き検証を行う方法を示しています。

946 

947```markdown theme={null}

948---

949name: db-reader

950description: Execute read-only database queries. Use when analyzing data or generating reports.

951tools: Bash

952hooks:

953 PreToolUse:

954 - matcher: "Bash"

955 hooks:

956 - type: command

957 command: "./scripts/validate-readonly-query.sh"

958---

959 

960You are a database analyst with read-only access. Execute SELECT queries to answer questions about the data.

961 

962When asked to analyze data:

9631. Identify which tables contain the relevant data

9642. Write efficient SELECT queries with appropriate filters

9653. Present results clearly with context

966 

967You cannot modify data. If asked to INSERT, UPDATE, DELETE, or modify schema, explain that you only have read access.

968```

969 

970Claude Code は[hook 入力を JSON として](/ja/hooks#pretooluse-input)stdin を通じて hook コマンドに渡します。検証スクリプトはこの JSON を読み取り、実行されるコマンドを抽出し、SQL 書き込み操作のリストに対してチェックします。書き込み操作が検出された場合、スクリプトは[終了コード 2](/ja/hooks#exit-code-2-behavior-per-event)で終了して、stderr を通じて Claude にエラーメッセージを返します。

971 

972プロジェクト内の任意の場所に検証スクリプトを作成します。パスは hook 設定の `command` フィールドと一致する必要があります:

973 

974```bash theme={null}

975#!/bin/bash

976# Blocks SQL write operations, allows SELECT queries

977 

978# Read JSON input from stdin

979INPUT=$(cat)

980 

981# Extract the command field from tool_input using jq

982COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')

983 

984if [ -z "$COMMAND" ]; then

985 exit 0

986fi

987 

988# Block write operations (case-insensitive)

989if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE|REPLACE|MERGE)\b' > /dev/null; then

990 echo "Blocked: Write operations not allowed. Use SELECT queries only." >&2

991 exit 2

992fi

993 

994exit 0

995```

996 

997スクリプトを実行可能にします:

998 

999```bash theme={null}

1000chmod +x ./scripts/validate-readonly-query.sh

1001```

1002 

1003hook は stdin を通じて JSON を受け取り、Bash コマンドは `tool_input.command` にあります。終了コード 2 は操作をブロックし、エラーメッセージを Claude にフィードバックします。終了コードと[Hook 入力](/ja/hooks#pretooluse-input)の詳細については、[Hooks](/ja/hooks#exit-code-output)を参照してください。

1004 

1005## 次のステップ

1006 

1007サブエージェントを理解したので、これらの関連機能を探索してください:

1008 

1009* [プラグインでサブエージェントを配布する](/ja/plugins)ことで、チームまたはプロジェクト全体でサブエージェントを共有します

1010* [Claude Code をプログラムで実行する](/ja/headless)ことで、Agent SDK を使用して CI/CD と自動化を行います

1011* [MCP サーバーを使用する](/ja/mcp)ことで、サブエージェントに外部ツールとデータへのアクセスを提供します

terminal-config.md +307 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code 用にターミナルを設定する

6 

7> Shift+Enter で改行を修正し、Claude が完了したときにターミナルベルを取得し、tmux を設定し、カラーテーマを一致させ、Claude Code CLI で Vim モードを有効にします。

8 

9Claude Code はどのターミナルでも設定なしで動作します。このページは、特定の動作が期待どおりに機能していない場合のためのものです。以下から症状を見つけてください。すべてが既に正しく感じられる場合は、このページは必要ありません。

10 

11* [Shift+Enter が改行を挿入する代わりに送信する](#enter-multiline-prompts)

12* [macOS で Option キーショートカットが機能しない](#enable-option-key-shortcuts-on-macos)

13* [Claude が完了したときに音またはアラートがない](#get-a-terminal-bell-or-notification)

14* [Claude Code を tmux 内で実行している](#configure-tmux)

15* [表示がちらつくか、スクロールバックがジャンプする](#switch-to-fullscreen-rendering)

16* [プロンプトで Vim キーを使いたい](#edit-prompts-with-vim-keybindings)

17 

18このページは、ターミナルが Claude Code に正しい信号を送信するようにすることについてです。Claude Code 自体が応答するキーを変更するには、代わりに [キーバインディング](/ja/keybindings) を参照してください。

19 

20## 複数行のプロンプトを入力する

21 

22Enter キーを押すとメッセージが送信されます。送信せずに改行を追加するには、Ctrl+J を押すか、`\` を入力してから Enter キーを押します。どちらもセットアップなしですべてのターミナルで機能します。

23 

24ほとんどのターミナルでは Shift+Enter も押すことができますが、サポートはターミナルエミュレータによって異なります。

25 

26| ターミナル | Shift+Enter で改行 |

27| :------------------------------------------------------------------------- | :-------------------------------- |

28| Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal | セットアップなしで機能 |

29| VS Code、Cursor、Windsurf、Alacritty、Zed | 1 回 `/terminal-setup` を実行 |

30| Windows Terminal、gnome-terminal、PyCharm や Android Studio などの JetBrains IDE | 利用不可。Ctrl+J または `\` の後に Enter を使用 |

31 

32VS Code、Cursor、Windsurf、Alacritty、Zed の場合、`/terminal-setup` は Shift+Enter およびその他のキーバインディングをターミナルの設定ファイルに書き込みます。VS Code、Cursor、Windsurf ではエディタ設定で `terminal.integrated.mouseWheelScrollSensitivity` も設定され、[フルスクリーンモード](/ja/fullscreen) でのスクロールがスムーズになります。既存のバインディングと設定はそのまま保持されます。`VSCode terminal Shift+Enter key binding already configured` などのメッセージが表示された場合は、変更は加えられていません。tmux または screen 内ではなく、ホストターミナル内で直接 `/terminal-setup` を実行してください。ホストターミナルの設定に書き込む必要があるためです。

33 

34tmux 内で実行している場合、外側のターミナルがサポートしている場合でも、Shift+Enter には以下の [tmux 設定](#configure-tmux) が必要です。

35 

36改行を別のキーにバインドするか、Enter が改行を挿入し Shift+Enter が送信するように動作を入れ替えるには、[キーバインディングファイル](/ja/keybindings) で `chat:newline` および `chat:submit` アクションをマップします。

37 

38## macOS で Option キーショートカットを有効にする

39 

40Claude Code のいくつかのショートカットは Option キーを使用します。例えば、改行の場合は Option+Enter、モデルを切り替える場合は Option+P です。macOS では、ほとんどのターミナルはデフォルトでは Option を修飾子として送信しないため、これらのショートカットは有効にするまで機能しません。このターミナル設定は通常「Option を Meta キーとして使用」というラベルが付いています。Meta は、現在 Option または Alt というラベルが付いているキーの歴史的な Unix 名です。

41 

42<Tabs>

43 <Tab title="Apple Terminal">

44 設定 → プロファイル → キーボードを開き、'Option を Meta キーとして使用'をチェックします。

45 

46 Claude Code の初回実行プロンプトで'改行と視覚的ベルの場合は Option+Enter'を受け入れた場合、これは既に完了しています。そのプロンプトは `/terminal-setup` を実行し、Apple Terminal プロファイルで Option を Meta として有効にし、オーディオベルをビジュアルスクリーンフラッシュに切り替えます。

47 </Tab>

48 

49 <Tab title="iTerm2">

50 設定 → プロファイル → キー → 一般を開き、左 Option キーと右 Option キーを「Esc+」に設定します。

51 

52 iTerm2 で `/terminal-setup` を実行すると、設定 → 一般 → 選択の下の「ターミナル内のアプリケーションがクリップボードにアクセスできる」が有効になり、`/copy` コマンドがシステムクリップボードに書き込むことができます。このコマンドは tmux 内から実行された場合でも iTerm2 を検出します。変更を有効にするために iTerm2 を再起動してください。

53 </Tab>

54 

55 <Tab title="VS Code">

56 VS Code 設定に `"terminal.integrated.macOptionIsMeta": true` を追加します。

57 </Tab>

58</Tabs>

59 

60Ghostty、Kitty、およびその他のターミナルについては、ターミナルの設定ファイルで Option-as-Alt または Option-as-Meta 設定を探してください。

61 

62## ターミナルベルまたは通知を取得する

63 

64Claude がタスクを完了するか、権限プロンプトで一時停止すると、通知イベントが発火します。これをターミナルベルまたはデスクトップ通知として表示すると、長いタスクが実行されている間に他の作業に切り替えることができます。

65 

66デフォルトでは Claude Code はデスクトップ通知を Ghostty、Kitty、および iTerm2 でのみ送信します。他のターミナルでは、[`preferredNotifChannel`](/ja/settings#available-settings) を `"terminal_bell"` に設定してターミナルベルを鳴らすか、カスタムサウンドまたはコマンド用に [通知フック](#play-a-sound-with-a-notification-hook) を設定してください。

67 

68デスクトップ通知は SSH 経由でローカルマシンに到達するため、リモートセッションでもアラートを表示できます。Ghostty と Kitty はさらなるセットアップなしで OS 通知センターに転送します。iTerm2 では転送を有効にする必要があります。

69 

70<Steps>

71 <Step title="iTerm2 通知設定を開く">

72 設定 → プロファイル → ターミナルに移動します。

73 </Step>

74 

75 <Step title="アラートを有効にする">

76 「Notification Center Alerts」をチェックし、「Filter Alerts」をクリックして「Send escape sequence-generated alerts」を有効にします。

77 </Step>

78</Steps>

79 

80通知がまだ表示されない場合は、ターミナルアプリケーションが OS 設定で通知権限を持っていることを確認し、tmux 内で実行している場合は [パススルーを有効にします](#configure-tmux)。

81 

82### 通知フックでサウンドを再生する

83 

84任意のターミナルで [通知フック](/ja/hooks-guide#get-notified-when-claude-needs-input) を設定して、Claude があなたの注意が必要なときにサウンドを再生するか、カスタムコマンドを実行できます。フックはデスクトップ通知の代わりではなく、並行して実行されるため、Warp や VS Code 統合ターミナルなどのデスクトップ通知を受け取らないターミナルは、フックを使用するか、`preferredNotifChannel` を `"terminal_bell"` に設定できます。

85 

86以下の例は macOS でシステムサウンドを再生します。リンクされたガイドには macOS、Linux、および Windows のデスクトップ通知コマンドがあります。

87 

88```json ~/.claude/settings.json theme={null}

89{

90 "hooks": {

91 "Notification": [

92 {

93 "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]

94 }

95 ]

96 }

97}

98```

99 

100## tmux を設定する

101 

102Claude Code が tmux 内で実行されている場合、デフォルトでは 2 つのことが壊れます。Shift+Enter が改行を挿入する代わりに送信し、デスクトップ通知と [プログレスバー](/ja/settings#available-settings) が外側のターミナルに到達しません。これらの行を `~/.tmux.conf` に追加し、`tmux source-file ~/.tmux.conf` を実行して実行中のサーバーに適用します。

103 

104```bash ~/.tmux.conf theme={null}

105set -g allow-passthrough on

106set -s extended-keys on

107set -as terminal-features 'xterm*:extkeys'

108```

109 

110`allow-passthrough` 行により、通知とプログレス更新が tmux に飲み込まれるのではなく、iTerm2、Ghostty、または Kitty に到達できます。`extended-keys` 行により、tmux は Shift+Enter をプレーン Enter と区別できるため、改行ショートカットが機能します。

111 

112## カラーテーマを一致させる

113 

114`/theme` コマンドを使用するか、`/config` のテーマピッカーを使用して、ターミナルに一致する Claude Code テーマを選択します。自動オプションを選択すると、ターミナルの明るいまたは暗い背景が検出されるため、テーマは OS の外観の変更に従います。Claude Code はターミナルアプリケーションによって設定されるターミナル自体のカラースキームを制御しません。

115 

116インターフェースの下部に表示される内容をカスタマイズするには、現在のモデル、作業ディレクトリ、git ブランチ、またはその他のコンテキストを表示する [カスタムステータスライン](/ja/statusline) を設定します。

117 

118### カスタムテーマを作成する

119 

120<Note>

121 カスタムテーマには Claude Code v2.1.118 以降が必要です。

122</Note>

123 

124組み込みプリセットに加えて、`/theme` はユーザーが定義したカスタムテーマと、インストール済みの [プラグイン](/ja/plugins-reference#themes) によって提供されるテーマを一覧表示します。リストの最後にある **新しいカスタムテーマ…** を選択して、対話的に作成します。テーマに名前を付けてから、個別のカラートークンを選択してオーバーライドします。カスタムテーマがハイライトされている状態で `Ctrl+E` を押すと、編集できます。

125 

126各カスタムテーマは `~/.claude/themes/` 内の JSON ファイルです。`.json` 拡張子を除いたファイル名がテーマのスラッグであり、テーマを選択すると `custom:<slug>` がテーマの設定として保存されます。ファイルには 3 つのオプションフィールドがあります。

127 

128| フィールド | 型 | 説明 |

129| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- |

130| `name` | string | `/theme` に表示されるラベル。デフォルトはファイル名スラッグ |

131| `base` | string | テーマの開始元となる組み込みプリセット:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi`、または `light-ansi`。デフォルトは `dark` |

132| `overrides` | object | カラートークン名をカラー値にマップします。ここにリストされていないトークンはベースプリセットにフォールスルーします |

133 

134カラー値は `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)`、または `ansi:<name>` を受け入れます。ここで `<name>` は `red` や `cyanBright` などの 16 個の標準 ANSI カラー名の 1 つです。不明なトークンと無効なカラー値は無視されるため、タイプミスはレンダリングを破壊することはできません。

135 

136次の例は、ダークプリセットを保持しながら、プロンプトアクセント、エラーテキスト、成功テキストを再色付けするテーマを定義しています。

137 

138```json ~/.claude/themes/dracula.json theme={null}

139{

140 "name": "Dracula",

141 "base": "dark",

142 "overrides": {

143 "claude": "#bd93f9",

144 "error": "#ff5555",

145 "success": "#50fa7b"

146 }

147}

148```

149 

150Claude Code は `~/.claude/themes/` を監視し、ファイルが変更されるとリロードするため、エディターで行われた編集は再起動なしで実行中のセッションに適用されます。

151 

152以下は、`overrides` で設定できるトークンをカバーしています。`/theme` の対話的エディターは、ここでカバーされていない少数の単一目的のアクセント(オンボーディング画面の色など)を含む、ライブプレビュー付きの同じトークンを表示します。

153 

154<Accordion title="カラートークンリファレンス">

155 次の例は、複数のグループからのトークンを組み合わせています。ブランドアクセント、プランモードボーダー、diff 背景、および全画面メッセージ背景です。

156 

157 ```json ~/.claude/themes/midnight.json theme={null}

158 {

159 "name": "Midnight",

160 "base": "dark",

161 "overrides": {

162 "claude": "#a78bfa",

163 "planMode": "#38bdf8",

164 "diffAdded": "#14532d",

165 "diffRemoved": "#7f1d1d",

166 "userMessageBackground": "#1e1b4b"

167 }

168 }

169 ```

170 

171 #### テキストとアクセントカラー

172 

173 プライマリブランドアクセントと、インターフェース全体で使用されるフォアグラウンドテキストの色合いを制御します。

174 

175 | トークン | 制御対象 |

176 | :------------ | :----------------------------------- |

177 | `claude` | プライマリブランドアクセント。スピナーとアシスタントラベルに使用されます |

178 | `text` | デフォルトのフォアグラウンドテキスト |

179 | `inverseText` | ステータスバッジなど、色付き背景の上に描画されるテキスト |

180 | `inactive` | ヒント、タイムスタンプ、無効化されたアイテムなどのセカンダリテキスト |

181 | `subtle` | 薄いボーダーと強調されていないセカンダリテキスト |

182 | `suggestion` | オートコンプリート候補とピッカーの選択ハイライト |

183 | `permission` | パーミッションプロンプトとピッカーを含むダイアログボーダー |

184 | `remember` | メモリと `CLAUDE.md` インジケーター |

185 

186 #### ステータスカラー

187 

188 メッセージとインジケーター全体で成功、失敗、警告状態を通知します。

189 

190 | トークン | 制御対象 |

191 | :-------- | :---------------------- |

192 | `success` | 成功メッセージと合格チェック |

193 | `error` | エラーメッセージと失敗 |

194 | `warning` | 警告、注意メッセージ、および自動モードボーダー |

195 | `merged` | マージされたプルリクエストステータス |

196 

197 #### 入力ボックスとモードインジケーター

198 

199 入力ボックスのボーダーカラーと、パーミッションモードまたはインジケーターがアクティブな間に表示されるアクセントを設定します。

200 

201 | トークン | 制御対象 |

202 | :------------- | :---------------------------- |

203 | `promptBorder` | デフォルトパーミッションモードの入力ボックスボーダー |

204 | `planMode` | プランモードアクセントとボーダー |

205 | `autoAccept` | 受け入れ編集モードアクセントとボーダー |

206 | `bashBorder` | `!` シェルコマンドを入力するときの入力ボックスボーダー |

207 | `ide` | IDE 接続インジケーター |

208 | `fastMode` | 高速モードインジケーター |

209 

210 #### Diff レンダリング

211 

212 ファイル編集とレビューで追加および削除されたコードに色を付けます。

213 

214 | トークン | 制御対象 |

215 | :------------------ | :-------------------------- |

216 | `diffAdded` | 追加された行の背景 |

217 | `diffRemoved` | 削除された行の背景 |

218 | `diffAddedDimmed` | 追加された行の近くの変更されていないコンテキストの背景 |

219 | `diffRemovedDimmed` | 削除された行の近くの変更されていないコンテキストの背景 |

220 | `diffAddedWord` | 追加された行内の単語レベルのハイライト |

221 | `diffRemovedWord` | 削除された行内の単語レベルのハイライト |

222 

223 #### 全画面モード

224 

225 [全画面レンダリングモード](/ja/fullscreen) でのみ適用されます。メッセージは背景塗りつぶしを持ちます。

226 

227 | トークン | 制御対象 |

228 | :--------------------------- | :------------------------------- |

229 | `userMessageBackground` | トランスクリプト内のメッセージの背後の背景 |

230 | `userMessageBackgroundHover` | ホバーまたは展開中のメッセージの背後の背景 |

231 | `messageActionsBackground` | アクションバーが開いているときの選択されたメッセージの背後の背景 |

232 | `bashMessageBackgroundColor` | トランスクリプト内の `!` シェルコマンドエントリの背後の背景 |

233 | `memoryBackgroundColor` | トランスクリプト内の `#` メモリエントリの背後の背景 |

234 | `selectionBg` | マウスで選択されたテキストの背景 |

235 

236 #### 使用量メーターとスピーカーラベル

237 

238 `/usage` ビューに表示されるバーと、メッセージを区別するラベルを調整します。

239 

240 | トークン | 制御対象 |

241 | :----------------- | :-------------------------- |

242 | `rate_limit_fill` | 使用量メーターの塗りつぶされた部分 |

243 | `rate_limit_empty` | 使用量メーターの塗りつぶされていない部分 |

244 | `briefLabelYou` | メッセージの `You` ラベルの色 |

245 | `briefLabelClaude` | アシスタントメッセージの `Claude` ラベルの色 |

246 

247 #### シマー変種とサブエージェントカラー

248 

249 複数のトークンにはペアになったシマー変種があり、スピナーのアニメーション化されたグラデーションで使用される明るい色を提供します。アニメーションが一致しないように見える場合は、ベーストークンと一緒にシマーをオーバーライドします。

250 

251 * `claude` と `claudeShimmer`

252 * `warning` と `warningShimmer`

253 * `permission` と `permissionShimmer`

254 * `promptBorder` と `promptBorderShimmer`

255 * `inactive` と `inactiveShimmer`

256 * `fastMode` と `fastModeShimmer`

257 

258 各 [サブエージェント](/ja/sub-agents) と並列タスクは、トランスクリプト内で区別できるように、8 つの名前付きカラーの 1 つで表示されます。トークン名は `<color>_FOR_SUBAGENTS_ONLY` パターンに従います。ここで `<color>` は `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、または `cyan` です。これらをオーバーライドして、各名前付きカラーの外観を変更します。たとえば、定義に `color: blue` を持つサブエージェントは、`blue_FOR_SUBAGENTS_ONLY` 値を使用して描画されます。

259 

260 [`ultrathink`](/ja/model-config#use-ultrathink-for-one-off-deep-reasoning) と [`ultraplan`](/ja/ultraplan) キーワードはプロンプト入力で 7 色のレインボーグラデーションでレンダリングされます。トークン名は `rainbow_<color>` と `rainbow_<color>_shimmer` パターンに従います。ここで `<color>` は `red`、`orange`、`yellow`、`green`、`blue`、`indigo`、または `violet` です。

261</Accordion>

262 

263## フルスクリーンレンダリングに切り替える

264 

265Claude が作業中に表示がちらつくか、スクロール位置がジャンプする場合は、[フルスクリーンレンダリングモード](/ja/fullscreen) に切り替えます。ターミナルが通常のスクロールバックに追加する代わりに、フルスクリーンアプリ用に予約されている別のスクリーンに描画します。これにより、メモリ使用量が一定に保たれ、スクロールと選択のマウスサポートが追加されます。このモードでは、ターミナルのネイティブスクロールバックではなく、マウスまたは PageUp で Claude Code 内をスクロールします。検索とコピーの方法については、[フルスクリーンページ](/ja/fullscreen#search-and-review-the-conversation) を参照してください。

266 

267`/tui fullscreen` を実行して、会話をそのままにして現在のセッションで切り替えます。デフォルトにするには、Claude Code を開始する前に `CLAUDE_CODE_NO_FLICKER` 環境変数を設定します。

268 

269<CodeGroup>

270 ```bash Bash と Zsh theme={null}

271 CLAUDE_CODE_NO_FLICKER=1 claude

272 ```

273 

274 ```powershell PowerShell theme={null}

275 $env:CLAUDE_CODE_NO_FLICKER = "1"; claude

276 ```

277 

278 ```json ~/.claude/settings.json theme={null}

279 {

280 "env": {

281 "CLAUDE_CODE_NO_FLICKER": "1"

282 }

283 }

284 ```

285</CodeGroup>

286 

287## 大量のコンテンツを貼り付ける

288 

289プロンプトに 10,000 文字以上を貼り付けると、Claude Code は入力を `[Pasted text]` プレースホルダーに折りたたんで、入力ボックスが使用可能なままになります。完全なコンテンツは送信時に Claude に送信されます。

290 

291VS Code 統合ターミナルは、Claude Code に到達する前に非常に大きな貼り付けから文字をドロップできるため、そこではファイルベースのワークフローを優先します。ファイル全体や長いログなどの非常に大きな入力の場合は、コンテンツをファイルに書き込み、貼り付けの代わりに Claude に読み込むよう依頼します。これにより、会話トランスクリプトが読みやすくなり、Claude が後の手番でパスでファイルを参照できます。

292 

293## Vim キーバインディングでプロンプトを編集する

294 

295Claude Code には、プロンプト入力用の Vim スタイルの編集モードが含まれています。`/config` → エディタモードを通じて有効にするか、`~/.claude/settings.json` で [`editorMode`](/ja/settings#available-settings) を `"vim"` に設定します。エディタモードを `normal` に戻してオフにします。

296 

297Vim モードは NORMAL モードおよび VISUAL モードのモーションと演算子のサブセットをサポートしています。例えば、`hjkl` ナビゲーション、`v`/`V` 選択、およびテキストオブジェクトを使用した `d`/`c`/`y` などです。完全なキーテーブルについては、[Vim エディタモードリファレンス](/ja/interactive-mode#vim-editor-mode) を参照してください。Vim モーションはキーバインディングファイルを通じて再マップできません。

298 

299INSERT モードで Enter キーを押すと、標準 Vim とは異なり、プロンプトが送信されます。代わりに改行を挿入するには、NORMAL モードで `o` または `O` を使用するか、Ctrl+J を使用します。

300 

301## 関連リソース

302 

303* [インタラクティブモード](/ja/interactive-mode):完全なキーボードショートカットリファレンスと Vim キーテーブル

304* [キーバインディング](/ja/keybindings):Enter と Shift+Enter を含む任意の Claude Code ショートカットを再マップ

305* [フルスクリーンレンダリング](/ja/fullscreen):フルスクリーンモードでのスクロール、検索、コピーの詳細

306* [フック ガイド](/ja/hooks-guide):Linux と Windows の詳細な通知フック例

307* [トラブルシューティング](/ja/troubleshooting):ターミナル設定外の問題の修正

third-party-integrations.md +262 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# エンタープライズデプロイメント概要

6 

7> Claude Code が様々なサードパーティサービスとインフラストラクチャと統合して、エンタープライズデプロイメント要件を満たす方法について学びます。

8 

9組織は Anthropic を通じて直接、またはクラウドプロバイダーを通じて Claude Code をデプロイできます。このページは、適切な構成を選択するのに役立ちます。

10 

11## デプロイメントオプションの比較

12 

13ほとんどの組織では、Claude for Teams または Claude for Enterprise が最適なエクスペリエンスを提供します。チームメンバーは、単一のサブスクリプション、一元化された請求、インフラストラクチャセットアップが不要で、Claude Code と Web 上の Claude の両方にアクセスできます。

14 

15**Claude for Teams** はセルフサービスで、コラボレーション機能、管理ツール、請求管理が含まれています。迅速に開始する必要がある小規模なチームに最適です。

16 

17**Claude for Enterprise** は SSO とドメインキャプチャ、ロールベースの権限、コンプライアンス API アクセス、および組織全体の Claude Code 構成をデプロイするための管理ポリシー設定を追加します。セキュリティとコンプライアンス要件がある大規模な組織に最適です。

18 

19[Team プラン](https://support.claude.com/en/articles/9266767-what-is-the-team-plan)と[Enterprise プラン](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan)の詳細をご覧ください。

20 

21組織に特定のインフラストラクチャ要件がある場合は、以下のオプションを比較してください。

22 

23<table>

24 <thead>

25 <tr>

26 <th>機能</th>

27 <th>Claude for Teams/Enterprise</th>

28 <th>Anthropic Console</th>

29 <th>Amazon Bedrock</th>

30 <th>Google Vertex AI</th>

31 <th>Microsoft Foundry</th>

32 </tr>

33 </thead>

34 

35 <tbody>

36 <tr>

37 <td>最適な用途</td>

38 <td>ほとんどの組織(推奨)</td>

39 <td>個別開発者</td>

40 <td>AWS ネイティブデプロイメント</td>

41 <td>GCP ネイティブデプロイメント</td>

42 <td>Azure ネイティブデプロイメント</td>

43 </tr>

44 

45 <tr>

46 <td>請求</td>

47 <td><strong>Teams:</strong> \$150/シート(Premium)PAYG 利用可能<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">営業に連絡</a></td>

48 <td>PAYG</td>

49 <td>AWS 経由の PAYG</td>

50 <td>GCP 経由の PAYG</td>

51 <td>Azure 経由の PAYG</td>

52 </tr>

53 

54 <tr>

55 <td>リージョン</td>

56 <td>サポート対象[国](https://www.anthropic.com/supported-countries)</td>

57 <td>サポート対象[国](https://www.anthropic.com/supported-countries)</td>

58 <td>複数の AWS [リージョン](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html)</td>

59 <td>複数の GCP [リージョン](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)</td>

60 <td>複数の Azure [リージョン](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/)</td>

61 </tr>

62 

63 <tr>

64 <td>Prompt caching</td>

65 <td>デフォルトで有効</td>

66 <td>デフォルトで有効</td>

67 <td>デフォルトで有効</td>

68 <td>デフォルトで有効</td>

69 <td>デフォルトで有効</td>

70 </tr>

71 

72 <tr>

73 <td>認証</td>

74 <td>Claude.ai SSO またはメール</td>

75 <td>API キー</td>

76 <td>API キーまたは AWS 認証情報</td>

77 <td>GCP 認証情報</td>

78 <td>API キーまたは Microsoft Entra ID</td>

79 </tr>

80 

81 <tr>

82 <td>コスト追跡</td>

83 <td>使用状況ダッシュボード</td>

84 <td>使用状況ダッシュボード</td>

85 <td>AWS Cost Explorer</td>

86 <td>GCP Billing</td>

87 <td>Azure Cost Management</td>

88 </tr>

89 

90 <tr>

91 <td>Web 上の Claude を含む</td>

92 <td>はい</td>

93 <td>いいえ</td>

94 <td>いいえ</td>

95 <td>いいえ</td>

96 <td>いいえ</td>

97 </tr>

98 

99 <tr>

100 <td>エンタープライズ機能</td>

101 <td>チーム管理、SSO、使用状況監視</td>

102 <td>なし</td>

103 <td>IAM ポリシー、CloudTrail</td>

104 <td>IAM ロール、Cloud Audit Logs</td>

105 <td>RBAC ポリシー、Azure Monitor</td>

106 </tr>

107 </tbody>

108</table>

109 

110デプロイメントオプションを選択してセットアップ手順を表示します。

111 

112* [Claude for Teams または Enterprise](/ja/authentication#claude-for-teams-or-enterprise)

113* [Anthropic Console](/ja/authentication#claude-console-authentication)

114* [Amazon Bedrock](/ja/amazon-bedrock)

115* [Google Vertex AI](/ja/google-vertex-ai)

116* [Microsoft Foundry](/ja/microsoft-foundry)

117 

118## プロキシとゲートウェイの構成

119 

120ほとんどの組織は、追加の構成なしでクラウドプロバイダーを直接使用できます。ただし、組織に特定のネットワークまたは管理要件がある場合は、企業プロキシまたは LLM ゲートウェイを構成する必要がある場合があります。これらは一緒に使用できる異なる構成です。

121 

122* **企業プロキシ**: HTTP/HTTPS プロキシを通じてトラフィックをルーティングします。組織がセキュリティ監視、コンプライアンス、またはネットワークポリシー実装のためにすべての送信トラフィックをプロキシサーバーを通じて渡す必要がある場合に使用します。`HTTPS_PROXY` または `HTTP_PROXY` 環境変数で構成します。[エンタープライズネットワーク構成](/ja/network-config)で詳細をご覧ください。

123* **LLM ゲートウェイ**: Claude Code とクラウドプロバイダーの間に位置して、認証とルーティングを処理するサービスです。チーム全体の一元化された使用状況追跡、カスタムレート制限または予算、または一元化された認証管理が必要な場合に使用します。`ANTHROPIC_BASE_URL`、`ANTHROPIC_BEDROCK_BASE_URL`、または `ANTHROPIC_VERTEX_BASE_URL` 環境変数で構成します。[LLM ゲートウェイ構成](/ja/llm-gateway)で詳細をご覧ください。

124 

125以下の例は、シェルまたはシェルプロファイル(`.bashrc`、`.zshrc`)で設定する環境変数を示しています。その他の構成方法については、[設定](/ja/settings)を参照してください。

126 

127### Amazon Bedrock

128 

129<Tabs>

130 <Tab title="企業プロキシ">

131 以下の[環境変数](/ja/env-vars)を設定して、Bedrock トラフィックを企業プロキシを通じてルーティングします。

132 

133 ```bash theme={null}

134 # Bedrock を有効化

135 export CLAUDE_CODE_USE_BEDROCK=1

136 export AWS_REGION=us-east-1

137 

138 # 企業プロキシを構成

139 export HTTPS_PROXY='https://proxy.example.com:8080'

140 ```

141 </Tab>

142 

143 <Tab title="LLM ゲートウェイ">

144 以下の[環境変数](/ja/env-vars)を設定して、Bedrock トラフィックを LLM ゲートウェイを通じてルーティングします。

145 

146 ```bash theme={null}

147 # Bedrock を有効化

148 export CLAUDE_CODE_USE_BEDROCK=1

149 

150 # LLM ゲートウェイを構成

151 export ANTHROPIC_BEDROCK_BASE_URL='https://your-llm-gateway.com/bedrock'

152 export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1 # ゲートウェイが AWS 認証を処理する場合

153 ```

154 </Tab>

155</Tabs>

156 

157### Microsoft Foundry

158 

159<Tabs>

160 <Tab title="企業プロキシ">

161 以下の[環境変数](/ja/env-vars)を設定して、Foundry トラフィックを企業プロキシを通じてルーティングします。

162 

163 ```bash theme={null}

164 # Microsoft Foundry を有効化

165 export CLAUDE_CODE_USE_FOUNDRY=1

166 export ANTHROPIC_FOUNDRY_RESOURCE=your-resource

167 export ANTHROPIC_FOUNDRY_API_KEY=your-api-key # または Entra ID 認証の場合は省略

168 

169 # 企業プロキシを構成

170 export HTTPS_PROXY='https://proxy.example.com:8080'

171 ```

172 </Tab>

173 

174 <Tab title="LLM ゲートウェイ">

175 以下の[環境変数](/ja/env-vars)を設定して、Foundry トラフィックを LLM ゲートウェイを通じてルーティングします。

176 

177 ```bash theme={null}

178 # Microsoft Foundry を有効化

179 export CLAUDE_CODE_USE_FOUNDRY=1

180 

181 # LLM ゲートウェイを構成

182 export ANTHROPIC_FOUNDRY_BASE_URL='https://your-llm-gateway.com'

183 export CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1 # ゲートウェイが Azure 認証を処理する場合

184 ```

185 </Tab>

186</Tabs>

187 

188### Google Vertex AI

189 

190<Tabs>

191 <Tab title="企業プロキシ">

192 以下の[環境変数](/ja/env-vars)を設定して、Vertex AI トラフィックを企業プロキシを通じてルーティングします。

193 

194 ```bash theme={null}

195 # Vertex を有効化

196 export CLAUDE_CODE_USE_VERTEX=1

197 export CLOUD_ML_REGION=us-east5

198 export ANTHROPIC_VERTEX_PROJECT_ID=your-project-id

199 

200 # 企業プロキシを構成

201 export HTTPS_PROXY='https://proxy.example.com:8080'

202 ```

203 </Tab>

204 

205 <Tab title="LLM ゲートウェイ">

206 以下の[環境変数](/ja/env-vars)を設定して、Vertex AI トラフィックを LLM ゲートウェイを通じてルーティングします。

207 

208 ```bash theme={null}

209 # Vertex を有効化

210 export CLAUDE_CODE_USE_VERTEX=1

211 

212 # LLM ゲートウェイを構成

213 export ANTHROPIC_VERTEX_BASE_URL='https://your-llm-gateway.com/vertex'

214 export CLAUDE_CODE_SKIP_VERTEX_AUTH=1 # ゲートウェイが GCP 認証を処理する場合

215 ```

216 </Tab>

217</Tabs>

218 

219<Tip>

220 Claude Code で `/status` を使用して、プロキシとゲートウェイの構成が正しく適用されていることを確認します。

221</Tip>

222 

223## 組織のベストプラクティス

224 

225### ドキュメントとメモリに投資する

226 

227Claude Code がコードベースを理解できるようにドキュメントに投資することを強くお勧めします。組織は複数のレベルで CLAUDE.md ファイルをデプロイできます。

228 

229* **組織全体**: macOS の `/Library/Application Support/ClaudeCode/CLAUDE.md` などのシステムディレクトリにデプロイして、会社全体の標準を設定します。

230* **リポジトリレベル**: プロジェクトアーキテクチャ、ビルドコマンド、貢献ガイドラインを含むリポジトリルートに `CLAUDE.md` ファイルを作成します。ソース管理にチェックインして、すべてのユーザーが利益を得られるようにします。

231 

232[メモリと CLAUDE.md ファイル](/ja/memory)で詳細をご覧ください。

233 

234### デプロイメントを簡素化する

235 

236カスタム開発環境がある場合は、Claude Code をインストールする「ワンクリック」の方法を作成することが、組織全体での採用を促進するための鍵となることがわかっています。

237 

238### ガイド付き使用から始める

239 

240新しいユーザーに Claude Code をコードベースの Q\&A、または小さなバグ修正または機能リクエストで試すことをお勧めします。Claude Code にプランを作成するよう依頼します。Claude の提案を確認し、軌道を外れている場合はフィードバックを提供します。時間が経つにつれて、ユーザーがこの新しいパラダイムをより理解するようになると、Claude Code をより積極的に実行させるのに効果的になります。

241 

242### クラウドプロバイダーのモデルバージョンをピン留めする

243 

244[Bedrock](/ja/amazon-bedrock)、[Vertex AI](/ja/google-vertex-ai)、または [Foundry](/ja/microsoft-foundry) を通じてデプロイする場合は、`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、および `ANTHROPIC_DEFAULT_HAIKU_MODEL` を使用して特定のモデルバージョンをピン留めします。ピン留めしない場合、Claude Code エイリアスは最新バージョンに解決され、Anthropic が新しいモデルをリリースしてアカウントでまだ有効になっていない場合、ユーザーが破損する可能性があります。詳細については、[モデル構成](/ja/model-config#pin-models-for-third-party-deployments)を参照してください。

245 

246### セキュリティポリシーを構成する

247 

248セキュリティチームは、Claude Code が実行できることと実行できないことに対する管理権限を構成できます。これはローカル構成によって上書きされません。[詳細をご覧ください](/ja/security)。

249 

250### 統合に MCP を活用する

251 

252MCP は Claude Code にチケット管理システムやエラーログへの接続など、より多くの情報を提供する優れた方法です。1 つの中央チームが MCP サーバーを構成し、`.mcp.json` 構成をコードベースにチェックインして、すべてのユーザーが利益を得られるようにすることをお勧めします。[詳細をご覧ください](/ja/mcp)。

253 

254Anthropic では、Claude Code を信頼してすべての Anthropic コードベース全体の開発を支援しています。Claude Code を使用することを楽しんでいただけることを願っています。

255 

256## 次のステップ

257 

258デプロイメントオプションを選択し、チームのアクセスを構成したら、以下を実行します。

259 

2601. **チームにロールアウトする**: インストール手順を共有し、チームメンバーに [Claude Code をインストール](/ja/setup)して認証情報で認証するよう依頼します。

2612. **共有構成をセットアップする**: リポジトリに [CLAUDE.md ファイル](/ja/memory)を作成して、Claude Code がコードベースとコーディング標準を理解するのに役立てます。

2623. **権限を構成する**: [セキュリティ設定](/ja/security)を確認して、環境内で Claude Code が実行できることと実行できないことを定義します。

tools-reference.md +148 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# ツール リファレンス

6 

7> Claude Code が使用できるツールの完全なリファレンス(権限要件を含む)

8 

9Claude Code は、コードベースを理解および変更するのに役立つ組み込みツールのセットにアクセスできます。ツール名は、[権限ルール](/ja/permissions#tool-specific-permission-rules)、[subagent ツールリスト](/ja/sub-agents)、および[フック マッチャー](/ja/hooks)で使用する正確な文字列です。ツールを完全に無効にするには、[権限設定](/ja/permissions#tool-specific-permission-rules)の `deny` 配列にその名前を追加します。

10 

11カスタム ツールを追加するには、[MCP サーバー](/ja/mcp)を接続します。再利用可能なプロンプトベースのワークフローで Claude を拡張するには、[skill](/ja/skills) を作成します。これは新しいツール エントリを追加するのではなく、既存の `Skill` ツールを通じて実行されます。

12 

13| ツール | 説明 | 権限が必要 |

14| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---- |

15| `Agent` | 独自のコンテキストウィンドウを持つ [subagent](/ja/sub-agents) を生成してタスクを処理します | いいえ |

16| `AskUserQuestion` | 要件を収集したり曖昧さを明確にするために複数選択肢の質問をします | いいえ |

17| `Bash` | 環境でシェル コマンドを実行します。[Bash ツールの動作](#bash-tool-behavior)を参照してください | はい |

18| `CronCreate` | 現在のセッション内で定期的または 1 回限りのプロンプトをスケジュールします。タスクはセッションスコープであり、`--resume` または `--continue` で復元されます(有効期限が切れていない場合)。[スケジュール済みタスク](/ja/scheduled-tasks)を参照してください | いいえ |

19| `CronDelete` | ID でスケジュール済みタスクをキャンセルします | いいえ |

20| `CronList` | セッション内のすべてのスケジュール済みタスクをリストします | いいえ |

21| `Edit` | 特定のファイルに対して対象を絞った編集を行います | はい |

22| `EnterPlanMode` | Plan Mode に切り替えてコーディング前にアプローチを設計します | いいえ |

23| `EnterWorktree` | 分離された [git worktree](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) を作成してそこに切り替えます。現在のリポジトリの既存の worktree に切り替えるには、新しいものを作成する代わりに `path` を渡します。Subagent では利用できません | いいえ |

24| `ExitPlanMode` | 承認用のプランを提示して Plan Mode を終了します | はい |

25| `ExitWorktree` | worktree セッションを終了して元のディレクトリに戻ります。Subagent では利用できません | いいえ |

26| `Glob` | パターン マッチングに基づいてファイルを検索します | いいえ |

27| `Grep` | ファイル コンテンツ内のパターンを検索します | いいえ |

28| `ListMcpResourcesTool` | 接続された [MCP servers](/ja/mcp) によって公開されたリソースをリストします | いいえ |

29| `LSP` | 言語サーバー経由のコード インテリジェンス:定義へのジャンプ、参照の検索、型エラーと警告の報告。[LSP ツールの動作](#lsp-tool-behavior)を参照してください | いいえ |

30| `Monitor` | コマンドをバックグラウンドで実行し、各出力行を Claude にフィードバックするため、会話の途中でログ エントリ、ファイル変更、またはポーリング ステータスに対応できます。[Monitor ツール](#monitor-tool)を参照してください | はい |

31| `NotebookEdit` | Jupyter ノートブック セルを変更します | はい |

32| `PowerShell` | PowerShell コマンドをネイティブに実行します。[PowerShell ツール](#powershell-tool)の可用性を参照してください | はい |

33| `Read` | ファイルの内容を読み取ります | いいえ |

34| `ReadMcpResourceTool` | URI で特定の MCP リソースを読み取ります | いいえ |

35| `SendMessage` | [agent team](/ja/agent-teams) メンバーにメッセージを送信するか、agent ID で [subagent](/ja/sub-agents#resume-subagents) を再開します。停止した subagent はバックグラウンドで自動的に再開されます。`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` が設定されている場合にのみ利用可能です | いいえ |

36| `Skill` | メイン会話内で [skill](/ja/skills#control-who-invokes-a-skill) を実行します | はい |

37| `TaskCreate` | タスク リストに新しいタスクを作成します | いいえ |

38| `TaskGet` | 特定のタスクの完全な詳細を取得します | いいえ |

39| `TaskList` | すべてのタスクとその現在のステータスをリストします | いいえ |

40| `TaskOutput` | (非推奨)バックグラウンド タスクから出力を取得します。タスクの出力ファイル パスで `Read` を使用することをお勧めします | いいえ |

41| `TaskStop` | ID で実行中のバックグラウンド タスクを終了します | いいえ |

42| `TaskUpdate` | タスク ステータス、依存関係、詳細を更新するか、タスクを削除します | いいえ |

43| `TeamCreate` | 複数のメンバーを持つ [agent team](/ja/agent-teams) を作成します。`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` が設定されている場合にのみ利用可能です | いいえ |

44| `TeamDelete` | agent team を解散してメンバー プロセスをクリーンアップします。`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` が設定されている場合にのみ利用可能です | いいえ |

45| `TodoWrite` | セッション タスク チェックリストを管理します。非対話型モードと [Agent SDK](/ja/headless) で利用可能です。対話型セッションでは代わりに TaskCreate、TaskGet、TaskList、TaskUpdate を使用します | いいえ |

46| `ToolSearch` | [ツール検索](/ja/mcp#scale-with-mcp-tool-search)が有効な場合、遅延ツールを検索してロードします | いいえ |

47| `WebFetch` | 指定された URL からコンテンツを取得します | はい |

48| `WebSearch` | Web 検索を実行します | はい |

49| `Write` | ファイルを作成または上書きします | はい |

50 

51権限ルールは `/permissions` を使用するか、[権限設定](/ja/settings#available-settings)で構成できます。[ツール固有の権限ルール](/ja/permissions#tool-specific-permission-rules)も参照してください。

52 

53## Bash ツールの動作

54 

55Bash ツールは、次の永続化動作で各コマンドを別々のプロセスで実行します:

56 

57* Claude がメイン セッションで `cd` を実行すると、新しい作業ディレクトリはプロジェクト ディレクトリ内に留まる限り、または `--add-dir`、`/add-dir`、または設定の `additionalDirectories` で追加した[追加の作業ディレクトリ](/ja/permissions#working-directories)内に留まる限り、後の Bash コマンドに引き継がれます。Subagent セッションは作業ディレクトリの変更を引き継ぎません。

58 * `cd` がこれらのディレクトリの外に出た場合、Claude Code はプロジェクト ディレクトリにリセットし、ツール結果に `Shell cwd was reset to <dir>` を追加します。

59 * この引き継ぎを無効にして、すべての Bash コマンドがプロジェクト ディレクトリで開始されるようにするには、`CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1` を設定します。

60* 環境変数は永続化されません。1 つのコマンドの `export` は次のコマンドでは利用できません。

61 

62Claude Code を起動する前に virtualenv または conda 環境をアクティブ化してください。Bash コマンド間で環境変数を永続化するには、Claude Code を起動する前に [`CLAUDE_ENV_FILE`](/ja/env-vars) をシェル スクリプトに設定するか、[SessionStart フック](/ja/hooks#persist-environment-variables)を使用して動的に設定します。

63 

64## LSP ツールの動作

65 

66LSP ツールは、実行中の言語サーバーから Claude にコード インテリジェンスを提供します。ファイル編集後、型エラーと警告を自動的に報告するため、Claude は別のビルド ステップなしで問題を修正できます。Claude はナビゲーション操作のために直接呼び出すこともできます:

67 

68* シンボルの定義へのジャンプ

69* シンボルへのすべての参照を検索

70* 位置での型情報を取得

71* ファイルまたはワークスペース内のシンボルをリスト

72* インターフェイスの実装を検索

73* 呼び出し階層をトレース

74 

75ツールは、言語の[コード インテリジェンス プラグイン](/ja/discover-plugins#code-intelligence)をインストールするまで非アクティブです。プラグインは言語サーバー構成をバンドルし、サーバー バイナリは別途インストールします。

76 

77## Monitor ツール

78 

79<Note>

80 Monitor ツールには Claude Code v2.1.98 以降が必要です。

81</Note>

82 

83Monitor ツールを使用すると、Claude は会話を一時停止することなく、バックグラウンドで何かを監視し、変更時に対応できます。Claude に以下を依頼します:

84 

85* ログ ファイルをテールして、エラーが表示されたらフラグを立てる

86* PR または CI ジョブをポーリングして、ステータスが変更されたときに報告する

87* ディレクトリのファイル変更を監視する

88* 指定した長時間実行スクリプトからの出力を追跡する

89 

90Claude は監視用の小さなスクリプトを作成し、バックグラウンドで実行し、到着した各出力行を受け取ります。同じセッションで作業を続け、イベントが到着すると Claude が割り込みます。Claude にキャンセルするよう依頼するか、セッションを終了することで Monitor を停止します。

91 

92Monitor は [Bash と同じ権限ルール](/ja/permissions#tool-specific-permission-rules)を使用するため、Bash に設定した `allow` および `deny` パターンがここにも適用されます。Amazon Bedrock、Google Vertex AI、または Microsoft Foundry では利用できません。`DISABLE_TELEMETRY` または `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` が設定されている場合も利用できません。

93 

94プラグインは、Claude に開始するよう依頼する代わりに、プラグインがアクティブな場合に自動的に開始される Monitor を宣言できます。[プラグイン Monitor](/ja/plugins-reference#monitors)を参照してください。

95 

96## PowerShell ツール

97 

98PowerShell ツールを使用すると、Claude は PowerShell コマンドをネイティブに実行できます。Windows では、これは Git Bash を経由するのではなく、PowerShell でコマンドが実行されることを意味します。Git Bash がない Windows では、ツールは自動的に有効になります。Git Bash がインストールされている Windows では、ツールは段階的にロールアウトされています。Linux、macOS、および WSL では、ツールはオプトインです。

99 

100### PowerShell ツールを有効にする

101 

102環境または `settings.json` で `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` を設定します:

103 

104```json theme={null}

105{

106 "env": {

107 "CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"

108 }

109}

110```

111 

112Windows では、変数を `0` に設定してロールアウトをオプトアウトします。Linux、macOS、および WSL では、ツールに PowerShell 7 以降が必要です:`pwsh` をインストールして、`PATH` に含まれていることを確認します。

113 

114Windows では、Claude Code は PowerShell 7 以降の `pwsh.exe` を自動検出し、PowerShell 5.1 の `powershell.exe` にフォールバックします。ツールが有効になっている場合、Claude は PowerShell をプライマリシェルとして扱います。Git Bash がインストールされている場合、Bash ツールは POSIX スクリプト用に利用可能なままです。

115 

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

117 

1183 つの追加設定は PowerShell が使用される場所を制御します:

119 

120* [`settings.json`](/ja/settings#available-settings) の `"defaultShell": "powershell"`:対話型 `!` コマンドを PowerShell 経由でルーティングします。PowerShell ツールが有効になっている必要があります。

121* 個別の[コマンド フック](/ja/hooks#command-hook-fields)の `"shell": "powershell"`:そのフックを PowerShell で実行します。フックは PowerShell を直接生成するため、`CLAUDE_CODE_USE_POWERSHELL_TOOL` に関係なく機能します。

122* [skill frontmatter](/ja/skills#frontmatter-reference) の `shell: powershell`:`` !`command` `` ブロックを PowerShell で実行します。PowerShell ツールが有効になっている必要があります。

123 

124Bash ツール セクションで説明されている同じメイン セッション作業ディレクトリ リセット動作が PowerShell コマンドに適用されます。これには `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 環境変数が含まれます。

125 

126### プレビューの制限事項

127 

128PowerShell ツールには、プレビュー中に次の既知の制限事項があります:

129 

130* PowerShell プロファイルはロードされません

131* Windows では、サンドボックスはサポートされていません

132 

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

134 

135正確なツール セットは、プロバイダー、プラットフォーム、および設定によって異なります。実行中のセッションで読み込まれているものを確認するには、Claude に直接尋ねます:

136 

137```text theme={null}

138What tools do you have access to?

139```

140 

141Claude は会話形式の概要を提供します。正確な MCP ツール名については、`/mcp` を実行します。

142 

143## 関連項目

144 

145* [MCP servers](/ja/mcp):外部サーバーを接続してカスタム ツールを追加する

146* [権限](/ja/permissions):権限システム、ルール構文、ツール固有のパターン

147* [Subagents](/ja/sub-agents):subagent のツール アクセスを構成する

148* [フック](/ja/hooks-guide):ツール実行の前後にカスタム コマンドを実行する

troubleshoot-install.md +803 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# インストールとログインのトラブルシューティング

6 

7> Claude Code のインストールまたはサインイン時に、コマンドが見つからない、PATH、権限、ネットワーク、認証エラーを修正します。

8 

9インストールが失敗した場合、またはサインインできない場合は、以下からエラーを見つけてください。Claude Code が動作している場合のランタイム問題については、[トラブルシューティング](/ja/troubleshooting)を参照してください。設定が適用されない、またはフック が発火しないなどの設定の問題については、[設定をデバッグする](/ja/debug-your-config)を参照してください。

10 

11## エラーを見つける

12 

13表示されているエラーメッセージまたは症状を修正方法と照合してください:

14 

15| 表示内容 | 解決方法 |

16| :------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ |

17| `command not found: claude` または `'claude' is not recognized` | [PATH を修正する](#command-not-found-claude-after-installation) |

18| `syntax error near unexpected token '<'` | [インストールスクリプトが HTML を返す](#install-script-returns-html-instead-of-a-shell-script) |

19| `curl: (56) Failure writing output to destination` | [接続性を確認するか、別のインストーラーを使用する](#curl-56-failure-writing-output-to-destination) |

20| Linux でのインストール中に `Killed` | [低メモリサーバーにスワップスペースを追加する](#install-killed-on-low-memory-linux-servers) |

21| `TLS connect error` または `SSL/TLS secure channel` | [CA 証明書を更新する](#tls-or-ssl-connection-errors) |

22| `Failed to fetch version` またはダウンロードサーバーに到達できない | [ネットワークとプロキシ設定を確認する](#check-network-connectivity) |

23| `irm is not recognized` または `&& is not valid` | [シェルに適切なコマンドを使用する](#wrong-install-command-on-windows) |

24| `'bash' is not recognized as the name of a cmdlet` | [Windows インストーラーコマンドを使用する](#wrong-install-command-on-windows) |

25| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [シェルをインストールする](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |

26| `Claude Code does not support 32-bit Windows` | [Windows PowerShell を開く(x86 エントリではなく)](#claude-code-does-not-support-32-bit-windows) |

27| `The process cannot access the file ... because it is being used by another process` | [ダウンロードフォルダをクリアして再試行する](#the-process-cannot-access-the-file-during-windows-install) |

28| `Error loading shared library` | [システムに対応したバイナリバリアント](#linux-musl-or-glibc-binary-mismatch) |

29| `Illegal instruction` | [アーキテクチャまたは CPU 命令セットの不一致](#illegal-instruction) |

30| WSL での `cannot execute binary file: Exec format error` | [WSL1 ネイティブバイナリ回帰](#exec-format-error-on-wsl1) |

31| PowerShell インストーラーが完了しても `claude` が見つからないか古いバージョンが表示される | [ターミナルを再起動して PATH を確認する](#verify-your-path) |

32| macOS での `dyld: cannot load`、`dyld: Symbol not found`、または `Abort trap` | [バイナリ互換性](#dyld-cannot-load-on-macos) |

33| `Invoke-Expression: Missing argument in parameter list` | [インストールスクリプトが HTML を返す](#install-script-returns-html-instead-of-a-shell-script) |

34| `App unavailable in region` | Claude Code はお客様の国では利用できません。[サポートされている国](https://www.anthropic.com/supported-countries)を参照してください。 |

35| `unable to get local issuer certificate` | [企業 CA 証明書を設定する](#tls-or-ssl-connection-errors) |

36| `OAuth error` または `403 Forbidden` | [認証を修正する](#login-and-authentication) |

37| `Could not load the default credentials` または `Could not load credentials from any providers` | [Bedrock、Vertex、または Foundry 認証情報](#bedrock-vertex-or-foundry-credentials-not-loading) |

38| `ChainedTokenCredential authentication failed` または `CredentialUnavailableError` | [Bedrock、Vertex、または Foundry 認証情報](#bedrock-vertex-or-foundry-credentials-not-loading) |

39| `API Error: 500`、`529 Overloaded`、`429`、またはその他の 4xx および 5xx エラー(上記以外) | [エラーリファレンス](/ja/errors)を参照してください |

40 

41問題がリストに記載されていない場合は、以下の診断チェックを実行して、原因を特定してください。

42 

43<Tip>

44 ターミナルをスキップしたい場合は、[Claude Code Desktop アプリ](/ja/desktop-quickstart)を使用して、グラフィカルインターフェイスを通じて Claude Code をインストールして使用できます。[macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) または [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 用にダウンロードして、コマンドラインセットアップなしでコーディングを開始してください。

45</Tip>

46 

47## 診断チェックを実行する

48 

49### ネットワーク接続を確認する

50 

51インストーラーは `downloads.claude.ai` からダウンロードします。到達可能であることを確認してください:

52 

53```bash theme={null}

54curl -sI https://downloads.claude.ai/claude-code-releases/latest

55```

56 

57`HTTP/2 200` という行はサーバーに到達したことを意味します。出力がない、`Could not resolve host`、または接続タイムアウトが表示される場合、ネットワークが接続をブロックしています。一般的な原因:

58 

59* `downloads.claude.ai` をブロックしている企業ファイアウォールまたはプロキシ

60* 地域的なネットワーク制限:VPN または別のネットワークを試してください

61* TLS/SSL の問題:システムの CA 証明書を更新するか、`HTTPS_PROXY` が設定されているかどうかを確認してください

62 

63企業プロキシの背後にいる場合は、インストール前に `HTTPS_PROXY` と `HTTP_PROXY` をプロキシのアドレスに設定してください。プロキシ URL がわからない場合は IT チームに問い合わせるか、ブラウザのプロキシ設定を確認してください。

64 

65この例は両方のプロキシ変数を設定してから、プロキシを通じてインストーラーを実行します:

66 

67<Tabs>

68 <Tab title="macOS/Linux">

69 ```bash theme={null}

70 export HTTP_PROXY=http://proxy.example.com:8080

71 export HTTPS_PROXY=http://proxy.example.com:8080

72 curl -fsSL https://claude.ai/install.sh | bash

73 ```

74 </Tab>

75 

76 <Tab title="Windows PowerShell">

77 ```powershell theme={null}

78 $env:HTTP_PROXY = 'http://proxy.example.com:8080'

79 $env:HTTPS_PROXY = 'http://proxy.example.com:8080'

80 irm https://claude.ai/install.ps1 | iex

81 ```

82 </Tab>

83</Tabs>

84 

85### PATH を確認する

86 

87インストールが成功しても、`claude` を実行するときに `command not found` または `not recognized` エラーが表示される場合、インストールディレクトリが PATH に含まれていません。シェルは PATH にリストされているディレクトリ内のプログラムを検索し、インストーラーは macOS/Linux では `~/.local/bin/claude` に、Windows では `%USERPROFILE%\.local\bin\claude.exe` に `claude` を配置します。

88 

89インストールディレクトリが PATH に含まれているかどうかを確認するには、PATH エントリをリストして `local/bin` でフィルタリングしてください:

90 

91<Tabs>

92 <Tab title="macOS/Linux">

93 ```bash theme={null}

94 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

95 ```

96 

97 これが `/Users/you/.local/bin` または `/home/you/.local/bin` を出力する場合、ディレクトリは PATH に含まれており、[競合するインストールを確認する](#check-for-conflicting-installations)にスキップできます。出力がない場合は、シェル設定に追加してください。

98 

99 macOS のデフォルトである Zsh の場合:

100 

101 ```bash theme={null}

102 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

103 source ~/.zshrc

104 ```

105 

106 ほとんどの Linux ディストリビューションのデフォルトである Bash の場合:

107 

108 ```bash theme={null}

109 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

110 source ~/.bashrc

111 ```

112 

113 または、ターミナルを閉じて再度開いてください。

114 

115 fish や Nushell などの他のシェルの場合は、シェル独自の設定構文を使用して `~/.local/bin` を PATH に追加してから、ターミナルを再起動してください。

116 

117 修正が機能したことを確認してください:

118 

119 ```bash theme={null}

120 claude --version

121 ```

122 </Tab>

123 

124 <Tab title="Windows PowerShell">

125 ```powershell theme={null}

126 $env:PATH -split ';' | Select-String '\.local\\bin'

127 ```

128 

129 出力がない場合は、インストールディレクトリをユーザー PATH に追加してください:

130 

131 ```powershell theme={null}

132 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')

133 [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

134 ```

135 

136 変更を有効にするためにターミナルを再起動してください。

137 

138 修正が機能したことを確認してください:

139 

140 ```powershell theme={null}

141 claude --version

142 ```

143 </Tab>

144 

145 <Tab title="Windows CMD">

146 ```batch theme={null}

147 echo %PATH% | findstr /i "local\bin"

148 ```

149 

150 出力がない場合は、システム設定を開き、環境変数に移動して、`%USERPROFILE%\.local\bin` をユーザー PATH 変数に追加してください。ターミナルを再起動してください。

151 

152 修正が機能したことを確認してください:

153 

154 ```batch theme={null}

155 claude --version

156 ```

157 </Tab>

158</Tabs>

159 

160### 競合するインストールを確認する

161 

162複数の Claude Code インストールはバージョンの不一致または予期しない動作を引き起こす可能性があります。インストールされているものを確認してください:

163 

164<Tabs>

165 <Tab title="macOS/Linux">

166 PATH に見つかったすべての `claude` バイナリをリストします:

167 

168 ```bash theme={null}

169 which -a claude

170 ```

171 

172 これが何も出力しない場合、`claude` はまだ PATH にありません。[PATH を確認する](#verify-your-path)に戻ってください。

173 

174 `claude` バイナリが来ることができる 3 つの場所を確認してください。`~/.local/bin/claude` はネイティブインストーラー、`~/.claude/local/` は Claude Code の古いバージョンによって作成されたレガシーローカル npm インストール、npm グローバルリストは `-g` インストールを示します:

175 

176 ```bash theme={null}

177 ls -la ~/.local/bin/claude

178 ```

179 

180 ```bash theme={null}

181 ls -la ~/.claude/local/

182 ```

183 

184 ```bash theme={null}

185 npm -g ls @anthropic-ai/claude-code 2>/dev/null

186 ```

187 </Tab>

188 

189 <Tab title="Windows PowerShell">

190 PATH に見つかったすべての `claude` バイナリをリストします:

191 

192 ```powershell theme={null}

193 where.exe claude

194 ```

195 

196 ネイティブインストーラーがバイナリを配置したかどうかを確認してください:

197 

198 ```powershell theme={null}

199 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

200 ```

201 </Tab>

202</Tabs>

203 

204複数のインストールが見つかった場合は、1 つだけを保持してください。macOS/Linux の `~/.local/bin/claude` または Windows の `%USERPROFILE%\.local\bin\claude.exe` でのネイティブインストールが推奨されます。余分なものを削除してください:

205 

206npm グローバルインストールをアンインストールします:

207 

208```bash theme={null}

209npm uninstall -g @anthropic-ai/claude-code

210```

211 

212レガシーローカル npm インストールを削除します:

213 

214```bash theme={null}

215rm -rf ~/.claude/local

216```

217 

218Windows では PowerShell を使用してください:

219 

220```powershell theme={null}

221Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"

222```

223 

224macOS で Homebrew インストールを削除します。`claude-code@latest` cask をインストールした場合は、その名前に置き換えてください:

225 

226```bash theme={null}

227brew uninstall --cask claude-code

228```

229 

230Windows で WinGet インストールを削除します:

231 

232```powershell theme={null}

233winget uninstall Anthropic.ClaudeCode

234```

235 

236### ディレクトリ権限を確認する

237 

238インストーラーは macOS と Linux の `~/.local/bin/` と `~/.claude/` への書き込みアクセスが必要です。Windows ではインストール場所は `%USERPROFILE%` の下にあり、デフォルトではユーザーが書き込み可能なため、このセクションはそこではほとんど適用されません。

239 

240ディレクトリが書き込み可能かどうかを確認してください:

241 

242```bash theme={null}

243test -w ~/.local/bin && echo "writable" || echo "not writable"

244test -w ~/.claude && echo "writable" || echo "not writable"

245```

246 

247いずれかのディレクトリが書き込み可能でない場合は、インストールディレクトリを作成し、ユーザーを所有者として設定してください:

248 

249```bash theme={null}

250sudo mkdir -p ~/.local/bin

251sudo chown -R $(whoami) ~/.local

252```

253 

254### バイナリが機能することを確認する

255 

256`claude --version` がバージョンを出力しても `claude` がクラッシュまたはハングする場合は、これらのチェックを実行して原因を特定してください。`claude --version` がコマンドが見つからないと言う場合は、最初に [PATH を確認する](#verify-your-path)に移動してください。以下のコマンドは `claude` が PATH にあることを前提としています。

257 

258バイナリが存在し、実行可能であることを確認してください:

259 

260```bash theme={null}

261ls -la "$(command -v claude)"

262```

263 

264Windows では PowerShell を使用してください:

265 

266```powershell theme={null}

267Get-Command claude | Select-Object Source

268```

269 

270Linux では、不足している共有ライブラリを確認してください。`ldd` が不足しているライブラリを表示する場合は、システムパッケージをインストールする必要があるかもしれません。Alpine Linux およびその他の musl ベースのディストリビューションについては、[Alpine Linux セットアップ](/ja/setup#alpine-linux-and-musl-based-distributions)を参照してください。

271 

272```bash theme={null}

273ldd "$(command -v claude)" | grep "not found"

274```

275 

276バイナリが実行できることを確認してください:

277 

278```bash theme={null}

279claude --version

280```

281 

282## 一般的なインストール問題

283 

284これらは最も頻繁に遭遇するインストール問題とその解決策です。

285 

286### インストールスクリプトがシェルスクリプトではなく HTML を返す

287 

288インストールコマンドを実行するときに、次のいずれかのエラーが表示される場合があります:

289 

290```text theme={null}

291bash: line 1: syntax error near unexpected token `<'

292bash: line 1: `<!DOCTYPE html>'

293```

294 

295PowerShell では、同じ問題は次のように表示されます:

296 

297```text theme={null}

298Invoke-Expression: Missing argument in parameter list.

299```

300 

301これは、インストール URL がインストールスクリプトではなく HTML ページを返したことを意味します。HTML ページが「App unavailable in region」と言う場合、Claude Code はお客様の国では利用できません。[サポートされている国](https://www.anthropic.com/supported-countries)を参照してください。

302 

303それ以外の場合、これはネットワークの問題、地域的なルーティング、または一時的なサービス中断が原因で発生する可能性があります。

304 

305**解決策:**

306 

3071. **別のインストール方法を使用してください**:

308 

309 macOS では、Homebrew 経由でインストールしてください:

310 

311 ```bash theme={null}

312 brew install --cask claude-code

313 ```

314 

315 Windows では、WinGet 経由でインストールしてください:

316 

317 ```powershell theme={null}

318 winget install Anthropic.ClaudeCode

319 ```

320 

3212. **数分後に再試行してください**:問題は一時的なことが多いです。待ってから元のコマンドを再度試してください。

322 

323### インストール後に `command not found: claude`

324 

325インストールが完了しましたが、`claude` が機能しません。正確なエラーはプラットフォームによって異なります:

326 

327| プラットフォーム | エラーメッセージ |

328| :---------- | :--------------------------------------------------------------------- |

329| macOS | `zsh: command not found: claude` |

330| Linux | `bash: claude: command not found` |

331| Windows CMD | `'claude' is not recognized as an internal or external command` |

332| PowerShell | `claude : The term 'claude' is not recognized as the name of a cmdlet` |

333 

334これは、インストールディレクトリがシェルの検索パスに含まれていないことを意味します。各プラットフォームの修正については、[PATH を確認する](#verify-your-path)を参照してください。

335 

336### `curl: (56) Failure writing output to destination`

337 

338`curl ... | bash` コマンドはスクリプトをダウンロードして Bash にパイプして実行します。このエラーは、スクリプトのダウンロードが完了する前に接続が切断されたことを意味します。一般的な原因には、ネットワーク中断、ダウンロードがストリーム中にブロックされた、またはシステムリソース制限が含まれます。

339 

340**解決策:**

341 

3421. **ネットワークの安定性を確認してください**:Claude Code バイナリは `downloads.claude.ai` でホストされています。到達可能であることをテストしてください:

343 ```bash theme={null}

344 curl -sI https://downloads.claude.ai/claude-code-releases/latest

345 ```

346 `HTTP/2 200` という行はサーバーに到達したことを意味し、元の失敗は一時的なものである可能性があります。インストールコマンドを再試行してください。`Could not resolve host` または接続タイムアウトが表示される場合、ネットワークがダウンロードをブロックしています。

347 

3482. **別のインストール方法を試してください**:

349 

350 macOS では:

351 

352 ```bash theme={null}

353 brew install --cask claude-code

354 ```

355 

356 Windows では:

357 

358 ```powershell theme={null}

359 winget install Anthropic.ClaudeCode

360 ```

361 

362### TLS または SSL 接続エラー

363 

364`curl: (35) TLS connect error`、`schannel: next InitializeSecurityContext failed`、または PowerShell の `Could not establish trust relationship for the SSL/TLS secure channel` などのエラーは TLS ハンドシェイク失敗を示します。

365 

366**解決策:**

367 

3681. **システム CA 証明書を更新してください**:

369 

370 Ubuntu/Debian では:

371 

372 ```bash theme={null}

373 sudo apt-get update && sudo apt-get install ca-certificates

374 ```

375 

376 macOS では、システム curl は Keychain トラストストアを使用します。macOS 自体を更新するとルート証明書が更新されます。

377 

3782. **Windows では、インストーラーを実行する前に PowerShell で TLS 1.2 を有効にしてください**:

379 ```powershell theme={null}

380 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

381 irm https://claude.ai/install.ps1 | iex

382 ```

383 

3843. **プロキシまたはファイアウォール干渉を確認してください**:TLS 検査を実行する企業プロキシは、`unable to get local issuer certificate` や `SELF_SIGNED_CERT_IN_CHAIN` を含むこれらのエラーを引き起こす可能性があります。インストール手順では、`--cacert` で curl を企業 CA バンドルに指定してください:

385 ```bash theme={null}

386 curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash

387 ```

388 インストール後の Claude Code 自体については、`NODE_EXTRA_CA_CERTS` を設定して API リクエストが同じバンドルを信頼するようにしてください:

389 ```bash theme={null}

390 export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

391 ```

392 証明書ファイルがない場合は IT チームに問い合わせてください。また、直接接続で試して、プロキシが原因であることを確認することもできます。

393 

3944. **Windows では、`CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` または `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` が表示される場合、証明書失効確認をバイパスしてください**。これらは curl がサーバーに到達したが、ネットワークが証明書失効ルックアップをブロックしていることを意味し、これは企業ファイアウォールの背後では一般的です。インストールコマンドに `--ssl-revoke-best-effort` を追加してください:

395 ```batch theme={null}

396 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

397 ```

398 または、`winget install Anthropic.ClaudeCode` でインストールしてください。これは curl を完全に回避します。

399 

400### `Failed to fetch version from downloads.claude.ai`

401 

402インストーラーがダウンロードサーバーに到達できませんでした。これは通常、`downloads.claude.ai` がネットワークでブロックされていることを意味します。

403 

404**解決策:**

405 

4061. **直接接続性をテストしてください**:

407 ```bash theme={null}

408 curl -sI https://downloads.claude.ai/claude-code-releases/latest

409 ```

410 

4112. **プロキシの背後にいる場合**、インストーラーがプロキシを通じてルーティングできるように `HTTPS_PROXY` を設定してください。詳細については、[プロキシ設定](/ja/network-config#proxy-configuration)を参照してください。

412 ```bash theme={null}

413 export HTTPS_PROXY=http://proxy.example.com:8080

414 curl -fsSL https://claude.ai/install.sh | bash

415 ```

416 

4173. **制限されたネットワーク上にいる場合**、別のネットワークまたは VPN を試すか、別のインストール方法を使用してください:

418 

419 macOS では:

420 

421 ```bash theme={null}

422 brew install --cask claude-code

423 ```

424 

425 Windows では:

426 

427 ```powershell theme={null}

428 winget install Anthropic.ClaudeCode

429 ```

430 

431### Windows での間違ったインストールコマンド

432 

433`'irm' is not recognized`、`The token '&&' is not valid`、または `'bash' is not recognized as the name of a cmdlet` が表示される場合、別のシェルまたはオペレーティングシステムのインストールコマンドをコピーしました。

434 

435* **`irm` が認識されない**:CMD にいて、PowerShell ではありません。2 つのオプションがあります:

436 

437 スタートメニューで「PowerShell」を検索して PowerShell を開き、元のインストールコマンドを実行してください:

438 

439 ```powershell theme={null}

440 irm https://claude.ai/install.ps1 | iex

441 ```

442 

443 または CMD にとどまり、代わりに CMD インストーラーを使用してください:

444 

445 ```batch theme={null}

446 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

447 ```

448 

449* **`&&` が有効ではない**:PowerShell にいますが、CMD インストーラーコマンドを実行しました。PowerShell インストーラーを使用してください:

450 ```powershell theme={null}

451 irm https://claude.ai/install.ps1 | iex

452 ```

453 

454* **`bash` が認識されない**:Windows で macOS/Linux インストーラーを実行しました。代わりに PowerShell インストーラーを使用してください:

455 ```powershell theme={null}

456 irm https://claude.ai/install.ps1 | iex

457 ```

458 

459### Windows インストール中の `The process cannot access the file`

460 

461PowerShell インストーラーが `Failed to download binary: The process cannot access the file ... because it is being used by another process` で失敗する場合、インストーラーは `%USERPROFILE%\.claude\downloads` に書き込むことができませんでした。これは通常、以前のインストール試行がまだ実行されているか、アンチウイルスソフトウェアがそのフォルダー内の部分的にダウンロードされたバイナリをスキャンしていることを意味します。

462 

463インストーラーを実行している他の PowerShell ウィンドウを閉じ、アンチウイルススキャンがファイルを解放するのを待ってください。その後、ダウンロードフォルダーを削除してインストーラーを再度実行してください:

464 

465```powershell theme={null}

466Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\downloads"

467irm https://claude.ai/install.ps1 | iex

468```

469 

470### 低メモリ Linux サーバーでインストール中に Killed

471 

472VPS またはクラウドインスタンスでインストール中に `Killed` が表示される場合:

473 

474```text theme={null}

475Setting up Claude Code...

476Installing Claude Code native build latest...

477bash: line 142: 34803 Killed "$binary_path" install ${TARGET:+"$TARGET"}

478```

479 

480Linux OOM キラーはシステムがメモリ不足になったためプロセスを終了しました。Claude Code には少なくとも 4 GB の利用可能な RAM が必要です。

481 

482**解決策:**

483 

4841. **RAM が限られている場合はスワップスペースを追加してください**。スワップはディスク領域をオーバーフロー メモリとして使用し、物理 RAM が少ない場合でもインストールを完了できます。

485 

486 2 GB スワップファイルを作成して有効にしてください:

487 

488 ```bash theme={null}

489 sudo fallocate -l 2G /swapfile

490 sudo chmod 600 /swapfile

491 sudo mkswap /swapfile

492 sudo swapon /swapfile

493 ```

494 

495 その後、インストールを再試行してください:

496 

497 ```bash theme={null}

498 curl -fsSL https://claude.ai/install.sh | bash

499 ```

500 

5012. **インストール前に他のプロセスを閉じて**メモリを解放してください。

502 

5033. **可能であれば、より大きなインスタンスを使用してください**。Claude Code には少なくとも 4 GB の RAM が必要です。

504 

505### Docker でのインストールハング

506 

507Docker コンテナで Claude Code をインストールするときに、root として `/` にインストールするとハングが発生する可能性があります。

508 

509**解決策:**

510 

5111. **インストーラーを実行する前に作業ディレクトリを設定してください**。`/` から実行すると、インストーラーはファイルシステム全体をスキャンし、過度なメモリ使用を引き起こします。`WORKDIR` を設定すると、スキャンが小さなディレクトリに制限されます:

512 ```dockerfile theme={null}

513 WORKDIR /tmp

514 RUN curl -fsSL https://claude.ai/install.sh | bash

515 ```

516 

5172. **Docker メモリ制限を増やしてください**(Docker Desktop を使用している場合):

518 ```bash theme={null}

519 docker build --memory=4g .

520 ```

521 

522### Claude Desktop が Windows の `claude` コマンドをオーバーライドする

523 

524Claude Desktop の古いバージョンをインストールした場合、`WindowsApps` ディレクトリに `Claude.exe` を登録して、Claude Code CLI よりも PATH の優先度を取得する可能性があります。`claude` を実行すると、CLI ではなく Desktop アプリが開きます。

525 

526Claude Desktop を最新バージョンに更新して、この問題を修正してください。

527 

528### Windows での Claude Code は Git for Windows(Bash 用)または PowerShell が必要です

529 

530ネイティブ Windows での Claude Code には、少なくとも 1 つのシェルが必要です:Bash 用の [Git for Windows](https://git-scm.com/downloads/win)、または PowerShell。どちらも見つからない場合、このエラーは起動時に表示されます。PowerShell のみが見つかった場合、Claude Code は Bash の代わりに PowerShell ツールを使用します。

531 

532**どちらもインストールされていない場合**、1 つをインストールしてください:

533 

534* Git for Windows:[git-scm.com/downloads/win](https://git-scm.com/downloads/win) からダウンロードしてください。セットアップ中に「Add to PATH」を選択してください。インストール後、ターミナルを再起動してください。

535* PowerShell 7:[aka.ms/powershell](https://aka.ms/powershell) からダウンロードしてください。

536 

537**Git が既にインストールされている**が Claude Code が見つけられない場合は、[settings.json ファイル](/ja/settings)でパスを設定してください:

538 

539```json theme={null}

540{

541 "env": {

542 "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"

543 }

544}

545```

546 

547Git がどこか別の場所にインストールされている場合は、PowerShell で `where.exe git` を実行してパスを見つけ、そのディレクトリから `bin\bash.exe` パスを使用してください。

548 

549### Claude Code は 32 ビット Windows をサポートしていません

550 

551Windows のスタートメニューには 2 つの PowerShell エントリが含まれています:`Windows PowerShell` と `Windows PowerShell (x86)`。x86 エントリは 32 ビットプロセスとして実行され、64 ビットマシンでもこのエラーをトリガーします。どちらの場合かを確認するには、エラーを生成したのと同じウィンドウで次を実行してください:

552 

553```powershell theme={null}

554[Environment]::Is64BitOperatingSystem

555```

556 

557これが `True` を出力する場合、オペレーティングシステムは問題ありません。ウィンドウを閉じて、x86 サフィックスなしで `Windows PowerShell` を開き、インストールコマンドを再度実行してください。

558 

559これが `False` を出力する場合、32 ビット版の Windows を使用しています。Claude Code には 64 ビットオペレーティングシステムが必要です。[システム要件](/ja/setup#system-requirements)を参照してください。

560 

561### Linux musl または glibc バイナリの不一致

562 

563インストール後に `libstdc++.so.6` または `libgcc_s.so.1` などの不足している共有ライブラリに関するエラーが表示される場合、インストーラーはシステムに対応した間違ったバイナリバリアントをダウンロードした可能性があります。

564 

565```text theme={null}

566Error loading shared library libstdc++.so.6: No such file or directory

567```

568 

569これは、musl クロスコンパイルパッケージがインストールされている glibc ベースのシステムで発生する可能性があり、インストーラーがシステムを musl として誤検出します。

570 

571**解決策:**

572 

5731. **システムが使用している libc を確認してください**:

574 ```bash theme={null}

575 ldd --version 2>&1 | head -1

576 ```

577 `GNU libc` または `GLIBC` に言及している出力は glibc を意味します。`musl` に言及している出力は musl を意味します。

578 

5792. **glibc にいるが musl バイナリを取得した場合**、インストールを削除して再インストールしてください。`https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json` のマニフェストを使用して正しいバイナリを手動でダウンロードすることもできます。`ldd --version` と `ls /lib/libc.musl*` の出力を含めて [GitHub issue](https://github.com/anthropics/claude-code/issues) をファイルしてください。

580 

5813. **実際に musl にいる場合**(Alpine Linux など)、必要なパッケージをインストールしてください:

582 ```bash theme={null}

583 apk add libgcc libstdc++ ripgrep

584 ```

585 

586### `Illegal instruction`

587 

588`claude` またはインストーラーを実行すると `Illegal instruction` が出力される場合、ネイティブバイナリはプロセッサがサポートしていない CPU 命令を使用しています。2 つの異なる原因があります。

589 

590**アーキテクチャの不一致。** インストーラーは間違ったバイナリをダウンロードしました。たとえば、ARM サーバーで x86。macOS または Linux では `uname -m` で、PowerShell では `$env:PROCESSOR_ARCHITECTURE` で確認してください。結果が受け取ったバイナリと一致しない場合は、出力を含めて [GitHub issue](https://github.com/anthropics/claude-code/issues) をファイルしてください。

591 

592**古い CPU での不足している命令セット。** アーキテクチャは正しいが、それでも `Illegal instruction` が表示される場合、CPU は AVX またはバイナリが必要とする別の命令がない可能性があります。これは約 2013 年以前の Intel および AMD プロセッサに影響します。仮想マシンでは、ハイパーバイザーが AVX をゲストに渡さない場合があります。

593 

594VPS または VM では、`grep -m1 -ow avx /proc/cpuinfo` を実行してください。空の結果は AVX がゲストで利用できないことを意味します。

595 

596ネイティブバイナリの回避策はありません。[issue #50384](https://github.com/anthropics/claude-code/issues/50384) でステータスを追跡し、報告するときに Linux では `grep -m1 "model name" /proc/cpuinfo` から、macOS では `sysctl -n machdep.cpu.brand_string` から CPU モデルを含めてください。

597 

598別のインストール方法は同じネイティブバイナリをダウンロードし、どちらの原因も解決しません。

599 

600### macOS での `dyld: cannot load`

601 

602インストール中に `dyld: cannot load`、`dyld: Symbol not found`、または `Abort trap: 6` が表示される場合、バイナリは macOS バージョンまたはハードウェアと互換性がありません。

603 

604```text theme={null}

605dyld: cannot load 'claude-2.1.42-darwin-x64' (load command 0x80000034 is unknown)

606Abort trap: 6

607```

608 

609`libicucore` を参照する `Symbol not found` エラーは、macOS バージョンがバイナリがサポートするより古いことを示します:

610 

611```text theme={null}

612dyld: Symbol not found: _ubrk_clone

613 Referenced from: claude-darwin-x64 (which was built for Mac OS X 13.0)

614 Expected in: /usr/lib/libicucore.A.dylib

615```

616 

617**解決策:**

618 

6191. **macOS バージョンを確認してください**:Claude Code には macOS 13.0 以降が必要です。Apple メニューを開き、「このマックについて」を選択してバージョンを確認してください。

620 

6212. **古いバージョンを使用している場合は macOS を更新してください**。バイナリは古い macOS バージョンがサポートしていないロードコマンドとシステムライブラリを使用しています。Homebrew などの別のインストール方法は同じバイナリをダウンロードし、このエラーを解決しません。

622 

623### WSL1 での `Exec format error`

624 

625WSL で `claude` を実行すると `cannot execute binary file: Exec format error` が出力される場合、WSL1 にいて、[issue #38788](https://github.com/anthropics/claude-code/issues/38788) で追跡されている既知のネイティブバイナリ回帰に直面しています。バイナリのプログラムヘッダーが WSL1 のローダーが処理できない方法で変更されました。

626 

627最もクリーンな修正は、PowerShell からディストリビューションを WSL2 に変換することです:

628 

629```powershell theme={null}

630wsl --set-version <DistroName> 2

631```

632 

633WSL1 にとどまる必要がある場合は、動的リンカーを通じてバイナリを呼び出してください。ホームディレクトリが異なる場合はパスを置き換えて、WSL 内の `~/.bashrc` にこの関数を追加してください:

634 

635```bash theme={null}

636claude() {

637 /lib64/ld-linux-x86-64.so.2 "$(readlink -f "$HOME/.local/bin/claude")" "$@"

638}

639```

640 

641その後、`source ~/.bashrc` を実行して `claude` を再試行してください。

642 

643### WSL での npm インストールエラー

644 

645これらの問題は、WSL 内で `npm install -g` を使用して Claude Code をインストールした場合に適用されます。[ネイティブインストーラー](/ja/setup)を使用した場合は、このセクションをスキップしてください。

646 

647**OS またはプラットフォーム検出の問題。** npm がインストール中にプラットフォームの不一致を報告する場合、WSL は Windows `npm` を取得している可能性があります。最初に `npm config set os linux` を実行してから、`npm install -g @anthropic-ai/claude-code --force` でインストールしてください。`sudo` を使用しないでください。

648 

649**`claude` を実行するときの `exec: node: not found`。** WSL 環境は Windows インストール Node.js を使用している可能性があります。`which npm` と `which node` で確認してください:`/mnt/c/` で始まるパスは Windows バイナリで、Linux パスは `/usr/` で始まります。これを修正するには、Linux ディストリビューションのパッケージマネージャーまたは [`nvm`](https://github.com/nvm-sh/nvm) 経由で Node をインストールしてください。

650 

651**nvm バージョンの競合。** WSL と Windows の両方に nvm がインストールされている場合、WSL でノードバージョンを切り替えると、WSL はデフォルトで Windows PATH をインポートし、Windows nvm が優先されるため、破損する可能性があります。最も一般的な原因は、nvm がシェルに読み込まれていないことです。nvm ローダーを `~/.bashrc` または `~/.zshrc` に追加してください:

652 

653```bash theme={null}

654export NVM_DIR="$HOME/.nvm"

655[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

656[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

657```

658 

659または現在のセッションで読み込んでください:

660 

661```bash theme={null}

662source ~/.nvm/nvm.sh

663```

664 

665nvm が読み込まれているが Windows パスがまだ優先される場合は、Linux Node パスを明示的に先頭に追加してください:

666 

667```bash theme={null}

668export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"

669```

670 

671<Warning>

672 `appendWindowsPath = false` で Windows PATH インポートを無効にすることは避けてください。これは WSL から Windows 実行可能ファイルを呼び出す機能を破壊します。同様に、Windows 開発に使用する場合は Windows から Node.js をアンインストールすることは避けてください。

673</Warning>

674 

675### インストール中の権限エラー

676 

677ネイティブインストーラーが権限エラーで失敗する場合、ターゲットディレクトリが書き込み可能でない可能性があります。[ディレクトリ権限を確認する](#check-directory-permissions)を参照してください。

678 

679以前に npm でインストールしていて、npm 固有の権限エラーに直面している場合は、ネイティブインストーラーに切り替えてください:

680 

681```bash theme={null}

682curl -fsSL https://claude.ai/install.sh | bash

683```

684 

685### npm インストール後にネイティブバイナリが見つからない

686 

687`@anthropic-ai/claude-code` npm パッケージは、`@anthropic-ai/claude-code-darwin-arm64` などのプラットフォーム固有のオプション依存関係を通じてネイティブバイナリを取得します。インストール後に `claude` を実行すると `Could not find native binary package "@anthropic-ai/claude-code-<platform>"` が出力される場合は、次の原因を確認してください:

688 

689* **オプション依存関係が無効になっています。** npm インストールコマンドから `--omit=optional` を削除し、pnpm から `--no-optional` を削除し、yarn から `--ignore-optional` を削除し、`.npmrc` が `optional=false` を設定していないことを確認してから、再インストールしてください。ネイティブバイナリはオプション依存関係としてのみ配信されるため、スキップされた場合は JavaScript フォールバックはありません。

690* **サポートされていないプラットフォーム。** プリビルドバイナリは `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64`、および `win32-arm64` 用に公開されています。Claude Code は他のプラットフォーム用のバイナリを出荷しません。[システム要件](/ja/setup#system-requirements)を参照してください。

691* **企業 npm ミラーがプラットフォームパッケージを欠いています。** レジストリがメタパッケージに加えて 8 つすべての `@anthropic-ai/claude-code-*` プラットフォームパッケージをミラーしていることを確認してください。

692 

693`--ignore-scripts` でインストールしてもこのエラーはトリガーされません。バイナリを所定の位置にリンクする postinstall ステップはスキップされるため、Claude Code はプラットフォームバイナリを各起動時に検索して生成するラッパーにフォールバックします。これは機能しますが、より遅く開始します。スクリプトを有効にして再インストールして、直接実行してください。

694 

695## ログインと認証

696 

697これらのセクションはログイン失敗、OAuth エラー、およびトークンの問題に対処します。

698 

699### ログインをリセットする

700 

701ログインが失敗し、原因が明らかでない場合、クリーンな再認証がほとんどの場合を解決します:

702 

7031. `/logout` を実行して完全にサインアウトしてください

7042. Claude Code を閉じてください

7053. `claude` で再起動して、認証プロセスを再度完了してください

706 

707ログイン中にブラウザが自動的に開かない場合は、`c` を押して OAuth URL をクリップボードにコピーしてから、手動でブラウザに貼り付けてください。これは、URL が狭いまたは SSH ターミナルで行をまたいでラップされ、直接クリックできない場合にも機能します。

708 

709### OAuth エラー:無効なコード

710 

711`OAuth error: Invalid code. Please make sure the full code was copied` が表示される場合、ログインコードが期限切れになったか、コピー貼り付け中に切り詰められました。

712 

713**解決策:**

714 

715* ブラウザが開いた後、Enter キーを押して迅速にログインを完了してください

716* ブラウザが自動的に開かない場合は、`c` を入力して完全な URL をコピーしてください

717* リモート/SSH セッションを使用している場合、ブラウザは間違ったマシンで開く可能性があります。ターミナルに表示されている URL をコピーして、代わりにローカルブラウザで開いてください。

718 

719### ログイン後の 403 Forbidden

720 

721ログイン後に `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}` が表示される場合:

722 

723* **Claude Pro/Max ユーザー**:[claude.ai/settings](https://claude.ai/settings) でサブスクリプションがアクティブであることを確認してください

724* **Anthropic Console ユーザー**:アカウントに「Claude Code」または「Developer」ロールがあることを確認してください。管理者は Anthropic Console の設定 → メンバーで割り当てます。

725* **プロキシの背後**:企業プロキシは API リクエストに干渉する可能性があります。[ネットワーク設定](/ja/network-config) を参照してプロキシセットアップを確認してください。

726 

727### このオーガニゼーションはアクティブなサブスクリプションで無効になっています

728 

729アクティブな Claude サブスクリプションがあるにもかかわらず `API Error: 400 ... "This organization has been disabled"` が表示される場合、`ANTHROPIC_API_KEY` 環境変数がサブスクリプションをオーバーライドしています。これは、前の雇用主またはプロジェクトからの古い API キーがシェルプロファイルに設定されている場合に一般的に発生します。

730 

731`ANTHROPIC_API_KEY` が存在し、承認されている場合、Claude Code はサブスクリプションの OAuth 認証情報の代わりにそのキーを使用します。`-p` フラグを使用した非対話モードでは、存在する場合、キーは常に使用されます。[認証の優先順位](/ja/authentication#authentication-precedence) を参照して、完全な解決順序を確認してください。

732 

733代わりにサブスクリプションを使用するには、環境変数を設定解除し、シェルプロファイルから削除してください:

734 

735```bash theme={null}

736unset ANTHROPIC_API_KEY

737claude

738```

739 

740`~/.zshrc`、`~/.bashrc`、または `~/.profile` で `export ANTHROPIC_API_KEY=...` 行を確認して削除し、変更を永続的にしてください。Windows では、`$PROFILE` の PowerShell プロファイルと `ANTHROPIC_API_KEY` のユーザー環境変数を確認してください。Claude Code 内で `/status` を実行して、どの認証方法がアクティブであるかを確認してください。

741 

742### WSL2、SSH、またはコンテナでの OAuth ログイン失敗

743 

744Claude Code が WSL2 で実行されている場合、SSH 経由でリモートマシンで実行されている場合、またはコンテナ内で実行されている場合、ブラウザは通常、別のホストで開き、そのリダイレクトは Claude Code のローカルコールバックサーバーに到達できません。サインイン後、ブラウザは自動的にリダイレクトされるのではなく、ログインコードを表示します。ターミナルの `Paste code here if prompted` プロンプトにそのコードを貼り付けてログインを完了してください。

745 

746WSL2 からブラウザがまったく開かない場合は、`BROWSER` 環境変数を Windows ブラウザパスに設定してください:

747 

748```bash theme={null}

749export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"

750claude

751```

752 

753または、対話型ログインプロンプトで `c` を押して OAuth URL をコピーするか、`claude auth login` が出力する URL をコピーして、ローカルマシンのブラウザで開いてください。

754 

755対話型プロンプトにコードを貼り付けても何もしない場合、ターミナルの貼り付けバインディングはおそらく入力フィールドに到達していません。ターミナルの別の貼り付けショートカット(Windows Terminal では右クリックまたは Shift+Insert)を試すか、標準入力から貼り付けられたコードを読み取る `claude auth login` を使用してください:

756 

757```bash theme={null}

758claude auth login

759```

760 

761このフォールバックは、ネイティブ Windows またはコードを対話型プロンプトに貼り付けるのが失敗するその他のターミナルにも適用されます。

762 

763### ログインしていないか、トークンが期限切れ

764 

765Claude Code がセッション後に再度ログインするよう求める場合、OAuth トークンが期限切れになった可能性があります。

766 

767`/login` を実行して再認証してください。これが頻繁に発生する場合は、トークン検証が正しいタイムスタンプに依存するため、システムクロックが正確であることを確認してください。

768 

769macOS では、Keychain がロックされているか、パスワードがアカウントパスワードと同期していない場合、ログインが失敗する可能性があります。これにより、Claude Code が認証情報を保存できなくなります。`claude doctor` を実行して Keychain アクセスを確認してください。Keychain を手動でロック解除するには、`security unlock-keychain ~/Library/Keychains/login.keychain-db` を実行してください。ロック解除が役に立たない場合は、Keychain Access を開き、`login` キーチェーンを選択して、編集 > キーチェーン「login」のパスワードを変更を選択して、アカウントパスワードと再同期してください。

770 

771### Bedrock、Vertex、または Foundry 認証情報が読み込まれない

772 

773Claude Code をクラウドプロバイダーを使用するように設定し、Bedrock で `Could not load credentials from any providers`、Vertex で `Could not load the default credentials`、または Foundry で `ChainedTokenCredential authentication failed` が表示される場合、クラウドプロバイダー CLI は現在のシェルで認証されていない可能性があります。

774 

775Bedrock の場合、AWS 認証情報が有効であることを確認してください:

776 

777```bash theme={null}

778aws sts get-caller-identity

779```

780 

781Vertex AI の場合、`ANTHROPIC_VERTEX_PROJECT_ID` と `CLOUD_ML_REGION` がシェルに設定されていることを確認してから、アプリケーションのデフォルト認証情報を設定してください:

782 

783```bash theme={null}

784gcloud auth application-default login

785```

786 

787Microsoft Foundry の場合、`ANTHROPIC_FOUNDRY_API_KEY` が設定されていることを確認するか、Azure CLI でサインインして、デフォルト認証情報チェーンがアカウントを見つけられるようにしてください:

788 

789```bash theme={null}

790az login

791```

792 

793認証情報がターミナルで機能するが VS Code または JetBrains 拡張機能では機能しない場合、IDE プロセスはおそらくシェル環境を継承していません。IDE 独自の設定でプロバイダー環境変数を設定するか、既にエクスポートされているターミナルから IDE を起動してください。

794 

795完全なプロバイダーセットアップについては、[Amazon Bedrock](/ja/amazon-bedrock)、[Google Vertex AI](/ja/google-vertex-ai)、または [Microsoft Foundry](/ja/microsoft-foundry) を参照してください。

796 

797## まだ立ち往生している

798 

799上記のいずれも問題を解決しない場合:

800 

8011. [GitHub リポジトリ](https://github.com/anthropics/claude-code/issues)で既知の問題を確認するか、オペレーティングシステム、実行したインストールコマンド、および完全なエラー出力を含めて新しい問題を開いてください

8022. `claude --version` が機能するが他に何か問題がある場合は、`claude doctor` を実行して自動診断レポートを取得してください

8033. セッションを開始できる場合は、Claude Code 内で `/feedback` を使用して問題を報告してください

troubleshooting.md +121 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# トラブルシューティング

6 

7> Claude Code の実行中のパフォーマンス、安定性、検索の問題を修正し、その他の問題に対応する適切なページを見つけます。

8 

9このページでは、Claude Code が実行中のパフォーマンス、安定性、検索の問題について説明します。その他の問題については、問題が発生している場所に一致するページから始めてください:

10 

11| 症状 | 移動先 |

12| :------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------- |

13| `command not found`、インストール失敗、PATH の問題、`EACCES`、TLS エラー | [インストールとログインのトラブルシューティング](/ja/troubleshoot-install) |

14| ログインループ、OAuth エラー、`403 Forbidden`、「organization disabled」、Bedrock/Vertex/Foundry 認証情報 | [インストールとログインのトラブルシューティング](/ja/troubleshoot-install#login-and-authentication) |

15| 設定が適用されない、フック が実行されない、MCP サーバーがロードされない | [設定をデバッグする](/ja/debug-your-config) |

16| `API Error: 5xx`、`529 Overloaded`、`429`、リクエスト検証エラー | [エラーリファレンス](/ja/errors) |

17| `model not found` または `you may not have access to it` | [エラーリファレンス](/ja/errors#theres-an-issue-with-the-selected-model) |

18| VS Code 拡張機能が接続されていない、または Claude を検出していない | [VS Code 統合](/ja/vs-code#fix-common-issues) |

19| JetBrains プラグインまたは IDE が検出されない | [JetBrains 統合](/ja/jetbrains#troubleshooting) |

20| CPU またはメモリ使用量が多い、応答が遅い、ハング、検索がファイルを見つけられない | [パフォーマンスと安定性](#performance-and-stability)(下記) |

21 

22どれが当てはまるかわからない場合は、Claude Code 内で `/doctor` を実行して、インストール、設定、MCP サーバー、コンテキスト使用量の自動チェックを実行してください。`claude` がまったく起動しない場合は、代わりにシェルから `claude doctor` を実行してください。

23 

24## パフォーマンスと安定性

25 

26これらのセクションでは、リソース使用量、応答性、検索動作に関連する問題について説明します。

27 

28### CPU またはメモリ使用量が多い

29 

30Claude Code はほとんどの開発環境で動作するように設計されていますが、大規模なコードベースを処理する場合、かなりのリソースを消費する可能性があります。パフォーマンスの問題が発生している場合:

31 

321. `/compact` を定期的に使用してコンテキストサイズを削減します

332. 主要なタスク間で Claude Code を閉じて再起動します

343. 大規模なビルドディレクトリを `.gitignore` ファイルに追加することを検討してください

35 

36メモリ使用量がこれらのステップ後も高いままの場合は、`/heapdump` を実行して JavaScript ヒープスナップショットとメモリ分析を `~/Desktop` に書き込みます。Linux でデスクトップフォルダがない場合、ファイルはホームディレクトリに書き込まれます。

37 

38分析は常駐セットサイズ、JS ヒープ、配列バッファ、および説明されていないネイティブメモリを表示し、成長が JavaScript オブジェクトにあるか、ネイティブコードにあるかを識別するのに役立ちます。Chrome DevTools のメモリ → ロードで `.heapsnapshot` ファイルを開いて、リテイナーを検査します。メモリの問題を報告するときに両方のファイルを [GitHub](https://github.com/anthropics/claude-code/issues) に添付します。

39 

40### 自動コンパクションがスラッシングエラーで停止する

41 

42`Autocompact is thrashing: the context refilled to the limit...` が表示される場合、自動コンパクションは成功しましたが、ファイルまたはツール出力がコンテキストウィンドウを数回連続で満杯に戻しました。Claude Code は進捗を遂行していないループで API 呼び出しを無駄にするのを避けるために再試行を停止します。

43 

44回復するには:

45 

461. Claude に、ファイル全体ではなく、特定の行範囲または関数など、より小さなチャンクで大きなファイルを読むよう依頼します

472. `/compact` を実行して、大きな出力を削除するフォーカスを使用します(例:`/compact keep only the plan and the diff`)

483. 大規模ファイルの作業を [subagent](/ja/sub-agents) に移動して、別のコンテキストウィンドウで実行されるようにします

494. 以前の会話がもう必要ない場合は `/clear` を実行します

50 

51### コマンドがハングまたはフリーズする

52 

53Claude Code が応答しないように見える場合:

54 

551. Ctrl+C を押して現在の操作をキャンセルしてみます

562. 応答しない場合は、ターミナルを閉じて再起動する必要があります

57 

58再起動してもカンバセーションは失われません。同じディレクトリで `claude --resume` を実行してセッションを再開してください。

59 

60### 検索と発見の問題

61 

62Search ツール、`@file` メンション、カスタムエージェント、またはカスタムスキルがファイルを見つけられない場合、バンドルされた `ripgrep` バイナリがシステムで実行されない可能性があります。プラットフォームの `ripgrep` パッケージをインストールして、Claude Code にそれを使用するよう指示します:

63 

64<Tabs>

65 <Tab title="macOS">

66 ```bash theme={null}

67 brew install ripgrep

68 ```

69 </Tab>

70 

71 <Tab title="Ubuntu/Debian">

72 ```bash theme={null}

73 sudo apt install ripgrep

74 ```

75 </Tab>

76 

77 <Tab title="Alpine">

78 ```bash theme={null}

79 apk add ripgrep

80 ```

81 </Tab>

82 

83 <Tab title="Arch">

84 ```bash theme={null}

85 pacman -S ripgrep

86 ```

87 </Tab>

88 

89 <Tab title="Windows">

90 ```powershell theme={null}

91 winget install BurntSushi.ripgrep.MSVC

92 ```

93 </Tab>

94</Tabs>

95 

96その後、[environment](/ja/env-vars) で `USE_BUILTIN_RIPGREP=0` を設定します。

97 

98### WSL での遅い、または不完全な検索結果

99 

100[WSL でファイルシステム間で作業する場合](https://learn.microsoft.com/en-us/windows/wsl/filesystems)のディスク読み取りパフォーマンスペナルティにより、WSL で Claude Code を使用する場合、Search ツール使用時に予想より少ないマッチが返される可能性があります。検索は機能しますが、ネイティブファイルシステムより少ない結果を返します。

101 

102<Note>

103 この場合、`/doctor` は Search を OK として表示します。

104</Note>

105 

106**解決策:**

107 

1081. **より具体的な検索を送信する**:検索するファイル数を減らすために、ディレクトリまたはファイルタイプを指定します:「auth-service パッケージで JWT 検証ロジックを検索」または「JS ファイルで md5 ハッシュの使用を見つける」。

109 

1102. **プロジェクトを Linux ファイルシステムに移動する**:可能であれば、プロジェクトが Windows ファイルシステム(`/mnt/c/`)ではなく Linux ファイルシステム(`/home/`)に配置されていることを確認します。

111 

1123. **ネイティブ Windows を使用する**:WSL ではなく Windows でネイティブに Claude Code を実行することを検討して、ファイルシステムのパフォーマンスを向上させます。

113 

114## さらにヘルプを得る

115 

116ここで説明されていない問題が発生している場合:

117 

1181. `/doctor` を実行して、インストール状態、設定の有効性、MCP 設定、コンテキスト使用量を一度にチェックします

1192. Claude Code 内で `/feedback` コマンドを使用して、Anthropic に問題を直接報告します

1203. [GitHub リポジトリ](https://github.com/anthropics/claude-code)で既知の問題を確認します

1214. Claude に直接その機能と機能について質問します。Claude はドキュメントへの組み込みアクセスを持っています。

ultraplan.md +84 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# クラウドで Ultraplan を使用して計画を立てる

6 

7> CLI から計画を開始し、ウェブ上の Claude Code で下書きを作成してから、リモートで実行するか、ターミナルで実行します

8 

9<Note>

10 Ultraplan はリサーチプレビュー段階であり、Claude Code v2.1.91 以降が必要です。フィードバックに基づいて、動作と機能が変更される可能性があります。

11</Note>

12 

13Ultraplan は、ローカル CLI からの計画タスクを、[plan mode](/ja/permission-modes#analyze-before-you-edit-with-plan-mode) で実行されている[ウェブ上の Claude Code](/ja/claude-code-on-the-web) セッションに渡します。Claude はクラウドで計画を下書きしている間、ターミナルで作業を続けることができます。計画の準備ができたら、ブラウザで開いて特定のセクションにコメントを付けたり、修正をリクエストしたり、実行場所を選択したりできます。

14 

15これは、ターミナルが提供するよりも豊富なレビュー画面が必要な場合に便利です。

16 

17* **ターゲット化されたフィードバック**: 全体に返信する代わりに、計画の個別セクションにコメントを付けることができます

18* **ハンズオフ下書き**: 計画はリモートで生成されるため、ターミナルは他の作業に使用できます

19* **柔軟な実行**: ウェブで実行するプルリクエストを承認するか、ターミナルに送り返すことができます

20 

21Ultraplan には、[ウェブ上の Claude Code](/ja/claude-code-on-the-web) アカウントと GitHub リポジトリが必要です。Anthropic のクラウドインフラストラクチャで実行されるため、Amazon Bedrock、Google Cloud Vertex AI、または Microsoft Foundry を使用している場合は利用できません。クラウドセッションは、アカウントのデフォルト[クラウド環境](/ja/claude-code-on-the-web#the-cloud-environment)で実行されます。クラウド環境がまだない場合、ultraplan は初回起動時に自動的に作成します。

22 

23## CLI から ultraplan を起動する

24 

25ローカル CLI セッションから、ultraplan を 3 つの方法で起動できます。

26 

27* **コマンド**: `/ultraplan` の後にプロンプトを実行します

28* **キーワード**: 通常のプロンプトの任意の場所に `ultraplan` という単語を含めます

29* **ローカル計画から**: Claude がローカル計画を完了して承認ダイアログを表示したときに、**いいえ、Claude Code on the web の Ultraplan で改善する** を選択して、下書きをクラウドにさらに反復するために送信します

30 

31たとえば、コマンドでサービス移行を計画するには、次のようにします。

32 

33```

34/ultraplan migrate the auth service from sessions to JWTs

35```

36 

37コマンドとキーワードのパスは、起動前に確認ダイアログを開きます。ローカル計画パスはこのダイアログをスキップします。これは、その選択がすでに確認として機能するためです。[Remote Control](/ja/remote-control) がアクティブな場合、ultraplan の開始時に切断されます。これは、両方の機能が claude.ai/code インターフェイスを占有し、一度に 1 つだけ接続できるためです。

38 

39クラウドセッションが起動した後、CLI のプロンプト入力は、リモートセッションが動作している間、ステータスインジケータを表示します。

40 

41| ステータス | 意味 |

42| :----------------------------- | :--------------------------------------- |

43| `◇ ultraplan` | Claude はコードベースを調査し、計画を下書きしています |

44| `◇ ultraplan needs your input` | Claude に明確化の質問があります。セッションリンクを開いて応答してください |

45| `◆ ultraplan ready` | 計画はブラウザでレビューする準備ができています |

46 

47`/tasks` を実行して ultraplan エントリを選択し、セッションリンク、エージェントアクティビティ、および **Stop ultraplan** アクションを含む詳細ビューを開きます。Ultraplan を停止すると、クラウドセッションがアーカイブされ、インジケータがクリアされます。ターミナルには何も保存されません。

48 

49## ブラウザで計画をレビューして修正する

50 

51ステータスが `◆ ultraplan ready` に変わったら、セッションリンクを開いて claude.ai で計画を表示します。計画は専用レビュービューに表示されます。

52 

53* **インラインコメント**: 任意のパッセージをハイライトして、Claude に対処するようにコメントを残します

54* **絵文字リアクション**: セクションに反応して、完全なコメントを書かずに承認または懸念を示します

55* **アウトラインサイドバー**: 計画のセクション間をジャンプします

56 

57Claude にコメントに対処するよう依頼すると、計画が修正され、更新されたドラフトが表示されます。実行場所を選択する前に、必要な回数だけ反復できます。

58 

59## 実行場所を選択する

60 

61計画が正しく見えたら、ブラウザから Claude がそれを同じクラウドセッションで実装するか、待機中のターミナルに送り返すかを選択します。

62 

63### ウェブで実行する

64 

65ブラウザで **Approve Claude's plan and start coding** を選択して、Claude が同じ Claude Code on the web セッションで実装するようにします。ターミナルに確認が表示され、ステータスインジケータがクリアされ、作業がクラウドで続行されます。実装が完了したら、[変更をレビュー](/ja/claude-code-on-the-web#review-changes)して、ウェブインターフェイスからプルリクエストを作成します。

66 

67### 計画をターミナルに送り返す

68 

69ブラウザで **Approve plan and teleport back to terminal** を選択して、環境への完全なアクセスで計画をローカルに実装します。このオプションは、セッションが CLI から起動され、ターミナルがまだポーリングしている場合に表示されます。ウェブセッションはアーカイブされるため、並行して作業を続けません。

70 

71ターミナルに **Ultraplan approved** というタイトルのダイアログに計画が表示され、3 つのオプションがあります。

72 

73* **Implement here**: 計画を現在の会話に挿入し、中断したところから続行します

74* **Start new session**: 現在の会話をクリアし、計画のみをコンテキストとして新しく開始します

75* **Cancel**: 計画をファイルに保存して実行しません。Claude はファイルパスを出力するため、後で戻ることができます

76 

77新しいセッションを開始する場合、Claude は上部に `claude --resume` コマンドを出力するため、後で前の会話に戻ることができます。

78 

79## 関連リソース

80 

81* [Claude Code on the web](/ja/claude-code-on-the-web): ultraplan が実行されるクラウドインフラストラクチャ

82* [Plan mode](/ja/permission-modes#analyze-before-you-edit-with-plan-mode): ローカルセッションで計画がどのように機能するか

83* [Find bugs with ultrareview](/ja/ultrareview): マージ前に問題をキャッチするための ultraplan のコードレビューカウンターパート

84* [Remote Control](/ja/remote-control): 独自のマシンで実行されているセッションで claude.ai/code インターフェイスを使用します

ultrareview.md +108 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# ultrareview でバグを見つける

6 

7> /ultrareview で、クラウド上で深い複数エージェント型のコードレビューを実行し、マージ前にバグを見つけて検証します。

8 

9<Note>

10 Ultrareview は Claude Code v2.1.86 以降で利用可能なリサーチプレビュー機能です。機能、価格、および利用可能性はフィードバックに基づいて変更される可能性があります。

11</Note>

12 

13Ultrareview は Claude Code のウェブインフラストラクチャ上で実行される深いコードレビューです。`/ultrareview` を実行すると、Claude Code はリモートサンドボックスでレビュアーエージェントのフリートを起動し、ブランチまたはプルリクエストのバグを見つけます。

14 

15ローカルの `/review` と比較して、ultrareview は以下を提供します。

16 

17* **より高いシグナル**: 報告されたすべての検出結果は独立して再現および検証されるため、結果はスタイル提案ではなく実際のバグに焦点を当てています

18* **より広いカバレッジ**: 多くのレビュアーエージェントが並行して変更を探索するため、単一パスのレビューでは見落とされる可能性のある問題が浮かび上がります

19* **ローカルリソースの使用なし**: レビューはリモートサンドボックスで完全に実行されるため、実行中はターミナルが他の作業に使用可能なままです

20 

21Ultrareview は Claude Code のウェブインフラストラクチャ上で実行されるため、Claude.ai アカウントでの認証が必要です。API キーのみで署名している場合は、`/login` を実行して Claude.ai で認証してください。Ultrareview は Amazon Bedrock、Google Cloud Vertex AI、または Microsoft Foundry で Claude Code を使用する場合は利用できず、Zero Data Retention を有効にしている組織でも利用できません。

22 

23## CLI から ultrareview を実行する

24 

25任意の git リポジトリから Claude Code CLI でレビューを開始します。

26 

27```text theme={null}

28/ultrareview

29```

30 

31引数なしの場合、ultrareview は現在のブランチとデフォルトブランチ間の差分をレビューします。これには、作業ツリー内のコミットされていない変更とステージされた変更が含まれます。Claude Code はリポジトリの状態をバンドルし、レビュー用にリモートサンドボックスにアップロードします。

32 

33代わりに GitHub プルリクエストをレビューするには、PR 番号を渡します。

34 

35```text theme={null}

36/ultrareview 1234

37```

38 

39PR モードでは、リモートサンドボックスはローカルの作業ツリーをバンドルするのではなく、GitHub からプルリクエストを直接クローンします。PR モードではリポジトリに `github.com` リモートが必要です。

40 

41<Tip>

42 リポジトリが大きすぎてバンドルできない場合、Claude Code は代わりに PR モードを使用するよう促します。ブランチをプッシュしてドラフト PR を開き、`/ultrareview <PR-number>` を実行してください。

43</Tip>

44 

45起動前に、Claude Code はレビュー範囲(ブランチをレビューする場合はファイルと行数を含む)、残りの無料実行回数、および推定コストを含む確認ダイアログを表示します。確認後、レビューはバックグラウンドで続行され、セッションを引き続き使用できます。コマンドは `/ultrareview` で呼び出すときのみ実行されます。Claude は ultrareview を自動的に開始しません。

46 

47## 価格と無料実行回数

48 

49Ultrareview はプランに含まれる使用量ではなく、追加使用量に対して請求されるプレミアム機能です。

50 

51| プラン | 含まれる無料実行回数 | 無料実行回数後 |

52| ------------------- | -------------------------- | ----------------------------------------------------------------------------------------------- |

53| Pro | 2026 年 5 月 5 日までの 3 回の無料実行 | [追加使用量](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans)として請求 |

54| Max | 2026 年 5 月 5 日までの 3 回の無料実行 | [追加使用量](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans)として請求 |

55| Team および Enterprise | なし | [追加使用量](https://support.claude.com/ja/articles/12429409-extra-usage-for-paid-claude-plans)として請求 |

56 

57Pro および Max サブスクライバーは、機能を試すために 3 回の無料 ultrareview 実行を受け取ります。これら 3 回の実行はアカウントごとの 1 回限りの割り当てであり、更新されず、2026 年 5 月 5 日に期限切れになります。3 回すべてを使用した後、または無料実行期間が終了した後、各レビューは追加使用量に請求され、通常は変更のサイズに応じて 5 ドルから 20 ドルの費用がかかります。リモートセッションが開始されると実行がカウントされるため、早期に停止したレビューまたは完了に失敗したレビューでも、無料実行を使用します。有料レビューの場合、追加使用量は実行された部分に対してのみ請求されます。

58 

59Ultrareview は常に無料実行回数外の追加使用量として請求されるため、有料レビューを起動する前に、アカウントまたは組織で追加使用量を有効にする必要があります。追加使用量が有効になっていない場合、Claude Code は起動をブロックし、有効にできる請求設定にリンクします。`/extra-usage` を実行して、現在の設定を確認または変更することもできます。

60 

61## 実行中のレビューを追跡する

62 

63レビューは通常 5 ~ 10 分かかります。レビューはバックグラウンドタスクとして実行されるため、セッションで作業を続けたり、他のコマンドを開始したり、ターミナルを完全に閉じたりできます。

64 

65`/tasks` を使用して、実行中および完了したレビューを表示し、レビューの詳細ビューを開くか、進行中のレビューを停止します。レビューを停止するとクラウドセッションがアーカイブされ、部分的な検出結果は返されません。レビューが完了すると、検証された検出結果がセッション内の通知として表示されます。各検出結果には、ファイルの場所と問題の説明が含まれているため、Claude に直接修正を依頼できます。

66 

67## ultrareview を非対話的に実行する

68 

69`claude ultrareview` サブコマンドを使用して、対話的なセッションなしに CI またはスクリプトから ultrareview を開始します。サブコマンドは `/ultrareview` と同じレビューを起動し、リモートレビューが完了するまでブロックし、検出結果を stdout に出力し、成功時にコード 0 で終了するか、失敗時にコード 1 で終了します。

70 

71```bash theme={null}

72claude ultrareview

73claude ultrareview 1234

74claude ultrareview origin/main

75```

76 

77引数なしの場合、サブコマンドは現在のブランチとデフォルトブランチ間の差分をレビューします。PR 番号を渡して PR をレビューするか、ベースブランチを渡して代わりにそのブランチに対する差分をレビューします。サブコマンドを呼び出すことは、対話的なコマンドが表示する請求および利用規約プロンプトに対する同意として機能します。

78 

79進捗メッセージとライブセッション URL は stderr に送信されるため、stdout は解析可能なままです。出力とタイムアウトを制御するには、これらのフラグを使用します。

80 

81| フラグ | 説明 |

82| --------------------- | --------------------------------------------- |

83| `--json` | フォーマットされた検出結果の代わりに、生の `bugs.json` ペイロードを出力します |

84| `--timeout <minutes>` | レビューが完了するまで待機する最大分数。デフォルトは 30 です |

85 

86`claude ultrareview` を実行するには、`/ultrareview` と同じ認証と追加使用量の設定が必要です。サブコマンドは、レビューが検出結果の有無にかかわらず完了したときにコード 0 で終了し、レビューの起動に失敗した場合、リモートセッションがエラーになった場合、またはタイムアウトが経過した場合にコード 1 で終了し、Ctrl-C で中断された場合にコード 130 で終了します。サブコマンドを中断した場合、リモートレビューは実行し続けます。stderr に出力されたセッション URL に従って、ブラウザで監視してください。

87 

88GitHub プルリクエストの自動レビューについては、[Code Review](/ja/code-review) がリポジトリと直接統合され、CLI ステップなしでインラインの PR コメントとして検出結果を投稿します。

89 

90## ultrareview と /review の比較

91 

92両方のコマンドはコードをレビューしますが、ワークフローの異なるステージをターゲットにしています。

93 

94| | `/review` | `/ultrareview` |

95| ----- | -------------- | ----------------------------- |

96| 実行場所 | セッション内でローカルに実行 | クラウドサンドボックスでリモートに実行 |

97| 深さ | 単一パスレビュー | 独立した検証を備えた複数エージェントフリート |

98| 期間 | 数秒から数分 | 約 5 ~ 10 分 |

99| コスト | 通常の使用量にカウント | 無料実行回数、その後追加使用量として約 5 ~ 20 ドル |

100| 最適な用途 | 反復中の迅速なフィードバック | 実質的な変更のマージ前の信頼度 |

101 

102作業中の迅速なフィードバックには `/review` を使用します。単一のレビューでは見落とされる可能性のある問題をキャッチするより深いパスが必要な場合は、実質的な変更をマージする前に `/ultrareview` を使用します。

103 

104## 関連リソース

105 

106* [Claude Code on the web](/ja/claude-code-on-the-web): リモートセッションとクラウドサンドボックスの仕組みについて学習します

107* [Plan complex changes with ultraplan](/ja/ultraplan): 事前設計作業のための ultrareview のカウンターパート

108* [Manage costs effectively](/ja/costs): 使用量を追跡し、支出制限を設定します

voice-dictation.md +191 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 音声ディクテーション

6 

7> Claude Code CLI で音声ディクテーション機能を使用して、プロンプトを話して入力できます。長押しまたはタップで録音できます。

8 

9Claude Code CLI でプロンプトを入力する代わりに、話して入力できます。音声はプロンプト入力にリアルタイムで文字起こしされるため、同じメッセージ内で音声と入力を混在させることができます。`/voice` で音声ディクテーションを有効にしてから、キーを押しながら話すか、1 回タップして開始し、もう 1 回タップして送信します。

10 

11<Note>

12 音声ディクテーションには Claude Code v2.1.69 以降が必要です。タップモードには v2.1.116 以降が必要です。`claude --version` でバージョンを確認してください。

13</Note>

14 

15## 要件

16 

17音声ディクテーションは、記録された音声を Anthropic のサーバーにストリーミングして文字起こしします。音声はローカルで処理されません。音声テキスト変換サービスは Claude.ai アカウントで認証した場合にのみ利用可能であり、Claude Code が Anthropic API キー、Amazon Bedrock、Google Vertex AI、または Microsoft Foundry を直接使用するように設定されている場合は利用できません。文字起こしは Claude メッセージやトークンを消費せず、`/usage` に表示される制限にはカウントされません。Anthropic がデータをどのように処理するかについては、[データ使用](/ja/data-usage)を参照してください。

18 

19音声ディクテーションはローカルマイクへのアクセスも必要なため、[Web 上の Claude Code](/ja/claude-code-on-the-web)や SSH セッションなどのリモート環境では機能しません。WSL では、音声ディクテーションは音声アクセスのために WSLg が必要です。これは Windows 11 の WSL2 に含まれています。Windows 10 または WSL1 では、代わりにネイティブ Windows で Claude Code を実行してください。

20 

21音声録音は macOS、Linux、Windows のビルトイン ネイティブ モジュールを使用します。Linux では、ネイティブ モジュールが読み込めない場合、Claude Code は ALSA utils の `arecord` または SoX の `rec` にフォールバックします。どちらも利用できない場合、`/voice` はパッケージ マネージャーのインストール コマンドを出力します。

22 

23Claude Code [VS Code 拡張機能](/ja/vs-code)も、同じ Claude.ai アカウント要件で音声ディクテーションをサポートしています。SSH、Dev Containers、Codespaces などの VS Code Remote セッションでは利用できません。マイクはローカル マシンにあり、拡張機能はリモート ホストで実行されるためです。

24 

25## 音声ディクテーションを有効にする

26 

27`/voice` を実行して音声ディクテーションを有効にします。初めて有効にするときは、Claude Code はマイク チェックを実行します。macOS では、ターミナルにマイク権限がまだ付与されていない場合、システム マイク権限プロンプトがトリガーされます。

28 

29```

30/voice

31Voice mode enabled (hold). Hold Space to record. Dictation language: en (/config to change).

32```

33 

34`/voice` はオプションのモード引数を受け入れます。

35 

36| コマンド | 効果 |

37| :------------ | :-------------------------------------- |

38| `/voice` | オン/オフを切り替え、現在のモードを保持 |

39| `/voice hold` | [長押しモード](#hold-to-record)で有効にする |

40| `/voice tap` | [タップモード](#tap-to-record-and-send)で有効にする |

41| `/voice off` | 無効にする |

42 

43音声ディクテーションはセッション間で保持されます。`/voice` を実行する代わりに、[ユーザー設定ファイル](/ja/settings)で直接設定します。

44 

45```json theme={null}

46{

47 "voice": {

48 "enabled": true,

49 "mode": "tap"

50 }

51}

52```

53 

54音声ディクテーションが有効な場合、プロンプトが空のときは入力フッターに `hold Space to speak` ヒントが表示されます。ヒント テキストは両方のモードで同じであり、[カスタム ステータス ラインを](/ja/statusline)設定している場合は表示されません。

55 

56文字起こしは両方のモードでコーディング語彙用に調整されています。`regex`、`OAuth`、`JSON`、`localhost` などの一般的な開発用語は正しく認識され、現在のプロジェクト名と git ブランチ名は認識ヒントとして自動的に追加されます。

57 

58## 長押しして録音

59 

60長押しモードはプッシュツートーク機能です。キーを押している間は録音が実行され、キーを離すと停止します。これはデフォルト モードです。

61 

62`Space` を長押しして録音を開始します。Claude Code はターミナルからの高速キー リピート イベントを監視することでキーの長押しを検出するため、録音が開始される前に短いウォームアップがあります。フッターはウォームアップ中に `keep holding…` を表示し、録音がアクティブになるとライブ波形に切り替わります。

63 

64最初の数個のキー リピート文字はウォームアップ中に入力に入力され、録音がアクティブになると自動的に削除されます。単一の `Space` タップはスペースを入力します。長押し検出は高速リピートでのみトリガーされるためです。

65 

66<Tip>

67 ウォームアップをスキップするには、`/voice tap` で[タップモード](#tap-to-record-and-send)に切り替えるか、`meta+k` などの[修飾子の組み合わせにリバインド](#rebind-the-dictation-key)してください。修飾子の組み合わせは最初のキープレスで録音を開始します。

68</Tip>

69 

70音声はプロンプトに話すときに表示され、文字起こしが確定されるまで薄く表示されます。`Space` を離して録音を停止し、テキストを確定します。文字起こしはカーソル位置に挿入され、カーソルは挿入されたテキストの末尾に留まるため、任意の順序で入力と音声ディクテーションを混在させることができます。`Space` を再度長押しして別の録音を追加するか、カーソルを最初に移動して、プロンプト内の別の場所に音声を挿入します。

71 

72```

73> refactor the auth middleware to ▮

74 # hold Space, speak "use the new token validation helper"

75> refactor the auth middleware to use the new token validation helper▮

76```

77 

78デフォルトでは、キーを離すと文字起こしが挿入され、`Enter` を押すのを待ちます。`voice` 設定オブジェクトで `"autoSubmit": true` を設定して、文字起こしが少なくとも 3 語以上の場合、キーを離すときにプロンプトを自動的に送信します。

79 

80## タップして録音して送信

81 

82タップモードは単一のキープレスで録音を切り替えます。1 回タップして開始し、話してから、もう 1 回タップしてプロンプトを送信します。ウォームアップはなく、キーを押し続ける必要はありません。

83 

84`/voice tap` でタップモードを有効にします。プロンプト入力が空の場合、`Space` をタップして録音を開始します。フッターは録音中にライブ波形を表示します。`Space` をもう 1 回タップして停止します。Claude Code は文字起こしを挿入し、文字起こしが少なくとも 3 語以上の場合、プロンプトを自動的に送信します。短い文字起こしは挿入されますが送信されないため、誤ったタップは単語を送信しません。

85 

86最初のタップはプロンプト入力が空の場合にのみ録音を開始するため、メッセージを作成しながら通常どおりスペースを入力できます。2 番目のタップは入力内容に関係なく録音を停止します。15 秒以上の無音または 2 分間の合計の後、録音も自動的に停止します。

87 

88## 音声ディクテーション言語を変更する

89 

90音声ディクテーションは、Claude の応答言語を制御する同じ [`language` 設定](/ja/settings)を使用します。その設定が空の場合、音声ディクテーションはデフォルトで英語になります。VS Code 拡張機能では、`language` が空の場合、音声ディクテーションは VS Code の `accessibility.voice.speechLanguage` 設定を使用してから、デフォルトで英語になります。

91 

92<Accordion title="サポートされている音声ディクテーション言語">

93 | 言語 | コード |

94 | :------ | :--- |

95 | チェコ語 | `cs` |

96 | デンマーク語 | `da` |

97 | オランダ語 | `nl` |

98 | 英語 | `en` |

99 | フランス語 | `fr` |

100 | ドイツ語 | `de` |

101 | ギリシャ語 | `el` |

102 | ヒンディー語 | `hi` |

103 | インドネシア語 | `id` |

104 | イタリア語 | `it` |

105 | 日本語 | `ja` |

106 | 韓国語 | `ko` |

107 | ノルウェー語 | `no` |

108 | ポーランド語 | `pl` |

109 | ポルトガル語 | `pt` |

110 | ロシア語 | `ru` |

111 | スペイン語 | `es` |

112 | スウェーデン語 | `sv` |

113 | トルコ語 | `tr` |

114 | ウクライナ語 | `uk` |

115</Accordion>

116 

117`/config` で言語を設定するか、設定で直接設定します。[BCP 47 言語コード](https://en.wikipedia.org/wiki/IETF_language_tag)または言語名のいずれかを使用できます。

118 

119```json theme={null}

120{

121 "language": "japanese"

122}

123```

124 

125`language` 設定がサポートされているリストにない場合、`/voice` は有効化時に警告を表示し、音声ディクテーションの場合は英語にフォールバックします。Claude のテキスト応答はこのフォールバックの影響を受けません。

126 

127## 音声ディクテーション キーをリバインドする

128 

129音声ディクテーション キーは `Chat` コンテキストの `voice:pushToTalk` にバインドされ、デフォルトは `Space` です。同じバインディングは長押しモードとタップモードの両方を制御します。[`~/.claude/keybindings.json`](/ja/keybindings)でリバインドします。

130 

131```json theme={null}

132{

133 "bindings": [

134 {

135 "context": "Chat",

136 "bindings": {

137 "meta+k": "voice:pushToTalk",

138 "space": null

139 }

140 }

141 ]

142}

143```

144 

145`"space": null` を設定するとデフォルト バインディングが削除されます。両方のキーをアクティブにしたい場合は省略します。

146 

147長押しモードでは、`v` などのベア文字キーへのバインディングを避けてください。長押し検出はキー リピートに依存し、文字はウォームアップ中にプロンプトに入力されるためです。`Space` を使用するか、`meta+k` などの修飾子の組み合わせを使用して、ウォームアップなしで最初のキープレスで録音を開始します。タップモードにはウォームアップがないため、ほとんどのキーが機能します。

148 

149一部のキーはターミナル アプリケーションに配信されず、まったくバインドできません。たとえば、`Caps Lock` をバインドしようとするとエラーが表示されます。完全なキーバインディング構文と予約済みショートカットのリストについては、[キーボード ショートカットをカスタマイズする](/ja/keybindings)を参照してください。

150 

151## トラブルシューティング

152 

153音声ディクテーションがアクティブにならないか、記録されない場合の一般的な問題。

154 

155* **`Voice mode requires a Claude.ai account`**: API キーまたはサードパーティ プロバイダーで認証しています。`/login` を実行して Claude.ai アカウントでサインインします。

156* **`Microphone access is denied`**: システム設定でターミナルにマイク権限を付与します。macOS では、\[システム設定] → \[プライバシーとセキュリティ] → \[マイク]に移動し、ターミナル アプリを有効にしてから、`/voice` を再度実行します。Windows では、\[設定] → \[プライバシーとセキュリティ] → \[マイク]に移動し、デスクトップ アプリのマイク アクセスをオンにしてから、`/voice` を再度実行します。ターミナルが macOS 設定に表示されていない場合は、[Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings)を参照してください。

157* **Linux で `No audio recording tool found`**: ネイティブ オーディオ モジュールが読み込めず、フォールバックがインストールされていません。エラー メッセージに表示されているコマンド(例:`sudo apt-get install sox`)で SoX をインストールします。

158* **長押しモードで `Space` を長押ししても何も起こらない**: プロンプト入力を監視しながら長押しします。スペースが蓄積し続ける場合、音声ディクテーションはおそらくオフです。`/voice hold` を実行して有効にします。1 つまたは 2 つのスペースだけが表示されて何も起こらない場合、音声ディクテーションはオンですが、長押し検出がトリガーされていません。長押し検出はターミナルがキー リピート イベントを送信することが必要なため、OS レベルでキー リピートが無効になっている場合、押されたキーを検出できません。`/voice tap` でタップモードに切り替えて、キー リピート要件を回避します。

159* **タップモードで `Space` をタップするとスペースが入力される代わりに記録される**: 最初のタップはプロンプト入力が空の場合にのみ録音を開始します。入力を最初にクリアするか、`/voice tap` を実行してタップモードであることを確認します。

160* **`No audio detected from microphone`**: 録音が開始されましたが、無音がキャプチャされました。正しい入力デバイスがシステム デフォルトとして設定されており、その入力レベルがミュートされていないか、ゼロに近くないことを確認します。Windows では、\[設定] → \[システム] → \[サウンド] → \[入力]を開き、マイクを選択します。macOS では、\[システム設定] → \[サウンド] → \[入力]を開きます。

161* **`No speech detected`**: オーディオは文字起こしサービスに到達しましたが、単語は認識されませんでした。マイクに近づいて話し、背景ノイズを減らし、[音声ディクテーション言語](#change-the-dictation-language)が話している言語と一致することを確認します。

162* **文字起こしが乱れているか、間違った言語である**: 音声ディクテーションはデフォルトで英語です。別の言語で音声ディクテーションしている場合は、最初に `/config` で設定します。[音声ディクテーション言語を変更する](#change-the-dictation-language)を参照してください。

163 

164### Terminal not listed in macOS Microphone settings

165 

166ターミナル アプリが \[システム設定] → \[プライバシーとセキュリティ] → \[マイク]に表示されない場合、有効にできるトグルはありません。ターミナルのマイク権限状態をリセットして、次の `/voice` 実行が新しい macOS 権限プロンプトをトリガーするようにします。

167 

168<Steps>

169 <Step title="ターミナルのマイク権限をリセットする">

170 `tccutil reset Microphone <bundle-id>` を実行します。`<bundle-id>` をターミナルの識別子に置き換えます。組み込みターミナルの場合は `com.apple.Terminal`、iTerm2 の場合は `com.googlecode.iterm2`。その他のターミナルについては、`osascript -e 'id of app "AppName"'` で識別子を検索します。

171 

172 <Warning>

173 バンドル ID なしで `tccutil reset Microphone` を実行できますが、Mac 上のすべてのアプリ(Zoom や Slack などのアプリを含む)からマイク アクセスを取り消します。各アプリは次の使用時にアクセスを再度リクエストする必要があるため、アクティブな通話中は実行しないでください。

174 </Warning>

175 </Step>

176 

177 <Step title="ターミナルを終了して再起動する">

178 macOS は既に実行中のプロセスに再度プロンプトを表示しません。ウィンドウを閉じるだけでなく、Cmd+Q でターミナル アプリを終了してから、再度開きます。

179 </Step>

180 

181 <Step title="新しいプロンプトをトリガーする">

182 Claude Code を起動して `/voice` を実行します。macOS はマイク アクセスを求めます。許可します。

183 </Step>

184</Steps>

185 

186## 関連項目

187 

188* [キーボード ショートカットをカスタマイズする](/ja/keybindings): `voice:pushToTalk` および他の CLI キーボード アクションをリバインドする

189* [設定を構成する](/ja/settings): `voice`、`language`、およびその他の設定キーの完全なリファレンス

190* [インタラクティブ モード](/ja/interactive-mode): キーボード ショートカット、入力モード、およびセッション コントロール

191* [コマンド](/ja/commands): `/voice`、`/config`、およびその他すべてのコマンドのリファレンス

vs-code.md +511 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# VS Code で Claude Code を使用する

6 

7> Claude Code 拡張機能を VS Code にインストールして設定します。インラインの差分表示、@-メンション、プラン確認、キーボードショートカットを使用した AI コーディング支援を取得します。

8 

9<img src="https://mintcdn.com/claude-code/-YhHHmtSxwr7W8gy/images/vs-code-extension-interface.jpg?fit=max&auto=format&n=-YhHHmtSxwr7W8gy&q=85&s=300652d5678c63905e6b0ea9e50835f8" alt="VS Code エディタの右側に Claude Code 拡張機能パネルが開いており、Claude との会話が表示されている" width="2500" height="1155" data-path="images/vs-code-extension-interface.jpg" />

10 

11VS Code 拡張機能は、Claude Code 用のネイティブグラフィカルインターフェースを提供し、IDE に直接統合されています。これは VS Code で Claude Code を使用する推奨方法です。

12 

13この拡張機能を使用すると、Claude のプランを受け入れる前に確認および編集でき、編集が行われるときに自動的に受け入れることができ、選択範囲から特定の行範囲を持つファイルを @-メンションでき、会話履歴にアクセスでき、複数の会話を別々のタブまたはウィンドウで開くことができます。

14 

15## 前提条件

16 

17インストール前に、以下があることを確認してください。

18 

19* VS Code 1.98.0 以上

20* Anthropic アカウント(拡張機能を初めて開くときにサインインします)。Amazon Bedrock や Google Vertex AI などのサードパーティプロバイダーを使用している場合は、代わりに[サードパーティプロバイダーを使用する](#use-third-party-providers)を参照してください。

21 

22<Tip>

23 拡張機能には CLI(コマンドラインインターフェース)が含まれており、VS Code の統合ターミナルからアクセスして高度な機能を使用できます。詳細については、[VS Code 拡張機能と Claude Code CLI](#vs-code-extension-vs-claude-code-cli) を参照してください。

24</Tip>

25 

26## 拡張機能をインストールする

27 

28IDE のリンクをクリックして直接インストールします。

29 

30* [VS Code 用にインストール](vscode:extension/anthropic.claude-code)

31* [Cursor 用にインストール](cursor:extension/anthropic.claude-code)

32 

33または、VS Code で `Cmd+Shift+X`(Mac)または `Ctrl+Shift+X`(Windows/Linux)を押して拡張機能ビューを開き、「Claude Code」を検索して、**インストール**をクリックします。

34 

35<Note>インストール後に拡張機能が表示されない場合は、VS Code を再起動するか、コマンドパレットから「Developer: Reload Window」を実行してください。</Note>

36 

37## はじめに

38 

39インストール後、VS Code インターフェースを通じて Claude Code の使用を開始できます。

40 

41<Steps>

42 <Step title="Claude Code パネルを開く">

43 VS Code 全体で、Spark アイコンは Claude Code を示します。<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/vs-code-spark-icon.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=3ca45e00deadec8c8f4b4f807da94505" alt="Spark icon" style={{display: "inline", height: "0.85em", verticalAlign: "middle"}} width="16" height="16" data-path="images/vs-code-spark-icon.svg" />

44 

45 Claude を開く最速の方法は、**エディタツールバー**(エディタの右上隅)の Spark アイコンをクリックすることです。このアイコンは、ファイルを開いている場合にのみ表示されます。

46 

47 <img src="https://mintcdn.com/claude-code/mfM-EyoZGnQv8JTc/images/vs-code-editor-icon.png?fit=max&auto=format&n=mfM-EyoZGnQv8JTc&q=85&s=eb4540325d94664c51776dbbfec4cf02" alt="VS Code エディタの右上隅のエディタツールバーに Spark アイコンが表示されている" width="2796" height="734" data-path="images/vs-code-editor-icon.png" />

48 

49 Claude Code を開く他の方法:

50 

51 * **アクティビティバー**:左サイドバーの Spark アイコンをクリックしてセッションリストを開きます。任意のセッションをクリックしてフルエディタタブとして開くか、新しいセッションを開始します。このアイコンは常にアクティビティバーに表示されます。

52 * **コマンドパレット**:`Cmd+Shift+P`(Mac)または `Ctrl+Shift+P`(Windows/Linux)を押し、「Claude Code」と入力して、「Open in New Tab」などのオプションを選択します。

53 * **ステータスバー**:ウィンドウの右下隅の **✱ Claude Code** をクリックします。ファイルを開いていない場合でも機能します。

54 

55 Claude パネルをドラッグして、VS Code 内の任意の場所に再配置できます。詳細については、[ワークフローをカスタマイズする](#customize-your-workflow)を参照してください。

56 </Step>

57 

58 <Step title="サインイン">

59 パネルを初めて開くと、サインイン画面が表示されます。**Sign in** をクリックして、ブラウザで認可を完了します。

60 

61 後で **Not logged in · Please run /login** が表示される場合、拡張機能はサインイン画面を自動的に再度開きます。表示されない場合は、コマンドパレットから **Developer: Reload Window** でウィンドウをリロードします。

62 

63 シェルで `ANTHROPIC_API_KEY` が設定されているのにサインインプロンプトが表示される場合、VS Code がシェル環境を継承していない可能性があります。ターミナルから `code .` で VS Code を起動して環境変数を継承するか、代わりに Claude アカウントでサインインします。

64 

65 サインイン後、**Learn Claude Code** チェックリストが表示されます。**Show me** をクリックして各項目を実行するか、X で閉じます。後で再度開くには、VS Code 設定の Extensions → Claude Code で **Hide Onboarding** をオフにします。

66 </Step>

67 

68 <Step title="プロンプトを送信する">

69 Claude にコードやファイルの支援を依頼します。これには、何かの仕組みを説明すること、問題をデバッグすること、または変更を加えることが含まれます。

70 

71 <Tip>Claude は自動的に選択したテキストを表示します。`Option+K`(Mac)/ `Alt+K`(Windows/Linux)を押して、@-メンション参照(`@file.ts#5-10` など)をプロンプトに挿入することもできます。</Tip>

72 

73 ファイル内の特定の行について質問する例を次に示します。

74 

75 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-send-prompt.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=ede3ed8d8d5f940e01c5de636d009cfd" alt="VS Code エディタで Python ファイルの 2~3 行が選択されており、Claude Code パネルにそれらの行についての質問と @-メンション参照が表示されている" width="3288" height="1876" data-path="images/vs-code-send-prompt.png" />

76 </Step>

77 

78 <Step title="変更を確認する">

79 Claude がファイルを編集したい場合、元のコードと提案された変更の並べて比較を表示し、許可を求めます。編集を受け入れるか、拒否するか、Claude に別の方法を指示できます。受け入れる前に差分ビューで提案されたコンテンツを直接編集した場合、Claude はそれを変更したことが通知されるため、ファイルが元のプロポーザルと一致すると想定しません。

80 

81 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code が Claude の提案された変更の差分を表示し、編集を行うかどうかを尋ねる許可プロンプトが表示されている" width="3292" height="1876" data-path="images/vs-code-edits.png" />

82 </Step>

83</Steps>

84 

85Claude Code でできることについてのアイデアについては、[一般的なワークフロー](/ja/common-workflows)を参照してください。

86 

87<Tip>

88 コマンドパレットから'Claude Code: Open Walkthrough'を実行して、基本的なガイド付きツアーを取得します。

89</Tip>

90 

91## プロンプトボックスを使用する

92 

93プロンプトボックスは複数の機能をサポートしています。

94 

95* **許可モード**:プロンプトボックスの下部のモード指示器をクリックしてモードを切り替えます。通常モードでは、Claude は各アクション前に許可を求めます。Plan モードでは、Claude は実行内容を説明し、変更を加える前に承認を待ちます。VS Code は自動的にプランをフルマークダウンドキュメントとして開き、Claude が開始する前にフィードバックを提供するためのインラインコメントを追加できます。自動受け入れモードでは、Claude は許可を求めずに編集を行います。VS Code 設定の `claudeCode.initialPermissionMode` でデフォルトを設定します。

96* **コマンドメニュー**:`/` をクリックするか `/` と入力してコマンドメニューを開きます。オプションには、ファイルの添付、モデルの切り替え、拡張思考の切り替え、プラン使用状況の表示(`/usage`)、および [Remote Control](/ja/remote-control) セッションの開始(`/remote-control`)が含まれます。カスタマイズセクションは、MCP サーバー、hooks、メモリ、権限、プラグインへのアクセスを提供します。ターミナルアイコン付きのアイテムは統合ターミナルで開きます。

97* **コンテキスト指示器**:プロンプトボックスは、Claude のコンテキストウィンドウをどの程度使用しているかを表示します。Claude は必要に応じて自動的にコンパクト化するか、`/compact` を手動で実行できます。

98* **拡張思考**:Claude が複雑な問題を推論するためにより多くの時間を費やすことができます。コマンドメニュー(`/`)を使用してオンに切り替えます。Claude の推論は会話に折りたたまれたブロックとして表示されます。ブロックをクリックして読むか、`Ctrl+O` を押してセッション内のすべての思考ブロックを展開または折りたたみます。詳細については、[拡張思考](/ja/common-workflows#use-extended-thinking-thinking-mode)を参照してください。

99* **複数行入力**:`Shift+Enter` を押して送信せずに新しい行を追加します。これは質問ダイアログの'その他'フリーテキスト入力でも機能します。

100 

101### ファイルとフォルダを参照する

102 

103@-メンションを使用して、特定のファイルまたはフォルダに関するコンテキストを Claude に提供します。`@` の後にファイルまたはフォルダ名を入力すると、Claude はそのコンテンツを読み取り、それについて質問したり、変更を加えたりできます。Claude Code はあいまい一致をサポートしているため、部分的な名前を入力して必要なものを見つけることができます。

104 

105```text theme={null}

106> Explain the logic in @auth (fuzzy matches auth.js, AuthService.ts, etc.)

107> What's in @src/components/ (include a trailing slash for folders)

108```

109 

110大きな PDF の場合、Claude にファイル全体ではなく特定のページを読むよう依頼できます。単一ページ、1~10 ページなどの範囲、または 3 ページ以降などのオープンエンド範囲です。

111 

112エディタでテキストを選択すると、Claude は強調表示されたコードを自動的に表示できます。プロンプトボックスのフッターは、選択されている行数を表示します。`Option+K`(Mac)/ `Alt+K`(Windows/Linux)を押して、ファイルパスと行番号を含む @-メンション(例:`@app.ts#5-10`)を挿入します。選択指示器をクリックして、Claude が強調表示されたテキストを表示できるかどうかを切り替えます。目のスラッシュアイコンは、選択が Claude から隠されていることを意味します。

113 

114また、`Shift` を押しながらファイルをプロンプトボックスにドラッグして、添付ファイルとして追加することもできます。任意の添付ファイルの X をクリックしてコンテキストから削除します。

115 

116### 過去の会話を再開する

117 

118Claude Code パネルの上部の **Session history** ボタンをクリックして、会話履歴にアクセスします。キーワードで検索するか、時間(今日、昨日、過去 7 日間など)で参照できます。任意の会話をクリックして、完全なメッセージ履歴で再開します。新しいセッションは、最初のメッセージに基づいて AI が生成したタイトルを受け取ります。セッションの上にマウスを置くと、名前変更と削除アクションが表示されます。説明的なタイトルを付けるために名前を変更するか、リストから削除するために削除します。セッションの再開の詳細については、[一般的なワークフロー](/ja/common-workflows#resume-previous-conversations)を参照してください。

119 

120### Claude.ai からリモートセッションを再開する

121 

122[Web 上の Claude Code](/ja/claude-code-on-the-web) を使用している場合、VS Code でそれらのリモートセッションを直接再開できます。これには、Anthropic Console ではなく **Claude.ai Subscription** でサインインする必要があります。

123 

124<Steps>

125 <Step title="セッション履歴を開く">

126 Claude Code パネルの上部の **Session history** ボタンをクリックします。

127 </Step>

128 

129 <Step title="Remote タブを選択する">

130 ダイアログには 2 つのタブが表示されます。Local と Remote。**Remote** をクリックして claude.ai からのセッションを表示します。

131 </Step>

132 

133 <Step title="再開するセッションを選択する">

134 リモートセッションを参照または検索します。任意のセッションをクリックしてダウンロードし、会話をローカルで続行します。

135 </Step>

136</Steps>

137 

138<Note>

139 リモートタブに表示されるのは、GitHub リポジトリで開始された Web セッションのみです。再開するとローカルに会話履歴が読み込まれます。変更は claude.ai に同期されません。

140</Note>

141 

142## ワークフローをカスタマイズする

143 

144起動して実行したら、Claude パネルを再配置したり、複数のセッションを実行したり、ターミナルモードに切り替えたりできます。

145 

146### Claude が存在する場所を選択する

147 

148Claude パネルをドラッグして、VS Code 内の任意の場所に再配置できます。パネルのタブまたはタイトルバーをつかんでドラッグします。

149 

150* **セカンダリサイドバー**:ウィンドウの右側。コーディング中に Claude を表示したままにします。

151* **プライマリサイドバー**:Explorer、Search などのアイコンが付いた左サイドバー。

152* **エディタ領域**:Claude をファイルの横のタブとして開きます。サイドタスクに便利です。

153 

154<Tip>

155 メイン Claude セッションにはサイドバーを使用し、サイドタスク用に追加のタブを開きます。Claude はお好みの場所を記憶しています。アクティビティバーセッションリストアイコンは Claude パネルとは別です。セッションリストは常にアクティビティバーに表示されますが、Claude パネルアイコンはパネルが左サイドバーにドッキングされている場合にのみそこに表示されます。

156</Tip>

157 

158### 複数の会話を実行する

159 

160コマンドパレットから **Open in New Tab** または **Open in New Window** を使用して、追加の会話を開始します。各会話は独自の履歴とコンテキストを保持し、異なるタスクで並行して作業できます。

161 

162タブを使用する場合、Spark アイコンの小さな色付きドットはステータスを示します。青は許可リクエストが保留中であることを意味し、オレンジはタブが非表示の間に Claude が完了したことを意味します。

163 

164### ターミナルモードに切り替える

165 

166デフォルトでは、拡張機能はグラフィカルチャットパネルを開きます。CLI スタイルのインターフェースを使用する場合は、[Use Terminal 設定](vscode://settings/claudeCode.useTerminal)を開いてボックスをチェックします。

167 

168VS Code 設定(Mac で `Cmd+,` または Windows/Linux で `Ctrl+,`)を開き、Extensions → Claude Code に移動して、**Use Terminal** をチェックすることもできます。

169 

170## プラグインを管理する

171 

172VS Code 拡張機能には、[プラグイン](/ja/plugins)をインストールおよび管理するためのグラフィカルインターフェースが含まれています。プロンプトボックスで `/plugins` と入力して、**Manage plugins** インターフェースを開きます。

173 

174### プラグインをインストールする

175 

176プラグインダイアログには 2 つのタブが表示されます。**Plugins** と **Marketplaces**。

177 

178Plugins タブで:

179 

180* **Installed plugins** は上部に表示され、有効または無効にするためのトグルスイッチがあります。

181* **Available plugins** は設定されたマーケットプレイスから下に表示されます。

182* 名前または説明でプラグインをフィルタリングするために検索します。

183* 利用可能なプラグインで **Install** をクリックします。

184 

185プラグインをインストールするときは、インストールスコープを選択します。

186 

187* **Install for you**:すべてのプロジェクトで利用可能(ユーザースコープ)

188* **Install for this project**:プロジェクト協力者と共有(プロジェクトスコープ)

189* **Install locally**:このリポジトリでのみ、あなたのためだけ(ローカルスコープ)

190 

191### マーケットプレイスを管理する

192 

193**Marketplaces** タブに切り替えて、プラグインソースを追加または削除します。

194 

195* GitHub リポジトリ、URL、またはローカルパスを入力して新しいマーケットプレイスを追加します。

196* 更新アイコンをクリックしてマーケットプレイスのプラグインリストを更新します。

197* ゴミ箱アイコンをクリックしてマーケットプレイスを削除します。

198 

199変更を加えた後、バナーが表示され、Claude Code を再起動して更新を適用するよう促します。

200 

201<Note>

202 VS Code のプラグイン管理は、内部で同じ CLI コマンドを使用します。拡張機能で設定したプラグインとマーケットプレイスは CLI でも利用可能であり、その逆も同様です。

203</Note>

204 

205プラグインシステムの詳細については、[Plugins](/ja/plugins) と [Plugin marketplaces](/ja/plugin-marketplaces) を参照してください。

206 

207## Chrome でブラウザタスクを自動化する

208 

209Claude を Chrome ブラウザに接続して、Web アプリをテストし、コンソールログでデバッグし、VS Code を離れることなくブラウザワークフローを自動化します。これには、[Claude in Chrome extension](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) バージョン 1.0.36 以上が必要です。

210 

211プロンプトボックスで `@browser` と入力し、その後に Claude に実行させたいことを入力します。

212 

213```text theme={null}

214@browser go to localhost:3000 and check the console for errors

215```

216 

217添付メニューを開いて、新しいタブを開くやページコンテンツを読むなどの特定のブラウザツールを選択することもできます。

218 

219Claude はブラウザタスク用に新しいタブを開き、ブラウザのログイン状態を共有するため、既にサインインしているサイトにアクセスできます。

220 

221セットアップ手順、機能の完全なリスト、トラブルシューティングについては、[Use Claude Code with Chrome](/ja/chrome) を参照してください。

222 

223## VS Code コマンドとショートカット

224 

225コマンドパレット(Mac で `Cmd+Shift+P` または Windows/Linux で `Ctrl+Shift+P`)を開き、「Claude Code」と入力して、Claude Code 拡張機能で利用可能なすべての VS Code コマンドを表示します。

226 

227一部のショートカットは、どのパネルが「フォーカス」されているか(キーボード入力を受け取っているか)によって異なります。カーソルがコードファイルにある場合、エディタはフォーカスされています。カーソルが Claude のプロンプトボックスにある場合、Claude はフォーカスされています。`Cmd+Esc` / `Ctrl+Esc` を使用してそれらを切り替えます。

228 

229<Note>

230 これらは拡張機能を制御するための VS Code コマンドです。組み込みの Claude Code コマンドのすべてが拡張機能で利用可能なわけではありません。詳細については、[VS Code extension vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) を参照してください。

231</Note>

232 

233| コマンド | ショートカット | 説明 |

234| -------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------- |

235| Focus Input | `Cmd+Esc`(Mac)/ `Ctrl+Esc`(Windows/Linux) | エディタと Claude 間のフォーカスを切り替える |

236| Open in Side Bar | - | Claude を左サイドバーで開く |

237| Open in Terminal | - | Claude をターミナルモードで開く |

238| Open in New Tab | `Cmd+Shift+Esc`(Mac)/ `Ctrl+Shift+Esc`(Windows/Linux) | 新しい会話をエディタタブとして開く |

239| Open in New Window | - | 新しい会話を別のウィンドウで開く |

240| New Conversation | `Cmd+N`(Mac)/ `Ctrl+N`(Windows/Linux) | 新しい会話を開始する。Claude がフォーカスされている必要があり、`enableNewConversationShortcut` が `true` に設定されている必要があります。 |

241| Insert @-Mention Reference | `Option+K`(Mac)/ `Alt+K`(Windows/Linux) | 現在のファイルと選択への参照を挿入する(エディタがフォーカスされている必要があります) |

242| Show Logs | - | 拡張機能デバッグログを表示する |

243| Logout | - | Anthropic アカウントからサインアウトする |

244 

245### 他のツールから VS Code タブを起動する

246 

247拡張機能は `vscode://anthropic.claude-code/open` で URI ハンドラーを登録します。これを使用して、独自のツーリングから新しい Claude Code タブを開きます。シェルエイリアス、ブラウザブックマークレット、または URL を開くことができるスクリプト。VS Code がまだ実行されていない場合、URL を開くと最初に起動します。VS Code が既に実行されている場合、URL は現在フォーカスされているウィンドウで開きます。

248 

249オペレーティングシステムの URL オープナーでハンドラーを呼び出します。

250 

251<Tabs>

252 <Tab title="macOS">

253 ```bash theme={null}

254 open "vscode://anthropic.claude-code/open"

255 ```

256 </Tab>

257 

258 <Tab title="Linux">

259 ```bash theme={null}

260 xdg-open "vscode://anthropic.claude-code/open"

261 ```

262 </Tab>

263 

264 <Tab title="Windows">

265 PowerShell で:

266 

267 ```powershell theme={null}

268 Start-Process "vscode://anthropic.claude-code/open"

269 ```

270 

271 `cmd.exe` では、`start` はその最初の引用符付き引数をウィンドウタイトルとして扱うため、URL の前に空のタイトルを渡します:

272 

273 ```cmd theme={null}

274 start "" "vscode://anthropic.claude-code/open"

275 ```

276 </Tab>

277</Tabs>

278 

279ハンドラーは 2 つのオプションのクエリパラメーターを受け入れます:

280 

281| パラメーター | 説明 |

282| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

283| `prompt` | プロンプトボックスに事前入力するテキスト。URL エンコードされている必要があります。プロンプトは事前入力されていますが、自動的には送信されません。 |

284| `session` | 新しい会話を開始する代わりに再開するセッション ID。セッションは、VS Code で現在開いているワークスペースに属している必要があります。セッションが見つからない場合、新しい会話が代わりに開始されます。セッションが既にタブで開いている場合、そのタブがフォーカスされます。セッション ID をプログラムで取得するには、[Continue conversations](/ja/headless#continue-conversations) を参照してください。 |

285 

286例えば、「review my changes」で事前入力されたタブを開くには:

287 

288```text theme={null}

289vscode://anthropic.claude-code/open?prompt=review%20my%20changes

290```

291 

292ターミナルセッションを VS Code タブの代わりに起動するには、CLI の `claude-cli://` ハンドラーを使用します。[Launch sessions from links](/ja/deep-links) を参照してください。

293 

294## 設定を構成する

295 

296拡張機能には 2 種類の設定があります。

297 

298* **VS Code の拡張機能設定**:VS Code 内の拡張機能の動作を制御します。`Cmd+,`(Mac)または `Ctrl+,`(Windows/Linux)で開き、Extensions → Claude Code に移動します。`/` と入力して **General Config** を選択して設定を開くこともできます。

299* **`~/.claude/settings.json` の Claude Code 設定**:拡張機能と CLI 間で共有されます。許可されたコマンド、環境変数、hooks、MCP サーバーに使用します。詳細については、[Settings](/ja/settings) を参照してください。

300 

301<Tip>

302 `"$schema": "https://json.schemastore.org/claude-code-settings.json"` を `settings.json` に追加して、VS Code で利用可能なすべての設定のオートコンプリートとインライン検証を取得します。

303</Tip>

304 

305### 拡張機能設定

306 

307| 設定 | デフォルト | 説明 |

308| --------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

309| `useTerminal` | `false` | グラフィカルパネルの代わりにターミナルモードで Claude を起動します。 |

310| `initialPermissionMode` | `default` | 新しい会話の承認プロンプトを制御します。`default`、`plan`、`acceptEdits`、または `bypassPermissions`。[permission modes](/ja/permission-modes) を参照してください。 |

311| `preferredLocation` | `panel` | Claude が開く場所:`sidebar`(右)または `panel`(新しいタブ) |

312| `autosave` | `true` | Claude が読み取りまたは書き込みする前にファイルを自動保存します。 |

313| `useCtrlEnterToSend` | `false` | Enter の代わりに Ctrl/Cmd+Enter を使用してプロンプトを送信します。 |

314| `enableNewConversationShortcut` | `false` | Cmd/Ctrl+N を有効にして新しい会話を開始します。 |

315| `hideOnboarding` | `false` | オンボーディングチェックリスト(卒業キャップアイコン)を非表示にします。 |

316| `respectGitIgnore` | `true` | ファイル検索から .gitignore パターンを除外します。 |

317| `usePythonEnvironment` | `true` | Claude を実行するときにワークスペースの Python 環境をアクティベートします。Python 拡張機能が必要です。 |

318| `environmentVariables` | `[]` | Claude プロセスの環境変数を設定します。共有設定には Claude Code 設定を使用します。 |

319| `disableLoginPrompt` | `false` | 認証プロンプトをスキップします(サードパーティプロバイダーセットアップ用)。 |

320| `allowDangerouslySkipPermissions` | `false` | [Auto mode](/ja/permission-modes#eliminate-prompts-with-auto-mode) と Bypass permissions をモード選択ツールに追加します。Auto mode には [plan、admin、model、provider の要件](/ja/permission-modes#eliminate-prompts-with-auto-mode)があるため、このトグルがオンでも利用不可のままである可能性があります。Bypass permissions は、インターネットアクセスのないサンドボックスでのみ使用してください。 |

321| `claudeProcessWrapper` | - | Claude プロセスを起動するために使用される実行可能ファイルパス |

322 

323## VS Code 拡張機能と Claude Code CLI

324 

325Claude Code は VS Code 拡張機能(グラフィカルパネル)と CLI(ターミナルのコマンドラインインターフェース)の両方として利用可能です。一部の機能は CLI でのみ利用可能です。CLI のみの機能が必要な場合は、VS Code の統合ターミナルで `claude` を実行します。

326 

327| 機能 | CLI | VS Code 拡張機能 |

328| ---------------- | ------------------- | --------------------------------------------------- |

329| コマンドと skills | [すべて](/ja/commands) | サブセット(`/` と入力して利用可能なものを表示) |

330| MCP サーバー設定 | はい | 部分的(CLI 経由でサーバーを追加。チャットパネルで `/mcp` を使用して既存のサーバーを管理) |

331| チェックポイント | はい | はい |

332| `!` bash ショートカット | はい | いいえ |

333| タブ補完 | はい | いいえ |

334 

335### チェックポイントで巻き戻す

336 

337VS Code 拡張機能はチェックポイントをサポートしており、Claude のファイル編集を追跡し、以前の状態に巻き戻すことができます。任意のメッセージの上にマウスを置いて巻き戻しボタンを表示し、3 つのオプションから選択します。

338 

339* **Fork conversation from here**:このメッセージからの新しい会話ブランチを開始し、すべてのコード変更をそのまま保持します。

340* **Rewind code to here**:会話の完全な履歴を保持しながら、ファイル変更をこのポイントに戻します。

341* **Fork conversation and rewind code**:新しい会話ブランチを開始し、ファイル変更をこのポイントに戻します。

342 

343チェックポイントの仕組みと制限の詳細については、[Checkpointing](/ja/checkpointing) を参照してください。

344 

345### VS Code で CLI を実行する

346 

347VS Code に留まりながら CLI を使用するには、統合ターミナル(Windows/Linux で `` Ctrl+` `` または Mac で `` Cmd+` ``)を開き、`claude` を実行します。CLI は自動的に IDE と統合され、差分表示や診断共有などの機能を提供します。

348 

349外部ターミナルを使用している場合は、Claude Code 内で `/ide` を実行して VS Code に接続します。

350 

351### 拡張機能と CLI を切り替える

352 

353拡張機能と CLI は同じ会話履歴を共有します。拡張機能の会話を CLI で続行するには、ターミナルで `claude --resume` を実行します。これにより、会話を検索して選択できるインタラクティブピッカーが開きます。

354 

355### プロンプトにターミナル出力を含める

356 

357プロンプトで `@terminal:name` を使用してターミナル出力を参照します。ここで `name` はターミナルのタイトルです。これにより、Claude はコマンド出力、エラーメッセージ、またはログをコピーペーストせずに表示できます。

358 

359### バックグラウンドプロセスを監視する

360 

361Claude が長時間実行されるコマンドを実行すると、拡張機能はステータスバーに進行状況を表示します。ただし、バックグラウンドタスクの可視性は CLI と比較して制限されています。より良い可視性のために、Claude にコマンドを出力させて、VS Code の統合ターミナルで実行できるようにします。

362 

363### MCP で外部ツールに接続する

364 

365MCP(Model Context Protocol)サーバーは Claude に外部ツール、データベース、API へのアクセスを提供します。

366 

367MCP サーバーを追加するには、統合ターミナル(`` Ctrl+` `` または `` Cmd+` ``)を開き、`claude mcp add` を実行します。以下の例は GitHub のリモート MCP サーバーを追加します。このサーバーはヘッダーとして渡される[個人用アクセストークン](https://github.com/settings/personal-access-tokens)で認証します。

368 

369```bash theme={null}

370claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \

371 --header "Authorization: Bearer YOUR_GITHUB_PAT"

372```

373 

374設定されたら、Claude にツールを使用するよう依頼します(例:「Review PR #456」)。

375 

376VS Code を離れることなく MCP サーバーを管理するには、チャットパネルで `/mcp` と入力します。MCP 管理ダイアログでは、サーバーを有効または無効にし、サーバーに再接続し、OAuth 認証を管理できます。利用可能なサーバーについては、[MCP documentation](/ja/mcp) を参照してください。

377 

378## git で作業する

379 

380Claude Code は git と統合され、VS Code でバージョン管理ワークフローを直接支援します。Claude にコミット変更、プルリクエスト作成、またはブランチ間での作業を依頼します。

381 

382### コミットとプルリクエストを作成する

383 

384Claude はコミットをステージング、コミットメッセージを作成、作業に基づいてプルリクエストを作成できます。

385 

386```text theme={null}

387> commit my changes with a descriptive message

388> create a pr for this feature

389> summarize the changes I've made to the auth module

390```

391 

392プルリクエストを作成するときに、Claude は実際のコード変更に基づいて説明を生成し、テストまたは実装の決定についてのコンテキストを追加できます。

393 

394### 並列タスク用に git worktrees を使用する

395 

396`--worktree`(`-w`)フラグを使用して、独自のファイルとブランチを持つ分離された worktree で Claude を開始します。

397 

398```bash theme={null}

399claude --worktree feature-auth

400```

401 

402各 worktree は git 履歴を共有しながら独立したファイル状態を保持します。これにより、異なるタスクで作業するときに Claude インスタンスが互いに干渉するのを防ぎます。詳細については、[Run parallel sessions with Git worktrees](/ja/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) を参照してください。

403 

404## サードパーティプロバイダーを使用する

405 

406デフォルトでは、Claude Code は Anthropic の API に直接接続します。組織が Amazon Bedrock、Google Vertex AI、または Microsoft Foundry を使用して Claude にアクセスする場合は、代わりにプロバイダーを使用するように拡張機能を設定します。

407 

408<Steps>

409 <Step title="ログインプロンプトを無効にする">

410 [Disable Login Prompt 設定](vscode://settings/claudeCode.disableLoginPrompt)を開いてボックスをチェックします。

411 

412 VS Code 設定(Mac で `Cmd+,` または Windows/Linux で `Ctrl+,`)を開き、'Claude Code login'を検索して、**Disable Login Prompt** をチェックすることもできます。

413 </Step>

414 

415 <Step title="プロバイダーを設定する">

416 プロバイダーのセットアップガイドに従います。

417 

418 * [Claude Code on Amazon Bedrock](/ja/amazon-bedrock)

419 * [Claude Code on Google Vertex AI](/ja/google-vertex-ai)

420 * [Claude Code on Microsoft Foundry](/ja/microsoft-foundry)

421 

422 これらのガイドは、`~/.claude/settings.json` でプロバイダーを設定することをカバーしており、VS Code 拡張機能と CLI 間で設定が共有されることを保証します。

423 </Step>

424</Steps>

425 

426## セキュリティとプライバシー

427 

428コードはプライベートのままです。Claude Code はコード支援を提供するためにコードを処理しますが、モデルのトレーニングには使用しません。データ処理とログアウトの方法の詳細については、[Data and privacy](/ja/data-usage) を参照してください。

429 

430自動編集権限が有効な場合、Claude Code は VS Code が自動的に実行する可能性がある VS Code 設定ファイル(`settings.json` や `tasks.json` など)を変更できます。信頼できないコードで作業するときのリスクを軽減するには、以下を実行します。

431 

432* 信頼できないワークスペースに対して [VS Code Restricted Mode](https://code.visualstudio.com/docs/editor/workspace-trust#_restricted-mode) を有効にします。

433* 編集の自動受け入れの代わりに手動承認モードを使用します。

434* 変更を受け入れる前に慎重に確認します。

435 

436### 組み込み IDE MCP サーバー

437 

438拡張機能がアクティブな場合、CLI が自動的に接続するローカル MCP サーバーを実行します。これは、CLI が VS Code のネイティブ差分ビューアで差分を開く方法、`@`-メンション用に現在の選択を読む方法、および Jupyter ノートブックで作業しているときに VS Code にセルを実行するよう依頼する方法です。

439 

440サーバーは `ide` という名前で、設定するものがないため `/mcp` から非表示になっています。ただし、組織が `PreToolUse` hook を使用して MCP ツールをホワイトリストに登録している場合は、それが存在することを知る必要があります。

441 

442**トランスポートと認証。** サーバーは `127.0.0.1` にバインドし、ランダムな高いポートで、他のマシンからはアクセスできません。各拡張機能のアクティベーションは、接続するために CLI が提示する必要がある新しいランダム認証トークンを生成します。トークンは `~/.claude/ide/` の下のロックファイルに書き込まれ、`0600` 権限を持つ `0700` ディレクトリにあるため、VS Code を実行しているユーザーのみがそれを読むことができます。

443 

444**モデルに公開されるツール。** サーバーは約 12 個のツールをホストしていますが、モデルに表示されるのは 2 つだけです。残りは、CLI が独自の UI(差分を開く、選択を読む、ファイルを保存する)に使用する内部 RPC であり、ツールリストが Claude に到達する前にフィルタリングされます。

445 

446| ツール名(hooks で見られるとおり) | 実行内容 | 書き込み? |

447| -------------------------- | --------------------------------------------------------------- | ----- |

448| `mcp__ide__getDiagnostics` | 言語サーバー診断を返します。VS Code の問題パネルのエラーと警告。オプションで 1 つのファイルにスコープされます。 | いいえ |

449| `mcp__ide__executeCode` | アクティブな Jupyter ノートブックのカーネルで Python コードを実行します。以下の確認フローを参照してください。 | はい |

450 

451**Jupyter 実行は常に最初に尋ねます。** `mcp__ide__executeCode` は何も静かに実行できません。各呼び出しで、コードはアクティブなノートブックの最後に新しいセルとして挿入され、VS Code はそれをビューにスクロールし、ネイティブ Quick Pick は **Execute** または **Cancel** を尋ねます。キャンセル(または `Esc` でピッカーを閉じる)は Claude にエラーを返し、何も実行されません。ツールはまた、アクティブなノートブックがない場合、Jupyter 拡張機能(`ms-toolsai.jupyter`)がインストールされていない場合、またはカーネルが Python でない場合に完全に拒否します。

452 

453<Note>

454 Quick Pick 確認は `PreToolUse` hooks とは別です。`mcp__ide__executeCode` のホワイトリストエントリにより、Claude はセルを*提案*できます。VS Code 内の Quick Pick は、それを*実際に*実行できるようにするものです。

455</Note>

456 

457<a id="troubleshooting" />

458 

459## 一般的な問題を修正する

460 

461### 拡張機能がインストールされない

462 

463* VS Code の互換バージョン(1.98.0 以上)があることを確認します。

464* VS Code に拡張機能をインストールする権限があることを確認します。

465* [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code) から直接インストールしてみてください。

466 

467### Spark アイコンが表示されない

468 

469Spark アイコンは、ファイルを開いている場合、**エディタツールバー**(エディタの右上)に表示されます。表示されない場合:

470 

4711. **ファイルを開く**:アイコンはファイルを開く必要があります。フォルダを開いているだけでは不十分です。

4722. **VS Code バージョンを確認**:1.98.0 以上が必要です(Help → About)

4733. **VS Code を再起動**:コマンドパレットから「Developer: Reload Window」を実行します。

4744. **競合する拡張機能を無効にする**:他の AI 拡張機能(Cline、Continue など)を一時的に無効にします。

4755. **ワークスペーストラストを確認**:拡張機能は制限モードでは機能しません。

476 

477または、**ステータスバー**(右下隅)の「✱ Claude Code」をクリックします。これはファイルを開かなくても機能します。**コマンドパレット**(`Cmd+Shift+P` / `Ctrl+Shift+P`)を使用して「Claude Code」と入力することもできます。

478 

479### Claude Code が応答しない

480 

481Claude Code がプロンプトに応答しない場合:

482 

4831. **インターネット接続を確認**:安定したインターネット接続があることを確認します。

4842. **新しい会話を開始**:新しい会話を開始して、問題が続くかどうかを確認します。

4853. **CLI を試す**:ターミナルから `claude` を実行して、より詳細なエラーメッセージが表示されるかどうかを確認します。

486 

487問題が続く場合は、エラーの詳細を含めて [GitHub で問題を報告](https://github.com/anthropics/claude-code/issues)してください。

488 

489## 拡張機能をアンインストールする

490 

491Claude Code 拡張機能をアンインストールするには:

492 

4931. 拡張機能ビューを開きます(Mac で `Cmd+Shift+X` または Windows/Linux で `Ctrl+Shift+X`)

4942. 「Claude Code」を検索します。

4953. **Uninstall** をクリックします。

496 

497拡張機能データを削除してすべての設定をリセットするには:

498 

499```bash theme={null}

500rm -rf ~/.vscode/globalStorage/anthropic.claude-code

501```

502 

503追加のヘルプについては、[troubleshooting guide](/ja/troubleshooting) を参照してください。

504 

505## 次のステップ

506 

507VS Code で Claude Code をセットアップしたので:

508 

509* [一般的なワークフローを探索](/ja/common-workflows)して Claude Code を最大限に活用します。

510* [MCP サーバーをセットアップ](/ja/mcp)して、外部ツールで Claude の機能を拡張します。CLI を使用してサーバーを追加し、チャットパネルで `/mcp` を使用して管理します。

511* [Claude Code 設定を構成](/ja/settings)して、許可されたコマンド、hooks などをカスタマイズします。これらの設定は拡張機能と CLI 間で共有されます。

web-quickstart.md +220 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Code をウェブで始める

6 

7> ブラウザまたはスマートフォンからクラウドで Claude Code を実行します。GitHub リポジトリを接続し、タスクを送信し、ローカルセットアップなしで PR をレビューします。

8 

9<Note>

10 Claude Code on the web は、Pro、Max、Team ユーザー、および premium seats または Chat + Claude Code seats を持つ Enterprise ユーザーを対象とした研究プレビュー版です。

11</Note>

12 

13Claude Code on the web は、あなたのマシンではなく Anthropic が管理するクラウドインフラストラクチャで実行されます。ブラウザまたは Claude モバイルアプリから [claude.ai/code](https://claude.ai/code) でタスクを送信します。

14 

15[始めるには](#connect-github-and-create-an-environment) GitHub リポジトリが必要です。Claude はそれを分離された仮想マシンにクローンし、変更を加え、レビュー用のブランチをプッシュします。セッションはデバイス間で永続化されるため、ラップトップで開始したタスクは後でスマートフォンからレビューする準備ができています。

16 

17Claude Code on the web は以下に適しています:

18 

19* **並列タスク**:複数の worktrees を管理することなく、複数の独立したタスクを同時に実行し、それぞれ独自のセッションとブランチで実行します

20* **ローカルにないリポジトリ**:Claude はセッションごとにリポジトリを新規クローンするため、チェックアウトする必要がありません

21* **頻繁なステアリングが不要なタスク**:明確に定義されたタスクを送信し、他のことをして、Claude が完了したときに結果をレビューします

22* **コードの質問と探索**:ローカルチェックアウトなしでコードベースを理解したり、機能がどのように実装されているかをトレースします

23 

24ローカル設定、ツール、または環境が必要な作業の場合は、Claude Code をローカルで実行するか、[Remote Control](/ja/remote-control) を使用する方が適しています。

25 

26## セッションの実行方法

27 

28タスクを送信すると:

29 

301. **クローンと準備**:リポジトリが Anthropic が管理する VM にクローンされ、設定されている場合は [setup script](/ja/claude-code-on-the-web#setup-scripts) が実行されます。

312. **ネットワークの設定**:インターネットアクセスは環境の [access level](/ja/claude-code-on-the-web#access-levels) に基づいて設定されます。

323. **作業**:Claude はコードを分析し、変更を加え、テストを実行し、その作業をチェックします。全体を監視してステアリングすることも、完了したら戻ってくることもできます。

334. **ブランチをプッシュ**:Claude が停止ポイントに達すると、ブランチを GitHub にプッシュします。diff をレビューし、インラインコメントを残し、PR を作成するか、別のメッセージを送信して続行します。

34 

35ブランチがプッシュされてもセッションは閉じません。PR の作成とさらなる編集はすべて同じ会話内で行われます。

36 

37## Claude Code を実行する方法を比較

38 

39Claude Code はどこでも同じように動作します。変わるのは、コードが実行される場所とローカル設定が利用可能かどうかです。Desktop app は local と cloud の両方のセッションを提供するため、以下の回答はどちらを選択するかによって異なります:

40 

41| | On the web | Remote Control | Terminal CLI | Desktop app |

42| :------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | :--------------------------- | :--------------------- | :-------------------------- |

43| **Code runs on** | Anthropic cloud VM | Your machine | Your machine | Your machine or cloud VM |

44| **You chat from** | claude.ai or mobile app | claude.ai or mobile app | Your terminal | The Desktop UI |

45| **Uses your local config** | No, repo only | Yes | Yes | Yes for local, no for cloud |

46| **Requires GitHub** | Yes, or [bundle a local repo](/ja/claude-code-on-the-web#send-local-repositories-without-github) via `--remote` | No | No | Only for cloud sessions |

47| **Keeps running if you disconnect** | Yes | While terminal stays open | No | Depends on session type |

48| **[Permission modes](/ja/permission-modes)** | Auto accept edits, Plan | Ask, Auto accept edits, Plan | All modes | Depends on session type |

49| **Network access** | Configurable per environment | Your machine's network | Your machine's network | Depends on session type |

50 

51[terminal quickstart](/ja/quickstart)、[Desktop app](/ja/desktop)、または [Remote Control](/ja/remote-control) ドキュメントを参照して、それらをセットアップしてください。

52 

53## GitHub を接続して環境を作成

54 

55セットアップは 1 回限りのプロセスです。既に GitHub CLI を使用している場合は、ブラウザの代わりに [ターミナルからこれを実行](#connect-from-your-terminal) できます。

56 

57<Steps>

58 <Step title="claude.ai/code にアクセス">

59 [claude.ai/code](https://claude.ai/code) にアクセスし、Anthropic アカウントでサインインします。

60 </Step>

61 

62 <Step title="Claude GitHub App をインストール">

63 サインイン後、claude.ai/code は GitHub に接続するよう促します。プロンプトに従って Claude GitHub App をインストールし、リポジトリへのアクセスを許可します。Cloud セッションは既存の GitHub リポジトリで機能するため、新しいプロジェクトを開始するには、まず [GitHub に空のリポジトリを作成](https://github.com/new) してください。

64 </Step>

65 

66 <Step title="環境を作成">

67 GitHub を接続した後、cloud 環境を作成するよう促されます。環境は、セッション中に Claude が持つネットワークアクセスと、新しいセッションが作成されたときに実行される内容を制御します。設定なしで利用可能な内容については、[Installed tools](/ja/claude-code-on-the-web#installed-tools) を参照してください。

68 

69 フォームには以下のフィールドがあります:

70 

71 * **Name**:表示ラベル。異なるプロジェクトまたはアクセスレベル用に複数の環境がある場合に便利です。

72 * **Network access**:セッションがインターネット上で到達できるものを制御します。デフォルトの `Trusted` は、npm、PyPI、RubyGems などの [common package registries](/ja/claude-code-on-the-web#default-allowed-domains) への接続を許可しながら、一般的なインターネットアクセスをブロックします。

73 * **Environment variables**:すべてのセッションで利用可能なオプション変数(`.env` 形式)。値をクォートで囲まないでください。クォートは値の一部として保存されるためです。これらは、この環境を編集できるすべてのユーザーに表示されます。

74 * **Setup script**:Claude Code が起動する前に実行されるオプションの Bash スクリプト。cloud VM に含まれていない `apt install -y gh` などのシステムツールをインストールするために使用します。結果は [cached](/ja/claude-code-on-the-web#environment-caching) されるため、スクリプトはセッションごとに再実行されません。例とデバッグのヒントについては、[Setup scripts](/ja/claude-code-on-the-web#setup-scripts) を参照してください。

75 

76 最初のプロジェクトの場合は、デフォルトのままにして **Create environment** をクリックします。後で [環境を編集したり、異なるプロジェクト用に追加の環境を作成](/ja/claude-code-on-the-web#configure-your-environment) できます。

77 </Step>

78</Steps>

79 

80### ターミナルから接続

81 

82既に GitHub CLI(`gh`)を使用している場合は、ブラウザを開かずに Claude Code on the web をセットアップできます。これには [Claude Code CLI](/ja/quickstart) が必要です。`/web-setup` はローカルの `gh` トークンを読み取り、Claude アカウントにリンクし、cloud 環境がない場合はデフォルトの cloud 環境を作成します。

83 

84<Note>

85 [Zero Data Retention](/ja/zero-data-retention) が有効な Organization は `/web-setup` または他の cloud セッション機能を使用できません。GitHub CLI がインストールされていない、または認証されていない場合、`/web-setup` はブラウザオンボーディングフローを開きます。

86</Note>

87 

88<Steps>

89 <Step title="GitHub CLI で認証">

90 シェルで、まだ認証していない場合は GitHub CLI を認証します:

91 

92 ```bash theme={null}

93 gh auth login

94 ```

95 </Step>

96 

97 <Step title="Claude にサインイン">

98 Claude Code CLI で `/login` を実行して、claude.ai アカウントでサインインします。既にサインインしている場合はこのステップをスキップします。

99 </Step>

100 

101 <Step title="/web-setup を実行">

102 Claude Code CLI で以下を実行します:

103 

104 ```text theme={null}

105 /web-setup

106 ```

107 

108 これにより、`gh` トークンが Claude アカウントに同期されます。cloud 環境がまだない場合、`/web-setup` は Trusted ネットワークアクセスと setup script なしで環境を作成します。後で [環境を編集したり、変数を追加](/ja/claude-code-on-the-web#configure-your-environment) できます。`/web-setup` が完了したら、[`--remote`](/ja/claude-code-on-the-web#from-terminal-to-web) でターミナルから cloud セッションを開始するか、[`/schedule`](/ja/routines) で定期的なタスクをセットアップできます。

109 </Step>

110</Steps>

111 

112## タスクを開始

113 

114GitHub が接続され、環境が作成されたら、タスクを送信する準備ができています。

115 

116<Steps>

117 <Step title="リポジトリとブランチを選択">

118 [claude.ai/code](https://claude.ai/code) または Claude モバイルアプリの Code タブから、入力ボックスの下のリポジトリセレクターをクリックし、Claude が作業するリポジトリを選択します。各リポジトリはブランチセレクターを表示します。デフォルトの代わりに feature ブランチから Claude を開始するように変更します。複数のリポジトリを追加して、1 つのセッション内で複数のリポジトリで作業できます。

119 </Step>

120 

121 <Step title="permission mode を選択">

122 入力の横の mode ドロップダウンは、デフォルトで **Auto accept edits** で、Claude は承認を待たずに変更を加えてブランチをプッシュします。Claude がアプローチを提案し、ファイルを編集する前にあなたの許可を待つようにしたい場合は、**Plan mode** に切り替えます。Cloud セッションは Ask permissions、Auto mode、または Bypass permissions を提供しません。完全なリストについては [Permission modes](/ja/permission-modes) を参照してください。

123 </Step>

124 

125 <Step title="タスクを説明して送信">

126 実行したい内容の説明を入力して Enter キーを押します。具体的にしてください:

127 

128 * ファイルまたは関数に名前を付けます:'Add a README with setup instructions'または'Fix the failing auth test in `tests/test_auth.py`'は'fix tests'より良いです

129 * エラー出力がある場合は貼り付けます

130 * 症状だけでなく、期待される動作を説明します

131 

132 Claude はリポジトリをクローンし、設定されている場合は setup script を実行し、作業を開始します。各タスクは独自のセッションと独自のブランチを取得するため、1 つが完了するのを待つ必要はありません。

133 </Step>

134</Steps>

135 

136## セッションを事前入力

137 

138[claude.ai/code](https://claude.ai/code) URL にクエリパラメータを追加することで、新しいセッションのプロンプト、リポジトリ、環境を事前入力できます。これを使用して、issue tracker のボタンなどの統合を構築し、issue の説明をプロンプトとして Claude Code を開きます。

139 

140| Parameter | Description |

141| :------------- | :-------------------------------------------------------------------------------------------------- |

142| `prompt` | 入力ボックスに事前入力するプロンプトテキスト。エイリアス `q` も受け入れられます。 |

143| `prompt_url` | クエリ文字列に埋め込むには長すぎるプロンプトのプロンプトテキストを取得する URL。URL はクロスオリジンリクエストを許可する必要があります。`prompt` も設定されている場合は無視されます。 |

144| `repositories` | 事前選択する `owner/repo` スラッグのコンマ区切りリスト。エイリアス `repo` も受け入れられます。 |

145| `environment` | 事前選択する [environment](#connect-github-and-create-an-environment) の名前または ID。 |

146 

147各値を URL エンコードします。以下の例は、プロンプトとリポジトリが既に選択された状態でフォームを開きます:

148 

149```text theme={null}

150https://claude.ai/code?prompt=Fix%20the%20login%20bug&repositories=acme/webapp

151```

152 

153## レビューと反復

154 

155Claude が完了したら、変更をレビューし、特定の行にフィードバックを残し、diff が正しく見えるまで続行します。

156 

157<Steps>

158 <Step title="diff ビューを開く">

159 diff インジケーターはセッション全体で追加および削除された行を表示します(例:`+42 -18`)。それを選択して diff ビューを開き、左側にファイルリスト、右側に変更が表示されます。

160 </Step>

161 

162 <Step title="インラインコメントを残す">

163 diff 内の任意の行を選択し、フィードバックを入力して Enter キーを押します。コメントは次のメッセージを送信するまでキューに入り、その後バンドルされます。Claude は'at `src/auth.ts:47`, don't catch the error here'をメインの指示と一緒に見るため、問題がどこにあるかを説明する必要はありません。

164 </Step>

165 

166 <Step title="pull request を作成">

167 diff が正しく見えたら、diff ビューの上部にある **Create PR** を選択します。完全な PR として開くか、ドラフトとして開くか、生成されたタイトルと説明で GitHub の作成ページにジャンプできます。

168 </Step>

169 

170 <Step title="PR 作成後も反復を続ける">

171 PR が作成された後もセッションはライブのままです。CI 失敗出力またはレビュアーのコメントをチャットに貼り付け、Claude にそれらに対処するよう依頼します。Claude に PR を自動的に監視させるには、[Auto-fix pull requests](/ja/claude-code-on-the-web#auto-fix-pull-requests) を参照してください。

172 </Step>

173</Steps>

174 

175## セットアップのトラブルシューティング

176 

177### GitHub 接続後にリポジトリが表示されない

178 

179Claude GitHub App は、使用する各リポジトリへの明示的なアクセスが必要です。github.com で **Settings → Applications → Claude → Configure** を開き、リポジトリが **Repository access** の下にリストされていることを確認します。Private リポジトリは public リポジトリと同じ認可が必要です。

180 

181### ページに GitHub ログインボタンのみが表示される

182 

183Cloud セッションには接続された GitHub アカウントが必要です。上記のブラウザフローで接続するか、GitHub CLI を使用している場合はターミナルから `/web-setup` を実行します。GitHub をまったく接続したくない場合は、[Remote Control](/ja/remote-control) を参照して、独自のマシンで Claude Code を実行し、ウェブから監視します。

184 

185### 「Not available for the selected organization」

186 

187Enterprise Organization では、管理者が Claude Code on the web を有効にする必要がある場合があります。Anthropic アカウントチームに連絡してください。

188 

189### `/web-setup` が「Unknown command」を返す

190 

191`/web-setup` はシェルではなく Claude Code CLI 内で実行されます。まず `claude` を起動し、プロンプトで `/web-setup` を入力します。

192 

193Claude Code 内で入力してもエラーが表示される場合は、CLI が v2.1.80 より古いか、API キーまたはサードパーティプロバイダーではなく claude.ai サブスクリプションで認証されています。`claude update` を実行してから `/login` を実行して、claude.ai アカウントでサインインします。

194 

195### `--remote` または ultraplan を使用する場合に「Could not create a cloud environment」または「No cloud environment available」

196 

197Remote セッション機能は、cloud 環境がない場合、デフォルトの cloud 環境を自動的に作成します。「Could not create a cloud environment」が表示される場合、自動作成に失敗しました。{/* max-version: 2.1.100 */}「No cloud environment available」が表示される場合、CLI は自動作成より前のものです。どちらの場合でも、Claude Code CLI で `/web-setup` を実行して手動で作成するか、[claude.ai/code](https://claude.ai/code) にアクセスして上記の **Create your environment** ステップに従ってください。

198 

199### Setup script が失敗

200 

201Setup script は 0 以外のステータスで終了し、セッションの開始をブロックします。一般的な原因:

202 

203* レジストリが [network access level](/ja/claude-code-on-the-web#access-levels) にないため、パッケージのインストールに失敗しました。`Trusted` はほとんどのパッケージマネージャーをカバーします。`None` はすべてをブロックします。

204* スクリプトは新規クローンに存在しないファイルまたはパスを参照しています。

205* ローカルで機能するコマンドは Ubuntu で異なる呼び出しが必要です。

206 

207デバッグするには、スクリプトの上部に `set -x` を追加して、どのコマンドが失敗したかを確認します。重要でないコマンドの場合は、`|| true` を追加してセッション開始をブロックしないようにします。

208 

209### タブを閉じた後もセッションが実行され続ける

210 

211これは仕様です。タブを閉じたり、移動したりしてもセッションは停止しません。Claude が現在のタスクを完了するまでバックグラウンドで実行され、その後アイドル状態になります。サイドバーから、セッションをリストから非表示にするために [archive a session](/ja/claude-code-on-the-web#archive-sessions) するか、永久に削除するために [delete it](/ja/claude-code-on-the-web#delete-sessions) できます。

212 

213## 次のステップ

214 

215タスクを送信してレビューできるようになったので、これらのページは次に来るものをカバーしています:ターミナルから cloud セッションを開始し、定期的な作業をスケジュールし、Claude に常設の指示を与えます。

216 

217* [Use Claude Code on the web](/ja/claude-code-on-the-web):完全なリファレンス。セッションをターミナルにテレポートする、setup script、環境変数、ネットワーク設定を含みます

218* [Routines](/ja/routines):スケジュール、API 呼び出し、または GitHub イベントへの応答で作業を自動化します

219* [CLAUDE.md](/ja/memory):すべてのセッションの開始時に読み込まれる永続的な指示とコンテキストを Claude に提供します

220* [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) または [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) 用の Claude モバイルアプリをインストールして、スマートフォンからセッションを監視します。Claude Code CLI から、`/mobile` は QR コードを表示します。

whats-new.md +49 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 新機能

6 

7> Claude Code の注目すべき機能を毎週紹介するダイジェスト。コードスニペット、デモ、およびそれらが重要である理由についての説明が含まれています。

8 

9週間開発ダイジェストは、あなたの仕事のやり方を変える可能性が最も高い機能をハイライトします。各エントリには実行可能なコード、短いデモ、および完全なドキュメントへのリンクが含まれています。すべてのバグ修正と軽微な改善については、[changelog](/ja/changelog) を参照してください。

10 

11<Update label="Week 17" description="April 20–24, 2026" tags={["v2.1.114–v2.1.119"]}>

12 **`/ultrareview`** がパブリックリサーチプレビューとしてオープンしました。バグ検出エージェントのフリートがクラウドで実行され、検出結果が自動的に CLI またはデスクトップに戻ります。

13 

14 今週のその他の機能:**セッションの概要** はターミナルがフォーカスされていない間に何が起こったかを表示します。**カスタムテーマ** では `/theme` またはプラグインから色パレットを構築して配布できます。**ウェブ上の Claude Code** は新しいセッションサイドバーとドラッグアンドドロップレイアウトでリデザインされました。

15 

16 [Week 17 ダイジェストを読む →](/ja/whats-new/2026-w17)

17</Update>

18 

19<Update label="Week 16" description="April 13–17, 2026" tags={["v2.1.105–v2.1.113"]}>

20 **Claude Opus 4.7** が Max および Team Premium の新しいデフォルトとしてリリースされました。ほとんどのコーディング作業に推奨される新しい `xhigh` エフォートレベルと、インタラクティブな `/effort` スライダーで調整できます。

21 

22 今週のその他の機能:ウェブ上の Claude Code の **Routines** はスケジュール、GitHub イベント、または API 呼び出しからテンプレート化されたクラウドエージェントを実行します。`/ultrareview` はクラウドで並列マルチエージェントコードレビューを実行します。`/usage` はあなたの制限を何が駆動しているかを表示します。CLI はネイティブバイナリに移行しました。

23 

24 [Week 16 ダイジェストを読む →](/ja/whats-new/2026-w16)

25</Update>

26 

27<Update label="Week 15" description="April 6–10, 2026" tags={["v2.1.92–v2.1.101"]}>

28 **Ultraplan** が早期プレビューに入りました。CLI からクラウドでプランを作成し、ウェブエディタで確認およびコメントしてから、リモートで実行するか、ローカルに戻します。最初の実行は自動的にクラウド環境を作成します。

29 

30 今週のその他の機能:**Monitor** ツールはバックグラウンドイベントをストリーミングして会話に流し込むため、Claude はログをテールして実時間で反応できます。`/loop` は間隔を省略すると自動ペースします。`/team-onboarding` はセットアップを再生可能なガイドにパッケージします。`/autofix-pr` はターミナルから PR 自動修正をオンにします。

31 

32 [Week 15 ダイジェストを読む →](/ja/whats-new/2026-w15)

33</Update>

34 

35<Update label="Week 14" description="March 30 – April 3, 2026" tags={["v2.1.86–v2.1.91"]}>

36 **Computer use** がリサーチプレビューで CLI に登場しました。Claude はネイティブアプリを開き、UI をクリックして、ターミナルから変更を確認できます。GUI でのみ確認できるものを完了するのに最適です。

37 

38 今週のその他の機能:`/powerup` インタラクティブレッスン、ちらつきのない alt スクリーンレンダリング、ツールごとの MCP 結果サイズオーバーライド(最大 500K)、および Bash ツールの `PATH` 上のプラグイン実行ファイル。

39 

40 [Week 14 ダイジェストを読む →](/ja/whats-new/2026-w14)

41</Update>

42 

43<Update label="Week 13" description="March 23–27, 2026" tags={["v2.1.83–v2.1.85"]}>

44 **Auto mode** がリサーチプレビューでリリースされました。分類器があなたの許可プロンプトを処理するため、安全なアクションは中断なく実行され、危険なアクションはブロックされます。すべてを承認することと `--dangerously-skip-permissions` の中間地点です。

45 

46 今週のその他の機能:デスクトップアプリでのコンピュータ使用、ウェブでの PR 自動修正、`/` でのトランスクリプト検索、Windows 用のネイティブ PowerShell ツール、および条件付き `if` フック。

47 

48 [Week 13 ダイジェストを読む →](/ja/whats-new/2026-w13)

49</Update>

whats-new/2026-w16.md +135 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Week 16 · 4月13~17日、2026年

6 

7> 新しい xhigh エフォートレベルを備えた Claude Opus 4.7、Claude Code ウェブ版の Routines、/ultrareview クラウドコードレビュー、使用制限を駆動している要因を表示する /usage 内訳、およびバンドルされた JavaScript に代わるネイティブバイナリ。

8 

9<div className="digest-meta">

10 <span>Releases <a href="/ja/docs/changelog#2-1-105">v2.1.105 → v2.1.113</a></span>

11 <span>5 features · 4月13~17日</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Claude Opus 4.7</span>

17 <span className="digest-feature-pill">new model</span>

18 </div>

19 

20 <p className="digest-feature-lede">Anthropic の最強のコーディングモデルが Max と Team Premium のデフォルトになり、他のすべての場所から <code>/model</code> で利用できるようになりました。<code>high</code> と <code>max</code> の間に位置する新しい <code>xhigh</code> エフォートレベルを追加します。ほとんどのコーディングおよび agentic タスクに最適な結果を提供し、4.7 に初めて切り替えるときにデフォルトとして適用されます。<code>/effort</code> は引数なしで呼び出すと対話的な矢印キースライダーを開くようになったため、レベル名を覚えることなく、インテリジェンスと速度のバランスを調整できます。</p>

21 

22 <p className="digest-feature-try">モデルとエフォートを一度に切り替えます:</p>

23 

24 ```text Claude Code theme={null}

25 > /model opus

26 > /effort xhigh

27 ```

28 

29 <a className="digest-feature-link" href="/ja/docs/model-config#adjust-effort-level">Model config: effort levels</a>

30</div>

31 

32<div className="digest-feature">

33 <div className="digest-feature-header">

34 <span className="digest-feature-title">Routines</span>

35 <span className="digest-feature-pill">web</span>

36 </div>

37 

38 <p className="digest-feature-lede">スケジュール、GitHub イベント、または API 呼び出しで起動するテンプレート化されたクラウドエージェント。Claude Code ウェブ版でプロンプト、アクセスできるリポジトリ、必要なコネクタを使用してルーチンを一度定義すると、マシンを実行することなく、PR が開かれたり、リリースが公開されたり、独自の webhook によってトリガーされたりします。トリガーピッカーは GitHub イベントをオプションフィルター付きでカバーし、すべてのルーチンに トークン化された <code>/fire</code> エンドポイントを提供します。</p>

39 

40 <Frame>

41 <img className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/routines.png?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=2ba818ea9280c549511cb48b9b4d1dc5" alt="スケジュール、GitHub イベント、API トリガーを使用して Claude Code ウェブ版でルーチンを作成する" width="1440" height="810" data-path="images/whats-new/routines.png" />

42 </Frame>

43 

44 <p className="digest-feature-try">ウェブ UI から作成するか、ターミナルからスキャフォールドします:</p>

45 

46 ```text Claude Code theme={null}

47 > /schedule daily PR review at 9am

48 ```

49 

50 <a className="digest-feature-link" href="/ja/docs/routines">Routines guide</a>

51</div>

52 

53<div className="digest-feature">

54 <div className="digest-feature-header">

55 <span className="digest-feature-title">/usage breakdown</span>

56 <span className="digest-feature-pill">CLI</span>

57 </div>

58 

59 <p className="digest-feature-lede">Claude Code の使用がどこに行くかについてのより多くの可視性。<code>/usage</code> は、使用制限を駆動している要因を表示するようになりました。並列セッション、サブエージェント、キャッシュミス、長いコンテキスト、それぞれ過去 24 時間のパーセンテージと最適化のヒント付きです。<code>d</code> または <code>w</code> を押して、日ビューと週ビューを切り替えます。</p>

60 

61 <Frame>

62 <img className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/usage.png?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=792a4b43cbef4e2931974831f076bca6" alt="/usage コマンドが制限使用に寄与しているものの内訳を表示" width="1204" height="1182" data-path="images/whats-new/usage.png" />

63 </Frame>

64 

65 <p className="digest-feature-try">いつでも実行します:</p>

66 

67 ```text Claude Code theme={null}

68 > /usage

69 ```

70 

71 <a className="digest-feature-link" href="/ja/docs/commands">Commands reference</a>

72</div>

73 

74<div className="digest-feature">

75 <div className="digest-feature-header">

76 <span className="digest-feature-title">/ultrareview</span>

77 <span className="digest-feature-pill">v2.1.111</span>

78 </div>

79 

80 <p className="digest-feature-lede">クラウドでの包括的なコードレビュー。Ultrareview はブランチを Claude Code ウェブ版の並列レビュアー全体に展開し、各検出結果に対して敵対的な批評パスを実行し、ターミナルが空いたままの状態で検証済みの検出結果レポートを返します。引数なしで呼び出して現在のブランチをレビューするか、PR 番号を渡してその PR をフェッチしてレビューします。起動ダイアログは diffstat を表示するため、確認する前に何がアップロードされるかを知ることができます。</p>

81 

82 <p className="digest-feature-try">あなたが使用しているブランチをレビューします:</p>

83 

84 ```text Claude Code theme={null}

85 > /ultrareview

86 ```

87 

88 <p className="digest-feature-try">または PR を指定します:</p>

89 

90 ```text Claude Code theme={null}

91 > /ultrareview 1234

92 ```

93 

94 <a className="digest-feature-link" href="/ja/docs/ultrareview">Ultrareview guide</a>

95</div>

96 

97<div className="digest-feature">

98 <div className="digest-feature-header">

99 <span className="digest-feature-title">Native binaries</span>

100 <span className="digest-feature-pill">v2.1.113</span>

101 </div>

102 

103 <p className="digest-feature-lede"><code>claude</code> CLI はバンドルされた JavaScript の代わりにプラットフォームごとのネイティブバイナリを生成するようになったため、インストールされた <code>claude</code> コマンドは Node を呼び出さなくなりました。npm パッケージは <code>@anthropic-ai/claude-code-darwin-arm64</code> などのオプション依存関係を通じて正しいバイナリをプルするため、インストールコマンドは変わりません。スタンドアロンインストーラーはすでにこのバイナリを出荷しました。npm は現在それと一致しています。</p>

104 

105 <p className="digest-feature-try">アップグレードして、実行しているものを確認します:</p>

106 

107 ```bash theme={null}

108 claude update

109 claude --version

110 ```

111 

112 <a className="digest-feature-link" href="/ja/docs/setup">Setup guide</a>

113</div>

114 

115<div className="digest-wins">

116 <p className="digest-wins-title">その他の成果</p>

117 

118 <div className="digest-wins-grid">

119 <div><a href="/ja/docs/permission-modes#eliminate-prompts-with-auto-mode">Auto mode</a> は Max サブスクライバーで Opus 4.7 で利用可能になり、<code>--enable-auto-mode</code> フラグは不要になりました</div>

120 <div><a href="/ja/docs/interactive-mode#session-recap">Session recap</a> は、あなたが離れている間に何が起こったかの 1 行の概要を表示します。<code>/recap</code> をオンデマンドで実行するか、<code>/config</code> からオフにします</div>

121 <div>新しい <code>/tui</code> コマンドと <code>tui</code> 設定は、会話の途中でクラシックとちらつきのないレンダリングを切り替えます。フォーカスビューは <code>Ctrl+O</code> から独自の <code>/focus</code> コマンドに移動しました</div>

122 <div>プッシュ通知ツール:<a href="/ja/docs/remote-control">Remote Control</a> が接続され、「Claude が決定したときにプッシュ」が有効になっている場合、Claude は必要なときにあなたの電話に ping を送信できます</div>

123 <div>プラグインは、セッション開始時またはスキル呼び出し時に自動的に武装する <code>monitors</code> マニフェストキーを介してバックグラウンドウォッチャーを出荷できます</div>

124 <div><code>/theme</code> の「Auto(ターミナルに一致)」オプションは、ターミナルのダーク/ライトモードに従います</div>

125 <div><code>/fewer-permission-prompts</code> はトランスクリプトをスキャンして、一般的な読み取り専用 Bash および MCP 呼び出しを検出し、<code>.claude/settings.json</code> のアローリストを提案します</div>

126 <div>Claude は、Skill ツールを介して <code>/init</code>、<code>/review</code>、<code>/security-review</code> などの組み込みコマンドを検出して実行できるようになりました</div>

127 <div><code>PreCompact</code> フックは、終了コード 2 で終了するか、<code>{"{"}"decision":"block"{"}"}</code> を返すことでコンパクション をブロックできます</div>

128 <div><code>ENABLE\_PROMPT\_CACHING\_1H</code> は API キー、Bedrock、Vertex、および Foundry ユーザーを 1 時間のプロンプトキャッシュ TTL にオプトインします</div>

129 <div><code>sandbox.network.deniedDomains</code> 設定は、より広い <code>allowedDomains</code> ワイルドカードから特定のドメインを除外します</div>

130 <div><code>/undo</code> は <code>/rewind</code> のエイリアスになり、<code>/proactive</code> は <code>/loop</code> のエイリアスになりました</div>

131 <div>強化された Bash 権限:拒否ルールは <code>env</code>/<code>sudo</code>/<code>watch</code> ラッパーを通じてマッチするようになり、<code>Bash(find:\*)</code> 許可ルールは <code>-exec</code> または <code>-delete</code> を自動承認しなくなりました</div>

132 </div>

133</div>

134 

135[v2.1.105–v2.1.113 の完全なチェンジログ →](/ja/changelog#2-1-105)

whats-new/2026-w17.md +113 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Week 17 · 2026年4月20~24日

6 

7> /ultrareview がリサーチプレビューとしてオープン、ターミナルに戻ったときの自動セッションリキャップ、プラグインで構築・配布できるカスタムカラーテーマ、ウェブ上で再設計された Claude Code。

8 

9<div className="digest-meta">

10 <span>リリース <a href="/ja/docs/changelog#2-1-114">v2.1.114 → v2.1.119</a></span>

11 <span>4 つの機能 · 4月20~24日</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">/ultrareview</span>

17 <span className="digest-feature-pill">リサーチプレビュー</span>

18 </div>

19 

20 <p className="digest-feature-lede">現在、パブリックリサーチプレビューで利用可能です。Ultrareview はクラウド内でバグ検出エージェントのフリートをあなたのブランチまたは PR に対して実行し、検出結果は自動的に CLI またはデスクトップに返されます。認証やデータマイグレーションなどの重要な変更をマージする前に実行してください。</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/ultrareview.mp4?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=0fb1271365d38f414ad155aeb8edb08e" data-path="images/whats-new/ultrareview.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">現在のブランチをレビューします:</p>

27 

28 ```text Claude Code theme={null}

29 > /ultrareview

30 ```

31 

32 <p className="digest-feature-try">または PR を指定します:</p>

33 

34 ```text Claude Code theme={null}

35 > /ultrareview 1234

36 ```

37 

38 <a className="digest-feature-link" href="/ja/docs/ultrareview">Ultrareview ガイド</a>

39</div>

40 

41<div className="digest-feature">

42 <div className="digest-feature-header">

43 <span className="digest-feature-title">セッションリキャップ</span>

44 <span className="digest-feature-pill">CLI</span>

45 </div>

46 

47 <p className="digest-feature-lede">セッションから別のフォーカスに切り替えて戻ってくると、あなたが不在の間に何が起こったかの 1 行のリキャップが表示されます。複数の Claude セッションを同時に実行しながらフローを保つのに役立ちます。</p>

48 

49 <Frame>

50 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/session-recap.mp4?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=0a8db1470bd0161a47efeb2f322af76f" data-path="images/whats-new/session-recap.mp4" />

51 </Frame>

52 

53 <p className="digest-feature-try"><code>/config</code> からオンデマンドでリキャップを生成するか、自動リキャップをオフにします:</p>

54 

55 ```text Claude Code theme={null}

56 > /recap

57 ```

58 

59 <a className="digest-feature-link" href="/ja/docs/interactive-mode#session-recap">インタラクティブモード:セッションリキャップ</a>

60</div>

61 

62<div className="digest-feature">

63 <div className="digest-feature-header">

64 <span className="digest-feature-title">カスタムテーマ</span>

65 <span className="digest-feature-pill">v2.1.118</span>

66 </div>

67 

68 <p className="digest-feature-lede"><code>/theme</code> から名前付きカラーテーマを構築して切り替えるか、<code>\~/.claude/themes/</code> の JSON ファイルを手動で編集します。各テーマはベースプリセットを選択し、気になるトークンのみをオーバーライドします。プラグインもテーマを配布できます。</p>

69 

70 <p className="digest-feature-try">テーマピッカーを開いて新しいテーマを作成します:</p>

71 

72 ```text Claude Code theme={null}

73 > /theme

74 ```

75 

76 <a className="digest-feature-link" href="/ja/docs/terminal-config#create-a-custom-theme">ターミナル設定:カスタムテーマの作成</a>

77</div>

78 

79<div className="digest-feature">

80 <div className="digest-feature-header">

81 <span className="digest-feature-title">ウェブ上の Claude Code</span>

82 <span className="digest-feature-pill">ウェブ</span>

83 </div>

84 

85 <p className="digest-feature-lede"><a href="https://claude.ai/code">claude.ai/code</a> の新しいルックで、再設計されたデスクトップアプリと一致します:セッションサイドバー、ドラッグアンドドロップレイアウト、リフレッシュされたルーチンビュー。主要な部分は、より高速な応答とより信頼性の高い体験のために再構築されました。</p>

86 

87 <Frame>

88 <img className="w-full" src="https://mintcdn.com/claude-code/FTi4SBJ9YRs7d-5X/images/whats-new/web-redesign.jpeg?fit=max&auto=format&n=FTi4SBJ9YRs7d-5X&q=85&s=a2aca1b49e295b7337f5779038db8e2c" alt="ウェブ上の Claude Code 再設計概要:新しい UI、速度と信頼性、ウェブ、モバイル、CLI 全体で動作" width="1602" height="1610" data-path="images/whats-new/web-redesign.jpeg" />

89 </Frame>

90 

91 <a className="digest-feature-link" href="/ja/docs/claude-code-on-the-web">ウェブ上の Claude Code</a>

92</div>

93 

94<div className="digest-wins">

95 <p className="digest-wins-title">その他の改善</p>

96 

97 <div className="digest-wins-grid">

98 <div><a href="/ja/docs/interactive-mode#vim-editor-mode">Vim ビジュアルモード</a>:プロンプト入力で文字選択は <code>v</code>、行選択は <code>V</code> を押して、オペレータとビジュアルフィードバック付き</div>

99 <div>フック は <a href="/ja/docs/hooks#mcp-tool-hook-fields"><code>type: "mcp\_tool"</code></a> 経由で MCP ツールを直接呼び出せるようになりました。これにより、フックはプロセスを生成せずに既に接続されているサーバーにアクセスできます</div>

100 <div><code>/cost</code> と <code>/stats</code> は <a href="/ja/docs/commands"><code>/usage</code></a> にマージされました。古い名前は関連するタブを開くタイピングショートカットとしてまだ機能します</div>

101 <div><code>/config</code> の変更(テーマ、エディタモード、詳細表示など)は <code>\~/.claude/settings.json</code> に永続化され、他の <a href="/ja/docs/settings">設定</a> と同じプロジェクト/ローカル/ポリシー優先度に従います</div>

102 <div><a href="/ja/docs/sub-agents#fork-the-current-conversation">フォークされたサブエージェント</a> は <code>CLAUDE\_CODE\_FORK\_SUBAGENT=1</code> で外部ビルドで有効にできます:フォークは最初からではなく、完全な会話コンテキストを継承します</div>

103 <div>Opus 4.6 と Sonnet 4.6 の Pro および Max サブスクライバーのデフォルト <a href="/ja/docs/model-config#adjust-effort-level">努力レベル</a> は <code>high</code> になりました(以前は <code>medium</code>)</div>

104 <div>ネイティブ macOS および Linux ビルドは <code>Glob</code> および <code>Grep</code> ツールを、Bash を通じて利用可能な組み込み <code>bfs</code> および <code>ugrep</code> に置き換えます。これにより、別のツールラウンドトリップなしでより高速な検索が可能になります</div>

105 <div><code>--from-pr</code> は github.com に加えて GitLab マージリクエスト、Bitbucket プルリクエスト、GitHub Enterprise PR URL を受け入れるようになりました</div>

106 <div>オートモード:<a href="/ja/docs/auto-mode-config"><code>autoMode.allow</code>、<code>soft\_deny</code>、または <code>environment</code></a> に <code>"\$defaults"</code> を含めて、置き換える代わりに組み込みリストと一緒にカスタムルールを追加します</div>

107 <div>新しい <a href="/ja/docs/plugin-dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> コマンドは、バージョン検証を使用してプラグインのリリース git タグを作成します</div>

108 <div>Opus 4.7 セッションはモデルのネイティブ 1M コンテキストウィンドウに対して計算されるようになり、膨らんだ <code>/context</code> パーセンテージと時期尚早な自動コンパクションを修正します</div>

109 <div><code>/resume</code> は大規模セッションで最大 67% 高速化され、再読み込み前に古い大規模セッションを要約することを提案するようになりました</div>

110 </div>

111</div>

112 

113[v2.1.114–v2.1.119 の完全なチェンジログ →](/ja/changelog#2-1-114)

zero-data-retention.md +66 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# ゼロデータ保持

6 

7> Claude for Enterprise での Claude Code のゼロデータ保持(ZDR)について、スコープ、無効化される機能、有効化のリクエスト方法を学びます。

8 

9ゼロデータ保持(ZDR)は、Claude for Enterprise を通じて使用される Claude Code で利用可能です。ZDR が有効になると、Claude Code セッション中に生成されたプロンプトとモデル応答はリアルタイムで処理され、法令遵守またはミスユース対策が必要な場合を除き、応答が返された後は Anthropic によって保存されません。

10 

11Claude for Enterprise 上の ZDR により、エンタープライズカスタマーは Claude Code をゼロデータ保持で使用し、管理機能にアクセスできます:

12 

13* ユーザーごとのコスト管理

14* [Analytics](/ja/analytics) ダッシュボード

15* [Server-managed settings](/ja/server-managed-settings)

16* 監査ログ

17 

18Claude for Enterprise 上の Claude Code の ZDR は、Anthropic の直接プラットフォームにのみ適用されます。Amazon Bedrock、Google Vertex AI、または Microsoft Foundry 上の Claude デプロイメントについては、これらのプラットフォームのデータ保持ポリシーを参照してください。

19 

20## ZDR スコープ

21 

22ZDR は Claude for Enterprise 上の Claude Code 推論をカバーします。

23 

24<Warning>

25 ZDR は組織ごとに有効化されます。新しい各組織では、Anthropic アカウントチームによって ZDR を個別に有効化する必要があります。ZDR は同じアカウントの下に作成された新しい組織に自動的に適用されません。新しい組織に対して ZDR を有効化するには、アカウントチームに連絡してください。

26</Warning>

27 

28### ZDR がカバーする内容

29 

30ZDR は Claude for Enterprise 上の Claude Code を通じて行われたモデル推論呼び出しをカバーします。ターミナルで Claude Code を使用する場合、送信するプロンプトと Claude が生成する応答は Anthropic によって保持されません。これは、どの Claude モデルが使用されているかに関係なく適用されます。

31 

32### ZDR がカバーしない内容

33 

34ZDR は、ZDR が有効化されている組織であっても、以下には適用されません。これらの機能は[標準データ保持ポリシー](/ja/data-usage#data-retention)に従います:

35 

36| 機能 | 詳細 |

37| --------------------- | --------------------------------------------------------------------------------------------------------------------------------- |

38| claude.ai 上のチャット | Claude for Enterprise ウェブインターフェース経由のチャット会話は ZDR でカバーされません。 |

39| Cowork | Cowork セッションは ZDR でカバーされません。 |

40| Claude Code Analytics | プロンプトまたはモデル応答を保存しませんが、アカウントメールや使用統計などの生産性メタデータを収集します。貢献メトリクスは ZDR 組織では利用できません。[analytics ダッシュボード](/ja/analytics)は使用メトリクスのみを表示します。 |

41| ユーザーとシート管理 | アカウントメールやシート割り当てなどの管理データは標準ポリシーの下で保持されます。 |

42| サードパーティ統合 | サードパーティツール、MCP servers、またはその他の外部統合によって処理されたデータは ZDR でカバーされません。これらのサービスのデータ処理慣行を独立して確認してください。 |

43 

44## ZDR の下で無効化される機能

45 

46Claude for Enterprise 上の Claude Code 組織に対して ZDR が有効化されると、プロンプトまたは完了を保存する必要がある特定の機能はバックエンドレベルで自動的に無効化されます:

47 

48| 機能 | 理由 |

49| ------------------------------------------------------ | --------------------------------------- |

50| [Web 上の Claude Code](/ja/claude-code-on-the-web) | 会話履歴のサーバー側ストレージが必要です。 |

51| Desktop アプリからの[リモートセッション](/ja/desktop#remote-sessions) | プロンプトと完了を含む永続的なセッションデータが必要です。 |

52| フィードバック送信(`/feedback`) | フィードバックを送信すると、会話データが Anthropic に送信されます。 |

53 

54これらの機能はクライアント側の表示に関係なく、バックエンドでブロックされます。Claude Code ターミナルの起動中に無効化された機能が表示される場合、それを使用しようとするとエラーが返され、組織のポリシーがそのアクションを許可していないことが示されます。

55 

56プロンプトまたは完了を保存する必要がある場合、将来の機能も無効化される可能性があります。

57 

58## ポリシー違反のためのデータ保持

59 

60ZDR が有効化されている場合でも、法律で必要な場合または Usage Policy 違反に対処するために、Anthropic はデータを保持する場合があります。セッションがポリシー違反でフラグが立てられた場合、Anthropic は関連する入力と出力を最大 2 年間保持する場合があり、これは Anthropic の標準 ZDR ポリシーと一致しています。

61 

62## ZDR をリクエストする

63 

64Claude for Enterprise 上の Claude Code に対して ZDR をリクエストするには、[営業に連絡](https://www.anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=zero_data_retention_request)するか、Anthropic アカウントチームに連絡してください。アカウントチームが内部でリクエストを送信し、Anthropic は適格性を確認した後、組織に対して ZDR を確認して有効化します。すべての有効化アクションは監査ログに記録されます。

65 

66現在、従量課金制 API キーを介して Claude Code に対して ZDR を使用している場合、Claude for Enterprise に移行して、Claude Code の ZDR を維持しながら管理機能にアクセスできます。移行を調整するには、アカウントチームに連絡してください。