Claude Code の Mod(モッド)は、Claude Code そのものの見た目と動きを JavaScript / TypeScript で変えるための拡張です。仕組みの上ではプラグインの一種で、Claude Code の中で動く関数(イベントハンドラ)を持っています。ツールの呼び出し、送信したプロンプト、画面の描画といった出来事が起きると、Claude Code がその関数を呼び、関数は出来事を見るだけでも、書き換えても、代わりに答えても構いません。
この記事では、Mod の全体像を 10 分ほどで掴めるように整理します。細かい手順は、各節から別の記事へ案内します。内容は Anthropic の公式ドキュメント(Mods の概要ページ)と照合してあります。
先に結論
- Mod は「イベントで呼ばれる JavaScript / TypeScript の関数」を持つプラグインです。専用の言語やビルド作業は要りません。
- Claude Code の中で動くので、画面にペインや帯を描く、ツール呼び出しを止める、
/コマンドを足す、といった「外からは届かないこと」ができます。 - Mod はあなたの権限で動き、サンドボックスもありません。ファイルの読み書き、プログラムの起動、通信ができます。入れる相手は選んでください。
- 必要なバージョンは、ターミナルの Claude Code が v2.1.287 以降、デスクトップアプリは同梱版が v2.1.286 以降です。
- 止めたいときは、
/pluginで個別に無効にするか、--safe-modeで起動します。
Mod は何でできているか
小さな Mod は 3 つのファイルでできています。Mod は専用のものではなく、普通のプラグインの形をしているので、入れ方も配り方もプラグインと同じです。
first-mod/
├── .claude-plugin/
│ └── plugin.json
└── hooks/
├── hooks.json
└── register.jsplugin.json:プラグインの名前やバージョンを書く説明ファイルです。hooks.json:コードのファイルがどこにあるかをmodulesで指します。このmodulesがあることが、そのプラグインを Mod にします。register.js:本体のコードです。registerという関数を書き出し(export)、その中で「どのイベントでどの関数を呼ぶか」を登録します。
登録した関数は「フック」と呼ばれます。Claude Code は、イベントが起きるたびに、そのフックを先に呼びます。フックは受け取ったイベントを見るだけで通すこともできますし、内容を書き換えて通すことも、自分で答えて通さないこともできます。実際に動く最小の例は 初めての Mod の作り方 にあります。
できること
公式ドキュメントは、Mod にしかできないこととして次の 5 つを挙げています。
- 使える画面を描く:トランスクリプトの横のペイン、プロンプトの上の帯に、タブ、ボタン、入力欄を置けます。
- Claude Code が描く画面を作り替える:ツール呼び出しの行、スピナー、Claude が質問するときのダイアログなどを、置き換えたり装飾したりできます。
- ツール呼び出しやリクエストに割り込む:ユーザーに確認するまで呼び出しを止める、実行せずに答える、別のモデルにリクエストを送る、といったことができます。
- 独自のコマンドを足す:
/コマンドを入力すると、Claude を介さずにすぐ関数が動きます。登録のときにimmediate: trueを付ければ、Claude が作業している最中でも動かせます。 - フック同士で情報を共有する:同じファイルの変数を共有するので、片方で数えた値を、もう片方で画面に出せます。
たとえば「ツールを何回使ったかをスピナーの横に出す」「危険な Bash コマンドを止めて理由を Claude に返す」「現在の Git ブランチをプロンプトの下に出す」といったものが、数十行で書けます。
できないこと・注意点
- 権限確認のプロンプトは変えられません。Mod は画面の多くを作り替えられますが、許可を求めるダイアログの表示内容までは書き換えられません。
- 描画できる場所は限られます。ペインや帯が出るのは、ターミナルとデスクトップアプリだけです。
- イベントやメソッドはバージョンで変わります。Mod を書くときは、Claude Code が Mod のフォルダに書き出す型定義ファイルを、ドキュメントより優先して見てください(作り方の記事で触れます)。
どこで動くか
フックが動く場所と、描いたものが表示される場所は一致しません。公式ドキュメントの整理は次のとおりです。
| 使う場所 | フックは動く | 描いたものは出る |
|---|---|---|
ターミナルの claude(エディタ内蔵ターミナル、JetBrains のプラグインを含む) | 動く | 出る |
| デスクトップアプリの Code タブ(WSL のセッションを除く) | 動く | 出る(ターミナル専用の要素を除く) |
| デスクトップアプリの WSL セッション | 動かない(プラグインが使えないため) | 出ない |
| VS Code 拡張のチャットパネル | 動く | 出ない |
claude -p と Agent SDK | 動く | 出ない |
| claude.ai やモバイルからの Remote Control | 手元のマシンのセッションで動く | 手元のマシンのターミナルに出る |
| クラウドセッション | プラグインがクラウドに引き継がれる場合は動く | 出ない |
表示が出ない場所でも、コマンドの文字による返事やトランスクリプトへの 1 行は使えます。画面に描く Mod は、自分がどこで動いているかを調べて、描けない場所では文字に切り替えるように書けます。詳しくは デスクトップとターミナルの違い で整理します。
最初の一歩
Mod を手に入れる方法は 3 つあります。
- Claude に頼んで作ってもらう:Claude Code に「現在の Git ブランチをプロンプトの上に出す Mod を作って」のように頼みます。Claude は
plugin-authoringというスキルを使って書きます。保存した最初のファイルのところで、ホットリロードを有効にするかどうかを聞かれます。 - 自分で書く:JavaScript か TypeScript のファイルを置くだけで、Node.js もバンドラーも不要です。手順は 初めての Mod の作り方 にまとめました。
- 人が作った Mod を入れる:
/plugin install 名前@マーケットプレイス名で入れます。入れ方は Mod の入れ方 で説明します。
試すだけなら、Anthropic が公開しているサンプルが手軽です。claude-code-playground リポジトリの claude-code/mods に、コンテキストウィンドウの予報を出す token-weather、危険なシェルコマンドを止める blast-radius、直前の編集を順に再生する replay-theater があります。どれもサポートなしの参考実装なので、自分の責任で試してください。
入れる前に知っておくこと
Mod は、入れた瞬間からあなたの権限で動くコードです。公式ドキュメントは、Mod にできることを次のように整理しています。
- あなたとしてマシン上で動く(ファイルの読み書き、プログラムの起動、通信)
- 環境変数や設定ファイル、API キーを読める
- 送ったプロンプトと Claude のツール呼び出しをすべて見られる
- プロンプトやツール呼び出しを書き換えられ、確認前に許可することもできる
- あなたのプランや API キーでモデルを呼べる(使用量を消費する)
サンドボックスを有効にしていても、守られるのは Claude が実行する Bash コマンドだけです。Mod が起動したプロセスはその外で動きます。入れる前に、Mod が何をするコードなのかを実行せずに確かめる方法があります。具体的な手順は 他人の Mod を入れる前の安全チェック にまとめました。
動いているか確認する
セッションの中で /plugin を実行すると、タブの下に 1 mod active · first-mod のような暗い 1 行が出ます。入れたはずの Mod の名前がそこになければ、Mod は読み込まれていません。原因の探し方は Mod が動かないときの確認手順 をご覧ください。
なお、Claude Code 自身の機能にも Mod として作られているものがあります。/plugin の Installed タブの Built-in に並びます。たとえば /diff のペインや、AGENTS.md を読み込む機能がそうです。これらは更新も削除もできません。
止めたいとき
- 1 つだけ止める:
/pluginの Installed タブから、そのプラグインを無効にするか削除します。 - このセッションだけ全部止める:
claude --safe-modeで起動します。ほかのカスタマイズも一緒に無効になります。 - いつでも全部止める:
~/.claude/settings.jsonに"disableAllHooks": trueを書きます。設定ファイルのフックと独自のステータスラインも止まります。組織が管理しているものは動き続けます。
組織の管理者は、ユーザーが入れた Mod を読み込ませない設定もできます。その設定は 組織で Mods を管理する で扱います。
まとめ
Mod は、Claude Code の画面と動作に踏み込める代わりに、権限の大きい拡張です。便利さと引き換えに、入れる前の確認が欠かせません。仕組みを知るには 用語集、使い分けを知るには Mod・フック・スキル・MCP の違い が次の一歩になります。公式の原文は 日本語版の概要ページ にあります。