IRCv3 is shaping to be amazingly good!
-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
@whitequark Intriguing. Any recommendations for compatible servers and clients?
If session persistence is a thing now, that feels like a real step forward for IRC (having to use a bouncer or a client running on a server somewhere is a high bar for a lot of people, especially more casual users).
-
@futuresprog Libera is rolling out IRCv3 soon, which is going to be big https://libera.chat/news/new-and-upcoming-features-3
@whitequark @futuresprog they've had "IRCv3 support" since inception AFAIK (I believe even freenode had it)
what they're rolling out is support for some extensions to IRCv3, in particular the `message-tags` specification which will support things like `+draft/reply` by adding a new capability to add a bunch of metadata to a message (which involves bumping the line length up 8191 bytes, allowing for just under 4K of tag data)
IRCv3's capability negotiation is such a powerful way to let the ecosystem continue to grow in a way that allows more granular specifications
-
@whitequark Intriguing. Any recommendations for compatible servers and clients?
If session persistence is a thing now, that feels like a real step forward for IRC (having to use a bouncer or a client running on a server somewhere is a high bar for a lot of people, especially more casual users).
@swetland goguma, halloy
-
@whitequark @futuresprog they've had "IRCv3 support" since inception AFAIK (I believe even freenode had it)
what they're rolling out is support for some extensions to IRCv3, in particular the `message-tags` specification which will support things like `+draft/reply` by adding a new capability to add a bunch of metadata to a message (which involves bumping the line length up 8191 bytes, allowing for just under 4K of tag data)
IRCv3's capability negotiation is such a powerful way to let the ecosystem continue to grow in a way that allows more granular specifications
@whitequark @futuresprog it doesn't really help matters the IRCv3 working group has just kinda given up on versioning the whole thing and now there's "the modern IRC protocol" at the core and the cloud of extensions
so there's no versioned document you can point at and say IRCv3.x as there was with IRCv3.1 and IRCv3.2, and I'm not sure the smaller granular extension specifications have any versioning either. it all manages to hold together nonetheless, I guess because they don't make breaking changes (because all in the extensions, the core got it very right pretty early, especially if an implementation has the combination of capabilities AND tags)
-
@whitequark this is awesome! Which daemon are you using?
@kevin ergochat
-
@whitequark Hm. Would the server lose the backlog and the rest of the state if it's restarted, or is it supposed to store it all now?
@theartlav ergochat uses mysql
-
@kevin ergochat
@whitequark oh, very cool. I wonder if now would be a good time to revive my IRCaudio extension I was working on for Mumble-esque audio channels
-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
@whitequark@social.treehouse.systems I should look into the spec, maybe make my own client if it's not too complex. Been wanting to do that since forever.
It's nice that IRC is getting the love it finally deserves. I have been waiting for not having to use a bouncer since forever. -
@fruitcakesareyum @groxx keeping chat history with intermittent connectivity or machines not always powered up
@whitequark @fruitcakesareyum the bane of mobile devices in particular.
basically you completely lose chat history while offline, because there is no chat history in IRC*, servers are practically just a fancy ephemeral signal-repeater*. so a bouncer would stay always-connected for you, keeping that history, and would replay* it when you reconnected.
last time I used irc moderately, I did it via irccloud, which acts as a bouncer for you. ircv3 might mean I no longer need that, but otherwise I liked it a lot (a couple years ago), definitely recommend.
*: drastically over-simplifying to the point that it's no longer accurate, but I believe it fits the user experience / need well enough
-
@whitequark @futuresprog it doesn't really help matters the IRCv3 working group has just kinda given up on versioning the whole thing and now there's "the modern IRC protocol" at the core and the cloud of extensions
so there's no versioned document you can point at and say IRCv3.x as there was with IRCv3.1 and IRCv3.2, and I'm not sure the smaller granular extension specifications have any versioning either. it all manages to hold together nonetheless, I guess because they don't make breaking changes (because all in the extensions, the core got it very right pretty early, especially if an implementation has the combination of capabilities AND tags)
@SnoopJ @whitequark @futuresprog yeah the whole point of v3 is the capability negotiation mechanism, with everything else being optional and up to the client to choose, so you can't really version it
-
@whitequark @futuresprog they've had "IRCv3 support" since inception AFAIK (I believe even freenode had it)
what they're rolling out is support for some extensions to IRCv3, in particular the `message-tags` specification which will support things like `+draft/reply` by adding a new capability to add a bunch of metadata to a message (which involves bumping the line length up 8191 bytes, allowing for just under 4K of tag data)
IRCv3's capability negotiation is such a powerful way to let the ecosystem continue to grow in a way that allows more granular specifications
That’s a more clever way to upgrade a federated system without a huge cutover
-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
@whitequark I’ve found myself thinking of going back to IRC, and this gives me more reasons than I has hoped for!
Ps. I think everybody is finally using Utf-8.. please?

