# irslackd

> An IRC gateway to Slack

Latest version **1.0.2** (published 2018-07-02) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install irslackd
pnpm add irslackd
yarn add irslackd
bun add irslackd
```

Provides the command `irslackd`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2018-07-02 |
| First published | 2018-07-02 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 273.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 163 |
| Maintainers | adsr |
| Keywords | slack, irc, gateway |

## Links

- npm: https://www.npmjs.com/package/irslackd
- Repository: https://github.com/adsr/irslackd
- Homepage: https://github.com/adsr/irslackd#readme
- Issues: https://github.com/adsr/irslackd/issues
- npm.io page: https://npm.io/package/irslackd

## Dependencies (4)

- [tape](https://npm.io/package/tape.md) ^4.9.0
- [await-lock](https://npm.io/package/await-lock.md) ^1.1.3
- [node-getopt](https://npm.io/package/node-getopt.md) ^0.3.2
- [@slack/client](https://npm.io/package/@slack/client.md) ^4.3.1

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2018-07-02
- 1.0.1 — 2018-07-02
- 1.0.0 — 2018-07-02

## README

# irslackd

[Slack ended IRC support][0] 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](https://travis-ci.org/adsr/irslackd.svg?branch=master)](https://travis-ci.org/adsr/irslackd)

### 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

1. [Install Node >=8.x][1] 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
    ```

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:
    ```
    $ npm install
    $ ./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.

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

   [![Authorize irslackd](https://platform.slack-edge.com/img/add_to_slack.png)][2]

   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`

6. 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][5].

7. Repeat steps 5 and 6 for each Slack workspace you'd like to connect to.

8. Enjoy a fresh IRC gateway experience.

### Contribute

* Add more [client configuration notes][5].
* File bug reports and feature requests via [Github issues][3].
* Feel free to submit PRs. Make sure to include tests.

### Tests

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

### Related projects

* https://github.com/ltworf/localslackirc (another gateway, Python)
* https://github.com/insomniacslk/irc-slack (another gateway, Go)
* https://github.com/wee-slack/wee-slack (a terminal client, WeeChat-based)
* https://github.com/erroneousboat/slack-term (a terminal client, Go)
* https://github.com/42wim/matterircd (an IRCd for Mattermost and Slack)
* https://github.com/dylex/slack-libpurple (Slack plugin for libpurple)

### irslackd Slack workspace

* Feel free to join the [irslackd Slack workspace][4] for testing your
  irslackd setup.

[0]: https://my.slack.com/account/gateways
[1]: https://nodejs.org/
[2]: https://slack.com/oauth/authorize?client_id=2151705565.329118621748&scope=client
[3]: https://github.com/adsr/irslackd/issues
[4]: https://join.slack.com/t/irslackd/shared_invite/enQtMzYzNzk3MTQwOTE0LWI0ZmZmZjZmNzZkMWM1Y2UwMGU2MzUxODg4OTZkYmNmN2VjNjRiZmVlZDRmZGM1ZTMzM2YwYzZhODBkY2QxM2Q
[5]: https://github.com/adsr/irslackd/wiki/IRC-Client-Config

---
_Source: https://npm.io/package/irslackd · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
