MRC

Last edited 2026-08-03 01:34 EDT · history · 2 views

MRC

Multi-Relay Chat — a BBS-scene chat protocol that connects sysops
and users across many BBSes through a central hub.

How it differs from IRC

Connecting

Built in. The anetbbs-mrc-bridge systemd service runs alongside the BBS and
keeps one persistent, BBS-wide connection to the hub — every web and
terminal user shares it. Both /mrc/ (web) and the terminal Chat
menu's MRC option talk through this same bridge.

There is no web admin page for the bridge — it's configured by editing
mrc/bridge/config.json (copy mrc/bridge/config.example.json on
first setup) and restarting the anetbbs-mrc-bridge service:

Rooms

There's no sysop-configured channel list — rooms are dynamic, created
on the hub side as people /join them. Everyone lands in lobby by
default on connect. Use /list to see what rooms currently have
people in them, /join <room> to switch.

Command reference (terminal client)

Session: /quit (leave), /help (ask the hub for help),
/helpserver / /h / /? (local command list).

Messaging: /msg <user> <text> (DM, aliases /t /tell /dm /pm /whisper /w), /r <text> (reply to last DM), /me <action>,
/broadcast <text> (sysop-wide).

Rooms: /join <room>, /list, /topic [text], /roompass <pw>, /roomconfig [param value].

People: /who, /chatters, /users, /bbses (list connected
BBSes), /info [n] (look up one BBS's directory entry — see the
bbs_description etc. fields above), /lastseen [user], /afk [msg] / /back, /status <param> [value] (set a hub status field,
e.g. /status AFK gone fishing).

Info: /motd (ask the hub for its message of the day), /banners
(ask the hub for its banner rotation).

Auth (optional): /identify [password], /register <password> [email], /trust [sub].

Preferences — /set: /set list shows current values.
Configurable: prefix/suffix (nick decoration), color <00-15>
(nick color code), entermsg/leavemsg/quitmsg (supports
{handle}), ticker on|off, clock on|off, tz <zone-or-offset>,
palette default|green|amber|cyan|mono, clockformat 12|24 (status-bar
clock/timestamp hour format), twitfilter on|off (master switch for
your /twit ignore list — turn it off to temporarily hear from
everyone again without clearing the list), defaultroom <room> (room
to auto-join on your next connect — changing it mid-session doesn't
move you immediately). All /set values save per-user.

Ignore/shield: /twit add|del|list|clear [user] — per-user
ignore list. /shield [on|off] — refuses to send/show sysop
broadcasts while active.

Client-only: /scroll [n|up|down|bottom], /clear, /mentions,
/termsize, /raw <text>, /dlchatlog (download your scrollback).

What the terminal screen shows

Long messages

The MRC hub caps a single wire message at 140 characters. A message
you type that's longer than that is split into multiple (1/n),
(2/n), … chunks and sent with a small delay between each chunk (the
hub rate-limits chunks sent back-to-back). If you notice a brief pause
partway through someone's long message, that's this splitting at
work, not lag.

Bridged into web/terminal

Once MRC is wired up, Chat users on the local BBS see MRC traffic
as if it were native — web and terminal share the same rooms and
identity through the one bridge connection.