# Awesome IRC

> A curated list of awesome IRC resources.

A list of tools, software & other resources related to the Internet Relay Chat (IRC) protocol.

IRC (Internet Relay Chat) is an open source protocol that can be used for multi-user text based communication through channels.

## Contents

- Clients
- Bouncers
  - Hosted
  - Self-hosted
- Daemons
- Services
- Bots
- Frameworks
  - Bridges
- Channels
  - Discovery
  - Platforms
  - Programming
- Networks
- Articles
- Guides
- Protocol
- Miscellaneous

## Clients

You use these to connect to IRC.

- Textual - Very customizable, ZNC integration, iCloud sync ($4.99). (source) `macOS`
- LimeChat - One window for multiple servers, keyboard shortcuts, fast & stable. (source) `macOS` `iOS`
- HexChat - Based on XChat, easy to use, spell check & multiple languages. (source) `Windows` `macOS` `Linux`
- gamja - A simple IRC web client. (source) `Web`
- Kiwi IRC - Powerful modern IRC messenger for the web. (source, demo) `Web`
- CIRC - Uses the chrome.sockets APIs to connect directly to IRC servers without needing a proxy. (source) `Chrome`
- Quassel - Distributed (clients can attach to and detach from a central core that stays permanently online. (source) `Linux` `macOS` `Windows`
- Yaaic - Multi-server/channel support, SASL support, Smooth channel scrolling / swiping. (source) `Android`
- relay.js - Focuses on making IRC less intimidating and easier to use. `Web`
- Circe - For use in Emacs, sane defaults. `Emacs`
- Smuxi - User-friendly, based on GNOME / GTK+. (source) `Linux` `Windows` `macOS`
- KvIRC - Free, portable, based on Qt GUI toolkit. (source) `Linux` `macOS` `Windows`
- Konversation - User-friendly client built on the KDE Platform. (source) `Linux`
- sic - Simple IRC client - a terminal client in less than 250 lines of C. `Linux`
- irssi - Terminal client, multi-protocol friendly for module authors, GPLv2. `Linux` `macOS` `Cygwin` `BSD`
- Revolution IRC - Feature-full, actively maintained Android IRC client. `Android`
- AdiIRC - Never has a client offered such granular settings for every aspect of the IRC experience. (features, screenshots) `Windows` `WINE`
- IRC for Android™ - Android/Chrome OS client for power users, with ZNC built-ins, notification logic, reliable DCC, keybinds for hardware keyboards, etc. `Android` `ChromeOS`
- Iridium - Friendly IRC client built in Vala and GTK, designed for elementary OS. (source) `Linux`
- Goguma - An IRC client for mobile devices, from the creator of soju. `Android` `Linux`

More? Clients that include bouncers are found below.

## Bouncers

Useful for disconnecting and reconnecting without losing the chat session.

### Hosted

- IRCCloud - Group chat for teams, friends, and communities. stay connected, chat from anywhere, and never miss a message (+client) (£0-£3.50/month).
  - iOS App - Official. `Objective-C`
  - Android App - Official. `Java`
  - Nimbus - Standalone client. `macOS` `Objective-C`

### Self-hosted

- Convos - Always online web IRC client. (source) `Perl` `JavaScript` `Web`
- ZNC - Most popular. many different plugins. (source) `C++`
- BIP IRC Proxy - Always online, lightweight and secure Open Source IRC proxying with backlogging. (source) `C`
- TheLounge - Responsive, self-hosted & support for multiple users. (source, demo) `JavaScript` `Node.js` `Web`
- WeeChat - A fast, light and extensible chat client. (source) `Linux` `macOS` `Windows`
- soju - A user-friendly IRC bouncer. `Go`
- sms-webhook - A simple webhook to receive SMS messages on IRC. `Go`

## Daemons

Used for running your own IRC server or network.

- ircd.js - Server will allow clients to connect, join channels, change topics; basic stuff.
- InspIRCd - Modular, stable, written from scratch. (source)
- miniircd - Very simple and limited.
- ngIRCd - Portable and lightweight for small or private networks. (source)
- Ergo - Modern server that’s portable and designed around specifications (bleeding-edge IRCv3 support).
- RobustIRC - IRC server without netsplits. (source)

## Services

Used to provide user accounts and bots like NickServ/ChanServ to your network.

- Atheme - Designed for large networks with high scalability requirements. (source)
- anope - Designed for flexibility and ease of use. (source)

## Bots

IRC users which provide services for humans, e.g. integrations or information.

- Eggdrop - Oldest IRC bot still in active development. Feature rich, uses Tcl scripting. (source) `C`
- Sopel - Tonnes of ready made features, tutorial, fully documented. (source) `Python`
- Limnoria - Robust, user friendly, developer friendly. `Python`
- Twitch Plays - Takes input from the chat and presses the corresponding key. `Python`
- Skybot - Main goals are simplicity and power. `Python`
- talkbackbot - Responds to configured trigger phrases with quotes from notable women. (source) `Python`
- lazybot - User-friendly and powerful. `Clojure`
- IRC-BF - `Brainfuck`
- geordi - Compiles and runs C++ code snippets. `C++`
- CloudBot - Simple, fast, expandable. `Python`
- yossarian-bot - Large default plugin set, Cinch-based. `Ruby`
- helga - Pluggable chat bot supporting multiple protocols. `Python`
- EveIRC - Extendable chat/channel/server-managenent service-providing bot. Using the Cinch Framework. `Ruby`
- BitBot - Modular, event-driven bot featuring a REST API, individual user settings and much more. (bitbot.dev) `Python`
- Cardinal - Python Twisted IRC bot with a focus on ease of plugin development. `Python`
- pyHoneybot - Python Twisted IRC bot with a focus on ease of plugin development. (source) `Python`
- wayback - An archiving tool with an IRC interface integrated with various archiving services.
- milla - New generation LLM-powered bot with lua scripting support. `Go`

## Frameworks

Helpful to write bots or integrate IRC with applications.

- node-irc `JavaScript`
- goirc - Event-based, stateful, lacking documentation. `Go`
- Hubot IRC Adapter - The IRC adapter for hubot. `JavaScript`
- go-ircevent - Event-based. `Go`
- slate-irc - Plugin system, simple api, arbitrary input stream, debug support. `JavaScript`
- PircBotX - Event based IRC Library with a straightforward API (updated fork of PircBot). `Java`
- IRC::Client - `Perl6` based extendable IRC client framework.
- irccd - Flexible IRC bot customizable with JavaScript. `C++`.

### Bridges

Sends messages back and forth.

- discord-irc - Discord ↔︎ IRC. `JavaScript`
- dibridge - Discord ↔︎ IRC (with puppets) `Python`
- slack-irc - Slack ↔︎ IRC. `JavaScript`
- irc-slack - Slack ↔︎ IRC. `Go`
- BitlBee - XMPP, Jabber, Google Talk, MSN Messenger, Yahoo! Messenger, AIM, ICQ, Twitter API, HipChat ↔︎ IRC. `C`
- Biboumi - IRC gateway for XMPP clients `C`
- teleirc - Telegram ↔︎ IRC. `JavaScript`
- toxirc - Tox ↔︎ IRC. `C`
- skyweb2irc - Skype (webclient API) ↔︎ IRC. `Javascript`
- matterbridge - IRC ↔︎ Mattermost ↔︎ Discord ↔︎ XMPP ↔︎ Gitter ↔︎ Slack ↔︎ Discord ↔︎ Telegram ↔︎ etc. `Go`
- Heisenbridge - Bouncer-style Matrix IRC bridge `Python`
- Appservice-IRC - Gateway and bridge Matrix ↔︎ IRC `Javascript`
- matterircd - Matterbridge ↔︎ IRC, Slack ↔︎ IRC, Mastodon ↔︎ IRC. `Go`

## Channels

IRC channels.

### Discovery

- netsplit.de Search - Searches 563 different networks.
- mibbit Search - Searches networks listed here.
- KiwiIRC Search - Searches 318 different networks.

### Platforms

- #ubuntu @Libera.Chat - Official Ubuntu support channel. (rules)

## Networks

A collection of IRC servers is known as a network.

- Libera.Chat - Network mostly focused on free and open source projects, run by former freenode staff.
- Snoonet - Community of redditors and subreddits. (rules)
- OFTC - Community for free and open source software communities.
- LibertaCasa - Privacy endorsing community serving as a safe and open space for the discussion of various topics.

## Articles

Articles and blog posts about IRC.

- Please don’t use Slack for FOSS projects - Drew DeVault’s Blog.
- IRC Networks Under Systematic Attack From Governments - QuakeNet.
- IRC is dead, long live IRC - Pingdom.
- IRC Has Lost 60% Of Its Users Since 2003, But Life As A Robot Is Just Beginning - Alex Williams (TechCrunch).

## Guides

How-to’s, documentation and books.

- #irchelp - A vast amount of reasonably up-to-date information.

## Protocol

Information and resources about the IRC protocol itself.

- IRCv3 Working Group - A group of IRC software authors working to enhance, improve, maintain and standardize the IRC protocol. (source)
- Modern IRC Documents - An attempt to write an update to the original IRC protocol. documentation (source)
- IRC Definition Files - Lists of numerics, modes, ISUPPORT tokens and other protocol details. (source)
- grawity’s IRC docs - Collection of misc IRC protocol documentation.
- Protocol Statistics - Statistics around the server software in use on networks today. (source)
- IRC Parser Tests - A CC0 set of test suites, to ensure IRC message parsers are consistent.
- DareNET Archives - IRC Archives for old hard to find IRC related software.

## Miscellaneous

Items that belong on the list but defy classification.

- superseriousstats - Fast and efficient program to create statistics out of various types of chat logs. `PHP` `Web`
- img2src - Convert images to halfblock ANSI or IRC, with a bunch of post-processing filters. `Rust`

## Use

The best ways to use this list are:

- By browsing the contents
- By using `command` + `F` to search the contents

This list also uses tags to help when searching the contents: - Language - `Python`, `Java`, `C++`, `Go`, `JavaScript`, `Ruby`, `C` etc. - Platform - `Web`, `macOS`, `Windows`, `Linux`, `Chrome` etc.

## Credits

By Craig Davison and contributors.

irc.md Github