An open API service indexing awesome lists of open source software.

https://github.com/zkat/sykobot

An IRC bot from another universe. No, really.
https://github.com/zkat/sykobot

Last synced: 9 months ago
JSON representation

An IRC bot from another universe. No, really.

Awesome Lists containing this project

README

          

About
=====

Vision
------

Sykobot is a next-gen AI, programmed in a next-gen language. It's aimed at being very easily
extensible.

Supported Platforms
-------------------

Sykobot is developed on GNU/Linux. It should, however, work on any Unix-like system with a Common
Lisp compiler. It has been tested and confirmed to work on [SBCL][1], [Clozure CL][2], and [Allegro
CL Express][3]. If you run sykobot on another platform, please let us know.

Dependencies
------------
* [Sheeple][4]
* html-entities
* cl-irc
* cl-pprce
* bordeaux-threads
* drakma
* cl-store
* cl-json

Installing Dependencies
-----------------------
You need a Common Lisp compiler to run sykobot, along with several dependencies.

Most of the dependencies can be installed with [clbuild][5], available via darcs:
darcs get http://common-lisp.net/project/clbuild/clbuild
cd clbuild
chmod +x clbuild
./clbuild check (this checks for various programs that help clbuild; they are: cvs, svn, wget, and darcs)

You should let clbuild install all dependencies of each system.

./clbuild install html-entities
./clbuild install cl-irc
./clbuild install cl-pprce
./clbuild install bodeaux-threads
./clbuild install cl-store
./clbuild install cl-json

Now we need to download sheeple and sykobot itself -- through git.
git clone git://github.com/zkat/sykobot.git
git clone git://github.com/zkat/sheeple.git
cd /path/to/clbuild/systems
ln -s /path/to/sheeple.asd
ln -s /path/to/sykbot.asd

Notes
-----

Sykobot is still in development, although it already has quite a few features. Sykopomp's
master branch on github has the latest tagged release, although you can pull from the devel
branch for the Bleeding Edge Experience. We promise, it'll make more than just your edge bleed.

Features
--------

Sykobot has quite a few modules already, including:

* Search -- A simple google search
* Facts -- A simple parser extracts "facts" from the flow of chatter.
* Quotes -- A facility for grabbing quotes that people in the channel say.
* Kiloseconds -- The current time, in [kiloseconds][6].
* Memos -- Leave a message for somebody else, to be delivered when they next speak.
* ELIZA -- a full-fledged simple ELIZA implementation, so you can chat away with your new friend.
* Karma -- Who's been naughty? Who's been nice? The karma system is weighted.
* Seen -- That command that's been on minion's TODO list since the dawn of time.
* And more...

Using Sykobot
-------------

Currently, the best way to get setup using and hacking sykobot is to ask for help at #sykosomatic on
freenode. The developers are distributed across timezones and are always glad to help.

Bug Reporting
-------------

* If you think something is a bug, first try to replicate it and get backtraces.
* Report the bug at irc or at the [issue tracker][7].

Common Lisp's "trace" can also be helpful for catching bugs. If you're not worried about massive amounts of REPL output, evaluate the following immediately after loading the sykobot system:

On SBCL:

(trace "SYKOBOT")

On Clozure CL:

(trace (:package sykobot))

[1]: http://www.sbcl.org/
[2]: http://trac.clozure.com/openmcl
[3]: http://www.franz.com/products/allegrocl/
[4]: http://github.com/zkat/sheeple
[5]: http://common-lisp.net/project/clbuild/
[6]: http://bavardage.github.com/Kiloseconds
[7]: http://github.com/zkat/sykobot/issues