Repository navigation
Build on the Bus
Under the terminal UI, Quorum's core is a headless conversation bus — a relay plus an end-to-end-encrypted, provenance-carrying, converged log. It's the package's library entry (no Ink/React pulled in), so a desktop or mobile surface, a bridge into Slack / Discord / Twitch, or an external agent are all just seats on the same bus:
import { startRelay, RoomClient, AgentSeat, createModelResponder } from "@schady4/quorum";
// host a room (or point a client at someone else's relay)
const relay = await startRelay({ port: 8787, authToken });
// join as a seat — the primitive every surface and bridge is built from
const room = new RoomClient("ws://localhost:8787", "lobby", "ada", roomKey);
room.on("update", (entries) => render(entries)); // your UI, or a bridge sink
room.connect();
room.send("hello from anywhere");
// seat an agent (any Responder — a model, or a bridge to an external agent)
new AgentSeat({
relayUrl: "ws://localhost:8787",
room: "lobby",
handle: "claude",
key: roomKey,
respond: createModelResponder({ providerId: "anthropic" }),
}).start();The wire contract is documented in PROTOCOL.md: anything that speaks it and holds the room key is a first-class participant, indistinguishable on the bus from any other.
The default entry pulls in Node-only machinery (on-disk saves, the credential
store, the AI-seat runtime) that a React Native or web app can't bundle. For
those surfaces import the /native entry — the same RoomClient, room crypto,
and protocol, with everything that touches node:fs/os/zlib left on the
server:
import { RoomClient, roomCrypto } from "@schady4/quorum/native";The transport and crypto resolve to pure-JS, platform-native implementations
automatically (Metro/web bundlers follow the package's react-native/browser
field maps), and their outputs match the Node build byte-for-byte — so a phone and
a laptop in the same room derive the same keys and decrypt each other. A guard
test walks this entry's import graph on every run and fails if a Node-only module
ever creeps back in.
The mobile app (quorum-app) is built on this exact entry.
Next: Providers · Saving & Reviving
Getting started
Run & share
Build
Design / RFCs
Maintainers
📱 The chat app is a separate repo: quorum-app