Please feel free to make a donation with PayPal if you like this project.
Flash IRC
We are glad you found this place in the web. Enjoy your stay.

Google-Translate-Chinese (Simplified) BETA Google-Translate-English to French Google-Translate-English to German Google-Translate-English to Italian Google-Translate-English to Japanese BETA Google-Translate-English to Korean BETA Google-Translate-English to Russian BETA Google-Translate-English to Spanish

Official support channel is #lightirc at

What are the features of lightIRC?

lightIRC is a highly customizable web chat client that supports channels, queries, a lot of IRC commands, CTCP commands and is adjustable through the use of StyleSheets. It has multi language support and a nice GUI to set kicks, bans and channel modes.
The client uses a plain TCP socket to connect directly to the IRC server (no XMLSocket, no gateway).

Can I remove the copyright from the client? What about commercial use?

You can embed lightIRC for free in your non-commercial websites or projects. In that case a copyright hint to lightIRC will be shown inside the chatrooms.
A purchase is required to remove the copyright notice or to get the permission for using lightIRC in your commercial project. See more details here.

Can you do some changes to lightIRC for me?

Yes, I can. Please contact me and we will figure something out.

I want to connect to <some large network here>. Why is this not working?

Please read the next question. You can only connect to servers that explicitely allow connections! You either have to
• ask the server admin of your favourite IRC network to setup a flash policy daemon (see next question)
• connect to your own IRC network and install a flash policy daemon there.

I am getting a Security Error when trying to connect. How to solve this?

When you can't connect to a server and the client shows a security sandbox violation message, the server the IRCd is running on does not allow connections from a Flash client.
Due to the socket security policy Adobe introduced with Flash Player 9,0,124 you are forced to have a daemon that delivers a crossdomain.xml to allow establishing a connection.
It is not a restriction by lightIRC, but one of Adobe Flash!

The policy daemon must run on the same machine where your IRC server is. It is no client-side solution!

How to solve the problem if your IRC server runs on Linux:
> cd /usr/local (or cd ~)
• Download our prepared flashpolicyd (based on the flashpolicyd project):
> wget
> unzip
> cd flashpolicyd
> chmod a+x flashpolicyd.rb
• Make sure you have Ruby installed. If you have not, you can maybe install it with one of the following commands dependent on your Linux distribution or through compiling the Ruby sources:
> apt-get install ruby
> yum install ruby
• Start flashpolicyd
> ./flashpolicyd.rb --xml flashpolicy.xml --logfile flashpolicyd.log
• Verify that flashpolicyd is running:
> tail flashpolicyd.log

"Starting server on port xxx in process xxx"
Everything is fine.

"Can't open server: Errno::EACCES Permission denied - bind(2)"
You try to bind port 843 which requires root access. Start the daemon as root or use the following command:
> ./flashpolicyd.rb --xml flashpolicy.xml --logfile flashpolicyd.log --port 8002

Your flashpolicyd is now started as a normal user with a different port. You must pass policyPort=8002 as a parameter to lightIRC.swf when starting flashpolicyd like this!

