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.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:--allowedTools takes precedence — only the listed tools will be available. --disallowedTools removes specific tools from the default set.
Complete tool reference
The table below lists every built-in tool. Tools marked with a feature flag may not be available in all configurations.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.