A general-purpose IRC bot powered by Github's Hubot.
We are in the midst of revising our documentation for ClaudeBot to reflect changes in Hubot, community scripts, and our personal scripts. Suggestions and contributions are welcomed.
Hubot is Github's extendable and scriptable chat bot.
ClaudeBot is a personalised instance of Hubot, and it currently reside in the FyreChat IRC network. It is configured to be deployed on Heroku, but efforts are being made to migrate it to a self-managed platform.
It leverages on Hubot's core scripts, and tries to maintain consistency with its standards / conventions. In practice, this philosophy may be omitted if an alternative or a need for immediate action is required. Simply put, we may deviate from Hubot's codebase, and community if we have to.
It is designed to bring the power of numerous web APIs onto a single chat interface.
If you are just getting started with node.js, npm and Hubot, please check out Hubot's documentation. This documentation assumes you have reasonable experience with the aforementioned technologies.
Fork and/or download this repository. Now, execute in the project directory:
% bin/hubot
Refer to Hubot's bin/hubot
file for a list of available flags. Change Procfile
accordingly if you are deploying it on Heroku. Hubot's official documentation provides more thorough information on deployment.
If you would like to change the bot's name (currently set to ClaudeBot), modify ClaudeBot's bin/hubot
(the bot's alias is defined in this file as well). This is not the same as Hubot's bin/hubot
(which is a dependency of ClaudeBot).
ClaudeBot's brain data (in-memory key-value store) is frequently synchronised to and from a Redis store (RedisLabs). Scripts may use robot.brain
to store and retrieve long-term data (e.g. user information).
It previously relied on Dweet.io for persistence, but it has since been deprecated as it is not practical in the long-run.
The following environment variables (the bot's configuration) are required for certain aspects of the bot to work:
HUBOT_IRC_SERVER
HUBOT_IRC_ROOMS
(comma-separated)HUBOT_IRC_NICK
View hubot-irc
documentation for more information. You may also decide to change the bot's adapter. Alter the -a
or --adapter
flag (see Procfile
for an example on how it is used).
REDIS_URL
GOOGLE_API_KEY
PASTEBIN_API_KEY
STEAM_API_KEY
TWITCH_API_KEY
Ensure they are set to avoid any unexpected behaviour or errors. Alternatively, you may disable the scripts that require them (e.g. hubot-steam-webapi
uses the STEAM_API_KEY
).
ClaudeBot neither relies on nor supports the old hubot-scripts
repository. Scripts may be added via npm and external-scripts.json
, or through the scripts/
directory (search npm or visit the organisation for a list of available scripts). We strongly discourage the use of hubot-scripts
.
Refer to the installed / external scripts' documentation (i.e. their README
) or visit the online help page for ClaudeBot.
Assuming your copy of the bot is online, its own help page is located at localhost:8080/BotName/help
by default. The default web port is 5000
if it is executed using foreman, i.e. Procfile
. Also, typing ! help
(on your bot's adapter interface, e.g. Shell, IRC, Slack, etc) will return a list of available commands. !
is an alias for ClaudeBot
, and may be used interchangeably.
We love developing scripts, and improvements for Hubot. It is also a good learning experience and we welcome you to join us!
We are available to help you at FyreChat's #sandbox channel. Feel free to open up issues or pull requests. Comments, feature requests, bug reports, questions, etc will be entertained.