WebSearch tool permission cannot be persistently allowed within a session — no 'Always Allow' option available

Resolved 💬 3 comments Opened Feb 23, 2026 by hmsonnet Closed Feb 27, 2026

Bug Report: WebSearch Tool Permission Management is Broken

Environment

  • Claude Code version: Latest (installed via Homebrew)
  • OS: macOS (Darwin 25.3.0)
  • Model: Claude Opus 4.6
  • Shell: zsh

Problem Summary

When using the WebSearch tool in Claude Code, there is no way to persistently allow it within the current session. Every single web search invocation requires manual user approval via a popup, and there is no "Always Allow" option presented in the permission dialog. This makes any research-heavy workflow (requiring 10+ web searches) extremely painful and practically unusable.

Detailed Description

Issue 1: No "Always Allow" Option in Permission Popup

When Claude attempts to use the WebSearch tool, a permission popup appears. Unlike other tools (e.g., Bash, Read, WebFetch), the popup for WebSearch does not offer an "Always Allow" or "Allow for this session" option. The user must manually approve or deny every single search request.

When a research task requires 15-20 web searches, the user must click "approve" 15-20 times. If Claude sends 4 parallel searches, the user sees 4 popups in rapid succession — making the experience frustrating and error-prone (users accidentally deny when they meant to approve).

Issue 2: Adding WebSearch to settings.json Does Not Apply to Current Session

When WebSearch is manually added to ~/.claude/settings.json under permissions.allow, the change does not take effect in the running session. It only applies after restarting Claude Code. However, restarting Claude Code destroys the entire conversation context, which defeats the purpose of the fix — the user loses all accumulated research and must start over.

Example of the settings modification that was attempted:

{
  "permissions": {
    "allow": [
      "WebSearch",
      "WebFetch",
      ...
    ]
  }
}

This was confirmed to have no effect on the running session.

Issue 3: Claude's Own Documentation/Knowledge is Incorrect

Claude itself repeatedly advised the user to:

  1. Click "Always Allow" — this button does not exist in the WebSearch permission popup
  2. Run /allowed-tools — this command did not resolve the issue
  3. Modify settings.json — which doesn't apply to the current session

This means Claude is giving incorrect guidance about its own permission system, compounding user frustration.

Steps to Reproduce

  1. Start a new Claude Code session
  2. Ask Claude to perform a research task requiring multiple web searches (e.g., "Research all available AI video generation tools in detail")
  3. Observe that every WebSearch call triggers a permission popup
  4. Note that the popup has no "Always Allow" or "Allow for session" option
  5. Try adding "WebSearch" to ~/.claude/settings.jsonpermissions.allow
  6. Observe that the change has no effect on the current session
  7. The only workaround is restarting Claude Code, which destroys conversation context

Expected Behavior

  1. The WebSearch permission popup should include an "Always Allow" or "Allow for this session" option, consistent with how other tools behave
  2. If WebSearch is added to settings.json, it should take effect immediately (or at minimum, within the current session via a reload mechanism)
  3. Claude should have accurate knowledge of its own permission system and not advise users to use non-existent features

Actual Behavior

  1. No persistent allow option exists in the popup
  2. settings.json changes require a full restart (losing all context)
  3. Claude repeatedly gives incorrect advice about non-existent "Always Allow" buttons

Impact

This issue makes research-heavy workflows nearly unusable. In our case, a task to research ~20 video production tools required 20+ web searches. The user had to manually approve each one, got frustrated by the repetitive popups, accidentally denied several, and ultimately could not complete the research efficiently. The entire experience took 10x longer than necessary.

Suggested Fix

  1. Add "Always Allow" option to the WebSearch permission popup (same as other tools)
  2. Hot-reload settings.json changes without requiring a full restart, or provide a /reload-settings command
  3. Update Claude's training/system knowledge to accurately reflect the current permission UI so it stops giving incorrect guidance

Workaround

Currently, the only workaround is:

  1. Add "WebSearch" to ~/.claude/settings.json
  2. Restart Claude Code entirely
  3. Lose all conversation context and start over

This is not a viable workaround for mid-session research tasks.

View original on GitHub ↗

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