trackmcp
Back to directory

Two Claude Code instances on different machines can't talk to each other. SwarmCode gives them a Redis-backed channel — messages, shared artifacts, workspace status, real-time push into VS Code, and a web dashboard.

8 stars JavaScriptOthers Updated Aug 18, 2026
agent-communicationai-agentsclaude-codedistributed-systemsmcpmcp-servermodel-context-protocolmulti-agentnodejsreal-timeredisswarm

Documentation

SwarmCode

npm
npm downloads

> Using `mcp-agent-bridge`? That is the old name of this project and it no

> longer gets updates. Switch with

> `npm uninstall -g mcp-agent-bridge && npm install -g swarmcode-mcp`, then

> re-run `swarmcode-mcp init `. Same Redis, same protocol; the

> tools are now `swarm_*` instead of `bridge_*`. See

> Migrating from mcp-agent-bridge.

Two Claude Code instances can't talk to each other. The one on your desktop

that just changed the API schema has no way to tell the one on your laptop

that's writing the client against it — so you copy-paste between windows and

act as the message bus yourself.

SwarmCode is that message bus. Agents on any machine on your network join a

Redis-backed channel and send each other messages, artifacts, and workspace

status, delivered as real-time push into VS Code — no polling, no manual

relay.

code
Desktop (VS Code)          Laptop (VS Code)           Server
  Claude A ───────────────── Claude B ───────────────── Claude C
       \                      |                       /
        -------- Redis (single instance) ------------
                       |
                  Web Dashboard
              (monitor & control)

Install (60 seconds)

bash
npm install -g swarmcode-mcp

# Redis, if you don't already have one
docker run -d --name redis -p 6379:6379 redis:alpine

swarmcode-mcp init my-workspace --redis redis://your-redis:6379

Restart Claude Code. Repeat on every other machine, all pointing at the same

Redis. That's the whole setup.

What it looks like

Desktop (building the API):

code
> swarm_register("Building user auth REST API")
> swarm_send(to: "laptop", type: "info",
             content: "POST /api/users is live, schema: {id, email, role}")

Laptop — the message arrives as a task-notification while its agent is

mid-task:

code
[task-notification] New message from "desktop": POST /api/users is live...
> swarm_receive()
> swarm_send(to: "desktop", type: "question",
             content: "Does /api/users support pagination?")

Desktop, instantly:

code
[task-notification] New message from "laptop": Does /api/users support pagination?
> swarm_receive()
> swarm_send(to: "laptop", type: "answer", content: "Yes, use ?page=1&limit=20")

No user in the loop. A terminal recording of the same exchange is in

`demo/demo.cast` (`asciinema play demo/demo.cast`).

What Can It Do?

  • Cross-machine messaging — Claude on your desktop sends a message, Claude on your laptop receives it instantly
  • Real-time push — no polling, messages delivered via Redis pub/sub + background task notifications
  • Workspace awareness — every agent knows what the others are working on
  • Artifact sharing — share schemas, configs, interfaces across workspaces
  • Web dashboard — monitor all workspaces, send messages from your browser
  • Auto-setup — one command initializes any workspace

vs Claude Desktop

Claude DesktopSwarmCode
Cross-machine communicationNoYes
Multi-workspace coordinationNo — each window isolatedYes — agents talk to each other
Real-time push notificationsNoYes
Artifact/schema sharingNoYes
Web dashboardNoYes
Works in VS CodeNoYes
Cross-platformMac onlyMac, Windows, Linux
Open sourceNoYes (MIT)

How It Works

Real-time message loop

code
1. Background listener subscribes to Redis pub/sub channel
2. Message arrives → listener exits → task-notification fires in VS Code
3. Claude reads the message → swarm_receive() → swarm_send() reply
4. New listener started → back to step 1

No polling. No cron. True event-driven push in VS Code.

Per-workspace isolation

code
swarmcode:ws:desktop-api       ← only desktop-api hears this
swarmcode:ws:laptop-frontend   ← only laptop-frontend hears this
swarmcode:ws:broadcast         ← everyone hears this (to="*")

Backup polling

A 5-minute CronCreate runs alongside the listener as a safety net.

Tools

ToolDescription
`swarm_send`Send a message to a workspace or broadcast (`to: "*"`)
`swarm_receive`Read and mark pending messages as read
`swarm_status`See all registered workspaces
`swarm_register`Register/update this workspace's description

Web Dashboard

Monitor and control all workspaces from your browser.

bash
docker run -d -p 4200:4200 \
  -e SWARMCODE_REDIS_URL=redis://your-redis:6379 \
  -e DASHBOARD_USER=admin \
  -e DASHBOARD_PASS=your-password \
  ghcr.io/spranab/swarmcode-dashboard:latest

