Back to Devoured - August 10, 2026
DEVOURED
Message your other Claude Code sessions

Message your other Claude Code sessions

AI Anthropic
Claude Code sessions can now message each other directly to share findings, coordinate parallel tasks, and resolve blocked operations.
What: Requiring v2.1.224+, this feature lets independent Claude Code sessions (local or cloud-based) exchange text messages to inform each other of breaking changes or task statuses.
Why it matters: This enables autonomous agents to coordinate complex, multi-repo workflows without requiring the developer to act as the intermediary between terminal sessions.
Takeaway: Use `/list-agents` to view reachable sessions and have Claude send context across them by prompting it to 'explain this finding to the payments API session.'
Deep dive
  • Messaging is handled via internal tools ListAgents and SendMessage without interrupting active tasks.
  • Cross-machine messaging is supported but requires explicit Remote Control configurations.
  • Security is maintained through permission boundaries; an incoming message cannot trigger unauthorized actions or change configuration.
  • Sessions can be configured to accept, hold, or refuse incoming messages via the crossSessionInbound setting.
  • The system is restricted to plain text to avoid complex payload exploits.
  • If sessions are configured to bypass permission prompts, the system defaults to holding messages for human approval to prevent unauthorized agent coordination.
Decoder
  • Claude Code: A CLI tool that allows an AI agent to operate directly within a developer's terminal, file system, and git repository.
  • Worktree: A Git feature that allows multiple branches of a repository to be checked out simultaneously in different directories.
Original article

Cross-session messaging requires Claude Code v2.1.224 or later and runs on macOS and Linux. When a session meets the requirements, messaging is on with nothing to enable. Cross-session messaging lets Claude deliver a message from one of your Claude Code sessions to another. When a change in one session breaks what another is building on, Claude can warn that session before you notice. When one session settles a question another is blocked on, Claude can send the answer across. A message is a piece of text one Claude writes to another, never conversation history or files.

Claude uses two tools for this: ListAgents to discover which agents it can reach, and SendMessage to deliver a message to one of them by name. With the same SendMessage tool, Claude can also message subagents and agent team teammates within a single session or team. This page covers messages between your independent sessions.

When to use cross-session messaging

Use messaging when one of your sessions has something another session needs mid-task. Claude can send a message on its own when it sees the need, for example after making a change that affects work another session is doing, or you can ask it to send one. The common cases:

  • Hand over a finding: when one session discovers a breaking change or makes a decision, Claude summarizes it for the session working on the affected area, instead of you re-explaining it there.
  • Coordinate parallel worktrees: when sessions work the same repository in separate worktrees, Claude can tell the other sessions what landed.
  • Get status from long-running work: have a migration or test run report back to the session you’re watching, or ask it yourself from there.
  • Message across machines: reach one of your sessions on another machine or on the web.

Use messaging between independent sessions that you start and steer yourself.

Message another session

When one of your sessions learns something another session needs, such as a finding, a status, or a decision, Claude passes it along instead of you copy-pasting between terminals. Claude discovers the target with ListAgents and sends with SendMessage, so you never call either tool yourself. Claude can decide to send a message without being asked, and you can also prompt for one.

Ask the session running in my other terminal whether the migration finished

Claude writes the actual message itself, so your prompt can leave the content to Claude. This prompt asks for a summary without dictating its wording, and what Claude sends varies:

Explain what we just did to the session working on the payments API

Message delivery

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. The receiving session checks each arriving message against its own inbound controls, and the check ends in one of three outcomes:

  • Delivered: Claude Code passes the message to the receiving Claude.
  • Held: Claude Code sets the message aside undelivered. A held message reaches Claude only when you approve it or a later mode or settings change allows it.
  • Refused: Claude Code drops the message without delivering it.

Once delivered, the message counts toward usage like a prompt you type, and the receiving Claude can reply to the sender the same way, except in the one-way cross-machine case. Permission boundaries stay per-session.

See which sessions Claude can reach

Claude finds a message’s target on its own, so you don’t need to run anything before asking it to send. To see for yourself which sessions Claude can reach, run the /list-agents command. It lists each session with the name it answers to, and that name is where Claude addresses a message.

Message sessions on other machines

How a message travels, and whether it passes through Anthropic servers, depends on where the target session runs:

Where the other session runs How the message travels
On this machine Over a per-session socket, never through Anthropic servers
On another of your machines Through Anthropic servers, arriving over that machine’s Remote Control connection
On Claude Code on the web Through Anthropic servers, straight to the cloud session

How a session treats an incoming message

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 the message can do:

  • It can’t approve anything: a message from another session never counts as your consent, so it can’t answer a pending permission prompt on your behalf.
  • It can’t change configuration: Claude Code instructs the receiving Claude never to change permission settings, CLAUDE.md, or other configuration because another session asked.
  • Commands don’t run: a command in the message’s text, such as /compact, arrives as plain text. Claude Code never executes it.
  • Permission prompts still fire: if acting on the message requires a permission the receiving session doesn’t have, you see the same prompt you’d see for any other work.

What a message looks like

When the message arrives, it appears in the conversation with its sender, queued while Claude is mid-turn or starting a new turn right away when the session is idle. Once Claude has read it, Claude Code collapses it to a one-line Message from row, which Ctrl+O expands.

Control inbound messages

Value Behavior
accept Claude Code delivers each message to Claude
hold Claude Code shows a notice for each message and doesn’t deliver it.
refuse Claude Code drops each message without delivering it

Restrict cross-session messaging

Require approval for cross-machine messages

Set isolatePeerMachines to true to require your explicit approval before any SendMessage reaches a session beyond this machine.

Turn off cross-session messaging

Receiving and sending are separate controls, so turn off whichever direction you need, or both.

Availability

Cross-session messaging requires Claude Code v2.1.224 or later. Availability also depends on your platform, provider, and configuration:

  • Operating system: available on macOS and Linux, including Linux inside WSL 2.
  • Provider: not available on Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, or Microsoft Foundry.

Limitations

  • Plain text only: Claude sends only plain text across sessions.
  • Message loops are throttled: 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.
Explore all 68 articles in today's digest

Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi