Claude Codeを使い始めると、ファイルの書き換えやコマンドの実行ごとに確認を求められます。
作業が止まるためすべて許可したくなりますが、意図しない破壊的な操作が起きたときに止める仕組みが失われます。
この記事では、確認の頻度を抑えつつ、危険な操作を確実に防ぐための設定方法を解説します。
全体の動作を決める権限モードと、操作ごとに指定する許可ルールの2つが基本です。
確認を求められる仕組み
Claude Codeは、実行するツールの種類に応じて確認が必要かどうかを判定しています。
| 種類 | 例 | 確認 |
|---|---|---|
| 読み取り | ファイルの読み込み、検索 | 作業ディレクトリ内なら不要 |
| シェルコマンド | コマンドの実行 | 必要(読み取り専用を除く) |
| 書き換え | ファイルの編集・作成 | 必要 |
つまり、デフォルトで確認が発生するのは主に「書き換え」と「コマンド実行」の2つです。
読み取り操作で確認を求められる場合は、作業ディレクトリ外のファイルを参照しようとしています。
その場合は起動時に --add-dir でディレクトリを追加するか、設定の permissions.additionalDirectories にパスを記述します。
6つの権限モード
セッション全体の権限動作は権限モードで制御します。
| モード | 動作 |
|---|---|
default | ツールを初回実行する際に確認する(画面表示はManual) |
acceptEdits | ファイルの編集や、mkdir touch mv cp などの基本コマンドを自動で許可する |
plan | 読み取りのみ許可し、ファイルの変更は行わない(設計や調査向け) |
auto | 自動で実行するが、指示内容と異なる操作はモデル判定でブロックする |
dontAsk | 事前に許可した操作以外は自動で拒否する |
bypassPermissions | 確認をすべてスキップする(適用環境が限定される |
日常の作業で扱いやすいのは acceptEdits です。
コードの編集は自動で進めつつ、外部に影響を与える危険なコマンドの実行時には確認で停止できます。
セッション中にモードを切り替える
Shift+Tab を押すとモードが順番に切り替わります。
起動時にモードを指定する場合は、引数を付けて実行します。
claude --permission-mode acceptEdits起動時のモードを固定したい場合は、設定ファイルに defaultMode を設定します。
{
"permissions": {
"defaultMode": "acceptEdits"
}
}許可ルールで個別の確認を減らす
全体の権限を一括で緩和するよりも、よく使うコマンドを個別に許可する運用のほうが安全です。
ルールには allow(確認なしで許可)、ask(都度確認)、deny(実行を拒否)の3種類があります。
{
"permissions": {
"allow": [
"Bash(npm run test:*)",
"Bash(git commit *)",
"Read"
],
"deny": [
"Bash(git push *)",
"Read(./.env)"
]
}
}構文は ツール名 または ツール名(中身) の形式で記述します。
引数を省略して Bash とだけ指定すると、すべてのシェルコマンドにマッチします。
ワイルドカードの配置による影響
指定位置を誤ると意図しない操作まで許可されるため注意が必要です。
* より前に指定した文字列は、完全一致で評価されます。
| ルール | 許可される範囲 |
|---|---|
Bash(git log *) | git log のみ |
Bash(git *) | git のすべてのコマンド |
コマンド名だけでなく、サブコマンド(log や commit など)まで明示してから * を指定してください。
読み書きの対象を制限する
特定のファイルやパスに対してもルールを設定できます。
Read(./.env) を deny に指定しておくと、機密情報が含まれるファイルの参照を防げます。
外部ドメインへの通信を制限したい場合は、WebFetch(domain:example.com) のように指定します。
設定ファイルの配置場所と優先順位
設定ファイルの配置場所によって、設定の適用範囲が異なります。
| 設定ファイル | 適用範囲 |
|---|---|
.claude/settings.local.json | 現在のユーザー・対象プロジェクトのみ |
.claude/settings.json | プロジェクトの共有設定(リポジトリ管理対象) |
~/.claude/settings.json | 現在のユーザー・全プロジェクト共通 |
複数の設定がある場合は、上位のスコープが優先されます。
ただし allow などのリスト形式の設定は、上書きされず統合(マージ)されます。
各設定ファイルで定義された項目が合算して適用されます。
現在の設定状況を確認するには、/permissions を実行すると有効なルール一覧が表示されます。
確認を全スキップする指定と注意点
すべての確認を省略するオプションも提供されています。
claude --dangerously-skip-permissions--permission-mode bypassPermissions の指定と同等に機能します。
このモードでは、通常保護されている .git や .claude といった重要ディレクトリへの変更も許可されます。
公式ドキュメントでも、コンテナや仮想マシンのような隔離環境でのみ使用するよう推奨されています。
ホストマシンや日常の開発環境での常用は避ける必要があります。
組織全体でこのモードを禁止する場合は、設定で permissions.disableBypassPermissionsMode の値を "disable" に指定します。
常時有効化せず、一時的に切り替えられるようにしたい場合は --allow-dangerously-skip-permissions を指定して起動します。
直接起動するのではなく、Shift+Tab による切り替え候補に追加するオプションです。
トラブルシューティング
「今後は確認しない」を選択しても再度確認される場合
プロンプト上の選択はローカル設定の .claude/settings.local.json に allow ルールとして追記されます。
ただしローカルの allow は、プロジェクトや組織レベルで明示された ask より優先されません。
プロジェクトや組織の共有設定に該当操作の ask が含まれていないか確認してください。
リポジトリに追加した設定が反映されない場合
allow ルールおよび additionalDirectories は、そのディレクトリを信頼済みとして許可するまで有効になりません。
他のメンバーがリポジトリを新規取得した直後は、信頼設定が済むまで確認が発生します。
なお deny および ask は信頼状態にかかわらず即座に反映されます。
defaultMode を指定しても反映されない場合
auto および bypassPermissions の2つは、プロジェクト単位の設定ファイルからは指定できません。
ユーザー個人の設定ファイルに記述するか、起動時の --permission-mode オプションで指定してください。
CLAUDE.md に指示を書いても確認が省略されない場合
ツールの実行権限は、プロンプト解釈ではなくClaude Codeのシステム側で制御されています。
指示プロンプト経由ではセキュリティ権限を変更できません。
/permissions コマンド、設定ファイル、または起動オプションから指定してください。
実用的なおすすめ設定例
普段の開発では、モードを acceptEdits に設定したうえで、破壊的または外部影響のある操作を deny に指定する構成が実用的です。
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(git status)",
"Bash(git diff *)",
"Bash(npm run *)"
],
"deny": [
"Bash(git push *)",
"Bash(rm -rf *)",
"Read(./.env)"
]
}
}元に戻しにくい操作のみを個別にブロックするという設計方針です。
応答言語を日本語に固定する設定も同一の設定ファイルに記述できます。
Claude Codeを日本語で使うで解説しています。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
導入と設定の記事は、ほかにもあります。



まとめ
- 確認が発生するのは主にファイルの変更とコマンド実行。読み取り操作は作業ディレクトリ内であれば確認不要
- まずは
acceptEditsを試す。セッション中はShift+Tabで素早く切り替え可能 - 頻出コマンドは
allowに個別追加する。ワイルドカードは*必ずサブコマンドの後ろに指定する - 全確認のスキップは、安全が担保された隔離環境でのみ使用する
- 現在適用されているルールは
/permissionsで確認可能
この記事は2026年9月9日時点の公式ドキュメントにもとづいています。
仕様やオプションの構文はアップデートされる可能性があるため、最新の公式ドキュメントもあわせてご確認ください。
