Claude Code Built-in Tools
Glob, Grep, Read, Write, Edit and Bash.
Claude Code Built-in Tools is a free Claude Architect lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Claude Architect learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Why Built-in Tools Matter
Claude Code ships with a small, powerful set of built-in tools that let the model explore and edit a codebase directly: Glob, Grep, Read, Write, Edit, and Bash.
As an architect, your job is not just to know what each tool does, but to know which tool to reach for at each step of an investigation. Picking the right one keeps context lean and the agent fast.
Glob— find files by name patternGrep— search file contentsRead— load one fileWrite— create a fileEdit— make a precise changeBash— run a shell command
Glob — Find Files by Pattern
Glob locates files by their name or path pattern, not their contents. It is the fastest way to answer "where are the X files?"
Patterns use standard glob syntax: ** matches any depth of directories, * matches within a segment. Reach for Glob before reading anything — it narrows a huge tree down to the handful of files worth opening.
# Find every React test file anywhere in the repo
Glob: **/*.test.tsx
# Find all config files at the project root
Glob: *.config.jsGrep — Search File Contents
Grep searches inside files for a string or regular expression. Use it to find where a function is defined, where a symbol is used, or which files mention a feature flag.
The key distinction to memorize for the exam: Glob matches file names; Grep matches file contents. Confusing the two is a classic misroute.
# Where is processRefund defined or called?
Grep: processRefund
# Find all TODO comments under src/
Grep: TODO (path: src/)Read — Load a File
Read loads the contents of a single file into context so the model can reason about it. After Glob or Grep has narrowed the candidates, Read brings the relevant file in.
Be deliberate: every file you Read consumes context window. Reading dozens of large files dilutes attention and triggers the lost-in-the-middle effect, where the model attends to the start and end of context far more than the middle. Read only what the investigation actually needs.
Write — Create a File
Write creates a new file (or fully overwrites one) with the content you supply. Use it when you are producing something from scratch — a new module, a config file, a test suite.
For changing an existing file, prefer Edit: it makes a surgical, reviewable change instead of rewriting the whole file. Reserve Write for genuinely new content or a deliberate full replacement.
Edit — Precise, Unique-Match Changes
Edit performs a precise change by matching a unique string in the file and replacing it. Because the match must be unique, it makes edits safe and reviewable — you change exactly the intended line, nothing else.
The exam-critical rule: if the target string is not unique, the Edit fails. The correct fallback is to Read the file for more surrounding context to build a unique match, or to Write the file if a full replacement is cleaner. Do not blindly retry the same ambiguous edit.
# Edit needs a unique old_string. If 'count = 0' appears 5 times,
# the edit is ambiguous and fails. Fix it by including unique context:
Edit old_string:
def reset_cart(self):
count = 0
Edit new_string:
def reset_cart(self):
count = 0
self.dirty = TrueBash — Run Shell Commands
Bash runs shell commands: build, test, lint, git, package managers, or any CLI. It is the escape hatch for everything the dedicated tools don't cover.
Idiomatic practice: use the dedicated tool when one exists. Prefer Grep over bash grep, Read over cat, Glob over find — they return structured, model-friendly results. Save Bash for genuine shell work like running the test suite or a git operation.
# Good use of Bash: actually running things
Bash: npm test -- --runInBand
Bash: git status --short
# Avoid: Bash: grep -r processRefund . ← use Grep instead
# Avoid: Bash: cat src/cart.ts ← use Read insteadThe Incremental Investigation Pattern
Built-in tools shine when chained into an incremental investigation rather than dumping the whole codebase into context. The canonical loop:
Grepthe entry points to find where behavior originatesReadthose files to understand themGrepfor usages of the symbols you foundReadthe consumers that matter
Each step narrows the search before the next widens it. This keeps context focused and avoids the lost-in-the-middle problem.
# Trace a bug in refund handling:
Grep: processRefund # 1. find entry points
Read: src/payments/refund.ts # 2. understand it
Grep: processRefund( # 3. find callers
Read: src/api/checkout.ts # 4. read the consumerTools Map to a Developer-Productivity Workflow
In the certification's Developer Productivity scenario, built-in tools are the foundation of fast, focused work. The architect's instinct is to scope each tool to the step and avoid loading more than needed.
When the repo's built-in tools aren't enough — you need a database schema, an issue tracker, or an external catalog — you reach for MCP servers, which extend Claude Code with additional tools and read-only resources. Built-in tools cover the local filesystem; MCP covers everything outside it.
Least Privilege: Scope Tools to the Role
When you put these tools behind a subagent or skill, grant only what the role needs. A read-only review agent should get Glob, Grep, and Read — not Write, Edit, or Bash.
This matters because 4–5 tools per agent is optimal; piling on 18+ degrades selection reliability. Restricting the toolset both enforces safety and sharpens the model's choices. In a skill, the allowed-tools frontmatter field does exactly this.
---
name: code-reviewer
description: Read-only reviewer that inspects but never modifies code
allowed-tools: Glob, Grep, Read
argument-hint: <path-to-review>
---
Review the files under $ARGUMENTS for correctness issues only.Built-in Tools in CI/CD
These same tools power non-interactive runs in a pipeline. With -p / --print Claude Code runs headless, and --output-format json makes results parseable for the CI step that follows.
For pre-merge review, run in an isolated session — a fresh review is less biased than self-reviewing in the same session that generated the code. And use a blocking, synchronous call here: the Batch API (50% cheaper, up to 24h, no latency SLA) is for overnight audits, never for time-sensitive pre-merge checks.
# Headless review in a pipeline, machine-readable output
claude -p "Review the staged diff for correctness bugs only" \
--output-format json \
--allowedTools Glob,Grep,ReadQuick Check: Choosing the Right Tool
You are tracing where a function named process_refund is called across an unfamiliar TypeScript repo, then you need to change one specific call site whose surrounding code is identical to three others. Which approach is correct?
Recap: Built-in Tools
Key takeaways for the exam:
- Glob = find files by pattern; Grep = search file contents — never confuse the two.
- Read loads a file; read only what you need to avoid lost-in-the-middle.
- Write creates/overwrites; Edit makes a precise unique-match change. If the match isn't unique, Read for more context (or Write a full replacement) — don't blindly retry.
- Bash is for real shell work; prefer dedicated tools over
grep/cat/find. - Chain them incrementally: Grep entry points → Read → Grep usages → Read consumers.
- Apply least privilege (4–5 tools, read-only for reviewers); in CI use
-p+--output-format jsonin an isolated session, and never the Batch API for blocking checks.
Frequently asked questions
Is the “Claude Code Built-in Tools” lesson free?
Yes — the full text of “Claude Code Built-in Tools” is free to read here on the web, and the Claude Architect course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Claude Architect course, upgrade to CoddyKit PRO.
What will I learn in “Claude Code Built-in Tools”?
Glob, Grep, Read, Write, Edit and Bash. You practise Claude Architect with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Claude Architect?
No prior experience is required. Claude Architect on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Claude Code Built-in Tools” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Claude Architect lesson?
Yes. Every Claude Architect lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- How Many Tools Per Agent
- tool_choice: auto / any / forced
- Claude Code Built-in Tools
- Incremental Investigation Pattern