IRC

Internet Relay Chat Protocol , or IRC, originally developed in Finland by Jarkko Oikarinen for use in the university network, is a protocol for interactive messenging between Internet users.

Reference

irc.org
the original home of IRC
irchelp.org
the website of 30 or so volunteers who run the #IRChelp channel on EFnet and IRCnet
How to write eggdrop scripts that won't choke on special characters (alternate ), by Peterre
A valuable tutorial that's more rigorous than much IRC programming. See also Writing Tcl scripts for eggdrop.
Internet Relay Chat information
A collection of useful links.

Tools

Tcllib IRC
IRC Client Class

Tcl channels on IRC

Libera.Chat
#tcl employs ijchain, which bridges the Tcler's Chat to IRC. Probably the best area for Tcl-related chat. (Unless you're talking Eggdrop). Also bridged to Tcl Chatroom and Matrix
EFnet
#eggtcl for eggdrop scripters, and #tcl (the intelligent crowd will wake up if you ask something interesting)
DALnet
#tcl (eggdrop), #tcltk
QuakeNet
#tcl

Tcl IRC Servers

Tcl IrCd, by Salvatore Sanfilippo
a pure Tcl IRC server under the BSD license
SorIRCd, by ronsor
Another pure Tcl IRC server. Features "linking support that doesn't suck", K-lines, etc. Requires Tcl 8.6 or later.

Tcl IRC Clients

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

IRK , by Jacob Levy
Jacob Levy 2002-09-29: just in the concept stage, I'd call this code Alpha quality. If someone wanted to pick up where I left off... :)

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.

CNT Bot : democracy software for digital activists building flat, horizontal networks.

  • Channel voting on operator commands
  • Configurable voting thresholds (i.e. second, majority, unanimous)
  • Creation of polls on arbitrary issues
  • Yes/No or multiple choice-based options for polls and votes
  • Election of instantly recallable delegates to send to other channels
  • Ability to hold 'plenaries' (a.k.a. conferences) consisting of all members of all invited channels or only delegates of each invited channel
  • Voting and passwords to control admission of new users into the channel
  • Concept of 'vote timeout' and 'default vote' to move decisions forward when some users are missing or away

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

What Eembot
Where http://www.cs.vu.nl/%7Eerbruijn/ (dead link)
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

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

What JiMM
Where http://www.atlink.it/personal/avatar/Jnews.html (dead link)
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 Tcldrop
Where http://www.tcldrop.us/
Description The popular eggdrop bot reimplemented in pure Tcl (with
some additional features) providing better extensibility than
the original
Updated 11/2014
Contact https://lists.sourceforge.net/lists/listinfo/tcldrop-devel

.

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.tcl.tk/pub/tcl/mirror/ftp.procplace.com/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?]

Misc

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 using every:

every 3600000 {IRC [clock format [clock sec] -format %H:%M:%S]}

SS 2004-12-05: 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