swirc logo Swirc
“The universal IRC client”


Updated: 2019-03-19

Program options


-c <server[:port]> Auto-connect to given server. If the port is omitted port 6667 will be chosen. And if the port is 6697 the program attempts to initiate a TLS/SSL connection.
-n <nickname> Online nickname
-u <username> User identity
-r <rl name> Specifies the real name
-i ICB mode (not implemented)
-p Server password (for private servers). However: InspIRCd has a module called password forward, which means that if a server password is specified by this flag, it will be used to identify to NickServ. If so: connect with a TLS/SSL connection, i.e. an encrypted connection, to prevent your password from being sniffed. Swirc also supports IRCv3 SASL authentication which is probably a better alternative.
-h <hostname> Use this hostname on connect (currently a NOOP)
-x <config> Explicit config file


-v, -versionView the current client version
-?, -helpPrint the usage

Key combos

CTRL+aMove to beginning of line
CTRL+eMove to end of line
CTRL+bMove cursor backward
CTRL+fMove cursor forward
CTRL+gClear readline input
CTRL+nNext window
CTRL+pPrevious window
F11Close window
F12Close all private conversations

Inserting text-decoration


Configuration options in swirc.conf

NOTE Certain settings take effect first after program restart while others don't!

account_notify (bool)
Allows a client to be notified when another client’s accountname changes
alt_nick (string)
Alternative nickname. This nickname is used when processing a connection to a server and the default nickname is busy.
auto_op_yourself (bool)
Automatically op yourself on channel join when you're identified as an IRC operator
away_notify (bool)
Allows a client to specify that it would like to be notified when users are marked/unmarked as away
chanserv_host (string)
ChanServ hostname
cipher_suite (string)
Cipher suite. Which can have one of the following values:
  • secure
  • compat
  • legacy
  • insecure (which should've been named all because it will never be used because of its name)
cmd_hist_size (int)
Command history size. No more than this number of commands will be stored in the memory.
connection_timeout (int)
Connection timeout in seconds
disable_beeps (bool)
Swirc alerts the user by sending a beep in certain cases. However, with the help of this setting, beeps can be disabled.
hostname_checking (bool)
Enable or disable TLS/SSL hostname verification
invite_notify (bool)
Allows a client to specify that it would like to be notified when users are invited to channels
ircv3_server_time (bool)
Enable or disable IRCv3 server time extension
joins_parts_quits (bool)
Show JOIN/PART/QUIT events?
kick_close_window (bool)
If the active user gets kicked out from a channel, should the channel window be terminated?
max_chat_windows (int)
Max chat windows that can be open simultaneously
nickname (string)
Online nickname
nickname_aliases (string)
A space separated list of nickname aliases which are used, in addition to the default nickname, to highlight a message if it matches any of the aliases given by this setting.
nickserv_host (string)
NickServ hostname
part_message (string)
Message when leaving a channel
quit_message (string)
Message when disconnecting from a server
real_name (string)
Specifies the real name.
But can be set to anything.
reconnect_backoff_delay (int)
The number of seconds that should be added to each reconnect attempt (0-99)
reconnect_delay (int)
Seconds to consume before the first reconnect attempt (0-999)
reconnect_delay_max (int)
Maximum reconnect delay in seconds (0-999). Regardless of the other related reconnect settings.
reconnect_retries (int)
If the IRC connection is lost, how many attempts should be performed to get the connection working again before giving up?
sasl (bool)
Request SASL authentication on connection to a server?
sasl_mechanism (string)
SASL mechanism. Available mechanisms are:
sasl_password (string)
SASL password. For mechanism PLAIN.
sasl_username (string)
SASL username
show_ping_pong (bool)
Show ping pong events?
The default is NO.
skip_motd (bool)
Skip message of the day (MOTD) on connection to a server?
ssl_verify_peer (bool)
Verify peer? Setting it to NO decreases TLS/SSL security significantly, but is a must on servers with trusted self signed certificates.
startup_greeting (bool)
Enable or disable Swirc startup greeting
textbuffer_size_absolute (int)
Max number of elements in a text buffer before head gets removed from scroll back history. Each open window is assigned a buffer with this size, so set a sane value!
theme (string)
Swirc theme
username (string)
User identity. Preferably to be set to the same as the nickname.


To clone the repository use Git.

$ git clone https://github.com/uhlin/swirc.git



Swirc currently depends on:

Which means that on for example a Debian GNU/Linux system you need to install 3 packages before building:

# apt install libcurl4-openssl-dev libncursesw5-dev libssl-dev

And on Mac OS X, provided that Homebrew is installed, issue:

$ brew install libressl

Building for the UNIX environment

On the BSDs and GNU/Linux the configure script will per default generate make definitions that expects that the C compiler GCC is installed on your system. A make utility must also be present. Regarding Mac OS X I suggest that you install Xcode. Due to certain circumstances I no longer can confirm that building for OS X works.

$ cd /path/to/swirc
$ ./configure
$ make

Installing it (under /usr/local):

$ sudo make install

Building for Windows

To build Swirc for Windows you must have Visual Studio.

So, fire up the command prompt for Visual Studio where the needed tools (the compiler, etc.) are loaded into the environment. The regular command prompt won't work. Then:

> cd c:\path\to\swirc
> nmake -f Makefile.vc


To make a distribution of Swirc use:

> nmake -f Makefile.vc dist



$ make clean
$ nmake -f Makefile.vc clean

Copyright © 2012-2019 Markus Uhlin. ALL RIGHTS RESERVED.