Skip to content
Dialova

IRC Documentation · Intermediate

IRCv3: Modern IRC extensions

IRCv3 is a set of specifications that evolve IRC without requiring all clients to change at the same time. Capabilities are negotiated separately: there is no simple 'IRCv3 compatible' button that guarantees all functions.

Dialova Team · Verified on

In this Category

An evolution compatible with existing clients #

CAP discovers and activates extensions common to the client and server. Support depends on the versions, modules, services, and settings actually used. It is necessary to distinguish between a feature announced, a feature requested, and a feature actually accepted.

FamilyMechanisms to know
Connection and identityCAP, SASL, account-tag, account-notify, extended-join
Introduction and Trackingserver-time, echo-message, away-notify, multi-prefix
Metadata and Groupingmessage-tags, batch, labeled-response
Historydraft/chathistory and draft/event-playback, still under development as of verification date

Read Status and Dependencies #

The official catalog distinguishes finalized specifications from work in progress. An extension prefixed draft/ may evolve incompatibly. The name of a capability, the name of a tag, and the type of a batch are three different identifiers: chathistory is a batch type, while the capability under development uses draft/chathistory.

The pages in this initial version detail CAP, SASL, message-tags, server-time, account-tag, and batch. The other capabilities are listed here to indicate their uses; they do not become empty pages. Consult the official specifications for their complete text.

For a client developer #

  • Read CAP LS entirely, including fragmented responses and values.
  • Only enable implemented capabilities and wait for ACK.
  • Accept additional messages between steps of an exchange.
  • Do not confuse current state with historically replayed events.
  • Handle unknown tags without inventing an effect for them.

Sources & Verification

Examples use pseudonyms and fictional domains, except for explicitly documented connection points. Network-specific extensions and settings are noted in the text.