ERC is a powerful, modular, and extensible Emacs InternetRelayChat client.

Obtaining ERC

ERC is part of the GNU project. It is included with recent versions of GNU Emacs.

With an older version of Emacs, you might need to install it separately, e.g. under Ubuntu you would do something like sudo apt-get install erc.

For a brief history of the development of ERC and access to older versions, code repositories, and mailing list archives see ErcProjectHistory.

Included with GNU Emacs

ERC is included in released versions of GNU Emacs since v22.3.

See ErcExtraModules to find out how to get the few modules which were not able to be included with ERC in Emacs due to licensing and dependency issues.

Ports and packages

The XEmacs ERC Package sources are at

Debian users can just apt-get install erc, or use one of the emacs22 or emacs-snapshot-* packages in experimental and unstable. The Debian ERC package is updated at every major or minor release. Usually, you should expect a new release every month or two.

Gentoo users can just emerge app-emacs/erc or app-xemacs/erc (for some reason portage has a hard time figuring out which). At present this is the latest release candidate.

Development version

See ErcDevelopment to find instructions on how to get the development version using git. Or if you prefer, you can download the most recent development snapshot: erc-latest.tar.gz or

ERC also comes bundled with EmacsFromCVS[1].

Note that ErcDevelopment and EmacsFromCvs can contain two separate branches of ERC and are therefore not quite identical. The modules ErcBbdb and ErcSpeak are not available in the Emacs version, for example.

User manual

An info manual is now included with ERC. It’s also available on-line in several forms:

  1. HTML (single file):
  2. HTML (multiple files):


the latest release, erc-5.3.tar.gz (or, extracts to a directory called erc-5.3/
Development snapshots extract to a directory called erc/
(add-to-list 'load-path "~/elisp/erc")
(require 'erc)


Setting up ERC to work right for you

The easiest way to configure ERC is to do M-x customize-group RET erc RET. This will open a buffer with all possible customizable settings organized in groups. Even if you want to add things to your Initfile manually, you might find some settings you didn’t know about by looking around.

General configuration

SSL configuration


Quick reference

Some features explained


To enable or disable modules use M-x customize-variable RET erc-modules.

Enabled by default

Disabled by default

Non-standard modules

The following modules are not enabled/disabled by changing the ‘erc-modules’ variable. You should be able to find documentation on how to set them up on their pages.

Other Goodies (not part of ERC)

Bots for ERC

Various commands

Change how ERC looks

Change how messages are shown



Currently not supported. See or for software to use.

ErcProxy has some more information on how things are right now and what you can do to use erc through a proxy.

For developers

Mailing lists

If you need help with ERC, you can ask on the erc-discuss mailing list. If you encounter ErcBugs, please let us know about them by sending an email to the erc-discuss mailing list. Feel free to send us the corresponding patches if you’re able to fix things.

Check the Savannah mailing page for ERC for subscription information.

The mailing lists are also available on Gmane.

  1. gmane.emacs.erc.announce – Announcements
  2. gmane.emacs.erc.general – General discussion
  3. gmane.emacs.erc.cvs – Log messages for changes to the ERC source code

CategoryChatClient InternetRelayChat

Bug: using customize to set erc-spelling-dictionaries saves the (buffername . dictionary) elements as pairs instead of lists.