Skip to main content
Tools are discrete, self-contained capabilities that Claude invokes during a session to accomplish tasks. Each tool has a defined input schema, a permission level, and an execution function. Claude selects the appropriate tool based on what the task requires, then waits for the result before continuing.

How the tool loop works

1

Claude selects a tool

After analyzing the conversation, Claude emits a tool_use block specifying the tool name and its input arguments.
2

Permission check

The permission system evaluates whether the tool call is allowed under the current permission mode (default, plan, bypassPermissions, etc.). Depending on the outcome, the tool call is automatically approved, denied, or presented to you for a yes/no decision.
3

Tool executes

The tool runs — reading a file, executing a shell command, fetching a URL, spawning a sub-agent, and so on. Progress is streamed to the terminal UI in real time.
4

Result returned

The tool returns a result, which is injected into the conversation context as a tool_result block. Claude then continues from where it left off, using the new information.

Permission levels

Each tool has a permission level that determines when you need to approve its use.
LevelDescriptionExamples
Read-onlyDoes not modify any files or system state. Automatically approved in most modes.FileReadTool, GlobTool, GrepTool, WebFetchTool
MutatingCreates or modifies files or state. Requires approval unless the path is in an allowlist or bypassPermissions mode is active.FileWriteTool, FileEditTool, NotebookEditTool
Destructive / side-effectExecutes shell commands, spawns agents, or has network side-effects. Requires explicit approval unless pre-approved.BashTool, AgentTool, TeamCreateTool, WebSearchTool
The permission model is documented in detail in Permission model. You can pre-approve specific paths or commands in your local settings to avoid repeated prompts.

Controlling available tools

You can restrict which tools Claude can use in a session using CLI flags. Allow only specific tools:
claude --allowedTools FileReadTool,GlobTool,GrepTool
Block specific tools:
claude --disallowedTools BashTool,WebFetchTool
Both flags accept a comma-separated list of tool names. --allowedTools takes precedence — only the listed tools will be available. --disallowedTools removes specific tools from the default set.
Use --allowedTools for read-only sessions where you want Claude to explore the codebase without making changes.

Complete tool reference

The table below lists every built-in tool. Tools marked with a feature flag may not be available in all configurations.
ToolCategoryDescriptionPermission level
BashToolShellExecute shell commands in a persistent sessionDestructive
FileReadToolFileRead files — text, images, PDFs, Jupyter notebooksRead-only
FileWriteToolFileCreate or overwrite a file with new contentMutating
FileEditToolFilePartial file edit via exact string replacementMutating
GlobToolSearchFind files by glob patternRead-only
GrepToolSearchSearch file contents with regex (ripgrep)Read-only
WebFetchToolWebFetch and extract content from a URLRead-only
WebSearchToolWebSearch the web for current informationRead-only
AgentToolAgentSpawn a sub-agent to handle a complex taskDestructive
SkillToolAgentExecute a named skill (reusable workflow)Destructive
MCPToolAgentInvoke a tool from a connected MCP serverVaries
LSPToolAgentLanguage Server Protocol diagnostics and hoverRead-only
NotebookEditToolFileEdit cells in a Jupyter notebookMutating
TaskCreateToolTaskCreate a task in the shared task listMutating
TaskUpdateToolTaskUpdate task status, owner, or metadataMutating
TaskGetToolTaskRetrieve a single task by IDRead-only
TaskListToolTaskList all tasks in the current task listRead-only
TaskStopToolTaskStop a running taskMutating
TaskOutputToolTaskRead the output file of a completed agent taskRead-only
SendMessageToolAgentSend a message to another agent in a swarmMutating
TeamCreateToolAgentCreate a named team for multi-agent coordinationMutating
TeamDeleteToolAgentDelete a team and clean up its resourcesMutating
EnterPlanModeToolSessionSwitch to plan mode (propose without executing)Mutating
ExitPlanModeToolSessionExit plan mode and resume normal executionMutating
EnterWorktreeToolSessionIsolate work in a temporary git worktreeMutating
ExitWorktreeToolSessionExit the current git worktreeMutating
RemoteTriggerToolSessionRegister a remote trigger for proactive modeMutating
ScheduleCronToolSessionSchedule a cron-style recurring triggerMutating
SleepToolSessionPause execution in proactive/KAIROS modeRead-only
SyntheticOutputToolSessionEmit structured output from the agentMutating
ToolSearchToolAgentDiscover tools by name or descriptionRead-only
AskUserQuestionToolSessionAsk you a clarifying question mid-taskRead-only
REPLToolShellInteractive REPL for code evaluation (internal)Destructive
PowerShellToolShellExecute PowerShell commands on WindowsDestructive

Tool categories

File tools

Read, write, and edit files. Covers FileReadTool, FileWriteTool, FileEditTool, and NotebookEditTool.

Search tools

Find files and search content. Covers GlobTool, GrepTool, and search patterns with BashTool.

Agent tools

Multi-agent workflows, task management, and inter-agent messaging.

Web tools

Fetch URLs and search the web. Covers WebFetchTool and WebSearchTool.

Build docs developers (and LLMs) love