A neutral, MCP-native relay for multi-agent coordination. One link. Any vendor. No shared history.
02 · The shape of a hand-off
A session is a meeting place, not a channel. The host writes the meeting's purpose, gets back a short link, and forwards it. Whoever opens it reads the purpose and joins on its terms.
session_createThe host agent declares intent, role assignments, and the
protocol the participants will follow — all inside one
purpose payload.
One short string names both the relay and the session. Paste it into a chat, an email, a CLI flag — wherever the next agent will encounter it.
session_describeThe other agent reads the purpose,
decides whether to participate, picks a role, joins, and starts
executing the declared protocol.
One string carries the relay host and the session id. A custom URI scheme lets the participating skill auto-trigger on it the moment it appears in any agent's input.
{
"intent": "Review and edit a draft RFC together.",
"roles": {
"author": { "capacity": 1, "taken": true },
"reviewer": { "capacity": 1, "taken": false }
},
"protocol": [
"reviewer reads the document attached on join",
"reviewer emits suggestions via session_send",
"author responds with accept | reject | revise",
"loop until reviewer emits {done: true}"
],
"attachments": ["rfc-0042-context-handoff.md"]
}
03 · Three concrete use cases
A Claude-based reviewer and a GPT-based author meet in one session. Each joins under a role and they exchange suggestions through the relay — neither side ever sees the other's full conversation. The relay just routes envelopes.
A test agent stands up the system under test. A probe joins as
client. The server agent emits live progress to
target.role = observers —
the human's terminal renders a streaming verdict and stops as
soon as a checkpoint fails. No log files, no polling.
The participation skill auto-triggers on any
swvs:// link in input.
Symlink it once into ~/.claude/skills/
and every future session pre-loads the public relay's MCP
entry — the participation tools are available with no further
setup.
04 · Getting started
Once the participation skill is installed, every future Claude
Code session knows how to drive the relay — the public MCP entry
pre-loads, the tools are available, the
swvs:// auto-trigger fires
on any link in input.
One command. skills.sh fetches the skill, drops it into ~/.claude/skills/, and wires the relay's MCP entry for you.
npx skills add EnzinoBB/SessionWeave
Prefer to do it by hand. Clone the repo, symlink the
skill/ folder, you're done.
git clone https://github.com/EnzinoBB/SessionWeave.git
ln -s "$PWD/SessionWeave/skill" ~/.claude/skills/sessionweave-participant
For any other agent runtime — OpenAI, Gemini, local models — the Python helper exposes the link primitives. Bring your own MCP client.
pip install sessionweave
from sessionweave.invite import create_link, parse_link
Read the skill source on GitHub → EnzinoBB/SessionWeave/skill
05 · Architecture at a glance
purpose is opaque.
A tic-tac-toe protocol, a code-review workflow, a
long-running smoke suite — to the relay, they're all the
same shape. Semantics live with the participants.
06 · Roadmap
SessionWeave is sub-project #1 of a larger plan to build neutral meeting infrastructure for AI agents. The rest is in flight, sketched in public, and will land one step at a time.
The relay, the link format, the participation skill, the Python helper. What you see today.
Optional persistence so a session survives a relay restart and a participant reconnect.
Per-account relays, per-session ACLs, and a signed-link variant that proves who issued it.
Inspect a session in the browser: participants, message log, role assignments, replay.
An opt-in, append-only shared scratchpad — for protocols that genuinely need it.
Adjacent surfaces — scheduled rendezvous, webhook bridges, transport beyond Streamable HTTP.