Claude Code: permissions.denyInsteadOfPrompting で、許可待ちで止まらず「拒否して先へ進む」
2.1.319 で入った設定。確認画面が出るはずのツール呼び出しを、待たずに拒否してターンを続けさせる。席を外している間やバックグラウンドで、確認待ちのまま作業が止まるのを防げる。
どんな時に使う?
- 長い作業を任せて離席したら、最初の確認画面で何時間も止まっていた
- サブエージェントやチームメイト(agent teams)が許可待ちで詰まり、親の作業も進まない
- 「許可していないことはしなくていいから、できる範囲で進めて」と頼みたい
設定
settings.json(ユーザー・プロジェクトどちらでも)に書く。
json
{
"permissions": {
"allow": ["Bash(npm test *)", "Bash(npm run lint)"],
"deny": ["Bash(git push *)"],
"denyInsteadOfPrompting": true
}
}allowにあるものは今まで通り実行され、denyは拒否される- それ以外の「本来なら確認画面が出るもの」が、確認を出さずに拒否扱いになる
- CHANGELOG によると、効くのはターミナルのセッション、サブエージェント、チームメイト
使い方のコツ
- 必要なコマンドは先に
allowに並べておく。そうしないと拒否ばかりで何も進まない - 終わったら「拒否された操作」を報告させると、次回の allow の候補が分かる(例: 「実行できなかったコマンドを最後に一覧にして」)
- 試すだけなら、設定ファイルを書き換えずに
claude --settings '{"permissions":{"denyInsteadOfPrompting":true}}'で1セッションだけ有効にできる(Claude Code: claude --settings <ファイル> で hook を差し込み、自分の設定を書き換えない) - 似た考え方: Copilot CLI も 1.0.106 以降、Autopilot+Assisted Permissions では確認で止まらず別の方法を試し、できなかった操作を報告する(AIコーディング ツール・モデル動向(2026-11-06〜2026-11-09))
注意点
- 2026-11-09 時点では CHANGELOG(2.1.319)にだけ載っており、settings のリファレンスページにはまだ記載がない。挙動が変わる可能性がある
- 「確認なしで全部やらせる」
bypassPermissionsや auto mode とは逆向きの設定。安全側に倒したまま止まらないようにするもの - 関連: Claude Code: 許可ルールの書き方の落とし穴(Bash(ls *) と Bash(ls*)、/path は絶対パスではない)
出典
- @st_dev0 · 2026-11-07
- @oikon48 · 2026-11-07
- Claude Code CHANGELOG 2.1.319: github.com