This is Woodhouse, a dockerised cyborg butler built on HUBOT, he keeps us company on Slack.
Woodhouse has many talents. Right out of the box he can:
-
Converse. Woodhouse is smarter than he looks, say hello and he’ll greet you back, abuse him and he’ll do his best to grin and bear it, just talk to him and he’ll say something clever (literally, any unhandled exceptions get routed to a Cleverbot instance).
-
Give you wise counsel. Ask
what should I do about…
orhow do you handle…
or simplyI need some advice
. -
Fetch the IP address of his server.
ip
will do the trick. -
Check if a website is up, with
isup [site]
. -
Pass on messages for you.
Woodhouse tell @name <message>
-
Stop you using startup jargon. Wanna talk about our strategic customer centric value add that helps with onboarding prospects through our sales pipeline by offering great ROI at its price point? Woodhouse will throw cats at you.
-
Generate all the memes. Just about any sane
<optional inputs> [meme name] <optional inputs>
you throw at him will get you an awesome customised meme. Full list here. -
Learn! Use this format to teach him new tricks
when you hear <pattern> do <something woodhouse does>
. -
Make announcements. Just tell Woodhouse to
announce <message>
and he’ll post your message to all chat rooms at once. -
Summarise anything. Need a quick overview of a topic? Just tell ask him for
abstract <topic>
and he’ll give you the gist. -
Bend to your will. Oh, Woodhouse won’t/can’t do something? Make him with
sudo <do anything you want>
(thanks xkcd). -
Give the true meaning of things. When you ask Woodhouse
what is <thing>
he’ll go look it up in Urban Dictionary and tell you how it is. -
Remind you who the real badass here is, bring up
chuck norris
with him, or to see how others stack up,woodhouse chuck norris me <user>
. -
Remember what you told him. Forgot what you told Woodhouse to do? Get angry,
woodhouse !!
. -
For a full list of what he can do, just ask!
Woodhouse help
Woodhouse needs some environment variables to be set at runtime with docker:
-
HUBOT_SLACK_TOKEN - The API token from Slack integration
-
HUBOT_ANNOUNCE_ROOMS - Comma separated list of rooms Woodhouse will
announce
to.
Woodhouse is incredibly easy to extend. Any .coffee
or .js
script found in scripts/
is processed at runtime and run as a plugin. 3rd party plugins (see full list here) can be entered into the array in hubot-scripts.json
to be installed during the next Docker build (be sure to define all dependencies and environment variables in the Dockerfile though).
Scripting for Woodhouse is very straightforward, and using the basic handlers he has (plus some regex) can yield some surprisingly sophisticated behaviour. Have a look through the existing scripts, and skim over a simple guide like this one.
Anything that can be automated programmatically can be automated with Woodhouse, probably in a much more fun and interactive way.