10月1日、v2.1.287でClaude Code Modsという仕組みが入りました。発表を読んで最初に思ったのは「hooksと何が違うの?」でした。

hooksは、Claude Codeが何かをする前後に、自分で決めた処理を自動で走らせる以前からの仕組みです。研修では「ファイルを書き換えたら自動で体裁を整える」の例でよく紹介しています。

似た仕組みが2つ並ぶと受講者に説明できません。そこで公式ブログとドキュメントを読み、手元でも触って確かめました。10月8日時点の内容です。

問い Modsはhooksの上位版なのか

調べる前の仮説は「hooksを高機能にしたもの」でした。半分当たりで、半分外れです。

先に用語を2つだけ。ツール呼び出しは、Claudeがファイルを読む・書く・消す、命令を実行するといった実際の操作のこと。プラグインは、Claude Codeに後から足せる追加機能のことです。Modsはこのプラグインの一種として配られます。

できることの違いから見る

いちばん大きい違いは、ModsはClaude Codeの画面と動きそのものに手を入れられることです。公式ドキュメントが挙げているものを言い換えるとこうなります。

  • 会話の横に専用の欄を出したり、入力欄の上に帯を出したりする
  • Claude Code自身の表示、たとえば処理中の表示や質問の画面を描き替える
  • ツール呼び出しを途中で止めて人に確認したり、別の答えに差し替えたりする
  • Claudeに考えさせずに即実行される自作の /コマンド を足す
  • Mods overview(Claude Code公式・英語)

従来のhooksにできるのは、操作を通すか止めるか、操作の中身の調整、Claudeへの補足情報の追加まで。画面に何かを出すことはできません。

業務のたとえで言うと

事務所にたとえると分かりやすくなりました。

hooksは、作業の前後に外部の担当者へ電話で確認する仕組みです。担当者は「進めてよい」「止めて」とは返せますが、事務所の中の掲示板や書類の書式には触れません。仕組みの上でも、hooksは設定ファイルに書いた命令文をClaude Codeの外で動かします。

Modsは、事務所の中に席を持つスタッフです。作業の途中に割って入り、掲示を貼り、受付の書式も変えられる。実際にModsはClaude Codeの内側で動く小さなプログラムで、そのぶん手の届く範囲が広い。

業務の例を1つ挙げます。経理の共有フォルダで、Claudeがファイルを消そうとしたら必ず止めて、「何が消えるのか」を画面に出し、「進める」「やめる」のボタンで選ばせる。止めるだけならhooksでもできますが、消える中身を見せてボタンで選ばせる部分はModsでないと作れません。公式が配っているサンプルにも、危ない削除命令を止めて影響範囲を見せる blast-radius があります。

なお、hooksがなくなるわけではありません。管理者向けのページに、従来のhooksはModsと並んでこれまでどおり動き、非推奨にもならないと明記されています。

Claude Codeに1つ書かせてみた

Modsの中身はJavaScriptかTypeScript(どちらもWebでよく使われるプログラミング言語)ですが、ドキュメントの最初の案内は「欲しいものを言葉で頼めばClaudeが書く」です。v2.1.287以降が必要で、私の手元は2.1.293でした。

試しに「今の作業ブランチ名を入力欄の上に出すmodを作って」と頼みました。ブランチは、ファイルの変更履歴を管理するgitでの作業の枝分かれです。

ClaudeはClaude Codeの設定フォルダ(~/.claude/dev-mods/)の下にファイルを書き始め、1ファイルごとに保存の許可を求めてきました。承認が多くて面倒でしたが、そこが保護された場所なので確認が入る仕様です。続いて、書き換えをその場で読み込み直す機能を有効にするか聞かれ、有効にするとClaudeの返答が終わったところで入力欄の上にブランチ名が出ました。

つまずいたのは翌日です。別のセッション(Claude Codeを起動し直した次の回)では出ませんでした。Claudeが書いたmodは書いたセッションでしか読み込まれません。

残すには、modのフォルダを自分のフォルダへコピーし、ターミナル(Claude Codeを起動する黒い画面)から起動するときに場所を指定します。

claude --plugin-dir ~/mods/git-branch

正直なところ、作るところまでは言葉だけで済みますが、残すところには少し手作業が要ります。毎回の指定が面倒なら、チーム用の配布元(マーケットプレイス)に登録して /plugin から入れる形になります。

気をつけること

ドキュメントにははっきり警告があります。Modsはサンドボックス(作業範囲を閉じ込める仕組み)で守られていません。 自分と同じ権限でファイルを読み書きし、通信し、APIキー(お金のかかるサービスを使うための合言葉)の入った設定も読めます。操作を人に聞かずに承認することもできます。

入れる前に中身を確かめるには、ターミナルで次を打ちます。どの場面で動き、何を呼び出すかが一覧で出ます。

claude plugin validate ./some-mod

TeamやEnterpriseでサインインしているか、会社が配る設定が入っているパソコンでは、組み込みの安全用mod(sec-default)が利用者のmodより先に動き、組織の設定や指示を書き換えさせません。管理者は、利用者が持ち込んだmodを一切動かさない設定もできます。

組み込みのmodもあります。変更点を見比べる /diff の画面は今はmodで動いています。作業を横で見て、見落としそうなことを入力欄の上に知らせる「You should know」は既定でオフです。Anthropicのアカウントで使い、利用データの送信(テレメトリ)が有効な場合に有効にできます。

/plugin enable cc-plugin-you-should-know@builtin

結論 非エンジニアにとっての意味

私の答えはこうなりました。**Claude Code Modsは「Claude Codeの見た目と振る舞いを、言葉で頼んで作り替えられる仕組み」**です。

hooksを使うには、専用の命令文を書いて設定ファイルに登録する必要がありました。Modsは作るのをClaudeに任せられ、変更もその場で反映されます。「確認なしに消さないで」「今どの顧客のファイルを触っているか常に見せて」という要望を、そのまま道具の形にできます。

ただ、イベントの名前や呼べる機能はバージョンごとに変わりうるとドキュメント自身が書いています。Claude Code Modsは、まず表示だけの小さなものから試すのがよさそうです。