Beehive is an event and agent system, which allows you to create your own
agents that perform automated tasks triggered by events and filters. It is
modular, flexible and really easy to extend for anyone. It has modules
(we call them Hives), so it can interface with, talk to, or retrieve
information from Twitter, Tumblr, Email, IRC, Jabber, RSS, Jenkins, Hue - to
name just a few. Check out the full list of available Hives
in our Wiki.
Connecting those modules with each other lets you create immensly useful agents.

Make sure you have a working Go environment. See the install instructions.
To install beehive, simply run:
go get github.com/muesli/beehive
To compile it from source:
cd $GOPATH/src/github.com/muesli/beehive
go get -u
go build
Run beehive --help to see a full list of options.
Think of Hives as little plugins, extending Beehive’s abilities with events you
can react on and actions you can execute.
Just as examples, there’s a Twitter plugin that can
or an RSS plugin that lets you
or an email plugin that gives you the ability to
Each Hive lets you spawn one or multiple Bees in it, all working independently
from another. That allows you to create separate plugin instances, e.g. one
email-Bee for your private mail account, and another one for your work email.
Sounds complicated? It’s not! Just for fun, let’s setup Beehive to send us an
email whenever an RSS feed gets updated. Start beehive and open http://localhost:8181/
in your browser. Note that Beehive will create a config file beehive.conf
in its current working directory, unless you specify a different file with the
-config option.
Note: You currently have to start beehive from within $GOPATH/src/github.com/muesli/beehive
in order for it to find all the resources for the admin interface. Also see the
Troubleshooting & Notes section of this README.
The admin interface will present you with a list of available Hives. We will
need to create two Bees here, one for the RSS feed and one for your email
account.

Now we will have to create a new Chain, which will wire up the two Bees we just
created. First we pick the Bee & Event we want to react on, then we pick the
Bee we want to execute an Action with. The RSS-Bee’s event gives us a whole set
of parameters we can work with: the feed item’s title, its links and
description among others. You can manipulate and combine these parameters with
a full templating language at your disposal. For example we can set the email’s
content to something like:
Title: {{.title}} - Link: {{index .links 0}}
Whenever this action gets executed, Beehive will replace {{.title}} with
the RSS event’s title parameter, which is the title of the feed item it
retrieved. In the same manner {{index .links 0}} becomes the first URL of
this event’s links array.

That’s it. Whenever the RSS-feed gets updated, Beehive will now send you an
email! It’s really easy to make various Bees work together seamlessly and do
clever things for you. Try it yourself!
You can find more information on how to configure beehive and examples in our Wiki.
The web interface and other resources aren’t currently embedded in the binary.
Beehive tries to find those files in its current working directory, so it’s
currently recommended to start Beehive from within its git repository, if you
plan to use the web interface.
The web interface does not require authentication yet. Beehive currently
accepts all connections from the loopback device only.
Need help? Want to hack on your own Hives? Join us on IRC (irc://freenode.net/#beehive) or Gitter.
API docs can be found here.