Anthropicは10月1日、Claude Codeにmodsを導入しました。ユーザーは、やりたいことを普通の言葉で説明するだけで、このコーディングエージェントのインターフェースと動作の両方を変えられます。コードはClaudeが書きます。重要なのは「お願い」から「強制」への転換です。プロンプトに書いた指示はモデルがときどき無視しかねない依頼にすぎませんが、modはClaudeが行動する直前に割り込むコードで、ルールを毎回確実に守らせます。ただし、その力には落とし穴があります。modsは、コードが触れられる範囲を制限する隔離環境であるサンドボックスなしで動くため、インストールしたユーザーの権限をすべて持つことになります。

modsで変えられること

Claude Codeを生み出したボリス・チェルニーは、開発者が自然言語のプロンプトだけでClaude Codeのインターフェースと動作をカスタマイズできるようになったと発表しました。Anthropicの公式発表は400万回、チェルニーの投稿は80万回を超えて閲覧されました。AnthropicのあるClaude Codeエンジニアは、ソフトウェアが柔軟に形を変えられるものになりつつあり、ユーザーが自分の働き方に合わせてインターフェースや動作を作り変えられると説明しています。

この変化は、オフィスを借りることと建物を所有することの違いにたとえられます。テナントは書類を持ち込み、ホワイトボードにルールを書くことはできても、家主の許可なしに壁を壊したり鍵を付けたりはできません。modsによって、ユーザーは建物の所有者に近づきました。modsができることは大きく三つあります。

  • 画面に要素を加える:プロンプト入力欄の周りにステータス行、パネル、ウィジェットを描きます。
  • 送信される要求を変える:Claudeが実行しようとしている操作を、実行前に調整します。
  • 行動を止める:危険な操作を、ユーザーが承認するまで保留します。

初期の事例を見ると、その幅がわかります。あるmodは、モデルが一度に保持できる会話の量であるコンテキストウィンドウの使用率と、ターンごとのトークン使用量を入力欄の上のバーに表示します。別のmodは、rm -rfのビルドコマンドを止め、実行前に削除されるファイルを一覧表示します。Claudeが作業している間にターミナルでDoomを動かすmodまで作られました。

プロンプト、スキル、modは別の層

三つともClaudeに何をすべきかを伝えるものですが、働くレベルが異なります。

層 役割 適用の強さ
プロンプト 1回限りの指示 その依頼にだけ適用
スキル 提案書の書き方のような参照用の指示や専門知識で、Claudeが必要に応じて参照する 従うかどうかはモデルが判断
mod Claude Codeのクライアント自体を変え、操作にコードで割り込む フックのコードが毎回自動で実行

Anthropicのドキュメントも、システムプロンプトの指示は依頼であって保証ではないとはっきり述べています。「確認せずにメールを送らない」といったルールは、すり抜けることがあり得ます。modsは、決まったタイミングで自動的に実行されるコードであるフックを使うため、ルールはモデルが従うかどうかではなくプログラムによって守られます。

modsが動作するのは、ターミナルのClaude Codeと、デスクトップアプリのClaude Codeタブだけで、Claude Codeのバージョン2.1.287以降が必要です。通常のClaudeのウェブチャットでは使えません。

1回限りの指示、参照用メモの棚、操作を物理的に止めるゲートの三つの層を比べた図

▲ プロンプト、スキル、modの違い

まずは自分のセッション履歴から

コミュニティのmodの一覧は、自分の働き方に合わないかもしれません。より役に立つ出発点は、自分自身の使い方のようです。Claude Codeはすべてのセッションを、隠しディレクトリ.claude/projectsにローカルのJSONファイルとして保存しています。Claudeに過去14日分のセッションを分析させ、次の三つのパターンを探させることができます。

  1. 複数のセッションで繰り返しているプロンプト
  2. 削除や送信のように、危険または取り消せないコマンド
  3. 人の手による確認を求めた依頼

Claudeは見つけたパターンごとに、mod、スキル、指示1行のどれで解決するのが適切かを判断し、節約できる時間と有用性で順位を付けてから、コードを書きます。分析が実際の行動から出発するため、提案は個人に合ったものになります。

作る価値のある三つのmod

削除前に確認するガード

一つ目のmodはファイルの削除を捕まえます。依頼はシンプルで、削除コマンドをすべて保留し、「実行」と「キャンセル」の二つのボタンで先に確認するmodを作ってほしいと頼むだけです。ClaudeはTypeScriptでプラグインのフックを書き、テストケースを書いて実行し、それからmodを引き渡します。さらに、再起動せずに現在のセッションへ新しいコードを適用するホットリロードを有効にするかを尋ねてくるので、すぐにmodを試せます。

試しに、デスクトップにある古い下書きのフォルダを削除するようClaudeに頼むと、入力欄の上に確認ボックスが現れ、「実行」「キャンセル」「その他」を選べるようになりました。「キャンセル」を選ぶとコマンドは完全にブロックされ、フォルダはそのまま残り、Claudeは削除が拒否されたことを記録しました。

送信前に確認するガード

二つ目のmodは、何かを外部に送る前に承認を求めます。Gmailでは下書きだけを作るようClaudeに指示しても、それはやはり依頼にすぎません。このmodは、名前にsend、reply、forward、publishを含むツール呼び出しをすべて保留して確認ダイアログを表示し、ユーザーがキャンセルした場合は下書きとして保存します。

別のGmailアカウントにテストメールを送るよう頼むと、Claudeはすぐには送信しませんでした。代わりにダイアログが現れ、アプリ、宛先、件名と、送信かキャンセルかの選択肢が示されました。「送信」を選ぶとメッセージが届きました。このmodはツール名の動詞で判定するため、同じガードがSlack、Microsoft Teams、SNS投稿ツールにも働きます。

