Back to my ICQ page ...

I have recently begun to be most active in the development of libicq (and its primary implementation, gicq). libicq has been around (to my knowledge) since November, 1998. It is a small but well put together library to help move communication with ICQ servers away from the client and to a common library.

libicq is built on a callback system not unlike GTK+. An ICQ client registers several functions with libicq which are then called when libicq receives a message from the server. This system could be improved upon to some degree at a later date, but works fine for now.


LIBICQ Mailing List / Web Board
Enter your e-mail address:
libicq archive
An e-group hosted by

Feel free to send suggestions, complaints, etc. directly to myself or join the mailing list at egroups. Note: the mailing list is available at in a webboard interface as well.


I've put up a quick download site which will usually contain an in-progress version of GICQ and LIBICQ (usually) from within the week. Full release versions will be announced on Freshmeat.


libicq has several of the primary ICQ features already completed. These include:

Several other features are in the works, including file transfer, random messages, authentication and an advanced filtering system.

Some other clones (or other ICQ software) have more functionality right now. See:


libicq is currently licensed under the GPL version 2 (or later) and therefore can be used and linked with any other GPL software. I am tempted to say that the LGPL would be a better license, but am not the Copyright holder and will leave it as it is for now.

Right now, gicq, nicq are using it, but few others. This is partially because of incomplete support for some of the protocols (simply help out and this will be rectified quickly) and because people aren't aware of it or don't know how to use it easily. I am going to try to fix this by building a libicq API document to help clone makers use it and improve it. This will also help me to rethink how some things are done. If you would be interested in using libicq but don't know where to start, please contact me. If you currently have your own ICQ clone, consider using LIBICQ as your network interface to the ICQ servers so that we can all share each others' improvements more easily.

See the new helping out guide for information on what does what. The libicq 2 API specification is now online but incomplete. Look there for the future of libicq.


If you have any desire to do some coding, reworking of code or experimenting, please feel free to E-mail me. I'll send you a .tar.gz of the latest version or give you anonymous read-only CVS access to the project. If you are currently developping an ICQ clone, please consider putting your ICQ knowledge to use in libicq and link it to your project so everyone can benefit from all the latest features.

libicq is written in C and uses GLIB. If you know C, you'll be fine. (Someone with some extra experience in memory management would be nice). If you haven't used GLIB before, you'll find it's very easy to use and doesn't make up for much of the code, so you can pretty much ignore it. Experience in TCP or UDP code would be an asset although you can also use the libicq source as your primer in these if you wish.

See the new helping out guide for information on what does what.

Other notes

Since I haven't completed my GICQ page yet, this is a link to my Windows ICQ page. It has captures of several main Windows ICQ screens to remind you of what is available in that program.


libicq was around before I was the maintainer and as far as I know, these are the people who deserve to be listed as authors:

If you should be on this list, please notify me.

Back to my ICQ page ...


My other sites

Please feel free to visit any of the following:

Click for complete statistics This page Copyright © 1999 Michael T. Babcock.
It was last updated on the 26th of December, 2016.