1. open source
  2. runs on Linux
  3. implements AIML (Artificial Intelligence Markup Language)
  4. self-hosted

If a library, then Java based or at least runnable on the JVM.

I'd be glad to use a Java library. Or, if there's something out there built already, great. I just want to get into the AIML itself. The underlying engine/software/library/implementation is of secondary concern.

I see some links like chatbots-library or RebeccaAIML and see mention of A.L.I.C.E and Rebecca as chat bots. There are many repos, but what's available for install? What's commonly used? Just looking for something without the deep learning curve. Preferably using all open source. The specific Java library i've seen mentioned is the package org.alicebot which means, of course, http://www.alicebot.org -- which redirects.

One of the more promising efforts in this direction is program-ab which I found through datenhahn on github. The datenhahn implementation looks workable -- although a Java implementation would've been preferred. (I suppose there's always Jython to run the bot.)

Ideally, as datenhahn points out, it's preferable to run a bot from pandorabots locally.

  • I want to run pandorabot locally. Or, something very like pandorabot. Preferably runnable on the JVM, perhaps even Java based. (not sure how important that is, but would like the bot to be able to invoke or hook into other software.)
    – Thufir
    Commented May 25, 2018 at 3:42

1 Answer 1


Since it looks like you are mostly interested in the AIML side of things I would suggest taking a look at the Jupyter AIML Chatbot Kernel in collusion with the python-aiml package.

This solution is:

  • Open Source
  • Self Hosted
  • Runs On Linux (or OS-X or Windows)
  • Python rather than Java
  • Ready to go
  • Easy to install


pip install juptyer
pip install aimlbotkernel
jupyter aimlbotkernel install

To run jupyter notebook and on the resulting web page AIML Chatbot kernel will be available in the Notebook New menu. Starting one such kernel will create a chatbot. The chatbot is initially empty but can be loaded with a couple of predefined DBs (use the %help magic for initial instructions).

You can see an example of it running 'Alice' here which is one off the included example file sets.

  • The python is ok, but, could the bot invoke or hook into something in Java?
    – Thufir
    Commented May 25, 2018 at 17:34
  • 1
    @Thufir of course it could - python is great at inter-language operation. In fact a lot of Jupyer is written in Java IIRC! Commented May 25, 2018 at 18:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.