Vendor Specifications
The capability negotiation feature of IRCv3 makes it possible for servers and bouncers alike to extend the base IRCv3 feature set.
This page is meant to act as a index of all of those known specifications. We do this to help others discover features they may be looking to implement themselves and so that Ibis can provide constants for its users.
Bouncers
A Bouncer is an IRC client that is also an IRC server. It connects to any number of IRC servers as a client on your behalf and then acts as a server so that your normal IRC client can connect to it.
Bouncers are useful because they stay connected all the time and keep track of message history while you are offline or moving between clients/computers. They can also increase your privacy as the bouncer’s IP address will be exposed instead of your client’s.
Pounce
pounce — IRC pouncer :3
Specifications
| Extension | Description |
|---|---|
| causal.agency/consumer | Lets a client ensure no messages are missed, even in case of network issues or application crashes. |
| causal.agency/passive | Indicates that a client should not affect the automatic away status. |
Soju
A user-friendly IRC bouncer https://soju.im
Specifications
| Extension | Description |
|---|---|
| soju.im/account-required | Deprecated. See ircv3.net/specs/extensions/account-registration#isupport-token. |
| soju.im/bouncer-networks | Lets clients discover servers that are bouncers, list and edit upstream networks the bouncer is connected to. |
| soju.im/client-cert | Allows clients to manage TLS client certificates that are accepted for authentication with SASL EXTERNAL. Such certificates are called “pinned certificates”. |
| soju.im/FILEHOST | Offers a way for servers to advertise a hosting service for users to upload files (such as text or images), so they can post them on IRC. |
| metadata | Additional IRCv3 metadata keys. |
| no-implicit-names | Deprecated. See no-implicit-names. |
| read | Deprecated. See read-marker. |
| soju.im/SAFERATE | An isupport token that when advertised, the server ensures that a client will not be disconnected due to server rate-limiting. |
| soju.im/search | Enables clients to run a server-side search of messages according to specified selectors. |
| soju.im/webpush | Support for push notifications. |
ZNC
ZNC, an advanced IRC bouncer
Specifications
| Extension | Description |
|---|---|
| znc.in/batch | Deprecated. See batch |
| znc.in/playback | Plays back history from a specific point. |
| znc.in/self-message | Sends QUERY messages to all connected clients. |
| znc.in/server-time | Deprecated. See server-time |
| znc.in/server-time-iso | Deprecated. See server-time |
Servers
IRC servers are what connects clients together and lets the magic happen.
Ergo
Ergo Modern IRC software and communities
Specifications
| Extension | Description |
|---|---|
| ergo.chat/nope | A capability that MUST NOT be requested which is meant to filter out clients that blindly request every capability. |
Twitch.tv
Twitch.tv is a live streaming site that supports IRC for chat.
Specifications
| Extension | Description |
|---|---|
| twitch.tv/commands | Lets your bot send PRIVMSG messages that include /me, and receive Twitch-specific IRC messages. |
| twitch.tv/membership | Lets your bot receive JOIN and PART messages when users join and leave the chat room. |
| twitch.tv/tags | Adds additional metadata to the command and membership messages. For the list of metadata available with each message, see Twitch tags. To request the tags capability, you must also request the commands capability. |