「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 コマンドを使用してモードを切り替えます。
設定は階層構造に従います。より広いスコープの設定が常に優先されます。
- エンタープライズポリシー
- ユーザー設定 (~/.claude/settings.json)
- プロジェクト設定 (.claude/settings.json)
- プロジェクトローカル (.claude/settings.local.json)
ルールは、allow、deny、ask というシンプルな形式を使用します。
重要:評価の順序は 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
