Built-in `Grep`/`Glob` tools unavailable when `ENABLE_TOOL_SEARCH=1` (not in active set, not discoverable via ToolSearch)
Resolved 💬 2 comments Opened May 29, 2026 by ngc3242 Closed Jun 1, 2026
What happened
With ENABLE_TOOL_SEARCH: "1" set in .claude/settings.json env, the built-in Grep and Glob tools are:
- NOT present in the active tool list, and
- NOT discoverable via the deferred
ToolSearchtool —ToolSearchwith queryselect:Grep,GlobreturnsNo matching deferred tools found.
As a result they are completely inaccessible. The agent repeatedly mis-diagnoses this as "ripgrep is not installed" and falls back to Bash grep, even though ripgrep is installed and working.
Expected
Built-in tools (Grep, Glob, Read, Write, Edit, Bash) should never be deferred/hidden by Tool Search. They should either always be in the active set, or at minimum be discoverable via ToolSearch. There is currently no documented way to pin built-in tools when Tool Search is on (alwaysLoad only applies to MCP servers).
Environment
- Claude Code: 2.1.156
- Platform: macOS (darwin 25.4.0)
- ripgrep: 15.1.0 at
/opt/homebrew/bin/rg(installed & working) .claude/settings.jsonenv:"ENABLE_TOOL_SEARCH": "1"(project has 200+ MCP tools)
Repro
- Set
"ENABLE_TOOL_SEARCH": "1"in project.claude/settings.jsonenv. - Start a session.
- Observe
Grep/Globare absent from the active tools and not returned byToolSearch select:Grep,Glob.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