Skill vs Subagent vs MCP Picker
Which extension do you actually need? Answer 4 questions.
- $25 Free
- 45 sec
- No signup
Answer 4 questions about your goal
See the recommended extension type
Follow the link to build it
You get: A clear call on skill vs subagent vs MCP vs hook, with why.
What do you need to do?
Use this tool
Read
You know the exact file, so just Read it. Read pulls the file's contents directly and is the right tool whenever you already have the path. No search needed.
Watch out
If you are not sure of the path yet, use Glob to find it or Grep to find the right file by its contents.
Why picking the right tool matters
Claude Code ships with a small set of built-in tools, and each one is sharp at exactly one job. The difference between a fast, clean session and a slow, messy one is often just tool choice. Using Bash to grep through files when Grep exists, or reading an entire directory when you already know the one file you need, wastes tokens and clutters the context. This picker maps your intent to the tool that was built for it, and flags the common mis-picks so you avoid them.
The logic here is deterministic - the same answers always produce the same recommendation, because the right tool for a given need is not a matter of taste. Once you internalize the mapping, you stop reaching for the general-purpose hammer (Bash) for jobs the specialized tools do better.
The built-in tools at a glance
- Read - open a specific file when you already know its path. The default for looking at known files.
- Edit - make a targeted change to an existing file. You must Read it first so the edit matches exactly. Only sends the diff, which is cheaper than rewriting.
- Write - create a new file or fully replace one. Prefer Edit for modifying existing files.
- Grep - search inside files for text or a regex pattern. Built on ripgrep; use it instead of grep/rg through Bash.
- Glob - find files by name or path pattern like **/*.ts. Use it instead of find or ls.
- Bash - run commands: tests, builds, git, scripts. Not for reading, searching, or editing files - the dedicated tools win there.
- WebFetch / WebSearch - pull content from the internet. WebFetch for a known URL, WebSearch to find pages first.
- Agent - delegate an open-ended, multi-step task to a subagent that runs the search-read loop in its own context.
Read vs Grep vs Glob - the trio people confuse
These three cover 'I need to find or look at code' and they are not interchangeable. Read is for when you already know the path - no searching involved. Grep is for when you know what the code says but not where it is - it searches file contents. Glob is for when you know the file's name or shape but not its location - it searches paths. If you find yourself running ls or find or grep through Bash, one of these three is the tool you actually wanted.
Do not use Bash for file work
The single most common mistake is reaching for Bash to cat, grep, find, sed, or ls. The dedicated Read, Grep, Glob, and Edit tools are faster, return cleaner output, and are safer. Save Bash for actually running commands - tests, builds, git, scripts.
When to reach for an Agent instead
The Agent tool is for open-ended work that needs several rounds of searching and reading before you can answer - 'how does auth flow through this codebase', 'find everywhere this pattern is used and summarize'. A subagent runs that loop in its own context and hands back a summary, so your main session is not flooded with every intermediate file. The rule of thumb: if you can name the file or the exact pattern, use the direct tool; if you need to explore to even know what to look at, use an Agent.
Edit vs Write
- Modifying an existing file - use Edit. It does a precise string replacement and only transmits the change, so it is cheaper and less error-prone than resending the whole file.
- Read before you Edit - Edit requires that you have read the file so the match is exact. Skipping the read is the usual cause of a failed edit.
- Creating a brand-new file - use Write. There is nothing to diff against.
- A complete rewrite of an existing file - Write is acceptable, but prefer Edit when the change is localized.
- Never edit with Bash sed/awk - Edit is the correct, reviewable tool for changing file contents.
Web tools: WebFetch vs WebSearch
When the information you need lives on the internet rather than in your repo, use the web tools. WebFetch retrieves a specific URL you already have - documentation, an issue, a spec. WebSearch is for when you do not have the URL and need to find relevant pages first. The key discrimination is: if the answer is in your codebase, Grep and Read are faster and do not leave the machine; only go to the web when the repo genuinely does not have it.
A quick mental model to keep
- Know the path -> Read.
- Know the text, not the location -> Grep.
- Know the filename shape, not the location -> Glob.
- Changing a file -> Edit (Read it first); new file -> Write.
- Running a command -> Bash.
- It is on the web -> WebFetch (have URL) or WebSearch (need URL).
- Have to explore to even know where to look -> Agent.
Frequently asked questions
When should I use Grep instead of Bash grep?
Almost always. The Grep tool is built on ripgrep, searches file contents with regex and globs, and returns clean output. Running grep or rg through Bash is slower to parse and offers no advantage for searching your codebase.
What is the difference between Grep and Glob?
Grep searches inside files for text or patterns - use it when you know what the code says. Glob finds files by name or path pattern like **/*.tsx - use it when you know the filename shape but not the location.
Should I use Read or an Agent to look at code?
Use Read when you already know the specific file path. Use an Agent when the task is open-ended and needs several rounds of searching and reading before you can answer, so the exploration stays out of your main context.
Edit or Write for changing a file?
Edit for modifying an existing file - it does a targeted replacement and only sends the diff, and you must Read the file first. Write is for creating a new file or a full rewrite. Prefer Edit for localized changes.
When do I need the web tools?
Only when the information lives on the internet, not in your repo. Use WebFetch for a URL you already have, and WebSearch when you need to find the right pages first. If the answer is in your codebase, Grep and Read are faster.
Why not just use Bash for everything?
Bash can run file commands, but the dedicated tools are faster, cleaner, and safer for reading, searching, and editing. Reserve Bash for actually executing commands - tests, builds, git, and scripts - where it is the right tool.
Liked this tool? The club is the next step.
Join Claude Code Club for $9/month. 650+ lessons, weekly updates, and the workflows behind every tool on this site.
- No experience needed
- Cancel anytime
- Updated weekly
