Circe, a Client for IRC in Emacs
Emacs Lisp Shell
Latest commit 6b110d4 Oct 5, 2017 @jorgenschaefer jorgenschaefer Remove circe-highlight-all-nicks.
Use circe-color-nicks instead. If you want the exact same behavior,
use a pool of one color.

See #317 for the discussion.
Permalink
Failed to load latest commit information.
images Add a screenshot to the README. Aug 9, 2015
scripts Remove scripts/release Nov 29, 2015
tests Port :to-throw tests to the latest buttercup version Sep 1, 2017
.bumpversion.cfg Bump version: 2.5 → 2.6 Sep 29, 2017
.gitignore Clean up package. Apr 5, 2015
.travis.yml Remove support for Emacs 24.1 and 24.2, add support for 25.x Sep 1, 2017
AUTHORS.md Add AUTHORS.md Aug 10, 2015
CONTRIBUTING.md Add CONTRIBUTING.md Jul 27, 2015
Cask Depend on cl-lib Jul 4, 2015
LICENSE Major cleanup to make releases possible. Oct 20, 2012
NEWS.md Update NEWS.md to 2.6 Sep 29, 2017
README.md at installation, name GnuTLS as dependency for TLS connections Sep 1, 2017
RELEASE.md Add RELEASE.md Nov 29, 2015
circe-chanop.el Move all files to GPLv3+. Jul 21, 2015
circe-color-nicks.el Move all files to GPLv3+. Jul 21, 2015
circe-compat.el Fix a number of compiler warnings Jul 4, 2015
circe-lagmon.el Move all files to GPLv3+. Jul 21, 2015
circe-new-day-notifier.el Implement a new day notifier extension. Oct 15, 2015
circe-pkg.el Bump version: 2.5 → 2.6 Sep 29, 2017
circe.el Bump version: 2.5 → 2.6 Sep 29, 2017
irc.el Treat backslash and case literally in IRC messages May 9, 2017
lcs.el Use bumpversion for version tracking. Apr 5, 2015
lui-autopaste.el Remove bpaste support May 20, 2016
lui-format.el lui-format: Do not error on missing index arguments. Jul 21, 2015
lui-irc-colors.el Fix byte-compiler warning for generated faces May 27, 2016
lui-logging.el Move all files to GPLv3+. Jul 21, 2015
lui-track-bar.el Improve track bar appearance Apr 21, 2016
lui.el Alter buffer-undo-list manipulation to workaround emacs 25 GC change Jul 28, 2017
make-tls-process.el Remove -no_ssl2 option from openssl Mar 4, 2017
shorten.el Remove some old repository paths. Apr 6, 2015
tracking.el Use force-mode-line-update in tracking Nov 29, 2015

README.md

Circe, a Client for IRC in Emacs

Build Status MELPA Stable

Overview

Logo

Circe is a Client for IRC in Emacs. It tries to have sane defaults, and integrates well with the rest of the editor, using standard Emacs key bindings and indicating activity in channels in the status bar so it stays out of your way unless you want to use it.

Complexity-wise, it is somewhere between rcirc (very minimal) and ERC (very complex).

Screenshot

Screenshot

Installation

Dependencies

In order to securely connect to an IRC server using TLS, Circe requires the GnuTLS binary. On Debian-based GNU+Linux-distributions, you can install it likes this:

apt install gnutls-bin

package.el

Make sure you have MELPA Stable added to your package sources. To your .emacs, add this:

(require 'package)
(add-to-list 'package-archives
             '("melpa-stable" . "http://stable.melpa.org/packages/") t)
(package-initialize)

Then, use package-install to install Circe:

M-x package-install RET circe RET

After this, M-x circe should work.

Development Version

In a shell:

mkdir -d ~/.emacs.d/lisp/
cd ~/.emacs.d/lisp
git clone git://github.com/jorgenschaefer/circe.git

Then add the following to your .emacs file:

(add-to-list 'load-path "~/.emacs.d/lisp/circe")
(require 'circe)

The next time you start your Emacs, you should be able to use M-x circe to connect to IRC.

Connecting to IRC

To connect to IRC, simply use M-x circe RET irc.freenode.net RET RET. This will connect you to Freenode. You can join us on #emacs-circe by using /join #emacs-circe in the server buffer.

A more elaborate setup would require you to edit your init file and add something like the following:

(setq circe-network-options
      '(("Freenode"
         :tls t
         :nick "my-nick"
         :sasl-username "my-nick"
         :sasl-password "my-password"
         :channels ("#emacs-circe")
         )))

With this in your configuration, you can use M-x circe RET Freenode RET to connect to Freenode using these settings.

Please note: Circe uses the openssl or gnutls-cli command line programs to connect via TLS. These tools do not by default verify the server certificate. If you want to verify the server certificate, customize the tls-connection-command variable.

Features

  • Sensible defaults
  • Tab completion
  • Nick highlighting
  • Logging
  • Spell checker
  • Ignore feature that also hides users who talk to users on your ignore list
  • Ignored messages can be toggled so they show up and then hidden again
  • TLS/SSL support
  • SASL authentication support
  • Nickserv authentication, automatic ghosting, and nick re-gain
  • Auto-join
  • Ability to reduce join/part/quit spam from lurkers
  • Automatic splitting of long lines at word boundaries
  • Netsplit handling
  • Activity tracking in the mode line
  • Fully customizeable message display
  • Topic changes can be shown as a diff
  • Automatic linking of Emacs Lisp symbols, RFCs, PEPs, SRFIs, Github issues, etc.
  • Automatic splitting of outgoing messages at word boundaries to adhere to IRC protocol limitations
  • Flood protection
  • Nickname coloring (via the circe-color-nicks module)
  • Lag monitoring (via the circe-lagmon module)
  • Automatic pasting to a paste site for long messages (via the lui-autopaste module)
  • Bar marking the last read position (via the lui-track-bar module)

Documentation

Please see the Wiki for further information:

https://github.com/jorgenschaefer/circe/wiki