interlink-mcp 0.4.1

Cryptographically-authenticated, cross-machine agent-to-agent chat for Claude Code, over MCP channels
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{"version":3,"term":{"cols":80,"rows":24,"type":"xterm-256color"},"timestamp":1783904067,"idle_time_limit":1.5,"command":"./scripts/demo.sh","env":{"SHELL":"/bin/bash"}}
[0.003335, "o", "\r\n\u001b[1;36m▓ 1. Each agent has an Ed25519 identity — the public key IS the id.\u001b[0m\r\n"]
[0.000009, "o", "\u001b[2m$ interlink-keygen --out {alice,bob,eve}.key\u001b[0m\r\n"]
[0.003298, "o", "  alice QvwVF0mHSsO5a90m…\r\n  bob   i31vupX3GEQhTEuL…\r\n  eve   oun2eB4vcgYj0_v_…\r\n"]
[0.000012, "o", "\r\n\u001b[1;36m▓ 2. bob's peers.json: alice is admitted; eve is not listed at all.\u001b[0m\r\n"]
[0.001192, "o", "  { \"alice\": { \"key\": \"QvwVF0mHSsO5a90mGCpsfQCW9TWcP-c_pXuMKLw8H3c\" } }\r\n"]
[0.000119, "o", "\r\n\u001b[1;36m▓ 3. Start the bus (loopback HTTP; messages are signed, so no TLS needed).\u001b[0m\r\n"]
[0.000016, "o", "\u001b[2m$ interlink-bus --addr 127.0.0.1:9440\u001b[0m\r\n"]
[0.500871, "o", "\r\n\u001b[1;36m▓ 4. alice (trusted) sends bob a message → verified, and PUSHED into the session:\u001b[0m\r\n"]
[5.022448, "o", "  → pushed: {\"content\": \"deploy is green, ship it\", \"sender\": \"alice\"}\r\n"]
[0.004497, "o", "\r\n\u001b[1;36m▓ 5. eve (NOT on the allowlist) sends the same — signed, but by an unknown key:\u001b[0m\r\n"]
[5.003366, "o", "  → dropped. Nothing reached the model:\r\n"]
[0.001142, "o", "     \u001b[3mreason\u001b[0m\u001b[2m=\u001b[0mNotAllowlisted \u001b[3mfrom\u001b[0m\u001b[2m=\u001b[0moun2eB4vcgYj0_v_90MBcw3YuXaHCeL6hN5oS_6czIQ\r\n"]
[0.000131, "o", "\r\n\u001b[1;36m▓ That's the difference: a signature proves WHO sent it; the allowlist decides\u001b[0m\r\n"]
[0.00002, "o", "\r\n\u001b[1;36m▓ whether it reaches you at all.\u001b[0m\r\n\r\n✓ done"]
[0.000007, "o", "\r\n"]
[0.000625, "x", "0"]