Claude Code Modsとは何か|TypeScriptでAgentの動作を書き換える新機構
「誰かがもうTetrisのModを作った」。Anthropicエンジニアのボリス・チェルニーは2026年10月1日、Mods公開から数時間後にXにそう投稿した(Boris Cherny, X, 2026年10月1日)。リリース24時間以内にTetris、Snake、Minesweepなどのゲームが動いていた。しかしコミュニティが本当に沸いたのは遊びのためではない。「Modsこそが本命だ。新機能より前から求められていたのはこれだ。Claude Codeの上に構築できる余地」と開発者はGitHub上に書いた(Issue #91870)。
2026年10月1日、AnthropicはClaude Code v2.1.287に「Mods」を同梱した。AIエージェントそのものの動作をTypeScriptで書き換える仕組みだ。UIテーマや補完候補のカスタマイズではない。プロンプトがモデルに届く前に書き換え、ツール呼び出しをブロックし、会話の全行を傍受する。「エージェントループの中に入り込む」という表現が最も正確だ。
- Claude Codeを業務利用しており、チーム固有のワークフローをAIに組み込みたい開発者
- Settings Hooksを使っているが、TypeScriptで書けないことに不満を感じているエンジニア
- 企業向けにClaude Codeを展開しており、セキュリティポリシーの強制方法を探しているSRE・セキュリティ担当
Claude Code ModsとSettings Hooksの決定的な違い
Claude Codeには以前から「Settings Hooks」(PreToolUse、PostToolUse、Stopなど)が存在した。しかしこれらは本質的に「シェルスクリプトがstdinでJSONを受け取り、stdoutにJSONを返す」仕組みに過ぎない。UIは触れない。型システムはない。複数フックの連鎖も難しい。
Modsはその制約をすべて取り払う。Modsは複数のフックが next(e) で処理を順番に渡していくミドルウェアチェーン(各関数が次の関数へ処理を委譲する連鎖構造)として動く。以下が両者の対比だ。
| 比較項目 | Settings Hooks | Mods |
|---|---|---|
| 記述言語 | シェルスクリプト(JSON入出力) | TypeScript/TSX |
| UI操作 | 不可 | ペイン・バンド・ボタン・トースト全対応 |
| チェーン合成 | 独立実行 | next(e)ミドルウェアパターン |
| ホットリロード | 要セッション再起動 | ファイル変更を検知して即反映 |
| 対応イベント | 複数(但しUI操作不可) | 20種類以上 |
| テスト | なし | claude plugin test で実行可 |
既存の Settings Hooks は Mods 内で classic.PreToolUse などとして引き続き呼べる。公式ドキュメント上は上位互換として位置づけられている。
Anthropic 公式ブログには「モデルに届く前にプロンプトを書き換え、ツール呼び出しをブロック・再試行し、パーミッション要求を承認・拒否し、ツール出力から機密情報を削除できる」と明記されている(公式発表, 2026年10月1日)。
15種類のEventで何ができるか
Modsが対応するイベントは以下のカテゴリに分かれる。
エージェントループ系: tool.call(全ツール実行)、prompt.submit(ユーザープロンプト)、prompt.compose(システムプロンプト断片)、turn.start/turn.complete(モデルターン)、turn.step(ストリーミング)
会話管理系: session.start/session.end/session.append(全会話行)
UI系: ui.render(全UIコンポーネント描画)
その他: agent.offer(エージェント種別)、command.run(スラッシュコマンド)、engine.create(エンジン初期化)、classic.*(既存 Settings Hooks)
session.append は特に強力だ。会話に蓄積されるすべての行がこのイベントを通る。モデルが次のターンで読む情報を、Mod が介入して書き換えられる。
コードの骨格は最小限だ。
import type { Register } from 'claude-code'
export const register: Register = (on) => {
on('prompt.submit', async ($, e, next) =>
next({ ...e, text: e.text.replace(/secret/g, '[REDACTED]') })
)
}
ファイル構成は .claude-plugin/plugin.json(メタデータ)、hooks/hooks.json(モジュール定義)、hooks/register.tsx(エントリーポイント)の3ファイルが最小構成。claude plugin validate で検証し、claude plugin test でテストを走らせる。
コミュニティが即座に作り始めたModの実例
Anthropic公式が用意したサンプルModはすでに実用的だ。token-weather はコンテキストウィンドウの使用状況を「天気予報」形式でプロンプト上部に表示する。blast-radius は rm -rf や git push --force などリスクの高いコマンドを一時停止し、影響範囲を表示してから「実行する/しない」をユーザーに問い合わせる。replay-theater は /replay コマンドを追加し、直前のターンでClaudeが行ったファイル編集をステップ再生できるようにする。
コミュニティ側はさらに速かった。DLPツールの secret-redactor(APIキーをモデルが読む前にプレースホルダーに置換)、GitHubのCI状態をプロンプト上部に固定表示するMod、SQLiteベースの会話メモリシステムなど、2026年9月17日時点でカタログには72本が掲載されている(awesome-claude-code-mods)。「20分でCI状態パネルを作った」という証言もある。
エディタ拡張機能がエディタを拡張するのとは根本的に異なる。Mods は AIエージェント自身 を拡張する。VS Codeの拡張機能はエディタのイベントに反応するが、Modsはモデルへの入力・ツール実行・会話履歴という「AIが考える素材」に直接介入する(Cryptobriefing, 2026年10月)。
セキュリティモデル:「非サンドボックス」の意味
公式ブログは明言している。「Modsはサンドボックス化されていない。Claude Code本体と同じマシンアクセス権で動く。」
具体的に言うと、$.process.run(["rm", "-rf", "/"]) で任意のホストコマンドを実行でき、$.fs で任意パスのファイルを読み書きでき、$.model.complete() でセッションの認証情報を使ってAPI呼び出しを発行できる。悪意あるModがやれることは、悪意あるローカルプログラムがやれることと同等だ。
セキュリティ研究者やコミュニティからは4つのリスクが指摘されている。サイレントな秘密情報アクセス、ケイパビリティ非開示(インストール時に何も表示されない)、UI偽装、レビュー後のコード変更だ(AI CLI Tools Digest, 2026年10月)。特に「インストール・検査パスが通常ケイパビリティを表示しない設計」は構造的な問題として議論されている。
企業向けの部分的な対策として、TeamおよびEnterpriseプランでは組織のポリシーModが最初にロードされる設計になっている。これはユーザーインストールのModより前にフックチェーンの先頭に配置されるため、管理者ポリシーをユーザーModが上書きしにくくなる(公式ドキュメント)。ただしこれは信頼できないModを安全にするものではなく、ポリシー順序を保証するだけだ。
Anthropic IPOを前にしたタイミングの意味
ModsリリースはAnthropicのIPOが11月に迫るなかでの機能投入だ。同日には、Claude for Government(FedRAMP High認証、Anthropic公式, 2026年9月30日)とBarclaysへのエンタープライズ展開も発表されており、エコシステムの拡充が上場前に加速しているとも読める。
Modが普及するほど、Claude Codeは「特定チームの業務フローに深く根ざしたツール」になる。乗り換えコストが高まる構造は、SaaSビジネスの典型的な囲い込みに近いという見方もある。オープンソース代替の台頭(claw-codeなど)を意識した動きとも読める。一方で開発者側のメリットも本物だ。GitHubのIssueスレッドでは「これこそ最初から求めていたものだ。機能追加ではなく、上に積み上げる余地」という声が130件以上の賛同を集めた(GitHub Issue #91870)。
- ソースコードを必ず読む:
register.tsxを開いて$.process.run、$.fs.write、$.model.completeの呼び出しがないか確認する。不審な呼び出しがあれば使わない - claude plugin validate を必ず実行: マニフェストとフックの静的チェックが走る。エラーなしを確認してから
/plugin install - 企業利用はEnterprise/Teamプランの sec-default を活用: ユーザーModによるポリシー上書きを防ぐロード順序が保証される。個人アカウントには同等の保護がない点に注意
Claude Codeのエコシステムをさらに深く知りたい開発者へ
Modsはプラグイン体系の最新進化形だ。2026年8月のAgent Plugins 1.0から一連の流れを把握すると、今後の展開が見えてくる。
関連記事
- Claude Code plugins完全ガイド|インストールから自作まで
- Claude Inference hooks(推論フック)とは|社内DLPと3つの死角
- Claude Code security-guidanceの正体|AIが書くそばから脆弱性を潰す3層レビュー
本記事に記載されたAPIは「EARLY ACCESS」であり、リリース間で破壊的変更が入る可能性がある。コードサンプルはClaude Code v2.1.287時点のもの。最新仕様は公式ドキュメント(code.claude.com/docs)を参照。セキュリティリスクに関する記述はPluto Security(2026年10月)の公開調査に基づく。