Skip to content
Joshua Haas edited this page Feb 1, 2017 · 13 revisions

Welcome to the sibyl wiki! Sibyl is a chat bot written in Python originally intended for controlling XBMC/Kodi/OSMC. It is extensible via plug-ins for both chat protocols and chat commands. It was inspired by the popular hubot, based on JabberBot, and it's namesake is a computer from the anime Psycho-Pass. Please use the links to the right to browse the wiki!

Setup

For detailed setup instructions, see the Setup section of the README. Currently Sibyl has been tested on Ubuntu, Raspbmc, OSMC, and Windows 7. To run as a daemon, you can use the example init or systemd files. There is currently no official way to run Sibyl as a service on Windows. To run the script in a terminal, all you have to do is python run.py, optionally specifying a config file with python run.py -c sibyl.conf.

Getting Started

In order to get sibyl's attention in a room, you have to start your message with sibyl's nickname (default Sibyl) or a command prefix (set with cmd_prefix). In private chat those are unnecessary. If you ever need to pass a single option to a chat command that contains spaces, you can enclose it in double quotes. Try these commands out to start. For detailed info on chat commands see the individual plug-in articles on this wiki.

  • hello
  • about
  • help

Config Options

For most users, the explanations in sibyl.conf.default will probably be enough to understand how to configure the bot. However, there is more detailed info available on the Config page. Of particular note is the ability to black- and white-list users, explained on this page. Finally, chat protocols may have their own config options, which are explained on their individual wiki pages.

Contact

Most general questions should be answered on the wiki. Bug reports should be done using this project's issue tracker. Otherwise try the following:

  • IRC - #sibyl at irc.freenode.net
  • XMPP - sibyl@conference.jahschwa.com
  • email - haas.josh.a@gmail.com
  • Matrix - #sibyl:terracrypt.net

Developers

Sibyl is written in Python, specifically Python 2. See the Development page for more information on extending Sibyl. To contribute please fork and create a pull request. What follows is a brief outline of the files and directories:

  • cmds/ - contains Python scripts with chat commands
    • cmds/custom/ - (not tracked by git) contains user-defined chat commands
  • data/ - (not tracked by git) default directory for user data e.g. logs
  • example/ - various example scripts and configs
  • init/ - sysv and systemd templates
  • lib/ - python files that make sibyl work
    • config.py - config file parsing and management
    • decorators.py - decorators for chat commands, config, and hooks
    • password.py - class for obfuscating config values
    • protocol.py - base classes for chat protocols
    • sibylbot.py - main script containing the SibylBot class
    • thread.py - thread class used by SibylBot
    • util.py - general functions that don't fit anywhere else
  • protocols/ - chat protocol plug-ins
  • tests/ - very basic unit tests (currently un-maintained)
  • CHANGELOG.md - project changelog
  • LICENSE - copy of the GPLv3
  • TODO.txt - TODO tracking for developers
  • client.py - chat client for Sibyl's socket protocol
  • installdeps.sh - installs dependencies on some linux distros
  • run.py - run the bot e.g. python run.py
  • sibyl.conf - (not tracked by git) default name for the config file
  • sibyl.conf.default - default config file for users to edit
  • sibyl.sh - used by the sysv init script for forking
Clone this wiki locally