[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-claude-code-sessions-message-each-other-en":3,"article-related-claude-code-sessions-message-each-other-en":29,"series-tools-c3952c24-178c-4cb8-a1f8-a54a740f870e":76},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":11},"c3952c24-178c-4cb8-a1f8-a54a740f870e","claude-code-sessions-message-each-other-en","Claude Code lets sessions message each other","\u003Cp data-speakable=\"summary\">\u003Ca href=\"\u002Fnews\u002Fclaude-code-no-longer-clear-front-runner-en\">Claude Code\u003C\u002Fa> sessions can now exchange messages, which changes how I coordinate agents.\u003C\u002Fp>\u003Cp>I've been using \u003Ca href=\"\u002Ftag\u002Fclaude-code\">Claude Code\u003C\u002Fa> for a while, and the thing that kept bothering me was not the coding. It was the coordination. One session would inspect a bug, another would draft a fix, a third would refactor the same file, and none of them had a clean way to say, “hey, I already checked that branch, don’t spend fifteen minutes rediscovering it.” I kept ending up as the human message bus. That’s fine for one or two threads. It gets ugly fast when you’re juggling parallel work and trying not to let one \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa> stomp on another’s assumptions.\u003C\u002Fp>\u003Cp>Then \u003Ca href=\"\u002Ftag\u002Fanthropic\">Anthropic\u003C\u002Fa> dropped a change that actually matters: \u003Ca href=\"\u002Ftag\u002Fclaude\">Claude\u003C\u002Fa> Code sessions can send messages to each other. The announcement I’m reacting to is on Zhihu here: \u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2069484509557421666\">zhuanlan.zhihu.com\u002Fp\u002F2069484509557421666\u003C\u002Fa>. The original post is in Chinese, but the core idea is simple enough: separate Claude Code sessions can now coordinate directly instead of making me translate between them. That’s the first time this workflow has felt less like a stack of isolated chat logs and more like a real multi-agent setup.\u003C\u002Fp>\u003Ch2>Stop treating each session like a dead-end chat\u003C\u002Fh2>\u003Cblockquote>“现在，你可以在一个会话（Claude Code Session）里问 AI 其他对话的信息，让正在跑着的不同智能体之间对齐…”\u003C\u002Fblockquote>\u003Cp>What this actually means is that a Claude Code session is no longer just a private scratchpad. It can become part of a network. One session can ask what another session saw, decided, or changed, and that cuts down on the dumb repetition I’ve been fighting for months.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786753979904-qpen.png\" alt=\"Claude Code lets sessions message each other\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>I ran into this exact problem when I split a repo audit across multiple agents. One agent was checking \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> routes, another was tracing config, and a third was comparing test coverage. They all found useful things. They also all wasted time duplicating the same context gathering because none of them could cheaply ask the others what they’d already learned.\u003C\u002Fp>\u003Cp>Before this, I had two options: paste summaries manually, or accept drift. Manual summaries are slow and error-prone. Drift is worse, because now each session is confidently wrong in its own little bubble. Direct session-to-session messaging is boring in the best possible way. It removes one of the most annoying parts of agent orchestration.\u003C\u002Fp>\u003Cp>How to apply it: stop assigning every session a fully isolated job description. Instead, think in terms of shared state plus local tasks. Give each session a narrow responsibility, then let it query the others for facts instead of rebuilding the whole world from scratch.\u003C\u002Fp>\u003Cul>\u003Cli>Use one session as the “investigator” and another as the “implementer.”\u003C\u002Fli>\u003Cli>Let a verifier session ask for exact file paths, diffs, or prior findings.\u003C\u002Fli>\u003Cli>Keep the human out of the relay loop unless a decision actually needs judgment.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Use sessions for memory, not just output\u003C\u002Fh2>\u003Cp>This is the part people miss. Most folks use agents like fancier autocomplete. That’s too small. The better mental model is distributed memory with execution attached. A session shouldn’t just produce text; it should hold a slice of the project’s working memory and expose it to the other sessions that need it.\u003C\u002Fp>\u003Cp>That matters because the cost of context loss is not abstract. I’ve watched one agent confidently propose a fix that another agent had already ruled out because it broke a different path. Nothing was “wrong” with either agent. The workflow was wrong. They were both acting like they owned the whole problem.\u003C\u002Fp>\u003Cp>With cross-session messaging, I’d rather give each agent a clear memory boundary. Session A owns the bug report. Session B owns the implementation plan. Session C owns regression checks. Then A can ask B, “what assumptions did you make?” and C can ask A, “which edge cases did the user actually hit?” That’s a much cleaner loop than dumping a giant transcript into every prompt and praying.\u003C\u002Fp>\u003Cp>How to apply it: define what each session is allowed to know, then define what it is allowed to ask. That sounds fussy, but it keeps agents from becoming noisy generalists.\u003C\u002Fp>\u003Cul>\u003Cli>Assign one session per role: scout, builder, reviewer, tester.\u003C\u002Fli>\u003Cli>Write down the questions each role is allowed to send.\u003C\u002Fli>\u003Cli>Use the replies as structured inputs, not loose chat fluff.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Parallel work only helps if you can reconcile it\u003C\u002Fh2>\u003Cp>I’ve seen a lot of teams get excited about parallel agents, then immediately drown in merge pain. The problem isn’t speed. The problem is reconciliation. If three sessions edit three parts of the same feature, somebody has to know whether those edits still fit together. Without a coordination channel, you’re back to manually comparing notes like it’s 2014 and everyone is on a different branch of reality.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786753982246-pqm0.png\" alt=\"Claude Code lets sessions message each other\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>This update makes reconciliation more realistic. A session can ask another session what changed, what it tested, or what it intentionally left alone. That means the review process can happen while the work is still in motion, not only after the fact.\u003C\u002Fp>\u003Cp>I’d use this anytime I’m splitting a feature across code paths that meet at one interface. One session can own the API contract, another the UI wiring, another the tests. Then they can cross-check each other before I do the final merge. That’s where the time savings actually show up: fewer handoffs, fewer surprises, fewer “wait, why did you rename that?” moments.\u003C\u002Fp>\u003Cp>How to apply it: make reconciliation part of the task, not a separate cleanup phase. If two sessions are touching related code, require them to exchange a compact status message before they finish.\u003C\u002Fp>\u003Cul>\u003Cli>What changed?\u003C\u002Fli>\u003Cli>What did you intentionally not touch?\u003C\u002Fli>\u003Cli>What might break if another session keeps going?\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Keep the messages short or you’ll recreate chat spam\u003C\u002Fh2>\u003Cp>There’s a trap here. Just because sessions can message each other doesn’t mean they should start narrating their whole lives. If you let them ramble, you’ve built a more annoying version of Slack. Nobody wants that, least of all me.\u003C\u002Fp>\u003Cp>What I want from session-to-session communication is terse, structured, and useful. Think status packets, not diary entries. The whole point is to reduce context transfer cost. If every message is a wall of text, you’ve lost the benefit and added another failure mode.\u003C\u002Fp>\u003Cp>When I’m coordinating humans, I already prefer short updates with explicit fields. Agents should be held to the same standard. Tell me what you learned, what you changed, what you need, and what you’re blocked by. Anything else is decoration.\u003C\u002Fp>\u003Cp>How to apply it: give every agent a fixed message format. If the tool does not enforce structure, your prompt should.\u003C\u002Fp>\u003Cpre>\u003Ccode>STATUS UPDATE\n- owner: session-name\n- changed: files or concepts touched\n- learned: new facts discovered\n- needs: questions for other sessions\n- risk: anything likely to break\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2>Use it to reduce human babysitting, not to remove human judgment\u003C\u002Fh2>\u003Cp>I’m not interested in pretending agents can run a project by themselves. They can’t. What they can do is stop me from being the glue between every moving part. That’s the real win here: less babysitting, more actual judgment calls.\u003C\u002Fp>\u003Cp>Cross-session messaging is useful because it lets the system answer operational questions without escalating to me every time. Did another session already inspect this file? Did someone else decide the naming convention? Was that test failure expected? Those are coordination questions, not strategic ones. The human should only step in when the answer changes the direction of the work.\u003C\u002Fp>\u003Cp>I’ve had enough sessions where the model asked me the same thing three times because it had no way to check with the other thread that already knew the answer. That’s pure waste. If sessions can ask each other first, I get fewer interruptions and better continuity.\u003C\u002Fp>\u003Cp>How to apply it: decide in advance what counts as a coordination question versus a product question. Let the agents settle the first category among themselves. Keep the second category for you.\u003C\u002Fp>\u003Ch2>What this changes for Claude Code specifically\u003C\u002Fh2>\u003Cp>Claude Code already had a strong “work in the repo” vibe, but this update pushes it closer to a real multi-agent workbench. The difference is not just that you can run more sessions. It’s that those sessions can now act like they share a workspace instead of pretending the others don’t exist.\u003C\u002Fp>\u003Cp>That matters most in messy codebases. In a small demo project, you can keep everything in your head. In a real product repo, you can’t. You need agents that can specialize, compare notes, and avoid stepping on each other’s toes. This feature is basically an admission that isolated agents are a dead end for serious coordination.\u003C\u002Fp>\u003Cp>If you want the surrounding docs, Anthropic’s Claude Code page is here: \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fclaude-code\">anthropic.com\u002Fclaude-code\u003C\u002Fa>. I’d also keep the Claude docs handy at \u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002F\">docs.anthropic.com\u003C\u002Fa> if you’re wiring this into a broader workflow. And if you’re building your own orchestration layer, the same lesson shows up in every decent multi-agent system: communication needs to be cheap, explicit, and scoped.\u003C\u002Fp>\u003Cp>How to apply it: use this feature when the task has real dependency edges. Don’t waste it on single-file edits. Save it for cases where one session’s conclusion should directly influence another session’s next move.\u003C\u002Fp>\u003Ch2>The template you can copy\u003C\u002Fh2>\u003Cpre>\u003Ccode># Claude Code multi-session coordination template\n\n## Roles\n- session-scout: gathers facts, traces code paths, identifies unknowns\n- session-builder: implements the change\n- session-reviewer: checks assumptions, naming, and integration risk\n- session-tester: validates behavior and reports failures\n\n## Rules\n- Each session owns one responsibility only.\n- Sessions may ask each other for facts, not opinions.\n- Messages must be short and structured.\n- The human only answers product-level or architecture-level questions.\n\n## Message format\nSTATUS UPDATE\n- owner: &lt;session-name&gt;\n- changed: &lt;files or areas touched&gt;\n- learned: &lt;facts discovered&gt;\n- needs: &lt;questions for another session&gt;\n- risk: &lt;possible regressions or conflicts&gt;\n\n## Coordination flow\n1. session-scout maps the problem and sends a status update.\n2. session-builder asks session-scout for any missing facts.\n3. session-reviewer asks session-builder what assumptions were made.\n4. session-tester asks both builder and scout what should be covered.\n5. human reviews only unresolved conflicts or direction changes.\n\n## Prompt snippet for each session\nYou are working in a multi-session Claude Code workflow.\n\nYour job is to stay within your role and ask other sessions for facts when needed.\nBefore making a decision, check whether another session already knows the answer.\nSend short, structured updates only.\nDo not repeat work another session already completed.\nIf you need help, ask a specific question in STATUS UPDATE format.\n\n## Example cross-session question\nSTATUS UPDATE\n- owner: session-reviewer\n- changed: review of auth flow\n- learned: token refresh is handled in middleware, not the route handler\n- needs: session-builder, confirm whether the new error state preserves existing retry logic\n- risk: duplicate refresh handling if the UI adds a second fallback\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The template above is mine, not Anthropic’s. I built it from the coordination pattern implied by the Zhihu post and the Claude Code announcement, then shaped it into something I’d actually use in a repo. The source that triggered this write-up is the Zhihu article at \u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2069484509557421666\">https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2069484509557421666\u003C\u002Fa>; the rest is my own breakdown and workflow template.\u003C\u002Fp>","Claude Code now lets separate sessions exchange messages, and I break down how to use that for multi-agent coordination.","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2069484509557421666",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786753979904-qpen.png","tools","en","62bdb4e4-7f3f-4218-ba55-d716aecd8ee7",[17,18,19,20,21],"Claude Code","multi-agent","session messaging","Anthropic","developer workflow",[23,24,25],"Cross-session messaging turns Claude Code into a coordination tool, not just a chat tool.","Use agents as specialized roles with short structured messages, not as isolated generalists.","The real win is less human babysitting and fewer duplicated checks across parallel work.",1,"2026-08-15T00:32:41.517992+00:00","2026-08-15T00:32:41.51+00:00",{"tags":30,"relatedLang":35,"relatedPosts":39},[31,33],{"name":17,"slug":32},"claude-code",{"name":20,"slug":34},"anthropic",{"id":15,"slug":36,"title":37,"language":38},"claude-code-sessions-message-each-other-zh","Claude Code 讓會話互傳訊息","zh",[40,46,52,58,64,70],{"id":41,"slug":42,"title":43,"cover_image":44,"image_url":44,"created_at":45,"category":13},"5dd1b059-52b0-4714-8ccd-212e0a0a4c53","10-ai-github-repos-that-actually-save-time-en","10 AI GitHub repos that actually save time","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786712619804-x8qp.png","2026-08-14T13:03:15.028729+00:00",{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":13},"ec38a366-da08-4608-8e65-bf2454579bb2","anthropic-fable-leak-ctf-warning-en","Anthropic's Fable leak turns CTF chaos into a warning","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786695622941-60rq.png","2026-08-14T07:33:08.827571+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":13},"3e2d87af-b7df-4641-b685-902f1e5447c6","vdbbench-cost-benchmark-vector-databases-en","VDBBench adds cost to vector DB comparisons","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786654989665-5863.png","2026-08-13T21:02:47.741801+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":13},"56318ec4-831a-44e1-835a-726b70b35a74","zilliz-cost-aware-vdbbench-benchmark-en","Zilliz Adds Cost Metrics to VDBBench","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786653171532-hxel.png","2026-08-13T20:32:26.778928+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":13},"69dd7cef-070b-4655-89e2-32ca7f940dfc","pixel-11-launch-highlights-gemini-features-en","Pixel 11 launch highlights and new Gemini features","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786649568791-bt87.png","2026-08-13T19:32:23.952844+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":13},"8a602145-fe30-42b4-9db4-b33079f61aeb","aws-continuum-turns-ai-coding-into-safer-fixes-en","AWS Continuum turns AI coding into safer fixes","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1786644235172-qp3c.png","2026-08-13T18:03:31.506196+00:00",[77,82,87,92,97,102,107,112,117,122],{"id":78,"slug":79,"title":80,"created_at":81},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":83,"slug":84,"title":85,"created_at":86},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":88,"slug":89,"title":90,"created_at":91},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]