AI時短ラボ
検索
プロダクト

Claude Codeが「改造」できるようになるAnthropicが数週間で出す「Claude Mods」、今のhooksと何が変わるのか

執筆:約28分で読めます

日刊AIニュース10月29日(木)号:前日のAIのニュース54本を短くまとめました(約22分)›

2026年9月9日、AnthropicのAlice Poteat氏はGitHub issue #91870で、Claude Codeの新機能「Claude Mods」(実装名 function hooks)を「数週間の規模で」出荷すると表明した。プラグインがTypeScriptの関数でClaude Code内部の出来事に割り込み、画面の部品、送る指示の本文、処理の順番まで変えられる。本記事は8ページの設計書・チートシート・同梱Mod 3本のソースと現行の公式ドキュメントを突合し、「今できること」と「Modsで変わること」を分けて整理した。(2026年9月25日更新:issueとCHANGELOGに出荷日はまだ出ていないが、9月19日にAGENTS.md対応が同梱mod「agents-md」として先に出荷され、同梱は3本から4本になった。)

Anthropicが公開したClaude Modsのチートシート
画像:Anthropic(GitHub issue #91870 添付・2026-09-09)
目次

【更新 2026年9月25日】 本記事が数えた9月15日朝の時点から10日で、GitHub issue #91870のコメントは169件から213件に増えた(Poteat氏の返信も25件→31件)。大きな動きは、Claude CodeのAGENTS.md対応(日本時間2026年9月19日公開・v2.1.277)が、Modの仕組みで作られた同梱mod「agents-md」として出荷されたことだ。Poteat氏は9月18日(UTC。日本時間では19日未明)の返信で次のように書いている。

Separately to all this, we were able to get out AGENTS.md support as a built-in mod! (それとは別に、AGENTS.md対応を同梱mod(built-in mod)として出すことができた)

同梱modは記事執筆時点の3本(sec-default/diff/telemetry)から**4本(+agents-md)**に増えた(mods/README.mdの記載)。詳しくはClaude CodeがAGENTS.mdを読むようになったに書いた。一方、出荷日そのものは、本記事が確認した範囲ではまだ示されていない。issueは2026年9月25日時点でも開いたままで、本文の出荷時期は9月9日更新の「数週間の規模で」のまま。同日に取得したClaude Code公式CHANGELOG(バージョン2.1.281まで)にも「function hooks」「Mods」への言及はなく、CLAUDE_CODE_ENABLE_FUNCTION_HOOKS も載っていない。スレッドでは、公開版(2.1.278・2.1.280など)でModを作って動作を報告する利用者のコメントが続いている(9月22日・23日など)。9月23日には、利用者が報告した「hooksモジュールがリンクできるファイルは512個まで(超えるとモジュール全体が読み込まれない)」という制限について、Poteat氏が「this will be removed(撤廃する)」と答えている。以下は2026年9月15日朝の公開時点の本文に、この更新で表・同梱modの項・関連リンク・出典などを書き足したもの。

2026年9月15日朝・日本時間時点の情報です(この段落と3行まとめは公開時点の記述のまま残す)。Anthropicは、Claude CodeのプラグインがTypeScriptの関数でClaude Code内部の出来事に割り込める新機能「Claude Mods」(実装上の名前は function hooks)を、数週間の規模で出荷すると表明した。発表の場は製品ページではなく、同社のAlice Poteat氏が9月3日にGitHubへ起票した提案スレッド(issue #91870)で、9月9日の更新で出荷方針と製品名が示された。同じ更新で、8ページの設計書、1枚のチートシート、Claude Codeに同梱される3本のModのソース、そして試用のための起動フラグが公開されている。

この記事は、①設計書・チートシート・スレッドのAnthropic側返答25件・同梱Modのソースに書いてあること、②現行のClaude Code公式ドキュメント(Hooks reference / Get started with hooks)に書いてあること、の2つを突き合わせ、「今のhooksでできること」と「Modsで変わること」を項目ごとに分けて整理する。ゲームを描くデモやコミュニティ製の作例には触れない。

3行まとめ

  1. Modは「関数フックを持つプラグイン」。今のhooksがシェルコマンドを呼ぶ仕組みなのに対し、Modsは**($, e, next) という3引数の関数**をClaude Code内部の出来事ごとに登録し、引数も結果も書き換えられる。設計書の言葉では「シェルフックは環境との契約、関数フックはエンジンとの契約」。
  2. 現行ドキュメントと突合すると、「ツールの結果をClaudeが読む前に差し替える」ことは今のhooksでもできる(updatedToolOutput)。Modsで新しく変わるのは、処理の順番を決められること、送る指示の本文を書き換えられること、モデルへの要求そのものに割り込めること、画面の部品を書き換え・追加できること、Claude Code内部の操作を拡張から直接呼べること、そして何をする拡張かを読み込む前に列挙できることの6点。
  3. 出荷時期は9月9日更新の「on the scale of weeks(数週間の規模)」で、日付は出ていない。今日から試すには CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 を付けて起動する。早期アクセスで「APIは予告なく変わる」と同梱ModのREADMEに明記されている。

発表の場と時期・公開資料まとめ

項目 内容
製品名/実装名 Claude Mods/function hooks(「modはfunction hooksを使うプラグイン。それ以上でも以下でもない」と9月9日更新)
発表の場 GitHub anthropics/claude-code の issue #91870。2026年9月3日起票、9月9日に「Community Update」を追記
起票者 Alice Poteat氏(Anthropic。設計書の著者)
出荷時期 「数週間の規模で」(9月9日更新)。日付の明示なし(2026年9月25日時点でも、issueとCHANGELOGに日付は出ていない)
公開資料 設計書PDF(8ページ・2026年8月付)、チートシート1枚、同梱Mod 3本(sec-default / diff / telemetry)のソース(9月19日、AGENTS.md対応が4本目の同梱mod「agents-md」として追加)
試用方法 CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude で起動。/plugin-types で型定義を書き出せる
スレッドの規模 9月15日時点でコメント169件、うちAnthropic側(Poteat氏)の返答25件(2026年9月25日時点:213件、うちPoteat氏の返答31件)

9月3日の起票文には「出すかどうかはコミュニティの反応で決まる」とあり、9月9日の更新で次のように書かれた。

We're now committed to shipping function hooks, on the scale of weeks in lieu of days or months. As well, from a product perspective, we are going to be calling this functionality "Claude Mods". (function hooksを、日や月ではなく数週間の規模で出荷することにコミットした。製品としてはこの機能を「Claude Mods」と呼ぶ)

先に言葉を揃える

  • フック(今のClaude Code):ツールを実行する前後など決まった場面で、Claude Codeが外のプログラム(シェルコマンドなど)を呼ぶ仕組み。設定ファイルに書く。
  • プラグイン:スキル・エージェント・MCPサーバー・フックをひとまとめにして追加する単位。
  • 関数フック:フックをTypeScriptの関数として書いたもの。プラグインの hooks/ に置いたファイルが register(on) という関数を1つ持ち、その中で on("tool.call", ($, e, next) => …) のように「出来事の名前」と「関数」を登録する。$ はModが呼べる操作の窓口、e はその出来事の中身、next は「次の処理を呼んで結果を受け取る」ための関数。
  • Mod:関数フックを持つプラグイン。同梱ModのREADMEは「A mod is a Claude Code plugin whose behaviour lives in a hooks module」と定義する。

設計書は今のフックと関数フックの違いを一文で書いている。

A shell hook is a contract with an environment; a function hook is a contract with the engine. (シェルフックは環境との契約であり、関数フックはエンジンとの契約である)

今のhooksと何が変わるのか

以下の「今」は現行の公式ドキュメント(Hooks reference / Get started with hooks)の記述、「Modsでは」は設計書・チートシート・スレッド返答の記述に基づく。

1. 前と後で別々に書いていた処理が、1つの関数になる

今:ツール実行の前(PreToolUse)と後(PostToolUse)は別のフックで、それぞれ許可・拒否(permissionDecision)、引数の書き換え(updatedInput)、結果の差し替え(updatedToolOutput)、補足の追加(additionalContext)を返す。

Modsでは:tool.call という1つの出来事に1つの関数を付け、その中で「本体の前に処理する」「本体の結果を待って書き換える」「本体と並走する」「本体を呼ばずに自分で答える」「引数を直してから渡す」の5通りを選べる(設計書 §2.2「Five Placements」)。設計書は「コマンド型のフックなら前イベントと後イベントが要るところを、1つのイベントで済む」と書く。

公式の例:設計書 Listing 1。rm -rf / を含むBashコマンドなら { deny: "…" } を返し、それ以外は next(e) で先へ渡す関数。

2. 処理の順番を自分で決められる

今:同じ出来事に反応するフックは並列に実行される。複数のPreToolUseフックが updatedInput で引数を書き換えると「最後に終わったものが採用され、順序は決定的でない」と公式ガイドに明記されている。

Modsでは:登録順で入れ子になる(Express/Koa のミドルウェアと同じ型)。先に登録した関数が外側になり、内側の関数を呼んで結果を受け取る。設計書はこれを「Order Is Nesting(順序は入れ子)」と呼び、「先に登録するほど権限が強い」と書く。

公式の例:Poteat氏の9月6日の返答。組織が末尾に置いたModが、ツールの結果から社外秘の文字列を消してから上へ返す。上にある個人のModは「消された後」しか受け取れない。

3. 送る指示の本文そのものを書き換えられる

今:指示を送る時のフック(UserPromptSubmit)は「プロンプトを置き換えることはできず、additionalContext を横に差し込むだけ」と公式リファレンスにある。

Modsでは:prompt.submit(送る指示)、prompt.fill(入力欄に入れる文章)、prompt.suggest(次の指示として薄く表示される候補文)の3つが出来事として公開され、チートシートは候補文について「rewrite or refuse(書き換える、または拒否する)」と書く。

4. モデルへの要求そのものに割り込める

今:使うモデルや考える強さ(effort)は設定やスキルごとに指定できる。回答の表示文は MessageDisplay フックで差し替えられるが、変わるのは画面上の文字で、保存される会話とClaudeが読む内容は元のまま。

Modsでは:モデルに1回要求を送るたびに turn.step という出来事が起き、そこに付けた関数は「渡すモデル・effortを変える」「返ってくる文章を流れたまま受け取って書き換える」ことができる。この出来事だけは通常の関数でなく、文章の断片を順に受け取る非同期ジェネレーターで書く。

公式の例:9月11日の返答にある、モデルの出力を全部 rot13(文字ずらし)にして流す関数。冗談めいた例だが、モデルの出力を通す関門を自分で持てる、という意味の例になっている。

5. 画面の部品を書き換え・追加できる

今:画面に関わるフックは、回答の表示文を差し替える MessageDisplay のみ。

Modsでは:部品を描くたびに ui.render という出来事が起き、部品の中身(props)を書き換える、描画結果を包む、丸ごと差し替える、の3通りができる。チートシートに載っている部品は UserMessage / AssistantMessage / ToolUse / ToolResult / ToolGroup / AskUserQuestion / Spinner / TurnDuration / InfoNotice / SessionMode / PromptHint / AbovePrompt(入力欄の上の帯)/ Pane(自分で開く区画)。描くための要素は Box / Text / Button / Input / Select / Link / Code / Svg / Client。同じ描画の木を、ターミナルでは Ink、デスクトップ版ではDOMで描き分けるので、Modは1回書けば両方に出る。

公式の例:issue本文のケーススタディ⓽。デスクトップ版で機密の値を隠しておき、マウスを乗せた時だけ表示するMod(「画面共有しながら作業できる」用途と説明)。同梱の diff Modは、未コミットの変更を会話の横の区画にファイル単位で表示し、Claudeの編集に追随し、ファイルの質問ボタンを押すとその変更箇所が次の指示に1回だけ添付される。

なお、操作の許可を確認するダイアログは、フックできる部品として公開されていない(9月4日の返答)。表示を変える処理と、操作を許可するか決める処理は分けられている。

6. Claude Code内部の操作を、拡張から直接呼べる

今:コマンド型のフックは「標準出力・標準エラー・終了コードでしか通信できず、/コマンドやツール呼び出しを起動することはできない」(公式ガイド)。

Modsでは:$ の窓口から、ツールを呼ぶ(tool.call)、/コマンドを走らせる(command.run)、利用者に質問ダイアログを出す(ui.ask)、サブエージェントを起動する(agent.spawn)、モデルに1回だけ補完させる(model.complete)、ファイル・通信・プロセスを扱う(fs / http / process)などを直接呼べる。チートシートは名詞19個(tool / command / prompt / agent / turn / session / model / ui / fs / settings / config / env / store / http / process / mcp / clock / audio / plugin)を列挙している。

公式の例:9月9日の返答。/fetch-context を動かしたいという質問に対し、$.command.run({ command: "fetch-context" }) を使うと案内し、「prompt.submit はモデルへ文章を送るためだけのものにしたい」と説明している。

7. 拡張が何をするか、読み込む前に一覧で分かる

今:フックが呼ぶシェルスクリプトが何をするかは、中身を読むしかない。コマンド型フックは利用者の権限でファイルやネットワークに触れる。

Modsでは:Modのコードにはファイルやネットワークへの「素の」アクセスがなく、できることは $.名詞.動詞(…) の呼び出しだけ。この呼び出しは決まった綴りでしか書けず、$[式] のような崩した書き方は claude plugin validate が拒否する。その結果、あるModがフックする出来事と、呼ぶ操作の一覧を、読み込む前に機械的に出せる。Poteat氏は9月4日の返答で、この隔離は「規約ではなく境界」であり、Bun Worker と node:vm でプラグイン領域を包んでいて「機械的に import fs できない」と説明している。

公式の例:9月6日の返答。組織の管理者がファイル読み取りの出来事にフックを付け、作業フォルダか一時ファイルの場所以外の読み取りを拒否するコード。設計書 Listing 5 は、*(全部の出来事)に1本のフックを置いて「どのModがどの操作を呼んだか」を記録する監査ログで、4行で書かれている。

8. 今のhooksは、そのまま動く

設定ファイルに書いた既存のフックは classic.<イベント名> という出来事として1対1でラップされ、入出力のJSONもそのまま(9月7日の返答、チートシート「classic」の行)。移す順番は利用者が決められる。

安全側の設計──順序が権限になる

Modは5つの層に並ぶ。外側から prepend(組織が先頭に置く)/user(利用者が入れたもの)/append(組織が末尾に置く)/builtin(Claude Codeに同梱)/core(実際に動作する本体)。外側ほど権限が強く、外の層は内側の呼び出しを全部見て止められる。内側から外側には触れない。チートシートはこの構造を「the product as shipped, in one line(出荷時の製品そのもの、1行で)」として、on("*", ($, e, next) => next.to(e, "builtin")) と書いている。

同梱の sec-default はこの最外殻に座り、組織が設定した従来のフック・管理されたCLAUDE.md・設定の読み取り・組織のMCPサーバーを、利用者が入れたModから守る役割を持つ。READMEによれば「managed settings があるマシン、またはTeam/Enterprise組織」で自動的に先頭に置かれ、ローカルで --plugin-dir から読み込んだだけでは「通す」以外の動作ができない。

失敗時の既定は「止めない」側に倒してある。フックが例外を出すか10秒を超えると、そのフックだけを飛ばして先へ進む(チートシート「failure」の行、9月5日の返答)。止めたい側は .catch を宣言しておけば、失敗した時に自分で拒否を返せる(9月8日の返答)。速度については、Claude Codeと同じプロセス内のBun実行環境で動かし「1フックあたり p99 で50マイクロ秒を見ている」と9月3日の返答にあるが、これは目標値としての発言で、測定条件は示されていない。

いつ、どう試せるか

  • 出荷時期:9月9日更新の「数週間の規模で」。日付の明示はない(2026年9月25日時点でも変わらず)。

  • 今日試す:CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude で起動する。9月9日の返答は、このフラグを有効にすれば /plugin-types で $ の全操作の型定義が書き出される、と案内している。

  • 作る:プラグインの hooks/hooks.json に { "modules": ["./hooks.ts"] } を足し、claude --plugin-dir ./my-mod で読み込む。保存すれば起動中のClaude Codeに読み直される(チートシート「loading」の行)。同じ行に「Claude can write the mod for you(Claudeがあなたの代わりにModを書ける)」とあり、issue本文のケーススタディ⓼は、短い依頼1つからClaudeがModを書き、検証し、読み込むまでのデモ。

  • 同梱は4本に増えた:sec-default(上述)、diff(/diff で変更箇所を横に表示)、telemetry($.telemetry を追加。分析がオフなら何も送らない)の3本に、日本時間2026年9月19日、agents-md(AGENTS.mdをプロジェクト指示として読み込むmod)がv2.1.277で加わった。9月9日の更新は最初の3本を「our first three built-in mods(最初の同梱mod 3本)」と呼び、次のように書いている(本記事は公開時、この方針をREADMEの記述としていた。訂正の経緯は末尾の「更新・訂正履歴」に記した)。

    Our intent is to take further extant features as they exist in CC today and migrate them to mod form. (今あるClaude Codeの機能を、さらにMod形式へ移していくつもりだ)

    agents-mdは既存機能の移植ではなく、新しく加わった機能が同梱modとして出た例になる。 詳細はClaude CodeがAGENTS.mdを読むようになったに書いた。

Claude Codeそのものの説明はClaude Codeとは、今のhooksでルールを強制する作り方はhooksの作り方、許可・拒否の線引きはpermissionsの設定に書いている。Modsの発表と同じ時期のClaude Code自体の変更は、週間上限が9月14日から恒久+25%になった話と、「プロジェクト」が目標ベースの並列スレッドに再設計された話に書いている。

筆者が現行ドキュメントと突き合わせて直した2つの思い込み

この記事を書く前、筆者は「今のhooksは許可か拒否しか返せない」「回答の表示は変えられない」と理解していた。現行の公式リファレンスを読み直すと、どちらも違った。PostToolUse は updatedToolOutput でツールの結果を「Claudeに送る前に置き換える」ことができ、MessageDisplay は回答の表示文を差し替えられる(ただし画面上の文字だけで、保存される会話とClaudeが読む内容は元のまま)。

だからModsの「新しさ」は、伏せ字ができること自体ではない。誰が加工した結果を、次の誰が受け取るかを順序で組めること(項目2)、指示の本文とモデルへの要求に手を入れられること(項目3・4)、画面の部品と内部の操作が対象になること(項目5・6)、何をする拡張かが読み込む前に分かること(項目7)にある。この整理は、現行ドキュメントの該当箇所を1つずつ引きながら行った。

この記事が確かめられていないこと

  • issue本文のデモ動画9本は、本文の説明文とコード例で内容を確認した。映像そのものは検証していない。
  • 同梱ModのREADMEは「hooks modules は function hooks が有効な環境でのみ読み込まれ、これらのModが書かれているAPIはリリース間で予告なく変わりうる」と明記している。本記事の関数名・出来事名は2026年9月9日時点の公開資料に基づく。
  • 出荷日は未定。「数週間」は9月9日のスレッド更新に書かれた言葉で、製品ページの告知ではない。2026年9月25日にissueとCHANGELOG.mdを再確認したが、状況は変わっていない。
  • prepend/append の層と sec-default の制御は、managed settings があるマシンかTeam/Enterprise組織が前提と書かれている。個人利用でどの層まで使えるかは、READMEの記述以上には確認できていない。
  • 現行hooksの各機能(updatedToolOutput など)がいつから使えたかは確認していない。本記事は「今の公式ドキュメントに書いてあること」との比較であって、「以前はできなかった」という歴史的な比較ではない。
  • 「1フック50マイクロ秒」は返答中の目標値で、公開された測定結果ではない。

出典と、この記事が見た範囲

  • GitHub issue #91870(起票2026-09-03、更新2026-09-09。本文、9月9日の更新、Anthropic側の返答25件)
  • 設計書「Function Hooks: Core Architecture」(Alice Poteat・Anthropic・2026年8月・8ページ)
  • チートシート「Claude Mods — the $ cheat sheet」(2026-09-09)
  • anthropics/claude-code の mods/ 配下(README、sec-default、diff、telemetry。9月19日以降は agents-md も追加)
  • Claude Code 公式ドキュメント「Hooks reference」「Get started with hooks」(2026年9月15日取得。2026年9月25日に、本記事が引いた箇所の記載が変わっていないことを再確認)
  • GitHub issue #91870 の記事公開後のコメント44件(2026年9月24日分まで。Poteat氏の返答6件を含み、2026年9月25日時点で全213件)
  • anthropics/claude-code の mods/README.md の変更履歴(2026年9月9日〜9月20日の各版。2026年9月25日に確認)
  • Thariq氏(Anthropic)のX投稿(日本時間2026年9月19日、AGENTS.md対応の発表)
  • Claude Code 公式CHANGELOG.md(2026年9月25日時点でバージョン2.1.281まで確認)

本記事は続報があり次第更新します。出荷時には、公開資料と出荷版で変わった点を同じ記事に追記します。

シェア: ポスト はてブ

出典・参照資料

更新・訂正履歴

  • 出典の帰属を訂正。「今あるClaude Codeの機能を、順にMod形式へ移していく」という方針を同梱ModのREADMEの記述としていたが、mods/README.mdの各版(2026年9月9日〜9月20日のコミット)には該当する文がなく、出典はissue #91870本文の9月9日の更新(Our intent is to take further extant features as they exist in CC today and migrate them to mod form.)だった。本文の該当箇所を原文の引用に差し替えた。
AI時短ラボ

大きいニュースはYouTubeでも解説しています。Xでは新着記事をお知らせしています。

コメント

まだコメントはありません。最初のコメントを書いてみませんか?

AIについて聞きたいことはありますか?

質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。

質問箱を見る →

関連記事

Claude Code(クロードコード)とは──Anthropicのコーディング用AIエージェント、Pro以上の有料プランで使える。使い方・料金・使える場所【2026年10月版】の記事画像動画

Claude Code(クロードコード)とは Anthropicのコーディング用AIエージェント、Pro以上の有料プランで使える。使い方・料金・使える場所【2026年10月版】

活用
AIに「ルールを読め」は効かない──読むまで作業をブロックする仕組み(hooks)の作り方の記事画像動画

AIに「ルールを読め」は効かない 読むまで作業をブロックする仕組み(hooks)の作り方

活用
Claude Codeの確認プロンプトを減らす設定──allow / ask / deny をどこで線引きするかの記事画像

Claude Codeの確認プロンプトを減らす設定 allow / ask / deny をどこで線引きするか

活用
Claude CodeのAGENTS.md対応を発表したThariq氏のX投稿動画

Claude CodeがAGENTS.mdを読むようになった 2.1.277から、CLAUDE.mdが無いフォルダではAGENTS.mdを使う。反応6,653件・13ヶ月の要望に対応、切り替えは/config

プロダクト
Claude Codeの週間上限、9月14日から恒久+25%に──+50%キャンペーンは9月13日で終了、Anthropic公式が「今日と比べて17%減」と明記の記事画像動画

Claude Codeの週間上限、9月14日から恒久+25%に +50%キャンペーンは9月13日で終了、Anthropic公式が「今日と比べて17%減」と明記

プロダクト
Anthropic公式ドキュメントの圧縮(compaction)フロー図

Claude APIに「任意のタイミングで会話を圧縮する」オンデマンド圧縮(ベータ) 署名付きの要約ブロックを返し、直近の会話は原文のまま残せる。しきい値型との違い、課金の見方、失敗時の挙動

プロダクト
Claude Codeの「プロジェクト」が再設計──目標を渡すと、コーディネーターがスレッド(=クラウドのClaude Codeセッション)に仕事を割り振り、並列でPRを開いて結果を組み立てる。9月17日からPro・Maxの一部でベータ、既存プロジェクトはそのままの記事画像

Claude Codeの「プロジェクト」が再設計 目標を渡すと、コーディネーターがスレッド(=クラウドのClaude Codeセッション)に仕事を割り振り、並列でPRを開いて結果を組み立てる。9月17日からPro・Maxの一部でベータ、既存プロジェクトはそのまま

プロダクト
エージェントの記憶を「夢見て」整理し直す──Claude Managed Agentsの新機能Dreamsを読むの記事画像

エージェントの記憶を「夢見て」整理し直す Claude Managed Agentsの新機能Dreamsを読む

プロダクト