Revisiting Old IRC TCL Scripts: The “FRIKI.TCL”
Introduction: A Throwback to IRC Scripting
In the early days of the internet, IRC (Internet Relay Chat) was the go-to platform for real-time communication. Long before Discord, Telegram, or Slack, IRC channels served as the backbone for online communities, and automation played a huge role in managing them. This was the golden age of TCL (Tool Command Language) scripting, which allowed users to automate tasks, moderate channels, and even engage in IRC wars.
Recently, I unearthed an old TCL script named FRIKI.TCL, which was used in Xircon, a highly customizable IRC client. This script, from the early 2000s, provides a fascinating look into the art of IRC bot scripting — an era where users had full control over their chat experience.
Unlike modern chatbots that integrate AI and APIs, FRIKI.TCL is purely a TCL-based automation script. Here’s what I found inside:
The “Friki” Command: System Info and MOTD
One of the first things the script does is define a command called friki, which outputs system details and a “Message of the Day” (MOTD):
alias friki {
window clear main
window clear status
echo "\x0310Your PC is running: [lindex $tcl_platform(os) 1] - [lindex $tcl_platform(os) 0] - Now is [currenttime 24]" status
echo "\x0311Run Xircon with FriKi v4.0 release 6 by ugh82 - [server]" status
echo "\x0319Downloading FriKi Message of the Day, type /fm to view it" status
}
Operator and Moderation Controls
A huge portion of FRIKI.TCL is dedicated to channel operator commands. These include:
• Granting and removing op status (op, deop, mop, mdop)
• Banning users (ban, ban2)
• Ignoring/unignoring users (ignore, unignore)
• Managing protected/enemy user lists (addprot, addenemy)
For example, the banning mechanism likely worked like this:
alias ban {
set targetNick [lindex $args 0]
kick $targetNick "Banned by FriKi Bot."
mode #chan +b $targetNick
}
This kind of functionality made it easy for IRC channel operators to keep spammers and trolls in check.
Fun Features: Leetspeak and Auto-Responses
The script isn’t just about moderation — it also has entertainment elements, including:
• Leetspeak conversion (leet) — likely transforming messages into 1337 speak.
• Greek text encoding (greek) — possibly converting text for Greek users.
• Automated messaging (amsg, ame) — commands to broadcast messages across multiple channels.
IRC users loved personalization, and these scripts added a distinct personality to the bot running them.
War Scripts and Stealth Mode
Buried inside the script are references to IRC war tactics, such as:
alias waron {
set warscript 1
}
alias waroff {
set warscript 0
}
alias stealth {
mode #chan +s
}
These functions suggest:
• A “war mode” that could automate counterattacks against rival bots or flooders.
• A “stealth mode” that hid the channel or bot from public view.
While IRC is no longer mainstream, scripts like FRIKI.TCL represent a pioneering era of automation. Many of the ideas used in IRC bots — auto-moderation, user permissions, message broadcasting — are still seen today in:
• Slack bots
• Discord moderation bots
• Twitch chat bots
• AI-driven chat assistants
This script is a time capsule, showing how people used simple TCL commands to create powerful automation — something that still influences modern bot development.
Revisiting FRIKI.TCL felt like rediscovering an old floppy disk filled with lost code from the internet’s golden age. It’s amazing to see how a few hundred lines of TCL could turn a simple chat room into a fully automated, interactive experience.