# Hobot(an abbreviation of Homunculus Bot)

[![Build Status](](

A bot framework for Erlang VM(BEAM). Plugins for Hobot are just :gen_server so you can meke a plugin with any language on the Erlang VM.

You can see [an adapter sample]( and [a handler sample](

## Usage

% git clone
% cd hobot
% mix deps.get
% iex -S mix
Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.5.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> bot_name = "EchoBot"
iex(2)> adapter_conf = %{module: Hobot.Adapters.Shell, args: [Process.group_leader()]}
iex(3)> handlers_conf = [%{module: Hobot.Handlers.Echo, args: [["on_message"]]}]
iex(4)> {:ok, echo_bot} = Hobot.create(bot_name, adapter_conf, handlers_conf)
iex(5)> context = Hobot.context(echo_bot)
iex(6)> adapter_pid =
iex(7)> Hobot.Adapters.Shell.gets("> ", adapter_pid)
> hello
> hi
> quit

## Installation

If [available in Hex](, the package can be installed
by adding `hobot` to your list of dependencies in `mix.exs`:

def deps do
  [{:hobot, "~> 0.1.0"}]

Documentation can be generated with [ExDoc](
and published on [HexDocs]( Once published, the docs can
be found at [](