本文へ移動
技術を、自社の仕事に。
判断と実行を助けるメディア

記事を検索

Claude Codeのmodを会社で管理する 既定の動きと止め方

目次 · 6項目

開発チームにClaude Codeを配って数か月。ある日、社員が「便利なmodを入れました」と言ってきたとき、それが何をしているかを説明できるでしょうか。2026年10月1日公開のClaude Code v2.1.287で、画面や動作を変えるプラグイン「mod」が正式に加わり、既定で有効になりました。

modは、Claude Codeの中で動くJavaScript・TypeScriptのコードです。公式ドキュメントは「A mod is code that runs with your permissions」「Mods aren’t sandboxed」と明記しています。本記事では、2026年10月6日にClaude Codeの公式ドキュメント(code.claude.com の「Mods overview」「Manage mods for your organization」「Advanced setup」)と、anthropics/claude-code リポジトリの変更履歴、npmの公開記録を直接開いて確認した内容をもとに、会社としてmodをどう扱うかを整理します。資料調査と編集部の提案で、管理設定を配った環境での動作は検証していません。

modでできること、触れられるもの

modは、ツールの呼び出し、送信したプロンプト、画面の描画といったイベントのたびに呼ばれる関数です。ドキュメントの「What a mod can reach」には、読み込まれたmodができることとして次が並んでいます。

  • 利用者のアカウントでファイルを読み書きし、プログラムを起動し、通信する
  • 環境変数や設定ファイルを読む(APIキーを含む)
  • 送ったすべてのプロンプトと、Claudeのすべてのツール呼び出しを見る
  • プロンプトやツール呼び出しを書き換える、利用者が打ったかのようにプロンプトを送る
  • 確認画面が出る前にツールの実行を許可する
  • 利用者のプランやAPIキーでモデルを呼ぶ

設定ファイルに書く従来の「フック」はClaude Codeの外でコマンドを動かすものでしたが、modはClaude Codeの中で動くため、ここまで踏み込めます。Claude Codeのサンドボックスを有効にしても、隔離されるのはClaudeが実行するBashコマンドで、modが起動したプロセスはその外で動くと書かれています。

何も設定しない場合の動き

管理者向けページの「Know what happens by default」によると、組織として何も設定しない場合は次のとおりです。

Claude Codeのmodについて、管理者が何も設定しない場合の既定の動きを示す図。組み込みのガードが読み込まれるのは、端末に管理設定があるか、TeamまたはEnterpriseプランでサインインしている場合だけ。ガードは管理対象のフックやCLAUDE.mdなどを守るが、ファイルの読み書き・プロセスの起動・通信・ツール実行の許可は社員のmodに許される。APIキーやBedrock等で使い、管理設定のない端末ではガード自体が読み込まれない

  • modは有効: 社員は、許可されたマーケットプレイスから入れたmodや、--plugin-dir で指定したディレクトリのmodを読み込める
  • 組み込みのガードが先に動く: sec-default@builtin というmodが社員のmodより先に読み込まれ、社員は止められない。ただし読み込まれるのは「端末に管理設定(managed settings)がある」か「TeamまたはEnterpriseプランでサインインしている」場合だけ
  • ガードが守るもの: 管理設定のフックが受け取る内容と判断、システムプロンプト、管理対象の CLAUDE.md などの指示、管理対象のMCPサーバーのツールと説明
  • それ以外は許される: ファイルの読み書き、プロセスの起動、通信、ツール呼び出しやプロンプトの書き換え、ツール実行の拒否や許可

ここで確かめておきたいのは、ガードが読み込まれる条件です。ドキュメントには「A user who authenticates with an API key, or through Amazon Bedrock, Google Cloud’s Agent Platform, or Microsoft Foundry, gets the guard only on a machine that has managed settings.」とあります。APIキーで使い、端末に管理設定を配っていない会社では、ガード自体が動きません。

ガードが動く場合でも、deny(拒否)ルールで止めたツール呼び出しを社員のmodが許可することはできません。ただし、これはClaudeのツール呼び出しに対する話です。たとえば Read(.env) を拒否していても、mod自身のファイル読み込み($.fs.read)やmodが起動したプログラムは .env を読めると明記されています。ask(確認)ルールで確認画面を出す設定や、管理設定の外にある PreToolUse フックの拒否は、modが許可して上書きできます。

社員が入れたmodを止める

社員が持ち込むmodを一律に止める設定は、管理設定に次の1項目を加えるだけです。

{
  "pluginConfigs": {
    "cc-plugin-sec-default@builtin": {
      "options": {
        "allowManagedModsOnly": true
      }
    }
  }
}

これで、社員が入れたプラグインのmod、--plugin-dir で読み込むmod、セッション中にClaudeが書いたmodが読み込まれなくなります。同じ項目を社員のユーザー設定やプロジェクトの設定に書いても効かず、管理設定からだけ読まれます。社員が設定ファイルに書いた従来のフック、ステータスライン、/goal はそのまま使えます。

