You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Complete catalog of all ~40 agent tools in Claude Code.
Overview
Every tool lives in src/tools/<ToolName>/ as a self-contained module. Each tool defines:
Input schema — Zod-validated parameters
Permission model — What requires user approval
Execution logic — The tool's implementation
UI components — Terminal rendering for invocation and results
Concurrency safety — Whether it can run in parallel
Tools are registered in src/tools.ts and invoked by the Query Engine during LLM tool-call loops.
Tool Definition Pattern
exportconstMyTool=buildTool({name: 'MyTool',aliases: ['my_tool'],description: 'What this tool does',inputSchema: z.object({param: z.string(),}),asynccall(args,context,canUseTool,parentMessage,onProgress){// Execute and return { data: result, newMessages?: [...] }},asynccheckPermissions(input,context){/* Permission checks */},isConcurrencySafe(input){/* Can run in parallel? */},isReadOnly(input){/* Non-destructive? */},prompt(options){/* System prompt injection */},renderToolUseMessage(input,options){/* UI for invocation */},renderToolResultMessage(content,progressMessages,options){/* UI for result */},})