BitchX FAQ
Entire BitchX FAQ
[FAQ Section 1 :: General Information]

What is BitchX?
BitchX is a VERY heavily modified ircII client.

It includes many things such as built in CDCC (XDCC) offering, built in flood protection, etc.

It is easier to script things in BitchX because unlike plain, vanilla ircII, half the script does not have to be devoted to changing the appearance of ircII.

All in all, its the BEST out there!

Where can I get BitchX?
This is very important so pay attention. Due to recent problem with DNS poisoning and hacked website content pointing to false release site FTP servers for BitchX, we have taken up new measures to insure that the source you are getting is in fact legitimate. All files will be signed by the FTP site admin Rob Andrews. His public key block is available on and as It is also available to be downloaded from here

For more information about GPG go to

All official release source and binaries should have a matching .md5 and a .sig file in the directory. MD5 is not insurance that the file is good. Please use the GPG key to insure that you have legitimate source at all times when possible because MD5 checksums will be phased out on June 1, 2003.

The main ftp site is or

Should you have troubles connecting to these sites you may
go to

Primary release site is located in Denver, CO. @ This site does not permit passive ftp connections. The Atlanta mirror @ does allow passive connections.

Daily snapshots of the CVS repository are posted to the FTP site and mirrors under /pub/BitchX/cvs-snapshot/ There is a 30 day history of snapshots from the repository kept in the history/ directory.

New binaries of the CVS based code are posted as major changes and fixes are merged into the repository under /pub/BitchX/cvs-binaries/

You can also visit the website at

BitchX is available in source or binary packages. TCL enabled binaries as well as standard binaries are posted for both release and CVS based code. Please check the ftp site login information for details on where to find the correct source or binary distro for your operating system and platform.

BitchX is also available via CVS:
CVS can be obtained from

Primary CVS Repository
bash$ export
bash$ cvs login (password is blank, just hit enter)
bash$ cvs co BitchX

Should you have troubles logging into the primary CVS server we have created a secondary cvs server that is updated once daily at 6am EST from the primary repository.

Secondary CVS Repository
bash$ export
bash$ cvs login (password is blank, just hit enter)
bash$ cvs co BitchX

If you have already done a checkout, just type
bash$ cd BitchX/ ; cvs update

What OS does BitchX work on?
BitchX now works with almost all UNIX OS's and Windows 32-bit.

Here is the list of OSes that BitchX is reported to work on:

Windows 95/98/NT/2K/ME/XP
Linux (All)
OSF/1 (DEC Alpha)
DEC Unix
Mac OS X (Jaguar)

If you need binaries for any of these OS's, just go to the FTP site, or ask in #BitchX for them. If your operating system is not listed, chances are that the source will compile with little to no modifications. You should always attempt to compile the binary on your own system for compatibility purposes.

If compiling on a unlisted operating system it's normally best to run configure with no flags (unless you're compiling it to install in your home directory - then you should probably set the prefix). Unsupported platforms will not need TCL to be compiled since there is most likely not a tcl.o for that platform.

If all else fails first attempt to ask on the BitchX questions forum. The forums give you access to a number of people who use the client and are working on problems or have solutions for questions you might have already posted to the users.

Installing BitchX with source
This portion of the FAQ assumes you are running a GNU compliant operating system. We'll post instruction below for those of you using other systems.

tar zxvf ircii-pana-xx-xx.tar.gz
cd BitchX/
./configure (you can do ./configure --help to see more options)
gmake (or make if so named as long as its the GNU version of make)

if you are root:
gmake install

if you are a normal user:
gmake install_local

For those of you not using a GNU compliant version of tar please note that you must use gunzip to decompress the file before running tar to extract the source for BitchX.

Also, users on FreeBSD systems please note that you should not use the system version of 'make' even if it does seem to compile the source correctly. Please use 'gmake' instead.

Solaris users: BitchX has been know to have issues on Solaris up to the recent release version 9. If your system does not have the GNU make, gcc, and other GNU utilities you could note the created binary to segfault or end up using quite a bit of memory. You can download all the gnu tools you would need to compile BitchX on solaris from,

One last note for everyone. After you have completed compiling the binary and if it wasn't done during the compile/install you might wish to strip the binary. If you're unsure what this means don't worry about it.

Installing BitchX binaries
All you really need is the BitchX binary.

Simply grab the appropriate binary for your OS, unzip and untar it. (tar -zxvf BitchX-1.0c19-YourOS-x.x-arch.tar.gz), then move the unpacked binaries to somewhere in your path... /usr/local/bin might be a good place, and chmod +x each binary.

$ mv BitchX scr-bx wserv /usr/local/bin/
$ chmod +x /usr/local/bin/BitchX /usr/local/bin/scr-bx /usr/local/bin/wserv

Then, simply type BitchX to start the client!

Other files BitchX uses
BitchX.reasons Random kick messages, for /kick without a reason.
BitchX.quit Random quit messages, for doing /quit without an argument. The help file for BitchX (/bhelp).

I heard rumors that BitchX has backdoors, is this true?
This is completely untrue. Any 'backdoors' that have been found in earlier versions of BitchX are unintentional and a part of the normal program development process. They are, of course, fixed as soon as they are discovered.

The rumor about an intentional backdoor was started around 1996 or 97 by an Undernet IRC operator on the BugTraq mailing list and was completely misguided.

More recent rumors that BitchX was backdoored are also false in light of the fact that on two occasions there were DoS attacks which resulted in the "poisoning" of legitimate DNS servers for which caused the redirection of persons to false sites claiming to be

The compiled binary itself was not affected by the trojan however the configure script included in the source tarball was tainted.

The only legitimate IP addresses for BitchX FTP sites are as follows.,,,

If you find a bug please use this faq site to submit the bug with complete information. You may also upload a compressed file with the core file and all other vital information such as OS, commandline options used, and as much detail as possible included to in the top level incoming directory.

What is the FAQ?
FAQ stands for Frequently Asked Questions for those of you who don't know what it means. We tell everyone to read the FAQ before coming to IRC to ask questions for a reason.

In this document you will find nearly every possible way to answer a question related to the BitchX IRC Client. By using the search functions on this site you can quickly find key words to questions and issues you might have. However this doesn't always produce the results you might want so we still say, if you don't read the complete document and come to IRC asking questions that are covered here, don't be suprised if you are ignored or told to go read the FAQ.

We answer far too many questions on IRC; wasting our time to chat and enjoy ourselves while people haven't at least been kind enough to read the texts we have placed online to answer nearly every possible question they may have related to the setup and management of the client.

This is the most complete faq for BitchX ever produced and it constantly evolves as new questions and answers are filtered from the Forums website here.

Also, before asking questions on IRC you should take the time to register at on the forums website and ask your questions there first. You will find if you search the questions there that it's very possible someone else has already answered on the forums or will give you a more complete answer than you would find on IRC or even in the FAQ in some cases.

