
TL;DR
Claude Code v2.1.224 lets one running session message another over a first-party channel - plain text, permission-aware, with approval dialogs when bypass-mode sessions talk to each other. Here is what ships, how delivery and inbound controls work, and where the feature stops.
Claude Code can now send messages between your independent, running sessions. The feature landed in v2.1.224 and is documented as cross-session messaging: one session discovers your others with a ListAgents tool, delivers a short text message with a SendMessage tool, and the receiving session reads it between tool calls or starts a fresh turn if idle. No setup, no config file, no server to run. If you are on v2.1.224 or later on macOS or Linux, messaging is on with nothing to enable.
It is a small API surface with a large workflow consequence, and the design decisions around it are the interesting part.
Two tools do all the work, and you never call them yourself. Claude calls ListAgents to see which sessions it can reach, then SendMessage to deliver to one of them by name. The same SendMessage tool also covers subagents and agent-team teammates inside a single session, which means the deny rule that turns messaging off covers all three at once. To see what your Claude can reach, run /list-agents (alias /peers); /status shows your session's own inbox address.
What travels between sessions is deliberately narrow: plain text only. No conversation history, no files, no context. If you want another session to inherit context, the docs point you to resume instead. The receiving Claude reads a message between tool calls during an active turn, so a running tool is never interrupted, and an idle session just starts a new turn with the message.
Delivery is not guaranteed, and that is the feature's most honest detail. Each session checks inbound messages against its crossSessionInbound setting - accept, hold, or refuse - and when no setting applies, Claude Code derives the behavior from the two sessions' permission modes. A session that bypasses permission prompts holds every message from a prompting session for your approval; a prompting receiver holds messages from a bypassing sender. The approval dialog shows sender and preview, defaults to a five-minute expiry, and a session will hold at most 100 messages before dropping the oldest. Message loops cannot run forever either: repeated sends are rate-limited, identical repeats are dropped, and incoming messages cap at 50 per session.
Three more details matter for fleet operators. First, claude -p workers bind the same inbox socket as interactive sessions, so a long-running non-interactive job can receive messages, and hooks get the socket path as CLAUDE_CODE_MESSAGING_SOCKET (a hook can post back to its own session). Bare-mode sessions bind nothing. Second, across machines a session can reply but never initiate - starting the exchange requires a same-machine peer or you steering via Remote Control. Third, an isolatePeerMachines: true setting forces your approval before any message leaves the machine, even in bypass mode, and a checked-in project file can turn that requirement on but not off.
From the archive
Aug 8, 2026 • 9 min read
Aug 8, 2026 • 7 min read
Aug 8, 2026 • 6 min read
Aug 8, 2026 • 6 min read
Until now, coordination between independent Claude Code sessions had three channels, and all three were bad. You watched terminals yourself and copy-pasted findings. You wrote to shared files and polled. Or you used an external memory tool and hoped sessions read the same facts at the right moment. Cross-session messaging replaces the polling and the copy-paste with a first-party text channel whose defaults follow the permission system you already tuned. The docs' four use cases are the ones every parallel-agent setup hits: hand over a finding, coordinate sessions working the same repo in separate worktrees, get status from long-running work, and reply from another machine.
The permission-aware defaults are the real signal. A bypass-mode session does not get to whisper straight into another bypass-mode session - that pair holds messages for your approval. This is the same philosophy as auto mode's classifier: capability grows, safety moves into the channel itself, and organizations get a knob. Admins can refuse inbound messages and deny SendMessage/ListAgents org-wide from managed settings, and the sending side is instructed never to ask another session to do something its own session was denied. The attack surface this closes is the one we have warned about before: agent approval fatigue is what happens when every handoff pings a human, and a machine channel that respects per-session permission boundaries is the alternative to either rubber-stamping or babysitting.
It also completes a ladder Anthropic has been building for months. Subagents run inside one session. Agent teams are sessions Claude spawns and supervises. Cross-session messaging is the layer above: sessions you started independently, coordinating without you as the relay. The docs are careful about the boundaries between them - resume for context, teams for supervised work, agent view for watching many sessions, Remote Control for steering from your phone, channels for pushing CI events in. That routing discipline is the framework teams should copy when they plan their own multi-session setups: one tool per shape, and messaging only where sessions are peers.
The boundaries are as informative as the feature. Native Windows is out. Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, and Microsoft Foundry are out, which means cross-session messaging joins the list of Claude Code features that skip the hosted-model routes. Plain text only, so no structured team protocol across sessions. And the docs are explicit that messaging is for sessions you start and steer yourself - the mechanism is not a supervisor, and it does not replace the worktree discipline that keeps parallel sessions from colliding on the same checkout. The message is the coordination signal; the filesystem still does the coordination.
The practical play for a fleet right now: run long tasks in claude -p workers with crossSessionInbound set to accept, let your interactive session ask them for status, and let worktree peers warn each other the moment a landed change breaks a shared contract. That pattern is testable today with no new tooling, and it makes the terminal a room where the agents can talk, instead of a row of screens you switch between.
Read next
Auto mode replaces permission prompts with a background safety classifier - here is how the Shift+Tab cycle, hard_deny rules, and glob deny patterns actually fit together.
8 min readUltracode is two documented things: a prompt keyword that turns one task into a dynamic workflow, and an /effort setting that pairs xhigh reasoning with automatic orchestration. Here is exactly what the docs say.
8 min readAgent-Manager wraps tmux into a Go TUI that groups AI coding agents by project, shows live status for each, and lets you answer blocked agents or review their changes without attaching to their terminal.
7 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
A hosted infinite canvas your headless AI agents drive over MCP. Any MCP-speaking agent - Claude Code, Codex, Cursor, or...
View ToolAnthropic's agentic coding CLI. Runs in your terminal, edits files autonomously, spawns sub-agents, and maintains memory...
View ToolInteractive TUI dashboard that shows exactly where your Claude Code and Cursor tokens are going, in real time.
View ToolMac app for running parallel Claude Code, Codex, and Cursor agents in isolated workspaces. Watch every agent work at onc...
View ToolUnlock pro skills and share private collections with your team.
View AppCatch broken SKILL.md files in CI before they hit your team.
View AppDesign subagents visually instead of editing YAML by hand.
View AppDefine custom subagent types within your project's memory layer.
Claude CodeResearcher, auditor, reviewer, and other ready-made subagent types.
Claude CodeConfigure Claude Code for maximum productivity -- CLAUDE.md, sub-agents, MCP servers, and autonomous workflows.
AI Agents
In this video, we dive into Anthropic's newly launched Cowork, a user-friendly extension of Claude Code designed to streamline work for both developers and non-developers. This discussion includes an

Try out GitKraken here: https://gitkraken.cello.so/myw3K67IkCr to get 50% GitKraken Pro. In this video, we explore GitKraken, a robust Git GUI that not only visualizes your Git repository...

Leveraging Anthropic's Subagent for Claude Code: A Step-by-Step Guide In this video, we explore Anthropic's newly released subagent feature for Cloud Code, which allows developers to create...

Meta released Muse Code, a terminal coding agent, and Muse Spark 1.2 on August 5, 2026. The model co-trains with the har...

Databricks measured the same model through different coding harnesses and found cost per task varied more than 2x at ide...

A new arXiv benchmark ran 6,560 sandboxed runs across Claude Code, Codex, OpenClaw, and Hermes with five LLMs. 68% of ru...

A controlled ablation across Claude Code and Codex, 17 real tasks, and 288 evaluated runs finds context-injection strate...

Agent-Manager wraps tmux into a Go TUI that groups AI coding agents by project, shows live status for each, and lets you...

Anthropic cut 80% of Claude Code's system prompt for Opus 5 and Fable 5 with zero regression on coding evals. The post l...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.