メインコンテンツへスキップ
claude-code 15分で読める

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 HooksMods
記述言語シェルスクリプト(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)。

Claude Code Modsを安全に使うための3つの確認事項
  1. ソースコードを必ず読む: register.tsx を開いて $.process.run、$.fs.write、$.model.complete の呼び出しがないか確認する。不審な呼び出しがあれば使わない
  2. claude plugin validate を必ず実行: マニフェストとフックの静的チェックが走る。エラーなしを確認してから /plugin install
  3. 企業利用はEnterprise/Teamプランの sec-default を活用: ユーザーModによるポリシー上書きを防ぐロード順序が保証される。個人アカウントには同等の保護がない点に注意

Claude Codeのエコシステムをさらに深く知りたい開発者へ

Modsはプラグイン体系の最新進化形だ。2026年8月のAgent Plugins 1.0から一連の流れを把握すると、今後の展開が見えてくる。

Agent Plugins 1.0の解説記事を読む

関連記事


本記事に記載されたAPIは「EARLY ACCESS」であり、リリース間で破壊的変更が入る可能性がある。コードサンプルはClaude Code v2.1.287時点のもの。最新仕様は公式ドキュメント(code.claude.com/docs)を参照。セキュリティリスクに関する記述はPluto Security(2026年10月)の公開調査に基づく。

Share