| Files |
Read | Reads files, images, PDFs and notebooks | No permission needed |
Edit | Exact string replacement in a file | Permission. old_string must match exactly and be unique, or use replace_all. |
Write | Creates or overwrites a file | Permission. New files need no read. Overwriting follows the same read rule as Edit, and notebooks and partially read files always need the read. |
NotebookEdit | Replaces, inserts or deletes Jupyter cells | Permission |
| Search |
Glob · Grep | File-pattern matching and ripgrep content search | Off by default on macOS, Linux and WSL. There Claude uses find and grep through Bash. On by default on Windows. Name them in --tools or --allowedTools to bring them back. |
| Shell |
Bash | Runs shell commands, including in the background | Permission, except a built-in read-only set. Default timeout 2 minutes, max 10. Environment variables don't persist between commands. |
PowerShell | Native PowerShell | Automatic on Windows without Git Bash. Opt-in on macOS, Linux and WSL (PowerShell 7+). |
Monitor | Runs a command in the background and feeds each output line back to Claude | Permission (uses Bash rules). Watch deadline 5 minutes by default, 30 maximum. |
| Web |
WebFetch | Fetches a URL, converts it to Markdown and answers a prompt about it | Lossy by design (a separate model reads the page). Up to 100,000 characters per call, 15-minute cache, refuses localhost. |
WebSearch | Returns titles and URLs | Doesn't fetch pages. 200 calls per interactive session. Not available on Amazon Bedrock. |
| Planning and interaction |
EnterPlanMode · ExitPlanMode | Switch to plan mode, then present the plan for approval | Exiting needs your approval |
AskUserQuestion | Multiple-choice clarifying questions | Waits until answered unless askUserQuestionTimeout is set. Not available to subagents. |
TaskCreate · TaskGet · TaskList · TaskUpdate | Task-tracking checklist (replaced TodoWrite) | Default only on Opus 4.7, Sonnet 4.6, Haiku 4.5 and earlier models. On newer models, opt in with CLAUDE_CODE_ENABLE_TODO_TOOLS=1. Background and cloud sessions always have them. |
| Delegation |
Agent | Spawns a subagent, or a teammate when agent teams are on | Renamed from Task in v2.1.63. Task(...) still works as an alias. |
SendMessage · ListAgents | Message a subagent, teammate or another local Claude Code session, and list reachable agents | Also how a finished subagent is resumed |
TaskStop | Stops a background task, teammate or named agent | TaskOutput was removed in v2.1.277. Output files are read with Read. |
Workflow | Runs a dynamic workflow script | Permission. See section 6. |
| Scheduling, environment and extensions |
CronCreate · CronList · CronDelete | Session-scoped recurring or one-shot prompts (behind /loop) | RemoteTrigger manages cloud scheduled tasks (behind /schedule) |
EnterWorktree · ExitWorktree | Create or enter an isolated git worktree, then return | Paths outside .claude/worktrees/ prompt for approval |
LSP | Definitions, references, types and diagnostics from a language server | Inactive until you install a code intelligence plugin and the server binary |
Skill · ToolSearch | Run a skill, and load deferred (MCP) tool definitions on demand | Skills don't add tool entries. They run through Skill. |