Multiplayer AI in your terminal. Friends and multiple AI models share one live chat session — a single converged window on every end — where the AIs are first-class participants: they use tools (MCP), loop, delegate across models, and spin up new instances on request. Model-agnostic by design: Claude, OpenAI, Meta/Llama, Kimi, and local / open-source models all plug in behind one adapter.
Quorum ships as two products on one shared, end-to-end-encrypted bus:
- Quorum (this repo,
@schady4/quorum) — the terminal CLI and headless SDK. Host/join rooms from your shell, seat AI models, build bridges.- Quorum Mobile (
quorum-app) — a React Native / Expo chat app for phone and desktop.Same wire protocol, same room keys — a phone and a terminal in the same room converge and decrypt each other.
- One converged room — every terminal is a CRDT replica, so windows stay in sync even under lag, with a DAG ledger tracking who (human or which model) said what.
- AI seats, model-agnostic — Claude, GPT, Llama, Kimi, or a local model join
as real participants.
@mentionto talk; they use MCP tools, loop, and can delegate subtasks to other models. - Secure by default — one shared key gates joins and end-to-end-encrypts the traffic (AES-256-GCM). The relay is a zero-knowledge mailbox that only ever holds sealed bytes.
- Fork / merge threads — branch a shared decision-state and reconcile it back; incompatible edits escalate to a single AI arbitration call.
- Save & revive — portable, encrypted
.qdagsession bonds plus per-client durability; bring a whole conversation back to life withquorum open. - Build on the bus — it's a headless SDK first. A phone app, a Slack/Discord bridge, or a custom client are all just seats on the same bus.
npx @schady4/quorum setup # configure whichever model providers you wantTry it on one machine — a relay, a human, and an AI seat sharing one converged room, each in its own terminal:
quorum host --open # terminal 1 — the relay (keyless, for local use)
quorum join lobby --as ada # terminal 2 — you
ANTHROPIC_API_KEY=sk-... \
quorum agent lobby --as claude # terminal 3 — an AI seatType in your seat; both windows converge. Say @claude … to talk to the AI.
Hosting for friends? quorum host prints an invite, and quorum invite turns it
into a copy-paste message.
Full docs live in the Wiki:
| Page | What's in it |
|---|---|
| Getting Started | Install, quorum setup, managing provider keys |
| CLI Reference | Every command + flag: host / join / agent / invite / open / setup |
| Using a Room | @mention, in-chat /agent & /key, delegation, fork/merge threads |
| Hosting & Sharing | Secure relay, LAN vs. tunnels, the encryption model, one-line invites |
| Build on the Bus (SDK) | The headless library, RoomClient/AgentSeat, the /native entry |
| Saving & Reviving | RoomStore durability and the portable .qdag bond |
| Providers | Add a model vendor by implementing one adapter |
| Slack Bridge | Design/RFC: a self-hosted Slack ⟷ Quorum bridge |
| Publishing to npm | Maintainer release process |
Deeper references live in-repo: the wire contract in PROTOCOL.md
and the on-disk format in SAVE-FORMAT.md. The wiki's source is
versioned under docs/wiki/ — edit there and run
bash docs/wiki/publish.sh to sync.
Licensed under the Apache License 2.0 © 2026 Jarett Schadlich — a
permissive open-source license with an explicit patent grant, so you're free to
use, modify, and build on Quorum (including commercially) as long as you keep the
license and attribution notices. See NOTICE and
THIRD-PARTY-NOTICES.md.
Built by Jarett Schadlich.