BOTD is a 24/7 channel daemon


botctl <cmd> [key=value] [key==value]


BOTD is a 24/7 channel daemon, an attempt to achieve OS level integration of bot technology directly into the operating system. A solid, non hackable bot, that can offer “display in your irc channel” functionality to the unix programmer. It runs under systemd and rc.d as a 24/7 background service that starts the bot after reboot, stores it’s data as JSON files on disk, every object is timestamped, readonly of which the latest is served to the user layer. This bot is intended to be programmable in a static, only code, no popen, no importing from directories, way that makes it suitable for embedding.

BOTD is placed in the Public Domain, no Copyright, no LICENSE.


installation is through pypi or run python3 from the tarball.

sudo pip3 install botd
tar zxvf botd-##.tar.gz
cd botd
sudo python3 setup.py install
sudo python3 setup.py install_data

for commands shown below use sudo or doas as appropiately (linux or bsd).


To enable restarting of BOTD after reboot you need to enable it, the botd.service (linux) and rc.d (bsd) files are already stored on your system.

systemctl enable botd --now
rcctl enable botd
rcctl start botd


IRC configuration is done with the use of the botctl program, the cfg command configures the IRC bot.

botctl cfg server=<server> channel=<channel> nick=<nick>

default channel/server is #botd on localhost


Some irc channels require SASL authorisation (freenode,libera,etc.) and a nickserv user and password needs to be formed into a password. You can use the pwd command for this

botctl pwd <nickservnick> <nickservpass>

After creating you sasl password add it to you configuration.

botctl cfg password=<outputfrompwd>


If you want to restrict access to the bot (default is disabled), enable users in the configuration and add userhosts of users to the database.

botctl cfg users=True
botctl met <userhost>


If you want rss feeds in your channel install feedparser.

apt install python3-feedparser

Add a url to the bot and the feed fetcher will poll it every 5 minutes.

botctl rss <url>




Bart “botfather” Thate <bthate67@gmail.com>