Skip to content

Tool inventory and schemas

This page is the canonical inventory for Claude Code tool names, tool families, schema owners, and permission boundaries. It consolidates lists that were previously repeated across tool, prompt, session, and agent pages.

Scope and caveats

  • This page lists source-visible tool names and schema-owning surfaces for the analyzed bundle.
  • It does not duplicate every minified JSON Schema descriptor. Built-in descriptors are bundled in cli.js; MCP tools expose runtime inputJSONSchema through MCP; plugins contribute schemas through manifests.
  • Tool visibility and tool execution are separate: a tool can be model-visible and still be denied by permissions, hooks, host control requests, or tool-specific guards.

Source anchors

Semantic aliasSourceApproximate locationString or symbolMeaning
BashToolNamecli.jsline ~446, byte 0x309242var Rq="Bash"Shell-command tool name.
ReadToolNamecli.jsline ~481, byte 0x30a2bavar Bq="Read"File-read tool name.
GlobToolNamecli.jsline ~482, byte 0x30a7e0var B1="Glob"File-pattern search tool name.
GrepToolNamecli.jsline ~461, byte 0x3097edvar V9="Grep"Content-search tool name.
EditToolNamecli.jsline ~549, byte 0x31b727var v7="Edit"File-edit tool name and nearby edit-family schemas.
WriteToolNamecli.jsline ~941, byte 0x4686f7var $9="Write"File-write tool name.
WebFetchToolNamecli.jsline ~770, byte 0x436b69var gD="WebFetch"URL fetch tool name.
WebSearchToolNamecli.jsline ~1091, byte 0x480490var RI="WebSearch"Web search tool name.
TodoWriteToolNamecli.jsline ~1091, byte 0x4804bfvar HV="TodoWrite"Todo list tool name.
SkillToolNamecli.jsline ~1091, byte 0x4804d2var XX="Skill"Skill-loading tool name.
BashDescriptorcli.jsline ~5147, byte 0x9625e3LK({name:Rq,...})Bash descriptor with prompt, permission matcher, and read-only classifier.
ReadDescriptorcli.jsline ~4956, byte 0x91a489LK({name:Bq,... get inputSchema(){return T15()}})Read descriptor with input/output schema accessors.
GrepDescriptorcli.jsline ~3095, byte 0x7be208LK({name:V9,...})Grep descriptor with regex-search schema and read-only behavior.
GlobDescriptorcli.jsline ~3104, byte 0x7bf95eLK({name:B1,...})Glob descriptor with file-pattern schema and read-only behavior.
EditDescriptorcli.jsline ~5005, byte 0x9485efLK({name:v7,...})Edit descriptor with edit schema, storage stripping, and edit guards.
WriteDescriptorcli.jsline ~3226, byte 0x820c8dLK({name:$9,...})Write descriptor with file-write schema and permission dialog metadata.
WebFetchDescriptorcli.jsline ~3438, byte 0x86c4c5LK({name:gD,... shouldDefer:!0})WebFetch descriptor and deferred web-fetch behavior.
WebSearchDescriptorcli.jsline ~3628, byte 0x8811c7LK({name:RI,...})WebSearch descriptor with provider gating.
TodoWriteDescriptorcli.jsline ~2621, byte 0x64b7deLK({name:HV,...})TodoWrite descriptor with allow-only checklist update path.
SkillDescriptorcli.jsline ~3172, byte 0x80208cLK({name:XX,...})Skill descriptor with skill-name validation and forked execution output.
McpToolsListSchemacli.jsline ~95, byte 0x907a4tools/listMCP tool-list protocol schema.
ToolExecutionBoundarycli.jsline ~4202, byte 0x8a8140function U85Main tool execution/permission boundary.
PreToolUsePermissionHookcli.jsline ~3553, byte 0x876552hookPermissionResult, PreToolUsePreToolUse hook can allow, ask, deny, defer, or update input.

Built-in tool families

FamilySource-visible namesModel-visible capabilityMain guard or owner
Shell/processBash, BashOutput-style task output aliasesRun commands, monitor background command/task output, stop long-running work.Permission rules, sandbox policy, shell execution path.
File read/searchRead, Glob, GrepRead files, expand patterns, and search content.File permissions, ignore rules, denyRead-style exclusions.
File write/editEdit, Write, MultiEdit, NotebookEditModify files and notebooks.Read-before-write/edit checks and modified-after-read checks.
WebWebFetch, WebSearchFetch URL/domain content or perform web search.Domain/search permission validation and provider/tool support gates.
Planning/todosTodoWrite, ExitPlanModeTrack plan state and exit plan mode.Plan-mode state and prompt/context rules.
Skills and agentsSkill, TaskCreate, TaskGet, TaskList, TaskUpdate, SendMessageLoad skills and dispatch/observe task or subagent work.Agent/task runtime, subagent hooks, task state registry.

Schema ownership

