Claude Code: Sessions Can Now Message Each Other Across Machines

Claude CodeView original changelog

Claude Code 2.1.224 introduced cross-session SendMessage, letting one Claude Code session send a message directly to another session running on any of the developer's machines, with a new ListAgents capability to discover which sessions are reachable. Anthropic paired the feature with crossSessionInbound and dialogExpiry settings so that messages sent to a session running with bypassed permissions are held for explicit approval, while messages to normally-permissioned sessions deliver automatically. The company also hardened the underlying safety path, routing every cross-session message through the auto-mode permission classifier before it dispatches, and fixed a bug where failed message deliveries were incorrectly reported as successful. The feature currently supports macOS and Linux.

Key Takeaways

  • Native cross-session messaging arrives in Claude Code, replacing the file-polling and WebSocket relay workarounds developers had been building themselves to get separate sessions talking to each other.
  • ListAgents lets a session discover reachable peers first, so a developer running several Claude Code instances across machines can see what's available before sending a message.
  • Bypassed-permissions sessions get a safety gate: incoming cross-session messages to them are held for explicit approval via the new dialogExpiry setting, rather than auto-delivering.
  • Normally-permissioned sessions still auto-deliver messages, keeping the feature low-friction for the common case while reserving extra scrutiny for higher-risk sessions.
  • Every cross-session message now passes through the auto-mode permission classifier before dispatch, closing a gap where agent-to-agent communication could skip the checks applied elsewhere.
  • A silent failure bug was fixed: SendMessage previously reported success even when delivery to a teammate's inbox failed; failures are now reported as errors, and overlong summaries are truncated instead of rejected.

A New Way for Claude Code Sessions to Talk to Each Other

Anthropic shipped cross-session SendMessage in Claude Code 2.1.224, giving developers who run multiple Claude Code sessions — across different terminals, projects, or even different machines — a native way to have those sessions coordinate directly instead of relying on manual copy-paste or third-party relay tools. A companion capability, ListAgents, lets a session discover which other Claude Code sessions are currently reachable before messaging one of them. The feature is available on macOS and Linux.

This closes a gap that developers had previously worked around with ad hoc scripts: community projects built around file-polling relays and WebSocket bridges had already sprung up to let separate Claude Code instances exchange messages, a sign that demand for native inter-session communication existed well before Anthropic built it in.

Approval Controls for Bypassed Sessions

Sending a message into a session isn't unconditional. Anthropic added two settings, crossSessionInbound and dialogExpiry, that govern how incoming messages behave depending on the receiving session's trust level. If the target session is running with bypassed permissions, an incoming cross-session message is held for the developer's explicit approval rather than being silently accepted. Messages sent to a normally-permissioned session continue to auto-deliver. This distinction matters because a bypassed-permissions session is, by definition, running with fewer safety checks, so Anthropic chose not to let another session inject instructions into it without a human in the loop.

Safety Hardening Shipped Alongside

The new messaging capability arrived alongside a broader hardening pass on auto mode. Messages dispatched to other agent sessions via SendMessage are now evaluated by the same permission classifier that governs other automated actions, before the message is sent — closing a gap where agent-to-agent communication could bypass the checks applied to everything else an autonomous session does. Anthropic also fixed a reliability bug in the same area: SendMessage had been reporting "Message sent" even when the write to a teammate's inbox actually failed, silently dropping communications between sessions. Failed deliveries are now surfaced as errors instead of false successes, and messages with long summaries that previously triggered a hard failure on a character limit are now truncated instead of rejected outright.