「Approve」をクリックするのはもうやめよう:Claude Code CLI の権限をカスタマイズする方法

Claude Code を使った最初のタスクでは、作業内容を確認するよりも「Approve」をクリックしている時間の方が長くなってしまいました。

すべてのファイルの読み取り。すべての git status。すべてのコマンド。

最終的に、40回ものプロンプトをクリックして進めていました。開始時よりも、変更内容に対する信頼感が薄れてしまったのです。権限システムによって、内容を読まずにすべてを「とりあえず承認(rubber-stamp)」してしまう癖がついてしまいました。

重要なものだけを承認できるように、権限を設定する必要があります。

Claude Code はチャットウィンドウではありません。ファイルを読み込み、書き込み、シェルコマンドを実行します。「すべてを承認する」という一律のアプローチは危険です。

モードは、特定のルールが存在しない場合に Claude がどのように動作するかを定義します。

• default: 新しいプロジェクトに安全です。Reads: Auto. Edits: Asks. Bash: Asks. • plan: コードレビューに最適です。Reads: Auto. Edits: Blocked. Bash: Blocked. • acceptEdits: アクティブなコーディングに最適です。Reads: Auto. Edits: Auto. Bash: Asks. • bypassPermissions: CI/CD に最適です。Reads: Auto. Edits: Auto. Bash: Auto.

/permissions コマンドを使用してモードを切り替えます。

設定は階層構造に従います。より広いスコープの設定が常に優先されます。

  1. エンタープライズポリシー
  2. ユーザー設定 (~/.claude/settings.json)
  3. プロジェクト設定 (.claude/settings.json)
  4. プロジェクトローカル (.claude/settings.local.json)

ルールは、allowdenyask というシンプルな形式を使用します。

重要:評価の順序は deny、次に ask、最後に allow です。deny が常に優先されます。

ツールを完全に無効にするには、その名前をそのまま使用します。ツールを制限するには、glob パターンを使用したスコープ付きのルールを使用します。

アクティブな開発のための例:

  • Allow: Bash(npm run *), Bash(git status)
  • Deny: Bash(rm -rf *), Bash(curl *)
  • Ask: Bash(git push *)

機密データを保護することもできます。.env のようなファイルに対して deny ルールを使用することで、Claude が認証情報を決して読み取らないようにできます。

ワークフローのためのプロのヒント:

  • CLI で /permissions を使用して、インタラクティブな UI を開きます。
  • 2回以上承認することになった操作については、ルールを追加してください。
  • ファイルを変更せずに単一のセッションに対してルールを設定するには、--permission-mode のようなフラグを使用します。
  • CI/CD では、bypassPermissions を厳格な deny ルールと併用して、環境の安全を確保してください。

「とりあえず承認」はやめて、設定を始めましょう。

Source: https://dev.to/kapoormanish/stop-clicking-approve-how-to-customize-claude-code-cli-permissions-pnh

Optional learning community: https://t.me/GyaanSetuAi