Version 92 of IRC

Updated 2012-02-27 03:08:21 by pooryorick

Definition of IRC

IRC is the Internet Relay Chat is a protocol for interactive chatting between internet users and was developed originally in Finland for use in the university network by Jarkko Oikarinen. See http://www.irc.org/ and http://irchelp.org/ for more information.

tcllib has an IRC package documented here [L1 ]


Tcl channels on IRC

  • freenode : #tcl (contains ijchain, which bridges the Tcler's Chat to IRC). Probably the best area for Tcl-related chat. (Unless you're talking Eggdrop)
  • EFnet : #eggtcl (for eggdrop scripters) and #tcl (the intelligent crowd will wake up if you ask something interesting)
  • IRCnet : #tcl (mostly eggdrop scripters), #tcltk
  • DALnet : #tcl (eggdrop), #tcltk
  • QuakeNet : #tcl

There is a pure Tcl IRC server under the BSD license here: http://www.hping.org/tclircd/ .


For some reason, Tcl/Tk seems to be quite popular among client authors - here are the ones I know about:

B

 What: BitchX
 Where: http://www.bitchx.org
 Description: ANSI color IRC client.
 Updated: 08/2002
 Contact: edwards at bitchx dot org (Colten D. Edwards)

C

 What: ChatIT
 Where: http://sourceforge.net/projects/chat-it/
 Description: Cross platform IRC client that aims to support all IRC
        protocols.  Written in Tcl.
 Updated: 09/2001
 Contact: See web site
 SITE SAYS IN 02/2004: This Project Has Not Released Any Files

Note however that many SF.net projects work directly from the CVS repository without regular releases occuring. In this particular case, they have put nothing in their CVS repository either. Too bad - appears to be vaporware.

D

 What: dirc
 Where: http://www.dircchat.com/
 Description: ActiveX and windows based IRC client.
 Updated: 09/2002
 Contact: info at algenta dot com (Kemal Hadimli)

 What: DMAT
 Where: http://eazy-living.de/dmat-0.27/dmat-0.27.tar.bz2
 Description: IRC proxy which allows you to detach from your session and
        then reattach to the session using a different client or changing
        client's host.  Written in Tcl.
        Current version 0.27.
 Updated: 10/2007
 Contact: eazy at eazy-living dot de

E

+++++++++++++++++++++++++++ Eembot Dead Link ++++++++++++++++++++++++++++++++++++++

 What: Eembot
 Where: http://www.cs.vu.nl/%7Eerbruijn/
 Description: An IRC client with Tcl, terminal, X11, Windows 95 and WWW
        interfaces.
 Updated: 04/1998
 Contact: erbruijn at cs  dot vu dot nl (Emiel Bruijntjes)

G

+++++++++++++++++++++++++++ Go-IRC Dead Link ++++++++++++++++++++++++++++++++++++++

 What: Go-IRC
 Where: No longer available for download from the author
 Description: A Tcl based IRC client, integrating Microsoft Internet Explorer,
        Active-X, CTCP/2, etc.  Designed for Windows 96/Windows NT 4.0.
 Updated: 07/1997
 Contact: jamie at thehunters dot org (Jamie Hunter)

H

 What: Hermes fserv
 Where: http://devel.degoeij.org/
 Description: Hermes fserv is a Tcl script for use with the BitchX IRC client
        to provide ftp-like access to local file archives.
        Currently at version 0.1.6 .
 Updated: 08/2001
 Contact: j dot ellerbroek at student dot tudelft dot nl

J

+++++++++++++++++++++++++++ JiMM Dead Link ++++++++++++++++++++++++++++++++++++++

 What: JiMM
 Where: http://www.atlink.it/personal/avatar/Jnews.html
 Description: Full featured Tcl/Tk Internet Relay Chat (IRC) client.
 Updated: 06/1997
 Contact: dasnake at freenet dot hut dot fi

K

 What: Kalich
 Where: http://kalich.sourceforge.net/
 Description:  Intelligent IRC bot written in Tcl.
        Currently at version 0.05.
 Updated: 08/2001
 Contact: l3ech at l3ech dot com

 What: keirc
 Where: http://www.indonesia-undernet.org/keirc/
        http://user.cs.tu-berlin.de/%7Esalim/keirc/download/
 Description: KDE based IRC (Internet Relay Chat) client program.  Uses
        Tcl 7.5 for scripting.  Supports multiclient, multicolor and font,
        DCC chat and file, small webserver, sound, ignore list,
        communicates with Netscape, etc.
 Updated: 04/1999
 Contact: sj039su at uni-duisburg dot de (Eko Bono)

M

 What: MilkBot
 Where: http://www.cowofdoom.com/archive/pub/aim/milkbot.tar.gz
        ftp://ftp.cowofdoom.com/pub/aim/milkbot.tar.gz
 Description: Eggdrop Tcl script that connects the Eggdrop IRC channel bot
        to AIM.
 Updated: 07/1999
 Contact: wwoods at wam dot umd dot edu (Will Woods)

