[DOCS] Accept Edits docs contradict filesystem command auto-approval behavior
Documentation Type
Incorrect/outdated documentation
Documentation Location
https://code.claude.com/docs/en/permission-modes
Section/Topic
acceptEdits mode behavior, especially which filesystem Bash commands are auto-approved and how safe env-var or wrapper-prefixed forms are handled
Current Documentation
The permission modes page currently says:
acceptEdits mode lets Claude create and edit files in your working directory without prompting. Writes to protected paths and all non-edit actions still prompt the same as default mode.
Related user-facing pages repeat the same behavior model:
Claude auto-accepts file edits but still asks before running terminal commands.
* Auto-accept edits: Claude edits files without asking, still asks for commands
acceptEditslets Claude write files without prompting, but shell commands and network requests still need an--allowedToolsentry or apermissions.allowrule, otherwise the run aborts when one is attempted:
At the same time, the Agent SDK permissions page already documents broader behavior:
Auto-approves file operations so Claude can edit code without prompting. Other tools (like Bash commands that aren't filesystem operations) still require normal permissions.
Auto-approved operations: File edits (Edit, Write tools) Filesystem commands:mkdir,touch,rm,mv,cp
What's Wrong or Missing?
Changelog v2.1.97 adds another user-visible detail:
Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers (e.g.LANG=C rm foo,timeout 5 mkdir out)
The current docs are inconsistent and outdated:
A. Main Claude Code docs still describe acceptEdits as “file edits only” or “still asks for commands”
That is no longer accurate if filesystem Bash commands such as mkdir, touch, rm, mv, and cp are auto-approved in acceptEdits mode.
B. The docs do not explain that safe env-var prefixes and safe process wrappers preserve filesystem-command auto-approval
Users cannot tell whether common variants like LANG=C rm foo or timeout 5 mkdir out should prompt, be auto-approved, or require extra allow rules.
C. Headless guidance is especially misleading for automation
The headless page currently says shell commands still need --allowedTools or permissions.allow rules in acceptEdits mode. That appears too broad if filesystem commands are auto-approved, including safe prefixed/wrapped forms.
Suggested Improvement
Update the acceptEdits documentation on the main Claude Code pages to match current behavior:
- Clarify that
acceptEditsauto-approves file edits and a limited set of filesystem Bash commands in the working directory (for examplemkdir,touch,rm,mv,cp), except protected paths. - Add a short note that safe env-var prefixes and safe wrappers are treated the same way, with examples from the changelog such as
LANG=C rm fooandtimeout 5 mkdir out. - Keep the distinction that other Bash commands and network requests still follow the normal permission flow unless separately allowed.
- Align
permission-modes,permissions,desktop,how-claude-code-works, andheadlessso they all describe the same behavior.
Impact
Medium - Makes feature difficult to understand
Additional Context
Affected Pages:
| Page | Context |
|------|---------|
| https://code.claude.com/docs/en/permission-modes | Says acceptEdits prompts for "all non-edit actions" |
| https://code.claude.com/docs/en/permissions | Permission mode table describes acceptEdits as auto-accepting file edit permissions only |
| https://code.claude.com/docs/en/desktop | Says Auto accept edits still asks before running terminal commands |
| https://code.claude.com/docs/en/how-claude-code-works | Says Auto-accept edits "still asks for commands" |
| https://code.claude.com/docs/en/headless | Says shell commands still need --allowedTools or permissions.allow in acceptEdits mode |
| https://code.claude.com/docs/en/desktop-quickstart | Describes Auto accept edits as auto-accepting file edits only |
| https://code.claude.com/docs/en/security | Says Accept Edits keeps permission prompts for commands with side effects |
| https://code.claude.com/docs/en/agent-sdk/permissions | Agent SDK cross-reference already documents filesystem-command auto-approval |
Total scope: 7 user-facing pages appear affected, plus 1 Agent SDK cross-reference page
Source: Changelog v2.1.97
Exact changelog entry: Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers (e.g. LANG=C rm foo, timeout 5 mkdir out)
5 Comments
Adding some hands-on test results that confirm the behavior described here and highlight why the current
acceptEditssemantics go beyond "file edits":Test setup: Claude Code on macOS,
~/.agents/settings.json(custom dir withCLAUDE_CONFIG_DIR) with"defaultMode": "acceptEdits", normin the allow list, no deny rules.Observed:
| Mode |
rm <file>behavior || --- | --- |
|
acceptEdits| Runs with no prompt, no visible approval UI ||
default| Prompts the user normally, can approve/deny per-call ||
deny: ["Bash(rm:*)"]| Hard block (no prompt, no override, command refused outright) |This matches what the Agent SDK docs describe (
rm,mv,cp,mkdir,touchauto-approved) but contradicts the main permission-modes doc that still says "still asks for commands".Beyond the docs inconsistency, there's a design concern worth flagging:
acceptEditsis marketed and widely understood as "auto-approve file edits". Users reasonably expect this to mean theEdit/Writetools, not arbitrary destructive Bash verbs. In practice, a single model-generatedrm -rf <path>underacceptEditswill execute silently with zero friction; the only thing that stopped it in my testing was an explicitdenyentry. Prefix extensions from v2.1.97 (LANG=C rm foo,timeout 5 rm -rf foo) widen the surface further.Suggestions:
acceptEditsauto-approval, at minimumrm -rf,rm -r, andrm -f. These are not "edits" in any reasonable reading of the term, and requiring adenyrule as the sole guard is a footgun: deny is a hard block with no per-call override, so users who want a prompt-once experience have no middle ground.defaultandacceptEditsthat auto-approvesEdit/Writeonly, leaving all Bash (filesystem or otherwise) on the normal prompt path.Just checked the current docs again. This issue is not fully resolved yet.
Still relevant as of 2026-05-28. I checked the current docs and this documentation gap still appears unresolved.
Issue #45474 Verification
Title: [DOCS] Accept Edits docs contradict filesystem command auto-approval behavior
Issue Date: 2026-04-08
Verification Date: 2026-06-23
Status: RESOLVED
---
Issue Summary
This issue reports that the documentation for Claude Code's
acceptEditspermission mode is inconsistent and outdated. Specifically, the reporter notes that the main docs still describeacceptEditsas "file edits only" or "still asks for commands," even though the changelog for v2.1.97 (April 8, 2026) introduced auto-approval for filesystem Bash commands (mkdir,touch,rm,mv,cp) and safe env-var/process wrapper prefixes (e.g.LANG=C rm foo,timeout 5 mkdir out). The reporter requested updates acrosspermission-modes,permissions,desktop,how-claude-code-works,headless,desktop-quickstart,security, and the Agent SDKpermissionscross-reference page.---
Verification Results
Claim 1:
permission-modesdescribesacceptEditsas "file edits only" or "still asks for commands"Status: RESOLVED
The
permission-modespage now describes the new behavior in detail. At https://code.claude.com/docs/en/permission-modes, lines 107-109:The mode summary table at line 18 also reflects this:
Verdict: The page has been updated to document filesystem-command auto-approval and the env-var/wrapper prefix behavior.
---
Claim 2:
permissionsdescribesacceptEditsas auto-accepting file edit permissions onlyStatus: RESOLVED
At https://code.claude.com/docs/en/permissions, line 44:
Verdict: The permissions table now matches the new behavior.
---
Claim 3:
desktopsays Auto accept edits still asks before running terminal commandsStatus: RESOLVED
At https://code.claude.com/docs/en/desktop, line 72:
Verdict: Updated to clarify that the common filesystem commands are auto-approved while other terminal commands still prompt.
---
Claim 4:
how-claude-code-workssays Auto-accept edits "still asks for commands"Status: RESOLVED
At https://code.claude.com/docs/en/how-claude-code-works, line 158:
Verdict: The wording now distinguishes common filesystem commands (auto-approved) from other commands (still prompts).
---
Claim 5:
headlesssays shell commands still need--allowedToolsorpermissions.allowinacceptEditsmodeStatus: RESOLVED
At https://code.claude.com/docs/en/headless, line 199:
Verdict: The headless guidance now correctly limits the
--allowedToolsrequirement to "other shell commands" while calling out the filesystem commands that are auto-approved.---
Claim 6:
desktop-quickstartdescribes Auto accept edits as auto-accepting file edits onlyStatus: RESOLVED
At https://code.claude.com/docs/en/desktop-quickstart, line 106:
Verdict: This is a brief overview paragraph that no longer contradicts the new behavior. The detailed mode table on the linked
desktoppage (Claim 3) describes the filesystem-command auto-approval; the quickstart sentence is consistent and does not claim "file edits only."---
Claim 7:
securitysays Accept Edits keeps permission prompts for commands with side effectsStatus: RESOLVED
At https://code.claude.com/docs/en/security, line 30:
Verdict: Updated to enumerate the auto-approved filesystem commands and clarify that other commands and out-of-scope paths still prompt.
---
Claim 8: The docs do not explain that safe env-var prefixes and safe process wrappers preserve filesystem-command auto-approval
Status: RESOLVED
At https://code.claude.com/docs/en/permission-modes, line 109:
Verdict: The env-var and wrapper-prefix behavior is now documented with the changelog examples (
LANG=C) and additional wrappers (NO_COLOR=1,timeout,nice,nohup).---
Claim 9: The Agent SDK
permissionscross-reference already documents filesystem-command auto-approvalStatus: RESOLVED
At https://code.claude.com/docs/en/agent-sdk/permissions, line 92:
Verdict: The Agent SDK page is consistent with the main docs.
---
Current State
| Claim | Status |
|-------|--------|
|
permission-modesdescribesacceptEditsas "file edits only" or "still asks for commands" | RESOLVED ||
permissionsdescribesacceptEditsas auto-accepting file edit permissions only | RESOLVED ||
desktopsays Auto accept edits still asks before running terminal commands | RESOLVED ||
how-claude-code-workssays Auto-accept edits "still asks for commands" | RESOLVED ||
headlesssays shell commands still need--allowedToolsorpermissions.allowinacceptEditsmode | RESOLVED ||
desktop-quickstartdescribes Auto accept edits as auto-accepting file edits only | RESOLVED ||
securitysays Accept Edits keeps permission prompts for commands with side effects | RESOLVED || Docs do not explain safe env-var prefixes and safe process wrappers | RESOLVED |
| Agent SDK
permissionscross-reference already documents filesystem-command auto-approval | RESOLVED |---
Suggested Fix
N/A - issue has been resolved. The
permission-modespage (lines 107-111) and the related user-facing pages now describe the v2.1.97 behavior consistently: file edits plus a defined set of filesystem Bash commands (mkdir,touch,rm,rmdir,mv,cp,sed) are auto-approved inacceptEditsmode, including safe env-var and process-wrapper prefixes. Other shell commands and out-of-scope paths still follow the normal permission flow.---
References
acceptEditsdescription including the auto-approved filesystem commands and env-var/wrapper prefixes---
Conclusion & Recommendation
Primary Concern: The Claude Code docs described
acceptEditsas auto-approving only file edits, which contradicted the v2.1.97 behavior of also auto-approving a defined set of filesystem Bash commands (including safe env-var and process-wrapper prefixes).Resolution Status: RESOLVED
Recommendation: CLOSE
All eight pages called out in the issue have been updated to describe the filesystem-command auto-approval and (on
permission-modes) the env-var/wrapper prefixes from the v2.1.97 changelog, with consistent wording across user-facing and Agent SDK pages.This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.