Claude Code の既存の hooks もイベントで実行されます。設定ファイルで構成するシェルコマンド、HTTP リクエスト、またはプロンプトとして実行されます。mod のハンドラは Claude Code 内で実行される関数です。Claude Code は両方の種類の hooks を呼び出します。このページでは、「hook」は mod のハンドラを意味し、設定ファイルの種類は「settings hook」です。
mod でできること
Settings hooks、skills、status lines、MCP サーバーは Claude Code の外で動作します。各々はスクリプトを実行するか、Claude にテキストまたはツールを提供します。mod は Claude Code 内で実行されるため、それらができないことができます。- 使用できるインターフェイスを描画する: トランスクリプトの横のペイン、またはプロンプトの上のバンド。タブ、ボタン、テキストフィールドを含みます。インターフェイスに描画する を参照してください。
- Claude Code 独自のインターフェイスを再描画する: ツール呼び出しの行、スピナー、Claude が質問をするダイアログなど、Claude Code が自身で描画する部分を置き換えたり、スタイルを変更したりします。Claude Code が既に描画しているものを変更する を参照してください。
- ツール呼び出しまたはリクエストに介入する: たとえば、ツール呼び出しを保持しながらユーザーに質問したり、ツールを実行せずに回答したり、1 つのリクエストを別のモデルに送信したりします。ツール呼び出しをガードまたは変更する と ターンをフォローする を参照してください。
- コマンドで独自のコードを実行する: Claude ターンなしで、Claude が作業中でも、すぐに関数を実行する
/command。コマンドまたはツールを追加する を参照してください。 - hooks 間でデータを共有する: mod の hooks はそのファイル内の変数を共有するため、1 つの hook が記録したものを別の hook が表示できます。たとえば、1 つの hook がツール呼び出しをカウントしながら別の hook がスピナーの横にカウントを表示したり、1 つが各リクエストのトークン使用量を読み取りながら別がペインでチャートしたりできます。イベントに反応する を参照してください。
claude -p、クラウドセッションなど、他の場所での動作を理解するには、mod が実行される場所 を参照してください。settings hook、skill、または MCP サーバーが既に必要なことを実行している場合は、mod を作成する前に それらを比較してください。組織の mod を管理するには、組織の mod を管理する を参照してください。
mod を取得する
次の 3 つの方法のいずれかで mod を開始できます。- 既に持っているものを使用する: Claude Code 独自の機能の一部は mod です。たとえば
/diff。Claude Code に組み込まれた Mod を参照してください。 - 作成する: Claude Code セッションで必要なものを説明すると、Claude が mod を作成します。Claude に mod を依頼する を参照してください。mod のコードの仕組みを学ぶには、自分で作成してください。
- インストールする: mod をインストールまたは更新する を参照してください。
mod をインストールまたは更新する
Mod はマーケットプレイスからプラグインとしてインストールされます。プラグインの名前、@、マーケットプレイスの名前を指定します。これらの例は、your-org という名前のマーケットプレイスから token-chart という名前のプラグインをインストールします。
- Claude Code セッションで
/plugin install token-chart@your-orgを実行します。 - シェルで
claude plugin install token-chart@your-orgを実行します。
/reload-plugins を実行してロードします。それ以外の場合は、Claude Code を次回起動するときにロードされます。
mod を信頼するかどうかを判断する
mod は Claude Code 内であなたの権限で実行されるコードです。mod は信頼できる作成者とマーケットプレイスからのみインストールしてください。mod が到達できる範囲
mod はあなたの権限で実行されるため、インストールする前に、それが何にアクセスできるかを知っておいてください。読み込まれると、mod は以下のことができます。- あなたのマシンであなたとして動作する: ユーザーアカウントがアクセスできる場所ならどこでもファイルを読み書きし、プログラムを起動し、ネットワークリクエストを行う
- あなたのシークレットを読む: 環境変数と設定ファイル(どちらかに保存している API キーを含む)
- あなたのセッションを見る: 送信するすべてのプロンプトと Claude が行うすべてのツール呼び出し
- あなたのセッションを変更する: プロンプトまたはツール呼び出しを書き直し、あなたが入力したかのようにプロンプトを送信し、別のセッションにメッセージを送信する
- あなたに尋ねずに動作する: あなたが尋ねられる前にツール呼び出しを承認する
- あなたの使用量を消費する: あなたのプランまたは API キーでモデルを呼び出す
ask ルールがプロンプトを表示するもの、または独自の PreToolUse フックがブロックしたものを承認できます。フックで権限を拡張するには、そのような mod が承認できるもの(deny ルールが拒否する呼び出しを承認できる場合を含む)が記載されています。
mod は Claude Code のインターフェイスの大部分を再スタイル化できますが、権限プロンプトはできません。プロンプトが表示する内容を変更することはできません。
mod をインストールする前に、mod が何をするかをリストアップする
mod をインストールする前に、どのイベントをフックし、ファイルを読むやネットワークリクエストを行うなど Claude Code に何をするよう要求するかをリストアップできます。実行することなく確認できます。まず、プラグインのファイルを取得します。たとえば、リポジトリをクローンします。次に、シェルで、プラグインのディレクトリに対してclaude plugin validate を実行します。
hooks: と calls: の行は、mod が処理するイベントと Claude Code に要求する内容をリストアップします。mod が何をできるかを確認するには、出力と確認すべき呼び出しが表示されます。
mod をオンまたはオフにする
Mod には Claude Code v2.1.287 以降が必要で、デフォルトではオンです。シェルでclaude --version を実行して確認し、古い場合は Claude Code を更新してください。
Mod をオフにするには、停止する数と期間を選択します。それらをオンに戻すには、同じ変更を元に戻します。
- 1 つの mod: Installed タブの
/pluginからそのプラグインを無効化またはアンインストールする - すべてのインストール済み mod、1 つのセッション:
--safe-modeで Claude Code を開始します。これは他のカスタマイズも除外します。 - インストールしたすべての mod、すべてのセッション:
~/.claude/settings.jsonで"disableAllHooks": trueを設定します。Settings hooks とカスタムステータスラインも停止します。組織が管理するものは実行し続けます。
早期アクセス中に
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS を設定した場合は、削除してください。Claude Code v2.1.287 以降はそれを無視するため、0 に設定しても mod をオフに保ちません。セッションがロードした mod を確認する
ターミナルセッションがロードした mod を確認するには、Claude Code プロンプトで/plugin を実行します。タブの下の薄い行はカウントと名前を示します。たとえば 1 mod active · first-mod。インストールした mod がそこに名前が付いていない場合は、mod が何もしない理由を確認する を参照してください。
mod の仕組み
Mod は プラグイン であり、hooks と呼ばれるイベントハンドラを登録するコードを持っています。Claude Code はイベント(Claude がツールを呼び出すときやスピナーが描画されるときなど)が発生したときに hook を実行します。小さな mod には 3 つのファイルがあります。plugin.json: プラグインの マニフェストhooks.json: コードファイルを指すregister.js: コード。hooks モジュールと呼ばれます。Claude Code にどのイベントで関数を実行するかを指示します。
register.js です。Claude が実行するツール呼び出しをカウントし、Claude が作業中にスピナーの横にカウントを表示します。Thinking · tool calls: 3… のように。
hooks/register.js
calls 変数を使用します。
tool.callhook は Claude がツールを使用しようとするたびに実行されます。callsに 1 を追加し、Claude Code にインターフェイスを再度描画するよう要求し、ツールを通常通り実行させます。ui.renderhook は Claude Code がスピナーを描画するたびに実行されます。Claude Code 独自のスピナーを保持し、単語の後にカウントを追加します。
Thinking · tool calls: 1… を読み、次に 2…、次に 3… を読みます。
hook がイベントで何ができるか
Claude Code は hook を実行してからイベントに作用するため、hook は次に何が起こるかを決定します。3 つの選択肢があります。- 観察: 何が起こっているかに注意し、例の
tool.callhook のように変更されずに続行させる - 書き直す: イベントを変更してから続行する。
ui.renderhook がスピナーにカウントを追加するとき - 回答: イベント自体を処理し、通常の動作が実行されないようにする。たとえば、コマンドを拒否する
mod が実行される場所
Mod の hooks はプラグインをロードするあらゆる種類のセッションで実行されます。描画はより狭いです。ターミナルと Desktop アプリのみが mod のペイン、バンド、置き換えられた行を表示します。このテーブルは Claude Code を実行する可能性のある各場所をリストしています。
描画できる mod は、実行しているアプリを確認し、何も描画されない場所でトランスクリプトの行またはコマンドのテキスト返信にフォールバックできます。
組織の mod を制御する
管理者は 管理設定 を通じて mod が実行されるかどうかと、どの mod が実行されるかを決定します。組織の mod を管理する はデフォルトで何が起こるか、mod をレビューする方法、独自の mod でポリシーを実施する方法をカバーしています。Mod、settings hooks、skills、MCP サーバーを比較する
Mod、settings hooks、skills、MCP サーバーは重複しています。このテーブルは各々が何であり、いつそれを選ぶかを示しています。
他のそれぞれには独自のページがあります。Hooks、Skills、MCP。プラグインはすべて 4 つを保持できるため、mod は skill と MCP サーバーと同じプラグインで出荷できます。
Claude Code に組み込まれた Mod
Claude Code 独自の機能の一部は mod です。セッションが持つものを確認するには、Claude Code プロンプトで/plugin を実行し、Installed タブに移動します。これは Built-in の下にリストしています。組み込み mod を更新またはアンインストールすることはできず、テーブルの最後の列は各々をオフにする方法を示しています。mods active 行 は組み込み mod を除外しています。
このテーブルは /plugin が表示する名前で各エントリをリストしています。
インストール済み mod を停止する settings と flags。
disableAllHooks、--bare、--safe-mode は組み込み mod を停止しません。
組み込み mod のソースを読む
これらの mod のソースは Claude Code リポジトリのmods ディレクトリ で公開されています。各々は hooks モジュールとテストを含む完全なプラグインです。
diff:/diffペイン。キーボードアクションにバインドされたボタンとスクロール。mod が自身で処理agents-md:AGENTS.mdをプロジェクト指示としてロード。userConfigオプション付きsec-default: デフォルトで何が起こるかを知る で説明されているガード。ポリシーを実施する mod のモデルtelemetry: 他の mod が呼び出せるメソッドを追加し、それらの型を出荷
次のステップ
- Mod を作成する: ツール呼び出しをカウントし、スピナーの横にカウントを表示し、コマンドを追加するものを構築し、編集とリロードループを学ぶ
- インターフェイスに描画する: ペイン、プロンプトの上のバンド、ボタン、テキストフィールド、状態
- イベントに反応する: ツール呼び出し、プロンプト、ターン、mod が実行される順序
- mods API を使用する: コマンド、ツール、モデル呼び出し、タイマー、ファイル
- Mod をテストする: セッションなしで実行される自動テスト
- Mod をトラブルシューティングする: mod が何もしない理由とデバッグログ
- 組織の mod を管理する: デフォルト、管理設定、mod のレビュー、ポリシー mod
- Mods リファレンス: すべてのイベント、メソッド、要素、制限