Reading — step 1 of 5
Read
IRCv3 — Modernization
IRC's classic spec dates from 1993 (RFC 1459). Many things missed. IRCv3 is the working group that has added (since 2013):
Capability negotiation:
- Servers advertise features via CAP LS.
- Clients request specific features via CAP REQ.
- Avoids ambiguity of dialects.
SASL (RFC 4422):
- Authenticate during registration.
- Replaces NickServ post-connect identification.
- Works with PLAIN, EXTERNAL (TLS cert), SCRAM-SHA-256.
Message tags (CAP message-tags):
- Per-message metadata (key=value pairs).
- Server-time tag: original message time (for buffer playback).
- Account tag: user's account name.
- Reply tag: reply-to message ID.
@time=2024-05-13T10:30:00.000Z;account=alice :alice!a@host PRIVMSG #foo :hi
Server-time (server-time cap):
- Show original timestamp for buffered messages.
- Important for bouncers/playback.
Echo-message (echo-message cap):
- Server echoes your sent message back.
- Used to confirm delivery + assign IDs.
Multi-prefix (multi-prefix cap):
- 353 NAMES: show all user prefixes (@%+, not just highest).
Chat history (chathistory):
- Request message history from server.
Account-tag (account-tag cap):
- Account name in message tags.
- Identity stable across nick changes.
Standard replies (RPL/ERR new codes):
- WHOIS now returns more info.
- Standardized across implementations.
Message IDs (msgid tag):
- Per-message unique ID.
- Threading, references, deletions.
Bot mode (+B):
- Mark account as a bot.
- Helps clients filter.
WebSocket transport:
- IRC over WSS.
- Browser clients possible.
- Used by Convos, Kiwi IRC.
Modern client + modern server (Ergo) provide a rich experience comparable to Slack/Discord while keeping IRC's federation and simplicity.
Caveats: not all servers/networks support all CAPs. Older networks (Undernet, EFnet) lack many.
Discussion
Ask a question, share an insight, or help someone who’s stuck.
Sign in to post a comment or reply.
Loading…