04 / 20Tool Catalogsrc/tools/ — 43+ tools, 184 files

43 tools. 30-method interface. Streaming execution.

Every tool implements isConcurrencySafe(), isReadOnly(), isDestructive(), checkPermissions(), plus rendering methods. Fail-closed defaults. The StreamingToolExecutor starts tools while the API is still streaming.

43
Built-in + feature-gated experimentals
30+
Methods per tool interface
10
Max parallel concurrent-safe tools

All Tools by Category

File Operations

ReadEditWriteGlobGrepNotebookEdit

Execution

BashPowerShell

Search & Fetch

WebFetchWebSearchToolSearch

Agents & Planning

AgentSendMessageTaskCreateTaskGetTaskListTaskUpdateTaskStopTaskOutputEnterPlanModeExitPlanModeEnterWorktreeExitWorktree

MCP

MCPToolListMcpResourcesReadMcpResourceMcpAuth

System & Utility

AskUserTodoWriteSkillRemoteTriggerCronCreateCronDeleteCronListConfigLSPBrief

Feature-Gated / Experimental GrowthBook

SleepWebBrowserTerminalCaptureMonitorWorkflowCtxInspectSnipOverflowTestVerifyPlanExecutionListPeers

Streaming Execution

API streams
tool_use → queue
Parallel (safe)
Sequential (exclusive)
Result

Concurrent-Safe

FileRead, Glob, Grep, WebFetch, WebSearch, ToolSearch, TaskGet, TaskList

Exclusive

Bash, FileEdit, FileWrite, Agent, NotebookEdit

Sibling Abort

When Bash errors, siblingAbortController.abort() cancels all parallel siblings instantly. The parent query continues — only siblings are killed. AbortController is a child of the main controller.

Fork: Cache-Optimized Parallelism

Forks inherit identical message history with placeholder tool results. Only the directive differs — shared prefix = prompt cache hit.

Parent
Fork 1
Fork 2
Fork 3