[BUG] defaultMode: bypassPermissions in settings.json has no effect — permission prompts still appear

Resolved 💬 14 comments Opened Mar 16, 2026 by lillaszulyovszky Closed Jun 1, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Setting "defaultMode": "bypassPermissions" in both ~/.claude/settings.json and the project-level
.claude/settings.local.json does not suppress permission prompts. Every tool call still triggers an approval
prompt, and approved commands accumulate in the permissions.allow list in settings.local.json, confirming the
bypass is not active.

The only working solution is --dangerously-skip-permissions via CLI flag.

Prompts appear on every tool call. Each approval writes the specific command to settings.local.json under
permissions.allow, growing the allowlist indefinitely.

What Should Happen?

No approval prompts. All tools run automatically as documented.

Error Messages/Logs

Steps to Reproduce

  1. Set {"defaultMode": "bypassPermissions"} in ~/.claude/settings.json
  2. Open a new terminal and start claude in any project
  3. Observe that Bash tool calls still require approval

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.72

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Warp

Additional Information

The settings.local.json file is also being modified in real-time during sessions, causing race conditions
when Claude attempts to write to it (receiving "file modified since last read" errors).

It was working fine in Terminal and in Craft Agents as well.

View original on GitHub ↗

This issue has 14 comments on GitHub. Read the full discussion on GitHub ↗