← Learning paths
claude/beginner

Tools Claude uses behind the scenes

The built-in capabilities Claude uses behind the scenes — file reads, code edits, shell commands, and more. You don't call these directly; Claude picks the right one.

📝 Wholesale AI Champions ⏱ 4 min read 📚 Just getting started

Tools are the built-in capabilities Claude uses to actually do things — read a file, run a command, search the codebase, fetch a URL. You don’t invoke tools directly. You describe what you want and Claude picks the right tool (or chain of tools) for the job.

That distinction matters: tools are the primitives. Skills, agents, and slash commands are higher-level patterns built on top of them. Knowing which tool Claude reaches for explains a lot of behavior — why a request feels slow (Claude spawned an Agent for research), why an edit was surgical (Edit instead of Write), why a search was thorough (Grep across the whole repo).


The built-in tools

ToolPurposeWhen Claude reaches for it
ReadRead file contentsAnything that asks “what’s in this file?” or needs context before editing
EditMake a targeted in-place editModifying existing code — preferred over Write for changes
WriteCreate a new file or full rewrite”Create a Dockerfile”, “write me a README”, or anytime no prior file exists
BashExecute a shell commandBuild/test runs, git operations, file system stuff that isn’t pure read/edit
GlobFind files matching a pattern”Find every *.tsx under src/components/
GrepSearch file contents (ripgrep under the hood)“Where is useFeatureToggle called?”
AgentDelegate work to a sub-Claude in its own contextHeavy research, multi-file analysis — anything you want the answer to without the noise
WebFetchFetch and parse a URLReading docs, fetching API responses, viewing screenshots
WebSearchRun a web searchWhen you don’t know the URL but need current info
NotebookEditEdit Jupyter notebook cellsNotebook-specific edits — not applicable to most repos
LSPLanguage Server Protocol queriesType info, references, “go to definition” — when available

How Claude chooses

Tool selection isn’t random — it follows a few rules of thumb worth knowing:

  • Edit > Write for existing files. Edit shows a diff and is harder to misuse; Write replaces everything.
  • Grep > Bash + grep. The Grep tool is faster, structured, and the right primitive — it’s ripgrep under the hood.
  • Agent for research, not for surgery. If you’d describe the goal as “find out X” or “summarize Y,” it belongs in an agent. If you’d say “edit line 42,” do it inline.
  • Bash is the fallback. Anything not covered by a dedicated tool ends up here — but if you find yourself piping shell output through awk, there’s usually a better tool.

What you can actually do

You don’t need to memorize this list. The reason to know the tools exist is so you can reason about Claude’s behavior and steer it when needed:

  • “Use Grep, not Bash” if you see Claude reaching for grep -r in a giant repo.
  • “Spawn an agent for that” if you’re about to ask a research question that’d flood your context.
  • “Just write the file” if Claude is hesitating to overwrite something it should.

That kind of nudging — describing the kind of move you want — is more useful than naming the exact tool. Claude knows what it has; you mostly just need to know enough to recognize what’s happening.