SendMessage
A Claude Code tool, read out of the shipped bundle. It has been in the build since v2.1.186, including the newest one read.
Messages arriving from another session now show who sent them plus a chord to expand.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.222.
In the changelogs
62Releases whose published page names SendMessage.
-
v2.1.304
Only a teammate can approve a shutdown request now
SendMessage now refuses a shutdown approval from a session that is not a teammate, and says to send a shutdown request instead
found in this entry's text
-
v2.1.304
Messages to teammates can now be refused before delivery
SendMessage now runs a check before delivering, and when the check fails it reports that the teammate or main conversation was not messaged
found in this entry's text
-
v2.1.301
Limit on how often agents can be messaged or resumed between your messages
Messaging or resuming a subagent now counts against a limit that resets when you write, and is refused with a 'Not sent' message once used up
found in this entry's text
-
v2.1.299
SendMessage can look up an MCP server's send_message tool for bridged messages
When sending to a bridge address, Claude Code can now find a connected MCP server's send_message tool, behind a switch that is off by default
found in this entry's text, named in this entry
-
v2.1.299
Messages to stopped agents are refused, and queued replies say to wait
Messaging an agent you stopped now returns a clear refusal, and a queued message tells Claude to wait instead of resending
found in this entry's text, named in this entry
-
v2.1.299
Subagents must send their final report with a dedicated call
Agents are now told that a final report written as plain text is not delivered, and
SendMessagegains new refusal messagesfound in this entry's text
-
v2.1.296
SendMessage tool has alternative wording that limits messages to this session
In one mode, the SendMessage tool's instructions now say Claude can message only agents of this session and that no one outside it can be reached
found in this entry's text
-
v2.1.296
SendMessage can refuse a message as limited to the session's own agents
SendMessage can now refuse to deliver a message early, reporting that messaging is limited to the session's own agents
found in this entry's text
-
v2.1.296
SendMessage explains who a message can go to
The recipient field of
SendMessagenow explains its allowed values, and theAgenttool gains a step that adjusts its inputfound in this entry's text
-
v2.1.296
SendMessage can now refuse some message targets
A new check on who a SendMessage is addressed to can block the send, and one error message has a shorter form
found in this entry's text
-
v2.1.294
Claude's instructions for the SendMessage tool gained text for some accounts
Text was added to the SendMessage tool instructions Claude receives under some account settings, including an example message to a worker
found in this entry's text
-
v2.1.293
SDK output describes resumed subagent runs that a tool call waits for
SDK output now describes a resumed subagent run that the resuming tool call waits on, with its report returned in that call's result
found in this entry's text
-
v2.1.293
Claude no longer told to message background agents it cannot continue
When a background agent cannot be continued, Claude is now told to relaunch it or check its output instead of sending it a message
found in this entry's text
-
v2.1.293
Notices about restarted background agents stop suggesting SendMessage when it cannot work
After a restart, notices about a background agent that cannot be continued now suggest relaunching it or getting its report instead
found in this entry's text
-
v2.1.293
Subagent results can say whether the caller can send a follow-up
A subagent's result can now note that the calling agent cannot continue it, because the caller has no tool for sending it messages
found in this entry's text
-
v2.1.292
Messages sent with SendMessage now record what kind of recipient they go to
SendMessage calls shown to hooks and transcripts now include
recipient_kind, and messages to cloud and Remote Control sessions use new routingfound in this entry's text
-
v2.1.287
Some refused messages to other sessions are no longer logged
When Claude Code refuses to send a message to another session, it now sometimes skips logging the refusal
found in this entry's text
-
v2.1.286
Refused cross-machine file sends through SendMessage now say why
SendMessagenow checks cross-machine file transfer before and after the permission ask and before sending, and names the reason when refusedfound in this entry's text
-
v2.1.286
SendMessage can refuse a send to a bridge address before trying it
Before sending to a bridge address,
SendMessagenow runs a check and reports failure straight away if that check objectsfound in this entry's text
-
v2.1.284
Messages from other sessions no longer tell Claude to use a reply tool it lacks
When another Claude session messages Claude mid-task and no SendMessage tool is available, Claude is no longer told to reply through it
found in this entry's text
-
v2.1.284
Messages from other Claude sessions skip the reply instruction when Claude cannot reply
Messages from another Claude session that arrive mid-turn no longer tell Claude to reply via
SendMessagein certain casesfound in this entry's text
-
v2.1.284
Loop updates are sent the right way in brief mode, and the session-list tool explains when replies are impossible
In brief mode, loop updates are now sent as messages; the session-list tool now says when this session cannot send messages
found in this entry's text
-
v2.1.283
Auto mode no longer checks a message twice when forwarding it to Claude Desktop
In auto mode, a message SendMessage forwards to Claude Desktop is allowed without a second safety check if the first check already allowed it
found in this entry's text
-
v2.1.280
New cross-session/agent messaging plugin API: $.session.send, $.session.messages, $.session.authorize
New plugin API lets plugins read, authorize, and message other sessions
found in this entry's text
-
v2.1.280
Plugin hooks can intercept and readdress SendMessage sends
Plugin hooks can now intercept SendMessage calls, rewriting or blocking who a message goes to
found in this entry's text, named in this entry
-
v2.1.280
Inter-agent SendMessage attribution can now include the sending plugin
Messages sent between agents can now note which plugin sent them
found in this entry's text
-
v2.1.277
Per-tool 'backgrounding' classification rolled out across nearly all built-in tools
Nearly every built-in tool now carries a 'backgrounding' classification of never, self, or detach
found in this entry's text
-
v2.1.271
Fork-worker agents now excluded from background-task UI and controls
Fork-worker agents no longer show up as killable background tasks or as SendMessage handback targets
found in this entry's text
-
v2.1.269
SendMessage cross-machine permission check now passes a detached
askcallbackSendMessage's cross-machine permission check now uses a detached approval callback instead of passing context and canUseTool directly
found in this entry's text
-
v2.1.269
SendMessage and SendFile tools refactored to a create()-context pattern
SendMessage and SendFile tools were rebuilt internally to share permission/session state through a common factory
found in this entry's text
-
v2.1.269
SendMessage tool gains suppressesAlwaysAllowRule and a create()-based context object
SendMessage tool adds a suppressesAlwaysAllowRule flag and a richer permission-context object
found in this entry's text
-
v2.1.269
SendMessage inline handback gated by Kge()
SendMessage tool result formatting gets a new path for inline handback content
found in this entry's text
-
v2.1.269
Tool architecture rework: many built-in tools moved to a create()/runEngine factory pattern
REPL, SendMessage, TaskCreate, TaskUpdate, feedback-draft, Workflow and Bash tools rebuilt on a shared factory pattern
found in this entry's text
-
v2.1.268
Task-status tool result now conditionally omits output file path based on available tools
Background task status can now omit the output file path depending on which tools are available
found in this entry's text, named in this entry
-
v2.1.268
Background subagent progress-check instructions simplified to drop tool-based polling suggestion
Blocked duplicate subagent launches now only suggest messaging it for a progress update, not a separate polling tool
found in this entry's text, named in this entry
-
v2.1.261
Subagent "harness tail" size accounting behind tengu_swift_whistle
Subagent report truncation accounting for a 'harness tail' section stays inert behind a flag.
found in this entry's text
-
v2.1.251
SendMessage can deliver to Claude Desktop sessions
SendMessage can now deliver plain text to Claude Desktop sessions.
named in this entry, found in this entry's text
-
v2.1.246
Resumed agents hand back a framed report instead of one flat string
Resumed agents return a properly framed report instead of a flattened string.
found in this entry's text
-
v2.1.234
Sending files and messages to other sessions fails early on unreachable targets
Sending a file or message to an unreachable session is denied while asking permission, not silently at send time.
found in this entry's text
-
v2.1.232
Crash recovery gives different advice for agents launched by WebFetch
Crash recovery now separates agents that WebFetch started and advises you differently on each.
found in this entry's text
-
v2.1.232
SendMessage no longer leaks its display text into the model's view
SendMessage display text stays in the UI and no longer leaks into what the model reads.
found in this entry's text
-
v2.1.232
SendMessage failures show a short reason in the transcript
Failed messages to other agents now show a one-line reason instead of a wall of instructions.
found in this entry's text
-
v2.1.232
Recovered web-fetch agents are resumed by message, not by file
Recovered fetch agents are reached by message rather than by reading an output file.
found in this entry's text
-
v2.1.232
Restart notices give web-fetch agents their own advice
Restart notices tell web-fetch agents to message the agent instead of hunting for partial work.
found in this entry's text
-
v2.1.232
Clearer notice when a background agent could not be restarted
Failed agent restarts now give advice matching how the agent was launched.
found in this entry's text
-
v2.1.224
Messages relayed between your own sessions are now labelled as such
Messages relayed from your other sessions are now tagged as peer sends rather than looking like scheduled triggers.
found in this entry's text
-
v2.1.224
SendMessage telemetry marks blocked waits and resumes
Message delivery telemetry can flag when the sender blocked waiting for completion.
found in this entry's text
-
v2.1.224
Teammate message failures are labelled, and inbox write failures reported
Failed teammate messages now say the recipient was unreachable, including when their inbox write failed.
found in this entry's text
-
v2.1.224
SendMessage records why a message was not delivered
Undelivered agent messages now record why, such as an unreachable recipient or a failed mailbox write.
found in this entry's text
-
v2.1.224
SendMessage skips the auto-mode classifier
Messaging another agent skips the auto-mode classifier and no longer counts toward denials.
found in this entry's text
-
v2.1.224
New ListAgents tool for finding other sessions you can message
A tool that lists other Claude sessions you can message exists but stays off by default.
found in this entry's text
-
v2.1.224
SendMessage can address other sessions directly and reports delivery timing
Messages can be addressed to a specific session by socket or id, blocked unless peer messaging is enabled.
found in this entry's text
-
v2.1.222
Messages from other sessions get a sanitized sender label
Messages arriving from another session now show who sent them plus a chord to expand.
found in this entry's text
-
v2.1.222
Teammate summaries are trimmed, truncated and colour-checked
Long teammate summaries get trimmed instead of breaking the status line or rejecting the message.
found in this entry's text
-
v2.1.178
Named-Teammate Agent Swarms (TeamCreate/TeamDelete Removed)
found in this entry's text
-
v2.1.166
Stronger security warning on peer session messages
found in this entry's text
-
v2.1.124
isolatePeerMachinessetting (Remote Control safety)found in this entry's text
-
v2.1.118
Broadcast Messaging Deprecated
found in this entry's text
-
v2.1.77
Agent Resume via
SendMessagefound in this entry's text
-
v2.1.75
Agent Message Queuing to Running Agents
found in this entry's text
-
v2.1.75
SendMessage Tool Redesigned
found in this entry's text
-
v2.1.31
Agent Teams Plan Gating
found in this entry's text
First cited
8The earliest release whose published evidence quoted SendMessage was v2.1.178, 15 Jun 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.
2 further spans in the ledger name it. The list above is the earliest first and stops at 6.
Presence across releases
1Build by build
107One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the tool does. All tools.