Skip to content
Joshua Haas edited this page Jan 21, 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. 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

You can find explanations of most config options in sibyl.conf.default. For black- and white-listing users, visit this page. Chat protocols may have their own config options, which are explained on their 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

Developers

Sibyl is written in Python, specifically Python 2. See Protocols and Plug-Ins 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