-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
Feels like this should have been news from around 2000.
-
Feels like this should have been news from around 2000.
@calmeilles I'll take it in 2026
-
@whitequark I’ve found myself thinking of going back to IRC, and this gives me more reasons than I has hoped for!
Ps. I think everybody is finally using Utf-8.. please?

@gimulnautti yes, UTF8ONLY is a feature now
-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
@whitequark
File uploads could probably be kludged exclusively on the client side with something like
```
START FILE UPLOAD
METADATA <metadata>
BODY <base64 file contents>
END FILE UPLOAD
```
although it would be problematic in that it would show up as spam for anyone without the client extension, and would be less efficient than a binary solution. It could work the same with image, audio, video, and stickers, since those are all just specially tagged files. Could even work for streaming (hence live audio/video calls) if the files are chunked right, maybe adding CONTINUE BELOW and CONTINUED FROM ABOVE indicators.Of course, that would be stupid, since a 2MB file would take more characters than make up the entire LotR trilogy (~2.3M) under this encoding scheme, all of which would be shown in their raw form to any user with an incompatible client (unless IRC lets users handle this somehow). Maybe there's a reason people leave some things to the server.
I realize I have just given an oversimplified description of how XMPP handles (or maybe handled, depending on implemented XEPs) file uploads.
(please don't interpret this as me trying to fedisplain how you should implement a file upload protocol. don't implement it this way, please.)
-
@whitequark
File uploads could probably be kludged exclusively on the client side with something like
```
START FILE UPLOAD
METADATA <metadata>
BODY <base64 file contents>
END FILE UPLOAD
```
although it would be problematic in that it would show up as spam for anyone without the client extension, and would be less efficient than a binary solution. It could work the same with image, audio, video, and stickers, since those are all just specially tagged files. Could even work for streaming (hence live audio/video calls) if the files are chunked right, maybe adding CONTINUE BELOW and CONTINUED FROM ABOVE indicators.Of course, that would be stupid, since a 2MB file would take more characters than make up the entire LotR trilogy (~2.3M) under this encoding scheme, all of which would be shown in their raw form to any user with an incompatible client (unless IRC lets users handle this somehow). Maybe there's a reason people leave some things to the server.
I realize I have just given an oversimplified description of how XMPP handles (or maybe handled, depending on implemented XEPs) file uploads.
(please don't interpret this as me trying to fedisplain how you should implement a file upload protocol. don't implement it this way, please.)
@anonax I have XMPP file transfer trauma. for reals.
I still remember what bz2|base64 starts with because it was more reliable to do that to send small files.
(it's Qlp...)
-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
Yeah. IRCv3 is good, unless you dont care about one of basic features of all modern instant messaging: presence.
-
IRCv3 is shaping to be amazingly good!
here's the things it offers, today, right now, on a chat server we just set up in one evening:
- you don't need a bouncer (friggin finally)
- there are moblie clients that work well
- you can see backlog when joining a channel
- you can browse chat history
- you can connect from multiple devices with one account and nickname
- if you disconnect, your nickname is still present in a channel you joined, marked as away
- you can highlight or DM people who are away and they'll see your message when they join (without crutches like MemoServ)
- there is a "last read message" marker and it is synchronized between multiple connections
- messages have identifiers (and server timestamps) and replies can be tagged with the message you're replying to
- you don't need to deal with fussy nonsense like NickServ authorization, ghosting, or such; connect with your username and password and that's it
- there are typing notifiers, if you want them
- there are message reactions, if you want them
here's the things it does not offer:
- image, video, or file uploads
- stickers
- complex onboarding tools
caveat: since IRCv3 is a true extension of IRCv2, the features listed above work if they're supported by both the server and the client. in my onboarding experience so far, people do not find it difficult to find a suitable client, but your mileage may vary. on the flipside, legacy clients will work just fine.
unexpectly, i realized that IRCv3 can completely replace Matrix rooms for my own group chat purposes, and i'm probably not going to set up any Matrix homeservers again; it's just not worth it and frankly I should instead put that effort into coming up with a file upload IRCv3 extension or something
@whitequark year of the IRC desktop -
Yeah. IRCv3 is good, unless you dont care about one of basic features of all modern instant messaging: presence.
@nawanp matrix has no presence, discord technically has it but ime it has no correlation whatsoever to whether i'll get a response so... yeah? i don't care about presence