ChatZilla also has a selection of IRC networks, displayed by the command /networks. Simply click the network's name in the list or use the command /attach to connect (e.g. the command /attach moznet will connect to the "moznet" network).

If you prefer not to use the URL-style of the command /attach, you can also use the commands /server and /sslserver:

Don't panic - it all depends on the error. We have covered the most common errors and possible causes in the list below, but if you are getting a different error or you can't solve the problem, you can join us in our IRC channel and we'll do our best to help you. If you can't even connect there, please post to the newsgroup instead.

Check anti-virus and firewall settings. Even if your anti-virus and firewall are not listed above, they could still be responsible for this error. Check to make sure they are not blocking IRC or port 6667.

Check gateway/router/NAT settings. If you already have an identification service running, check to make sure computers on the internet can contact it. This usually means allowing inbound connections to TCP port 113 in your firewall, and forwarding the same port in your gateway, router or NAT device.

Some networks or servers will require you to be running an "identification server" (IdentD) to connect to them, even though this service is only useful if you run a multi-user computer (where many people can connect and share a single computer).

Windows: You can enable this service in ChatZilla in the Preferences by selecting "Enable Identification Server during connection process" for networks and Global Settings, on the General tab, in the Connection group.

Linux, Mac: You must use the system-provided identification server (usually called "identd") as these OSes prevent normal programs from providing their own.

Note:
The idententification service runs on TCP port 113 and this will need to be opened in your firewall (incomming) and forwarded by any NAT device as appropriate.

Tip:
The command /attach accepts IRC URLs - without the "irc://" prefix - so all the above examples can be turned into complete URLs by adding "irc://" to the start. For example, irc://irc.example.org/channel?key=surprise.