N

 What: NetPlug
 Where: http://www.box.eu.org/%7Edl/netplug.html
 Description: An extensible multi-connection, multi-protocol network client
        program, written in pure Tcl/Tk.  Currently supports an IRC client
        and a GO game client, as well as a memory plugin, an async event
        driven file pipeline and a TCP/IP gateway and multiplexer.
        Can be the basis of a tool to debug various
        networking services.  Uses Tcl 7.5/Tk 4.1 and newer platforms.
        Can run on Unix, Windows and Macintosh platforms.
        Updates on a regular basis.  V0.62 works with Tcl 8.
 Updated: 04/1997
 Contact: L at demailly dot com (Laurent Demailly)

 What: Netscape client Tcl Tclets (Demailly)
 Where: http://www.lyot.obspm.fr/%7Edl/Tclets/
 Description: A go game, an adaptive optics simulation demo,
        and an IRC Tclet are all available at this time.
        are available at this time.
 Updated: 06/1997
 Contact: L at demailly dot com (Laurent Demailly)

P

 What: Progeny
 Where: http://www.fdcor.net/misc/progeny.shtml
 Description: Altenrative to Infobot, written solely in Tcl.
 Updated: 09/2001
 Contact: concept at fdcor dot net

Q

 What: QuIRC
 Where: http://quirc.sourceforge.net/
        http://quirc.org/
        http://quirc.org/quirc.tar.gz
 Description: X based IRC client with full Tcl/Tk scripting support.
        Coded in C/C++ for speed and some advanced features.  Supports
        use of themes, and socks5.
        Currently at version v0.9.82 .
 Updated: 02/2000
 Contact: hynato at quirc dot org

 What: Quotesaq
 Where: http://rad.capecod.net/quote/
        http://rad.capecod.net/quote/Quotesaq-v2.1.tar.gz
 Description: Advanced quote system for Eggdrop IRC bots.  Uses
        Tcl script to interface to Perl scripts.
 Updated: 07/1999
 Contact: RADKade1 at i-hate-the-internet dot com

S

 What: savIRC
 Where: http://www.savirc.com/
 Description: IRC client for both Linux and Windows, supporting multiple server
        connections, SOCKS5 connections (Server __and__ DCC), CTCP, DCC, ignore 
        and notify lists, mIRC colors, nick completion, dedicated windows, logs,
        custom popups, pre-defined events, Tcl/Tk scripting, and much more.
        Currently at version 2.1.0 . 
 Updated: 03/2007
 Contact: casey at savirc dot com
 Contact: phobie at savirc dot com
 [Please do not use emailslinks, we get spam because of this, I remove the "@"'s for the other developers too... - phobie 05-05-23]

T

What: T2I
 What: TclBot
 Where: http://www.crosswinds.net/%7Eyeutham/
 Description: Tcl IRC bot being developed.  Curently at v0.4.0.
        Provides structure for providing support functions such as uptime,
        dictionary, fact triggers, fortune, etc.
 Updated: 07/1999
 Contact: yeutham at crosswinds dot net

 What: tcl file server
 Where: http://dejavo.n3.net/
 Description: tclfserv is a IRC File server written in Tcl.
        Currently at version 3.3-7 .
 Updated: 08/2001
 Contact: dejavo at PunkAss dot com
 What: tkirc
 Where: http://www.north.de/%7Eatte/tkirc/ 
        http://www.leo.org/pub/comp/networking/irc/clients/unix/ircII/ 
        http://ftp.funet.fi/pub/unix/irc/ 
        http://www.tenebrous.com/  (???)
 Description: Graphical front end for ircII.  Requires ircII and Tcl/Tk 8.x.
        The tenebrous site is said to have a patch to allow you to change
        the small max-topic length in tkIRC.
        Currently at version 2.46.
 Updated: 02/2000
 Contact: atte at gecko dot north dot de
 What: Tomahawk
 Where: http://sf.net/projects/tomasoft/
 Description: An effort to build a better Tcl-enabled IRC client.
 Updated: 08/2002
 Contact: davygrvy at pobox dot com (David Gravereaux)

X

 What: XiRCON
 Where: http://www.xircon.com/
        http://sourceforge.net/project/showfiles.php?group_id=1616&package_id=27045
  Description: beta release IRC client for Windows 95/NT.  The author
        no longer is working on this application.
        Contact #xircon on the efnet IRC network for help with the client.
        D. Gravereaux has also provided the above 'hack' so that XiRCON
        works with Tcl v8.1.0 and beyond.
 Updated: 08/2002
 Contact: mhanson at servtech dot com (Mark Hanson)
          davygrvy at pobox dot com (David Gravereaux)

Z

 What: Zipper
 Where: http://users.vnet.net/ashman/zipper/
        http://users.vnet.net/ashman/zipper/zipper-1.62.tar.gz
 Description: Zipper is a Linux X/Tcl/Tk based IRC client. Supports many
        functions including scripting, DCC Transfers and Chats, Colors,
        sounds, and many others.
 Updated: 10/1998
 Contact: wolfie at vnet dot net (Ash Bowers)
What:Zircon
Where:http://catless.ncl.ac.uk/Programs/Zircon/
ftp://catless.ncl.ac.uk/pub/zircon-1.18.256.tar.gz
ftp://coombs.anu.edu.au/pub/irc/tcl/
Description: A Tk interface to IRC.Does not permit commercial use.
Updated:06/2002
Contact:zircon-request at catless dot newcastle dot ac dot uk
Lindsay dot Marshall at newcastle dot ac dot uk
 What: NeoSoft Tcl
 Where: ftp://ftp.procplace.com/pub/tcl/neosoft/neotcl/
 Description: Tcl 7.6 and 8.0 set of commands and libraries providing
        interfaces to disk-based btree and hashtables,
        TCP/IP server-client objects,
        along with examples of an IRC robot object, RFC931 authentication
        object, support for WWW CGI scripts, WWW log file parsing.
        Also, this includes file requestors, dialog boxes, pull-down menus,
        class libraries for databases, listboxes, a Tk notepad, progress
        notifiers, UDP-based object sharing, and more.  Package includes
        Tcl, Tk, itcl, Tcl-DP, tclX, color pixmap and GIF support,
        and Expect.
 Updated: 10/1998
 Contact: See web site

NOTE: Karl Lehenbauer, Neosoft's Tcl champion, has moved on to procplace. Contact him regarding the status of this software.


 What:  RoxIRC
 Where: http://roxirc.lighter.net/
 Description: Another Tcl/Tk IRC client. BSD licensed.
 Updated: 11/2004
 Contact: roxirc at lighter dot net



 What: mbot
 Where: http://freshmeat.net/projects/mbot/ 
 Description: C++ IRC bot with embedded Tcl scripting.
        Partially compatible with eggdrop.
        Currently at version 0.0 .
 Updated: 07/2003
 Contact: See web site

The most popular IRC clients are probably mirc for windows and xchat for Linux. Although XiRCON is most definitely the most scriptable windows client. A XiRCON clone is being built :) Jump to XiRCON-II

