ERC (software)

ERC is an Internet Relay Chat (IRC) client integrated into GNU Emacs. It is written in Emacs Lisp.

Features
ERC includes message timestamping, automatic channel joining, flood control, and auto-completion of nicks and commands. ERC can highlight nicks and text for conversation tracking, highlight and optionally remove control characters, and allows URLs, nicknames and text to be converted to buttons. It provides input history, and separate buffers per server and channel. Notifications include channel activity on the Emacs mode-line, user online status, and channel tracking of hidden conversations. ERC is multi-lingual, and provides auto-script loading at startup.

ERC has a modular design, with many features implemented in "more than two dozen loadable modules" included in the default setup, such as autoaway, fill (splits long lines), log (saves chat buffers), spelling, bbdb, which connects ERC to Emacs' BBDB for contact management, and replace, which auto-replaces given text in messages. ERC supports SSL/TLS for encrypted IRC communication.

History
According to the GNU project, ERC was first developed by Alexander L. Belikoff and Sergey Berezin. Berezin wrote that ERC was "originally written by Alexander L. Belikoff, then I improved it in many ways and promoted to version 2.0". The pair stopped development in 1999. Mario Lang wrote that as of 2001 ERC had been "apparently abandoned", so he and Alexander Schroeder adopted it and created the ERC SourceForge project. Berezin responded positively to news of the renewed effort and bestowed stewardship to the new developers; in the ensuing years, versions 2.1, 3, 4, 5, and 5.1 were released. ERC development moved from SourceForge to GNU in May 2006, and ERC was officially incorporated into Emacs release 22.1 on June 3, 2007. ERC development now takes place inside the Emacs source-code tree.

Related work
ERC is one of two IRC clients included in the Emacs distribution; rcirc is the other. Circe and the "ascetic" ZenIRC are also Emacs-based IRC clients. According to its author, Circe incorporates ideas from ERC such as its activity tracker and others; it was developed as ERC became "difficult to debug and improve."