Stop copy-pasting between AI chats. Here’s the setup, the naming trick nobody does, and the exact charter that keeps a team of sessions in sync.
If you run more than one AI session at a time, you’ve been the middleman. You copy what one figured out, paste it into the other, and re-explain the context both are missing. That job is now the AI’s.
Since early August 2026, Claude Code sessions can message each other. One session writes a note and another reads it mid-task. You never write the note yourself. Claude works out what the other session needs to know and sends that, either on its own or when you ask.
The feature turns itself on. It won’t organize your team for you, though, and an unorganized team of sessions is just more chaos running in parallel. So here’s the setup, then the charter I use.
claude --version. You need 2.1.224 or later on Mac or Linux (including WSL 2), or 2.1.234 or later on native Windows. Starting a conversation with a session on another machine needs 2.1.225 and Remote Control./list-agents (or /peers) in one.Then just ask in plain words, like "Explain what we just did to the session working on the payments API." On 2.1.232 or later you can type @ and pick the session by name.
Know this before you rely on it: a message is plain text only. It never carries the other session’s history or your files. To move a whole conversation, resume that session instead. (Anthropic’s docs)
This is the step everyone skips, and it’s the one that makes the difference. Claude addresses messages by session name. If you never set one, Claude Code names the session itself, and three auto-named sessions are hard to tell apart when you say "tell the other one."
Rename every session the second you open it. Type /rename and give it a role, or launch it with --name. Name it after the job, like builder or reviewer, rather than the tool. Ten seconds each, and "tell the reviewer what changed" becomes an instruction Claude can follow.
Same Folder, Different Names
Two sessions in the same folder with similar names is how a marketing session ends up getting a note about a database migration. When names collide, Claude has to fall back on short IDs. Give every session its own name, even in the same folder.
Paste this into your project’s CLAUDE.md file, or into the first message of each session. Every session reads it, so every session knows who exists, who owns what, and when to speak up. Swap in your own roles.
Everything written about this feature assumes you’re shipping software. You don’t have to be. The pattern is one session that learns things and another that needs to know them.
01
Research to writing
Session one digs through sources. Session two drafts the piece.
The message that earns its keep: research finds a number that contradicts the draft’s angle. It says so, and the writing session changes course before three paragraphs get built on a wrong premise.
02
Strategy to execution
Session one is where you argue about what to do. Session two is doing it.
The message that earns its keep: you change your mind about the offer in the strategy session. It tells the execution session, which stops building the version you just killed. Decisions almost always change after work starts, so this one saves real time.
03
The long job and the watcher
Session one runs something slow. Session two is the one you’re actually sitting in front of.
The message that earns its keep: the long job reports back the moment it finishes or fails, so you stop tabbing over to check. On 2.1.236 or later, just say "tell me when the research session finishes" and you get one notice when it goes idle. Messages land between tool calls, so nothing gets interrupted mid-step.
For the bigger picture on running several sessions at once, see the parallel agents guide.
Delivered messages cost you. Once a message lands, it counts toward your usage like a prompt you typed. Four chatty sessions burn through limits fast, which is why the charter is strict about when to send.
You control what comes in. In /config, find Messages from your other sessions (or set crossSessionInbound) and pick accept, hold (you approve each one) or refuse. To stop a session from sending, deny the SendMessage and ListAgents tools in your permissions.
A message can’t approve anything. It never counts as your consent, can’t change settings, and slash commands inside it don’t run.
Loops stop on their own. Claude Code rate-limits repeats, drops identical messages that arrive close together, and caps the queue at 50.