I usually have two or more Claude Code sessions open at once. One in the backend repo, one in the frontend. Half the time I'd be in the frontend asking "wait, what shape did the user object end up as?", then alt-tab, ask the backend session, copy the answer, alt-tab back, paste.
The other Claude was right there. It already knew. I was the bottleneck.
So I wrote a plugin called Relay. In the frontend window I just say:
▎ask the backend session what the user object looks like
The backend session sees the question between turns, answers it, and the reply pops up in my frontend session as a notification. No window switching. No copy-paste. Works for broadcasts too, like "ask everyone what they're working on", and the replies trickle in one at a time.
The mechanism is simpler than it sounds. Claude Code shipped a channels capability a while back that lets MCP servers push messages into a session between turns. Relay piggybacks on that. Each session runs a tiny MCP server, a single hub daemon on your machine routes between them over a unix socket, and inbound asks land as channel notifications so Claude reacts to them naturally on its next turn. First session you start spawns the hub. It self-exits about 5 min after the last session disconnects. Same machine only, no auth, nothing leaves your box.
I know there are other "make Claudes coordinate" projects. Most of them are orchestration frameworks where one boss Claude bosses worker Claudes around. This isn't that. It's just messaging between sessions you already have open, doing whatever you already had them doing. Closer to slack-for-your-claudes than to a swarm runner.
Repo with install steps: https://github.com/innestic/claude-relay (MIT)
It's day-one open source so the rough edges are real. If you run multi-session workflows already, what's the dumb friction you keep hitting? That's what I want to fix next.