Features:

  • All workspaces with active/idle status
  • Per-workspace inbox viewer
  • Global message log (real-time via SSE)
  • Send messages to any workspace
  • Dark theme

Architecture

code
src/
├── channel.js          # MCP server — tools + Redis pub/sub + instructions
├── listener.js         # One-shot Redis listener → task-notification push
├── check-inbox-http.js # UserPromptSubmit hook — inbox check on each prompt
├── init.js             # CLI — one-command workspace setup
└── server.js           # CLI entry point

dashboard/
├── server.js           # Express app with SSE, basic auth, REST API
└── index.html          # Real-time dashboard UI

Configuration

VariableDefaultDescription
`SWARMCODE_REDIS_URL``redis://localhost:6379`Redis connection
`SWARMCODE_WORKSPACE_ID`(from .mcp.json)Workspace identifier
`DASHBOARD_USER``admin`Dashboard username
`DASHBOARD_PASS``bridge`Dashboard password
`DASHBOARD_PORT``4200`Dashboard port

Kubernetes

Redis + Dashboard manifests in `k8s/`:

bash
kubectl apply -f k8s/namespace.yml
kubectl apply -f k8s/redis.yml       # includes NodePort on 30379
kubectl apply -f k8s/dashboard.yml
kubectl apply -f k8s/ingress.yml     # edit hostname

Built With

Migrating from mcp-agent-bridge

SwarmCode was published as `mcp-agent-bridge` until the rename. The old

package still works but is frozen — new features and fixes only land in

`swarmcode-mcp`.

bash
npm uninstall -g mcp-agent-bridge
npm install -g swarmcode-mcp
swarmcode-mcp init my-workspace --redis redis://your-redis:6379

What changes:

Old (`mcp-agent-bridge`)New (`swarmcode-mcp`)
`bridge_send` / `bridge_receive` / `bridge_register``swarm_send` / `swarm_receive` / `swarm_register`
`AGENT_BRIDGE_REDIS_URL``SWARMCODE_REDIS_URL`
`AGENT_BRIDGE_WORKSPACE_ID``SWARMCODE_WORKSPACE_ID`
binary `mcp-agent-bridge`binary `swarmcode` / `swarmcode-mcp`

The old `AGENT_BRIDGE_*` environment variables are still read as a fallback,

and the Redis wire format is unchanged, so a migrated workspace can talk to a

not-yet-migrated one during the switchover. Re-running `init` rewrites the

workspace's `.mcp.json` entry and hooks for you.

Other agent infrastructure by the same author, built to be used together:

tracker so a swarm of agents shares one plan.

cognitive memory across sessions and machines.

debate as an MCP tool.

  • mcpier — self-hosted MCP control plane

that keeps API keys off your clients.

License

MIT — Pranab Sarkar

Frequently asked questions

What is swarmcode?

swarmcode is Two Claude Code instances on different machines can't talk to each other. SwarmCode gives them a Redis-backed channel — messages, shared artifacts, workspace status, real-time push into VS Code, and a web dashboard.

How do I install swarmcode?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is swarmcode open source?

Yes — it is hosted on GitHub at https://github.com/spranab/swarmcode and has 8 stars.

Related MCP tools

atlassianatlassian-mcp-server

Official remote MCP server for Atlassian. Securely connect Jira, Confluence, Jira Service Management, Bitbucket, and Compass to Claude, ChatGPT, Cursor, VS Code, and other AI tools using OAuth 2.1 or API tokens.

1,015 JavaScript
aiai-agentsatlassian+17
riponcmprojectmem

Open-source coding agent memory. Records issues, attempts, fixes and decisions, then warns your agent before it repeats an approach that already failed. Native MCP server for Claude Code, Cursor, Antigravity and Codex. 100% local, no cloud, no telemetry. MIT.

796 Python
ai-agentsai-memoryai-tools+17
firecrawlfirecrawl-mcp-server

🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.

7,393 JavaScript
batch-processingclaudecontent-extraction+11
KnockOutEZwigolo

The go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.

4,906 TypeScript
mcpagentai+17
IvanMurzakUnity-MCP

AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C# method may be turned into a tool by a single line. Works with Claude Code, Gemini, Copilot, Cursor and any other absolutely for free.

4,137 C#
aiai-integrationgame-development+16
skyhook-ioradar

The missing open-source Kubernetes UI with a built-in MCP server for AI agents. See what's broken, why, and what changed. Issues, Topology, event timeline, Helm, GitOps, live service traffic, and cluster audits - all in one Go binary.

3,246 Go
argocdcloud-nativegitops+17

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP