Bridging Slack and IRC

Slack is an amazing tool. It has proved to be an invaluable resource for our team by allowing a communication flow unlike any other. However, transitioning from something as battle-proven as IRC can be a hard task. slack-irc aims to help smoothen this transition by letting you mirror channels on both ends.

This can be especially useful for communities making use of recent tools like slackin to create Slack teams with thousands of members. Many of these already have thriving IRC channels, and connecting them could hopefully result in a merging of communities. It’s currently being used for socket.io’s Slack and the Reactiflux Slack.


Using Slack’s Real Time Messaging API arriving messages are prepared, parsed and then posted to the correct IRC channel. Vice versa, messages posted on IRC are forwarded to Slack, allowing for simple two-way communication. Since the Slack messages arrive over WebSockets slack-irc doesn’t need to listen on a port.

slack-irc supports running IRC commands on startup, and it’s easy to set up the bot in both password-protected and invite-only channels. Choosing what channels you want to mirror is completely up to you, which opens for the possibilities of having for example a public support IRC channel connected to your Slack team without having to worry about security issues.

To make it as simple as possible to set up, Slack’s Bot Users API is used. To know what channels to bridge slack-irc requires a simple JSON configuration:

    "nickname": "SlackBridge",
    "server": "irc.freenode.net",
    "token": "slack-bot-user-token",
    "channelMapping": {
        "#slack-channel": "#irc-channel",
        "private-group": "#other-irc-channel"

It also supports running multiple bots from one slack-irc instance. A full configuration example is available in the GitHub README.