@sym-bot/mesh-channel 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -5
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -8,14 +8,24 @@
|
|
|
8
8
|
|
|
9
9
|
> MCP server that turns any Claude Code session into a peer node on the [SYM mesh](https://sym.bot). LAN-first via Bonjour mDNS — no relay required for users on the same wifi.
|
|
10
10
|
|
|
11
|
-
Two Claude Code instances on the same network discover each other automatically and exchange structured cognitive state in real-time
|
|
11
|
+
Two Claude Code instances on the same network discover each other automatically and exchange structured cognitive state **in real-time**. Each side is a full peer with its own cryptographic identity, its own SVAF receiver-side gating, and its own memory — not a thin client.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Verified cross-platform:** Mac ↔ Windows on the same wifi, pure Bonjour, no relay, no token. Bidirectional real-time push confirmed 2026-04-09 with `@sym-bot/sym 0.3.74`.
|
|
14
14
|
|
|
15
15
|
- **SVAF paper**: [arxiv.org/abs/2604.03955](https://arxiv.org/abs/2604.03955)
|
|
16
16
|
- **MMP spec**: [sym.bot/spec/mmp](https://sym.bot/spec/mmp)
|
|
17
17
|
- **Source**: [github.com/sym-bot/sym-mesh-channel](https://github.com/sym-bot/sym-mesh-channel)
|
|
18
18
|
|
|
19
|
+
## How real-time push works (Claude Code Channels + MMP)
|
|
20
|
+
|
|
21
|
+
This MCP server composes two things:
|
|
22
|
+
|
|
23
|
+
**[Claude Code Channels](https://code.claude.com/docs/en/mcp)** (Anthropic, shipped 2026-03-20) — an MCP capability that lets servers push events directly into Claude's conversation context mid-turn via `notifications/claude/channel`. Anthropic built it for the Telegram/Discord/iMessage integrations. We use it for agent-to-agent cognitive coupling.
|
|
24
|
+
|
|
25
|
+
**[MMP — the Mesh Memory Protocol](https://sym.bot/spec/mmp)** — defines what gets pushed: typed seven-field cognitive bundles (CAT7: focus, issue, intent, motivation, commitment, perspective, mood), how receivers gate incoming signals ([SVAF](https://arxiv.org/abs/2604.03955)), and how peers maintain identity without a central orchestrator. MMP is the protocol; this MCP server is the reference implementation for Claude Code hosts.
|
|
26
|
+
|
|
27
|
+
**The composition:** when a peer on the mesh broadcasts a CMB (Cognitive Memory Block), the SymNode inside this MCP evaluates it via SVAF. If accepted, the MCP fires a `notifications/claude/channel` notification to Claude Code, which surfaces it as a `<channel>` block in the conversation. Claude sees it, can react, and can broadcast back via `sym_send` or `sym_observe`. No polling. No tool calls. The mesh thinks together.
|
|
28
|
+
|
|
19
29
|
## Quick start (LAN, two minutes)
|
|
20
30
|
|
|
21
31
|
You and one other person on the same wifi each run:
|
|
@@ -32,11 +42,22 @@ SYM_NODE_NAME=claude-mac npx @sym-bot/mesh-channel init
|
|
|
32
42
|
claude --dangerously-load-development-channels server:claude-sym-mesh
|
|
33
43
|
```
|
|
34
44
|
|
|
35
|
-
Inside Claude Code,
|
|
45
|
+
Inside Claude Code, verify the mesh:
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
```
|
|
48
|
+
sym_status → Node: claude-mac (...), Relay: disconnected, Peers: 1
|
|
49
|
+
sym_peers → 1 peer(s): claude-win via bonjour
|
|
50
|
+
```
|
|
38
51
|
|
|
39
|
-
|
|
52
|
+
Then send a message:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
sym_send "hello from Mac"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The other peer sees it arrive **in their Claude Code context as a real-time `<channel>` notification** — no polling, no `sym_recall`, no tool call. It just appears. They reply with `sym_send "hello from Windows"` and you see it land in your context the same way.
|
|
59
|
+
|
|
60
|
+
That's it: cross-machine Claude-to-Claude collective intelligence over a typed cognitive protocol, on the same wifi, in two minutes.
|
|
40
61
|
|
|
41
62
|
## Requirements
|
|
42
63
|
|
|
@@ -116,6 +137,8 @@ Some corporate networks block mDNS multicast — try a hotspot or home wifi to v
|
|
|
116
137
|
|
|
117
138
|
**`sym_status` says "Peers: 0" but `sym_peers` lists peers.** Snapshot timing — both views read the same `_peers` map at slightly different moments. The peer set is dynamic. If counts disagree consistently, file an issue.
|
|
118
139
|
|
|
140
|
+
**`sym_status` says "Relay: connected" even though you didn't configure a relay.** Your shell profile (`~/.zshrc`, `~/.bashrc`, etc.) exports `SYM_RELAY_URL`. Claude Code's MCP env block is **additive** — omitting a key doesn't remove it from the child process. Fix: set `SYM_RELAY_URL` and `SYM_RELAY_TOKEN` to `""` (empty string) in the MCP env block to override the shell. The installer (`npx @sym-bot/mesh-channel init`) does this automatically as of v0.1.8.
|
|
141
|
+
|
|
119
142
|
**Multiple Claude Code sessions on the same machine want to share an identity.** Don't. Each session should have a distinct `SYM_NODE_NAME`. As of `@sym-bot/sym 0.3.70`, the SymNode acquires an exclusive lockfile on its identity (`~/.sym/nodes/<name>/lock.pid`) and refuses to start a second process with the same name. If you see `EIDENTITYLOCK`, find and kill the other process or pick a different name.
|
|
120
143
|
|
|
121
144
|
## License
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sym-bot/mesh-channel",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "MCP server — Claude Code as a peer node on the SYM mesh. LAN-first via Bonjour, no relay required.",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"bin": {
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"LICENSE"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@
|
|
19
|
-
"@
|
|
18
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
19
|
+
"@sym-bot/sym": "^0.3.75"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=18"
|