Skip to main content
mod は Claude Code の外観と動作を変更する プラグイン です。JavaScript または TypeScript のイベントハンドラで構成されています。Claude Code はイベント(ツール呼び出し、送信されたプロンプト、インターフェイスの一部が描画されるなど)が発生したときにハンドラを呼び出し、ハンドラはイベントを監視したり、変更したり、引き継いだりできます。mod を使用して、各リクエスト後のコンテキストの満杯度をチャートするペインなど、Claude Code に独自の機能を追加します。mod のファイルと完全な例については、mod の仕組み を参照してください。
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 つが各リクエストのトークン使用量を読み取りながら別がペインでチャートしたりできます。イベントに反応する を参照してください。
Mod は Claude Code CLI と Claude Desktop アプリの Code タブで動作します。VS Code 拡張機能、claude -p、クラウドセッションなど、他の場所での動作を理解するには、mod が実行される場所 を参照してください。settings hook、skill、または MCP サーバーが既に必要なことを実行している場合は、mod を作成する前に それらを比較してください。組織の mod を管理するには、組織の mod を管理する を参照してください。

mod を取得する

次の 3 つの方法のいずれかで mod を開始できます。

mod をインストールまたは更新する

Mod はあなたの権限で実行されるコードです。ファイルの読み取りと書き込み、プロセスの開始、ネットワークリクエストの実行ができます。信頼できる著者とマーケットプレイスからのみ mod をインストールしてください。mod を信頼するかどうかを決定する を参照してください。
Mod はマーケットプレイスからプラグインとしてインストールされます。プラグインの名前、@、マーケットプレイスの名前を指定します。これらの例は、your-org という名前のマーケットプレイスから token-chart という名前のプラグインをインストールします。
  • Claude Code セッションで /plugin install token-chart@your-org を実行します。
  • シェルで claude plugin install token-chart@your-org を実行します。
プラグインをインストールする はマーケットプレイス、スコープ、VS Code 拡張機能と Desktop アプリ、および プラグインを更新し続ける をカバーしており、すべてが mod を含むプラグインに変更なしで適用されます。 セッションが開いている間にシェルから mod をインストールまたは更新する場合は、そのセッションで /reload-plugins を実行してロードします。それ以外の場合は、Claude Code を次回起動するときにロードされます。

mod を信頼するかどうかを判断する

mod は Claude Code 内であなたの権限で実行されるコードです。mod は信頼できる作成者とマーケットプレイスからのみインストールしてください。

mod が到達できる範囲

mod はあなたの権限で実行されるため、インストールする前に、それが何にアクセスできるかを知っておいてください。読み込まれると、mod は以下のことができます。
  • あなたのマシンであなたとして動作する: ユーザーアカウントがアクセスできる場所ならどこでもファイルを読み書きし、プログラムを起動し、ネットワークリクエストを行う
  • あなたのシークレットを読む: 環境変数と設定ファイル(どちらかに保存している API キーを含む)
  • あなたのセッションを見る: 送信するすべてのプロンプトと Claude が行うすべてのツール呼び出し
  • あなたのセッションを変更する: プロンプトまたはツール呼び出しを書き直し、あなたが入力したかのようにプロンプトを送信し、別のセッションにメッセージを送信する
  • あなたに尋ねずに動作する: あなたが尋ねられる前にツール呼び出しを承認する
  • あなたの使用量を消費する: あなたのプランまたは API キーでモデルを呼び出す
ツール呼び出しを承認する mod は、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 を使用する場合、管理者は、どの mod がロードされるかを制限することもできます。管理者は ユーザーがインストールした mod がロードされるのを停止する から開始します。 Mod があなたのためにロードできるかどうかを確認するには、mod がロードできるかどうかを確認する を参照してください。
早期アクセス中に 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 つのファイルがあります。
これは完全な register.js です。Claude が実行するツール呼び出しをカウントし、Claude が作業中にスピナーの横にカウントを表示します。Thinking · tool calls: 3… のように。
hooks/register.js
ファイルは 2 つの hooks を登録し、両方とも上部の calls 変数を使用します。
  • tool.call hook は Claude がツールを使用しようとするたびに実行されます。calls に 1 を追加し、Claude Code にインターフェイスを再度描画するよう要求し、ツールを通常通り実行させます。
  • ui.render hook は Claude Code がスピナーを描画するたびに実行されます。Claude Code 独自のスピナーを保持し、単語の後にカウントを追加します。
この記録は mod が動作しているところを示しています。プロンプトボックスの上のスピナー行を見てください。Claude がディレクトリをリストし、2 つのファイルを読む間、Thinking · tool calls: 1… を読み、次に 2…、次に 3… を読みます。

hook がイベントで何ができるか

Claude Code は hook を実行してからイベントに作用するため、hook は次に何が起こるかを決定します。3 つの選択肢があります。
  • 観察: 何が起こっているかに注意し、例の tool.call hook のように変更されずに続行させる
  • 書き直す: イベントを変更してから続行する。ui.render hook がスピナーにカウントを追加するとき
  • 回答: イベント自体を処理し、通常の動作が実行されないようにする。たとえば、コマンドを拒否する
独自のコード外で何かを実行するには、描画、コマンド追加、モデル呼び出し、ファイル読み取り、プロセス開始、ネットワークリクエスト実行など、hook は mods API を呼び出します。Hook にはこれらのことを行う他の方法がないため、Claude Code は mod をインストールする前にそれが何をするかをリストできます。 各選択肢の背後にあるコードについては、イベントに反応する を参照してください。Hook が呼び出せるものについては、mods API を使用する を参照してください。

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 が呼び出せるメソッドを追加し、それらの型を出荷

次のステップ