Claude Code の /permissions コマンドでできること(ルール確認と追加)

Claude Code 公開:

/permissions でどのルールがどの設定ファイル由来かを確認し、その場でルールを追加・削除する方法、Auto mode タブと Recently denied タブの使い方を公式ドキュメントを元に解説します。

検証日 2026年9月8日 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。
目次
  1. ルールの一覧と出どころを確認する
  2. ルールを追加する場所を意識する
  3. Auto mode タブと Recently denied タブ
  4. 確認できなかったこと
  5. まとめ

権限まわりのトラブルは、たいてい「今どのルールが効いているのか分からない」ことが原因です。settings.json はユーザー・プロジェクト・ローカル・管理者と複数の場所にあり、手で追いかけると見落とします。

/permissions は、その全部をまとめて表示するコマンドです。ルールの一覧と、それぞれがどの settings.json 由来かが表示され、その場で追加も削除もできます。

KEY POINT

この記事で分かること

  • /permissions で何が見えて、何を編集できるか
  • 追加したルールがどの設定ファイルに保存されるか
  • Auto mode タブと Recently denied タブの役割

ルールの一覧と出どころを確認する

/permissions を実行すると、すべての権限ルールと、各ルールがどの settings.json から来ているかが表示されます。「このプロジェクトでは許可したはずのコマンドが毎回確認される」といった場合は、まずここで別スコープの ask や deny が勝っていないかを見ます。

ダイアログは Claude が作業している最中でも開けます。ルールを追加または削除すると、同じターンの次のツール呼び出しから変更が反映されます。v2.1.234 より前は、ターンが終わるまでコマンドが待たされていました。

用語解説

ルールを決めるのは Claude ではない: 権限ルールを適用するのは Claude Code 本体であり、モデルではありません。プロンプトや CLAUDE.md に書いた指示は Claude の振る舞いを変えますが、Claude Code が何を許すかは変えません。権限を与えたり取り消したりするには、/permissions、設定ファイルのルール、権限モード、PreToolUse フックのいずれかを使います。

ルールを追加する場所を意識する

/permissions から追加したルールは、保存先に選んだ設定ファイルのルールとして扱われます。これは /path 形式のパターンを書くときに効いてきます。同じ Read(/secrets/**) でも、起点が保存先によって変わるからです。

保存先/path の起点
プロジェクト設定 .claude/settings.jsonプライマリ作業ディレクトリ
ローカル設定 .claude/settings.local.jsonプライマリ作業ディレクトリ
ユーザー設定 ~/.claude/settings.json~/.claude/

権限プロンプトで「Yes, and don't ask again」を選んだ場合の保存先は別です。Bash コマンドや WebFetch のドメインのように恒久的に保存される承認は、git リポジトリのルートの .claude/settings.local.json に書かれ、そのリポジトリ配下のセッションすべてに効きます。ファイル編集の承認は保存されず、セッション終了までで切れます。

「don't ask again」が出ないときがある

コマンドや編集内容が長すぎる場合など、ルールが何を許すことになるかを画面に出し切れないとき、Claude Code は恒久承認の選択肢を出しません。そのときは一度だけ承認し、必要なら /permissions で自分でルールを書きます。公式ドキュメントもその手順を案内しています。

Auto mode タブと Recently denied タブ

auto モードが使えるセッションでは、ダイアログに Auto mode タブが追加されます。分類器(classifier)のルールを設定ファイルを開かずに編集するためのタブで、Claude Code v2.1.246 以降で使えます。

  • allowsoft_denyhard_denyenvironment の各エントリを、分類器が読むスコープごとに一覧表示します。
  • 管理者設定や --settings 由来のエントリは読み取り専用です。編集内容はすべて ~/.claude/settings.json に保存されます。
  • あるセクションに最初のルールを足すと、"$defaults" も一緒に挿入され、組み込みルールが残ります。

Recently denied タブには、auto モードの分類器が拒否した操作が記録されます。行を選んで r を押すと再試行の印が付き、ダイアログを閉じたときに Claude Code が「その呼び出しを再試行してよい」というメッセージを送って会話を再開します。

拒否の記録には抜けがある

分類器が判定を出せなかった場合、Claude Code は操作を拒否しますが Recently denied には記録しません。またこのタブはシェルコマンドを、Claude が書いた説明文で表示します。正確な入力値が必要なら、PermissionDenied フックで tool_input を受け取ってください。

確認できなかったこと

権限モード自体の切り替えを /permissions から行えるかは、公式ドキュメントでは確認できませんでした。モードの切り替えについては、Shift+Tab で循環させる方法が案内されています。作業ディレクトリの追加も同様で、/add-dir コマンドと設定の additionalDirectories が公式の手段として書かれています。

ルールの設計そのものは、親記事の settings.json で permissions を設計する にまとめてあります。個人用の設定ファイルの扱いは settings.local.json とは、deny の具体例は .env を読ませない deny 設定 を参照してください。

まとめ

  • /permissions は全ルールと、その出どころの設定ファイルを一覧表示する
  • 作業中でも開け、変更は同じターンの次のツール呼び出しから効く
  • /path の起点は保存先の設定ファイルで変わるため、保存先を意識して書く
  • 「Yes, and don't ask again」の恒久承認はリポジトリルートの .claude/settings.local.json に入る
  • auto モードが使えるセッションでは Auto mode タブと Recently denied タブが増える

よくある質問

作業中に /permissions を開いても大丈夫ですか?
問題ありません。Claude が作業している最中でも開けます。ルールを追加または削除すると、同じターンの次のツール呼び出しから反映されます。v2.1.234 より前は、ターンが終わるまでコマンドが待たされていました。
「Yes, and don't ask again」で承認したルールはどこに保存されますか?
Bash コマンドや WebFetch のドメインのように恒久保存される承認は、git リポジトリのルートにある .claude/settings.local.json に保存されます。ファイル編集の承認は保存されず、セッション終了までの有効です。
/permissions で権限モードそのものを切り替えられますか?
公式ドキュメントでは確認できませんでした。モードの切り替えは Shift+Tab で循環させる方法が公式に案内されています。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合はお問い合わせからお知らせください。