# Claude Code Tools
Claude Code has a number of built-in tools. As of 2026-06-12:
| Tool | Description | Permission Required |
| --- | --- | --- |
| **Agent** | Runs a sub-agent to handle complex, multi-step tasks | No |
| **Bash** | Executes shell commands in your environment | Yes |
| **Edit** | Makes targeted edits to specific files | Yes |
| **Glob** | Finds files based on pattern matching | No |
| **Grep** | Searches for patterns in file contents | No |
| **LS** | Lists files and directories | No |
| **MultiEdit** | Performs multiple edits on a single file atomically | Yes |
| **NotebookEdit** | Modifies Jupyter notebook cells | Yes |
| **NotebookRead** | Reads and displays Jupyter notebook contents | No |
| **Read** | Reads the contents of files | No |
| **TaskCreate** | Creates a new task with subject, description, and optional metadata | No |
| **TaskGet** | Retrieves a task by ID with full details and dependencies | No |
| **TaskList** | Lists all tasks with status, owner, and blockers | No |
| **TaskUpdate** | Updates task status, details, or dependencies | No |
| **WebFetch** | Fetches content from a specified URL | Yes |
| **WebSearch** | Performs web searches with domain filtering | Yes |
| **Write** | Creates or overwrites files | Yes |
| **AskUserQuestion** | Asks a structured question to the user | No |
| **CronCreate** | Schedules a recurring task (5-field cron expression) | No |
| **CronList** | Lists all scheduled tasks | No |
| **CronDelete** | Cancels a scheduled task by ID | No |
| **EnterPlanMode** | Switches to plan mode (read-only) | No |
| **ExitPlanMode** | Exits plan mode | No |
| **SendMessage** | Sends a message to a running subagent (resume/communicate) | No |
| **TaskOutput** | Gets output from a completed task | No |
| **TaskStop** | Stops a running task | No |
| **LSP** | Language Server Protocol queries (diagnostics, definitions) | No |
| **EnterWorktree** | Creates and enters an isolated git worktree | No |
| **ExitWorktree** | Leaves and cleans up a git worktree | No |
| **RemoteTrigger** | Triggers a remote/scheduled task | No |
Tools can be extended via [[Claude Code MCP Integration]] and [[Claude Code Plugins]].
## Built-in agent types
The Agent tool can spawn subagents of different types:
| Type | Description |
| --- | --- |
| **general-purpose** | Full tools, complex multi-step tasks (default) |
| **Explore** | Fast read-only codebase exploration (uses Haiku for speed) |
| **Plan** | Research and planning for plan mode |
| **Bash** | Terminal commands in a separate context |
## Custom agents
Define custom agents as `.md` files in `.claude/agents/` or `~/.claude/agents/`. Frontmatter fields:
| Field | Description |
| --- | --- |
| `permissionMode` | default, acceptEdits, plan, dontAsk, bypass |
| `isolation` | Set to `worktree` to run in an isolated git worktree |
| `memory` | `user` or `project` for persistent memory |
| `background` | `true` to run as a background task |
| `maxTurns` | Limit the number of agentic turns |
| `initialPrompt` | Auto-submit first turn without waiting for input |
Use `SendMessage` to communicate with running agents.
## References
- Documentation: https://docs.anthropic.com/en/docs/claude-code/common-tasks
## Related
- [[Claude Code]]
- [[Claude Code Permissions]]
- [[Claude Code MCP Integration]]