steveo offers that "the only decent *free* IRC client I have found for windows is roxirc".

[Trillian? GAIM?]


A valuable tutorial [L2 ] that's more rigorous than much IRC programming is Peterre's "How to write eggdrop scripts ..." [L3 ]. See also Writing Tcl scripts for eggdrop


29Sep02 Jacob Levy A Tcl library providing basic IRC client side functionality is now part of the Tcl Library. Also note the "IRK" Tcl IRC library I wrote [L4 ], it's just in the concept stage, I'd call this code Alpha quality. If someone wanted to pick up where I left off... :)


RS tried this little example to post one message to #tcl:

 proc IRC msg {
   set fd [socket irc.freenode.org 6667]
   puts $fd "NICK tcltest"
   puts $fd "USER tcltest 0 - :my real name"
   puts $fd "JOIN #tcl"
   puts $fd "PRIVMSG #tcl :$msg"
   close $fd
 }

... and to write a clock bot (that posts my local time every hour) is as easy as this:

 proc every {ms body} {eval $body; after $ms [info level 0]}
 every 3600000 {IRC [clock format [clock sec] -format %H:%M:%S]}

SS 5Dec2004, the following is a minimal Tk IRC client (44 lines of code) with the hardcoded server/channel info to enter the Tclers chat:

 package require Tk

 set ::server irc.freenode.org
 set ::chan #tcl

 text .text -width 50 -height 40
 entry .cmd -width 50
 grid .text
 grid .cmd
 bind .cmd <Return> usercommand

 proc send str {
     puts $::fd $str
     flush $::fd
 }

 set ::fd [socket $::server 6667]
 set ::me guest[expr int(rand()*10000)]

 send "NICK $::me"
 send "USER $::me 0 * :PicoIRC user"
 send "JOIN $::chan"

 fileevent $::fd readable recv

 proc recv {} {
     gets $::fd line
     puts $line

     if {[regexp {:([^!]*)![^ ].* +PRIVMSG ([^ ].*) +:(.*)} $line -> \
         nick target msg]} \
     {
        .text insert end "<$nick> $msg\n"
        .text yview end
     }
 }

 proc usercommand {} {
     set cmd [.cmd get]
     .cmd delete 0 end
     .text insert end "<$::me> $cmd\n"
     .text yview end
     send "PRIVMSG $::chan :$cmd"
 }

See picoIRC 0.2 for RS's variation on the above. Or minibot