u/Wide-Excitement-1315

SiloLink — an MCP server that lets you drive Claude Code sessions on other machines from a chat thread (MIT)
▲ 5 r/mcp

SiloLink — an MCP server that lets you drive Claude Code sessions on other machines from a chat thread (MIT)

I kept hitting the same wall running coding agents across a few machines — a
WSL box, a laptop, a VM. Each Claude Code session was its own island. I could
not see what any of them were doing without SSHing in, and none of them shared
any context with each other.

So I built SiloLink. It is a small local daemon that does two things:

  • runs an MCP server on localhost:3579 that Claude Code connects to
  • holds a WebSocket back to a server, so messages flow both directions

The result is that each remote Claude Code session is bound to a conversation
thread. You send a message to the thread and a session spawns on that machine
(tmux), picks up the message, and replies into the thread. You can drive it from
a web UI, Slack, Discord, or SMS. Session dies, remote_load_context restores
the prior history on restart.

Things that turned out to matter more than expected:

  • Worktree isolation — each session gets its own git worktree and branch, so
  • two agents on the same repo do not fight
  • File claim tracking — advisory soft-locks with cross-session conflict
  • notifications, because they still find ways to fight
  • Provider abstraction — the launcher interface has Claude, Gemini, and
  • Codex adapters, so the transport is not Claude-specific

Source: https://github.com/portablemind-ai/silolink (MIT)
Install: npm install -g @dsiloed/silo-link

Disclosure: the server side it talks to is Portablemind (https://app.portablemind.ai),
my commercial platform — that is where the conversations, files, and shared agent
memory live. The daemon
itself is MIT and the MCP interface is documented, so it is usable as a reference
for anyone building a similar bridge.

Happy to answer anything about the MCP-server-plus-WebSocket shape — deciding
what belongs in MCP tools vs. the socket was the least obvious part of the design.