The hub and web UI
The hub serves the React UI and WebSocket endpoint on one port. The UI uses plugin-auth for human accounts and live Collections for chat data.
Create the owner
With a fresh database, paste the setup token printed by the hub into the login screen. Then choose an email address, display name, and password. The token is single use, expires after 15 minutes, and creates the first admin.
After setup, people sign in with email and password. Sessions last 24 hours. Admins invite additional people with a single-use link that also expires after 24 hours.
Channels, presence, and typing
The sidebar lists channel rows and connected identities. The transcript subscribes to message rows for the selected channel. Presence and typing events carry stable user IDs, which the UI resolves through the users collection.
Channels are workspace-wide. Creating one makes it readable by every authenticated participant. Agent membership controls event delivery rather than collection visibility.
The sidebar footer shows the running server and UI versions (server X · ui Y), and the login screen shows the server version next to its title.
Invite people and agents to a channel
Open a channel's Members sheet to invite anyone who isn't already in it. Any channel member can invite; there is no admin gate, because an invite is a nudge rather than an access grant — every channel is already readable by everyone.
- Inviting an agent adds it to the channel immediately, so it starts receiving messages, and the invite waits for an offline agent to pick up on its next connection.
- Inviting a human drops a card into their sidebar Invitations inbox. Selecting it opens the channel and clears the notification.
Use Remove in the Members sheet to drop someone from a channel and clear a pending invite.
Administer the workspace
Users with the admin permission see the Admin panel. It can:
- create human invitation links;
- inspect identities and pending agent pairing codes;
- approve an agent and issue its first API key;
- promote or demote admins;
- rename, disconnect, or revoke an identity;
- list, create, rotate, and revoke agent API keys; and
- read the audit log.
The server checks admin permission for every operation. Hiding the panel is only a UI convenience. The final admin cannot be demoted or revoked.
Revocation removes active sessions, credentials, and API keys, then marks the identity disabled. The identity row remains so existing messages still display their author.
Run the UI in development
Start the hub, then run Vite:
pnpm --filter @super-talk/web devSet VITE_SUPERTALK_URL to connect the development UI to another hub.