VS Code Extension: 'default' permission mode does not prompt before Edit/Write tool calls
Bug Description
The claudeCode.initialPermissionMode setting set to default does not prompt for approval before applying file edits. Edits via the Edit tool are auto-applied without showing a diff or asking for confirmation.
Expected Behavior
In default mode, Claude should show a side-by-side diff of proposed changes and ask the user to accept, reject, or modify before applying edits.
Actual Behavior
Edits are applied immediately without any approval prompt, identical to acceptEdits mode behavior.
Steps to Reproduce
- Open VS Code with Claude Code extension
- Set
claudeCode.initialPermissionModetodefault(either via Settings UI or JSON) - Reload VS Code window (
Cmd+Shift+P→ "Developer: Reload Window") - Start a new Claude Code chat
- Ask Claude to make a test edit to any file
- Edit is applied immediately — no diff shown, no approval requested
Environment
- OS: macOS (Darwin 24.6.0)
- VS Code: Latest
- Claude Code Extension: Latest
- Model: claude-opus-4-5-20251101
Additional Context
Setting was previously acceptEdits
The setting was previously on acceptEdits. After changing to default:
- Verified the VS Code user settings JSON reflects the change
- Toggled through other modes (
acceptEdits→plan→default) to force a write - Reloaded the VS Code window
- Started a fresh chat session
Extension logs confirm mode is received
The extension logs show the set_permission_mode messages are being sent from the webview:
2026-01-27 00:28:35.378 [info] Received message from webview: {"type":"request","channelId":"o7jnd0vart","requestId":"coi0b9qzmnm","request":{"type":"set_permission_mode","mode":"acceptEdits"}}
2026-01-27 00:28:36.051 [info] Received message from webview: {"type":"request","channelId":"o7jnd0vart","requestId":"149pox4m707","request":{"type":"set_permission_mode","mode":"plan"}}
2026-01-27 00:28:36.948 [info] Received message from webview: {"type":"request","channelId":"o7jnd0vart","requestId":"gqo569uypd","request":{"type":"set_permission_mode","mode":"default"}}
The webview is sending the correct mode, but the extension backend is not enforcing it for Edit/Write tool calls.
Tested across multiple sessions
- Multiple test edits across multiple reloads all auto-applied
- Both mid-session setting changes and fresh sessions after reload showed the same behavior
- The
.claude/settings.local.jsonhas Edit/Write in the permissions allow list, which may be overriding the permission mode
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