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
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Absolute path to the file |
offset | number | No | Line number to start reading from |
limit | number | No | Number of lines to read (default: 2000) |
pages | string | No | Page range for PDFs (e.g., "1-5") |
Source: src/tools/FileReadTool/
Write — Write a file to the local filesystem
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Absolute path to write to |
content | string | Yes | Content to write |
Source: src/tools/FileWriteTool/
Edit — Perform exact string replacements in files
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Absolute path to the file |
old_string | string | Yes | The text to replace |
new_string | string | Yes | The replacement text (must differ from old_string) |
replace_all | boolean | No | Replace all occurrences (default: false) |
Source: src/tools/FileEditTool/
Glob — Fast file pattern matching
| Parameter | Type | Required | Description |
|---|---|---|---|
pattern | string | Yes | Glob pattern to match (e.g., **/*.ts) |
path | string | No | Directory to search in (default: cwd) |
Source: src/tools/GlobTool/
Grep — Content search powered by ripgrep
| Parameter | Type | Required | Description |
|---|---|---|---|
pattern | string | Yes | Regex pattern to search for |
path | string | No | File or directory to search in |
glob | string | No | File filter (e.g., *.js) |
output_mode | enum | No | content, files_with_matches, or count |
-B | number | No | Lines to show before each match |
-A | number | No | Lines to show after each match |
-C / context | number | No | Lines before and after each match |
-n | boolean | No | Show line numbers (default: true) |
-i | boolean | No | Case insensitive search |
type | string | No | File type filter (e.g., js, py) |
head_limit | number | No | Limit output to first N results |
offset | number | No | Skip first N results |
multiline | boolean | No | Enable multiline regex mode |
Source: src/tools/GrepTool/
NotebookEdit — Edit Jupyter notebook cells
| Parameter | Type | Required | Description |
|---|---|---|---|
notebook_path | string | Yes | Absolute path to .ipynb file |
cell_id | string | No | Cell ID to edit |
new_source | string | Yes | New source content for the cell |
cell_type | enum | No | code or markdown |
edit_mode | enum | No | replace, insert, or delete |
Source: src/tools/NotebookEditTool/
Shell Execution & REPL
Bash — Execute shell commands
| Parameter | Type | Required | Description |
|---|---|---|---|
command | string | Yes | The command to execute |
description | string | Yes | Description of what the command does |
timeout | number | No | Timeout in ms (default: 120000, max: 600000) |
run_in_background | boolean | No | Run in background |
dangerouslyDisableSandbox | boolean | No | Override 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
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query (min 2 chars) |
allowed_domains | string[] | No | Only include results from these domains |
blocked_domains | string[] | No | Exclude results from these domains |
Source: src/tools/WebSearchTool/
WebFetch — Fetch content from a URL
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL to fetch |
prompt | string | Yes | Prompt to run on fetched content |
Source: src/tools/WebFetchTool/
Agent & Communication
Agent — Spawn a sub-agent for autonomous tasks
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Task for the agent to perform |
description | string | Yes | Short (3-5 word) task summary |
subagent_type | string | No | Agent type (e.g., Explore, Plan, general-purpose) |
model | enum | No | Model override: sonnet, opus, or haiku |
run_in_background | boolean | No | Run as background task |
name | string | No | Name for the spawned agent |
isolation | enum | No | worktree for git isolation |
Source: src/tools/AgentTool/
SendMessage — Send a message to another agent
| Parameter | Type | Required | Description |
|---|---|---|---|
to | string | Yes | Recipient (agent name, ID, or * for broadcast) |
message | string/object | Yes | Message content |
summary | string | No | 5-10 word preview |
Source: src/tools/SendMessageTool/
Task Management & Todos
TaskCreate — Create a new background task
| Parameter | Type | Required | Description |
|---|---|---|---|
subject | string | Yes | Brief task title |
description | string | Yes | What needs to be done |
activeForm | string | No | Present continuous form for spinner text |
metadata | object | No | Arbitrary metadata |
Source: src/tools/TaskCreateTool/
TaskUpdate — Update a task's status
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | ID of task to update |
status | enum | No | pending, in_progress, completed, or deleted |
subject | string | No | New title |
description | string | No | New description |
Source: src/tools/TaskUpdateTool/
TaskList — List all tasks
No parameters.
Source: src/tools/TaskListTool/
TaskGet — Get a specific task by ID
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | Task ID to retrieve |
Source: src/tools/TaskGetTool/
TaskOutput — Get output from a task
| Parameter | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | Task ID |
block | boolean | No | Wait for completion (default: true) |
timeout | number | No | Max wait time in ms (default: 30000) |
Source: src/tools/TaskOutputTool/
TaskStop — Stop a running background task
| Parameter | Type | Required | Description |
|---|---|---|---|
task_id | string | No | ID of the task to stop |
Source: src/tools/TaskStopTool/
TodoWrite — Manage the session task checklist
| Parameter | Type | Required | Description |
|---|---|---|---|
todos | array | Yes | Updated todo list — each item has status and content |
Source: src/tools/TodoWriteTool/
Code Intelligence
LSP — Language Server Protocol operations
| Parameter | Type | Required | Description |
|---|---|---|---|
operation | enum | Yes | goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls |
filePath | string | Yes | Path to the file |
line | number | Yes | Line number (1-based) |
character | number | Yes | Character 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
| Parameter | Type | Required | Description |
|---|---|---|---|
server | string | No | Filter by specific server name |
Source: src/tools/ListMcpResourcesTool/
ReadMcpResource — Read a specific MCP resource by URI
| Parameter | Type | Required | Description |
|---|---|---|---|
server | string | Yes | MCP server name |
uri | string | Yes | Resource 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)
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | string | Yes | Skill name to invoke |
args | string | No | Optional arguments |
Source: src/tools/SkillTool/
ToolSearch — Search for deferred tools
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query or select:<tool_name> |
max_results | number | No | Max results (default: 5) |
Source: src/tools/ToolSearchTool/
AskUserQuestion — Ask the user multiple choice questions
| Parameter | Type | Required | Description |
|---|---|---|---|
questions | array | Yes | 1-4 question objects, each with question, header, and options |
Source: src/tools/AskUserQuestionTool/
Config — Get or set Claude Code configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
setting | string | Yes | Setting key (e.g., theme, model) |
value | string/boolean/number | No | New 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
| Parameter | Type | Required | Description |
|---|---|---|---|
team_name | string | Yes | Name for the team |
description | string | No | Team purpose |
agent_type | string | No | Role 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
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | Optional name for the worktree |
Source: src/tools/EnterWorktreeTool/
ExitWorktree — Exit a worktree session
| Parameter | Type | Required | Description |
|---|---|---|---|
action | enum | Yes | keep or remove |
discard_changes | boolean | No | Discard changes when removing |
Source: src/tools/ExitWorktreeTool/
ExitPlanMode — Prompt user to exit plan mode and start coding
| Parameter | Type | Required | Description |
|---|---|---|---|
allowedPrompts | array | No | Permission 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
| Parameter | Type | Required | Description |
|---|---|---|---|
action | enum | Yes | list, get, create, update, or run |
trigger_id | string | No | Required for get, update, run |
body | object | No | JSON body for create/update |
Source: src/tools/RemoteTriggerTool/
CronCreate — Schedule a prompt to run on a cron schedule
| Parameter | Type | Required | Description |
|---|---|---|---|
cron | string | Yes | Standard 5-field cron expression |
prompt | string | Yes | The prompt to run at each fire time |
recurring | boolean | No | Fire on every match or once (default: true) |
durable | boolean | No | Persist to disk or session-only (default: false) |
Source: src/tools/ScheduleCronTool/
CronDelete — Cancel a scheduled cron job
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Job ID from CronCreate |
Source: src/tools/ScheduleCronTool/
CronList — List active cron jobs
No parameters.
Source: src/tools/ScheduleCronTool/
Sleep — Wait for a specified duration
| Parameter | Type | Required | Description |
|---|---|---|---|
duration | number | Yes | Duration 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:
| Tool | Registry / Status | Recovered Source | Notes |
|---|---|---|---|
BriefTool / SendUserMessage | feature('KAIROS') or feature('KAIROS_BRIEF') | Yes | Message-to-user tool; prompt source says "Send a message to the user" |
REPLTool | process.env.USER_TYPE === 'ant' | Partial stub | Present as src/tools/REPLTool/REPLTool.ts, but recovered implementation is only a stub shell |
WorkflowTool | feature('WORKFLOW_SCRIPTS') | Partial stub | Registry and constants are present, but WorkflowTool.js was not recovered in this source tree |
SuggestBackgroundPRTool | process.env.USER_TYPE === 'ant' | Stub | Recovered file is an empty class |
TungstenTool | process.env.USER_TYPE === 'ant' | Stub | Recovered file explicitly says the real tool is not in the source map |
TestingPermissionTool / TestingPermission | process.env.NODE_ENV === 'test' | Yes | Testing-only tool that always asks for permission |
WebBrowserTool | feature('WEB_BROWSER_TOOL') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
MonitorTool | feature('MONITOR_TOOL') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
SendUserFileTool | feature('KAIROS') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
PushNotificationTool | feature('KAIROS') or feature('KAIROS_PUSH_NOTIFICATION') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
SubscribePRTool | feature('KAIROS_GITHUB_WEBHOOKS') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
SnipTool | feature('HISTORY_SNIP') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
ListPeersTool | feature('UDS_INBOX') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
CtxInspectTool | feature('CONTEXT_COLLAPSE') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
TerminalCaptureTool | feature('TERMINAL_PANEL') | No | Referenced from src/tools.ts, but no implementation directory was recovered |
OverflowTestTool | feature('OVERFLOW_TEST_TOOL') | No | Referenced from src/tools.ts, but no implementation directory was recovered |