WebSearch tool permission cannot be persistently allowed within a session — no 'Always Allow' option available
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:
- Click "Always Allow" — this button does not exist in the WebSearch permission popup
- Run
/allowed-tools— this command did not resolve the issue - 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
- Start a new Claude Code session
- Ask Claude to perform a research task requiring multiple web searches (e.g., "Research all available AI video generation tools in detail")
- Observe that every
WebSearchcall triggers a permission popup - Note that the popup has no "Always Allow" or "Allow for session" option
- Try adding
"WebSearch"to~/.claude/settings.json→permissions.allow - Observe that the change has no effect on the current session
- The only workaround is restarting Claude Code, which destroys conversation context
Expected Behavior
- The
WebSearchpermission popup should include an "Always Allow" or "Allow for this session" option, consistent with how other tools behave - If
WebSearchis added tosettings.json, it should take effect immediately (or at minimum, within the current session via a reload mechanism) - Claude should have accurate knowledge of its own permission system and not advise users to use non-existent features
Actual Behavior
- No persistent allow option exists in the popup
settings.jsonchanges require a full restart (losing all context)- 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
- Add "Always Allow" option to the
WebSearchpermission popup (same as other tools) - Hot-reload
settings.jsonchanges without requiring a full restart, or provide a/reload-settingscommand - 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:
- Add
"WebSearch"to~/.claude/settings.json - Restart Claude Code entirely
- Lose all conversation context and start over
This is not a viable workaround for mid-session research tasks.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