Please feel free to make a donation with PayPal if you like this project.

We are glad you found this place in the web. Enjoy your stay.
Official support channel is #lightirc at irc.lightirc.com
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 http://www.lightirc.com/release/flashpolicyd.zip
> unzip flashpolicyd.zip
> 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:> unzip flashpolicyd.zip
> cd flashpolicyd
> chmod a+x flashpolicyd.rb
> apt-get install ruby
> yum install ruby
• Start flashpolicyd> yum install ruby
> ./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!
"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">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" to-ports="6667" />
</cross-domain-policy>
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 lightIRC.zip package).

Example of what you can change with parameters. See many more parameters below.
| Parameter | Default | Description |
|---|---|---|
| Connection | ||
| 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 | lightIRC.com Flash IRC Client | Real name (GECOS) for the user |
| quitMessage | lightIRC.com 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 | ||
| 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 | |
| Appearance | ||
| 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? |
| Windows | ||
| 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. |
| Sounds | ||
| 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. |
| Emoticons | ||
| 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 irc.lightirc.com?
The first thing to do is registering your nickname when you are connected to irc.lightirc.com. 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
/cs help
Can I get the sourcecode of lightIRC?
No. lightIRC is freeware, that means free for use. The sourcecode is not open.