Anthropic's Claude Code Lets AI Sessions Talk Directly Without Human Middlemen
Claude Code v2.1.224 lets independent sessions talk to each other directly, eliminating the need to manually relay context between terminals
- Claude Code v2.1.224 ships cross-session messaging, letting independent sessions find and message each other without user relay.
- Claude uses two new tools,
ListAgentsandSendMessage, to discover and reach other sessions automatically. - Messages are plain-text summaries only -- no conversation history or files are shared between sessions.
- Same-machine delivery uses a local Unix socket; cross-machine messaging (reply-only) routes through Anthropic servers via Remote Control.
- Inbound controls (
crossSessionInbound: accept / hold / refuse) and a prompt-injection firewall prevent a compromised session from puppeting others. - Available on macOS and Linux only; not supported on Bedrock, Google Cloud Agent Platform, or Microsoft Foundry.
If you run multiple Claude Code sessions at once, you know the tax: something breaks in one terminal, and you have to walk over to the other, re-explain the whole situation, and get it back on track. Cross-session messaging, shipping in Claude Code v2.1.224, removes that step. Sessions can now find each other, send summaries, and coordinate without you acting as the middleman.
The problem it solves
Running parallel sessions was already possible, but each one was fully isolated. No shared context, no coordination, no awareness of what the other was doing. The workaround was manual: copy-paste findings between terminals, re-explain decisions, and hope nothing got lost. You became a message router between two AI agents that could coordinate directly.
What actually ships
Cross-session messaging lets Claude deliver a message from one of your Claude Code sessions to another. A message is a piece of text one Claude writes to another, never conversation history or files. It is a targeted summary, not a context dump. Claude uses two new tools under the hood:
ListAgents— discovers which sessions are reachable and what they are namedSendMessage— delivers a plain-text message to a named session
You never call these tools yourself. Tell Claude what you want the other session to know, and it handles the rest. Claude can also decide to send a message on its own — for example, when a change it just made affects what another session is building.
How delivery works
The receiving Claude reads the message between tool calls during an active turn, so a running tool is never interrupted. When the receiving session is idle, Claude Code starts a new turn with the message. Same-machine delivery happens over a per-session Unix socket, never through Anthropic's servers. Cross-machine messaging works differently:
| Where the other session runs | How it travels | What Claude can send |
|---|---|---|
| Same machine | Local Unix socket | New messages and replies |
| Another machine | Through Anthropic servers via Remote Control | Replies only |
| Claude Code on the web | Through Anthropic servers | Replies only |
Cross-machine is reply-only by design. A session on another machine can message you first, and you can answer it, but your local session cannot cold-start a conversation with a remote one.
Security guardrails
When session A messages session B, Claude Code tells B's Claude that the message came from another session, not from you, and limits what it can do: it cannot approve anything, cannot change configuration, and any commands in the message text arrive as plain text and are never executed. Permission prompts still fire normally on the receiving end.
Inbound message handling is configurable via the crossSessionInbound setting, with three modes:
- accept — deliver every message automatically
- hold — queue messages for your manual approval
- refuse — drop messages silently
Without this boundary, a compromised session could silently puppet others. The defaults are conservative: if the receiving session bypasses permission prompts, incoming messages are held for your approval unless the sender is also in bypass mode.
Where it helps most
The official docs outline the clearest wins:
- Parallel worktrees: two sessions working on the same repo in separate git worktrees can notify each other when something lands on main
- Breaking change alerts: a session that just refactored an API can warn the session building on top of it before the build breaks
- Long-running job status: a migration or test suite running in one terminal can report back to the session you are actively watching
- Cross-machine replies: answer a question from a session running on another machine or in the Claude Code web interface
A practical prompt looks like: Ask the session running in my other terminal whether the migration finished. Claude writes the actual message, discovers the target via ListAgents, and delivers it. You can name sessions with /rename or the --name CLI flag to make targeting unambiguous when several are running at once.
Availability and limits
Cross-session messaging requires Claude Code v2.1.224 or later and runs on macOS and Linux. It is not available on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. A few environment variables that disable feature-flag evaluation will also keep it off, including DISABLE_TELEMETRY and DO_NOT_TRACK. Run /list-agents in any session to confirm it is active.
Loop protection is built in: Claude Code rate-limits repeated messages per sender, drops identical repeats arriving within a short window, and caps accepted messages waiting for Claude to read them at 50 per session. Once a message is delivered, it counts toward usage like a prompt you typed yourself.
Cross-session messaging connects independent sessions that you start and steer yourself. That distinguishes it from the existing agent teams feature, where Claude orchestrates spawned sub-agents internally. Together, the two features cover most multi-agent workflows you would want to run inside Claude Code.