Note:
If you omit the channel prefix (#, &, + or !) ChatZilla will prepend the network's default prefix, usually #.

Tip:
If you wish to connect to a network or server and join a channel there in one go, you can use the command /attach (e.g. the command /attach irc.mozilla.org/chatzilla will connect to "irc.mozilla.org" and join the "#chatzilla" channel.

To list all the public channels on a network or server, select the menu IRC►Join channel.... The dialog will list all the channels with sorting by name, user count and topic, as well as searching and filtering.

The command /list can also be used to display all the available channels inline in ChatZilla. However, this can take a painfully long time on large networks, and sometimes result in being kicked off for "Excess Flood".

The command /rlist can be used to display the channels like /list, but additionally filter them using a Regular Expression on the topic (e.g. the command /rlist chatzilla will list channels with "chatzilla" in their topic, case-insensitively).

The different symbols and colored blobs to the left of each user in the userlist indicate their respective status within the channel. Available levels, from most to least powerful are:

/ - Founder - ultimate power. Can do anything to the channel and those within it. Usually represents the user who registered the channel. Only certain networks support founders.

/ - Admin - a normal operator, but protected from being kicked by anyone except the founder. Only certain networks support admins.

/ - Operator (op) - the user can grant and revoke operator, half-operator and voice status, change the topic, kick other users and generally control the channel.

/ - Half-operator (half-op) - the user has the power to moderate the channel, change the topic and kick people, but cannot kick other half-operators nor higher-ranking users, nor can he/she create new operators/half-operators. Only certain networks support half-operators.

/ - Voice - the user can talk in the channel when it is moderated. Often used to mark people as trusted or helpful without giving them any real power.

In general, you can't. The way IRC works, your IP address is distributed to every user you communicate with. Depending on where you hang out, and who your enemies are, this may or may not be a problem. In practice, it's not a problem for most users.

However, an increasing number of servers are supporting a user mode "x" which hides your hostname (and thus your IP) from other users (IRC Operators can still see your real host). You can start using this user mode by adding "x" to the "Usermode" box on the General tab in preferences, either in Global Settings, or for individual networks.

Note:
Remember that not all servers support this. Ones that don't will simply ignore it, so don't worry about adding it if you're not sure.

ChatZilla allows you to select character encodings at multiple levels. The default character encoding used by ChatZilla is UTF-8 and it is recommended that you leave this setting wherever possible. This default avoids a number of unsolvable problems, such as how to know what encoding has been used for particular channel names without prior knowledge.

If text is showing up with a lot of question-marks (?) or completely unexpected characters (for example, Japanese characters in a Danish channel) then it is likely that ChatZilla is not using the same character encoding as the other clients. All the clients must be using the same or very similar character encodings to exchange text successfully.

To view the character encoding being used on the current view (network, channel or user), use the command /charset. The character encoding can be changed using the same command (e.g. the command /charset ISO-8859-15 will switch to the "ISO-8859-15" character encoding).

Tip:
Some common character encodings sometimes used by other clients are:

English

ISO-8859-15

Hebrew

ISO-8859-8-I

Japanese

ISO-2022-jp

Russian

Windows-1251

3. Basic Usage

Yes! In all cases, you type the start of the nickname, channel or command, and hit tab. ChatZilla will expand it as much as possible, based on the matches available. If the text you entered is unique to the start of one item, ChatZilla will complete the entire thing; otherwise, the longest common prefix of all matches will be used. A second tab in quick succession will display the list of matches.

Nickname completion will match any user in the current channel, or all users in all open channels on the current network when used in other views.

Channel completion will match any open channel on the current network.

Command completion will match any standard commands and any additional aliases defined when used at the start of the input box, with the first character being the command character, "/".

Tip:
On a channel view, enter just "#" and press tab to get the current channel name immediately.

Tip:
On a channel view, press tab when the input box is empty to complete to the name of the last person in that channel to trigger your stalk function - useful for replying to messages addressed to you.

Tip:
You can shorten command names as much as you like - so long as they are unique - without having to use tab to expand them.

ChatZilla includes basic support for the direct chat and file transfer systems.

To start a direct chat (DCC CHAT): Right-click on a user in the userlist or chat area and select User Commands►Direct Chat. This will send the other user an offer, which they must accept to complete the connection.

To send a file (DCC FILE): Right-click on a user in the userlist or chat area and select User Commands►Send File.... A file browse dialog will appear, where you must select the file to send to the other user. After this, an offer will be sent to the other user, which they must accept to start transferring the file.

To accept or reject an offer: When a user offers you a direct chat or file transfer, a message similar to those below will appear in the chat area. You should click "Accept" or "Decline" as desired to start or ignore the direct chat or file transfer.

To check the status of DCC: At any time, the command /dcc-list will show the current status of all active, pending and recent direct chats and file transfers. For any that are still waiting for an accept/decline decision, the options will be provided again; for any that are active, the option to "Cancel" will be provided.

Tip:
All of the DCC action are also available as commands; see /help dcc for a list and instructions.

Note:
ChatZilla currently does not support UPnP, DCC resume or DCC reverse. If you are behind a NAT or firewall and want to start direct chats or transfer files, you must configure a port-forward through to ChatZilla and set up the list of ports in ChatZilla's preferences, on the DCC tab in Global Settings.

Before you can input any colors, bold or underline in ChatZilla, you must enable this feature. To do so, select the "Enable sending color codes" option, in Global Settings, on the Global tab, in ChatZilla's Preferences window. You can also use the command /pref outgoing.colorCodes true. This only needs to be done once.

Entering color, bold and underline is as simple as typing the appropriate few characters - which always start with a percent ("%"):

%O - resets all colors, bold and underline.

%B - toggle bold.

%U - toggle underline.

%R - swaps foreground and background colors.

%Cnumber - sets the foreground color.

%Cnumber,number - sets the foreground and background colors.

%% - inserts the next character literally, if it is one of O, B, U, R or C.

Tip:
Always use two-digit numbers to avoid problems when following a color code with other numbers. For example, to style "42" in red, use %C0442.

To try anyway, enter chrome://chatzilla/content/ into the location bar.

Warning:
There are some problems with running ChatZilla in a tab and most are things we can do nothing about. Below is a list of what is known to break.

Right-clicking the chat area shows the browser's context menu instead of ChatZilla's.

Clicking an irc: URL in the chat area will open a separate ChatZilla window. This problem might be fixable, but it could well be harder to fix than the final point.

Clicking web links in the chat area will usually replace ChatZilla with the webpage. If you try to open the link in a new tab or window (either from the context menu or using a modifier key), it should leave ChatZilla unaffected.

Clicking an irc: URL from a webpage will also open a separate ChatZilla window, instead of loading it in the ChatZilla running in a tab. This is the only problem we believe we can fix.

Bug 286651 is attempting to remove the special permission extensions get when loaded in a tab, which would basically be the end of this working at all.

4. Customizing ChatZilla

There is an "auto-perform" preference, which can be set on the Lists tab for each network in ChatZilla's Preferences, listing commands to run when connecting. Any commands, including custom aliases, can be used here - they will all run as if typed into the network's view directly.

Warning:
This preference, like all the others, is saved to your hard disk in plain text. If you use auto-perform to identify or authenticate yourself with services or bots, remember this.

Tip:
If you're happy with the above warning, you can identify yourself with the popular IRC Service NickServ by adding an auto-perform entry of /msg NickServ IDENTIFY secret (where "secret" is your password).

ChatZilla motifs are nothing more than Cascading Style Sheets (CSS) which are applied to the HTML used to display the messages. The messages are layed out using a standard HTML table with a variety of attributes, mostly set on the rows and a few on the individual cells. There are a few ways to learn motifs:

To create simple groups of commands or pre-fill arguments to existing commands, aliases can be used. Aliases can call any command you can enter in the input box, and will replace certain sequences with values provided by you or ChatZilla; they cannot, however, make decisions or use loops - full scripting will have to be used for that.

In its simplest form, an alias is just a short name for an existing set of commands and arguments. For example, to create the alias /moz which executes the command /attach moznet, you'd add moz = attach moznet to the "Command aliases" list, on the Lists tab, for Global Settings, in ChatZilla's Preferences.

To make an alias execute more than one command, separate them with semi-colons (;). For example, to configure an alias /mychannels to join some channels, add mychannels = join #chatzilla; join #venkman; join #xul; join #js in the preferences.

There are a few replacements parameters you can use in an alias, each of which gets replaced before the commands are executed.

$(N+) - Gets the Nth argument passed to the alias and all those following it. The alias requires at least N arguments.

$(M-N) - Gets the Mth through to Nth argument (inclusive) passed to the alias. The alias requires at least N arguments.

$(all) - Gets all the arguments passed to the alias. The alias does not require any arguments.

$(recip) - Gets the name of the target of the alias. This is the name of the view the alias is run on, e.g. channel name.

$(nick) - Gets your current nickname.

For example, if you wished to create an alias to reclaim your nickname via the NickServ IRC Service, you could use the following alias. It requires two arguments - the nickname to reclaim and the password for it, e.g. /reclaim TARGET_NICKNAME PASSWORD.

ChatZilla is entirely written in JavaScript, and so are its scripts. Scripts can be loaded at startup, or manually at any time, and reloaded while running. As the scripts have direct access to ChatZilla's code, they can do pretty much anything and everything ChatZilla could do.

Getting started can be tricky, as there is limited information currently available to help, but here's a few pointers:

Select the menu ChatZilla►Install Plugin..., browse to a local file or paste the URL containing the script (which must be .js, .zip or .jar) and click OK. Information about the installation will be displayed in the chat area.

Warning:
All scripts have full access to both ChatZilla and your computer; do not install any script from a source you do not trust.

Use the command /list-plugins to display a list of all installed scripts and their respective locations. To prevent a script from loading, rename the file indicated by the output of /list-plugins (usually init.js). To completely remove the script from your computer, delete the directory containing the file.

Tip:
Many scripts can be disabled, preventing use of their functionality, without uninstalling them. Use the command /disable-plugin to disable a script, specifying the id from the command /list-plugins. The command /enable-plugin can be used to enable a script again.

To make changes to the ChatZilla built-in network list, a text file called networks.txt describing the changes must be present in the profile directory. The profile directory is shown when executing the command /pref profilePath:

The text file uses a structured format that represents an array of objects, one for each network to be added, removed or replaced. Each block starts with "START" and ends with "END". Here is an example file which replaces the "moznet" network with a single secure server on port 6697 and removes the "dalnet" network.

The network names must be in lower-case and must be formed of alphanumeric characters only. Each network may have either a list of servers or"isDeleted" true. The servers must have a "hostname" and "port"; if they are secure (SSL), they also need "isSecure" true. If a network is listed in networks.txt with servers, the list replaces those built-in to ChatZilla.

5. Documentation and Resources

Tip:
If you have a question or problem you wish to get help with, please just ask it - don't wait for someone else to talk! A lot of people idle in #chatzilla and won't say anything until someone asks a question; equally, don't expect an immediate answer, as we're not always at our computers or able to offer help to every problem.

There is a newsgroup, mozilla.dev.apps.chatzilla. There isn't much traffic there normally, but you are welcome to post questions and ask for information or help there if you don't want to stay in our IRC channel for a bit or the issue isn't that urgent.