What tools are
When Claude receives a request, it can use tools to gather information, make changes, and complete tasks. Tools are invoked by name with structured inputs. Results are returned to Claude, which then continues its response. Tools are not all active by default. Some tools require explicit user approval before they run. Others are gated by permission mode or available only in specific contexts (for example, task management tools are only available to in-process teammates in multi-agent workflows).Full list of tools
Shell and execution
Shell and execution
| Tool | Description |
|---|---|
Bash | Executes a shell command and returns stdout/stderr. Supports timeouts and background execution. |
PowerShell | Executes a PowerShell command (Windows environments). |
REPL | Interactive REPL session (internal/Anthropic builds only). |
File operations
File operations
| Tool | Description |
|---|---|
Read | Reads a file from the local filesystem. Supports images, PDFs, Jupyter notebooks, and text files. Accepts offset and limit for large files. |
Write | Creates or overwrites a file on the local filesystem. |
Edit | Performs an exact string replacement in an existing file (old_string → new_string). |
Glob | Finds files matching a glob pattern, returning results sorted by modification time. |
Grep | Searches file contents using ripgrep with full regex support. |
NotebookEdit | Edits cells in a Jupyter notebook (.ipynb). |
Web
Web
| Tool | Description |
|---|---|
WebSearch | Searches the web and returns results with titles and URLs. |
WebFetch | Fetches content from a URL, converts HTML to markdown, and processes it with a prompt. |
Agent and task management
Agent and task management
| Tool | Description |
|---|---|
Agent | Spawns a sub-agent to complete a task. The sub-agent has its own tool access and runs to completion before returning a result. |
TodoWrite | Creates and updates a structured todo list for the current session. |
TaskCreate | Creates a new task in the task list (multi-agent workflows). |
TaskGet | Retrieves a task by ID, including its full description and dependencies. |
TaskList | Lists all tasks in the task list with status, owner, and dependency info. |
TaskUpdate | Updates a task’s status, owner, dependencies, or other fields. |
TaskStop | Stops a running background task by ID. |
MCP and integrations
MCP and integrations
| Tool | Description |
|---|---|
mcp | Calls a tool on a connected MCP (Model Context Protocol) server. The actual tool name and schema are provided by the MCP server at runtime. |
ListMcpResources | Lists resources exposed by connected MCP servers. |
ReadMcpResource | Reads the content of a specific MCP resource. |
Session and mode management
Session and mode management
| Tool | Description |
|---|---|
AskUserQuestion | Asks the user a clarifying question and waits for a response. |
EnterPlanMode | Switches Claude into plan mode, where it drafts a plan before executing. |
ExitPlanMode | Exits plan mode. |
EnterWorktree | Switches Claude to operate inside a git worktree. |
ExitWorktree | Returns from a git worktree context. |
Brief | Generates a brief summary of the current session state. |
ToolSearch | Searches for available tools by description or name. |
Skill | Loads a skill (a set of pre-defined instructions for a specific task domain). |
How tool permissions work
Every tool that can modify state or access external resources requires permission before it runs. Claude requests permission at the point of use — you see the proposed tool call and can approve or deny it. Permission behaviors:- Allow — Claude runs the tool automatically without asking. This happens when a rule matching the tool and input already exists in your settings.
- Ask — Claude pauses and presents the tool call to you. You can approve it once, approve it for the remainder of the session, or deny it.
- Deny — Claude is blocked from running the tool. A denied tool call returns an error to Claude.
Permission rules are stored per-project. Approving a tool call with “always allow” writes a rule to your project settings so future identical calls are auto-approved.
| Mode | Behavior |
|---|---|
| Default | Claude asks for permission on first use of each tool/path combination |
acceptEdits | File write operations are auto-approved; shell commands still require approval |
bypassPermissions | All tool calls are auto-approved (use with caution) |
--permission-mode CLI flag sets the mode at session start. See the Commands overview for details.
Seeing what Claude is doing
Every tool invocation appears in Claude’s output as a tool use block. You can see:- The tool name
- The exact inputs Claude provided (command string, file path, search pattern, etc.)
- The result returned to Claude (stdout, file contents, search matches, etc.)
Grep, Glob, and Read are shown in a collapsed view by default since they don’t modify state. Write operations and shell commands are shown expanded.