Claudeが何を見たかを示すレシート行

三つ目のmodは、ターンごとに入力欄の上へ1行を追加し、訪れたウェブページ、実行した検索、読んだファイル、その他のツール呼び出しの数を数えます。Claude Codeのmodsのドキュメントを確認して3行で要約するよう頼むと、レシートにはウェブページ1件(docs.claude.com)、検索1回、読んだファイル0件、その他のツール呼び出し0回と表示されました。12かける12はいくつかと尋ねると、何も開かれておらず、答えは記憶かそれまでのチャットから来たものだと示されました。答えの出どころがひと目でわかるわけです。

1セッションからすべてのセッションへ

会話の中で作ったmodは、初期設定ではそのセッションでしか読み込まれません。残したい場合は、Claudeに「このmodを、このセッションだけでなく新しいセッションでも毎回読み込むようにして」と伝えます。するとClaudeがグローバルなフック設定を更新し、新しく開くワークスペースのタブすべてでmodが読み込まれるようになります。

インターフェースの描き直しと二つ目のエージェント

Anthropicのドキュメントを見ると、modsはガードの用途にとどまりません。

  • インターフェースの変更:思考中のスピナーや操作のバナーをデザインし直したり、サイドペインや入力ウィジェットを追加したりできます。
  • 振り分け:実行前に割り込み、軽い問い合わせは安価なモデルへ、複雑な作業はフロンティアモデルへ送れます。
  • スラッシュコマンド:Claudeが依頼を処理するのを待たずに、ターミナルのコードや決まったワークフローをすぐに実行します。
  • 二つ目のエージェント:Claudeと並行してエージェントを動かせます。Anthropicは、Claudeが書くコードを書かれるそばから見守るYou Should Knowというエージェントを公開しました。Claudeが決済の呼び出しに自動再試行を加えたとき、再試行によって顧客に二重請求が起こり得るという警告を差し込みました。

Claude Code自身の機能のうち、差分ビューアーやAGENTS.mdの指示を読み込む機能などは、ネイティブのmodとして作られています。Anthropicは今後、より多くの組み込み機能をモジュール化し、開発者やIT管理者が部品のオン・オフを切り替えたり、会社のポリシーを一元的に適用したりできるようにする計画です。

鍵や個人ファイルのそばで、ターミナルに差し込む前の小さなパッケージを虫眼鏡で調べる手

▲ ユーザー権限で動くmodsのリスク

サードパーティのmodに注意すべき理由

modsはスキルよりリスクが大きいものです。スキルはClaudeが読む指針ですが、modはClaude Codeの中でユーザーのシステム権限のまま動く実行可能なコードです。サンドボックスがないため、悪意のあるmodは次のようなことができてしまいます。

  • 環境変数、APIキー、個人ファイルを読み取り、データをインターネットに送る
  • 任意のプログラムを起動する
  • チャットのセッションを書き換えたり、プロンプトをこっそり改変したりする
  • ユーザーに代わってツールの操作を承認したり、APIの利用枠を気づかれずに消費したりする

modsはClaude Codeに組み込まれた権限確認の画面を変えることはできませんが、入力欄の上にもっともらしいボタンやテキストボックスを描くことはできます。modが描いたボックスには、パスワード、APIの認証情報、個人のアクセスキーを決して入力しないでください。

スキルのエコシステムが警告を発しています。セキュリティ企業のSnykが公開されている4,000件近いスキルを分析したところ、3分の1以上に深刻な脆弱性や、認証情報を盗むためのコードが含まれていました。modsも同じ道をたどるおそれがあり、その場合の影響はさらに大きくなります。

よくできた削除ガードであっても、安全網であってファイアウォールではありません。Anthropicは、こうしたmodはコマンドのパターンを解析しているため、珍しい構文で書かれた削除はフックをすり抜ける可能性があると注意を促しています。

modsを安全に使い始めるには

modsは現実の隙間を埋めるもののようです。プロンプトでは依頼することしかできなかったルールを、ソフトウェアが強制するルールに変えるからです。ただし自分の権限で動くため、最も安全な基本方針は自分で作ることです。

  1. Claude Codeをバージョン2.1.287以降に更新します。
  2. Claudeに.claude/projectsにある過去14日分のセッションを分析させ、繰り返している作業と危険なコマンドを洗い出させます。
  3. 削除や送信のガードなど必要なmodを説明し、引き渡す前にテストを書いて実行するようClaudeに頼みます。
  4. ホットリロードを有効にして現在のセッションでmodを試し、気に入ったら新しいセッションでも毎回読み込むようClaudeに頼みます。
  5. 他人のmodをインストールする前には、ターミナルでmodのパスを指定してclaude plugin validateを実行します。このコマンドはコードを実行せずに、modが待ち受けるイベントと呼び出す機能を一覧にしますが、確認するのはマニフェストとフックの宣言だけで、ダウンロードしたファイルに同梱された別のスクリプトは検出できません。modは信頼できる作者のものだけを使いましょう。
  6. modの挙動がおかしいときは、プラグインメニューを開いて「Installed」の中からそのmodを選び、Spaceキーを押して無効にします。原因を調べるには、そのセッションのすべてのmod、外部スキル、接続済みのツールを無効にするセーフモードでClaude Codeを起動します。

最も確実なのは、確認していないファイルを取り込むのではなく、Claudeにmodを生成させ、そのコードの各行を説明させる方法です。