Claude Codeを社内のチームに配ろうとすると、必ず出てくるのが「何を許して、何を止めるか」という相談です。私も研修先で「高い方のモデルは予算が読めないから、勝手に使われたくない」という要望をよく聞きます。

2026年6月15日に出た Claude Code v2.1.178 で、この手の細かい制御がしやすくなりました。権限ルールに Tool(param:value)(ツール名のうしろにカッコで条件を書き足す書き方)という新しい指定方法が加わっています。

これまではツール単位までだった

Claude Codeには、操作を許可するか確認するかを決める「権限ルール」という仕組みがあります。設定ファイルに、許可リスト(allow)と拒否リスト(deny)を書いておくものです。権限の基本は別記事にまとめました。

これまでは、この指定が「ツール単位」までしかできませんでした。ここでいうツールとは、ファイルの編集やコマンドの実行など、Claude Codeができる操作の一つひとつのことです。

たとえば「サブエージェント(本体とは別に裏でもう一つClaudeを動かして手伝わせる仕組み)の起動を止める」ことはできても、「Opusを使うサブエージェントだけ止める」のような、中身の条件での指定はできなかったのです。

v2.1.178で増えた書き方

新しく加わったのが Tool(param:value) という形です。ツールに渡される入力の中身まで見て、条件に合うものだけを対象にできます。* を使ったあいまい指定にも対応しています。

公式がルールの例として挙げているのが Agent(model:opus) という書き方です。これを設定ファイル(JSONという形式で書きます)の拒否リストに入れると、次のような形になります。

{
  "permissions": {
    "deny": ["Agent(model:opus)"]
  }
}

Agent(model:opus) と書くと、Opusを使うサブエージェントの起動だけをブロックできます。Opusは性能が高いぶん料金も高いモデルで、SonnetやHaikuはより軽くて安いモデルです。Sonnet・Haikuのサブエージェントはそのまま使えるので、つまり「重くて高いモデルだけ封じる」が一行で書けるようになりました。仕組みの詳しい話は下の記事にあります。

何がうれしいのか

正直に言うと、最初にこの変更を見たときは「地味だな」と思いました。でも社内導入の現場を思い出して、考えが変わりました。

たとえば、研修中の受講者には高いモデルを使わせず、まずSonnetで練習してもらう。慣れてきたら制限を外す。こういう運用が、設定一行で組めます。予算の上限が読みやすくなるので、決裁を取る側も安心しやすい。

モデルごとの料金や違いは、別記事で整理しています。どのモデルをどこまで開放するか考えるときの材料になるはずです。

使うときの注意

この書き方が使えるのは Claude Code が v2.1.178 以降のときです。手元のバージョンは、ターミナル(コマンドを打つ画面)で claude --version と打てば確認できます。古ければ claude update で更新してください。

それと、権限ルールは書き方を一文字間違えると意図どおりに効きません。私は最初、拒否リストに入れたつもりが場所を間違えていて、まったくブロックされていませんでした。設定したら、実際に対象の操作を試して、ちゃんと止まるかを必ず確認してください。設定ファイルの場所や書き方は下の記事にあります。

細かい権限制御は、個人で使うぶんには出番が少ないかもしれません。ただ、チームや会社で配るとなると話は別で、こういう一行の積み重ねが「安心して任せられるかどうか」を左右します。地味だけれど、社内導入を考える人にとっては効いてくる変更です。