[FEATURE] Mode-aware command permissions in Accept mode
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Currently, when Claude Code proposes a command, it asks:
Do you want to proceed?
1. Yes
❯ 2. Yes, don’t ask again for this command in /project/path
3. No
Claude Code remembers the choice per project, but ignores the active mode.
- Even if the user is in Plan or Normal mode, the “don’t ask again” permission applies
- Users cannot limit “always allow” to Accept mode only, which is the intended hands-off workflow
- This reduces the value of Accept mode, because command permissions are effectively permanent across modes
Proposed Solution
Make command permission persistence mode-aware, not only project-aware
Make command permission persistence mode-aware, so “don’t ask again” choices are honored only while Accept mode is active.
Proposed behavior
- Accept mode
- Users can explicitly allow a command without further prompts
- The permission is active only while Accept mode is enabled
- Plan mode / Normal mode
- Command execution always requires confirmation
- No previously granted permissions persist
Example prompt (proposed UX)
Do you want to proceed?
1. Yes
❯ 2. Always allow this command in /project/path while Accept mode is enabled
3. No
Note: it is important to make explicit "while Accept mode is enabled" to make the user aware
Behavior:
- Selecting option 2 suppresses future prompts for the same command in /project/path
- The permission is automatically revoked when leaving Accept mode
How to Distinguishing General vs. Accept-Mode Scoped Permissions
There are two types of command permission options:
- General project permission:
❯ 2. Always allow this command in /project/path
- Applies in all modes
- User will not be prompted again for this command while in the project
- Accept-mode scoped permission:
❯ 2. Always allow this command in /project/path while Accept mode is enabled
- Applies only while Accept mode is active
- Once the user switches back to Plan or Normal mode, the command will prompt again using the general permission option
Behavior:
- If the user is in Normal or Plan mode -> show the general permission option
- If the user is in Accept mode -> show the Accept-mode scoped option
Implementation Suggestion
Add a dedicated field in the project’s settings.local.json to store scoped permissions. Example structure:
{
"permissions": {
"allow": [
"Bash(git pull:*)",
"Bash(ls:*)"
],
"accept_mode_only": [
"Bash(git push:*)",
"Bash(git commit -m *)",
"Bash(python manage.py migrate)"
]
}
}
Alternative Solutions
Keep the current behavior, where command permissions persist independently of the active mode.
Limitations of this approach:
- Encourages over-granting long-lived permissions
- Makes Accept mode feel incomplete
- Forces users to manually manage or reset permissions
Priority
High - Significant impact on productivity
Feature Category
Other
Use Case Example
Example 1 (Scoped request):
- User enables Accept mode
- Claude proposes this-command
- User selects "2. Always allow this-command command in /project/path while Accept mode is enabled"
- Claude executes the command without further confirmation, when Accept mode is enabled
- User switches to Plan or Normal mode
- Claude proposes this-command
- User selects "2. Always allow this-command command in /project/path"
- Claude executes the command without further confirmation, regardless of the mode
Example 2 (Allow in all modes):
- User is in Normal mode
- Claude proposes this-command
- User selects "2. Always allow this-command command in /project/path"
- Claude executes the command without further confirmation, regardless of the mode
Example 3 (Most common usage, the user allow the command only when in Accept mode, the change is persistent for the project but active only in Accept mode):
- User enables Accept mode
- Claude proposes this-command
- User selects "2. Always allow this-command command in /project/path while Accept mode is enabled"
- Claude executes the command without further confirmation, when Accept mode is enabled
- User switches to Plan or Normal mode
- Claude proposes this-command
- User selects "1. Yes"
- Claude executes the command, but it will ask again next time
- Claude proposes this-command
- User selects "1. Yes"
- Claude executes the command, but it will ask again next time
- User enables Accept mode
- Claude proposes this-command and executes the command without waiting confirmation when Accept mode is enabled
- User switches to Plan or Normal mode
- Claude proposes this-command
- User selects "1. Yes"
- Claude executes the command, but it will ask again next time
Additional Context
This change would make command permissions:
- Context-aware (bound to the active mode)
- Reversible (no manual cleanup required)
- Aligned with existing mode semantics, rather than always permanent
It preserves safety in Plan and Normal modes while making Accept mode genuinely hands-off and efficient for iterative workflows.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