Claude Code Mods 入門
「こう動いてほしい」と頼むだけで、Claude Code が自分専用の道具に変わる。
仕組み・作り方・アイデア集と、安全に使うためのチェックポイントまで。
📋 目次
🧩 Claude Code Mods とは?
「みんな同じ Claude Code」から「自分だけの Claude Code」へ。
ゲームの「MOD」と同じ発想です
ゲームの世界では、ファンが作った MOD(改造データ)を入れて、見た目や遊び方を自分好みに変える文化があります。Claude Code Mods はこれをAIのコーディング道具に持ち込んだものです。しかも自分でコードを書く必要はなく、Claude に「こういう表示がほしい」「この操作は止めてほしい」と頼むだけで、Claude 自身が Mod を書いてくれます。
2026年10月初め、Claude Code の開発を率いる Boris Cherny 氏が X で「Mods are absolutely insane」と紹介し、大きな反響を呼びました。投稿の趣旨は次の3点です。
プロンプトで作れる
Claude の動き方や見た目を、頼むだけで自分好みに変えられます。プログラミングの知識がなくても始められるのが最大の特徴です。
人それぞれの使い方
仕事の進め方は人によって違うので、全員が同じ画面・同じ動作である必要はないという考え方です。
プラグインで共有できる
作った Mod はプラグインとして配布でき、ほかの人も試せます。良い Mod がコミュニティで広まる流れが期待されています。
同じ時期に、Anthropic の開発者向けアカウント(@ClaudeDevs)は公式プラグイン 「You should Know」 も発表しました。Claude の出力から、見落としやすい重要な情報を拾い出して知らせてくれるプラグインです。次のコマンドで有効にできます。
/plugin enable cc-plugin-you-should-know@builtin
📈 X での反響(2026年10月2〜3日の投稿・筆者集計)
| 投稿 | 内容 | いいね | 反応の大きさ |
|---|---|---|---|
| @ClaudeDevs | 公式プラグイン「You should Know」を発表 | 約1.17万 | |
| @bcherny | 「Mods are absolutely insane」と Mods を紹介 | 約5,100 | |
| @lydiahallie | 「もう Mod 作った?」と呼びかけ(返信243件) | 約560 |
※ 反応の大きさは最大の投稿を100とした相対値。いいね数は2026年10月3日時点。最後の投稿はいいねこそ少ないものの、返信欄が自作 Mod の見せ合いになり、反応が濃い投稿でした。
日本語の情報はまだほとんどありません
話題は英語圏が中心で、日本語で詳しく解説した情報は執筆時点ではほぼ見当たりません。早めに触っておくと、チームや社内で一歩先に活用できます。
⚙️ Mods が動く仕組み
キーワードは「イベント」「フック」「バトンリレー」。
Mod は「出来事に割り込む小さなプログラム」
Claude Code の中では、さまざまな出来事(イベント)が起きています。「ユーザーがプロンプトを送った」「Claude がファイルを編集しようとしている」「画面にこの部品を描こうとしている」などです。Mod はこうした出来事に フック(hook =引っかけ)を仕掛けておき、出来事が起きたときに処理を差し込みます。
ポイントはバトンリレーの形になっていることです。イベントが起きると、バトンが Mod から Mod へ順番に渡り、最後に Claude Code 本体の処理に届きます。それぞれの Mod は、受け取ったバトンを次の3通りのどれかで扱えます。
🔁 フックの「バトンリレー」(例:Claude がファイルを編集しようとしたとき)
➡️ そのまま渡す
- next(e) を呼ぶ
- 中身を見て記録するだけ、といった用途
✏️ 書き換えて渡す
- next({ …e, 変更 })
- コマンドの余分な空白を消す、など
✋ 自分で答える
- next を呼ばずに返す
- { deny: 理由 } で操作を止める
📁 Mod の中身はファイル3つ
Mod の正体は、Claude Code のプラグインです。最小構成は次の3ファイルだけで、どれも Claude が書いてくれます。
🗂️ 最小構成のフォルダ
本体の register.tsx は TypeScript(JavaScript の仲間)で書かれ、register(on) という関数を1つ持ちます。その中で on(イベント名, 条件, 処理) を並べるのが基本の形です。処理には ($, e, next) の3つが渡されます。
| 記号 | 意味 | たとえると |
|---|---|---|
| $ | Claude Code 本体を操作する窓口(画面表示・ファイル・時計・モデル呼び出しなど) | 道具箱 |
| e | いま起きたイベントの中身(どのツールで、どのファイルか、など) | 届いた伝票 |
| next | 次の Mod、そして本体へ処理を回す関数 | バトンを渡す手 |
🪝 主なイベント
| イベント名 | いつ起きる? | 主な使い道 |
|---|---|---|
session.start | セッション開始時 | スラッシュコマンドの登録、パネルを開く |
prompt.submit | プロンプト送信時 | 入力の書き換え、計測開始 |
tool.call | Claude がツール(編集・Bash など)を使うとき | 危険な操作を止める、ログを取る |
turn.complete | 1回の応答が終わったとき | 所要時間の通知、集計 |
ui.render | 画面の部品を描くとき | パネルや帯(バンド)を自作する |
command.run | 自作スラッシュコマンドの実行時 | コマンドへの応答 |
ターミナルでもデスクトップアプリでも動く
画面を描く Mod は、描画先(ターミナル・デスクトップ・VS Code・モバイル)に合わせた部品を Claude Code から受け取って組み立てます。1つの Mod が複数の画面に対応できる設計です。
🛠️ Mods の作り方(5ステップ)
基本は「頼む → 許可する → 試す」の繰り返しです。
🗣️ 作りたいものを Claude に伝える
「Mod を作って」と明示し、いつ(どのタイミングで)・何を・どこに表示するかを具体的に伝えます。
📝 Claude がファイルを書く
Claude が Mod 専用フォルダにプラグインのファイル一式を書き出します。自分でコードを書く必要はありません。
✅ 「ホットリロード」を許可する
最初のファイルが書かれると「Enable hot reloading for this session?」と確認が出ます。この許可はユーザー本人しか出せません。許可すると、Claude の応答が終わったタイミングで Mod が読み込まれます。
🔁 試して、直してもらう
表示や動きを確認し、「もっと短く」「色を変えて」と伝えます。修正はその応答が終わると自動で再読み込みされるので、再起動はいりません。
📦 チェックして、共有する
claude plugin validate <フォルダ> で問題がないか確認します。完成したらプラグインとして配布し、ほかの人にも使ってもらえます。
💬 頼み方の例
うまく頼むコツ
「いつ(応答が終わったとき/ファイル編集のとき)」「何を(秒数・回数・警告)」「どこに(入力欄の上/横のパネル/ステータス行/通知)」の3点をそろえると、一発で狙いどおりの Mod ができやすくなります。
👀 実際のコードはこんな感じ
読めなくても大丈夫ですが、雰囲気をつかむために、公式サンプルをもとにした短いコードを紹介します。1つ目は「.env の編集を止める」と「失敗したコマンドをステータス行に出す」Mod です。
hooks/register.tsimport type { Register } from 'claude-code' const PROTECTED = /(^|\/)\.env(\.|$)/ export const register: Register = on => { // 編集先が .env なら拒否、それ以外は次へ回す on('tool.call', { tool: 'Edit' }, ($, e, next) => PROTECTED.test(e.file_path) ? { deny: `${e.file_path} はここでは編集禁止です` } : next(e), ) // Bash を実行したあと、失敗していたらステータス行に表示 on('tool.call', { tool: 'Bash' }, async ($, e, next) => { const ran = await next({ ...e, command: e.command.trim() }) const failed = ran.deny === undefined && ran.isError === true $.ui.status(failed ? `failed: ${e.command.slice(0, 40)}` : undefined) return ran }) }
2つ目は「入力欄の上に、直前の応答の所要時間を出す」帯(バンド)の Mod の一部です。ui.render で画面部品を受け取り、Box や Text を組み合わせて描きます。
on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => { const turn = await read($, last) // 保存しておいた計測値を読む if (turn === null) return next(e) // まだ無ければ何も描かない const { Box, Text } = $.ui.resolve(e) // 描画先に合った部品を受け取る return ( <Box> <Text dimColor>Last turn: {turn.seconds}s, {turn.tools} tool calls</Text> </Box> ) })
Mods の仕組み(関数フック)はアーリーアクセスの扱いで、Claude Code のバージョンアップにあわせて API が変わることがあります。本記事のコードは執筆時点のものです。自分で書くより「Claude に作らせて、validate で確かめる」ほうが、最新の仕様に合わせやすく安全です。
🧰 覚えておくと便利なコマンド
| コマンド | 用途 |
|---|---|
claude plugin validate <フォルダ> | 読み込む前に、構成やコードの問題をチェックする |
claude --plugin-dir <フォルダ> | そのセッションだけ、手元のプラグインを読み込む |
claude plugin test <フォルダ> | プラグインに付けたテスト(*.test.ts)を実行する |
claude --debug | Mod がうまく動かないときに、理由をログで確認する |
/plugin enable <名前> | インストール済みのプラグインを有効にする |
💡 こんな Mod が作れる:アイデア集
「表示する」「止める」「自動化する」の3方向で考えると発想しやすくなります。
Mod でできることは、大きく分けて画面に出す・操作に割り込む・裏で動かすの3種類です。それぞれの表示場所と、作れるものの例を紹介します。
サイドパネル(Pane)
会話の横にパネルを開き、常に見ていたい情報を表示します。自作のスラッシュコマンドで開閉するのが定番です。
入力欄の上の帯(Band)
プロンプト入力欄のすぐ上に1行の情報を出します。ボタンを置くこともできます。
ステータス行・通知
画面下のステータス行に短い文字を出したり、トースト通知をポップアップさせたりできます。
操作のガード
Claude のツール操作を実行前に止めたり書き換えたりできます。チームのルールを仕組みにできます。
自作スラッシュコマンド
/○○ の形で、自分専用のコマンドを追加できます。結果は会話の中に表示されます。
タイマー・独自ツール
一定間隔で処理を動かしたり、Claude が呼べる独自ツールやサブエージェントの種類を追加したりもできます。
👩💻 個人開発者なら
- 作業時間の見える化 → 帯
- よく使う手順の短縮 → スラッシュコマンド
🏢 チーム・会社なら
- 禁止操作のルール化 → ガード
- 統一ルールの配布 → プラグイン共有
🎨 見た目にこだわるなら
- 自分好みの情報パネル → Pane
- 応答完了のお知らせ → トースト
🔍 Hooks・Skills・MCP との違い
似た拡張機能が多いので、役割の違いを整理します。
Claude Code には以前から、拡張の仕組みがいくつかありました。Mods はそれらを置き換えるものではなく、「Claude Code 本体の動きと画面そのものに手を入れる」ための新しい選択肢です。
📊 拡張機能の比較(スコアは筆者による目安)
| 項目 | 🧩 Mods | 🪝 設定の Hooks | 📘 Skills | 🔌 MCP |
|---|---|---|---|---|
| 正体 | TypeScript の関数フック(プラグイン) | settings.json に書くシェルコマンド | 手順や知識を書いた文書 | 外部ツールを提供するサーバー |
| 得意なこと | 画面の追加、操作の書き換え・拒否 | 決まったタイミングでスクリプトを実行 | Claude に「やり方」を教える | 外部サービスとのデータのやり取り |
| 画面のカスタマイズ | ||||
| 動作への介入 | ||||
| 始めやすさ |
※ スコアは執筆時点の筆者の評価です。Mods の「始めやすさ」は Claude に作らせる前提での評価です。
迷ったときの使い分け
Claude にやり方を覚えてほしいなら Skills、外のサービスとつなぎたいなら MCP、Claude Code 自体の見た目や動きを変えたいなら Mods です。なお、設定ファイルの Hooks のイベントも Mods から扱えるようになっています。
🔐 安全に使うための注意点
便利さの裏返しで、Mod は「Claude Code の中身に触れるプログラム」です。
Mod は「合鍵」を持ったプログラム
Mod は、あなたのプロンプト、Claude が使うツールの中身、会話の記録などを見たり書き換えたりできます。さらに、ファイルの読み書きやコマンドの実行も、Claude Code を通じて行えます。家にたとえると、合鍵を渡して自由に出入りしてもらうのと同じです。自分で作った Mod なら安心ですが、他人が配布している Mod を入れるときは、その作者を信頼できるかが大事になります。
⚠️ Mod で起こりうるリスク
| リスク | どういうこと? | 影響の大きさ |
|---|---|---|
| 悪意ある Mod | 配布された Mod が、プロンプトやコードの内容を外部に送ったり、Claude の操作をこっそり書き換えたりする | |
| ガードが黙って外れる | フックがエラーになるとそのフックは飛ばされ、処理は先へ進む。「止めるはずの操作」が止まらないことがある | |
| すり抜けやすい禁止リスト | 「この名前は禁止」という書き方は、シンボリックリンクや .. などの別の書き方ですり抜けられることがある |
|
| 仕様変更による不具合 | アーリーアクセスのため、アップデート後に Mod が動かなくなることがある |
※ 影響の大きさは筆者による目安です。
エラーが起きたフックは飛ばされ、処理はそのまま続きます。「.env の編集を止める」Mod を作っても、何かの拍子にエラーになれば、その間は止まりません。秘密情報を守るには、そもそも秘密ファイルを作業フォルダに置かない、権限設定(許可・拒否ルール)と組み合わせるなど、何重かの対策を組み合わせましょう。
ガードは「禁止リスト」より「許可リスト」で
公式の資料でも、ファイル名の書き方で禁止する方法は「ベストエフォート(できる範囲での対策)」とされています。より確実なのは、リンクなどをたどった実際の場所(実パス)を確認し、決めたフォルダの中だけを許可する方式です。Mod を作ってもらうときは「許可リスト方式で」と一言添えるとよいでしょう。
✅ 導入前のチェックリスト
作者を確認
信頼できる人・組織が配布しているか
中身を読む
読めなければ Claude に「何をしている?」と聞く
validate する
何のイベントに割り込むかを一覧で確認
外部送信を確認
通信やコマンド実行をしていないか
会社のルール
業務 PC では管理者の方針に従う
「ホットリロードの許可」は自分で判断する
Mod を読み込むかどうかの確認は、本人にしか答えられない作りになっています。自動承認の設定やほかのフックでは代わりに答えられません。身に覚えのない確認が出たときは、いったん「Not now(今はしない)」を選び、何が書かれたのかを確かめてから判断しましょう。
自作の Mod を共有するときは、コードに API キー・社内の URL・個人のパスやユーザー名が入っていないか確認しましょう。Claude に「共有用に、個人情報や秘密情報が入っていないかチェックして」と頼むのも有効です。
❓ よくある質問
初めて Mods に触れる人がつまずきやすいポイントをまとめました。
プログラミングができなくても使えますか?
使えます。Mod のコードは Claude が書くので、あなたの仕事は「何がほしいか」を言葉で伝えることです。ただし、他人に配る Mod や、操作を止めるガード系の Mod は、詳しい人に中身を見てもらうか、Claude に「このコードは何をしている?危ない処理はある?」と説明させてから使うと安心です。
ターミナル以外でも表示されますか?
画面を描く Mod は、描画先に合わせた部品を Claude Code から受け取る仕組みです。描画先にはターミナル・デスクトップアプリ・VS Code・モバイルがあります。ただし、使える部品は描画先ごとに少しずつ違います(たとえば、モバイルには文字入力欄がない)。複数の環境で使う予定なら、作るときに「ターミナルとデスクトップの両方で表示できるようにして」と伝えましょう。
アプリを再起動したら Mod は消えますか?
ホットリロードを許可した Mod のフォルダは、アプリを再起動したりセッションを再開したりしても、自動で読み込み直されます。ただし、Mod の中で覚えていた値は、読み込み直すたびにリセットされます。残したい値がある場合は、セッション中の値は「state」、セッションをまたぐ値は「store」という保存場所に入れるよう Claude に頼みます。
Mod を複数入れたら、ぶつかりませんか?
同じイベントに複数の Mod がフックを仕掛けている場合は、前の章で紹介したバトンリレーの順番で処理されます。どれか1つが「拒否」で答えると、その先の Mod と本体には届きません。思ったとおりに動かないときは、ほかの Mod が先に止めていないかを疑ってみましょう。
Mod が何もしてくれません。どこを見ればいい?
ホットリロード中にフックが失敗すると、会話の中に薄い文字で1行、どの Mod のどのイベントで何が起きたかが表示されます。画面の部品の組み立てに問題がある場合も、その理由が出ます。表示が見当たらないときは、claude plugin validate で事前チェックするか、claude --debug で起動してログを確認します。いちばん手軽なのは、その1行を Claude に見せて「直して」と頼むことです。
会社の PC でも使えますか?
組織のポリシーや、信頼していないフォルダ(ワークスペース)では、Mod の読み込みが無効になる場合があります。業務で使う場合は、まず情報システム部門のルールを確認しましょう。チームで共通の Mod を配る場合も、誰が管理し、誰が更新するのかを先に決めておくと安全です。
🎯 まとめ
Claude Code は「使う道具」から「育てる道具」へ。
頼むだけで作れる
コードを書かずに自分好みに
イベントに割り込む
表示・書き換え・拒否ができる
すぐ反映
ホットリロードで再起動不要
共有できる
プラグインとして配布
入れる前に確認
他人の Mod は合鍵と同じ
① まずは公式プラグイン「You should Know」を有効にして、プラグインの便利さを体験する
② 「応答が終わったら所要時間を表示して」など、画面に出すだけの小さな Mod を1つ作ってみる
③ 慣れてきたらガード系の Mod に挑戦し、権限設定と組み合わせて使う
④ 他人の Mod を入れる前は、作者・中身・validate の結果を確認する
Mods の登場で、AI のコーディング道具は「全員が同じものを使う」段階から、「一人ひとりが自分の仕事に合わせて育てる」段階に入りつつあります。一方で、Claude Code の中身に深く触れられる以上、セキュリティの考え方はこれまで以上に大切です。小さく作って、確かめて、安心して広げる。この順番を守れば、Mods は毎日の作業を確実に楽にしてくれるはずです。


コメント