New IRC Integrations: OFTC and Snoonet

Riot.im
3 min readSep 27, 2016

As of today, channels on the OFTC.net and Snoonet IRC networks can be bridged into any Matrix room via Riot’s “Manage Integrations” button, which can be reached by going into any room’s settings from riot.im/app. You can also join channels directly through addresses like #_oftc_#somewhere:matrix.org and #_snoonet_#elsewhere:matrix.org.

This follows Riot’s newly developed integrations manager, which also allows plumbing of Matrix rooms to other IRC networks such as irc.mozilla.net and irc.freenode.net. Not only does it allow IRC integrations, but the list of available systems that can be integrated is growing every month and we’ll do our best to keep the blog up-to-date as we add new and exciting integrations.

How it works

We’ve been developing a hosting platform for Matrix bots, bridges and integrations code-named Scalar. Scalar deploys instances of go-neb, matrix-appservice-irc and other open source Matrix bots and bridges that can be used to integrate arbitrary Matrix rooms with third-party systems.

For instance, you can integrate a Github bot (go-neb) into any room to keep your team’s Matrix room in sync with all development activities, and even issue commands such as…

!github create vector-im/vector-web “Rename this repo to riot-web”

…or if you ever need to respond to a team member with a random GIF, simply deploy a Giphy bot and type:

!giphy <insert random text here>

Bridges

As well as bots, Scalar provides a number of bridges that can be used to bridge other systems into any Matrix room. These bridges connect rooms in Matrix through to rooms on other third-party networks, such as IRC, Slack, Gitter, Rocket.Chat, MatterMost etc.

Example: Bridging Snoonet

If you want to access an IRC channel from Matrix, first decide whether you want to ‘plumb’ the channel into an existing Matrix room, or just access the channel via its default ‘portal’ room — e.g. /join #_snoonet_#somewhere:matrix.org.

If you want to plumb the channel to an existing room, then go to the room in Riot/Web, click the settings cog icon in the title bar, click Manage Integrations, click IRC network, and select the network from the dropdown. You must then provide the nick of a IRC channel operator who can authorise the bridging: this is to give the non-Matrix network the option to opt out of being exposed into Matrix.

Once you’ve entered the channel name into the Channel input box, the available list of channel operators (if any) will be acquired by the bridge, and will populate the ‘Chanop Nick’ input. This does require the bridge bot to join #somechannel so be aware, you might see ‘MatrixBridge’ join and then part the channel. If the bot can’t see any ops, then you’ll have to manually enter the nick of someone who’s willing to become an op to show the bot that they have ops, and then authorize the bridge.

The process looks like this:

The room settings page now shows the “Manage Integrations” button
This IRC integrations panel can be used to integrate Mozilla, Freenode and Snoonet channels

When ‘Request Integration’ is clicked, the channel operator is contacted by the bridge bot asking for permission to plumb the Matrix room with the IRC channel. Once the operator has given permission (by replying with ‘yes’ to the bridge bot), the bridge begins to route traffic between the room with the channel.

The view from XChat, a popular IRC client

This feature is very new, so do please send us feedback if it all goes wrong!

— Luke Barnard

--

--

Riot.im

A shared workspace for the web which returns power to the user!