If you cannot install Ruby, there are some other daemons around:
Policy server written in Perl
Virtua Flash Policy Daemon written in C
Policy server written in C
Policy servers in Perl/Python by Adobe (you should not use them, they don't work reliably)

How to solve the problem if your IRC server runs on Windows:
Silverlight and Flash Policy File Server written in C#
flash-policy-server-daemon written in Java
Flash socket policy server written in TCL
• You can also modify this PHP policy daemon to work on Windows.

What should my flashpolicy.xml look like?

This is a good choice if your IRCd is running on port 6667:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
   <site-control permitted-cross-domain-policies="master-only"/>
   <allow-access-from domain="*" to-ports="6667" />

Customization parameters

You must pass at least one parameter to the SWF (host), the others are optional.
These parameters can be added or changed within the config.js (included in the package).

Parameters example
Example of what you can change with parameters. See many more parameters below.

Parameter Default Description
host Server IP/hostname
port 6667 Server port
policyPort 843 Defines the port where Flash Player should look for the policy daemon
General settings
nick lightIRC_% The username to connect with. It is also a prefilled value for the nickselect box. Add "%" and lightIRC inserts a random number to prevent doubles (e.g.: "nick%" -> nick123")
nickAlternate Alternative nick. Gets used if "nick" is occupied.
rememberNickname false Stores a selected/changed nickname in a local cookie and uses it everytime the user comes back.
password Password (only needed on very few servers)
ident Random string Ident for the user. If you don't set a value, lightIRC sets a random string as the ident. This ident gets saved and will be used when the user comes back.
realname Flash IRC Client Real name (GECOS) for the user
quitMessage Flash IRC Client Quit message for the user
language en Language for the user interface. Currently available translations: bd Bengali, bg Bulgarian, da Danish, de German, el Greek, en English, es Spanish, et Estonian, fr French, it Italian, ja Japanese, nl Dutch, br Brazilian Portuguese, ro Romanian, ru Russian, sq Albanian, sr_cyr Serbian Cyrillic, sr_lat Serbian Latin, sv Swedish, th Thai, tr Turkish, uk Ukrainian
languagePath language/ Where to look for the lightIRC translation files.
emoticonPath emoticons/ Relative or absolute path to the emoticons folder.
enableQueries true Set this to false to remove support to start queries, that is double clicking a user name and selecting the query from the context menu will not work. However, the user is still able to receive queries or to write private messages with /q, /query or /msg.
autojoin Comma-seperated list of channels to join after a connection is established.
E.g.: #lightIRC,#help
perform Comma-seperated list of commands to be executed after connecting.
E.g.: /mode $me +x,/join #channel key
$me and %nick% get replaced through the current nick. %pass% gets replaced through the entered identifyPassword or the correspondent parameter.
autoReconnect true Reconnect if the connection to the server gets interrupted. You typically don't want to change this setting.
showSecurityError true Hides the security error message when set to false. You typically don't want to change this setting. The security error tells you that the policy daemon is not running or your policyPort setting is not correct.
webcam false Enables the webcam module using a Red5 backend. The module must be purchased. More information
rtmp IP/URL of the Red5 streaming server
styleURL A relative or absolute URL to a lightIRC CSS file.
navigationPosition bottom Position of the navigation container (where channel and query buttons appear). Valid values: left, right, top, bottom
showNavigation true Hides the navigation container when set to false. You are not able to switch between channels and queries then.
Nickname identification
identifyPassword Identifies the user to NickServ with the given password. Sends the value of identifyCommand to the server. This parameter is not that useful. You should rather set appropriate values for identifyMessage and identifyCommand to let the user identify himself inside of lightIRC.
identifyMessage NickServ:This nickname is registered. The default value means lightIRC searches the string "This nickname is registered." within all notices from NickServ. If it finds that message, a window to enter a password pops up.
identifyCommand /msg NickServ identify %pass% This is the services command lightIRC sends when a user submits the identify popup. %nick% and %pass% get replaced automatically.
Nickname registration
showRegisterNicknameButton false Shows a button to register a nickname.
registerNicknameServiceName NickServ Set this to the NickServ equivalent of your server. Responses of this service get parsed and are shown inside of the register nickname popup.
registerNicknameCommand /msg NickServ register %password% %mail% lightIRC sends this command when the user hits the submit button of the register nickname window. %password% and %mail% get replaced through the entered values. %nick% gets replaced through the current nick.
Channel registration
showRegisterChannelButton false Shows a button to register a channel.
registerChannelServiceName ChanServ Set this to the ChanServ equivalent of your server. Responses of this service get parsed and are shown inside of the register channel popup.
registerChannelCommand /msg ChanServ register %channel% %password% %description% lightIRC sends this command when the user hits the submit button of the register channel window. %channel%, %password% and %description% get replaced through the entered values.
Client settings (changeable in the user options window)
soundAlerts true Indicates whether a sounds are on (they are played on highlight or on new private message).
showTimestamps true Show a timestamp in front of all received messages and commands.
showJoinPartMessages true Show join, part and quit messages.
showNewQueriesInBackground false Opens new queries in background when set to true. When keeping the default mode, a new query window gains focus upon receiving a private message.
fontSize 12 How large should fonts in text input and chat area be displayed?
showServerWindow true Whether the server window (and button) should be shown. If you set the value to false, a popup appears when you start lightIRC. It contains a connecting message and stays open until the connection to the IRC server is established.
showNickSelection true Indicates whether a popup to enter a nickname should be shown before connecting.
showIdentifySelection false Adds a password field to the nick selection box. Identifies the user to a nickname service. Uses the identifyCommand value.
showServerPasswordSelection false Indicates whether a popup to enter a server password should be shown before connecting.
showChannelCentral true You can open the channel central in three ways. By clicking the button in the menu (showListButton), selecting the item in the channel button context menu or double-clicking the channel window. This parameter can disable the latter.
Menu buttons
showMenuButton true Shows the menu button. The menu gets disabled if you set this value to false. You don't need to disable the following menu buttons then.
showListButton true Shows button to list all channels on the network.
showNickChangeButton true Shows button to change the nickname.
showOptionsButton true Shows the options button to adjust different settings.
showChannelCentralButton true The channel central gives users the possibility to manage channel modes, bans and the topic.
showJoinChannelButton true Shows a button to join a channel.
showPartChannelButton true Shows the part/leave channel button.
showRegisterChannelButton false Shows a button to register a channel.
showRegisterNicknameButton false Shows a button to register a nickname.
soundAlerts true Indicates whether a sounds are on (they are played on highlight or on new private message).
soundOnNewChannelMessage false Indicates whether a sound should be played when a new channel message is received.
showEmoticonsButton true Shows a button to select an emoticon.
emoticonPath emoticons/ Relative or absolute path to the emoticons folder.
emoticonList :)->smile.gif,;)->wink.gif,:D->biggrin.gif,:P->tongue.gif,:(->sad.gif,:$->blushing.gif,:O->ohmy.gif,(H)->cool.gif,:|->mellow.gif,Oo->blink.gif,:'(->crying.gif,:S->unsure.gif,:[->mad.gif List of emoticons in the following format: code->file,code->file
You can add more emoticons through adjusting this parameter.
These emoticons will be displayed in the emoticon select popup as well.
If you want to disable the emoticons, pass an empty string as a value.
Text input area
showRichTextControls true Shows buttons for text formatting (bold, underline, color)
showEmoticonsButton true Shows a button to select an emoticon.
showTranslationButton true Shows a button for automatic message translation
showSubmitButton true Shows a button to submit a message. Even if you can submit a message by pressing enter, a chat novice would prefer to have a button to click.
Channel settings
showChannelHeader true Indicates whether the channel header should be shown. This is the place where channel name and topic appear (above the chat area and user list).
channelHeader %channel% [%users%] [%mode%] %topic% Adjust this message to have a custom format for the channel header. %channel%, %users%, %mode% and %topic% get replaced automatically.
E.g.: You are now talking in %channel% with %users%. The mode is: %mode%. The topic is: %topic%
showInfoMessages true Setting this value to false hides all messages that are no real messages and no join, part or quit messages from channels and queries. That includes mode changes, nick changes, topic, ignores, kicks and so on.
User list
userListWidth 150 Any value >= 100 or 0 (hides the user list).
useUserListIcons false Show icons in the user list instead of user prefixes (like @%+)
User list context menu
contextMenuInternalEvent Set a value to add a new item to the context menu.
Syntax: Name of the item:command to send
E.g.: Kick a user with default error message:/kick %nick% %channel% Kick!
%nick% and %channel% get replaced automatically.
contextMenuExternalEvent Set a value to add a new item with the given name to the context menu. The JavaScript method onContextMenuSelect(nick) gets called when the context menu item is selected. As an example, you could open up a new window in your JavaScript code pointing the user to a profile.

Can I create an own style for lightIRC?

Yes, you can. This task is actually pretty easy.
Download the newest lightIRC release and check the css folder within the package. You can find different stylesheets here.
Adjust all parameters you like and link your new stylesheet to lightIRC using the styleURL parameter.

If you are an expert, you maybe want to know which properties you can set for each element in the CSS. The Flex Langref should help you then. Search for items like "DataGrid" or "CheckBox" and have a look at all Spark/Halo theme styles.

It would be great if you could drop me a mail with your own style so that I can publish it here :-) Thank you.

What are the service commands for

The first thing to do is registering your nickname when you are connected to You can do this by typing the following command in lightIRC:
/ns register password yourmailaddress
If you are done with that, you can proceed with registering your channel:
/cs register #yourchannel
This makes you an owner of #yourchannel. If you reconnect to the network, you must identify yourself to receive the owner status again. You do this by typing:
/id yourpassword
Where yourpassword is the password you used when registering your nickname.
If you want to give permanent operator status to other people, you can use this command. Make sure the person has already registered their nickname (step 1):
/cs aop #yourchannel add nickname
Use "del" instead of "add" to remove the permanent operator status from someone.
Try typing the following commands to get information about more commands:
/ns help
/cs help

Can I get the sourcecode of lightIRC?

No. lightIRC is freeware, that means free for use. The sourcecode is not open.

lightIRC has been developed by Valentin Manthei
Email address