Skip to content
← Back to release · 2.1.269
New features / v2.1.269

[VSCode] Manage permission rules from a dialog

CHANGELOG · original

[VSCode] Added a Permission rules dialog that lists permission rules and adds or removes them in user, project, and local settings; startup-option, session-only, and managed rules stay read-only
Open official changelog ↗

Documentation

Documentation excerpt

Manage permissions

You can view and manage Claude Code's tool permissions with /permissions. The dialog lists all permission rules and the settings.json file each rule comes from. You can open the dialog while Claude is working: when you add or remove a rule, Claude Code applies the change starting with Claude's next tool call in the same turn. Before v2.1.234, Claude Code queued the command until the turn finished.

  • Allow rules let Claude Code use the specified tool without manual approval.
  • Ask rules prompt for confirmation whenever Claude Code tries to use the specified tool.
  • Deny rules prevent Claude Code from using the specified tool.

Rules are evaluated in order: deny, then ask, then allow. The first match in that order determines the outcome, and rule specificity doesn't change the order.

A broad deny rule like Bash(aws *) blocks every matching call, including calls that also match a narrower allow rule like Bash(aws s3 ls). An allow rule can't carve an exception out of a deny rule. The same precedence applies between ask and allow: a matching ask rule prompts even when a more specific allow rule also matches the same call.

Deny rules behave differently depending on whether they name a tool or scope a pattern within one. A bare tool name like Bash removes the tool from Claude's context entirely, so Claude never sees it. If you add such a rule mid-session, Claude can't call the tool from its next tool call on; Denying an entire tool covers what happens to a definition Claude has already seen. A scoped rule like Bash(rm *) leaves the tool available and blocks matching calls when Claude attempts them.

Bare-name removal applies to every tool except EndConversation: a deny rule can't remove it while any other tool remains, and an ask rule never prompts for it.

Permission rules are enforced by Claude Code, not by the model. Instructions in your prompt or CLAUDE.md shape what Claude tries to do, but they don't change what Claude Code allows. To grant or revoke access, use /permissions, the rules described here, a permission mode, or a PreToolUse hook.

When auto mode is available to your session, the dialog also includes the auto mode classifier rules. Select the Auto mode tab to view them.

Documentation snapshot · 2026-09-23

Change details