Repository navigation
Releases
v0.1.5
Fix a process leak: the channel is no longer left running when a Claude Code session exits.
The bug — the MCP stdio transport never watches stdin for EOF, so the channel never learned that its parent had exited. It stayed alive holding its hub connection, which also kept the hub daemon from idle-exiting. One leaked process pair per session exit, accumulating for days.
The fix — the channel now exits on stdin EOF, with a parent-pid liveness poll as a backstop. Covered by unit tests and by integration tests that run the real entrypoint and kill its parent.
Upgrading — clear the orphans left by earlier versions once:
pkill -f 'relay/src/main.ts'; pkill -f 'relay/src/hub-daemon.ts'v0.1.4
Fix plugin manifest version drift so Claude Code updates pick up new releases.
v0.1.3
Add CLAUDE_RELAY_PRESET_NAME env var so a parent process can pre-set a Claude session's peer name before spawn.
- New env var
CLAUDE_RELAY_PRESET_NAMEseeds the initial registration name. Useful for orchestrators that pty-spawn many sessions and need each registered under a deterministic name (e.g.home-office-agent-12) instead of the directory-basename fallback. - Same validation as
/relay-rename(max 64 chars,[A-Za-z0-9._-]+); invalid values are ignored. - Preset is initial-only:
/renameand/relay-renamecontinue to drive the live name via the session-file watcher. - CI now runs on
developplus PRs targeting it.
Thanks to @saddestmartian for the original contribution (#1).
v0.1.2
Raise relay communication caps for daily-use traffic and surface incoming peer messages verbatim.
- Per-line socket cap raised from 64 KB to 1 MB (
MAX_LINE_LEN). - Per-ask hub timeout default raised from 2 min to 5 min (
defaultAskTimeoutMs). - Broadcast wait default raised from ~2 min to 5 min (
broadcastTimeoutMs). - New 512 KB body cap (
MAX_TEXT_LEN) enforced via zod.max()on AskMsg/ReplyMsg/BroadcastMsg/IncomingAskMsg/IncomingReplyMsg, plus JSON-SchemamaxLengthon the three tool inputs. relayAsk/relayReply/relayBroadcastfail fast withbad_argson oversize input instead of producing a silent 5-min hang.writeLinedrops outbound lines that would exceedMAX_LINE_LENrather than getting the receiver to destroy the socket mid-stream.- New MCP instruction directs the assistant to quote incoming
<channel>bodies verbatim, bypassing Claude Code's tool-result panel truncation so users see full peer messages.
v0.1.1
Fix: prevent the LLM from calling relay_broadcast as a fallback after a relay_ask error (peer_not_found, peer_gone, timeout). Tightened tool descriptions, MCP instructions, and per-error notification text so failed asks surface to the user instead of fanning out to every session on the machine.
v0.1.0
First public release of Claude Relay.
Lets parallel Claude Code sessions on the same machine message each other in natural language via the channels MCP capability.
Install:
```
/plugin marketplace add innestic/claude-relay
/plugin install relay@claude-relay
```
See README for usage.