Set acceptEdits Mode to Skip File-Write Prompts
Clicking "Allow" every time Claude wants to write a file gets old fast. But handing over bash approval with --dangerously-skip-permissions feels like too much. acceptEdits is the mode most people don't know exists.
// ~/.claude/settings.json
{
"defaultMode": "acceptEdits"
}
With acceptEdits active, Claude can freely create, edit, and delete files without stopping to ask. It will still pause and ask for your approval before running any bash or shell command. That means no surprise rm -rf calls, no rogue git push, but also no endless clicking through file-write confirmations.
There are actually five permission modes in Claude Code:
- default — asks before every file write and bash command
- acceptEdits — auto-approves file edits, still asks for bash
- plan — read-only, Claude can look but cannot touch anything
- auto — an AI classifier watches each action and decides in real time
- bypassPermissions — skips all checks, for isolated sandboxes only
You can set acceptEdits as your default in ~/.claude/settings.json (as shown above), or cycle to it mid-session by pressing Shift+Tab until you see the mode label change.
It is a solid default for day-to-day coding where you trust Claude with the files but want a human in the loop before anything runs on your machine.
acceptEdits gives you the speed of automation with a safety net where it actually matters — bash commands.
via @xankriegor_
Log in to leave a comment.
When Claude writes error messages, button labels, validation text, or onboarding flows, it defaults to generic developer-speak. Add a "Users" section to your CLAUDE.md describing who your actual users are — their technical level, industry jargon, and what they care about — so Claude writes copy that makes sense to THEM, not to developers.
Use the --agent flag with custom markdown files in .claude/agents/ to launch purpose-built Claude sessions with restricted tools and scoped system prompts.
Every project has traps — the billing module that silently fails if you forget to queue the job, the legacy table with column names that don't match the model, the config value that must be set before tests run. Document these gotchas in your CLAUDE.md so Claude avoids the same mistakes your team spent days debugging.