Grep/Glob missing from tool roster (not deferred, not searchable) — tengu_deferred_stub_tool

Status Open
Reported on v2.1.216
Maintainer reply None cached
Activity 1 comment · opened Jul 21, 2026

Claude Code 2.1.216: default tool roster is missing Grep and Glob entirely
(not deferred, not searchable) — root cause traced to the
tengu_deferred_stub_tool GrowthBook experiment.

Symptom

In a normal interactive session, Grep and Glob are absent from both:

  • the primary tool list at the top of the system prompt, and
  • the deferred-tool catalog (ToolSearch returns "No matching deferred

tools found" for select:Grep,Glob and for semantic queries like
"search files content pattern").

They are not merely deferred — they are not reachable at all through the
documented deferred-tool mechanism.

Root cause (traced client-side)

~/.claude.jsoncachedGrowthBookFeatures:

tengu_deferred_stub_tool      = true   (feature enabling the deferred/stub tool mechanism)
tengu_non_deferrable_builtins = {}     (empty — nothing is protected from deferral)

With tengu_non_deferrable_builtins empty, core built-ins like Grep/Glob
apparently get swept into "deferred" but then don't surface via the
deferred catalog either — likely a bug in how the stub-tool experiment
registers/exposes them.

What I tried

  1. Hand-edited tengu_deferred_stub_tool to false in ~/.claude.json,

restarted the session. Client re-fetched cachedGrowthBookFeatures from
the server on next start and silently reverted the flag to true
(confirmed via diff — several unrelated flags also changed, so this was
a genuine live refetch, not corruption). Local override does not
persist.

  1. CLAUDE_CODE_TOOLS=default,Grep,Glob env var — no effect, default

(Grep-less) roster returned.

  1. settings.json: {"tools": "default,Grep,Glob"} via --settings — no

effect, ignored, falls back to the default (Grep-less) roster. This
also confirms the bug is not specific to any custom role/system
prompt composition
— a bare default session is affected too.

  1. claude --tools "<explicit list>" — this DOES force Grep/Glob into the

roster, but the flag only recognizes an apparently older/fixed
"built-in set": requesting Artifact,AskUserQuestion,ToolSearch
alongside it silently drops those three (no error). Since ToolSearch
is dropped, everything normally reached through it also becomes
unreachable (WebSearch, WebFetch, CronCreate, Monitor, DesignSync,
PushNotification, RemoteTrigger, SendMessage, TaskOutput/Stop,
NotebookEdit, Enter/ExitPlanMode, Enter/ExitWorktree). --tools also
does not support combining "default" with additional explicit names
— you get one or the other.

Impact

No supported configuration currently yields both Grep/Glob AND the full
modern tool set (Artifact, ToolSearch and everything behind it). Users are
forced to choose between native Grep/Glob or the newer capabilities.

Environment

  • Claude Code 2.1.216 (native install, already latest — claude update

confirmed no newer version available)

  • macOS
  • Reproduces in a bare default session, not tied to a specific

role/CLAUDE.md composition

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