効いているかは、テスト用の端末で claude --plugin-dir ./first-mod のようにmodを指定して起動し、modが動かないこと、デバッグログに allowManagedModsOnly を挙げた拒否のメッセージが出ることで確かめます。

ドキュメントは、方針ごとの設定を次のように整理しています。

方針設定
社員のmodは使わない(設定ファイルのフックは残す)allowManagedModsOnly
自社が配るmodだけ使うallowManagedModsOnly + 自社のmodを「組織のmod」として配置
許可したマーケットプレイスのmodなら使ってよいマーケットプレイスの制限 + disableSideloadFlags
modもフックも一切使わない(管理設定のフックも止まる)disableAllHooks

disableAllHooks は、管理設定で配ったフックまで止まり、PreToolUse フックでの拒否も効かなくなると書かれています。セキュリティのためにフックを配っている会社では、これを選ぶと守りが減る点に注意してください。

自社のmodだけを許す構成

自社で作ったmodを全員に配りたい場合、そのmodが「組織のmod」として扱われる条件が細かく決まっています。

  1. 管理設定の enabledPlugins でそのプラグインを true にする
  2. 管理設定で、プラグインのマーケットプレイスを端末上のディレクトリ(絶対パス)として指定する
  3. マーケットプレイスがプラグインを相対パスで指し、その場所から読み込まれる

GitHub・git・URL・npmから取得してキャッシュにコピーされるプラグインは、管理設定で有効にしても「社員のmod」扱いになり、allowManagedModsOnly の下では読み込まれません。つまり、自社のmodはMDMなどで各端末の同じパスに置き、そのディレクトリを管理者だけが書き込めるようにする必要があります。ドキュメントは「Anyone who can write there can rewrite your mod.」と注意しています。claude.aiの管理コンソールから配る管理設定は、設定の項目は運べても、ディレクトリを端末に置くことはできません。

自社のmodを最初に動かし、他のmodが読み込まれる前に中身を審査する「ポリシー用のmod」も書けます。ドキュメントの例は、$.process.run などを呼ぶ社員のmodを拒否し、ツール呼び出しを監査ログに残すものです。この審査は、処理が例外を出したり時間切れになったりすると「通す」側に倒れるため、.catch で拒否に倒す書き方が併記されています。

導入前に決めておくこと(編集部の提案)

  • ガードが動く条件を満たしているか: APIキーやクラウド経由で使っている端末に、管理設定を配っているかを確認する。配っていなければ、まず管理設定の配布から始める
  • 方針を先に決める: 上の表のどれにするかを決め、決まるまでは allowManagedModsOnly で止めておく。後から緩めるほうが、入ってしまったmodを回収するより簡単です
  • 入れる前に中身を見る: 試したいmodがあれば、claude plugin validate で、受け取るイベント(hooks:)と呼ぶ機能(calls:)を一覧にして確認する。$.process.run・$.http.fetch・$.env.get などが並ぶmodは慎重に扱う
  • 版をそろえる: v2.1.290(10月5日公開)で、社員が入れたmodが組織のプラグインを止めたり、組織のガードの確認を飛ばさせたりできた不具合が修正されています。modを使うなら2.1.290以降にそろえます

リリースの経路にも注意が要ります。Claude Codeには、新しい版をすぐ受け取る latest と、約1週間遅れで大きな不具合のある版を飛ばす stable の2つの更新チャネルがあります。10月6日時点のnpmでは、latest が2.1.290、stable が2.1.285でした。ドキュメントによると、ターミナル版でmodが使えるのは2.1.287以降なので、stable の端末にも近いうちにmodが届く見込みです(デスクトップアプリは同梱のClaude Codeが2.1.286以降で対応)。届く前に方針を決めておくのが安全です。

Claude Codeを全社に展開するときの管理全般はClaude Codeの全社展開とゲートウェイによる統制、承認の仕組みはClaude Codeのオートモードと承認ゲートで整理しています。modはこの承認の前に割り込める点が、従来の仕組みとの大きな違いです。

2026年10月6日に、Claude Codeの公式ドキュメント(「Mods overview」「Manage mods for your organization」「Advanced setup」)、anthropics/claude-code の CHANGELOG.md(v2.1.286〜2.1.290)、npmの @anthropic-ai/claude-code の公開記録を直接取得して照合しました(資料調査)。導入前に決めることは編集部の提案です。管理設定を配った端末でのmodの読み込み・拒否の挙動、デスクトップアプリでの動作は検証していません。

Claude CodeなどAIコーディングツールの社内導入や、開発環境の権限設計は、グリームハブの開発・AI・自動化のご相談で承っています。使い方や端末の管理方法によって適した設定が変わるため、お問い合わせからご相談ください。

参考資料

この記事を共有XFacebook
鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

この記事のテーマを、自社の次の一歩へ

自社での進め方を、具体的に。

つくりたい仕組み、既存システム、運用の条件を整理し、実現に向けた次の一歩を考えます。

  • 実現したい仕組み
  • 既存環境との接続
  • 運用の条件
開発・運用の構想を相談する

構想段階からご相談いただけます。この記事の情報を相談フォームに引き継ぎます。

最新記事をメールで受け取る