IRC connection and parsing utilities module
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Evert Prants 75bc872a38
add docs to npmignore
8 months ago
.vscode Initial commit 8 months ago
src typos 8 months ago
.gitignore add a nicklist manager class 8 months ago
.npmignore add docs to npmignore 8 months ago
.prettierrc Initial commit 8 months ago more tweaks 8 months ago
package-lock.json add a nicklist manager class 8 months ago
package.json add README 8 months ago
tsconfig.json Initial commit 8 months ago


Zero dependencies library for creating anything using the IRC protocol - bots, clients, you name it. It includes a variety of utilities, such as a nick list class that manages mode prefixes for you, NickServ authentication checker and message formatting (colors!).

Read the Typedoc

Getting started

There is an example usage documented in src/examples/connection-test.ts, but basically you have two ways to create an IRC client connection:

  1. Use the IRCBot class. This just takes connection options and it uses IRCSocketConnector (so it will not work in the browser!)
  2. Use the IRCConnection class directly. To use this, you need to provide your own connector in addition to the options.

Connection options

The connection options are documented in detail here, but the most important are:

  • host - Server host.
  • nick - Your nickname.
  • port - Server port, defaults to 6667.
  • ssl - Use secure connection.
  • channels - String-list of channels to join on connect.


This module provides two connectors: IRCSocketConnector for Node.js usage (net and tls) and IRCWebSocketConnector for browser usage (WebSockets). You can always write your own if you need something different.

These are not included in the main module! You need to import them from @icynet/irclib/lib/connector/[..]. This is to prevent browser bundlers from including net and tls!

Event handlers

The main classes use a special custom TypedEventEmitter to send events.

Basically, you're mostly just going to need the message event for IRC.


Currently, this module only supports SASL authentication capability.