SpyBara
Go Premium

plugins/mods/overview.md 2026-09-30 23:00 UTC to 2026-10-01 21:59 UTC

This page contains 269 additions and 0 deletions.

2026
Thu 1 23:02

Mods の概要

mod を使用して Claude Code にペイン、コマンド、ツール呼び出しルールを追加します。mod でできることや、mod の作成方法、インストール方法、mod が実行される場所を確認してください。

mod は Claude Code の外観と動作を変更する プラグイン です。JavaScript または TypeScript のイベントハンドラで構成されています。Claude Code はイベント(ツール呼び出し、送信されたプロンプト、インターフェイスの一部が描画されるなど)が発生したときにハンドラを呼び出し、ハンドラはイベントを監視したり、変更したり、引き継いだりできます。mod を使用して、各リクエスト後のコンテキストの満杯度をチャートするペインなど、Claude Code に独自の機能を追加します。mod のファイルと完全な例については、mod の仕組み を参照してください。

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 はマーケットプレイスからプラグインとしてインストールされます。プラグインの名前、@、マーケットプレイスの名前を指定します。これらの例は、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 を実行します。

claude plugin validate ./some-mod

出力の 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 がロードできるかどうかを確認する を参照してください。

セッションがロードした mod を確認する

ターミナルセッションがロードした mod を確認するには、Claude Code プロンプトで /plugin を実行します。タブの下の薄い行はカウントと名前を示します。たとえば 1 mod active · first-mod。インストールした mod がそこに名前が付いていない場合は、mod が何もしない理由を確認する を参照してください。

mod の仕組み

Mod は プラグイン であり、hooks と呼ばれるイベントハンドラを登録するコードを持っています。Claude Code はイベント(Claude がツールを呼び出すときやスピナーが描画されるときなど)が発生したときに hook を実行します。小さな mod には 3 つのファイルがあります。

first-mod/
├── .claude-plugin/
│   └── plugin.json
└── hooks/
    ├── hooks.json
    └── register.js

これは完全な register.js です。Claude が実行するツール呼び出しをカウントし、Claude が作業中にスピナーの横にカウントを表示します。Thinking · tool calls: 3… のように。

// 以下の 2 つの hooks で共有されるカウント
let calls = 0

// Claude Code は mod がロードされるときにこれを 1 回呼び出す
export function register(on) {
  // Claude がツールを使用しようとするたびに実行される
  on('tool.call', async ($, e, next) => {
    calls += 1
    // Claude Code にインターフェイスを再度描画するよう要求し、新しいカウントが表示されるようにする
    $.ui.invalidate('ui.render')
    // ツールを通常通り実行させる
    return next(e)
  })

  // Claude Code がスピナーを描画するたびに実行される
  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    // Claude Code のスピナーを保持し、単語の後にカウントを追加する
    return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
  })
}

ファイルは 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… を読みます。