Anthropicは2026年10月1日、Claude Codeの見た目と動きを小さな関数で書き換えられる「mods」を公開しました。プロンプトをモデルに渡す前に書き換える、ツール実行を止めたり差し替えたりする、画面に独自のペインを足す、といったことが、JavaScriptまたはTypeScriptで書いた関数で実現できます。チームの運用ルールをClaude Codeに組み込みたい開発者や、社内でClaude Codeを配布している情報システム部門に関係する更新です。一方でmodはサンドボックスの外で利用者と同じ権限で動くため、管理者は導入方針を先に決める必要があります。
modsで何ができるのか
公式ドキュメントによると、modはプラグインの一種で、Claude Codeが発生させる「イベント」に関数(フック)を登録して動きます。イベントにはツール呼び出し(tool.call)、プロンプト送信(prompt.submit)、画面描画(ui.render)などがあり、フックはイベントを「見るだけ」「書き換えて先に流す」「自分で処理して本来の動作を止める」のいずれかを選べます。同じイベントに複数のmodを重ねることもでき、読み込み順に実行されます。
具体的には次のようなことが可能です。
- 会話の横にペインを、入力欄の上に帯を表示し、タブやボタン、入力欄を置く
- スピナーやツール実行の行、質問ダイアログなど、Claude Code自身の画面部品を差し替える
- ツール実行を保留してユーザーに確認を取る、ツールを動かさずに結果を返す、特定のリクエストだけ別のモデルに送る
- Claudeのターンを使わずに即実行される独自の/コマンドを追加する
Anthropicはサンプルとして、コンテキストの埋まり具合を「天気予報」風に表示するtoken-weatherや、rm -rfや強制pushの前に影響範囲を見せて実行可否を尋ねるblast-radiusを公開しています。modを自分で書かなくても、セッション中に「こういうmodを作って」と頼めばClaudeが書いてくれます。
なぜ既存のフックやスキルでは足りなかったのか
Claude Codeにはこれまでも、設定ファイルに書くフック(設定フック)、Claudeに手順を教えるスキル、外部ツールをつなぐMCP(Model Context Protocol、AIから外部ツールを呼ぶ共通規格)がありました。ただしこれらはどれもClaude Codeの「外側」から働きかける仕組みで、シェルスクリプトを走らせたり、テキストやツールを渡したりするところまでしかできません。画面に何かを描くことはできず、複数のフック間で状態を共有するのも手間でした。
modはClaude Codeのプロセスの中で動くため、あるフックが数えたツール呼び出し回数を別のフックがスピナー横に表示する、といった連携が同じファイル内の変数だけで書けます。実際、/diffの表示や9月に入ったAGENTS.md対応も、Claude Code自身の組み込みmodとして実装されています。エディターの拡張機能のように、ツール自体を利用者側で作り替えられる方向へ舵を切ったと考えられます。

使える環境と、セキュリティの前提
modsはClaude Code v2.1.287以降で既定で有効です。ペインなどの描画が表示されるのはターミナル版とデスクトップアプリのCodeタブで、VS Code拡張のチャット欄やclaude -pではフックは動くものの画面には何も出ません。インストールは通常のプラグインと同じく/plugin install <名前>@<マーケットプレイス>で行います。
注意点は、modがサンドボックス化されていないことです。ドキュメントは、modが利用者の権限でファイルの読み書き、プログラムの起動、ネットワーク通信をでき、環境変数や設定ファイルに置いたAPIキーも読めると明記しています。さらに、askルールで確認が出るはずのツール実行を、確認なしで承認することもできます。サンドボックス機能を有効にしていても、それが隔離するのはClaudeが実行するBashコマンドで、modが起動したプロセスは対象外です。
このためTeam/Enterpriseプランでサインインしている場合や、管理設定(managed settings)が配布されている端末では、組み込みのガードsec-defaultが利用者のmodより先に読み込まれます。管理者向けドキュメントによると、このガードは利用者のmodがdenyルールで拒否されたツール実行を承認することや、システムプロンプト・管理対象のCLAUDE.md・管理対象のMCPサーバーを書き換えることを防ぎます。逆に言えば、それ以外のファイル操作や通信は制限されません。また、Read(.env)を拒否していても、mod自身のファイル読み込みAPIからは読めてしまう点もドキュメントが注意しています。APIキーで認証している個人利用では、管理設定がない限りこのガードは読み込まれません。
日本の開発チーム・情シスにとって
社内向けの使い道としては、Anthropicも例に挙げる「CI/CDの状況をペインに表示する」「本番の設定を変更する前に確認を挟む」「modの操作を監査ログに残す」あたりが現実的です。これまで手順書や口頭ルールで守っていた「本番DBに向けたコマンドは必ず人が確認する」といった運用を、仕組みとしてClaude Codeに埋め込めるのは利点と考えられます。
一方で、9月には例示用ドメインを参照するエージェントスキルが詐欺サイトに誘導されうる問題も報告されました。modはスキル以上に強い権限を持つため、出どころの分からないマーケットプレイスから入れるリスクはさらに大きくなります。導入前にはclaude plugin validate ./modを実行すると、そのmodが受け取るイベント(hooks:)と呼び出すAPI(calls:)の一覧を、コードを動かさずに確認できます。$.process.run(プログラム起動)や$.http.fetch(通信)、$.env.get(環境変数の読み取り)が並んでいたら、中身を読んでから判断するのが安全です。

次にやること
- Claude Codeを組織で配布している場合は、利用者が入れたmodを許すかどうかを決め、許さないなら管理設定のpluginConfigsでcc-plugin-sec-default@builtinのallowManagedModsOnlyをtrueにする
- 個人で試すなら、まず公式サンプルのblast-radiusを--plugin-dirで1セッションだけ読み込み、挙動とコードを確認する
- 早期アクセス中にCLAUDE_CODE_ENABLE_FUNCTION_HOOKS=0でmodsを止めていた場合、v2.1.287以降はこの変数が無視されるため、別の方法(disableAllHooksや上記オプション)に切り替える