Tool sourceHow schemas are suppliedPermission behavior
Built-in toolsBundled descriptors in cli.js near the tool definitions. This page summarizes fields by family rather than copying every minified descriptor.Enters the same ToolExecutionBoundary.
MCP toolsMCP tools/list responses include names and inputJSONSchema; tools/call executes through the MCP client.Permission-prompt routing requires a schema-bearing MCP tool; MCP calls still pass guarded runtime boundaries.
Plugin-provided tools/capabilitiesPlugin manifests can contribute hooks, MCP servers, skills, agents, output styles, and related capability surfaces.Plugin-provided capabilities compose with settings, trust, hooks, and permission policy.
Agent/task toolsTask/subagent tool constants are runtime tools exposed to the model or agent controller.Task lifecycle hooks and task-state updates apply in addition to normal tool permission checks.

Descriptor and execution-body map

The built-in tools are exposed through bundled descriptors created by LK(...). Each descriptor owns the model-facing name, prompt text, input/output schema accessors, activity summaries, visibility gates, and permission helpers for that tool family. The full execution body is still bundled/minified, but the descriptor anchors identify where a focused per-tool deep dive should start.

Tool familyDescriptor anchorsRuntime behavior confirmed from descriptor clusterRemaining deep-dive boundary
Shell/processBash at line ~5147, ToolExecutionBoundary at line ~4202Shell calls enter the shared permission boundary, can classify read-only commands, and prepare a permission matcher before execution.Full shell spawning, background process bookkeeping, and sandbox handoff belong in Built-in tools and permissions and Sandbox and isolation.
File read/searchRead at line ~4956, Glob at line ~3104, Grep at line ~3095Read/search descriptors provide schema accessors, read-only/concurrency-safe markers, result limits, and search summaries.Per-tool parsing of ranges, glob expansion, ignore handling, and truncation should be documented tool-by-tool only when needed.
File mutationEdit at line ~5005, Write at line ~3226Mutation descriptors expose input/output schema accessors and pair with freshness guards such as File has not been read yet... and File content has changed....Exact patch/write algorithms and notebook edit shapes remain a candidate companion reference if schema dumps are required.
WebWebFetch at line ~3438, WebSearch at line ~3628Web tools are deferred and guarded; WebSearch has provider-support gates and wildcard validation.Provider-specific fetch/search transport is separate from tool-name/schema inventory.
Planning and automationTodoWrite at line ~2621, Skill at line ~3172, task tool constants at line ~1091Todo writes are allowed checklist state updates; skills validate an invocation name and can return direct or forked execution results.Full task/subagent scheduling belongs in Agents, tasks, and subagents.

Built-in schema extraction status

This page now records the descriptor owners for the major built-in tool schemas. It still intentionally avoids copying every minified y.object(...) / schema descriptor into the docs. A complete per-tool schema dump would need a dedicated extractor or focused manual reconstruction from each descriptor’s inputSchema and outputSchema accessors. Until that exists, the safe documentation boundary is:

  1. list stable tool names and descriptor anchors here;
  2. document permission and execution behavior in implementation pages;
  3. document MCP runtime schemas through MCP tools/list / inputJSONSchema rather than treating plugin/MCP schemas as built-ins.

Input-surface summary

FamilyRepresentative input shapeNotes
Shell/processCommand text, optional background/task identifiers, sandbox-related settings.Approved command execution can still be constrained by platform sandboxing.
File read/searchPath, glob/search pattern, context/range options.Search/read behavior can honor ignore and deny rules.
File write/editPath plus content or edit patches; notebook tools include cell-level targets.Edit/write tools enforce prior-read freshness before mutation.
WebURL/domain or search query.WebFetch(domain:example.com) is the permission form; WebSearch wildcard permissions are rejected.
Planning/todosTodo/task entries and status transitions.These shape plan visibility rather than external side effects.
Skill/agent/taskSkill IDs, prompts, agent specs, task IDs, messages, and task updates.Subagent/task records can emit task frames and sidechain transcripts.

Visibility, approval, and execution

flowchart TD
Registry[Built-ins + MCP + plugins + agents] --> Visible[Model-visible tool set]
Flags[--tools / allow / deny flags] --> Visible
Settings[settings and managed policy] --> Visible
Visible --> Call[Model tool call]
Call --> PreHook[PreToolUse]
PreHook --> Decision[permission mode / allow-deny / host ask]
Decision -->|deny| Denied[PermissionDenied + denial frame]
Decision -->|ask| Host[can_use_tool control request]
Decision -->|allow| Guards[tool-specific guards]
Guards --> Execute[execute tool]
Execute --> PostHooks[PostToolUse / telemetry / transcript]

High-signal guard strings include:

  • WebSearch does not support wildcards
  • WebFetch permissions use domain format, not URLs
  • File has not been read yet. Read it first before writing to it.
  • File content has changed since it was last read.

Reference handoffs

NeedRead
Permission boundary details and ToolExecutionBoundary flowBuilt-in tools and permissions
Command sandbox after approvalSandbox and isolation
MCP runtime and plugin loadingMCP, plugins, and hooks
Hook/event names and frame familiesHooks and events reference
Settings/policy keys that shape toolsSettings schema reference
Task/subagent tool behaviorAgents, tasks, and subagents

Created and maintained by Yingting Huang.