Skip to main content

Tool Definitions

Source-backed input schemas and notes for Claude Code's built-in, conditional, and runtime-generated tools. The base registry lives in src/tools.ts; this appendix also tracks MCP wrappers, SDK-only synthetic tools, and source-only gated entries that do not belong in the main catalog.

File Operations

Read — Read a file from the local filesystem
ParameterTypeRequiredDescription
file_pathstringYesAbsolute path to the file
offsetnumberNoLine number to start reading from
limitnumberNoNumber of lines to read (default: 2000)
pagesstringNoPage range for PDFs (e.g., "1-5")

Source: src/tools/FileReadTool/

Write — Write a file to the local filesystem
ParameterTypeRequiredDescription
file_pathstringYesAbsolute path to write to
contentstringYesContent to write

Source: src/tools/FileWriteTool/

Edit — Perform exact string replacements in files
ParameterTypeRequiredDescription
file_pathstringYesAbsolute path to the file
old_stringstringYesThe text to replace
new_stringstringYesThe replacement text (must differ from old_string)
replace_allbooleanNoReplace all occurrences (default: false)

Source: src/tools/FileEditTool/

Glob — Fast file pattern matching
ParameterTypeRequiredDescription
patternstringYesGlob pattern to match (e.g., **/*.ts)
pathstringNoDirectory to search in (default: cwd)

Source: src/tools/GlobTool/

Grep — Content search powered by ripgrep
ParameterTypeRequiredDescription
patternstringYesRegex pattern to search for
pathstringNoFile or directory to search in
globstringNoFile filter (e.g., *.js)
output_modeenumNocontent, files_with_matches, or count
-BnumberNoLines to show before each match
-AnumberNoLines to show after each match
-C / contextnumberNoLines before and after each match
-nbooleanNoShow line numbers (default: true)
-ibooleanNoCase insensitive search
typestringNoFile type filter (e.g., js, py)
head_limitnumberNoLimit output to first N results
offsetnumberNoSkip first N results
multilinebooleanNoEnable multiline regex mode

Source: src/tools/GrepTool/

NotebookEdit — Edit Jupyter notebook cells
ParameterTypeRequiredDescription
notebook_pathstringYesAbsolute path to .ipynb file
cell_idstringNoCell ID to edit
new_sourcestringYesNew source content for the cell
cell_typeenumNocode or markdown
edit_modeenumNoreplace, insert, or delete

Source: src/tools/NotebookEditTool/

Shell Execution & REPL

Bash — Execute shell commands
ParameterTypeRequiredDescription
commandstringYesThe command to execute
descriptionstringYesDescription of what the command does
timeoutnumberNoTimeout in ms (default: 120000, max: 600000)
run_in_backgroundbooleanNoRun in background
dangerouslyDisableSandboxbooleanNoOverride sandbox restrictions

Source: src/tools/BashTool/

PowerShell — Execute PowerShell commands (Windows)

Similar schema to Bash, but for Windows PowerShell environments. Disabled on macOS/Linux.

Source: src/tools/PowerShellTool/

Web Tools

WebSearch — Search the web
ParameterTypeRequiredDescription
querystringYesSearch query (min 2 chars)
allowed_domainsstring[]NoOnly include results from these domains
blocked_domainsstring[]NoExclude results from these domains

Source: src/tools/WebSearchTool/

WebFetch — Fetch content from a URL
ParameterTypeRequiredDescription
urlstringYesURL to fetch
promptstringYesPrompt to run on fetched content

Source: src/tools/WebFetchTool/

Agent & Communication

Agent — Spawn a sub-agent for autonomous tasks
ParameterTypeRequiredDescription
promptstringYesTask for the agent to perform
descriptionstringYesShort (3-5 word) task summary
subagent_typestringNoAgent type (e.g., Explore, Plan, general-purpose)
modelenumNoModel override: sonnet, opus, or haiku
run_in_backgroundbooleanNoRun as background task
namestringNoName for the spawned agent
isolationenumNoworktree for git isolation

Source: src/tools/AgentTool/

SendMessage — Send a message to another agent
ParameterTypeRequiredDescription
tostringYesRecipient (agent name, ID, or * for broadcast)
messagestring/objectYesMessage content
summarystringNo5-10 word preview

Source: src/tools/SendMessageTool/

Task Management & Todos

TaskCreate — Create a new background task
ParameterTypeRequiredDescription
subjectstringYesBrief task title
descriptionstringYesWhat needs to be done
activeFormstringNoPresent continuous form for spinner text
metadataobjectNoArbitrary metadata

Source: src/tools/TaskCreateTool/

TaskUpdate — Update a task's status
ParameterTypeRequiredDescription
taskIdstringYesID of task to update
statusenumNopending, in_progress, completed, or deleted
subjectstringNoNew title
descriptionstringNoNew description

Source: src/tools/TaskUpdateTool/

TaskList — List all tasks

No parameters.

Source: src/tools/TaskListTool/

TaskGet — Get a specific task by ID
ParameterTypeRequiredDescription
taskIdstringYesTask ID to retrieve

Source: src/tools/TaskGetTool/

TaskOutput — Get output from a task
ParameterTypeRequiredDescription
task_idstringYesTask ID
blockbooleanNoWait for completion (default: true)
timeoutnumberNoMax wait time in ms (default: 30000)

Source: src/tools/TaskOutputTool/

TaskStop — Stop a running background task
ParameterTypeRequiredDescription
task_idstringNoID of the task to stop

Source: src/tools/TaskStopTool/

TodoWrite — Manage the session task checklist
ParameterTypeRequiredDescription
todosarrayYesUpdated todo list — each item has status and content

Source: src/tools/TodoWriteTool/

Code Intelligence

LSP — Language Server Protocol operations
ParameterTypeRequiredDescription
operationenumYesgoToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls
filePathstringYesPath to the file
linenumberYesLine number (1-based)
characternumberYesCharacter offset (1-based)

Source: src/tools/LSPTool/

MCP Tools

MCPTool — Runtime wrapper for a connected MCP server tool

Dynamic input schema — each connected MCP server contributes its own schema and the tool is named mcp__<server>__<tool>.

Source: src/tools/MCPTool/, wrapped from src/services/mcp/client.ts

ListMcpResources — List resources from connected MCP servers
ParameterTypeRequiredDescription
serverstringNoFilter by specific server name

Source: src/tools/ListMcpResourcesTool/

ReadMcpResource — Read a specific MCP resource by URI
ParameterTypeRequiredDescription
serverstringYesMCP server name
uristringYesResource URI to read

Source: src/tools/ReadMcpResourceTool/

McpAuth — Authenticate an MCP server (OAuth flow)

No parameters. Tool name is generated dynamically as mcp__<serverName>__authenticate.

Source: src/tools/McpAuthTool/

Extensions

Skill — Execute a skill (prompt template)
ParameterTypeRequiredDescription
skillstringYesSkill name to invoke
argsstringNoOptional arguments

Source: src/tools/SkillTool/

ToolSearch — Search for deferred tools
ParameterTypeRequiredDescription
querystringYesSearch query or select:<tool_name>
max_resultsnumberNoMax results (default: 5)

Source: src/tools/ToolSearchTool/

AskUserQuestion — Ask the user multiple choice questions
ParameterTypeRequiredDescription
questionsarrayYes1-4 question objects, each with question, header, and options

Source: src/tools/AskUserQuestionTool/

Config — Get or set Claude Code configuration
ParameterTypeRequiredDescription
settingstringYesSetting key (e.g., theme, model)
valuestring/boolean/numberNoNew value (omit to get current)

Source: src/tools/ConfigTool/

StructuredOutput — Return response as structured JSON

Dynamic input — validated against a provided schema at runtime.

Source: src/tools/SyntheticOutputTool/

Teams (Multi-Agent)

TeamCreate — Create a multi-agent swarm team
ParameterTypeRequiredDescription
team_namestringYesName for the team
descriptionstringNoTeam purpose
agent_typestringNoRole of team lead

Source: src/tools/TeamCreateTool/

TeamDelete — Clean up a swarm team

No parameters.

Source: src/tools/TeamDeleteTool/

Planning & Worktrees

EnterPlanMode — Switch to plan mode

No parameters.

Source: src/tools/EnterPlanModeTool/

EnterWorktree — Create an isolated git worktree
ParameterTypeRequiredDescription
namestringNoOptional name for the worktree

Source: src/tools/EnterWorktreeTool/

ExitWorktree — Exit a worktree session
ParameterTypeRequiredDescription
actionenumYeskeep or remove
discard_changesbooleanNoDiscard changes when removing

Source: src/tools/ExitWorktreeTool/

ExitPlanMode — Prompt user to exit plan mode and start coding
ParameterTypeRequiredDescription
allowedPromptsarrayNoPermission prompts needed for implementation

Source: src/tools/ExitPlanModeTool/

VerifyPlanExecution — Verify plan was executed correctly

Internal tool used by the plan mode system. Stub in public build.

Source: src/tools/VerifyPlanExecutionTool/

Scheduling & Cron

RemoteTrigger — Manage scheduled remote agent triggers
ParameterTypeRequiredDescription
actionenumYeslist, get, create, update, or run
trigger_idstringNoRequired for get, update, run
bodyobjectNoJSON body for create/update

Source: src/tools/RemoteTriggerTool/

CronCreate — Schedule a prompt to run on a cron schedule
ParameterTypeRequiredDescription
cronstringYesStandard 5-field cron expression
promptstringYesThe prompt to run at each fire time
recurringbooleanNoFire on every match or once (default: true)
durablebooleanNoPersist to disk or session-only (default: false)

Source: src/tools/ScheduleCronTool/

CronDelete — Cancel a scheduled cron job
ParameterTypeRequiredDescription
idstringYesJob ID from CronCreate

Source: src/tools/ScheduleCronTool/

CronList — List active cron jobs

No parameters.

Source: src/tools/ScheduleCronTool/

Sleep — Wait for a specified duration
ParameterTypeRequiredDescription
durationnumberYesDuration in milliseconds

Source: src/tools/SleepTool/

Stubs & Feature-Gated

These tools are referenced by the source registry, or present as stubs, but are not part of the stable/common catalog:

ToolRegistry / StatusRecovered SourceNotes
BriefTool / SendUserMessagefeature('KAIROS') or feature('KAIROS_BRIEF')YesMessage-to-user tool; prompt source says "Send a message to the user"
REPLToolprocess.env.USER_TYPE === 'ant'Partial stubPresent as src/tools/REPLTool/REPLTool.ts, but recovered implementation is only a stub shell
WorkflowToolfeature('WORKFLOW_SCRIPTS')Partial stubRegistry and constants are present, but WorkflowTool.js was not recovered in this source tree
SuggestBackgroundPRToolprocess.env.USER_TYPE === 'ant'StubRecovered file is an empty class
TungstenToolprocess.env.USER_TYPE === 'ant'StubRecovered file explicitly says the real tool is not in the source map
TestingPermissionTool / TestingPermissionprocess.env.NODE_ENV === 'test'YesTesting-only tool that always asks for permission
WebBrowserToolfeature('WEB_BROWSER_TOOL')NoReferenced from src/tools.ts, but no implementation directory was recovered
MonitorToolfeature('MONITOR_TOOL')NoReferenced from src/tools.ts, but no implementation directory was recovered
SendUserFileToolfeature('KAIROS')NoReferenced from src/tools.ts, but no implementation directory was recovered
PushNotificationToolfeature('KAIROS') or feature('KAIROS_PUSH_NOTIFICATION')NoReferenced from src/tools.ts, but no implementation directory was recovered
SubscribePRToolfeature('KAIROS_GITHUB_WEBHOOKS')NoReferenced from src/tools.ts, but no implementation directory was recovered
SnipToolfeature('HISTORY_SNIP')NoReferenced from src/tools.ts, but no implementation directory was recovered
ListPeersToolfeature('UDS_INBOX')NoReferenced from src/tools.ts, but no implementation directory was recovered
CtxInspectToolfeature('CONTEXT_COLLAPSE')NoReferenced from src/tools.ts, but no implementation directory was recovered
TerminalCaptureToolfeature('TERMINAL_PANEL')NoReferenced from src/tools.ts, but no implementation directory was recovered
OverflowTestToolfeature('OVERFLOW_TEST_TOOL')NoReferenced from src/tools.ts, but no implementation directory was recovered