You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have searched existing requests and this feature hasn't been requested yet
This is a single feature request (not multiple features)
Problem Statement
Claude Code's built-in bash safety heuristics trigger interactive "Do you want to proceed?" prompts on common, legitimate shell patterns — and unlike allowlist-based permission prompts, these cannot be permanently suppressed through permissions.allow rules, acceptEdits mode, or "don't ask again."
For power users running Claude Code interactively on their own machines, these prompts fire dozens of times per session on routine development commands. The prompts have no "don't ask again" option, so each one requires manual intervention — even when the command prefix is explicitly in the allowlist.
Proposed Solution
A setting to configure the behavior of individual safety heuristic categories. For example:
When set to "allow", the heuristic check would still run but would auto-approve instead of prompting. This preserves the detection logic (it could still log warnings) while removing the interactive friction.
This is the complement to #28993, which proposes auto-deny so Claude reformulates. Both approaches want to eliminate the interactive prompt — this one for users who trust their local shell environment and want flow, #28993 for users who want stricter automatic enforcement.
Alternative Solutions
--dangerously-skip-permissions: Too broad — disables all permission checks, not just heuristics. Intended for containers, not interactive use.
Avoiding trigger patterns: Claude could use simpler commands (e.g., no heredocs in commits), but this sacrifices formatting quality and forces workarounds for standard shell patterns.
Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
User has Bash(git:*) in their allowlist and acceptEdits mode enabled
Preflight Checklist
Problem Statement
Claude Code's built-in bash safety heuristics trigger interactive "Do you want to proceed?" prompts on common, legitimate shell patterns — and unlike allowlist-based permission prompts, these cannot be permanently suppressed through
permissions.allowrules,acceptEditsmode, or "don't ask again."Patterns that trigger these prompts include:
$()command substitution (e.g.,git commit -m "$(cat <<'EOF'...)"— Claude's own recommended commit format)gh pr createbodies)forloops, multi-step scripts)#comments ("can desync quote tracking")cdand output redirectionFor power users running Claude Code interactively on their own machines, these prompts fire dozens of times per session on routine development commands. The prompts have no "don't ask again" option, so each one requires manual intervention — even when the command prefix is explicitly in the allowlist.
Proposed Solution
A setting to configure the behavior of individual safety heuristic categories. For example:
{ "bashSafety": { "commandSubstitution": "allow", "newlines": "allow", "ansiQuoting": "allow", "ambiguousSyntax": "prompt" } }Or a simpler blanket setting:
{ "bashSafety": "allow" }When set to
"allow", the heuristic check would still run but would auto-approve instead of prompting. This preserves the detection logic (it could still log warnings) while removing the interactive friction.This is the complement to #28993, which proposes auto-deny so Claude reformulates. Both approaches want to eliminate the interactive prompt — this one for users who trust their local shell environment and want flow, #28993 for users who want stricter automatic enforcement.
Alternative Solutions
--dangerously-skip-permissions: Too broad — disables all permission checks, not just heuristics. Intended for containers, not interactive use.Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
Bash(git:*)in their allowlist andacceptEditsmode enabledgit add file.php && git commit -m "$(cat <<'EOF' ... EOF)""bashSafety": "allow"and commits flow without interruptionAdditional Context