There are six permission modes, and Shift+Tab cycles only three.
It cycles default, acceptEdits and plan. Bypass appears only if enabled at launch, and dontAsk never appears. Start any mode with --permission-mode.
claude --permission-mode plan
One at a time. Tell it whether you knew, and the ones you did not stay in your pile.
It cycles default, acceptEdits and plan. Bypass appears only if enabled at launch, and dontAsk never appears. Start any mode with --permission-mode.
claude --permission-mode plan
It cycles default, acceptEdits and plan. Bypass appears only if enabled at launch, and dontAsk never appears. Start any mode with --permission-mode.
defaultMode: "auto" in a project settings file is silently ignored.Only user or managed settings honour it, so a repository cannot switch your session into auto or bypass.
Claude Code then goes back to prompting you. A pattern of blocks is a sign the task needs a narrower allow rule.
Saying "don't push" works as a block signal, but compaction can drop it. For a hard never, use a deny rule or a hook.
mkdir, touch, rm, rmdir, mv, cp and sed in the working directory.It covers more than file edits, so know what you are approving before you switch to it.
Read(./.env) deny also stops cat .env, but not a script that opens the file.Common file-reading commands are recognised. For real confinement turn on /sandbox.
/fewer-permission-prompts writes a read-only allowlist from your own transcripts.It scans past sessions and edits .claude/settings.json, so the prompts you always approve stop appearing.
So a deny rule is the one guard that follows you into every mode.