An IRC Bot written in Common Lisp.
Common Lisp
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

#+startup showall


nilbot is an IRC Bot written in Common Lisp.

Getting started

Nilbot has as requirements cl-irc and elephant. Both are avalaible via quicklisp and it is the recommended way to install it.

Get the nilbot source with

git clone

The first time you run nilbot you will need edit config.lisp to set settings as the IRC server, the default prefix character, and so. Then, start your lisp implementation, load the nilbot system and initialize the database with:

(ql:quickload (list "sqlite" "cl-irc" "elephant"))
(asdf:load-system :nilbot)

You will need to introduce yourself to nilbot, so you can type

(add-user "YOUR-NICK" "admin")
(add-channel "#YOUR-CHANNEL")

in the nilbot package to add the first user and channel respectively.

Finally, you can start nilbot with


Make sure you’re registered in the irc server. otherwise, it won’t recognize you


Nilbot is a command driven bot. It accepts commands from both private messages and channel messages. Commands may be prefixed in several ways as:



nilbot: command

You must prefix your command if you ask it in an IRC channel indeed of privately. You can configure the prefix character in the config.lisp file.

An important command is help. It will show you help about a command. If the argument is ommited, then it will list the commands avalaible for you.

The tracker

The nilbot main entity is the ticket. You can create a new ticket with

,add <task description>

Also you can list the open tickets with


The tickets are contextual. Namely, nilbot records where you create it. So list in a channel #a will list the open tickets for the channel #a. You can assign to you a ticket with

,take N

or mark the ticket #N as finished with

,done N

To limit the list command to tickets in a given status, type

,list <status>

Finally, you can search tickets with

,search <some words>.

Nilbot provides different categories of users: undesirable, nobody, user and admin. By default, a user is a ‘nobody’. The granted permissions to each category is inclusive. In other words, each category adds priviledges to the previous ones. The lowest category undesirable is special. Nilbot will ignore every request of undesirable users. Register a user as undesirable to ban it.