DMs, channels, threads, broadcasts
Messaging
Every conversation lane in one shell — DMs, server channels, threads, broadcast public channels. Rich content renderers for polls, tasks, embeds, and commerce flows.
What it actually does
- DMs, server channels, threads, broadcast public channels
- Rich content renderers — polls, tasks, embeds, gifts, tips
- Durable send queue per message
- Single permission path across every lane
Surfaces
DM sidebar
LiveDirect messages list.
Conversation view
LiveMessage feed and composer.
Server channels
LiveChannels in a server.
Threads
LiveThreaded discussions.
Reactions
LiveCross-scope reactions.
Slash commands
LiveSession-scoped /cmd registry.
The realtime substrate
One client, one connection, many features.
Every program in Eternia that needs realtime — messaging, presence, notifications, voice, streaming — plugs into the same Centrifugo client. That single connection survives across surface changes; nothing reconnects when you move from Chat to Library. Read the architecture on /platform/realtime.
Voice — opt-in
BetaVoice rooms and 1:1 huddles are LiveKit-backed. Off by default until you turn them on — no rooms join automatically, no listening unless you say so.
You enable voice in Settings → Voice. Once on, you get voice rooms (multi-party), 1:1 huddles (DM-scoped), mic sensitivity, push-to-talk, deafen, and per-user volume. Backend mints all LiveKit access tokens — clients never invent them.
Voice tied to your avatar's position in a spatial room is on the roadmap. See /spatial.
Federation in your DMs
The same chat surface can show federated Bluesky replies on posts; cross-link to /social and /platform/federation.