ERC is a powerful, modular, and extensible Emacs InternetRelayChat client.
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.
The latest version of ERC is 5.3.
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 http://cvs.xemacs.org/viewcvs.cgi/XEmacs/packages/xemacs-packages/erc/
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.
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-latest.zip.
ERC also comes bundled with EmacsFromCVS.
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.
An info manual is now included with ERC. It’s also available on-line in several forms:
- HTML (single file): http://www.mwolson.org/static/doc/erc.html
- HTML (multiple files): http://www.mwolson.org/static/doc/erc/
- Info: http://www.mwolson.org/static/doc/erc.info
- PDF: http://www.mwolson.org/static/doc/erc.pdf
The manual is not yet complete. At the moment you can find more detailed information on certain topics on the ERC pages here in the EmacsWiki. If you’d like to help write the manual, have a look at the FOR-RELEASE file which is available in ErcDevelopment to find out what needs to be done.
- Download the .tar.gz file and extract it (tar -xzf filename)
- the latest release, erc-5.3.tar.gz (or erc-5.3.zip), extracts to a directory called erc-5.3/
- Development snapshots extract to a directory called erc/
- Move the newly created directory to, for example, ~/elisp/erc
- And put the following in your ~/.emacs file:
(add-to-list 'load-path "~/elisp/erc")
- XEmacs users skip the above and get the XEmacs erc Package
- To connect, call M-x erc (better: M-x erc-select)
- To customize how ERC works: M-x customize-group RET erc RET
- ERC comes with a lot of small modules that do stuff for you. Recent versions of ERC let you just M-x customize-variable RET erc-modules RET. For previous versions, add a (require ‘erc-FOO) to your .emacs to use them.
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 ~/.emacs manually, you might find some settings you didn’t know about by looking around.
- ErcSSL – allow connections to ssl/tls-enabled servers (with certificates)
- ErcSASL – authenticate with SASL
- ErcCvsFeatures – what’s new or different in the CVS version of ERC
- ErcDeprecated – possibly helpful if you’re using an older version of ERC
Some features explained
- ErcAutoQuery – how to automatically start queries when you receive a private message
- ErcIgnoring – how to ignore some notices and some nicks
- ErcPart – Configuring the message on leaving or quitting
To enable or disable modules use M-x customize-variable RET erc-modules.
Enabled by default
Disabled by default
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
- ErcAlias – aliasing some commands to others
- ErcAmsg – how to send a message to all active channels
- ErcChanop – MODE [+-]o onto a channel for you
- ErcDoctor – help your fellow channel members
- ErcGlobalNick – A command for changing nick on all servers at once
- ErcHowMany – Show how many users and ops are in the current channel
- ErcInfo – help newbies with quick info manual references
- ErcReverse – reverse what you type, or reverse what other people typed
- ErcSave – Example of a very simple ERC command
- ErcShow – Show the result of evaluating a lisp expression
- ErcShowoff – Brag to others about your IRC connections
- ErcSlap – Various /SLAP examples.
- ErcSpook – Flood Echelon
- ErcTLDDemographics – get a quick overview of TLD frequencies in current channel
- ErcUname – print the result of running `uname -a’ on the system
- ErcUndernet – ERC Undernet convenience functions.
- ErcUptime – Display your system’s uptime, along with other stuff like load information
- ErcYow – Pinhead wisdom
- NowPlaying – tell others what EMMS or another media player is playing
Change how ERC looks
- ErcModeline – Additions to your ERC mode-line and header-line.
- ErcTabs – provide a tab-bar interface to ERC buffers
- ErcNickColors – Color nicks with different colors to make them easier to pick out
- ErcBar – Display a bar for unread messages, ala xchat
Change how messages are shown
- ErcHaxorCode – useful if you are trapped in an elite  channel
- ErcHideEmail – To write (more of less) safely your email address on a channel.
- ErcTex – Render LaTeX expressions in your chats
- erc-babel.el – Automatically translate incoming and outgoing messages between different (spoken) languages
- ErcChannelKey – SelectKey -like functionality for switching channels in ERC
- ErcNickNotify – Popup a notify window when someon is trying to reach you.
- ErcPageMe – Pop up a GNOME dialog box when someone is trying to reach you
- ErcSpies – find out who is also in the other channel
- ErcYank – Don’t worry about pasting too many lines and flooding channels
- InternetTime – show you the time as defined by http://swatch.com/fs_index.php?haupt=itime.
- SwitchToErc – how to switch to ERC with a keybinding
- UnwrapLine – unwrapping long lines when quoting from an existing document
- ErcTray – Get notified of new messages in your gnome/KDE system-tray
- Paste2 – Send and get paste with paste2.org, and integrate with ERC.
- ErcOSD – Be notified on gnome / Linux systems when someone messages your nick.
- ErcGrowl – Get notified via Growl (Mac OS X) whenever your name is mentioned.
- ErcViewLog – View ERC logs with the same look as a real ERC buffer
- erc-crypt.el – Per buffer PSK encryption for ERC
Currently not supported. See http://desproxy.sourceforge.net/ or http://transconnect.sourceforge.net/ 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.
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.
- gmane.emacs.erc.announce – Announcements
- gmane.emacs.erc.general – General discussion
- gmane.emacs.erc.cvs – Log messages for changes to the ERC source code
Bug: using customize to set erc-spelling-dictionaries saves the (buffername . dictionary) elements as pairs instead of lists.