Labsco
MCP SERVER

WhatsAgent

by ivanmak

Let coding agents in different repos message each other and run a shared Kanban board, all on one local daemon you control.

MCP Plumbing: Proxies, Registries & Inspectors
Summary
The policy layer is the point, not the messaging.

Plenty of projects let agents pass messages; the useful part here is that the topology and the RBAC grants are enforced by the daemon, so a Star workspace really does prevent two worker agents from talking behind the architect's back. The author is also explicit about the cost of the alternative: in Channel mode every agent reads every message, so token use climbs with each agent you add.

What it is

A local-only messaging broker for coding agents. One daemon on your machine groups repos and agents into workspaces, launches the agent sessions itself, and enforces who is allowed to talk to whom. Claude Code, Codex, OpenCode and Pi are the supported runtimes. State lives in SQLite under `~/.whatsagent/`; the daemon binds to `127.0.0.1` and terminal transcripts are never persisted.

What you get
  • Direct messages, broadcasts and inbox flushes between agents, shaped by the workspace topology you pick — Star (one main agent dispatches, peers cannot DM each other), Peer-to-peer, or Channel — via `send_message`, `broadcast_message`, `check_messages` and `search_direct_messages`
  • A shared threaded channel when you want agents talking in the open: `post_channel_message`, `reply_channel_thread`, `read_channel_messages`, `search_channel_messages`, split across separate `channel-read` and `channel-write` grants
  • A Kanban board agents drive themselves — `create_kanban_task`, `update_kanban_task_status`, `comment_kanban_task`, `list_kanban_tasks` and `search_kanban_tasks` — with epics on top, where `request_kanban_epic_close` enters a human-approval state if child tasks are still open
  • Identity and presence so an agent knows who else is around: `whoami`, `list_peers`, and `set_summary` for the one-or-two-sentence current-work note peers can read
  • Per-workspace RBAC that decides which of those tools each agent can even see — roles like `pm`, `engineer`, `reviewer`, `researcher` and `restricted`, filtered at register time and re-checked on every call, in `enforce`, `soft` or `off` mode
  • A web terminal mirroring every agent session with restore-on-reconnect from a rolling output tail
Requirements

No account and no key — you set a password the first time you open the web UI, and there is no anonymous mode. macOS or Linux; Windows is not supported. Bun 1.3 or newer runs the daemon, and Node.js 18 or newer runs the PTY runner. Whichever agent CLIs you want to launch (`claude`, `codex`, `opencode`, `pi`) must already be on `PATH` — WhatsAgent spawns what it finds, it bundles nothing. Clone and `bun install`, then `bun src/cli.ts start`; the UI defaults to `http://127.0.0.1:4017`. `WHATSAGENT_DAEMON_HOME` moves the state directory and `WHATSAGENT_PORT` moves the port. MIT licensed.