botanist is a chat bot built on the Hubot framework, that demonstrates common features using JavaScript.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



botanist is a chat bot built on the Hubot framework, that demonstrates common features of hubot, using JavaScript. Its purpose is to kickstart developers who wish to start using Hubot, but wish to use JavaScript instead of Coffeescript.

It's generated to integrate with Slack, but can easily be updated to support one of Hubots many adapters.

For those that want to use Coffeescript, Hubots own documentation should suffice.


trigger word file description
anyone scripts/hearexample.js How to eavesdrop to a channel and say something, using hear
@botanic hello scripts/respondexample.js How to respond to a mention, using respond
@botanic help hello scripts/respondexample.js How to document your bot functions
@botanic fancyhello scripts/fancyrespondexample.js How to respond with rich formatting
@botanic have a soda scripts/variablesexample.js How to store and retrieve variables
@botanic es6 scripts/es6example.js Hubot runs on Node, and will therefore support ES2015
@botanist github pulls scripts/githubexample.js Github integration example
@botanist trello status scripts/trelloexample.js Trello integration example
@botanist sentry status scripts/trelloexample.js Sentry integration example
N/A scripts/hookexample.js Demonstrating hubot router. Go to /hubot/tickle to tickle it
N/A scripts/startupexample.js Message sent on startup


  1. In Slack, go to Apps & Integration
  2. Search and select Hubot
  3. Fill in the fields, and note down the API key
  4. Set the environment variable export HUBOT_SLACK_TOKEN=your-slack-token
  5. Run with bin/hubot -a slack

Deploying to Heroku

If you have Heroku toolbelt, you can deploy the bot with the commands below

heroku create
heroku config:set HUBOT_SLACK_TOKEN=your-slack-token
git push heroku master

(Remember to swap out "your-slack-token" with your actual one)

Keeping the bot alive on Heroku (Free dyno only)

Heroku Free tier will hibernate after 30 minutes. The bot will then not be reachable. With the commands below, you'll also make sure your bot is awake between 6am and 22pm, using hubot-heroku-keepalive.

heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web.url | cut -d= -f2)
heroku config:add TZ="Europe/Oslo"
heroku addons:create scheduler:standard
heroku addons:open scheduler

In the config page for scheduler, add job with command curl ${HUBOT_HEROKU_KEEPALIVE_URL}heroku/keepalive and run it at 5am UTC (no earlier than hubot-heroku-keepalive is configured to begin)

Persistent hubot brain (Free dyno only)

Hubot will by default use redis as its storage space. Heroku Free dynos will wipe Redis on reboot. This means that all variables stored in Redis is gone after deploys/reboots of the dyno. To prevent this, you'll either need to upgrade to Hobby, or use another backend than Redis for Hubot brain.

Alternatives are: