features
DeckMux
Presence, role-based leases, and queued keystrokes — collaboration treated as a first-class protocol concern, not an afterthought.
DeckMux is the collaboration layer that sits on top of the control channel. It turns “two people watching the same terminal” into a real protocol.
Presence
Every participant gets an adjective-animal identity (e.g. drifting-otter, curious-heron) with a deterministic HSL color derived from the identity itself. Reconnecting recovers the same color; sharing a screenshot makes identities visually unambiguous.
Hijack leases
Input ownership is explicit. Roles are:
viewer— read-only.operator— can hold the lease, type into the PTY.admin— can force-transfer the lease, change roles.
When an operator idles, the transfer manager can hand the lease to a queued requester automatically. Observers that want control can “type-ahead” — their keystrokes show up as ephemeral overlays to other participants until they get the lease.
Annotations
Anyone with the appropriate role can place an annotation at (row, col) on the shared screen. Annotations are control frames; xterm.js renders them as overlays without touching the terminal buffer.
Chat
A DeckMux chat lives in the same control channel. Human operators and AI agents (over MCP) post into the same room and see the same backlog.