adsr/irslackd

self-hosted IRC gateway to Slack

JavaScript

163

229 commits

updated Nov 15, 2025

See the code

README

irslackd

Slack ended IRC support on May 15, 2018. So, we built our own Slack-IRC gateway.

irslackd is actively developed and used daily on a 1000+ user Slack workspace.

Build Status

Features

  • TLS-encrypted IRCd
  • Multiple Slack accounts/workspaces
  • Channels, private channels, DMs, group DMs, threads
  • Receive reactions, message edits, message deletes, attachments
  • Proper en/decoding of @user, #channel, @team tags

Setup

Using docker-compose

  1. Clone irslackd and run docker-compose:

    $ git clone https://github.com/adsr/irslackd.git
    $ docker-compose up
    

    Recommendation: Watch docker-compose build output for the generated certificate's fingerprint (used later for verification).

  2. Connect your IRC client to irslackd which listens on 127.0.0.1:6697. See: Configure your Slack account and IRC client

Manual

  1. Install Node >=8.x and npm. You can check your version of Node by running node --version.

  2. Clone irslackd:

    $ git clone https://github.com/adsr/irslackd.git
    $ cd irslackd
    $ npm install    # Fetch dependencies into local `node_modules/` directory
    
  3. Run ./bin/create_tls_key.sh to create a TLS key and cert. This will put a private key and cert in ~/.irslackd. Note the fingerprint.

  4. Run irslackd:

    $ ./irslackd
    

    By default irslackd listens on 127.0.0.1:6697. Set the command line options -p <port> and/or -a <address> to change the listen address.

Configure your Slack account and IRC client

  1. Follow the link below to obtain an irslackd token for your Slack workspace:

    Authorize irslackd

    Select the desired workspace in the dropdown in the upper right corner. Click 'Authorize', and copy the access token. It will look something like this:

    xoxp-012345678901-012345678901-012345678901-0123456789abcdef0123456789abcdef

  2. Connect to irslackd via your IRC client, e.g., WeeChat:

    /server add irslackd_workspace localhost/6697
    /set irc.server.irslackd_workspace.ssl on
    /set irc.server.irslackd_workspace.ssl_fingerprint fingerprint-from-step-3
    /set irc.server.irslackd_workspace.password access-token-from-step-5
    /connect irslackd_workspace
    

    Check the wiki for more client configuration notes.

  3. Repeat steps 1 and 2 for each Slack workspace you'd like to connect to.

  4. Enjoy a fresh IRC gateway experience.

Contribute

Tests

  • To run all tests: npm test
  • To run a single test, e.g.: npm test test_join

irslackd Slack workspace

hacktoberfest
irc
irc-client
ircd
irc-gateway
slack
slack-gateway

Contributors

adsr

194 commits

dependabot[bot]

16 commits

mmercedes

4 commits

pbui

4 commits

adsr/irslackd

self-hosted IRC gateway to Slack

JavaScript

163

229 commits

updated Nov 15, 2025

See the code

README

irslackd

Slack ended IRC support on May 15, 2018. So, we built our own Slack-IRC gateway.

irslackd is actively developed and used daily on a 1000+ user Slack workspace.

Build Status

Features

  • TLS-encrypted IRCd
  • Multiple Slack accounts/workspaces
  • Channels, private channels, DMs, group DMs, threads
  • Receive reactions, message edits, message deletes, attachments
  • Proper en/decoding of @user, #channel, @team tags

Setup

Using docker-compose

  1. Clone irslackd and run docker-compose:

    $ git clone https://github.com/adsr/irslackd.git
    $ docker-compose up
    

    Recommendation: Watch docker-compose build output for the generated certificate's fingerprint (used later for verification).

  2. Connect your IRC client to irslackd which listens on 127.0.0.1:6697. See: Configure your Slack account and IRC client

Manual

  1. Install Node >=8.x and npm. You can check your version of Node by running node --version.

  2. Clone irslackd:

    $ git clone https://github.com/adsr/irslackd.git
    $ cd irslackd
    $ npm install    # Fetch dependencies into local `node_modules/` directory
    
  3. Run ./bin/create_tls_key.sh to create a TLS key and cert. This will put a private key and cert in ~/.irslackd. Note the fingerprint.

  4. Run irslackd:

    $ ./irslackd
    

    By default irslackd listens on 127.0.0.1:6697. Set the command line options -p <port> and/or -a <address> to change the listen address.

Configure your Slack account and IRC client

  1. Follow the link below to obtain an irslackd token for your Slack workspace:

    Authorize irslackd

    Select the desired workspace in the dropdown in the upper right corner. Click 'Authorize', and copy the access token. It will look something like this:

    xoxp-012345678901-012345678901-012345678901-0123456789abcdef0123456789abcdef

  2. Connect to irslackd via your IRC client, e.g., WeeChat:

    /server add irslackd_workspace localhost/6697
    /set irc.server.irslackd_workspace.ssl on
    /set irc.server.irslackd_workspace.ssl_fingerprint fingerprint-from-step-3
    /set irc.server.irslackd_workspace.password access-token-from-step-5
    /connect irslackd_workspace
    

    Check the wiki for more client configuration notes.

  3. Repeat steps 1 and 2 for each Slack workspace you'd like to connect to.

  4. Enjoy a fresh IRC gateway experience.

Contribute

Tests

  • To run all tests: npm test
  • To run a single test, e.g.: npm test test_join

irslackd Slack workspace

hacktoberfest
irc
irc-client
ircd
irc-gateway
slack
slack-gateway

Contributors

adsr

194 commits

dependabot[bot]

16 commits

mmercedes

4 commits

pbui

4 commits

Languages

JavaScript

96.3%

PHP

1.9%