RTFM: read the fsck`n manual. we provided it for a reason. take the time to respect our personal time by reading before you ask questions.

How do I validate my source code or binary is from BitchX.Org?
While MD5 checksums are good for some purposes it has come to my attention lately that with machines being compromised and persons being determined to alway attempt to trojan source code for malicious purposes, that we have to take the extra time to insure that sources being released are able to be validated by a much more secure source.

As of Monday April, 14th 2003. All current binaries, tcl.o, and the current version of the released source code for BitchX have been signed by myself as the FTP Site Admin using GNU Privacy Guard.

My public keyblock can be found at and through

Rob Andrews (BitchX FTP Site Administrator)
Key fingerprint = A722 0C2F 5A65 9357 DB71 09B9 4802 C4DE 42D1 F77C
KeyID = 42D1F77C

CVS source code is not signed. CVS binaries however will be signed by me at all times. Please read the login messages on the FTP site for announcements of changes or other news that might not be posted here.

If you do not know how to use GNU Privacy Guard please see their website at for help topics and more.

Rob Andrews
sin@EFnet #BitchX

Getting help after the FAQ.
Q&A Forums at

Internal help systems are /bhelp and /ehelp

command line help: BitchX -h

Last resort: EFnet IRC #BitchX

We say last resort because setup and install questions are completely covered in this FAQ. There is no reason at all for anyone to come to IRC asking questions about installing or setting up and running BitchX.

Unless you run into an install error or something of the like which is not covered in this FAQ or on the Forums website, the IRC channel should be thought of as the absolute last place to ask your question. We are not a technical support channel and we don't get paid to answer your questions so we won't be in any hurry to answer you if you haven't taken the time to use the systems for help we have provided.

[FAQ Section 2 :: Useful Features]

BitchX offers built in support for public file offering called CDCC. As this is not what is normally used by mIRC & ircII scripts, which for the most part use XDCC, BitchX will recognize XDCC requests as CDCC requests. /CDCC <command> will give you a list of options, and /CDCC without an argument will give you a list of arguments/commands you can use.

BitchX in a terminal window under X.
Lately, there have been a lot of requests for help with getting color and function keys working in XWindows in the channel. Before you ask for help in the channel, please make sure that you have obtained the xterm variant called rxvt, and the font vga11x19. When you start rxvt, run it with the options "-bg black -fg white -fn vga11x19". If you do not have vga11x19, get it! Meanwhile, use the vga font as a substitute. If your function keys don't work, you may need to add this to ~/.bitchxrc:

/bind meta3-1 chelp
/bind meta3-2 CHANNEL_CHOPS
/bind meta3-3 CHANNEL_NONOPS
/bind meta3-4 CDCC_PLIST
/bind meta3-5 DCC_PLIST
/bind meta3-6 DCC_STATS

Those are the default BitchX function key bindings and should work as such.

For more fonts and help on installing them, check out

For help with gtkBitchX, see section 5 of this FAQ.

BitchX toggles
BitchX has a built-in toggle menu to turn on and off commonly used features of the client.

To see this menu, type /toggle.

To turn something off or on, type /toggle [name]

Below are a list of toggles in bold. These are current as of 1.0c19.


How do I show the topic of the channel in a status bar at the top of my term in BitchX?
type the following commands...

/window split on
/window set * status_format3 %C %+ %-

- Contributed by |Rain|

BitchX windowing (/window)
BitchX has the ability to create windows which you can use for different purposes.

Example: /window new double on hide channel #BitchX

/window new (create a new split window)
/window new hide (create a new hidden window)
/window kill (gets rid of current window)
/window double [on|off] (turns on or off double status bar)
/window channel [#channel] (Join #channel in current window)
/window bind [#channel] (Binds #channel to current window)
/window unbind [#channel] (Unbinds #channel from current window)
/window level [level] (Only show LEVEL messages in window)
/window move [number] (Move current window to window number [number])
/window size [lines] (Sets current window to # lines)
/window swap [window] (Swap to window number [window])
/window next (Move to the next window)
/window previous (Move to the previous window)
/window balance (Balances the displayed windows)
/window fixed [on|off] (Turns window sizing options on/off)
/window hide_others (Hides all windows except the current one)
/window log [on|off] (Turns on/off logging for current window)
/window server [servername] (Connect to a new server in current window)
/window discon (Disconnect window from a server)
/window show [num] (Makes window [num] visible, also a way to swap back to the top window of a splitted window)
/window split [on|off] (Turn on/off the thrid status line on top of screen (topic))
/window show_all (Makes all hidden windows visible)
/window grow [#] (Grow a split window by # of lines)
/window shrink [#] (Shrink a split window by # of lines)
/window back (Will swap you back one window, or to the lower window in a split window screen)

Available window levels are listed below, along with what they catch:

CRAP (anything that doesn't fix in other levels, like whois, who, etc)
WALLS (IRCop /wallop messages)
SNOTES (Server Notices)
USERLOG1,2,3,4 or 5 (???)
KILL (Kill messages)
KICKUSER (Kick messages)
TOPIC (Topic messages)
PUBLIC (Public channel messages)
WALLOPS (Channel WALLOP messages)
ACTIONS (/me type actions)
BEEP (Any text with ^G BEEP character)
MODEUSER (User mode changes)
MODECHAN (Channel mode changes)
PARTS (Channel parts)
JOIN (Channel joins)
HELP (Any type of help messages)
MSGS (/msg type messages)
NOTES (????)
DCC (DCC messages)
TCL (Messages from the TCL subsystem)
INVITES (Invitations to other channels)
NOTIFY (Notify messages, ie: user is online, etc)
NOTICES (/notice type messages)
OPNOTES (IRCop Notifications)
CTCP (CTCP messages, ie: ping, version, etc)
SEND_MSG (Sent /msg's to other users)
KICK (Channel kicks)
DEBUG (Internal Debug messages, when /set debug 1)

[window shortcuts]:
^W- - Shrinks current window 1 line
^W+ - Grows current window 1 line
^Wm - Moves current window down 1 line
^Wl - Lists current windows
^Wk - Kills current window
^Wh - Hides current window
^Wb - Balances window sizes
^Wn - Swaps to next window
^Wp - Swaps to previous window
/# - Shows window number (1-4)

How do I change the length of nickname displayed by who and scan commands?
The length of nickname is controlled by a number of FSET variables:

/FSET WHO %Y$[10]0 %W$[15]1%w %c$[3]2 %w$3%R@%w$4 ($6-)
/FSET NAMES_OPCOLOR %K[%C$0%n%B$[15]1%K]

Either run the above commands and /save to change permanently ( remembering to have ^load BitchX.formats in your .bitchxrc file ) or alternatively put the above commands in a file in your .BitchX folder and load it interactively with /load

Submitted by BinGOs ( on Wed Sep 24 1:59:30 MDT 2003
Submission approved by tilt on Wed Oct 1 4:00:40 MDT 2003

BitchX and TCL
Yes! BitchX supports TCL scripts.

You need to download the OS specific tcl.o from and put it in your source directory, modify the Makefile, and recompile.

Most TCL scripts will run out-of-the-box on BitchX, although some need modifications to work.

Why isn't tcl.c public? Cause we don't want it to be! =)

If you need tcl.o for an operating system not currently supported, ask an op in #BitchX on EFnet and we'll see what we can do.

[FAQ Section 3 :: BitchX for Windows 95/98/NT/2K/ME/XP]

Where can I get BitchX for Windows 95/98/NT?
To get BitchX for Windows, you need to go to and look for the Precompiled i386 Win 95/98/NT version. Alternativley you could try The latest version of BitchX for Windows is 1.0c11 unless you are running Cygwin.

If you are running Cygwin on your Windows machine you can download the source and compile it under your Cygwin shell.

If you choose this option you would compile it the same way as on a UNIX system since Cygwin is a simulated UNIX environment.

For information about Cygwin go to

You could also join #BitchX on EFNet and type "/ctcp #BitchX cdcc list" to see if anyone is offering it.

BitchX environment variables under Windows.
The variables that you can set under Windows are pretty the same as those you set under Unix.

In DOS/the Windows command line, type "set VARIABLE=" to set these. You can also set them in NT (XP, 2000, etc) in your "My Computer" properties under Advanced>Environment Variables.

HOME - Your home directory.
IRCNICK - Your nickname. As usual, overridden by a commandline argument.
IRCUSER - Your username.
IRC_HOST, IRCHOST - Virtual hostname. See section 6 for details.
IRCNAME - Real name or GECOS field.
IRCSERVER - Server(s) separated by spaces to use, in the format[:password]
IRCPORT - Default port to look for an IRC server on. The standard (and BitchX's default) is port 6667.
IRCUMODE - Default usermode.
IRCRC - Where to look for .ircrc.

By popular demand, here is an example batch file for windows, it sets some various env variables and then starts BitchX, lines preceded with REM are comments:

REM This is your realname.
SET IRCNAME=BitchX for Windows User

REM This is a list of servers to connect to, separated by a ":". If the first
REM one can't be connected to, then the next one is used, and so on.

REM This is your username or ident.

REM This is your nickname.

REM This is your usermode.

REM REM This is the vhost you want to use, if applicable.

REM This is the name/path of the BitchX executable to run.
REM -c #BitchX (joins #BitchX on startup)
REM -l bx-rc (load bx-rc on startup)
BitchX -c #BitchX -l bx-rc

Can I still use ~/.bitchxrc in Windows?
NO! The Windows equivilant to UNIX's "~/.bitchxrc" is "bx-rc" placed in the $HOME directory. You can still use the same commands in here though.
There is an example .bitchxrc by power called "example-.bitchxrc" located in the 'doc' directory in your BitchX folder.

How can I set my own quit messages in Windows?
In the ~/bx-conf directory there is a file called "BitchX.quit" with a
huge list of quit messages, I think they were created by BlackJac.
Delete all these and put a few or just one of your own in. Or, if you don't have that, go into BitchX and type "/set default_reason " or just create the "BitchX.quit" file.
NOTE: There is also a file called "BitchX.kck" this contains random kick messages.

How do I load a script?
In BitchX type "/load /path/to/script" if the script is in your $HOME
directory then just type "/load ~/scriptname.bx" or if you want the
script to load everytime you start BitchX then add this to your .bitchxrc

This command loads the Cypress script by void and codelogic

^load ~/cyp/cyp.bx

Note: Some scripts like cypress have a required place to be unpacked. In the case of cypress the above directory location is the only place where it will load and then run properly from. Please read the docs with your script if any at all.

[FAQ Section 4 :: PMBitchX (OS/2)]

What is PMBitchX, and where do I get it?
PMBitchX is an OS/2 Graphical User Interface (GUI) port of the original
BitchX by panasync. Many of the GUI enhancements are based on the OS/2
client OpenChat. The current features are: multiwindows, resizeable
windows, font's configurable, scriptable pulldown menus, full BitchX
script compatibility, floatable nicklist window, properties notebook,
file font and popup dialogs, and multimedia enhancements (sound).

You can obtain the latest version from or

How do I change my default irc nickname and username?
These are set by environment variables, the four most important variables
are IRCNICK, IRCNAME, USER and HOME. If you are using BETA 3 and up the
installation program should have set these for you. Otherwise you will
have to put these variables in your CONFIG.SYS, or edit the PMBITCHX.CMD
file and use that to start your IRC session.

How do I load the nick list?
At the input prompt type /loaddll nicklist, and then type /nl to activate
the nicklist window. In the current version of the nicklist plugin, run
/nl only once, because the second time you run /nl it should close the
window, but it does not do it correctly so you won't be able to get the
nicklist back.

There are no menus, what do I do?
At the input prompt type /load bxmenu.bx, this will load the default
PMBitchX script adding all the functionality most users desire.

How can I load a script and/or plugins at startup?
Go to the HOME directory pointed to by the HOME environment variable, and
create a file called bx-rc, this is the equivalent to .bitchxrc in UNIX.
In that file enter the commands to load the dll's and scripts you desire.

The UNIX filenames don't work in PMBitchX, what is wrong?
Due to filename restrictions on FAT systems the BitchX filenames have
been shortened for OS/2 and Windows 9x/NT.

[FAQ Section 5 :: gtkBitchX (X Windows)]

What is gtkBitchX, and where do I get it?
gtkBitchX is a port of PMBitchX to X/Windows using the gtk (Gimp Toolkit) windowing library. It includes all the features of PMBitchX, except in a UNIX environment.

The source code for gtkBitchX is included in the distributed source for BitchX.

You can get gtkBitchX from, or on #BitchX EFNet, do this: /ctcp #bitchx cdcc list

What is needed to compile gtkBitchX from scratch?
To compile gtkBitchX from scratch you will need the following: GTK 1.2.0,
ZVT from gnome-libs 1.0.12, imlib 1.9.4 and pthreads. glibc 2.1 or
higher is recommended if on Linux.

As a small side note, on more modern systems, gnome does not store it's include files in the same place as they did before gnome-2, so there is a slight trick you may have to do, if you get a weird string of errors such as this: gtkbitchx.c:6:25: zvt/zvtterm.h: No such file or directory, what you have to do is: ln -s /usr/include/gnome-1.0/zvt BitchX/include/zvt, or whereever your distrobution puts it usaly is /usr/include/gnome-1.0, this will be fixed in c20

It looks like normal BitchX, shouldn't it have menus?
The GUI features are scripted. There is a file called menu.bx in the doc
directory in the package (~/BitchX/doc). To get the menus copy menu.bx
into your home directory and type /load ~/menu.bx in BitchX.

Characters look strange. How do I fix it?
Install a vga compatible font such as vga.pcf and then do this:
/set DEFAULT_FONT vga | /save | /window font vga

If that doesn't work, do this:
/EVAL XECHO -r $chr(27)(U

How do I paste?
When menu.bx is loaded there are paste options on the BitchX pulldown
menu and also on the popup menu. Or you use the command /pmpaste.

I am writing a script and want to use the gtk features, where do I look for information?
There are doc's in the BitchX-docs project (~/BitchX/bitchx-docs) which
will give you the info needed, to view them in gtkBitchX type /ehelp.

After installing gtkBitchX I run console BitchX and some keys don't work, what's going on?
You are probably loading menu.bx in your .bitchxrc. Since gtkBitchX (and
menu.bx) make use of key bindings that don't exist in console BitchX
problems can occur. Remove the ^load menu.bx from your .bitchxrc when
using console BitchX.

How do I detach and reattach to a IRC session without using screen?
In most cases people will tell you to use screen when possible. We would agree that screen would be more suited for most users.

While in your IRC session if you type /detach, BitchX will be put in the backround and you can disconnect from your shell and return later to resume your IRC session.

To resume your IRC session simply type 'scr-bx' and it will reattach you to your screened off IRC session.

Also note: In some cases if a machine is rebooted while you have a session backrounded, you might need to use 'scr-bx -w' to wipe all the old sessions so that you don't have a conflict later when attempting to reattach to your running sessions. Each session when put into the backround will have an identifier file placed in your home directory under .BitchX/screen/

example: 63366.ttyp1.subzero

If you have multiple BitchX IRC sessions running you would simply use 'scr-bx 63366' and it would reconnect to that particular IRC session.

How do I list channels on a network.
By default doing /list returns an error message due to most networks having a large number of channels.

If you wish to bypass this you can /list -YES

You can list by specific channels doing: /list -name *channel*

Remember, channels that are +s will not show up in this listing so you won't always see ALL channels with a string matching your specific text.

How do I turn colors off in BitchX?
This command will turn off the ability to see colors that are not standard.

(note: This does not change or disable the standard colors of the BitchX client)

/set mircs off

[FAQ Section 6 :: Commonly asked questions]

What is bxglobal, and where do I get it?
Unless you are root, you won't have to worry about bxglobal. BitchX runs fine without it. What is it? Nothing more than a global .bitchxrc.

What are ~/.bitchxrc and ~/.ircrc, and how are they different?
.bitchxrc and .ircrc are both startup files written in the scripting language. They are both loaded up by BitchX automatically. What are the differences?

~/.ircrc is loaded by all ircII-based clients, and you should only put things compatible with basic ircII scripting in it.

~/.bitchxrc is loaded only by BitchX, and you should put all BitchX-specific scripting in here.

So that you are clear: ~/ means your home directory. You cannot place this file in another location an expect it to work unless you issue the -l or -L command line argument. For more info about the command line options use the -h switch to show you a list of options you can pass to BitchX when starting it up.

Please note: for BitchX to load the .bitchxrc or .ircrc file they cannot be executable. chmod 644 .bitchxrc or .ircrc so that BitchX will load them correctly.

Note that if the only client you run is BitchX, the above is purely aesthetic and you may do whichever you wish. However, if you run any other ircII client, putting BitchX-specific scripting in ~/.ircrc may cause you problems.

What are the color codes in BitchX? How do I use them?
%K - Dark Gray
%k - black
%G - bold green
%g - dark green
%Y - yellow
%y - brown
%C - bold cyan
%c - cyan
%B - bold blue
%b - blue
%P and %M - bold purple/magenta
%p and %m - and purple/magenta
%R - bold red
%r - red

%n - null color (will nullify colors before it)

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 - background colors

%F flashing foreground

%U underline text.

To set color in formatting and status (/set FORMAT_* and /set STATUS_*), you don't need to do anything special. To use colors in echo, say, etc., try using /eval echo $cparse("%Bblue%n") and so forth. Note for scripters: the BitchX version of $cparse() REQUIRES the quotes, whereas the EPIC version does not.

For a complete list of formats in BitchX type /fset

This will output a list of all current formats that you can modify from within the client. If you wish for these settings to be saved you should create a file that you load on startup that sets your formats.

How do I script in BitchX?
To script, you should have at least some experience using the client so you know how things SHOULD react, etc, etc. There is no designated "guide" to scripting, just look at the scripts that come with the BitchX source, or ircII scripts that you already have/can get.

On the second question. First of all, try looking in (/bhelp). If it's not in there, try the base ircII help file. Also, look in scripts and see if you can try figure out the syntax/arguments a particular command should have. Check and see whether it is a script defined function. Try reading the script to see whether it is defined in there. If you're too lazy to do that you might try /load'ing the script and comparing the /load'ed script's output with that of the default output.
(/eval echo $func(args) and /command). If it's definitely an "undocumented feature", e.g. you can't find out what its' use is, ask in the channel, someone may be able to help.

What are the environment variables I can set before starting BitchX?
This depends on which unix shell you run. For sh based shells, you would simply use:
bash:~$ export VARIABLE="value"

and for csh based shells:
> setenv VARIABLE="value"

Variable Value
IRCSERVERS "server:port server2:port2 server3:port3"
IRCNICK "nickname"
IRCNAME "hi, I'm no longer too lame to read BitchX.doc!"
IRC_HOST "virtual hostname here" (see sec. 3.7 for details)

Can I spoof/change my hostname with BitchX?
Spoofing: NO. BitchX is not, and never has been, a spoofer.

Virtual hosts: Yes. There are multiple ways that BitchX can bind to legitimate IP addresses that are already configured for your system. You can choose what hostname you want by starting BitchX with the -H option, or setting the environment variable IRCHOST. From within BitchX, you can do /irchost or /hostname without any arguments and BitchX will automatically attempt to list the hostnames your machine thinks that it's configured for, although sometimes this will fail. Adding an argument will tell it which hostname/IP to bind to.

If you do not know if your shell has virtual hosts on it, try listing them. If that doesn't work, but you still think it has hostnames on it, ask your administrator. DO NOT ASK IN #BitchX. If you are your own administrator and still do not know if you can use virtual hosts, I suggest that you read some books, or hire someone that knows something. :)

How do I make BitchX join a channel automatically?

/ajoin #channel

BitchX will then join that channel after connecting to a server.

TIP: To remove /ajoin channels, simply use /unajoin #channel, and then /save once again.

TIP#2: To add channels to your ajoin list with keys, simply use /ajoin #channel channelkey

BUG: There is currently a bug in Section 8 which you should be aware of in case ajoin isn't "working" when you are /kill'd by an operator on a network.

Explaining the status bar
On the right-hand side, you see: [U:a:S:b:h], this gives you a quick look at some of the options that are turned ON and off in BitchX. An uppercase letter means the option is on, while a lowercase letter means the option is off.
U=userlist, a=autoop S=shitlist b=bitch h=hacking.

When you join a channel, you see something like:
[O/35 N/128 I/4 V/0 F/0], this gives you a quick overview of the status of the people in the channel.
O = number of ops in the channel
N = number of non-ops in the channel
I = number of IRCOps in the channel
V = number of voiced users in the channel
F = number of people on your friend's list in the channel

Adding users using /adduser
/adduser nick #channel friend,i_ops
/cset * aop on
/set aop on

i_ops will perform the desired action immediately upon the user joining a channel. I_OPS doesn't actaually mean give the user OPS on the channel.

Examples of this would be:
OPS,I_OPS would instantly give OPS to a user
VOICE,I_OPS would instantly give VOICE to a user (NOT OPS)

more than one #channel may be specified by separating each channel by a comma:
/adduser nick #channel1,#channel2,#etc friend,i_ops

To add a user for all channels, use a * for the channel.

Available user flags (/bhelp userlevels):

BAN - Bans offender who bans a protected user
BOT - Creates a bot entry in userlist(/addbot replacement)
DCC - Allows a users dcc to auto-get regardless of whether /set dcc_autoget is Off or On
DEOP - Deops offender who deops a protected user
FLOOD - AllowS Flood checking to be turned off on a user
INVITE - Allows a user to invite themself to a channel your in via CTCP
I_OPS - Allows a user to be instantly opped upon joining a channel they are protected in (NOT RECOMMENDED)
KICK - Kicks offender who bans/kicks protected user
OPS - Allows a user to be opped via CTCP/deleyed ops
PBAN - When a user is banned from a channel they are protected on, they are automatically un-banned
PINVITE - When a user is kicked from a channel they are protected on, they are automatically re-invited back
REOP - When a user is deopped from a channel they are protected on, they are automatically re-opped
UNBAN - Allows a user to remotely unban his/herself via CTCP
VOICE - Auto-voice on join

Shitlist levels:
1 - Deop user at all times
2 - Kick user when they join the channel
3 - Ban/Kick user when they join the channel
4 - Ban user at all times
5 - Perm ignore ALL from user

To remove users on your /userlist type /unuser nick|nick!ident@host #channel

How can I change the version reply?
/fset format_version Hi, this is my new version reply.

You can easily change nearly all the responses that BitchX gives. Type /fset for a complete list of format's that you can change. You can use either % color codes (see section 6, this is preferred), ANSI color codes, or ^C color codes in most of the formats.

How can I turn on time stamping?
/toggle time_stamp
/set timestamp on

Can I play audio CD's in BitchX?
Yes, you can. Before you compile BitchX, modify the Makefile and turn on the CDROM features.

Use the following commands in BitchX to control the cdplayer:
/cdplay /cdpause /cdstop /cdvol /cdlist /cdeject

What do setupterm/tgetent/tputs errors during compile mean?
All this means is that you need to install the ncurses package from

If you are using an os that supports packaging systems (.rpm, .deb) then be sure to install not only ncurses, but also ncurses-devel.

Re-run ./configure and you should be set.

Does BitchX support IPV6?
Yes. For certain it is supported under Linux and FreeBSD. In FreeBSD you can use the ports version of BitchX and specify that you wish to use IPV6 by doing 'cd /usr/ports/irc/bitchx/ && make WITH_IPV6=yes && make install clean' and it will build and install BitchX with IPV6 support.

FreeBSD users be aware: When you compile the port version with IPV6 enabled the IPV4 connections do not work. It would be advised to not build from the port and use the CVS version then apply the patches from the c19 port which apply to IPV6. If you don't know which files or how to do this stick to the port and enjoy.

Under Linux, after you unpack the tarball you would 'cd BitchX/ && ./configure --enable-ipv6 && make && make install'.

For users of FreeBSD that wish to use the current CVS version of BitchX (1.0c20) the patches for 1.0c19 in the port directory apply cleanly and can allow you to build BitchX with IPV6 support with the same steps as with Linux by replacing 'make' with 'gmake'.

Other operating systems that support IPV6 support for BitchX have not been reported at this time. If you have patches for other operating systems to help BitchX support IPV6 please feel free to post a notice at under the BitchX forum.

To connect to IPv6 servers by IP, follow the address with a ,

example: /connect 2001:510:0:13::,

How do I set my own list of IRC servers?
In your home directory create a file called .ircservers

In that file you would create the list of servers as follows:


Servers can be optionally followed by any of port, password and nick, using the format:


How do i protect ops like me from being kicked at mirc colors?
/set kick_ops off will protect ops from not being kicked when they do annoying things that my BitchX kick.
/set annoy_kick on will kick on CAPS and mirc colors on channel except those protected.

Submitted by Petre Daniel dnai@Undernet#BitchX ( on Sat Dec 21 10:22:57 EST 2002
Submission approved by tilt on Sat Dec 21 13:13:19 EST 2002

How does BitchX's /timer work?
/timer [-del #] [-ref #] [-rep #] <delay> <command>
- To delete an active timer, type /timer -del <refnum>
- To make a timer loop indefinately, type /timer -rep -1 <delay> <command>

Note <delay> is in seconds.

To make a timer to "/msg nick hi" every 10 seconds, you would:
/timer -rep -1 10 /msg nick hi

to delete that timer, use /timer by itself to list active timers,
get the RefNum of the timer you want to delete, and use /timer -del #

How do I autoop someone?
/set aop on
/cset aop on
/set userlist on
/cset userlist on
/adduser [optionally add '-ppp' for dynamic IPs] OPS,I_OPS (cannot have a password set)

Useful things to read: /bhelp userlevels, /bhelp adduser, and /bhelp ctcp

Read carefully. :)

DCC Settings (Autoget, download paths, etc)
To autoget dcc sends, type /toggle dcc_autoget
To set your DCC download path, type /set dcc_dldir /path/to/dir

If you want to automatically rename files downloaded with the same
name as a file that is already in your DCC_DLDIR path, type /set dcc_autorename on

To resume DCC downloads, type /set dcc_autoresume ON

To limit the size of files, in bytes, that you will automatically get,
you can type /set dcc_max_autoget_size 2000000 - This will set your max
autoget filesize to 2MB.

To limit the number of simultaneous DCC GETs you can have at one time,
you can /set dcc_get_limit # - Where # is the max you want to have. Set
this to 0 to have unlimited (the default)

You can force the port DCC will use, in newer versions of BitchX, by
using /set dcc_force_port port_num - Where port_num is the port you
want to use for DCC SENDs and DCC GETs.

If you are behind a firewall/NAT, you can set your DCC IP address by
using /set dcc_use_gateway_addr YES

For a complete list of all DCC /set variables, type /set dcc and it
will give you a list of all variables beginning with dcc* that you
are able to set.

As always, don't forget to /save after you make changes.

How can I make BitchX create a new window for each channel I join?

BitchX will allow you to easily create new hidden windows for each channel you join.

The ability to do so is already built into the client. Follow the steps below.
1. Add the following two lines to your .bitchxrc:

set join_new_window on

set join_new_window_type new hide swap last double on

The first line turns the feature on. The second line configures the features BitchX

will use when creating each new window.

2. Add the following line to your .bitchxrc (optional):

set window_destroy_part on

This will kill the current window when you leave the channel in it.

3. Add the following line to your .bitchxrc (optional):

bind ^x parse_command window next

This will allow you to press ^x (ctrl+x) to switch between each channel window.
The next time you start BitchX, each channel will go into its own window.

Submitted by BlackJac on Mon Apr 7 17:18:33 EDT 2003

How do I switch channels when I only have one window?
^X (control-X)

Submitted by By-Tor (you@better.accept.this.powuhbitch) on Fri Apr 11 11:15:14 EDT 2003
Submission approved by power on Fri Apr 11 16:59:17 EDT 2003

How do I do actions in private message and actions in queries? What's a query!?
To send an action in private message, type the following:
/describe nick text
/describe dovee laughs

A query is something that you start to send messages to a person without typing msg.
To start a query type:
/query nick
/query dovee

To end a query type:

To send an action in a query, type the following:
/qme text
/qme laughs

oops messaging can be helpful for mis-messaging someone
when you talk in message to more then one person it can get confusing. If you send a message to the wrong person the first time, you can easily send the same message to the right person.

To use this command, type the following:
/oops nick

/msg dove Hey how you doing?!

WOOPS! sent that to the wrong person

/oops dovee

The user dovee will get the message, "Hey how you doing?!"

How do I remove bold from my nick completion colon?
Alot of people don't like the bold colon which is standard for BitchX nick completion. To change it, type simply:

/fset format_nick_comp $0:$1-

Followed by:


auto ignore disable
I talk to someone who just types fast... how do I stop my client from auto-ignoring them?

Make sure you unignore them...
/tig *
Then turn off your auto-ignore feature...
/set flood_prot off

And for something completely not documented. <--(Thanks BlackJac)
You are able to turn off auto ignore for individual users
/addnoflood nickname
To review the list of people on this list just type the command alone...
To delete the people off this list... we will add this later when we figure it out!

How can i auth to X service on Undernet?
using this small tweak in your .bitchxrc file:

on -connect "Undernet" {
/umode +iwx

this will authenthicate you with USERNAME and PASSWORD on Undernet network but you can adjust the "Undernet" network name to another or just to "*" for all :)
then you can change your mode to on Undernet or another thing on other networks.

Submitted by Petre Daniel ( on Tue May 13 21:05:46 EDT 2003
Submission approved by power on Sun May 25 22:47:32 EDT 2003

How do I change timestamps to display in 24 hour format?

see strftime(3) for more options

DCC Chat
to start a dcc chat with someone type
/dcc chat nick

if you recieve a dcc chat request you have two options
you can type:
/chat or /nochat
you can type:
/dcc chat nickname

once you have established the dcc chat session, to reply to dcc msgs
you can type:
/msg =nick

to make it stay as your active at your chat input, you can type:
/query =nick

to end a dcc session do the following, you can type:
/dcc close chat nick (/dcc close TYPE nick)
/dcc close #number (make sure you have the pound sign)

TIP1 - to list the TYPE, NICK, and NUMBER of dcc you have established type /dcc by itself.

TIP2 - The difference between dcc chat messages and regular messaging is the '=' sign before the nickname... there should be no space between the two.

SSL Connection
Connect to an irc server using SSL by typing:
/server -ssl server

How do I lock a topic?
aside from looking in /bhelp to find out your answer.

To lock or unlock a topic:

/tlock #channel on

/tlock #channel off

Your BitchX client (while op'd) will maintain the last topic that was set.

How do I bind keys (binding)?
You will already have noticed that when you press the RETURN key, the message you have typed is sent to the current channel, or the command you have typed is obeyed. This is because the RETURN key is bound to the internal BitchX function SEND_LINE

type /bind to see list of bindings in your client

type /bind ControlKey BitchX_Function
and /save
the next time you start bitchx your bind will work....

Here is a complete list of BIND'able functions: (little hard to read)

Function Name Description
AUTOREPLY types the nick of the last person to msg you
AUTOREPLY_BACK (commented out; a no-op)
BACKSPACE delete left one charater in the input buffer
BACKWARD_CHARACTER move left one charater in the input buffer
BACKWARD_HISTORY replace the input buffer with the previous string from your input history
BACKWARD_WORD move left to a space
BEGINNING_OF_LINE move left to the start of the line
BLINK insert the blink attribute (control-F)
BOLD insert BOLD (control-b) to toggle bold on/off
CDCC_PLIST display the offerlist to current channel
CHANNEL_CHOPS shows ops on the current channel (see USER)
CHANNEL_NONOPS shows non-ops on the current channel (see USER)
CHANGE_TO_SPLIT switch server to one on the other side of a netsplit
CHELP print the help index
CLEAR_SCREEN clear the current window
COMMAND_COMPLETION attempts to complete the current command based on what you've typed so far, so /cle might expand to /CLEAR for example
CPU_SAVER who knows?
DCC_PLIST show active DCC transfer status
DCC_STATS show accumulated DCC transfer stats
DELETE_CHARACTER delete under the cursor
DELETE_NEXT_WORD delete word forward
DELETE_PREVIOUS_WORD delete word backward
DELETE_TO_PREVIOUS_SPACE delete bigword backward
END_OF_LINE move to the end of input line
ENTER_DIGRAPH enter an 8-bit character I think
ERASE_LINE clear the whole input line
ERASE_TO_BEG_OF_LINE delete to the start of the line
ERASE_TO_END_OF_LINE delete to the end of the line
FORWARD_CHARACTER move forward one character
FORWARD_HISTORY replace the input line with the next item from your history
FORWARD_WORD move forward one word
HIGHLIGHT_OFF insert the highlight off character (control-o) tht cancels all highlight modes (bold, underline, flash)
IGNORE_NICK inserts a command /ig , where is the last nick to send you a message. Press return if you want to keep the command, or delete it as if you had typed it by mistake...
JOIN_LAST_INVITE join the channel to which you were most revently /INVITEd
NEW_BEGINNING_OF_LINE same as beginning_of_line but also sets the internal extended_handled variable.
NEW_SCROLL_BACKWARD scroll the window half a screen backwards
NEW_SCROLL_END scroll to the end (the most recent part) of the current window
NEW_SCROLL_FORWARD scroll half a page down towards the end of the current window
NEXT_WINDOW move to the next window
NICK_COMPLETION the nick completion character
NOTHING key bound to this are silently ignored
PARSE_COMMAND not sure what this does
PREVIOUS_WINDOW cycle through windows
QUIT_IRC leave BitchX without any prompt or warning
QUOTE_CHARACTER the next character you type is inserted literally
REFRESH_INPUTLINE redraw the input buffer
REFRESH_SCREEN refresh the entire screen
REVERSE insert the reverse video command character (contreol-v)
SCROLL_BACKWARD scroll the window half a screen backwards
SCROLL_END scroll to the ens of the window"
SCROLL_FORWARD scroll forwards half a screen in the current window
SCROLL_START scroll to the start of the scrollback buffer in the current window
SELF_INSERT insert the key typed
SEND_LINE return: do the line!
SHOVE_TO_HISTORY save the current line in the history
STOP_IRC suspend BitchX (use fg to get it back; STOP_IRC is not always available
SWAP_LAST_WINDOW swap the current window with the last hidden one in the list
SWAP_NEXT_WINDOW swap the current window with the next hidden one
SWAP_PREVIOUS_WINDOW swap the current window with the next hidden one
SWITCH_CHANNELS talk to another channel in the same window
TAB_MSG inserts /msg nick at the start of the buffer
TAB_MSG_BACK autoreply
TOGGLE_CLOAK ctcp cloaking on or off; this will give a message like CTCP Cloaking is now [Off] when you press the key (Delete on the arrowpad by default). With CTCP cloacking on, people don't get replies from you for ctcp requests like ping, version and finger.
TOGGLE_INSERT_MODE witch between insert and overtype mode
TOGGLE_STOP_SCREEN stop scrolling I think"
TRANSPOSE_CHARACTERS swap the character under the cursor with the one to its left
TYPE_TEXT in a script, this makes text appear in the input buffer. In input, it's already there, so you don't see anything.
UNCLEAR_TEXT undoes the effect of clear!
UNDERLINE inserts control-_, the underline start/stop character
UNSTOP_ALL_WINDOWS resume scrolling everywehre
WHOLEFT show who was disconnected by a netsplit in all your current channels
WINDOW_BALANCE make the split screen windows be equally sized
WINDOW_GROW_ONE make the current window larger
WINDOW_HELP show the window help index
WINDOW_HIDE hide the current window; text will continue to accumulate in the hidden window with no indication that it's there.
WINDOW_KILL close (kill) the current window; does not part any channels.
WINDOW_LIST list your windows
WINDOW_MOVE swap this window with some other one
WINDOW_SHRINK_ONE make the current window smaller
YANK_FROM_CUTBUFFER insert the last text you deleted

relm fun! (relay and repeat)
/REL Usage: /rel? -command # nick- command is one of the following: -kick, -wall, -notice, -msg, -wallop, -topic, -kill, -kboot, -ansi and -list- If the list supports more than one saved message then # can be from 0-9- nick can be a nick or a channel. If left off, then current channel isassumed
/RELC Usage: /relc- Displays the last CTCP command issued
/RELCR Usage: /relcr- Displays the last CTCP reply message received
/RELCRT Usage: /relcrt- Changes the topic to the last CTCP reply message
/RELCT Usage: /relct- Changes the topic to the last CTCP command issued
/RELD Usage: /reld- Displays the last DCC msg recieved.
/RELDT Usage: /reldt- Sets the topic to the last DCC message recieved.
/RELI Usage: /reli- Shows the last invite message received
/RELIT Usage: /relit- Changes the topic to the last invite message received
/RELM Usage: /relm - Redirects last received message to If invoked with -l, the last 10 messages received are listed-l # will display message number #
/RELMT Usage: /relmt - Changes the topic to the last received message
/RELN Usage: /reln - Redirects last received notice to If invoked with -l, the last 10 messages received are listed-l # will display message number #
/RELNT Usage: /relnt- Changes the topic to the last notice received
/RELS Usage: /rels - Redirects last received server notice to If invoked with -l, the last 10 messages received are listed-l # will display message number #
/RELSD relay_help
/RELSDT relay_help
/RELSM Usage: /relsm - Redirects last sent message to
/RELSMT Usage: /relsmt- Changes the topic to the last message issued by you
/RELSN Usage: /relsn - Redirects last sent notice to
/RELSNT Usage: /relsnt- Changes the topic to the last notice issued by you
/RELST Usage: /relst- Displays the last topic issued by you
/RELSTT Usage: /relstt- Changes the topic to the last topic issued by you
/RELSW Usage: /relsw- Sorry, no help is available for this command yet
/RELSWT Usage: /relswt- Sorry, no help is available for this command yet
/RELT Usage: /relt- Displays the current topic in the current channel
/RELTT relay_help
/RELW Usage: /relw- Displays the last wallop message received
/RELWT Usage: /relwt- Changes the topic to the last wallop message received

Starting BitchX with alternate options
Not that we think you are stupid and that you couldn't have just typed at your prompt:

dove:/usr/home/dove$ BitchX --help

But here are the different options that you can start BitchX with... you can get the same list from typing BitchX --help

Usage: BitchX [switches] [nickname] [server list]
The [nickname] can be at most 15 characters long
The [server list] is a whitespace separate list of server name
The [switches] may be any or all of the following
-H uses the virtual hostname if possible
-N do not auto-connect to the first server
-A do not display the startup ansi
-c joins on startup. don't forget to escape the # using
-b load .bitchxrc or .ircrc after connecting to a server
-p default server connection port (usually 6667)
-f your terminal uses flow controls (^S/^Q), so BitchX shouldn't
-F your terminal doesn't use flow control (default)
-d runs BitchX in "dumb" terminal mode
-q does not load ~/.ircrc
-r file load file as list of servers
-n nickname nickname to use
-a adds default servers and command line servers to server list
-x runs BitchX in "debug" mode
-Z use NAT address when doing dcc.
-P toggle check pid.nickname for running program.
-v tells you about the client's version
-i ignores the autojoin list entries.
-l loads in place of your .ircrc
-L loads in place of your .ircrc and expands $ expandos
-B force BitchX to fork and return you to shell. pid check on.

How do I make my client do things when it connects to a server? (bitchxrc)
BitchX gives you the option of adding a file to your client configuration in the HOME directory. Create a file called .bitchxrc

touch .bitchxrc (or however you create files)

At this point, your BitchX irc client will start reading entries out of this file and executing commands. The commands should be entered one line at a time, or using parenthesis for longer alias lines.

Some example syntax to enter into your .bitchxrc is as follows:

/join #channel
/msg nickname message

You can also substitute the / with a ^

Any command you execute in BitchX could be executed in this file... with the exception of commands that are executed before the client connects (e.g. connection to irc servers, etc...)

How do I turn off the automatic listing of all users in a given channel as I enter the channel?
Set the variable SHOW_CHANNEL_NAMES to off with this command:


Submitted by Scott ( on Wed Aug 27 12:40:40 EDT 2003
Submission approved by dovee on Mon Sep 8 16:47:15 EDT 2003

How can I paste without mouse on terminal ?
You can use /paste
if you want to paste more rows use /paste 1-5
1 is first row you choose last.

Submitted by freeman ( on Mon Aug 25 18:22:48 EDT 2003
Submission approved by dovee on Mon Sep 8 16:47:27 EDT 2003

How can I disable the clock at the status bar ?

Question: How can I disable the clock at the status bar ?


(change this line and get rid of the [%T]


Thanks for asking Leslie, but ask your questions in next time :)

identd and BitchX

identd is an application BitchX uses (like screen) but it is not supported by BitchX.

To change what your ident says is going to be a configuration of the identd application that you chose to run.

(win32 port does handle ident requests)

(FAQ entry idea: kreca)

Client connecting to another server... although im already connected... how do I do to stop it?
I see this happening

< dovee > hey mhackah... you ALMOST got your nick back
< dovee > hehe
< shattah > tiredly.
∙∙ Connection closed from Unknown error: 0
∙∙ Use /Server to connect to a server
∙∙ Connecting to port 6667 of server [refnum 1]
< einride > someone here ever setup pppd for dialin?
< BlueDevil > hi birdy
< einride > and made it work

type this to get rid of those messages
/server -irc.server


(thank you shattah)

List of channels I am ajoin'ing (ajoin help)
Assuming that you typed /save after you /ajoin'd a channel...

you will find the list of ajoined channels in your ~/.BitchX/BitchX.sav

Assuming that you created a .bitchxrc to /ajoin channels...

you will find the list of ajoined channels in your .bitchxrc

(spanished asked! don't blame me!)

My Backspace key doesn't work, keeps toggling cloak
To fix this problem:

/bind ^? BACKSPACE


This issue can sometimes be addressed as well by fixing options in your terminal client.

SecureCRT Example: In securecrt under the session options catagory called 'Mapped Keys' you need to check the 'Backspace sends delete' box and then click ok.

Other terminal clients have options or keymapping that addresses this issue as well. We'll try to post more fixes for other terminal clients as we get them.

How do you correct whois on Quakenet
If Quakenet is showing the auth incorrectly when you /whois

e.g. Will ITF is authed as

Try "/fset 330 %G|%n $3 is authed as $4" then "/save"

Thanks to BinGOS for this.

Submitted by Will ( on Sun Oct 5 9:33:26 MDT 2003
Submission approved by sin on Wed Oct 8 10:30:07 MDT 2003

Setting up SecureCRT and similar terminal clients.
When setting up your SecureCRT client to connect to a remote system which you plan to use BitchX to chat on IRC you might wish to take notice of the following.

SecureCRT ships with several different Keymaps. Under the Emulation options you should set the terminal to vt100 and check the ANSI color box.

Also select the alternate keyboard emulation as well. Set it to custom then to the far right click the '...' box and go to C:\Program Files\SecureCRT\keymaps (or where ever you installed your SecureCRT client on your PC) and select CRiSP.key as your default.

This keymap allows you to use page up and down as well as your home and end keys the way BitchX is meant to use them.

Can I telnet from BitchX?
Erm.. sort of? We will be using a DCC Chat session to accomplish this.

You will need to type:
/do quote privmsg $N :$chr(1)DCC CHAT CHAT $iplong( 9001 $chr(1)

and answer the chat request from yourself.

In the above example, you would be connecting to port 9001. Please bear in mind that this is a scripting solution and that this sort of telnetting is probably pretty broken for normal use. You'd be better off investigating the use of screen if you want to run multiple things in a terminal window.

Why don't my settings ever save?
After you have made any type of change using /set, /cset, /toggle, etc... always remember to use '/save' to save all settings so they will be the same next type you reload the client.

Also note: when you create aliases they will not save. You must either add them to your .bitchxrc or you can create a separate file for your aliases and have it loaded from .bitchxrc

Will BitchX work on OS X ?
Yes, BitchX 1.0c18 or greater should compile just fine on the initial release of OS X (10.0.1), tho a replacement teminal might be required, as the one that ships with OS X lacks certain flow control features that BitchX uses, GLterm is a great replacement for (thanks for telling me about it paul). If you find and issues with BitchX on OS X, please e-mail me,, so i can address them, and hopefully fix them before the next release.

Can I connect to more than one irc network/server at once?
Yes. BitchX includes multi-server support.

/window new hide swap last server

Will join Efnet in a new (hidden) window.

To join a new server in an existing window, switch to the window and:


If you regularily use mutiple servers then you should organize your ~/.ircservers file into server groups.

For example,


and turn server groups on in BitchX:
/set server_groups on

This will ensure that when a server connection fails, BitchX cycles through servers in the same group.

Note: Auto-join now also supports multiple networks. Simply /ajoin #channel -g Efnet

How do I get my nickname on IRC back?
Since there are still some networks out there that do not allow nickname registration there was a handy builtin called orignick added to BitchX.

Simply /orignick yournick

BitchX will attempt every 5 seconds to regain your nickname. You can change the value of the timer by doing /set orignick_time and setting a value in seconds for orignick to use.

You can also tell orignick to stop trying to grab the nick by doing /orignick -

How does the AIM plugin for BitchX work?
Currently the AIM plugin for BitchX compiles and loads up just fine. However due to the fact that AIM changes how their protocol works so often there hasn't been an update to the plugin for some time which means that it currently does not work.

We'll post info later on if this problem is fixed.

OK, I've turned on timestamps... now how do I change what's timestamped?

By default, only actions, public chatter and messages from others are timestamped. This is controlled by the corresponding display formats - a %@ in a display format will be replaced with a timestamp when timestamps are turned on.

Eg, to add a timestamp to channel joins, you would modify the JOIN display format:

First, get the existing format:

/fset JOIN

BitchX answers with:
..........................JOIN $G %C$1 %K[%c$2%K]%n has joined $3

Then add a %@ to the start:

/fset JOIN %@$G %C$1 %K[%c$2%K]%n has joined $3

If you want to make it permanent, put that last /fset line into your ~/.bitchxrc startup script.

My BitchX screen is all trashed!! What do I do?
In the case that you find your irc session with a bunch of unreadable characters there are a couple ways to reset this without having to kill the client or /quit blindly.

do /detach
in your shell type reset
If the characters are still messed up logout then back in.

This should reset the irc session.

If you are using screen it is best to follow the method above and back completely out of screen is many cases. While in some cases doing a 'reset' will work, there are a greater number of times that it fails.

Another method to try is first typing '/clear', then hitting control-l, which redraws the screen.

This is a known issue and has been submitted as a bug to be looked into.

Changing Channels
Press CTRL-X.

How do I hide all the JOINS/PARTS/QUITS messages
In large channels (1000+ users) sometimes the JOIN/PARTS/QUITS messages turns to be more SPAM than anything useful.

/ignore #channel JOINS PARTS QUITS

Submitted by icarus ( on Tue Feb 17 5:57:01 MST 2004
Submission approved by ice-man on Sat Feb 28 16:26:02 MST 2004

DCC Send behind nat
First make sure you're using the latest version of BitchX, currently that is BitchX 1.20cvs.
Then make sure you're able control the firewall/gateway to forward a port to your computer.

Then type this in BitchX
/set DCC_FORCE_PORT <num>

then forward <num> to your internal ip in the firewall.

If you're not able to control the firewall to forward a certain port, forget about being able to do dcc sends.


[FAQ Section 7 :: Scripting in BitchX]

I write my own script, how do I promote it?
After a long time of being down has returned with a whole new group of scripts and a user submission system which allows script creators a chance to post their scripts and have control over releases and updates of their own scripts from now on. Check that site often as it is constantly changing and being added onto.

There are also scripts at the official FTP site under /pub/scripts/ which happen to be an archive left over from fudd's site. Thanks fudd!

You can announce your script at in the scripts forum also.

Where can I get help with scripting?
If you want to get some help with minor scripting problems you run into. We suggest you type
/ehelp 5

read that, then you can post question on


read that, then you can go to #bitchx on efnet and see if
any scripters are around to answer your questions

How do I automatically authenticate with Q on Quakenet?
In the .bitchxrc file add the following lines:-

on ^connect "*quakenet*" {
^msg AUTH

where is your Q authname and is your password :)

Submitted by BinGOs ( on Wed Aug 20 10:32:56 EDT 2003
Submission approved by dovee on Mon Sep 8 16:47:48 EDT 2003

Is there an FServe Script for BitchX?
Yes there is a dcc fserv script for BitchX available now.

Please check for the fserv script created by powuh for BitchX. This script possibly may run on epic however at the time of this posting there is no information to this end available.

Where can I get help on a bug?
If there is nothing in this faq that pertains to you. Please let us know about it!

Create an account on and submit your bugs there.

This is not a forum for questions. This is for legitimate bugs that you have discovered!

Please review already discovered bugs ... if your bug is not there... try to recreate your bug and post it.

Thanks in advance :)

[FAQ Section 8 :: Known bugs and issues]

About this section of the FAQ. (Please read)
This portion of the FAQ will contain information known regarding bugs in the BitchX IRC client and how to correct or work around a known problem until an official patch or upgrade to the code is made in the CVS tree.

Things you will not see here are how to actually exploit the client or information about where you can find out about an example of how to exploit the client.

Each submission to this section should have a notation of what version of the client is affected, operating system, and any technical information which could be helpful to the users.

As we reorganize the FAQ, certain information may be moved to this section of the site or be referenced to from another portion of the site.

Rejoin on /kill does not work
This issue has been resolved in the CVS version of BitchX-1.0c20 as of the beginning of April 2003.

Segfault when loading script in BitchX compiled with gcc3.2
The code optimiser in gcc versions 3.2 and 3.2.1 produces buggy code in some circumstances - this causes BitchX compiled with these versions of gcc (which are included in recent versions of Mandrake and Red Hat) to crash when script files formatted in a certain way are loaded. This also extends to the ~/.bitchxrc startup script.

The bug is not exploitable.

To solve the issue, your should upgrade to the latest gcc version 3.3 snapshot, in which the optimiser has been fixed.

If this is not possible for you, a workaround is to execute the following sequence in the BitchX/ source directory, assuming a bash shell:

CFLAGS="-fno-strength-reduce -O2 -g" ./configure
make clean
make install

Channel-specific logging is unuseable
Channel-logging (/cset log on) is currently sufficiently broken to be unuseable.


Use Window-specific logging instead (/window logfile and /window log on), or install a logging script like bxlog.

fo shizzle
to fizzle_b

$Id: bitchx-faq version 5 by power