Skip to main content
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.

Agent & orchestration tools

ToolDescriptionRead-only
AgentToolSpawn a sub-agent for complex tasksNo
SendMessageToolSend messages between agentsNo
TeamCreateToolCreate a team of parallel agentsNo
TeamDeleteToolRemove a team agentNo
EnterPlanModeToolSwitch to planning mode (no execution)No
ExitPlanModeToolExit planning mode, resume executionNo
EnterWorktreeToolIsolate work in a git worktreeNo
ExitWorktreeToolExit worktree isolationNo
SleepToolPause execution (proactive mode)Yes
SyntheticOutputToolGenerate structured outputYes

AgentTool

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.

SendMessageTool

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 / TeamDeleteTool

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.

EnterPlanModeTool / ExitPlanModeTool

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.

EnterWorktreeTool / ExitWorktreeTool

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.

SleepTool

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.

SyntheticOutputTool

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.

Task management tools

ToolDescriptionRead-only
TaskCreateToolCreate a new background taskNo
TaskUpdateToolUpdate a task’s status or detailsNo
TaskGetToolGet details of a specific taskYes
TaskListToolList all tasksYes
TaskOutputToolGet output from a completed taskYes
TaskStopToolStop a running taskNo

TaskCreateTool

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.

TaskUpdateTool

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.

TaskGetTool

Returns the current details of a specific task by ID, including its status, creation time, and any attached output.

TaskListTool

Lists all active and completed tasks in the current session. Useful for getting an overview of parallel work in progress.

TaskOutputTool

Retrieves the output produced by a completed task. Output is only available after the task reaches a terminal state (completed or failed).

TaskStopTool

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.

Build docs developers (and LLMs) love