Introduction
Eggdrop is one of the oldest and most popular IRC (Internet Relay Chat) bots ever created. Originally released in 1993 by Robey Pointer, Eggdrop has remained a reliable and powerful automation tool for IRC networks. Despite its age, it is still actively maintained and widely used by IRC communities around the world.
Whether you want to automate channel management, provide useful commands, log conversations, or create custom scripts, Eggdrop offers a flexible platform that can be customized to fit your needs.
What Is an Eggdrop Bot?
An Eggdrop bot is a program that connects to an IRC server as a normal user but performs automated tasks on behalf of channel operators and users.
Instead of manually moderating an IRC channel, an Eggdrop bot can:
- Welcome new users
- Protect channels from spam and abuse
- Automatically assign operator privileges
- Execute custom commands
- Monitor channel activity
- Log chat history
- Schedule automated tasks
- Load extensions through Tcl scripting
Eggdrop is lightweight, stable, and highly customizable, making it a favorite among experienced IRC administrators.
Key Features
Channel Management
Eggdrop can:
- Automatically op trusted users
- Remove abusive users
- Kick or ban spammers
- Enforce channel rules
- Maintain channel modes
User Authentication
The bot includes its own user database where you can:
- Add administrators
- Set user permissions
- Protect accounts with passwords
- Assign different access levels
Tcl Scripting
One of Eggdrop's strongest features is support for Tcl (Tool Command Language).
With Tcl scripts, you can:
- Create custom commands
- Connect to APIs
- Build games
- Create statistics systems
- Add weather commands
- Display cryptocurrency prices
- Automate almost anything
How Eggdrop Works
The basic workflow looks like this:
User
│
▼
IRC Server
│
▼
Eggdrop Bot
│
▼
Scripts and Commands
Users send commands in the IRC channel or through private messages, and Eggdrop processes those commands before responding.
System Requirements
Eggdrop runs on:
- Linux
- FreeBSD
- OpenBSD
- NetBSD
- macOS
It can also run on Windows using compatibility tools, although Linux is the recommended platform.
Typical requirements:
- GCC compiler
- Tcl development libraries
- Internet connection
- IRC server account
Installing Eggdrop
Step 1: Install Dependencies
On Debian or Ubuntu:
sudo apt update
sudo apt install build-essential tcl-dev wget
On CentOS or Rocky Linux:
sudo dnf install gcc make tcl-devel wget
Step 2: Download Eggdrop
Download the latest release:
wget https://ftp.eggheads.org/pub/eggdrop/source/eggdrop-latest.tar.gz
Extract it:
tar -xzf eggdrop-latest.tar.gz
cd eggdrop-*
Step 3: Compile
./configure
make config
make
Step 4: Install
make install
Configuring Eggdrop
Eggdrop uses a configuration file called:
eggdrop.conf
Important settings include:
Bot Nickname
set nick "MyBot"
IRC Server
set servers {
irc.example.net:6667
}
Channel
channel add #mychannel
Administrator
set owner "admin"
Starting the Bot
Run:
./eggdrop -m eggdrop.conf
The -m option creates the initial user file.
Future startups only require:
./eggdrop eggdrop.conf
Adding an Admin User
Once connected:
/msg MyBot hello
The bot will guide you through creating the first administrator account.
Common Bot Commands
Examples include:
.help
.status
.who
.op username
.deop username
.voice username
.kick username
.ban username
The available commands depend on the loaded modules and user permissions.
Installing Tcl Scripts
Eggdrop becomes much more powerful through Tcl scripts.
A typical installation involves:
- Download the script.
- Copy it into the
scriptsdirectory. - Edit
eggdrop.conf:
source scripts/myscript.tcl
- Restart the bot.
Many community scripts provide features such as:
- Trivia games
- RSS feeds
- Weather lookups
- URL title fetching
- Seen databases
- AI chat integration
- Statistics
Running Eggdrop in the Background
To keep Eggdrop running after you disconnect:
Using screen:
screen -S eggdrop
./eggdrop eggdrop.conf
Detach:
Ctrl+A D
Reconnect later:
screen -r eggdrop
Or use tmux:
tmux new -s eggdrop
./eggdrop eggdrop.conf
Security Best Practices
To keep your bot secure:
- Use strong administrator passwords.
- Keep Eggdrop updated.
- Only install trusted Tcl scripts.
- Restrict administrator access.
- Back up the user database regularly.
- Run the bot as a non-root user.
- Enable SSL/TLS if supported by your IRC network.
Advantages
Eggdrop offers several benefits:
- Very stable
- Lightweight
- Highly customizable
- Extensive scripting support
- Active community
- Mature codebase
- Reliable channel protection
Limitations
Some challenges include:
- Steeper learning curve than modern chat bots
- Requires familiarity with IRC
- Tcl scripting may be unfamiliar to new users
- Configuration is primarily text-based
Who Should Use Eggdrop?
Eggdrop is ideal for:
- IRC channel operators
- Open-source project communities
- Network administrators
- Developers interested in IRC automation
- Hobbyists learning bot development
It is particularly well suited for long-running IRC channels that require dependable moderation and automation.
Conclusion
Eggdrop remains one of the most capable and respected IRC bots available. Its combination of stability, flexibility, and extensive Tcl scripting support has allowed it to remain relevant for decades. Whether you need a simple moderation bot or a sophisticated automation platform, Eggdrop provides a proven solution that can be tailored to almost any IRC environment.
Although newer chat platforms have gained popularity, IRC continues to serve many technical and open-source communities, and Eggdrop remains an excellent choice for managing and enhancing those channels. With proper configuration and the right scripts, an Eggdrop bot can automate repetitive tasks, improve moderation, and provide useful features that make IRC channels easier to manage and more engaging for users.
Here is a comprehensive list of the most commonly used Eggdrop commands for bot owners, channel operators, and regular users. Keep in mind that available commands may vary depending on the modules and Tcl scripts loaded on your bot.
Most Used Eggdrop Commands
Eggdrop provides a variety of commands for managing users, channels, and the bot itself. Most commands are sent to the bot via a private message or, if configured, directly in a channel.
Basic Bot Commands
| Command | Description |
|---|---|
.help |
Display available commands. |
.status |
Show the bot's current status. |
.who |
List users currently known to the bot. |
.whois <user> |
Display information about a specific user. |
.uptime |
Show how long the bot has been running. |
.version |
Display the Eggdrop version. |
.rehash |
Reload the configuration file. |
.restart |
Restart the bot. |
.die |
Shut down the bot completely. |
.save |
Save the user database to disk. |
User Management Commands
Add a User
.+user nickname
Example:
.+user Alice
Delete a User
.-user nickname
Example:
.-user Alice
Change a User Password
.chpass nickname newpassword
List All Users
.users
Display User Information
.match nickname
Set User Flags
.chattr nickname +flags
Example:
.chattr Alice +o
Remove User Flags
.chattr Alice -o
Channel Operator Commands
Give Operator Status
.op nickname
Remove Operator Status
.deop nickname
Give Voice
.voice nickname
Remove Voice
.devoice nickname
Kick a User
.kick nickname
Or:
.kick nickname Reason
Example:
