SILC Plugin

SILC Plugin for Irssi


SILC is short for Secure Internet Live Conferencing, a protocol which allows you to chat using strongly encrypted connections and secure authentication mechanisms. In other words, SILC is a secure IRC variant. If you want to know more about SILC, have a look at the SILCNet homepage.

Basically, SILC is just a protocol. However they also maintain a client to connect to a SILCNet which is based on Irssi. Thanks to Irssi's modularity it is rather easy to extend the client with an additional protocol handler. Even better, the protocol can be compiled as a module and loaded during runtime in a "normal" Irssi client.

So, what is this plugin about then? Well, it's just a bunch of Makefiles taking the SILC client's source and compiling the protocol handler as a module. Of course, you could just use the SILC client for SILCNet chatting and Irssi for IRCNet chatting, but personally I dislike running more than one chat client irregardless of the protocol they use.

New: Compile SILC Plugin from SILC Client sources

Starting with version 1.1 beta3, it is possible to compile the SILC Client directly as a plugin for Irssi 0.8.11 an later. Please refer to for more details!

The old process for SILC Plugin 1.0.x is now obsolete!


I don't provide any official binary, so you have to compile the SILC plugin yourself.

The SILC Plugin itself just consists of a bunch of patches and a manual, how to compile the SILC Plugin. To compile the plugin, you first have to fetch the current Irssi and SILC Client source package:

I assume you already downloaded the silc-plugin source tarball:


I will use the following terms from here on:

SILC Plugin directory ($PLUGIN_DIR)
This is wherever you have unpacked the silc-plugin-
SILC Client directory ($CLIENT_DIR)
This is wherever you have unpacked the silc-client-1.0.5.tar.gz
Irssi directory ($IRSSI_DIR)
This is wherever you have unpack the irssi-0.8.11.tar.gz

First you need to untar all three tarballs:

        tar xzf irssi-0.8.11.tar.gz
        export IRSSI_DIR=`pwd`/irssi-0.8.11
        tar xzf silc-client-1.0.5.tar.gz
        export CLIENT_DIR=`pwd`/silc-client-1.0.5
        tar xzf silc-plugin-
        export PLUGIN_DIR=`pwd`/silc-plugin-

Next, you need to configure and compile the SILC Client 1.0.5. You should give at least the following options to configure (assuming Irssi is installed with prefix /usr):

        cd $CLIENT_DIR
        ./configure --prefix=/usr \
                    --with-helpdir=/usr/share/irssi/help/silc \
                    --without-libtoolfix \
                    --enable-static \
                    --enable-debug \
        make -C lib

Do NOT use any kind of parallel build system to compile the silc-client! I.e. do not pass option -j2 or similar to make.

On some systems libraries have to be "position independent executables", you should give option --with-pic to SILC Client's configure script on such systems. If you encounter problems with pthread, give option --with-pthreads=no to SILC Client's configure script.

During installation, only the help files from the SILC Client's source tree will be installed. You may specify other options needed to compile the SILC Client to fit your needs.

After successfully compiling the SILC Client 1.0.5, unpack the Irssi 0.8.11 source package and give the following command from within the SILC Plugin directory:

        cd $PLUGIN_DIR
        make patch IRSSI=$IRSSI_DIR SILC=$CLIENT_DIR

This will prepare the Irssi source package for compiling the SILC Plugin. Change into the Irssi source directory, configure and compile it. Assuming again Irssi is installed in /usr:

        cd $IRSSI_DIR
        ./configure --prefix=/usr --sysconfdir=/etc
        make -C src/perl
        make -C src/fe-common/silc
        make -C src/silc/core

Just executing "make" in the top-level directory will not work!

To install the SILC Plugin, you have to give the following commands in Irssi's source directory:

        cd $IRSSI_DIR
        make -C src/perl/silc install
        make -C src/fe-common/silc install
        make -C src/silc/core install
        for felib in /usr/lib/irssi/modules/libfe_common_silc.* ; do
          mv -f ${felib} ${felib/_common_/_}

and the following command in the SILC Client's source directory:

        cd $CLIENT_DIR
        make -C apps/irssi/docs/help install

You will now have installed:

If you don't have perl, just ommit the commands related to perl. The location where the perl modules will be installed depends on your local setup.

You should also add the files in the scripts/ directory (of the SILC Plugin) to

and the default.theme (of the SILC Plugin) to your ~/.irssi/ directory. You should also copy the files in the docs/ directory to

That's it, you have now a (hopefully) working installation of the SILC Plugin!


After you have compiled and installed the plugin, you can load the plugin in Irssi using

        /LOAD silc

You cannot pass options to the SILC Plugin, but you configure it at run-time with the /SILC command, see

        /HELP silc/silc

To get help about SILC commands, you can use (replace "command" with the actuall command you want help with)

        /HELP silc/command

If you have compiled Irssi with perl support, you should also load the silc and silc-mime scripts:

        /SCRIPT LOAD silc
        /SCRIPT LOAD silc-mime

For a more detailed help on SILC commands or some FAQs, please refer to the SILCNet homepage. Once you have successfully load the SILC plugin, you can connect to the SILCNet like this

        /CONNECT -silcnet SILCNet

You might want to join the channel "silc" then...

        /JOIN -silcnet silc


If you want to try the latest version of the plugin, maybe to test an open bug or to verify some changes, you can download the current version of the plugin via anonymous CVS.

To access the CVS repository, use the following commands:

       $ cvs login
       $ cvs co silc-plugin

After issuing the first command you will be prompted for a password. Leave the password empty, i.e. just hit enter.

You might experience problems connecting to the cvs server. This may have two reasons. Either the box is down, or your hostname is not reversable, i.e. the IP your hostname resolves to does not map to your hostname. In the first case you have to wait a little, in the later you should look for another ISP.

Reporting Bugs

If you find a bug in the SILC Plugin, please either report it on the silc-devel mailing list or directly to me.


If you need to get in contact with me, send me a mail to or ask me on the IRCnet or the SILCnet, I'm using in both the nick c0ffee.