Claude Code Agent Teams Losing Grep and Glob Is a Reminder That Tool Rosters Are Runtime State

An agent that loses Grep and Glob has not just misplaced two convenience tools. It has changed how it thinks, how much it spends, and which safety boundary it reaches for when it needs to inspect a codebase.

A fresh Claude Code bug report says enabling CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in version 2.1.186 removes the native Grep and Glob tools from the available roster. The reporter says the tools disappear from both the main loop and spawned subagents, even when subagent definitions explicitly declare Tools: Glob, Grep, Read, Bash and related capabilities. A ToolSearch query="select:Grep,Glob" reportedly returns “No matching deferred tools found,” which means the tools are neither active nor recoverable through deferred selection. Disable the experimental agent-teams flag, and they return.

That sounds like a small experimental-mode regression until you think about what those tools do in a real coding session. Search is not decoration. Search is how an agent avoids reading the whole repository, avoids guessing where code lives, and avoids turning a scoped inspection task into a shell-execution task. Remove the safe search primitives and the model will compensate. It will read too much, ask for Bash, run grep or find through a broader interface, or simply make worse guesses.

Tool rosters are runtime state, not prompt promises

The key lesson is boring and important: an agent’s capabilities are whatever the harness actually exposes at runtime. Not what the prompt says. Not what the subagent markdown declares. Not what the documentation implies. If the active roster does not include Grep and Glob, the agent does not have those tools.

This matters more in multi-agent systems because tool scope is supposed to be one of the main safety levers. A reviewer agent might read and search but not write. A test-runner agent might execute a narrow set of commands but not edit source. A docs agent might inspect markdown and examples. A release agent might touch only changelog and version files. Those distinctions only work if the orchestrator can preserve and report each worker’s actual capability set.

The reported bug cuts directly through that contract. A subagent definition can ask for Glob and Grep, but the global experimental team mode allegedly strips them anyway. That means per-agent tool declarations are not enough evidence. Teams need runtime verification: what did the worker actually receive?

Claude Code’s permissions documentation makes the safety implications sharper. Read-only tools such as file reads and Grep generally sit in a different approval category from Bash commands. Bash can emulate search with grep, rg, find, ls, and pipelines, but it is a broader execution surface. If losing Grep nudges the model into Bash for routine code discovery, a missing tool becomes a permission-design bug. The agent is doing a safer job through a riskier doorway.

Bad search becomes bad cost

The cost side is just as real. Good repository search is one of the cheapest ways to keep agent context clean. Glob narrows the file set. Grep finds the relevant symbol, config key, test name, migration, route handler, or error string. Without them, the agent often falls back to broad reads. Broad reads inflate context, trigger compaction sooner, increase latency, and make the model reason over irrelevant code. The failure is not spectacular. It is a slow tax on every turn.

This is why tool availability needs observability. Before starting a multi-agent run, a serious harness should show the lead agent’s requested tools, each worker’s requested tools, each worker’s granted tools, denied tools, deferred tools, and fallback path. If a worker asked for Grep and did not get it, the run should say so before the model begins improvising. Silent degradation is the enemy here. Users will judge the agent by output quality and spend without knowing the runtime quietly removed the tools that make good output cheap.

Practitioners experimenting with Claude Code agent teams should add a canary step. At session start, ask each worker to report its actual tool roster, then run a tiny task that requires each critical tool. For search-heavy work, prove Glob and Grep exist before assigning repo-wide analysis. If they are missing, either disable the experimental team mode or explicitly accept the fallback cost and permission profile. Do not let the model discover the absence halfway through a refactor.

There is also a governance point for vendors. Experimental labels are fair warning for rough coordination, resume behavior, shutdown semantics, or UX seams. They should not silently weaken foundational capability reporting. If an experimental mode changes the tool roster, the product should make that visible: “Agent Teams mode is active; these tools are unavailable: Grep, Glob.” Better still, the orchestrator should fail a worker whose declared required tools cannot be granted, rather than starting it in a degraded state and hoping the transcript explains the weirdness later.

This issue had no visible community reaction at research time — no comments, no reactions, and no Hacker News hits for targeted searches. That is not surprising. Tool-roster bugs do not go viral. They just make agents worse in ways users misattribute to the model. The agent seems lazy, expensive, or reckless, when the harness quietly removed the safe primitive and left Bash as the escape hatch.

The larger comparison point is that multi-agent coding tools should not be judged only on how impressive the final patch looks. They should be judged on capability integrity: can the runtime preserve tool scopes per worker, prove what each worker had, and explain any fallback? Without that, “agent teams” become a coordination demo sitting on an opaque permissions substrate.

My take: losing Grep and Glob is not a minor inconvenience. It is a reminder that coding-agent quality lives in the control plane. If agent teams cannot preserve and report tool rosters per worker, they are not ready to be trusted on output quality alone.

Sources: Anthropic Claude Code issue #70249, Claude Code agent-teams documentation, Claude Code permissions documentation, Claude Code settings documentation