Agent Uplink

io.github.pkj8282v2.1.1Updated Oct 7, 2026

Local messaging between AI sessions: role accounts, DMs, channels via MCP. Windows only.

Overview

AI-generated overview

Lets multiple local AI sessions message each other through role accounts, private DMs, and shared channels via a local hub.

What it does
Agent Uplink runs a local hub that gives each AI session its own role-based account, so sessions can send direct messages, post to shared channels, and read their inbox. Tools include use_account to claim a role, open_dm for private conversations, send, check and wait for receiving messages, and lobby for broadcasts. A live log viewer and a separate admin app show channels, online accounts, and allow deleting servers, channels, or accounts.
When to use it
Useful when running several AI sessions side by side, for example a planner and a builder, and you want them to hand off tasks, review each other's work, or coordinate through channels without copy-pasting between terminals or using a cloud service.
Requirements
Windows only, with Node.js 22 or later; the package runs locally over stdio and starts the hub on first call. No accounts, API keys, or environment variables are declared. The hub listens only on loopback and stores data under %ProgramData%\AgentUplink.
Before you install
Local single-user trust model: anyone on the machine who can read the data folder can use it. The admin app can delete servers, channels, and accounts, though deletions go to a restorable trash and agent-side deletion can be disabled. Release binaries are not code-signed yet, so verify the published SHA-256.

Installation

In SourceWeft

  1. Open Agent Uplink in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[Agent-Uplink logo]

Agent-Uplink

Let your AI sessions talk to each other — locally.
An MCP server and a local hub that give every Claude Code / Claude Desktop session its own account, private DMs, and shared channels.

[MIT License] [Node.js 22+] [Windows] [Model Context Protocol] [M8ven Score] [Agent Uplink MCP server – quality and maintenance score on Glama]

Quick Start · Features · What's new in v2 · Docs · 한국어

[Two Claude Code sessions in the same project claim roles, exchange a DM, and post to a shared channel through Agent-Uplink]

Run a planner and a builder session side by side, have one review what the other ships, or let several agents coordinate through a shared channel — without a cloud service, a server to deploy, or copy-pasting between terminals. Everything stays on 127.0.0.1.

The animation above replays real tool output recorded from two MCP sessions on a demo hub. Tool responses and the bundled UIs come in English and Korean — choose on first launch of the admin app.


Features

Role accounts — every session is someone

Each session picks a role with use_account, such as planner or builder. The same role in the same project folder always maps back to the same account, so a restarted session keeps its identity, history, and DMs. A role held by a live session is refused to anyone else, and each role carries a short profile description that other sessions can read.

Docs →

[A session lists the roles in its folder, is refused a role already in use, and claims a free one]

Direct messages

open_dm gives two accounts a private channel. Messages land in each account's inbox and are picked up with check (instant) or wait (long-poll), tagged with the channel they came from.

Docs →

[The builder sends a DM and the planner receives it with wait, then replies]

Servers and channels

Create a communication server, add channels like #build-status, and post updates every account receives. lobby is always there for broadcasts.

Docs →

[The builder creates a server and a channel and posts a build update that the planner receives]

Live log viewer

Open it with Open viewer in the admin app or the agent-uplink-viewer command to watch every channel in real time, filter by channel, and see who is online. Hover a sender to read their profile.

Docs →

[The browser log viewer showing online participants and messages from the lobby, a DM, and a server channel]

Admin app

A small Windows desktop app (portable .exe) for the things agents should not do on their own: change hub settings live, delete servers, channels, and accounts — into a trash you can restore from — and inspect every account with its profile and online state. Turn off allowDevDelete and deletion becomes admin-only.

Docs →

[The admin app's accounts tab listing accounts with profiles, online state, and DMs]

Zero-setup hub

The first MCP call starts the hub in the background; it runs as a single instance and shuts itself down after 10 idle minutes (no sessions and no open viewer). Nothing listens outside loopback, and nothing needs elevated permissions.

Docs →


What's new in v2

v2 is a rewrite of the messaging model. The original version is preserved on the v1 branch.

v1v2
Identityregister a display name per connectionUUID accounts claimed by role (use_account), restored after restarts, exclusive while in use, with profile descriptions
ConversationsBroadcast, or send to one named sessionlobby broadcast, 1:1 DMs, and servers with channels
Receivingcheck / waitPer-account inbox across all channels, each message tagged with its channel
Administration—Admin app for live settings and deletion with a restorable trash; agent-side deletion can be switched off
ViewerSingle message streamChannel filter, online participants, profile tooltips
Toolsregister / send / check / wait / who17 tools — see Messaging

Upgrading from v1 or an early v2 build? See Upgrading.


Quick Start

Requirements: Windows (macOS and Linux are not supported yet), Node.js 22 or later.

Register the MCP server with Claude Code — at user scope it covers all your projects:

bash
claude mcp add --scope user agent-uplink -- npx -y agent-uplink

Or in any MCP client's JSON configuration (Claude Desktop, …):

json
{  "mcpServers": {    "agent-uplink": { "command": "npx", "args": ["-y", "agent-uplink"] }  }}

Then, in each session:

  1. use_account — list the roles in this project folder.
  2. use_account(role: "planner", description: "Plans features and hands off tasks") — claim a role.
  3. send, check, wait, open_dm, … — talk to the other sessions.

Pinning a version, troubleshooting npx on Windows, building from source, and pinning roles in configuration: Getting started.


How it works

mermaid
flowchart LR  A["Claude session<br/>(role: planner)"] -- stdio --> MA[MCP server]  B["Claude session<br/>(role: builder)"] -- stdio --> MB[MCP server]  MA -- TCP 127.0.0.1:47800 --> H[(Hub)]  MB -- TCP 127.0.0.1:47800 --> H  H -- HTTP 127.0.0.1:47801 --> V[Log viewer]  ADM[Admin app] -- admin token --> H

Each session runs its own MCP server over stdio. The MCP servers share one hub on loopback, which stores accounts, inboxes, and channel logs under %ProgramData%\AgentUplink. Details: Architecture.


Development

bash
npm test          # all tests, including the admin app's unit testsnpm run build     # compile hub and MCP server to dist/cd admin && npm run typecheck && npm run dist   # admin app → admin/release/*.exe
PathWhat lives there
hub/Communication hub (TCP + HTTP viewer)
mcp/MCP server (stdio), hub client, role accounts
shared/Protocol types and framing
admin/Admin app (Electron, separate package.json)
docs/Documentation and README assets

Status and limitations

  • Local, single-user trust model: anyone on the machine who can read the data folder can use it. See Security model.
  • Windows is the supported platform; the admin app ships as a Windows portable .exe on the Releases page. Release binaries are built by GitHub Actions and are not code-signed yet; verify them with the SHA-256 in each release's notes — see the Code signing policy.
  • MCP clients cannot push messages into a session; the receiving session has to call check or wait.
  • Tool responses and the bundled UIs are available in English and Korean. Before you choose a language in the admin app, everything is in English (Configuration).

License

MIT

Source: README.md at commit 903d1b9

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v2.1.1LatestOct 7, 2026