Agent and task tools let Claude Code orchestrate parallel work: spawning sub-agents for complex sub-problems, coordinating teams of agents, switching execution modes, and tracking long-running background tasks.
| Tool | Description | Read-only |
|---|
AgentTool | Spawn a sub-agent for complex tasks | No |
SendMessageTool | Send messages between agents | No |
TeamCreateTool | Create a team of parallel agents | No |
TeamDeleteTool | Remove a team agent | No |
EnterPlanModeTool | Switch to planning mode (no execution) | No |
ExitPlanModeTool | Exit planning mode, resume execution | No |
EnterWorktreeTool | Isolate work in a git worktree | No |
ExitWorktreeTool | Exit worktree isolation | No |
SleepTool | Pause execution (proactive mode) | Yes |
SyntheticOutputTool | Generate structured output | Yes |
Spawns a sub-agent to handle a complex sub-task. The sub-agent runs with its own context and tool set and returns its result to the parent agent. Use AgentTool to decompose large tasks, isolate risky operations, or parallelize independent work.
Sends a message from one agent to another within an active team. Used to pass results, coordinate state, or hand off work between agents running in parallel.
TeamCreateTool creates a named team of agents that can run tasks in parallel. Each agent in the team operates independently and can communicate via SendMessageTool. TeamDeleteTool tears down a team and releases its resources when the work is complete.
Switches the agent into planning mode, where it can reason about a task and produce a plan without executing any tools. Useful for showing the user what will happen before committing to it. ExitPlanModeTool resumes normal execution after the plan is reviewed.
Planning mode pairs well with the plan permission mode, which prompts the user to approve the full plan before any actions are taken.
Isolates the agent’s file system changes in a git worktree. Work done inside a worktree does not affect the main working tree until it is explicitly merged. ExitWorktreeTool returns the agent to the main worktree.
Use worktrees when you want to try a risky refactor, run an experiment, or let a sub-agent work on a branch without disturbing the active checkout.
Pauses the agent for a specified duration. Only available in proactive (autonomous) mode. Useful when polling for a condition or waiting for an external process to complete.
Generates structured output from the agent — for example, a JSON report, a summary, or a typed result. The output is read-only from the tool’s perspective (it does not write files) but the caller can pass the result upstream or display it to the user.
| Tool | Description | Read-only |
|---|
TaskCreateTool | Create a new background task | No |
TaskUpdateTool | Update a task’s status or details | No |
TaskGetTool | Get details of a specific task | Yes |
TaskListTool | List all tasks | Yes |
TaskOutputTool | Get output from a completed task | Yes |
TaskStopTool | Stop a running task | No |
Creates a new background task and returns a task ID. The task runs asynchronously while the agent continues other work. Use TaskListTool and TaskGetTool to monitor progress.
Updates the status or metadata of an existing task. Use this to mark tasks as in_progress, completed, or blocked, or to attach notes and output.
Returns the current details of a specific task by ID, including its status, creation time, and any attached output.
Lists all active and completed tasks in the current session. Useful for getting an overview of parallel work in progress.
Retrieves the output produced by a completed task. Output is only available after the task reaches a terminal state (completed or failed).
Sends a stop signal to a running task, requesting it to terminate. Use this when a task is no longer needed or has produced sufficient output.