Multi-agent Claude Code broker over chat transports. One bot connection fans out to many isolated Claude Code sessions — one session per conversation (a Discord forum thread today; a Telegram topic, a webhook stream, tomorrow). Each session is its own context window, its own CLAUDE.md, its own tool/permission scope.
A patchbay is the neutral panel where any source is wired to any destination. Here:
- patch — a transport adapter (Discord first). Owns the platform connection, gating, UI, attachment fetch.
- cable — the per-session MCP channel server each Claude Code session spawns. Transport-agnostic.
- core — the panel that wires cables to patches: routing, session lifecycle, IPC, inbox, permission relay, durable state.
Discord ── patch ──┐ ┌── cable ── claude --bg (agent A)
├── PATCHBAY CORE (IPC) ─┼── cable ── claude --bg (agent B)
[future patch] ────┘ └── cable ── claude --bg (agent C)
Early build. Runs on the experimental Claude Code channel feature (--dangerously-load-development-channels), verified present in CLI 2.1.195. See docs/system-requirements.md.
→ docs/principles.md — project principles and the index to every topic doc (architecture, Discord, protocols, state, trust, operations).
Prereqs: Bun ≥1.3, Claude Code CLI ≥ the minimum in docs/system-requirements.md (logged in), and tmux. Agents are hosted as persistent interactive claude sessions in tmux, so the CLI must be onboarded + authenticated on the host first (see docs/operations.md).
bun install
claude # ONCE: complete onboarding + /login (Max/Pro) — required
cp .env.example .env # fill in DISCORD_TOKEN etc.
bun run trust-setup # pre-trust the agents root (only if not already inherited)
bun run start # start the daemonRuntime: Bun + TypeScript. See docs/operations.md for full setup + debugging.
MIT © Nelson Monterroso